(I've redirected this to velocity-dev, hope you don't mind)

Here's my stab at having Introspector detect class reloads and discard no
longer relevant ClassMaps. Right now it might seem a bit compex, as it
discards ClassMaps at class loader granularity. However if it is not granted
the required "getClassLoader" RuntimePermission, then it falls back
gracefully and simply clears the whole cache when it detects what seems like
a class reload.

I'm including both the diffs and the complete modified files (as
Introspector underwent a major rewamp, I feel it's better comprehensible
from complete source than from the diff.)

I've run it against the test suite and it fails on single test, but I assume
it has nothing to do with these changes:

     [java] There was 1 failure:
     [java] 1)
EncodingTestCase(org.apache.velocity.test.EncodingTestCase)junit.
framework.AssertionFailedError: Output 2 incorrect.
     [java]     at
org.apache.velocity.test.EncodingTestCase.runTest(EncodingTes
tCase.java:170)
     [java]
     [java] FAILURES!!!
     [java] Tests run: 1,  Failures: 1,  Errors: 0
     [java]

In meanwhile, I'm thinking of making a test case specifically for this
functionality.

Attila.

diff-introspection.zip

Reply via email to