From dfbf4c7a612f424d744ae6d63417bbccb9e5c5e3 Mon Sep 17 00:00:00 2001
From: Jonathan Gibbons
Date: Thu, 14 Dec 2017 13:16:33 -0800
Subject: [PATCH 01/51] 8193525: Intermittent failures of
TestModulePackages.java
Reviewed-by: darcy
---
.../jdk/javadoc/doclet/testModules/TestModulePackages.java | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/test/langtools/jdk/javadoc/doclet/testModules/TestModulePackages.java b/test/langtools/jdk/javadoc/doclet/testModules/TestModulePackages.java
index 2d11284aba0..4ae83788053 100644
--- a/test/langtools/jdk/javadoc/doclet/testModules/TestModulePackages.java
+++ b/test/langtools/jdk/javadoc/doclet/testModules/TestModulePackages.java
@@ -26,7 +26,9 @@
* @bug 8178070
* @summary Test packages table in module summary pages
* @library /tools/lib ../lib
- * @modules jdk.javadoc/jdk.javadoc.internal.tool
+ * @modules jdk.compiler/com.sun.tools.javac.api
+ * jdk.compiler/com.sun.tools.javac.main
+ * jdk.javadoc/jdk.javadoc.internal.tool
* @build toolbox.ModuleBuilder toolbox.ToolBox JavadocTester
* @run main TestModulePackages
*/
From 063f19b329b0686ec9d0f37b711be40ae0d6387e Mon Sep 17 00:00:00 2001
From: Lana Steuck
Date: Fri, 15 Dec 2017 16:38:40 +0000
Subject: [PATCH 02/51] Added tag jdk-10+36 for changeset cb54a299aa91
---
.hgtags | 1 +
1 file changed, 1 insertion(+)
diff --git a/.hgtags b/.hgtags
index 0a1b78991e9..b4df4956421 100644
--- a/.hgtags
+++ b/.hgtags
@@ -460,3 +460,4 @@ a2008587c13fa05fa2dbfcb09fe987576fbedfd1 jdk-10+32
bbd692ad4fa300ecca7939ffbe3b1d5e52a28cc6 jdk-10+33
89deac44e51517841491ba86ff44aa82a5ca96b3 jdk-10+34
d8c634b016c628622c9abbdc6bf50509e5dedbec jdk-10+35
+cb54a299aa91419cb7caef3992592e7b22488163 jdk-10+36
From d2db163edbb5ff2bceffdccf69a6ae4c963eccf8 Mon Sep 17 00:00:00 2001
From: Roland Westrelin
Date: Fri, 15 Dec 2017 10:26:45 -0800
Subject: [PATCH 03/51] 8193518: C2: Vector registers sometimes corrupted at
safepoint
Reviewed-by: neliasso, thartmann, kvn
---
src/hotspot/share/opto/compile.hpp | 6 +++---
src/hotspot/share/opto/superword.cpp | 4 +++-
2 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/src/hotspot/share/opto/compile.hpp b/src/hotspot/share/opto/compile.hpp
index c21ee7e61e5..7f49319a3d9 100644
--- a/src/hotspot/share/opto/compile.hpp
+++ b/src/hotspot/share/opto/compile.hpp
@@ -378,7 +378,7 @@ class Compile : public Phase {
bool _has_stringbuilder; // True StringBuffers or StringBuilders are allocated
bool _has_boxed_value; // True if a boxed object is allocated
bool _has_reserved_stack_access; // True if the method or an inlined method is annotated with ReservedStackAccess
- int _max_vector_size; // Maximum size of generated vectors
+ uint _max_vector_size; // Maximum size of generated vectors
uint _trap_hist[trapHistLength]; // Cumulative traps
bool _trap_can_recompile; // Have we emitted a recompiling trap?
uint _decompile_count; // Cumulative decompilation counts.
@@ -656,8 +656,8 @@ class Compile : public Phase {
void set_has_boxed_value(bool z) { _has_boxed_value = z; }
bool has_reserved_stack_access() const { return _has_reserved_stack_access; }
void set_has_reserved_stack_access(bool z) { _has_reserved_stack_access = z; }
- int max_vector_size() const { return _max_vector_size; }
- void set_max_vector_size(int s) { _max_vector_size = s; }
+ uint max_vector_size() const { return _max_vector_size; }
+ void set_max_vector_size(uint s) { _max_vector_size = s; }
void set_trap_count(uint r, uint c) { assert(r < trapHistLength, "oob"); _trap_hist[r] = c; }
uint trap_count(uint r) const { assert(r < trapHistLength, "oob"); return _trap_hist[r]; }
bool trap_can_recompile() const { return _trap_can_recompile; }
diff --git a/src/hotspot/share/opto/superword.cpp b/src/hotspot/share/opto/superword.cpp
index 497f058a275..25ffb67f017 100644
--- a/src/hotspot/share/opto/superword.cpp
+++ b/src/hotspot/share/opto/superword.cpp
@@ -2442,7 +2442,9 @@ void SuperWord::output() {
}
}//for (int i = 0; i < _block.length(); i++)
- C->set_max_vector_size(max_vlen_in_bytes);
+ if (max_vlen_in_bytes > C->max_vector_size()) {
+ C->set_max_vector_size(max_vlen_in_bytes);
+ }
if (max_vlen_in_bytes > 0) {
cl->mark_loop_vectorized();
}
From 25e03a8e65c7669a6f7fe51462780b054bbcdbd5 Mon Sep 17 00:00:00 2001
From: Vivek Deshpande
Date: Fri, 15 Dec 2017 10:44:06 -0800
Subject: [PATCH 04/51] 8190934: Regressions on Haswell Xeon due to JDK-8178811
Reviewed-by: neliasso, kvn
---
src/hotspot/cpu/x86/x86_64.ad | 28 ++++++++++++++++---------
src/hotspot/share/opto/compile.cpp | 1 +
src/hotspot/share/opto/compile.hpp | 5 ++++-
src/hotspot/share/opto/library_call.cpp | 20 ++++++++++++++++++
4 files changed, 43 insertions(+), 11 deletions(-)
diff --git a/src/hotspot/cpu/x86/x86_64.ad b/src/hotspot/cpu/x86/x86_64.ad
index f1bd471b0f6..e7b1a545b59 100644
--- a/src/hotspot/cpu/x86/x86_64.ad
+++ b/src/hotspot/cpu/x86/x86_64.ad
@@ -547,8 +547,12 @@ source %{
#define __ _masm.
+static bool generate_vzeroupper(Compile* C) {
+ return (VM_Version::supports_vzeroupper() && (C->max_vector_size() > 16 || C->clear_upper_avx() == true)) ? true: false; // Generate vzeroupper
+}
+
static int clear_avx_size() {
- return (VM_Version::supports_vzeroupper()) ? 3: 0; // vzeroupper
+ return generate_vzeroupper(Compile::current()) ? 3: 0; // vzeroupper
}
// !!!!! Special hack to get all types of calls to specify the byte offset
@@ -931,7 +935,7 @@ int MachPrologNode::reloc() const
void MachEpilogNode::format(PhaseRegAlloc* ra_, outputStream* st) const
{
Compile* C = ra_->C;
- if (VM_Version::supports_vzeroupper()) {
+ if (generate_vzeroupper(C)) {
st->print("vzeroupper");
st->cr(); st->print("\t");
}
@@ -971,9 +975,11 @@ void MachEpilogNode::emit(CodeBuffer& cbuf, PhaseRegAlloc* ra_) const
Compile* C = ra_->C;
MacroAssembler _masm(&cbuf);
- // Clear upper bits of YMM registers when current compiled code uses
- // wide vectors to avoid AVX <-> SSE transition penalty during call.
- __ vzeroupper();
+ if (generate_vzeroupper(C)) {
+ // Clear upper bits of YMM registers when current compiled code uses
+ // wide vectors to avoid AVX <-> SSE transition penalty during call.
+ __ vzeroupper();
+ }
int framesize = C->frame_size_in_bytes();
assert((framesize & (StackAlignmentInBytes-1)) == 0, "frame size not aligned");
@@ -2112,11 +2118,13 @@ encode %{
enc_class clear_avx %{
debug_only(int off0 = cbuf.insts_size());
- // Clear upper bits of YMM registers to avoid AVX <-> SSE transition penalty
- // Clear upper bits of YMM registers when current compiled code uses
- // wide vectors to avoid AVX <-> SSE transition penalty during call.
- MacroAssembler _masm(&cbuf);
- __ vzeroupper();
+ if (generate_vzeroupper(Compile::current())) {
+ // Clear upper bits of YMM registers to avoid AVX <-> SSE transition penalty
+ // Clear upper bits of YMM registers when current compiled code uses
+ // wide vectors to avoid AVX <-> SSE transition penalty during call.
+ MacroAssembler _masm(&cbuf);
+ __ vzeroupper();
+ }
debug_only(int off1 = cbuf.insts_size());
assert(off1 - off0 == clear_avx_size(), "correct size prediction");
%}
diff --git a/src/hotspot/share/opto/compile.cpp b/src/hotspot/share/opto/compile.cpp
index 8e5da8a4028..913a1c9a0df 100644
--- a/src/hotspot/share/opto/compile.cpp
+++ b/src/hotspot/share/opto/compile.cpp
@@ -1094,6 +1094,7 @@ void Compile::Init(int aliaslevel) {
_major_progress = true; // start out assuming good things will happen
set_has_unsafe_access(false);
set_max_vector_size(0);
+ set_clear_upper_avx(false); //false as default for clear upper bits of ymm registers
Copy::zero_to_bytes(_trap_hist, sizeof(_trap_hist));
set_decompile_count(0);
diff --git a/src/hotspot/share/opto/compile.hpp b/src/hotspot/share/opto/compile.hpp
index 7f49319a3d9..7bd7a99b07a 100644
--- a/src/hotspot/share/opto/compile.hpp
+++ b/src/hotspot/share/opto/compile.hpp
@@ -379,6 +379,7 @@ class Compile : public Phase {
bool _has_boxed_value; // True if a boxed object is allocated
bool _has_reserved_stack_access; // True if the method or an inlined method is annotated with ReservedStackAccess
uint _max_vector_size; // Maximum size of generated vectors
+ bool _clear_upper_avx; // Clear upper bits of ymm registers using vzeroupper
uint _trap_hist[trapHistLength]; // Cumulative traps
bool _trap_can_recompile; // Have we emitted a recompiling trap?
uint _decompile_count; // Cumulative decompilation counts.
@@ -656,8 +657,10 @@ class Compile : public Phase {
void set_has_boxed_value(bool z) { _has_boxed_value = z; }
bool has_reserved_stack_access() const { return _has_reserved_stack_access; }
void set_has_reserved_stack_access(bool z) { _has_reserved_stack_access = z; }
- uint max_vector_size() const { return _max_vector_size; }
+ uint max_vector_size() const { return _max_vector_size; }
void set_max_vector_size(uint s) { _max_vector_size = s; }
+ bool clear_upper_avx() const { return _clear_upper_avx; }
+ void set_clear_upper_avx(bool s) { _clear_upper_avx = s; }
void set_trap_count(uint r, uint c) { assert(r < trapHistLength, "oob"); _trap_hist[r] = c; }
uint trap_count(uint r) const { assert(r < trapHistLength, "oob"); return _trap_hist[r]; }
bool trap_can_recompile() const { return _trap_can_recompile; }
diff --git a/src/hotspot/share/opto/library_call.cpp b/src/hotspot/share/opto/library_call.cpp
index bb4ed6cef8e..1287c6a1853 100644
--- a/src/hotspot/share/opto/library_call.cpp
+++ b/src/hotspot/share/opto/library_call.cpp
@@ -328,6 +328,13 @@ class LibraryCallKit : public GraphKit {
bool inline_profileBoolean();
bool inline_isCompileConstant();
+ void clear_upper_avx() {
+#ifdef X86
+ if (UseAVX >= 2) {
+ C->set_clear_upper_avx(true);
+ }
+#endif
+ }
};
//---------------------------make_vm_intrinsic----------------------------
@@ -1082,6 +1089,7 @@ Node* LibraryCallKit::make_string_method_node(int opcode, Node* str1_start, Node
// All these intrinsics have checks.
C->set_has_split_ifs(true); // Has chance for split-if optimization
+ clear_upper_avx();
return _gvn.transform(result);
}
@@ -1156,6 +1164,8 @@ bool LibraryCallKit::inline_array_equals(StrIntrinsicNode::ArgEnc ae) {
const TypeAryPtr* mtype = (ae == StrIntrinsicNode::UU) ? TypeAryPtr::CHARS : TypeAryPtr::BYTES;
set_result(_gvn.transform(new AryEqNode(control(), memory(mtype), arg1, arg2, ae)));
+ clear_upper_avx();
+
return true;
}
@@ -1227,6 +1237,7 @@ bool LibraryCallKit::inline_preconditions_checkIndex() {
result = _gvn.transform(result);
set_result(result);
replace_in_map(index, result);
+ clear_upper_avx();
return true;
}
@@ -1325,6 +1336,7 @@ bool LibraryCallKit::inline_string_indexOfI(StrIntrinsicNode::ArgEnc ae) {
set_control(_gvn.transform(region));
record_for_igvn(region);
set_result(_gvn.transform(phi));
+ clear_upper_avx();
return true;
}
@@ -1488,6 +1500,8 @@ bool LibraryCallKit::inline_string_copy(bool compress) {
if (compress) {
set_result(_gvn.transform(count));
}
+ clear_upper_avx();
+
return true;
}
@@ -1585,6 +1599,8 @@ bool LibraryCallKit::inline_string_toBytesU() {
if (!stopped()) {
set_result(newcopy);
}
+ clear_upper_avx();
+
return true;
}
@@ -5286,6 +5302,8 @@ bool LibraryCallKit::inline_arraycopy() {
assert(validated, "shouldn't transform if all arguments not validated");
set_all_memory(n);
}
+ clear_upper_avx();
+
return true;
}
@@ -5406,6 +5424,8 @@ bool LibraryCallKit::inline_encodeISOArray() {
Node* res_mem = _gvn.transform(new SCMemProjNode(enc));
set_memory(res_mem, mtype);
set_result(enc);
+ clear_upper_avx();
+
return true;
}
From 108cfd6c194ec23891278a17b123ce633399adc2 Mon Sep 17 00:00:00 2001
From: Dmitry Markov
Date: Fri, 15 Dec 2017 21:49:33 +0000
Subject: [PATCH 05/51] 8154405: AccessControlException by URLPermission check
Reviewed-by: serb, ssadetsky, mullan
---
.../share/classes/java/awt/Toolkit.java | 24 +++++++++++--------
1 file changed, 14 insertions(+), 10 deletions(-)
diff --git a/src/java.desktop/share/classes/java/awt/Toolkit.java b/src/java.desktop/share/classes/java/awt/Toolkit.java
index 489ee4ff695..7a4372ace66 100644
--- a/src/java.desktop/share/classes/java/awt/Toolkit.java
+++ b/src/java.desktop/share/classes/java/awt/Toolkit.java
@@ -673,11 +673,13 @@ public abstract class Toolkit {
*
* This method first checks if there is a security manager installed.
* If so, the method calls the security manager's
- * {@code checkPermission} method with the
- * url.openConnection().getPermission() permission to ensure
- * that the access to the image is allowed. For compatibility
- * with pre-1.2 security managers, if the access is denied with
- * {@code FilePermission} or {@code SocketPermission},
+ * {@code checkPermission} method with the corresponding
+ * permission to ensure that the access to the image is allowed.
+ * If the connection to the specified URL requires
+ * either {@code URLPermission} or {@code SocketPermission},
+ * then {@code URLPermission} is used for security checks.
+ * For compatibility with pre-1.2 security managers, if the access
+ * is denied with {@code FilePermission} or {@code SocketPermission},
* the method throws the {@code SecurityException}
* if the corresponding 1.1-style SecurityManager.checkXXX method
* also denies permission.
@@ -717,11 +719,13 @@ public abstract class Toolkit {
*
* This method first checks if there is a security manager installed.
* If so, the method calls the security manager's
- * {@code checkPermission} method with the
- * url.openConnection().getPermission() permission to ensure
- * that the image creation is allowed. For compatibility
- * with pre-1.2 security managers, if the access is denied with
- * {@code FilePermission} or {@code SocketPermission},
+ * {@code checkPermission} method with the corresponding
+ * permission to ensure that the image creation is allowed.
+ * If the connection to the specified URL requires
+ * either {@code URLPermission} or {@code SocketPermission},
+ * then {@code URLPermission} is used for security checks.
+ * For compatibility with pre-1.2 security managers, if the access
+ * is denied with {@code FilePermission} or {@code SocketPermission},
* the method throws {@code SecurityException}
* if the corresponding 1.1-style SecurityManager.checkXXX method
* also denies permission.
From 7b054f30b8907e494ce6f009b177ffac904541f2 Mon Sep 17 00:00:00 2001
From: Alan Bateman
Date: Tue, 19 Dec 2017 10:03:36 +0000
Subject: [PATCH 06/51] 8193758: Update copyright headers of files in src tree
that are missing Classpath exception
Reviewed-by: mchung, mr, jjg, iris, prr
---
.../BlacklistedCertsConverter.java | 4 +-
.../EquivMapsGenerator.java | 4 +-
.../classes/java/lang/PublicMethods.java | 4 +-
.../classes/java/lang/StringConcatHelper.java | 4 +-
.../lang/invoke/StringConcatException.java | 4 +-
.../loader/AbstractClassLoaderValue.java | 4 +-
.../jdk/internal/loader/ClassLoaderValue.java | 4 +-
.../ssl/ExtendedMasterSecretExtension.java | 5 ++-
.../common/awt/systemscale/systemScale.c | 44 ++++++++++---------
.../common/awt/systemscale/systemScale.h | 44 ++++++++++---------
.../common/awt/systemscale/systemScale.cpp | 44 ++++++++++---------
.../common/awt/systemscale/systemScale.h | 44 ++++++++++---------
.../sun/tools/javac/api/JavacTaskPool.java | 4 +-
.../jshell/debug/InternalDebugControl.java | 4 +-
14 files changed, 122 insertions(+), 95 deletions(-)
diff --git a/make/jdk/src/classes/build/tools/blacklistedcertsconverter/BlacklistedCertsConverter.java b/make/jdk/src/classes/build/tools/blacklistedcertsconverter/BlacklistedCertsConverter.java
index 9f8ce873c57..54c60eb43d1 100644
--- a/make/jdk/src/classes/build/tools/blacklistedcertsconverter/BlacklistedCertsConverter.java
+++ b/make/jdk/src/classes/build/tools/blacklistedcertsconverter/BlacklistedCertsConverter.java
@@ -4,7 +4,9 @@
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
diff --git a/make/jdk/src/classes/build/tools/generatelsrequivmaps/EquivMapsGenerator.java b/make/jdk/src/classes/build/tools/generatelsrequivmaps/EquivMapsGenerator.java
index f1fa4e02397..86f22439fdc 100644
--- a/make/jdk/src/classes/build/tools/generatelsrequivmaps/EquivMapsGenerator.java
+++ b/make/jdk/src/classes/build/tools/generatelsrequivmaps/EquivMapsGenerator.java
@@ -4,7 +4,9 @@
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
diff --git a/src/java.base/share/classes/java/lang/PublicMethods.java b/src/java.base/share/classes/java/lang/PublicMethods.java
index 02e0d051b7d..eee131c206a 100644
--- a/src/java.base/share/classes/java/lang/PublicMethods.java
+++ b/src/java.base/share/classes/java/lang/PublicMethods.java
@@ -4,7 +4,9 @@
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
diff --git a/src/java.base/share/classes/java/lang/StringConcatHelper.java b/src/java.base/share/classes/java/lang/StringConcatHelper.java
index 809fab8eed5..159d657a2e9 100644
--- a/src/java.base/share/classes/java/lang/StringConcatHelper.java
+++ b/src/java.base/share/classes/java/lang/StringConcatHelper.java
@@ -4,7 +4,9 @@
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
diff --git a/src/java.base/share/classes/java/lang/invoke/StringConcatException.java b/src/java.base/share/classes/java/lang/invoke/StringConcatException.java
index 1cf0a66e370..ff86911b262 100644
--- a/src/java.base/share/classes/java/lang/invoke/StringConcatException.java
+++ b/src/java.base/share/classes/java/lang/invoke/StringConcatException.java
@@ -4,7 +4,9 @@
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
diff --git a/src/java.base/share/classes/jdk/internal/loader/AbstractClassLoaderValue.java b/src/java.base/share/classes/jdk/internal/loader/AbstractClassLoaderValue.java
index fe1342cf662..49e3ce3d7a0 100644
--- a/src/java.base/share/classes/jdk/internal/loader/AbstractClassLoaderValue.java
+++ b/src/java.base/share/classes/jdk/internal/loader/AbstractClassLoaderValue.java
@@ -4,7 +4,9 @@
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
diff --git a/src/java.base/share/classes/jdk/internal/loader/ClassLoaderValue.java b/src/java.base/share/classes/jdk/internal/loader/ClassLoaderValue.java
index a1f55f01872..f4b2d2a3995 100644
--- a/src/java.base/share/classes/jdk/internal/loader/ClassLoaderValue.java
+++ b/src/java.base/share/classes/jdk/internal/loader/ClassLoaderValue.java
@@ -4,7 +4,9 @@
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
diff --git a/src/java.base/share/classes/sun/security/ssl/ExtendedMasterSecretExtension.java b/src/java.base/share/classes/sun/security/ssl/ExtendedMasterSecretExtension.java
index bf7f7aefd75..f4d6a9ce98c 100644
--- a/src/java.base/share/classes/sun/security/ssl/ExtendedMasterSecretExtension.java
+++ b/src/java.base/share/classes/sun/security/ssl/ExtendedMasterSecretExtension.java
@@ -1,11 +1,12 @@
/*
* Copyright (c) 2017, Red Hat, Inc. and/or its affiliates.
- *
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
diff --git a/src/java.desktop/unix/native/common/awt/systemscale/systemScale.c b/src/java.desktop/unix/native/common/awt/systemscale/systemScale.c
index f7bea414e63..d0a9f5c4c07 100644
--- a/src/java.desktop/unix/native/common/awt/systemscale/systemScale.c
+++ b/src/java.desktop/unix/native/common/awt/systemscale/systemScale.c
@@ -1,25 +1,27 @@
/*
-* Copyright (c) 2016, 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
-* under the terms of the GNU General Public License version 2 only, as
-* published by the Free Software Foundation.
-*
-* This code is distributed in the hope that it will be useful, but WITHOUT
-* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-* version 2 for more details (a copy is included in the LICENSE file that
-* accompanied this code).
-*
-* You should have received a copy of the GNU General Public License version
-* 2 along with this work; if not, write to the Free Software Foundation,
-* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-*
-* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-* or visit www.oracle.com if you need additional information or have any
-* questions.
-*/
+ * Copyright (c) 2016, 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
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
#include "systemScale.h"
#include "jni.h"
diff --git a/src/java.desktop/unix/native/common/awt/systemscale/systemScale.h b/src/java.desktop/unix/native/common/awt/systemscale/systemScale.h
index b9c2b4f3f65..10de165f413 100644
--- a/src/java.desktop/unix/native/common/awt/systemscale/systemScale.h
+++ b/src/java.desktop/unix/native/common/awt/systemscale/systemScale.h
@@ -1,25 +1,27 @@
/*
-* Copyright (c) 2016, 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
-* under the terms of the GNU General Public License version 2 only, as
-* published by the Free Software Foundation.
-*
-* This code is distributed in the hope that it will be useful, but WITHOUT
-* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-* version 2 for more details (a copy is included in the LICENSE file that
-* accompanied this code).
-*
-* You should have received a copy of the GNU General Public License version
-* 2 along with this work; if not, write to the Free Software Foundation,
-* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-*
-* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-* or visit www.oracle.com if you need additional information or have any
-* questions.
-*/
+ * Copyright (c) 2016, 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
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
#ifndef _AWT_SYSTEMSCALE_H
#define _AWT_SYSTEMSCALE_H
diff --git a/src/java.desktop/windows/native/common/awt/systemscale/systemScale.cpp b/src/java.desktop/windows/native/common/awt/systemscale/systemScale.cpp
index 60eecd74437..f8ea087883c 100644
--- a/src/java.desktop/windows/native/common/awt/systemscale/systemScale.cpp
+++ b/src/java.desktop/windows/native/common/awt/systemscale/systemScale.cpp
@@ -1,25 +1,27 @@
/*
-* Copyright (c) 2016, 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
-* under the terms of the GNU General Public License version 2 only, as
-* published by the Free Software Foundation.
-*
-* This code is distributed in the hope that it will be useful, but WITHOUT
-* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-* version 2 for more details (a copy is included in the LICENSE file that
-* accompanied this code).
-*
-* You should have received a copy of the GNU General Public License version
-* 2 along with this work; if not, write to the Free Software Foundation,
-* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-*
-* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-* or visit www.oracle.com if you need additional information or have any
-* questions.
-*/
+ * Copyright (c) 2016, 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
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
#include "systemScale.h"
#include
#pragma comment(lib, "d2d1")
diff --git a/src/java.desktop/windows/native/common/awt/systemscale/systemScale.h b/src/java.desktop/windows/native/common/awt/systemscale/systemScale.h
index cc3cb8878c9..2dc840d0564 100644
--- a/src/java.desktop/windows/native/common/awt/systemscale/systemScale.h
+++ b/src/java.desktop/windows/native/common/awt/systemscale/systemScale.h
@@ -1,25 +1,27 @@
/*
-* Copyright (c) 2016, 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
-* under the terms of the GNU General Public License version 2 only, as
-* published by the Free Software Foundation.
-*
-* This code is distributed in the hope that it will be useful, but WITHOUT
-* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-* version 2 for more details (a copy is included in the LICENSE file that
-* accompanied this code).
-*
-* You should have received a copy of the GNU General Public License version
-* 2 along with this work; if not, write to the Free Software Foundation,
-* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-*
-* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-* or visit www.oracle.com if you need additional information or have any
-* questions.
-*/
+ * Copyright (c) 2016, 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
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
#ifndef _AWT_SYSTEM_SCALE_H
#define _AWT_SYSTEM_SCALE_H
#include
diff --git a/src/jdk.compiler/share/classes/com/sun/tools/javac/api/JavacTaskPool.java b/src/jdk.compiler/share/classes/com/sun/tools/javac/api/JavacTaskPool.java
index 22861d8e35f..cba3ae808ce 100644
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/api/JavacTaskPool.java
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/api/JavacTaskPool.java
@@ -4,7 +4,9 @@
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
diff --git a/src/jdk.jshell/share/classes/jdk/internal/jshell/debug/InternalDebugControl.java b/src/jdk.jshell/share/classes/jdk/internal/jshell/debug/InternalDebugControl.java
index 48acdba965e..29b35fd2f41 100644
--- a/src/jdk.jshell/share/classes/jdk/internal/jshell/debug/InternalDebugControl.java
+++ b/src/jdk.jshell/share/classes/jdk/internal/jshell/debug/InternalDebugControl.java
@@ -4,7 +4,9 @@
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
From f711280a47622be5c6c23dd0f9ed4ea7fd82572f Mon Sep 17 00:00:00 2001
From: Matthias Baesken
Date: Fri, 15 Dec 2017 14:08:15 +0100
Subject: [PATCH 07/51] 8193515: AIX: new Harfbuzz 1.7.1 version fails to
compile with xlC
Reviewed-by: prr, simonis
---
.../harfbuzz/hb-ot-shape-complex-arabic-fallback.hh | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-shape-complex-arabic-fallback.hh b/src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-shape-complex-arabic-fallback.hh
index 1719c99b09b..5fe13951cf7 100644
--- a/src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-shape-complex-arabic-fallback.hh
+++ b/src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-shape-complex-arabic-fallback.hh
@@ -77,7 +77,13 @@ arabic_fallback_synthesize_lookup_single (const hb_ot_shape_plan_t *plan HB_UNUS
/* Bubble-sort or something equally good!
* May not be good-enough for presidential candidate interviews, but good-enough for us... */
+
+#if defined(_AIX)
+ /* Workaround AIX xlC 12 compilation problems caused by the overloaded versions of 'cmp' in IntType */
+ hb_stable_sort (&glyphs[0], num_glyphs, (int(*)(const OT::GlyphID*, const OT::GlyphID *)) OT::GlyphID::cmp, &substitutes[0]);
+#else
hb_stable_sort (&glyphs[0], num_glyphs, OT::GlyphID::cmp, &substitutes[0]);
+#endif
OT::Supplier glyphs_supplier (glyphs, num_glyphs);
OT::Supplier substitutes_supplier (substitutes, num_glyphs);
@@ -126,7 +132,13 @@ arabic_fallback_synthesize_lookup_ligature (const hb_ot_shape_plan_t *plan HB_UN
first_glyphs_indirection[num_first_glyphs] = first_glyph_idx;
num_first_glyphs++;
}
+
+#if defined(_AIX)
+ /* Workaround AIX xlC 12 compilation problems caused by the overloaded versions of 'cmp' in IntType */
+ hb_stable_sort (&first_glyphs[0], num_first_glyphs, (int(*)(const OT::GlyphID *, const OT::GlyphID *)) OT::GlyphID::cmp, &first_glyphs_indirection[0]);
+#else
hb_stable_sort (&first_glyphs[0], num_first_glyphs, OT::GlyphID::cmp, &first_glyphs_indirection[0]);
+#endif
/* Now that the first-glyphs are sorted, walk again, populate ligatures. */
for (unsigned int i = 0; i < num_first_glyphs; i++)
From 7cd32cad8934124b07b96c455eb7813b8abb5d2f Mon Sep 17 00:00:00 2001
From: David Holmes
Date: Wed, 20 Dec 2017 22:36:21 -0500
Subject: [PATCH 08/51] 8193838: Update jtreg requiredVersion to 4.2 b11 for
JDK 11 and 12 support
Reviewed-by: alanb, sspitsyn
---
make/conf/jib-profiles.js | 2 +-
test/hotspot/jtreg/TEST.ROOT | 2 +-
test/jaxp/TEST.ROOT | 2 +-
test/jdk/TEST.ROOT | 2 +-
test/langtools/TEST.ROOT | 2 +-
test/nashorn/TEST.ROOT | 2 +-
6 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/make/conf/jib-profiles.js b/make/conf/jib-profiles.js
index 5066599a924..d01fdaeaa16 100644
--- a/make/conf/jib-profiles.js
+++ b/make/conf/jib-profiles.js
@@ -829,7 +829,7 @@ var getJibProfilesDependencies = function (input, common) {
jtreg: {
server: "javare",
revision: "4.2",
- build_number: "b10",
+ build_number: "b11",
checksum_file: "MD5_VALUES",
file: "jtreg_bin-4.2.zip",
environment_name: "JT_HOME",
diff --git a/test/hotspot/jtreg/TEST.ROOT b/test/hotspot/jtreg/TEST.ROOT
index c7ccaf2f4de..651ebdf6849 100644
--- a/test/hotspot/jtreg/TEST.ROOT
+++ b/test/hotspot/jtreg/TEST.ROOT
@@ -58,7 +58,7 @@ requires.properties= \
docker.support
# Minimum jtreg version
-requiredVersion=4.2 b08
+requiredVersion=4.2 b11
# Path to libraries in the topmost test directory. This is needed so @library
# does not need ../../../ notation to reach them
diff --git a/test/jaxp/TEST.ROOT b/test/jaxp/TEST.ROOT
index e2f049d3487..4bf95e20e90 100644
--- a/test/jaxp/TEST.ROOT
+++ b/test/jaxp/TEST.ROOT
@@ -23,7 +23,7 @@ modules=java.xml
groups=TEST.groups
# Minimum jtreg version
-requiredVersion=4.2 b08
+requiredVersion=4.2 b11
# Path to libraries in the topmost test directory. This is needed so @library
# does not need ../../ notation to reach them
diff --git a/test/jdk/TEST.ROOT b/test/jdk/TEST.ROOT
index 0aceb5f4710..aa1807b2941 100644
--- a/test/jdk/TEST.ROOT
+++ b/test/jdk/TEST.ROOT
@@ -39,7 +39,7 @@ requires.properties= \
vm.cds
# Minimum jtreg version
-requiredVersion=4.2 b09
+requiredVersion=4.2 b11
# Path to libraries in the topmost test directory. This is needed so @library
# does not need ../../ notation to reach them
diff --git a/test/langtools/TEST.ROOT b/test/langtools/TEST.ROOT
index 83af0bdffe2..0260ea81ffe 100644
--- a/test/langtools/TEST.ROOT
+++ b/test/langtools/TEST.ROOT
@@ -15,7 +15,7 @@ keys=intermittent randomness
groups=TEST.groups
# Minimum jtreg version
-requiredVersion=4.2 b08
+requiredVersion=4.2 b11
# Use new module options
useNewOptions=true
diff --git a/test/nashorn/TEST.ROOT b/test/nashorn/TEST.ROOT
index a0e6922a263..be0097f85e3 100644
--- a/test/nashorn/TEST.ROOT
+++ b/test/nashorn/TEST.ROOT
@@ -8,7 +8,7 @@ keys=intermittent randomness
groups=TEST.groups
# Minimum jtreg version
-requiredVersion=4.2 b08
+requiredVersion=4.2 b11
# Use new module options
useNewOptions=true
From 755fa4beb78575440418e6752627733171d951d6 Mon Sep 17 00:00:00 2001
From: Xue-Lei Andrew Fan
Date: Thu, 21 Dec 2017 05:51:38 +0000
Subject: [PATCH 09/51] 8193683: Increase the number of clones in the
CloneableDigest
Reviewed-by: coffeys, wetmore
---
.../sun/security/ssl/HandshakeHash.java | 29 +++++++++++++++++--
1 file changed, 26 insertions(+), 3 deletions(-)
diff --git a/src/java.base/share/classes/sun/security/ssl/HandshakeHash.java b/src/java.base/share/classes/sun/security/ssl/HandshakeHash.java
index 2a3775da7df..ba86dd87875 100644
--- a/src/java.base/share/classes/sun/security/ssl/HandshakeHash.java
+++ b/src/java.base/share/classes/sun/security/ssl/HandshakeHash.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2017, 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
@@ -108,7 +108,29 @@ final class HandshakeHash {
* a hash for the certificate verify message is required.
*/
HandshakeHash(boolean needCertificateVerify) {
- clonesNeeded = needCertificateVerify ? 4 : 3;
+ // We may rework the code later, but for now we use hard-coded number
+ // of clones if the underlying MessageDigests are not cloneable.
+ //
+ // The number used here is based on the current handshake protocols and
+ // implementation. It may be changed if the handshake processe gets
+ // changed in the future, for example adding a new extension that
+ // requires handshake hash. Please be careful about the number of
+ // clones if additional handshak hash is required in the future.
+ //
+ // For the current implementation, the handshake hash is required for
+ // the following items:
+ // . CertificateVerify handshake message (optional)
+ // . client Finished handshake message
+ // . server Finished Handshake message
+ // . the extended Master Secret extension [RFC 7627]
+ //
+ // Note that a late call to server setNeedClientAuth dose not update
+ // the number of clones. We may address the issue later.
+ //
+ // Note for safety, we allocate one more clone for the current
+ // implementation. We may consider it more carefully in the future
+ // for the exact number or rework the code in a different way.
+ clonesNeeded = needCertificateVerify ? 5 : 4;
}
void reserve(ByteBuffer input) {
@@ -335,7 +357,8 @@ final class HandshakeHash {
if (finMD != null) return;
try {
- finMD = CloneableDigest.getDigest(normalizeAlgName(s), 2);
+ // See comment in the contructor.
+ finMD = CloneableDigest.getDigest(normalizeAlgName(s), 4);
} catch (NoSuchAlgorithmException e) {
throw new Error(e);
}
From 3e0afd207dbc5d849228ae8e3603c51811671a17 Mon Sep 17 00:00:00 2001
From: Liam Miller-Cushon
Date: Thu, 21 Dec 2017 15:58:45 -0500
Subject: [PATCH 10/51] 8193216: Filer should warn if processors redefine
symbols from the classpath or sourcepath
Reviewed-by: vromero
---
.../tools/javac/processing/JavacFiler.java | 10 +--
.../warnings/TypeAlreadyExists/A.java | 24 +++++++
.../warnings/TypeAlreadyExists/B.java | 26 ++++++++
.../TestProcTypeAlreadyExistsWarning.java | 66 +++++++++++++++++++
.../warnings/TypeAlreadyExists/warn.out | 2 +
5 files changed, 123 insertions(+), 5 deletions(-)
create mode 100644 test/langtools/tools/javac/processing/warnings/TypeAlreadyExists/A.java
create mode 100644 test/langtools/tools/javac/processing/warnings/TypeAlreadyExists/B.java
create mode 100644 test/langtools/tools/javac/processing/warnings/TypeAlreadyExists/TestProcTypeAlreadyExistsWarning.java
create mode 100644 test/langtools/tools/javac/processing/warnings/TypeAlreadyExists/warn.out
diff --git a/src/jdk.compiler/share/classes/com/sun/tools/javac/processing/JavacFiler.java b/src/jdk.compiler/share/classes/com/sun/tools/javac/processing/JavacFiler.java
index a723d811ed5..c410067db8c 100644
--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/processing/JavacFiler.java
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/processing/JavacFiler.java
@@ -712,20 +712,20 @@ public class JavacFiler implements Filer, Closeable {
}
private void checkNameAndExistence(ModuleSymbol mod, String typename, boolean allowUnnamedPackageInfo) throws FilerException {
- // TODO: Check if type already exists on source or class path?
- // If so, use warning message key proc.type.already.exists
checkName(typename, allowUnnamedPackageInfo);
- ClassSymbol existing;
+ ClassSymbol existing = elementUtils.getTypeElement(typename);
boolean alreadySeen = aggregateGeneratedSourceNames.contains(Pair.of(mod, typename)) ||
aggregateGeneratedClassNames.contains(Pair.of(mod, typename)) ||
initialClassNames.contains(typename) ||
- ((existing = elementUtils.getTypeElement(typename)) != null &&
- initialInputs.contains(existing.sourcefile));
+ (existing != null && initialInputs.contains(existing.sourcefile));
if (alreadySeen) {
if (lint)
log.warning(Warnings.ProcTypeRecreate(typename));
throw new FilerException("Attempt to recreate a file for type " + typename);
}
+ if (lint && existing != null) {
+ log.warning("proc.type.already.exists", typename);
+ }
if (!mod.isUnnamed() && !typename.contains(".")) {
throw new FilerException("Attempt to create a type in unnamed package of a named module: " + typename);
}
diff --git a/test/langtools/tools/javac/processing/warnings/TypeAlreadyExists/A.java b/test/langtools/tools/javac/processing/warnings/TypeAlreadyExists/A.java
new file mode 100644
index 00000000000..055b50353d8
--- /dev/null
+++ b/test/langtools/tools/javac/processing/warnings/TypeAlreadyExists/A.java
@@ -0,0 +1,24 @@
+/*
+ * Copyright (c) 2017, Google Inc. 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
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+public class A {}
diff --git a/test/langtools/tools/javac/processing/warnings/TypeAlreadyExists/B.java b/test/langtools/tools/javac/processing/warnings/TypeAlreadyExists/B.java
new file mode 100644
index 00000000000..3d5379bb9a7
--- /dev/null
+++ b/test/langtools/tools/javac/processing/warnings/TypeAlreadyExists/B.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2017, Google Inc. 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
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+class B {
+ A a;
+}
diff --git a/test/langtools/tools/javac/processing/warnings/TypeAlreadyExists/TestProcTypeAlreadyExistsWarning.java b/test/langtools/tools/javac/processing/warnings/TypeAlreadyExists/TestProcTypeAlreadyExistsWarning.java
new file mode 100644
index 00000000000..97f9270e1bd
--- /dev/null
+++ b/test/langtools/tools/javac/processing/warnings/TypeAlreadyExists/TestProcTypeAlreadyExistsWarning.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 2017, Google Inc. 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
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8193216
+ * @summary Filer should warn if processors redefine symbols from the classpath or sourcepath
+ * @library /tools/javac/lib
+ * @modules java.compiler
+ * jdk.compiler
+ * @build JavacTestingAbstractProcessor TestProcTypeAlreadyExistsWarning
+ * @compile A.java
+ * @compile/ref=warn.out -XDrawDiagnostics -Xlint:processing -processor TestProcTypeAlreadyExistsWarning B.java
+ */
+
+import static java.nio.charset.StandardCharsets.UTF_8;
+
+import java.io.IOError;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.Set;
+import javax.annotation.processing.RoundEnvironment;
+import javax.annotation.processing.SupportedAnnotationTypes;
+import javax.lang.model.element.TypeElement;
+
+@SupportedAnnotationTypes("*")
+public class TestProcTypeAlreadyExistsWarning extends JavacTestingAbstractProcessor {
+
+ int round = 0;
+
+ @Override
+ public boolean process(Set extends TypeElement> annotations, RoundEnvironment roundEnv) {
+ round++;
+
+ if (round == 1) {
+ try (OutputStream os =
+ processingEnv.getFiler().createSourceFile("A").openOutputStream()) {
+ os.write("class A {}".getBytes(UTF_8));
+ } catch (IOException e) {
+ throw new IOError(e);
+ }
+ }
+
+ return false;
+ }
+}
diff --git a/test/langtools/tools/javac/processing/warnings/TypeAlreadyExists/warn.out b/test/langtools/tools/javac/processing/warnings/TypeAlreadyExists/warn.out
new file mode 100644
index 00000000000..aaef118b960
--- /dev/null
+++ b/test/langtools/tools/javac/processing/warnings/TypeAlreadyExists/warn.out
@@ -0,0 +1,2 @@
+- compiler.warn.proc.type.already.exists: A
+1 warning
From 64cef020e79997726b344a383d86d5e208cd4fda Mon Sep 17 00:00:00 2001
From: Mandy Chung
Date: Thu, 21 Dec 2017 15:04:45 -0800
Subject: [PATCH 11/51] 8193780: (ref) Remove the undocumented
"jdk.lang.ref.disableClearBeforeEnqueue" system property
Reviewed-by: alanb
---
.../share/classes/java/lang/ref/Reference.java | 11 +----------
test/jdk/java/lang/ref/ReferenceEnqueue.java | 8 +-------
2 files changed, 2 insertions(+), 17 deletions(-)
diff --git a/src/java.base/share/classes/java/lang/ref/Reference.java b/src/java.base/share/classes/java/lang/ref/Reference.java
index 5125e7cb553..2ead79fb636 100644
--- a/src/java.base/share/classes/java/lang/ref/Reference.java
+++ b/src/java.base/share/classes/java/lang/ref/Reference.java
@@ -140,14 +140,6 @@ public abstract class Reference {
}
}
- /*
- * system property to disable clearing before enqueuing.
- */
- private static final class ClearBeforeEnqueue {
- static final boolean DISABLE =
- Boolean.getBoolean("jdk.lang.ref.disableClearBeforeEnqueue");
- }
-
/*
* Atomically get and clear (set to null) the VM's pending list.
*/
@@ -299,8 +291,7 @@ public abstract class Reference {
* it was not registered with a queue when it was created
*/
public boolean enqueue() {
- if (!ClearBeforeEnqueue.DISABLE)
- this.referent = null;
+ this.referent = null;
return this.queue.enqueue(this);
}
diff --git a/test/jdk/java/lang/ref/ReferenceEnqueue.java b/test/jdk/java/lang/ref/ReferenceEnqueue.java
index ddc89fc7f27..c405c5c8a05 100644
--- a/test/jdk/java/lang/ref/ReferenceEnqueue.java
+++ b/test/jdk/java/lang/ref/ReferenceEnqueue.java
@@ -25,7 +25,6 @@
* @bug 4268317 8132306 8175797
* @summary Test if Reference.enqueue() works properly with GC
* @run main ReferenceEnqueue
- * @run main/othervm -Djdk.lang.ref.disableClearBeforeEnqueue=true ReferenceEnqueue
*/
import java.lang.ref.*;
@@ -87,8 +86,6 @@ public class ReferenceEnqueue {
final ReferenceQueue
*
* @author Michael Glavassevich, IBM
+ * @LastModified: Nov 2017
*/
final class SoftReferenceGrammarPool implements XMLGrammarPool {
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/ValidatorHandlerImpl.java b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/ValidatorHandlerImpl.java
index f04b8959ae4..57b16fb26ef 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/ValidatorHandlerImpl.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/ValidatorHandlerImpl.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -95,6 +94,7 @@ import org.xml.sax.ext.EntityResolver2;
* @author Kohsuke Kawaguchi (kohsuke.kawaguchi@sun.com)
* @author Michael Glavassevich, IBM
*
+ * @LastModified: Oct 2017
*/
final class ValidatorHandlerImpl extends ValidatorHandler implements
DTDHandler, EntityState, PSVIProvider, ValidatorHelper, XMLDocumentHandler {
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/WeakReferenceXMLSchema.java b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/WeakReferenceXMLSchema.java
index 6363de0aedb..c6f539ed43a 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/WeakReferenceXMLSchema.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/WeakReferenceXMLSchema.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -33,6 +32,7 @@ import com.sun.org.apache.xerces.internal.xni.grammars.XMLGrammarPool;
* its memory.
*
* @author Michael Glavassevich, IBM
+ * @LastModified: Oct 2017
*/
final class WeakReferenceXMLSchema extends AbstractXMLSchema {
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/WrappedSAXException.java b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/WrappedSAXException.java
index c8100c25bc5..35cf2b541b9 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/WrappedSAXException.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/jaxp/validation/WrappedSAXException.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -38,6 +37,8 @@ import org.xml.sax.SAXException;
*
* @author
* Kohsuke Kawaguchi (kohsuke.kawaguchi@sun.com)
+ *
+ * @LastModified: Oct 2017
*/
public class WrappedSAXException extends RuntimeException {
private static final long serialVersionUID = -3201986204982729962L;
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/parsers/AbstractDOMParser.java b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/parsers/AbstractDOMParser.java
index 4c4f096b534..0d494699d3e 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/parsers/AbstractDOMParser.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/parsers/AbstractDOMParser.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Nov 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -85,6 +84,7 @@ import org.xml.sax.SAXException;
* @author Andy Clark, IBM
* @author Elena Litani, IBM
*
+ * @LastModified: Nov 2017
*/
public class AbstractDOMParser extends AbstractXMLDocumentParser {
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/parsers/BasicParserConfiguration.java b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/parsers/BasicParserConfiguration.java
index 04b3de813b3..db365b5ac0b 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/parsers/BasicParserConfiguration.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/parsers/BasicParserConfiguration.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -95,6 +94,7 @@ import java.util.Locale;
* @author Arnaud Le Hors, IBM
* @author Andy Clark, IBM
*
+ * @LastModified: Oct 2017
*/
public abstract class BasicParserConfiguration
extends ParserConfigurationSettings
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/parsers/DOMParserImpl.java b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/parsers/DOMParserImpl.java
index 12eae6586f3..45fdbf878cb 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/parsers/DOMParserImpl.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/parsers/DOMParserImpl.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -79,6 +78,7 @@ import org.xml.sax.SAXException;
* @author Pavani Mukthipudi, Sun Microsystems Inc.
* @author Elena Litani, IBM
* @author Rahul Srivastava, Sun Microsystems Inc.
+ * @LastModified: Oct 2017
*/
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/parsers/XML11Configuration.java b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/parsers/XML11Configuration.java
index fc4ad5848fa..2d9de77962c 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/parsers/XML11Configuration.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/parsers/XML11Configuration.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2008, 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -78,6 +77,7 @@ import jdk.xml.internal.JdkXmlUtils;
* @author Neil Graham, IBM
* @author Michael Glavassevich, IBM
*
+ * @LastModified: Oct 2017
*/
public class XML11Configuration extends ParserConfigurationSettings
implements XMLPullParserConfiguration, XML11Configurable {
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/parsers/XML11DTDConfiguration.java b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/parsers/XML11DTDConfiguration.java
index 13d816b273e..7cca0a068a6 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/parsers/XML11DTDConfiguration.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/parsers/XML11DTDConfiguration.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -104,6 +103,7 @@ import java.util.Locale;
* @author Michael Glavassevich, IBM
* @author John Kim, IBM
*
+ * @LastModified: Oct 2017
*/
public class XML11DTDConfiguration extends ParserConfigurationSettings
implements XMLPullParserConfiguration, XML11Configurable {
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/parsers/XML11NonValidatingConfiguration.java b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/parsers/XML11NonValidatingConfiguration.java
index 5dc29c264b8..ad7229a8750 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/parsers/XML11NonValidatingConfiguration.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/parsers/XML11NonValidatingConfiguration.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -77,6 +76,7 @@ import java.util.Locale;
* @author John Kim, IBM
* @author Michael Glavassevich, IBM
*
+ * @LastModified: Oct 2017
*/
public class XML11NonValidatingConfiguration extends ParserConfigurationSettings
implements XMLPullParserConfiguration, XML11Configurable {
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/parsers/XMLGrammarPreparser.java b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/parsers/XMLGrammarPreparser.java
index fed427c3966..2b20c91ad63 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/parsers/XMLGrammarPreparser.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/parsers/XMLGrammarPreparser.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -50,6 +49,7 @@ import java.util.Map;
*
* @author Neil Graham, IBM
*
+ * @LastModified: Oct 2017
*/
public class XMLGrammarPreparser {
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/util/AugmentationsImpl.java b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/util/AugmentationsImpl.java
index b0b125f750b..8984d57ba8c 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/util/AugmentationsImpl.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/util/AugmentationsImpl.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -36,6 +35,7 @@ import java.util.Map;
*
*
* @author Elena Litani, IBM
+ * @LastModified: Oct 2017
*/
public class AugmentationsImpl implements Augmentations{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/util/DOMEntityResolverWrapper.java b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/util/DOMEntityResolverWrapper.java
index 4041c7cc4ad..27a6950991b 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/util/DOMEntityResolverWrapper.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/util/DOMEntityResolverWrapper.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Nov 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -45,6 +44,7 @@ import java.io.StringReader;
* @author Gopal Sharma, SUN MicroSystems Inc.
* @author Elena Litani, IBM
* @author Ramesh Mandava, Sun Microsystems
+ * @LastModified: Nov 2017
*/
public class DOMEntityResolverWrapper
implements XMLEntityResolver {
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/util/DatatypeMessageFormatter.java b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/util/DatatypeMessageFormatter.java
index 19edaa465fa..c114daeb636 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/util/DatatypeMessageFormatter.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/util/DatatypeMessageFormatter.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Sep 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -30,6 +29,7 @@ import jdk.xml.internal.SecuritySupport;
*
Used to format JAXP 1.3 Datatype API error messages using a specified locale.
*
* @author Neeraj Bajaj, Sun Microsystems
+ * @LastModified: Sep 2017
*/
public class DatatypeMessageFormatter {
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/util/JAXPNamespaceContextWrapper.java b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/util/JAXPNamespaceContextWrapper.java
index 51801b89668..dd5a4775f3d 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/util/JAXPNamespaceContextWrapper.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/util/JAXPNamespaceContextWrapper.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -35,6 +34,7 @@ import javax.xml.XMLConstants;
*
* @author Michael Glavassevich, IBM
*
+ * @LastModified: Oct 2017
*/
public final class JAXPNamespaceContextWrapper implements NamespaceContext {
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/util/NamespaceSupport.java b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/util/NamespaceSupport.java
index c3e93e161fd..05eba5b2560 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/util/NamespaceSupport.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/util/NamespaceSupport.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -36,6 +35,7 @@ import java.util.NoSuchElementException;
*
* @author Andy Clark, IBM
*
+ * @LastModified: Oct 2017
*/
public class NamespaceSupport implements NamespaceContext {
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/util/SAXMessageFormatter.java b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/util/SAXMessageFormatter.java
index 9dfbe504aca..4c7c95eb106 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/util/SAXMessageFormatter.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/util/SAXMessageFormatter.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Sep 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -31,6 +30,7 @@ import jdk.xml.internal.SecuritySupport;
*
* @author Michael Glavassevich, IBM
*
+ * @LastModified: Sep 2017
*/
public class SAXMessageFormatter {
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/util/SymbolHash.java b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/util/SymbolHash.java
index 264f20a8ab3..d1b12de60c6 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/util/SymbolHash.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/util/SymbolHash.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Nov 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -29,6 +28,7 @@ package com.sun.org.apache.xerces.internal.util;
* The hash code uses the same algorithm as SymbolTable class.
*
* @author Elena Litani
+ * @LastModified: Nov 2017
*/
public class SymbolHash {
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/utils/ConfigurationError.java b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/utils/ConfigurationError.java
index 13624da511c..f4218a8079d 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/utils/ConfigurationError.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/utils/ConfigurationError.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -23,6 +22,8 @@ package com.sun.org.apache.xerces.internal.utils;
/**
* A configuration error. This was an internal class in ObjectFactory previously
+ *
+ * @LastModified: Oct 2017
*/
public final class ConfigurationError extends Error {
private static final long serialVersionUID = 8095902236393167968L;
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/utils/ObjectFactory.java b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/utils/ObjectFactory.java
index 1aafcbed06f..406da3727b0 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/utils/ObjectFactory.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/utils/ObjectFactory.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -36,6 +35,7 @@ import jdk.xml.internal.SecuritySupport;
* when bundled as part of the JDK.
*
*
+ * @LastModified: Oct 2017
*/
public final class ObjectFactory {
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xinclude/MultipleScopeNamespaceSupport.java b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xinclude/MultipleScopeNamespaceSupport.java
index 78af2ffbf36..7b506b72fa6 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xinclude/MultipleScopeNamespaceSupport.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xinclude/MultipleScopeNamespaceSupport.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -38,6 +37,7 @@ import java.util.Enumeration;
*
* @author Peter McCracken, IBM
*
+ * @LastModified: Oct 2017
*/
public class MultipleScopeNamespaceSupport extends NamespaceSupport {
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xinclude/XIncludeHandler.java b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xinclude/XIncludeHandler.java
index 8d436cdcdf7..aaed561b2ad 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xinclude/XIncludeHandler.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xinclude/XIncludeHandler.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2006, 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Nov 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -128,6 +127,7 @@ import org.xml.sax.InputSource;
*
*
* @see XIncludeNamespaceSupport
+ * @LastModified: Nov 2017
*/
public class XIncludeHandler
implements XMLComponent, XMLDocumentFilter, XMLDTDFilter {
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xinclude/XIncludeMessageFormatter.java b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xinclude/XIncludeMessageFormatter.java
index 48ab524c43d..c274c0cf7ba 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xinclude/XIncludeMessageFormatter.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xinclude/XIncludeMessageFormatter.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Sep 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -33,6 +32,7 @@ import jdk.xml.internal.SecuritySupport;
*
* @author Peter McCracken, IBM
*
+ * @LastModified: Sep 2017
*/
public class XIncludeMessageFormatter implements MessageFormatter {
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xinclude/XIncludeTextReader.java b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xinclude/XIncludeTextReader.java
index 3c4aaafcbe2..fbe146fa25e 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xinclude/XIncludeTextReader.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xinclude/XIncludeTextReader.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -63,6 +62,7 @@ import java.util.Map;
*
*
* @see XIncludeHandler
+ * @LastModified: Oct 2017
*/
public class XIncludeTextReader {
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xni/Augmentations.java b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xni/Augmentations.java
index 3a436462ed9..6c90fbe8fe9 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xni/Augmentations.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xni/Augmentations.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -37,6 +36,7 @@ import java.util.Enumeration;
* should not save any reference to the structure.
*
* @author Elena Litani, IBM
+ * @LastModified: Oct 2017
*/
public interface Augmentations {
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xni/NamespaceContext.java b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xni/NamespaceContext.java
index d8462d2f158..efaadca35a4 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xni/NamespaceContext.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xni/NamespaceContext.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -35,6 +34,7 @@ import java.util.Enumeration;
*
* @author Andy Clark, IBM
*
+ * @LastModified: Oct 2017
*/
public interface NamespaceContext {
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xpointer/XPointerMessageFormatter.java b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xpointer/XPointerMessageFormatter.java
index 86a1ea3d4ff..ecefb14bc37 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xpointer/XPointerMessageFormatter.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xpointer/XPointerMessageFormatter.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Sep 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -34,6 +33,7 @@ import jdk.xml.internal.SecuritySupport;
*
* @xerces.internal
*
+ * @LastModified: Sep 2017
*/
final class XPointerMessageFormatter implements MessageFormatter {
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xs/LSInputList.java b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xs/LSInputList.java
index a2a80282419..bb32a038c69 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xs/LSInputList.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xs/LSInputList.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -28,6 +27,8 @@ import org.w3c.dom.ls.LSInput;
* The LSInputList interface provides the abstraction of an
* ordered collection of LSInputs, without defining or
* constraining how this collection is implemented.
+ *
+ * @LastModified: Oct 2017
*/
public interface LSInputList extends List {
/**
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xs/ShortList.java b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xs/ShortList.java
index 0a668148a07..881305ba5cb 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xs/ShortList.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xs/ShortList.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -26,6 +25,8 @@ import java.util.List;
/**
* The ShortList is an immutable ordered collection of
* unsigned short.
+ *
+ * @LastModified: Oct 2017
*/
public interface ShortList extends List {
/**
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xs/StringList.java b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xs/StringList.java
index 1d2a4c1d657..0ea889a73b0 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xs/StringList.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xs/StringList.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -26,6 +25,8 @@ import java.util.List;
/**
* The StringList is an immutable ordered collection of
* GenericString.
+ *
+ * @LastModified: Oct 2017
*/
public interface StringList extends List {
/**
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xs/XSNamedMap.java b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xs/XSNamedMap.java
index c0550935ca5..a4e72103c8b 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xs/XSNamedMap.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xs/XSNamedMap.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -30,6 +29,8 @@ import javax.xml.namespace.QName;
* accessed by name. Note that XSNamedMap does not inherit from
* XSObjectList. The XSObjects in
* XSNamedMaps are not maintained in any particular order.
+ *
+ * @LastModified: Oct 2017
*/
public interface XSNamedMap extends Map {
/**
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xs/XSNamespaceItemList.java b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xs/XSNamespaceItemList.java
index 1e99d1680f2..7f927ef1c9c 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xs/XSNamespaceItemList.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xs/XSNamespaceItemList.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -27,6 +26,8 @@ import java.util.List;
* The XSNamesaceItemList interface provides the abstraction of
* an immutable ordered collection of XSNamespaceItems, without
* defining or constraining how this collection is implemented.
+ *
+ * @LastModified: Oct 2017
*/
public interface XSNamespaceItemList extends List {
/**
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xs/XSObjectList.java b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xs/XSObjectList.java
index a81a68421a1..68fee11831d 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xs/XSObjectList.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xs/XSObjectList.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -27,6 +26,8 @@ import java.util.List;
* The XSObjectList interface provides the abstraction of an
* immutable ordered collection of XSObjects, without defining
* or constraining how this collection is implemented.
+ *
+ * @LastModified: Oct 2017
*/
public interface XSObjectList extends List {
/**
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xs/datatypes/ByteList.java b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xs/datatypes/ByteList.java
index e0acfd3d210..53246642c38 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xs/datatypes/ByteList.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xs/datatypes/ByteList.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -30,6 +29,7 @@ import java.util.List;
*
* @author Ankit Pasricha, IBM
*
+ * @LastModified: Oct 2017
*/
public interface ByteList extends List {
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xs/datatypes/ObjectList.java b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xs/datatypes/ObjectList.java
index 0a30036916b..3dcc532e19b 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xs/datatypes/ObjectList.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/xs/datatypes/ObjectList.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -29,6 +28,7 @@ import java.util.List;
*
* @author Ankit Pasricha, IBM
*
+ * @LastModified: Oct 2017
*/
public interface ObjectList extends List {
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/dtm/ref/CustomStringPool.java b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/dtm/ref/CustomStringPool.java
index 48742c90da5..4b6dc237d98 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/dtm/ref/CustomStringPool.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/dtm/ref/CustomStringPool.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -45,6 +44,7 @@ import java.util.Map;
*
* Status: In progress, under discussion.
*
+ * @LastModified: Oct 2017
*/
public class CustomStringPool extends DTMStringPool {
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMDefaultBase.java b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMDefaultBase.java
index 1e3799cb0eb..f01a5fa5bc1 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMDefaultBase.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMDefaultBase.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -36,6 +35,8 @@ import javax.xml.transform.Source;
* The DTMDefaultBase class serves as a helper base for DTMs.
* It sets up structures for navigation and type, while leaving data
* management and construction to the derived classes.
+ *
+ * @LastModified: Oct 2017
*/
public abstract class DTMDefaultBase implements DTM
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMDocumentImpl.java b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMDocumentImpl.java
index ea8fed859ef..a92eadbb395 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMDocumentImpl.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMDocumentImpl.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -60,6 +59,8 @@ import org.xml.sax.ext.LexicalHandler;
*
*
Origin: the implemention is a composite logic based on the DTM of XalanJ1 and
* DocImpl, DocumentImpl, ElementImpl, TextImpl, etc. of XalanJ2
+ *
+ * @LastModified: Oct 2017
*/
public class DTMDocumentImpl
implements DTM, org.xml.sax.ContentHandler, org.xml.sax.ext.LexicalHandler
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMManagerDefault.java b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMManagerDefault.java
index 4783c3549a1..17de72d23ec 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMManagerDefault.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMManagerDefault.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Nov 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -71,7 +70,9 @@ import org.xml.sax.helpers.DefaultHandler;
* activity (eg, when getDTM() is invoked). The downside of that solution
* would be a greater delay before the DTM's storage is actually released
* for reuse.
- * */
+ *
+ * @LastModified: Nov 2017
+ */
public class DTMManagerDefault extends DTMManager
{
//static final boolean JKESS_XNI_EXPERIMENT=true;
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMNodeList.java b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMNodeList.java
index 3ce3eee2593..ed5e8ed886a 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMNodeList.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMNodeList.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Nov 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -53,7 +52,9 @@ import org.w3c.dom.Node;
*
*
*
State: In progress!!
- * */
+ *
+ * @LastModified: Nov 2017
+ */
public class DTMNodeList extends DTMNodeListBase {
private DTMIterator m_iter;
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMNodeProxy.java b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMNodeProxy.java
index 8d5dd006d36..99139c6e382 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMNodeProxy.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMNodeProxy.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Nov 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -61,6 +60,7 @@ import org.w3c.dom.UserDataHandler;
* DTMNodeProxy may be subclassed further to present specific DOM node types.
*
* @see org.w3c.dom
+ * @LastModified: Nov 2017
*/
public class DTMNodeProxy
implements Node, Document, Text, Element, Attr,
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMStringPool.java b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMStringPool.java
index 3ce354f1eb1..a83ee2ac88e 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMStringPool.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/dtm/ref/DTMStringPool.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -53,7 +52,9 @@ import java.util.List;
* ObjectPool if one was needed.
*
*
Status: Passed basic test in main().
- * */
+ *
+ * @LastModified: Oct 2017
+ */
public class DTMStringPool
{
List m_intToString;
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/dtm/ref/IncrementalSAXSource_Xerces.java b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/dtm/ref/IncrementalSAXSource_Xerces.java
index ac945ac28c8..dfeeb20ed8c 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/dtm/ref/IncrementalSAXSource_Xerces.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/dtm/ref/IncrementalSAXSource_Xerces.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -40,7 +39,9 @@ import org.xml.sax.XMLReader;
*
- * */
+ *
+ * @LastModified: Oct 2017
+ */
public class IncrementalSAXSource_Xerces
implements IncrementalSAXSource
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/dtm/ref/dom2dtm/DOM2DTM.java b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/dtm/ref/dom2dtm/DOM2DTM.java
index af5155d9c1c..b5d4d3aaa65 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/dtm/ref/dom2dtm/DOM2DTM.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/dtm/ref/dom2dtm/DOM2DTM.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -62,7 +61,9 @@ import org.xml.sax.ContentHandler;
* Note too that we do not currently attempt to track document
* mutation. If you alter the DOM after wrapping DOM2DTM around it,
* all bets are off.
- * */
+ *
+ * @LastModified: Oct 2017
+ */
public class DOM2DTM extends DTMDefaultBaseIterators
{
static final boolean JJK_DEBUG=false;
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/dtm/ref/sax2dtm/SAX2DTM.java b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/dtm/ref/sax2dtm/SAX2DTM.java
index 80bc8aff845..dc31fc531f8 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/dtm/ref/sax2dtm/SAX2DTM.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/dtm/ref/sax2dtm/SAX2DTM.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2007, 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -63,6 +62,8 @@ import org.xml.sax.ext.LexicalHandler;
/**
* This class implements a DTM that tends to be optimized more for speed than
* for compactness, that is constructed via SAX2 ContentHandler events.
+ *
+ * @LastModified: Oct 2017
*/
public class SAX2DTM extends DTMDefaultBaseIterators
implements EntityResolver, DTDHandler, ContentHandler, ErrorHandler,
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/dtm/ref/sax2dtm/SAX2DTM2.java b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/dtm/ref/sax2dtm/SAX2DTM2.java
index 04dd3d2a68b..9df3a747fa2 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/dtm/ref/sax2dtm/SAX2DTM2.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/dtm/ref/sax2dtm/SAX2DTM2.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2007, 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -62,6 +61,8 @@ import org.xml.sax.SAXException;
*
* %MK% The code in this class is critical to the XSLTC_DTM performance. Be very careful
* when making changes here!
+ *
+ * @LastModified: Oct 2017
*/
public class SAX2DTM2 extends SAX2DTM
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/dtm/ref/sax2dtm/SAX2RTFDTM.java b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/dtm/ref/sax2dtm/SAX2RTFDTM.java
index 232d5d666d5..4561ecbd358 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/dtm/ref/sax2dtm/SAX2RTFDTM.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/dtm/ref/sax2dtm/SAX2RTFDTM.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -58,7 +57,9 @@ import org.xml.sax.SAXException;
* %REVIEW% In fact, since the differences are so minor, I think it
* may be possible/practical to fold them back into the base
* SAX2DTM. Consider that as a future code-size optimization.
- * */
+ *
+ * @LastModified: Oct 2017
+ */
public class SAX2RTFDTM extends SAX2DTM
{
/** Set true to monitor SAX events and similar diagnostic info. */
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/res/XMLMessages.java b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/res/XMLMessages.java
index a2fddcdc8ba..6b4ef68f086 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/res/XMLMessages.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/res/XMLMessages.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Sep 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -28,6 +27,7 @@ import jdk.xml.internal.SecuritySupport;
/**
* A utility class for issuing XML error messages.
* @xsl.usage internal
+ * @LastModified: Sep 2017
*/
public class XMLMessages
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serialize/BaseMarkupSerializer.java b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serialize/BaseMarkupSerializer.java
index 23392b9b32d..8c0cc63944c 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serialize/BaseMarkupSerializer.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serialize/BaseMarkupSerializer.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Nov 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -129,6 +128,8 @@ import org.xml.sax.ext.LexicalHandler;
* is replaced by that of Xalan. Main class
* {@link com.sun.org.apache.xml.internal.serialize.DOMSerializerImpl} is replaced
* by {@link com.sun.org.apache.xml.internal.serializer.dom3.LSSerializerImpl}.
+ *
+ * @LastModified: Nov 2017
*/
@Deprecated
public abstract class BaseMarkupSerializer
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serialize/DOMSerializerImpl.java b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serialize/DOMSerializerImpl.java
index 54913b2644e..b0c5d67939d 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serialize/DOMSerializerImpl.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serialize/DOMSerializerImpl.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -75,6 +74,8 @@ import org.w3c.dom.ls.LSSerializerFilter;
*
* @deprecated As of JDK 9, Xerces 2.9.0, replaced by
* {@link com.sun.org.apache.xml.internal.serializer.dom3.LSSerializerImpl}
+ *
+ * @LastModified: Oct 2017
*/
@Deprecated
public class DOMSerializerImpl implements LSSerializer, DOMConfiguration {
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serialize/Encodings.java b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serialize/Encodings.java
index 2e240a58858..392c8535aae 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serialize/Encodings.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serialize/Encodings.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -42,6 +41,8 @@ import java.util.concurrent.ConcurrentHashMap;
* is replaced by that of Xalan. Main class
* {@link com.sun.org.apache.xml.internal.serialize.DOMSerializerImpl} is replaced
* by {@link com.sun.org.apache.xml.internal.serializer.dom3.LSSerializerImpl}.
+ *
+ * @LastModified: Oct 2017
*/
@Deprecated
class Encodings
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serialize/SerializerFactory.java b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serialize/SerializerFactory.java
index 3baf4ca57b1..3d63273d07f 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serialize/SerializerFactory.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serialize/SerializerFactory.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2015, 2017 Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -42,6 +41,8 @@ import jdk.xml.internal.SecuritySupport;
* is replaced by that of Xalan. Main class
* {@link com.sun.org.apache.xml.internal.serialize.DOMSerializerImpl} is replaced
* by {@link com.sun.org.apache.xml.internal.serializer.dom3.LSSerializerImpl}.
+ *
+ * @LastModified: Oct 2017
*/
@Deprecated
public abstract class SerializerFactory
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serialize/XMLSerializer.java b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serialize/XMLSerializer.java
index ee3d3226dc2..31c526b2d92 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serialize/XMLSerializer.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serialize/XMLSerializer.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -92,6 +91,8 @@ import org.xml.sax.helpers.AttributesImpl;
* is replaced by that of Xalan. Main class
* {@link com.sun.org.apache.xml.internal.serialize.DOMSerializerImpl} is replaced
* by {@link com.sun.org.apache.xml.internal.serializer.dom3.LSSerializerImpl}.
+ *
+ * @LastModified: Oct 2017
*/
@Deprecated
public class XMLSerializer
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/CharInfo.java b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/CharInfo.java
index 59f80d21d8c..ba93113c880 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/CharInfo.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/CharInfo.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -48,6 +47,7 @@ import jdk.xml.internal.SecuritySupport;
* DEVELOPERS: See Known Issue in the constructor.
*
* @xsl.usage internal
+ * @LastModified: Oct 2017
*/
final class CharInfo
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/EmptySerializer.java b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/EmptySerializer.java
index e4b0703888d..5c4efce7f17 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/EmptySerializer.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/EmptySerializer.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2012, 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -43,6 +42,7 @@ import org.xml.sax.SAXParseException;
* across package boundaries.
*
* @xsl.usage internal
+ * @LastModified: Oct 2017
*/
public class EmptySerializer implements SerializationHandler
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/Encodings.java b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/Encodings.java
index 34dafb6eb2f..79b46734202 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/Encodings.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/Encodings.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -49,6 +48,7 @@ import jdk.xml.internal.SecuritySupport;
* for each encoding.
*
* @author Assaf Arkin
+ * @LastModified: Oct 2017
*/
public final class Encodings extends Object
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/NamespaceMappings.java b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/NamespaceMappings.java
index a576e374da5..ebe76caed0f 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/NamespaceMappings.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/NamespaceMappings.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Nov 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -61,6 +60,7 @@ import org.xml.sax.SAXException;
* This class is public only because it is used by Xalan. It is not a public API
*
* @xsl.usage internal
+ * @LastModified: Nov 2017
*/
public class NamespaceMappings
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/OutputPropertiesFactory.java b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/OutputPropertiesFactory.java
index e8e914d0778..b1af4542098 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/OutputPropertiesFactory.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/OutputPropertiesFactory.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -80,6 +79,7 @@ import jdk.xml.internal.SecuritySupport;
* @see SerializerFactory
* @see Method
* @see Serializer
+ * @LastModified: Oct 2017
*/
public final class OutputPropertiesFactory
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/SerializerFactory.java b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/SerializerFactory.java
index c488e030f4c..e6e436a9739 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/SerializerFactory.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/SerializerFactory.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -56,6 +55,7 @@ import org.xml.sax.ContentHandler;
* @see OutputPropertiesFactory
* @see Method
* @see Serializer
+ * @LastModified: Oct 2017
*/
public final class SerializerFactory
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/ToSAXHandler.java b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/ToSAXHandler.java
index 2ea819cded7..2db37d9c688 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/ToSAXHandler.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/ToSAXHandler.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -36,6 +35,7 @@ import org.xml.sax.ext.LexicalHandler;
* This class is not a public API.
*
* @xsl.usage internal
+ * @LastModified: Oct 2017
*/
public abstract class ToSAXHandler extends SerializerBase {
public ToSAXHandler() { }
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/ToStream.java b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/ToStream.java
index 18480091c20..57f977337c6 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/ToStream.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/ToStream.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2006, 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Nov 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -53,6 +52,7 @@ import org.xml.sax.SAXException;
* serializers (xml, html, text ...) that write output to a stream.
*
* @xsl.usage internal
+ * @LastModified: Nov 2017
*/
abstract public class ToStream extends SerializerBase {
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/ToUnknownStream.java b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/ToUnknownStream.java
index b20acc0b0e7..ffcfa2c21fe 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/ToUnknownStream.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/ToUnknownStream.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2007, 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -49,6 +48,7 @@ import org.xml.sax.SAXException;
*
* This class is not a public API, it is public because it is used within Xalan.
* @xsl.usage internal
+ * @LastModified: Oct 2017
*/
public final class ToUnknownStream extends SerializerBase
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/XSLOutputAttributes.java b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/XSLOutputAttributes.java
index 1e1b25de182..b01e43a6a0b 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/XSLOutputAttributes.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/XSLOutputAttributes.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -51,6 +50,7 @@ import java.util.List;
* This interface is only used internally within Xalan.
*
* @xsl.usage internal
+ * @LastModified: Oct 2017
*/
interface XSLOutputAttributes {
/**
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/dom3/DOM3TreeWalker.java b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/dom3/DOM3TreeWalker.java
index 679db0e8fbf..a5453aac765 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/dom3/DOM3TreeWalker.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/dom3/DOM3TreeWalker.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -63,6 +62,7 @@ import org.xml.sax.helpers.LocatorImpl;
* parameters and filters if any during serialization.
*
* @xsl.usage internal
+ * @LastModified: Oct 2017
*/
final class DOM3TreeWalker {
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/dom3/DOMStringListImpl.java b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/dom3/DOMStringListImpl.java
index cb5a00ae05e..55b8b6c7e56 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/dom3/DOMStringListImpl.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/dom3/DOMStringListImpl.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -31,6 +30,7 @@ import org.w3c.dom.DOMStringList;
* This class implemets the DOM Level 3 Core interface DOMStringList.
*
* @xsl.usage internal
+ * @LastModified: Oct 2017
*/
final class DOMStringListImpl implements DOMStringList {
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/dom3/NamespaceSupport.java b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/dom3/NamespaceSupport.java
index 006d804ee07..12808d2622a 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/dom3/NamespaceSupport.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/dom3/NamespaceSupport.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one
@@ -36,6 +35,7 @@ import java.util.NoSuchElementException;
* @author Andy Clark, IBM
*
* @version $Id: Exp $
+ * @LastModified: Oct 2017
*/
public class NamespaceSupport {
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/Messages.java b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/Messages.java
index ccd0f447b6f..61fb1fca360 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/Messages.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/Messages.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Sep 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -90,6 +89,7 @@ import jdk.xml.internal.SecuritySupport;
* used in com.sun.org.apache.xml.internal.serializer.
*
* @xsl.usage internal
+ * @LastModified: Sep 2017
*/
public final class Messages
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/URI.java b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/URI.java
index 616e6abd36a..4bda294c366 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/URI.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/utils/URI.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -62,6 +61,7 @@ import java.util.Objects;
* the class is no longer "public".
*
* @xsl.usage internal
+ * @LastModified: Oct 2017
*/
final class URI
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/utils/DOMBuilder.java b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/utils/DOMBuilder.java
index 7128911916c..95fcab4f2c0 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/utils/DOMBuilder.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/utils/DOMBuilder.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2006, 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -40,6 +39,7 @@ import org.xml.sax.ext.LexicalHandler;
* that SAX doesn't handle yet) and adds the result to a document
* or document fragment.
* @xsl.usage general
+ * @LastModified: Oct 2017
*/
public class DOMBuilder
implements ContentHandler, LexicalHandler
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/utils/ObjectPool.java b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/utils/ObjectPool.java
index 3125d5ac578..05944643e28 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/utils/ObjectPool.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/utils/ObjectPool.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -32,6 +31,7 @@ import java.util.List;
/**
* Pool of object of a given type to pick from to help memory usage
* @xsl.usage internal
+ * @LastModified: Oct 2017
*/
public class ObjectPool implements java.io.Serializable
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/utils/QName.java b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/utils/QName.java
index 80c997451b6..cf03b5aa322 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/utils/QName.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/utils/QName.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -39,6 +38,7 @@ import org.w3c.dom.Element;
* is used as the name of the object. The default namespace is not used for
* unprefixed names."
* @xsl.usage general
+ * @LastModified: Oct 2017
*/
public class QName implements java.io.Serializable
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/utils/StringComparable.java b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/utils/StringComparable.java
index 1c4ae090851..db6fe80824a 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/utils/StringComparable.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/utils/StringComparable.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -30,6 +29,7 @@ import java.util.Locale;
/**
* International friendly string comparison with case-order
* @author Igor Hersht, igorh@ca.ibm.com
+ * @LastModified: Oct 2017
*/
public class StringComparable implements Comparable {
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/utils/StylesheetPIHandler.java b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/utils/StylesheetPIHandler.java
index d0f8974f9fa..d92028cbeda 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/utils/StylesheetPIHandler.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/utils/StylesheetPIHandler.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -36,6 +35,8 @@ import org.xml.sax.helpers.DefaultHandler;
* Search for the xml-stylesheet processing instructions in an XML document.
* @see
* Associating Style Sheets with XML documents, Version 1.0
+ *
+ * @LastModified: Oct 2017
*/
public class StylesheetPIHandler extends DefaultHandler
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/utils/URI.java b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/utils/URI.java
index 111230f786d..91b50f29ec4 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/utils/URI.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/utils/URI.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -58,6 +57,7 @@ import java.util.Objects;
* grammar and basic set of operations that can be applied to a URI.
*
*
+ * @LastModified: Oct 2017
*/
public class URI implements Serializable
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/utils/XMLReaderManager.java b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/utils/XMLReaderManager.java
index 4f0d77236ef..e49a85087bf 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xml/internal/utils/XMLReaderManager.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xml/internal/utils/XMLReaderManager.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2007, 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Sep 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -42,6 +41,8 @@ import org.xml.sax.helpers.XMLReaderFactory;
/**
* Creates XMLReader objects and caches them for re-use.
* This class follows the singleton pattern.
+ *
+ * @LastModified: Sep 2017
*/
@SuppressWarnings("deprecation") //org.xml.sax.helpers.XMLReaderFactory
public class XMLReaderManager {
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/Expression.java b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/Expression.java
index 36751e91ad4..558f97b29be 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/Expression.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/Expression.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -42,6 +41,8 @@ import org.xml.sax.ContentHandler;
* construction has completed. An exception to the immutibility rule is iterators
* and walkers, which must be cloned in order to be used -- the original must
* still be immutable.
+ *
+ * @LastModified: Oct 2017
*/
public abstract class Expression implements java.io.Serializable, ExpressionNode, XPathVisitable
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/ExtensionsProvider.java b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/ExtensionsProvider.java
index 9f5f7059f75..e20c80e30dc 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/ExtensionsProvider.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/ExtensionsProvider.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -29,6 +28,7 @@ import java.util.List;
* Interface that XPath objects can call to obtain access to an
* ExtensionsTable.
*
+ * @LastModified: Oct 2017
*/
public interface ExtensionsProvider
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/NodeSet.java b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/NodeSet.java
index 0b2eaacdaeb..aa8eeb170d3 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/NodeSet.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/NodeSet.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Nov 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -56,6 +55,7 @@ import org.w3c.dom.traversal.NodeIterator;
* to the same calls; the disadvantage is that some of them may return
* less-than-enlightening results when you do so.
* @xsl.usage advanced
+ * @LastModified: Nov 2017
*/
public class NodeSet
implements NodeList, NodeIterator, Cloneable, ContextNodeList
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/SourceTreeManager.java b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/SourceTreeManager.java
index 02bcddcfeeb..5376e338272 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/SourceTreeManager.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/SourceTreeManager.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -39,6 +38,8 @@ import org.xml.sax.helpers.XMLReaderFactory;
* This class bottlenecks all management of source trees. The methods
* in this class should allow easy garbage collection of source
* trees (not yet!), and should centralize parsing for those source trees.
+ *
+ * @LastModified: Oct 2017
*/
@SuppressWarnings("deprecation")
public class SourceTreeManager
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/VariableStack.java b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/VariableStack.java
index f3838eb68fb..6cda51b8ab0 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/VariableStack.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/VariableStack.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Nov 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -34,6 +33,7 @@ import com.sun.org.apache.xpath.internal.res.XPATHErrorResources;
*
This has been changed from the previous incarnations of this
* class to be fairly low level.
* @xsl.usage internal
+ * @LastModified: Nov 2017
*/
public class VariableStack implements Cloneable
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/XPath.java b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/XPath.java
index c3f2d5688a4..8a2c5b813be 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/XPath.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/XPath.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -41,6 +40,7 @@ import javax.xml.transform.TransformerException;
* The XPath class wraps an expression object and provides general services
* for execution of that expression.
* @xsl.usage advanced
+ * @LastModified: Oct 2017
*/
public class XPath implements Serializable, ExpressionOwner
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/XPathContext.java b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/XPathContext.java
index a07c787d6c3..a39a1840629 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/XPathContext.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/XPathContext.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -57,6 +56,7 @@ import org.xml.sax.XMLReader;
*
*
This class extends DTMManager but does not directly implement it.
* @xsl.usage advanced
+ * @LastModified: Oct 2017
*/
public class XPathContext extends DTMManager // implements ExpressionContext
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/XPathException.java b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/XPathException.java
index cd849a31138..ed38487c1c1 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/XPathException.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/XPathException.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -32,6 +31,7 @@ import org.w3c.dom.Node;
* all the traces of the nested exceptions, not just the trace
* of this object.
* @xsl.usage general
+ * @LastModified: Oct 2017
*/
public class XPathException extends TransformerException
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/AxesWalker.java b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/AxesWalker.java
index 62f6302f8ed..55d39a5c759 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/AxesWalker.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/AxesWalker.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -36,6 +35,8 @@ import java.util.List;
/**
* Serves as common interface for axes Walkers, and stores common
* state variables.
+ *
+ * @LastModified: Oct 2017
*/
public class AxesWalker extends PredicatedNodeTest
implements Cloneable, PathComponent, ExpressionOwner
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/FilterExprIterator.java b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/FilterExprIterator.java
index 128240381fa..3dd65c029fb 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/FilterExprIterator.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/FilterExprIterator.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -29,6 +28,9 @@ import com.sun.org.apache.xpath.internal.XPathVisitor;
import com.sun.org.apache.xpath.internal.objects.XNodeSet;
import java.util.List;
+/**
+ * @LastModified: Oct 2017
+ */
public class FilterExprIterator extends BasicTestIterator
{
static final long serialVersionUID = 2552176105165737614L;
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/FilterExprIteratorSimple.java b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/FilterExprIteratorSimple.java
index e2047020d4a..6b57a7778ae 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/FilterExprIteratorSimple.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/FilterExprIteratorSimple.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -36,6 +35,8 @@ import java.util.List;
/**
* Class to use for one-step iteration that doesn't have a predicate, and
* doesn't need to set the context.
+ *
+ * @LastModified: Oct 2017
*/
public class FilterExprIteratorSimple extends LocPathIterator
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/FilterExprWalker.java b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/FilterExprWalker.java
index 8c9eabcd20a..2f61f070216 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/FilterExprWalker.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/FilterExprWalker.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -38,6 +37,7 @@ import java.util.List;
* Walker for the OP_VARIABLE, or OP_EXTFUNCTION, or OP_FUNCTION, or OP_GROUP,
* op codes.
* @see XPath FilterExpr descriptions
+ * @LastModified: Oct 2017
*/
public class FilterExprWalker extends AxesWalker
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/IteratorPool.java b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/IteratorPool.java
index 0458ef7e72f..c22ae764ad9 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/IteratorPool.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/IteratorPool.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -29,6 +28,7 @@ import java.util.List;
/**
* Pool of object of a given type to pick from to help memory usage
* @xsl.usage internal
+ * @LastModified: Oct 2017
*/
public final class IteratorPool implements java.io.Serializable
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/LocPathIterator.java b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/LocPathIterator.java
index 5485fb2ff23..835b43b5fa7 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/LocPathIterator.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/LocPathIterator.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Nov 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -46,6 +45,7 @@ import com.sun.org.apache.xpath.internal.res.XPATHErrorResources;
* the case where the LocPathIterator is "owned" by a UnionPathIterator,
* in which case the UnionPathIterator will cache the nodes.
* @xsl.usage advanced
+ * @LastModified: Nov 2017
*/
public abstract class LocPathIterator extends PredicatedNodeTest
implements Cloneable, DTMIterator, java.io.Serializable, PathComponent
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/MatchPatternIterator.java b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/MatchPatternIterator.java
index 881893c66c8..1eb8955de77 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/MatchPatternIterator.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/MatchPatternIterator.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -39,6 +38,8 @@ import com.sun.org.apache.xpath.internal.patterns.StepPattern;
* traversal against the LocationPath interpreted as a match pattern. This
* class is useful to find nodes in document order that are complex paths
* whose steps probably criss-cross each other.
+ *
+ * @LastModified: Oct 2017
*/
public class MatchPatternIterator extends LocPathIterator
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/NodeSequence.java b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/NodeSequence.java
index 77080ed6231..ee88a63d443 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/NodeSequence.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/NodeSequence.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -35,6 +34,8 @@ import java.util.List;
/**
* This class is the dynamic wrapper for a Xalan DTMIterator instance, and
* provides random access capabilities.
+ *
+ * @LastModified: Oct 2017
*/
public class NodeSequence extends XObject
implements DTMIterator, Cloneable, PathComponent
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/PredicatedNodeTest.java b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/PredicatedNodeTest.java
index a0cf90f3219..418ff527df8 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/PredicatedNodeTest.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/PredicatedNodeTest.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -34,6 +33,9 @@ import com.sun.org.apache.xpath.internal.objects.XObject;
import com.sun.org.apache.xpath.internal.patterns.NodeTest;
import java.util.List;
+/**
+ * @LastModified: Oct 2017
+ */
public abstract class PredicatedNodeTest extends NodeTest implements SubContextList
{
static final long serialVersionUID = -6193530757296377351L;
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/UnionChildIterator.java b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/UnionChildIterator.java
index c5a31d91705..4389c85d522 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/UnionChildIterator.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/UnionChildIterator.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -32,6 +31,8 @@ import java.util.List;
* This class defines a simplified type of union iterator that only
* tests along the child axes. If the conditions are right, it is
* much faster than using a UnionPathIterator.
+ *
+ * @LastModified: Oct 2017
*/
public class UnionChildIterator extends ChildTestIterator
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/UnionPathIterator.java b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/UnionPathIterator.java
index fb9caaaf67f..7e7276ef048 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/UnionPathIterator.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/UnionPathIterator.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -40,6 +39,7 @@ import java.util.List;
* As each node is iterated via nextNode(), the node is also stored
* in the NodeVector, so that previousNode() can easily be done.
* @xsl.usage advanced
+ * @LastModified: Oct 2017
*/
public class UnionPathIterator extends LocPathIterator
implements Cloneable, DTMIterator, java.io.Serializable, PathComponent
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/WalkerFactory.java b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/WalkerFactory.java
index e02c19efff5..fe3756060b4 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/WalkerFactory.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/WalkerFactory.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -41,6 +40,8 @@ import com.sun.org.apache.xpath.internal.res.XPATHErrorResources;
* This class is both a factory for XPath location path expressions,
* which are built from the opcode map output, and an analysis engine
* for the location path expressions in order to provide optimization hints.
+ *
+ * @LastModified: Oct 2017
*/
public class WalkerFactory
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/WalkingIterator.java b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/WalkingIterator.java
index 75f168a60b5..876f01cafd9 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/WalkingIterator.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/WalkingIterator.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -34,6 +33,8 @@ import java.util.List;
/**
* Location path iterator that uses Walkers.
+ *
+ * @LastModified: Oct 2017
*/
public class WalkingIterator extends LocPathIterator implements ExpressionOwner
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/WalkingIteratorSorted.java b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/WalkingIteratorSorted.java
index 52902ba64ab..e953c094ff2 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/WalkingIteratorSorted.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/axes/WalkingIteratorSorted.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -30,6 +29,7 @@ import java.util.List;
/**
* This class iterates over set of nodes that needs to be sorted.
* @xsl.usage internal
+ * @LastModified: Oct 2017
*/
public class WalkingIteratorSorted extends WalkingIterator
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/compiler/FunctionTable.java b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/compiler/FunctionTable.java
index 8d62ef14f73..532d1cf6299 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/compiler/FunctionTable.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/compiler/FunctionTable.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/**
* Licensed to the Apache Software Foundation (ASF) under one
@@ -31,6 +30,8 @@ import javax.xml.transform.TransformerException;
/**
* The function table for XPath.
+ *
+ * @LastModified: Oct 2017
*/
public class FunctionTable
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/compiler/Lexer.java b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/compiler/Lexer.java
index 752c690413c..44422a81ef7 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/compiler/Lexer.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/compiler/Lexer.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Nov 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -28,6 +27,8 @@ import java.util.List;
/**
* This class is in charge of lexical processing of the XPath
* expression into tokens.
+ *
+ * @LastModified: Nov 2017
*/
class Lexer
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/compiler/OpMap.java b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/compiler/OpMap.java
index 8b94e0ba255..d59cd8ef762 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/compiler/OpMap.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/compiler/OpMap.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Nov 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -29,6 +28,8 @@ import com.sun.org.apache.xpath.internal.res.XPATHErrorResources;
/**
* This class represents the data structure basics of the XPath
* object.
+ *
+ * @LastModified: Nov 2017
*/
public class OpMap
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/functions/FuncCurrent.java b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/functions/FuncCurrent.java
index 084465f9711..89229cbd1a8 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/functions/FuncCurrent.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/functions/FuncCurrent.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -38,6 +37,7 @@ import java.util.List;
/**
* Execute the current() function.
* @xsl.usage advanced
+ * @LastModified: Oct 2017
*/
public class FuncCurrent extends Function
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/functions/FuncExtFunction.java b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/functions/FuncExtFunction.java
index fb10a52de13..8f41b8ce39e 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/functions/FuncExtFunction.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/functions/FuncExtFunction.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -41,6 +40,7 @@ import java.util.List;
* the expression executes, it calls ExtensionsTable#extFunction, and then
* converts the result to the appropriate XObject.
* @xsl.usage advanced
+ * @LastModified: Oct 2017
*/
public class FuncExtFunction extends Function
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/functions/FuncFalse.java b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/functions/FuncFalse.java
index ad76e43d904..67de41af049 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/functions/FuncFalse.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/functions/FuncFalse.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -30,6 +29,7 @@ import java.util.List;
/**
* Execute the False() function.
* @xsl.usage advanced
+ * @LastModified: Oct 2017
*/
public class FuncFalse extends Function
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/functions/FuncHere.java b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/functions/FuncHere.java
index 3e5f14c046d..04c4f35a9b9 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/functions/FuncHere.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/functions/FuncHere.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/**
* Licensed to the Apache Software Foundation (ASF) under one
@@ -36,6 +35,8 @@ import org.w3c.dom.Node;
/**
* Execute the XML Signature here() function.
+ *
+ * @LastModified: Oct 2017
*/
public final class FuncHere extends Function {
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/functions/FuncLast.java b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/functions/FuncLast.java
index 1d4117bea4c..59cc0505502 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/functions/FuncLast.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/functions/FuncLast.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -34,6 +33,7 @@ import java.util.List;
/**
* Execute the Last() function.
* @xsl.usage advanced
+ * @LastModified: Oct 2017
*/
public class FuncLast extends Function
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/functions/FuncPosition.java b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/functions/FuncPosition.java
index 16dfbf39704..08b5225c5a9 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/functions/FuncPosition.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/functions/FuncPosition.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -34,6 +33,7 @@ import java.util.List;
/**
* Execute the Position() function.
* @xsl.usage advanced
+ * @LastModified: Oct 2017
*/
public class FuncPosition extends Function
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/functions/FuncSystemProperty.java b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/functions/FuncSystemProperty.java
index 0abf80152a4..bad9cf1a311 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/functions/FuncSystemProperty.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/functions/FuncSystemProperty.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Sep 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -33,6 +32,7 @@ import jdk.xml.internal.SecuritySupport;
/**
* Execute the SystemProperty() function.
* @xsl.usage advanced
+ * @LastModified: Sep 2017
*/
public class FuncSystemProperty extends FunctionOneArg
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/functions/FuncTrue.java b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/functions/FuncTrue.java
index 14541721ea3..4f53ff5d49a 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/functions/FuncTrue.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/functions/FuncTrue.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -30,6 +29,7 @@ import java.util.List;
/**
* Execute the True() function.
* @xsl.usage advanced
+ * @LastModified: Oct 2017
*/
public class FuncTrue extends Function
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/functions/Function2Args.java b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/functions/Function2Args.java
index d3ee6172bff..10dd3fde486 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/functions/Function2Args.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/functions/Function2Args.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -31,6 +30,7 @@ import java.util.List;
/**
* Base class for functions that accept two arguments.
* @xsl.usage advanced
+ * @LastModified: Oct 2017
*/
public class Function2Args extends FunctionOneArg
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/functions/Function3Args.java b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/functions/Function3Args.java
index 0d8d315a261..e7d0907a41d 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/functions/Function3Args.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/functions/Function3Args.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -31,6 +30,7 @@ import java.util.List;
/**
* Base class for functions that accept three arguments.
* @xsl.usage advanced
+ * @LastModified: Oct 2017
*/
public class Function3Args extends Function2Args
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/functions/FunctionMultiArgs.java b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/functions/FunctionMultiArgs.java
index dc54de06593..f2c20f06f58 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/functions/FunctionMultiArgs.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/functions/FunctionMultiArgs.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -33,6 +32,7 @@ import java.util.List;
* Base class for functions that accept an undetermined number of multiple
* arguments.
* @xsl.usage advanced
+ * @LastModified: Oct 2017
*/
public class FunctionMultiArgs extends Function3Args
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/functions/FunctionOneArg.java b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/functions/FunctionOneArg.java
index ac7c57ad83d..3ecb2628862 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/functions/FunctionOneArg.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/functions/FunctionOneArg.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -31,6 +30,7 @@ import java.util.List;
/**
* Base class for functions that accept one argument.
* @xsl.usage advanced
+ * @LastModified: Oct 2017
*/
public class FunctionOneArg extends Function implements ExpressionOwner
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/jaxp/JAXPExtensionsProvider.java b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/jaxp/JAXPExtensionsProvider.java
index 95797bef33d..3a0467496dd 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/jaxp/JAXPExtensionsProvider.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/jaxp/JAXPExtensionsProvider.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2013, 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Nov 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -38,6 +37,7 @@ import jdk.xml.internal.JdkXmlFeatures;
/**
*
* @author Ramesh Mandava ( ramesh.mandava@sun.com )
+ * @LastModified: Nov 2017
*/
public class JAXPExtensionsProvider implements ExtensionsProvider {
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/objects/XNodeSet.java b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/objects/XNodeSet.java
index d1eafd00c6c..ef5497870e9 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/objects/XNodeSet.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/objects/XNodeSet.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -36,6 +35,7 @@ import org.w3c.dom.traversal.NodeIterator;
* This class represents an XPath nodeset object, and is capable of
* converting the nodeset to other types, such as a string.
* @xsl.usage general
+ * @LastModified: Oct 2017
*/
public class XNodeSet extends NodeSequence
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/objects/XObject.java b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/objects/XObject.java
index 2f8be135d85..1106ebdea4d 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/objects/XObject.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/objects/XObject.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -45,6 +44,7 @@ import org.w3c.dom.traversal.NodeIterator;
* This class acts as the base class to other XPath type objects,
* such as XString, and provides polymorphic casting capabilities.
* @xsl.usage general
+ * @LastModified: Oct 2017
*/
public class XObject extends Expression implements Serializable, Cloneable
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/objects/XRTreeFragSelectWrapper.java b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/objects/XRTreeFragSelectWrapper.java
index 17adeb33700..4fba2103280 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/objects/XRTreeFragSelectWrapper.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/objects/XRTreeFragSelectWrapper.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -32,6 +31,8 @@ import java.util.List;
/**
* This class makes an select statement act like an result tree fragment.
+ *
+ * @LastModified: Oct 2017
*/
public class XRTreeFragSelectWrapper extends XRTreeFrag implements Cloneable
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/operations/Operation.java b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/operations/Operation.java
index 85d0e5d97c0..7218a8ac188 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/operations/Operation.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/operations/Operation.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -31,6 +30,8 @@ import java.util.List;
/**
* The baseclass for a binary operation.
+ *
+ * @LastModified: Oct 2017
*/
public class Operation extends Expression implements ExpressionOwner
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/operations/UnaryOperation.java b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/operations/UnaryOperation.java
index fc46d916b54..57aaa9abc68 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/operations/UnaryOperation.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/operations/UnaryOperation.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -31,6 +30,8 @@ import java.util.List;
/**
* The unary operation base class.
+ *
+ * @LastModified: Oct 2017
*/
public abstract class UnaryOperation extends Expression implements ExpressionOwner
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/operations/Variable.java b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/operations/Variable.java
index f1909919074..4aa7ff09264 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/operations/Variable.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/operations/Variable.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -38,6 +37,8 @@ import javax.xml.transform.TransformerException;
/**
* The variable reference expression executer.
+ *
+ * @LastModified: Oct 2017
*/
public class Variable extends Expression implements PathComponent
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/patterns/ContextMatchStepPattern.java b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/patterns/ContextMatchStepPattern.java
index 7a4ceb41778..75b926de929 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/patterns/ContextMatchStepPattern.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/patterns/ContextMatchStepPattern.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -30,6 +29,8 @@ import com.sun.org.apache.xpath.internal.axes.WalkerFactory;
import com.sun.org.apache.xpath.internal.objects.XObject;
/**
* Special context node pattern matcher.
+ *
+ * @LastModified: Oct 2017
*/
public class ContextMatchStepPattern extends StepPattern
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/patterns/FunctionPattern.java b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/patterns/FunctionPattern.java
index 375dca168b1..841a10fb276 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/patterns/FunctionPattern.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/patterns/FunctionPattern.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -35,6 +34,7 @@ import java.util.List;
/**
* Match pattern step that contains a function.
* @xsl.usage advanced
+ * @LastModified: Oct 2017
*/
public class FunctionPattern extends StepPattern
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/patterns/NodeTest.java b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/patterns/NodeTest.java
index 498df9e0b89..be993d27944 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/patterns/NodeTest.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/patterns/NodeTest.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -38,6 +37,7 @@ import java.util.List;
* This is the basic node test class for both match patterns and location path
* steps.
* @xsl.usage advanced
+ * @LastModified: Oct 2017
*/
public class NodeTest extends Expression
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/patterns/StepPattern.java b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/patterns/StepPattern.java
index 7f6bd66f86c..2795ca4d083 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/patterns/StepPattern.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/patterns/StepPattern.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -38,6 +37,7 @@ import java.util.List;
/**
* This class represents a single pattern match step.
* @xsl.usage advanced
+ * @LastModified: Oct 2017
*/
public class StepPattern extends NodeTest implements SubContextList, ExpressionOwner
{
diff --git a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/patterns/UnionPattern.java b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/patterns/UnionPattern.java
index 516cb40442e..1d3e45782a6 100644
--- a/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/patterns/UnionPattern.java
+++ b/src/java.xml/share/classes/com/sun/org/apache/xpath/internal/patterns/UnionPattern.java
@@ -1,6 +1,5 @@
/*
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
- * @LastModified: Oct 2017
*/
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
@@ -33,6 +32,7 @@ import java.util.List;
* This class represents a union pattern, which can have multiple individual
* StepPattern patterns.
* @xsl.usage advanced
+ * @LastModified: Oct 2017
*/
public class UnionPattern extends Expression
{
From e6680338c51a7269437f2676aed106a76b84a294 Mon Sep 17 00:00:00 2001
From: Paul Sandoz
Date: Wed, 20 Dec 2017 11:40:45 -0800
Subject: [PATCH 23/51] 8193856: takeWhile produces incorrect result with
elements produced by flatMap
Reviewed-by: smarks
---
.../classes/java/util/stream/WhileOps.java | 10 +++---
.../tests/java/util/stream/WhileOpTest.java | 33 +++++++++++++++++--
2 files changed, 36 insertions(+), 7 deletions(-)
diff --git a/src/java.base/share/classes/java/util/stream/WhileOps.java b/src/java.base/share/classes/java/util/stream/WhileOps.java
index 1288333df01..0bd23347dec 100644
--- a/src/java.base/share/classes/java/util/stream/WhileOps.java
+++ b/src/java.base/share/classes/java/util/stream/WhileOps.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2017, 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
@@ -95,7 +95,7 @@ final class WhileOps {
@Override
public void accept(T t) {
- if (take = predicate.test(t)) {
+ if (take && (take = predicate.test(t))) {
downstream.accept(t);
}
}
@@ -152,7 +152,7 @@ final class WhileOps {
@Override
public void accept(int t) {
- if (take = predicate.test(t)) {
+ if (take && (take = predicate.test(t))) {
downstream.accept(t);
}
}
@@ -209,7 +209,7 @@ final class WhileOps {
@Override
public void accept(long t) {
- if (take = predicate.test(t)) {
+ if (take && (take = predicate.test(t))) {
downstream.accept(t);
}
}
@@ -266,7 +266,7 @@ final class WhileOps {
@Override
public void accept(double t) {
- if (take = predicate.test(t)) {
+ if (take && (take = predicate.test(t))) {
downstream.accept(t);
}
}
diff --git a/test/jdk/java/util/stream/test/org/openjdk/tests/java/util/stream/WhileOpTest.java b/test/jdk/java/util/stream/test/org/openjdk/tests/java/util/stream/WhileOpTest.java
index 5b023b87e79..49f9cb80960 100644
--- a/test/jdk/java/util/stream/test/org/openjdk/tests/java/util/stream/WhileOpTest.java
+++ b/test/jdk/java/util/stream/test/org/openjdk/tests/java/util/stream/WhileOpTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2017, 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
@@ -46,7 +46,7 @@ import java.util.stream.TestData;
/*
* @test
- * @bug 8071597
+ * @bug 8071597 8193856
*/
@Test
public class WhileOpTest extends OpTestCase {
@@ -361,4 +361,33 @@ public class WhileOpTest extends OpTestCase {
}
assertTrue(isClosed.get());
}
+
+ @Test(groups = { "serialization-hostile" })
+ public void testFlatMapThenTake() {
+ TestData.OfRef range = TestData.Factory.ofSupplier(
+ "range", () -> IntStream.range(0, 100).boxed());
+
+ exerciseOpsMulti(range,
+ // Reference result
+ s -> s.takeWhile(e -> e != 50),
+ // For other results collect into array,
+ // stream the single array (not the elements),
+ // then flat map to stream the array elements
+ s -> Stream.of(s.toArray(Integer[]::new)).
+ flatMap(Stream::of).
+ takeWhile(e -> e != 50),
+ s -> Stream.of(s.mapToInt(e -> e).toArray()).
+ flatMapToInt(IntStream::of).
+ takeWhile(e -> e != 50).
+ mapToObj(e -> e),
+ s -> Stream.of(s.mapToLong(e -> e).toArray()).
+ flatMapToLong(LongStream::of).
+ takeWhile(e -> e != 50L).
+ mapToObj(e -> (int) e),
+ s -> Stream.of(s.mapToDouble(e -> e).toArray()).
+ flatMapToDouble(DoubleStream::of).
+ takeWhile(e -> e != 50.0).
+ mapToObj(e -> (int) e)
+ );
+ }
}
From 59c3bea9f1c8f13fe0c587d4e25fbc0033fd9ac0 Mon Sep 17 00:00:00 2001
From: Attila Szegedi
Date: Wed, 20 Dec 2017 17:36:50 +0100
Subject: [PATCH 24/51] 8193371: Use Dynalink REMOVE operation in Nashorn
Reviewed-by: hannesw, sundar
---
.../dynalink/beans/AbstractJavaLinker.java | 27 +--
.../jdk/dynalink/beans/BeanLinker.java | 25 +-
.../internal/codegen/AssignSymbols.java | 64 +-----
.../internal/codegen/CodeGenerator.java | 54 +++++
.../codegen/LocalVariableTypesCalculator.java | 19 +-
.../internal/codegen/MethodEmitter.java | 66 +++++-
.../jdk/nashorn/internal/ir/RuntimeNode.java | 6 -
.../internal/runtime/ScriptObject.java | 12 +
.../internal/runtime/ScriptRuntime.java | 87 ++-----
.../nashorn/internal/runtime/Undefined.java | 15 ++
.../runtime/linker/JSObjectLinker.java | 26 ++-
.../runtime/linker/NashornBottomLinker.java | 42 +++-
.../linker/NashornCallSiteDescriptor.java | 47 ++--
test/nashorn/script/basic/JDK-8193371.js | 215 ++++++++++++++++++
.../script/basic/JDK-8193371.js.EXPECTED | 6 +
15 files changed, 523 insertions(+), 188 deletions(-)
create mode 100644 test/nashorn/script/basic/JDK-8193371.js
create mode 100644 test/nashorn/script/basic/JDK-8193371.js.EXPECTED
diff --git a/src/jdk.dynalink/share/classes/jdk/dynalink/beans/AbstractJavaLinker.java b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/AbstractJavaLinker.java
index f648a81f0ca..bc5c0645588 100644
--- a/src/jdk.dynalink/share/classes/jdk/dynalink/beans/AbstractJavaLinker.java
+++ b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/AbstractJavaLinker.java
@@ -414,20 +414,21 @@ abstract class AbstractJavaLinker implements GuardingDynamicLinker {
protected GuardedInvocationComponent getGuardedInvocationComponent(final ComponentLinkRequest req)
throws Exception {
- if (!req.namespaces.isEmpty()) {
- final Namespace ns = req.namespaces.get(0);
- final Operation op = req.baseOperation;
- if (op == StandardOperation.GET) {
- if (ns == StandardNamespace.PROPERTY) {
- return getPropertyGetter(req.popNamespace());
- } else if (ns == StandardNamespace.METHOD) {
- return getMethodGetter(req.popNamespace());
- }
- } else if (op == StandardOperation.SET && ns == StandardNamespace.PROPERTY) {
- return getPropertySetter(req.popNamespace());
- }
+ if (req.namespaces.isEmpty()) {
+ return null;
}
- return null;
+ final Namespace ns = req.namespaces.get(0);
+ final Operation op = req.baseOperation;
+ if (op == StandardOperation.GET) {
+ if (ns == StandardNamespace.PROPERTY) {
+ return getPropertyGetter(req.popNamespace());
+ } else if (ns == StandardNamespace.METHOD) {
+ return getMethodGetter(req.popNamespace());
+ }
+ } else if (op == StandardOperation.SET && ns == StandardNamespace.PROPERTY) {
+ return getPropertySetter(req.popNamespace());
+ }
+ return getNextComponent(req.popNamespace());
}
GuardedInvocationComponent getNextComponent(final ComponentLinkRequest req) throws Exception {
diff --git a/src/jdk.dynalink/share/classes/jdk/dynalink/beans/BeanLinker.java b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/BeanLinker.java
index cff9cc12df6..d46bd105b67 100644
--- a/src/jdk.dynalink/share/classes/jdk/dynalink/beans/BeanLinker.java
+++ b/src/jdk.dynalink/share/classes/jdk/dynalink/beans/BeanLinker.java
@@ -136,24 +136,21 @@ class BeanLinker extends AbstractJavaLinker implements TypeBasedGuardingDynamicL
@Override
protected GuardedInvocationComponent getGuardedInvocationComponent(final ComponentLinkRequest req) throws Exception {
- final GuardedInvocationComponent superGic = super.getGuardedInvocationComponent(req);
- if(superGic != null) {
- return superGic;
+ if (req.namespaces.isEmpty()) {
+ return null;
}
- if (!req.namespaces.isEmpty()) {
+ final Namespace ns = req.namespaces.get(0);
+ if (ns == StandardNamespace.ELEMENT) {
final Operation op = req.baseOperation;
- final Namespace ns = req.namespaces.get(0);
- if (ns == StandardNamespace.ELEMENT) {
- if (op == StandardOperation.GET) {
- return getElementGetter(req.popNamespace());
- } else if (op == StandardOperation.SET) {
- return getElementSetter(req.popNamespace());
- } else if (op == StandardOperation.REMOVE) {
- return getElementRemover(req.popNamespace());
- }
+ if (op == StandardOperation.GET) {
+ return getElementGetter(req.popNamespace());
+ } else if (op == StandardOperation.SET) {
+ return getElementSetter(req.popNamespace());
+ } else if (op == StandardOperation.REMOVE) {
+ return getElementRemover(req.popNamespace());
}
}
- return null;
+ return super.getGuardedInvocationComponent(req);
}
@Override
diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/codegen/AssignSymbols.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/codegen/AssignSymbols.java
index 7d37330dd88..f01c7f9c259 100644
--- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/codegen/AssignSymbols.java
+++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/codegen/AssignSymbols.java
@@ -59,6 +59,7 @@ import java.util.ListIterator;
import java.util.Map;
import java.util.Set;
import jdk.nashorn.internal.ir.AccessNode;
+import jdk.nashorn.internal.ir.BaseNode;
import jdk.nashorn.internal.ir.BinaryNode;
import jdk.nashorn.internal.ir.Block;
import jdk.nashorn.internal.ir.CatchNode;
@@ -735,72 +736,13 @@ final class AssignSymbols extends SimpleNodeVisitor implements Loggable {
@Override
public Node leaveUnaryNode(final UnaryNode unaryNode) {
- switch (unaryNode.tokenType()) {
- case DELETE:
- return leaveDELETE(unaryNode);
- case TYPEOF:
+ if (unaryNode.tokenType() == TokenType.TYPEOF) {
return leaveTYPEOF(unaryNode);
- default:
+ } else {
return super.leaveUnaryNode(unaryNode);
}
}
- private Node leaveDELETE(final UnaryNode unaryNode) {
- final FunctionNode currentFunctionNode = lc.getCurrentFunction();
- final boolean strictMode = currentFunctionNode.isStrict();
- final Expression rhs = unaryNode.getExpression();
- final Expression strictFlagNode = (Expression)LiteralNode.newInstance(unaryNode, strictMode).accept(this);
-
- Request request = Request.DELETE;
- final List args = new ArrayList<>();
-
- if (rhs instanceof IdentNode) {
- final IdentNode ident = (IdentNode)rhs;
- // If this is a declared variable or a function parameter, delete always fails (except for globals).
- final String name = ident.getName();
- final Symbol symbol = ident.getSymbol();
-
- if (symbol.isThis()) {
- // Can't delete "this", ignore and return true
- return LiteralNode.newInstance(unaryNode, true);
- }
- final Expression literalNode = LiteralNode.newInstance(unaryNode, name);
- final boolean failDelete = strictMode || (!symbol.isScope() && (symbol.isParam() || (symbol.isVar() && !symbol.isProgramLevel())));
-
- if (!failDelete) {
- args.add(compilerConstantIdentifier(SCOPE));
- }
- args.add(literalNode);
- args.add(strictFlagNode);
-
- if (failDelete) {
- request = Request.FAIL_DELETE;
- } else if ((symbol.isGlobal() && !symbol.isFunctionDeclaration()) || symbol.isProgramLevel()) {
- request = Request.SLOW_DELETE;
- }
- } else if (rhs instanceof AccessNode) {
- final Expression base = ((AccessNode)rhs).getBase();
- final String property = ((AccessNode)rhs).getProperty();
-
- args.add(base);
- args.add(LiteralNode.newInstance(unaryNode, property));
- args.add(strictFlagNode);
-
- } else if (rhs instanceof IndexNode) {
- final IndexNode indexNode = (IndexNode)rhs;
- final Expression base = indexNode.getBase();
- final Expression index = indexNode.getIndex();
-
- args.add(base);
- args.add(index);
- args.add(strictFlagNode);
-
- } else {
- throw new AssertionError("Unexpected delete with " + rhs.getClass().getName() + " expression");
- }
- return new RuntimeNode(unaryNode, request, args);
- }
-
@Override
public Node leaveForNode(final ForNode forNode) {
if (forNode.isForInOrOf()) {
diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/codegen/CodeGenerator.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/codegen/CodeGenerator.java
index 2d86f1ef0b0..7ea6d5b15b8 100644
--- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/codegen/CodeGenerator.java
+++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/codegen/CodeGenerator.java
@@ -151,6 +151,7 @@ import jdk.nashorn.internal.runtime.Undefined;
import jdk.nashorn.internal.runtime.UnwarrantedOptimismException;
import jdk.nashorn.internal.runtime.arrays.ArrayData;
import jdk.nashorn.internal.runtime.linker.LinkerCallSite;
+import jdk.nashorn.internal.runtime.linker.NashornCallSiteDescriptor;
import jdk.nashorn.internal.runtime.logging.DebugLogger;
import jdk.nashorn.internal.runtime.logging.Loggable;
import jdk.nashorn.internal.runtime.logging.Logger;
@@ -1141,6 +1142,12 @@ final class CodeGenerator extends NodeOperatorVisitor LARGE_STRING_THRESHOLD) { // use removeIndex for extremely long names
+ return load(name).dynamicRemoveIndex(flags);
+ }
+
+ debug("dynamic_remove", name, Type.BOOLEAN, getProgramPoint(flags));
+
+ popType(Type.OBJECT);
+ // Type is widened to OBJECT then coerced back to BOOLEAN
+ method.visitInvokeDynamicInsn(NameCodec.encode(name),
+ Type.getMethodDescriptor(Type.OBJECT, Type.OBJECT), LINKERBOOTSTRAP, flags | dynRemoveOperation(isIndex));
+
+ pushType(Type.OBJECT);
+ convert(Type.BOOLEAN); //most probably a nop
+
+ return this;
+ }
+
+ /**
* Dynamic getter for indexed structures. Pop index and receiver from stack,
* generate appropriate signatures based on types
*
@@ -2341,6 +2366,35 @@ public class MethodEmitter {
LINKERBOOTSTRAP, flags | NashornCallSiteDescriptor.SET_ELEMENT);
}
+ /**
+ * Dynamic remover for indexed structures. Pop index and receiver from stack,
+ * generate appropriate signatures based on types
+ *
+ * @param flags call site flags for getter
+ *
+ * @return the method emitter
+ */
+ MethodEmitter dynamicRemoveIndex(final int flags) {
+ debug("dynamic_remove_index", peekType(1), "[", peekType(), "]", getProgramPoint(flags));
+
+ Type index = peekType();
+ if (index.isObject() || index.isBoolean()) {
+ index = Type.OBJECT; //e.g. string->object
+ convert(Type.OBJECT);
+ }
+ popType();
+
+ popType(Type.OBJECT);
+
+ final String signature = Type.getMethodDescriptor(Type.OBJECT, Type.OBJECT /*e.g STRING->OBJECT*/, index);
+
+ method.visitInvokeDynamicInsn(EMPTY_NAME, signature, LINKERBOOTSTRAP, flags | dynRemoveOperation(true));
+ pushType(Type.OBJECT);
+ convert(Type.BOOLEAN);
+
+ return this;
+ }
+
/**
* Load a key value in the proper form.
*
@@ -2520,6 +2574,10 @@ public class MethodEmitter {
return isIndex ? NashornCallSiteDescriptor.SET_ELEMENT : NashornCallSiteDescriptor.SET_PROPERTY;
}
+ private static int dynRemoveOperation(final boolean isIndex) {
+ return isIndex ? NashornCallSiteDescriptor.REMOVE_ELEMENT : NashornCallSiteDescriptor.REMOVE_PROPERTY;
+ }
+
private Type emitLocalVariableConversion(final LocalVariableConversion conversion, final boolean onlySymbolLiveValue) {
final Type from = conversion.getFrom();
final Type to = conversion.getTo();
diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/ir/RuntimeNode.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/ir/RuntimeNode.java
index 76a9253ce30..afc52bf3f9a 100644
--- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/ir/RuntimeNode.java
+++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/ir/RuntimeNode.java
@@ -54,12 +54,6 @@ public class RuntimeNode extends Expression {
TYPEOF,
/** Reference error type */
REFERENCE_ERROR,
- /** Delete operator */
- DELETE(TokenType.DELETE, Type.BOOLEAN, 1),
- /** Delete operator for slow scopes */
- SLOW_DELETE(TokenType.DELETE, Type.BOOLEAN, 1, false),
- /** Delete operator that always fails -- see Lower */
- FAIL_DELETE(TokenType.DELETE, Type.BOOLEAN, 1, false),
/** === operator with at least one object */
EQ_STRICT(TokenType.EQ_STRICT, Type.BOOLEAN, 2, true),
/** == operator with at least one object */
diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/ScriptObject.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/ScriptObject.java
index 40b8c67d9a6..3431a4ff8f8 100644
--- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/ScriptObject.java
+++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/ScriptObject.java
@@ -189,6 +189,8 @@ public abstract class ScriptObject implements PropertyAccess, Cloneable {
/** Method handle for generic property setter */
public static final Call GENERIC_SET = virtualCallNoLookup(ScriptObject.class, "set", void.class, Object.class, Object.class, int.class);
+ public static final Call DELETE = virtualCall(MethodHandles.lookup(), ScriptObject.class, "delete", boolean.class, Object.class, boolean.class);
+
static final MethodHandle[] SET_SLOW = new MethodHandle[] {
findOwnMH_V("set", void.class, Object.class, int.class, int.class),
findOwnMH_V("set", void.class, Object.class, double.class, int.class),
@@ -202,6 +204,9 @@ public abstract class ScriptObject implements PropertyAccess, Cloneable {
static final MethodHandle EXTENSION_CHECK = findOwnMH_V("extensionCheck", boolean.class, boolean.class, String.class);
static final MethodHandle ENSURE_SPILL_SIZE = findOwnMH_V("ensureSpillSize", Object.class, int.class);
+ private static final GuardedInvocation DELETE_GUARDED = new GuardedInvocation(MH.insertArguments(DELETE.methodHandle(), 2, false), NashornGuards.getScriptObjectGuard());
+ private static final GuardedInvocation DELETE_GUARDED_STRICT = new GuardedInvocation(MH.insertArguments(DELETE.methodHandle(), 2, true), NashornGuards.getScriptObjectGuard());
+
/**
* Constructor
*/
@@ -1869,6 +1874,13 @@ public abstract class ScriptObject implements PropertyAccess, Cloneable {
return desc.getOperation() instanceof NamedOperation
? findSetMethod(desc, request)
: findSetIndexMethod(desc, request);
+ case REMOVE:
+ final GuardedInvocation inv = NashornCallSiteDescriptor.isStrict(desc) ? DELETE_GUARDED_STRICT : DELETE_GUARDED;
+ final Object name = NamedOperation.getName(desc.getOperation());
+ if (name != null) {
+ return inv.replaceMethods(MH.insertArguments(inv.getInvocation(), 1, name), inv.getGuard());
+ }
+ return inv;
case CALL:
return findCallMethod(desc, request);
case NEW:
diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/ScriptRuntime.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/ScriptRuntime.java
index 8a914ddfd03..d82e03bb92e 100644
--- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/ScriptRuntime.java
+++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/ScriptRuntime.java
@@ -135,6 +135,16 @@ public final class ScriptRuntime {
*/
public static final Call INVALIDATE_RESERVED_BUILTIN_NAME = staticCallNoLookup(ScriptRuntime.class, "invalidateReservedBuiltinName", void.class, String.class);
+ /**
+ * Used to perform failed delete under strict mode
+ */
+ public static final Call STRICT_FAIL_DELETE = staticCallNoLookup(ScriptRuntime.class, "strictFailDelete", boolean.class, String.class);
+
+ /**
+ * Used to find the scope for slow delete
+ */
+ public static final Call SLOW_DELETE = staticCallNoLookup(ScriptRuntime.class, "slowDelete", boolean.class, ScriptObject.class, String.class);
+
/**
* Converts a switch tag value to a simple integer. deflt value if it can't.
*
@@ -779,88 +789,41 @@ public final class ScriptRuntime {
throw referenceError("cant.be.used.as.lhs", Objects.toString(msg));
}
- /**
- * ECMA 11.4.1 - delete operation, generic implementation
- *
- * @param obj object with property to delete
- * @param property property to delete
- * @param strict are we in strict mode
- *
- * @return true if property was successfully found and deleted
- */
- public static boolean DELETE(final Object obj, final Object property, final Object strict) {
- if (obj instanceof ScriptObject) {
- return ((ScriptObject)obj).delete(property, Boolean.TRUE.equals(strict));
- }
-
- if (obj instanceof Undefined) {
- return ((Undefined)obj).delete(property, false);
- }
-
- if (obj == null) {
- throw typeError("cant.delete.property", safeToString(property), "null");
- }
-
- if (obj instanceof ScriptObjectMirror) {
- return ((ScriptObjectMirror)obj).delete(property);
- }
-
- if (JSType.isPrimitive(obj)) {
- return ((ScriptObject) JSType.toScriptObject(obj)).delete(property, Boolean.TRUE.equals(strict));
- }
-
- if (obj instanceof JSObject) {
- ((JSObject)obj).removeMember(Objects.toString(property));
- return true;
- }
-
- // if object is not reference type, vacuously delete is successful.
- return true;
- }
-
/**
* ECMA 11.4.1 - delete operator, implementation for slow scopes
*
* This implementation of 'delete' walks the scope chain to find the scope that contains the
- * property to be deleted, then invokes delete on it.
+ * property to be deleted, then invokes delete on it. Always used on scopes, never strict.
*
* @param obj top scope object
* @param property property to delete
- * @param strict are we in strict mode
*
* @return true if property was successfully found and deleted
*/
- public static boolean SLOW_DELETE(final Object obj, final Object property, final Object strict) {
- if (obj instanceof ScriptObject) {
- ScriptObject sobj = (ScriptObject) obj;
- final String key = property.toString();
- while (sobj != null && sobj.isScope()) {
- final FindProperty find = sobj.findProperty(key, false);
- if (find != null) {
- return sobj.delete(key, Boolean.TRUE.equals(strict));
- }
- sobj = sobj.getProto();
+ public static boolean slowDelete(final ScriptObject obj, final String property) {
+ ScriptObject sobj = obj;
+ while (sobj != null && sobj.isScope()) {
+ final FindProperty find = sobj.findProperty(property, false);
+ if (find != null) {
+ return sobj.delete(property, false);
}
+ sobj = sobj.getProto();
}
- return DELETE(obj, property, strict);
+ return obj.delete(property, false);
}
/**
* ECMA 11.4.1 - delete operator, special case
*
- * This is 'delete' that always fails. We have to check strict mode and throw error.
- * That is why this is a runtime function. Or else we could have inlined 'false'.
+ * This is 'delete' on a scope; it always fails under strict mode.
+ * It always throws an exception, but is declared to return a boolean
+ * to be compatible with the delete operator type.
*
* @param property property to delete
- * @param strict are we in strict mode
- *
- * @return false always
+ * @return nothing, always throws an exception.
*/
- public static boolean FAIL_DELETE(final Object property, final Object strict) {
- if (Boolean.TRUE.equals(strict)) {
- throw syntaxError("strict.cant.delete", safeToString(property));
- }
- return false;
+ public static boolean strictFailDelete(final String property) {
+ throw syntaxError("strict.cant.delete", property);
}
/**
diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/Undefined.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/Undefined.java
index 48a9f9251b4..5cb460d76f1 100644
--- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/Undefined.java
+++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/Undefined.java
@@ -112,6 +112,11 @@ public final class Undefined extends DefaultPropertyAccess {
return findSetIndexMethod(desc);
}
return findSetMethod(desc);
+ case REMOVE:
+ if (!(desc.getOperation() instanceof NamedOperation)) {
+ return findDeleteIndexMethod(desc);
+ }
+ return findDeleteMethod(desc);
default:
}
return null;
@@ -124,6 +129,7 @@ public final class Undefined extends DefaultPropertyAccess {
private static final MethodHandle GET_METHOD = findOwnMH("get", Object.class, Object.class);
private static final MethodHandle SET_METHOD = MH.insertArguments(findOwnMH("set", void.class, Object.class, Object.class, int.class), 3, NashornCallSiteDescriptor.CALLSITE_STRICT);
+ private static final MethodHandle DELETE_METHOD = MH.insertArguments(findOwnMH("delete", boolean.class, Object.class, boolean.class), 2, false);
private static GuardedInvocation findGetMethod(final CallSiteDescriptor desc) {
return new GuardedInvocation(MH.insertArguments(GET_METHOD, 1, NashornCallSiteDescriptor.getOperand(desc)), UNDEFINED_GUARD).asType(desc);
@@ -141,6 +147,15 @@ public final class Undefined extends DefaultPropertyAccess {
return new GuardedInvocation(SET_METHOD, UNDEFINED_GUARD).asType(desc);
}
+ private static GuardedInvocation findDeleteMethod(final CallSiteDescriptor desc) {
+ return new GuardedInvocation(MH.insertArguments(DELETE_METHOD, 1, NashornCallSiteDescriptor.getOperand(desc)), UNDEFINED_GUARD).asType(desc);
+ }
+
+ private static GuardedInvocation findDeleteIndexMethod(final CallSiteDescriptor desc) {
+ return new GuardedInvocation(DELETE_METHOD, UNDEFINED_GUARD).asType(desc);
+ }
+
+
@Override
public Object get(final Object key) {
throw typeError("cant.read.property.of.undefined", ScriptRuntime.safeToString(key));
diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/JSObjectLinker.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/JSObjectLinker.java
index 1200ebba363..eeb6edd3dd9 100644
--- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/JSObjectLinker.java
+++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/JSObjectLinker.java
@@ -31,7 +31,7 @@ import java.lang.invoke.MethodHandle;
import java.lang.invoke.MethodHandles;
import java.lang.invoke.MethodType;
import java.util.Map;
-import javax.script.Bindings;
+import java.util.Objects;
import jdk.dynalink.CallSiteDescriptor;
import jdk.dynalink.Operation;
import jdk.dynalink.StandardOperation;
@@ -64,11 +64,10 @@ final class JSObjectLinker implements TypeBasedGuardingDynamicLinker {
return canLinkTypeStatic(type);
}
- static boolean canLinkTypeStatic(final Class> type) {
- // can link JSObject also handles Map, Bindings to make
+ private static boolean canLinkTypeStatic(final Class> type) {
+ // can link JSObject also handles Map (this includes Bindings) to make
// sure those are not JSObjects.
return Map.class.isAssignableFrom(type) ||
- Bindings.class.isAssignableFrom(type) ||
JSObject.class.isAssignableFrom(type);
}
@@ -84,7 +83,7 @@ final class JSObjectLinker implements TypeBasedGuardingDynamicLinker {
if (self instanceof JSObject) {
inv = lookup(desc, request, linkerServices);
inv = inv.replaceMethods(linkerServices.filterInternalObjects(inv.getInvocation()), inv.getGuard());
- } else if (self instanceof Map || self instanceof Bindings) {
+ } else if (self instanceof Map) {
// guard to make sure the Map or Bindings does not turn into JSObject later!
final GuardedInvocation beanInv = nashornBeansLinker.getGuardedInvocation(request, linkerServices);
inv = new GuardedInvocation(beanInv.getInvocation(),
@@ -116,6 +115,13 @@ final class JSObjectLinker implements TypeBasedGuardingDynamicLinker {
return name != null ? findSetMethod(name) : findSetIndexMethod();
}
break;
+ case REMOVE:
+ if (NashornCallSiteDescriptor.hasStandardNamespace(desc)) {
+ return new GuardedInvocation(
+ name == null ? JSOBJECTLINKER_DEL : MH.insertArguments(JSOBJECTLINKER_DEL, 1, name),
+ IS_JSOBJECT_GUARD);
+ }
+ break;
case CALL:
return findCallMethod(desc);
case NEW:
@@ -206,6 +212,15 @@ final class JSObjectLinker implements TypeBasedGuardingDynamicLinker {
}
}
+ @SuppressWarnings("unused")
+ private static boolean del(final Object jsobj, final Object key) {
+ if (jsobj instanceof ScriptObjectMirror) {
+ return ((ScriptObjectMirror)jsobj).delete(key);
+ }
+ ((JSObject) jsobj).removeMember(Objects.toString(key));
+ return true;
+ }
+
private static int getIndex(final Number n) {
final double value = n.doubleValue();
return JSType.isRepresentableAsInt(value) ? (int)value : -1;
@@ -245,6 +260,7 @@ final class JSObjectLinker implements TypeBasedGuardingDynamicLinker {
private static final MethodHandle IS_JSOBJECT_GUARD = findOwnMH_S("isJSObject", boolean.class, Object.class);
private static final MethodHandle JSOBJECTLINKER_GET = findOwnMH_S("get", Object.class, MethodHandle.class, Object.class, Object.class);
private static final MethodHandle JSOBJECTLINKER_PUT = findOwnMH_S("put", Void.TYPE, Object.class, Object.class, Object.class);
+ private static final MethodHandle JSOBJECTLINKER_DEL = findOwnMH_S("del", boolean.class, Object.class, Object.class);
// method handles of JSObject class
private static final MethodHandle JSOBJECT_GETMEMBER = findJSObjectMH_V("getMember", Object.class, String.class);
diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/NashornBottomLinker.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/NashornBottomLinker.java
index bd4ab24fe27..481919317ad 100644
--- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/NashornBottomLinker.java
+++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/NashornBottomLinker.java
@@ -39,11 +39,13 @@ import jdk.dynalink.CallSiteDescriptor;
import jdk.dynalink.NamedOperation;
import jdk.dynalink.Operation;
import jdk.dynalink.beans.BeansLinker;
+import jdk.dynalink.beans.StaticClass;
import jdk.dynalink.linker.GuardedInvocation;
import jdk.dynalink.linker.GuardingDynamicLinker;
import jdk.dynalink.linker.GuardingTypeConverterFactory;
import jdk.dynalink.linker.LinkRequest;
import jdk.dynalink.linker.LinkerServices;
+import jdk.dynalink.linker.support.Guards;
import jdk.dynalink.linker.support.Lookup;
import jdk.nashorn.internal.codegen.types.Type;
import jdk.nashorn.internal.runtime.ECMAException;
@@ -86,12 +88,16 @@ final class NashornBottomLinker implements GuardingDynamicLinker, GuardingTypeCo
MH.dropArguments(EMPTY_PROP_SETTER, 0, Object.class);
private static final MethodHandle THROW_STRICT_PROPERTY_SETTER;
+ private static final MethodHandle THROW_STRICT_PROPERTY_REMOVER;
private static final MethodHandle THROW_OPTIMISTIC_UNDEFINED;
+ private static final MethodHandle MISSING_PROPERTY_REMOVER;
static {
final Lookup lookup = new Lookup(MethodHandles.lookup());
THROW_STRICT_PROPERTY_SETTER = lookup.findOwnStatic("throwStrictPropertySetter", void.class, Object.class, Object.class);
+ THROW_STRICT_PROPERTY_REMOVER = lookup.findOwnStatic("throwStrictPropertyRemover", boolean.class, Object.class, Object.class);
THROW_OPTIMISTIC_UNDEFINED = lookup.findOwnStatic("throwOptimisticUndefined", Object.class, int.class);
+ MISSING_PROPERTY_REMOVER = lookup.findOwnStatic("missingPropertyRemover", boolean.class, Object.class, Object.class);
}
private static GuardedInvocation linkBean(final LinkRequest linkRequest) throws Exception {
@@ -124,6 +130,7 @@ final class NashornBottomLinker implements GuardingDynamicLinker, GuardingTypeCo
static MethodHandle linkMissingBeanMember(final LinkRequest linkRequest, final LinkerServices linkerServices) throws Exception {
final CallSiteDescriptor desc = linkRequest.getCallSiteDescriptor();
final String operand = NashornCallSiteDescriptor.getOperand(desc);
+ final boolean strict = NashornCallSiteDescriptor.isStrict(desc);
switch (NashornCallSiteDescriptor.getStandardOperation(desc)) {
case GET:
if (NashornCallSiteDescriptor.isOptimistic(desc)) {
@@ -133,13 +140,17 @@ final class NashornBottomLinker implements GuardingDynamicLinker, GuardingTypeCo
}
return getInvocation(EMPTY_ELEM_GETTER, linkerServices, desc);
case SET:
- final boolean strict = NashornCallSiteDescriptor.isStrict(desc);
if (strict) {
return adaptThrower(bindOperand(THROW_STRICT_PROPERTY_SETTER, operand), desc);
} else if (operand != null) {
return getInvocation(EMPTY_PROP_SETTER, linkerServices, desc);
}
return getInvocation(EMPTY_ELEM_SETTER, linkerServices, desc);
+ case REMOVE:
+ if (strict) {
+ return adaptThrower(bindOperand(THROW_STRICT_PROPERTY_REMOVER, operand), desc);
+ }
+ return getInvocation(bindOperand(MISSING_PROPERTY_REMOVER, operand), linkerServices, desc);
default:
throw new AssertionError("unknown call type " + desc);
}
@@ -162,6 +173,33 @@ final class NashornBottomLinker implements GuardingDynamicLinker, GuardingTypeCo
throw createTypeError(self, name, "cant.set.property");
}
+ @SuppressWarnings("unused")
+ private static boolean throwStrictPropertyRemover(final Object self, final Object name) {
+ if (isNonConfigurableProperty(self, name)) {
+ throw createTypeError(self, name, "cant.delete.property");
+ }
+ return true;
+ }
+
+ @SuppressWarnings("unused")
+ private static boolean missingPropertyRemover(final Object self, final Object name) {
+ return !isNonConfigurableProperty(self, name);
+ }
+
+ // Corresponds to ECMAScript 5.1 8.12.7 [[Delete]] point 3 check for "isConfigurable" (but negated)
+ private static boolean isNonConfigurableProperty(final Object self, final Object name) {
+ if (self instanceof StaticClass) {
+ final Class> clazz = ((StaticClass)self).getRepresentedClass();
+ return BeansLinker.getReadableStaticPropertyNames(clazz).contains(name) ||
+ BeansLinker.getWritableStaticPropertyNames(clazz).contains(name) ||
+ BeansLinker.getStaticMethodNames(clazz).contains(name);
+ }
+ final Class> clazz = self.getClass();
+ return BeansLinker.getReadableInstancePropertyNames(clazz).contains(name) ||
+ BeansLinker.getWritableInstancePropertyNames(clazz).contains(name) ||
+ BeansLinker.getInstanceMethodNames(clazz).contains(name);
+ }
+
private static ECMAException createTypeError(final Object self, final Object name, final String msg) {
return typeError(msg, String.valueOf(name), ScriptRuntime.safeToString(self));
}
@@ -215,6 +253,8 @@ final class NashornBottomLinker implements GuardingDynamicLinker, GuardingTypeCo
throw typeError(NashornCallSiteDescriptor.isMethodFirstOperation(desc) ? "no.such.function" : "cant.get.property", getArgument(linkRequest), "null");
case SET:
throw typeError("cant.set.property", getArgument(linkRequest), "null");
+ case REMOVE:
+ throw typeError("cant.delete.property", getArgument(linkRequest), "null");
default:
throw new AssertionError("unknown call type " + desc);
}
diff --git a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/NashornCallSiteDescriptor.java b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/NashornCallSiteDescriptor.java
index f01faa921a8..28db284c0ca 100644
--- a/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/NashornCallSiteDescriptor.java
+++ b/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/linker/NashornCallSiteDescriptor.java
@@ -29,6 +29,7 @@ import static jdk.dynalink.StandardNamespace.ELEMENT;
import static jdk.dynalink.StandardNamespace.METHOD;
import static jdk.dynalink.StandardNamespace.PROPERTY;
import static jdk.dynalink.StandardOperation.GET;
+import static jdk.dynalink.StandardOperation.REMOVE;
import static jdk.dynalink.StandardOperation.SET;
import java.lang.invoke.MethodHandles;
@@ -63,7 +64,7 @@ import jdk.nashorn.internal.runtime.ScriptRuntime;
* form of static methods.
*/
public final class NashornCallSiteDescriptor extends CallSiteDescriptor {
- // Lowest three bits describe the operation
+ // Lowest four bits describe the operation
/** Property getter operation {@code obj.prop} */
public static final int GET_PROPERTY = 0;
/** Element getter operation {@code obj[index]} */
@@ -76,12 +77,16 @@ public final class NashornCallSiteDescriptor extends CallSiteDescriptor {
public static final int SET_PROPERTY = 4;
/** Element setter operation {@code obj[index] = value} */
public static final int SET_ELEMENT = 5;
+ /** Property remove operation {@code delete obj.prop} */
+ public static final int REMOVE_PROPERTY = 6;
+ /** Element remove operation {@code delete obj[index]} */
+ public static final int REMOVE_ELEMENT = 7;
/** Call operation {@code fn(args...)} */
- public static final int CALL = 6;
+ public static final int CALL = 8;
/** New operation {@code new Constructor(args...)} */
- public static final int NEW = 7;
+ public static final int NEW = 9;
- private static final int OPERATION_MASK = 7;
+ private static final int OPERATION_MASK = 15;
// Correspond to the operation indices above.
private static final Operation[] OPERATIONS = new Operation[] {
@@ -91,42 +96,44 @@ public final class NashornCallSiteDescriptor extends CallSiteDescriptor {
GET.withNamespaces(METHOD, ELEMENT, PROPERTY),
SET.withNamespaces(PROPERTY, ELEMENT),
SET.withNamespaces(ELEMENT, PROPERTY),
+ REMOVE.withNamespaces(PROPERTY, ELEMENT),
+ REMOVE.withNamespaces(ELEMENT, PROPERTY),
StandardOperation.CALL,
StandardOperation.NEW
};
/** Flags that the call site references a scope variable (it's an identifier reference or a var declaration, not a
* property access expression. */
- public static final int CALLSITE_SCOPE = 1 << 3;
+ public static final int CALLSITE_SCOPE = 1 << 4;
/** Flags that the call site is in code that uses ECMAScript strict mode. */
- public static final int CALLSITE_STRICT = 1 << 4;
+ public static final int CALLSITE_STRICT = 1 << 5;
/** Flags that a property getter or setter call site references a scope variable that is located at a known distance
* in the scope chain. Such getters and setters can often be linked more optimally using these assumptions. */
- public static final int CALLSITE_FAST_SCOPE = 1 << 5;
+ public static final int CALLSITE_FAST_SCOPE = 1 << 6;
/** Flags that a callsite type is optimistic, i.e. we might get back a wider return value than encoded in the
* descriptor, and in that case we have to throw an UnwarrantedOptimismException */
- public static final int CALLSITE_OPTIMISTIC = 1 << 6;
+ public static final int CALLSITE_OPTIMISTIC = 1 << 7;
/** Is this really an apply that we try to call as a call? */
- public static final int CALLSITE_APPLY_TO_CALL = 1 << 7;
+ public static final int CALLSITE_APPLY_TO_CALL = 1 << 8;
/** Does this a callsite for a variable declaration? */
- public static final int CALLSITE_DECLARE = 1 << 8;
+ public static final int CALLSITE_DECLARE = 1 << 9;
/** Flags that the call site is profiled; Contexts that have {@code "profile.callsites"} boolean property set emit
* code where call sites have this flag set. */
- public static final int CALLSITE_PROFILE = 1 << 9;
+ public static final int CALLSITE_PROFILE = 1 << 10;
/** Flags that the call site is traced; Contexts that have {@code "trace.callsites"} property set emit code where
* call sites have this flag set. */
- public static final int CALLSITE_TRACE = 1 << 10;
+ public static final int CALLSITE_TRACE = 1 << 11;
/** Flags that the call site linkage miss (and thus, relinking) is traced; Contexts that have the keyword
* {@code "miss"} in their {@code "trace.callsites"} property emit code where call sites have this flag set. */
- public static final int CALLSITE_TRACE_MISSES = 1 << 11;
+ public static final int CALLSITE_TRACE_MISSES = 1 << 12;
/** Flags that entry/exit to/from the method linked at call site are traced; Contexts that have the keyword
* {@code "enterexit"} in their {@code "trace.callsites"} property emit code where call sites have this flag set. */
- public static final int CALLSITE_TRACE_ENTEREXIT = 1 << 12;
+ public static final int CALLSITE_TRACE_ENTEREXIT = 1 << 13;
/** Flags that values passed as arguments to and returned from the method linked at call site are traced; Contexts
* that have the keyword {@code "values"} in their {@code "trace.callsites"} property emit code where call sites
* have this flag set. */
- public static final int CALLSITE_TRACE_VALUES = 1 << 13;
+ public static final int CALLSITE_TRACE_VALUES = 1 << 14;
//we could have more tracing flags here, for example CALLSITE_TRACE_SCOPE, but bits are a bit precious
//right now given the program points
@@ -138,10 +145,10 @@ public final class NashornCallSiteDescriptor extends CallSiteDescriptor {
* TODO: rethink if we need the various profile/trace flags or the linker can use the Context instead to query its
* trace/profile settings.
*/
- public static final int CALLSITE_PROGRAM_POINT_SHIFT = 14;
+ public static final int CALLSITE_PROGRAM_POINT_SHIFT = 15;
/**
- * Maximum program point value. We have 18 bits left over after flags, and
+ * Maximum program point value. We have 17 bits left over after flags, and
* it should be plenty. Program points are local to a single function. Every
* function maps to a single JVM bytecode method that can have at most 65535
* bytes. (Large functions are synthetically split into smaller functions.)
@@ -222,8 +229,10 @@ public final class NashornCallSiteDescriptor extends CallSiteDescriptor {
case 3: return "GET_METHOD_ELEMENT";
case 4: return "SET_PROPERTY";
case 5: return "SET_ELEMENT";
- case 6: return "CALL";
- case 7: return "NEW";
+ case 6: return "REMOVE_PROPERTY";
+ case 7: return "REMOVE_ELEMENT";
+ case 8: return "CALL";
+ case 9: return "NEW";
default: throw new AssertionError();
}
}
diff --git a/test/nashorn/script/basic/JDK-8193371.js b/test/nashorn/script/basic/JDK-8193371.js
new file mode 100644
index 00000000000..615aa872df7
--- /dev/null
+++ b/test/nashorn/script/basic/JDK-8193371.js
@@ -0,0 +1,215 @@
+/*
+ * Copyright (c) 2017 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
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * JDK-8193371: Use Dynalink REMOVE operation in Nashorn
+ *
+ * @test
+ * @run
+ */
+
+// This test exercises new functionality enabled by the issue, namely removal of elements from Java lists and maps.
+
+var ArrayList = java.util.ArrayList;
+var HashMap = java.util.HashMap;
+var listOf = java.util.List.of;
+var mapOf = java.util.Map.of;
+
+// Remove from a list
+(function() {
+ var a = new ArrayList(listOf("foo", "bar", "baz"));
+ Assert.assertFalse(delete a.add);
+
+ // Delete actual element
+ Assert.assertTrue(delete a[1]);
+ Assert.assertEquals(a, listOf("foo", "baz"));
+
+ // Gracefully ignore silly indices
+ Assert.assertTrue(delete a[5]);
+ Assert.assertTrue(delete a[-1]);
+ Assert.assertTrue(delete a["whatever"]);
+ Assert.assertTrue(delete a.whatever);
+
+ // Gracefully ignore attempts at deleting methods and properties
+ Assert.assertFalse(delete a.add);
+ Assert.assertFalse(delete a.class);
+
+ Assert.assertEquals(a, listOf("foo", "baz"));
+
+ print("List passed.")
+})();
+
+// Remove from a list, strict
+(function() {
+ "use strict";
+
+ var a = new ArrayList(listOf("foo", "bar", "baz"));
+
+ // Delete actual element
+ Assert.assertTrue(delete a[1]);
+ Assert.assertEquals(a, listOf("foo", "baz"));
+
+ // Gracefully ignore silly indices
+ Assert.assertTrue(delete a[5]);
+ Assert.assertTrue(delete a[-1]);
+ Assert.assertTrue(delete a["whatever"]);
+ Assert.assertTrue(delete a.whatever);
+
+ // Fail deleting methods and properties
+ try { delete a.add; Assert.fail(); } catch (e) { Assert.assertTrue(e instanceof TypeError) }
+ try { delete a.class; Assert.fail(); } catch (e) { Assert.assertTrue(e instanceof TypeError) }
+
+ Assert.assertEquals(a, listOf("foo", "baz"));
+
+ print("Strict list passed.")
+})();
+
+// Remove from a map
+(function() {
+ var m = new HashMap(mapOf("a", 1, "b", 2, "c", 3));
+
+ // Delete actual elements
+ Assert.assertTrue(delete m.a);
+ Assert.assertEquals(m, mapOf("b", 2, "c", 3));
+ var key = "b"
+ Assert.assertTrue(delete m[key]);
+ Assert.assertEquals(m, mapOf("c", 3));
+
+ // Gracefully ignore silly indices
+ Assert.assertTrue(delete m.x);
+ Assert.assertTrue(delete m[5]);
+ Assert.assertTrue(delete m[-1]);
+ Assert.assertTrue(delete m["whatever"]);
+
+ // Gracefully ignore attempts at deleting methods and properties
+ Assert.assertFalse(delete m.put);
+ Assert.assertFalse(delete m.class);
+
+ Assert.assertEquals(m, mapOf("c", 3));
+ print("Map passed.")
+})();
+
+// Remove from a map, strict
+(function() {
+ "use strict";
+
+ var m = new HashMap(mapOf("a", 1, "b", 2, "c", 3));
+
+ // Delete actual elements
+ Assert.assertTrue(delete m.a);
+ Assert.assertEquals(m, mapOf("b", 2, "c", 3));
+ var key = "b"
+ Assert.assertTrue(delete m[key]);
+ Assert.assertEquals(m, mapOf("c", 3));
+
+ // Gracefully ignore silly indices
+ Assert.assertTrue(delete m.x);
+ Assert.assertTrue(delete m[5]);
+ Assert.assertTrue(delete m[-1]);
+ Assert.assertTrue(delete m["whatever"]);
+
+ // Fail deleting methods and properties
+ try { delete m.size; Assert.fail(); } catch (e) { Assert.assertTrue(e instanceof TypeError) }
+ try { delete m.class; Assert.fail(); } catch (e) { Assert.assertTrue(e instanceof TypeError) }
+
+ // Somewhat counterintuitive, but if we define an element of a map, we can
+ // delete it, however then the method surfaces, and we can't delete that.
+ m.size = 4
+ Assert.assertTrue(delete m.size)
+ try { delete m.size; Assert.fail(); } catch (e) { Assert.assertTrue(e instanceof TypeError) }
+
+ Assert.assertEquals(m, mapOf("c", 3));
+
+ print("Strict map passed.")
+})();
+
+// Remove from arrays and beans
+(function() {
+ var a = new (Java.type("int[]"))(2)
+ a[0] = 42
+ a[1] = 13
+
+ // Huh, Dynalink doesn't expose .clone() on Java arrays?
+ var c = new (Java.type("int[]"))(2)
+ c[0] = 42
+ c[1] = 13
+
+ // passes vacuously, but does nothing
+ Assert.assertTrue(delete a[0])
+ Assert.assertEquals(a, c);
+
+ var b = new java.util.BitSet()
+ b.set(2)
+ // does nothing
+ Assert.assertFalse(delete b.get)
+ // Method is still there and operational
+ Assert.assertTrue(b.get(2))
+
+ // passes vacuously for non-existant property
+ Assert.assertTrue(delete b.foo)
+
+ // statics
+ var Calendar = java.util.Calendar
+ Assert.assertFalse(delete Calendar.UNDECIMBER) // field
+ Assert.assertFalse(delete Calendar.availableLocales) // property
+ Assert.assertFalse(delete Calendar.getInstance) // method
+ Assert.assertTrue(delete Calendar.BLAH) // no such thing
+
+ print("Beans passed.")
+})();
+
+// Remove from arrays and beans, strict
+(function() {
+ "use strict";
+
+ var a = new (Java.type("int[]"))(2)
+ a[0] = 42
+ a[1] = 13
+
+ var c = new (Java.type("int[]"))(2)
+ c[0] = 42
+ c[1] = 13
+
+ // passes vacuously, but does nothing
+ Assert.assertTrue(delete a[0])
+ Assert.assertEquals(a, c);
+
+ var b = new java.util.BitSet()
+ b.set(2)
+ // fails to delete a method
+ try { delete b.get; Assert.fail(); } catch (e) { Assert.assertTrue(e instanceof TypeError) }
+ // Method is still there and operational
+ Assert.assertTrue(b.get(2))
+
+ // passes vacuously for non-existant property
+ Assert.assertTrue(delete b.foo)
+
+ // statics
+ var Calendar = java.util.Calendar
+ try { delete Calendar.UNDECIMBER; Assert.fail(); } catch (e) { Assert.assertTrue(e instanceof TypeError) }
+ try { delete Calendar.availableLocales; Assert.fail(); } catch (e) { Assert.assertTrue(e instanceof TypeError) }
+ try { delete Calendar.getInstance; Assert.fail(); } catch (e) { Assert.assertTrue(e instanceof TypeError) }
+ Assert.assertTrue(delete Calendar.BLAH) // no such thing
+
+ print("Strict beans passed.")
+})();
diff --git a/test/nashorn/script/basic/JDK-8193371.js.EXPECTED b/test/nashorn/script/basic/JDK-8193371.js.EXPECTED
new file mode 100644
index 00000000000..0cca3c6ac30
--- /dev/null
+++ b/test/nashorn/script/basic/JDK-8193371.js.EXPECTED
@@ -0,0 +1,6 @@
+List passed.
+Strict list passed.
+Map passed.
+Strict map passed.
+Beans passed.
+Strict beans passed.
From 7e511aba71634c8a3d044e72e8035a2bbe39cfa1 Mon Sep 17 00:00:00 2001
From: Jonathan Gibbons
Date: Wed, 20 Dec 2017 13:28:23 -0800
Subject: [PATCH 25/51] 8193512: Remove remnants of javah from jdk/jdk repo
Reviewed-by: tbell, erikj, alanb, darcy
---
make/Images.gmk | 1 -
make/RunTestsPrebuiltSpec.gmk | 2 -
make/autoconf/boot-jdk.m4 | 1 -
make/autoconf/bootcycle-spec.gmk.in | 3 +-
make/autoconf/generated-configure.sh | 157 +-----------------
make/autoconf/spec.gmk.in | 4 +-
make/common/JavaCompilation.gmk | 4 +-
make/gensrc/Gensrc-jdk.compiler.gmk | 7 +-
make/langtools/build.properties | 3 +-
make/langtools/build.xml | 5 +-
.../intellij/runConfigurations/javah.xml | 22 ---
make/langtools/netbeans/README | 2 +-
make/langtools/test/HelloWorld.apt.gold.txt | 5 -
make/langtools/test/HelloWorld.java | 7 +-
make/langtools/test/bootstrap/javah.sh | 40 -----
make/langtools/test/contents.gold.txt | 2 -
make/langtools/test/lib/classes.gold.txt | 15 --
make/langtools/test/lib/javah.sh | 46 -----
make/langtools/test/lib/src.gold.txt | 10 --
.../tools/anttasks/SelectToolTask.java | 3 +-
make/nb_native/nbproject/configurations.xml | 32 ----
make/scripts/compare_exceptions.sh.incl | 7 +-
22 files changed, 15 insertions(+), 363 deletions(-)
delete mode 100644 make/langtools/intellij/runConfigurations/javah.xml
delete mode 100644 make/langtools/test/bootstrap/javah.sh
delete mode 100644 make/langtools/test/lib/javah.sh
diff --git a/make/Images.gmk b/make/Images.gmk
index aa342d1d31d..8a47ff55626 100644
--- a/make/Images.gmk
+++ b/make/Images.gmk
@@ -210,7 +210,6 @@ ifneq ($(OPENJDK_TARGET_OS), windows)
jarsigner.1 \
javac.1 \
javadoc.1 \
- javah.1 \
javap.1 \
jconsole.1 \
jcmd.1 \
diff --git a/make/RunTestsPrebuiltSpec.gmk b/make/RunTestsPrebuiltSpec.gmk
index 5194099fd62..75a8f64de05 100644
--- a/make/RunTestsPrebuiltSpec.gmk
+++ b/make/RunTestsPrebuiltSpec.gmk
@@ -110,7 +110,6 @@ OPENJDK_BUILD_CPU_ENDIAN := $(OPENJDK_TARGET_CPU_ENDIAN)
# Java executable definitions
JAVA_CMD := $(BOOT_JDK)/bin/java
JAVAC_CMD := $(BOOT_JDK)/bin/javac
-JAVAH_CMD := $(BOOT_JDK)/bin/javah
JAR_CMD := $(BOOT_JDK)/bin/jar
JLINK_CMD := $(JDK_OUTPUTDIR)/bin/jlink
JMOD_CMD := $(JDK_OUTPUTDIR)/bin/jmod
@@ -120,7 +119,6 @@ JAVA := $(FIXPATH) $(JAVA_CMD) $(JAVA_FLAGS_BIG) $(JAVA_FLAGS)
JAVA_SMALL := $(FIXPATH) $(JAVA_CMD) $(JAVA_FLAGS_SMALL) $(JAVA_FLAGS)
JAVA_JAVAC := $(FIXPATH) $(JAVA_CMD) $(JAVA_FLAGS_SMALL) $(JAVA_FLAGS)
JAVAC := $(FIXPATH) $(JAVAC_CMD)
-JAVAH := $(FIXPATH) $(JAVAH_CMD)
JAR := $(FIXPATH) $(JAR_CMD)
JLINK := $(FIXPATH) $(JLINK_CMD)
JMOD := $(FIXPATH) $(JMOD_CMD)
diff --git a/make/autoconf/boot-jdk.m4 b/make/autoconf/boot-jdk.m4
index 161b0f18f2a..e373091bd10 100644
--- a/make/autoconf/boot-jdk.m4
+++ b/make/autoconf/boot-jdk.m4
@@ -295,7 +295,6 @@ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK],
# Setup tools from the Boot JDK.
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVA, java)
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVAC, javac)
- BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVAH, javah)
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVADOC, javadoc)
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAR, jar)
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JARSIGNER, jarsigner)
diff --git a/make/autoconf/bootcycle-spec.gmk.in b/make/autoconf/bootcycle-spec.gmk.in
index 52768c60ec8..fd9d9997149 100644
--- a/make/autoconf/bootcycle-spec.gmk.in
+++ b/make/autoconf/bootcycle-spec.gmk.in
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2017, 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
@@ -52,7 +52,6 @@ SJAVAC_SERVER_DIR:=$(patsubst $(OLD_OUTPUTDIR)%, $(OUTPUTDIR)%, $(SJAVAC_SERVER_
JAVA_CMD:=$(BOOT_JDK)/bin/java
JAVAC_CMD:=$(BOOT_JDK)/bin/javac
-JAVAH_CMD:=$(BOOT_JDK)/bin/javah
JAR_CMD:=$(BOOT_JDK)/bin/jar
JARSIGNER_CMD:=$(BOOT_JDK)/bin/jarsigner
SJAVAC_SERVER_JAVA_CMD:=$(JAVA_CMD)
diff --git a/make/autoconf/generated-configure.sh b/make/autoconf/generated-configure.sh
index ee9544d4eac..3381ec75b7c 100644
--- a/make/autoconf/generated-configure.sh
+++ b/make/autoconf/generated-configure.sh
@@ -881,7 +881,6 @@ BOOT_JDK_SOURCETARGET
JARSIGNER
JAR
JAVADOC
-JAVAH
JAVAC
JAVA
BOOT_JDK
@@ -1093,7 +1092,6 @@ infodir
docdir
oldincludedir
includedir
-runstatedir
localstatedir
sharedstatedir
sysconfdir
@@ -1300,7 +1298,6 @@ SETFILE
PKG_CONFIG
JAVA
JAVAC
-JAVAH
JAVADOC
JAR
JARSIGNER
@@ -1384,7 +1381,6 @@ datadir='${datarootdir}'
sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var'
-runstatedir='${localstatedir}/run'
includedir='${prefix}/include'
oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -1637,15 +1633,6 @@ do
| -silent | --silent | --silen | --sile | --sil)
silent=yes ;;
- -runstatedir | --runstatedir | --runstatedi | --runstated \
- | --runstate | --runstat | --runsta | --runst | --runs \
- | --run | --ru | --r)
- ac_prev=runstatedir ;;
- -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
- | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
- | --run=* | --ru=* | --r=*)
- runstatedir=$ac_optarg ;;
-
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1783,7 +1770,7 @@ fi
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
datadir sysconfdir sharedstatedir localstatedir includedir \
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
- libdir localedir mandir runstatedir
+ libdir localedir mandir
do
eval ac_val=\$$ac_var
# Remove trailing slashes.
@@ -1936,7 +1923,6 @@ Fine tuning of the installation directories:
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
- --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
@@ -2271,7 +2257,6 @@ Some influential environment variables:
PKG_CONFIG path to pkg-config utility
JAVA Override default value for JAVA
JAVAC Override default value for JAVAC
- JAVAH Override default value for JAVAH
JAVADOC Override default value for JAVADOC
JAR Override default value for JAR
JARSIGNER Override default value for JARSIGNER
@@ -5187,7 +5172,7 @@ VS_SDK_PLATFORM_NAME_2013=
#CUSTOM_AUTOCONF_INCLUDE
# Do not change or remove the following line, it is needed for consistency checks:
-DATE_WHEN_GENERATED=1513702260
+DATE_WHEN_GENERATED=1513805283
###############################################################################
#
@@ -30920,144 +30905,6 @@ $as_echo "$tool_specified" >&6; }
- # Use user overridden value if available, otherwise locate tool in the Boot JDK.
-
- # Publish this variable in the help.
-
-
- if [ -z "${JAVAH+x}" ]; then
- # The variable is not set by user, try to locate tool using the code snippet
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for javah in Boot JDK" >&5
-$as_echo_n "checking for javah in Boot JDK... " >&6; }
- JAVAH=$BOOT_JDK/bin/javah
- if test ! -x $JAVAH; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
-$as_echo "not found" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitly setting --with-boot-jdk" >&5
-$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitly setting --with-boot-jdk" >&6;}
- as_fn_error $? "Could not find javah in the Boot JDK" "$LINENO" 5
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
-$as_echo "ok" >&6; }
-
-
- else
- # The variable is set, but is it from the command line or the environment?
-
- # Try to remove the string !JAVAH! from our list.
- try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!JAVAH!/}
- if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
- # If it failed, the variable was not from the command line. Ignore it,
- # but warn the user (except for BASH, which is always set by the calling BASH).
- if test "xJAVAH" != xBASH; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of JAVAH from the environment. Use command line variables instead." >&5
-$as_echo "$as_me: WARNING: Ignoring value of JAVAH from the environment. Use command line variables instead." >&2;}
- fi
- # Try to locate tool using the code snippet
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for javah in Boot JDK" >&5
-$as_echo_n "checking for javah in Boot JDK... " >&6; }
- JAVAH=$BOOT_JDK/bin/javah
- if test ! -x $JAVAH; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
-$as_echo "not found" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitly setting --with-boot-jdk" >&5
-$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitly setting --with-boot-jdk" >&6;}
- as_fn_error $? "Could not find javah in the Boot JDK" "$LINENO" 5
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
-$as_echo "ok" >&6; }
-
-
- else
- # If it succeeded, then it was overridden by the user. We will use it
- # for the tool.
-
- # First remove it from the list of overridden variables, so we can test
- # for unknown variables in the end.
- CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
-
- # Check if we try to supply an empty value
- if test "x$JAVAH" = x; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: Setting user supplied tool JAVAH= (no value)" >&5
-$as_echo "$as_me: Setting user supplied tool JAVAH= (no value)" >&6;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for JAVAH" >&5
-$as_echo_n "checking for JAVAH... " >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: disabled" >&5
-$as_echo "disabled" >&6; }
- else
- # Check if the provided tool contains a complete path.
- tool_specified="$JAVAH"
- tool_basename="${tool_specified##*/}"
- if test "x$tool_basename" = "x$tool_specified"; then
- # A command without a complete path is provided, search $PATH.
- { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool JAVAH=$tool_basename" >&5
-$as_echo "$as_me: Will search for user supplied tool JAVAH=$tool_basename" >&6;}
- # Extract the first word of "$tool_basename", so it can be a program name with args.
-set dummy $tool_basename; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_JAVAH+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $JAVAH in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_JAVAH="$JAVAH" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_JAVAH="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-fi
-JAVAH=$ac_cv_path_JAVAH
-if test -n "$JAVAH"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $JAVAH" >&5
-$as_echo "$JAVAH" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- if test "x$JAVAH" = x; then
- as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
- fi
- else
- # Otherwise we believe it is a complete path. Use it as it is.
- { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool JAVAH=$tool_specified" >&5
-$as_echo "$as_me: Will use user supplied tool JAVAH=$tool_specified" >&6;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for JAVAH" >&5
-$as_echo_n "checking for JAVAH... " >&6; }
- if test ! -x "$tool_specified"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
-$as_echo "not found" >&6; }
- as_fn_error $? "User supplied tool JAVAH=$tool_specified does not exist or is not executable" "$LINENO" 5
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
-$as_echo "$tool_specified" >&6; }
- fi
- fi
- fi
-
- fi
-
-
-
# Use user overridden value if available, otherwise locate tool in the Boot JDK.
# Publish this variable in the help.
diff --git a/make/autoconf/spec.gmk.in b/make/autoconf/spec.gmk.in
index 23fcefca74e..c41d0b164d1 100644
--- a/make/autoconf/spec.gmk.in
+++ b/make/autoconf/spec.gmk.in
@@ -540,7 +540,6 @@ SJAVAC_SERVER_JAVA_FLAGS:=@SJAVAC_SERVER_JAVA_FLAGS@
# versions of the variables directly.
JAVA_CMD:=@JAVA@
JAVAC_CMD:=@JAVAC@
-JAVAH_CMD:=@JAVAH@
JAVADOC_CMD:=@JAVADOC@
JAR_CMD:=@JAR@
JLINK_CMD := @JLINK@
@@ -553,7 +552,6 @@ JAVA=@FIXPATH@ $(JAVA_CMD) $(JAVA_FLAGS_BIG) $(JAVA_FLAGS)
JAVA_SMALL=@FIXPATH@ $(JAVA_CMD) $(JAVA_FLAGS_SMALL) $(JAVA_FLAGS)
JAVA_JAVAC=@FIXPATH@ $(JAVA_CMD) $(JAVA_FLAGS_JAVAC) $(JAVA_FLAGS)
JAVAC=@FIXPATH@ $(JAVAC_CMD)
-JAVAH=@FIXPATH@ $(JAVAH_CMD)
JAVADOC=@FIXPATH@ $(JAVADOC_CMD)
JAR=@FIXPATH@ $(JAR_CMD)
JLINK = @FIXPATH@ $(JLINK_CMD) $(JAVA_TOOL_FLAGS_SMALL)
@@ -717,7 +715,7 @@ INSTALL_PREFIX=@prefix@
# Directories containing architecture-dependent files should be relative to exec_prefix
INSTALL_EXECPREFIX=@exec_prefix@
-# java,javac,javah,javap etc are installed here.
+# java,javac,javap etc are installed here.
INSTALL_BINDIR=@bindir@
# Read only architecture-independent data
diff --git a/make/common/JavaCompilation.gmk b/make/common/JavaCompilation.gmk
index 2495c610e8a..4fbd0d9241e 100644
--- a/make/common/JavaCompilation.gmk
+++ b/make/common/JavaCompilation.gmk
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2017, 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
@@ -46,7 +46,7 @@ include ZipArchive.gmk
# passed to SetupJavaCompilation. This name is used as variable prefix.
#
# Remaining parameters are named arguments. These include:
-# JVM:=The jvm used to run the javac/javah command
+# JVM:=The jvm used to run the javac command
# JAVAC:=The javac jar and bootstrap classpath changes, or just bin/javac if JVM is left out
# FLAGS:=Flags to be supplied to javac
# SERVER_DIR:=Use a javac server (-XDserver) and store the server related files here
diff --git a/make/gensrc/Gensrc-jdk.compiler.gmk b/make/gensrc/Gensrc-jdk.compiler.gmk
index 7f2bf508252..24be68e89c1 100644
--- a/make/gensrc/Gensrc-jdk.compiler.gmk
+++ b/make/gensrc/Gensrc-jdk.compiler.gmk
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2014, 2017, 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
@@ -28,11 +28,8 @@ include GensrcCommonLangtools.gmk
$(eval $(call SetupVersionProperties,JAVAC_VERSION, \
com/sun/tools/javac/resources/version.properties))
-$(eval $(call SetupVersionProperties,JAVAH_VERSION, \
- com/sun/tools/javah/resources/version.properties))
-
$(eval $(call SetupCompileProperties,COMPILE_PROPERTIES, \
- $(JAVAC_VERSION) $(JAVAH_VERSION)))
+ $(JAVAC_VERSION)))
$(eval $(call SetupParseProperties,PARSE_PROPERTIES, \
com/sun/tools/javac/resources/compiler.properties))
diff --git a/make/langtools/build.properties b/make/langtools/build.properties
index 2b934790e05..f6a3d7fd5ef 100644
--- a/make/langtools/build.properties
+++ b/make/langtools/build.properties
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2007, 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2007, 2017, 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
@@ -60,7 +60,6 @@ full.version = ${release}+${build.number}
tool.javac.main.class=com.sun.tools.javac.Main
tool.javadoc.main.class=jdk.javadoc.internal.tool.Main
tool.javap.main.class=com.sun.tools.javap.Main
-tool.javah.main.class=com.sun.tools.javah.Main
tool.sjavac.main.class=com.sun.tools.sjavac.Main
tool.jshell.main.class=jdk.internal.jshell.tool.JShellToolProvider
diff --git a/make/langtools/build.xml b/make/langtools/build.xml
index b1a9d032744..841777c49d8 100644
--- a/make/langtools/build.xml
+++ b/make/langtools/build.xml
@@ -1,6 +1,6 @@