Bug #77

ScriptableLdapObject does not handle reconnection correctly

Added by Sebastien Bahloul over 1 year ago. Updated 4 months ago.

Status:Closed Start:10/02/2011
Priority:High Due date:
Assigned to:Clément OUDOT % 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

Also available in: Atom PDF