Thanks much, Stuart, for confirming that this is supposed to work in an OSGi environment. Let me dig a little deeper before reporting back.
Jan On Friday, May 3, 2013 9:37:11 AM UTC-7, Stuart McCulloch wrote: > > I just tried running a MapBinder example on both Eclipse/Equinox and > Apache/Felix using Guice 3 and can't recreate that exception so I think > you'll need to provide more context (or ideally an example project or > testcase) > > On 3 May 2013, at 16:56, [email protected] <javascript:> 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. > > 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] <javascript:>. > To post to this group, send email to [email protected]<javascript:> > . > 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.
