I am not sure what Derby can do at this case. It will be nice if derbynet.ServerPropertiesTest and management.InactiveManagementMBeanTest does not try to shutdown network server with embedded data source.
It is a little confusing with the different shutdowns going on.
The tests are not shutting down network srever with the embedded driver but rather using it to shutdown the embedded engine which network server is using. So when we reproduce the bug the sequence is in a single JVM:
1) start network server
2) shutdown the embedded engine (not network server) with the embedded driver (either DriverManager.getConnection("jdbc:derby:;shutdown=true) or with EmbeddedDataSource as the latest repro.
3) Shutdown network server. Since network server relies on the embedded engine to manage authentication and it is now gone the findService() call is null.
I am sure also there are other network server cleanup issues in this scenario.
In our first attempt at ReproDerby3532 in step 2 we shutdown the embedded engine with the client driver. In this case Network Server is aware that the engine is being shutdown because it came in through the client. Network Server catches the XJ015 error cleans up some of the network server threads and sessions and threads and restarts the embedded engine.
This happens in DRDAConnThread.writeSQLCARD(). The cleanup and engine restart occurs in the poorly named NetworkServerControl.startNetworkServer() which cleans up network server if needed and starts the embedded engine.
One option is to document that users should not shutdown the embedded engine with the embedded driver while network server is running and as you suggest, change here
change the tests to shut down the engine with the client driver.
I wonder instead if it would work and be worth it to put a lightweight check in network server for each client request to see if the embedded engine is running and if it is not, do the cleanup and start the embedded engine. Then we would always find the authentication service on shutdown and would be able to handle any other cleanup issues as well.