Java recently added a more strict verifier to the class loading mechanism. This isn’t really a bad thing, necessarily, because it conforms to what Java was always supposed to do – except a lot of projects now rely on the verifier doing what it’s always done.
For all intents and purposes, the Java 8u11 (and 7u65) release broke things, especially things that did classloader magic in specific ways.
Apparently the verifier’s been changed since 8u11 to allow the (now-prevented) behavior again – but the fix hasn’t made it into the public builds of Java 8, as of 8u20 and 7u67.
With some help from ZeroTurnaround, I put together a project on github, called brokenverifier, that exercises the class verifier such that it fails with behavior that older versions of Java (meaning prior releases) allowed.
Check https://github.com/jottinger/brokenverifier out; it should be easy enough to clone and run regularly, until Java’s verifier is changed again.