Exception in AppEngine

15 views
Skip to first unread message

Vega

unread,
Jun 6, 2010, 2:37:03 PM6/6/10
to google-guice
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?

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

Stuart McCulloch

unread,
Jun 6, 2010, 2:48:26 PM6/6/10
to google...@googlegroups.com

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 )
 

--
You received this message because you are subscribed to the Google Groups "google-guice" group.
To post to this group, send email to google...@googlegroups.com.
To unsubscribe from this group, send email to google-guice...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/google-guice?hl=en.


--
Cheers, Stuart
Reply all
Reply to author
Forward
0 new messages