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, [email protected] 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

Reply via email to