guice-persist: "Work already begun on this thread." in production

245 views
Skip to first unread message

Alexander Urmuzov

unread,
Dec 12, 2011, 12:14:23 AM12/12/11
to google...@googlegroups.com
Hi!

I have an application that works perfectly in deveopment (kubuntu + tomcat 6.0.32 + MySQL) but fails with strange error in produnction (AmazonEC2 Linux + tomcat 6.0.32 + Amazon MySQL). The error is:

java.lang.IllegalStateException: Work already begun on this thread. Looks like you have called UnitOfWork.begin() twice without a balancing call to end() in between.
	com.google.inject.internal.guava.base.$Preconditions.checkState(Preconditions.java:145)
	com.google.inject.persist.jpa.JpaPersistService.begin(JpaPersistService.java:72)
	com.google.inject.persist.PersistFilter.doFilter(PersistFilter.java:89)
	com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:164)
	com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:68)
	com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:169)
	com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:68)
	com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:169)
	com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:68)
	com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:169)
	com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:68)
	com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:169)
	com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:68)
	com.google.inject.servlet.FilterDefinition.doFilter(FilterDefinition.java:169)
	com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:68)
	com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:120)
	com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:126)

Servlets, that render html pages always work fine, but some JS/CSS resources that are included in HTML pages randomly fall with the error.

I use PersistFilter for all resources in my app:
        filter("/*").through(PersistFilter.class);

Guice version is 3.0-SNAPSHOT from https://repository.sonatype.org/content/groups/forge/

How can I fix this error? And why I can't reproduce it in development environment?
Reply all
Reply to author
Forward
0 new messages