Initially I thought that my RootJDBCRealm might be the problem, but how can that be? RootJDBCRealm extends Tomcat's own JDBCRealm. It overrides authenticate to call super.authenticate and if there are 3 failures (in that super.authenticate returns null), then it locks out the user. So could the user of RootJDBCRealm still be a problem? Thanks.
--- On Mon, 1/23/12, Mark Thomas <ma...@apache.org> wrote: > From: Mark Thomas <ma...@apache.org> > Subject: Re: Connection.close() has already been called during login > To: "Tomcat Users List" <users@tomcat.apache.org> > Date: Monday, January 23, 2012, 12:49 AM > On 23/01/2012 03:49, removeps-c...@yahoo.com > wrote: > > Am running Tomcat 7 and see this in the logs: > > > > SEVERE: Exception performing authentication > > > com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: > Connection.close() has already been called. Invalid > operation in this state. > > at > sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native > Method) > > at > sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) > > at > sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) > > at > java.lang.reflect.Constructor.newInstance(Constructor.java:513) > > at > com.mysql.jdbc.Util.handleNewInstance(Util.java:406) > > at > com.mysql.jdbc.Util.getInstance(Util.java:381) > > at > com.mysql.jdbc.SQLError.createSQLException(SQLError.java:984) > > at > com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956) > > at > com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926) > > at > com.mysql.jdbc.ConnectionImpl.getMutex(ConnectionImpl.java:3018) > > at > com.mysql.jdbc.ConnectionImpl.commit(ConnectionImpl.java:1512) > > at > org.apache.catalina.realm.JDBCRealm.getPassword(JDBCRealm.java:579) > > at > org.apache.catalina.realm.JDBCRealm.authenticate(JDBCRealm.java:408) > > at > org.apache.catalina.realm.JDBCRealm.authenticate(JDBCRealm.java:355) > > at > pacific.tomcat.RootJDBCRealm.authenticate(SourceFile:71) > > The above line is key. You are not using Tomcat's > JDBCRealm. > > > at > org.apache.catalina.authenticator.FormAuthenticator.authenticate(FormAuthenticator.java:295) > > at > org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:450) > > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) > > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98) > > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) > > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) > > at > org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987) > > at > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:539) > > at > org.apache.tomcat.util.net.AprEndpoint$SocketWithOptionsProcessor.run(AprEndpoint.java:1773) > > at > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) > > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) > > at > java.lang.Thread.run(Thread.java:662) > > > > > > could the reason be ROOT/META-INF/context.xml which > says > > > > <Context> > > > > <Realm > className="pacific.tomcat.RootJDBCRealm" > > > driverName="pacific.driver.PacificMysqlDriver" > > > connectionName="auth" connectionPassword="..." > > > connectionURL="pacific@jdbc:mysql://localhost:3306" > > userTable="user" > userNameCol="username" userCredCol="password" > > > userRoleTable="user_role" roleNameCol="rolename" > > digest="SHA1"/> > > > > That is, should I be using a datasource realm > instead? > > Yes. > > Mark > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org