Always provide a core loader to which the classloader task can add. https://issues.apache.org/bugzilla/show_bug.cgi?id=47003 Patch licensed to the Apache Software Foundation. 2009-04-09 Martin von Gagern Index: src/main/org/apache/tools/ant/Main.java =================================================================== --- src/main/org/apache/tools/ant/Main.java (revision 763549) +++ src/main/org/apache/tools/ant/Main.java (working copy) @@ -690,6 +690,8 @@ } final Project project = new Project(); + if (coreLoader == null || coreLoader instanceof AntClassLoader == false) + coreLoader = new AntClassLoader(coreLoader, project, null, true); project.setCoreLoader(coreLoader); Throwable error = null; Index: src/main/org/apache/tools/ant/taskdefs/Classloader.java =================================================================== --- src/main/org/apache/tools/ant/taskdefs/Classloader.java (revision 763549) +++ src/main/org/apache/tools/ant/taskdefs/Classloader.java (working copy) @@ -169,9 +169,18 @@ return; } - String loaderName = (name == null) ? SYSTEM_LOADER_REF : name; + String loaderName; + Object obj; + if (name == null || SYSTEM_LOADER_REF.equals(name)) { + name = null; + loaderName = SYSTEM_LOADER_REF; + obj = getProject().getCoreLoader(); + } + else { + loaderName = name; + obj = getProject().getReference(loaderName); + } - Object obj = getProject().getReference(loaderName); if (reset) { // Are any other references held ? Can we 'close' the loader // so it removes the locks on jars ?