atlas-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "David Kantor (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (ATLAS-645) FieldMapping.output() results in stack overflow when instances reference each other
Date Wed, 04 May 2016 14:35:12 GMT

    [ https://issues.apache.org/jira/browse/ATLAS-645?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15270733#comment-15270733
] 

David Kantor commented on ATLAS-645:
------------------------------------

[~shwethags] Last week I had addressed your comments and uploaded a new diff to the review
board request https://reviews.apache.org/r/45948/.  Kindly review the latest changes and let
me know if you have further comments.  Rather than plumbing through an inProcess set arg,
I have changed the implementation to use thread local storage for the inProcess sets.

> FieldMapping.output() results in stack overflow when instances reference each other
> -----------------------------------------------------------------------------------
>
>                 Key: ATLAS-645
>                 URL: https://issues.apache.org/jira/browse/ATLAS-645
>             Project: Atlas
>          Issue Type: Bug
>            Reporter: Shwetha G S
>            Assignee: David Kantor
>         Attachments: rb45948.patch
>
>
> FieldMapping.output() results in a stack overflow due to infinite recursion when two
IReferenceableInstance or IStruct objects reference each other.  This issue was first exposed
by GraphBackedMetadataRepositoryDeleteEntitiesTest.testDisconnectMapReferenceFromClassType().
> {noformat}
> SLF4J: Failed toString() invocation on an object of type [org.apache.atlas.typesystem.persistence.ReferenceableInstance]
> java.lang.StackOverflowError
> 	at java.util.regex.Pattern$GroupHead.match(Pattern.java:4556)
> 	at java.util.regex.Pattern$Branch.match(Pattern.java:4502)
> 	at java.util.regex.Pattern$BranchConn.match(Pattern.java:4466)
> 	at java.util.regex.Pattern$GroupTail.match(Pattern.java:4615)
> 	at java.util.regex.Pattern$Curly.match0(Pattern.java:4177)
> 	at java.util.regex.Pattern$Curly.match(Pattern.java:4132)
> 	at java.util.regex.Pattern$GroupHead.match(Pattern.java:4556)
> 	at java.util.regex.Pattern$Branch.match(Pattern.java:4502)
> 	at java.util.regex.Pattern$Branch.match(Pattern.java:4500)
> 	at java.util.regex.Pattern$BmpCharProperty.match(Pattern.java:3715)
> 	at java.util.regex.Pattern$Start.match(Pattern.java:3408)
> 	at java.util.regex.Matcher.search(Matcher.java:1199)
> 	at java.util.regex.Matcher.find(Matcher.java:618)
> 	at java.util.Formatter.parse(Formatter.java:2517)
> 	at java.util.Formatter.format(Formatter.java:2469)
> 	at java.util.Formatter.format(Formatter.java:2423)
> 	at java.lang.String.format(String.java:2792)
> 	at org.apache.atlas.typesystem.persistence.Id.toString(Id.java:98)
> 	at org.apache.atlas.typesystem.types.FieldMapping.output(FieldMapping.java:114)
> 	at org.apache.atlas.typesystem.persistence.ReferenceableInstance.toString(ReferenceableInstance.java:92)
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message