You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by py...@apache.org on 2007/07/17 08:31:04 UTC

svn commit: r556825 [3/10] - in /harmony/enhanced/classlib/branches/java6/modules: archive/src/main/java/java/util/jar/ archive/src/main/java/java/util/zip/ archive/src/main/java/org/apache/harmony/archive/internal/nls/ archive/src/main/java/org/apache...

Modified: harmony/enhanced/classlib/branches/java6/modules/archive/src/main/java/java/util/zip/ZipEntry.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/archive/src/main/java/java/util/zip/ZipEntry.java?view=diff&rev=556825&r1=556824&r2=556825
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/archive/src/main/java/java/util/zip/ZipEntry.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/archive/src/main/java/java/util/zip/ZipEntry.java Mon Jul 16 23:30:22 2007
@@ -17,7 +17,6 @@
 
 package java.util.zip;
 
-
 import java.util.Calendar;
 import java.util.Date;
 import java.util.GregorianCalendar;
@@ -29,310 +28,310 @@
  * @see ZipInputStream
  */
 public class ZipEntry implements ZipConstants, Cloneable {
-	String name, comment;
+    String name, comment;
 
-	long compressedSize = -1, crc = -1, size = -1, dataOffset = -1;
+    long compressedSize = -1, crc = -1, size = -1, dataOffset = -1;
 
-	int compressionMethod = -1, time = -1, modDate = -1;
+    int compressionMethod = -1, time = -1, modDate = -1;
 
-	byte[] extra;
+    byte[] extra;
 
-	/**
-	 * Zip entry state: Deflated
-	 */
-	public static final int DEFLATED = 8;
-
-	/**
-	 * Zip entry state: Stored
-	 */
-	public static final int STORED = 0;
-
-	/**
-	 * Constructs a new ZipEntry with the specified name.
-	 * 
-	 * @param name
-	 *            the name of the zip entry
-	 */
-	public ZipEntry(String name) {
-		if (name == null) {
+    /**
+     * Zip entry state: Deflated
+     */
+    public static final int DEFLATED = 8;
+
+    /**
+     * Zip entry state: Stored
+     */
+    public static final int STORED = 0;
+
+    /**
+     * Constructs a new ZipEntry with the specified name.
+     * 
+     * @param name
+     *            the name of the zip entry
+     */
+    public ZipEntry(String name) {
+        if (name == null) {
             throw new NullPointerException();
         }
-		if (name.length() > 0xFFFF) {
+        if (name.length() > 0xFFFF) {
             throw new IllegalArgumentException();
         }
-		this.name = name;
-	}
+        this.name = name;
+    }
+
+    /**
+     * Gets the comment for this ZipEntry.
+     * 
+     * @return the comment for this ZipEntry, or null if there is no comment
+     */
+    public String getComment() {
+        return comment;
+    }
+
+    /**
+     * Gets the compressed size of this ZipEntry.
+     * 
+     * @return the compressed size, or -1 if the compressed size has not been
+     *         set
+     */
+    public long getCompressedSize() {
+        return compressedSize;
+    }
+
+    /**
+     * Gets the crc for this ZipEntry.
+     * 
+     * @return the crc, or -1 if the crc has not been set
+     */
+    public long getCrc() {
+        return crc;
+    }
+
+    /**
+     * Gets the extra information for this ZipEntry.
+     * 
+     * @return a byte array containing the extra information, or null if there
+     *         is none
+     */
+    public byte[] getExtra() {
+        return extra;
+    }
+
+    /**
+     * Gets the compression method for this ZipEntry.
+     * 
+     * @return the compression method, either DEFLATED, STORED or -1 if the
+     *         compression method has not been set
+     */
+    public int getMethod() {
+        return compressionMethod;
+    }
+
+    /**
+     * Gets the name of this ZipEntry.
+     * 
+     * @return the entry name
+     */
+    public String getName() {
+        return name;
+    }
+
+    /**
+     * Gets the uncompressed size of this ZipEntry.
+     * 
+     * @return the uncompressed size, or -1 if the size has not been set
+     */
+    public long getSize() {
+        return size;
+    }
+
+    /**
+     * Gets the last modification time of this ZipEntry.
+     * 
+     * @return the last modification time as the number of milliseconds since
+     *         Jan. 1, 1970
+     */
+    public long getTime() {
+        if (time != -1) {
+            GregorianCalendar cal = new GregorianCalendar();
+            cal.set(Calendar.MILLISECOND, 0);
+            cal.set(1980 + ((modDate >> 9) & 0x7f), ((modDate >> 5) & 0xf) - 1,
+                    modDate & 0x1f, (time >> 11) & 0x1f, (time >> 5) & 0x3f,
+                    (time & 0x1f) << 1);
+            return cal.getTime().getTime();
+        }
+        return -1;
+    }
 
-	/**
-	 * Gets the comment for this ZipEntry.
-	 * 
-	 * @return the comment for this ZipEntry, or null if there is no comment
-	 */
-	public String getComment() {
-		return comment;
-	}
-
-	/**
-	 * Gets the compressed size of this ZipEntry.
-	 * 
-	 * @return the compressed size, or -1 if the compressed size has not been
-	 *         set
-	 */
-	public long getCompressedSize() {
-		return compressedSize;
-	}
-
-	/**
-	 * Gets the crc for this ZipEntry.
-	 * 
-	 * @return the crc, or -1 if the crc has not been set
-	 */
-	public long getCrc() {
-		return crc;
-	}
-
-	/**
-	 * Gets the extra information for this ZipEntry.
-	 * 
-	 * @return a byte array containing the extra information, or null if there
-	 *         is none
-	 */
-	public byte[] getExtra() {
-		return extra;
-	}
-
-	/**
-	 * Gets the compression method for this ZipEntry.
-	 * 
-	 * @return the compression method, either DEFLATED, STORED or -1 if the
-	 *         compression method has not been set
-	 */
-	public int getMethod() {
-		return compressionMethod;
-	}
-
-	/**
-	 * Gets the name of this ZipEntry.
-	 * 
-	 * @return the entry name
-	 */
-	public String getName() {
-		return name;
-	}
-
-	/**
-	 * Gets the uncompressed size of this ZipEntry.
-	 * 
-	 * @return the uncompressed size, or -1 if the size has not been set
-	 */
-	public long getSize() {
-		return size;
-	}
-
-	/**
-	 * Gets the last modification time of this ZipEntry.
-	 * 
-	 * @return the last modification time as the number of milliseconds since
-	 *         Jan. 1, 1970
-	 */
-	public long getTime() {
-		if (time != -1) {
-			GregorianCalendar cal = new GregorianCalendar();
-			cal.set(Calendar.MILLISECOND, 0);
-			cal.set(1980 + ((modDate >> 9) & 0x7f), ((modDate >> 5) & 0xf) - 1,
-					modDate & 0x1f, (time >> 11) & 0x1f, (time >> 5) & 0x3f,
-					(time & 0x1f) << 1);
-			return cal.getTime().getTime();
-		}
-		return -1;
-	}
-
-	/**
-	 * Answers if this ZipEntry is a directory.
-	 * 
-	 * @return <code>true</code> when this ZipEntry is a directory,
-	 *         <code>false<code> otherwise
-	 */
-	public boolean isDirectory() {
-		return name.charAt(name.length() - 1) == '/';
-	}
-
-	/**
-	 * Sets the comment for this ZipEntry.
-	 * 
-	 * @param string
-	 *            the comment
-	 */
-	public void setComment(String string) {
-		if (string == null || string.length() <= 0xFFFF) {
+    /**
+     * Answers if this ZipEntry is a directory.
+     * 
+     * @return <code>true</code> when this ZipEntry is a directory,
+     *         <code>false<code> otherwise
+     */
+    public boolean isDirectory() {
+        return name.charAt(name.length() - 1) == '/';
+    }
+
+    /**
+     * Sets the comment for this ZipEntry.
+     * 
+     * @param string
+     *            the comment
+     */
+    public void setComment(String string) {
+        if (string == null || string.length() <= 0xFFFF) {
             comment = string;
         } else {
             throw new IllegalArgumentException();
         }
-	}
+    }
 
-	/**
-	 * Sets the compressed size for this ZipEntry.
-	 * 
-	 * @param value
-	 *            the compressed size
-	 */
-	public void setCompressedSize(long value) {
-		compressedSize = value;
-	}
-
-	/**
-	 * Sets the crc for this ZipEntry.
-	 * 
-	 * @param value
-	 *            the crc
-	 * 
-	 * @throws IllegalArgumentException
-	 *             if value is < 0 or > 0xFFFFFFFFL
-	 */
-	public void setCrc(long value) {
-		if (value >= 0 && value <= 0xFFFFFFFFL) {
+    /**
+     * Sets the compressed size for this ZipEntry.
+     * 
+     * @param value
+     *            the compressed size
+     */
+    public void setCompressedSize(long value) {
+        compressedSize = value;
+    }
+
+    /**
+     * Sets the crc for this ZipEntry.
+     * 
+     * @param value
+     *            the crc
+     * 
+     * @throws IllegalArgumentException
+     *             if value is < 0 or > 0xFFFFFFFFL
+     */
+    public void setCrc(long value) {
+        if (value >= 0 && value <= 0xFFFFFFFFL) {
             crc = value;
         } else {
             throw new IllegalArgumentException();
         }
-	}
+    }
 
-	/**
-	 * Sets the extra information for this ZipEntry.
-	 * 
-	 * @param data
-	 *            a byte array containing the extra information
-	 * 
-	 * @throws IllegalArgumentException
-	 *             when the length of data is > 0xFFFF bytes
-	 */
-	public void setExtra(byte[] data) {
-		if (data == null || data.length <= 0xFFFF) {
+    /**
+     * Sets the extra information for this ZipEntry.
+     * 
+     * @param data
+     *            a byte array containing the extra information
+     * 
+     * @throws IllegalArgumentException
+     *             when the length of data is > 0xFFFF bytes
+     */
+    public void setExtra(byte[] data) {
+        if (data == null || data.length <= 0xFFFF) {
             extra = data;
         } else {
             throw new IllegalArgumentException();
         }
-	}
+    }
 
-	/**
-	 * Sets the compression method for this ZipEntry.
-	 * 
-	 * @param value
-	 *            the compression method, either DEFLATED or STORED
-	 * 
-	 * @throws IllegalArgumentException
-	 *             when value is not DEFLATED or STORED
-	 */
-	public void setMethod(int value) {
-		if (value != STORED && value != DEFLATED) {
+    /**
+     * Sets the compression method for this ZipEntry.
+     * 
+     * @param value
+     *            the compression method, either DEFLATED or STORED
+     * 
+     * @throws IllegalArgumentException
+     *             when value is not DEFLATED or STORED
+     */
+    public void setMethod(int value) {
+        if (value != STORED && value != DEFLATED) {
             throw new IllegalArgumentException();
         }
-		compressionMethod = value;
-	}
+        compressionMethod = value;
+    }
 
-	/**
-	 * Sets the uncompressed size of this ZipEntry.
-	 * 
-	 * @param value
-	 *            the uncompressed size
-	 * 
-	 * @throws IllegalArgumentException
-	 *             if value is < 0 or > 0xFFFFFFFFL
-	 */
-	public void setSize(long value) {
-		if (value >= 0 && value <= 0xFFFFFFFFL) {
+    /**
+     * Sets the uncompressed size of this ZipEntry.
+     * 
+     * @param value
+     *            the uncompressed size
+     * 
+     * @throws IllegalArgumentException
+     *             if value is < 0 or > 0xFFFFFFFFL
+     */
+    public void setSize(long value) {
+        if (value >= 0 && value <= 0xFFFFFFFFL) {
             size = value;
         } else {
             throw new IllegalArgumentException();
         }
-	}
+    }
+
+    /**
+     * Sets the last modification time of this ZipEntry.
+     * 
+     * @param value
+     *            the last modification time as the number of milliseconds since
+     *            Jan. 1, 1970
+     */
+    public void setTime(long value) {
+        GregorianCalendar cal = new GregorianCalendar();
+        cal.setTime(new Date(value));
+        int year = cal.get(Calendar.YEAR);
+        if (year < 1980) {
+            modDate = 0x21;
+            time = 0;
+        } else {
+            modDate = cal.get(Calendar.DATE);
+            modDate = (cal.get(Calendar.MONTH) + 1 << 5) | modDate;
+            modDate = ((cal.get(Calendar.YEAR) - 1980) << 9) | modDate;
+            time = cal.get(Calendar.SECOND) >> 1;
+            time = (cal.get(Calendar.MINUTE) << 5) | time;
+            time = (cal.get(Calendar.HOUR_OF_DAY) << 11) | time;
+        }
+    }
 
-	/**
-	 * Sets the last modification time of this ZipEntry.
-	 * 
-	 * @param value
-	 *            the last modification time as the number of milliseconds since
-	 *            Jan. 1, 1970
-	 */
-	public void setTime(long value) {
-		GregorianCalendar cal = new GregorianCalendar();
-		cal.setTime(new Date(value));
-		int year = cal.get(Calendar.YEAR);
-		if (year < 1980) {
-			modDate = 0x21;
-			time = 0;
-		} else {
-			modDate = cal.get(Calendar.DATE);
-			modDate = (cal.get(Calendar.MONTH) + 1 << 5) | modDate;
-			modDate = ((cal.get(Calendar.YEAR) - 1980) << 9) | modDate;
-			time = cal.get(Calendar.SECOND) >> 1;
-			time = (cal.get(Calendar.MINUTE) << 5) | time;
-			time = (cal.get(Calendar.HOUR_OF_DAY) << 11) | time;
-		}
-	}
-
-	/**
-	 * Answers the string representation of this ZipEntry.
-	 * 
-	 * @return the string representation of this ZipEntry
-	 */
-	@Override
+    /**
+     * Answers the string representation of this ZipEntry.
+     * 
+     * @return the string representation of this ZipEntry
+     */
+    @Override
     public String toString() {
-		return name;
-	}
+        return name;
+    }
 
-	ZipEntry(String name, String comment, byte[] extra, long modTime,
-			long size, long compressedSize, long crc, int compressionMethod,
-			long modDate, long offset) {
-		this.name = name;
-		this.comment = comment;
-		this.extra = extra;
-		time = (int) modTime;
-		this.size = size;
-		this.compressedSize = compressedSize;
-		this.crc = crc;
-		this.compressionMethod = compressionMethod;
-		this.modDate = (int) modDate;
-		dataOffset = offset;
-	}
-
-	/**
-	 * Constructs a new ZipEntry using the values obtained from ze.
-	 * 
-	 * @param ze
-	 *            ZipEntry from which to obtain values.
-	 */
-	public ZipEntry(ZipEntry ze) {
-		name = ze.name;
-		comment = ze.comment;
-		time = ze.time;
-		size = ze.size;
-		compressedSize = ze.compressedSize;
-		crc = ze.crc;
-		compressionMethod = ze.compressionMethod;
-		modDate = ze.modDate;
-		extra = ze.extra;
-		dataOffset = ze.dataOffset;
-	}
-
-	/**
-	 * Returns a shallow copy of this entry
-	 * 
-	 * @return a copy of this entry
-	 */
-	@Override
+    ZipEntry(String name, String comment, byte[] extra, long modTime,
+            long size, long compressedSize, long crc, int compressionMethod,
+            long modDate, long offset) {
+        this.name = name;
+        this.comment = comment;
+        this.extra = extra;
+        time = (int) modTime;
+        this.size = size;
+        this.compressedSize = compressedSize;
+        this.crc = crc;
+        this.compressionMethod = compressionMethod;
+        this.modDate = (int) modDate;
+        dataOffset = offset;
+    }
+
+    /**
+     * Constructs a new ZipEntry using the values obtained from ze.
+     * 
+     * @param ze
+     *            ZipEntry from which to obtain values.
+     */
+    public ZipEntry(ZipEntry ze) {
+        name = ze.name;
+        comment = ze.comment;
+        time = ze.time;
+        size = ze.size;
+        compressedSize = ze.compressedSize;
+        crc = ze.crc;
+        compressionMethod = ze.compressionMethod;
+        modDate = ze.modDate;
+        extra = ze.extra;
+        dataOffset = ze.dataOffset;
+    }
+
+    /**
+     * Returns a shallow copy of this entry
+     * 
+     * @return a copy of this entry
+     */
+    @Override
     public Object clone() {
-		return new ZipEntry(this);
-	}
+        return new ZipEntry(this);
+    }
 
-	/**
-	 * Returns the hashCode for this ZipEntry.
-	 * 
-	 * @return the hashCode of the entry
-	 */
-	@Override
+    /**
+     * Returns the hashCode for this ZipEntry.
+     * 
+     * @return the hashCode of the entry
+     */
+    @Override
     public int hashCode() {
-		return name.hashCode();
-	}
+        return name.hashCode();
+    }
 }

Modified: harmony/enhanced/classlib/branches/java6/modules/archive/src/main/java/java/util/zip/ZipException.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/archive/src/main/java/java/util/zip/ZipException.java?view=diff&rev=556825&r1=556824&r2=556825
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/archive/src/main/java/java/util/zip/ZipException.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/archive/src/main/java/java/util/zip/ZipException.java Mon Jul 16 23:30:22 2007
@@ -17,7 +17,6 @@
 
 package java.util.zip;
 
-
 import java.io.IOException;
 
 /**
@@ -29,24 +28,24 @@
  */
 public class ZipException extends IOException {
 
-	private static final long serialVersionUID = 8000196834066748623L;
+    private static final long serialVersionUID = 8000196834066748623L;
 
-	/**
-	 * Constructs a new instance of this class with its walkback filled in.
-	 */
-	public ZipException() {
-		super();
-	}
+    /**
+     * Constructs a new instance of this class with its walkback filled in.
+     */
+    public ZipException() {
+        super();
+    }
 
-	/**
-	 * Constructs a new instance of this class with its walkback and message
-	 * filled in.
-	 * 
-	 * @param detailMessage
-	 *            String The detail message for the exception.
-	 */
-	public ZipException(String detailMessage) {
-		super(detailMessage);
-	}
+    /**
+     * Constructs a new instance of this class with its walkback and message
+     * filled in.
+     * 
+     * @param detailMessage
+     *            String The detail message for the exception.
+     */
+    public ZipException(String detailMessage) {
+        super(detailMessage);
+    }
 
 }

Modified: harmony/enhanced/classlib/branches/java6/modules/archive/src/main/java/java/util/zip/ZipFile.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/archive/src/main/java/java/util/zip/ZipFile.java?view=diff&rev=556825&r1=556824&r2=556825
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/archive/src/main/java/java/util/zip/ZipFile.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/archive/src/main/java/java/util/zip/ZipFile.java Mon Jul 16 23:30:22 2007
@@ -17,7 +17,6 @@
 
 package java.util.zip;
 
-
 import java.io.ByteArrayInputStream;
 import java.io.File;
 import java.io.IOException;
@@ -39,229 +38,237 @@
 
 public class ZipFile implements ZipConstants {
 
-	String fileName;
+    String fileName;
 
-	long descriptor = -1;
+    long descriptor = -1;
 
-	private int size = -1;
+    private int size = -1;
 
-	private int mode;
-	static {
+    private int mode;
+    static {
         System.loadLibrary("hyarchive"); //$NON-NLS-1$
-		ntvinit();
-	}
+        ntvinit();
+    }
 
-	/**
-	 * Open zip file for read.
-	 */
-	public static final int OPEN_READ = 1;
-
-	/**
-	 * Delete zip file when closed.
-	 */
-	public static final int OPEN_DELETE = 4;
-
-	/**
-	 * Constructs a new ZipFile opened on the specified File.
-	 * 
-	 * @param file
-	 *            the File
-	 */
-	public ZipFile(File file) throws ZipException, IOException {
-		this(file.getPath());
-	}
-
-	/**
-	 * Constructs a new ZipFile opened on the specified File using the specified
-	 * mode.
-	 * 
-	 * @param file
-	 *            the File
-	 * @param mode
-	 *            the mode to use, either OPEN_READ or OPEN_READ | OPEN_DELETE
-	 */
-	public ZipFile(File file, int mode) throws IOException {
-		if (mode == OPEN_READ || mode == (OPEN_READ | OPEN_DELETE)) {
-			fileName = file.getPath();
-			SecurityManager security = System.getSecurityManager();
-			if (security != null) {
-				security.checkRead(fileName);
-				if ((mode & OPEN_DELETE) != 0) {
-					security.checkDelete(fileName);
-				}
-			}
-			this.mode = mode;
-			openZip();
-		} else {
+    /**
+     * Open zip file for read.
+     */
+    public static final int OPEN_READ = 1;
+
+    /**
+     * Delete zip file when closed.
+     */
+    public static final int OPEN_DELETE = 4;
+
+    /**
+     * Constructs a new ZipFile opened on the specified File.
+     * 
+     * @param file
+     *            the File
+     */
+    public ZipFile(File file) throws ZipException, IOException {
+        this(file.getPath());
+    }
+
+    /**
+     * Constructs a new ZipFile opened on the specified File using the specified
+     * mode.
+     * 
+     * @param file
+     *            the File
+     * @param mode
+     *            the mode to use, either OPEN_READ or OPEN_READ | OPEN_DELETE
+     */
+    public ZipFile(File file, int mode) throws IOException {
+        if (mode == OPEN_READ || mode == (OPEN_READ | OPEN_DELETE)) {
+            fileName = file.getPath();
+            SecurityManager security = System.getSecurityManager();
+            if (security != null) {
+                security.checkRead(fileName);
+                if ((mode & OPEN_DELETE) != 0) {
+                    security.checkDelete(fileName);
+                }
+            }
+            this.mode = mode;
+            openZip();
+        } else {
             throw new IllegalArgumentException();
         }
-	}
+    }
 
-	/**
-	 * Constructs a new ZipFile opened on the specified file path name.
-	 * 
-	 * @param filename
-	 *            the file path name
-	 */
-	public ZipFile(String filename) throws IOException {
-		SecurityManager security = System.getSecurityManager();
-		if (security != null) {
-			security.checkRead(filename);
-		}
-		fileName = filename;
-		openZip();
-	}
-
-	private void openZip() throws IOException {
-		int result = openZipImpl(Util.getBytes(fileName));
-		if (result != 0) {
-			switch (result) {
-			case 1:
-				throw new ZipException(Messages.getString("archive.24", fileName)); //$NON-NLS-1$
-			case 2:
-				throw new ZipException(Messages.getString("archive.25", fileName)); //$NON-NLS-1$
-			default:
-				throw new OutOfMemoryError();
-			}
-		}
-	}
+    /**
+     * Constructs a new ZipFile opened on the specified file path name.
+     * 
+     * @param filename
+     *            the file path name
+     */
+    public ZipFile(String filename) throws IOException {
+        SecurityManager security = System.getSecurityManager();
+        if (security != null) {
+            security.checkRead(filename);
+        }
+        fileName = filename;
+        openZip();
+    }
+
+    private void openZip() throws IOException {
+        int result = openZipImpl(Util.getBytes(fileName));
+        if (result != 0) {
+            switch (result) {
+            case 1:
+                throw new ZipException(Messages.getString(
+                        "archive.24", fileName)); //$NON-NLS-1$
+            case 2:
+                throw new ZipException(Messages.getString(
+                        "archive.25", fileName)); //$NON-NLS-1$
+            default:
+                throw new OutOfMemoryError();
+            }
+        }
+    }
 
-	@Override
+    @Override
     protected void finalize() throws IOException {
-		close();
-	}
+        close();
+    }
+
+    /**
+     * Closes this ZipFile.
+     */
+    public synchronized void close() throws IOException {
+        if (descriptor != -1 && fileName != null) {
+            // Only close initialized instances
+            closeZipImpl(descriptor);
+            if ((mode & OPEN_DELETE) != 0) {
+                AccessController.doPrivileged(new PrivilegedAction<Object>() {
+                    public Object run() {
+                        new File(fileName).delete();
+                        return null;
+                    }
+                });
+            }
+        }
+    }
+
+    /**
+     * Answers all of the zip entries contained in this ZipFile.
+     * 
+     * @return an Enumeration of the zip entries
+     */
+    public Enumeration<? extends ZipEntry> entries() {
+        return new ZFEnum<ZipEntry>();
+    }
+
+    /**
+     * Gets the zip entry with the specified name from this ZipFile.
+     * 
+     * @param entryName
+     *            the name of the entry in the zip file
+     * @return a ZipEntry or null if the entry name does not exist in the zip
+     *         file
+     */
+    public ZipEntry getEntry(String entryName) {
+        if (entryName != null) {
+            ZipEntry entry = getEntryImpl(descriptor, entryName);
+            return entry;
+        }
+        throw new NullPointerException();
+    }
 
-	/**
-	 * Closes this ZipFile.
-	 */
-	public synchronized void close() throws IOException {
-		if (descriptor != -1 && fileName != null) {
-			// Only close initialized instances
-			closeZipImpl(descriptor);
-			if ((mode & OPEN_DELETE) != 0) {
-				AccessController.doPrivileged(new PrivilegedAction<Object>() {
-					public Object run() {
-						new File(fileName).delete();
-						return null;
-					}
-				});
-			}
-		}
-	}
-
-	/**
-	 * Answers all of the zip entries contained in this ZipFile.
-	 * 
-	 * @return an Enumeration of the zip entries
-	 */
-	public Enumeration<? extends ZipEntry> entries() {
-		return new ZFEnum<ZipEntry>();
-	}
-
-	/**
-	 * Gets the zip entry with the specified name from this ZipFile.
-	 * 
-	 * @param entryName
-	 *            the name of the entry in the zip file
-	 * @return a ZipEntry or null if the entry name does not exist in the zip
-	 *         file
-	 */
-	public ZipEntry getEntry(String entryName) {
-		if (entryName != null) {
-			ZipEntry entry = getEntryImpl(descriptor, entryName);
-			return entry;
-		}
-		throw new NullPointerException();
-	}
-
-	/**
-	 * Answers an input stream on the data of the specified ZipEntry.
-	 * 
-	 * @param entry
-	 *            the ZipEntry
-	 * @return an input stream on the ZipEntry data
-	 */
-	public InputStream getInputStream(ZipEntry entry) throws IOException {
-		if(descriptor == -1) {
-			/* the descriptor is set to -1 by native code to indicate the zip was closed */
-			throw new IllegalStateException();
-		}
-		byte[] buf = inflateEntryImpl2(descriptor, entry.getName());
-		if (buf == null) {
+    /**
+     * Answers an input stream on the data of the specified ZipEntry.
+     * 
+     * @param entry
+     *            the ZipEntry
+     * @return an input stream on the ZipEntry data
+     */
+    public InputStream getInputStream(ZipEntry entry) throws IOException {
+        if (descriptor == -1) {
+            /*
+             * the descriptor is set to -1 by native code to indicate the zip
+             * was closed
+             */
+            throw new IllegalStateException();
+        }
+        byte[] buf = inflateEntryImpl2(descriptor, entry.getName());
+        if (buf == null) {
             return null;
         }
-		return new ByteArrayInputStream(buf);
-}
+        return new ByteArrayInputStream(buf);
+    }
 
-	/**
-	 * Gets the file name of this ZipFile.
-	 * 
-	 * @return the file name of this ZipFile
-	 */
-	public String getName() {
-		return fileName;
-	}
-
-	private synchronized native int openZipImpl(byte[] fileName1);
-
-	private native void closeZipImpl(long descriptor1) throws IOException;
-
-	private native ZipEntry getEntryImpl(long descriptor1, String entryName);
-
-	private native byte[] inflateEntryImpl2(long descriptor1, String entryName)
-			throws ZipException;
-
-	/**
-	 * Returns the number of ZipEntries in this ZipFile.
-	 * 
-	 * @return Number of entries in this file
-	 */
-	public int size() {
-		if (size != -1) {
+    /**
+     * Gets the file name of this ZipFile.
+     * 
+     * @return the file name of this ZipFile
+     */
+    public String getName() {
+        return fileName;
+    }
+
+    private synchronized native int openZipImpl(byte[] fileName1);
+
+    private native void closeZipImpl(long descriptor1) throws IOException;
+
+    private native ZipEntry getEntryImpl(long descriptor1, String entryName);
+
+    private native byte[] inflateEntryImpl2(long descriptor1, String entryName)
+            throws ZipException;
+
+    /**
+     * Returns the number of ZipEntries in this ZipFile.
+     * 
+     * @return Number of entries in this file
+     */
+    public int size() {
+        if (size != -1) {
             return size;
         }
 
-		size = 0;
-		Enumeration<?> e = entries();
-		while (e.hasMoreElements()) {
-			size++;
-			e.nextElement();
-		}
-		return size;
-
-	}
-
-	private static native void ntvinit();
-
-	class ZFEnum<T extends ZipEntry> implements Enumeration<T> {
-		private final long nextEntryPointer;
-
-		private T current;
-
-		ZFEnum() {
-			nextEntryPointer = resetZip(descriptor);
-			current = getNextEntry(descriptor, nextEntryPointer);
-		}
-
-		private native long resetZip(long descriptor1);
-
-		private native T getNextEntry(long descriptor1, long nextEntryPointer1);
-
-		public boolean hasMoreElements() {
-			if(descriptor == -1) {
-				/* the descriptor is set to -1 by native code to indicate the zip was closed */
-				throw new IllegalStateException();
-			}
-			return current != null;
-		}
+        size = 0;
+        Enumeration<?> e = entries();
+        while (e.hasMoreElements()) {
+            size++;
+            e.nextElement();
+        }
+        return size;
+
+    }
+
+    private static native void ntvinit();
+
+    class ZFEnum<T extends ZipEntry> implements Enumeration<T> {
+        private final long nextEntryPointer;
+
+        private T current;
+
+        ZFEnum() {
+            nextEntryPointer = resetZip(descriptor);
+            current = getNextEntry(descriptor, nextEntryPointer);
+        }
+
+        private native long resetZip(long descriptor1);
+
+        private native T getNextEntry(long descriptor1, long nextEntryPointer1);
+
+        public boolean hasMoreElements() {
+            if (descriptor == -1) {
+                /*
+                 * the descriptor is set to -1 by native code to indicate the
+                 * zip was closed
+                 */
+                throw new IllegalStateException();
+            }
+            return current != null;
+        }
 
-		public T nextElement() {
-			if (current == null) {
+        public T nextElement() {
+            if (current == null) {
                 throw new NoSuchElementException();
             }
-			T ze = current;
-			current = getNextEntry(descriptor, nextEntryPointer);
-			return ze;
-		}
-	}
+            T ze = current;
+            current = getNextEntry(descriptor, nextEntryPointer);
+            return ze;
+        }
+    }
 }

Modified: harmony/enhanced/classlib/branches/java6/modules/archive/src/main/java/java/util/zip/ZipInputStream.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/archive/src/main/java/java/util/zip/ZipInputStream.java?view=diff&rev=556825&r1=556824&r2=556825
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/archive/src/main/java/java/util/zip/ZipInputStream.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/archive/src/main/java/java/util/zip/ZipInputStream.java Mon Jul 16 23:30:22 2007
@@ -17,7 +17,6 @@
 
 package java.util.zip;
 
-
 import java.io.EOFException;
 import java.io.IOException;
 import java.io.InputStream;
@@ -35,48 +34,48 @@
  * @see ZipFile
  */
 public class ZipInputStream extends InflaterInputStream implements ZipConstants {
-	static final int DEFLATED = 8;
+    static final int DEFLATED = 8;
 
-	static final int STORED = 0;
+    static final int STORED = 0;
 
-	static final int ZIPDataDescriptorFlag = 8;
+    static final int ZIPDataDescriptorFlag = 8;
 
-	static final int ZIPLocalHeaderVersionNeeded = 20;
+    static final int ZIPLocalHeaderVersionNeeded = 20;
 
-	private boolean zipClosed = false;
+    private boolean zipClosed = false;
 
-	private boolean entriesEnd = false;
+    private boolean entriesEnd = false;
 
-	private boolean hasDD = false;
+    private boolean hasDD = false;
 
-	private int entryIn = 0;
+    private int entryIn = 0;
 
-	private int inRead, lastRead = 0;
+    private int inRead, lastRead = 0;
 
-	ZipEntry currentEntry;
+    ZipEntry currentEntry;
 
-	private final byte[] hdrBuf = new byte[LOCHDR - LOCVER];
+    private final byte[] hdrBuf = new byte[LOCHDR - LOCVER];
 
-	private final CRC32 crc = new CRC32();
+    private final CRC32 crc = new CRC32();
 
-	private byte[] nameBuf = new byte[256];
+    private byte[] nameBuf = new byte[256];
 
-	private char[] charBuf = new char[256];
+    private char[] charBuf = new char[256];
 
-	/**
-	 * Constructs a new ZipInputStream on the specified input stream.
-	 * 
-	 * @param stream
-	 *            the input stream
-	 */
-	public ZipInputStream(InputStream stream) {
-		super(new PushbackInputStream(stream, BUF_SIZE), new Inflater(true));
-		if (stream == null) {
+    /**
+     * Constructs a new ZipInputStream on the specified input stream.
+     * 
+     * @param stream
+     *            the input stream
+     */
+    public ZipInputStream(InputStream stream) {
+        super(new PushbackInputStream(stream, BUF_SIZE), new Inflater(true));
+        if (stream == null) {
             throw new NullPointerException();
         }
-	}
+    }
 
-	/**
+    /**
      * Closes this ZipInputStream.
      */
     @Override
@@ -88,283 +87,283 @@
         }
     }
 
-	/**
-	 * Closes the current zip entry and positions to read the next entry.
-	 */
-	public void closeEntry() throws IOException {
-		if (zipClosed) {
+    /**
+     * Closes the current zip entry and positions to read the next entry.
+     */
+    public void closeEntry() throws IOException {
+        if (zipClosed) {
             throw new IOException(Messages.getString("archive.1E")); //$NON-NLS-1$
         }
-		if (currentEntry == null) {
+        if (currentEntry == null) {
             return;
         }
-		if (currentEntry instanceof java.util.jar.JarEntry) {
-			Attributes temp = ((JarEntry) currentEntry).getAttributes();
-			if (temp != null && temp.containsKey("hidden")) { //$NON-NLS-1$
+        if (currentEntry instanceof java.util.jar.JarEntry) {
+            Attributes temp = ((JarEntry) currentEntry).getAttributes();
+            if (temp != null && temp.containsKey("hidden")) { //$NON-NLS-1$
                 return;
             }
-		}
-		// Ensure all entry bytes are read
-		skip(Long.MAX_VALUE);
-		int inB, out;
-		if (currentEntry.compressionMethod == DEFLATED) {
-			inB = inf.getTotalIn();
-			out = inf.getTotalOut();
-		} else {
-			inB = inRead;
-			out = inRead;
-		}
-		int diff = 0;
-		// Pushback any required bytes
-		if ((diff = entryIn - inB) != 0) {
+        }
+        // Ensure all entry bytes are read
+        skip(Long.MAX_VALUE);
+        int inB, out;
+        if (currentEntry.compressionMethod == DEFLATED) {
+            inB = inf.getTotalIn();
+            out = inf.getTotalOut();
+        } else {
+            inB = inRead;
+            out = inRead;
+        }
+        int diff = 0;
+        // Pushback any required bytes
+        if ((diff = entryIn - inB) != 0) {
             ((PushbackInputStream) in).unread(buf, len - diff, diff);
         }
 
-		if (hasDD) {
-			in.read(hdrBuf, 0, EXTHDR);
-			if (getLong(hdrBuf, 0) != EXTSIG) {
+        if (hasDD) {
+            in.read(hdrBuf, 0, EXTHDR);
+            if (getLong(hdrBuf, 0) != EXTSIG) {
                 throw new ZipException(Messages.getString("archive.1F")); //$NON-NLS-1$
             }
-			currentEntry.crc = getLong(hdrBuf, EXTCRC);
-			currentEntry.compressedSize = getLong(hdrBuf, EXTSIZ);
-			currentEntry.size = getLong(hdrBuf, EXTLEN);
-		}
-		if (currentEntry.crc != crc.getValue()) {
+            currentEntry.crc = getLong(hdrBuf, EXTCRC);
+            currentEntry.compressedSize = getLong(hdrBuf, EXTSIZ);
+            currentEntry.size = getLong(hdrBuf, EXTLEN);
+        }
+        if (currentEntry.crc != crc.getValue()) {
             throw new ZipException(Messages.getString("archive.20")); //$NON-NLS-1$
         }
-		if (currentEntry.compressedSize != inB || currentEntry.size != out) {
+        if (currentEntry.compressedSize != inB || currentEntry.size != out) {
             throw new ZipException(Messages.getString("archive.21")); //$NON-NLS-1$
         }
 
-		inf.reset();
-		lastRead = inRead = entryIn = len = 0;
-		crc.reset();
-		currentEntry = null;
-	}
-
-	/**
-	 * Reads the next zip entry from this ZipInputStream.
-	 */
-	public ZipEntry getNextEntry() throws IOException {
-		if (currentEntry != null) {
+        inf.reset();
+        lastRead = inRead = entryIn = len = 0;
+        crc.reset();
+        currentEntry = null;
+    }
+
+    /**
+     * Reads the next zip entry from this ZipInputStream.
+     */
+    public ZipEntry getNextEntry() throws IOException {
+        if (currentEntry != null) {
             closeEntry();
         }
-		if (entriesEnd) {
+        if (entriesEnd) {
             return null;
         }
 
-		int x = 0, count = 0;
-		while (count != 4) {
-			count += x = in.read(hdrBuf, count, 4 - count);
-			if (x == -1) {
+        int x = 0, count = 0;
+        while (count != 4) {
+            count += x = in.read(hdrBuf, count, 4 - count);
+            if (x == -1) {
                 return null;
             }
-		}
-		long hdr = getLong(hdrBuf, 0);
-		if (hdr == CENSIG) {
-			entriesEnd = true;
-			return null;
-		}
-		if (hdr != LOCSIG) {
+        }
+        long hdr = getLong(hdrBuf, 0);
+        if (hdr == CENSIG) {
+            entriesEnd = true;
+            return null;
+        }
+        if (hdr != LOCSIG) {
             return null;
         }
 
-		// Read the local header
-		count = 0;
-		while (count != (LOCHDR - LOCVER)) {
-			count += x = in.read(hdrBuf, count, (LOCHDR - LOCVER) - count);
-			if (x == -1) {
+        // Read the local header
+        count = 0;
+        while (count != (LOCHDR - LOCVER)) {
+            count += x = in.read(hdrBuf, count, (LOCHDR - LOCVER) - count);
+            if (x == -1) {
                 throw new EOFException();
             }
-		}
-		int version = getShort(hdrBuf, 0) & 0xff;
-		if (version > ZIPLocalHeaderVersionNeeded) {
+        }
+        int version = getShort(hdrBuf, 0) & 0xff;
+        if (version > ZIPLocalHeaderVersionNeeded) {
             throw new ZipException(Messages.getString("archive.22")); //$NON-NLS-1$
         }
-		int flags = getShort(hdrBuf, LOCFLG - LOCVER);
-		hasDD = ((flags & ZIPDataDescriptorFlag) == ZIPDataDescriptorFlag);
-		int cetime = getShort(hdrBuf, LOCTIM - LOCVER);
-		int cemodDate = getShort(hdrBuf, LOCTIM - LOCVER + 2);
-		int cecompressionMethod = getShort(hdrBuf, LOCHOW - LOCVER);
-		long cecrc = 0, cecompressedSize = 0, cesize = -1;
-		if (!hasDD) {
-			cecrc = getLong(hdrBuf, LOCCRC - LOCVER);
-			cecompressedSize = getLong(hdrBuf, LOCSIZ - LOCVER);
-			cesize = getLong(hdrBuf, LOCLEN - LOCVER);
-		}
-		int flen = getShort(hdrBuf, LOCNAM - LOCVER);
-		if (flen == 0) {
+        int flags = getShort(hdrBuf, LOCFLG - LOCVER);
+        hasDD = ((flags & ZIPDataDescriptorFlag) == ZIPDataDescriptorFlag);
+        int cetime = getShort(hdrBuf, LOCTIM - LOCVER);
+        int cemodDate = getShort(hdrBuf, LOCTIM - LOCVER + 2);
+        int cecompressionMethod = getShort(hdrBuf, LOCHOW - LOCVER);
+        long cecrc = 0, cecompressedSize = 0, cesize = -1;
+        if (!hasDD) {
+            cecrc = getLong(hdrBuf, LOCCRC - LOCVER);
+            cecompressedSize = getLong(hdrBuf, LOCSIZ - LOCVER);
+            cesize = getLong(hdrBuf, LOCLEN - LOCVER);
+        }
+        int flen = getShort(hdrBuf, LOCNAM - LOCVER);
+        if (flen == 0) {
             throw new ZipException(Messages.getString("archive.23")); //$NON-NLS-1$
         }
-		int elen = getShort(hdrBuf, LOCEXT - LOCVER);
+        int elen = getShort(hdrBuf, LOCEXT - LOCVER);
 
-		count = 0;
-		if (flen > nameBuf.length) {
-			nameBuf = new byte[flen];
-			charBuf = new char[flen];
-		}
-		while (count != flen) {
-			count += x = in.read(nameBuf, count, flen - count);
-			if (x == -1) {
+        count = 0;
+        if (flen > nameBuf.length) {
+            nameBuf = new byte[flen];
+            charBuf = new char[flen];
+        }
+        while (count != flen) {
+            count += x = in.read(nameBuf, count, flen - count);
+            if (x == -1) {
                 throw new EOFException();
             }
-		}
-		currentEntry = createZipEntry(Util.convertUTF8WithBuf(nameBuf, charBuf,
-				0, flen));
-		currentEntry.time = cetime;
-		currentEntry.modDate = cemodDate;
-		currentEntry.setMethod(cecompressionMethod);
-		if (cesize != -1) {
-			currentEntry.setCrc(cecrc);
-			currentEntry.setSize(cesize);
-			currentEntry.setCompressedSize(cecompressedSize);
-		}
-		if (elen > 0) {
-			count = 0;
-			byte[] e = new byte[elen];
-			while (count != elen) {
-				count += x = in.read(e, count, elen - count);
-				if (x == -1) {
+        }
+        currentEntry = createZipEntry(Util.convertUTF8WithBuf(nameBuf, charBuf,
+                0, flen));
+        currentEntry.time = cetime;
+        currentEntry.modDate = cemodDate;
+        currentEntry.setMethod(cecompressionMethod);
+        if (cesize != -1) {
+            currentEntry.setCrc(cecrc);
+            currentEntry.setSize(cesize);
+            currentEntry.setCompressedSize(cecompressedSize);
+        }
+        if (elen > 0) {
+            count = 0;
+            byte[] e = new byte[elen];
+            while (count != elen) {
+                count += x = in.read(e, count, elen - count);
+                if (x == -1) {
                     throw new EOFException();
                 }
-			}
-			currentEntry.setExtra(e);
-		}
-		return currentEntry;
-	}
-
-	/* Read 4 bytes from the buffer and store it as an int */
-
-	/**
-	 * Reads up to the specified number of uncompressed bytes into the buffer
-	 * starting at the offset.
-	 * 
-	 * @param buffer
-	 *            a byte array
-	 * @param start
-	 *            the starting offset into the buffer
-	 * @param length
-	 *            the number of bytes to read
-	 * @return the number of bytes read
-	 */
-	@Override
+            }
+            currentEntry.setExtra(e);
+        }
+        return currentEntry;
+    }
+
+    /* Read 4 bytes from the buffer and store it as an int */
+
+    /**
+     * Reads up to the specified number of uncompressed bytes into the buffer
+     * starting at the offset.
+     * 
+     * @param buffer
+     *            a byte array
+     * @param start
+     *            the starting offset into the buffer
+     * @param length
+     *            the number of bytes to read
+     * @return the number of bytes read
+     */
+    @Override
     public int read(byte[] buffer, int start, int length) throws IOException {
-		if (zipClosed) {
+        if (zipClosed) {
             throw new IOException(Messages.getString("archive.1E")); //$NON-NLS-1$
         }
-		if (inf.finished() || currentEntry == null) {
+        if (inf.finished() || currentEntry == null) {
             return -1;
         }
-		// avoid int overflow, check null buffer
-		if (start <= buffer.length && length >= 0 && start >= 0
-				&& buffer.length - start >= length) {
-			if (currentEntry.compressionMethod == STORED) {
-				int csize = (int) currentEntry.size;
-				if (inRead >= csize) {
+        // avoid int overflow, check null buffer
+        if (start <= buffer.length && length >= 0 && start >= 0
+                && buffer.length - start >= length) {
+            if (currentEntry.compressionMethod == STORED) {
+                int csize = (int) currentEntry.size;
+                if (inRead >= csize) {
                     return -1;
                 }
-				if (lastRead >= len) {
-					lastRead = 0;
-					if ((len = in.read(buf)) == -1) {
+                if (lastRead >= len) {
+                    lastRead = 0;
+                    if ((len = in.read(buf)) == -1) {
                         return -1;
                     }
-					entryIn += len;
-				}
-				int toRead = length > len ? len - lastRead : length;
-				if ((csize - inRead) < toRead) {
+                    entryIn += len;
+                }
+                int toRead = length > len ? len - lastRead : length;
+                if ((csize - inRead) < toRead) {
                     toRead = csize - inRead;
                 }
-				System.arraycopy(buf, lastRead, buffer, start, toRead);
-				lastRead += toRead;
-				inRead += toRead;
-				crc.update(buffer, start, toRead);
-				return toRead;
-			}
-			if (inf.needsInput()) {
-				fill();
-				if (len > 0) {
+                System.arraycopy(buf, lastRead, buffer, start, toRead);
+                lastRead += toRead;
+                inRead += toRead;
+                crc.update(buffer, start, toRead);
+                return toRead;
+            }
+            if (inf.needsInput()) {
+                fill();
+                if (len > 0) {
                     entryIn += len;
                 }
-			}
-			int read = 0;
-			try {
-				read = inf.inflate(buffer, start, length);
-			} catch (DataFormatException e) {
-				throw new ZipException(e.getMessage());
-			}
-			if (read == 0 && inf.finished()) {
+            }
+            int read = 0;
+            try {
+                read = inf.inflate(buffer, start, length);
+            } catch (DataFormatException e) {
+                throw new ZipException(e.getMessage());
+            }
+            if (read == 0 && inf.finished()) {
                 return -1;
             }
-			crc.update(buffer, start, read);
-			return read;
-		}
-		throw new ArrayIndexOutOfBoundsException();
-	}
-
-	/**
-	 * Skips up to the specified number of bytes in the current zip entry.
-	 * 
-	 * @param value
-	 *            the number of bytes to skip
-	 * @return the number of bytes skipped
-	 */
-	@Override
+            crc.update(buffer, start, read);
+            return read;
+        }
+        throw new ArrayIndexOutOfBoundsException();
+    }
+
+    /**
+     * Skips up to the specified number of bytes in the current zip entry.
+     * 
+     * @param value
+     *            the number of bytes to skip
+     * @return the number of bytes skipped
+     */
+    @Override
     public long skip(long value) throws IOException {
-		if (value >= 0) {
-			long skipped = 0;
-			byte[] b = new byte[1024];
-			while (skipped != value) {
-				long rem = value - skipped;
-				int x = read(b, 0, (int) (b.length > rem ? rem : b.length));
-				if (x == -1) {
+        if (value >= 0) {
+            long skipped = 0;
+            byte[] b = new byte[1024];
+            while (skipped != value) {
+                long rem = value - skipped;
+                int x = read(b, 0, (int) (b.length > rem ? rem : b.length));
+                if (x == -1) {
                     return skipped;
                 }
-				skipped += x;
-			}
-			return skipped;
-		}
+                skipped += x;
+            }
+            return skipped;
+        }
         throw new IllegalArgumentException();
-}
+    }
 
-	/**
-	 * Answers 1 if the EOF has been reached, otherwise returns 0.
-	 * 
-	 * @return 0 after EOF of current entry, 1 otherwise
-	 */
-	@Override
+    /**
+     * Answers 1 if the EOF has been reached, otherwise returns 0.
+     * 
+     * @return 0 after EOF of current entry, 1 otherwise
+     */
+    @Override
     public int available() throws IOException {
-		if (zipClosed) {
+        if (zipClosed) {
             throw new IOException(Messages.getString("archive.1E")); //$NON-NLS-1$
         }
-		if (currentEntry == null) {
+        if (currentEntry == null) {
             return 1;
         }
-		if (currentEntry.compressionMethod == STORED) {
-			if (inRead >= currentEntry.size) {
+        if (currentEntry.compressionMethod == STORED) {
+            if (inRead >= currentEntry.size) {
                 return 0;
             }
-		} else {
-			if (inf.finished()) {
+        } else {
+            if (inf.finished()) {
                 return 0;
             }
-		}
-		return 1;
-	}
-
-	protected ZipEntry createZipEntry(String name) {
-		return new ZipEntry(name);
-	}
-
-	private int getShort(byte[] buffer, int off) {
-		return (buffer[off] & 0xFF) | ((buffer[off + 1] & 0xFF) << 8);
-	}
-
-	private long getLong(byte[] buffer, int off) {
-		long l = 0;
-		l |= (buffer[off] & 0xFF);
-		l |= (buffer[off + 1] & 0xFF) << 8;
-		l |= (buffer[off + 2] & 0xFF) << 16;
-		l |= ((long) (buffer[off + 3] & 0xFF)) << 24;
-		return l;
-	}
+        }
+        return 1;
+    }
+
+    protected ZipEntry createZipEntry(String name) {
+        return new ZipEntry(name);
+    }
+
+    private int getShort(byte[] buffer, int off) {
+        return (buffer[off] & 0xFF) | ((buffer[off + 1] & 0xFF) << 8);
+    }
+
+    private long getLong(byte[] buffer, int off) {
+        long l = 0;
+        l |= (buffer[off] & 0xFF);
+        l |= (buffer[off + 1] & 0xFF) << 8;
+        l |= (buffer[off + 2] & 0xFF) << 16;
+        l |= ((long) (buffer[off + 3] & 0xFF)) << 24;
+        return l;
+    }
 }

Modified: harmony/enhanced/classlib/branches/java6/modules/archive/src/main/java/java/util/zip/ZipOutputStream.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/archive/src/main/java/java/util/zip/ZipOutputStream.java?view=diff&rev=556825&r1=556824&r2=556825
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/archive/src/main/java/java/util/zip/ZipOutputStream.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/archive/src/main/java/java/util/zip/ZipOutputStream.java Mon Jul 16 23:30:22 2007
@@ -17,7 +17,6 @@
 
 package java.util.zip;
 
-
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.OutputStream;
@@ -33,392 +32,393 @@
  * @see ZipEntry
  */
 public class ZipOutputStream extends DeflaterOutputStream implements
-		ZipConstants {
+        ZipConstants {
 
-	public static final int DEFLATED = 8;
+    public static final int DEFLATED = 8;
 
-	public static final int STORED = 0;
+    public static final int STORED = 0;
 
-	static final int ZIPDataDescriptorFlag = 8;
+    static final int ZIPDataDescriptorFlag = 8;
 
-	static final int ZIPLocalHeaderVersionNeeded = 20;
+    static final int ZIPLocalHeaderVersionNeeded = 20;
 
-	private String comment;
+    private String comment;
 
-	private final Vector<String> entries = new Vector<String>();
+    private final Vector<String> entries = new Vector<String>();
 
-	private int compressMethod = DEFLATED;
+    private int compressMethod = DEFLATED;
 
-	private int compressLevel = Deflater.DEFAULT_COMPRESSION;
+    private int compressLevel = Deflater.DEFAULT_COMPRESSION;
 
-	private ByteArrayOutputStream cDir = new ByteArrayOutputStream();
+    private ByteArrayOutputStream cDir = new ByteArrayOutputStream();
 
-	private ZipEntry currentEntry;
+    private ZipEntry currentEntry;
 
-	private final CRC32 crc = new CRC32();
+    private final CRC32 crc = new CRC32();
 
-	private int offset = 0, curOffset = 0, nameLength;
+    private int offset = 0, curOffset = 0, nameLength;
 
-	private byte[] nameBytes;
+    private byte[] nameBytes;
 
-	/**
-	 * Constructs a new ZipOutputStream on p1
-	 * 
-	 * @param p1
-	 *            OutputStream The InputStream to output to
-	 */
-	public ZipOutputStream(OutputStream p1) {
-		super(p1, new Deflater(Deflater.DEFAULT_COMPRESSION, true));
-	}
+    /**
+     * Constructs a new ZipOutputStream on p1
+     * 
+     * @param p1
+     *            OutputStream The InputStream to output to
+     */
+    public ZipOutputStream(OutputStream p1) {
+        super(p1, new Deflater(Deflater.DEFAULT_COMPRESSION, true));
+    }
 
-	/**
-	 * Closes the current ZipEntry if any. Closes the underlying output stream.
-	 * If the stream is already closed this method does nothing.
-	 * 
-	 * @exception IOException
-	 *                If an error occurs closing the stream
-	 */
-	@Override
+    /**
+     * Closes the current ZipEntry if any. Closes the underlying output stream.
+     * If the stream is already closed this method does nothing.
+     * 
+     * @exception IOException
+     *                If an error occurs closing the stream
+     */
+    @Override
     public void close() throws IOException {
-		if (out != null) {
-			finish();
-			out.close();
-			out = null;
-		}
-	}
-
-	/**
-	 * Closes the current ZipEntry. Any entry terminal data is written to the
-	 * underlying stream.
-	 * 
-	 * @exception IOException
-	 *                If an error occurs closing the entry
-	 */
-	public void closeEntry() throws IOException {
-		if (cDir == null) {
+        if (out != null) {
+            finish();
+            out.close();
+            out = null;
+        }
+    }
+
+    /**
+     * Closes the current ZipEntry. Any entry terminal data is written to the
+     * underlying stream.
+     * 
+     * @exception IOException
+     *                If an error occurs closing the entry
+     */
+    public void closeEntry() throws IOException {
+        if (cDir == null) {
             throw new IOException(Messages.getString("archive.1E")); //$NON-NLS-1$
         }
-		if (currentEntry == null) {
+        if (currentEntry == null) {
             return;
         }
-		if (currentEntry.getMethod() == DEFLATED) {
-			super.finish();
-		}
-
-		// Verify values for STORED types
-		if (currentEntry.getMethod() == STORED) {
-			if (crc.getValue() != currentEntry.crc) {
+        if (currentEntry.getMethod() == DEFLATED) {
+            super.finish();
+        }
+
+        // Verify values for STORED types
+        if (currentEntry.getMethod() == STORED) {
+            if (crc.getValue() != currentEntry.crc) {
                 throw new ZipException(Messages.getString("archive.20")); //$NON-NLS-1$
             }
-			if (currentEntry.size != crc.tbytes) {
+            if (currentEntry.size != crc.tbytes) {
                 throw new ZipException(Messages.getString("archive.21")); //$NON-NLS-1$
             }
-		}
-		curOffset = LOCHDR;
+        }
+        curOffset = LOCHDR;
 
-		// Write the DataDescriptor
-		if (currentEntry.getMethod() != STORED) {
-			curOffset += EXTHDR;
-			writeLong(out, EXTSIG);
-			writeLong(out, currentEntry.crc = crc.getValue());
-			writeLong(out, currentEntry.compressedSize = def.getTotalOut());
-			writeLong(out, currentEntry.size = def.getTotalIn());
-		}
-		// Update the CentralDirectory
-		writeLong(cDir, CENSIG);
-		writeShort(cDir, ZIPLocalHeaderVersionNeeded); // Version created
-		writeShort(cDir, ZIPLocalHeaderVersionNeeded); // Version to extract
-		writeShort(cDir, currentEntry.getMethod() == STORED ? 0
-				: ZIPDataDescriptorFlag);
-		writeShort(cDir, currentEntry.getMethod());
-		writeShort(cDir, currentEntry.time);
-		writeShort(cDir, currentEntry.modDate);
-		writeLong(cDir, crc.getValue());
-		if (currentEntry.getMethod() == DEFLATED) {
-			curOffset += writeLong(cDir, def.getTotalOut());
-			writeLong(cDir, def.getTotalIn());
-		} else {
-			curOffset += writeLong(cDir, crc.tbytes);
-			writeLong(cDir, crc.tbytes);
-		}
-		curOffset += writeShort(cDir, nameLength);
-		if (currentEntry.extra != null) {
+        // Write the DataDescriptor
+        if (currentEntry.getMethod() != STORED) {
+            curOffset += EXTHDR;
+            writeLong(out, EXTSIG);
+            writeLong(out, currentEntry.crc = crc.getValue());
+            writeLong(out, currentEntry.compressedSize = def.getTotalOut());
+            writeLong(out, currentEntry.size = def.getTotalIn());
+        }
+        // Update the CentralDirectory
+        writeLong(cDir, CENSIG);
+        writeShort(cDir, ZIPLocalHeaderVersionNeeded); // Version created
+        writeShort(cDir, ZIPLocalHeaderVersionNeeded); // Version to extract
+        writeShort(cDir, currentEntry.getMethod() == STORED ? 0
+                : ZIPDataDescriptorFlag);
+        writeShort(cDir, currentEntry.getMethod());
+        writeShort(cDir, currentEntry.time);
+        writeShort(cDir, currentEntry.modDate);
+        writeLong(cDir, crc.getValue());
+        if (currentEntry.getMethod() == DEFLATED) {
+            curOffset += writeLong(cDir, def.getTotalOut());
+            writeLong(cDir, def.getTotalIn());
+        } else {
+            curOffset += writeLong(cDir, crc.tbytes);
+            writeLong(cDir, crc.tbytes);
+        }
+        curOffset += writeShort(cDir, nameLength);
+        if (currentEntry.extra != null) {
             curOffset += writeShort(cDir, currentEntry.extra.length);
         } else {
             writeShort(cDir, 0);
         }
-		String c;
-		if ((c = currentEntry.getComment()) != null) {
+        String c;
+        if ((c = currentEntry.getComment()) != null) {
             writeShort(cDir, c.length());
         } else {
             writeShort(cDir, 0);
         }
-		writeShort(cDir, 0); // Disk Start
-		writeShort(cDir, 0); // Internal File Attributes
-		writeLong(cDir, 0); // External File Attributes
-		writeLong(cDir, offset);
-		cDir.write(nameBytes);
-		nameBytes = null;
-		if (currentEntry.extra != null) {
+        writeShort(cDir, 0); // Disk Start
+        writeShort(cDir, 0); // Internal File Attributes
+        writeLong(cDir, 0); // External File Attributes
+        writeLong(cDir, offset);
+        cDir.write(nameBytes);
+        nameBytes = null;
+        if (currentEntry.extra != null) {
             cDir.write(currentEntry.extra);
         }
-		offset += curOffset;
-		if (c != null) {
+        offset += curOffset;
+        if (c != null) {
             cDir.write(c.getBytes());
         }
-		currentEntry = null;
-		crc.reset();
-		def.reset();
-		done = false;
-	}
-
-	/**
-	 * Indicates that all entries have been written to the stream. Any terminal
-	 * ZipFile information is written to the underlying stream.
-	 * 
-	 * @exception IOException
-	 *                If an error occurs while finishing
-	 */
-	@Override
+        currentEntry = null;
+        crc.reset();
+        def.reset();
+        done = false;
+    }
+
+    /**
+     * Indicates that all entries have been written to the stream. Any terminal
+     * ZipFile information is written to the underlying stream.
+     * 
+     * @exception IOException
+     *                If an error occurs while finishing
+     */
+    @Override
     public void finish() throws IOException {
-		if (out == null) {
+        if (out == null) {
             throw new IOException(Messages.getString("archive.1E")); //$NON-NLS-1$
         }
-		if (cDir == null) {
+        if (cDir == null) {
             return;
         }
-		if (entries.size() == 0) {
+        if (entries.size() == 0) {
             throw new ZipException(Messages.getString("archive.28")); //$NON-NLS-1$;
         }
-		if (currentEntry != null) {
+        if (currentEntry != null) {
             closeEntry();
         }
-		int cdirSize = cDir.size();
-		// Write Central Dir End
-		writeLong(cDir, ENDSIG);
-		writeShort(cDir, 0); // Disk Number
-		writeShort(cDir, 0); // Start Disk
-		writeShort(cDir, entries.size()); // Number of entries
-		writeShort(cDir, entries.size()); // Number of entries
-		writeLong(cDir, cdirSize); // Size of central dir
-		writeLong(cDir, offset); // Offset of central dir
-		if (comment != null) {
-			writeShort(cDir, comment.length());
-			cDir.write(comment.getBytes());
-		} else {
+        int cdirSize = cDir.size();
+        // Write Central Dir End
+        writeLong(cDir, ENDSIG);
+        writeShort(cDir, 0); // Disk Number
+        writeShort(cDir, 0); // Start Disk
+        writeShort(cDir, entries.size()); // Number of entries
+        writeShort(cDir, entries.size()); // Number of entries
+        writeLong(cDir, cdirSize); // Size of central dir
+        writeLong(cDir, offset); // Offset of central dir
+        if (comment != null) {
+            writeShort(cDir, comment.length());
+            cDir.write(comment.getBytes());
+        } else {
             writeShort(cDir, 0);
         }
-		// Write the central dir
-		out.write(cDir.toByteArray());
-		cDir = null;
-
-	}
-
-	/**
-	 * Writes entry information for ze to the underlying stream. Data associated
-	 * with the entry can then be written using write(). After data is written
-	 * closeEntry() must be called to complete the storing of ze on the
-	 * underlying stream.
-	 * 
-	 * @param ze
-	 *            ZipEntry to store
-	 * @exception IOException
-	 *                If an error occurs storing the entry
-	 * @see #write
-	 */
-	public void putNextEntry(ZipEntry ze) throws java.io.IOException {
+        // Write the central dir
+        out.write(cDir.toByteArray());
+        cDir = null;
+
+    }
+
+    /**
+     * Writes entry information for ze to the underlying stream. Data associated
+     * with the entry can then be written using write(). After data is written
+     * closeEntry() must be called to complete the storing of ze on the
+     * underlying stream.
+     * 
+     * @param ze
+     *            ZipEntry to store
+     * @exception IOException
+     *                If an error occurs storing the entry
+     * @see #write
+     */
+    public void putNextEntry(ZipEntry ze) throws java.io.IOException {
         if (currentEntry != null) {
             closeEntry();
         }
-		if (ze.getMethod() == STORED
-				|| (compressMethod == STORED && ze.getMethod() == -1)) {
-			if (ze.crc == -1) {
+        if (ze.getMethod() == STORED
+                || (compressMethod == STORED && ze.getMethod() == -1)) {
+            if (ze.crc == -1) {
                 /* [MSG "archive.20", "Crc mismatch"] */
                 throw new ZipException(Messages.getString("archive.20")); //$NON-NLS-1$
             }
-			if (ze.size == -1 && ze.compressedSize == -1) {
+            if (ze.size == -1 && ze.compressedSize == -1) {
                 /* [MSG "archive.21", "Size mismatch"] */
                 throw new ZipException(Messages.getString("archive.21")); //$NON-NLS-1$
             }
-			if (ze.size != ze.compressedSize && ze.compressedSize != -1
-					&& ze.size != -1) {
+            if (ze.size != ze.compressedSize && ze.compressedSize != -1
+                    && ze.size != -1) {
                 /* [MSG "archive.21", "Size mismatch"] */
                 throw new ZipException(Messages.getString("archive.21")); //$NON-NLS-1$
             }
-		}
+        }
         /* [MSG "archive.1E", "Stream is closed"] */
-		if (cDir == null) {
+        if (cDir == null) {
             throw new IOException(Messages.getString("archive.1E")); //$NON-NLS-1$
         }
-		if (entries.contains(ze.name)) {
+        if (entries.contains(ze.name)) {
             /* [MSG "archive.29", "Entry already exists: {0}"] */
             throw new ZipException(Messages.getString("archive.29", ze.name)); //$NON-NLS-1$
         }
-		nameLength = utf8Count(ze.name);
-		if (nameLength > 0xffff) {
+        nameLength = utf8Count(ze.name);
+        if (nameLength > 0xffff) {
             /* [MSG "archive.2A", "Name too long: {0}"] */
-            throw new IllegalArgumentException(Messages.getString("archive.2A", ze.name)); //$NON-NLS-1$
+            throw new IllegalArgumentException(Messages.getString(
+                    "archive.2A", ze.name)); //$NON-NLS-1$
         }
 
-		def.setLevel(compressLevel);
-		currentEntry = ze;
-		entries.add(currentEntry.name);
-		if (currentEntry.getMethod() == -1) {
+        def.setLevel(compressLevel);
+        currentEntry = ze;
+        entries.add(currentEntry.name);
+        if (currentEntry.getMethod() == -1) {
             currentEntry.setMethod(compressMethod);
         }
-		writeLong(out, LOCSIG); // Entry header
-		writeShort(out, ZIPLocalHeaderVersionNeeded); // Extraction version
-		writeShort(out, currentEntry.getMethod() == STORED ? 0
-				: ZIPDataDescriptorFlag);
-		writeShort(out, currentEntry.getMethod());
-		if (currentEntry.getTime() == -1) {
+        writeLong(out, LOCSIG); // Entry header
+        writeShort(out, ZIPLocalHeaderVersionNeeded); // Extraction version
+        writeShort(out, currentEntry.getMethod() == STORED ? 0
+                : ZIPDataDescriptorFlag);
+        writeShort(out, currentEntry.getMethod());
+        if (currentEntry.getTime() == -1) {
             currentEntry.setTime(System.currentTimeMillis());
         }
-		writeShort(out, currentEntry.time);
-		writeShort(out, currentEntry.modDate);
+        writeShort(out, currentEntry.time);
+        writeShort(out, currentEntry.modDate);
 
-		if (currentEntry.getMethod() == STORED) {
-			if (currentEntry.size == -1) {
+        if (currentEntry.getMethod() == STORED) {
+            if (currentEntry.size == -1) {
                 currentEntry.size = currentEntry.compressedSize;
             } else if (currentEntry.compressedSize == -1) {
                 currentEntry.compressedSize = currentEntry.size;
             }
-			writeLong(out, currentEntry.crc);
-			writeLong(out, currentEntry.size);
-			writeLong(out, currentEntry.size);
-		} else {
-			writeLong(out, 0);
-			writeLong(out, 0);
-			writeLong(out, 0);
-		}
-		writeShort(out, nameLength);
-		if (currentEntry.extra != null) {
+            writeLong(out, currentEntry.crc);
+            writeLong(out, currentEntry.size);
+            writeLong(out, currentEntry.size);
+        } else {
+            writeLong(out, 0);
+            writeLong(out, 0);
+            writeLong(out, 0);
+        }
+        writeShort(out, nameLength);
+        if (currentEntry.extra != null) {
             writeShort(out, currentEntry.extra.length);
         } else {
             writeShort(out, 0);
         }
-		nameBytes = toUTF8Bytes(currentEntry.name, nameLength);
-		out.write(nameBytes);
-		if (currentEntry.extra != null) {
+        nameBytes = toUTF8Bytes(currentEntry.name, nameLength);
+        out.write(nameBytes);
+        if (currentEntry.extra != null) {
             out.write(currentEntry.extra);
         }
-	}
+    }
 
-	/**
-	 * Sets the ZipFile comment associated with the file being written.
-	 * 
-	 */
-	public void setComment(String comment) {
-		if (comment.length() > 0xFFFF) {
+    /**
+     * Sets the ZipFile comment associated with the file being written.
+     * 
+     */
+    public void setComment(String comment) {
+        if (comment.length() > 0xFFFF) {
             throw new IllegalArgumentException(Messages.getString("archive.2B")); //$NON-NLS-1$
         }
-		this.comment = comment;
-	}
+        this.comment = comment;
+    }
 
-	/**
-	 * Sets the compression level to be used for writing entry data. This level
-	 * may be set on a per entry basis. level must have a value between 0 and
-	 * 10.
-	 * 
-	 */
-	public void setLevel(int level) {
-		if (level < Deflater.DEFAULT_COMPRESSION
-				|| level > Deflater.BEST_COMPRESSION) {
+    /**
+     * Sets the compression level to be used for writing entry data. This level
+     * may be set on a per entry basis. level must have a value between 0 and
+     * 10.
+     * 
+     */
+    public void setLevel(int level) {
+        if (level < Deflater.DEFAULT_COMPRESSION
+                || level > Deflater.BEST_COMPRESSION) {
             throw new IllegalArgumentException();
         }
-		compressLevel = level;
-	}
+        compressLevel = level;
+    }
 
-	/**
-	 * Sets the compression method to be used when compressing entry data.
-	 * method must be one of STORED or DEFLATED.
-	 * 
-	 * @param method
-	 *            Compression method to use
-	 */
-	public void setMethod(int method) {
-		if (method != STORED && method != DEFLATED) {
+    /**
+     * Sets the compression method to be used when compressing entry data.
+     * method must be one of STORED or DEFLATED.
+     * 
+     * @param method
+     *            Compression method to use
+     */
+    public void setMethod(int method) {
+        if (method != STORED && method != DEFLATED) {
             throw new IllegalArgumentException();
         }
-		compressMethod = method;
+        compressMethod = method;
 
-	}
+    }
 
-	private long writeLong(OutputStream os, long i) throws java.io.IOException {
-		// Write out the long value as an unsigned int
-		os.write((int) (i & 0xFF));
-		os.write((int) (i >> 8) & 0xFF);
-		os.write((int) (i >> 16) & 0xFF);
-		os.write((int) (i >> 24) & 0xFF);
-		return i;
-	}
-
-	private int writeShort(OutputStream os, int i) throws java.io.IOException {
-		os.write(i & 0xFF);
-		os.write((i >> 8) & 0xFF);
-		return i;
-
-	}
-
-	/**
-	 * Writes data for the current entry to the underlying stream.
-	 * 
-	 * @exception IOException
-	 *                If an error occurs writing to the stream
-	 */
-	@Override
+    private long writeLong(OutputStream os, long i) throws java.io.IOException {
+        // Write out the long value as an unsigned int
+        os.write((int) (i & 0xFF));
+        os.write((int) (i >> 8) & 0xFF);
+        os.write((int) (i >> 16) & 0xFF);
+        os.write((int) (i >> 24) & 0xFF);
+        return i;
+    }
+
+    private int writeShort(OutputStream os, int i) throws java.io.IOException {
+        os.write(i & 0xFF);
+        os.write((i >> 8) & 0xFF);
+        return i;
+
+    }
+
+    /**
+     * Writes data for the current entry to the underlying stream.
+     * 
+     * @exception IOException
+     *                If an error occurs writing to the stream
+     */
+    @Override
     public void write(byte[] buffer, int off, int nbytes)
-			throws java.io.IOException {
-		// avoid int overflow, check null buf
-		if ((off < 0 || (nbytes < 0) || off > buffer.length)
-				|| (buffer.length - off < nbytes)) {
-			throw new IndexOutOfBoundsException();
-		}
+            throws java.io.IOException {
+        // avoid int overflow, check null buf
+        if ((off < 0 || (nbytes < 0) || off > buffer.length)
+                || (buffer.length - off < nbytes)) {
+            throw new IndexOutOfBoundsException();
+        }
 
-		if (currentEntry == null) {
+        if (currentEntry == null) {
             /* [MSG "archive.2C", "No active entry"] */
             throw new ZipException(Messages.getString("archive.2C")); //$NON-NLS-1$
         }
 
-		if (currentEntry.getMethod() == STORED) {
+        if (currentEntry.getMethod() == STORED) {
             out.write(buffer, off, nbytes);
         } else {
             super.write(buffer, off, nbytes);
         }
-		crc.update(buffer, off, nbytes);
-	}
+        crc.update(buffer, off, nbytes);
+    }
 
-	static int utf8Count(String value) {
-		int total = 0;
-		for (int i = value.length(); --i >= 0;) {
-			char ch = value.charAt(i);
-			if (ch < 0x80) {
+    static int utf8Count(String value) {
+        int total = 0;
+        for (int i = value.length(); --i >= 0;) {
+            char ch = value.charAt(i);
+            if (ch < 0x80) {
                 total++;
             } else if (ch < 0x800) {
                 total += 2;
             } else {
                 total += 3;
             }
-		}
-		return total;
-	}
-
-	static byte[] toUTF8Bytes(String value, int length) {
-		byte[] result = new byte[length];
-		int pos = result.length;
-		for (int i = value.length(); --i >= 0;) {
-			char ch = value.charAt(i);
-			if (ch < 0x80) {
+        }
+        return total;
+    }
+
+    static byte[] toUTF8Bytes(String value, int length) {
+        byte[] result = new byte[length];
+        int pos = result.length;
+        for (int i = value.length(); --i >= 0;) {
+            char ch = value.charAt(i);
+            if (ch < 0x80) {
                 result[--pos] = (byte) ch;
             } else if (ch < 0x800) {
-				result[--pos] = (byte) (0x80 | (ch & 0x3f));
-				result[--pos] = (byte) (0xc0 | (ch >> 6));
-			} else {
-				result[--pos] = (byte) (0x80 | (ch & 0x3f));
-				result[--pos] = (byte) (0x80 | ((ch >> 6) & 0x3f));
-				result[--pos] = (byte) (0xe0 | (ch >> 12));
-			}
-		}
-		return result;
-	}
+                result[--pos] = (byte) (0x80 | (ch & 0x3f));
+                result[--pos] = (byte) (0xc0 | (ch >> 6));
+            } else {
+                result[--pos] = (byte) (0x80 | (ch & 0x3f));
+                result[--pos] = (byte) (0x80 | ((ch >> 6) & 0x3f));
+                result[--pos] = (byte) (0xe0 | (ch >> 12));
+            }
+        }
+        return result;
+    }
 }

Modified: harmony/enhanced/classlib/branches/java6/modules/archive/src/main/java/org/apache/harmony/archive/internal/nls/Messages.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/archive/src/main/java/org/apache/harmony/archive/internal/nls/Messages.java?view=diff&rev=556825&r1=556824&r2=556825
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/archive/src/main/java/org/apache/harmony/archive/internal/nls/Messages.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/archive/src/main/java/org/apache/harmony/archive/internal/nls/Messages.java Mon Jul 16 23:30:22 2007
@@ -23,7 +23,6 @@
 
 package org.apache.harmony.archive.internal.nls;
 
-
 import java.security.AccessController;
 import java.security.PrivilegedAction;
 import java.util.Locale;
@@ -138,13 +137,13 @@
             try {
                 format = bundle.getString(msg);
             } catch (MissingResourceException e) {
-                //ignore
+                // ignore
             }
         }
 
         return format(format, args);
     }
-    
+
     /**
      * Generates a formatted text string given a source string containing
      * "argument markers" of the form "{argNum}" where each argNum must be in
@@ -167,7 +166,7 @@
         String[] argStrings = new String[args.length];
         for (int i = 0; i < args.length; ++i) {
             if (args[i] == null)
-                argStrings[i] = "<null>";	//$NON-NLS-1$
+                argStrings[i] = "<null>"; //$NON-NLS-1$
             else
                 argStrings[i] = args[i].toString();
         }
@@ -191,16 +190,16 @@
                             10);
                     if (argnum < 0 || format.charAt(i + 2) != '}') {
                         // Bad format, just print and loop.
-						answer.append(format.substring(lastI, i + 1));
-						lastI = i + 1;
+                        answer.append(format.substring(lastI, i + 1));
+                        lastI = i + 1;
                     } else {
                         // Got a good one!
                         answer.append(format.substring(lastI, i));
                         if (argnum >= argStrings.length)
-                            answer.append("<missing argument>");	//$NON-NLS-1$
+                            answer.append("<missing argument>"); //$NON-NLS-1$
                         else
                             answer.append(argStrings[argnum]);
-						lastI = i + 3;
+                        lastI = i + 3;
                     }
                 }
             }
@@ -224,11 +223,12 @@
                     .doPrivileged(new PrivilegedAction<Object>() {
                         public Object run() {
                             return ResourceBundle.getBundle(resource, locale,
-                                    loader != null ? loader : ClassLoader.getSystemClassLoader());
+                                    loader != null ? loader : ClassLoader
+                                            .getSystemClassLoader());
                         }
                     });
         } catch (MissingResourceException e) {
-            //ignore
+            // ignore
         }
         return null;
     }

Modified: harmony/enhanced/classlib/branches/java6/modules/archive/src/main/java/org/apache/harmony/archive/util/Util.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/archive/src/main/java/org/apache/harmony/archive/util/Util.java?view=diff&rev=556825&r1=556824&r2=556825
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/archive/src/main/java/org/apache/harmony/archive/util/Util.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/archive/src/main/java/org/apache/harmony/archive/util/Util.java Mon Jul 16 23:30:22 2007
@@ -65,19 +65,19 @@
         }
         return buffer.toString();
     }
-    
-    public static final boolean equalsIgnoreCase(String s1, String s2){
+
+    public static final boolean equalsIgnoreCase(String s1, String s2) {
         if (s1 == s2) {
             return true;
         }
-        
+
         if (s1 == null || s2 == null || s1.length() != s2.length()) {
             return false;
         }
 
         char c1, c2;
-        
-        for (int i=0; i< s1.length(); i++) {
+
+        for (int i = 0; i < s1.length(); i++) {
             if ((c1 = s1.charAt(i)) != (c2 = s2.charAt(i))
                     && toASCIIUpperCase(c1) != toASCIIUpperCase(c2)) {
                 return false;

Modified: harmony/enhanced/classlib/branches/java6/modules/awt/src/main/java/common/java/awt/image/BufferedImage.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/awt/src/main/java/common/java/awt/image/BufferedImage.java?view=diff&rev=556825&r1=556824&r2=556825
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/awt/src/main/java/common/java/awt/image/BufferedImage.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/awt/src/main/java/common/java/awt/image/BufferedImage.java Mon Jul 16 23:30:22 2007
@@ -596,7 +596,7 @@
             return true;
         }
         // awt.226=Both tileX and tileY are not equal to 0
-        throw new ArrayIndexOutOfBoundsException(Messages.getString("awt.226")); //$NON-NLS-1$
+        throw new IllegalArgumentException(Messages.getString("awt.226")); //$NON-NLS-1$
     }
 
     public void releaseWritableTile(int tileX, int tileY) {

Modified: harmony/enhanced/classlib/branches/java6/modules/awt/src/main/native/fontlib/shared/ParsingTables.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/awt/src/main/native/fontlib/shared/ParsingTables.cpp?view=diff&rev=556825&r1=556824&r2=556825
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/awt/src/main/native/fontlib/shared/ParsingTables.cpp (original)
+++ harmony/enhanced/classlib/branches/java6/modules/awt/src/main/native/fontlib/shared/ParsingTables.cpp Mon Jul 16 23:30:22 2007
@@ -377,21 +377,21 @@
 						}
 						subFamilyName[j] = 0;
 
-/*#ifdef WIN32
+//#ifdef WIN32
 
-#define COMPARE_IT		(!_wcsicmp((fwchar_t *)subFamilyName,L"Italic"))
-#define COMPARE_BD		(!_wcsicmp((fwchar_t *)subFamilyName,L"Bold"))
-#define COMPARE_BDIT	(!_wcsicmp((fwchar_t *)subFamilyName,L"Bold Italic"))
-#define COMPARE_REG		(!_wcsicmp((fwchar_t *)subFamilyName,L"Regular") || !_wcsicmp((fwchar_t *)subFamilyName,L"Normal"))
+#define COMPARE_IT		(!fwcscmp((ufshort *)subFamilyName,"Italic"))
+#define COMPARE_BD		(!fwcscmp((ufshort *)subFamilyName,"Bold"))
+#define COMPARE_BDIT	(!fwcscmp((ufshort *)subFamilyName,"Bold Italic"))
+#define COMPARE_REG		(!fwcscmp((ufshort *)subFamilyName,"Regular") || !fwcscmp((fwchar_t *)subFamilyName,"Normal"))
 
-#else*/
+/*#else
 
 #define COMPARE_IT		(compare((fwchar_t *)subFamilyName, "Italic"))
 #define COMPARE_BD		(compare((fwchar_t *)subFamilyName, "Bold"))
 #define COMPARE_BDIT	(compare((fwchar_t *)subFamilyName, "Bold Italic"))
 #define COMPARE_REG		(compare((fwchar_t *)subFamilyName, "Regular") || compare((fwchar_t *)subFamilyName, "Normal"))
 
-//#endif
+#endif*/
 
 						if COMPARE_IT
 						{

Modified: harmony/enhanced/classlib/branches/java6/modules/awt/src/main/native/fontlib/shared/TypeDefinition.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/awt/src/main/native/fontlib/shared/TypeDefinition.cpp?view=diff&rev=556825&r1=556824&r2=556825
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/awt/src/main/native/fontlib/shared/TypeDefinition.cpp (original)
+++ harmony/enhanced/classlib/branches/java6/modules/awt/src/main/native/fontlib/shared/TypeDefinition.cpp Mon Jul 16 23:30:22 2007
@@ -33,10 +33,29 @@
 	return counter;
 }
 
+fint fwcscmp(fwchar_t* str1, fchar* str2)
+{
+    if (str1 == 0 || str2 == 0)
+        return (fint)(str1 - (fwchar_t*)str2);
+        
+	fwchar_t* tmpstr1 = str1; 
+	fchar* tmpstr2 = str2;
+	while(*tmpstr1 != 0 || *tmpstr2 !=0)
+	{
+        if (*tmpstr1 != (fwchar_t)(*tmpstr2))
+			return -1;
+
+		tmpstr1++;
+		tmpstr2++;
+	}
+
+	return 0;
+}
+
 fint fwcscmp(fwchar_t* str1, fwchar_t* str2)
 {
     if (str1 == 0 || str2 == 0)
-        return str1 - str2;
+        return (fint)(str1 - str2);
         
 	fwchar_t* tmpstr1 = str1; 
 	fwchar_t* tmpstr2 = str2;

Modified: harmony/enhanced/classlib/branches/java6/modules/awt/src/main/native/fontlib/shared/TypeDefinition.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/awt/src/main/native/fontlib/shared/TypeDefinition.h?view=diff&rev=556825&r1=556824&r2=556825
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/awt/src/main/native/fontlib/shared/TypeDefinition.h (original)
+++ harmony/enhanced/classlib/branches/java6/modules/awt/src/main/native/fontlib/shared/TypeDefinition.h Mon Jul 16 23:30:22 2007
@@ -30,6 +30,7 @@
 typedef unsigned short fwchar_t;
 
 fint fwcslen(fwchar_t* str);
+fint fwcscmp(fwchar_t* str1, fchar* str2);
 fint fwcscmp(fwchar_t* str1, fwchar_t* str2);
 
 #endif

Modified: harmony/enhanced/classlib/branches/java6/modules/awt/src/test/api/java/common/java/awt/image/BufferedImageTest.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/awt/src/test/api/java/common/java/awt/image/BufferedImageTest.java?view=diff&rev=556825&r1=556824&r2=556825
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/awt/src/test/api/java/common/java/awt/image/BufferedImageTest.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/awt/src/test/api/java/common/java/awt/image/BufferedImageTest.java Mon Jul 16 23:30:22 2007
@@ -28,12 +28,14 @@
     
     public final void testGetWritableTile(){
         BufferedImage bi = new BufferedImage(10, 10, BufferedImage.TYPE_INT_ARGB);
-        WritableRaster tile = null;
-        try{
-            tile = bi.getWritableTile(1, 1);
-            assertTrue(true);
-        }catch(ArrayIndexOutOfBoundsException e){
-            fail("Unexpected ArrayIndexOutOfBoundsException was thrown");
+        bi.getWritableTile(1, 1);
+        
+        //Regression test for HARMONY-1658
+        BufferedImage img = new BufferedImage(10, 16, BufferedImage.TYPE_4BYTE_ABGR);
+        try {
+            img.isTileWritable(1,1);
+            fail("IllegalArgumentException is expected");
+        } catch (IllegalArgumentException iae) {
         }
     }
 

Modified: harmony/enhanced/classlib/branches/java6/modules/beans/META-INF/MANIFEST.MF
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/beans/META-INF/MANIFEST.MF?view=diff&rev=556825&r1=556824&r2=556825
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/beans/META-INF/MANIFEST.MF (original)
+++ harmony/enhanced/classlib/branches/java6/modules/beans/META-INF/MANIFEST.MF Mon Jul 16 23:30:22 2007
@@ -24,10 +24,11 @@
  java.util,
  java.util.regex;resolution:=optional,
  javax.accessibility;resolution:=optional,
+ javax.xml.parsers,
  org.apache.harmony.kernel.vm,
+ org.apache.harmony.testframework.serialization;hy_usage=test;resolution:=optional,
  org.xml.sax,
  org.xml.sax.helpers,
- org.apache.harmony.testframework.serialization;hy_usage=test;resolution:=optional,
  tests.util;hy_usage=test;resolution:=optional
 Export-Package: java.beans,
  java.beans.beancontext

Modified: harmony/enhanced/classlib/branches/java6/modules/beans/src/main/java/java/beans/Beans.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/beans/src/main/java/java/beans/Beans.java?view=diff&rev=556825&r1=556824&r2=556825
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/beans/src/main/java/java/beans/Beans.java (original)
+++ harmony/enhanced/classlib/branches/java6/modules/beans/src/main/java/java/beans/Beans.java Mon Jul 16 23:30:22 2007
@@ -116,10 +116,12 @@
         guiAvailable = isGuiAvailable;
     }
 
-    public static synchronized void setDesignTime(boolean isDesignTime)
+    public static void setDesignTime(boolean isDesignTime)
             throws SecurityException {
         checkPropertiesAccess();
-        designTime = isDesignTime;
+        synchronized(Beans.class){
+            designTime = isDesignTime;
+        }
     }
 
     public static synchronized boolean isGuiAvailable() {