3 Replies Latest reply on Dec 9, 2005 11:20 AM by brian.stansberry

    TreeCacheSSOClusterManager, NullPointer in addSession, 4.0.2

      Hello,

      In 4.0.2 I extended the default-configuration by tc5-cluster-service.xml, jgroups.jar and jboss-cache.jar just to achieve SSO.
      Everything worked fine.

      Now in 4.0.3 (taking the new jars from all-configuration) SSO still seems to work fine, but with every new session there comes a NullPointerException in TreeCacheSSOClusterManager.addSession

      My config is the same like in 4.0.2, I did mind the (little) changes in tc5-cluster-service.xml from 4.0.2 to 4.0.3.

      Might there be anything to configure additionally which was not necessary in 4.0.2? Are there any new dependancies I have to take care about?
      I found no hint here nor in JIRA..


      Thanks in advance & cheers,
      Andreas





      2005-12-08 16:58:03,807 DEBUG [org.apache.catalina.connector.CoyoteAdapter] Requested cookie session id is B9E25435B4685D4FF5F701D29EDC1B90.default
      ...
      2005-12-08 16:58:03,807 DEBUG [org.apache.catalina.authenticator.FormAuthenticator] Restore request from session 'B9E25435B4685D4FF5F701D29EDC1B90.default'
      ...
      2005-12-08 16:58:03,807 TRACE [org.jboss.web.tomcat.tc5.sso.TreeCacheSSOClusterManager] Registering SSO C1CCD9C49C113C5A2E4153F9311D2CCF in clustered cache
      2005-12-08 16:58:03,807 DEBUG [org.jboss.cache.Node] acquiring RL: fqn=/SSO, caller=Thread[http-0.0.0.0-8643-3,5,jboss], lock=<unlocked>
      2005-12-08 16:58:03,807 DEBUG [org.jboss.cache.Node] acquired RL: fqn=/SSO, caller=Thread[http-0.0.0.0-8643-3,5,jboss], lock=read owners=[Thread[http-0.0.0.0-8643-3,5,jboss]]
      2005-12-08 16:58:03,807 DEBUG [org.jboss.cache.Node] createChild: fqn=/SSO/C1CCD9C49C113C5A2E4153F9311D2CCF, child_name=C1CCD9C49C113C5A2E4153F9311D2CCF
      2005-12-08 16:58:03,807 DEBUG [org.jboss.cache.interceptors.LockInterceptor] created child C1CCD9C49C113C5A2E4153F9311D2CCF
      2005-12-08 16:58:03,807 DEBUG [org.jboss.cache.Node] acquiring RL: fqn=/SSO/C1CCD9C49C113C5A2E4153F9311D2CCF, caller=Thread[http-0.0.0.0-8643-3,5,jboss], lock=<unlocked>
      2005-12-08 16:58:03,807 DEBUG [org.jboss.cache.Node] acquired RL: fqn=/SSO/C1CCD9C49C113C5A2E4153F9311D2CCF, caller=Thread[http-0.0.0.0-8643-3,5,jboss], lock=read owners=[Thread[http-0.0.0.0-8643-3,5,jboss]]
      2005-12-08 16:58:03,807 DEBUG [org.jboss.cache.Node] createChild: fqn=/SSO/C1CCD9C49C113C5A2E4153F9311D2CCF/credentials, child_name=credentials
      2005-12-08 16:58:03,807 DEBUG [org.jboss.cache.interceptors.LockInterceptor] created child credentials
      2005-12-08 16:58:03,807 DEBUG [org.jboss.cache.Node] acquiring WL: fqn=/SSO/C1CCD9C49C113C5A2E4153F9311D2CCF/credentials, caller=Thread[http-0.0.0.0-8643-3,5,jboss], lock=<unlocked>
      2005-12-08 16:58:03,807 DEBUG [org.jboss.cache.Node] acquired WL: fqn=/SSO/C1CCD9C49C113C5A2E4153F9311D2CCF/credentials, caller=Thread[http-0.0.0.0-8643-3,5,jboss], lock=write owner=Thread[http-0.0.0.0-8643-3,5,jboss]
      2005-12-08 16:58:03,807 DEBUG [org.jboss.cache.TreeCache] _put(null, "/SSO/C1CCD9C49C113C5A2E4153F9311D2CCF/credentials", key, org.jboss.web.tomcat.tc5.sso.TreeCacheSSOClusterManager$SSOCredentials@6db6ad12)
      2005-12-08 16:58:03,807 DEBUG [org.jboss.cache.interceptors.UnlockInterceptor] releasing lock for /SSO/C1CCD9C49C113C5A2E4153F9311D2CCF/credentials: write owner=Thread[http-0.0.0.0-8643-3,5,jboss]
      2005-12-08 16:58:03,807 DEBUG [org.jboss.cache.interceptors.UnlockInterceptor] releasing lock for /SSO/C1CCD9C49C113C5A2E4153F9311D2CCF: read owners=[Thread[http-0.0.0.0-8643-3,5,jboss]]
      2005-12-08 16:58:03,807 DEBUG [org.jboss.cache.interceptors.UnlockInterceptor] releasing lock for /SSO: read owners=[Thread[http-0.0.0.0-8643-3,5,jboss]]
      2005-12-08 16:58:03,807 DEBUG [org.jboss.cache.interceptors.ReplicationInterceptor] invoking method _put([Ljava.lang.Object;@6d89ad12), members=[ws-60269:4989], mode=REPL_ASYNC, exclude_self=true, timeout=15000
      2005-12-08 16:58:03,807 DEBUG [org.jboss.cache.TreeCache] destination list is empty, discarding call
      2005-12-08 16:58:03,817 DEBUG [org.apache.catalina.core.ContainerBase.[jboss.web.default].[localhost]] Associate sso id C1CCD9C49C113C5A2E4153F9311D2CCF with session StandardSession[B9E25435B4685D4FF5F701D29EDC1B90.default]
      2005-12-08 16:58:03,817 TRACE [org.jboss.web.tomcat.tc5.sso.TreeCacheSSOClusterManager] addSession(): adding Session B9E25435B4685D4FF5F701D29EDC1B90.default to cached session set for SSO C1CCD9C49C113C5A2E4153F9311D2CCF
      2005-12-08 16:58:03,817 ERROR [org.jboss.web.tomcat.tc5.sso.TreeCacheSSOClusterManager] caught exception adding session B9E25435B4685D4FF5F701D29EDC1B90.default to SSO id C1CCD9C49C113C5A2E4153F9311D2CCF
      java.lang.NullPointerException
      at org.jboss.web.tomcat.tc5.sso.TreeCacheSSOClusterManager.addSession(TreeCacheSSOClusterManager.java:282)
      at org.jboss.web.tomcat.tc5.sso.ClusteredSingleSignOn.associate(ClusteredSingleSignOn.java:438)
      at org.apache.catalina.authenticator.AuthenticatorBase.register(AuthenticatorBase.java:721)
      at org.apache.catalina.authenticator.FormAuthenticator.authenticate(FormAuthenticator.java:194)
      at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:446)
      at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
      at org.jboss.web.tomcat.tc5.sso.ClusteredSingleSignOn.invoke(ClusteredSingleSignOn.java:366)
      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:856)
      at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
      at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
      at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
      at java.lang.Thread.run(Thread.java:568)


        • 1. Re: TreeCacheSSOClusterManager, NullPointer in addSession, 4
          brian.stansberry

          The NPE is because their is no TransactionManager available. Not sure how the valve started without this (the jbossweb-tomcat55.sar/META-INF/jboss-service.xml should have a

          <depends>jboss.cache:service=TomcatClusteringCache</depends>
          element; with that the valve shouldn't start without the TransactionManager).

          In any case, in 4.0.3 TreeCacheSSOClusterManager gets its TransactionManager reference from the underlying TreeCache. Be sure that in your tc5-cluster-service.xml you have the following (which is there by default):

          <attribute name="TransactionManagerLookupClass">org.jboss.cache.JBossTransactionManagerLookup</attribute>


          • 2. Re: TreeCacheSSOClusterManager, NullPointer in addSession, 4

            thank you very much, that was fast and helpful!

            you might want to consider to comment in the jboss-service.xml that the

            <depends>jboss.cache:service=TomcatClusteringCache</depends>

            is needed for SSO since 4.0.3.
            Just proposing to maintain the excellent quality of comments in all the other config-elements! :-)

            • 3. Re: TreeCacheSSOClusterManager, NullPointer in addSession, 4
              brian.stansberry

              Thanks for the good suggestion and for letting me know that that was the root cause of your issue. I'll look into modifying TreeCacheSSOClusterManager as well so it throws a more meaningful exception rather than the NPE.