You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by hu...@apache.org on 2010/04/19 17:59:35 UTC
svn commit: r935639 -
/incubator/aries/branches/0.1-incubating-RC1/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/PersistenceUnitInfoImpl.java
Author: hughesj
Date: Mon Apr 19 15:59:35 2010
New Revision: 935639
URL: http://svn.apache.org/viewvc?rev=935639&view=rev
Log:
ARIES-287 fix a couple egregious errors in PersistenceUnitInfoImpl - this time in the 0.1-incubating release candidate branch
Modified:
incubator/aries/branches/0.1-incubating-RC1/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/PersistenceUnitInfoImpl.java
Modified: incubator/aries/branches/0.1-incubating-RC1/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/PersistenceUnitInfoImpl.java
URL: http://svn.apache.org/viewvc/incubator/aries/branches/0.1-incubating-RC1/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/PersistenceUnitInfoImpl.java?rev=935639&r1=935638&r2=935639&view=diff
==============================================================================
--- incubator/aries/branches/0.1-incubating-RC1/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/PersistenceUnitInfoImpl.java (original)
+++ incubator/aries/branches/0.1-incubating-RC1/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/PersistenceUnitInfoImpl.java Mon Apr 19 15:59:35 2010
@@ -80,17 +80,20 @@ public class PersistenceUnitInfoImpl imp
if(jarFiles != null) {
for(String jarFile : jarFiles){
URL url = bundle.getResource(jarFile);
- if(url == null)
+ if(url == null) {
_logger.error("The persistence unit {} in bundle {} listed the jar file {}, but " +
"{} could not be found in the bundle", new Object[]{getPersistenceUnitName(),
bundle.getSymbolicName() + "_" + bundle.getVersion(), jarFile, jarFile});
+ } else {
+ urls.add(url);
+ }
}
}
return urls;
}
public DataSource getJtaDataSource() {
- String jndiString = (String) unit.getPersistenceXmlMetadata().get(ParsedPersistenceUnit.NON_JTA_DATASOURCE);
+ String jndiString = (String) unit.getPersistenceXmlMetadata().get(ParsedPersistenceUnit.JTA_DATASOURCE);
DataSource toReturn = null;
if(jndiString != null) {
try {
Re: svn commit: r935639 - /incubator/aries/branches/0.1-incubating-RC1/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/PersistenceUnitInfoImpl.java
Posted by Joe Bohn <jo...@gmail.com>.
Thanks Brian. That does the trick and fortunately it appears that I can
add it into the config.ini so that users won't have to cut/paste the
entire content to run the sample. There certainly are a lot of entries!
Joe
On 4/20/10 8:50 AM, Brian De Pradine wrote:
> Hi Joe,
>
> The mechanism to specify the bootclasspath was removed a while ago in
> favour of the mechanism that David is referring to (this is currently the
> way that the transaction unit tests work). In order to get this mechanism
> to work for the samples you will need to add the following to the command
> line (it is quite long so I suggest creating a script or batch file)
>
> -Dorg.osgi.framework.system.packages=javax.accessibility,javax.activation,javax.activity,javax.annotation,javax.annotation.processing,javax.crypto,javax.crypto.interfaces,javax.crypto.spec,javax.imageio,javax.imageio.event,javax.imageio.metadata,javax.imageio.plugins.bmp,javax.imageio.plugins.jpeg,javax.imageio.spi,javax.imageio.stream,javax.jws,javax.jws.soap,javax.lang.model,javax.lang.model.element,javax.lang.model.type,javax.lang.model.util,javax.management,javax.management.loading,javax.management.modelmbean,javax.management.monitor,javax.management.openmbean,javax.management.relation,javax.management.remote,javax.management.remote.rmi,javax.management.timer,javax.naming,javax.naming.directory,javax.naming.event,javax.naming.ldap,javax.naming.spi,javax.net,javax.net.ssl,javax.print,javax.print.attribute,javax.print.attribute.standard,javax.print.event,javax.rmi,javax.rmi.CORBA,javax.rmi.ssl,javax.script,javax.security.auth,javax.security.auth.callback,javax.security.au
t!
> h.kerberos,javax.security.auth.login,javax.security.auth.spi,javax.security.auth.x500,javax.security.cert,javax.security.sasl,javax.sound.midi,javax.sound.midi.spi,javax.sound.sampled,javax.sound.sampled.spi,javax.sql,javax.sql.rowset,javax.sql.rowset.serial,javax.sql.rowset.spi,javax.swing,javax.swing.border,javax.swing.colorchooser,javax.swing.event,javax.swing.filechooser,javax.swing.plaf,javax.swing.plaf.basic,javax.swing.plaf.metal,javax.swing.plaf.multi,javax.swing.plaf.synth,javax.swing.table,javax.swing.text,javax.swing.text.html,javax.swing.text.html.parser,javax.swing.text.rtf,javax.swing.tree,javax.swing.undo,javax.tools,javax.xml,javax.xml.bind,javax.xml.bind.annotation,javax.xml.bind.annotation.adapters,javax.xml.bind.attachment,javax.xml.bind.helpers,javax.xml.bind.util,javax.xml.crypto,javax.xml.crypto.dom,javax.xml.crypto.dsig,javax.xml.crypto.dsig.dom,javax.xml.crypto.dsig.keyinfo,javax.xml.crypto.dsig.spec,javax.xml.datatype,javax.xml.namespace,javax.xml
.p!
> arsers,javax.xml.soap,javax.xml.stream,javax.xml.stream.events,javax.xml.stream.util,javax.xml.transform,javax.xml.transform.dom,javax.xml.transform.sax,javax.xml.transform.stax,javax.xml.transform.stream,javax.xml.validation,javax.xml.ws,javax.xml.ws.handler,javax.xml.ws.handler.soap,javax.xml.ws.http,javax.xml.ws.soap,javax.xml.ws.spi,javax.xml.xpath,org.ietf.jgss,org.omg.CORBA,org.omg.CORBA.DynAnyPackage,org.omg.CORBA.ORBPackage,org.omg.CORBA.TypeCodePackage,org.omg.CORBA.portable,org.omg.CORBA_2_3,org.omg.CORBA_2_3.portable,org.omg.CosNaming,org.omg.CosNaming.NamingContextExtPackage,org.omg.CosNaming.NamingContextPackage,org.omg.Dynamic,org.omg.DynamicAny,org.omg.DynamicAny.DynAnyFactoryPackage,org.omg.DynamicAny.DynAnyPackage,org.omg.IOP,org.omg.IOP.CodecFactoryPackage,org.omg.IOP.CodecPackage,org.omg.Messaging,org.omg.PortableInterceptor,org.omg.PortableInterceptor.ORBInitInfoPackage,org.omg.PortableServer,org.omg.PortableServer.CurrentPackage,org.omg.PortableServer
.P!
> OAManagerPackage,org.omg.PortableServer.POAPackage,org.omg.PortableServ!
> er.ServantLocatorPackage,org.omg.PortableServer.portable,org.omg.SendingContext,org.omg.stub.java.rmi,org.w3c.dom,org.w3c.dom.bootstrap,org.w3c.dom.css,org.w3c.dom.events,org.w3c.dom.html,org.w3c.dom.ls,org.w3c.dom.ranges,org.w3c.dom.stylesheets,org.w3c.dom.traversal,org.w3c.dom.views,org.xml.sax,org.xml.sax.ext,org.xml.sax.helpers,javax.transaction;partial=true;mandatory:=partial,javax.transaction.xa;partial=true;mandatory:=partial
>
> Cheers
>
> Brian DePradine
> Web Services Development
> IBM Hursley
> External +44 (0) 1962 816319 Internal 246319
>
> If you can't find the time to do it right the first time, where will you
> find the time to do it again?
>
>
> Joe Bohn<jo...@gmail.com> wrote on 19/04/2010 20:30:06:
>
>> [image removed]
>>
>> Re: svn commit: r935639 - /incubator/aries/branches/0.1-incubating-
>> RC1/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/
>> unit/impl/PersistenceUnitInfoImpl.java
>>
>> Joe Bohn
>>
>> to:
>>
>> aries-dev
>>
>> 19/04/2010 20:30
>>
>> Please respond to aries-dev
>>
>>
>> I didn't have any success specifying bootclasspath when starting equinox
>
>> ... same linkage error. I also tried to removing the geronimo-jta
>> spec from the config.ini to eliminate the possibility of it being loaded
>
>> from 2 different classloaders ... but still the same result.
>>
>> Joe
>>
>>
>>
>> On 4/19/10 1:25 PM, Joe Bohn wrote:
>>>
>>> Thanks David. I was just speaking about this with Jarek as well. So it
>>> seems that the problem is that some transaction classes are loaded
> from
>>> the system bundle. At one time we were including the geronimo-jta spec
>>> jar in the Xbootclasspath when starting equinox to avoid this issue.
> But
>>> then something was changed (don't recall what at the moment) so that
> was
>>> no longer necessary. I'll try adding the spec back to the
> Xbootclasspath
>>> when starting equinox to confirm that resolves the issue. If anybody
>>> recalls what had changed that removed that requirement - and why it no
>>> longer seems to be working - please let me know.
>>>
>>> Joe
>>>
>>> On 4/19/10 1:05 PM, David Jencks wrote:
>>>> Karaf has some goo like
>>>>
>>>> javax.transaction; javax.transaction.xa; version=1.1; partial=true;
>>>> mandatory:=partial, \
>>>>
>>>> about exporting from the system bundle which is supposed to avoid
> some
>>>> linkage problems. Do the samples have the same goo?
>>>>
>>>> thanks
>>>> david jencks
>>>>
>>>> On Apr 19, 2010, at 9:54 AM, Joe Bohn wrote:
>>>>
>>>>> It certainly looks like this fix is necessary (the one to return the
>>>>> JTA_DATASOURCE rather than the NON_JTA_DATASOURCE) - but I want to
>>>>> warn you that it surfaces another problem. I don't know the details
>>>>> of how to fix this yet but we need to get it resolved. This is
>>>>> especially important because it looks like you are getting ready to
>>>>> create a new RC and I think this error will prevent that from
> passing
>>>>> if not resolved:
>>>>>
>>>>> To recreate the error just run Blog for JPA or AriesTrader
> configured
>>>>> for container managed JPA.
>>>>>
>>>>> java.lang.LinkageError: loader constraint violation: when resolving
>>>>> interface method
>>>>> "javax.transaction.Transaction.enlistResource(Ljavax/
>> transaction/xa/XAResource;)Z"
>>>>> the class loader (instance of
>>>>> org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader) of the
>>>>> current class, org/apache/aries/transaction/jdbc/ConnectionWrapper,
>>>>> and the class loader (instance of
>>>>> org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader) for
>>>>> resolved class, javax/transaction/Transaction, have different Class
>>>>> objects for the type javax/transaction/xa/XAResource used in the
>>>>> signature
>>>>> at
>>>>> org.apache.aries.transaction.jdbc.ConnectionWrapper.<init>
>> (ConnectionWrapper.java:67)
>>>>>
>>>>> at
>>>>>
>>
> org.apache.aries.transaction.jdbc.XADatasourceEnlistingWrapper.getEnlistedConnection
>> (XADatasourceEnlistingWrapper.java:85)
>>>>>
>>>>> at
>>>>>
>>
> org.apache.aries.transaction.jdbc.XADatasourceEnlistingWrapper.getConnection
>> (XADatasourceEnlistingWrapper.java:50)
>>>>>
>>>>> at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
>>>>> at
>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke
>> (DelegatingMethodAccessorImpl.java:25)
>>>>>
>>>>> at java.lang.reflect.Method.invoke(Method.java:597)
>>>>> at
>>>>> org.apache.aries.jndi.services.ServiceHelper
>> $JNDIServiceDamper.invoke(ServiceHelper.java:99)
>>>>>
>>>>> at $Proxy13.getConnection(Unknown Source)
>>>>> at
>>>>> org.apache.openjpa.lib.jdbc.DelegatingDataSource.getConnection
>> (DelegatingDataSource.java:131)
>>>>>
>>>>> at
>>>>> org.apache.openjpa.lib.jdbc.DecoratingDataSource.getConnection
>> (DecoratingDataSource.java:106)
>>>>>
>>>>> at
>>>>> org.apache.openjpa.jdbc.sql.DBDictionaryFactory.newDBDictionary
>> (DBDictionaryFactory.java:91)
>>>>>
>>>>> at
>>>>>
>>
> org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getDBDictionaryInstance
>> (JDBCConfigurationImpl.java:595)
>>>>>
>>>>> at
>>>>> org.apache.openjpa.jdbc.meta.MappingRepository.endConfiguration
>> (MappingRepository.java:1489)
>>>>>
>>>>> at
>>>>> org.apache.openjpa.lib.conf.Configurations.configureInstance
>> (Configurations.java:507)
>>>>>
>>>>> at
>>>>> org.apache.openjpa.lib.conf.Configurations.configureInstance
>> (Configurations.java:432)
>>>>>
>>>>> at
>>>>>
> org.apache.openjpa.lib.conf.PluginValue.instantiate(PluginValue.java:104)
>>>>>
>>>>> at
>>>>> org.apache.openjpa.conf.MetaDataRepositoryValue.instantiate
>> (MetaDataRepositoryValue.java:68)
>>>>>
>>>>> at
>>>>>
> org.apache.openjpa.lib.conf.ObjectValue.instantiate(ObjectValue.java:83)
>>>>> at
>>>>>
>>
> org.apache.openjpa.conf.OpenJPAConfigurationImpl.newMetaDataRepositoryInstance
>> (OpenJPAConfigurationImpl.java:939)
>>>>>
>>>>> at
>>>>>
>>
> org.apache.openjpa.conf.OpenJPAConfigurationImpl.getMetaDataRepositoryInstance
>> (OpenJPAConfigurationImpl.java:930)
>>>>>
>>>>> at
> org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java:343)
>>>>> at
> org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java:315)
>>>>> at
>>>>> org.apache.openjpa.kernel.AbstractBrokerFactory.initializeBroker
>> (AbstractBrokerFactory.java:218)
>>>>>
>>>>> at
>>>>> org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker
>> (AbstractBrokerFactory.java:202)
>>>>>
>>>>> at
>>>>> org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker
>> (DelegatingBrokerFactory.java:156)
>>>>>
>>>>> at
>>>>>
>>
> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager
>> (EntityManagerFactoryImpl.java:213)
>>>>>
>>>>> at
>>>>>
>>
> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager
>> (EntityManagerFactoryImpl.java:57)
>>>>>
>>>>> at
>>>>>
>>
> org.apache.aries.jpa.container.context.transaction.impl.JTAPersistenceContextRegistry.getCurrentPersistenceContext
>> (JTAPersistenceContextRegistry.java:122)
>>>>>
>>>>> at
>>>>>
>>
> org.apache.aries.jpa.container.context.transaction.impl.JTAEntityManager.getPersistenceContext
>> (JTAEntityManager.java:73)
>>>>>
>>>>> at
>>>>>
>>
> org.apache.aries.jpa.container.context.transaction.impl.JTAEntityManager.persist
>> (JTAEntityManager.java:220)
>>>>>
>>>>> at
>>>>>
>>
> org.apache.aries.samples.ariestrader.persist.jpa.cm.TradeJpaCm.createQuote
>> (TradeJpaCm.java:444)
>>>>>
>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>> at
>>>>> sun.reflect.NativeMethodAccessorImpl.invoke
>> (NativeMethodAccessorImpl.java:39)
>>>>>
>>>>> at
>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke
>> (DelegatingMethodAccessorImpl.java:25)
>>>>>
>>>>> at java.lang.reflect.Method.invoke(Method.java:597)
>>>>> at
>>>>> org.apache.aries.blueprint.proxy.Collaborator$1.invoke
>> (Collaborator.java:66)
>>>>>
>>>>> at
>>>>> org.apache.aries.blueprint.proxy.Collaborator.invoke
>> (Collaborator.java:151)
>>>>>
>>>>> at
>>>>> org.apache.aries.samples.ariestrader.persist.jpa.cm.
>> $TradeJpaCm360369157.createQuote(Unknown
>>>>> Source)
>>>>> at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
>>>>> at
>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke
>> (DelegatingMethodAccessorImpl.java:25)
>>>>>
>>>>> at java.lang.reflect.Method.invoke(Method.java:597)
>>>>> at
>>>>>
>> org.apache.aries.blueprint.container.AbstractServiceReferenceRecipe
>> $JdkProxyFactory$1.invoke(AbstractServiceReferenceRecipe.java:614)
>>>>>
>>>>> at $Proxy15.createQuote(Unknown Source)
>>>>> at
>>>>> org.apache.aries.samples.ariestrader.web.TradeBuildDB.<init>
>> (TradeBuildDB.java:183)
>>>>>
>>>>> at
>>>>>
>> org.apache.aries.samples.ariestrader.web.TradeConfigServlet.service
>> (TradeConfigServlet.java:418)
>>>>>
>>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
>>>>> at
>>>>>
> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502)
>>>>> at
>>>>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
>> (ServletHandler.java:1157)
>>>>>
>>>>> at
>>>>> org.ops4j.pax.web.service.internal.WelcomeFilesFilter.doFilter
>> (WelcomeFilesFilter.java:169)
>>>>>
>>>>> at
>>>>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
>> (ServletHandler.java:1148)
>>>>>
>>>>> at
>>>>>
> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:387)
>>>>> at
>>>>>
>>
> org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.handle
>> (HttpServiceServletHandler.java:64)
>>>>>
>>>>> at
>>>>>
> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
>>>>> at
>>>>>
> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
>>>>> at
>>>>>
>> org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.handle
>> (HttpServiceContext.java:111)
>>>>>
>>>>> at
>>>>>
>>
> org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle
>> (JettyServerHandlerCollection.java:64)
>>>>>
>>>>> at
>>>>>
> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
>>>>> at org.mortbay.jetty.Server.handle(Server.java:322)
>>>>> at
>>>>>
> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534)
>>>>> at
>>>>> org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete
>> (HttpConnection.java:864)
>>>>>
>>>>> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:539)
>>>>> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
>>>>> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
>>>>> at
>>>>> org.mortbay.io.nio.SelectChannelEndPoint.run
>> (SelectChannelEndPoint.java:409)
>>>>>
>>>>> at
>>>>> org.mortbay.thread.QueuedThreadPool$PoolThread.run
>> (QueuedThreadPool.java:520)
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> I discovered this in trunk while attempting to run the AriesTrader
>>>>> sample - but the same is also true of the Blog sample. When we
>>>>> attempt to use declarative transaction support after the change be
>>>>>
>>>>>
>>>>> On 4/19/10 11:59 AM, hughesj@apache.org wrote:
>>>>>> Author: hughesj
>>>>>> Date: Mon Apr 19 15:59:35 2010
>>>>>> New Revision: 935639
>>>>>>
>>>>>> URL: http://svn.apache.org/viewvc?rev=935639&view=rev
>>>>>> Log:
>>>>>> ARIES-287 fix a couple egregious errors in PersistenceUnitInfoImpl
> -
>>>>>> this time in the 0.1-incubating release candidate branch
>>>>>>
>>>>>> Modified:
>>>>>> incubator/aries/branches/0.1-incubating-RC1/jpa/jpa-container/
>> src/main/java/org/apache/aries/jpa/container/unit/impl/
>> PersistenceUnitInfoImpl.java
>>>>>>
>>>>>>
>>>>>> Modified:
>>>>>> incubator/aries/branches/0.1-incubating-RC1/jpa/jpa-container/
>> src/main/java/org/apache/aries/jpa/container/unit/impl/
>> PersistenceUnitInfoImpl.java
>>>>>>
>>>>>> URL:
>>>>>> http://svn.apache.org/viewvc/incubator/aries/branches/0.1-
>> incubating-RC1/jpa/jpa-container/src/main/java/org/apache/aries/jpa/
>> container/unit/impl/PersistenceUnitInfoImpl.java?
>> rev=935639&r1=935638&r2=935639&view=diff
>>>>>>
>>>>>>
>>
> ==============================================================================
>>>>>>
>>>>>> ---
>>>>>> incubator/aries/branches/0.1-incubating-RC1/jpa/jpa-container/
>> src/main/java/org/apache/aries/jpa/container/unit/impl/
>> PersistenceUnitInfoImpl.java
>>>>>> (original)
>>>>>> +++
>>>>>> incubator/aries/branches/0.1-incubating-RC1/jpa/jpa-container/
>> src/main/java/org/apache/aries/jpa/container/unit/impl/
>> PersistenceUnitInfoImpl.java
>>>>>> Mon Apr 19 15:59:35 2010
>>>>>> @@ -80,17 +80,20 @@ public class PersistenceUnitInfoImpl imp
>>>>>> if(jarFiles != null) {
>>>>>> for(String jarFile : jarFiles){
>>>>>> URL url = bundle.getResource(jarFile);
>>>>>> - if(url == null)
>>>>>> + if(url == null) {
>>>>>> _logger.error("The persistence unit {} in bundle {} listed the jar
>>>>>> file {}, but " +
>>>>>> "{} could not be found in the bundle", new
>>>>>> Object[]{getPersistenceUnitName(),
>>>>>> bundle.getSymbolicName() + "_" + bundle.getVersion(), jarFile,
>>>>>> jarFile});
>>>>>> + } else {
>>>>>> + urls.add(url);
>>>>>> + }
>>>>>> }
>>>>>> }
>>>>>> return urls;
>>>>>> }
>>>>>>
>>>>>> public DataSource getJtaDataSource() {
>>>>>> - String jndiString = (String)
>>>>>> unit.getPersistenceXmlMetadata().get
>> (ParsedPersistenceUnit.NON_JTA_DATASOURCE);
>>>>>>
>>>>>> + String jndiString = (String)
>>>>>> unit.getPersistenceXmlMetadata().get
>> (ParsedPersistenceUnit.JTA_DATASOURCE);
>>>>>>
>>>>>> DataSource toReturn = null;
>>>>>> if(jndiString != null) {
>>>>>> try {
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Joe
>>>>
>>>>
>>>
>>>
>>
>>
>> --
>> Joe
>
>
>
>
>
>
> Unless stated otherwise above:
> IBM United Kingdom Limited - Registered in England and Wales with number
> 741598.
> Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
>
>
>
>
>
>
--
Joe
Re: svn commit: r935639 - /incubator/aries/branches/0.1-incubating-RC1/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/PersistenceUnitInfoImpl.java
Posted by Brian De Pradine <PR...@uk.ibm.com>.
Hi,
I also tried to run the transactions unit tests using the
org.osgi.framework.system.packages.extra property listing just the
transaction packages that we care about, but the tests failed when I did
that. This means setting the org.osgi.framework.system.packages property,
as I described previously, is still the way to get this working.
Cheers
Brian DePradine
Web Services Development
IBM Hursley
External +44 (0) 1962 816319 Internal 246319
If you can't find the time to do it right the first time, where will you
find the time to do it again?
Brian De Pradine/UK/IBM@IBMGB wrote on 20/04/2010 13:50:44:
> [image removed]
>
> Re: svn commit: r935639 - /incubator/aries/branches/0.1-incubating-
> RC1/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/
> unit/impl/PersistenceUnitInfoImpl.java
>
> Brian De Pradine
>
> to:
>
> aries-dev
>
> 20/04/2010 13:51
>
> Please respond to aries-dev
>
> Hi Joe,
>
> The mechanism to specify the bootclasspath was removed a while ago in
> favour of the mechanism that David is referring to (this is currently
the
> way that the transaction unit tests work). In order to get this
mechanism
> to work for the samples you will need to add the following to the
command
> line (it is quite long so I suggest creating a script or batch file)
>
> -
>
Dorg.osgi.framework.system.packages=javax.accessibility,javax.activation,javax.activity,javax.annotation,javax.annotation.processing,javax.crypto,javax.crypto.interfaces,javax.crypto.spec,javax.imageio,javax.imageio.event,javax.imageio.metadata,javax.imageio.plugins.bmp,javax.imageio.plugins.jpeg,javax.imageio.spi,javax.imageio.stream,javax.jws,javax.jws.soap,javax.lang.model,javax.lang.model.element,javax.lang.model.type,javax.lang.model.util,javax.management,javax.management.loading,javax.management.modelmbean,javax.management.monitor,javax.management.openmbean,javax.management.relation,javax.management.remote,javax.management.remote.rmi,javax.management.timer,javax.naming,javax.naming.directory,javax.naming.event,javax.naming.ldap,javax.naming.spi,javax.net,javax.net.ssl,javax.print,javax.print.attribute,javax.print.attribute.standard,javax.print.event,javax.rmi,javax.rmi.CORBA,javax.rmi.ssl,javax.script,javax.security.auth,javax.security.auth.callback,javax.security.aut!
>
>
h.kerberos,javax.security.auth.login,javax.security.auth.spi,javax.security.auth.x500,javax.security.cert,javax.security.sasl,javax.sound.midi,javax.sound.midi.spi,javax.sound.sampled,javax.sound.sampled.spi,javax.sql,javax.sql.rowset,javax.sql.rowset.serial,javax.sql.rowset.spi,javax.swing,javax.swing.border,javax.swing.colorchooser,javax.swing.event,javax.swing.filechooser,javax.swing.plaf,javax.swing.plaf.basic,javax.swing.plaf.metal,javax.swing.plaf.multi,javax.swing.plaf.synth,javax.swing.table,javax.swing.text,javax.swing.text.html,javax.swing.text.html.parser,javax.swing.text.rtf,javax.swing.tree,javax.swing.undo,javax.tools,javax.xml,javax.xml.bind,javax.xml.bind.annotation,javax.xml.bind.annotation.adapters,javax.xml.bind.attachment,javax.xml.bind.helpers,javax.xml.bind.util,javax.xml.crypto,javax.xml.crypto.dom,javax.xml.crypto.dsig,javax.xml.crypto.dsig.dom,javax.xml.crypto.dsig.keyinfo,javax.xml.crypto.dsig.spec,javax.xml.datatype,javax.xml.namespace,javax.xml.p!
>
>
arsers,javax.xml.soap,javax.xml.stream,javax.xml.stream.events,javax.xml.stream.util,javax.xml.transform,javax.xml.transform.dom,javax.xml.transform.sax,javax.xml.transform.stax,javax.xml.transform.stream,javax.xml.validation,javax.xml.ws,javax.xml.ws.handler,javax.xml.ws.handler.soap,javax.xml.ws.http,javax.xml.ws.soap,javax.xml.ws.spi,javax.xml.xpath,org.ietf.jgss,org.omg.CORBA,org.omg.CORBA.DynAnyPackage,org.omg.CORBA.ORBPackage,org.omg.CORBA.TypeCodePackage,org.omg.CORBA.portable,org.omg.CORBA_2_3,org.omg.CORBA_2_3.portable,org.omg.CosNaming,org.omg.CosNaming.NamingContextExtPackage,org.omg.CosNaming.NamingContextPackage,org.omg.Dynamic,org.omg.DynamicAny,org.omg.DynamicAny.DynAnyFactoryPackage,org.omg.DynamicAny.DynAnyPackage,org.omg.IOP,org.omg.IOP.CodecFactoryPackage,org.omg.IOP.CodecPackage,org.omg.Messaging,org.omg.PortableInterceptor,org.omg.PortableInterceptor.ORBInitInfoPackage,org.omg.PortableServer,org.omg.PortableServer.CurrentPackage,org.omg.PortableServer.P!
> OAManagerPackage,org.omg.PortableServer.POAPackage,org.omg.PortableServ!
>
>
er.ServantLocatorPackage,org.omg.PortableServer.portable,org.omg.SendingContext,org.omg.stub.java.rmi,org.w3c.dom,org.w3c.dom.bootstrap,org.w3c.dom.css,org.w3c.dom.events,org.w3c.dom.html,org.w3c.dom.ls,org.w3c.dom.ranges,org.w3c.dom.stylesheets,org.w3c.dom.traversal,org.w3c.dom.views,org.xml.sax,org.xml.sax.ext,org.xml.sax.helpers,javax.transaction;partial=true;mandatory:=partial,javax.transaction.xa;partial=true;mandatory:=partial
>
> Cheers
>
> Brian DePradine
> Web Services Development
> IBM Hursley
> External +44 (0) 1962 816319 Internal 246319
>
> If you can't find the time to do it right the first time, where will you
> find the time to do it again?
>
>
> Joe Bohn <jo...@gmail.com> wrote on 19/04/2010 20:30:06:
>
> > [image removed]
> >
> > Re: svn commit: r935639 - /incubator/aries/branches/0.1-incubating-
> > RC1/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/
> > unit/impl/PersistenceUnitInfoImpl.java
> >
> > Joe Bohn
> >
> > to:
> >
> > aries-dev
> >
> > 19/04/2010 20:30
> >
> > Please respond to aries-dev
> >
> >
> > I didn't have any success specifying bootclasspath when starting
equinox
>
> > ... same linkage error. I also tried to removing the geronimo-jta
> > spec from the config.ini to eliminate the possibility of it being
loaded
>
> > from 2 different classloaders ... but still the same result.
> >
> > Joe
> >
> >
> >
> > On 4/19/10 1:25 PM, Joe Bohn wrote:
> > >
> > > Thanks David. I was just speaking about this with Jarek as well. So
it
> > > seems that the problem is that some transaction classes are loaded
> from
> > > the system bundle. At one time we were including the geronimo-jta
spec
> > > jar in the Xbootclasspath when starting equinox to avoid this issue.
> But
> > > then something was changed (don't recall what at the moment) so that
> was
> > > no longer necessary. I'll try adding the spec back to the
> Xbootclasspath
> > > when starting equinox to confirm that resolves the issue. If anybody
> > > recalls what had changed that removed that requirement - and why it
no
> > > longer seems to be working - please let me know.
> > >
> > > Joe
> > >
> > > On 4/19/10 1:05 PM, David Jencks wrote:
> > >> Karaf has some goo like
> > >>
> > >> javax.transaction; javax.transaction.xa; version=1.1; partial=true;
> > >> mandatory:=partial, \
> > >>
> > >> about exporting from the system bundle which is supposed to avoid
> some
> > >> linkage problems. Do the samples have the same goo?
> > >>
> > >> thanks
> > >> david jencks
> > >>
> > >> On Apr 19, 2010, at 9:54 AM, Joe Bohn wrote:
> > >>
> > >>> It certainly looks like this fix is necessary (the one to return
the
> > >>> JTA_DATASOURCE rather than the NON_JTA_DATASOURCE) - but I want to
> > >>> warn you that it surfaces another problem. I don't know the
details
> > >>> of how to fix this yet but we need to get it resolved. This is
> > >>> especially important because it looks like you are getting ready
to
> > >>> create a new RC and I think this error will prevent that from
> passing
> > >>> if not resolved:
> > >>>
> > >>> To recreate the error just run Blog for JPA or AriesTrader
> configured
> > >>> for container managed JPA.
> > >>>
> > >>> java.lang.LinkageError: loader constraint violation: when
resolving
> > >>> interface method
> > >>> "javax.transaction.Transaction.enlistResource(Ljavax/
> > transaction/xa/XAResource;)Z"
> > >>> the class loader (instance of
> > >>> org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader) of the
> > >>> current class,
org/apache/aries/transaction/jdbc/ConnectionWrapper,
> > >>> and the class loader (instance of
> > >>> org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader) for
> > >>> resolved class, javax/transaction/Transaction, have different
Class
> > >>> objects for the type javax/transaction/xa/XAResource used in the
> > >>> signature
> > >>> at
> > >>> org.apache.aries.transaction.jdbc.ConnectionWrapper.<init>
> > (ConnectionWrapper.java:67)
> > >>>
> > >>> at
> > >>>
> >
>
org.apache.aries.transaction.jdbc.XADatasourceEnlistingWrapper.getEnlistedConnection
> > (XADatasourceEnlistingWrapper.java:85)
> > >>>
> > >>> at
> > >>>
> >
>
org.apache.aries.transaction.jdbc.XADatasourceEnlistingWrapper.getConnection
> > (XADatasourceEnlistingWrapper.java:50)
> > >>>
> > >>> at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
> > >>> at
> > >>> sun.reflect.DelegatingMethodAccessorImpl.invoke
> > (DelegatingMethodAccessorImpl.java:25)
> > >>>
> > >>> at java.lang.reflect.Method.invoke(Method.java:597)
> > >>> at
> > >>> org.apache.aries.jndi.services.ServiceHelper
> > $JNDIServiceDamper.invoke(ServiceHelper.java:99)
> > >>>
> > >>> at $Proxy13.getConnection(Unknown Source)
> > >>> at
> > >>> org.apache.openjpa.lib.jdbc.DelegatingDataSource.getConnection
> > (DelegatingDataSource.java:131)
> > >>>
> > >>> at
> > >>> org.apache.openjpa.lib.jdbc.DecoratingDataSource.getConnection
> > (DecoratingDataSource.java:106)
> > >>>
> > >>> at
> > >>> org.apache.openjpa.jdbc.sql.DBDictionaryFactory.newDBDictionary
> > (DBDictionaryFactory.java:91)
> > >>>
> > >>> at
> > >>>
> >
>
org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getDBDictionaryInstance
> > (JDBCConfigurationImpl.java:595)
> > >>>
> > >>> at
> > >>> org.apache.openjpa.jdbc.meta.MappingRepository.endConfiguration
> > (MappingRepository.java:1489)
> > >>>
> > >>> at
> > >>> org.apache.openjpa.lib.conf.Configurations.configureInstance
> > (Configurations.java:507)
> > >>>
> > >>> at
> > >>> org.apache.openjpa.lib.conf.Configurations.configureInstance
> > (Configurations.java:432)
> > >>>
> > >>> at
> > >>>
>
org.apache.openjpa.lib.conf.PluginValue.instantiate(PluginValue.java:104)
> > >>>
> > >>> at
> > >>> org.apache.openjpa.conf.MetaDataRepositoryValue.instantiate
> > (MetaDataRepositoryValue.java:68)
> > >>>
> > >>> at
> > >>>
> org.apache.openjpa.lib.conf.ObjectValue.instantiate(ObjectValue.java:83)
> > >>> at
> > >>>
> >
>
org.apache.openjpa.conf.OpenJPAConfigurationImpl.newMetaDataRepositoryInstance
> > (OpenJPAConfigurationImpl.java:939)
> > >>>
> > >>> at
> > >>>
> >
>
org.apache.openjpa.conf.OpenJPAConfigurationImpl.getMetaDataRepositoryInstance
> > (OpenJPAConfigurationImpl.java:930)
> > >>>
> > >>> at
> org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java:343)
> > >>> at
> org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java:315)
> > >>> at
> > >>> org.apache.openjpa.kernel.AbstractBrokerFactory.initializeBroker
> > (AbstractBrokerFactory.java:218)
> > >>>
> > >>> at
> > >>> org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker
> > (AbstractBrokerFactory.java:202)
> > >>>
> > >>> at
> > >>> org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker
> > (DelegatingBrokerFactory.java:156)
> > >>>
> > >>> at
> > >>>
> >
>
org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager
> > (EntityManagerFactoryImpl.java:213)
> > >>>
> > >>> at
> > >>>
> >
>
org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager
> > (EntityManagerFactoryImpl.java:57)
> > >>>
> > >>> at
> > >>>
> >
>
org.apache.aries.jpa.container.context.transaction.impl.JTAPersistenceContextRegistry.getCurrentPersistenceContext
> > (JTAPersistenceContextRegistry.java:122)
> > >>>
> > >>> at
> > >>>
> >
>
org.apache.aries.jpa.container.context.transaction.impl.JTAEntityManager.getPersistenceContext
> > (JTAEntityManager.java:73)
> > >>>
> > >>> at
> > >>>
> >
>
org.apache.aries.jpa.container.context.transaction.impl.JTAEntityManager.persist
> > (JTAEntityManager.java:220)
> > >>>
> > >>> at
> > >>>
> >
>
org.apache.aries.samples.ariestrader.persist.jpa.cm.TradeJpaCm.createQuote
> > (TradeJpaCm.java:444)
> > >>>
> > >>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> > >>> at
> > >>> sun.reflect.NativeMethodAccessorImpl.invoke
> > (NativeMethodAccessorImpl.java:39)
> > >>>
> > >>> at
> > >>> sun.reflect.DelegatingMethodAccessorImpl.invoke
> > (DelegatingMethodAccessorImpl.java:25)
> > >>>
> > >>> at java.lang.reflect.Method.invoke(Method.java:597)
> > >>> at
> > >>> org.apache.aries.blueprint.proxy.Collaborator$1.invoke
> > (Collaborator.java:66)
> > >>>
> > >>> at
> > >>> org.apache.aries.blueprint.proxy.Collaborator.invoke
> > (Collaborator.java:151)
> > >>>
> > >>> at
> > >>> org.apache.aries.samples.ariestrader.persist.jpa.cm.
> > $TradeJpaCm360369157.createQuote(Unknown
> > >>> Source)
> > >>> at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
> > >>> at
> > >>> sun.reflect.DelegatingMethodAccessorImpl.invoke
> > (DelegatingMethodAccessorImpl.java:25)
> > >>>
> > >>> at java.lang.reflect.Method.invoke(Method.java:597)
> > >>> at
> > >>>
> > org.apache.aries.blueprint.container.AbstractServiceReferenceRecipe
> > $JdkProxyFactory$1.invoke(AbstractServiceReferenceRecipe.java:614)
> > >>>
> > >>> at $Proxy15.createQuote(Unknown Source)
> > >>> at
> > >>> org.apache.aries.samples.ariestrader.web.TradeBuildDB.<init>
> > (TradeBuildDB.java:183)
> > >>>
> > >>> at
> > >>>
> > org.apache.aries.samples.ariestrader.web.TradeConfigServlet.service
> > (TradeConfigServlet.java:418)
> > >>>
> > >>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> > >>> at
> > >>>
> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502)
> > >>> at
> > >>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
> > (ServletHandler.java:1157)
> > >>>
> > >>> at
> > >>> org.ops4j.pax.web.service.internal.WelcomeFilesFilter.doFilter
> > (WelcomeFilesFilter.java:169)
> > >>>
> > >>> at
> > >>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
> > (ServletHandler.java:1148)
> > >>>
> > >>> at
> > >>>
> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:387)
> > >>> at
> > >>>
> >
>
org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.handle
> > (HttpServiceServletHandler.java:64)
> > >>>
> > >>> at
> > >>>
> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
> > >>> at
> > >>>
> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
> > >>> at
> > >>>
> > org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.handle
> > (HttpServiceContext.java:111)
> > >>>
> > >>> at
> > >>>
> >
>
org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle
> > (JettyServerHandlerCollection.java:64)
> > >>>
> > >>> at
> > >>>
> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
> > >>> at org.mortbay.jetty.Server.handle(Server.java:322)
> > >>> at
> > >>>
> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534)
> > >>> at
> > >>> org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete
> > (HttpConnection.java:864)
> > >>>
> > >>> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:539)
> > >>> at
org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
> > >>> at
org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
> > >>> at
> > >>> org.mortbay.io.nio.SelectChannelEndPoint.run
> > (SelectChannelEndPoint.java:409)
> > >>>
> > >>> at
> > >>> org.mortbay.thread.QueuedThreadPool$PoolThread.run
> > (QueuedThreadPool.java:520)
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>> I discovered this in trunk while attempting to run the AriesTrader
> > >>> sample - but the same is also true of the Blog sample. When we
> > >>> attempt to use declarative transaction support after the change be
> > >>>
> > >>>
> > >>> On 4/19/10 11:59 AM, hughesj@apache.org wrote:
> > >>>> Author: hughesj
> > >>>> Date: Mon Apr 19 15:59:35 2010
> > >>>> New Revision: 935639
> > >>>>
> > >>>> URL: http://svn.apache.org/viewvc?rev=935639&view=rev
> > >>>> Log:
> > >>>> ARIES-287 fix a couple egregious errors in
PersistenceUnitInfoImpl
> -
> > >>>> this time in the 0.1-incubating release candidate branch
> > >>>>
> > >>>> Modified:
> > >>>> incubator/aries/branches/0.1-incubating-RC1/jpa/jpa-container/
> > src/main/java/org/apache/aries/jpa/container/unit/impl/
> > PersistenceUnitInfoImpl.java
> > >>>>
> > >>>>
> > >>>> Modified:
> > >>>> incubator/aries/branches/0.1-incubating-RC1/jpa/jpa-container/
> > src/main/java/org/apache/aries/jpa/container/unit/impl/
> > PersistenceUnitInfoImpl.java
> > >>>>
> > >>>> URL:
> > >>>> http://svn.apache.org/viewvc/incubator/aries/branches/0.1-
> > incubating-RC1/jpa/jpa-container/src/main/java/org/apache/aries/jpa/
> > container/unit/impl/PersistenceUnitInfoImpl.java?
> > rev=935639&r1=935638&r2=935639&view=diff
> > >>>>
> > >>>>
> >
>
==============================================================================
> > >>>>
> > >>>> ---
> > >>>> incubator/aries/branches/0.1-incubating-RC1/jpa/jpa-container/
> > src/main/java/org/apache/aries/jpa/container/unit/impl/
> > PersistenceUnitInfoImpl.java
> > >>>> (original)
> > >>>> +++
> > >>>> incubator/aries/branches/0.1-incubating-RC1/jpa/jpa-container/
> > src/main/java/org/apache/aries/jpa/container/unit/impl/
> > PersistenceUnitInfoImpl.java
> > >>>> Mon Apr 19 15:59:35 2010
> > >>>> @@ -80,17 +80,20 @@ public class PersistenceUnitInfoImpl imp
> > >>>> if(jarFiles != null) {
> > >>>> for(String jarFile : jarFiles){
> > >>>> URL url = bundle.getResource(jarFile);
> > >>>> - if(url == null)
> > >>>> + if(url == null) {
> > >>>> _logger.error("The persistence unit {} in bundle {} listed the
jar
> > >>>> file {}, but " +
> > >>>> "{} could not be found in the bundle", new
> > >>>> Object[]{getPersistenceUnitName(),
> > >>>> bundle.getSymbolicName() + "_" + bundle.getVersion(), jarFile,
> > >>>> jarFile});
> > >>>> + } else {
> > >>>> + urls.add(url);
> > >>>> + }
> > >>>> }
> > >>>> }
> > >>>> return urls;
> > >>>> }
> > >>>>
> > >>>> public DataSource getJtaDataSource() {
> > >>>> - String jndiString = (String)
> > >>>> unit.getPersistenceXmlMetadata().get
> > (ParsedPersistenceUnit.NON_JTA_DATASOURCE);
> > >>>>
> > >>>> + String jndiString = (String)
> > >>>> unit.getPersistenceXmlMetadata().get
> > (ParsedPersistenceUnit.JTA_DATASOURCE);
> > >>>>
> > >>>> DataSource toReturn = null;
> > >>>> if(jndiString != null) {
> > >>>> try {
> > >>>>
> > >>>>
> > >>>>
> > >>>
> > >>>
> > >>> --
> > >>> Joe
> > >>
> > >>
> > >
> > >
> >
> >
> > --
> > Joe
>
>
>
>
>
>
> Unless stated otherwise above:
> IBM United Kingdom Limited - Registered in England and Wales with number
> 741598.
> Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6
3AU
>
>
>
>
>
Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number
741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
Re: svn commit: r935639 - /incubator/aries/branches/0.1-incubating-RC1/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/PersistenceUnitInfoImpl.java
Posted by Brian De Pradine <PR...@uk.ibm.com>.
Hi Joe,
The mechanism to specify the bootclasspath was removed a while ago in
favour of the mechanism that David is referring to (this is currently the
way that the transaction unit tests work). In order to get this mechanism
to work for the samples you will need to add the following to the command
line (it is quite long so I suggest creating a script or batch file)
-Dorg.osgi.framework.system.packages=javax.accessibility,javax.activation,javax.activity,javax.annotation,javax.annotation.processing,javax.crypto,javax.crypto.interfaces,javax.crypto.spec,javax.imageio,javax.imageio.event,javax.imageio.metadata,javax.imageio.plugins.bmp,javax.imageio.plugins.jpeg,javax.imageio.spi,javax.imageio.stream,javax.jws,javax.jws.soap,javax.lang.model,javax.lang.model.element,javax.lang.model.type,javax.lang.model.util,javax.management,javax.management.loading,javax.management.modelmbean,javax.management.monitor,javax.management.openmbean,javax.management.relation,javax.management.remote,javax.management.remote.rmi,javax.management.timer,javax.naming,javax.naming.directory,javax.naming.event,javax.naming.ldap,javax.naming.spi,javax.net,javax.net.ssl,javax.print,javax.print.attribute,javax.print.attribute.standard,javax.print.event,javax.rmi,javax.rmi.CORBA,javax.rmi.ssl,javax.script,javax.security.auth,javax.security.auth.callback,javax.security.aut!
h.kerberos,javax.security.auth.login,javax.security.auth.spi,javax.security.auth.x500,javax.security.cert,javax.security.sasl,javax.sound.midi,javax.sound.midi.spi,javax.sound.sampled,javax.sound.sampled.spi,javax.sql,javax.sql.rowset,javax.sql.rowset.serial,javax.sql.rowset.spi,javax.swing,javax.swing.border,javax.swing.colorchooser,javax.swing.event,javax.swing.filechooser,javax.swing.plaf,javax.swing.plaf.basic,javax.swing.plaf.metal,javax.swing.plaf.multi,javax.swing.plaf.synth,javax.swing.table,javax.swing.text,javax.swing.text.html,javax.swing.text.html.parser,javax.swing.text.rtf,javax.swing.tree,javax.swing.undo,javax.tools,javax.xml,javax.xml.bind,javax.xml.bind.annotation,javax.xml.bind.annotation.adapters,javax.xml.bind.attachment,javax.xml.bind.helpers,javax.xml.bind.util,javax.xml.crypto,javax.xml.crypto.dom,javax.xml.crypto.dsig,javax.xml.crypto.dsig.dom,javax.xml.crypto.dsig.keyinfo,javax.xml.crypto.dsig.spec,javax.xml.datatype,javax.xml.namespace,javax.xml.p!
arsers,javax.xml.soap,javax.xml.stream,javax.xml.stream.events,javax.xml.stream.util,javax.xml.transform,javax.xml.transform.dom,javax.xml.transform.sax,javax.xml.transform.stax,javax.xml.transform.stream,javax.xml.validation,javax.xml.ws,javax.xml.ws.handler,javax.xml.ws.handler.soap,javax.xml.ws.http,javax.xml.ws.soap,javax.xml.ws.spi,javax.xml.xpath,org.ietf.jgss,org.omg.CORBA,org.omg.CORBA.DynAnyPackage,org.omg.CORBA.ORBPackage,org.omg.CORBA.TypeCodePackage,org.omg.CORBA.portable,org.omg.CORBA_2_3,org.omg.CORBA_2_3.portable,org.omg.CosNaming,org.omg.CosNaming.NamingContextExtPackage,org.omg.CosNaming.NamingContextPackage,org.omg.Dynamic,org.omg.DynamicAny,org.omg.DynamicAny.DynAnyFactoryPackage,org.omg.DynamicAny.DynAnyPackage,org.omg.IOP,org.omg.IOP.CodecFactoryPackage,org.omg.IOP.CodecPackage,org.omg.Messaging,org.omg.PortableInterceptor,org.omg.PortableInterceptor.ORBInitInfoPackage,org.omg.PortableServer,org.omg.PortableServer.CurrentPackage,org.omg.PortableServer.P!
OAManagerPackage,org.omg.PortableServer.POAPackage,org.omg.PortableServ!
er.ServantLocatorPackage,org.omg.PortableServer.portable,org.omg.SendingContext,org.omg.stub.java.rmi,org.w3c.dom,org.w3c.dom.bootstrap,org.w3c.dom.css,org.w3c.dom.events,org.w3c.dom.html,org.w3c.dom.ls,org.w3c.dom.ranges,org.w3c.dom.stylesheets,org.w3c.dom.traversal,org.w3c.dom.views,org.xml.sax,org.xml.sax.ext,org.xml.sax.helpers,javax.transaction;partial=true;mandatory:=partial,javax.transaction.xa;partial=true;mandatory:=partial
Cheers
Brian DePradine
Web Services Development
IBM Hursley
External +44 (0) 1962 816319 Internal 246319
If you can't find the time to do it right the first time, where will you
find the time to do it again?
Joe Bohn <jo...@gmail.com> wrote on 19/04/2010 20:30:06:
> [image removed]
>
> Re: svn commit: r935639 - /incubator/aries/branches/0.1-incubating-
> RC1/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/
> unit/impl/PersistenceUnitInfoImpl.java
>
> Joe Bohn
>
> to:
>
> aries-dev
>
> 19/04/2010 20:30
>
> Please respond to aries-dev
>
>
> I didn't have any success specifying bootclasspath when starting equinox
> ... same linkage error. I also tried to removing the geronimo-jta
> spec from the config.ini to eliminate the possibility of it being loaded
> from 2 different classloaders ... but still the same result.
>
> Joe
>
>
>
> On 4/19/10 1:25 PM, Joe Bohn wrote:
> >
> > Thanks David. I was just speaking about this with Jarek as well. So it
> > seems that the problem is that some transaction classes are loaded
from
> > the system bundle. At one time we were including the geronimo-jta spec
> > jar in the Xbootclasspath when starting equinox to avoid this issue.
But
> > then something was changed (don't recall what at the moment) so that
was
> > no longer necessary. I'll try adding the spec back to the
Xbootclasspath
> > when starting equinox to confirm that resolves the issue. If anybody
> > recalls what had changed that removed that requirement - and why it no
> > longer seems to be working - please let me know.
> >
> > Joe
> >
> > On 4/19/10 1:05 PM, David Jencks wrote:
> >> Karaf has some goo like
> >>
> >> javax.transaction; javax.transaction.xa; version=1.1; partial=true;
> >> mandatory:=partial, \
> >>
> >> about exporting from the system bundle which is supposed to avoid
some
> >> linkage problems. Do the samples have the same goo?
> >>
> >> thanks
> >> david jencks
> >>
> >> On Apr 19, 2010, at 9:54 AM, Joe Bohn wrote:
> >>
> >>> It certainly looks like this fix is necessary (the one to return the
> >>> JTA_DATASOURCE rather than the NON_JTA_DATASOURCE) - but I want to
> >>> warn you that it surfaces another problem. I don't know the details
> >>> of how to fix this yet but we need to get it resolved. This is
> >>> especially important because it looks like you are getting ready to
> >>> create a new RC and I think this error will prevent that from
passing
> >>> if not resolved:
> >>>
> >>> To recreate the error just run Blog for JPA or AriesTrader
configured
> >>> for container managed JPA.
> >>>
> >>> java.lang.LinkageError: loader constraint violation: when resolving
> >>> interface method
> >>> "javax.transaction.Transaction.enlistResource(Ljavax/
> transaction/xa/XAResource;)Z"
> >>> the class loader (instance of
> >>> org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader) of the
> >>> current class, org/apache/aries/transaction/jdbc/ConnectionWrapper,
> >>> and the class loader (instance of
> >>> org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader) for
> >>> resolved class, javax/transaction/Transaction, have different Class
> >>> objects for the type javax/transaction/xa/XAResource used in the
> >>> signature
> >>> at
> >>> org.apache.aries.transaction.jdbc.ConnectionWrapper.<init>
> (ConnectionWrapper.java:67)
> >>>
> >>> at
> >>>
>
org.apache.aries.transaction.jdbc.XADatasourceEnlistingWrapper.getEnlistedConnection
> (XADatasourceEnlistingWrapper.java:85)
> >>>
> >>> at
> >>>
>
org.apache.aries.transaction.jdbc.XADatasourceEnlistingWrapper.getConnection
> (XADatasourceEnlistingWrapper.java:50)
> >>>
> >>> at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
> >>> at
> >>> sun.reflect.DelegatingMethodAccessorImpl.invoke
> (DelegatingMethodAccessorImpl.java:25)
> >>>
> >>> at java.lang.reflect.Method.invoke(Method.java:597)
> >>> at
> >>> org.apache.aries.jndi.services.ServiceHelper
> $JNDIServiceDamper.invoke(ServiceHelper.java:99)
> >>>
> >>> at $Proxy13.getConnection(Unknown Source)
> >>> at
> >>> org.apache.openjpa.lib.jdbc.DelegatingDataSource.getConnection
> (DelegatingDataSource.java:131)
> >>>
> >>> at
> >>> org.apache.openjpa.lib.jdbc.DecoratingDataSource.getConnection
> (DecoratingDataSource.java:106)
> >>>
> >>> at
> >>> org.apache.openjpa.jdbc.sql.DBDictionaryFactory.newDBDictionary
> (DBDictionaryFactory.java:91)
> >>>
> >>> at
> >>>
>
org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getDBDictionaryInstance
> (JDBCConfigurationImpl.java:595)
> >>>
> >>> at
> >>> org.apache.openjpa.jdbc.meta.MappingRepository.endConfiguration
> (MappingRepository.java:1489)
> >>>
> >>> at
> >>> org.apache.openjpa.lib.conf.Configurations.configureInstance
> (Configurations.java:507)
> >>>
> >>> at
> >>> org.apache.openjpa.lib.conf.Configurations.configureInstance
> (Configurations.java:432)
> >>>
> >>> at
> >>>
org.apache.openjpa.lib.conf.PluginValue.instantiate(PluginValue.java:104)
> >>>
> >>> at
> >>> org.apache.openjpa.conf.MetaDataRepositoryValue.instantiate
> (MetaDataRepositoryValue.java:68)
> >>>
> >>> at
> >>>
org.apache.openjpa.lib.conf.ObjectValue.instantiate(ObjectValue.java:83)
> >>> at
> >>>
>
org.apache.openjpa.conf.OpenJPAConfigurationImpl.newMetaDataRepositoryInstance
> (OpenJPAConfigurationImpl.java:939)
> >>>
> >>> at
> >>>
>
org.apache.openjpa.conf.OpenJPAConfigurationImpl.getMetaDataRepositoryInstance
> (OpenJPAConfigurationImpl.java:930)
> >>>
> >>> at
org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java:343)
> >>> at
org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java:315)
> >>> at
> >>> org.apache.openjpa.kernel.AbstractBrokerFactory.initializeBroker
> (AbstractBrokerFactory.java:218)
> >>>
> >>> at
> >>> org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker
> (AbstractBrokerFactory.java:202)
> >>>
> >>> at
> >>> org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker
> (DelegatingBrokerFactory.java:156)
> >>>
> >>> at
> >>>
>
org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager
> (EntityManagerFactoryImpl.java:213)
> >>>
> >>> at
> >>>
>
org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager
> (EntityManagerFactoryImpl.java:57)
> >>>
> >>> at
> >>>
>
org.apache.aries.jpa.container.context.transaction.impl.JTAPersistenceContextRegistry.getCurrentPersistenceContext
> (JTAPersistenceContextRegistry.java:122)
> >>>
> >>> at
> >>>
>
org.apache.aries.jpa.container.context.transaction.impl.JTAEntityManager.getPersistenceContext
> (JTAEntityManager.java:73)
> >>>
> >>> at
> >>>
>
org.apache.aries.jpa.container.context.transaction.impl.JTAEntityManager.persist
> (JTAEntityManager.java:220)
> >>>
> >>> at
> >>>
>
org.apache.aries.samples.ariestrader.persist.jpa.cm.TradeJpaCm.createQuote
> (TradeJpaCm.java:444)
> >>>
> >>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >>> at
> >>> sun.reflect.NativeMethodAccessorImpl.invoke
> (NativeMethodAccessorImpl.java:39)
> >>>
> >>> at
> >>> sun.reflect.DelegatingMethodAccessorImpl.invoke
> (DelegatingMethodAccessorImpl.java:25)
> >>>
> >>> at java.lang.reflect.Method.invoke(Method.java:597)
> >>> at
> >>> org.apache.aries.blueprint.proxy.Collaborator$1.invoke
> (Collaborator.java:66)
> >>>
> >>> at
> >>> org.apache.aries.blueprint.proxy.Collaborator.invoke
> (Collaborator.java:151)
> >>>
> >>> at
> >>> org.apache.aries.samples.ariestrader.persist.jpa.cm.
> $TradeJpaCm360369157.createQuote(Unknown
> >>> Source)
> >>> at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
> >>> at
> >>> sun.reflect.DelegatingMethodAccessorImpl.invoke
> (DelegatingMethodAccessorImpl.java:25)
> >>>
> >>> at java.lang.reflect.Method.invoke(Method.java:597)
> >>> at
> >>>
> org.apache.aries.blueprint.container.AbstractServiceReferenceRecipe
> $JdkProxyFactory$1.invoke(AbstractServiceReferenceRecipe.java:614)
> >>>
> >>> at $Proxy15.createQuote(Unknown Source)
> >>> at
> >>> org.apache.aries.samples.ariestrader.web.TradeBuildDB.<init>
> (TradeBuildDB.java:183)
> >>>
> >>> at
> >>>
> org.apache.aries.samples.ariestrader.web.TradeConfigServlet.service
> (TradeConfigServlet.java:418)
> >>>
> >>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> >>> at
> >>>
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502)
> >>> at
> >>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
> (ServletHandler.java:1157)
> >>>
> >>> at
> >>> org.ops4j.pax.web.service.internal.WelcomeFilesFilter.doFilter
> (WelcomeFilesFilter.java:169)
> >>>
> >>> at
> >>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
> (ServletHandler.java:1148)
> >>>
> >>> at
> >>>
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:387)
> >>> at
> >>>
>
org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.handle
> (HttpServiceServletHandler.java:64)
> >>>
> >>> at
> >>>
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
> >>> at
> >>>
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
> >>> at
> >>>
> org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.handle
> (HttpServiceContext.java:111)
> >>>
> >>> at
> >>>
>
org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle
> (JettyServerHandlerCollection.java:64)
> >>>
> >>> at
> >>>
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
> >>> at org.mortbay.jetty.Server.handle(Server.java:322)
> >>> at
> >>>
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534)
> >>> at
> >>> org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete
> (HttpConnection.java:864)
> >>>
> >>> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:539)
> >>> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
> >>> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
> >>> at
> >>> org.mortbay.io.nio.SelectChannelEndPoint.run
> (SelectChannelEndPoint.java:409)
> >>>
> >>> at
> >>> org.mortbay.thread.QueuedThreadPool$PoolThread.run
> (QueuedThreadPool.java:520)
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>> I discovered this in trunk while attempting to run the AriesTrader
> >>> sample - but the same is also true of the Blog sample. When we
> >>> attempt to use declarative transaction support after the change be
> >>>
> >>>
> >>> On 4/19/10 11:59 AM, hughesj@apache.org wrote:
> >>>> Author: hughesj
> >>>> Date: Mon Apr 19 15:59:35 2010
> >>>> New Revision: 935639
> >>>>
> >>>> URL: http://svn.apache.org/viewvc?rev=935639&view=rev
> >>>> Log:
> >>>> ARIES-287 fix a couple egregious errors in PersistenceUnitInfoImpl
-
> >>>> this time in the 0.1-incubating release candidate branch
> >>>>
> >>>> Modified:
> >>>> incubator/aries/branches/0.1-incubating-RC1/jpa/jpa-container/
> src/main/java/org/apache/aries/jpa/container/unit/impl/
> PersistenceUnitInfoImpl.java
> >>>>
> >>>>
> >>>> Modified:
> >>>> incubator/aries/branches/0.1-incubating-RC1/jpa/jpa-container/
> src/main/java/org/apache/aries/jpa/container/unit/impl/
> PersistenceUnitInfoImpl.java
> >>>>
> >>>> URL:
> >>>> http://svn.apache.org/viewvc/incubator/aries/branches/0.1-
> incubating-RC1/jpa/jpa-container/src/main/java/org/apache/aries/jpa/
> container/unit/impl/PersistenceUnitInfoImpl.java?
> rev=935639&r1=935638&r2=935639&view=diff
> >>>>
> >>>>
>
==============================================================================
> >>>>
> >>>> ---
> >>>> incubator/aries/branches/0.1-incubating-RC1/jpa/jpa-container/
> src/main/java/org/apache/aries/jpa/container/unit/impl/
> PersistenceUnitInfoImpl.java
> >>>> (original)
> >>>> +++
> >>>> incubator/aries/branches/0.1-incubating-RC1/jpa/jpa-container/
> src/main/java/org/apache/aries/jpa/container/unit/impl/
> PersistenceUnitInfoImpl.java
> >>>> Mon Apr 19 15:59:35 2010
> >>>> @@ -80,17 +80,20 @@ public class PersistenceUnitInfoImpl imp
> >>>> if(jarFiles != null) {
> >>>> for(String jarFile : jarFiles){
> >>>> URL url = bundle.getResource(jarFile);
> >>>> - if(url == null)
> >>>> + if(url == null) {
> >>>> _logger.error("The persistence unit {} in bundle {} listed the jar
> >>>> file {}, but " +
> >>>> "{} could not be found in the bundle", new
> >>>> Object[]{getPersistenceUnitName(),
> >>>> bundle.getSymbolicName() + "_" + bundle.getVersion(), jarFile,
> >>>> jarFile});
> >>>> + } else {
> >>>> + urls.add(url);
> >>>> + }
> >>>> }
> >>>> }
> >>>> return urls;
> >>>> }
> >>>>
> >>>> public DataSource getJtaDataSource() {
> >>>> - String jndiString = (String)
> >>>> unit.getPersistenceXmlMetadata().get
> (ParsedPersistenceUnit.NON_JTA_DATASOURCE);
> >>>>
> >>>> + String jndiString = (String)
> >>>> unit.getPersistenceXmlMetadata().get
> (ParsedPersistenceUnit.JTA_DATASOURCE);
> >>>>
> >>>> DataSource toReturn = null;
> >>>> if(jndiString != null) {
> >>>> try {
> >>>>
> >>>>
> >>>>
> >>>
> >>>
> >>> --
> >>> Joe
> >>
> >>
> >
> >
>
>
> --
> Joe
Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number
741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
Re: svn commit: r935639 - /incubator/aries/branches/0.1-incubating-RC1/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/PersistenceUnitInfoImpl.java
Posted by Joe Bohn <jo...@gmail.com>.
I didn't have any success specifying bootclasspath when starting equinox
... same linkage error. I also tried to removing the geronimo-jta
spec from the config.ini to eliminate the possibility of it being loaded
from 2 different classloaders ... but still the same result.
Joe
On 4/19/10 1:25 PM, Joe Bohn wrote:
>
> Thanks David. I was just speaking about this with Jarek as well. So it
> seems that the problem is that some transaction classes are loaded from
> the system bundle. At one time we were including the geronimo-jta spec
> jar in the Xbootclasspath when starting equinox to avoid this issue. But
> then something was changed (don't recall what at the moment) so that was
> no longer necessary. I'll try adding the spec back to the Xbootclasspath
> when starting equinox to confirm that resolves the issue. If anybody
> recalls what had changed that removed that requirement - and why it no
> longer seems to be working - please let me know.
>
> Joe
>
> On 4/19/10 1:05 PM, David Jencks wrote:
>> Karaf has some goo like
>>
>> javax.transaction; javax.transaction.xa; version=1.1; partial=true;
>> mandatory:=partial, \
>>
>> about exporting from the system bundle which is supposed to avoid some
>> linkage problems. Do the samples have the same goo?
>>
>> thanks
>> david jencks
>>
>> On Apr 19, 2010, at 9:54 AM, Joe Bohn wrote:
>>
>>> It certainly looks like this fix is necessary (the one to return the
>>> JTA_DATASOURCE rather than the NON_JTA_DATASOURCE) - but I want to
>>> warn you that it surfaces another problem. I don't know the details
>>> of how to fix this yet but we need to get it resolved. This is
>>> especially important because it looks like you are getting ready to
>>> create a new RC and I think this error will prevent that from passing
>>> if not resolved:
>>>
>>> To recreate the error just run Blog for JPA or AriesTrader configured
>>> for container managed JPA.
>>>
>>> java.lang.LinkageError: loader constraint violation: when resolving
>>> interface method
>>> "javax.transaction.Transaction.enlistResource(Ljavax/transaction/xa/XAResource;)Z"
>>> the class loader (instance of
>>> org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader) of the
>>> current class, org/apache/aries/transaction/jdbc/ConnectionWrapper,
>>> and the class loader (instance of
>>> org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader) for
>>> resolved class, javax/transaction/Transaction, have different Class
>>> objects for the type javax/transaction/xa/XAResource used in the
>>> signature
>>> at
>>> org.apache.aries.transaction.jdbc.ConnectionWrapper.<init>(ConnectionWrapper.java:67)
>>>
>>> at
>>> org.apache.aries.transaction.jdbc.XADatasourceEnlistingWrapper.getEnlistedConnection(XADatasourceEnlistingWrapper.java:85)
>>>
>>> at
>>> org.apache.aries.transaction.jdbc.XADatasourceEnlistingWrapper.getConnection(XADatasourceEnlistingWrapper.java:50)
>>>
>>> at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
>>> at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>
>>> at java.lang.reflect.Method.invoke(Method.java:597)
>>> at
>>> org.apache.aries.jndi.services.ServiceHelper$JNDIServiceDamper.invoke(ServiceHelper.java:99)
>>>
>>> at $Proxy13.getConnection(Unknown Source)
>>> at
>>> org.apache.openjpa.lib.jdbc.DelegatingDataSource.getConnection(DelegatingDataSource.java:131)
>>>
>>> at
>>> org.apache.openjpa.lib.jdbc.DecoratingDataSource.getConnection(DecoratingDataSource.java:106)
>>>
>>> at
>>> org.apache.openjpa.jdbc.sql.DBDictionaryFactory.newDBDictionary(DBDictionaryFactory.java:91)
>>>
>>> at
>>> org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getDBDictionaryInstance(JDBCConfigurationImpl.java:595)
>>>
>>> at
>>> org.apache.openjpa.jdbc.meta.MappingRepository.endConfiguration(MappingRepository.java:1489)
>>>
>>> at
>>> org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:507)
>>>
>>> at
>>> org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:432)
>>>
>>> at
>>> org.apache.openjpa.lib.conf.PluginValue.instantiate(PluginValue.java:104)
>>>
>>> at
>>> org.apache.openjpa.conf.MetaDataRepositoryValue.instantiate(MetaDataRepositoryValue.java:68)
>>>
>>> at
>>> org.apache.openjpa.lib.conf.ObjectValue.instantiate(ObjectValue.java:83)
>>> at
>>> org.apache.openjpa.conf.OpenJPAConfigurationImpl.newMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:939)
>>>
>>> at
>>> org.apache.openjpa.conf.OpenJPAConfigurationImpl.getMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:930)
>>>
>>> at org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java:343)
>>> at org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java:315)
>>> at
>>> org.apache.openjpa.kernel.AbstractBrokerFactory.initializeBroker(AbstractBrokerFactory.java:218)
>>>
>>> at
>>> org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:202)
>>>
>>> at
>>> org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:156)
>>>
>>> at
>>> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:213)
>>>
>>> at
>>> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:57)
>>>
>>> at
>>> org.apache.aries.jpa.container.context.transaction.impl.JTAPersistenceContextRegistry.getCurrentPersistenceContext(JTAPersistenceContextRegistry.java:122)
>>>
>>> at
>>> org.apache.aries.jpa.container.context.transaction.impl.JTAEntityManager.getPersistenceContext(JTAEntityManager.java:73)
>>>
>>> at
>>> org.apache.aries.jpa.container.context.transaction.impl.JTAEntityManager.persist(JTAEntityManager.java:220)
>>>
>>> at
>>> org.apache.aries.samples.ariestrader.persist.jpa.cm.TradeJpaCm.createQuote(TradeJpaCm.java:444)
>>>
>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>> at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>>
>>> at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>
>>> at java.lang.reflect.Method.invoke(Method.java:597)
>>> at
>>> org.apache.aries.blueprint.proxy.Collaborator$1.invoke(Collaborator.java:66)
>>>
>>> at
>>> org.apache.aries.blueprint.proxy.Collaborator.invoke(Collaborator.java:151)
>>>
>>> at
>>> org.apache.aries.samples.ariestrader.persist.jpa.cm.$TradeJpaCm360369157.createQuote(Unknown
>>> Source)
>>> at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
>>> at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>
>>> at java.lang.reflect.Method.invoke(Method.java:597)
>>> at
>>> org.apache.aries.blueprint.container.AbstractServiceReferenceRecipe$JdkProxyFactory$1.invoke(AbstractServiceReferenceRecipe.java:614)
>>>
>>> at $Proxy15.createQuote(Unknown Source)
>>> at
>>> org.apache.aries.samples.ariestrader.web.TradeBuildDB.<init>(TradeBuildDB.java:183)
>>>
>>> at
>>> org.apache.aries.samples.ariestrader.web.TradeConfigServlet.service(TradeConfigServlet.java:418)
>>>
>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
>>> at
>>> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502)
>>> at
>>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>>>
>>> at
>>> org.ops4j.pax.web.service.internal.WelcomeFilesFilter.doFilter(WelcomeFilesFilter.java:169)
>>>
>>> at
>>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1148)
>>>
>>> at
>>> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:387)
>>> at
>>> org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.handle(HttpServiceServletHandler.java:64)
>>>
>>> at
>>> org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
>>> at
>>> org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
>>> at
>>> org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.handle(HttpServiceContext.java:111)
>>>
>>> at
>>> org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:64)
>>>
>>> at
>>> org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
>>> at org.mortbay.jetty.Server.handle(Server.java:322)
>>> at
>>> org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534)
>>> at
>>> org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:864)
>>>
>>> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:539)
>>> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
>>> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
>>> at
>>> org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
>>>
>>> at
>>> org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520)
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> I discovered this in trunk while attempting to run the AriesTrader
>>> sample - but the same is also true of the Blog sample. When we
>>> attempt to use declarative transaction support after the change be
>>>
>>>
>>> On 4/19/10 11:59 AM, hughesj@apache.org wrote:
>>>> Author: hughesj
>>>> Date: Mon Apr 19 15:59:35 2010
>>>> New Revision: 935639
>>>>
>>>> URL: http://svn.apache.org/viewvc?rev=935639&view=rev
>>>> Log:
>>>> ARIES-287 fix a couple egregious errors in PersistenceUnitInfoImpl -
>>>> this time in the 0.1-incubating release candidate branch
>>>>
>>>> Modified:
>>>> incubator/aries/branches/0.1-incubating-RC1/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/PersistenceUnitInfoImpl.java
>>>>
>>>>
>>>> Modified:
>>>> incubator/aries/branches/0.1-incubating-RC1/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/PersistenceUnitInfoImpl.java
>>>>
>>>> URL:
>>>> http://svn.apache.org/viewvc/incubator/aries/branches/0.1-incubating-RC1/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/PersistenceUnitInfoImpl.java?rev=935639&r1=935638&r2=935639&view=diff
>>>>
>>>> ==============================================================================
>>>>
>>>> ---
>>>> incubator/aries/branches/0.1-incubating-RC1/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/PersistenceUnitInfoImpl.java
>>>> (original)
>>>> +++
>>>> incubator/aries/branches/0.1-incubating-RC1/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/PersistenceUnitInfoImpl.java
>>>> Mon Apr 19 15:59:35 2010
>>>> @@ -80,17 +80,20 @@ public class PersistenceUnitInfoImpl imp
>>>> if(jarFiles != null) {
>>>> for(String jarFile : jarFiles){
>>>> URL url = bundle.getResource(jarFile);
>>>> - if(url == null)
>>>> + if(url == null) {
>>>> _logger.error("The persistence unit {} in bundle {} listed the jar
>>>> file {}, but " +
>>>> "{} could not be found in the bundle", new
>>>> Object[]{getPersistenceUnitName(),
>>>> bundle.getSymbolicName() + "_" + bundle.getVersion(), jarFile,
>>>> jarFile});
>>>> + } else {
>>>> + urls.add(url);
>>>> + }
>>>> }
>>>> }
>>>> return urls;
>>>> }
>>>>
>>>> public DataSource getJtaDataSource() {
>>>> - String jndiString = (String)
>>>> unit.getPersistenceXmlMetadata().get(ParsedPersistenceUnit.NON_JTA_DATASOURCE);
>>>>
>>>> + String jndiString = (String)
>>>> unit.getPersistenceXmlMetadata().get(ParsedPersistenceUnit.JTA_DATASOURCE);
>>>>
>>>> DataSource toReturn = null;
>>>> if(jndiString != null) {
>>>> try {
>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>> Joe
>>
>>
>
>
--
Joe
Re: svn commit: r935639 - /incubator/aries/branches/0.1-incubating-RC1/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/PersistenceUnitInfoImpl.java
Posted by Joe Bohn <jo...@gmail.com>.
Thanks David. I was just speaking about this with Jarek as well. So it
seems that the problem is that some transaction classes are loaded from
the system bundle. At one time we were including the geronimo-jta spec
jar in the Xbootclasspath when starting equinox to avoid this issue.
But then something was changed (don't recall what at the moment) so that
was no longer necessary. I'll try adding the spec back to the
Xbootclasspath when starting equinox to confirm that resolves the issue.
If anybody recalls what had changed that removed that requirement -
and why it no longer seems to be working - please let me know.
Joe
On 4/19/10 1:05 PM, David Jencks wrote:
> Karaf has some goo like
>
> javax.transaction; javax.transaction.xa; version=1.1; partial=true; mandatory:=partial, \
>
> about exporting from the system bundle which is supposed to avoid some linkage problems. Do the samples have the same goo?
>
> thanks
> david jencks
>
> On Apr 19, 2010, at 9:54 AM, Joe Bohn wrote:
>
>> It certainly looks like this fix is necessary (the one to return the JTA_DATASOURCE rather than the NON_JTA_DATASOURCE) - but I want to warn you that it surfaces another problem. I don't know the details of how to fix this yet but we need to get it resolved. This is especially important because it looks like you are getting ready to create a new RC and I think this error will prevent that from passing if not resolved:
>>
>> To recreate the error just run Blog for JPA or AriesTrader configured for container managed JPA.
>>
>> java.lang.LinkageError: loader constraint violation: when resolving interface method "javax.transaction.Transaction.enlistResource(Ljavax/transaction/xa/XAResource;)Z" the class loader (instance of org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader) of the current class, org/apache/aries/transaction/jdbc/ConnectionWrapper, and the class loader (instance of org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader) for resolved class, javax/transaction/Transaction, have different Class objects for the type javax/transaction/xa/XAResource used in the signature
>> at org.apache.aries.transaction.jdbc.ConnectionWrapper.<init>(ConnectionWrapper.java:67)
>> at org.apache.aries.transaction.jdbc.XADatasourceEnlistingWrapper.getEnlistedConnection(XADatasourceEnlistingWrapper.java:85)
>> at org.apache.aries.transaction.jdbc.XADatasourceEnlistingWrapper.getConnection(XADatasourceEnlistingWrapper.java:50)
>> at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>> at java.lang.reflect.Method.invoke(Method.java:597)
>> at org.apache.aries.jndi.services.ServiceHelper$JNDIServiceDamper.invoke(ServiceHelper.java:99)
>> at $Proxy13.getConnection(Unknown Source)
>> at org.apache.openjpa.lib.jdbc.DelegatingDataSource.getConnection(DelegatingDataSource.java:131)
>> at org.apache.openjpa.lib.jdbc.DecoratingDataSource.getConnection(DecoratingDataSource.java:106)
>> at org.apache.openjpa.jdbc.sql.DBDictionaryFactory.newDBDictionary(DBDictionaryFactory.java:91)
>> at org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getDBDictionaryInstance(JDBCConfigurationImpl.java:595)
>> at org.apache.openjpa.jdbc.meta.MappingRepository.endConfiguration(MappingRepository.java:1489)
>> at org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:507)
>> at org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:432)
>> at org.apache.openjpa.lib.conf.PluginValue.instantiate(PluginValue.java:104)
>> at org.apache.openjpa.conf.MetaDataRepositoryValue.instantiate(MetaDataRepositoryValue.java:68)
>> at org.apache.openjpa.lib.conf.ObjectValue.instantiate(ObjectValue.java:83)
>> at org.apache.openjpa.conf.OpenJPAConfigurationImpl.newMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:939)
>> at org.apache.openjpa.conf.OpenJPAConfigurationImpl.getMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:930)
>> at org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java:343)
>> at org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java:315)
>> at org.apache.openjpa.kernel.AbstractBrokerFactory.initializeBroker(AbstractBrokerFactory.java:218)
>> at org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:202)
>> at org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:156)
>> at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:213)
>> at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:57)
>> at org.apache.aries.jpa.container.context.transaction.impl.JTAPersistenceContextRegistry.getCurrentPersistenceContext(JTAPersistenceContextRegistry.java:122)
>> at org.apache.aries.jpa.container.context.transaction.impl.JTAEntityManager.getPersistenceContext(JTAEntityManager.java:73)
>> at org.apache.aries.jpa.container.context.transaction.impl.JTAEntityManager.persist(JTAEntityManager.java:220)
>> at org.apache.aries.samples.ariestrader.persist.jpa.cm.TradeJpaCm.createQuote(TradeJpaCm.java:444)
>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>> at java.lang.reflect.Method.invoke(Method.java:597)
>> at org.apache.aries.blueprint.proxy.Collaborator$1.invoke(Collaborator.java:66)
>> at org.apache.aries.blueprint.proxy.Collaborator.invoke(Collaborator.java:151)
>> at org.apache.aries.samples.ariestrader.persist.jpa.cm.$TradeJpaCm360369157.createQuote(Unknown Source)
>> at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>> at java.lang.reflect.Method.invoke(Method.java:597)
>> at org.apache.aries.blueprint.container.AbstractServiceReferenceRecipe$JdkProxyFactory$1.invoke(AbstractServiceReferenceRecipe.java:614)
>> at $Proxy15.createQuote(Unknown Source)
>> at org.apache.aries.samples.ariestrader.web.TradeBuildDB.<init>(TradeBuildDB.java:183)
>> at org.apache.aries.samples.ariestrader.web.TradeConfigServlet.service(TradeConfigServlet.java:418)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
>> at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502)
>> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
>> at org.ops4j.pax.web.service.internal.WelcomeFilesFilter.doFilter(WelcomeFilesFilter.java:169)
>> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1148)
>> at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:387)
>> at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.handle(HttpServiceServletHandler.java:64)
>> at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
>> at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
>> at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.handle(HttpServiceContext.java:111)
>> at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:64)
>> at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
>> at org.mortbay.jetty.Server.handle(Server.java:322)
>> at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534)
>> at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:864)
>> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:539)
>> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
>> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
>> at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
>> at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520)
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> I discovered this in trunk while attempting to run the AriesTrader sample - but the same is also true of the Blog sample. When we attempt to use declarative transaction support after the change be
>>
>>
>> On 4/19/10 11:59 AM, hughesj@apache.org wrote:
>>> Author: hughesj
>>> Date: Mon Apr 19 15:59:35 2010
>>> New Revision: 935639
>>>
>>> URL: http://svn.apache.org/viewvc?rev=935639&view=rev
>>> Log:
>>> ARIES-287 fix a couple egregious errors in PersistenceUnitInfoImpl - this time in the 0.1-incubating release candidate branch
>>>
>>> Modified:
>>> incubator/aries/branches/0.1-incubating-RC1/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/PersistenceUnitInfoImpl.java
>>>
>>> Modified: incubator/aries/branches/0.1-incubating-RC1/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/PersistenceUnitInfoImpl.java
>>> URL: http://svn.apache.org/viewvc/incubator/aries/branches/0.1-incubating-RC1/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/PersistenceUnitInfoImpl.java?rev=935639&r1=935638&r2=935639&view=diff
>>> ==============================================================================
>>> --- incubator/aries/branches/0.1-incubating-RC1/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/PersistenceUnitInfoImpl.java (original)
>>> +++ incubator/aries/branches/0.1-incubating-RC1/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/PersistenceUnitInfoImpl.java Mon Apr 19 15:59:35 2010
>>> @@ -80,17 +80,20 @@ public class PersistenceUnitInfoImpl imp
>>> if(jarFiles != null) {
>>> for(String jarFile : jarFiles){
>>> URL url = bundle.getResource(jarFile);
>>> - if(url == null)
>>> + if(url == null) {
>>> _logger.error("The persistence unit {} in bundle {} listed the jar file {}, but " +
>>> "{} could not be found in the bundle", new Object[]{getPersistenceUnitName(),
>>> bundle.getSymbolicName() + "_" + bundle.getVersion(), jarFile, jarFile});
>>> + } else {
>>> + urls.add(url);
>>> + }
>>> }
>>> }
>>> return urls;
>>> }
>>>
>>> public DataSource getJtaDataSource() {
>>> - String jndiString = (String) unit.getPersistenceXmlMetadata().get(ParsedPersistenceUnit.NON_JTA_DATASOURCE);
>>> + String jndiString = (String) unit.getPersistenceXmlMetadata().get(ParsedPersistenceUnit.JTA_DATASOURCE);
>>> DataSource toReturn = null;
>>> if(jndiString != null) {
>>> try {
>>>
>>>
>>>
>>
>>
>> --
>> Joe
>
>
--
Joe
Re: svn commit: r935639 - /incubator/aries/branches/0.1-incubating-RC1/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/PersistenceUnitInfoImpl.java
Posted by David Jencks <da...@yahoo.com>.
Karaf has some goo like
javax.transaction; javax.transaction.xa; version=1.1; partial=true; mandatory:=partial, \
about exporting from the system bundle which is supposed to avoid some linkage problems. Do the samples have the same goo?
thanks
david jencks
On Apr 19, 2010, at 9:54 AM, Joe Bohn wrote:
> It certainly looks like this fix is necessary (the one to return the JTA_DATASOURCE rather than the NON_JTA_DATASOURCE) - but I want to warn you that it surfaces another problem. I don't know the details of how to fix this yet but we need to get it resolved. This is especially important because it looks like you are getting ready to create a new RC and I think this error will prevent that from passing if not resolved:
>
> To recreate the error just run Blog for JPA or AriesTrader configured for container managed JPA.
>
> java.lang.LinkageError: loader constraint violation: when resolving interface method "javax.transaction.Transaction.enlistResource(Ljavax/transaction/xa/XAResource;)Z" the class loader (instance of org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader) of the current class, org/apache/aries/transaction/jdbc/ConnectionWrapper, and the class loader (instance of org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader) for resolved class, javax/transaction/Transaction, have different Class objects for the type javax/transaction/xa/XAResource used in the signature
> at org.apache.aries.transaction.jdbc.ConnectionWrapper.<init>(ConnectionWrapper.java:67)
> at org.apache.aries.transaction.jdbc.XADatasourceEnlistingWrapper.getEnlistedConnection(XADatasourceEnlistingWrapper.java:85)
> at org.apache.aries.transaction.jdbc.XADatasourceEnlistingWrapper.getConnection(XADatasourceEnlistingWrapper.java:50)
> at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at org.apache.aries.jndi.services.ServiceHelper$JNDIServiceDamper.invoke(ServiceHelper.java:99)
> at $Proxy13.getConnection(Unknown Source)
> at org.apache.openjpa.lib.jdbc.DelegatingDataSource.getConnection(DelegatingDataSource.java:131)
> at org.apache.openjpa.lib.jdbc.DecoratingDataSource.getConnection(DecoratingDataSource.java:106)
> at org.apache.openjpa.jdbc.sql.DBDictionaryFactory.newDBDictionary(DBDictionaryFactory.java:91)
> at org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getDBDictionaryInstance(JDBCConfigurationImpl.java:595)
> at org.apache.openjpa.jdbc.meta.MappingRepository.endConfiguration(MappingRepository.java:1489)
> at org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:507)
> at org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:432)
> at org.apache.openjpa.lib.conf.PluginValue.instantiate(PluginValue.java:104)
> at org.apache.openjpa.conf.MetaDataRepositoryValue.instantiate(MetaDataRepositoryValue.java:68)
> at org.apache.openjpa.lib.conf.ObjectValue.instantiate(ObjectValue.java:83)
> at org.apache.openjpa.conf.OpenJPAConfigurationImpl.newMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:939)
> at org.apache.openjpa.conf.OpenJPAConfigurationImpl.getMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:930)
> at org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java:343)
> at org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java:315)
> at org.apache.openjpa.kernel.AbstractBrokerFactory.initializeBroker(AbstractBrokerFactory.java:218)
> at org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:202)
> at org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:156)
> at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:213)
> at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:57)
> at org.apache.aries.jpa.container.context.transaction.impl.JTAPersistenceContextRegistry.getCurrentPersistenceContext(JTAPersistenceContextRegistry.java:122)
> at org.apache.aries.jpa.container.context.transaction.impl.JTAEntityManager.getPersistenceContext(JTAEntityManager.java:73)
> at org.apache.aries.jpa.container.context.transaction.impl.JTAEntityManager.persist(JTAEntityManager.java:220)
> at org.apache.aries.samples.ariestrader.persist.jpa.cm.TradeJpaCm.createQuote(TradeJpaCm.java:444)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at org.apache.aries.blueprint.proxy.Collaborator$1.invoke(Collaborator.java:66)
> at org.apache.aries.blueprint.proxy.Collaborator.invoke(Collaborator.java:151)
> at org.apache.aries.samples.ariestrader.persist.jpa.cm.$TradeJpaCm360369157.createQuote(Unknown Source)
> at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:597)
> at org.apache.aries.blueprint.container.AbstractServiceReferenceRecipe$JdkProxyFactory$1.invoke(AbstractServiceReferenceRecipe.java:614)
> at $Proxy15.createQuote(Unknown Source)
> at org.apache.aries.samples.ariestrader.web.TradeBuildDB.<init>(TradeBuildDB.java:183)
> at org.apache.aries.samples.ariestrader.web.TradeConfigServlet.service(TradeConfigServlet.java:418)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
> at org.ops4j.pax.web.service.internal.WelcomeFilesFilter.doFilter(WelcomeFilesFilter.java:169)
> at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1148)
> at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:387)
> at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.handle(HttpServiceServletHandler.java:64)
> at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
> at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
> at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.handle(HttpServiceContext.java:111)
> at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:64)
> at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
> at org.mortbay.jetty.Server.handle(Server.java:322)
> at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534)
> at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:864)
> at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:539)
> at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
> at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
> at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520)
>
>
>
>
>
>
>
>
>
> I discovered this in trunk while attempting to run the AriesTrader sample - but the same is also true of the Blog sample. When we attempt to use declarative transaction support after the change be
>
>
> On 4/19/10 11:59 AM, hughesj@apache.org wrote:
>> Author: hughesj
>> Date: Mon Apr 19 15:59:35 2010
>> New Revision: 935639
>>
>> URL: http://svn.apache.org/viewvc?rev=935639&view=rev
>> Log:
>> ARIES-287 fix a couple egregious errors in PersistenceUnitInfoImpl - this time in the 0.1-incubating release candidate branch
>>
>> Modified:
>> incubator/aries/branches/0.1-incubating-RC1/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/PersistenceUnitInfoImpl.java
>>
>> Modified: incubator/aries/branches/0.1-incubating-RC1/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/PersistenceUnitInfoImpl.java
>> URL: http://svn.apache.org/viewvc/incubator/aries/branches/0.1-incubating-RC1/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/PersistenceUnitInfoImpl.java?rev=935639&r1=935638&r2=935639&view=diff
>> ==============================================================================
>> --- incubator/aries/branches/0.1-incubating-RC1/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/PersistenceUnitInfoImpl.java (original)
>> +++ incubator/aries/branches/0.1-incubating-RC1/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/PersistenceUnitInfoImpl.java Mon Apr 19 15:59:35 2010
>> @@ -80,17 +80,20 @@ public class PersistenceUnitInfoImpl imp
>> if(jarFiles != null) {
>> for(String jarFile : jarFiles){
>> URL url = bundle.getResource(jarFile);
>> - if(url == null)
>> + if(url == null) {
>> _logger.error("The persistence unit {} in bundle {} listed the jar file {}, but " +
>> "{} could not be found in the bundle", new Object[]{getPersistenceUnitName(),
>> bundle.getSymbolicName() + "_" + bundle.getVersion(), jarFile, jarFile});
>> + } else {
>> + urls.add(url);
>> + }
>> }
>> }
>> return urls;
>> }
>>
>> public DataSource getJtaDataSource() {
>> - String jndiString = (String) unit.getPersistenceXmlMetadata().get(ParsedPersistenceUnit.NON_JTA_DATASOURCE);
>> + String jndiString = (String) unit.getPersistenceXmlMetadata().get(ParsedPersistenceUnit.JTA_DATASOURCE);
>> DataSource toReturn = null;
>> if(jndiString != null) {
>> try {
>>
>>
>>
>
>
> --
> Joe
Re: svn commit: r935639 - /incubator/aries/branches/0.1-incubating-RC1/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/PersistenceUnitInfoImpl.java
Posted by Joe Bohn <jo...@gmail.com>.
It certainly looks like this fix is necessary (the one to return the
JTA_DATASOURCE rather than the NON_JTA_DATASOURCE) - but I want to warn
you that it surfaces another problem. I don't know the details of how
to fix this yet but we need to get it resolved. This is especially
important because it looks like you are getting ready to create a new RC
and I think this error will prevent that from passing if not resolved:
To recreate the error just run Blog for JPA or AriesTrader configured
for container managed JPA.
java.lang.LinkageError: loader constraint violation: when resolving
interface method
"javax.transaction.Transaction.enlistResource(Ljavax/transaction/xa/XAResource;)Z"
the class loader (instance of
org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader) of the current
class, org/apache/aries/transaction/jdbc/ConnectionWrapper, and the
class loader (instance of
org/eclipse/osgi/internal/baseadaptor/DefaultClassLoader) for resolved
class, javax/transaction/Transaction, have different Class objects for
the type javax/transaction/xa/XAResource used in the signature
at
org.apache.aries.transaction.jdbc.ConnectionWrapper.<init>(ConnectionWrapper.java:67)
at
org.apache.aries.transaction.jdbc.XADatasourceEnlistingWrapper.getEnlistedConnection(XADatasourceEnlistingWrapper.java:85)
at
org.apache.aries.transaction.jdbc.XADatasourceEnlistingWrapper.getConnection(XADatasourceEnlistingWrapper.java:50)
at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.apache.aries.jndi.services.ServiceHelper$JNDIServiceDamper.invoke(ServiceHelper.java:99)
at $Proxy13.getConnection(Unknown Source)
at
org.apache.openjpa.lib.jdbc.DelegatingDataSource.getConnection(DelegatingDataSource.java:131)
at
org.apache.openjpa.lib.jdbc.DecoratingDataSource.getConnection(DecoratingDataSource.java:106)
at
org.apache.openjpa.jdbc.sql.DBDictionaryFactory.newDBDictionary(DBDictionaryFactory.java:91)
at
org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getDBDictionaryInstance(JDBCConfigurationImpl.java:595)
at
org.apache.openjpa.jdbc.meta.MappingRepository.endConfiguration(MappingRepository.java:1489)
at
org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:507)
at
org.apache.openjpa.lib.conf.Configurations.configureInstance(Configurations.java:432)
at
org.apache.openjpa.lib.conf.PluginValue.instantiate(PluginValue.java:104)
at
org.apache.openjpa.conf.MetaDataRepositoryValue.instantiate(MetaDataRepositoryValue.java:68)
at
org.apache.openjpa.lib.conf.ObjectValue.instantiate(ObjectValue.java:83)
at
org.apache.openjpa.conf.OpenJPAConfigurationImpl.newMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:939)
at
org.apache.openjpa.conf.OpenJPAConfigurationImpl.getMetaDataRepositoryInstance(OpenJPAConfigurationImpl.java:930)
at
org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java:343)
at
org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java:315)
at
org.apache.openjpa.kernel.AbstractBrokerFactory.initializeBroker(AbstractBrokerFactory.java:218)
at
org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:202)
at
org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:156)
at
org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:213)
at
org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:57)
at
org.apache.aries.jpa.container.context.transaction.impl.JTAPersistenceContextRegistry.getCurrentPersistenceContext(JTAPersistenceContextRegistry.java:122)
at
org.apache.aries.jpa.container.context.transaction.impl.JTAEntityManager.getPersistenceContext(JTAEntityManager.java:73)
at
org.apache.aries.jpa.container.context.transaction.impl.JTAEntityManager.persist(JTAEntityManager.java:220)
at
org.apache.aries.samples.ariestrader.persist.jpa.cm.TradeJpaCm.createQuote(TradeJpaCm.java:444)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.apache.aries.blueprint.proxy.Collaborator$1.invoke(Collaborator.java:66)
at
org.apache.aries.blueprint.proxy.Collaborator.invoke(Collaborator.java:151)
at
org.apache.aries.samples.ariestrader.persist.jpa.cm.$TradeJpaCm360369157.createQuote(Unknown
Source)
at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.apache.aries.blueprint.container.AbstractServiceReferenceRecipe$JdkProxyFactory$1.invoke(AbstractServiceReferenceRecipe.java:614)
at $Proxy15.createQuote(Unknown Source)
at
org.apache.aries.samples.ariestrader.web.TradeBuildDB.<init>(TradeBuildDB.java:183)
at
org.apache.aries.samples.ariestrader.web.TradeConfigServlet.service(TradeConfigServlet.java:418)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502)
at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
at
org.ops4j.pax.web.service.internal.WelcomeFilesFilter.doFilter(WelcomeFilesFilter.java:169)
at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1148)
at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:387)
at
org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.handle(HttpServiceServletHandler.java:64)
at
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
at
org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.handle(HttpServiceContext.java:111)
at
org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:64)
at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:322)
at
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:534)
at
org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:864)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:539)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409)
at
org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:520)
I discovered this in trunk while attempting to run the AriesTrader
sample - but the same is also true of the Blog sample. When we attempt
to use declarative transaction support after the change be
On 4/19/10 11:59 AM, hughesj@apache.org wrote:
> Author: hughesj
> Date: Mon Apr 19 15:59:35 2010
> New Revision: 935639
>
> URL: http://svn.apache.org/viewvc?rev=935639&view=rev
> Log:
> ARIES-287 fix a couple egregious errors in PersistenceUnitInfoImpl - this time in the 0.1-incubating release candidate branch
>
> Modified:
> incubator/aries/branches/0.1-incubating-RC1/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/PersistenceUnitInfoImpl.java
>
> Modified: incubator/aries/branches/0.1-incubating-RC1/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/PersistenceUnitInfoImpl.java
> URL: http://svn.apache.org/viewvc/incubator/aries/branches/0.1-incubating-RC1/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/PersistenceUnitInfoImpl.java?rev=935639&r1=935638&r2=935639&view=diff
> ==============================================================================
> --- incubator/aries/branches/0.1-incubating-RC1/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/PersistenceUnitInfoImpl.java (original)
> +++ incubator/aries/branches/0.1-incubating-RC1/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/PersistenceUnitInfoImpl.java Mon Apr 19 15:59:35 2010
> @@ -80,17 +80,20 @@ public class PersistenceUnitInfoImpl imp
> if(jarFiles != null) {
> for(String jarFile : jarFiles){
> URL url = bundle.getResource(jarFile);
> - if(url == null)
> + if(url == null) {
> _logger.error("The persistence unit {} in bundle {} listed the jar file {}, but " +
> "{} could not be found in the bundle", new Object[]{getPersistenceUnitName(),
> bundle.getSymbolicName() + "_" + bundle.getVersion(), jarFile, jarFile});
> + } else {
> + urls.add(url);
> + }
> }
> }
> return urls;
> }
>
> public DataSource getJtaDataSource() {
> - String jndiString = (String) unit.getPersistenceXmlMetadata().get(ParsedPersistenceUnit.NON_JTA_DATASOURCE);
> + String jndiString = (String) unit.getPersistenceXmlMetadata().get(ParsedPersistenceUnit.JTA_DATASOURCE);
> DataSource toReturn = null;
> if(jndiString != null) {
> try {
>
>
>
--
Joe