Hi Doug: In /course/com3362/sp99/DJ/simple-example I get a non-unique path. Do you know why? It seems to be very unique. -- Karl Class graph A = B C extends java.lang.Object. B = D extends java.lang.Object. java.lang.Object : B | C | A | D | E | Main | edu.neu.ccs.demeter.dj.Visitor | F common . C = extends java.lang.Object. D = E extends java.lang.Object. E = F extends java.lang.Object. Main = extends java.lang.Object. edu.neu.ccs.demeter.dj.Visitor : MyVisitor common extends java.lang.Object. MyVisitor = extends edu.neu.ccs.demeter.dj.Visitor. F = int extends java.lang.Object. int = . java.util.Collection = java.lang.Object. edu.neu.ccs.demeter.dj.Collection = java.lang.Object. End of Class graph begin before A before B before D after D after B after A end Exception in thread "main" edu.neu.ccs.demeter.dj.FetchException: Non-unique path. at edu.neu.ccs.demeter.dj.ObjectGraphSlice$Fetcher.traverseEdges(ObjectGraphSlice.java:288) at edu.neu.ccs.demeter.dj.ObjectGraphSlice$Traverser.traverseNode(ObjectGraphSlice.java:148) at edu.neu.ccs.demeter.dj.ObjectGraphSlice$Traverser.traverseEdge(ObjectGraphSlice.java:193) at edu.neu.ccs.demeter.dj.ObjectGraphSlice$Traverser.traverseEdges(ObjectGraphSlice.java:174) at edu.neu.ccs.demeter.dj.ObjectGraphSlice$Fetcher.traverseEdges(ObjectGraphSlice.java:284) at edu.neu.ccs.demeter.dj.ObjectGraphSlice$Traverser.traverseNode(ObjectGraphSlice.java:148) at edu.neu.ccs.demeter.dj.ObjectGraphSlice$Traverser.traverseEdge(ObjectGraphSlice.java:193) at edu.neu.ccs.demeter.dj.ObjectGraphSlice$Traverser.traverseEdges(ObjectGraphSlice.java:174) at edu.neu.ccs.demeter.dj.ObjectGraphSlice$Fetcher.traverseEdges(ObjectGraphSlice.java:284) at edu.neu.ccs.demeter.dj.ObjectGraphSlice$Traverser.traverseNode(ObjectGraphSlice.java:148) at edu.neu.ccs.demeter.dj.ObjectGraphSlice$Traverser.traverseEdge(ObjectGraphSlice.java:193) at edu.neu.ccs.demeter.dj.ObjectGraphSlice$Traverser.traverseEdges(ObjectGraphSlice.java:174) at edu.neu.ccs.demeter.dj.ObjectGraphSlice$Fetcher.traverseEdges(ObjectGraphSlice.java:284) at edu.neu.ccs.demeter.dj.ObjectGraphSlice$Traverser.traverseNode(ObjectGraphSlice.java:148) at edu.neu.ccs.demeter.dj.ObjectGraphSlice$Traverser.traverseEdge(ObjectGraphSlice.java:193) at edu.neu.ccs.demeter.dj.ObjectGraphSlice$Traverser.traverseEdges(ObjectGraphSlice.java:174) at edu.neu.ccs.demeter.dj.ObjectGraphSlice$Fetcher.traverseEdges(ObjectGraphSlice.java:284) at edu.neu.ccs.demeter.dj.ObjectGraphSlice$Traverser.traverseNode(ObjectGraphSlice.java:148) at edu.neu.ccs.demeter.dj.ObjectGraphSlice$Traverser.traverse(ObjectGraphSlice.java:117) at edu.neu.ccs.demeter.dj.ObjectGraphSlice.fetch(ObjectGraphSlice.java:88) at edu.neu.ccs.demeter.dj.TraversalGraph.fetch(TraversalGraph.java:58) at Main.main(Main.java:16)