Comment #13 on issue 343 by bergerfx: BytecodeGen uses system classloader  
when applying AOP to system types
http://code.google.com/p/google-guice/issues/detail?id=343

I'd like to know whether the following is fixed by this patch:

I wrote a custom classloader to speed up the cold startup of LimeWire which  
is mostly
bound by file io caused by classloading.

I'm running into the following exception:

SEVERE: Application class org.limewire.ui.swing.mainframe.AppFrame failed  
to launch
com.google.inject.CreationException: Guice creation errors:

1) Error injecting method, com.google.inject.internal.ComputationException:
com.google.inject.internal.ComputationException:
com.google.inject.internal.cglib.core.CodeGenerationException:
java.lang.reflect.InvocationTargetException-->null
   at
com.google.inject.assistedinject.FactoryProvider2.initialize(FactoryProvider2.java:161)
   at
org.limewire.ui.swing.search.LimeWireUiSearchModule.configure(LimeWireUiSearchModule.java:56)

1 error
        at
com.google.inject.internal.Errors.throwCreationExceptionIfErrorsExist(Errors.java:358)
        at
com.google.inject.internal.InjectorBuilder.injectDynamically(InjectorBuilder.java:174)
        at  
com.google.inject.internal.InjectorBuilder.build(InjectorBuilder.java:114)
        at com.google.inject.Guice.createInjector(Guice.java:93)
        at com.google.inject.Guice.createInjector(Guice.java:81)
        at  
org.limewire.ui.swing.mainframe.AppFrame.createUiInjector(AppFrame.java:309)
        at org.limewire.ui.swing.mainframe.AppFrame.startup(AppFrame.java:153)
        at org.jdesktop.application.Application$1.run(Application.java:171)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
        at  
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
        at  
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
        at  
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
Caused by: com.google.inject.internal.ComputationException:
com.google.inject.internal.ComputationException:
com.google.inject.internal.cglib.core.CodeGenerationException:
java.lang.reflect.InvocationTargetException-->null
        at  
com.google.inject.internal.MapMaker$StrategyImpl.compute(MapMaker.java:553)
        at  
com.google.inject.internal.MapMaker$StrategyImpl.compute(MapMaker.java:419)
        at
com.google.inject.internal.CustomConcurrentHashMap$ComputingImpl.get(CustomConcurrentHashMap.java:2041)
        at com.google.inject.internal.FailableCache.get(FailableCache.java:46)
        at
com.google.inject.internal.ConstructorInjectorStore.get(ConstructorInjectorStore.java:50)
        at
com.google.inject.internal.ConstructorBindingImpl.initialize(ConstructorBindingImpl.java:62)
        at  
com.google.inject.internal.InjectorImpl.initializeBinding(InjectorImpl.java:370)
        at  
com.google.inject.internal.BindingProcessor$1$1.run(BindingProcessor.java:164)
        at
com.google.inject.internal.BindingProcessor.initializeBindings(BindingProcessor.java:219)
        at
com.google.inject.internal.InjectorBuilder.initializeStatically(InjectorBuilder.java:121)
        at  
com.google.inject.internal.InjectorBuilder.build(InjectorBuilder.java:106)
        at  
com.google.inject.internal.InjectorImpl.createChildInjector(InjectorImpl.java:137)
        at  
com.google.inject.internal.InjectorImpl.createChildInjector(InjectorImpl.java:144)
        at
com.google.inject.assistedinject.FactoryProvider2.getBindingFromNewInjector(FactoryProvider2.java:203)
        at
com.google.inject.assistedinject.FactoryProvider2.initialize(FactoryProvider2.java:171)
        at
com.google.inject.assistedinject.FactoryProvider2$$FastClassByGuice$$9dcdf6d7.invoke(<generated>)
        at  
com.google.inject.internal.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
        at
com.google.inject.internal.SingleMethodInjector$1.invoke(SingleMethodInjector.java:55)
        at  
com.google.inject.internal.SingleMethodInjector.inject(SingleMethodInjector.java:87)
        at
com.google.inject.internal.MembersInjectorImpl.injectMembers(MembersInjectorImpl.java:96)
        at  
com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:73)
        at  
com.google.inject.internal.MembersInjectorImpl$1.call(MembersInjectorImpl.java:72)
        at  
com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:801)
        at
com.google.inject.internal.MembersInjectorImpl.injectAndNotify(MembersInjectorImpl.java:71)
        at  
com.google.inject.internal.Initializer$InjectableReference.get(Initializer.java:142)
        at com.google.inject.internal.Initializer.injectAll(Initializer.java:89)
        at
com.google.inject.internal.InjectorBuilder.injectDynamically(InjectorBuilder.java:172)
        ... 14 more
Caused by: com.google.inject.internal.ComputationException:
com.google.inject.internal.cglib.core.CodeGenerationException:
java.lang.reflect.InvocationTargetException-->null
        at  
com.google.inject.internal.MapMaker$StrategyImpl.compute(MapMaker.java:553)
        at  
com.google.inject.internal.MapMaker$StrategyImpl.compute(MapMaker.java:419)
        at
com.google.inject.internal.CustomConcurrentHashMap$ComputingImpl.get(CustomConcurrentHashMap.java:2041)
        at com.google.inject.internal.FailableCache.get(FailableCache.java:46)
        at
com.google.inject.internal.ConstructorInjectorStore.get(ConstructorInjectorStore.java:50)
        at
com.google.inject.internal.ConstructorBindingImpl.initialize(ConstructorBindingImpl.java:62)
        at  
com.google.inject.internal.InjectorImpl.initializeBinding(InjectorImpl.java:370)
        at
com.google.inject.internal.InjectorImpl.createJustInTimeBinding(InjectorImpl.java:642)
        at
com.google.inject.internal.InjectorImpl.createJustInTimeBindingRecursive(InjectorImpl.java:574)
        at
com.google.inject.internal.InjectorImpl.createJustInTimeBindingRecursive(InjectorImpl.java:565)
        at  
com.google.inject.internal.InjectorImpl.getJustInTimeBinding(InjectorImpl.java:165)
        at  
com.google.inject.internal.InjectorImpl.getBindingOrThrow(InjectorImpl.java:125)
        at  
com.google.inject.internal.InjectorImpl.getInternalFactory(InjectorImpl.java:648)
        at
com.google.inject.internal.InjectorImpl.createParameterInjector(InjectorImpl.java:704)
        at  
com.google.inject.internal.InjectorImpl.getParametersInjectors(InjectorImpl.java:692)
        at
com.google.inject.internal.ConstructorInjectorStore.createConstructor(ConstructorInjectorStore.java:65)
        at
com.google.inject.internal.ConstructorInjectorStore.access$000(ConstructorInjectorStore.java:29)
        at
com.google.inject.internal.ConstructorInjectorStore$1.create(ConstructorInjectorStore.java:37)
        at
com.google.inject.internal.ConstructorInjectorStore$1.create(ConstructorInjectorStore.java:35)
        at 
com.google.inject.internal.FailableCache$1.apply(FailableCache.java:35)
        at  
com.google.inject.internal.MapMaker$StrategyImpl.compute(MapMaker.java:549)
        ... 40 more
Caused by: com.google.inject.internal.cglib.core.CodeGenerationException:
java.lang.reflect.InvocationTargetException-->null
        at
com.google.inject.internal.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:237)
        at
com.google.inject.internal.cglib.reflect.FastClass$Generator.create(FastClass.java:64)
        at  
com.google.inject.internal.BytecodeGen.newFastClass(BytecodeGen.java:166)
        at
com.google.inject.internal.DefaultConstructionProxyFactory$1.<init>(DefaultConstructionProxyFactory.java:52)
        at
com.google.inject.internal.DefaultConstructionProxyFactory.create(DefaultConstructionProxyFactory.java:50)
        at com.google.inject.internal.ProxyFactory.create(ProxyFactory.java:147)
        at
com.google.inject.internal.ConstructorInjectorStore.createConstructor(ConstructorInjectorStore.java:82)
        at
com.google.inject.internal.ConstructorInjectorStore.access$000(ConstructorInjectorStore.java:29)
        at
com.google.inject.internal.ConstructorInjectorStore$1.create(ConstructorInjectorStore.java:37)
        at
com.google.inject.internal.ConstructorInjectorStore$1.create(ConstructorInjectorStore.java:35)
        at 
com.google.inject.internal.FailableCache$1.apply(FailableCache.java:35)
        at  
com.google.inject.internal.MapMaker$StrategyImpl.compute(MapMaker.java:549)
        ... 60 more
Caused by: java.lang.reflect.InvocationTargetException
        at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
        at  
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at  
com.google.inject.internal.cglib.core.ReflectUtils.defineClass(ReflectUtils.java:384)
        at
com.google.inject.internal.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:219)
        ... 71 more
Caused by: java.lang.NoClassDefFoundError:
com/google/inject/internal/cglib/reflect/FastClass
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
        ... 76 more

Is this addressed by the patch? Are there other workarounds like having  
guice be
loaded by the system class loader?

Thanks,
Felix

--
You received this message because you are listed in the owner
or CC fields of this issue, or because you starred this issue.
You may adjust your issue notification preferences at:
http://code.google.com/hosting/settings

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"google-guice-dev" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/google-guice-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to