--- old/src/share/classes/java/util/zip/ZipFile.java 2013-08-02 13:14:08.000000000 -0700 +++ new/src/share/classes/java/util/zip/ZipFile.java 2013-08-02 13:14:08.000000000 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1995, 2011, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1995, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -567,44 +567,12 @@ e.name = zc.toString(bname, bname.length); } } + e.time = dosToJavaTime(getEntryTime(jzentry)); e.crc = getEntryCrc(jzentry); e.size = getEntrySize(jzentry); - e. csize = getEntryCSize(jzentry); + e.csize = getEntryCSize(jzentry); e.method = getEntryMethod(jzentry); - e.extra = getEntryBytes(jzentry, JZENTRY_EXTRA); - if (e.extra != null) { - byte[] extra = e.extra; - int len = e.extra.length; - int off = 0; - while (off + 4 < len) { - int pos = off; - int tag = get16(extra, pos); - int sz = get16(extra, pos + 2); - pos += 4; - if (pos + sz > len) // invalid data - break; - switch (tag) { - case EXTID_NTFS: - pos += 4; // reserved 4 bytes - if (get16(extra, pos) != 0x0001 || get16(extra, pos + 2) != 24) - break; - e.mtime = winToJavaTime(get64(extra, pos + 4)); - break; - case EXTID_EXTT: - int flag = Byte.toUnsignedInt(extra[pos++]); - if ((flag & 0x1) != 0) { - e.mtime = unixToJavaTime(get32(extra, pos)); - pos += 4; - } - break; - default: // unknown tag - } - off += (sz + 4); - } - } - if (e.mtime == -1) { - e.mtime = dosToJavaTime(getEntryTime(jzentry)); - } + e.setExtra0(getEntryBytes(jzentry, JZENTRY_EXTRA), false); byte[] bcomm = getEntryBytes(jzentry, JZENTRY_COMMENT); if (bcomm == null) { e.comment = null;