Hi Christopher, I checked through that list. I do have a questions: First, for classes like these: ptolemy/domains/gr/kernel/SceneGraphToken.java ptolemy/domains/gr/kernel/Scene2DToken.java ptolemy/data/ActorToken.java
Each has a isEqualTo method (Not sure why we are not overwriting the equals method), but each also has a type class corresponding to the token, and the equals method in that type only uses ==. I'm not sure how that works? Thanks, Jia On Tue, Jul 8, 2008 at 4:30 PM, Jia Zou <[EMAIL PROTECTED]> wrote: > Hi Christopher, > Thanks for pointing that out. I'll check the rest of the types soon. > > Jia > > > On Tue, Jul 8, 2008 at 3:37 PM, Christopher Brooks <[EMAIL PROTECTED]> > wrote: > >> Hi Jia, >> >> Actually, the Javadoc for java.lang.Comparable says that java. >> "Note that null is not an instance of any class, and e.compareTo(null) >> should throw a NullPointerException even though e.equals(null) >> returns false." >> >> So, equals(null) should return false and compareTo(null) should throw >> an NPE. >> >> See >> http://java.sun.com/javase/6/docs/api/java/lang/Comparable.html >> for details about natural ordering >> >> >> There were no unit tests for ptolemy.actor.util.Time. >> >> I created a unit test for this bug and fixed Time.java. >> >> One way around this is to do an instanceof check because null is not >> an instance of a class. So, you'll see equals implemented like: >> >> public boolean equals(Object time) { >> if (time instanceof Time) { >> return this.compareTo(time) == 0; >> } >> return false; >> } >> >> In Ptolemy, the classes have equals() methods. I checked the classes >> upto DEEvent, could you take a look at the classes below DEEvent? >> >> doc/tutorial/LeftRightDirector.java >> com/JLex/Main.java >> com/jgoodies/forms/layout/ConstantSize.java >> com/jgoodies/forms/layout/BoundedSize.java >> ptolemy/kernel/attributes/VersionAttribute.java >> ptolemy/backtrack/eclipse/ast/Type.java >> >> # No need to check these, they are used for back tracking >> ptolemy/backtrack/util/java/util/AbstractList.java >> ptolemy/backtrack/util/java/util/AbstractMap.java >> ptolemy/backtrack/util/java/util/Collections.java >> ptolemy/backtrack/util/java/util/Collections.java >> ptolemy/backtrack/util/java/util/Collections.java >> ptolemy/backtrack/util/java/util/Collections.java >> ptolemy/backtrack/util/java/util/Collections.java >> ptolemy/backtrack/util/java/util/Collections.java >> ptolemy/backtrack/util/java/util/Collections.java >> ptolemy/backtrack/util/java/util/Collections.java >> ptolemy/backtrack/util/java/util/Collections.java >> ptolemy/backtrack/util/java/util/Collections.java >> ptolemy/backtrack/util/java/util/Collections.java >> ptolemy/backtrack/util/java/util/AbstractSet.java >> ptolemy/backtrack/util/java/util/WeakHashMap.java >> ptolemy/backtrack/util/java/util/WeakHashMap.java >> ptolemy/backtrack/util/java/util/Hashtable.java >> >> # I checked these >> ptolemy/math/FixPoint.java >> ptolemy/math/Overflow.java >> ptolemy/math/Fraction.java >> ptolemy/math/FixPointQuantization.java >> ptolemy/math/Quantization.java >> ptolemy/math/Precision.java >> ptolemy/math/Rounding.java >> ptolemy/domains/fsm/kernel/ia/StatePair.java >> ptolemy/domains/csp/demo/DiningPhilosophers/Coordinate.java >> ptolemy/domains/de/kernel/DEEvent.java >> >> # Start checking here >> ptolemy/domains/gr/kernel/SceneGraphToken.java >> ptolemy/domains/gr/kernel/Scene2DToken.java >> ptolemy/graph/mapping/MapMapping.java >> ptolemy/graph/Graph.java >> ptolemy/graph/Inequality.java >> ptolemy/graph/LabeledList.java >> ptolemy/component/data/type/TupleType.java >> ptolemy/component/data/TupleToken.java >> ptolemy/apps/cacheAwareScheduler/kernel/MemoryAddress.java >> ptolemy/codegen/kernel/CodeGeneratorHelper.java >> ptolemy/codegen/kernel/CodeStream.java >> ptolemy/caltrop/ddi/util/DataflowActorInterpreter.java >> ptolemy/caltrop/ddi/DataflowWithRates.java >> ptolemy/moml/unit/Unit.java >> ptolemy/actor/gt/GraphAnalyzer.java >> ptolemy/actor/gt/GraphAnalyzer.java >> ptolemy/actor/util/Time.java >> ptolemy/data/type/MatrixType.java >> ptolemy/data/type/ObjectType.java >> ptolemy/data/type/BaseType.java >> ptolemy/data/type/RecordType.java >> ptolemy/data/type/ArrayType.java >> ptolemy/data/type/Type.java >> ptolemy/data/type/FunctionType.java >> ptolemy/data/type/FixType.java >> ptolemy/data/type/UnionType.java >> ptolemy/data/type/TypeConstant.java >> ptolemy/data/expr/CachedMethod.java >> ptolemy/data/properties/token/PropertyToken.java >> ptolemy/data/properties/PropertyHelper.java >> ptolemy/data/ShortToken.java >> ptolemy/data/LongToken.java >> ptolemy/data/UnsignedByteToken.java >> ptolemy/data/FloatToken.java >> ptolemy/data/StringToken.java >> ptolemy/data/ObjectToken.java >> ptolemy/data/ComplexToken.java >> ptolemy/data/ArrayToken.java >> ptolemy/data/IntMatrixToken.java >> ptolemy/data/UnionToken.java >> ptolemy/data/PetiteToken.java >> ptolemy/data/IntToken.java >> ptolemy/data/DoubleMatrixToken.java >> ptolemy/data/BooleanMatrixToken.java >> ptolemy/data/ActorToken.java >> ptolemy/data/DoubleToken.java >> ptolemy/data/FixMatrixToken.java >> ptolemy/data/RecordToken.java >> ptolemy/data/BooleanToken.java >> ptolemy/data/EventToken.java >> ptolemy/data/LongMatrixToken.java >> ptolemy/data/FixToken.java >> ptolemy/data/ComplexMatrixToken.java >> ptolemy/copernicus/kernel/SideEffectAnalysis.java >> >> _Christopher >> >> -------- >> >> >> It's because when you are comparing one time object with another, both >> of >> them have to be actual objects, and null is not an object. You should >> probably have a: >> if (a != null && b !=null) when you are using the equals method. >> >> Jia >> >> On Sun, Jul 6, 2008 at 3:54 PM, Richard Ware <[EMAIL PROTECTED]> >> wrote: >> >> > When I do this, >> > >> > Time a = ourDirector.getModelTime(); >> > Time b = null; >> > boolean comparison = a.equals( b ); >> > >> > I get a NullPointerException. >> > >> > That isn't what the equals() method of a Java object is supposed to >> do. >> > If >> > given null as the argument, it's supposed to calmly return the >> boolean >> > value "false". >> > >> > >> > >> > >> > >> ------------------------------------------------------------------------- >> --- >> > Posted to the ptolemy-hackers mailing list. Please send >> administrative >> > mail for this list to: >> [EMAIL PROTECTED] >> > >> > >