]
Martin Gencur resolved ISPN-4249.
---------------------------------
Resolution: Rejected
Those arjuna packages are only required by the infinispan core test-jar. This issues was
fixed in another PR, it does not affect ISPN used by end users.
Unable to find transaction manager due to missing imports in OSGi
-----------------------------------------------------------------
Key: ISPN-4249
URL:
https://issues.jboss.org/browse/ISPN-4249
Project: Infinispan
Issue Type: Bug
Reporter: Martin Gencur
Assignee: Martin Gencur
The following package have to be defined by Import-Package in either ISPN core or the
client bundle which uses ISPN core (not sure about the client's bundle) so that JBoss
TS can be found on classpath:
{code}
com.arjuna.ats.arjuna,
com.arjuna.ats.arjuna.common,
com.arjuna.ats.arjuna.coordinator,
com.arjuna.ats.arjuna.exceptions,
com.arjuna.ats.arjuna.logging,
com.arjuna.ats.arjuna.objectstore,
com.arjuna.ats.arjuna.recovery,
com.arjuna.ats.arjuna.state,
com.arjuna.ats.arjuna.tools,
com.arjuna.ats.arjuna.utils,
com.arjuna.ats.internal.arjuna,
com.arjuna.ats.internal.arjuna.common,
com.arjuna.ats.internal.arjuna.coordinator,
com.arjuna.ats.internal.arjuna.recovery,
com.arjuna.ats.internal.arjuna.thread,
com.arjuna.ats.internal.arjuna.tools,
com.arjuna.ats.internal.arjuna.utils,
com.arjuna.ats.internal.arjuna.objectstore,
com.arjuna.common.internal.util.propertyservice,
{code}
We should make sure we either provide users with instructions which packages they have to
import to make transactions work, or we have to import them automatically. This issues
needs to be investigated more. The bad thing is that PAX EXAM did not reveal this issue.
Perhaps it uses DynamicImport-Package to import all packages.
This is a stacktrace I got when running tests for DistExec:
{code}
testInvokeMapReduceOnSubsetOfKeys(org.infinispan.it.osgi.distexec.mapreduce.DistributedTwoNodesMapReduceTest)
Time elapsed: 0.013 sec <<< ERROR!
java.lang.NoClassDefFoundError:
com/arjuna/common/internal/util/propertyservice/BeanPopulator
at
org.infinispan.test.fwk.JBossTransactionsUtils.setVolatileStores(JBossTransactionsUtils.java:25)
at
org.infinispan.test.fwk.TestCacheManagerFactory.markAsTransactional(TestCacheManagerFactory.java:104)
at
org.infinispan.test.fwk.TestCacheManagerFactory.getDefaultCacheConfiguration(TestCacheManagerFactory.java:288)
at
org.infinispan.test.AbstractCacheTest.getDefaultClusteredCacheConfig(AbstractCacheTest.java:48)
at
org.infinispan.test.AbstractCacheTest.getDefaultClusteredCacheConfig(AbstractCacheTest.java:44)
at
org.infinispan.it.osgi.distexec.mapreduce.BaseWordCountMapReduceTest.setUp(BaseWordCountMapReduceTest.java:48)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at
org.ops4j.pax.exam.invoker.junit.internal.ContainerTestRunner.runChild(ContainerTestRunner.java:67)
at
org.ops4j.pax.exam.invoker.junit.internal.ContainerTestRunner.runChild(ContainerTestRunner.java:37)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
at org.junit.runner.JUnitCore.run(JUnitCore.java:138)
at
org.ops4j.pax.exam.invoker.junit.internal.JUnitProbeInvoker.invokeViaJUnit(JUnitProbeInvoker.java:125)
at
org.ops4j.pax.exam.invoker.junit.internal.JUnitProbeInvoker.findAndInvoke(JUnitProbeInvoker.java:98)
at
org.ops4j.pax.exam.invoker.junit.internal.JUnitProbeInvoker.call(JUnitProbeInvoker.java:74)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at
org.ops4j.pax.exam.rbc.internal.RemoteBundleContextImpl.remoteCall(RemoteBundleContextImpl.java:80)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322)
at sun.rmi.transport.Transport$1.run(Transport.java:177)
at sun.rmi.transport.Transport$1.run(Transport.java:174)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:173)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:553)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:808)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:667)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)
{code}