Re: Cayenne CRUD tester and found bugs (1.2M4)

From: Andrus Adamchik (andru..bjectstyle.org)
Date: Mon Jun 20 2005 - 22:22:42 EDT

  • Next message: John Martyniak: "Re: Newlines"

    This finally forced me to install JDK 1.5 on my Mac and upgrade to
    Eclipse 3.1 :-)

    Anyway, I found a bug ... Integer vs. Long PK:

    http://objectstyle.org/jira/secure/ViewIssue.jspa?key=CAY-329

    Once we fix it, I guess we should upload the automated tester to the
    examples section on Wiki.

    Andrus

    On Jun 14, 2005, at 6:14 PM, Mikaël Cluseau wrote:

    > Sure, I packaged the CRUD test for your convenience. Any code there is
    > free of use for the Cayenne project (incl. CayenneDataBean, I
    > thought it
    > could be of interest). There no licence, it is left to your
    > discretion.
    >
    > This is an Eclipse project export, I understood it would help :-) I
    > included my cayenne.jar and the corresponding sources.
    >
    > http://nwrk.dyndns.org/~nwrk/CayenneTesting.tar.gz
    >
    > Le lundi 13 juin 2005 à 19:42 -0400, Andrus Adamchik a écrit :
    >
    >> A similar problem was identified for byte[] PKs (http://
    >> objectstyle.org/jira/secure/ViewIssue.jspa?key=CAY-323). It was shown
    >> that the problem is in Util.nullSafeEquals() not doing deep array
    >> comparison. However I've never seen it happen for the int ObjectIds.
    >> So it must be something else.
    >>
    >> Do you have a test case that I can run to reproduce it?
    >>
    >> Andrus
    >>
    >>
    >> On Jun 11, 2005, at 4:38 PM, Mikaël Cluseau wrote:
    >>
    >>
    >>> Le samedi 11 juin 2005 à 13:24 -0400, Andrus Adamchik a écrit :
    >>>
    >>>
    >>>>> I'm writing an automated CRUD tester for Cayenne (I will
    >>>>> contribute
    >>>>> it ;-)).
    >>>>>
    >>>>>
    >>>>
    >>>> This would definitely be extremely handy.
    >>>>
    >>>>
    >>>
    >>> That will be done soon then :-)
    >>>
    >>>
    >>>
    >>>>> 1. I create a DataObject (mandatory attributes and relationships
    >>>>> are filled with random values).
    >>>>>
    >>>>>
    >>>>
    >>>> I assume there is a "1.5. commit"?
    >>>>
    >>>>
    >>>
    >>> There are commits after each modifying step: create, commit,
    >>> refetch,
    >>> update, commit, delete, commit (and a hidden cleanup, commit). I
    >>> updated
    >>> to the latest CVS version. I traced the code deeper this time :-)
    >>> and I
    >>> think I've found why I have this problem.
    >>>
    >>> For some reason I still need to find, Cayenne wishes to replace the
    >>> object's PK with the same value. The problem is that then, it
    >>> does the
    >>> following code, lines 604 and 605 of ObjectStore.java :
    >>>
    >>> objectMap.remove(id);
    >>> dataRowCache.forgetSnapshot(id);
    >>>
    >>> And since the new ObjectId is the same as the old one, it
    >>> effectively
    >>> removes the objet for the cache. The update is (id is the primary
    >>> key) :
    >>>
    >>> UPDATE schema.table SET id = ?, [...] WHERE id = ?
    >>> [bind: 10001, [...], 10001]
    >>>
    >>> I checked, I never touch the PK, so I really don't get when Cayenne
    >>> changes it... I'm using PostgreSQL, if there anything with the
    >>> adaptor
    >>> to check. Any idea?
    >>>
    >>>
    >>>
    >>
    >>
    >
    >



    This archive was generated by hypermail 2.0.0 : Mon Jun 20 2005 - 22:22:44 EDT