Ohh!!! Sorry, I didn't catch this before.
You shouldn't use statics in this case. By using a static database connection, every thread is sharing the same connection. So when one thread opens the connection, another thread may be closing it immediately afterwards. Instead you want every thread to have a unique database connection... so to start, just remove the static declarations and see how things go.
Later on you probably want to use connection pooling so that database connections don't need to be remade on every request. (Creating database connections is expensive.) If you deploy on JBoss, this is incredibly easy to configure -- just create a mysql-ds.xml file in your /deploy/ directory with something like this inside:
<local-tx-datasource>
<jndi-name>JetspeedDS</jndi-name>
<connection-url>jdbc:mysql://localhost/jetspeed/connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<user-name>root</user-name>
<password></password>
<min-pool-size>5</min-pool-size>
<max-pool-size>20</max-pool-size>
<idle-timeout-minutes>0</idle-timeout-minutes>
</local-tx-datasource>
But for now, just try not to share connections between threads! Good luck!
Jon Emerson
http://www.jonemerson.net/