hey,
I found that upgrading from 4.7.0 to 4.7.1 broke some of my tests.
I spent some time to narrow it down:
it happens if you have a bean in your project and then extend it in a test
bean then it appears that openejb tries to load the parent twice and I get
a NameAlreadyBoundException

the error goes away if I either
* change the version back to 4.7.0
* stop extending the parent bean
* make the parent a normal class
* move the main bean to src/test/java
* move the test bean to src/main/java   (so maybe its a maven classpath
issue?)


here is  a project that displays a failing test:

$ git clone https://github.com/amanica/tomee-embedded-trial.git
$ cd tomee-embedded-trial
$ git checkout d517ae9      #for in case I commit something later
$ mvn clean install -Dtest=PingRSEmbeddedOpenEjbTest


-------------------------------------------------------------------------------
Test set: com.example.PingRSEmbeddedOpenEjbTest
-------------------------------------------------------------------------------
Tests run: 3, Failures: 0, Errors: 3, Skipped: 0, Time elapsed: 3.275 sec
<<< FAILURE!
ping(com.example.PingRSEmbeddedOpenEjbTest)  Time elapsed: 2.657 sec  <<<
ERROR!
java.lang.RuntimeException: Could not start up container.
at com.example.AOpenEjbTest.inject(AOpenEjbTest.java:95)
at com.example.AOpenEjbTest.injectContext(AOpenEjbTest.java:67)
at com.example.AOpenEjbTest.setupAOpenEjbTest(AOpenEjbTest.java:35)
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:606)
at
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
at
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27)
at
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:30)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
at
org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
at
org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
at
org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
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:606)
at
org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
at
org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
at
org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
at
org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
Caused by:
org.apache.openejb.OpenEjbContainer$AssembleApplicationException:
org.apache.openejb.OpenEJBException: Creating application failed:
/stf/prj/tmp/tomee-embedded-trial/myAppName: Unable to bind business remote
deployment in jndi.
at
org.apache.openejb.OpenEjbContainer$Provider.createEJBContainer(OpenEjbContainer.java:339)
at
javax.ejb.embeddable.EJBContainer.createEJBContainer(EJBContainer.java:56)
at com.example.AOpenEjbTest.getContext(AOpenEjbTest.java:101)
at com.example.AOpenEjbTest.inject(AOpenEjbTest.java:77)
... 32 more
Caused by: org.apache.openejb.OpenEJBException: Creating application
failed: /stf/prj/tmp/tomee-embedded-trial/myAppName: Unable to bind
business remote deployment in jndi.
at
org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:896)
at
org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:623)
at
org.apache.openejb.OpenEjbContainer$Provider.createEJBContainer(OpenEjbContainer.java:335)
... 35 more
Caused by: org.apache.openejb.OpenEJBRuntimeException: Unable to bind
business remote deployment in jndi.
at
org.apache.openejb.assembler.classic.JndiBuilder.bind(JndiBuilder.java:448)
at
org.apache.openejb.assembler.classic.JndiBuilder.build(JndiBuilder.java:92)
at
org.apache.openejb.assembler.classic.Assembler.initEjbs(Assembler.java:1017)
at
org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:788)
... 37 more
Caused by: javax.naming.NameAlreadyBoundException:
openejb/Deployment/PingRS/com.example.PingRS!LocalBeanHome
at
org.apache.openejb.assembler.classic.JndiBuilder.bind(JndiBuilder.java:661)
at
org.apache.openejb.assembler.classic.JndiBuilder.bind(JndiBuilder.java:436)
... 40 more

ping2(com.example.PingRSEmbeddedOpenEjbTest)  Time elapsed: 0.303 sec  <<<
ERROR!
java.lang.RuntimeException: Could not start up container.
at com.example.AOpenEjbTest.inject(AOpenEjbTest.java:95)
at com.example.AOpenEjbTest.injectContext(AOpenEjbTest.java:67)
at com.example.AOpenEjbTest.setupAOpenEjbTest(AOpenEjbTest.java:35)
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:606)
at
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
at
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27)
at
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:30)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
at
org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
at
org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
at
org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
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:606)
at
org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
at
org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
at
org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
at
org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
Caused by:
org.apache.openejb.OpenEjbContainer$AssembleApplicationException:
org.apache.openejb.OpenEJBException: Creating application failed:
/stf/prj/tmp/tomee-embedded-trial/myAppName: Unable to bind business remote
deployment in jndi.
at
org.apache.openejb.OpenEjbContainer$Provider.createEJBContainer(OpenEjbContainer.java:339)
at
javax.ejb.embeddable.EJBContainer.createEJBContainer(EJBContainer.java:56)
at com.example.AOpenEjbTest.getContext(AOpenEjbTest.java:101)
at com.example.AOpenEjbTest.inject(AOpenEjbTest.java:77)
... 32 more
Caused by: org.apache.openejb.OpenEJBException: Creating application
failed: /stf/prj/tmp/tomee-embedded-trial/myAppName: Unable to bind
business remote deployment in jndi.
at
org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:896)
at
org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:623)
at
org.apache.openejb.OpenEjbContainer$Provider.createEJBContainer(OpenEjbContainer.java:335)
... 35 more
Caused by: org.apache.openejb.OpenEJBRuntimeException: Unable to bind
business remote deployment in jndi.
at
org.apache.openejb.assembler.classic.JndiBuilder.bind(JndiBuilder.java:448)
at
org.apache.openejb.assembler.classic.JndiBuilder.build(JndiBuilder.java:92)
at
org.apache.openejb.assembler.classic.Assembler.initEjbs(Assembler.java:1017)
at
org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:788)
... 37 more
Caused by: javax.naming.NameAlreadyBoundException:
openejb/Deployment/PingRS/com.example.PingRS!LocalBeanHome
at
org.apache.openejb.assembler.classic.JndiBuilder.bind(JndiBuilder.java:661)
at
org.apache.openejb.assembler.classic.JndiBuilder.bind(JndiBuilder.java:436)
... 40 more

giveMeADuck(com.example.PingRSEmbeddedOpenEjbTest)  Time elapsed: 0.227 sec
 <<< ERROR!
java.lang.RuntimeException: Could not start up container.
at com.example.AOpenEjbTest.inject(AOpenEjbTest.java:95)
at com.example.AOpenEjbTest.injectContext(AOpenEjbTest.java:67)
at com.example.AOpenEjbTest.setupAOpenEjbTest(AOpenEjbTest.java:35)
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:606)
at
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
at
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27)
at
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:30)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
at
org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
at
org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
at
org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
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:606)
at
org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
at
org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
at
org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
at
org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
Caused by:
org.apache.openejb.OpenEjbContainer$AssembleApplicationException:
org.apache.openejb.OpenEJBException: Creating application failed:
/stf/prj/tmp/tomee-embedded-trial/myAppName: Unable to bind business remote
deployment in jndi.
at
org.apache.openejb.OpenEjbContainer$Provider.createEJBContainer(OpenEjbContainer.java:339)
at
javax.ejb.embeddable.EJBContainer.createEJBContainer(EJBContainer.java:56)
at com.example.AOpenEjbTest.getContext(AOpenEjbTest.java:101)
at com.example.AOpenEjbTest.inject(AOpenEjbTest.java:77)
... 32 more
Caused by: org.apache.openejb.OpenEJBException: Creating application
failed: /stf/prj/tmp/tomee-embedded-trial/myAppName: Unable to bind
business remote deployment in jndi.
at
org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:896)
at
org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:623)
at
org.apache.openejb.OpenEjbContainer$Provider.createEJBContainer(OpenEjbContainer.java:335)
... 35 more
Caused by: org.apache.openejb.OpenEJBRuntimeException: Unable to bind
business remote deployment in jndi.
at
org.apache.openejb.assembler.classic.JndiBuilder.bind(JndiBuilder.java:448)
at
org.apache.openejb.assembler.classic.JndiBuilder.build(JndiBuilder.java:92)
at
org.apache.openejb.assembler.classic.Assembler.initEjbs(Assembler.java:1017)
at
org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:788)
... 37 more
Caused by: javax.naming.NameAlreadyBoundException:
openejb/Deployment/PingRS/com.example.PingRS!LocalBeanHome
at
org.apache.openejb.assembler.classic.JndiBuilder.bind(JndiBuilder.java:661)
at
org.apache.openejb.assembler.classic.JndiBuilder.bind(JndiBuilder.java:436)
... 40 more


-- 
✝ Marius

Reply via email to