< 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 >