This looks like a bug. I believe you can work around it temporarily by
patching BeansWrapper to call setAccessible on the enum Constructor. Can you
please file an issue in our tracker?

On Wed, Sep 2, 2009 at 7:30 PM, Hani Naguib <haninag...@gmail.com> wrote:

>
> The root exception seems to be:
>
> Nested in org.springframework.beans.factory.BeanCreationException:
> Error creating bean with name 'freemarkerConfig' defined in
> ServletContext resource [/WEB-INF/gae/gae-web.xml]: Invocation of init
> method failed; nested exception is
> java.lang.ExceptionInInitializerError:
> Undeclared throwable:java.lang.IllegalAccessException: Class
>
> com.google.apphosting.runtime.security.shared.intercept.java.lang.reflect.Constructor_
> can not access a member of class freemarker.ext.beans.EnumModels with
> modifiers ""
>        at com.google.appengine.runtime.Request.process-8239fb992975c163
> (Request.java)
>        at sun.reflect.Reflection.ensureMemberAccess(Unknown Source)
>        at java.lang.reflect.Constructor.newInstance(Constructor.java:42)
>         at freemarker.ext.beans.BeansWrapper.createEnumModels
> (BeansWrapper.java:1535)
>         at freemarker.ext.beans.BeansWrapper.<init>(BeansWrapper.java:174)
>        at freemarker.ext.beans.BeansWrapper.<clinit>(BeansWrapper.java:164)
>         at
> freemarker.template.ObjectWrapper.<clinit>(ObjectWrapper.java:69)
>        at freemarker.core.Configurable.<init>(Configurable.java:132)
>        at freemarker.template.Configuration.<init>(Configuration.java:109)
>        at freemarker.template.Configuration.<clinit>(Configuration.java:96)
>        at
>
> org.springframework.ui.freemarker.FreeMarkerConfigurationFactory.newConfiguration
> (FreeMarkerConfigurationFactory.java:332)
>        at
>
> org.springframework.ui.freemarker.FreeMarkerConfigurationFactory.createConfiguration
> (FreeMarkerConfigurationFactory.java:265)
>        at
>
> org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer.afterPropertiesSet
> (FreeMarkerConfigurer.java:114)
>        at
>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods
> (AbstractAutowireCapableBeanFactory.java:1369)
>        at
>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean
> (AbstractAutowireCapableBeanFactory.java:1335)
>         at
>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean
> (AbstractAutowireCapableBeanFactory.java:473)
>        at
>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory
> $1.run(AbstractAutowireCapableBeanFactory.java:409)
>        at java.security.AccessController.doPrivileged(Native Method)
>        at
>
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean
> (AbstractAutowireCapableBeanFactory.java:380)
>        at org.springframework.beans.factory.support.AbstractBeanFactory
> $1.getObject(AbstractBeanFactory.java:264)
>        at
>
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton
> (DefaultSingletonBeanRegistry.java:222)
>        at
> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean
> (AbstractBeanFactory.java:261)
>        at
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean
> (AbstractBeanFactory.java:185)
>        at
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean
> (AbstractBeanFactory.java:164)
>        at
>
> org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons
> (DefaultListableBeanFactory.java:429)
>        at
>
> org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization
> (AbstractApplicationContext.java:728)
>        at
> org.springframework.context.support.AbstractApplicationContext.refresh
> (AbstractApplicationContext.java:380)
>        at
>
> org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext
> (FrameworkServlet.java:402)
>        at
> org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext
> (FrameworkServlet.java:316)
>        at org.springframework.web.servlet.FrameworkServlet.initServletBean
> (FrameworkServlet.java:282)
>        at org.springframework.web.servlet.HttpServletBean.init
> (HttpServletBean.java:126)
>        at javax.servlet.GenericServlet.init(GenericServlet.java:215)
>        at org.mortbay.jetty.servlet.ServletHolder.initServlet
> (ServletHolder.java:433)
>        at
> org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:
> 256)
>        at org.mortbay.component.AbstractLifeCycle.start
> (AbstractLifeCycle.java:40)
>        at org.mortbay.jetty.servlet.ServletHandler.initialize
> (ServletHandler.java:612)
>        at org.mortbay.jetty.servlet.Context.startContext(Context.java:139)
>        at org.mortbay.jetty.webapp.WebAppContext.startContext
> (WebAppContext.java:1218)
>        at org.mortbay.jetty.handler.ContextHandler.doStart
> (ContextHandler.java:500)
>        at
> org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:
> 448)
>        at org.mortbay.component.AbstractLifeCycle.start
> (AbstractLifeCycle.java:40)
>        at
> com.google.apphosting.runtime.jetty.AppVersionHandlerMap.createHandler
> (AppVersionHandlerMap.java:190)
>        at
> com.google.apphosting.runtime.jetty.AppVersionHandlerMap.getHandler
> (AppVersionHandlerMap.java:167)
>        at
>
> com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest
> (JettyServletEngineAdapter.java:127)
>        at com.google.apphosting.runtime.JavaRuntime.handleRequest
> (JavaRuntime.java:235)
>        at com.google.apphosting.base.RuntimePb$EvaluationRuntime
> $6.handleBlockingRequest(RuntimePb.java:4950)
>        at com.google.apphosting.base.RuntimePb$EvaluationRuntime
> $6.handleBlockingRequest(RuntimePb.java:4948)
>        at com.google.net.rpc.impl.BlockingApplicationHandler.handleRequest
> (BlockingApplicationHandler.java:24)
>        at com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java:
> 359)
>        at com.google.net.rpc.impl.Server$2.run(Server.java:823)
>        at com.google.tracing.LocalTraceSpanRunnable.run
> (LocalTraceSpanRunnable.java:56)
>        at com.google.tracing.LocalTraceSpanBuilder.internalContinueSpan
> (LocalTraceSpanBuilder.java:516)
>        at com.google.net.rpc.impl.Server.startRpc(Server.java:778)
>        at com.google.net.rpc.impl.Server.processRequest(Server.java:351)
>        at com.google.net.rpc.impl.ServerConnection.messageReceived
> (ServerConnection.java:437)
>        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:
> 428)
>        at com.google.net.async.EventDispatcher.processNetworkEvents
> (EventDispatcher.java:762)
>        at com.google.net.async.EventDispatcher.internalLoop
> (EventDispatcher.java:207)
>        at com.google.net.async.EventDispatcher.loop(EventDispatcher.java:
> 101)
>        at com.google.net.rpc.RpcService.runUntilServerShutdown
> (RpcService.java:251)
>        at com.google.apphosting.runtime.JavaRuntime$RpcRunnable.run
> (JavaRuntime.java:392)
>        at java.lang.Thread.run(Unknown Source)
>
> >
>

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

Reply via email to