Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
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().
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)