ObjectStore help ...

From: Michael Gentry (Yes, I'm a Contractor) ("Michael)
Date: Wed May 25 2005 - 14:32:47 EDT

  • Next message: Gentry, Michael \(Contractor\): "RE: ObjectStore help ..."

    I'm trying to debug why Cayenne thinks my objects are edited (it thinks the
    primary keys have been updated/changed) when they haven't been and I think
    I've finally identified the portion in the code, but it doesn't make much
    sense to me at the moment.

    I�m currently using Cayenne 1.1 and in ObjectStore.java (hasChanges()
    method, line 805) is this:

                    Iterator currentIt = currentSnapshot.entrySet().iterator();
    while (currentIt.hasNext()) { Map.Entry entry =
    (Map.Entry) currentIt.next(); Object newValue =
    entry.getValue(); Object oldValue =
    committedSnapshot.get(entry.getKey()); if
    (!Util.nullSafeEquals(oldValue, newValue)) { return
    true; } }

    When debugging I print the old and new values (which are my primary key
    values at this point) and I get this:

    oldValue (byte[]) [0, 0, 0, 0, 0, 0, 0, 34, 89, 45, -9, 74] newValue
    (byte[]) [0, 0, 0, 0, 0, 0, 0, 34, 89, 45, -9, 74] oldValue.equals(newValue)
    (boolean) false newValue.equals(oldValue) (boolean) false

    They look equal to me, but equals() doesn�t seem to agree (and
    Util.nullSafeEquals() uses equals()). Anyone have any ideas why this might
    happen?

    Thanks!

    /dev/mrg



    This archive was generated by hypermail 2.0.0 : Wed May 25 2005 - 14:32:54 EDT