On 3 May 2013, at 16:56, [email protected] wrote: > 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.
Which version of Guice? Both version & checksum would be useful, in case it's a repackaged bundle like the one in Eclipse/Orbit. Which OSGi environment? Do you have a standalone testcase you could attach to an issue? > Thanks, > > Jan > > On Monday, November 16, 2009 8:19:44 AM UTC-8, Stuart McCulloch wrote: > 2009/11/16 Stuart McCulloch <[email protected]> > 2009/11/16 Tristan <[email protected]> > 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]. > To unsubscribe from this group, send email to > [email protected]. > 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. > > -- 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.
