You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomee.apache.org by Laird Nelson <lj...@gmail.com> on 2010/04/09 22:19:44 UTC
Unable to clear Sun JarFileFactory cache?
I have a project that I put together a while back, stuck under Hudson, and
it's been building fine ever since. It uses OpenEJB 3.1.3-SNAPSHOT.
I just noticed that its builds have begun to fail during testing. OpenEJB
is now spitting out:
INFO - Undeploying app: classpath.ear
DEBUG - Destroying classLoaders for application classpath.ear
DEBUG - Destroying classLoader URLClassLoader@14460880
DEBUG - Releasing URLs for application classpath.ear
DEBUG - Clearing Sun JarFileFactory cache for directory classpath.ear
ERROR - Unable to clear Sun JarFileFactory cache
java.lang.IllegalArgumentException: bad url file:/E:/Documents and
Settings/Laird
Nelson/.m2/repository/org/apache/openejb/openejb-core/3.1.3-SNAPSHOT/openejb-core-3.1.3-SNAPSHOT.jar
at org.apache.openejb.util.URLs.toFile(URLs.java:48)
at
org.apache.openejb.ClassLoaderUtil.clearSunJarFileFactoryCache(ClassLoaderUtil.java:182)
at
org.apache.openejb.ClassLoaderUtil.destroyClassLoader(ClassLoaderUtil.java:130)
at
org.apache.openejb.assembler.classic.Assembler.destroyApplication(Assembler.java:925)
at
org.apache.openejb.assembler.classic.Assembler.destroyApplication(Assembler.java:792)
at
org.apache.openejb.assembler.classic.Assembler.destroy(Assembler.java:753)
at org.apache.openejb.OpenEJB.destroy(OpenEJB.java:240)
at
org.apache.openejb.client.LocalInitialContext.tearDownOpenEJB(LocalInitialContext.java:105)
at
org.apache.openejb.client.LocalInitialContext.destroy(LocalInitialContext.java:97)
at
org.apache.openejb.client.LocalInitialContext.close(LocalInitialContext.java:87)
at javax.naming.InitialContext.close(InitialContext.java:531)
at
com.jenzabar.drools.jca.TestCaseDeployment.closeContext(TestCaseDeployment.java:99)
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.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:37)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
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:597)
at
org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:289)
at
org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1005)
Caused by: java.net.URISyntaxException: Illegal character in path at index
18: file:/E:/Documents and Settings/Laird
Nelson/.m2/repository/org/apache/openejb/openejb-core/3.1.3-SNAPSHOT/openejb-core-3.1.3-SNAPSHOT.jar
at java.net.URI$Parser.fail(URI.java:2809)
at java.net.URI$Parser.checkChars(URI.java:2982)
at java.net.URI$Parser.parseHierarchical(URI.java:3066)
at java.net.URI$Parser.parse(URI.java:3014)
at java.net.URI.<init>(URI.java:578)
at java.net.URL.toURI(URL.java:918)
at org.apache.openejb.util.URLs.toFile(URLs.java:46)
I don't remember seeing this error before (although anything is possible).
Is it possible that the latest snapshot changed the way it handles URLs?
Thanks,
Laird
Re: Unable to clear Sun JarFileFactory cache?
Posted by Laird Nelson <lj...@gmail.com>.
On Fri, Apr 9, 2010 at 4:49 PM, Kevan Miller <ke...@gmail.com> wrote:
> Do you know when this started happening? Can you run a build from a
> directory path without any spaces?
>
Oh, I'm sure it's a spaces issue; haven't tried it, but that surely has
something to do with it.
Probably early April? I can't really pin it down very accurately, as my
Hudson build at the moment junks older builds.
I'd be suspicious of http://svn.apache.org/viewvc?rev=929938&view=rev
>
Ohh, that does look interesting.
Laird
Re: Unable to clear Sun JarFileFactory cache?
Posted by Kevan Miller <ke...@gmail.com>.
On Apr 9, 2010, at 4:37 PM, Laird Nelson wrote:
> Upgrade of Java...no, don't think so, but will double check.
>
> The build is run as mvn -U, so the snapshot will be the absolute latest one
> in the repo.
Looked a little closer -- there was a fix in that same method a few months back -- http://svn.apache.org/viewvc?view=revision&revision=900008 Which is what I was remembering. However, your stacktrace is a bit different.
Do you know when this started happening? Can you run a build from a directory path without any spaces?
I'd be suspicious of http://svn.apache.org/viewvc?rev=929938&view=rev
--kevan
Re: Unable to clear Sun JarFileFactory cache?
Posted by Laird Nelson <lj...@gmail.com>.
On Fri, Apr 9, 2010 at 4:39 PM, Laird Nelson <lj...@gmail.com> wrote:
> On Fri, Apr 9, 2010 at 4:33 PM, Kevan Miller <ke...@gmail.com>wrote:
>>
>>> I'm guessing that the Java 6 install on Hudson was recently upgraded?
>>> That would explain why you just started seeing the problem. Sun changed some
>>> of their internals in a Java 6 service refresh.
>>>
>>
I just verified that Hudson is running on JDK 6.0 update 17, and that hasn't
changed.
Best,
Laird
Re: Unable to clear Sun JarFileFactory cache?
Posted by Laird Nelson <lj...@gmail.com>.
What's weird is that on my own machine, I get the error as I reported, but
it actually *isn't* fatal, and my build completes normally.
The same codebase fails on Hudson; this time it says (deep breath, stand
back, hey, what can I do, the message said to send all this ;-) ):
ERROR - FATAL ERROR: Unknown error in Assembler. Please send the
following stack trace and this message to users@openejb.apache.org :
java.lang.IllegalArgumentException: bad url file:/C:/Documents and
Settings/tomcat/.hudson/jobs/Jenzabar
Drools/workspace/jenzabar-drools-trunk/jenzabar-drools-jca/target/test-classes/META-INF/ejb-jar.xml
at org.apache.openejb.util.URLs.toFile(URLs.java:48)
at org.apache.openejb.util.URLs.toFilePath(URLs.java:56)
at org.apache.openejb.config.DeploymentLoader.createEjbModule(DeploymentLoader.java:471)
at org.apache.openejb.config.DeploymentLoader.load(DeploymentLoader.java:134)
at org.apache.openejb.config.ConfigurationFactory.configureApplication(ConfigurationFactory.java:520)
at org.apache.openejb.config.ConfigurationFactory.getOpenEjbConfiguration(ConfigurationFactory.java:391)
at org.apache.openejb.assembler.classic.Assembler.getOpenEjbConfiguration(Assembler.java:300)
at org.apache.openejb.assembler.classic.Assembler.build(Assembler.java:279)
at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:125)
at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:60)
at org.apache.openejb.OpenEJB.init(OpenEJB.java:271)
at org.apache.openejb.OpenEJB.init(OpenEJB.java:250)
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.openejb.loader.OpenEJBInstance.init(OpenEJBInstance.java:36)
at org.apache.openejb.client.LocalInitialContextFactory.init(LocalInitialContextFactory.java:71)
at org.apache.openejb.client.LocalInitialContextFactory.init(LocalInitialContextFactory.java:53)
at org.apache.openejb.client.LocalInitialContextFactory.getInitialContext(LocalInitialContextFactory.java:42)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
at javax.naming.InitialContext.init(InitialContext.java:223)
at javax.naming.InitialContext.<init>(InitialContext.java:197)
at com.jenzabar.drools.jca.TestCaseDeployment.setUp(TestCaseDeployment.java:90)
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.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
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:597)
at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:289)
at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1005)
Caused by: java.net.URISyntaxException: Illegal character in path at
index 18: file:/C:/Documents and Settings/tomcat/.hudson/jobs/Jenzabar
Drools/workspace/jenzabar-drools-trunk/jenzabar-drools-jca/target/test-classes/META-INF/ejb-jar.xml
at java.net.URI$Parser.fail(URI.java:2809)
at java.net.URI$Parser.checkChars(URI.java:2982)
at java.net.URI$Parser.parseHierarchical(URI.java:3066)
at java.net.URI$Parser.parse(URI.java:3014)
at java.net.URI.<init>(URI.java:578)
at java.net.URL.toURI(URL.java:918)
at org.apache.openejb.util.URLs.toFile(URLs.java:46)
... 51 more
FATAL - OpenEJB has encountered a fatal error and cannot be started:
Assembler failed to build the container system.
org.apache.openejb.OpenEJBException:
java.lang.IllegalArgumentException: bad url file:/C:/Documents and
Settings/tomcat/.hudson/jobs/Jenzabar
Drools/workspace/jenzabar-drools-trunk/jenzabar-drools-jca/target/test-classes/META-INF/ejb-jar.xml:
bad url file:/C:/Documents and Settings/tomcat/.hudson/jobs/Jenzabar
Drools/workspace/jenzabar-drools-trunk/jenzabar-drools-jca/target/test-classes/META-INF/ejb-jar.xml
at org.apache.openejb.assembler.classic.Assembler.build(Assembler.java:293)
at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:125)
at org.apache.openejb.OpenEJB$Instance.<init>(OpenEJB.java:60)
at org.apache.openejb.OpenEJB.init(OpenEJB.java:271)
at org.apache.openejb.OpenEJB.init(OpenEJB.java:250)
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.openejb.loader.OpenEJBInstance.init(OpenEJBInstance.java:36)
at org.apache.openejb.client.LocalInitialContextFactory.init(LocalInitialContextFactory.java:71)
at org.apache.openejb.client.LocalInitialContextFactory.init(LocalInitialContextFactory.java:53)
at org.apache.openejb.client.LocalInitialContextFactory.getInitialContext(LocalInitialContextFactory.java:42)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
at javax.naming.InitialContext.init(InitialContext.java:223)
at javax.naming.InitialContext.<init>(InitialContext.java:197)
at com.jenzabar.drools.jca.TestCaseDeployment.setUp(TestCaseDeployment.java:90)
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.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
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:597)
at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:289)
at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1005)
Caused by: java.lang.IllegalArgumentException: bad url
file:/C:/Documents and Settings/tomcat/.hudson/jobs/Jenzabar
Drools/workspace/jenzabar-drools-trunk/jenzabar-drools-jca/target/test-classes/META-INF/ejb-jar.xml
at org.apache.openejb.util.URLs.toFile(URLs.java:48)
at org.apache.openejb.util.URLs.toFilePath(URLs.java:56)
at org.apache.openejb.config.DeploymentLoader.createEjbModule(DeploymentLoader.java:471)
at org.apache.openejb.config.DeploymentLoader.load(DeploymentLoader.java:134)
at org.apache.openejb.config.ConfigurationFactory.configureApplication(ConfigurationFactory.java:520)
at org.apache.openejb.config.ConfigurationFactory.getOpenEjbConfiguration(ConfigurationFactory.java:391)
at org.apache.openejb.assembler.classic.Assembler.getOpenEjbConfiguration(Assembler.java:300)
at org.apache.openejb.assembler.classic.Assembler.build(Assembler.java:279)
... 44 more
Caused by: java.net.URISyntaxException: Illegal character in path at
index 18: file:/C:/Documents and Settings/tomcat/.hudson/jobs/Jenzabar
Drools/workspace/jenzabar-drools-trunk/jenzabar-drools-jca/target/test-classes/META-INF/ejb-jar.xml
at java.net.URI$Parser.fail(URI.java:2809)
at java.net.URI$Parser.checkChars(URI.java:2982)
at java.net.URI$Parser.parseHierarchical(URI.java:3066)
at java.net.URI$Parser.parse(URI.java:3014)
at java.net.URI.<init>(URI.java:578)
at java.net.URL.toURI(URL.java:918)
at org.apache.openejb.util.URLs.toFile(URLs.java:46)
... 51 more
On Fri, Apr 9, 2010 at 4:37 PM, Laird Nelson <lj...@gmail.com> wrote:
> Upgrade of Java...no, don't think so, but will double check.
>
> The build is run as mvn -U, so the snapshot will be the absolute latest one
> in the repo.
>
> Best,
> Laird
>
>
> On Fri, Apr 9, 2010 at 4:33 PM, Kevan Miller <ke...@gmail.com>wrote:
>
>>
>> On Apr 9, 2010, at 4:19 PM, Laird Nelson wrote:
>>
>> > I have a project that I put together a while back, stuck under Hudson,
>> and
>> > it's been building fine ever since. It uses OpenEJB 3.1.3-SNAPSHOT.
>> >
>> > I just noticed that its builds have begun to fail during testing.
>> OpenEJB
>> > is now spitting out:
>> >
>> > INFO - Undeploying app: classpath.ear
>> > DEBUG - Destroying classLoaders for application classpath.ear
>> > DEBUG - Destroying classLoader URLClassLoader@14460880
>> > DEBUG - Releasing URLs for application classpath.ear
>> > DEBUG - Clearing Sun JarFileFactory cache for directory classpath.ear
>> > ERROR - Unable to clear Sun JarFileFactory cache
>> > java.lang.IllegalArgumentException: bad url file:/E:/Documents and
>> > Settings/Laird
>> >
>> Nelson/.m2/repository/org/apache/openejb/openejb-core/3.1.3-SNAPSHOT/openejb-core-3.1.3-SNAPSHOT.jar
>> > at org.apache.openejb.util.URLs.toFile(URLs.java:48)
>> > at
>> >
>> org.apache.openejb.ClassLoaderUtil.clearSunJarFileFactoryCache(ClassLoaderUtil.java:182)
>> > at
>> >
>> <snip>
>> >
>> > I don't remember seeing this error before (although anything is
>> possible).
>> > Is it possible that the latest snapshot changed the way it handles URLs?
>>
>> I'm guessing that the Java 6 install on Hudson was recently upgraded? That
>> would explain why you just started seeing the problem. Sun changed some of
>> their internals in a Java 6 service refresh.
>>
>> This problem *should* be fixed in 3.1.3. So, I'm surprised that you're
>> seeing a problem. Is that a recent 3.1.3-SNAPSHOT build?
>>
>> --kevan
>>
>>
>>
>
Re: Unable to clear Sun JarFileFactory cache?
Posted by Laird Nelson <lj...@gmail.com>.
Upgrade of Java...no, don't think so, but will double check.
The build is run as mvn -U, so the snapshot will be the absolute latest one
in the repo.
Best,
Laird
On Fri, Apr 9, 2010 at 4:33 PM, Kevan Miller <ke...@gmail.com> wrote:
>
> On Apr 9, 2010, at 4:19 PM, Laird Nelson wrote:
>
> > I have a project that I put together a while back, stuck under Hudson,
> and
> > it's been building fine ever since. It uses OpenEJB 3.1.3-SNAPSHOT.
> >
> > I just noticed that its builds have begun to fail during testing.
> OpenEJB
> > is now spitting out:
> >
> > INFO - Undeploying app: classpath.ear
> > DEBUG - Destroying classLoaders for application classpath.ear
> > DEBUG - Destroying classLoader URLClassLoader@14460880
> > DEBUG - Releasing URLs for application classpath.ear
> > DEBUG - Clearing Sun JarFileFactory cache for directory classpath.ear
> > ERROR - Unable to clear Sun JarFileFactory cache
> > java.lang.IllegalArgumentException: bad url file:/E:/Documents and
> > Settings/Laird
> >
> Nelson/.m2/repository/org/apache/openejb/openejb-core/3.1.3-SNAPSHOT/openejb-core-3.1.3-SNAPSHOT.jar
> > at org.apache.openejb.util.URLs.toFile(URLs.java:48)
> > at
> >
> org.apache.openejb.ClassLoaderUtil.clearSunJarFileFactoryCache(ClassLoaderUtil.java:182)
> > at
> >
> <snip>
> >
> > I don't remember seeing this error before (although anything is
> possible).
> > Is it possible that the latest snapshot changed the way it handles URLs?
>
> I'm guessing that the Java 6 install on Hudson was recently upgraded? That
> would explain why you just started seeing the problem. Sun changed some of
> their internals in a Java 6 service refresh.
>
> This problem *should* be fixed in 3.1.3. So, I'm surprised that you're
> seeing a problem. Is that a recent 3.1.3-SNAPSHOT build?
>
> --kevan
>
>
>
Re: Unable to clear Sun JarFileFactory cache?
Posted by Kevan Miller <ke...@gmail.com>.
On Apr 9, 2010, at 4:19 PM, Laird Nelson wrote:
> I have a project that I put together a while back, stuck under Hudson, and
> it's been building fine ever since. It uses OpenEJB 3.1.3-SNAPSHOT.
>
> I just noticed that its builds have begun to fail during testing. OpenEJB
> is now spitting out:
>
> INFO - Undeploying app: classpath.ear
> DEBUG - Destroying classLoaders for application classpath.ear
> DEBUG - Destroying classLoader URLClassLoader@14460880
> DEBUG - Releasing URLs for application classpath.ear
> DEBUG - Clearing Sun JarFileFactory cache for directory classpath.ear
> ERROR - Unable to clear Sun JarFileFactory cache
> java.lang.IllegalArgumentException: bad url file:/E:/Documents and
> Settings/Laird
> Nelson/.m2/repository/org/apache/openejb/openejb-core/3.1.3-SNAPSHOT/openejb-core-3.1.3-SNAPSHOT.jar
> at org.apache.openejb.util.URLs.toFile(URLs.java:48)
> at
> org.apache.openejb.ClassLoaderUtil.clearSunJarFileFactoryCache(ClassLoaderUtil.java:182)
> at
>
<snip>
>
> I don't remember seeing this error before (although anything is possible).
> Is it possible that the latest snapshot changed the way it handles URLs?
I'm guessing that the Java 6 install on Hudson was recently upgraded? That would explain why you just started seeing the problem. Sun changed some of their internals in a Java 6 service refresh.
This problem *should* be fixed in 3.1.3. So, I'm surprised that you're seeing a problem. Is that a recent 3.1.3-SNAPSHOT build?
--kevan