Hi!
I have some problems with the Turbine Security Service.
About the environment: Turbine 2.2-b3, Torque 3.0.2, Tomcat 4.1.31, WinXP,
PostgreSQL database server.
On Login process I execute the following lines of code:
User tu=TurbineSecurity.getAuthenticatedUser(username, password);
tu.setHasLoggedIn(new Boolean(true));
tu.setLastLogin(new java.util.Date());
(*) TurbineSecurity.saveUser(tu);
But on line marked with (*) I obtain the following exception:
Exception: java.lang.reflect.InvocationTargetException
Stack Trace follows:
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at
org.apache.turbine.util.velocity.VelocityActionEvent.executeEvents(VelocityA
ctionEvent.java:159)
at
org.apache.turbine.util.velocity.VelocityActionEvent.perform(VelocityActionE
vent.java:107)
at
org.apache.turbine.modules.actions.VelocityAction.perform(VelocityAction.jav
a:110)
at
org.apache.turbine.modules.actions.VelocitySecureAction.perform(VelocitySecu
reAction.java:100)
at
org.apache.turbine.modules.ActionLoader.exec(ActionLoader.java:122)
at
org.apache.turbine.modules.pages.DefaultPage.doBuild(DefaultPage.java:143)
at org.apache.turbine.modules.Page.build(Page.java:90)
at
org.apache.turbine.modules.PageLoader.exec(PageLoader.java:123)
at org.apache.turbine.Turbine.doGet(Turbine.java:563)
at org.apache.turbine.Turbine.doPost(Turbine.java:658)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:716)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:809)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:200)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:146)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:209)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:596)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:144)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:596)
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase
.java:445)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:594)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2358)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:133
)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:596)
at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.
java:118)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:594)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:116
)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:594)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:127)
at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:596)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:433)
at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:948)
at
org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:152)
at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConne
ction(Http11Protocol.java:705)
at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav
a:683)
at java.lang.Thread.run(Thread.java:534)
Caused by: org.apache.turbine.util.security.DataBackendException: Failed to
save user object: Bad conversion: java.lang.NumberFormatException: For input
string: "¬í sr java.util.Hashtable»%!Jä¸
_____
[1]F
loadFactorI thresholdxp?@ w x"
at
org.apache.turbine.services.security.db.DBUserManager.store(DBUserManager.ja
va:271)
at
org.apache.turbine.services.security.BaseSecurityService.saveUser(BaseSecuri
tyService.java:374)
at
org.apache.turbine.services.security.TurbineSecurity.saveUser(TurbineSecurit
y.java:256)
at
myapp.web.modules.general.actions.LoginAction.doLogin(LoginAction.java:52)
... 47 more
In another application. I have the similar code, but connected to MySql
server
In that context it works fine.
I decided to delete the marked line
The application run well, but,
sometimes (I think when the session expires) I obtain a similar exception
(it is not thrown from my LoginAction). Maybe Turbine knows when the session
expired and try from some reason to save the user from the runData
(TurbineSecurity.saveUser)?
What can cause this problem.
Anybody some advice? Or there is an another scenario for using the security
service?
Thanks in advance!
Regards,
Levi