FYI, the AppEngine folks are aware of the problem.  There's an issue @
http://code.google.com/p/googleappengine/issues/detail?id=4250 for a similar
breakage (not caused by MapBinder, but because of the same problem).  You
can track that for updates.

sam

On Mon, Oct 25, 2010 at 1:53 PM, Nacho Coloma <[email protected]> wrote:

> Hi all,
>
> I am trying to use Mapbinder to configure a plugin-like API. Long
> story short, I need to inject a Map<Class, Class>, so I was thinking
> about using Mapbinder, but AppEngine is complaining about the
> mechanism used to inspect the generics info.
>
> I have tried three alternatives and no one works:
>
>                MapBinder.newMapBinder(binder(), Class.class, Class.class,
> JacksonMixins.class);
>
>                TypeLiteral<Class> typeLiteral = new TypeLiteral<Class>()
> {};
>                MapBinder.newMapBinder(binder(), typeLiteral, typeLiteral,
> JacksonMixins.class);
>
>                TypeLiteral<Class<?>> typeLiteral = new
> TypeLiteral<Class<?>>() {};
>                MapBinder.newMapBinder(binder(), typeLiteral, typeLiteral,
> JacksonMixins.class);
>
> JacksonMixins is a binding annotation. I have to double-check this,
> but I think that it is not complaining about other Multibinders that
> I'm using - just Mapbinder.
>
> The stack trace follows. Any help would be much welcome.
>
> ===
>
> java.security.AccessControlException: access denied
> (java.lang.RuntimePermission accessDeclaredMembers)
> java.security.AccessControlException: access denied
> (java.lang.RuntimePermission accessDeclaredMembers)
>        at
>
> java.security.AccessControlContext.checkPermission(AccessControlContext.java:
> 355)
>        at
> java.security.AccessController.checkPermission(AccessController.java:
> 567)
>        at java.lang.SecurityManager.checkPermission(SecurityManager.java:
> 549)
>        at
>
> com.google.apphosting.runtime.security.CustomSecurityManager.checkPermission(CustomSecurityManager.java:
> 45)
>        at java.lang.SecurityManager.checkMemberAccess(SecurityManager.java:
> 1679)
>        at java.lang.Class.checkMemberAccess(Class.java:2174)
>        at java.lang.Class.getDeclaredMethods(Class.java:1807)
>        at java.lang.Class.getEnclosingMethod(Class.java:919)
>        at
>
> sun.reflect.generics.scope.ClassScope.computeEnclosingScope(ClassScope.java:
> 50)
>        at
>
> sun.reflect.generics.scope.AbstractScope.getEnclosingScope(AbstractScope.java:
> 74)
>        at
> sun.reflect.generics.scope.AbstractScope.lookup(AbstractScope.java:
> 90)
>        at
>
> sun.reflect.generics.factory.CoreReflectionFactory.findTypeVariable(CoreReflectionFactory.java:
> 109)
>        at
>
> sun.reflect.generics.visitor.Reifier.visitTypeVariableSignature(Reifier.java:
> 165)
>        at
>
> sun.reflect.generics.tree.TypeVariableSignature.accept(TypeVariableSignature.java:
> 43)
>        at
> sun.reflect.generics.visitor.Reifier.reifyTypeArguments(Reifier.java:
> 68)
>        at
> sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:
> 138)
>        at
>
> sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:
> 49)
>        at
> sun.reflect.generics.visitor.Reifier.reifyTypeArguments(Reifier.java:
> 68)
>        at
> sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:
> 138)
>        at
>
> sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:
> 49)
>        at
>
> sun.reflect.generics.repository.ClassRepository.getSuperclass(ClassRepository.java:
> 84)
>        at java.lang.Class.getGenericSuperclass(Class.java:694)
>        at
> com.google.inject.internal.MoreTypes.getGenericSupertype(MoreTypes.java:
> 316)
>        at com.google.inject.TypeLiteral.getSupertype(TypeLiteral.java:263)
>        at
> com.google.inject.spi.InjectionPoint.hierarchyFor(InjectionPoint.java:
> 755)
>        at
>
> com.google.inject.spi.InjectionPoint.getInjectionPoints(InjectionPoint.java:
> 635)
>        at
>
> com.google.inject.spi.InjectionPoint.forInstanceMethodsAndFields(InjectionPoint.java:
> 356)
>        at
>
> com.google.inject.spi.InjectionPoint.forInstanceMethodsAndFields(InjectionPoint.java:
> 375)
>        at
> com.google.inject.internal.BindingBuilder.toProvider(BindingBuilder.java:
> 104)
>        at
> com.google.inject.internal.BindingBuilder.toProvider(BindingBuilder.java:
> 41)
>        at com.google.inject.multibindings.MapBinder
> $RealMapBinder.configure(MapBinder.java:346)
>        at com.google.inject.spi.Elements
> $RecordingBinder.install(Elements.java:223)
>        at
> com.google.inject.multibindings.MapBinder.newMapBinder(MapBinder.java:
> 229)
>        at
> com.google.inject.multibindings.MapBinder.newMapBinder(MapBinder.java:
> 175)
>        at
> com.google.inject.multibindings.MapBinder.newMapBinder(MapBinder.java:
> 189)
>        at
>
> org.loom.appengine.guice.LoomAppEngineModule.configure(LoomAppEngineModule.java:
> 50)
>
> --
> 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]<google-guice%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/google-guice?hl=en.
>
>

-- 
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=en.

Reply via email to