diff --git a/WHATSNEW b/WHATSNEW index c9b4b84b2..b00a06d48 100644 --- a/WHATSNEW +++ b/WHATSNEW @@ -16,6 +16,8 @@ Fixed bugs: * Fix jboss element of ejb task (introduced in ant 1.6.0). +* failed to load classes correctly. + Other changes: -------------- * Translate task logs a debug message specifying the number of files diff --git a/src/etc/testcases/taskdefs/whichresource.xml b/src/etc/testcases/taskdefs/whichresource.xml index eed770b88..b2094bdcb 100644 --- a/src/etc/testcases/taskdefs/whichresource.xml +++ b/src/etc/testcases/taskdefs/whichresource.xml @@ -12,4 +12,9 @@ + + + + \ No newline at end of file diff --git a/src/main/org/apache/tools/ant/taskdefs/WhichResource.java b/src/main/org/apache/tools/ant/taskdefs/WhichResource.java index e8a2fc2b3..aa2714d50 100644 --- a/src/main/org/apache/tools/ant/taskdefs/WhichResource.java +++ b/src/main/org/apache/tools/ant/taskdefs/WhichResource.java @@ -1,7 +1,7 @@ /* * The Apache Software License, Version 1.1 * - * Copyright (c) 2000-2003 The Apache Software Foundation. All rights + * Copyright (c) 2003-2004 The Apache Software Foundation. All rights * reserved. * * Redistribution and use in source and binary forms, with or without @@ -168,13 +168,17 @@ public class WhichResource extends Task { String location = null; if (classname != null) { //convert a class name into a resource - classname = classname.replace('.', '/'); - resource = "/" + classname + ".class"; - } else { - if (!resource.startsWith("/")) { - resource = "/" + resource; - } + resource = classname.replace('.', '/') + ".class"; + } + + if (resource == null) { + throw new BuildException("One of class or resource is required"); } + + if (resource.startsWith("/")) { + resource = resource.substring(1); + } + log("Searching for " + resource, Project.MSG_VERBOSE); URL url; url = loader.getResource(resource); diff --git a/src/testcases/org/apache/tools/ant/taskdefs/WhichResourceTest.java b/src/testcases/org/apache/tools/ant/taskdefs/WhichResourceTest.java index fbd635251..d2faa454a 100644 --- a/src/testcases/org/apache/tools/ant/taskdefs/WhichResourceTest.java +++ b/src/testcases/org/apache/tools/ant/taskdefs/WhichResourceTest.java @@ -77,4 +77,9 @@ public class WhichResourceTest extends BuildFileTest { executeTarget("testResourcename"); assertNotNull(getProject().getProperty("defaults")); } + + public void testResourcenameWithLeadingSlash() { + executeTarget("testResourcenameWithLeadingSlash"); + assertNotNull(getProject().getProperty("defaults")); + } }