From f4dda4c827010eee4d1d5671cf0e59d45a832de5 Mon Sep 17 00:00:00 2001 From: majkelBB <39589892+majkelBB@users.noreply.github.com> Date: Fri, 8 Nov 2019 15:45:08 +0100 Subject: [PATCH] Update AntClassLoader.java Shouldn't usage of pathComponents be threadsafe here and in other places where code iterates over pathComponents? --- src/main/org/apache/tools/ant/AntClassLoader.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/org/apache/tools/ant/AntClassLoader.java b/src/main/org/apache/tools/ant/AntClassLoader.java index 7d18f1ca8b..923b1e0472 100644 --- a/src/main/org/apache/tools/ant/AntClassLoader.java +++ b/src/main/org/apache/tools/ant/AntClassLoader.java @@ -1365,7 +1365,9 @@ private Class findClassInComponents(final String name) // we need to search the components of the path to see if // we can find the class we want. final String classFilename = getClassFilename(name); - for (final File pathComponent : pathComponents) { + + synchronized(pathComponents) { + for (final File pathComponent : pathComponents) { try (InputStream stream = getResourceStream(pathComponent, classFilename)) { if (stream != null) { log("Loaded from " + pathComponent + " " @@ -1380,6 +1382,8 @@ private Class findClassInComponents(final String name) + ioe.getMessage() + ")", Project.MSG_VERBOSE); } } + } + throw new ClassNotFoundException(name); }