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.
