无法启动参考终结器线程

时间:2013-09-12 05:15:10

标签: java google-app-engine openid

我正在使用admin sdk,spring mvc,cloud sql,servlet。我做过openid autentication。 但在处理身份验证时,我遇到了异常。谁能告诉我我需要做什么..?

    Failed to start reference finalizer thread. Reference cleanup will only occur 
    when  new references are created.
    java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at java.lang.reflect.Method.invoke(Method.java:597)
at com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:115)
at com.google.inject.internal.FinalizableReferenceQueue.<init>(FinalizableReferenceQueue.java:124)
at com.google.inject.internal.MapMaker$QueueHolder.<clinit>(MapMaker.java:787)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:171)

    Caused by: java.security.AccessControlException: access 
     denied  (java.lang.RuntimePermission modifyThreadGroup) 
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:374)
at java.security.AccessController.checkPermission(AccessController.java:549)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:532) 
       at com.google.appengine.tools.development.DevAppServerFactory$CustomSecurityManager.checkPermission(DevAppServerFactory.java:383)
at com.google.appengine.tools.development.DevAppServerFactory$CustomSecurityManager.checkAccess(DevAppServerFactory.java:408)
at java.lang.ThreadGroup.checkAccess(ThreadGroup.java:299)

1 个答案:

答案 0 :(得分:2)

根据你的看法,这是或不是一个bug;) Appengine是一个相当严格的环境,Guice正在使用重新打包的旧Guava版本,试图执行一些清理任务。但是,在该环境中这是不可能的,因此错误消息。这确实占用了一些CPU,但无论如何你的应用应运行正常。

隐藏消息的提供解决方案是通过在应用启动时运行:Logger.getLogger("com.google.inject.internal.util").setLevel(Level.WARNING);来更改这些消息的日志记录级别。

Guice团队承诺问题将在即将发布的版本中消失。 4.0目前处于测试阶段,因此问题应该很快就会消失。您也可以自己查看测试版。

有关此问题的更多信息,请点击此处: https://code.google.com/p/google-guice/issues/detail?id=488