openjpa-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Adel Kassim" <adel.kas...@gmail.com>
Subject Re: InvalidStateException: Attempt to set column "client.version" to two different values
Date Wed, 14 May 2008 22:15:03 GMT
Hi All,

I have the same issue under weblogic 10.0(This uses openjpa 0.9.7)

Is any one aware of a workaround for this?

Best  Regards
Adel

2008/5/13 John Leach <john.leach@syger.com>:

>
> Dear list,
>
> I must stop talking to myself. Yes it is a bug
> https://issues.apache.org/jira/browse/OPENJPA-327 OPENJPA-327
>
> The test case uses @PostUpdate, but the same thing seems to happen for
> @PreUpdate. Sigh.
>
> Nonetheless, I still need help with the second showstopper...
>
> John
>
>
> John Leach wrote:
> >
> > Dear list,
> > The first showstopper InvalidStateException: Attempt to set column
> > "client.version" to two different values... where the version field is
> > being updated (this is an optimistic locking field, and has a @Version
> > annotation), is being caused by a @PreUpdate annotation in the abstract
> > model class.
> >
> > If I remove the annotation, all works fine, put it back and the exception
> > returns.
> >
> > I am inclined to think that this is a bug - in the above example a client
> > (many to one) is removed from a user (one to many), then I call flush.
> > Firstly I don't understand why the client is updated, but this may have
> to
> > do with the fact that I haven't been able to set a 'delete orphan'
> cascade
> > yet. Still, no values in the client were changed (by my code, at least).
> > The update calls the @PreUpdate method, but then seems to increment the
> > version number *again*.
> >
> > The second showstopper is finding a way to change the metadata before an
> > EntityManager is created. The intention is to provide a 'third'
> > alternative to annotations and/or persistence.xml, where the entity
> > classes contain only JPA annotations, with any remaining changes being
> > made programmatically. The one-to-many example defines CascadeType.ALL,
> > but actually requires a 'delete-orphans' extension for the tests to
> > succeed. Again, my many attempts at hooking into the properties
> > openjpa.BrokerFactory or openjpa.BrokerImpl or openjpa.MetaDataFactory
> all
> > met with failure of one sort or the other (mostly ClassCast exceptions
> > within the OpenJPA code).
> >
> > Any help would be greatly appreciated.
> >
> > The code is available in an open source project, called Spikes and can be
> > downloaded via Subversion with the command:
> >
> > svn checkout https://lab.jugtorino.it/svn/sandbox/spikes/trunk spikes
> >
> > Best regards
> > John
> >
> >
> > John Leach wrote:
> >>
> >> Hello list,
> >> Spikes is now Java 5 compatible. I also fixed a nasty mishtak in the
> >> manager. Say after me persist/merge != save/update. Added ant task
> >> openjpac bytecode twiddling before running the tests, and guess what?
> >> Same problem, er, persists. Sigh.
> >>
> >> John
> >>
> >>
> >> John Leach wrote:
> >>>
> >>> Hello Craig,
> >>> Oops, I compiled parancoe-yaml with Eclipse, and didn't check the
> >>> version. Should compile with Java 5 though. My mistake. Spike compiles
> >>> with the ant task set to 1.5 source and target. I'll recompile the jar
> >>> file and update the svn repository this weekend.
> >>>
> >>> John
> >>>
> >>>
> >>> Craig L Russell wrote:
> >>>>
> >>>> Hi John,
> >>>>
> >>>> Does the project require Java 6? I checked out the sources and cd
> >>>> trunk; ant. It appears that one of the dependencies is compiled with
> >>>> Java 6.
> >>>> test-compile:
> >>>>      [javac] Compiling 29 source files to /Users/clr/spikes/trunk/bin
> >>>>      [javac] /Users/clr/spikes/trunk/java/src/org/syger/fixtures/
> >>>> YamlHelper.java:28: cannot access org.parancoe.yaml.Yaml
> >>>>      [javac] bad class file: /Users/clr/spikes/trunk/extlib/parancoe-
> >>>> yaml.jar(org/parancoe/yaml/Yaml.class)
> >>>>      [javac] class file has wrong version 50.0, should be 49.0
> >>>>      [javac] Please remove or make sure it appears in the correct
> >>>> subdirectory of the classpath.
> >>>>      [javac] import org.parancoe.yaml.Yaml;
> >>>>      [javac]                          ^
> >>>>      [javac] 1 error
> >>>>
> >>>> more below...
> >>>>
> >>>> On May 10, 2008, at 7:38 AM, John Leach wrote:
> >>>>
> >>>>>
> >>>>> Dear list,
> >>>>> As part of a (very) small open source project to provide domain
> entity
> >>>>> mapping and association examples, together with a programmatic
> >>>>> interface to
> >>>>> reach outside the JPA 1.0 specifications, I am struggling with two
> >>>>> problems
> >>>>> using OpenJPA.
> >>>>>
> >>>>> I had better warn you all that I am a freelance consultant working
> >>>>> in Italy
> >>>>> and I use and will be using this work to sell both the advantages
and
> >>>>> disadvantages (but with solutions) of using JPA 1.0. to my clients.
> >>>>>
> >>>>> The first showstopper is an InvalidStateException: Attempt to set
> >>>>> column
> >>>>> "client.version" to two different values... where the version field
> >>>>> is being
> >>>>> updated (this is an optimistic locking field, and has a @Version
> >>>>> annotation), the SQL query being performed seems to be:
> >>>>> UPDATE client SET lastUpdated = ?, version = ? WHERE id = ? AND
> >>>>> version = ?
> >>>>> [params=(Timestamp) 2008-05-10 15:58:16.593, (int) 3, (long) 3,
> >>>>> (int) 2]
> >>>>
> >>>> This SQL seems correct. It's updating the lastUpdated and version
> >>>> columns and verifying that the version is correct. Where does this
> >>>> error occur?
> >>>>
> >>>> Craig
> >>>>>
> >>>>> The same annotated entities work just fine with Hibernate and
> >>>>> EclipseLink -
> >>>>> for what that's worth.
> >>>>> I have even tried adding openjpac in the ant task, but the results
> >>>>> remain
> >>>>> the same.
> >>>>> I am convinced that this is a Spring/OpenJPA configuration problem,
> >>>>> but
> >>>>> being a relative novice with Spring (and OpenJPA) I have been
> >>>>> beating my
> >>>>> head against the proverbial brick wall for two days, and not even
a
> >>>>> dent in
> >>>>> the wall to show for my efforts.
> >>>>>
> >>>>> The second showstopper is finding a way to change the metadata
> >>>>> before an
> >>>>> EntityManager is created. The intention is to provide a 'third'
> >>>>> alternative
> >>>>> to annotations and/or persistence.xml, where the entity classes
> >>>>> contain only
> >>>>> JPA annotations, with any remaining changes being made
> >>>>> programmatically. The
> >>>>> one-to-many example defines CascadeType.ALL, but actually requires
a
> >>>>> 'delete-orphans' extension for the tests to succeed. Again, my many
> >>>>> attempts
> >>>>> at hooking into the properties openjpa.BrokerFactory or
> >>>>> openjpa.BrokerImpl
> >>>>> or openjpa.MetaDataFactory all met with failure of one sort or the
> >>>>> other
> >>>>> (mostly ClassCast exceptions within the OpenJPA code).
> >>>>>
> >>>>> Any help would be greatly appreciated. I am working 'in
> >>>>> collaboration with'
> >>>>> two Java User Groups (Torino and Trento), but it's really me who
> >>>>> wrote most
> >>>>> of the code.
> >>>>>
> >>>>> The open source project, called Spikes (guess why) can be downloaded
> >>>>> via
> >>>>> Subversion with the command:
> >>>>> svn checkout https://lab.jugtorino.it/svn/sandbox/spikes/trunkspikes
> >>>>> There is a Trac site at
> >>>>> http://lab.jugtorino.it/trac/sandbox/wiki/Spikes
> >>>>> ,
> >>>>> which I have converted to English in most places, and also an
> >>>>> article (which
> >>>>> started the project rolling)
> >>>>> http://www.syger.it/Tutorials/JPA10Gotchas.html
> >>>>>
> >>>>> Best regards
> >>>>> John Leach, Verona, Italy
> >>>>> --
> >>>>> View this message in context:
> >>>>>
> http://www.nabble.com/InvalidStateException%3A-Attempt-to-set-column-%22client.version%22-to-two-different-values-tp17163045p17163045.html
> >>>>> Sent from the OpenJPA Users mailing list archive at Nabble.com.
> >>>>>
> >>>>
> >>>> Craig Russell
> >>>> Architect, Sun Java Enterprise System
> http://java.sun.com/products/jdo
> >>>> 408 276-5638 mailto:Craig.Russell@sun.com
> >>>> P.S. A good JDO? O, Gasp!
> >>>>
> >>>>
> >>>>
> >>>>
> >>>
> >>>
> >>
> >>
> >
> >
>
> --
> View this message in context:
> http://www.nabble.com/InvalidStateException%3A-Attempt-to-set-column-%22client.version%22-to-two-different-values-tp17163045p17204927.html
>  Sent from the OpenJPA Users mailing list archive at Nabble.com.
>
>


-- 
Kind regards

Adel

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message