[ http://issues.apache.org/jira/browse/GERONIMO-602?page=comments#action_60679 ] Gianny DAMOUR commented on GERONIMO-602: ----------------------------------------
Just a quick question for you Sandip: is it a systematic failure or is it only transient? Based on the JavaDoc (see below), it seems to me that the implementation should work "as is". " @exception FileNotFoundException if the file exists but is a directory rather than a regular file, does not exist but cannot be created, or cannot be opened for any other reason. " I tried the provided EAR also on Windows and it was OK. I am using: Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2-b28) Java HotSpot(TM) Client VM (build 1.4.2-b28, mixed mode) on Windows XP. > Ear deployment fails when EJB Jar is in subdirectory > ---------------------------------------------------- > > Key: GERONIMO-602 > URL: http://issues.apache.org/jira/browse/GERONIMO-602 > Project: Geronimo > Type: Bug > Components: deployment > Versions: 1.0-M4 > Environment: Windows XP, Code version# 156064 > Reporter: Sandip Ghayal > Attachments: TestApplication.ear, deployment_sg.txt > > When deploying Attached Ear file where EJB is located under sub directory one > would get errors like > java.io.FileNotFoundException: > F:\geronimo\geronimo\modules\assembly\target\gero > nimo-1.0-SNAPSHOT\config-store\17\testApplication\testEJB.jar (The system > cannot > find the path specified) > at java.io.FileOutputStream.open(Native Method) > at java.io.FileOutputStream.<init>(FileOutputStream.java:179) > at java.io.FileOutputStream.<init>(FileOutputStream.java:131) > at > org.apache.geronimo.deployment.util.DeploymentUtil.copyFile(Deploymen > tUtil.java:92) > at > org.apache.geronimo.deployment.util.DeploymentUtil.copyToPackedJar(De > ploymentUtil.java:192) > at > org.apache.geronimo.deployment.DeploymentContext.addIncludeAsPackedJa > r(DeploymentContext.java:238) > at > org.openejb.deployment.OpenEJBModuleBuilder.installModule(OpenEJBModu > leBuilder.java:288) > at > org.openejb.deployment.OpenEJBModuleBuilder$$FastClassByCGLIB$$11bd7b > 20.invoke(<generated>) > at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53) > at > org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethod > Invoker.java:38) > at > org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperatio > n.java:118) > at > org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance. > java:710) > at > org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:5 > 7) > at > org.apache.geronimo.kernel.proxy.RawOperationInvoker.invoke(RawOperat > ionInvoker.java:36) > at > org.apache.geronimo.kernel.proxy.ProxyMethodInterceptor.intercept(Pro > xyMethodInterceptor.java:92) > at > org.apache.geronimo.j2ee.deployment.ModuleBuilder$$EnhancerByCGLIB$$3 > 80f6faf.installModule(<generated>) > at > org.apache.geronimo.j2ee.deployment.EARConfigBuilder.buildConfigurati > on(EARConfigBuilder.java:316) > at > org.apache.geronimo.j2ee.deployment.EARConfigBuilder$$FastClassByCGLI > B$$38e56ec6.invoke(<generated>) > at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53) > at > org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethod > Invoker.java:38) > at > org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperatio > n.java:118) > at > org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance. > java:710) > at > org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:5 > 7) > at > org.apache.geronimo.kernel.proxy.RawOperationInvoker.invoke(RawOperat > ionInvoker.java:36) > at > org.apache.geronimo.kernel.proxy.ProxyMethodInterceptor.intercept(Pro > xyMethodInterceptor.java:92) > at > org.apache.geronimo.deployment.ConfigurationBuilder$$EnhancerByCGLIB$ > $661d6fa5.buildConfiguration(<generated>) > at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:172) > at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:85) > at > org.apache.geronimo.deployment.Deployer$$FastClassByCGLIB$$734a235d.i > nvoke(<generated>) > at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53) > at > org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethod > Invoker.java:38) > at > org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperatio > n.java:118) > at > org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance. > java:745) > at org.apache.geronimo.kernel.Kernel.invoke(Kernel.java:299) > at org.apache.geronimo.kernel.KernelGBean.invoke(KernelGBean.java:121) > at > org.apache.geronimo.kernel.KernelGBean$$FastClassByCGLIB$$1cccefc9.in > voke(<generated>) > at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53) > at > org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethod > Invoker.java:38) > at > org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperatio > n.java:118) > at > org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance. > java:745) > at org.apache.geronimo.kernel.Kernel.invoke(Kernel.java:299) > at > org.apache.geronimo.kernel.jmx.MBeanServerDelegate.invoke(MBeanServer > Delegate.java:117) > at > javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnecti > onImpl.java:1408) > at > javax.management.remote.rmi.RMIConnectionImpl.access$100(RMIConnectio > nImpl.java:81) > at > javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run > (RMIConnectionImpl.java:1245) > at java.security.AccessController.doPrivileged(Native Method) > at > javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(R > MIConnectionImpl.java:1348) > at > javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImp > l.java:782) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. > java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces > sorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:585) > at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294) > at sun.rmi.transport.Transport$1.run(Transport.java:153) > at java.security.AccessController.doPrivileged(Native Method) > at sun.rmi.transport.Transport.serviceCall(Transport.java:149) > at > sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:4 > 60) > at > sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport > .java:701) > at java.lang.Thread.run(Thread.java:595) > On investigation it was found that the copy method in the DeploymentUtil.java > didn't handle directories and sub-directories properly. > Modified the code to handle sub-directories properly and have attached the > fix for it. > I am no sure about standard Geronimo uses for File.separatorChar so I have > replaced all possible File Separators with System specific separators. > Can some one review this fix and if have issues then open up discussion. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - If you want more information on JIRA, or have a bug to report see: http://www.atlassian.com/software/jira