Fix classloading integration tests
This commit is contained in:
parent
35c6fa2343
commit
260e3520aa
|
|
@ -56,6 +56,7 @@ class ClassLoadingTest extends Specification {
|
||||||
@Override
|
@Override
|
||||||
URL getResource(String name) {
|
URL getResource(String name) {
|
||||||
count++
|
count++
|
||||||
|
return super.getResource(name)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -65,10 +66,12 @@ class ClassLoadingTest extends Specification {
|
||||||
|
|
||||||
when:
|
when:
|
||||||
loader.loadClass(ClassToInstrument.getName())
|
loader.loadClass(ClassToInstrument.getName())
|
||||||
|
int countAfterFirstLoad = loader.count
|
||||||
loader.loadClass(ClassToInstrumentChild.getName())
|
loader.loadClass(ClassToInstrumentChild.getName())
|
||||||
|
|
||||||
then:
|
then:
|
||||||
loader.count == 2
|
// ClassToInstrumentChild won't cause an additional getResource() because its TypeDescription is created from transformation bytes.
|
||||||
|
loader.count == countAfterFirstLoad
|
||||||
}
|
}
|
||||||
|
|
||||||
def "make sure that ByteBuddy doesn't resue cached type descriptions between different classloaders"() {
|
def "make sure that ByteBuddy doesn't resue cached type descriptions between different classloaders"() {
|
||||||
|
|
@ -81,8 +84,9 @@ class ClassLoadingTest extends Specification {
|
||||||
loader2.loadClass(ClassToInstrument.getName())
|
loader2.loadClass(ClassToInstrument.getName())
|
||||||
|
|
||||||
then:
|
then:
|
||||||
loader1.count == 1
|
loader1.count > 0
|
||||||
loader2.count == 1
|
loader2.count > 0
|
||||||
|
loader1.count == loader2.count
|
||||||
}
|
}
|
||||||
|
|
||||||
def "can find bootstrap resources"() {
|
def "can find bootstrap resources"() {
|
||||||
|
|
|
||||||
|
|
@ -20,8 +20,6 @@ public class DDCachingPoolStrategy implements PoolStrategy {
|
||||||
synchronized (key) {
|
synchronized (key) {
|
||||||
cache = typePoolCache.get(key);
|
cache = typePoolCache.get(key);
|
||||||
if (null == cache) {
|
if (null == cache) {
|
||||||
// new TypePool.Default.WithLazyResolution(TypePool.CacheProvider.Simple.withObjectType(),
|
|
||||||
// classFileLocator, TypePool.Default.ReaderMode.FAST);
|
|
||||||
cache = TypePool.CacheProvider.Simple.withObjectType();
|
cache = TypePool.CacheProvider.Simple.withObjectType();
|
||||||
typePoolCache.put(key, cache);
|
typePoolCache.put(key, cache);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue