When a connection is closed, the client driver sends a StatementEvent to all StatementEventListeners registered on the connection being closed. The embedded driver does not send StatementEvents when a connection is closed. Examples can be found in jdbc4/StatementEventsTest. Look for code that calls usingEmbedded() and usingDerbyNetClient() in that class.
Embedded and client should match if possible, per