On 7 June 2010 02:37, Vega <[email protected]> wrote:

> I have a Wave Robot (which is HttpServlet ) deployed to AppEngine
> The robot mapped by Guice to serve on specific url, the robot also
> receives injections from Guice.
> @Singleton
> public class ForumBotty extends AbstractRobot {
> @Inject
>  public ForumBotty(Injector injector, Util util, ForumPostDao
> forumPostDao,
>      AdminConfigDao adminConfigDao, UserNotificationDao
> userNotificationDao) {
>    this.injector = injector;
>    this.util = util;
>    this.forumPostDao = forumPostDao;
>    this.userNotificationDao = userNotificationDao;
>    this.adminConfigDao = adminConfigDao;
>
>    OAUTH_TOKEN = System.getProperty("OAUTH_TOKEN");
>    OAUTH_KEY = System.getProperty("OAUTH_KEY");
>    OAUTH_SECRET = System.getProperty("OAUTH_SECRET");
>    SECURITY_TOKEN = System.getProperty("SECURITY_TOKEN");
>    DIGEST_WAVE_DOMAIN = System.getProperty("DIGEST_WAVE_DOMAIN");
>    DIGEST_WAVE_ID = System.getProperty("DIGEST_WAVE_ID");
>
>    initOauth();
>  }
> //more stuff
> }
> Whenever this robot receives an event - I see the exception below in
> the application log on appengine. How can it be fixed?
>

this isn't actually a fatal error - Guice is just telling you that
it couldn't start the finalizer thread for weak / soft reference
maps because threads are not supported on GAE

you should be able to configure your logging to ignore this
( it's an INFO message from FinalizableReferenceQueue )


> com.google.inject.internal.FinalizableReferenceQueue <init>: Failed to
> start reference finalizer thread. Reference cleanup will only occur
> when new references are created.
> java.lang.reflect.InvocationTargetException
>        at
> com.google.appengine.runtime.Request.process-0e64cc98a6c1b70c(Request.java)
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>        at java.lang.reflect.Method.invoke(Unknown Source)
>        at java.security.AccessController.doPrivileged(Native Method)
>        at
>
> com.google.apphosting.runtime.security.shared.intercept.java.lang.reflect.Method_.privilegedInvoke(Method_.java:
> 163)
>        at
>
> com.google.apphosting.runtime.security.shared.intercept.java.lang.reflect.Method_.invoke_(Method_.java:
> 124)
>        at
>
> com.google.apphosting.runtime.security.shared.intercept.java.lang.reflect.Method_.invoke(Method_.java:
> 43)
>        at
>
> com.google.inject.internal.FinalizableReferenceQueue.<init>(FinalizableReferenceQueue.java:
> 124)
>        at com.google.inject.internal.MapMaker
> $QueueHolder.<clinit>(MapMaker.java:787)
>        at
> com.google.inject.internal.MapMaker$WeakEntry.<init>(MapMaker.java:
> 946)
>        at com.google.inject.internal.MapMaker$Strength
> $1.newEntry(MapMaker.java:312)
>        at com.google.inject.internal.MapMaker
> $StrategyImpl.newEntry(MapMaker.java:498)
>        at com.google.inject.internal.MapMaker
> $StrategyImpl.newEntry(MapMaker.java:419)
>        at com.google.inject.internal.CustomConcurrentHashMap
> $ComputingImpl.get(CustomConcurrentHashMap.java:2029)
>        at
> com.google.inject.internal.BytecodeGen.getClassLoader(BytecodeGen.java:
> 149)
>        at
> com.google.inject.internal.BytecodeGen.getClassLoader(BytecodeGen.java:
> 132)
>        at
> com.google.inject.internal.BytecodeGen.newFastClass(BytecodeGen.java:
> 162)
>        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.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.google.forumbotty.guice.GuiceServletConfig.getInjector(GuiceServletConfig.java:
> 87)
>        at
>
> com.google.inject.servlet.GuiceServletContextListener.contextInitialized(GuiceServletContextListener.java:
> 43)
>        at
> org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:
> 548)
>        at org.mortbay.jetty.servlet.Context.startContext(Context.java:136)
>        at
> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:
> 1250)
>        at
> org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:
> 517)
>        at
> org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:
> 467)
>        at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:
> 50)
>        at
>
> com.google.apphosting.runtime.jetty.AppVersionHandlerMap.createHandler(AppVersionHandlerMap.java:
> 191)
>        at
>
> com.google.apphosting.runtime.jetty.AppVersionHandlerMap.getHandler(AppVersionHandlerMap.java:
> 168)
>        at
>
> com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:
> 123)
>        at
> com.google.apphosting.runtime.JavaRuntime.handleRequest(JavaRuntime.java:
> 250)
>        at com.google.apphosting.base.RuntimePb$EvaluationRuntime
> $6.handleBlockingRequest(RuntimePb.java:5838)
>        at com.google.apphosting.base.RuntimePb$EvaluationRuntime
> $6.handleBlockingRequest(RuntimePb.java:5836)
>        at
>
> com.google.net.rpc.impl.BlockingApplicationHandler.handleRequest(BlockingApplicationHandler.java:
> 24)
>        at com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java:
> 398)
>        at com.google.net.rpc.impl.Server$2.run(Server.java:852)
>        at
> com.google.tracing.LocalTraceSpanRunnable.run(LocalTraceSpanRunnable.java:
> 56)
>        at
>
> com.google.tracing.LocalTraceSpanBuilder.internalContinueSpan(LocalTraceSpanBuilder.java:
> 576)
>        at com.google.net.rpc.impl.Server.startRpc(Server.java:807)
>        at com.google.net.rpc.impl.Server.processRequest(Server.java:369)
>        at
>
> com.google.net.rpc.impl.ServerConnection.messageReceived(ServerConnection.java:
> 442)
>        at
> com.google.net.rpc.impl.RpcConnection.parseMessages(RpcConnection.java:
> 319)
>        at
> com.google.net.rpc.impl.RpcConnection.dataReceived(RpcConnection.java:
> 290)
>        at com.google.net.async.Connection.handleReadEvent(Connection.java:
> 474)
>        at
>
> com.google.net.async.EventDispatcher.processNetworkEvents(EventDispatcher.java:
> 831)
>        at
> com.google.net.async.EventDispatcher.internalLoop(EventDispatcher.java:
> 207)
>        at com.google.net.async.EventDispatcher.loop(EventDispatcher.java:
> 103)
>        at
> com.google.net.rpc.RpcService.runUntilServerShutdown(RpcService.java:
> 251)
>        at com.google.apphosting.runtime.JavaRuntime
> $RpcRunnable.run(JavaRuntime.java:413)
>        at java.lang.Thread.run(Unknown Source)
> Caused by: java.security.AccessControlException: access denied
> (java.lang.RuntimePermission modifyThreadGroup)
>        at
>
> java.security.AccessControlContext.checkPermission(AccessControlContext.java:
> 355)
>        at
> java.security.AccessController.checkPermission(AccessController.java:
> 567)
>        at java.lang.SecurityManager.checkPermission(Unknown Source)
>        at java.lang.ThreadGroup.checkAccess(Unknown Source)
>        at java.lang.Thread.init(Unknown Source)
>        at java.lang.Thread.<init>(Unknown Source)
>        at com.google.inject.internal.Finalizer.<init>(Finalizer.java:92)
>        at
> com.google.inject.internal.Finalizer.startFinalizer(Finalizer.java:
> 81)
>        ... 76 more
>
> --
> 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.
>
>
-- 
Cheers, Stuart

-- 
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