Have version 1.2 or 2.0 been released?

42 views
Skip to first unread message

Art

unread,
Sep 19, 2011, 5:17:40 PM9/19/11
to Ehcache Spring Annotations
I'm hitting the issue 57 (closed as fixed):
http://code.google.com/p/ehcache-spring-annotations/issues/detail?id=57&can=1&q=modifyThreadGroup
I encountered it in using ehcache-core-2.4.3.jar and ehcache-spring-
annotations-1.1.3.jar with Spring (3.0.4) on GAE/J
I cannot find the ehcache-spring-annotations version 1.2 or 2.0 marked
as fixed in the issue 57.
Where can I download those version from?
Or, when are those version going to be released if not yet?

Since Spring 3.1 seems to be going to have the resemble feature as
written at http://static.springsource.org/spring/docs/3.1.0.M1/spring-framework-reference/html/cache.html#cache-annotations
and Spring 3.1 seems to be out of corner at not so far future, I
cannot stop having doubt that those version will be released.

If those were released or are going to be released, then I would like
to also ask any start-up time difference by switching to Guava from
Guice as mentioned in the issue 57.
As mentioned at the below pages, though Spring itself adds up time to
app loading (I'm hoping that JavaConfig + Spring 3.1's @EnableWebMvc,
instead of XML declartive configuration, will improve that), Guice
seems to be one of big bottlenecks too.
http://turbomanage.wordpress.com/2010/03/26/appengine-cold-starts-considered/
http://www.answercow.com/2010/03/google-app-engine-cold-start-guide-for.html
So, I would have liked to be delighted that those version won't use
Guice, but I do not know about start-up time by using Guava, and I
would like to get brief idea about it.

Regards,
Art

Eric Dalquist

unread,
Sep 19, 2011, 9:55:21 PM9/19/11
to ehcache-sprin...@googlegroups.com
I'm going to start working on cutting the 1.2 release this evening, with any luck it will be out by the end of the week.

Spring 3.1 will have basic annotation based caching support which is unfortunatly unrelated to this project at all. The more interesting work is on the JSR-107 specification. This will be a standard Java API for caching including annotations. I am a member on the expert group and working hard to try and make sure that the annotations in the specification are robust and cover the core features needed. If you'd like more information you can take a look at the in-progress API here: https://github.com/jsr107/jsr107spec There is also a link to the actually specification document from that page.

The guava/guice switch mentioned in Issue 57 isn't a switch from using Guice, this library never used guice. What it did use was a copy of a single class that implemented a ConcurrentMap that used WeakReference values. The Google Guava library now provides that same functionality via the MapMaker API and as Guava is an actively maintained utility library from Google I'm assuming that it will work on GAE without any problems.

-Eric

Arata Yamamoto

unread,
Oct 4, 2011, 6:03:36 PM10/4/11
to ehcache-sprin...@googlegroups.com
Dear Eric,

Thank you for the release of ver. 1.2.
Unfortunately, it did not solve the issue 57.

ERROR o.s.web.context.ContextLoader - Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.googlecode.ehcache.annotations.config.internalEhCacheEvictionTask': Invocation of init method failed; nested exception is java.security.AccessControlException: access denied (java.lang.RuntimePermission modifyThreadGroup)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1420) ~[spring-beans-3.0.4.RELEASE.jar:na]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519) ~[spring-beans-3.0.4.RELEASE.jar:na]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) ~[spring-beans-3.0.4.RELEASE.jar:na]
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291) ~[spring-beans-3.0.4.RELEASE.jar:na]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-3.0.4.RELEASE.jar:na]
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288) ~[spring-beans-3.0.4.RELEASE.jar:na]
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190) ~[spring-beans-3.0.4.RELEASE.jar:na]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:580) ~[spring-beans-3.0.4.RELEASE.jar:na]
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895) ~[advisedSpringContext.jar:na]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425) ~[advisedSpringContext.jar:na]
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:276) ~[spring-web-3.0.4.RELEASE.jar:na]
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197) ~[spring-web-3.0.4.RELEASE.jar:na]
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47) ~[spring-web-3.0.4.RELEASE.jar:na]
at org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:548) ~[na:na]
at org.mortbay.jetty.servlet.Context.startContext(Context.java:136) ~[na:na]
at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250) ~[na:na]
at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517) ~[na:na]
at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467) ~[na:na]
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) ~[na:na]
at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.createHandler(AppVersionHandlerMap.java:202) ~[na:na]
at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.getHandler(AppVersionHandlerMap.java:171) ~[na:na]
at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:123) ~[na:na]
at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:391) ~[na:na]
at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:160) ~[na:na]
at java.lang.Thread.run(Thread.java:679) ~[na:1.6.0-google-v4]
Caused by: java.security.AccessControlException: access denied (java.lang.RuntimePermission modifyThreadGroup)
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:355) ~[na:1.6.0-google-v4]
at java.security.AccessController.checkPermission(AccessController.java:567) ~[na:1.6.0-google-v4]
at java.lang.SecurityManager.checkPermission(SecurityManager.java:549) ~[na:1.6.0-google-v4]
at com.google.apphosting.runtime.security.CustomSecurityManager.checkPermission(CustomSecurityManager.java:45) ~[na:na]
at com.google.apphosting.runtime.security.CustomSecurityManager.checkAccess(CustomSecurityManager.java:112) ~[na:na]
at java.lang.ThreadGroup.checkAccess(ThreadGroup.java:315) ~[na:1.6.0-google-v4]
at java.lang.Thread.init(Thread.java:353) ~[na:1.6.0-google-v4]
at java.lang.Thread.<init>(Thread.java:437) ~[na:1.6.0-google-v4]
at java.util.TimerThread.<init>(Timer.java:478) ~[na:na]
at java.util.Timer.<init>(Timer.java:100) ~[na:1.6.0-google-v4]
at com.googlecode.ehcache.annotations.impl.ExpiredElementEvictor.afterPropertiesSet(ExpiredElementEvictor.java:126) ~[ehcache-spring-annotations-1.2.0.jar:na]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$5.run(AbstractAutowireCapableBeanFactory.java:1467) ~[spring-beans-3.0.4.RELEASE.jar:na]
at java.security.AccessController.doPrivileged(Native Method) ~[na:1.6.0-google-v4]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1465) ~[spring-beans-3.0.4.RELEASE.jar:na]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417) ~[spring-beans-3.0.4.RELEASE.jar:na]
... 24 common frames omitted

Arata Yamamoto

unread,
Oct 4, 2011, 6:12:45 PM10/4/11
to ehcache-sprin...@googlegroups.com
Oops, the exception stacktrace appeared different from the issue 57 (http://code.google.com/p/ehcache-spring-annotations/issues/detail?id=57&can=1&q=app%20engine), although it caused by the same type of cause: access denied (java.lang.RuntimePermission modifyThreadGroup)
Shall I file this as a different issue?

Regards,
Art

Eric Dalquist

unread,
Oct 4, 2011, 8:44:59 PM10/4/11
to ehcache-sprin...@googlegroups.com
Yes please.

-Eric

Arata Yamamoto

unread,
Oct 4, 2011, 9:55:47 PM10/4/11
to ehcache-sprin...@googlegroups.com

Eric Dalquist

unread,
Oct 4, 2011, 9:59:50 PM10/4/11
to ehcache-sprin...@googlegroups.com
Thanks, this looks like it is being caused by a new background updating feature in 1.2. I'll look into a way to either catch the exception or otherwise figure out how to determine to not load that feature in GAE. I'll likely be looking for some help testing so I'll post in the issue when I think I have a fix and post a snapshot build for you to try out.

-Eric

Arata Yamamoto

unread,
Oct 4, 2011, 10:09:18 PM10/4/11
to ehcache-sprin...@googlegroups.com
>post a snapshot build for you to try out
Thank you for your going to work on this issue.
I will be happy to contribute some. But, I may not be able to try it quickly in timely manner. Please forgive me if that will be the case.

Regards,
Art
Reply all
Reply to author
Forward
0 new messages