8184917: System.initPhase1 does not need to pre-load libzip
Reviewed-by: redestad
This commit is contained in:
parent
037bb0b61f
commit
cbfc2c16c2
@ -1960,10 +1960,6 @@ public final class System {
|
|||||||
setOut0(newPrintStream(fdOut, props.getProperty("sun.stdout.encoding")));
|
setOut0(newPrintStream(fdOut, props.getProperty("sun.stdout.encoding")));
|
||||||
setErr0(newPrintStream(fdErr, props.getProperty("sun.stderr.encoding")));
|
setErr0(newPrintStream(fdErr, props.getProperty("sun.stderr.encoding")));
|
||||||
|
|
||||||
// Load the zip library now in order to keep java.util.zip.ZipFile
|
|
||||||
// from trying to use itself to load this library later.
|
|
||||||
loadLibrary("zip");
|
|
||||||
|
|
||||||
// Setup Java signal handlers for HUP, TERM, and INT (where available).
|
// Setup Java signal handlers for HUP, TERM, and INT (where available).
|
||||||
Terminator.setup();
|
Terminator.setup();
|
||||||
|
|
||||||
|
@ -136,4 +136,8 @@ class Adler32 implements Checksum {
|
|||||||
@HotSpotIntrinsicCandidate
|
@HotSpotIntrinsicCandidate
|
||||||
private static native int updateByteBuffer(int adler, long addr,
|
private static native int updateByteBuffer(int adler, long addr,
|
||||||
int off, int len);
|
int off, int len);
|
||||||
|
|
||||||
|
static {
|
||||||
|
ZipUtils.loadLibrary();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -172,4 +172,8 @@ class CRC32 implements Checksum {
|
|||||||
throw new NullPointerException();
|
throw new NullPointerException();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static {
|
||||||
|
ZipUtils.loadLibrary();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -154,7 +154,7 @@ class Deflater {
|
|||||||
public static final int FULL_FLUSH = 3;
|
public static final int FULL_FLUSH = 3;
|
||||||
|
|
||||||
static {
|
static {
|
||||||
/* Zip library is loaded from System.initializeSystemClass */
|
ZipUtils.loadLibrary();
|
||||||
initIDs();
|
initIDs();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -85,7 +85,7 @@ class Inflater {
|
|||||||
private static final byte[] defaultBuf = new byte[0];
|
private static final byte[] defaultBuf = new byte[0];
|
||||||
|
|
||||||
static {
|
static {
|
||||||
/* Zip library is loaded from System.initializeSystemClass */
|
ZipUtils.loadLibrary();
|
||||||
initIDs();
|
initIDs();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -26,6 +26,8 @@
|
|||||||
package java.util.zip;
|
package java.util.zip;
|
||||||
|
|
||||||
import java.nio.file.attribute.FileTime;
|
import java.nio.file.attribute.FileTime;
|
||||||
|
import java.security.AccessController;
|
||||||
|
import java.security.PrivilegedAction;
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.ZoneId;
|
import java.time.ZoneId;
|
||||||
@ -245,4 +247,17 @@ class ZipUtils {
|
|||||||
// The END header is followed by a variable length comment of size < 64k.
|
// The END header is followed by a variable length comment of size < 64k.
|
||||||
static final long END_MAXLEN = 0xFFFF + ENDHDR;
|
static final long END_MAXLEN = 0xFFFF + ENDHDR;
|
||||||
static final int READBLOCKSZ = 128;
|
static final int READBLOCKSZ = 128;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Loads zip native library, if not already laoded
|
||||||
|
*/
|
||||||
|
static void loadLibrary() {
|
||||||
|
SecurityManager sm = System.getSecurityManager();
|
||||||
|
if (sm == null) {
|
||||||
|
System.loadLibrary("zip");
|
||||||
|
} else {
|
||||||
|
PrivilegedAction<Void> pa = () -> { System.loadLibrary("zip"); return null; };
|
||||||
|
AccessController.doPrivileged(pa);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user