Return-Path: Delivered-To: apmail-ant-notifications-archive@minotaur.apache.org Received: (qmail 27610 invoked from network); 3 May 2010 17:46:03 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 3 May 2010 17:46:03 -0000 Received: (qmail 73277 invoked by uid 500); 3 May 2010 17:46:03 -0000 Delivered-To: apmail-ant-notifications-archive@ant.apache.org Received: (qmail 73205 invoked by uid 500); 3 May 2010 17:46:03 -0000 Mailing-List: contact notifications-help@ant.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@ant.apache.org Delivered-To: mailing list notifications@ant.apache.org Received: (qmail 73198 invoked by uid 99); 3 May 2010 17:46:03 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 03 May 2010 17:46:03 +0000 X-ASF-Spam-Status: No, hits=-1001.3 required=10.0 tests=ALL_TRUSTED,AWL,WEIRD_QUOTING X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 03 May 2010 17:45:57 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 9838D2388AB9; Mon, 3 May 2010 17:44:32 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r940531 [6/7] - in /ant/core/branches/run-single-test-method: ./ docs/ docs/antlibs/ docs/manual/ docs/manual/CoreTasks/ docs/manual/CoreTypes/ docs/manual/OptionalTasks/ docs/webtest/gettest/ lib/ src/etc/ src/etc/poms/ src/etc/poms/ant-an... Date: Mon, 03 May 2010 17:44:28 -0000 To: notifications@ant.apache.org From: jglick@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20100503174432.9838D2388AB9@eris.apache.org> Modified: ant/core/branches/run-single-test-method/src/main/org/apache/tools/tar/TarEntry.java URL: http://svn.apache.org/viewvc/ant/core/branches/run-single-test-method/src/main/org/apache/tools/tar/TarEntry.java?rev=940531&r1=940530&r2=940531&view=diff ============================================================================== --- ant/core/branches/run-single-test-method/src/main/org/apache/tools/tar/TarEntry.java (original) +++ ant/core/branches/run-single-test-method/src/main/org/apache/tools/tar/TarEntry.java Mon May 3 17:44:21 2010 @@ -625,7 +625,7 @@ public class TarEntry implements TarCons */ private static String normalizeFileName(String fileName, boolean preserveLeadingSlashes) { - String osname = System.getProperty("os.name").toLowerCase(Locale.US); + String osname = System.getProperty("os.name").toLowerCase(Locale.ENGLISH); if (osname != null) { Propchange: ant/core/branches/run-single-test-method/src/main/org/apache/tools/tar/TarEntry.java ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Mon May 3 17:44:21 2010 @@ -1 +1,2 @@ +/ant/core/tags/ANT_181/src/main/org/apache/tools/tar/TarEntry.java:939905-940517 /commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/tar/TarArchiveEntry.java:755227,755472 Propchange: ant/core/branches/run-single-test-method/src/main/org/apache/tools/zip/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Mon May 3 17:44:21 2010 @@ -1 +1,2 @@ +/ant/core/tags/ANT_181/src/main/org/apache/tools/zip:939905-940517 /commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip:746933,748133,749524,749855,749859 Propchange: ant/core/branches/run-single-test-method/src/main/org/apache/tools/zip/AbstractUnicodeExtraField.java ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Mon May 3 17:44:21 2010 @@ -1,2 +1,3 @@ -/ant/core/trunk/src/main/org/apache/tools/zip/AbstractUnicodeExtraField.java:738844,739300,741089 +/ant/core/tags/ANT_181/src/main/org/apache/tools/zip/AbstractUnicodeExtraField.java:939905-940517 +/ant/core/trunk/src/main/org/apache/tools/zip/AbstractUnicodeExtraField.java:738844,739300,741089,905481-939904 /commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/AbstractUnicodeExtraField.java:746933,748063,748133,748288,749342,749524,749855,749859 Modified: ant/core/branches/run-single-test-method/src/main/org/apache/tools/zip/ExtraFieldUtils.java URL: http://svn.apache.org/viewvc/ant/core/branches/run-single-test-method/src/main/org/apache/tools/zip/ExtraFieldUtils.java?rev=940531&r1=940530&r2=940531&view=diff ============================================================================== --- ant/core/branches/run-single-test-method/src/main/org/apache/tools/zip/ExtraFieldUtils.java (original) +++ ant/core/branches/run-single-test-method/src/main/org/apache/tools/zip/ExtraFieldUtils.java Mon May 3 17:44:21 2010 @@ -92,18 +92,19 @@ public class ExtraFieldUtils { /** * Split the array into ExtraFields and populate them with the - * given data as local file data. + * given data as local file data, throwing an exception if the + * data cannot be parsed. * @param data an array of bytes as it appears in local file data * @return an array of ExtraFields * @throws ZipException on error */ public static ZipExtraField[] parse(byte[] data) throws ZipException { - return parse(data, true); + return parse(data, true, UnparseableExtraField.THROW); } /** * Split the array into ExtraFields and populate them with the - * given data. + * given data, throwing an exception if the data cannot be parsed. * @param data an array of bytes * @param local whether data originates from the local file data * or the central directory @@ -113,14 +114,60 @@ public class ExtraFieldUtils { */ public static ZipExtraField[] parse(byte[] data, boolean local) throws ZipException { + return parse(data, local, UnparseableExtraField.THROW); + } + + /** + * Split the array into ExtraFields and populate them with the + * given data. + * @param data an array of bytes + * @param local whether data originates from the local file data + * or the central directory + * @param onUnparseableData what to do if the extra field data + * cannot be parsed. + * @return an array of ExtraFields + * @throws ZipException on error + * @since Ant 1.8.1 + */ + public static ZipExtraField[] parse(byte[] data, boolean local, + UnparseableExtraField onUnparseableData) + throws ZipException { List v = new ArrayList(); int start = 0; + LOOP: while (start <= data.length - WORD) { ZipShort headerId = new ZipShort(data, start); int length = (new ZipShort(data, start + 2)).getValue(); if (start + WORD + length > data.length) { - throw new ZipException("data starting at " + start - + " is in unknown format"); + switch(onUnparseableData.getKey()) { + case UnparseableExtraField.THROW_KEY: + throw new ZipException("bad extra field starting at " + + start + ". Block length of " + + length + " bytes exceeds remaining" + + " data of " + + (data.length - start - WORD) + + " bytes."); + case UnparseableExtraField.READ_KEY: + UnparseableExtraFieldData field = + new UnparseableExtraFieldData(); + if (local) { + field.parseFromLocalFileData(data, start, + data.length - start); + } else { + field.parseFromCentralDirectoryData(data, start, + data.length - start); + } + v.add(field); + /*FALLTHROUGH*/ + case UnparseableExtraField.SKIP_KEY: + // since we cannot parse the data we must assume + // the extra field consumes the whole rest of the + // available data + break LOOP; + default: + throw new ZipException("unknown UnparseableExtraField key: " + + onUnparseableData.getKey()); + } } try { ZipExtraField ze = createExtraField(headerId); @@ -152,13 +199,19 @@ public class ExtraFieldUtils { * @since 1.1 */ public static byte[] mergeLocalFileDataData(ZipExtraField[] data) { - int sum = WORD * data.length; + final boolean lastIsUnparseableHolder = data.length > 0 + && data[data.length - 1] instanceof UnparseableExtraFieldData; + int regularExtraFieldCount = + lastIsUnparseableHolder ? data.length - 1 : data.length; + + int sum = WORD * regularExtraFieldCount; for (int i = 0; i < data.length; i++) { sum += data[i].getLocalFileDataLength().getValue(); } + byte[] result = new byte[sum]; int start = 0; - for (int i = 0; i < data.length; i++) { + for (int i = 0; i < regularExtraFieldCount; i++) { System.arraycopy(data[i].getHeaderId().getBytes(), 0, result, start, 2); System.arraycopy(data[i].getLocalFileDataLength().getBytes(), @@ -167,6 +220,10 @@ public class ExtraFieldUtils { System.arraycopy(local, 0, result, start + WORD, local.length); start += (local.length + WORD); } + if (lastIsUnparseableHolder) { + byte[] local = data[data.length - 1].getLocalFileDataData(); + System.arraycopy(local, 0, result, start, local.length); + } return result; } @@ -177,13 +234,18 @@ public class ExtraFieldUtils { * @since 1.1 */ public static byte[] mergeCentralDirectoryData(ZipExtraField[] data) { - int sum = WORD * data.length; + final boolean lastIsUnparseableHolder = data.length > 0 + && data[data.length - 1] instanceof UnparseableExtraFieldData; + int regularExtraFieldCount = + lastIsUnparseableHolder ? data.length - 1 : data.length; + + int sum = WORD * regularExtraFieldCount; for (int i = 0; i < data.length; i++) { sum += data[i].getCentralDirectoryLength().getValue(); } byte[] result = new byte[sum]; int start = 0; - for (int i = 0; i < data.length; i++) { + for (int i = 0; i < regularExtraFieldCount; i++) { System.arraycopy(data[i].getHeaderId().getBytes(), 0, result, start, 2); System.arraycopy(data[i].getCentralDirectoryLength().getBytes(), @@ -192,6 +254,60 @@ public class ExtraFieldUtils { System.arraycopy(local, 0, result, start + WORD, local.length); start += (local.length + WORD); } + if (lastIsUnparseableHolder) { + byte[] local = data[data.length - 1].getCentralDirectoryData(); + System.arraycopy(local, 0, result, start, local.length); + } return result; } + + /** + * "enum" for the possible actions to take if the extra field + * cannot be parsed. + */ + public static final class UnparseableExtraField { + /** + * Key for "throw an exception" action. + */ + public static final int THROW_KEY = 0; + /** + * Key for "skip" action. + */ + public static final int SKIP_KEY = 1; + /** + * Key for "read" action. + */ + public static final int READ_KEY = 2; + + /** + * Throw an exception if field cannot be parsed. + */ + public static final UnparseableExtraField THROW + = new UnparseableExtraField(THROW_KEY); + + /** + * Skip the extra field entirely and don't make its data + * available - effectively removing the extra field data. + */ + public static final UnparseableExtraField SKIP + = new UnparseableExtraField(SKIP_KEY); + + /** + * Read the extra field data into an instance of {@link + * UnparseableExtraFieldData UnparseableExtraFieldData}. + */ + public static final UnparseableExtraField READ + = new UnparseableExtraField(READ_KEY); + + private final int key; + + private UnparseableExtraField(int k) { + key = k; + } + + /** + * Key of the action to take. + */ + public int getKey() { return key; } + } } Propchange: ant/core/branches/run-single-test-method/src/main/org/apache/tools/zip/ExtraFieldUtils.java ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Mon May 3 17:44:21 2010 @@ -1 +1,3 @@ +/ant/core/tags/ANT_181/src/main/org/apache/tools/zip/ExtraFieldUtils.java:939905-940517 +/commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ExtraFieldUtils.java:910483-910521 /commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ExtraFieldUtils.java:745528,746933,748133,749524,749603,749855,749859 Propchange: ant/core/branches/run-single-test-method/src/main/org/apache/tools/zip/FallbackZipEncoding.java ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Mon May 3 17:44:21 2010 @@ -1,2 +1,3 @@ -/ant/core/trunk/src/main/org/apache/tools/zip/FallbackZipEncoding.java:738844,739300,741089 +/ant/core/tags/ANT_181/src/main/org/apache/tools/zip/FallbackZipEncoding.java:939905-940517 +/ant/core/trunk/src/main/org/apache/tools/zip/FallbackZipEncoding.java:738844,739300,741089,905481-939904 /commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/FallbackZipEncoding.java:749524,749855,749859 Propchange: ant/core/branches/run-single-test-method/src/main/org/apache/tools/zip/NioZipEncoding.java ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Mon May 3 17:44:21 2010 @@ -1,2 +1,3 @@ -/ant/core/trunk/src/main/org/apache/tools/zip/NioZipEncoding.java:738844,739300,741089 +/ant/core/tags/ANT_181/src/main/org/apache/tools/zip/NioZipEncoding.java:939905-940517 +/ant/core/trunk/src/main/org/apache/tools/zip/NioZipEncoding.java:738844,739300,741089,905481-939904 /commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/NioZipEncoding.java:749524,749855,749859 Propchange: ant/core/branches/run-single-test-method/src/main/org/apache/tools/zip/Simple8BitZipEncoding.java ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Mon May 3 17:44:21 2010 @@ -1 +1,2 @@ +/ant/core/tags/ANT_181/src/main/org/apache/tools/zip/Simple8BitZipEncoding.java:939905-940517 /commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/Simple8BitZipEncoding.java:749524,749855,749859 Propchange: ant/core/branches/run-single-test-method/src/main/org/apache/tools/zip/UnicodeCommentExtraField.java ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Mon May 3 17:44:21 2010 @@ -1,2 +1,3 @@ -/ant/core/trunk/src/main/org/apache/tools/zip/UnicodeCommentExtraField.java:738844,739300,741089 +/ant/core/tags/ANT_181/src/main/org/apache/tools/zip/UnicodeCommentExtraField.java:939905-940517 +/ant/core/trunk/src/main/org/apache/tools/zip/UnicodeCommentExtraField.java:738844,739300,741089,905481-939904 /commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/UnicodeCommentExtraField.java:746933,748063,748133,749342,749524,749855,749859 Propchange: ant/core/branches/run-single-test-method/src/main/org/apache/tools/zip/UnicodePathExtraField.java ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Mon May 3 17:44:21 2010 @@ -1,2 +1,3 @@ -/ant/core/trunk/src/main/org/apache/tools/zip/UnicodePathExtraField.java:738844,739300,741089 +/ant/core/tags/ANT_181/src/main/org/apache/tools/zip/UnicodePathExtraField.java:939905-940517 +/ant/core/trunk/src/main/org/apache/tools/zip/UnicodePathExtraField.java:738844,739300,741089,905481-939904 /commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/UnicodePathExtraField.java:746933,748063,748133,749342,749524,749855,749859 Propchange: ant/core/branches/run-single-test-method/src/main/org/apache/tools/zip/UnparseableExtraFieldData.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ant/core/branches/run-single-test-method/src/main/org/apache/tools/zip/UnparseableExtraFieldData.java ------------------------------------------------------------------------------ --- svn:mergeinfo (added) +++ svn:mergeinfo Mon May 3 17:44:21 2010 @@ -0,0 +1 @@ +/ant/core/tags/ANT_181/src/main/org/apache/tools/zip/UnparseableExtraFieldData.java:939905-940517 Modified: ant/core/branches/run-single-test-method/src/main/org/apache/tools/zip/UnrecognizedExtraField.java URL: http://svn.apache.org/viewvc/ant/core/branches/run-single-test-method/src/main/org/apache/tools/zip/UnrecognizedExtraField.java?rev=940531&r1=940530&r2=940531&view=diff ============================================================================== --- ant/core/branches/run-single-test-method/src/main/org/apache/tools/zip/UnrecognizedExtraField.java (original) +++ ant/core/branches/run-single-test-method/src/main/org/apache/tools/zip/UnrecognizedExtraField.java Mon May 3 17:44:21 2010 @@ -66,7 +66,7 @@ public class UnrecognizedExtraField * @param data the field data to use */ public void setLocalFileDataData(byte[] data) { - localData = copy(data); + localData = ZipUtil.copy(data); } /** @@ -82,7 +82,7 @@ public class UnrecognizedExtraField * @return the local data */ public byte[] getLocalFileDataData() { - return copy(localData); + return ZipUtil.copy(localData); } /** @@ -98,7 +98,7 @@ public class UnrecognizedExtraField * @param data the data to use */ public void setCentralDirectoryData(byte[] data) { - centralData = copy(data); + centralData = ZipUtil.copy(data); } /** @@ -119,7 +119,7 @@ public class UnrecognizedExtraField */ public byte[] getCentralDirectoryData() { if (centralData != null) { - return copy(centralData); + return ZipUtil.copy(centralData); } return getLocalFileDataData(); } @@ -140,7 +140,6 @@ public class UnrecognizedExtraField * @param data the array of bytes. * @param offset the source location in the data array. * @param length the number of bytes to use in the data array. - * @see ZipExtraField#parseFromCentralDirectoryData(byte[], int, int) */ public void parseFromCentralDirectoryData(byte[] data, int offset, int length) { @@ -152,12 +151,4 @@ public class UnrecognizedExtraField } } - private static byte[] copy(byte[] from) { - if (from != null) { - byte[] to = new byte[from.length]; - System.arraycopy(from, 0, to, 0, to.length); - return to; - } - return null; - } } Propchange: ant/core/branches/run-single-test-method/src/main/org/apache/tools/zip/UnrecognizedExtraField.java ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Mon May 3 17:44:21 2010 @@ -1 +1,3 @@ +/ant/core/tags/ANT_181/src/main/org/apache/tools/zip/UnrecognizedExtraField.java:939905-940517 +/commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/UnrecognizedExtraField.java:910483-910521 /commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/UnrecognizedExtraField.java:746933,748133,749603,749855,749859 Propchange: ant/core/branches/run-single-test-method/src/main/org/apache/tools/zip/ZipEncoding.java ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Mon May 3 17:44:21 2010 @@ -1,2 +1,3 @@ -/ant/core/trunk/src/main/org/apache/tools/zip/ZipEncoding.java:738844,739300,741089 +/ant/core/tags/ANT_181/src/main/org/apache/tools/zip/ZipEncoding.java:939905-940517 +/ant/core/trunk/src/main/org/apache/tools/zip/ZipEncoding.java:738844,739300,741089,905481-939904 /commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ZipEncoding.java:749524,749855,749859 Modified: ant/core/branches/run-single-test-method/src/main/org/apache/tools/zip/ZipEncodingHelper.java URL: http://svn.apache.org/viewvc/ant/core/branches/run-single-test-method/src/main/org/apache/tools/zip/ZipEncodingHelper.java?rev=940531&r1=940530&r2=940531&view=diff ============================================================================== --- ant/core/branches/run-single-test-method/src/main/org/apache/tools/zip/ZipEncodingHelper.java (original) +++ ant/core/branches/run-single-test-method/src/main/org/apache/tools/zip/ZipEncodingHelper.java Mon May 3 17:44:21 2010 @@ -22,6 +22,7 @@ import java.nio.ByteBuffer; import java.nio.charset.Charset; import java.nio.charset.UnsupportedCharsetException; import java.util.HashMap; +import java.util.Locale; import java.util.Map; /** @@ -191,6 +192,11 @@ abstract class ZipEncodingHelper { static final String UTF8 = "UTF8"; /** + * variant name of the encoding UTF-8 used for comparisions. + */ + private static final String UTF_DASH_8 = "utf-8"; + + /** * name of the encoding UTF-8 */ static final ZipEncoding UTF8_ZIP_ENCODING = new FallbackZipEncoding(UTF8); @@ -240,6 +246,6 @@ abstract class ZipEncodingHelper { encoding = System.getProperty("file.encoding"); } return UTF8.equalsIgnoreCase(encoding) - || "utf-8".equalsIgnoreCase(encoding); + || UTF_DASH_8.equalsIgnoreCase(encoding); } } Propchange: ant/core/branches/run-single-test-method/src/main/org/apache/tools/zip/ZipEncodingHelper.java ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Mon May 3 17:44:21 2010 @@ -1,2 +1,4 @@ -/ant/core/trunk/src/main/org/apache/tools/zip/ZipEncodingHelper.java:738844,739300,741089 +/ant/core/tags/ANT_181/src/main/org/apache/tools/zip/ZipEncodingHelper.java:939905-940517 +/ant/core/trunk/src/main/org/apache/tools/zip/ZipEncodingHelper.java:738844,739300,741089,905481-939904 +/commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ZipEncodingHelper.java:909456 /commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ZipEncodingHelper.java:746933,747841,748133,749342-749344,749524,749855,749859 Modified: ant/core/branches/run-single-test-method/src/main/org/apache/tools/zip/ZipEntry.java URL: http://svn.apache.org/viewvc/ant/core/branches/run-single-test-method/src/main/org/apache/tools/zip/ZipEntry.java?rev=940531&r1=940530&r2=940531&view=diff ============================================================================== --- ant/core/branches/run-single-test-method/src/main/org/apache/tools/zip/ZipEntry.java (original) +++ ant/core/branches/run-single-test-method/src/main/org/apache/tools/zip/ZipEntry.java Mon May 3 17:44:21 2010 @@ -18,13 +18,32 @@ package org.apache.tools.zip; +import java.util.ArrayList; +import java.util.Arrays; import java.util.LinkedHashMap; +import java.util.List; import java.util.zip.ZipException; /** * Extension that adds better handling of extra fields and provides * access to the internal and external file attributes. * + *

The extra data is expected to follow the recommendation of + * {@link http://www.pkware.com/documents/casestudies/APPNOTE.TXT + * APPNOTE.txt}:

+ *
    + *
  • the extra byte array consists of a sequence of extra fields
  • + *
  • each extra fields starts by a two byte header id followed by + * a two byte sequence holding the length of the remainder of + * data.
  • + *
+ * + *

Any extra data that cannot be parsed by the rules above will be + * consumed as "unparseable" extra data and treated differently by the + * methods of this class. Versions prior to Apache Commons Compress + * 1.1 would have thrown an exception if any attempt was made to read + * or write extra data not conforming to the recommendation.

+ * */ public class ZipEntry extends java.util.zip.ZipEntry implements Cloneable { @@ -37,6 +56,7 @@ public class ZipEntry extends java.util. private int platform = PLATFORM_FAT; private long externalAttributes = 0; private LinkedHashMap/**/ extraFields = null; + private UnparseableExtraFieldData unparseableExtra = null; private String name = null; /** @@ -58,7 +78,9 @@ public class ZipEntry extends java.util. super(entry); byte[] extra = entry.getExtra(); if (extra != null) { - setExtraFields(ExtraFieldUtils.parse(extra)); + setExtraFields(ExtraFieldUtils.parse(extra, true, + ExtraFieldUtils + .UnparseableExtraField.READ)); } else { // initializes extra data to an empty byte array setExtra(); @@ -75,7 +97,7 @@ public class ZipEntry extends java.util. this((java.util.zip.ZipEntry) entry); setInternalAttributes(entry.getInternalAttributes()); setExternalAttributes(entry.getExternalAttributes()); - setExtraFields(entry.getExtraFields()); + setExtraFields(entry.getExtraFields(true)); } /** @@ -93,10 +115,9 @@ public class ZipEntry extends java.util. public Object clone() { ZipEntry e = (ZipEntry) super.clone(); - e.extraFields = extraFields != null ? (LinkedHashMap) extraFields.clone() : null; e.setInternalAttributes(getInternalAttributes()); e.setExternalAttributes(getExternalAttributes()); - e.setExtraFields(getExtraFields()); + e.setExtraFields(getExtraFields(true)); return e; } @@ -194,26 +215,46 @@ public class ZipEntry extends java.util. public void setExtraFields(ZipExtraField[] fields) { extraFields = new LinkedHashMap(); for (int i = 0; i < fields.length; i++) { - extraFields.put(fields[i].getHeaderId(), fields[i]); + if (fields[i] instanceof UnparseableExtraFieldData) { + unparseableExtra = (UnparseableExtraFieldData) fields[i]; + } else { + extraFields.put(fields[i].getHeaderId(), fields[i]); + } } setExtra(); } /** + * Retrieves all extra fields that have been parsed successfully. + * @return an array of the extra fields + */ + public ZipExtraField[] getExtraFields() { + return getExtraFields(false); + } + + /** * Retrieves extra fields. + * @param includeUnparseable whether to also return unparseable + * extra fields as {@link UnparseableExtraFieldData} if such data + * exists. * @return an array of the extra fields * @since 1.1 */ - public ZipExtraField[] getExtraFields() { + public ZipExtraField[] getExtraFields(boolean includeUnparseable) { if (extraFields == null) { - return new ZipExtraField[0]; + return !includeUnparseable || unparseableExtra == null + ? new ZipExtraField[0] + : new ZipExtraField[] { unparseableExtra }; + } + List result = new ArrayList(extraFields.values()); + if (includeUnparseable && unparseableExtra != null) { + result.add(unparseableExtra); } - ZipExtraField[] result = new ZipExtraField[extraFields.size()]; - return (ZipExtraField[]) extraFields.values().toArray(result); + return (ZipExtraField[]) result.toArray(new ZipExtraField[0]); } /** - * Adds an extra fields - replacing an already present extra field + * Adds an extra field - replacing an already present extra field * of the same type. * *

If no extra field of the same type exists, the field will be @@ -222,15 +263,19 @@ public class ZipEntry extends java.util. * @since 1.1 */ public void addExtraField(ZipExtraField ze) { - if (extraFields == null) { - extraFields = new LinkedHashMap(); + if (ze instanceof UnparseableExtraFieldData) { + unparseableExtra = (UnparseableExtraFieldData) ze; + } else { + if (extraFields == null) { + extraFields = new LinkedHashMap(); + } + extraFields.put(ze.getHeaderId(), ze); } - extraFields.put(ze.getHeaderId(), ze); setExtra(); } /** - * Adds an extra fields - replacing an already present extra field + * Adds an extra field - replacing an already present extra field * of the same type. * *

The new extra field will be the first one.

@@ -238,18 +283,22 @@ public class ZipEntry extends java.util. * @since 1.1 */ public void addAsFirstExtraField(ZipExtraField ze) { - LinkedHashMap copy = extraFields; - extraFields = new LinkedHashMap(); - extraFields.put(ze.getHeaderId(), ze); - if (copy != null) { - copy.remove(ze.getHeaderId()); - extraFields.putAll(copy); + if (ze instanceof UnparseableExtraFieldData) { + unparseableExtra = (UnparseableExtraFieldData) ze; + } else { + LinkedHashMap copy = extraFields; + extraFields = new LinkedHashMap(); + extraFields.put(ze.getHeaderId(), ze); + if (copy != null) { + copy.remove(ze.getHeaderId()); + extraFields.putAll(copy); + } } setExtra(); } /** - * Remove an extra fields. + * Remove an extra field. * @param type the type of extra field to remove * @since 1.1 */ @@ -264,6 +313,17 @@ public class ZipEntry extends java.util. } /** + * Removes unparseable extra field data. + */ + public void removeUnparseableExtraFieldData() { + if (unparseableExtra == null) { + throw new java.util.NoSuchElementException(); + } + unparseableExtra = null; + setExtra(); + } + + /** * Looks up an extra field by its header id. * * @return null if no such field exists. @@ -276,7 +336,18 @@ public class ZipEntry extends java.util. } /** - * Throws an Exception if extra data cannot be parsed into extra fields. + * Looks up extra field data that couldn't be parsed correctly. + * + * @return null if no such field exists. + */ + public UnparseableExtraFieldData getUnparseableExtraFieldData() { + return unparseableExtra; + } + + /** + * Parses the given bytes as extra field data and consumes any + * unparseable data as an {@link UnparseableExtraFieldData} + * instance. * @param extra an array of bytes to be parsed into extra fields * @throws RuntimeException if the bytes cannot be parsed * @since 1.1 @@ -284,10 +355,14 @@ public class ZipEntry extends java.util. */ public void setExtra(byte[] extra) throws RuntimeException { try { - ZipExtraField[] local = ExtraFieldUtils.parse(extra, true); + ZipExtraField[] local = + ExtraFieldUtils.parse(extra, true, + ExtraFieldUtils.UnparseableExtraField.READ); mergeExtraFields(local, true); } catch (Exception e) { - throw new RuntimeException(e.getMessage(), e); + // actually this is not be possible as of Ant 1.8.1 + throw new RuntimeException("Error parsing extra fields for entry: " + + getName() + " - " + e.getMessage(), e); } } @@ -300,7 +375,7 @@ public class ZipEntry extends java.util. * @since 1.1 */ protected void setExtra() { - super.setExtra(ExtraFieldUtils.mergeLocalFileDataData(getExtraFields())); + super.setExtra(ExtraFieldUtils.mergeLocalFileDataData(getExtraFields(true))); } /** @@ -308,7 +383,9 @@ public class ZipEntry extends java.util. */ public void setCentralDirectoryExtra(byte[] b) { try { - ZipExtraField[] central = ExtraFieldUtils.parse(b, false); + ZipExtraField[] central = + ExtraFieldUtils.parse(b, false, + ExtraFieldUtils.UnparseableExtraField.READ); mergeExtraFields(central, false); } catch (Exception e) { throw new RuntimeException(e.getMessage(), e); @@ -331,7 +408,7 @@ public class ZipEntry extends java.util. * @since 1.1 */ public byte[] getCentralDirectoryExtra() { - return ExtraFieldUtils.mergeCentralDirectoryData(getExtraFields()); + return ExtraFieldUtils.mergeCentralDirectoryData(getExtraFields(true)); } /** @@ -413,7 +490,12 @@ public class ZipEntry extends java.util. setExtraFields(f); } else { for (int i = 0; i < f.length; i++) { - ZipExtraField existing = getExtraField(f[i].getHeaderId()); + ZipExtraField existing; + if (f[i] instanceof UnparseableExtraFieldData) { + existing = unparseableExtra; + } else { + existing = getExtraField(f[i].getHeaderId()); + } if (existing == null) { addExtraField(f[i]); } else { Propchange: ant/core/branches/run-single-test-method/src/main/org/apache/tools/zip/ZipEntry.java ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Mon May 3 17:44:21 2010 @@ -1,2 +1,4 @@ +/ant/core/tags/ANT_181/src/main/org/apache/tools/zip/ZipEntry.java:939905-940517 +/commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveEntry.java:910483-910521 /commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveEntry.java:747850,749603 /commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ZipEntry.java:746933,748133,749524,749855,749859 Modified: ant/core/branches/run-single-test-method/src/main/org/apache/tools/zip/ZipFile.java URL: http://svn.apache.org/viewvc/ant/core/branches/run-single-test-method/src/main/org/apache/tools/zip/ZipFile.java?rev=940531&r1=940530&r2=940531&view=diff ============================================================================== --- ant/core/branches/run-single-test-method/src/main/org/apache/tools/zip/ZipFile.java (original) +++ ant/core/branches/run-single-test-method/src/main/org/apache/tools/zip/ZipFile.java Mon May 3 17:44:21 2010 @@ -182,8 +182,8 @@ public class ZipFile { archive = new RandomAccessFile(f, "r"); boolean success = false; try { - Map entriesWithoutEFS = populateFromCentralDirectory(); - resolveLocalFileHeaderData(entriesWithoutEFS); + Map entriesWithoutUTF8Flag = populateFromCentralDirectory(); + resolveLocalFileHeaderData(entriesWithoutUTF8Flag); success = true; } finally { if (!success) { @@ -308,7 +308,7 @@ public class ZipFile { */ private Map populateFromCentralDirectory() throws IOException { - HashMap noEFS = new HashMap(); + HashMap noUTF8Flag = new HashMap(); positionAtCentralDirectory(); @@ -334,10 +334,10 @@ public class ZipFile { off += SHORT; // skip version info final int generalPurposeFlag = ZipShort.getValue(cfh, off); - final boolean hasEFS = - (generalPurposeFlag & ZipOutputStream.EFS_FLAG) != 0; + final boolean hasUTF8Flag = + (generalPurposeFlag & ZipOutputStream.UFT8_NAMES_FLAG) != 0; final ZipEncoding entryEncoding = - hasEFS ? ZipEncodingHelper.UTF8_ZIP_ENCODING : zipEncoding; + hasUTF8Flag ? ZipEncodingHelper.UTF8_ZIP_ENCODING : zipEncoding; off += SHORT; @@ -400,11 +400,11 @@ public class ZipFile { archive.readFully(signatureBytes); sig = ZipLong.getValue(signatureBytes); - if (!hasEFS && useUnicodeExtraFields) { - noEFS.put(ze, new NameAndComment(fileName, comment)); + if (!hasUTF8Flag && useUnicodeExtraFields) { + noUTF8Flag.put(ze, new NameAndComment(fileName, comment)); } } - return noEFS; + return noUTF8Flag; } private static final int MIN_EOCD_SIZE = @@ -499,7 +499,7 @@ public class ZipFile { *

Also records the offsets for the data to read from the * entries.

*/ - private void resolveLocalFileHeaderData(Map entriesWithoutEFS) + private void resolveLocalFileHeaderData(Map entriesWithoutUTF8Flag) throws IOException { Enumeration e = getEntries(); while (e.hasMoreElements()) { @@ -531,10 +531,10 @@ public class ZipFile { offsetEntry.dataOffset = offset + LFH_OFFSET_FOR_FILENAME_LENGTH + SHORT + SHORT + fileNameLen + extraFieldLen; - if (entriesWithoutEFS.containsKey(ze)) { + if (entriesWithoutUTF8Flag.containsKey(ze)) { setNameAndCommentFromExtraFields(ze, (NameAndComment) - entriesWithoutEFS.get(ze)); + entriesWithoutUTF8Flag.get(ze)); } } } Propchange: ant/core/branches/run-single-test-method/src/main/org/apache/tools/zip/ZipFile.java ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Mon May 3 17:44:21 2010 @@ -1 +1,3 @@ +/ant/core/tags/ANT_181/src/main/org/apache/tools/zip/ZipFile.java:939905-940517 +/commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ZipFile.java:911740 /commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ZipFile.java:745920,746933,748133,748556,749342-749344,749524,749603,749855,749859 Modified: ant/core/branches/run-single-test-method/src/main/org/apache/tools/zip/ZipOutputStream.java URL: http://svn.apache.org/viewvc/ant/core/branches/run-single-test-method/src/main/org/apache/tools/zip/ZipOutputStream.java?rev=940531&r1=940530&r2=940531&view=diff ============================================================================== --- ant/core/branches/run-single-test-method/src/main/org/apache/tools/zip/ZipOutputStream.java (original) +++ ant/core/branches/run-single-test-method/src/main/org/apache/tools/zip/ZipOutputStream.java Mon May 3 17:44:21 2010 @@ -96,11 +96,18 @@ public class ZipOutputStream extends Fil */ static final String DEFAULT_ENCODING = null; - /** + /** + * General purpose flag, which indicates that filenames are + * written in utf-8. + */ + public static final int UFT8_NAMES_FLAG = 1 << 11; + + /** * General purpose flag, which indicates that filenames are * written in utf-8. + * @deprecated use {@link #UFT8_NAMES_FLAG} instead */ - public static final int EFS_FLAG = 1 << 11; + public static final int EFS_FLAG = UFT8_NAMES_FLAG; /** * Current entry. @@ -265,9 +272,10 @@ public class ZipOutputStream extends Fil private RandomAccessFile raf = null; /** - * whether to use the EFS flag when writing UTF-8 filenames or not. + * whether to use the general purpose bit flag when writing UTF-8 + * filenames or not. */ - private boolean useEFS = true; + private boolean useUTF8Flag = true; /** * Whether to encode non-encodable file names as UTF-8. @@ -341,7 +349,7 @@ public class ZipOutputStream extends Fil public void setEncoding(final String encoding) { this.encoding = encoding; this.zipEncoding = ZipEncodingHelper.getZipEncoding(encoding); - useEFS &= ZipEncodingHelper.isUTF8(encoding); + useUTF8Flag &= ZipEncodingHelper.isUTF8(encoding); } /** @@ -362,7 +370,7 @@ public class ZipOutputStream extends Fil *

Defaults to true.

*/ public void setUseLanguageEncodingFlag(boolean b) { - useEFS = b && ZipEncodingHelper.isUTF8(encoding); + useUTF8Flag = b && ZipEncodingHelper.isUTF8(encoding); } /** @@ -1050,7 +1058,7 @@ public class ZipOutputStream extends Fil // CheckStyle:MagicNumber OFF int versionNeededToExtract = 10; - int generalPurposeFlag = (useEFS || utfFallback) ? EFS_FLAG : 0; + int generalPurposeFlag = (useUTF8Flag || utfFallback) ? UFT8_NAMES_FLAG : 0; if (zipMethod == DEFLATED && raf == null) { // requires version 2 as we are going to store length info // in the data descriptor Propchange: ant/core/branches/run-single-test-method/src/main/org/apache/tools/zip/ZipOutputStream.java ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Mon May 3 17:44:21 2010 @@ -1 +1,3 @@ +/ant/core/tags/ANT_181/src/main/org/apache/tools/zip/ZipOutputStream.java:939905-940517 +/commons/proper/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveOutputStream.java:911740 /commons/sandbox/compress/trunk/src/main/java/org/apache/commons/compress/archivers/zip/ZipArchiveOutputStream.java:745920,747810,747841,748063,749342,749906-749907,750055,750310 Propchange: ant/core/branches/run-single-test-method/src/main/org/apache/tools/zip/ZipUtil.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ant/core/branches/run-single-test-method/src/main/org/apache/tools/zip/ZipUtil.java ------------------------------------------------------------------------------ --- svn:mergeinfo (added) +++ svn:mergeinfo Mon May 3 17:44:21 2010 @@ -0,0 +1 @@ +/ant/core/tags/ANT_181/src/main/org/apache/tools/zip/ZipUtil.java:939905-940517 Modified: ant/core/branches/run-single-test-method/src/script/ant.bat URL: http://svn.apache.org/viewvc/ant/core/branches/run-single-test-method/src/script/ant.bat?rev=940531&r1=940530&r2=940531&view=diff ============================================================================== --- ant/core/branches/run-single-test-method/src/script/ant.bat (original) +++ ant/core/branches/run-single-test-method/src/script/ant.bat Mon May 3 17:44:21 2010 @@ -59,6 +59,7 @@ if "%CLASSPATH%"=="" set _USE_CLASSPATH= rem Slurp the command line arguments. This loop allows for an unlimited number rem of arguments (up to the command line limit, anyway). +set ANT_CMD_LINE_ARGS= :setupArgs if ""%1""=="""" goto doneStart if ""%1""==""-noclasspath"" goto clearclasspath Modified: ant/core/branches/run-single-test-method/src/script/complete-ant-cmd.pl URL: http://svn.apache.org/viewvc/ant/core/branches/run-single-test-method/src/script/complete-ant-cmd.pl?rev=940531&r1=940530&r2=940531&view=diff ============================================================================== --- ant/core/branches/run-single-test-method/src/script/complete-ant-cmd.pl (original) +++ ant/core/branches/run-single-test-method/src/script/complete-ant-cmd.pl Mon May 3 17:44:21 2010 @@ -83,7 +83,7 @@ sub getTargets { # cache-file. my $cacheFile = $buildFile; $cacheFile =~ s|(.*/)?(.*)|${1}.ant-targets-${2}|; - if ((!-e $cacheFile) || (-M $buildFile) < (-M $cacheFile)) { + if ((!-e $cacheFile) || (-z $cacheFile) || (-M $buildFile) < (-M $cacheFile)) { open( CACHE, '>'.$cacheFile ) || die "can\'t write $cacheFile: $!\n"; open( HELP, "$antCmd -projecthelp -f '$buildFile'|" ) || return(); my %targets; Modified: ant/core/branches/run-single-test-method/src/tests/antunit/core/classloader-test.xml URL: http://svn.apache.org/viewvc/ant/core/branches/run-single-test-method/src/tests/antunit/core/classloader-test.xml?rev=940531&r1=940530&r2=940531&view=diff ============================================================================== --- ant/core/branches/run-single-test-method/src/tests/antunit/core/classloader-test.xml (original) +++ ant/core/branches/run-single-test-method/src/tests/antunit/core/classloader-test.xml Mon May 3 17:44:21 2010 @@ -23,7 +23,7 @@ - + @@ -35,7 +35,7 @@ public class A { public static void main(String[] args) { if (A.class.getClassLoader().getResource("org/apache/xerces/jaxp/DocumentBuilderFactoryImpl.class") != null) { - throw new RuntimeException("Didn't expect to find DocumenBuilderImpl"); + throw new RuntimeException("Didn't expect to find DocumentBuilderImpl"); } } } @@ -54,7 +54,7 @@ public class A { public static void main(String[] args) { try { A.class.getClassLoader().loadClass("org.apache.xerces.jaxp.DocumentBuilderFactoryImpl"); - throw new RuntimeException("Didn't expect to find DocumenBuilderImpl"); + throw new RuntimeException("Didn't expect to find DocumentBuilderImpl"); } catch (ClassNotFoundException cnfe) { } } @@ -74,7 +74,7 @@ public class A { public class A { public static void main(String[] args) { if (A.class.getClassLoader().getResourceAsStream("org/apache/xerces/jaxp/DocumentBuilderFactoryImpl.class") != null) { - throw new RuntimeException("Didn't expect to find DocumenBuilderImpl"); + throw new RuntimeException("Didn't expect to find DocumentBuilderImpl"); } } } Modified: ant/core/branches/run-single-test-method/src/tests/antunit/core/extension-point-test.xml URL: http://svn.apache.org/viewvc/ant/core/branches/run-single-test-method/src/tests/antunit/core/extension-point-test.xml?rev=940531&r1=940530&r2=940531&view=diff ============================================================================== --- ant/core/branches/run-single-test-method/src/tests/antunit/core/extension-point-test.xml (original) +++ ant/core/branches/run-single-test-method/src/tests/antunit/core/extension-point-test.xml Mon May 3 17:44:21 2010 @@ -57,30 +57,35 @@ - + - - + + ]]> + expectedMessage="referenced target foo is not an extension-point"> - + + + + +]]> - - + + + + in target prepare + ]]> - - - + + Propchange: ant/core/branches/run-single-test-method/src/tests/antunit/core/extension-point-test.xml ('svn:mergeinfo' removed) Propchange: ant/core/branches/run-single-test-method/src/tests/antunit/core/ref-psyntax-hint-test.xml ('svn:mergeinfo' removed) Propchange: ant/core/branches/run-single-test-method/src/tests/antunit/filters/suffix-test.xml ('svn:mergeinfo' removed) Modified: ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/concat-test.xml URL: http://svn.apache.org/viewvc/ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/concat-test.xml?rev=940531&r1=940530&r2=940531&view=diff ============================================================================== --- ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/concat-test.xml (original) +++ ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/concat-test.xml Mon May 3 17:44:21 2010 @@ -18,7 +18,7 @@ - + @@ -149,4 +149,14 @@ + + + + + + + + + + Modified: ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/copy-test.xml URL: http://svn.apache.org/viewvc/ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/copy-test.xml?rev=940531&r1=940530&r2=940531&view=diff ============================================================================== --- ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/copy-test.xml (original) +++ ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/copy-test.xml Mon May 3 17:44:21 2010 @@ -116,6 +116,48 @@ public class NullByteStreamResource exte actual="${output}/bar.txt"/> + + + + Hello, world! + + + + + + + + + + + + + + + + + + + + Hello, world! + + + + + + + + + + + + + + + @@ -188,4 +230,69 @@ public class NullByteStreamResource exte + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Propchange: ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/dependset-test.xml ('svn:mergeinfo' removed) Propchange: ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/exec/exec-test.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/exec/exec-test.xml ------------------------------------------------------------------------------ svn:keywords = Author Date Id Revision Propchange: ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/exec/exec-test.xml ------------------------------------------------------------------------------ --- svn:mergeinfo (added) +++ svn:mergeinfo Mon May 3 17:44:21 2010 @@ -0,0 +1 @@ +/ant/core/tags/ANT_181/src/tests/antunit/taskdefs/exec/exec-test.xml:939905-940517 Propchange: ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/exec/expected/utf-8 ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/exec/expected/utf-8 ------------------------------------------------------------------------------ svn:keywords = Author Date Id Revision Propchange: ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/exec/expected/utf-8 ------------------------------------------------------------------------------ --- svn:mergeinfo (added) +++ svn:mergeinfo Mon May 3 17:44:21 2010 @@ -0,0 +1 @@ +/ant/core/tags/ANT_181/src/tests/antunit/taskdefs/exec/expected/utf-8:939905-940517 Propchange: ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/exec/input/iso8859-1 ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/exec/input/iso8859-1 ------------------------------------------------------------------------------ svn:keywords = Author Date Id Revision Propchange: ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/exec/input/iso8859-1 ------------------------------------------------------------------------------ --- svn:mergeinfo (added) +++ svn:mergeinfo Mon May 3 17:44:21 2010 @@ -0,0 +1 @@ +/ant/core/tags/ANT_181/src/tests/antunit/taskdefs/exec/input/iso8859-1:939905-940517 Modified: ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/get-test.xml URL: http://svn.apache.org/viewvc/ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/get-test.xml?rev=940531&r1=940530&r2=940531&view=diff ============================================================================== --- ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/get-test.xml (original) +++ ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/get-test.xml Mon May 3 17:44:21 2010 @@ -96,4 +96,17 @@ + + + + + + + + + + + + + Modified: ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/hostinfo-test.xml URL: http://svn.apache.org/viewvc/ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/hostinfo-test.xml?rev=940531&r1=940530&r2=940531&view=diff ============================================================================== --- ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/hostinfo-test.xml (original) +++ ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/hostinfo-test.xml Mon May 3 17:44:21 2010 @@ -29,8 +29,8 @@ - - + + Modified: ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/import-url-test.xml URL: http://svn.apache.org/viewvc/ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/import-url-test.xml?rev=940531&r1=940530&r2=940531&view=diff ============================================================================== --- ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/import-url-test.xml (original) +++ ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/import-url-test.xml Mon May 3 17:44:21 2010 @@ -40,15 +40,20 @@ - - + + - + + + + + + @@ -58,15 +63,14 @@ foo=bar - - - + - + + Propchange: ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/include-test.xml ('svn:mergeinfo' removed) Modified: ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/jar-test.xml URL: http://svn.apache.org/viewvc/ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/jar-test.xml?rev=940531&r1=940530&r2=940531&view=diff ============================================================================== --- ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/jar-test.xml (original) +++ ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/jar-test.xml Mon May 3 17:44:21 2010 @@ -179,4 +179,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Modified: ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/length-test.xml URL: http://svn.apache.org/viewvc/ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/length-test.xml?rev=940531&r1=940530&r2=940531&view=diff ============================================================================== --- ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/length-test.xml (original) +++ ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/length-test.xml Mon May 3 17:44:21 2010 @@ -230,4 +230,11 @@ + + + + + + + Modified: ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/loadproperties-test.xml URL: http://svn.apache.org/viewvc/ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/loadproperties-test.xml?rev=940531&r1=940530&r2=940531&view=diff ============================================================================== --- ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/loadproperties-test.xml (original) +++ ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/loadproperties-test.xml Mon May 3 17:44:21 2010 @@ -15,10 +15,15 @@ See the License for the specific language governing permissions and limitations under the License. --> - + + + + + + basic.foo=foo @@ -68,4 +73,120 @@ a=Hello world in EBCDIC + + + +#http.@PORT@ = 90 +http.@PORT@ = 80 +http.@SERVER@ = ${server} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + foo=foo +bar=bar +baz=${foo} ${bar} + + + + + + + + + + + + + + foo=foo +bar=bar +baz=${foo} ${bar} + + + + + + + + + + + + + + + +#tpfr.a=a +tpfr.a=A +tpfr.b=b\ + e +tpfr.c=@C@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + foo=foo +foo=bar + + + + + + Modified: ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/optional/junit/junit-test.xml URL: http://svn.apache.org/viewvc/ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/optional/junit/junit-test.xml?rev=940531&r1=940530&r2=940531&view=diff ============================================================================== --- ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/optional/junit/junit-test.xml (original) +++ ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/optional/junit/junit-test.xml Mon May 3 17:44:21 2010 @@ -289,4 +289,13 @@ public class BTest extends TestCase { + + + + + + + + + Propchange: ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/optional/native2ascii-test.xml ('svn:mergeinfo' removed) Modified: ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/optional/propertyfilelayout-test.xml URL: http://svn.apache.org/viewvc/ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/optional/propertyfilelayout-test.xml?rev=940531&r1=940530&r2=940531&view=diff ============================================================================== --- ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/optional/propertyfilelayout-test.xml (original) +++ ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/optional/propertyfilelayout-test.xml Mon May 3 17:44:21 2010 @@ -26,6 +26,7 @@ foo=bar #second comment x=1 ]]> + Modified: ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/optional/unix/symlink-test.xml URL: http://svn.apache.org/viewvc/ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/optional/unix/symlink-test.xml?rev=940531&r1=940530&r2=940531&view=diff ============================================================================== --- ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/optional/unix/symlink-test.xml (original) +++ ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/optional/unix/symlink-test.xml Mon May 3 17:44:21 2010 @@ -92,4 +92,18 @@ + + + + + + + + +]]> + + Modified: ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/property-test.xml URL: http://svn.apache.org/viewvc/ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/property-test.xml?rev=940531&r1=940530&r2=940531&view=diff ============================================================================== --- ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/property-test.xml (original) +++ ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/property-test.xml Mon May 3 17:44:21 2010 @@ -77,4 +77,15 @@ + + + + + + + + Modified: ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/rmic-test.xml URL: http://svn.apache.org/viewvc/ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/rmic-test.xml?rev=940531&r1=940530&r2=940531&view=diff ============================================================================== --- ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/rmic-test.xml (original) +++ ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/rmic-test.xml Mon May 3 17:44:21 2010 @@ -76,4 +76,31 @@ public class Adapter implements RmicAdap + + + + + + + + + + + + + Modified: ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/unzip-test.xml URL: http://svn.apache.org/viewvc/ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/unzip-test.xml?rev=940531&r1=940530&r2=940531&view=diff ============================================================================== --- ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/unzip-test.xml (original) +++ ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/unzip-test.xml Mon May 3 17:44:21 2010 @@ -59,7 +59,7 @@ > - + Modified: ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/war-test.xml URL: http://svn.apache.org/viewvc/ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/war-test.xml?rev=940531&r1=940530&r2=940531&view=diff ============================================================================== --- ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/war-test.xml (original) +++ ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/war-test.xml Mon May 3 17:44:21 2010 @@ -16,34 +16,28 @@ limitations under the License. --> - - - - - - + + + - + - + - - - - - + @@ -56,7 +50,7 @@ This checks that as of Java EE 5, the web.xml attr is optional. Here there is a web.xml, in the webinf fileset, rather than a fileset --> - + @@ -64,7 +58,7 @@ - + @@ -75,7 +69,7 @@ - + @@ -86,7 +80,7 @@ - + @@ -98,7 +92,7 @@ - + @@ -108,10 +102,10 @@ - - + + - + @@ -125,18 +119,18 @@ this target does not have a web.xml file. Instead it pulls in --> - + - + - + @@ -144,7 +138,7 @@ - + @@ -152,20 +146,20 @@ - + - + - + - + @@ -186,4 +180,15 @@ + + + + + + + + + + + Propchange: ant/core/branches/run-single-test-method/src/tests/antunit/taskdefs/xslt/printParams-invalid.xsl ('svn:mergeinfo' removed) Propchange: ant/core/branches/run-single-test-method/src/tests/antunit/types/resources/comparators/test.xml ('svn:mergeinfo' removed) Modified: ant/core/branches/run-single-test-method/src/tests/antunit/types/resources/concat-resource-test.xml URL: http://svn.apache.org/viewvc/ant/core/branches/run-single-test-method/src/tests/antunit/types/resources/concat-resource-test.xml?rev=940531&r1=940530&r2=940531&view=diff ============================================================================== --- ant/core/branches/run-single-test-method/src/tests/antunit/types/resources/concat-resource-test.xml (original) +++ ant/core/branches/run-single-test-method/src/tests/antunit/types/resources/concat-resource-test.xml Mon May 3 17:44:21 2010 @@ -125,4 +125,18 @@ baz + + + + + foobar + + foo + + bar + + + + + Modified: ant/core/branches/run-single-test-method/src/tests/antunit/types/resources/test.xml URL: http://svn.apache.org/viewvc/ant/core/branches/run-single-test-method/src/tests/antunit/types/resources/test.xml?rev=940531&r1=940530&r2=940531&view=diff ============================================================================== --- ant/core/branches/run-single-test-method/src/tests/antunit/types/resources/test.xml (original) +++ ant/core/branches/run-single-test-method/src/tests/antunit/types/resources/test.xml Mon May 3 17:44:21 2010 @@ -15,8 +15,9 @@ See the License for the specific language governing permissions and limitations under the License. --> - + + + @@ -351,6 +352,16 @@ + + + + + + + + + + Modified: ant/core/branches/run-single-test-method/src/tests/junit/org/apache/tools/ant/BuildFileTest.java URL: http://svn.apache.org/viewvc/ant/core/branches/run-single-test-method/src/tests/junit/org/apache/tools/ant/BuildFileTest.java?rev=940531&r1=940530&r2=940531&view=diff ============================================================================== --- ant/core/branches/run-single-test-method/src/tests/junit/org/apache/tools/ant/BuildFileTest.java (original) +++ ant/core/branches/run-single-test-method/src/tests/junit/org/apache/tools/ant/BuildFileTest.java Mon May 3 17:44:21 2010 @@ -428,8 +428,12 @@ public abstract class BuildFileTest exte * * @param property property name */ - public void assertPropertyUnset(String property) { - assertPropertyEquals(property, null); + public void assertPropertyUnset(String property) { + String result = project.getProperty(property); + if (result != null) { + fail("Expected property " + property + + " to be unset, but it is set to the value: " + result); + } } /**