diff --git a/jdk/src/share/classes/java/lang/String.java b/jdk/src/share/classes/java/lang/String.java
index 6aaf7684bf3..2aead0f545d 100644
--- a/jdk/src/share/classes/java/lang/String.java
+++ b/jdk/src/share/classes/java/lang/String.java
@@ -1492,7 +1492,7 @@ public final class String
*/
public int hashCode() {
int h = hash;
- if (h == 0) {
+ if (h == 0 && count > 0) {
int off = offset;
char val[] = value;
int len = count;
diff --git a/jdk/src/share/classes/java/util/DualPivotQuicksort.java b/jdk/src/share/classes/java/util/DualPivotQuicksort.java
index 07cda259dd4..eedb2389134 100644
--- a/jdk/src/share/classes/java/util/DualPivotQuicksort.java
+++ b/jdk/src/share/classes/java/util/DualPivotQuicksort.java
@@ -253,7 +253,7 @@ final class DualPivotQuicksort {
a[less] = ak;
}
less++;
- } else { // (a[k] > pivot1) - Move a[k] to right part
+ } else { // (a[k] > pivot1) - Move a[k] to right part
/*
* We know that pivot1 == a[e3] == pivot2. Thus, we know
* that great will still be >= k when the following loop
@@ -531,7 +531,7 @@ final class DualPivotQuicksort {
a[less] = ak;
}
less++;
- } else { // (a[k] > pivot1) - Move a[k] to right part
+ } else { // (a[k] > pivot1) - Move a[k] to right part
/*
* We know that pivot1 == a[e3] == pivot2. Thus, we know
* that great will still be >= k when the following loop
@@ -826,7 +826,7 @@ final class DualPivotQuicksort {
a[less] = ak;
}
less++;
- } else { // (a[k] > pivot1) - Move a[k] to right part
+ } else { // (a[k] > pivot1) - Move a[k] to right part
/*
* We know that pivot1 == a[e3] == pivot2. Thus, we know
* that great will still be >= k when the following loop
@@ -1119,7 +1119,7 @@ final class DualPivotQuicksort {
a[less] = ak;
}
less++;
- } else { // (a[k] > pivot1) - Move a[k] to right part
+ } else { // (a[k] > pivot1) - Move a[k] to right part
/*
* We know that pivot1 == a[e3] == pivot2. Thus, we know
* that great will still be >= k when the following loop
@@ -1414,7 +1414,7 @@ final class DualPivotQuicksort {
a[less] = ak;
}
less++;
- } else { // (a[k] > pivot1) - Move a[k] to right part
+ } else { // (a[k] > pivot1) - Move a[k] to right part
/*
* We know that pivot1 == a[e3] == pivot2. Thus, we know
* that great will still be >= k when the following loop
@@ -1531,7 +1531,7 @@ final class DualPivotQuicksort {
* Sorts the specified range of the array into ascending order. The range
* to be sorted extends from the index {@code fromIndex}, inclusive, to
* the index {@code toIndex}, exclusive. If {@code fromIndex == toIndex},
- * the range to be sorted is empty and the call is a no-op).
+ * the range to be sorted is empty and the call is a no-op).
*
*
The {@code <} relation does not provide a total order on all float
* values: {@code -0.0f == 0.0f} is {@code true} and a {@code Float.NaN}
@@ -1787,7 +1787,7 @@ final class DualPivotQuicksort {
a[less] = ak;
}
less++;
- } else { // (a[k] > pivot1) - Move a[k] to right part
+ } else { // (a[k] > pivot1) - Move a[k] to right part
/*
* We know that pivot1 == a[e3] == pivot2. Thus, we know
* that great will still be >= k when the following loop
@@ -2160,7 +2160,7 @@ final class DualPivotQuicksort {
a[less] = ak;
}
less++;
- } else { // (a[k] > pivot1) - Move a[k] to right part
+ } else { // (a[k] > pivot1) - Move a[k] to right part
/*
* We know that pivot1 == a[e3] == pivot2. Thus, we know
* that great will still be >= k when the following loop
diff --git a/jdk/src/share/classes/sun/nio/fs/AbstractWatchKey.java b/jdk/src/share/classes/sun/nio/fs/AbstractWatchKey.java
index b00c71d37cd..9faf78cec82 100644
--- a/jdk/src/share/classes/sun/nio/fs/AbstractWatchKey.java
+++ b/jdk/src/share/classes/sun/nio/fs/AbstractWatchKey.java
@@ -59,10 +59,15 @@ abstract class AbstractWatchKey extends WatchKey {
// pending events
private List> events;
+ // maps a context to the last event for the context (iff the last queued
+ // event for the context is an ENTRY_MODIFY event).
+ private Map