You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by "Jacek Laskowski (JIRA)" <ji...@apache.org> on 2008/01/14 13:46:34 UTC
[jira] Updated: (OPENEJB-746) Command line tool Deploy/Undeploy
asymmetry
[ https://issues.apache.org/jira/browse/OPENEJB-746?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jacek Laskowski updated OPENEJB-746:
------------------------------------
Attachment: OPENEJB-746.patch
This is a patch that lets delete files upon undeployment on MS Windows. There're so many articles/bug reports for the issue on MS Windows that I had lots of troubles to wind up to the mental state I was before I decided to go for fixing the issue in OpenEJB. Fortunately, there's JarFileClassLoader in XBean that makes undeployment of jars/resources possible. After making sure all classloaders "disconnect" from the module jar file, jar modules can be deleted with File.delete().
But...
It worked fine until I rebuild the entire openejb sources that blew up with the following exception:
INFO - Undeploying app: C:\.m2\org\apache\openejb\openejb-itests-app\3.0.0-SNAPSHOT\openejb-itests-app-3.0.0-SNAPSHOT
ERROR - Application could not be deployed: C:\.m2\org\apache\openejb\openejb-itests-app\3.0.0-SNAPSHOT\openejb-itests-app-3.0.0-SNAPSHOT
org.apache.openejb.OpenEJBException: createApplication.failed [C:\.m2\org\apache\openejb\openejb-itests-app\3.0.0-SNAPSHOT\openejb-itests-app-3.0.0-SNAPSHOT]: Error building bean 'Basic
CmpBean'. Exception: class java.lang.NoSuchMethodError: org.apache.openejb.test.entity.cmp.BasicCmpBean.pcGetManagedFieldCount()I: org.apache.openejb.test.entity.cmp.BasicCmpBean.pcGet
ManagedFieldCount()I
at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:588)
at org.apache.openejb.assembler.classic.Assembler.buildContainerSystem(Assembler.java:336)
at org.apache.openejb.assembler.classic.Assembler.build(Assembler.java:248)
at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:149)
at org.apache.openejb.OpenEJB.init(OpenEJB.java:293)
at org.apache.openejb.OpenEJB.init(OpenEJB.java:272)
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:585)
at org.apache.openejb.loader.OpenEJBInstance.init(OpenEJBInstance.java:36)
at org.apache.openejb.client.LocalInitialContextFactory.init(LocalInitialContextFactory.java:62)
at org.apache.openejb.client.LocalInitialContextFactory.init(LocalInitialContextFactory.java:51)
at org.apache.openejb.client.LocalInitialContextFactory.getInitialContext(LocalInitialContextFactory.java:40)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:247)
at javax.naming.InitialContext.init(InitialContext.java:223)
at javax.naming.InitialContext.<init>(InitialContext.java:197)
at org.apache.openejb.test.IvmTestServer.init(IvmTestServer.java:43)
at org.apache.openejb.test.TestManager.initServer(TestManager.java:142)
at org.apache.openejb.test.TestManager.init(TestManager.java:72)
at org.apache.openejb.iTest.setUp(iTest.java:63)
at org.apache.openejb.test.TestSuite.run(TestSuite.java:44)
at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:81)
at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:165)
at org.apache.maven.surefire.Surefire.run(Surefire.java:107)
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:585)
at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:285)
at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:976)
Caused by: org.apache.openejb.OpenEJBException: Error building bean 'BasicCmpBean'. Exception: class java.lang.NoSuchMethodError: org.apache.openejb.test.entity.cmp.BasicCmpBean.pcGetM
anagedFieldCount()I: org.apache.openejb.test.entity.cmp.BasicCmpBean.pcGetManagedFieldCount()I
at org.apache.openejb.assembler.classic.EjbJarBuilder.build(EjbJarBuilder.java:64)
at org.apache.openejb.assembler.classic.Assembler.createApplication(Assembler.java:491)
... 33 more
Caused by: java.lang.NoSuchMethodError: org.apache.openejb.test.entity.cmp.BasicCmpBean.pcGetManagedFieldCount()I
at openejb.org.apache.openejb.test.entity.cmp.BasicCmpBeanX.<clinit>(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:242)
at org.apache.openejb.assembler.classic.EnterpriseBeanBuilder.load(EnterpriseBeanBuilder.java:366)
at org.apache.openejb.assembler.classic.EnterpriseBeanBuilder.loadClass(EnterpriseBeanBuilder.java:346)
at org.apache.openejb.assembler.classic.EnterpriseBeanBuilder.build(EnterpriseBeanBuilder.java:218)
at org.apache.openejb.assembler.classic.EjbJarBuilder.build(EjbJarBuilder.java:52)
... 34 more
Apply the patch and run mvn test -Dtest=iTest -Ditest=ApplicationTest in container/openejb-core to have it appeared.
It looks Dain had the same issue almost one year ago when he worked on the cmp2jpa conversion - Do mapped superclasses work at all in OpenJPA? (http://www.mail-archive.com/open-jpa-dev@incubator.apache.org/msg02045.html). I don't think I can tackle the issue without Dain's or Daves' help so I'm reassigning the issue to Dain hoping he can fix it easily ;-)
Very nice and useful tool that helped me to pinpoint what held jar modules is described at Tool for Diagnosing Failed GlassFish Redeployments/Undeployments on Windows due to Locked JARs (http://blogs.sun.com/quinn/entry/tool_for_diagnosing_failed_glassfish). It worked beautifully.
> Command line tool Deploy/Undeploy asymmetry
> --------------------------------------------
>
> Key: OPENEJB-746
> URL: https://issues.apache.org/jira/browse/OPENEJB-746
> Project: OpenEJB
> Issue Type: Bug
> Components: deployment, tools
> Affects Versions: 3.0-beta-1
> Reporter: David Blevins
> Assignee: Jacek Laskowski
> Fix For: 3.0-beta-2
>
> Attachments: OPENEJB-746.patch
>
>
> If deploy copies the jar into apps/ then undeploy should delete it.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.