The scope of static - global - is within its class loader class. The JVM can create multiple class loaders and load individual instances of your class in each of the new class loaders.
Statics are not global to the JVM, they are global to every classloader. If a class with a static field is loaded into another classloader, its static members will not be visible in another classloader.
How are project A and project B deployed? Are they in the same classloader?
I am not familiar with servicemix, but I believe that it deploys separate applications in separate classloaders, just as a Java EE application will deploy different versions of the same application in different classloaders, so you can run application 1.0 and application 1.1 side -by-side, and they will not influence each other.
This is by design.
If so, you need something independent to maintain overall health. (e.g. databases)
source share