Skip to content

Commit 2420785

Browse files
committed
Adapt to JDK-8277072
1 parent 8759418 commit 2420785

File tree

1 file changed

+10
-7
lines changed

1 file changed

+10
-7
lines changed

src/main/java/org/jenkinsci/plugins/workflow/cps/CpsFlowExecution.java

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1445,13 +1445,16 @@ private static void cleanUpObjectStreamClassCaches(@NonNull Class<?> clazz) thro
14451445
for (String cacheFName : new String[] {"localDescs", "reflectors"}) {
14461446
Field cacheF = cachesC.getDeclaredField(cacheFName);
14471447
cacheF.setAccessible(true);
1448-
ConcurrentMap<Reference<Class<?>>, ?> cache = (ConcurrentMap) cacheF.get(null);
1449-
Iterator<? extends Entry<Reference<Class<?>>, ?>> iterator = cache.entrySet().iterator();
1450-
while (iterator.hasNext()) {
1451-
if (iterator.next().getKey().get() == clazz) {
1452-
iterator.remove();
1453-
LOGGER.log(Level.FINER, "cleaning up {0} from ObjectStreamClass.Caches.{1}", new Object[] {clazz.getName(), cacheFName});
1454-
break;
1448+
Object cache = cacheF.get(null);
1449+
if (cache instanceof ConcurrentMap) {
1450+
// Prior to JDK-8277072
1451+
Iterator<? extends Entry<Reference<Class<?>>, ?>> iterator = ((ConcurrentMap) cache).entrySet().iterator();
1452+
while (iterator.hasNext()) {
1453+
if (iterator.next().getKey().get() == clazz) {
1454+
iterator.remove();
1455+
LOGGER.log(Level.FINER, "cleaning up {0} from ObjectStreamClass.Caches.{1}", new Object[]{clazz.getName(), cacheFName});
1456+
break;
1457+
}
14551458
}
14561459
}
14571460
}

0 commit comments

Comments
 (0)