MultiParentClassLoaderTest.groovy

Clone Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Fix equals/hashcode of mutable classloaders

When a parent was added to a MultiParentClassLoader, its hashcode

would change, meaning that it could no longer be found in any Sets

or Maps we put it in. This lead to severe memory leaks when used in

conjunction with configure-on-demand, where adding parents late is common.

These classloaders now use an identity hashcode and equals implementation.

    • -6
    • +21
    ./MultiParentClassLoaderTest.groovy
  1. … 1 more file in changeset.
Bump cglib in `buildSrc` too

  1. … 2 more files in changeset.
classloader caching - hashCode/equals for some CL impls

Added hashCode/equals implementation for CachingClassLoader and MultiParentClassLoader. This way caching of the classloaders works correctly. Without this, there are lots of cache misses due to parent classloader not matching.

+review REVIEW-5219

    • -0
    • +11
    ./MultiParentClassLoaderTest.groovy
  1. … 4 more files in changeset.
Added a ClassLoaderSpec that describes a ClassLoader structure in a way that allows the structure to be recreated in another process (e.g. in the tooling api provider in the client process).

    • -109
    • +78
    ./MultiParentClassLoaderTest.groovy
  1. … 12 more files in changeset.
Moved some classes from core to baseServices.

    • -0
    • +154
    ./MultiParentClassLoaderTest.groovy
  1. … 31 more files in changeset.