File tree Expand file tree Collapse file tree 1 file changed +8
-9
lines changed
src/main/java/com/microsoft/azure/functions/worker/reflect Expand file tree Collapse file tree 1 file changed +8
-9
lines changed Original file line number Diff line number Diff line change @@ -19,21 +19,19 @@ public EnhancedClassLoaderProvider() {
1919 */
2020 @ Override
2121 public ClassLoader createClassLoader () {
22- URL [] urlsForClassLoader = new URL [urls .size ()];
23- urls .toArray (urlsForClassLoader );
24-
25- URLClassLoader classLoader = getURLClassLoaderInstance (urlsForClassLoader );
26- return classLoader ;
22+ return getURLClassLoaderInstance ();
2723 }
2824
2925 /**
30- * @param urlsForClassLoader Array of URLs to construct a new URLClassLoader
31- * @return single instance of URLClassLoader
26+ * Create and return a singleton URL classloader
27+ * @return instance of URLClassLoader
3228 */
33- private URLClassLoader getURLClassLoaderInstance (URL [] urlsForClassLoader ) {
29+ private URLClassLoader getURLClassLoaderInstance () {
3430 if (classLoaderInstance == null ) {
35- synchronized (URLClassLoader . class ) {
31+ synchronized (lock ) {
3632 if (classLoaderInstance == null ) {
33+ URL [] urlsForClassLoader = new URL [urls .size ()];
34+ urls .toArray (urlsForClassLoader );
3735 classLoaderInstance = new URLClassLoader (urlsForClassLoader );
3836 loadDrivers (classLoaderInstance );
3937 }
@@ -88,5 +86,6 @@ public void addUrl(URL url) throws IOException {
8886 urls .add (url );
8987 }
9088 private final Set <URL > urls ;
89+ private final Object lock = new Object ();
9190 private static volatile URLClassLoader classLoaderInstance ;
9291}
You can’t perform that action at this time.
0 commit comments