$Id$ "TODO" list for JustIce, the Java Class File Verifier by Enver Haase. - JustIce uses object generalization during pass 3b, as supposed by Sun. However, there are better methods such as the idea proposed by Staerk et al.: using sets of object types. - There are a few bugs concerning access rights of referenced method and probably fields. The tests for access rights that Sun defines should happen in pass four (which JustIce performs during pass 3a) are unintentionally omitted. This also happened to Sun and IBM with some of their version 1.3 JVMs. Thanks Markus Dahm. - There are bugs because of an ambiguity in the Java Virtual Machine Specification, Second Edition. These have to do with inheritance: A method invocation like MyObject::equals(Object) is considered illegal, if MyObject has no overriding definition of equals(Object). Sun clarified this issue via electronic mail: the invocation is legal, because MyObject inherits the member function equals(Object) from Object::equals(Object). The search algorithms don't seem to be trivial because interfaces can not only specify methods, but also declare fields. Also, access modifiers have to be honoured (see above). - It is not verified if classes that propose they would implement an interface _really_ implement all the methods. - The InstructionContext.getSuccessors() method may return the same successor more than one time. For performance reasons the ControlFlow- Graph.InstructionContextImpl class should return an array where the successors are pairwise disjoint. It should also be cached so that we don't have to do this calculation every time. ***End of File***