A potential version that is inconsistent with the others is actually one of the cases of a large set of loading problems that may arise when you deploy the same class in different banks.
Class loading errors will most likely bite you in an application container / EJB container or similar installation, where there are several components / applications loaded by a hierarchy of class loaders. However , if the same class is loaded by two different class loaders, they are perceived by the JVM as completely different classes! . This can lead to various runtime errors, such as LinkageError (for example, if two different versions of the same class definition collide - as described in other answers), ClassCastException (if a throw attempt is made between two class definitions loaded by different class loaders) and etc. Believe me, the addon descriptor is a place you do not want to see.
I would put the whole library in one jar to minimize this risk.
source share