Thank you very much for your reply.  I will take a look at patching the
security service to handle the reload.  This was just bizzare since I
never knew when it would or would not fail.  The only patterns that I
have seen so far is every other start of TomCat usually does it.  Also,
forcing a reload through the manager app of Tomcat can cause it.

Very strange.

-----Original Message-----
From: Rodney Schneider [mailto:[EMAIL PROTECTED]] 
Sent: Wednesday, November 27, 2002 6:59 PM
To: Turbine Users List
Subject: Re: Problem in Security Service



Hi Quinton,

We had a problem like this because we are using a subclass of 
DefaultTurbineRunData for our custom implementation of the RunData 
interface.  Actually, we never figured out exactly what was causing it. 
I think it was something to do with requests arriving before Turbine 
had finished initialising.

We are also using an extended TurbineUser in our application for our 
custom implementation of the User interface.  The problem in our case 
was exacerbated by the fact that the RunDataService, when it failed to 
load our custom User class the first time, never tried to load it 
again, so that if the exception occurred once, our application would be 
unusable and we would need to restart Tomcat.  We changed the 
RunDataService code so that it kept retrying to load our custom User 
class, so that this initial start-up race condition was not fatal.  I 
still have no idea what causes this race condition.

At some stage, I will need to dig into our patched version of the 
RunDataService and submit a patch for our workaround.

Sorry I can't be of more help.

Regards,

-- Rodney


On Thu, 28 Nov 2002 09:59, you wrote:
> I am having an odd problem with the coupled security service on T2.2 
> RC2.  I have extended TurbineUser and the security service is
> *sometimes* throwing an exception on startup.  Here is the section of 
> code that is throwing the exception:
>
> Disclaimer: The code is modified from its original for to include more

> logging.
>
>     public void init(ServletConfig config)
>         throws InitializationException
>     {
>         String userManagerClassName = getProperties().getProperty(
>             SecurityService.USER_MANAGER_KEY,
>             SecurityService.USER_MANAGER_DEFAULT);
>
>         String userClassName = getProperties().getProperty(
>             SecurityService.USER_CLASS_KEY,
>             SecurityService.USER_CLASS_DEFAULT);
>
>         try
>         {
>             log.debug("Using class "+userClassName+" for security user

> class");
>             userClass = Class.forName(userClassName);
>         }
>         catch (java.lang.NoClassDefFoundError e)
>         {
>             log.fatal( "Could not create instance of userClass 
> object", e );
>             throw new InitializationException(
>                 "BaseSecurityService.init: Failed create a Class 
> object for User implementation", e);
>         }
>         catch (Exception e)
>         {
>             log.fatal( "Could not create instance of userClass 
> object", e );
>             throw new InitializationException(
>                 "BaseSecurityService.init: Failed create a Class 
> object for User implementation", e);
>         }
>   <snip>
>    }
> }
>
> Here is the output from turbine.log
>
> 2002-11-27 16:49:39,939 [Thread-5] INFO  system - Start Initializing  
>service (early): SecurityService  2002-11-27 16:49:39,979 [Thread-5] 
>DEBUG  org.apache.turbine.services.security.BaseSecurityService - Using
> class com.nequalsone.om.NeoUser for security user class
> 2002-11-27 16:49:39,979 [Thread-5] FATAL
> org.apache.turbine.services.security.BaseSecurityService - Could not
> create instance of userClass object
> java.lang.NoClassDefFoundError: com.nequalsone.om.BaseNeoUser
>  at java.lang.Class.forName0(Native Method)
>  at java.lang.Class.forName(Class.java:140)
>  at
> org.apache.turbine.services.security.BaseSecurityService.init(BaseSec
>uri tyService.java:199)
>  at
> org.apache.turbine.services.TurbineBaseService.init(TurbineBaseServic
>e.j ava:108)
>  at
> org.apache.turbine.services.BaseInitableBroker.initClass(BaseInitable
>Bro ker.java:149)
>  at
> org.apache.turbine.services.BaseServiceBroker.doInitService(BaseServi
>ceB roker.java:224)
>  at
> org.apache.turbine.services.BaseServiceBroker.initServices(BaseServic
>eBr oker.java:193)
>  at org.apache.turbine.Turbine.init(Turbine.java:257)
>  at javax.servlet.GenericServlet.init(GenericServlet.java:256)
>  at
> org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.
>jav a:924)
>  at
> org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.jav
>a:6 58)
>  at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
>alv e.java:214)
>  at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
>t.i nvokeNext(StandardPipeline.java:643)
>  at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
>a:4 80)
>  at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>  at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
>alv e.java:191)
>  at
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
>t.i nvokeNext(StandardPipeline.java:643)
>  at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
>a:4 80)
>  at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>  at
> org.apache.catalina.core.StandardContext.invoke(StandardContext.java:
>239 6)
>  at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
>ava
>
> :180)
>
>  at  
>org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
>t.i nvokeNext(StandardPipeline.java:643)
>  at  
>org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatche
>rVa lve.java:170)
>  at  
>org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
>t.i nvokeNext(StandardPipeline.java:641)
>  at  
>org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
>ava
>
> :172)
>
>  at  
>org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
>t.i nvokeNext(StandardPipeline.java:641)
>  at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:
>469 )
>  at  
>org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
>t.i nvokeNext(StandardPipeline.java:641)
>  at  
>org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
>a:4 80)
>  at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>  at  
>org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
>ve. java:174)
>  at  
>org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
>t.i nvokeNext(StandardPipeline.java:643)
>  at  
>org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
>a:4 80)
>  at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>  at  
>org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:22
>3) at  
>org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
>:40 5)
>  at  
>org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
>ssC onnection(Http11Protocol.java:380)
>  at  
>org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java
>:50 8)
>  at  
>org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP
>ool .java:533)
>  at java.lang.Thread.run(Thread.java:536)
> 2002-11-27 16:49:39,979 [Thread-5] ERROR system -
> java.lang.NoClassDefFoundError: com.nequalsone.om.BaseNeoUser
>  at java.lang.Class.forName0(Native Method)
>  at java.lang.Class.forName(Class.java:140)
>  at  
>org.apache.turbine.services.security.BaseSecurityService.init(BaseSec
>uri tyService.java:199)
> rethrown as
> org.apache.turbine.services.InitializationException:
> BaseSecurityService.init: Failed create a Class object for User
> implementation: com.nequalsone.om.BaseNeoUser
>  at  
>org.apache.turbine.services.security.BaseSecurityService.init(BaseSec
>uri tyService.java:204)
>  at  
>org.apache.turbine.services.TurbineBaseService.init(TurbineBaseServic
>e.j ava:108)
>  at  
>org.apache.turbine.services.BaseInitableBroker.initClass(BaseInitable
>Bro ker.java:149)
>  at  
>org.apache.turbine.services.BaseServiceBroker.doInitService(BaseServi
>ceB roker.java:224)
>  at  
>org.apache.turbine.services.BaseServiceBroker.initServices(BaseServic
>eBr oker.java:193)
>  at org.apache.turbine.Turbine.init(Turbine.java:257)
>  at javax.servlet.GenericServlet.init(GenericServlet.java:256)
>  at  
>org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.
>jav a:924)
>  at  
>org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.jav
>a:6 58)
>  at  
>org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
>alv e.java:214)
>  at  
>org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
>t.i nvokeNext(StandardPipeline.java:643)
>  at  
>org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
>a:4 80)
>  at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>  at  
>org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
>alv e.java:191)
>  at  
>org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
>t.i nvokeNext(StandardPipeline.java:643)
>  at  
>org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
>a:4 80)
>  at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>  at
> org.apache.catalina.core.StandardContext.invoke(StandardContext.java:
>239 6)
>  at  
>org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
>ava
>
> :180)
>
>  at  
>org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
>t.i nvokeNext(StandardPipeline.java:643)
>  at  
>org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatche
>rVa lve.java:170)
>  at  
>org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
>t.i nvokeNext(StandardPipeline.java:641)
>  at  
>org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
>ava
>
> :172)
>
>  at  
>org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
>t.i nvokeNext(StandardPipeline.java:641)
>  at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:
>469 )
>  at  
>org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
>t.i nvokeNext(StandardPipeline.java:641)
>  at  
>org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
>a:4 80)
>  at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>  at  
>org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
>ve. java:174)
>  at  
>org.apache.catalina.core.StandardPipeline$StandardPipelineValveContex
>t.i nvokeNext(StandardPipeline.java:643)
>  at  
>org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
>a:4 80)
>  at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
>  at  
>org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:22
>3) at  
>org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
>:40 5)
>  at  
>org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
>ssC onnection(Http11Protocol.java:380)
>  at  
>org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java
>:50 8)
>  at  
>org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadP
>ool .java:533)
>  at java.lang.Thread.run(Thread.java:536)
> 2002-11-27 16:49:39,989 [Thread-5] INFO  system - Start Initializing  
>service (early): PoolBrokerService
>
>
>
> Now, I have made sure that my custom user class is being referenced 
> properly in TurbineResources.properties.  It does start to load my 
> class but throws an exception loading the superclass.  The superclass 
> does exist.  The class file is in WEB-INF/classes.
>
> Any ideas????

--
To unsubscribe, e-mail:
<mailto:[EMAIL PROTECTED]>
For additional commands, e-mail:
<mailto:[EMAIL PROTECTED]>



--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to