There is a difference in behavior of start/stop and restart of application. Currently start/stop functions in the following manner once you issue the stop command configurations will be stopped, than unloaded. This will also destroy the current classloader. Once a start is issued the configurations will loaded and than started. This will also result in the creation of new classloaders.
In case of restart same modules will be started as before the restart command, and same old classloaders will be used. This results in loss of functionality in which some of the static variables are not re-initialized and can no longer be useful.
So as to fix this issue up, restart code needs to be modified so that new classloaders are created.
For more information please refer the following discussion