Mantis Bugtracker
  

Viewing Issue Simple Details Jump to Notes ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0004889 [Resin] minor always 12-02-11 12:08 02-21-12 16:55
Reporter cowan View Status public  
Assigned To ferg
Priority normal Resolution fixed  
Status closed   Product Version 4.0.24
Summary 0004889: Static calls to Alarm create Threads
Description The AlarmClock created in Alarm as a static class declaration calls ThreadPool.getThreadPool which spawns new threads. It seems unnecessary to spawn threads unless they are really needed, particularly simply upon class initialization.

This causes issues running on Google App Engine, because their sandbox does not permit thread creation.

This results in GoogleQuercusServlet failing to serve PHP because PageManager calls Alarm.isActive.

WARNING: Nested in java.lang.ExceptionInInitializerError:
java.security.AccessControlException: access denied (java.lang.RuntimePermission modifyThreadGroup)
    at java.security.AccessControlContext.checkPermission(AccessControlContext.java:374)
    at java.security.AccessController.checkPermission(AccessController.java:546)
    at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
    at com.google.appengine.tools.development.DevAppServerFactory$CustomSecurityManager.checkPermission(DevAppServerFactory.java:166)
    at com.google.appengine.tools.development.DevAppServerFactory$CustomSecurityManager.checkAccess(DevAppServerFactory.java:191)
    at java.lang.ThreadGroup.checkAccess(ThreadGroup.java:299)
    at java.lang.Thread.init(Thread.java:336)
    at java.lang.Thread.<init>(Thread.java:436)
    at com.caucho.env.thread.ThreadLauncher.startWorkerThread(ThreadLauncher.java:125)
    at com.caucho.env.thread.AbstractTaskWorker.wake(AbstractTaskWorker.java:118)
    at com.caucho.env.thread.AbstractThreadLauncher.update(AbstractThreadLauncher.java:453)
    at com.caucho.env.thread.ThreadLauncher.setPriorityIdleMin(ThreadLauncher.java:74)
    at com.caucho.env.thread.ThreadLauncher.<init>(ThreadLauncher.java:64)
    at com.caucho.env.thread.ThreadPool.<init>(ThreadPool.java:136)
    at com.caucho.env.thread.ThreadPool.<init>(ThreadPool.java:129)
    at com.caucho.env.thread.ThreadPool.getThreadPool(ThreadPool.java:156)
    at com.caucho.util.AlarmClock.<init>(AlarmClock.java:65)
    at com.caucho.util.Alarm.<clinit>(Alarm.java:68)
Additional Information Rep by M. Frank
Attached Files

- Relationships

There are no notes attached to this issue.

- Issue History
Date Modified Username Field Change
12-02-11 12:08 cowan New Issue
02-21-12 16:55 ferg Assigned To  => ferg
02-21-12 16:55 ferg Status new => closed
02-21-12 16:55 ferg Resolution open => fixed
02-21-12 16:55 ferg Fixed in Version  => 4.0.26


Mantis 1.0.0rc3[^]
Copyright © 2000 - 2005 Mantis Group
27 total queries executed.
25 unique queries executed.
Powered by Mantis Bugtracker