openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Adam Hardy (JIRA)" <j...@apache.org>
Subject [jira] Updated: (OPENJPA-560) merge() throws NPE or unable to create proxy
Date Tue, 08 Apr 2008 15:53:24 GMT

     [ https://issues.apache.org/jira/browse/OPENJPA-560?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Adam Hardy updated OPENJPA-560:
-------------------------------

    Attachment: bug-jpa-merge.zip

In case you don't use maven, here are the dependencies (exc. stuff for Hibernate and Toplink):

   commons-collections:commons-collections:jar:3.2:compile
[INFO]    commons-lang:commons-lang:jar:2.1:compile
[INFO]    commons-logging:commons-logging:jar:1.0.4:compile
[INFO]    commons-pool:commons-pool:jar:1.3:compile
[INFO]    javax.persistence:persistence-api:jar:1.0:compile
[INFO]    javax.transaction:jta:jar:1.0.1B:compile
[INFO]    junit:junit:jar:4.1:compile
[INFO]    net.sourceforge.serp:serp:jar:1.13.1:compile
[INFO]    org.apache.derby:derby:jar:10.3.2.1:compile
[INFO]    org.apache.geronimo.specs:geronimo-jms_1.1_spec:jar:1.0.1:compile
[INFO]    org.apache.geronimo.specs:geronimo-jpa_3.0_spec:jar:1.0:compile
[INFO]    org.apache.geronimo.specs:geronimo-jta_1.1_spec:jar:1.1:compile
[INFO]    org.apache.openjpa:openjpa:jar:1.1.0-SNAPSHOT:compile


> merge() throws NPE or unable to create proxy
> --------------------------------------------
>
>                 Key: OPENJPA-560
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-560
>             Project: OpenJPA
>          Issue Type: Bug
>    Affects Versions: 1.1.0
>         Environment: Linux 2.6, Java 1.5.0_12, Derby 10.3.2.1
>            Reporter: Adam Hardy
>         Attachments: bug-jpa-merge.zip
>
>
> I have reduced this to a stand-alone unit test and also tested it against Toplink and
Hibernate, with which it works.
> So I'm looking at a pure OpenJPA issue here.
> Here is the low-down:
> - Parent - child entities mapped using XML as opposed to annotations
> - both inherit a mapped superclass
> - both have a prepersist and preupdate listener configured
> - not using enhancement
> This is all I do:
> EntityManager entityManager =
>     db.entityManagerFactory.createEntityManager();
> entityManager.getTransaction().begin();
> Genus genus = entityManager.find(Genus.class, new Long(1));
> entityManager.getTransaction().commit();
> entityManager.close();
> // now detached
> entityManager = db.entityManagerFactory.createEntityManager();
> entityManager.getTransaction().begin();
> entityManager.merge(genus);
> and it throws an exception. If there is a child row in the db, I get the exception below.
> If there is no child in existence, I get a NullPointerException.
> If I enhance the entities, all is hunkydory.
> This is using OpenJPA v1.1.0 snapshot from February. 
>  $Proxy13 seems to be the name of the parent's child collection property, I can see from
debugging.
>  <openjpa-1.1.0-SNAPSHOT-r420667:609825 fatal general error> org.apache.openjpa.persistence.PersistenceException:
Unable to create a second class object proxy for final class "class $Proxy13".
>      at org.apache.openjpa.util.ProxyManagerImpl.assertNotFinal(ProxyManagerImpl.java:555)
>      at org.apache.openjpa.util.ProxyManagerImpl.generateProxyCollectionBytecode(ProxyManagerImpl.java:524)
>      at org.apache.openjpa.util.ProxyManagerImpl.getFactoryProxyCollection(ProxyManagerImpl.java:373)
>      at org.apache.openjpa.util.ProxyManagerImpl.copyCollection(ProxyManagerImpl.java:192)
>      at org.apache.openjpa.kernel.AttachStrategy.copyCollection(AttachStrategy.java:342)
>      at org.apache.openjpa.kernel.AttachStrategy.attachCollection(AttachStrategy.java:319)
>      at org.apache.openjpa.kernel.AttachStrategy.replaceList(AttachStrategy.java:357)
>      at org.apache.openjpa.kernel.AttachStrategy.attachField(AttachStrategy.java:222)
>      at org.apache.openjpa.kernel.VersionAttachStrategy.attach(VersionAttachStrategy.java:151)
>      at org.apache.openjpa.kernel.AttachManager.attach(AttachManager.java:241)
>      at org.apache.openjpa.kernel.AttachManager.attach(AttachManager.java:101)
>      at org.apache.openjpa.kernel.BrokerImpl.attach(BrokerImpl.java:3196)
>      at org.apache.openjpa.kernel.DelegatingBroker.attach(DelegatingBroker.java:1142)
>      at org.apache.openjpa.persistence.EntityManagerImpl.merge(EntityManagerImpl.java:736)
>      at org.permacode.atomictest.jpa.JpaSpeciesDao.persist(JpaSpeciesDao.java:81)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message