< prev index next >
src/java.base/share/classes/sun/net/util/SocketExceptions.java
Print this page
rev 51517 : 8205525: Improve exception messages during manifest parsing of jar archives
*** 28,83 ****
import java.io.IOException;
import java.lang.reflect.Constructor;
import java.net.InetSocketAddress;
import java.security.AccessController;
import java.security.PrivilegedAction;
! import java.security.Security;
public final class SocketExceptions {
private SocketExceptions() {}
! /**
! * Security or system property which specifies categories of
! * (potentially sensitive) information that may be included
! * in exception text. This class only defines one category:
! * "hostInfo" which represents the hostname and port number
! * of the remote peer relating to a socket exception.
! * The property value is a comma separated list of
! * case insignificant category names.
! */
! private static final String enhancedTextPropname = "jdk.includeInExceptions";
!
! private static final boolean enhancedExceptionText = initTextProp();
!
! private static boolean initTextProp() {
! return AccessController.doPrivileged(new PrivilegedAction<Boolean>() {
! public Boolean run() {
! String val = System.getProperty(enhancedTextPropname);
! if (val == null) {
! val = Security.getProperty(enhancedTextPropname);
! if (val == null)
! return false;
! }
! String[] tokens = val.split(",");
! for (String token : tokens) {
! if (token.equalsIgnoreCase("hostinfo"))
! return true;
! }
! return false;
! }
! });
! }
!
/**
* Utility which takes an exception and returns either the same exception
* or a new exception of the same type with the same stack trace
* and detail message enhanced with addressing information from the
* given InetSocketAddress.
*
! * If the system/security property "jdk.net.enhanceExceptionText" is not
! * set or is false, then the original exception is returned.
*
* Only specific IOException subtypes are supported.
*/
public static IOException of(IOException e, InetSocketAddress address) {
if (!enhancedExceptionText || address == null)
--- 28,54 ----
import java.io.IOException;
import java.lang.reflect.Constructor;
import java.net.InetSocketAddress;
import java.security.AccessController;
import java.security.PrivilegedAction;
! import sun.security.util.SecurityProperties;
public final class SocketExceptions {
private SocketExceptions() {}
! private static final boolean enhancedExceptionText =
! SecurityProperties.includedInExceptions("hostInfo");
/**
* Utility which takes an exception and returns either the same exception
* or a new exception of the same type with the same stack trace
* and detail message enhanced with addressing information from the
* given InetSocketAddress.
*
! * If the system/security property "jdk.includeInExceptions" is not
! * set or does not contain the category hostInfo,
! * then the original exception is returned.
*
* Only specific IOException subtypes are supported.
*/
public static IOException of(IOException e, InetSocketAddress address) {
if (!enhancedExceptionText || address == null)
< prev index next >