Trying to access Cayenne on GAE throws the exception below.
Basically GAE doesn't allow creating new Threads, which Cayenne
EventManager attempts to do.


org.apache.cayenne.conf.Configuration initializeSharedConfiguration: Error creating shared Configuration:
java.security.AccessControlException: access denied 
(java.lang.RuntimePermission modifyThreadGroup)
        at java.security.AccessControlContext.checkPermission(Unknown Source)
        at java.security.AccessController.checkPermission(Unknown Source)
        at java.lang.SecurityManager.checkPermission(Unknown Source)
at com.google.apphosting.utils.security.SecurityManagerInstaller$CustomSecurityManager.checkAccess(SecurityManagerInstaller.java:72)
        at java.lang.ThreadGroup.checkAccess(Unknown Source)
        at java.lang.Thread.init(Unknown Source)
        at java.lang.Thread.<init>(Unknown Source)
        at 
org.apache.cayenne.event.EventManager$DispatchThread.<init>(EventManager.java:457)
        at org.apache.cayenne.event.EventManager.<init>(EventManager.java:97)
        at org.apache.cayenne.event.EventManager.<init>(EventManager.java:76)
        at org.apache.cayenne.conf.Configuration.<init>(Configuration.java:193)
        at 
org.apache.cayenne.conf.DefaultConfiguration.<init>(DefaultConfiguration.java:58)
        at 
org.apache.cayenne.conf.DefaultConfiguration.<init>(DefaultConfiguration.java:46)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown 
Source)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at java.lang.Class.newInstance0(Unknown Source)
        at java.lang.Class.newInstance(Unknown Source)
        at 
org.apache.cayenne.conf.Configuration.initializeSharedConfiguration(Configuration.java:133)
        at 
org.apache.cayenne.conf.Configuration.initializeSharedConfiguration(Configuration.java:121)
        at 
org.apache.cayenne.conf.Configuration.getSharedConfiguration(Configuration.java:91)
        at 
org.apache.cayenne.access.DataContext.createDataContext(DataContext.java:145)
        at 
org.apache.click.extras.cayenne.CayenneTemplate.getDataContext(CayenneTemplate.java:169)
        at 
org.apache.click.extras.cayenne.CayenneTemplate.performQuery(CayenneTemplate.java:276)
        at 
com.mycorp.service.CustomerService.getCustomers(CustomerService.java:29)
        at com.mycorp.page.ViewCustomers.onRender(ViewCustomers.java:76)
        at org.apache.click.ClickServlet.performOnRender(ClickServlet.java:666)
        at org.apache.click.ClickServlet.processPage(ClickServlet.java:521)
        at org.apache.click.ClickServlet.handleRequest(ClickServlet.java:339)
        at org.apache.click.ClickServlet.doGet(ClickServlet.java:257)

Reply via email to