e31b37859051d3902e06e4ba384995df7188917f |
02-Dec-2017 |
Hans Boehm <hboehm@google.com> |
Add reachabilityFence, ReachabilitySensitive Add the @ReachabilitySensitive annotation itself, and use it in libcore itself, where needed. Import OpenJDK9+181's reachabilityFence, so that it can be used in preference to the annotation where it makes sense. Java 9's stopgap reachabilityFence implementation doesn't work for us, so replace it with a different stopgap. The libcore changes correct many situations in which finalizers could previously run prematurely according to the JLS. Or they would correct them if we had a real implementation for @ReachabilitySensitive. The ZipFile constructor could close the file before notifying the CloseGuard that it was open. Aside from the ZipFile change, there should be no functional change, yet. Note that the ExemptionMechanism.java fix is the same as upstream. Conspicuously missing: - Any code, e.g. in ART or D8, that actually looks for the annotation. - Uses in frameworks code, where it's probably most critical. Bug: 63934467 Bug: 70906684 Bug: 28342794 Test: Build & boot AOSP Change-Id: I652f0625b39b2ba9ac901d4f63e6aa6cf3b74af5
eflater.java
nflater.java
ipFile.java
|
e1754ddc8656fa8b2c1a0ec828125820a190fd13 |
12-Sep-2017 |
Przemyslaw Szczepaniak <pszczepaniak@google.com> |
Increase ZipFile read buffers size to 64k Fixes performance regression introduced in Android N. Increased size of buffer for Inflater in ZipFile.getInputStream from 8k to 64k. Replaced temp stack in bufferZipFile_read with GetByteArrayElements. ZipFileReadBenchmark results on pixel device: Without the change: Experiment {instrument=runtime, benchmarkMethod=timeZipFileRead, vm=default, parameters={readBufferSize=1024}} runtime(ns): min=11591794.71, 1st qu.=11591794.71, median=11591794.71, mean=11591794.71, 3rd qu.=11591794.71, max=11591794.71 Experiment {instrument=runtime, benchmarkMethod=timeZipFileRead, vm=default, parameters={readBufferSize=16384}} runtime(ns): min=4913842.09, 1st qu.=4913842.09, median=4913842.09, mean=4913842.09, 3rd qu.=4913842.09, max=4913842.09 Experiment {instrument=runtime, benchmarkMethod=timeZipFileRead, vm=default, parameters={readBufferSize=65536}} runtime(ns): min=4888673.69, 1st qu.=4888673.69, median=4888673.69, mean=4888673.69, 3rd qu.=4888673.69, max=4888673.69 With the change: Experiment {instrument=runtime, benchmarkMethod=timeZipFileRead, vm=default, parameters={readBufferSize=1024}} runtime(ns): min=11415217.04, 1st qu.=11415217.04, median=11415217.04, mean=11415217.04, 3rd qu.=11415217.04, max=11415217.04 Experiment {instrument=runtime, benchmarkMethod=timeZipFileRead, vm=default, parameters={readBufferSize=16384}} runtime(ns): min=2690763.53, 1st qu.=2690763.53, median=2690763.53, mean=2690763.53, 3rd qu.=2690763.53, max=2690763.53 Experiment {instrument=runtime, benchmarkMethod=timeZipFileRead, vm=default, parameters={readBufferSize=65536}} runtime(ns): min=2202639.03, 1st qu.=2202639.03, median=2202639.03, mean=2202639.03, 3rd qu.=2202639.03, max=2202639.03 Test: vogar run of test in *.java.util.zip packages Bug: 65491407 Change-Id: I7734dde9e6e02b1fbff7209c1256a16ded1654e6
ipFile.java
|
6975f84c2ed72e1e26d20190b6f318718c849008 |
01-Mar-2017 |
Tobias Thierer <tobiast@google.com> |
Make Android patch docs in ojluni more consistent with style guide This CL consists of an automated and a manual part (originally reviewed as separate CLs, then squashed together before submitting in order to minimize the number of times each Android-changed line is touch, since that makes future git archaeology on these simpler). Automated part: Run the following command (performs regex replacements): find ojluni -name \*\.java | xargs sed -i \ -e 's/Android[- ]changed/Android-changed/ig' \ -e 's/Android-changed :/Android-changed:/g' \ -e 's/Android-changed \(BEGIN\|END\)/\1 Android-changed/g' \ -e 's/Android-changed - /Android-changed: /g' \ -e 's/Android[- ]removed/Android-removed/ig' \ -e 's/Android-removed :/Android-removed:/g' \ -e 's/Android-removed \(BEGIN\|END\)/\1 Android-removed/g' \ -e 's/Android-removed - /Android-removed: /g' \ -e 's/Android[- ]added/Android-added/ig' \ -e 's/Android-added :/Android-added:/g' \ -e 's/Android-added \(BEGIN\|END\)/\1 Android-added/g' \ -e 's/Android-added - /Android-added: /g' \ -e 's/----- \(BEGIN\|END\) android\( -----\)\?/\1 Android-changed/g' \ -e 's/\/\* \(BEGIN\|END\) Android-changed \*\//\/\/ \1 Android-changed/g' Manual part: Move BEGIN Android-* lines out of block comments Some Android-{changed,removed,added} lines occurred inside block comments. This CL targets places in ojluni that contained the String "* BEGIN Android-" Changes made by this CL include: - Move the "BEGIN Android-" line into a line comment (the style guide mandates that "Android-" lines are always in line comments). In many cases, that line comment is immediately followed by a block comment holding commented-out upstream code. - Add corresponding "// END Android-" line comments, where missing. - Drop documented import changes altogether. These create noise for little benefit: (1.) Most import problems will be found at compile time (2.) They generally correspond to documented changes elsewhere in the file. - In most cases, the phrasing of comments and the decision whether to keep commented out upstream code was not changed by this CL. - Some additional tweaks were made in line with the style guide. No attempt was made to: - Verify that commented-out upstream code actually matches the current upstream. - Make any fixes (eg. to comments) that would have required git archaeology (looking up historic commits). Bug: 35841464 Test: make droid cts update-api Change-Id: Ibc60979cb6061cfb0e9c7096cc9dcab30ddfa733
eflaterInputStream.java
nflater.java
nflaterInputStream.java
ipFile.java
ipInputStream.java
|
111a30eb86a4f03aa66494850ea1e4d4e81f386a |
10-Feb-2017 |
Przemyslaw Szczepaniak <pszczepaniak@google.com> |
Merge "Add synchronized to Deflater.needsInput()"
|
2a10fb51b4012e0cb08adab0b632845a8c50fc32 |
06-Feb-2017 |
Przemyslaw Szczepaniak <pszczepaniak@google.com> |
Add synchronized to Deflater.needsInput() Ported from openjdk8u121 changeset: 11054:c982997a738b user: coffeys date: Thu Oct 15 14:41:37 2015 +0100 summary: 8038502: Deflater.needsInput() should use synchronization Test: CtsLibcoreTestCases Bug: 31028374 Change-Id: I9c480bab4a35ec3f6bd431bc5ccdd5ff7e39440d
eflater.java
|
5618a1b5167db9fb4578c7b54b6234b95cca1f53 |
03-Feb-2017 |
Przemyslaw Szczepaniak <pszczepaniak@google.com> |
java.util.zip Thread safety fixes Ported from openjdk8u112 changeset: 11053:9ad796b3ce4d user: coffeys date: Thu Oct 15 09:33:03 2015 +0100 summary: 6907252: ZipFileInputStream Not Thread-Safe changeset: 11052:9e7d9568678d user: robm date: Sat Oct 17 21:55:25 2015 +0100 summary: 8133249: Occasional SIGSEGV: non thread-safe use of strerr in get LastErrorString Test: CtsLibcoreTestCases Bug: 31028374 Change-Id: I763f2863f4f492660211f9d8a8667156690de6c8
StreamRef.java
ipFile.java
|
87f7605e13ad5eea96f294a1fcc79f4208681825 |
17-Nov-2016 |
Przemyslaw Szczepaniak <pszczepaniak@google.com> |
Merge "java.util.zip.Zip* port from openJdk8u60" am: 33f6c9f4ed Change-Id: Ic0861e6a1a11da2d5439032d8d3706934309bd20
|
6c970474e9416807cabde3620045906ad3903c6c |
01-Nov-2016 |
Przemyslaw Szczepaniak <pszczepaniak@google.com> |
java.util.zip.Zip* port from openJdk8u60 - Added missing android-changed tags for various changes. - Fixed buggy extended DOS timestamp generation/reading in ZipEntry and ZipUtils. ZipEntry: -Support for extended dos time (better timestamp resolution). -Support for last modification, access time and creation time stored in optional extra data. -Because of last modification field, setTime works for ranges outside of dos time range (< 1980 && > 2099). THIS change breaks ZipEntryTest.test_setTimeJ. IMHO it's worth to adopt new behavior. ZipFile: -Added spliterator support. -Moved entries() iterator implementation to inner named class. -ZipFileInputStream#read modifies pos/rem field in a synchronized block. ZipInputStream: -Removed code for parsing optional extra data in .readLOC (moved to ZipEntry). ZipOutputStream: -New property for inhibiting Zip64 for > 64k entries -ZipEntry last modification, access time and creation time support ZipUtils.java: -New file with common, time and byte-array related methods extracted from ZipEntry and ZipFile java_util_zip_ZipFile.c -Use of ZIP_GetEntry2 with explicit addSlash param zip_util.c/h: -hash(const char *s) no longer used. -New method, ZIP_GetEntry2, with explicit handling of adding slash at the name end -Zip entry name may include embedded null character. Test: CtsLibcoreTestCases Bug: 29935305 Change-Id: Ib691c81b158ec37419a903bfa4261a12139fbff7
ipEntry.java
ipFile.java
ipInputStream.java
ipOutputStream.java
ipUtils.java
|
ec2262e64709932f58f88dd448fab25f4be7f663 |
09-Nov-2016 |
Przemyslaw Szczepaniak <pszczepaniak@google.com> |
Fix ZipFile exception for non-existent files This change fixes N regression in java.util.zip.ZipFile constructor. In previous android releases, for non-existent files, ZipFile constructor was throwing FileNotFoundException. Due to change in commit adc40417389a57bc7a831f55334bffcc07343eb9, N started to use ZipException in this case. This change reverts to pre-N behavior. Test: libcore.java.util.zip.ZipFileTest Bug: 31077136 Change-Id: I7c7240d0808552f4e0cf4ed4ccbda7537df2d2b1 (cherry picked from commit d95a908045486d862dfe0be056dd4ecfb3bd7693)
ipFile.java
|
ce27766ff2cb33432017df70f74f0732adaabd97 |
09-Nov-2016 |
Narayan Kamath <narayan@google.com> |
ZipFile: Never change file offset during I/O operations. Use pread instead read and eliminate unnecessary calls to lseek. dalvik.system.VMClassLoader maintains a cache of JarFile objects that it creates whenever it loads resources from them. This cache may be populated in the zygote as a side effect of preloading classes. When processes are forked from the zygote, the file descriptors associated with these JarFile objects point to the same kernel file description and may end up stepping on each others toes. To avoid such issues, we never make any offset changes to the associated file. Note that we have a guarantee that the file will never be closed in any forked process because the associated JarFile objects can never be collected. Test: run cts -m CtsLibcoreTestCases / ZipStressTest / manual testing to trigger the race condition. Bug: 30407219 Change-Id: Ic770a6ab6aca7f123a90002327d7f0a321e9afef (cherry picked from commit 0393d3c84ed9bd24bcf0dac3782a1cc23400ace8)
ipFile.java
|
48dd2b2377f6d676f1af6f37b290474a00cab94f |
01-Nov-2016 |
Przemyslaw Szczepaniak <pszczepaniak@google.com> |
Merge "Port java.util.zip.GZIPInputStream changes from OpenJdk8u60" am: 1cbb00d875 Change-Id: I4636dccb773bc443c55a48718a193a82c44aaa40
|
1cbb00d875642779dd1f80cfc65864b28d90badc |
01-Nov-2016 |
Treehugger Robot <treehugger-gerrit@google.com> |
Merge "Port java.util.zip.GZIPInputStream changes from OpenJdk8u60"
|
cc2ba8a2b5b33eaebbe03adceea68abe8576e354 |
27-Oct-2016 |
Przemyslaw Szczepaniak <pszczepaniak@google.com> |
Port java.util.zip.GZIPInputStream changes from OpenJdk8u60 Contains: - Header update - Added missing android-changed tag - Fix for GZIPInputStream calling "close" on the input stream in it's read() (specifically in the readTrailer). Problem originates from SequenceInputStream usage side-effect. Test: cts run of CtsLibcoreTestCases Bug: 29935305 Change-Id: I7986fe5d506f39cf4e45d37706623f8e195b4bcf
ZIPInputStream.java
|
9ed25c84361a626b66692a6924bfac5ab8ce3e59 |
28-Oct-2016 |
Przemyslaw Szczepaniak <pszczepaniak@google.com> |
Merge "Port java.util.zip.(CRC|Adler)32 changes from openJdk8u60" am: b3982e508c Change-Id: Iff7f18186dbf71ff4d53bcb0cd97e3475d753b10
|
6c877179523385568cb4752a5825bf76f46769e2 |
26-Oct-2016 |
Przemyslaw Szczepaniak <pszczepaniak@google.com> |
Port java.util.zip.(CRC|Adler)32 changes from openJdk8u60 - Added new method for both CRC32 and Adler32: update(ByteBuffer). - Minor javadoc and header updates Test: cts run of CtsLibcoreTestCases Bug: 29935305 Change-Id: I80acc491d36f5b6a04e6a2dbeb461632d02389f6
dler32.java
RC32.java
|
da196975402c72c2e9e43d977d4ad4d28e210962 |
26-Oct-2016 |
Przemyslaw Szczepaniak <pszczepaniak@google.com> |
Merge "Port trivial java.util.zip changes from openJdk8u60" am: b2d6966995 Change-Id: I24940f5e467bd6179ab212223d31e4cc05d8c273
|
f54e9b2a5f66f0caa1ae89e15ed0a26d00795df1 |
25-Oct-2016 |
Przemyslaw Szczepaniak <pszczepaniak@google.com> |
Port trivial java.util.zip changes from openJdk8u60 This change consists of javadoc updates, minor code changes and missing android-changed tags. Non-trivial changes will be handled in separate changes. Deflater: Missing close-guard&initIDs android-changed tag DeflaterInputStream: Javadoc updates DeflaterOutputStream: Javadoc updates, added missing android-changed tag in .deflate() GZIPOutputStream: Javadoc updates Inflater: Javadoc updates, missing close-guard&initIDs android-changed tag InflaterInputStream: Added missing Android-changed tags, javadoc updates, replaced "& 0xff" with Byte.toUnsignedInt call. InflaterOutputStream: Javadoc updates ZipConstants, ZipCoder: Header update package.html: ZIP app note URL refresh java_util_zip_Deflater.c: init method switch reformated, Z_VERSION_ERROR handling java_util_zip_Inflater.c: init method switch reformated, Z_VERSION_ERROR handling Test: cts run of CtsLibcoreTestCases Bug: 29935305 Change-Id: If9223c5835a273cf20d77fb1432b989f644ac41d
eflater.java
eflaterInputStream.java
eflaterOutputStream.java
ZIPOutputStream.java
nflater.java
nflaterInputStream.java
nflaterOutputStream.java
ipCoder.java
ipConstants.java
ipConstants64.java
ackage.html
|
046ddd5efe5715ec47bb14423caf7a160a407150 |
12-Sep-2016 |
Przemyslaw Szczepaniak <pszczepaniak@google.com> |
Fix ZipFile exception for non-existent files am: d95a908045 am: 0891418a56 Change-Id: I3467c0462337975f3b06f354cf91691df9a4ac98
|
d95a908045486d862dfe0be056dd4ecfb3bd7693 |
25-Aug-2016 |
Przemyslaw Szczepaniak <pszczepaniak@google.com> |
Fix ZipFile exception for non-existent files This change fixes N regression in java.util.zip.ZipFile constructor. In previous android releases, for non-existent files, ZipFile constructor was throwing FileNotFoundException. Due to change in commit adc40417389a57bc7a831f55334bffcc07343eb9, N started to use ZipException in this case. This change reverts to pre-N behavior. Test: libcore.java.util.zip.ZipFileTest Bug: 31077136 Change-Id: I7c7240d0808552f4e0cf4ed4ccbda7537df2d2b1
ipFile.java
|
7749d4bf336601110cffc639080653de44bb17e9 |
19-Aug-2016 |
Narayan Kamath <narayan@google.com> |
ZipFile: Never change file offset during I/O operations. am: 0393d3c84e am: 1e5e6d4d1b Change-Id: Ie80cb644cb7076735f36bd4aa85d372ab4d386a9
|
0393d3c84ed9bd24bcf0dac3782a1cc23400ace8 |
18-Aug-2016 |
Narayan Kamath <narayan@google.com> |
ZipFile: Never change file offset during I/O operations. Use pread instead read and eliminate unnecessary calls to lseek. dalvik.system.VMClassLoader maintains a cache of JarFile objects that it creates whenever it loads resources from them. This cache may be populated in the zygote as a side effect of preloading classes. When processes are forked from the zygote, the file descriptors associated with these JarFile objects point to the same kernel file description and may end up stepping on each others toes. To avoid such issues, we never make any offset changes to the associated file. Note that we have a guarantee that the file will never be closed in any forked process because the associated JarFile objects can never be collected. test: run cts -m CtsLibcoreTestCases / ZipStressTest / manual testing to trigger the race condition. bug: 30407219 Change-Id: Ic770a6ab6aca7f123a90002327d7f0a321e9afef
ipFile.java
|
fde01e06d8aacfc18c2d4bf1930e271ae5c812d1 |
02-Aug-2016 |
Yi Kong <yikong@google.com> |
Remove unnecessary +x flag Source code files and serialized resource files should not have x flag set. This is a follow up to commit 49965c1d, where native codes and some Java source files are left out. Bug: 29977629 Test: Build, CTS tests Change-Id: I475491284cf5784ed499daa434c2845cdadea3a0
ackage.html
|
49965c1dc9da104344f4893a05e45795a5740d20 |
30-Jun-2016 |
Ganesh Mahendran <opensource.ganesh@gmail.com> |
remove x attribute of java file java file does not need x attribute. This patch removes it. Change-Id: I2a7170d99f4bee7a7b819621c84dd197ded37fa2 Signed-off-by: Ganesh Mahendran <opensource.ganesh@gmail.com>
dler32.java
RC32.java
heckedInputStream.java
heckedOutputStream.java
hecksum.java
ataFormatException.java
eflater.java
eflaterInputStream.java
eflaterOutputStream.java
ZIPInputStream.java
ZIPOutputStream.java
nflater.java
nflaterInputStream.java
nflaterOutputStream.java
StreamRef.java
ipCoder.java
ipConstants.java
ipConstants64.java
ipEntry.java
ipError.java
ipException.java
ipFile.java
ipInputStream.java
ipOutputStream.java
|
a128ef7c6913e8b5f2ef4678ade5f97d7f7f452f |
26-May-2016 |
Przemyslaw Szczepaniak <pszczepaniak@google.com> |
Fix java.util.zip.ZipFile with OPEN_DELETE. openJdk java.util.zip.ZipFile with OPEN_DELETE flag uses unlink to remove the file just after it's opened. This is causing trouble on /storage partition, we can read/write unlinked file easily, but lseek seems to fail with ENOENT. This change introduces alternative implementation that doesn't use unlink before closing the file. Bug: 28901232 Bug: 28950284 Change-Id: I871a84e9a14bc1b4b9d5b0faa207579e27bcfc81 (cherry picked from commit ae6b1b85c67401fc9d986c3ffb7d9e8a9c804c30)
ipFile.java
|
ae6b1b85c67401fc9d986c3ffb7d9e8a9c804c30 |
26-May-2016 |
Przemyslaw Szczepaniak <pszczepaniak@google.com> |
Fix java.util.zip.ZipFile with OPEN_DELETE. openJdk java.util.zip.ZipFile with OPEN_DELETE flag uses unlink to remove the file just after it's opened. This is causing trouble on /storage partition, we can read/write unlinked file easily, but lseek seems to fail with ENOENT. This change introduces alternative implementation that doesn't use unlink before closing the file. Bug: 28901232 Bug: 28950284 Change-Id: I871a84e9a14bc1b4b9d5b0faa207579e27bcfc81
ipFile.java
|
d66fb8e8bb26b1d294a7c42d740acaf427a3a0a3 |
03-May-2016 |
Przemyslaw Szczepaniak <pszczepaniak@google.com> |
Move clinit code to registration funtions Moved clinit code that fetches field/method ids to JNI registration funcitons. This will allow to compile-time initialize these classes. More classes will follow. Bug: 28153851 Change-Id: I5918e281a65a2ca2168dfe1bdd18cc3c5df8f2f6 (cherry picked from commit 2798490baa8ee586e38bdd09707f4fb18ef0d023)
eflater.java
nflater.java
ipFile.java
|
2798490baa8ee586e38bdd09707f4fb18ef0d023 |
03-May-2016 |
Przemyslaw Szczepaniak <pszczepaniak@google.com> |
Move clinit code to registration funtions Moved clinit code that fetches field/method ids to JNI registration funcitons. This will allow to compile-time initialize these classes. More classes will follow. Bug: 28153851 Change-Id: I5918e281a65a2ca2168dfe1bdd18cc3c5df8f2f6
eflater.java
nflater.java
ipFile.java
|
fa07c88938c939eea9770e52f4813476e4ba6f3b |
12-Feb-2016 |
Narayan Kamath <narayan@google.com> |
ZipFile: Improve performance for ZipFile.<init> Avoid thousands of JNI transitions in the constructor. We can quite easily check for invalid entry names and duplicates while parsing the central directory in native code. The benchmarks show that the median time for opening a file with 8192 entries decreased from 488ms to 120us. AFTER: Trial Report (1 of 3): Experiment {instrument=runtime, benchmarkMethod=timeZipFileOpen, vm=default, parameters={numEntries=128}} Results: runtime(ns): min=112794.57, 1st qu.=113238.72, median=114539.28, mean=119694.66, 3rd qu.=125191.84, max=143145.02 Trial Report (2 of 3): Experiment {instrument=runtime, benchmarkMethod=timeZipFileOpen, vm=default, parameters={numEntries=1024}} Results: runtime(ns): min=112868.04, 1st qu.=113582.70, median=115180.93, mean=117760.32, 3rd qu.=118067.87, max=137760.10 Trial Report (3 of 3): Experiment {instrument=runtime, benchmarkMethod=timeZipFileOpen, vm=default, parameters={numEntries=8192}} Results: runtime(ns): min=112417.27, 1st qu.=114630.16, median=117272.70, mean=119197.74, 3rd qu.=122742.84, max=135330.50 BEFORE: Trial Report (1 of 3): Experiment {instrument=runtime, benchmarkMethod=benchmarkZipFileOpen, vm=default, parameters={numEntries=128}} Results: runtime(ns): min=9360144.37, 1st qu.=9559712.86, median=9839983.50, mean=9816559.27, 3rd qu.=10057399.81, max=10170918.14 Trial Report (2 of 3): Experiment {instrument=runtime, benchmarkMethod=benchmarkZipFileOpen, vm=default, parameters={numEntries=1024}} Results: runtime(ns): min=60682471.64, 1st qu.=62388598.00, median=64319977.57, mean=66545494.60, 3rd qu.=72114121.64, max=77298980.57 Trial Report (3 of 3): Experiment {instrument=runtime, benchmarkMethod=benchmarkZipFileOpen, vm=default, parameters={numEntries=8192}} Results: runtime(ns): min=485804479.00, 1st qu.=487322656.00, median=488986250.00, mean=489820034.67, 3rd qu.=492383229.50, max=495372604.00 bug: 27145664 (cherry picked from commit 8c6a910cd20026c9181a46c8e800a4a566f14527) Change-Id: Ic1bfe934548f7baf8b8789f069f654725a4b228b
ipFile.java
|
8c6a910cd20026c9181a46c8e800a4a566f14527 |
12-Feb-2016 |
Narayan Kamath <narayan@google.com> |
ZipFile: Improve performance for ZipFile.<init> Avoid thousands of JNI transitions in the constructor. We can quite easily check for invalid entry names and duplicates while parsing the central directory in native code. The benchmarks show that the median time for opening a file with 8192 entries decreased from 488ms to 120us. AFTER: Trial Report (1 of 3): Experiment {instrument=runtime, benchmarkMethod=timeZipFileOpen, vm=default, parameters={numEntries=128}} Results: runtime(ns): min=112794.57, 1st qu.=113238.72, median=114539.28, mean=119694.66, 3rd qu.=125191.84, max=143145.02 Trial Report (2 of 3): Experiment {instrument=runtime, benchmarkMethod=timeZipFileOpen, vm=default, parameters={numEntries=1024}} Results: runtime(ns): min=112868.04, 1st qu.=113582.70, median=115180.93, mean=117760.32, 3rd qu.=118067.87, max=137760.10 Trial Report (3 of 3): Experiment {instrument=runtime, benchmarkMethod=timeZipFileOpen, vm=default, parameters={numEntries=8192}} Results: runtime(ns): min=112417.27, 1st qu.=114630.16, median=117272.70, mean=119197.74, 3rd qu.=122742.84, max=135330.50 BEFORE: Trial Report (1 of 3): Experiment {instrument=runtime, benchmarkMethod=benchmarkZipFileOpen, vm=default, parameters={numEntries=128}} Results: runtime(ns): min=9360144.37, 1st qu.=9559712.86, median=9839983.50, mean=9816559.27, 3rd qu.=10057399.81, max=10170918.14 Trial Report (2 of 3): Experiment {instrument=runtime, benchmarkMethod=benchmarkZipFileOpen, vm=default, parameters={numEntries=1024}} Results: runtime(ns): min=60682471.64, 1st qu.=62388598.00, median=64319977.57, mean=66545494.60, 3rd qu.=72114121.64, max=77298980.57 Trial Report (3 of 3): Experiment {instrument=runtime, benchmarkMethod=benchmarkZipFileOpen, vm=default, parameters={numEntries=8192}} Results: runtime(ns): min=485804479.00, 1st qu.=487322656.00, median=488986250.00, mean=489820034.67, 3rd qu.=492383229.50, max=495372604.00 bug: 27145664 Change-Id: I510e923ac54d52082b9eafa0f151ad4f71826333
ipFile.java
|
f37dcda672c24f29269578defc6fc7c1615f4cd4 |
02-Feb-2016 |
Narayan Kamath <narayan@google.com> |
ZipEntry: Update comment. Change-Id: Iff15962ca474e245f736d5a8bd1c2d29a608a85b
ipEntry.java
|
189d3d5eb6b6ff364889df280f6a1911aae09b91 |
08-Jan-2016 |
Narayan Kamath <narayan@google.com> |
InflaterInputStream : Unconditionally close external inflaters. bug: 26462400 Change-Id: Iee06e72f6913b67cea13c0c2f818cb12f9985019
ZIPInputStream.java
nflaterInputStream.java
ipInputStream.java
|
9bd6371468aac3ddaa7057127d5ef152aea1227d |
06-Jan-2016 |
Narayan Kamath <narayan@google.com> |
Re-enable closeguard on a few classes that were missing it. Change-Id: I49f580dbd02def75584a00edc849c2b3fbdb8aec
eflater.java
nflater.java
ipFile.java
|
2c87ad3a45cecf9e344487cad1abfdebe79f2c7c |
21-Dec-2015 |
Narayan Kamath <narayan@google.com> |
Update file headers. Change-Id: I8149f41585768a1a4b72ab7bb4a1452376c05cc2
eflaterInputStream.java
eflaterOutputStream.java
nflater.java
nflaterInputStream.java
ipEntry.java
ipFile.java
ipInputStream.java
ipOutputStream.java
|
e8e4da2f84da30bbc11a63b7a87a153f62b1ce65 |
27-Nov-2015 |
Przemyslaw Szczepaniak <pszczepaniak@google.com> |
Remove StrictJarFile from ClassPathURLStreamHandler StrictJarFile was moved from libcore to framework/base (licensing reasons) and in no longer accessible in the ClassPathURLStreamHandler. I replaced it using JarFile class. + ZipFile compatibility fix, openjdk ZipFile#getInputStream was not fine with directory entries without "/" suffix (returning null), fixed a flag to deal with them like in previous impl. Bug: 25337946 Change-Id: I9832b34664bd331a96cd06aabb4cbf834c58f208
ipFile.java
|
1a9ca631d5e2d44f39b556132af3a3cb4e34a966 |
28-Sep-2015 |
Przemyslaw Szczepaniak <pszczepaniak@google.com> |
Update StrictJarFile. Also add a hidden ZipEntry constructor that this code expects. Change-Id: I30c437b016bbbfcebe5a81bad4af3b31ee2317f3
ipEntry.java
|
8dd7ce3e7ee13c49c8483f8a931747ab247fb573 |
21-Aug-2015 |
Przemyslaw Szczepaniak <pszczepaniak@google.com> |
Fix ZipInputStream#available() ZipInputStream#available() will return 0 if there's no more bytes to read in deflated file. Fixes ZipInputStreamTest#test_available Change-Id: Ic8b2dc1d042e8ce2c4f98c60beff9617adec2b02
ipInputStream.java
|
d4f87eb09746acbeaf5321c000306ac994f32836 |
19-Aug-2015 |
Przemyslaw Szczepaniak <pszczepaniak@google.com> |
Fix for ZipOutputStreamTest#testCreateEmpty Change-Id: I90141c5a7f5ec72b33b362cfcc00d426f11a9df0
ipOutputStream.java
|
adbb22cb1c38fcb6160276fa2739a46b0ce516c3 |
19-Aug-2015 |
Przemyslaw Szczepaniak <pszczepaniak@google.com> |
Fix DeflaterOutputStreamTest#testSyncFlushDeflater Based on https://googleplex-android-review.git.corp.google.com/#/c/102108 Change-Id: I78fefa10929d58c4947abed5af815c10b89db02c
eflaterOutputStream.java
|
9c17d0241b1b974e5379949df2ff881d0fff3ef4 |
07-Aug-2015 |
Narayan Kamath <narayan@google.com> |
Throw IOException on all stream operations on closed ZipFiles. Change-Id: I0ade0cd2fab28203c0f0a78978ce1db46cdb3f5d
ipFile.java
|
b3c5785d4f83fe0ce0bfa91f04e7cc0989e93142 |
07-Aug-2015 |
Narayan Kamath <narayan@google.com> |
Throw ISE on closed inflaters. Change-Id: I17de85b7230f36d0437d5e1f3ab4508bcac895f0
nflater.java
|
35b9ace5413a5198f13e73763e0d1b693361c104 |
07-Aug-2015 |
Narayan Kamath <narayan@google.com> |
Improve InflaterInputStream#available. Eagerly set eof depending on the inflater state. Change-Id: Ib89f86d88353027c144bd85ae0c0c5b8af2399fa
nflaterInputStream.java
|
457d3b26a6cbd62d203d3b56f69bcc441ea8d66f |
07-Aug-2015 |
Narayan Kamath <narayan@google.com> |
Improve DeflaterInputStream#available. We set reachEOF as soon as def.finished() == true. Change-Id: Ib843221c1b029de577f7399c5e1ff89b1279824d
eflaterInputStream.java
|
3ecf5a6acea7b312ca410f52ac5b1e993ba710c9 |
13-Jul-2015 |
Przemyslaw Szczepaniak <pszczepaniak@google.com> |
java.util.zip.Adler32 native code Change-Id: If109b6bd8869548132c21686ebf55df107ea7ec2
dler32.java
|
f7ab2bc37debba91864bfec6572a3e7bbe994c58 |
06-May-2015 |
Piotr Jastrzebski <haaawk@google.com> |
Use OpenJdk implementation of java.net.* - Add FileURLConnection. - NetworkUtilities : Update field names in JNI. - Suppress a few libcore tests that rely on internal implementation details. - Remove code that loads the net library (not needed on android). - DatagramSocket : Add setNetworkInterface method. - HttpCookie : make parse & field public - Inet4Address / Inet6Address : Add getAddressInternal. - InetAddress : Add methods required by frameworks/base, particularly those required to deal with net-ids and scope ids. - URI : Add UriCodec static members for AUTHORITY_ENCODER and friends. - URL : Add toUriLenient - URLStreamHandler : Add a toExternalForm variant that optionally escapes illegal chars. - Inet4AddressImpl.c : Unconditionally define HAS_GLIBC_GETHOSTBY_R Change-Id: Ic51f863941f5d954ed6cf86309cc610e711d54bd
ipFile.java
|
adc40417389a57bc7a831f55334bffcc07343eb9 |
21-Apr-2015 |
Piotr Jastrzebski <haaawk@google.com> |
Fix unit tests from java.util.{zip, logging, prefs}.* - zip64 is now supported. - LogManager: use getResourceAsStream for logging.properties. - MemoryHandler : use context classloader for loading properties. - ZipEntry : Explicitly use UTF-8 for names and comments. - ZipFile : - Error out early if the file is too short.. - .. or if the file has zero zip entries. - .. or if the file has two entries with the same name. - .. or if any the entries have a C string terminator in their name. Change-Id: Ie0cdb3d9dd5f12181507b20fc239bba3b2b9b374
ipEntry.java
ipFile.java
|
a8ed084745590c5e4a0e8559b5821809d60fe242 |
21-Apr-2015 |
Piotr Jastrzebski <haaawk@google.com> |
Use OpenJdk implementation of java.util.zip.* - Move some of the internal implementation details of libcore's zipfile into StrictJarFile. - TODO: Adler32 continues to use old native code from libcore, this must be switched over. - InflaterInputStream: |closed| becomes protected. - ZipFile : Always use mmap. - ZipEntry : Add a long dataOffset. - Switch all native code over to explicit registration. Change-Id: Id5519b4548ea1eb22fd182edfbd2c804dc6f3bb5
dler32.java
nflaterInputStream.java
ipEntry.java
ipFile.java
|
51b1b6997fd3f980076b8081f7f1165ccc2a4008 |
16-Feb-2015 |
Piotr Jastrzebski <haaawk@google.com> |
Initial import of OpenJdk files. Create new libcore/ojluni directory with src/main/java and src/main/native subdirectiories. Build ojluni into core-oj jar. Use openjdk classes from java.awt.font package. Copy all files from jdk/src/share/classes and jdk/src/solaris/classes directories in openjdk into libcore/ojluni/src/main/java. Copy following native files from openjdk to libcore/ojluni/src/main/native: jdk/src/solaris/native/java/io/canonicalize_md.c build/linux-amd64/include/classfile_constants.h jdk/src/share/native/java/net/DatagramPacket.c jdk/src/solaris/native/sun/net/spi/DefaultProxySelector.c jdk/src/share/native/java/lang/Double.c jdk/src/share/native/java/lang/fdlibm/include/fdlibm.h jdk/src/solaris/native/sun/nio/ch/FileChannelImpl.c jdk/src/solaris/native/java/io/FileDescriptor_md.c jdk/src/solaris/native/sun/nio/ch/FileDispatcherImpl.c jdk/src/share/native/java/io/FileInputStream.c jdk/src/solaris/native/sun/nio/ch/FileKey.c jdk/src/solaris/native/java/io/FileOutputStream_md.c jdk/src/solaris/native/java/io/FileSystem_md.c jdk/src/share/native/java/lang/Float.c jdk/src/share/native/java/net/Inet4Address.c jdk/src/solaris/native/java/net/Inet4AddressImpl.c jdk/src/share/native/java/net/Inet6Address.c jdk/src/solaris/native/java/net/Inet6AddressImpl.c jdk/src/share/native/java/net/InetAddress.c jdk/src/solaris/native/java/net/InetAddressImplFactory.c jdk/src/share/native/java/io/io_util.c jdk/src/solaris/native/sun/nio/ch/IOUtil.c jdk/src/share/native/java/io/io_util.h jdk/src/solaris/native/java/io/io_util_md.c jdk/src/solaris/native/java/io/io_util_md.h build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/java_io_FileDescriptor.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_io_FileInputStream.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_io_FileOutputStream.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_io_FileSystem.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_io_ObjectStreamClass.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_io_UnixFileSystem.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Double.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Float.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Integer.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Long.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Runtime.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Shutdown.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_StrictMath.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_String.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_System.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Thread.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/java_lang_Throwable.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_DatagramPacket.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_Inet4Address.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_Inet4AddressImpl.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_Inet6Address.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_Inet6AddressImpl.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_InetAddress.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_InetAddressImplFactory.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_NetworkInterface.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_PlainDatagramSocketImpl.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_PlainSocketImpl.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_SocketInputStream.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_SocketOptions.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/java_net_SocketOutputStream.h jdk/src/share/native/java/lang/java_props.h jdk/src/solaris/native/java/lang/java_props_md.c jdk/src/share/native/java/util/zip/Adler32.c as java_util_zip_Adler32.c jdk/src/share/native/java/util/zip/CRC32.c as java_util_zip_CRC32.c build/linux-amd64/tmp/sun/java.util.zip/zip/CClassHeaders/java_util_zip_CRC32.h jdk/src/share/native/java/util/zip/Deflater.c as java_util_zip_Deflater.c build/linux-amd64/tmp/sun/java.util.zip/zip/CClassHeaders/java_util_zip_Deflater.h jdk/src/share/native/java/util/zip/Inflater.c as java_util_zip_Inflater.c build/linux-amd64/tmp/sun/java.util.zip/zip/CClassHeaders/java_util_zip_Inflater.h jdk/src/share/native/java/util/zip/ZipFile.c as java_util_zip_ZipFile.c build/linux-amd64/tmp/sun/java.util.zip/zip/CClassHeaders/java_util_zip_ZipFile.h jdk/src/share/native/java/lang/fdlibm/include/jfdlibm.h jdk/src/share/native/common/jlong.h jdk/src/solaris/native/common/jlong_md.h jdk/src/share/native/common/jni_util.c jdk/src/share/native/common/jni_util.h jdk/src/solaris/native/common/jni_util_md.c jdk/src/share/javavm/export/jvm.h jdk/src/solaris/javavm/export/jvm_md.h jdk/src/solaris/native/java/net/linux_close.c jdk/src/share/native/sun/misc/NativeSignalHandler.c jdk/src/solaris/native/sun/nio/ch/NativeThread.c jdk/src/share/native/java/net/net_util.c jdk/src/share/native/java/net/net_util.h jdk/src/solaris/native/java/net/net_util_md.c jdk/src/solaris/native/java/net/net_util_md.h jdk/src/solaris/native/java/net/NetworkInterface.c jdk/src/share/native/sun/nio/ch/nio.h jdk/src/solaris/native/sun/nio/ch/nio_util.h jdk/src/share/native/java/io/ObjectStreamClass.c jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c jdk/src/solaris/native/java/net/PlainSocketImpl.c jdk/src/solaris/native/java/lang/ProcessEnvironment_md.c jdk/src/share/native/java/lang/Runtime.c jdk/src/share/native/java/lang/Shutdown.c jdk/src/share/native/sun/misc/Signal.c jdk/src/solaris/native/java/net/SocketInputStream.c jdk/src/solaris/native/java/net/SocketOutputStream.c jdk/src/share/native/java/lang/StrictMath.c jdk/src/share/native/java/lang/String.c build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/sun_misc_NativeSignalHandler.h build/linux-amd64/tmp/java/java.lang/java/CClassHeaders/sun_misc_Signal.h build/linux-amd64/tmp/sun/java.net/net/CClassHeaders/sun_net_spi_DefaultProxySelector.h build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_FileChannelImpl.h build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_FileDispatcherImpl.h build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_FileKey.h build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_IOStatus.h build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_IOUtil.h build/linux-amd64/tmp/java/java.nio/nio/CClassHeaders/sun_nio_ch_NativeThread.h jdk/src/share/native/java/lang/System.c jdk/src/share/native/java/lang/Thread.c jdk/src/share/native/java/lang/Throwable.c jdk/src/solaris/native/java/io/UnixFileSystem_md.c jdk/src/solaris/native/java/lang/UNIXProcess_md.c jdk/src/share/native/java/util/zip/zip_util.c jdk/src/share/native/java/util/zip/zip_util.h Change-Id: Ib237df4e1b7b5b4d9f12e74d189e6ec9eed3c31d
dler32.java
RC32.java
heckedInputStream.java
heckedOutputStream.java
hecksum.java
ataFormatException.java
eflater.java
eflaterInputStream.java
eflaterOutputStream.java
ZIPInputStream.java
ZIPOutputStream.java
nflater.java
nflaterInputStream.java
nflaterOutputStream.java
StreamRef.java
ipCoder.java
ipConstants.java
ipConstants64.java
ipEntry.java
ipError.java
ipException.java
ipFile.java
ipInputStream.java
ipOutputStream.java
ackage.html
|