Hi Geir,
Based on the stack trace, the 1.2.0 ReflectionBuilder source code [1]
shows it is failing during a Commons BeanUtils call that looks a
JavaBeans PropertyDescriptor on a configured object in shiro.ini:
PropertyDescriptor descriptor =
PropertyUtils.getPropertyDescriptor(object, propertyName);
The relevant stack trace indicates that the ClassLoader lookup of the
bytes of the actual object class (down to FileInputStream) is failing:
Caused by: com.google.apphosting.api.DeadlineExceededException: This
request (1f30ed149a83a157) started at 2012/08/29 11:38:38.702 UTC and
was still executing at 2012/08/29 11:39:38.196 UTC.
at
com.google.appengine.runtime.Request.process-1f30ed149a83a157(Request.java)
at java.io.FileInputStream.readBytes(Native Method)
at java.io.FileInputStream.read(FileInputStream.java:231)
at sun.misc.Resource.getBytes(Resource.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:273)
at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2444)
at java.lang.Class.getDeclaredMethods(Class.java:1808)
at java.beans.Introspector$1.run(Introspector.java:1324)
at java.security.AccessController.doPrivileged(Native Method)
at
java.beans.Introspector.getPublicDeclaredMethods(Introspector.java:1322)
at java.beans.Introspector.getTargetMethodInfo(Introspector.java:1188)
at java.beans.Introspector.getBeanInfo(Introspector.java:423)
at java.beans.Introspector.getBeanInfo(Introspector.java:189)
at
org.apache.commons.beanutils.PropertyUtilsBean.getPropertyDescriptors(PropertyUtilsBean.java:980)
Could it be that ClassLoader lookup (or repeated ClassLoader lookup,
as would be done with reflection-based configuration like shiro.ini)
is slow on Google App Engine? Is there a latency based on where the
actual class files reside?
I'm not entirely sure why you're experiencing this particular issue -
I know that other GAE users use Shiro without problems - I just can't
speak to this particular issue.
[1]
https://svn.apache.org/repos/asf/shiro/tags/shiro-root-1.2.0/core/src/main/java/org/apache/shiro/config/ReflectionBuilder.java
HTH,
--
Les Hazlewood | @lhazlewood
CTO, Stormpath | http://stormpath.com | @goStormpath | 888.391.5282
Stormpath wins GigaOM Structure Launchpad Award! http://bit.ly/MvZkMk