Not yet. Gary
On Jun 21, 2012, at 17:50, Dan Tran <dant...@gmail.com> wrote: > Is there a JIRA bug for this issue yet? > > -D > > On Thu, Jun 14, 2012 at 12:02 PM, Gary Gregory <garydgreg...@gmail.com> wrote: >> On Thu, Jun 14, 2012 at 3:01 PM, Gary Gregory <garydgreg...@gmail.com>wrote: >> >>> On Thu, Jun 14, 2012 at 2:00 PM, James Carman >>> <ja...@carmanconsulting.com>wrote: >>> >>>> Are you using dynamic imports? >>>> >>> >>> No, VFS is on the Bundle-ClassPath. >>> >> >> And VFS and other jars in is our app server jar. >> >> Gary >> >> >>> Gary >>> >>>> >>>> On Thu, Jun 14, 2012 at 1:58 PM, Gary Gregory <garydgreg...@gmail.com >>>>> wrote: >>>> >>>>> On Thu, Jun 14, 2012 at 1:03 PM, Dan Tran <dant...@gmail.com> wrote: >>>>> >>>>>> Thanks for discover this issue. Look likes FileProvider get excluded >>>>>> from export list? >>>>>> >>>>> >>>>> I do not think so, the 2.0 MANIFEST.MF includes: >>>>> >>>>> Export-Package: org.apache.commons.vfs2.impl;version="2.0",org.apache. >>>>> commons.vfs2.provider.url;version="2.0",org.apache.commons.vfs2.provi >>>>> ... >>>>> >>>>> The class is found and instantiated, but it cannot be cast because it >>>> comes >>>>> from a different class loader. >>>>> >>>>> Gary >>>>> >>>>> >>>>>> >>>>>> -D >>>>>> >>>>>> On Thu, Jun 14, 2012 at 4:53 AM, Gary Gregory <garydgreg...@gmail.com >>>>> >>>>>> wrote: >>>>>>> The classLoader ivar is initialized differently in 1.0 than in 2.0. >>>>>>> That's why the CCE shows up. A different class loader is used. I'm >>>> not >>>>>>> sure if there is a bug in 2.0 that was introduced when the >>>> classLoader >>>>>>> use was changed. I'm starting to think this was an unexpected side >>>>>>> effect. >>>>>>> >>>>>>> Gary >>>>>>> >>>>>>> On Jun 14, 2012, at 2:08, Ralph Goers <ralph.go...@dslextreme.com> >>>>>> wrote: >>>>>>> >>>>>>>> I have no idea why it worked in 1.0 and fails now. As far as I can >>>>> tell >>>>>> the call to createManager has always been there. I have no idea why. >>>>>>>> >>>>>>>> But I also don't know why >>>>>>>> >>>>>>>>> Caused by: java.lang.ClassCastException: >>>>>>>>> org.apache.commons.vfs2.provider.local.DefaultLocalFileProvider >>>>> cannot >>>>>> be >>>>>>>>> cast to org.apache.commons.vfs2.provider.FileProvider >>>>>>>> >>>>>>>> is happening. That should be valid. >>>>>>>> >>>>>>>> >>>>>>>> Ralph >>>>>>>> >>>>>>>> On Jun 13, 2012, at 2:16 PM, Gary Gregory wrote: >>>>>>>> >>>>>>>>> Hi All: >>>>>>>>> >>>>>>>>> When I run under our OSGi (Eclipse Equinox) set up with 2.0, I get >>>>> this >>>>>>>>> pickle: >>>>>>>>> >>>>>>>>> org.apache.commons.vfs2.FileSystemException: Could not create a >>>> file >>>>>> system >>>>>>>>> manager of class >>>>>> "org.apache.commons.vfs2.impl.StandardFileSystemManager". >>>>>>>>> at org.apache.commons.vfs2.VFS.createManager(VFS.java:99) >>>>>>>>> at org.apache.commons.vfs2.VFS.getManager(VFS.java:50) >>>>>>>>> at >>>>>>>>> >>>>>> >>>>> >>>> com.seagullsw.toolbox.config.ConfigurationDirectory.resolveFileObject(ConfigurationDirectory.java:315) >>>>>>>>> at >>>>>>>>> >>>>>> >>>>> >>>> com.seagullsw.toolbox.config.Configuration.resolveFileObject(Configuration.java:135) >>>>>>>>> <Snip: ...my app frames...> >>>>>>>>> at >>>>>>>>> >>>>>> >>>>> >>>> com.seagullsw.appinterface.server.osgi.JCicsOsgiTestCase.testJcicsOsgiRoundtrip(JCicsOsgiTestCase.java:226) >>>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) >>>>>>>>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown >>>> Source) >>>>>>>>> at java.lang.reflect.Method.invoke(Unknown Source) >>>>>>>>> at >>>> org.junit.internal.runners.TestMethod.invoke(TestMethod.java:66) >>>>>>>>> at >>>>>>>>> >>>>>> >>>>> >>>> org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.runTestMethod(PowerMockJUnit44RunnerDelegateImpl.java:307) >>>>>>>>> at >>>>>> org.junit.internal.runners.MethodRoadie$2.run(MethodRoadie.java:86) >>>>>>>>> at >>>>>>>>> >>>>>> >>>>> >>>> org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:94) >>>>>>>>> at >>>>>>>>> >>>>>> >>>>> >>>> org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.executeTest(PowerMockJUnit44RunnerDelegateImpl.java:294) >>>>>>>>> at >>>>>>>>> >>>>>> >>>>> >>>> org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner.executeTestInSuper(PowerMockJUnit47RunnerDelegateImpl.java:112) >>>>>>>>> at >>>>>>>>> >>>>>> >>>>> >>>> org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner.executeTest(PowerMockJUnit47RunnerDelegateImpl.java:73) >>>>>>>>> at >>>>>>>>> >>>>>> >>>>> >>>> org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.runBeforesThenTestThenAfters(PowerMockJUnit44RunnerDelegateImpl.java:282) >>>>>>>>> at >>>>>> org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:84) >>>>>>>>> at >>>>> org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:49) >>>>>>>>> at >>>>>>>>> >>>>>> >>>>> >>>> org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.invokeTestMethod(PowerMockJUnit44RunnerDelegateImpl.java:207) >>>>>>>>> at >>>>>>>>> >>>>>> >>>>> >>>> org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.runMethods(PowerMockJUnit44RunnerDelegateImpl.java:146) >>>>>>>>> at >>>>>>>>> >>>>>> >>>>> >>>> org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$1.run(PowerMockJUnit44RunnerDelegateImpl.java:120) >>>>>>>>> at >>>>>>>>> >>>>>> >>>>> >>>> org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:34) >>>>>>>>> at >>>>>>>>> >>>>>> >>>> org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:44) >>>>>>>>> at >>>>>>>>> >>>>>> >>>>> >>>> org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.run(PowerMockJUnit44RunnerDelegateImpl.java:118) >>>>>>>>> at >>>>>>>>> >>>>>> >>>>> >>>> org.powermock.modules.junit4.common.internal.impl.JUnit4TestSuiteChunkerImpl.run(JUnit4TestSuiteChunkerImpl.java:102) >>>>>>>>> at >>>>>>>>> >>>>>> >>>>> >>>> org.powermock.modules.junit4.common.internal.impl.AbstractCommonPowerMockRunner.run(AbstractCommonPowerMockRunner.java:53) >>>>>>>>> at >>>>>>>>> >>>>>> >>>>> >>>> org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) >>>>>>>>> at >>>>>>>>> >>>>>> >>>>> >>>> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) >>>>>>>>> at >>>>>>>>> >>>>>> >>>>> >>>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) >>>>>>>>> at >>>>>>>>> >>>>>> >>>>> >>>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) >>>>>>>>> at >>>>>>>>> >>>>>> >>>>> >>>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) >>>>>>>>> at >>>>>>>>> >>>>>> >>>>> >>>> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) >>>>>>>>> Caused by: org.apache.commons.vfs2.FileSystemException: Could not >>>>> load >>>>>> VFS >>>>>>>>> configuration from >>>>>>>>> >>>>>> >>>>> >>>> "bundleresource://7.fwk545215872:34/org/apache/commons/vfs2/impl/providers.xml". >>>>>>>>> at >>>>>>>>> >>>>>> >>>>> >>>> org.apache.commons.vfs2.impl.StandardFileSystemManager.configure(StandardFileSystemManager.java:199) >>>>>>>>> at >>>>>>>>> >>>>>> >>>>> >>>> org.apache.commons.vfs2.impl.StandardFileSystemManager.init(StandardFileSystemManager.java:123) >>>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>>>>>>>> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) >>>>>>>>> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown >>>> Source) >>>>>>>>> at java.lang.reflect.Method.invoke(Unknown Source) >>>>>>>>> at org.apache.commons.vfs2.VFS.createManager(VFS.java:88) >>>>>>>>> ... 49 more >>>>>>>>> Caused by: java.lang.ClassCastException: >>>>>>>>> org.apache.commons.vfs2.provider.local.DefaultLocalFileProvider >>>>> cannot >>>>>> be >>>>>>>>> cast to org.apache.commons.vfs2.provider.FileProvider >>>>>>>>> at >>>>>>>>> >>>>>> >>>>> >>>> org.apache.commons.vfs2.impl.StandardFileSystemManager.addProvider(StandardFileSystemManager.java:371) >>>>>>>>> at >>>>>>>>> >>>>>> >>>>> >>>> org.apache.commons.vfs2.impl.StandardFileSystemManager.configure(StandardFileSystemManager.java:270) >>>>>>>>> at >>>>>>>>> >>>>>> >>>>> >>>> org.apache.commons.vfs2.impl.StandardFileSystemManager.configure(StandardFileSystemManager.java:195) >>>>>>>>> ... 55 more >>>>>>>>> >>>>>>>>> Which I work around with: >>>>>>>>> >>>>>>>>> private void initVfs() { >>>>>>>>> StandardFileSystemManager fsm = new >>>>> StandardFileSystemManager(); >>>>>>>>> fsm.setClassLoader(fsm.getClass().getClassLoader()); >>>>>>>>> try { >>>>>>>>> FieldUtils.writeDeclaredStaticField(VFS.class, >>>> "instance", >>>>>> fsm, >>>>>>>>> true); >>>>>>>>> fsm.init(); >>>>>>>>> } catch (FileSystemException e) { >>>>>>>>> ... >>>>>>>>> } catch (IllegalAccessException e) { >>>>>>>>> ... >>>>>>>>> } >>>>>>>>> } >>>>>>>>> >>>>>>>>> Two questions: >>>>>>>>> >>>>>>>>> (1) Why is org.apache.commons.vfs2.VFS.getManager() coded with a >>>>> class >>>>>> name >>>>>>>>> ref instead of the a real Class object or an actual instance: >>>>>>>>> >>>>>>>>> public static synchronized FileSystemManager getManager() >>>>>>>>> throws FileSystemException >>>>>>>>> { >>>>>>>>> if (instance == null) >>>>>>>>> { >>>>>>>>> instance = >>>>>>>>> >>>>>> >>>> createManager("org.apache.commons.vfs2.impl.StandardFileSystemManager"); >>>>>>>>> } >>>>>>>>> return instance; >>>>>>>>> } >>>>>>>>> >>>>>>>>> Why not: >>>>>>>>> >>>>>>>>> public static synchronized FileSystemManager getManager() >>>>>>>>> throws FileSystemException >>>>>>>>> { >>>>>>>>> if (instance == null) >>>>>>>>> { >>>>>>>>> instance = new StandardFileSystemManager(); >>>>>>>>> // where the StandardFileSystemManager constructor calls >>>>>> init(); >>>>>>>>> } >>>>>>>>> return instance; >>>>>>>>> } >>>>>>>>> >>>>>>>>> If not, what about adding a setManager(FileSystemManager)? >>>>>>>>> >>>>>>>>> This did not happen in 1.0, it worked fine in OSGi. >>>>>>>>> >>>>>>>>> Thank you, >>>>>>>>> Gary >>>>>>>>> >>>>>>>>> -- >>>>>>>>> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org >>>>>>>>> JUnit in Action, 2nd Ed: <http://goog_1249600977> >>>> http://bit.ly/ECvg0 >>>>>>>>> Spring Batch in Action: <http://s.apache.org/HOq> >>>>> http://bit.ly/bqpbCK >>>>>>>>> Blog: http://garygregory.wordpress.com >>>>>>>>> Home: http://garygregory.com/ >>>>>>>>> Tweet! http://twitter.com/GaryGregory >>>>>>>> >>>>>>>> >>>>>>>> >>>> --------------------------------------------------------------------- >>>>>>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org >>>>>>>> For additional commands, e-mail: dev-h...@commons.apache.org >>>>>>>> >>>>>>> >>>>>>> >>>> --------------------------------------------------------------------- >>>>>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org >>>>>>> For additional commands, e-mail: dev-h...@commons.apache.org >>>>>>> >>>>>> >>>>>> --------------------------------------------------------------------- >>>>>> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org >>>>>> For additional commands, e-mail: dev-h...@commons.apache.org >>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org >>>>> JUnit in Action, 2nd Ed: <http://goog_1249600977>http://bit.ly/ECvg0 >>>>> Spring Batch in Action: <http://s.apache.org/HOq>http://bit.ly/bqpbCK >>>>> Blog: http://garygregory.wordpress.com >>>>> Home: http://garygregory.com/ >>>>> Tweet! http://twitter.com/GaryGregory >>>>> >>>> >>> >>> >>> >>> -- >>> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org >>> JUnit in Action, 2nd Ed: <http://goog_1249600977>http://bit.ly/ECvg0 >>> Spring Batch in Action: <http://s.apache.org/HOq>http://bit.ly/bqpbCK >>> >>> Blog: http://garygregory.wordpress.com >>> Home: http://garygregory.com/ >>> Tweet! http://twitter.com/GaryGregory >>> >> >> >> >> -- >> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org >> JUnit in Action, 2nd Ed: <http://goog_1249600977>http://bit.ly/ECvg0 >> Spring Batch in Action: <http://s.apache.org/HOq>http://bit.ly/bqpbCK >> Blog: http://garygregory.wordpress.com >> Home: http://garygregory.com/ >> Tweet! http://twitter.com/GaryGregory > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org > For additional commands, e-mail: dev-h...@commons.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org