Can't access a local mongodb database. Keeps getting access denied ("java.lang.RuntimePermission" "modifyThreadGroup")

316 views
Skip to first unread message

Abhishek Vaid

unread,
Mar 15, 2015, 12:50:18 AM3/15/15
to google-a...@googlegroups.com
- I'm building a simple Servlet Application on Google App Engine.
- I have a Servlet and I'm able to successfully reach its doGet method.
- However, when I try to establish a MongoClient on my localhost, I get the exception:
access denied ("java.lang.RuntimePermission" "modifyThreadGroup")
- The Error is triggered by following line:
client = new MongoClient(hostName);

- Can someone explain to me what am I doing wrong?

java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "modifyThreadGroup")
    at java.security.AccessControlContext.checkPermission(AccessControlContext.java:457)
    at java.security.AccessController.checkPermission(AccessController.java:884)
    at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
    at com.google.appengine.tools.development.DevAppServerFactory$CustomSecurityManager.checkPermission(DevAppServerFactory.java:429)
    at com.google.appengine.tools.development.DevAppServerFactory$CustomSecurityManager.checkAccess(DevAppServerFactory.java:454)
    at java.lang.ThreadGroup.checkAccess(ThreadGroup.java:315)
    at java.lang.Thread.init(Thread.java:391)
    at java.lang.Thread.init(Thread.java:349)
    at java.lang.Thread.<init>(Thread.java:548)
    at com.mongodb.ServerMonitor.<init>(ServerMonitor.java:66)
    at com.mongodb.DefaultServer.<init>(DefaultServer.java:45)
    at com.mongodb.DefaultClusterableServerFactory.create(DefaultClusterableServerFactory.java:44)
    at com.mongodb.BaseCluster.createServer(BaseCluster.java:235)
    at com.mongodb.SingleServerCluster.<init>(SingleServerCluster.java:45)
    at com.mongodb.Clusters.create(Clusters.java:32)
    at com.mongodb.DBTCPConnector.start(DBTCPConnector.java:72)
    at com.mongodb.Mongo.<init>(Mongo.java:346)
    at com.mongodb.MongoClient.<init>(MongoClient.java:167)
    at com.mongodb.MongoClient.<init>(MongoClient.java:152)
    at com.mongodb.MongoClient.<init>(MongoClient.java:127)
    at com.mongodb.MongoClient.<init>(MongoClient.java:92)

Marcial Roman

unread,
Mar 15, 2015, 12:56:13 PM3/15/15
to google-a...@googlegroups.com
App Engine "sandbox" environment imposes some restrictions on what can be done. As it is stated in public documentation [1]:
"... you must use one of the methods on ThreadManager to create your threads. You cannot invoke new Thread() yourself or use the default thread factory."
Reply all
Reply to author
Forward
0 new messages