Uploaded image for project: 'Atlas'
  1. Atlas
  2. ATLAS-645

FieldMapping.output() results in stack overflow when instances reference each other

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 0.7-incubating
    • 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)
      

      Attachments

        1. rb45948.patch
          17 kB
          Dave Kantor
        2. rb45948.patch
          33 kB
          Shwetha GS

        Activity

          People

            dkantor Dave Kantor
            shwethags Shwetha GS
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: