Gladly. I'll try to elaborate a bit more. The problem is in the handling of value returned by this method chain:
Class.getProtectionDomain().getCodeSource().getLocation()
Instance of returned object is java.net.URL as expected, but actual value is not file scheme url. Instead, value contains jar scheme url (which itself embeds file scheme url) as specified in java.net.JarURLConnection. Subsequent code in PackagingDataCalculator.getCodeLocation(Class) extracts substring after the last slash character which in this case is a class name.
I don't know what causes different behaviour of standard java feature for code source location. It seems to affect only our development stations (Win8/Java8/Tomcat8). It is not happing on Linux servers.
|