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