Skip to content


Subversion checkout URL

You can clone with
Download ZIP
shutdown test
Fetching latest commit...
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


When using a JNDI data source and Jetty, shutting down Jetty causes Lift to throw an exception if there are active comet actors.

2011-03-07 21:41:51,510 WARN  - Failure in remove session
java.lang.NullPointerException: Looking for Connection Identifier ConnectionIdentifier(jdbc/exampleDb) but failed to find either a JNDI data source with the name jdbc/exampleDb or a lift connection manager with the correct name
at net.liftweb.db.DB$$anonfun$7$$anonfun$apply$11.apply(DB.scala:154)
at net.liftweb.db.DB$$anonfun$7$$anonfun$apply$11.apply(DB.scala:154)
at net.liftweb.common.EmptyBox.openOr(Box.scala:561)

Observed in a production Jetty+MYSQL environment, and reproduced here using a Derby and SBT.

This doesn't appear to have any decremental effect on the application.

Expected behaviour

When shutting down Jetty (via the Jetty stop script or SBT jetty-stop) we expect no error to be generated.

Steps to reproduce

This git project is a SBT 0.7.5.RC0 projects created with Lifty for LIFT 2.3-SNAPSHOT running under Scala 2.8.1

$ git clone git://
$ cd shutdown-test
$ sbt
> update
> jetty-run

Ensure that the output from jetty-run includes "JNDI connection found".

Then visit (this is important as active comet actors are needed to trigger the issue)

Finally, run...

> jetty-stop

See the stack trace?


  • Commenting out the comet actor in index.html prevents the stack trace being produced during shutdown.
  • Using non-JNDI data sources prevents the stack trace.
  • Note that the app does not access the data source (no schemify, no mapper access)
  • Tested with MySQL, and MySQL with C3P0 polling - produces the stack trace.
  • Grep the project for "JNDI" for places I have touched the default Lifty app.
  • Did not see this with Tomcat 6 with a similar configuration.
Something went wrong with that request. Please try again.