git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@786504 13f79535-47bb-0310-9956-ffa450edef68master
| @@ -135,6 +135,12 @@ Changes that could break older environments: | |||||
| behavior you will now need to explicitly specify the trailing *. | behavior you will now need to explicitly specify the trailing *. | ||||
| Bugzilla Report 46506. | Bugzilla Report 46506. | ||||
| * <copy> silently ignored missing resources even with | |||||
| failOnError="true". If your build tries to copy non-existant | |||||
| resources and you relied on this behavior you must now explicitly | |||||
| set failOnError to false. | |||||
| Bugzilla Report 47362. | |||||
| Fixed bugs: | Fixed bugs: | ||||
| ----------- | ----------- | ||||
| @@ -721,7 +727,7 @@ Other changes: | |||||
| * CBZip2OutputStream now has a finish method separate from close. | * CBZip2OutputStream now has a finish method separate from close. | ||||
| Bugzilla Report 42713. | Bugzilla Report 42713. | ||||
| * the <zip> and <unzip> family of tasks has new option to deal with | |||||
| * the <zip> and <unzip> family of tasks has new options to deal with | |||||
| file name and comment encoding. Please see the zip tasks' | file name and comment encoding. Please see the zip tasks' | ||||
| documentation for details. | documentation for details. | ||||
| @@ -464,6 +464,13 @@ public class Copy extends Task { | |||||
| while (resources.hasNext()) { | while (resources.hasNext()) { | ||||
| Resource r = (Resource) resources.next(); | Resource r = (Resource) resources.next(); | ||||
| if (!r.isExists()) { | if (!r.isExists()) { | ||||
| String message = "Warning: Could not find resource " | |||||
| + r.toLongString() + " to copy."; | |||||
| if (!failonerror) { | |||||
| log(message, Project.MSG_ERR); | |||||
| } else { | |||||
| throw new BuildException(message); | |||||
| } | |||||
| continue; | continue; | ||||
| } | } | ||||
| @@ -36,6 +36,8 @@ import org.apache.tools.ant.types.FileSet; | |||||
| import org.apache.tools.ant.types.PatternSet; | import org.apache.tools.ant.types.PatternSet; | ||||
| import org.apache.tools.ant.types.Resource; | import org.apache.tools.ant.types.Resource; | ||||
| import org.apache.tools.ant.types.ResourceCollection; | import org.apache.tools.ant.types.ResourceCollection; | ||||
| import org.apache.tools.ant.types.resources.Restrict; | |||||
| import org.apache.tools.ant.types.resources.selectors.Exists; | |||||
| import org.apache.tools.ant.types.selectors.FileSelector; | import org.apache.tools.ant.types.selectors.FileSelector; | ||||
| import org.apache.tools.ant.types.selectors.NoneSelector; | import org.apache.tools.ant.types.selectors.NoneSelector; | ||||
| @@ -62,6 +64,8 @@ public class Sync extends Task { | |||||
| // Similar to a fileset, but doesn't allow dir attribute to be set | // Similar to a fileset, but doesn't allow dir attribute to be set | ||||
| private SyncTarget syncTarget; | private SyncTarget syncTarget; | ||||
| private Restrict resources = null; | |||||
| // Override Task#init | // Override Task#init | ||||
| /** | /** | ||||
| * Initialize the sync task. | * Initialize the sync task. | ||||
| @@ -390,7 +394,17 @@ public class Sync extends Task { | |||||
| * @since Ant 1.7 | * @since Ant 1.7 | ||||
| */ | */ | ||||
| public void add(ResourceCollection rc) { | public void add(ResourceCollection rc) { | ||||
| myCopy.add(rc); | |||||
| if (rc instanceof FileSet && rc.isFilesystemOnly()) { | |||||
| // receives special treatment in copy that this task relies on | |||||
| myCopy.add(rc); | |||||
| } else { | |||||
| if (resources == null) { | |||||
| resources = new Restrict(); | |||||
| resources.add(new Exists()); | |||||
| myCopy.add(resources); | |||||
| } | |||||
| resources.add(rc); | |||||
| } | |||||
| } | } | ||||
| /** | /** | ||||
| @@ -138,4 +138,16 @@ public class NullByteStreamResource extends Resource { | |||||
| </copy> | </copy> | ||||
| <au:assertFileExists file="${output}/final/foo"/> | <au:assertFileExists file="${output}/final/foo"/> | ||||
| </target> | </target> | ||||
| <target name="testFailOnURLConnectionError" | |||||
| description="https://issues.apache.org/bugzilla/show_bug.cgi?id=47362"> | |||||
| <mkdir dir="${output}"/> | |||||
| <au:expectfailure> | |||||
| <copy todir="${output}" failonerror="true" flatten="true"> | |||||
| <resources> | |||||
| <url url="http://i-do-not-exist/"/> | |||||
| </resources> | |||||
| </copy> | |||||
| </au:expectfailure> | |||||
| </target> | |||||
| </project> | </project> | ||||