Short description:
We use org.springframework.orm.hibernate3.support.OpenSessionInViewFilter for dont have any problem with lazy loading in web layer. All work and all ok but some time ago we receive strange exception which not reproduced now but we must know maybe it really can be throw in very rarely case and we need to catch them and perform correct processing.
Here is part of our code...
Entities
Code:
Entity
@Table(name = "profile_for_search", uniqueConstraints = {@UniqueConstraint(columnNames = {
"USERNAME", "ENGINE_ID"})})
@Cache(usage = CacheConcurrencyStrategy.NONE)
public class ProfileForSearch {
...
@ManyToMany
@JoinTable(name = "profile_for_search_match_have_children_ref", joinColumns = @JoinColumn(name = "PROFILE_ID"), inverseJoinColumns = @JoinColumn(name = "HAVE_CHILDREN_ID"))
public Set<HaveChildren> getMatchHaveChildrenList() {
return matchHaveChildrenList;
}
@ManyToMany
@JoinTable(name = "profile_for_search_match_body_ref", joinColumns = @JoinColumn(name = "PROFILE_ID"), inverseJoinColumns = @JoinColumn(name = "BODY_ID"))
public Set<Body> getMatchBodyList() {
return matchBodyList;
}
...
}
@Entity
@Table(name = "dict_have_children") @org.hibernate.annotations.Cache(usage = org.hibernate.annotations.CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class HaveChildren extends DictionaryType {
/**
*
*/
private static final long serialVersionUID = -7733685310994770437L;
public HaveChildren() {
super();
// TODO Auto-generated constructor stub
}
public HaveChildren(Long id) {
super(id);
// TODO Auto-generated constructor stub
}
}
@Entity
@Table(name = "dict_body") @org.hibernate.annotations.Cache(usage = org.hibernate.annotations.CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class Body extends DictionaryType{
/**
*
*/
private static final long serialVersionUID = 8031391412238012792L;
public Body() {
super();
// TODO Auto-generated constructor stub
}
public Body(Long id) {
super(id);
// TODO Auto-generated constructor stub
}
}
As for me HaveChildren same to Body...
Now code where we have error
Code:
public class UserDetailsAction implements Serializable {
@Autowired
private DE3UserDetailsService de3userDetailsServiceDE3;
private ProfileForSearch webUserDetails = new ProfileForSearch();
public void initializeWebUserDetails(Long sessionId) throws PersistenceException, DataAccessException, EntityNotFoundException, AuthenticationException {
webUserDetails = de3userDetailsServiceDE3.getOwnDetails(sessionId);
}
public List<SelectItem> getUserDetailForMatchFriendList() throws PersistenceException {
List<SelectItem> userDetailFormatchFriendList = new ArrayList<SelectItem>();
...
userDetailFormatchFriendList.add(new SelectItem(
toLocal("Relationship_status"), listToString(webUserDetails.getMatchMaritalList())));
userDetailFormatchFriendList.add(new SelectItem(
toLocal("Have_children"), listToString(webUserDetails.getMatchHaveChildrenList())));
userDetailFormatchFriendList.add(new SelectItem(
toLocal("Body"), listToString(webUserDetails.getMatchBodyList()))); // Exception throw here!
userDetailFormatchFriendList.add(new SelectItem(
toLocal("Hair_color"), listToString(webUserDetails.getMatchHairList())));
...
return userDetailFormatchFriendList;
}
private String listToString(Set set) {
String result = "";
if ((set != null) && (set.size() != 0)) { // Exception throw here!
...
}
...
}
...
}
Our webflow call initializeWebUserDetails and only after that getUserDetailForMatchFriendList...
And my stack trace
I understand that it very difficult but for me the main thing here is that we call all this after OpenSessionInViewFilter
in same thread.
Code:
[06:47:55]: [INFO] [talledLocalContainer] http-8082-4 ERROR [org.hibernate.LazyInitializationException] - illegal access to loading collection
[06:47:55]: [INFO] [talledLocalContainer] org.hibernate.LazyInitializationException: illegal access to loading collection
[06:47:55]: [INFO] [talledLocalContainer] at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:341)
[06:47:55]: [INFO] [talledLocalContainer] at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:86)
[06:47:55]: [INFO] [talledLocalContainer] at org.hibernate.collection.AbstractPersistentCollection.readSize(AbstractPersistentCollection.java:109)
[06:47:55]: [INFO] [talledLocalContainer] at org.hibernate.collection.PersistentSet.size(PersistentSet.java:139)
[06:47:55]: [INFO] [talledLocalContainer] at com.successfulmatch.web.profile.bean.details.UserDetailsAction.listToString(UserDetailsAction.java:348)
[06:47:55]: [INFO] [talledLocalContainer] at com.successfulmatch.web.profile.bean.details.UserDetailsAction.getUserDetailForMatchFriendList(UserDetailsAction.java:238)
[06:47:55]: [INFO] [talledLocalContainer] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[06:47:55]: [INFO] [talledLocalContainer] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[06:47:55]: [INFO] [talledLocalContainer] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[06:47:55]: [INFO] [talledLocalContainer] at java.lang.reflect.Method.invoke(Method.java:597)
[06:47:55]: [INFO] [talledLocalContainer] at org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:328)
[06:47:55]: [INFO] [talledLocalContainer] at org.jboss.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:273)
[06:47:55]: [INFO] [talledLocalContainer] at org.jboss.el.parser.AstMethodSuffix.getValue(AstMethodSuffix.java:59)
[06:47:55]: [INFO] [talledLocalContainer] at org.jboss.el.parser.AstValue.getValue(AstValue.java:67)
[06:47:55]: [INFO] [talledLocalContainer] at org.jboss.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.binding.expression.el.BindingValueExpression.getValue(BindingValueExpression.java:54)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.binding.expression.el.ELExpression.getValue(ELExpression.java:54)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.webflow.action.EvaluateAction.doExecute(EvaluateAction.java:77)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.webflow.action.AbstractAction.execute(AbstractAction.java:188)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.webflow.execution.AnnotatedAction.execute(AnnotatedAction.java:145)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.webflow.execution.ActionExecutor.execute(ActionExecutor.java:51)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.webflow.engine.ActionList.execute(ActionList.java:155)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.webflow.engine.ViewState.render(ViewState.java:280)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.webflow.engine.ViewState.refresh(ViewState.java:241)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.webflow.engine.ViewState.resume(ViewState.java:219)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.webflow.engine.Flow.resume(Flow.java:545)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.webflow.engine.impl.FlowExecutionImpl.resume(FlowExecutionImpl.java:259)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.webflow.executor.FlowExecutorImpl.resumeExecution(FlowExecutorImpl.java:163)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.webflow.mvc.servlet.FlowHandlerAdapter.handle(FlowHandlerAdapter.java:183)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501)
[06:47:55]: [INFO] [talledLocalContainer] at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
[06:47:55]: [INFO] [talledLocalContainer] at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
[06:47:55]: [INFO] [talledLocalContainer] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
[06:47:55]: [INFO] [talledLocalContainer] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.web.filter.AbstractRequestLoggingFilter.doFilterInternal(AbstractRequestLoggingFilter.java:156)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
[06:47:55]: [INFO] [talledLocalContainer] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
[06:47:55]: [INFO] [talledLocalContainer] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
[06:47:55]: [INFO] [talledLocalContainer] at com.successfulmatch.web.main.ModuleInfoFilter.doFilter(ModuleInfoFilter.java:43)
[06:47:55]: [INFO] [talledLocalContainer] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
[06:47:55]: [INFO] [talledLocalContainer] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.security.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.security.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.security.ui.SessionFixationProtectionFilter.doFilterHttp(SessionFixationProtectionFilter.java:67)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.security.ui.ExceptionTranslationFilter.doFilterHttp(ExceptionTranslationFilter.java:101)
[06:47:55]: [INFO] [talledLocalContainer] at com.successfulmatch.services.auth.DE3ExceptionTranslationFilter.doFilterHttp(DE3ExceptionTranslationFilter.java:26)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.security.ui.ExceptionTranslationFilter.doFilterHttp(ExceptionTranslationFilter.java:101)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.security.providers.anonymous.AnonymousProcessingFilter.doFilterHttp(AnonymousProcessingFilter.java:105)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.security.ui.rememberme.RememberMeProcessingFilter.doFilterHttp(RememberMeProcessingFilter.java:116)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.security.wrapper.SecurityContextHolderAwareRequestFilter.doFilterHttp(SecurityContextHolderAwareRequestFilter.java:91)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.security.ui.AbstractProcessingFilter.doFilterHttp(AbstractProcessingFilter.java:277)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
[06:47:55]: [INFO] [talledLocalContainer] at sun.reflect.GeneratedMethodAccessor86.invoke(Unknown Source)
[06:47:55]: [INFO] [talledLocalContainer] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[06:47:55]: [INFO] [talledLocalContainer] at java.lang.reflect.Method.invoke(Method.java:597)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
[06:47:55]: [INFO] [talledLocalContainer] at $Proxy115.doFilter(Unknown Source)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.security.ui.logout.LogoutFilter.doFilterHttp(LogoutFilter.java:89)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
[06:47:55]: 04.07.2010 6:47:55 html.processor.HtmlCommandProcessor executeCommand
[06:47:55]: INFO: Command ended wait for thread end. cmd: comment | args: [Create account and became payment, ]
[06:47:55]: 04.07.2010 6:47:55 html.processor.HtmlCommandProcessor executeCommand
[06:47:55]: INFO: Successfully execute cmd: comment | args: [Create account and became payment, ] | result: OK
[06:47:55]: 04.07.2010 6:47:55 SeleniumHtmlClient executeStep
[06:47:55]: INFO: executeStep ends test name=DeIii.StoryTests.EmailWebModule.SendEmailOptions.AddToFavoriteLinkNotPresentReplyForAdded.html | stepRow : [TR: null] | failed: false
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:235)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
[06:47:55]: [INFO] [talledLocalContainer] at com.successfulmatch.web.authentication.DE3SessionFilter.doFilterHttp(DE3SessionFilter.java:149)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
[06:47:55]: [INFO] [talledLocalContainer] at sun.reflect.GeneratedMethodAccessor86.invoke(Unknown Source)
[06:47:55]: [INFO] [talledLocalContainer] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[06:47:55]: [INFO] [talledLocalContainer] at java.lang.reflect.Method.invoke(Method.java:597)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
[06:47:55]: [INFO] [talledLocalContainer] at $Proxy117.doFilter(Unknown Source)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:175)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:236)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
[06:47:55]: [INFO] [talledLocalContainer] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
[06:47:55]: [INFO] [talledLocalContainer] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
[06:47:55]: [INFO] [talledLocalContainer] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
[06:47:55]: [INFO] [talledLocalContainer] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
[06:47:55]: [INFO] [talledLocalContainer] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
[06:47:55]: [INFO] [talledLocalContainer] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
[06:47:55]: [INFO] [talledLocalContainer] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
[06:47:55]: 04.07.2010 6:47:55 SeleniumHtmlClient executeStep
[06:47:55]: [INFO] [talledLocalContainer] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
[06:47:55]: INFO: executeStep begin test name=DeIii.StoryTests.EmailWebModule.SendEmailOptions.AddToFavoriteLinkNotPresentReplyForAdded.html | stepRow : [TR: null]
[06:47:55]: 04.07.2010 6:47:55 SeleniumHtmlClient executeStep
[06:47:55]: INFO: store [, prefix]
[06:47:55]: 04.07.2010 6:47:55 html.processor.HtmlCommandProcessor executeCommand
[06:47:55]: [INFO] [talledLocalContainer] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
[06:47:55]: INFO: Try execute cmd: storeExpression | args: [, prefix]
[06:47:55]: [INFO] [talledLocalContainer] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
[06:47:55]: [INFO] [talledLocalContainer] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
[06:47:55]: [INFO] [talledLocalContainer] at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:568)
[06:47:55]: [INFO] [talledLocalContainer] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
[06:47:55]: [INFO] [talledLocalContainer] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
[06:47:55]: [INFO] [talledLocalContainer] at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
[06:47:55]: [INFO] [talledLocalContainer] at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
[06:47:55]: [INFO] [talledLocalContainer] at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
[06:47:55]: [INFO] [talledLocalContainer] at java.lang.Thread.run(Thread.java:619)
Why it throw in that line of UserDetailsAction not before not after... Same collections what different?..
As I see this: don't know have but session was closed during action execution...
But who can close it? It must be closed only by OpenSessionInView filter.. If it was not closed by this thread how another thread can access to this one...
One another think how it can happens we don't call initializeWebUserDetails in this thread and try access to entity session of which was in another thread but why it not reproduce...