Re: JDBCRealm.getRoles causes NullPointerException

2008-09-16 Thread Christopher Schultz
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Lloyd,

DIGLLOYD INC wrote:
 I am using  Realm className=org.apache.catalina.realm.JDBCRealm ... 
 
 I don't know what's required to use a DataSourceRealm (yet), but if it's
 a simple switch I'll try it.


Ooh, using DataSourceRealm is much better, because you can share the
JDBC Connection objects with the rest of your application. It apparently
also doesn't suffer from this bug. If you are already using a DataSource
in your application, just switch the className and then remove all the
connection information from your Realm and replace it with the
required DataSource name (see the docs for specifics).

 I am not sharing anything; the database is used for authentication
 only.  I've declared the realm, but I don't think there's any pool
 involved.

Right: JDBCRealm does not do any connection pooling AFAIK.

 I don't know how to set up a validation query or debugging options
 for leaked connections.  I see the problem occur just after restarting
 tomcat so leaked connections shouldn't be the problem.

For the DataSourceRealm, you can simply set these options on your
Resource that defines the DataSource. You just set the validationQuery
attribute to something that your database is guaranteed to execute
successfully. MySQL users often choose SELECT 1 but pretty much
anything will work.

 The odd thing is that it has run for 10 days, then it just fails, and
 then fails after restarting Tomcat.  That makes it really hard to
 isolate the cause.

Agreed: very strange.

- -chris

-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.9 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkjQHmEACgkQ9CaO5/Lv0PAHVACbBK8J1sFObfNYKMJmPBCLdnG7
JlYAn1nEp8JRGjSrSZgpFW8t8hw7D8Z4
=I6hD
-END PGP SIGNATURE-

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: JDBCRealm.getRoles causes NullPointerException

2008-09-16 Thread Mark Thomas
Christopher Schultz wrote:
 Lloyd,
 
 DIGLLOYD INC wrote:
 I am using  Realm className=org.apache.catalina.realm.JDBCRealm ... 
 
 I don't know what's required to use a DataSourceRealm (yet), but if it's
 a simple switch I'll try it.
 
 
 Ooh, using DataSourceRealm is much better, because you can share the
 JDBC Connection objects with the rest of your application. It apparently
 also doesn't suffer from this bug. If you are already using a DataSource
 in your application, just switch the className and then remove all the
 connection information from your Realm and replace it with the
 required DataSource name (see the docs for specifics).
 
 I am not sharing anything; the database is used for authentication
 only.  I've declared the realm, but I don't think there's any pool
 involved.
 
 Right: JDBCRealm does not do any connection pooling AFAIK.

It is better than that. It uses a single connection and lots of syncs :)

Mark


-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: JDBCRealm.getRoles causes NullPointerException

2008-09-16 Thread Christopher Schultz
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Mark,

Mark Thomas wrote:
 Christopher Schultz wrote:
 Right: JDBCRealm does not do any connection pooling AFAIK.
 
 It is better than that. It uses a single connection and lots of syncs :)

Sweet! Sounds like a heckuva first-term freshman hack-job to me.

- -chris
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.9 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAkjQJOIACgkQ9CaO5/Lv0PAqOQCggHTR48qmxyWM2zcNXvRckVXi
CboAn0MhjoLCSlxsI0xSBfwglg8rCS6P
=eOpr
-END PGP SIGNATURE-

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: JDBCRealm.getRoles causes NullPointerException

2008-09-03 Thread Christopher Schultz
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Lloyd,

DIGLLOYD INC wrote:
 MySQL 5.0.51b + mysql-connector-java-5.1.6-bin.jar

Have you tried downgrading to a 5.0 version? It might be worth it to see
if there is some weird problem with their new driver.

 The only clue I see in catalina.out is the stack trace below (10 of them
 or so), about 9 hours *prior* to my detecting the authentication
 failure.  However, my access logs show that users logged in successfully
 *after* that series of failures.

That indicates to me that you are using multiple connections to the
database, and perhaps one of them gets damaged but the others are okay.
Do you see any other JDBC-related exceptions on your logs, or any faults
detected on the MySQL-server-side?

Are you using a DataSourceRealm? If so, are you sharing that DataSource
with your actual application, or do you have a separate one for
authentication?

Any other problems /not/ related to authentication?

Do you have a validationQuery set for your JDBC/JNDI Resource? If so,
what is it? Also, do you have the debugging options for leaked
connections turned on?

 I'm not sure where or how to debug this further.  It seems that Tomcat
 is making a bad call to next() which causes the NPE, but that's unclear;
 perhaps it's ResultSetImpl with a problem.  It's also unclear why
 there's a burst of such problems, then no further ones in the log, then
 the hours-later complete failure.

I suspect that your connection pool is slowly failing, one connection at
a time. When you run out of useful connections, your app is dead.

 Aug 31, 2008 5:30:48 PM org.apache.catalina.connector.CoyoteAdapter service
 SEVERE: An exception or error occurred in the container during the
 request processing
 java.lang.NullPointerException
 at
 com.mysql.jdbc.ResultSetImpl.setRowPositionValidity(ResultSetImpl.java:826)
 at com.mysql.jdbc.ResultSetImpl.next(ResultSetImpl.java:7046)
 at org.apache.catalina.realm.JDBCRealm.getRoles(JDBCRealm.java:632)

I would check with MySQL as well. I've found that my reported bugs never
get fixed, but sometimes Tonci will at least get back to you ;)

- -chris
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.9 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iEYEARECAAYFAki+vd0ACgkQ9CaO5/Lv0PCa8QCeMoMC4hYDVZnK2TM+If/sJ7wC
YTYAnjHrmxXSu2rLdE5i2YDirOtAh3tb
=+9Cz
-END PGP SIGNATURE-

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: JDBCRealm.getRoles causes NullPointerException

2008-09-03 Thread Mark Thomas
DIGLLOYD INC wrote:
 Aug 31, 2008 5:30:48 PM org.apache.catalina.connector.CoyoteAdapter service
 SEVERE: An exception or error occurred in the container during the
 request processing
 java.lang.NullPointerException
 at
 com.mysql.jdbc.ResultSetImpl.setRowPositionValidity(ResultSetImpl.java:826)
 at com.mysql.jdbc.ResultSetImpl.next(ResultSetImpl.java:7046)
 at org.apache.catalina.realm.JDBCRealm.getRoles(JDBCRealm.java:632)


The JDBC realm is very much the poor relation of the DataSource realm. If
you can switch, you really should.

This is probably https://issues.apache.org/bugzilla/show_bug.cgi?id=45453

Mark


-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]