# HG changeset patch
# User lana
# Date 1422170605 28800
# Node ID 6d99e9b8dbe5103e9b432bf322cd127a73529bb6
# Parent efce8f50cea4be6d9662ad7f588c5eb0b2b95b1d# Parent b00a1e9a9238ce952dd750c79ebf2f0d79beec48
Merge
diff -r efce8f50cea4 -r 6d99e9b8dbe5 jdk/make/gendata/GendataPolicyJars.gmk
--- a/jdk/make/gendata/GendataPolicyJars.gmk Fri Jan 23 18:50:48 2015 -0800
+++ b/jdk/make/gendata/GendataPolicyJars.gmk Sat Jan 24 23:23:25 2015 -0800
@@ -35,65 +35,62 @@
US_EXPORT_POLICY_JAR_DST := \
$(SUPPORT_OUTPUTDIR)/modules_libs/java.base/security/US_export_policy.jar
-ifneq ($(BUILD_CRYPTO), no)
-
- US_EXPORT_POLICY_JAR_LIMITED := \
- $(SUPPORT_OUTPUTDIR)/jce/policy/limited/US_export_policy.jar
- US_EXPORT_POLICY_JAR_UNLIMITED := \
- $(SUPPORT_OUTPUTDIR)/jce/policy/unlimited/US_export_policy.jar
+US_EXPORT_POLICY_JAR_LIMITED := \
+ $(SUPPORT_OUTPUTDIR)/jce/policy/limited/US_export_policy.jar
+US_EXPORT_POLICY_JAR_UNLIMITED := \
+ $(SUPPORT_OUTPUTDIR)/jce/policy/unlimited/US_export_policy.jar
- ifndef OPENJDK
- #
- # In past releases, Oracle JDK has had a separately downloadable set of
- # policy files which has been a nightmare for deployment.
- #
- # Now if we're closed and limited (default for Oracle JDK), create
- # an "unlimited_policy" directory that contains the unlimited policy
- # files. It will be up to the user/deployer to make an informed choice
- # as to whether they are legally entitled to use the unlimited policy
- # file in their environment. Users/deployers simply need to overwrite
- # the files. Consult README.txt (below) for more info.
- #
- UNLIMITED_POLICY_DIR := \
- $(SUPPORT_OUTPUTDIR)/modules_libs/java.base/security/unlimited_policy
- endif
+ifndef OPENJDK
+ #
+ # In past releases, Oracle JDK has had a separately downloadable set of
+ # policy files which has been a nightmare for deployment.
+ #
+ # Now if we're closed and limited (default for Oracle JDK), create
+ # an "unlimited_policy" directory that contains the unlimited policy
+ # files. It will be up to the user/deployer to make an informed choice
+ # as to whether they are legally entitled to use the unlimited policy
+ # file in their environment. Users/deployers simply need to overwrite
+ # the files. Consult README.txt (below) for more info.
+ #
+ UNLIMITED_POLICY_DIR := \
+ $(SUPPORT_OUTPUTDIR)/modules_libs/java.base/security/unlimited_policy
+endif
- #
- # TODO fix so that SetupArchive does not write files into SRCS
- # then we don't need this extra copying
- #
- # NOTE: We currently do not place restrictions on our limited export
- # policy. This was not a typo. This means we are shipping the same file
- # for both limited and unlimited US_export_policy.jar. Only the local
- # policy file currently has restrictions.
- #
- US_EXPORT_POLICY_JAR_SRC_DIR := \
- $(JDK_TOPDIR)/make/data/cryptopolicy/unlimited
- US_EXPORT_POLICY_JAR_TMP := \
- $(SUPPORT_OUTPUTDIR)/jce/policy/unlimited/US_export_policy_jar.tmp
+#
+# TODO fix so that SetupArchive does not write files into SRCS
+# then we don't need this extra copying
+#
+# NOTE: We currently do not place restrictions on our limited export
+# policy. This was not a typo. This means we are shipping the same file
+# for both limited and unlimited US_export_policy.jar. Only the local
+# policy file currently has restrictions.
+#
+US_EXPORT_POLICY_JAR_SRC_DIR := \
+ $(JDK_TOPDIR)/make/data/cryptopolicy/unlimited
+US_EXPORT_POLICY_JAR_TMP := \
+ $(SUPPORT_OUTPUTDIR)/jce/policy/unlimited/US_export_policy_jar.tmp
- $(US_EXPORT_POLICY_JAR_TMP)/%: $(US_EXPORT_POLICY_JAR_SRC_DIR)/%
+$(US_EXPORT_POLICY_JAR_TMP)/%: $(US_EXPORT_POLICY_JAR_SRC_DIR)/%
$(install-file)
- US_EXPORT_POLICY_JAR_DEPS := \
- $(US_EXPORT_POLICY_JAR_TMP)/default_US_export.policy
+US_EXPORT_POLICY_JAR_DEPS := \
+ $(US_EXPORT_POLICY_JAR_TMP)/default_US_export.policy
- $(eval $(call SetupArchive,BUILD_US_EXPORT_POLICY_JAR, \
- $(US_EXPORT_POLICY_JAR_DEPS), \
- SRCS := $(US_EXPORT_POLICY_JAR_TMP), \
- SUFFIXES := .policy, \
- JAR := $(US_EXPORT_POLICY_JAR_UNLIMITED), \
- EXTRA_MANIFEST_ATTR := Crypto-Strength: unlimited, \
- SKIP_METAINF := true))
+$(eval $(call SetupArchive,BUILD_US_EXPORT_POLICY_JAR, \
+ $(US_EXPORT_POLICY_JAR_DEPS), \
+ SRCS := $(US_EXPORT_POLICY_JAR_TMP), \
+ SUFFIXES := .policy, \
+ JAR := $(US_EXPORT_POLICY_JAR_UNLIMITED), \
+ EXTRA_MANIFEST_ATTR := Crypto-Strength: unlimited, \
+ SKIP_METAINF := true))
- $(US_EXPORT_POLICY_JAR_LIMITED): \
- $(US_EXPORT_POLICY_JAR_UNLIMITED)
- $(ECHO) $(LOG_INFO) \
- Copying unlimited $(patsubst $(OUTPUT_ROOT)/%,%,$@)
- $(install-file)
+$(US_EXPORT_POLICY_JAR_LIMITED): \
+ $(US_EXPORT_POLICY_JAR_UNLIMITED)
+ $(ECHO) $(LOG_INFO) \
+ Copying unlimited $(patsubst $(OUTPUT_ROOT)/%,%,$@)
+ $(install-file)
- TARGETS += $(US_EXPORT_POLICY_JAR_LIMITED) $(US_EXPORT_POLICY_JAR_UNLIMITED)
-endif
+TARGETS += $(US_EXPORT_POLICY_JAR_LIMITED) $(US_EXPORT_POLICY_JAR_UNLIMITED)
ifeq ($(UNLIMITED_CRYPTO), true)
$(US_EXPORT_POLICY_JAR_DST): $(US_EXPORT_POLICY_JAR_UNLIMITED)
@@ -119,57 +116,54 @@
LOCAL_POLICY_JAR_DST := \
$(SUPPORT_OUTPUTDIR)/modules_libs/java.base/security/local_policy.jar
-ifneq ($(BUILD_CRYPTO), no)
+LOCAL_POLICY_JAR_LIMITED := \
+ $(SUPPORT_OUTPUTDIR)/jce/policy/limited/local_policy.jar
+LOCAL_POLICY_JAR_UNLIMITED := \
+ $(SUPPORT_OUTPUTDIR)/jce/policy/unlimited/local_policy.jar
- LOCAL_POLICY_JAR_LIMITED := \
- $(SUPPORT_OUTPUTDIR)/jce/policy/limited/local_policy.jar
- LOCAL_POLICY_JAR_UNLIMITED := \
- $(SUPPORT_OUTPUTDIR)/jce/policy/unlimited/local_policy.jar
+#
+# TODO fix so that SetupArchive does not write files into SRCS
+# then we don't need this extra copying
+#
+LOCAL_POLICY_JAR_LIMITED_TMP := \
+ $(SUPPORT_OUTPUTDIR)/jce/policy/limited/local_policy_jar.tmp
+LOCAL_POLICY_JAR_UNLIMITED_TMP := \
+ $(SUPPORT_OUTPUTDIR)/jce/policy/unlimited/local_policy_jar.tmp
+
+$(LOCAL_POLICY_JAR_LIMITED_TMP)/%: \
+ $(JDK_TOPDIR)/make/data/cryptopolicy/limited/%
+ $(install-file)
+
+$(LOCAL_POLICY_JAR_UNLIMITED_TMP)/%: \
+ $(JDK_TOPDIR)/make/data/cryptopolicy/unlimited/%
+ $(install-file)
- #
- # TODO fix so that SetupArchive does not write files into SRCS
- # then we don't need this extra copying
- #
- LOCAL_POLICY_JAR_LIMITED_TMP := \
- $(SUPPORT_OUTPUTDIR)/jce/policy/limited/local_policy_jar.tmp
- LOCAL_POLICY_JAR_UNLIMITED_TMP := \
- $(SUPPORT_OUTPUTDIR)/jce/policy/unlimited/local_policy_jar.tmp
+$(eval $(call SetupArchive,BUILD_LOCAL_POLICY_JAR_LIMITED, \
+ $(LOCAL_POLICY_JAR_LIMITED_TMP)/exempt_local.policy \
+ $(LOCAL_POLICY_JAR_LIMITED_TMP)/default_local.policy, \
+ SRCS := $(LOCAL_POLICY_JAR_LIMITED_TMP), \
+ SUFFIXES := .policy, \
+ JAR := $(LOCAL_POLICY_JAR_LIMITED), \
+ EXTRA_MANIFEST_ATTR := Crypto-Strength: limited, \
+ SKIP_METAINF := true))
- $(LOCAL_POLICY_JAR_LIMITED_TMP)/%: \
- $(JDK_TOPDIR)/make/data/cryptopolicy/limited/%
- $(install-file)
+$(eval $(call SetupArchive,BUILD_LOCAL_POLICY_JAR_UNLIMITED, \
+ $(LOCAL_POLICY_JAR_UNLIMITED_TMP)/default_local.policy, \
+ SRCS := $(LOCAL_POLICY_JAR_UNLIMITED_TMP), \
+ SUFFIXES := .policy, \
+ JAR := $(LOCAL_POLICY_JAR_UNLIMITED), \
+ EXTRA_MANIFEST_ATTR := Crypto-Strength: unlimited, \
+ SKIP_METAINF := true))
- $(LOCAL_POLICY_JAR_UNLIMITED_TMP)/%: \
- $(JDK_TOPDIR)/make/data/cryptopolicy/unlimited/%
+TARGETS += $(LOCAL_POLICY_JAR_LIMITED) $(LOCAL_POLICY_JAR_UNLIMITED)
+
+ifndef OPENJDK
+ ifneq ($(UNLIMITED_CRYPTO), true)
+ $(UNLIMITED_POLICY_DIR)/README.txt: \
+ $(JDK_TOPDIR)/make/closed/data/cryptopolicy/README.txt
$(install-file)
- $(eval $(call SetupArchive,BUILD_LOCAL_POLICY_JAR_LIMITED, \
- $(LOCAL_POLICY_JAR_LIMITED_TMP)/exempt_local.policy \
- $(LOCAL_POLICY_JAR_LIMITED_TMP)/default_local.policy, \
- SRCS := $(LOCAL_POLICY_JAR_LIMITED_TMP), \
- SUFFIXES := .policy, \
- JAR := $(LOCAL_POLICY_JAR_LIMITED), \
- EXTRA_MANIFEST_ATTR := Crypto-Strength: limited, \
- SKIP_METAINF := true))
-
- $(eval $(call SetupArchive,BUILD_LOCAL_POLICY_JAR_UNLIMITED, \
- $(LOCAL_POLICY_JAR_UNLIMITED_TMP)/default_local.policy, \
- SRCS := $(LOCAL_POLICY_JAR_UNLIMITED_TMP), \
- SUFFIXES := .policy, \
- JAR := $(LOCAL_POLICY_JAR_UNLIMITED), \
- EXTRA_MANIFEST_ATTR := Crypto-Strength: unlimited, \
- SKIP_METAINF := true))
-
- TARGETS += $(LOCAL_POLICY_JAR_LIMITED) $(LOCAL_POLICY_JAR_UNLIMITED)
-
- ifndef OPENJDK
- ifneq ($(UNLIMITED_CRYPTO), true)
- $(UNLIMITED_POLICY_DIR)/README.txt: \
- $(JDK_TOPDIR)/make/closed/data/cryptopolicy/README.txt
- $(install-file)
-
- TARGETS += $(UNLIMITED_POLICY_DIR)/README.txt
- endif
+ TARGETS += $(UNLIMITED_POLICY_DIR)/README.txt
endif
endif
diff -r efce8f50cea4 -r 6d99e9b8dbe5 jdk/make/lib/Awt2dLibraries.gmk
--- a/jdk/make/lib/Awt2dLibraries.gmk Fri Jan 23 18:50:48 2015 -0800
+++ b/jdk/make/lib/Awt2dLibraries.gmk Sat Jan 24 23:23:25 2015 -0800
@@ -300,7 +300,6 @@
LIBAWT_XAWT_DIRS := \
$(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/libawt_xawt \
- $(JDK_TOPDIR)/src/java.desktop/$(OPENJDK_TARGET_OS_TYPE)/native/libjawt \
$(JDK_TOPDIR)/src/java.desktop/share/native/common/awt/debug \
$(JDK_TOPDIR)/src/java.desktop/share/native/common/awt/utility \
$(JDK_TOPDIR)/src/java.desktop/share/native/common/font \
diff -r efce8f50cea4 -r 6d99e9b8dbe5 jdk/make/src/classes/build/tools/module/ext.modules
--- a/jdk/make/src/classes/build/tools/module/ext.modules Fri Jan 23 18:50:48 2015 -0800
+++ b/jdk/make/src/classes/build/tools/module/ext.modules Sat Jan 24 23:23:25 2015 -0800
@@ -6,4 +6,4 @@
jdk.naming.dns
jdk.scripting.nashorn
jdk.zipfs
-oracle.accessbridge
+jdk.accessbridge
diff -r efce8f50cea4 -r 6d99e9b8dbe5 jdk/src/java.base/macosx/classes/java/lang/ClassLoaderHelper.java
--- a/jdk/src/java.base/macosx/classes/java/lang/ClassLoaderHelper.java Fri Jan 23 18:50:48 2015 -0800
+++ b/jdk/src/java.base/macosx/classes/java/lang/ClassLoaderHelper.java Sat Jan 24 23:23:25 2015 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2015 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
@@ -31,6 +31,11 @@
private ClassLoaderHelper() {}
/**
+ * Indicates, whether PATH env variable is allowed to contain quoted entries.
+ */
+ static final boolean allowsQuotedPathElements = false;
+
+ /**
* Returns an alternate path name for the given file
* such that if the original pathname did not exist, then the
* file may be located at the alternate location.
diff -r efce8f50cea4 -r 6d99e9b8dbe5 jdk/src/java.base/share/classes/java/lang/Class.java
--- a/jdk/src/java.base/share/classes/java/lang/Class.java Fri Jan 23 18:50:48 2015 -0800
+++ b/jdk/src/java.base/share/classes/java/lang/Class.java Sat Jan 24 23:23:25 2015 -0800
@@ -149,7 +149,8 @@
* {@code getName}. If this {@code Class} object represents a
* primitive type, this method returns the name of the primitive type. If
* this {@code Class} object represents void this method returns
- * "void".
+ * "void". If this {@code Class} object represents an array type,
+ * this method returns "class " followed by {@code getName}.
*
* @return a string representation of this class object.
*/
@@ -174,6 +175,12 @@
* occur in canonical order. If there are no type parameters, the
* type parameter list is elided.
*
+ * For an array type, the string starts with the type name,
+ * followed by an angle-bracketed comma-separated list of the
+ * type's type parameters, if any, followed by a sequence of
+ * {@code []} characters, one set of brackets per dimension of
+ * the array.
+ *
*
Note that since information about the runtime representation
* of a type is being generated, modifiers not present on the
* originating source code or illegal on the originating source
@@ -189,29 +196,39 @@
return toString();
} else {
StringBuilder sb = new StringBuilder();
-
- // Class modifiers are a superset of interface modifiers
- int modifiers = getModifiers() & Modifier.classModifiers();
- if (modifiers != 0) {
- sb.append(Modifier.toString(modifiers));
+ Class> component = this;
+ int arrayDepth = 0;
+
+ if (isArray()) {
+ do {
+ arrayDepth++;
+ component = component.getComponentType();
+ } while (component.isArray());
+ sb.append(component.getName());
+ } else {
+ // Class modifiers are a superset of interface modifiers
+ int modifiers = getModifiers() & Modifier.classModifiers();
+ if (modifiers != 0) {
+ sb.append(Modifier.toString(modifiers));
+ sb.append(' ');
+ }
+
+ if (isAnnotation()) {
+ sb.append('@');
+ }
+ if (isInterface()) { // Note: all annotation types are interfaces
+ sb.append("interface");
+ } else {
+ if (isEnum())
+ sb.append("enum");
+ else
+ sb.append("class");
+ }
sb.append(' ');
- }
-
- if (isAnnotation()) {
- sb.append('@');
+ sb.append(getName());
}
- if (isInterface()) { // Note: all annotation types are interfaces
- sb.append("interface");
- } else {
- if (isEnum())
- sb.append("enum");
- else
- sb.append("class");
- }
- sb.append(' ');
- sb.append(getName());
-
- TypeVariable>[] typeparms = getTypeParameters();
+
+ TypeVariable>[] typeparms = component.getTypeParameters();
if (typeparms.length > 0) {
boolean first = true;
sb.append('<');
@@ -224,6 +241,9 @@
sb.append('>');
}
+ for (int i = 0; i < arrayDepth; i++)
+ sb.append("[]");
+
return sb.toString();
}
}
diff -r efce8f50cea4 -r 6d99e9b8dbe5 jdk/src/java.base/share/classes/java/lang/ClassLoader.java
--- a/jdk/src/java.base/share/classes/java/lang/ClassLoader.java Fri Jan 23 18:50:48 2015 -0800
+++ b/jdk/src/java.base/share/classes/java/lang/ClassLoader.java Sat Jan 24 23:23:25 2015 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013, 2014 Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2015 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
@@ -1360,7 +1360,10 @@
return null;
SecurityManager sm = System.getSecurityManager();
if (sm != null) {
- checkClassLoaderPermission(this, Reflection.getCallerClass());
+ // Check access to the parent class loader
+ // If the caller's class loader is same as this class loader,
+ // permission check is performed.
+ checkClassLoaderPermission(parent, Reflection.getCallerClass());
}
return parent;
}
@@ -1503,6 +1506,11 @@
return caller.getClassLoader0();
}
+ /*
+ * Checks RuntimePermission("getClassLoader") permission
+ * if caller's class loader is not null and caller's class loader
+ * is not the same as or an ancestor of the given cl argument.
+ */
static void checkClassLoaderPermission(ClassLoader cl, Class> caller) {
SecurityManager sm = System.getSecurityManager();
if (sm != null) {
@@ -1747,35 +1755,54 @@
private static String usr_paths[];
private static String sys_paths[];
- private static String[] initializePath(String propname) {
- String ldpath = System.getProperty(propname, "");
- String ps = File.pathSeparator;
- int ldlen = ldpath.length();
- int i, j, n;
- // Count the separators in the path
- i = ldpath.indexOf(ps);
- n = 0;
- while (i >= 0) {
- n++;
- i = ldpath.indexOf(ps, i + 1);
+ private static String[] initializePath(String propName) {
+ String ldPath = System.getProperty(propName, "");
+ int ldLen = ldPath.length();
+ char ps = File.pathSeparatorChar;
+ int psCount = 0;
+
+ if (ClassLoaderHelper.allowsQuotedPathElements &&
+ ldPath.indexOf('\"') >= 0) {
+ // First, remove quotes put around quoted parts of paths.
+ // Second, use a quotation mark as a new path separator.
+ // This will preserve any quoted old path separators.
+ char[] buf = new char[ldLen];
+ int bufLen = 0;
+ for (int i = 0; i < ldLen; ++i) {
+ char ch = ldPath.charAt(i);
+ if (ch == '\"') {
+ while (++i < ldLen &&
+ (ch = ldPath.charAt(i)) != '\"') {
+ buf[bufLen++] = ch;
+ }
+ } else {
+ if (ch == ps) {
+ psCount++;
+ ch = '\"';
+ }
+ buf[bufLen++] = ch;
+ }
+ }
+ ldPath = new String(buf, 0, bufLen);
+ ldLen = bufLen;
+ ps = '\"';
+ } else {
+ for (int i = ldPath.indexOf(ps); i >= 0;
+ i = ldPath.indexOf(ps, i + 1)) {
+ psCount++;
+ }
}
- // allocate the array of paths - n :'s = n + 1 path elements
- String[] paths = new String[n + 1];
-
- // Fill the array with paths from the ldpath
- n = i = 0;
- j = ldpath.indexOf(ps);
- while (j >= 0) {
- if (j - i > 0) {
- paths[n++] = ldpath.substring(i, j);
- } else if (j - i == 0) {
- paths[n++] = ".";
- }
- i = j + 1;
- j = ldpath.indexOf(ps, i);
+ String[] paths = new String[psCount + 1];
+ int pathStart = 0;
+ for (int j = 0; j < psCount; ++j) {
+ int pathEnd = ldPath.indexOf(ps, pathStart);
+ paths[j] = (pathStart < pathEnd) ?
+ ldPath.substring(pathStart, pathEnd) : ".";
+ pathStart = pathEnd + 1;
}
- paths[n] = ldpath.substring(i, ldlen);
+ paths[psCount] = (pathStart < ldLen) ?
+ ldPath.substring(pathStart, ldLen) : ".";
return paths;
}
diff -r efce8f50cea4 -r 6d99e9b8dbe5 jdk/src/java.base/share/classes/java/net/MulticastSocket.java
--- a/jdk/src/java.base/share/classes/java/net/MulticastSocket.java Fri Jan 23 18:50:48 2015 -0800
+++ b/jdk/src/java.base/share/classes/java/net/MulticastSocket.java Sat Jan 24 23:23:25 2015 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1995, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2014, 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
@@ -569,7 +569,7 @@
public NetworkInterface getNetworkInterface() throws SocketException {
NetworkInterface ni
= (NetworkInterface)getImpl().getOption(SocketOptions.IP_MULTICAST_IF2);
- if (ni.getIndex() == 0) {
+ if ((ni.getIndex() == 0) || (ni.getIndex() == -1)) {
InetAddress[] addrs = new InetAddress[1];
addrs[0] = InetAddress.anyLocalAddress();
return new NetworkInterface(addrs[0].getHostName(), 0, addrs);
diff -r efce8f50cea4 -r 6d99e9b8dbe5 jdk/src/java.base/share/classes/java/net/URI.java
--- a/jdk/src/java.base/share/classes/java/net/URI.java Fri Jan 23 18:50:48 2015 -0800
+++ b/jdk/src/java.base/share/classes/java/net/URI.java Sat Jan 24 23:23:25 2015 -0800
@@ -2637,6 +2637,11 @@
private static final long H_URIC_NO_SLASH
= H_UNRESERVED | H_ESCAPED | highMask(";?:@&=+$,");
+ // scope_id = alpha | digit | "_" | "."
+ private static final long L_SCOPE_ID
+ = L_ALPHANUM | lowMask("_.");
+ private static final long H_SCOPE_ID
+ = H_ALPHANUM | highMask("_.");
// -- Escaping and encoding --
@@ -3226,7 +3231,7 @@
if (r+1 == q) {
fail ("scope id expected");
}
- checkChars (r+1, q, L_ALPHANUM, H_ALPHANUM,
+ checkChars (r+1, q, L_SCOPE_ID, H_SCOPE_ID,
"scope id");
} else {
parseIPv6Reference(p, q);
diff -r efce8f50cea4 -r 6d99e9b8dbe5 jdk/src/java.base/share/classes/java/nio/channels/Channels.java
--- a/jdk/src/java.base/share/classes/java/nio/channels/Channels.java Fri Jan 23 18:50:48 2015 -0800
+++ b/jdk/src/java.base/share/classes/java/nio/channels/Channels.java Sat Jan 24 23:23:25 2015 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2015, 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
@@ -579,12 +579,13 @@
* charset and writes the resulting bytes to the given channel.
*
*
An invocation of this method of the form
- *
+ *
*
{@code
* Channels.newWriter(ch, csname)
* }
+ *
* behaves in exactly the same way as the expression
- *
diff -r efce8f50cea4 -r 6d99e9b8dbe5 jdk/src/java.base/share/classes/java/util/Formatter.java
--- a/jdk/src/java.base/share/classes/java/util/Formatter.java Fri Jan 23 18:50:48 2015 -0800
+++ b/jdk/src/java.base/share/classes/java/util/Formatter.java Sat Jan 24 23:23:25 2015 -0800
@@ -1835,7 +1835,7 @@
*
The maximum number of arguments is limited by the maximum dimension of a
* Java array as defined by
* The Java™ Virtual Machine Specification.
- * If the argument index is does not correspond to an
+ * If the argument index does not correspond to an
* available argument, then a {@link MissingFormatArgumentException} is thrown.
*
*
If there are more arguments than format specifiers, the extra arguments
diff -r efce8f50cea4 -r 6d99e9b8dbe5 jdk/src/java.base/share/classes/java/util/Hashtable.java
--- a/jdk/src/java.base/share/classes/java/util/Hashtable.java Fri Jan 23 18:50:48 2015 -0800
+++ b/jdk/src/java.base/share/classes/java/util/Hashtable.java Sat Jan 24 23:23:25 2015 -0800
@@ -1137,10 +1137,10 @@
Entry