Ran into similar issue when creating an Injector off an AbstractModule that
uses MapBinder:
public class SampleSourceBindingModule extends AbstractModule {
@Override
protected void configure() {
MapBinder<String, String> sourceBindings =
MapBinder.newMapBinder(binder(), X.class, Y.class);
sourceBindings.addBinding(...);
...
}
When I call
Injector injector = Guice.createInjector(sampleSourceBindingModule);
in OSGi environment, I get this error:
com.google.inject.internal.util.$ComputationException:
java.lang.ClassCastException:
com.google.inject.multibindings.MapBinder$RealMapBinder$1$$FastClassByGuice$$accf29db
cannot be cast to com.google.inject.internal.cglib.reflect.$FastClass
Any hints appreciated.
Thanks,
Jan
On Monday, November 16, 2009 8:19:44 AM UTC-8, Stuart McCulloch wrote:
>
> 2009/11/16 Stuart McCulloch <[email protected] <javascript:>>
>
>> 2009/11/16 Tristan <[email protected] <javascript:>>
>>
>>> Any ideas what this means? It's entirely in Guice.
>>>
>>
>> Hmm, could be: http://code.google.com/p/google-guice/issues/detail?id=343
>> which can affect any non-hierarchical classloading container (not just
>> OSGi)
>> when Guice tries to use CGLIB against a system type - in this case "Date"
>>
>> Either try the patch attached to that issue or perhaps the following
>> binary:
>>
>
> just added an attachment to the end of Issue 343 which is Guice trunk +
> latest 343 patch:
>
>
> http://google-guice.googlecode.com/issues/attachment?aid=1929838795997611661&name=guice-customloader-20091116.jar
>
> feel free to give it a spin and see if it solves your problem (note this
> *not* an official build!)
>
>
>>
>> http://repository.ops4j.org/mvn-snapshots/org/ops4j/peaberry/dependencies/guice/2.1-SNAPSHOT/guice-2.1-20091018.043124-5.jar
>>
>> that JAR is trunk plus a couple of patches (inc. 343) - a more stable
>> build is:
>>
>>
>> http://peaberry.googlecode.com/svn/tags/1.1.1/lib/build/guice-customloader-20090412.jar
>>
>> which is Guice 2.0 plus an earlier patch for 343 (the latest patch is
>> better imho)
>>
>> HTH - if you try one of the JARsand it does solve the exception pls let
>> me know
>>
>> 00:00:01.402 [WARN] Failed startup of context
>>> com.google.gwt.dev.shell.jetty.JettyLauncher
>>> $WebAppContextWithReload@1768063{...}
>>> com.google.inject.internal.ComputationException:
>>> com.google.inject.internal.ComputationException:
>>> java.lang.ClassCastException: $java.util.Date$$FastClassByGuice$
>>> $3e8996e cannot be cast to
>>> com.google.inject.internal.cglib.reflect.FastClass 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.ConstructorInjectorStore.get
>>> (ConstructorInjectorStore.java:52) at
>>> com.google.inject.ConstructorBindingImpl.initialize
>>> (ConstructorBindingImpl.java:57) at
>>> com.google.inject.InjectorImpl.initializeBinding(InjectorImpl.java:
>>> 377) at com.google.inject.InjectorImpl.createJustInTimeBinding
>>> (InjectorImpl.java:645) at
>>> com.google.inject.InjectorImpl.createJustInTimeBindingRecursive
>>> (InjectorImpl.java:581) at
>>> com.google.inject.InjectorImpl.getJustInTimeBinding(InjectorImpl.java:
>>> 172) at com.google.inject.InjectorImpl.getBindingOrThrow
>>> (InjectorImpl.java:132) at
>>> com.google.inject.InjectorImpl.getInternalFactory(InjectorImpl.java:
>>> 651) at com.google.inject.FactoryProxy.notify(FactoryProxy.java:48)
>>> at com.google.inject.BindingProcessor.runCreationListeners
>>> (BindingProcessor.java:230) at
>>> com.google.inject.InjectorBuilder.initializeStatically
>>> (InjectorBuilder.java:131) at
>>> com.google.inject.InjectorBuilder.build
>>> (InjectorBuilder.java:105) at com.google.inject.Guice.createInjector
>>> (Guice.java:92) at
>>> com.google.inject.Guice.createInjector(Guice.java:
>>> 69) at com.google.inject.Guice.createInjector(Guice.java:59)
>>> at
>>> com.unecloud.server.UnecloudGuiceServletContextListener.getInjector
>>> (UnecloudGuiceServletContextListener.java:19) at
>>> com.google.inject.servlet.GuiceServletContextListener.contextInitialized
>>> (GuiceServletContextListener.java:43) at
>>> org.mortbay.jetty.handler.ContextHandler.startContext
>>> (ContextHandler.java:543) at
>>> org.mortbay.jetty.servlet.Context.startContext(Context.java:136)
>>> at
>>> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:
>>> 1220) at org.mortbay.jetty.handler.ContextHandler.doStart
>>> (ContextHandler.java:513) at
>>> org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
>>> at com.google.gwt.dev.shell.jetty.JettyLauncher
>>> $WebAppContextWithReload.doStart(JettyLauncher.java:430) at
>>> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:
>>> 39) at org.mortbay.jetty.handler.HandlerWrapper.doStart
>>> (HandlerWrapper.java:130) at
>>> org.mortbay.jetty.handler.RequestLogHandler.doStart
>>> (RequestLogHandler.java:115) at
>>> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:
>>> 39) at org.mortbay.jetty.handler.HandlerWrapper.doStart
>>> (HandlerWrapper.java:130) at org.mortbay.jetty.Server.doStart
>>> (Server.java:222) at org.mortbay.component.AbstractLifeCycle.start
>>> (AbstractLifeCycle.java:39) at
>>> com.google.gwt.dev.shell.jetty.JettyLauncher.start(JettyLauncher.java:
>>> 505) at com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:378)
>>> at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:948)
>>> at
>>> com.google.gwt.dev.DevModeBase.run(DevModeBase.java:726) at
>>> com.google.gwt.dev.DevMode.main(DevMode.java:246) Caused by:
>>> com.google.inject.internal.ComputationException:
>>> java.lang.ClassCastException: $java.util.Date$$FastClassByGuice$
>>> $3e8996e cannot be cast to
>>> com.google.inject.internal.cglib.reflect.FastClass 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.ConstructorInjectorStore.get
>>> (ConstructorInjectorStore.java:52) at
>>> com.google.inject.ConstructorBindingImpl.initialize
>>> (ConstructorBindingImpl.java:57) at
>>> com.google.inject.InjectorImpl.initializeBinding(InjectorImpl.java:
>>> 377) at com.google.inject.InjectorImpl.createJustInTimeBinding
>>> (InjectorImpl.java:645) at
>>> com.google.inject.InjectorImpl.createJustInTimeBindingRecursive
>>> (InjectorImpl.java:581) at
>>> com.google.inject.InjectorImpl.getJustInTimeBinding(InjectorImpl.java:
>>> 172) at com.google.inject.InjectorImpl.getBindingOrThrow
>>> (InjectorImpl.java:132) at
>>> com.google.inject.InjectorImpl.createProviderBinding(InjectorImpl.java:
>>> 225) at com.google.inject.InjectorImpl.createJustInTimeBinding
>>> (InjectorImpl.java:610) at
>>> com.google.inject.InjectorImpl.createJustInTimeBindingRecursive
>>> (InjectorImpl.java:581) at
>>> com.google.inject.InjectorImpl.getJustInTimeBinding(InjectorImpl.java:
>>> 172) at com.google.inject.InjectorImpl.getBindingOrThrow
>>> (InjectorImpl.java:132) at
>>> com.google.inject.InjectorImpl.getInternalFactory(InjectorImpl.java:
>>> 651) at com.google.inject.InjectorImpl.createParameterInjector
>>> (InjectorImpl.java:707) at
>>> com.google.inject.InjectorImpl.getParametersInjectors
>>> (InjectorImpl.java:695) at
>>> com.google.inject.ConstructorInjectorStore.createConstructor
>>> (ConstructorInjectorStore.java:67) at
>>> com.google.inject.ConstructorInjectorStore.access$000
>>> (ConstructorInjectorStore.java:31) at
>>> com.google.inject.ConstructorInjectorStore$1.create
>>> (ConstructorInjectorStore.java:39) at
>>> com.google.inject.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) 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.ConstructorInjectorStore.get
>>> (ConstructorInjectorStore.java:52) at
>>> com.google.inject.ConstructorBindingImpl.initialize
>>> (ConstructorBindingImpl.java:57) at
>>> com.google.inject.InjectorImpl.initializeBinding(InjectorImpl.java:
>>> 377) at com.google.inject.InjectorImpl.createJustInTimeBinding
>>> (InjectorImpl.java:645) at
>>> com.google.inject.InjectorImpl.createJustInTimeBindingRecursive
>>> (InjectorImpl.java:581) at
>>> com.google.inject.InjectorImpl.getJustInTimeBinding(InjectorImpl.java:
>>> 172) at com.google.inject.InjectorImpl.getBindingOrThrow
>>> (InjectorImpl.java:132) at
>>> com.google.inject.InjectorImpl.getInternalFactory(InjectorImpl.java:
>>> 651) at com.google.inject.FactoryProxy.notify(FactoryProxy.java:48)
>>> at com.google.inject.BindingProcessor.runCreationListeners
>>> (BindingProcessor.java:230) at
>>> com.google.inject.InjectorBuilder.initializeStatically
>>> (InjectorBuilder.java:131) at
>>> com.google.inject.InjectorBuilder.build
>>> (InjectorBuilder.java:105) at com.google.inject.Guice.createInjector
>>> (Guice.java:92) at
>>> com.google.inject.Guice.createInjector(Guice.java:
>>> 69) at com.google.inject.Guice.createInjector(Guice.java:59)
>>> at
>>> com.unecloud.server.UnecloudGuiceServletContextListener.getInjector
>>> (UnecloudGuiceServletContextListener.java:19) at
>>> com.google.inject.servlet.GuiceServletContextListener.contextInitialized
>>> (GuiceServletContextListener.java:43) at
>>> org.mortbay.jetty.handler.ContextHandler.startContext
>>> (ContextHandler.java:543) at
>>> org.mortbay.jetty.servlet.Context.startContext(Context.java:136)
>>> at
>>> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:
>>> 1220) at org.mortbay.jetty.handler.ContextHandler.doStart
>>> (ContextHandler.java:513) at
>>> org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
>>> at com.google.gwt.dev.shell.jetty.JettyLauncher
>>> $WebAppContextWithReload.doStart(JettyLauncher.java:430) at
>>> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:
>>> 39) at org.mortbay.jetty.handler.HandlerWrapper.doStart
>>> (HandlerWrapper.java:130) at
>>> org.mortbay.jetty.handler.RequestLogHandler.doStart
>>> (RequestLogHandler.java:115) at
>>> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:
>>> 39) at org.mortbay.jetty.handler.HandlerWrapper.doStart
>>> (HandlerWrapper.java:130) at org.mortbay.jetty.Server.doStart
>>> (Server.java:222) at org.mortbay.component.AbstractLifeCycle.start
>>> (AbstractLifeCycle.java:39) at
>>> com.google.gwt.dev.shell.jetty.JettyLauncher.start(JettyLauncher.java:
>>> 505) at com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:378)
>>> at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:948)
>>> at
>>> com.google.gwt.dev.DevModeBase.run(DevModeBase.java:726) at
>>> com.google.gwt.dev.DevMode.main(DevMode.java:246) Caused by:
>>> java.lang.ClassCastException: $java.util.Date$$FastClassByGuice$
>>> $3e8996e cannot be cast to
>>> com.google.inject.internal.cglib.reflect.FastClass 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.DefaultConstructionProxyFactory$1.<init>
>>> (DefaultConstructionProxyFactory.java:54) at
>>> com.google.inject.DefaultConstructionProxyFactory.create
>>> (DefaultConstructionProxyFactory.java:52) at
>>> com.google.inject.ProxyFactory.create(ProxyFactory.java:152) at
>>> com.google.inject.ConstructorInjectorStore.createConstructor
>>> (ConstructorInjectorStore.java:84) at
>>> com.google.inject.ConstructorInjectorStore.access$000
>>> (ConstructorInjectorStore.java:31) at
>>> com.google.inject.ConstructorInjectorStore$1.create
>>> (ConstructorInjectorStore.java:39) at
>>> com.google.inject.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) 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.ConstructorInjectorStore.get
>>> (ConstructorInjectorStore.java:52) at
>>> com.google.inject.ConstructorBindingImpl.initialize
>>> (ConstructorBindingImpl.java:57) at
>>> com.google.inject.InjectorImpl.initializeBinding(InjectorImpl.java:
>>> 377) at com.google.inject.InjectorImpl.createJustInTimeBinding
>>> (InjectorImpl.java:645) at
>>> com.google.inject.InjectorImpl.createJustInTimeBindingRecursive
>>> (InjectorImpl.java:581) at
>>> com.google.inject.InjectorImpl.getJustInTimeBinding(InjectorImpl.java:
>>> 172) at com.google.inject.InjectorImpl.getBindingOrThrow
>>> (InjectorImpl.java:132) at
>>> com.google.inject.InjectorImpl.createProviderBinding(InjectorImpl.java:
>>> 225) at com.google.inject.InjectorImpl.createJustInTimeBinding
>>> (InjectorImpl.java:610) at
>>> com.google.inject.InjectorImpl.createJustInTimeBindingRecursive
>>> (InjectorImpl.java:581) at
>>> com.google.inject.InjectorImpl.getJustInTimeBinding(InjectorImpl.java:
>>> 172) at com.google.inject.InjectorImpl.getBindingOrThrow
>>> (InjectorImpl.java:132) at
>>> com.google.inject.InjectorImpl.getInternalFactory(InjectorImpl.java:
>>> 651) at com.google.inject.InjectorImpl.createParameterInjector
>>> (InjectorImpl.java:707) at
>>> com.google.inject.InjectorImpl.getParametersInjectors
>>> (InjectorImpl.java:695) at
>>> com.google.inject.ConstructorInjectorStore.createConstructor
>>> (ConstructorInjectorStore.java:67) at
>>> com.google.inject.ConstructorInjectorStore.access$000
>>> (ConstructorInjectorStore.java:31) at
>>> com.google.inject.ConstructorInjectorStore$1.create
>>> (ConstructorInjectorStore.java:39) at
>>> com.google.inject.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) 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.ConstructorInjectorStore.get
>>> (ConstructorInjectorStore.java:52) at
>>> com.google.inject.ConstructorBindingImpl.initialize
>>> (ConstructorBindingImpl.java:57) at
>>> com.google.inject.InjectorImpl.initializeBinding(InjectorImpl.java:
>>> 377) at com.google.inject.InjectorImpl.createJustInTimeBinding
>>> (InjectorImpl.java:645) at
>>> com.google.inject.InjectorImpl.createJustInTimeBindingRecursive
>>> (InjectorImpl.java:581) at
>>> com.google.inject.InjectorImpl.getJustInTimeBinding(InjectorImpl.java:
>>> 172) at com.google.inject.InjectorImpl.getBindingOrThrow
>>> (InjectorImpl.java:132) at
>>> com.google.inject.InjectorImpl.getInternalFactory(InjectorImpl.java:
>>> 651) at com.google.inject.FactoryProxy.notify(FactoryProxy.java:48)
>>> at com.google.inject.BindingProcessor.runCreationListeners
>>> (BindingProcessor.java:230) at
>>> com.google.inject.InjectorBuilder.initializeStatically
>>> (InjectorBuilder.java:131) at
>>> com.google.inject.InjectorBuilder.build
>>> (InjectorBuilder.java:105) at com.google.inject.Guice.createInjector
>>> (Guice.java:92) at
>>> com.google.inject.Guice.createInjector(Guice.java:
>>> 69) at com.google.inject.Guice.createInjector(Guice.java:59)
>>> at
>>> com.unecloud.server.UnecloudGuiceServletContextListener.getInjector
>>> (UnecloudGuiceServletContextListener.java:19) at
>>> com.google.inject.servlet.GuiceServletContextListener.contextInitialized
>>> (GuiceServletContextListener.java:43) at
>>> org.mortbay.jetty.handler.ContextHandler.startContext
>>> (ContextHandler.java:543) at
>>> org.mortbay.jetty.servlet.Context.startContext(Context.java:136)
>>> at
>>> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:
>>> 1220) at org.mortbay.jetty.handler.ContextHandler.doStart
>>> (ContextHandler.java:513) at
>>> org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
>>> at com.google.gwt.dev.shell.jetty.JettyLauncher
>>> $WebAppContextWithReload.doStart(JettyLauncher.java:430) at
>>> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:
>>> 39) at org.mortbay.jetty.handler.HandlerWrapper.doStart
>>> (HandlerWrapper.java:130) at
>>> org.mortbay.jetty.handler.RequestLogHandler.doStart
>>> (RequestLogHandler.java:115) at
>>> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:
>>> 39) at org.mortbay.jetty.handler.HandlerWrapper.doStart
>>> (HandlerWrapper.java:130) at org.mortbay.jetty.Server.doStart
>>> (Server.java:222) at org.mortbay.component.AbstractLifeCycle.start
>>> (AbstractLifeCycle.java:39) at
>>> com.google.gwt.dev.shell.jetty.JettyLauncher.start(JettyLauncher.java:
>>> 505) at com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:378)
>>> at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:948)
>>> at
>>> com.google.gwt.dev.DevModeBase.run(DevModeBase.java:726) at
>>> com.google.gwt.dev.DevMode.main(DevMode.java:246)
>>>
>>> --
>>>
>>> You received this message because you are subscribed to the Google
>>> Groups "google-guice" group.
>>> To post to this group, send email to [email protected]<javascript:>
>>> .
>>> To unsubscribe from this group, send email to
>>> [email protected] <javascript:>.
>>> For more options, visit this group at
>>> http://groups.google.com/group/google-guice?hl=.
>>>
>>>
>>>
>>
>>
>> --
>> Cheers, Stuart
>>
>
>
>
> --
> Cheers, Stuart
>
--
You received this message because you are subscribed to the Google Groups
"google-guice" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/google-guice?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.