[ 
https://issues.apache.org/jira/browse/SHIRO-517?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14189915#comment-14189915
 ] 

Markus W Mahlberg commented on SHIRO-517:
-----------------------------------------

Shiro declares a dependency on version r09 of guava, where it was defined.

However, in the latest release, this [utility isn't present any 
more|http://google.github.io/guice/api-docs/latest/javadoc/com/google/inject/util/package-frame.html].

Presumably, the [ImmutableList of Guava 
15|http://docs.guava-libraries.googlecode.com/git-history/v15.0/javadoc/com/google/common/collect/ImmutableList.html]
 is used now by Guice.

Since this utility was declared as internal (deducing through package name), it 
should not be referenced.

My suggestion for fixing this would be to remove the dependency on Guava, since 
it is present through the transitive dependency on Guice and use Guava's 
implementation instead.

> Caused by: java.lang.NoClassDefFoundError: 
> Lcom/google/inject/internal/util/$ImmutableList;
> -------------------------------------------------------------------------------------------
>
>                 Key: SHIRO-517
>                 URL: https://issues.apache.org/jira/browse/SHIRO-517
>             Project: Shiro
>          Issue Type: Bug
>          Components: Integration: Guice
>    Affects Versions: 1.2.3
>         Environment: OS X, Java 8, Guice 4.0-SNAPSHOT
>            Reporter: Peerapat
>            Assignee: Jared Bunting
>   Original Estimate: 24h
>  Remaining Estimate: 24h
>
> I tried Shiro with Guice 4.0-SNAPSHOT
> It does not work, below is stack trace.
> 27-Aug-2014 09:27:15.957 SEVERE [localhost-startStop-1] 
> org.apache.catalina.core.StandardContext.listenerStart Exception sending 
> context initialized event to listener instance of class 
> com.sun.faces.config.ConfigureListener
>  java.lang.RuntimeException: java.lang.NoClassDefFoundError: 
> Lcom/google/inject/internal/util/$ImmutableList;
>       at 
> com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:280)
>       at 
> org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4738)
>       at 
> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5158)
>       at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
>       at 
> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:726)
>       at 
> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:702)
>       at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:697)
>       at 
> org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:579)
>       at 
> org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1744)
>       at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>       at java.util.concurrent.FutureTask.run(FutureTask.java:266)
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>       at java.lang.Thread.run(Thread.java:745)
> Caused by: java.lang.NoClassDefFoundError: 
> Lcom/google/inject/internal/util/$ImmutableList;
>       at java.lang.Class.getDeclaredFields0(Native Method)
>       at java.lang.Class.privateGetDeclaredFields(Class.java:2570)
>       at java.lang.Class.getDeclaredFields(Class.java:1903)
>       at 
> com.google.inject.spi.InjectionPoint.getInjectionPoints(InjectionPoint.java:661)
>       at 
> com.google.inject.spi.InjectionPoint.forInstanceMethodsAndFields(InjectionPoint.java:366)
>       at 
> com.google.inject.spi.InjectionPoint.forInstanceMethodsAndFields(InjectionPoint.java:385)
>       at 
> com.google.inject.internal.BindingBuilder.toProvider(BindingBuilder.java:110)
>       at 
> com.google.inject.internal.BindingBuilder.toProvider(BindingBuilder.java:100)
>       at 
> com.google.inject.internal.BindingBuilder.toProvider(BindingBuilder.java:43)
>       at 
> com.google.inject.multibindings.Multibinder$RealMultibinder.configure(Multibinder.java:269)
>       at 
> com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:253)
>       at 
> com.google.inject.multibindings.Multibinder.newSetBinder(Multibinder.java:136)
>       at 
> com.google.inject.multibindings.MapBinder.newMapBinder(MapBinder.java:154)
>       at 
> com.google.inject.multibindings.MapBinder.newMapBinder(MapBinder.java:168)
>       at 
> org.apache.shiro.guice.BeanTypeListener.beanTypeMapBinding(BeanTypeListener.java:130)
>       at 
> org.apache.shiro.guice.BeanTypeListener.bindBeanType(BeanTypeListener.java:126)
>       at org.apache.shiro.guice.ShiroModule.bindBeanType(ShiroModule.java:151)
>       at 
> org.apache.shiro.guice.web.ShiroWebModule.configureShiro(ShiroWebModule.java:119)
>       at org.apache.shiro.guice.ShiroModule.configure(ShiroModule.java:73)
>       at com.google.inject.PrivateModule.configure(PrivateModule.java:100)
>       at 
> com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:253)
>       at com.google.inject.spi.Elements.getElements(Elements.java:108)
>       at 
> com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:135)
>       at 
> com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:104)
>       at com.google.inject.Guice.createInjector(Guice.java:99)
>       at com.google.inject.Guice.createInjector(Guice.java:73)
>       at com.google.inject.Guice.createInjector(Guice.java:62)
>       at 
> com.thjug.bgile.guice.GuiceInjectorFactory.<clinit>(GuiceInjectorFactory.java:37)
>       at 
> com.thjug.bgile.guice.GuiceInjectionProvider.<clinit>(GuiceInjectionProvider.java:18)
>       at java.lang.Class.forName0(Native Method)
>       at java.lang.Class.forName(Class.java:340)
>       at com.sun.faces.util.Util.loadClass(Util.java:325)
>       at 
> com.sun.faces.spi.InjectionProviderFactory.getProviderInstance(InjectionProviderFactory.java:149)
>       at 
> com.sun.faces.spi.InjectionProviderFactory.createInstance(InjectionProviderFactory.java:117)
>       at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:361)
>       at 
> com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:221)
>       ... 13 more
> Caused by: java.lang.ClassNotFoundException: 
> com.google.inject.internal.util.$ImmutableList
>       at 
> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1284)
>       at 
> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1132)
>       ... 49 more



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to