Bug #77
ScriptableLdapObject does not handle reconnection correctly
| Status: | Closed | Start: | 10/02/2011 | |
|---|---|---|---|---|
| Priority: | High | Due date: | ||
| Assigned to: | % Done: | 100% |
||
| Category: | Authorization | Spent time: | - | |
| Target version: | 1.0 |
Description
When a connection is broken InitialLdapContext.reconnect with the same connection original controls does not seem to create a new LDAP connection : it throws a Communication exception
Caused by: javax.naming.CommunicationException [Root exception is java.io.IOException: connection closed]
at com.sun.jndi.ldap.LdapClient.authenticate(LdapClient.java:139)
at com.sun.jndi.ldap.LdapCtx.connect(LdapCtx.java:2694)
at com.sun.jndi.ldap.LdapCtx.ensureOpen(LdapCtx.java:2602)
at com.sun.jndi.ldap.LdapCtx.ensureOpen(LdapCtx.java:2576)
at com.sun.jndi.ldap.LdapCtx.reconnect(LdapCtx.java:2572)
at javax.naming.ldap.InitialLdapContext.reconnect(InitialLdapContext.java:173)
I suggest to create a new InitialLdapContext instead of calling reconnect.
Related issues
| related to Directory Manager - Bug #119: No Context associated with current Thread | Closed | 22/11/2011 |
History
Updated by Raphael Ouazana 9 months ago
- Status changed from New to Feedback
- Assigned to changed from Raphael Ouazana to Clément OUDOT
- % Done changed from 0 to 90
Fixed in r141, please test.
Some exception seems to still occur, but after a user retry all seems to work fine (which may occur when the ldap server restarted).
Updated by Clément OUDOT 8 months ago
- Target version set to 0.8
Updated by Raphael Ouazana 8 months ago
- Category set to Core
Updated by Clément OUDOT 6 months ago
I still have the bug :
Caused by: java.lang.RuntimeException: No Context associated with current Thread
at org.mozilla.javascript.Context.getContext(Context.java:2195)
at org.mozilla.javascript.Context.javaToJS(Context.java:1622)
at org.linid.dm.authorization.lql.JScriptEvaluator.instanceEval(JScriptEvaluator.java:245)
at org.linid.dm.authorization.lql.JScriptEvaluator.evalToStringList(JScriptEvaluator.java:174)
at org.linid.dm.authorization.lql.LqlRule.evaluate(LqlRule.java:87)
at org.linid.dm.authorization.lql.LqlRulesEngine.isAuthorized(LqlRulesEngine.java:135)
at org.linid.dm.authorization.lql.LqlAuthorizationModule.eval(LqlAuthorizationModule.java:87)
at org.linid.dm.authorization.CachedAuthorizationModuleFacade.eval(CachedAuthorizationModuleFacade.java:71)
at org.linid.dm.authorization.CachedAuthorizationModuleFacade.eval(CachedAuthorizationModuleFacade.java:95)
at org.linagora.linidcm.tap5.components.search.SearchResult.getAuthzAttributes(SearchResult.java:258)
at org.linagora.linidcm.tap5.components.search.SearchResult.setup(SearchResult.java:202)
at org.linagora.linidcm.tap5.components.search.SearchResult.setupRender(SearchResult.java)
at org.apache.tapestry5.internal.structure.ComponentPageElementImpl$SetupRenderPhase.invokeComponent(ComponentPageElementImpl.java:184)
at org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AbstractPhase.run(ComponentPageElementImpl.java:164)
at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.invoke(ComponentPageElementImpl.java:933)
... 107 more
2011-11-08 17:42:15 [FreeWorker] ERROR org.apache.tapestry5.services.TapestryModule.RequestExceptionHandler - Unexpected runtime exception: Render queue error in SetupRender[entry/search/Simple:viewsearchresult]: No Context associated with current Thread
handleRequestException:322org.apache.tapestry5.internal.services.RenderQueueException: Render queue error in SetupRender[entry/search/Simple:viewsearchresult]: No Context associated with current Thread [at classpath:org/linagora/linidcm/tap5/pages/entry/search/SimpleSearchEntry.tml, line 7]
at org.apache.tapestry5.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:86)
at org.apache.tapestry5.internal.services.PageRenderQueueImpl.render(PageRenderQueueImpl.java:121)
at $PageRenderQueue_13383f9ec70.render($PageRenderQueue_13383f9ec70.java)
at $PageRenderQueue_13383f9ec4d.render($PageRenderQueue_13383f9ec4d.java)
at org.apache.tapestry5.internal.services.MarkupRendererTerminator.renderMarkup(MarkupRendererTerminator.java:37)
at org.apache.tapestry5.services.TapestryModule$27.renderMarkup(TapestryModule.java:1748)
at $MarkupRenderer_13383f9ec72.renderMarkup($MarkupRenderer_13383f9ec72.java)
at org.apache.tapestry5.services.TapestryModule$26.renderMarkup(TapestryModule.java:1732)
at $MarkupRenderer_13383f9ec72.renderMarkup($MarkupRenderer_13383f9ec72.java)
at org.apache.tapestry5.services.TapestryModule$25.renderMarkup(TapestryModule.java:1714)
at $MarkupRenderer_13383f9ec72.renderMarkup($MarkupRenderer_13383f9ec72.java)
at org.apache.tapestry5.services.TapestryModule$24.renderMarkup(TapestryModule.java:1700)
at $MarkupRenderer_13383f9ec72.renderMarkup($MarkupRenderer_13383f9ec72.java)
at org.apache.tapestry5.services.TapestryModule$23.renderMarkup(TapestryModule.java:1681)
at $MarkupRenderer_13383f9ec72.renderMarkup($MarkupRenderer_13383f9ec72.java)
at org.apache.tapestry5.services.TapestryModule$22.renderMarkup(TapestryModule.java:1662)
at $MarkupRenderer_13383f9ec72.renderMarkup($MarkupRenderer_13383f9ec72.java)
at $MarkupRenderer_13383f9ec6f.renderMarkup($MarkupRenderer_13383f9ec6f.java)
at org.apache.tapestry5.internal.services.PageMarkupRendererImpl.renderPageMarkup(PageMarkupRendererImpl.java:64)
at $PageMarkupRenderer_13383f9ec6d.renderPageMarkup($PageMarkupRenderer_13383f9ec6d.java)
at org.apache.tapestry5.internal.services.PageResponseRendererImpl.renderPageResponse(PageResponseRendererImpl.java:61)
at $PageResponseRenderer_13383f9ebec.renderPageResponse($PageResponseRenderer_13383f9ebec.java)
at org.apache.tapestry5.internal.services.PageRenderRequestHandlerImpl.handle(PageRenderRequestHandlerImpl.java:63)
at org.apache.tapestry5.services.TapestryModule$33.handle(TapestryModule.java:1943)
at $PageRenderRequestHandler_13383f9ebed.handle($PageRenderRequestHandler_13383f9ebed.java)
at $PageRenderRequestHandler_13383f9ebd8.handle($PageRenderRequestHandler_13383f9ebd8.java)
at org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handlePageRender(ComponentRequestHandlerTerminator.java:48)
at $ComponentRequestHandler_13383f9ebdd.handlePageRender($ComponentRequestHandler_13383f9ebdd.java)
at org.apache.tapestry5.internal.services.PageRenderDispatcher.dispatch(PageRenderDispatcher.java:45)
at $Dispatcher_13383f9ebe0.dispatch($Dispatcher_13383f9ebe0.java)
at $Dispatcher_13383f9ebd6.dispatch($Dispatcher_13383f9ebd6.java)
at org.apache.tapestry5.services.TapestryModule$RequestHandlerTerminator.service(TapestryModule.java:245)
at org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26)
at $RequestHandler_13383f9ebd7.service($RequestHandler_13383f9ebd7.java)
at org.apache.tapestry5.services.TapestryModule$4.service(TapestryModule.java:778)
at $RequestHandler_13383f9ebd7.service($RequestHandler_13383f9ebd7.java)
at org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:767)
at $RequestHandler_13383f9ebd7.service($RequestHandler_13383f9ebd7.java)
at org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:85)
at $RequestHandler_13383f9ebd7.service($RequestHandler_13383f9ebd7.java)
at org.linagora.linidcm.tap5.services.AppModule$1.service(AppModule.java:87)
at $RequestFilter_13383f9ebd2.service($RequestFilter_13383f9ebd2.java)
at $RequestHandler_13383f9ebd7.service($RequestHandler_13383f9ebd7.java)
at org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:90)
at org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:81)
at org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:85)
at org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:103)
at $RequestHandler_13383f9ebd7.service($RequestHandler_13383f9ebd7.java)
at $RequestHandler_13383f9ebcc.service($RequestHandler_13383f9ebcc.java)
at org.apache.tapestry5.services.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.java:197)
at org.apache.tapestry5.internal.gzip.GZipFilter.service(GZipFilter.java:53)
at $HttpServletRequestHandler_13383f9ebce.service($HttpServletRequestHandler_13383f9ebce.java)
at org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)
at $HttpServletRequestFilter_13383f9ebcb.service($HttpServletRequestFilter_13383f9ebcb.java)
at $HttpServletRequestHandler_13383f9ebce.service($HttpServletRequestHandler_13383f9ebce.java)
at org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:726)
at $HttpServletRequestHandler_13383f9ebce.service($HttpServletRequestHandler_13383f9ebce.java)
at $HttpServletRequestHandler_13383f9ebc9.service($HttpServletRequestHandler_13383f9ebc9.java)
at org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:127)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:378)
at org.springframework.security.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
at org.springframework.security.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
at org.springframework.security.ui.ExceptionTranslationFilter.doFilterHttp(ExceptionTranslationFilter.java:101)
at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
at org.springframework.security.providers.anonymous.AnonymousProcessingFilter.doFilterHttp(AnonymousProcessingFilter.java:105)
at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
at org.springframework.security.wrapper.SecurityContextHolderAwareRequestFilter.doFilterHttp(SecurityContextHolderAwareRequestFilter.java:91)
at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
at org.springframework.security.ui.AbstractProcessingFilter.doFilterHttp(AbstractProcessingFilter.java:277)
at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
at org.springframework.security.ui.logout.LogoutFilter.doFilterHttp(LogoutFilter.java:89)
at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
at org.springframework.security.ui.preauth.AbstractPreAuthenticatedProcessingFilter.doFilterHttp(AbstractPreAuthenticatedProcessingFilter.java:69)
at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
at org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:235)
at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53)
at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
at org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:175)
at org.springframework.security.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:99)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.jstripe.tomcat.probe.Tomcat55AgentValve.invoke(Tomcat55AgentValve.java:20)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at fr.monecam.AccessLogValve.invoke(AccessLogValve.java:39)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
Caused by: org.apache.tapestry5.ioc.internal.util.TapestryException: No Context associated with current Thread [at classpath:org/linagora/linidcm/tap5/pages/entry/search/SimpleSearchEntry.tml, line 7]
at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.invoke(ComponentPageElementImpl.java:948)
at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.access$400(ComponentPageElementImpl.java:49)
at org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AbstractPhase.callback(ComponentPageElementImpl.java:159)
at org.apache.tapestry5.internal.structure.ComponentPageElementImpl$SetupRenderPhase.render(ComponentPageElementImpl.java:189)
at org.apache.tapestry5.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:74)
... 103 more
Caused by: java.lang.RuntimeException: No Context associated with current Thread
at org.mozilla.javascript.Context.getContext(Context.java:2195)
at org.mozilla.javascript.Context.javaToJS(Context.java:1622)
at org.linid.dm.authorization.lql.JScriptEvaluator.instanceEval(JScriptEvaluator.java:245)
at org.linid.dm.authorization.lql.JScriptEvaluator.evalToStringList(JScriptEvaluator.java:174)
at org.linid.dm.authorization.lql.LqlRule.evaluate(LqlRule.java:87)
at org.linid.dm.authorization.lql.LqlRulesEngine.isAuthorized(LqlRulesEngine.java:135)
at org.linid.dm.authorization.lql.LqlAuthorizationModule.eval(LqlAuthorizationModule.java:87)
at org.linid.dm.authorization.CachedAuthorizationModuleFacade.eval(CachedAuthorizationModuleFacade.java:71)
at org.linid.dm.authorization.CachedAuthorizationModuleFacade.eval(CachedAuthorizationModuleFacade.java:95)
at org.linagora.linidcm.tap5.components.search.SearchResult.getAuthzAttributes(SearchResult.java:258)
at org.linagora.linidcm.tap5.components.search.SearchResult.setup(SearchResult.java:202)
at org.linagora.linidcm.tap5.components.search.SearchResult.setupRender(SearchResult.java)
at org.apache.tapestry5.internal.structure.ComponentPageElementImpl$SetupRenderPhase.invokeComponent(ComponentPageElementImpl.java:184)
at org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AbstractPhase.run(ComponentPageElementImpl.java:164)
at org.apache.tapestry5.internal.structure.ComponentPageElementImpl.invoke(ComponentPageElementImpl.java:933)
... 107 more
I use Tomcat with LDAPS connection pool. The authorization artifact in my application is authorization-0.8-20110909.144537-3.jar, it should contain the last fixes.
Updated by Raphael Ouazana 6 months ago
This is an other bug. The fix seems to be well explained here:
http://code.google.com/p/proxy-vole/issues/detail?id=5
Updated by Clément OUDOT 6 months ago
- Category changed from Core to Authorization
- Status changed from Feedback to Closed
- % Done changed from 90 to 100
I opened the bug in #119, because it is another problem. This one seems ok and can be closed.
Updated by Clément OUDOT 4 months ago
- Target version changed from 0.8 to 1.0