> On April 13, 2016, 12:21 a.m., Hemanth Yamijala wrote: > > typesystem/src/main/java/org/apache/atlas/typesystem/types/FieldMapping.java, > > line 51 > > <https://reviews.apache.org/r/45948/diff/1/?file=1337582#file1337582line51> > > > > This may not be a valid case - maybe Shwetha would know better... but > > if a FieldMapping instance's output is called from different threads, > > wouldn't this mutable state cause issues? Can't think of an easy way to fix > > that very quickly though. So please take a call based on whether it is a > > valid use case or not. > > Shwetha GS wrote: > Yes, this will not work as there is single instance of type in the > system. Can you create the list and pass it in the output() method instead? > > David Kantor wrote: > Rather than passing a list around, I moved the output status tracking to > the structs themselves, which are not singletons like FieldMapping.
outputInProgress shouldn't be a class level field and it has no significance outside of output(). I think it makes more sense to maintain it as argument to output() - Shwetha ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/45948/#review128589 ----------------------------------------------------------- On April 15, 2016, 6:36 p.m., David Kantor wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/45948/ > ----------------------------------------------------------- > > (Updated April 15, 2016, 6:36 p.m.) > > > Review request for atlas. > > > Bugs: ATLAS-645 > https://issues.apache.org/jira/browse/ATLAS-645 > > > Repository: atlas > > > Description > ------- > > ATLAS-645: In FieldMapping.output(), avoid infinite recursion when > IReferenceableInstance and IStruct instances reference each other. > > > Diffs > ----- > > typesystem/src/main/java/org/apache/atlas/typesystem/AbstractStruct.java > PRE-CREATION > typesystem/src/main/java/org/apache/atlas/typesystem/IStruct.java > e0f85761a0f436cd4b4cd355d6c8ab65dca7fcc9 > typesystem/src/main/java/org/apache/atlas/typesystem/Struct.java > 70deab29df36e7e18f517c4880d7088f8bec06a5 > > typesystem/src/main/java/org/apache/atlas/typesystem/persistence/DownCastStructInstance.java > d3b9a3376ebce92ff8b50708fa841ab5868b366a > typesystem/src/main/java/org/apache/atlas/typesystem/persistence/Id.java > d742bb73e89772afcf8e0bd25f4fda9b7c94758b > > typesystem/src/main/java/org/apache/atlas/typesystem/persistence/StructInstance.java > 16c3a24e51f0389946e0e6094a6a3e4e1b9dff0f > > typesystem/src/main/java/org/apache/atlas/typesystem/types/FieldMapping.java > 36149bafff80b68ce176e82dcacac87035459362 > > typesystem/src/test/java/org/apache/atlas/typesystem/types/FieldMappingTest.java > PRE-CREATION > > Diff: https://reviews.apache.org/r/45948/diff/ > > > Testing > ------- > > Ran all unit and integration tests with no regressions. Added test cases > > > Thanks, > > David Kantor > >