openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Teresa Kan" <tck...@gmail.com>
Subject Re: [jira] Updated: (OPENJPA-261) UnsupportedOperationException occurred in BrokerImpl.java
Date Thu, 21 Jun 2007 15:23:18 GMT
Patrick,
After I applied your changes and I got the NPE in your changes:


*

if* ((_dirty == *null* || _dirty.isEmpty()

&& _clean == *null* || _clean.isEmpty()))

Exception in thread "main" <0.0.0 fatal store error> *
org.apache.openjpa.persistence.RollbackException*: null

at org.apache.openjpa.persistence.EntityManagerImpl.commit(*
EntityManagerImpl.java:420*)

at tutorial.ejb.TestEmpsPerClass.main(*TestEmpsPerClass.java:56*)

Caused by: <0.0.0 nonfatal general error> *
org.apache.openjpa.persistence.PersistenceException*: null

at org.apache.openjpa.kernel.BrokerImpl.afterCompletion(*BrokerImpl.java
:1834*)

at org.apache.openjpa.kernel.LocalManagedRuntime.commit(*
LocalManagedRuntime.java:93*)

at org.apache.openjpa.kernel.BrokerImpl.commit(*BrokerImpl.java:1320*)

at org.apache.openjpa.kernel.DelegatingBroker.commit(*DelegatingBroker.java
:869*)

at org.apache.openjpa.persistence.EntityManagerImpl.commit(*
EntityManagerImpl.java:409*)

... 1 more

Caused by: *java.lang.NullPointerException
*

at org.apache.openjpa.kernel.BrokerImpl$TransactionalCache.iterator(*
BrokerImpl.java:4691*)

at org.apache.openjpa.kernel.BrokerImpl.endTransaction(*BrokerImpl.java:2194
*)

at org.apache.openjpa.kernel.BrokerImpl.afterCompletion(*BrokerImpl.java
:1810*)


On 6/20/07, Patrick Linskey (JIRA) <jira@apache.org> wrote:
>
>
>     [
> https://issues.apache.org/jira/browse/OPENJPA-261?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel]
>
> Patrick Linskey updated OPENJPA-261:
> ------------------------------------
>
>    Attachment: OPENJPA-261-Java5.jar
>                OPENJPA-261.patch
>
> So I saw exactly this problem a few days ago, and fixed the code that was
> leading to the IteratorChain problem. Upon doing so, I just ended up
> uncovering a new problem.
>
> Attached is a patch that gets past this exception; I expect that you will
> just get a new exception, probably about the managed cache being corrupt.
> Can you try it out?
>
> The jar contains a a compiled version of the patch; because of some other
> changes that I'm working on in my environment, the jar has a dependency on
> Java 5; if you are still using JDK1.4, you'll need to manually apply the
> patch (or convince another OpenJPA developer to do so, and post the jar). If
> you are using Java 5, just put the jar in the front of your classpath, or
> update the contents of openjpa.jar with the classes listed in the jar.
>
> Also, can you describe what your test case is doing, or better yet, attach
> your test case to this issue?
>
> > UnsupportedOperationException occurred in BrokerImpl.java
> > ---------------------------------------------------------
> >
> >                 Key: OPENJPA-261
> >                 URL: https://issues.apache.org/jira/browse/OPENJPA-261
> >             Project: OpenJPA
> >          Issue Type: Bug
> >          Components: kernel
> >    Affects Versions: 0.9.7
> >         Environment: Window XP
> >            Reporter: Teresa Kan
> >            Priority: Critical
> >         Attachments: NPE.patch, OPENJPA-261-Java5.jar, OPENJPA-261.patch
> >
> >
> > While I was testing against the openjpa code, I got an
> UnsupportedOperationException in the BrokerImpl.endtransaction() method.
> The method set the transState to an empty Collection if there is no cache
> for transactions. Later the code got an UnsupportedOperationException.
> > Original code:
> > Collection transStates = _transCache;
> >         if (transStates == null)
> >             transStates = Collections.EMPTY_LIST;
> > .....
> > for (Iterator itr = transStates.iterator(); itr.hasNext();) {
> >             sm = (StateManagerImpl) itr.next();
> >             try {
> >                 if (rollback) {
> >                     // tell objects that may have been derefed then
> flushed
> >                     // (and therefore deleted) to un-deref
> >                     sm.setDereferencedDependent(false, false);
> >                     sm.rollback();
> >                 } else
> >                     sm.commit();
> >             } catch (RuntimeException re) {
> >                 exceps = add(exceps, re);
> >             }
> >          }
> > I put a check before this "for" loop then the
> UnsupportedOperationException
> > disappeared.
> > if (!transStates.isEmpty()) {
> >               for (Iterator itr = transStates.iterator(); itr.hasNext();)
> {
> >             sm = (StateManagerImpl) itr.next();
> >             try {
> >                 if (rollback) {
> >                     // tell objects that may have been derefed then
> flushed
> >                     // (and therefore deleted) to un-deref
> >                     sm.setDereferencedDependent(false, false);
> >                     sm.rollback();
> >                 } else
> >                     sm.commit();
> >             } catch (RuntimeException re) {
> >                 exceps = add(exceps, re);
> >             }
> >          }
> >         }
> > The NPE.patch is attached to this JIRA.
>
> --
> This message is automatically generated by JIRA.
> -
> You can reply to this email to add a comment to the issue online.
>
>

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