check in the orb.properties file located in the user.home
- * directory (if any)
+ * directory, if any
*
- *
check in the orb.properties file located in the java.home/lib
- * directory (if any)
+ *
check in the orb.properties file located in the run-time image,
+ * if any
*
*
fall back on a hardcoded default behavior (use the Java IDL
* implementation)
@@ -170,9 +170,15 @@ import java.security.PrivilegedAction;
* Thus, where appropriate, it is necessary that
* the classes for this alternative ORBSingleton are available on the application's class path.
* It should be noted that the singleton ORB is system wide.
- *
+ *
* When a per-application ORB is created via the 2-arg init methods,
* then it will be located using the thread context class loader.
+ *
+ * The IDL to Java Language OMG specification documents the ${java.home}/lib directory as the location,
+ * in the Java run-time image, to search for orb.properties.
+ * This location is not intended for user editable configuration files.
+ * Therefore, the implementation first checks the ${java.home}/conf directory for orb.properties,
+ * and thereafter the ${java.home}/lib directory.
*
* @since JDK1.2
*/
@@ -271,14 +277,25 @@ abstract public class ORB {
}
String javaHome = System.getProperty("java.home");
- fileName = javaHome + File.separator
- + "lib" + File.separator + "orb.properties";
- props = getFileProperties( fileName ) ;
+
+ fileName = javaHome + File.separator + "conf"
+ + File.separator + "orb.properties";
+ props = getFileProperties(fileName);
+
+ if (props != null) {
+ String value = props.getProperty(name);
+ if (value != null)
+ return value;
+ }
+
+ fileName = javaHome + File.separator + "lib"
+ + File.separator + "orb.properties";
+ props = getFileProperties(fileName);
if (props == null)
- return null ;
+ return null;
else
- return props.getProperty( name ) ;
+ return props.getProperty(name);
}
}
);
diff --git a/hotspot/.hgtags b/hotspot/.hgtags
index 33523a09d7d..797b60498aa 100644
--- a/hotspot/.hgtags
+++ b/hotspot/.hgtags
@@ -556,6 +556,7 @@ a82cb5350cad96a0b4de496afebe3ded89f27efa jdk-9+146
2a2ac7d9f52c8cb2b80077e515b5840b947e640c jdk-9+151
31f1d26c60df7b2e516a4f84160d76ba017d4e09 jdk-9+152
217ba81b9a4ce8698200370175aa2db86a39f66c jdk-9+153
+fc7e94cb748507366b839e859f865f724467446a jdk-10+0
a9fdfd55835ef9dccb7f317b07249bd66653b874 jdk-9+154
f3b3d77a1751897413aae43ac340a130b6fa2ae1 jdk-9+155
43139c588ea48b6504e52b6c3dec530b17b1fdb4 jdk-9+156
diff --git a/hotspot/.jcheck/conf b/hotspot/.jcheck/conf
index 5c6f62dc12c..b2581358014 100644
--- a/hotspot/.jcheck/conf
+++ b/hotspot/.jcheck/conf
@@ -1 +1 @@
-project=jdk9
+project=jdk10
diff --git a/hotspot/src/cpu/aarch64/vm/c1_globals_aarch64.hpp b/hotspot/src/cpu/aarch64/vm/c1_globals_aarch64.hpp
index 71d7819561e..3177a8980b9 100644
--- a/hotspot/src/cpu/aarch64/vm/c1_globals_aarch64.hpp
+++ b/hotspot/src/cpu/aarch64/vm/c1_globals_aarch64.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2014, Red Hat Inc. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -45,10 +45,8 @@ define_pd_global(bool, TieredCompilation, false);
// We compile very aggressively with the builtin simulator because
// doing so greatly reduces run times and tests more code.
define_pd_global(intx, CompileThreshold, 150 );
-define_pd_global(intx, BackEdgeThreshold, 500);
#else
define_pd_global(intx, CompileThreshold, 1500 );
-define_pd_global(intx, BackEdgeThreshold, 100000);
#endif
define_pd_global(intx, OnStackReplacePercentage, 933 );
@@ -76,6 +74,4 @@ define_pd_global(bool, OptimizeSinglePrecision, true );
define_pd_global(bool, CSEArrayLength, false);
define_pd_global(bool, TwoOperandLIRForm, false );
-define_pd_global(intx, SafepointPollOffset, 0 );
-
#endif // CPU_AARCH64_VM_C1_GLOBALS_AARCH64_HPP
diff --git a/hotspot/src/cpu/aarch64/vm/c2_globals_aarch64.hpp b/hotspot/src/cpu/aarch64/vm/c2_globals_aarch64.hpp
index 9a16dd76967..5a5d8ac4f95 100644
--- a/hotspot/src/cpu/aarch64/vm/c2_globals_aarch64.hpp
+++ b/hotspot/src/cpu/aarch64/vm/c2_globals_aarch64.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2014, Red Hat Inc. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -43,7 +43,6 @@ define_pd_global(bool, UseOnStackReplacement, true);
define_pd_global(bool, ProfileInterpreter, true);
define_pd_global(bool, TieredCompilation, trueInTiered);
define_pd_global(intx, CompileThreshold, 10000);
-define_pd_global(intx, BackEdgeThreshold, 100000);
define_pd_global(intx, OnStackReplacePercentage, 140);
define_pd_global(intx, ConditionalMoveLimit, 3);
diff --git a/hotspot/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/tools/HeapSummary.java b/hotspot/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/tools/HeapSummary.java
index 643109bc1e9..09a382f9439 100644
--- a/hotspot/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/tools/HeapSummary.java
+++ b/hotspot/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/tools/HeapSummary.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -150,13 +150,7 @@ public class HeapSummary extends Tool {
// Helper methods
private void printGCAlgorithm(Map flagMap) {
- // print about new generation
- long l = getFlagValue("UseParNewGC", flagMap);
- if (l == 1L) {
- System.out.println("using parallel threads in the new generation.");
- }
-
- l = getFlagValue("UseTLAB", flagMap);
+ long l = getFlagValue("UseTLAB", flagMap);
if (l == 1L) {
System.out.println("using thread-local object allocation.");
}
diff --git a/hotspot/src/os/solaris/vm/os_solaris.cpp b/hotspot/src/os/solaris/vm/os_solaris.cpp
index 527246dcc3d..adbec4e459e 100644
--- a/hotspot/src/os/solaris/vm/os_solaris.cpp
+++ b/hotspot/src/os/solaris/vm/os_solaris.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -3050,15 +3050,12 @@ void os::naked_yield() {
thr_yield();
}
-// Interface for setting lwp priorities. If we are using T2 libthread,
-// which forces the use of BoundThreads or we manually set UseBoundThreads,
-// all of our threads will be assigned to real lwp's. Using the thr_setprio
-// function is meaningless in this mode so we must adjust the real lwp's priority
+// Interface for setting lwp priorities. We are using T2 libthread,
+// which forces the use of bound threads, so all of our threads will
+// be assigned to real lwp's. Using the thr_setprio function is
+// meaningless in this mode so we must adjust the real lwp's priority.
// The routines below implement the getting and setting of lwp priorities.
//
-// Note: T2 is now the only supported libthread. UseBoundThreads flag is
-// being deprecated and all threads are now BoundThreads
-//
// Note: There are three priority scales used on Solaris. Java priotities
// which range from 1 to 10, libthread "thr_setprio" scale which range
// from 0 to 127, and the current scheduling class of the process we
diff --git a/hotspot/src/share/vm/gc/cms/concurrentMarkSweepGeneration.cpp b/hotspot/src/share/vm/gc/cms/concurrentMarkSweepGeneration.cpp
index 1cc6a5ea1e9..4effbf42d11 100644
--- a/hotspot/src/share/vm/gc/cms/concurrentMarkSweepGeneration.cpp
+++ b/hotspot/src/share/vm/gc/cms/concurrentMarkSweepGeneration.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 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
@@ -488,9 +488,6 @@ CMSCollector::CMSCollector(ConcurrentMarkSweepGeneration* cmsGen,
_gc_timer_cm(new (ResourceObj::C_HEAP, mtGC) ConcurrentGCTimer()),
_cms_start_registered(false)
{
- if (ExplicitGCInvokesConcurrentAndUnloadsClasses) {
- ExplicitGCInvokesConcurrent = true;
- }
// Now expand the span and allocate the collection support structures
// (MUT, marking bit map etc.) to cover both generations subject to
// collection.
@@ -2559,10 +2556,8 @@ void CMSCollector::verify_overflow_empty() const {
// Decide if we want to enable class unloading as part of the
// ensuing concurrent GC cycle. We will collect and
// unload classes if it's the case that:
-// (1) an explicit gc request has been made and the flag
-// ExplicitGCInvokesConcurrentAndUnloadsClasses is set, OR
-// (2) (a) class unloading is enabled at the command line, and
-// (b) old gen is getting really full
+// (a) class unloading is enabled at the command line, and
+// (b) old gen is getting really full
// NOTE: Provided there is no change in the state of the heap between
// calls to this method, it should have idempotent results. Moreover,
// its results should be monotonically increasing (i.e. going from 0 to 1,
@@ -2575,11 +2570,7 @@ void CMSCollector::verify_overflow_empty() const {
// below.
void CMSCollector::update_should_unload_classes() {
_should_unload_classes = false;
- // Condition 1 above
- if (_full_gc_requested && ExplicitGCInvokesConcurrentAndUnloadsClasses) {
- _should_unload_classes = true;
- } else if (CMSClassUnloadingEnabled) { // Condition 2.a above
- // Disjuncts 2.b.(i,ii,iii) above
+ if (CMSClassUnloadingEnabled) {
_should_unload_classes = (concurrent_cycles_since_last_unload() >=
CMSClassUnloadingMaxInterval)
|| _cmsGen->is_too_full();
diff --git a/hotspot/src/share/vm/oops/method.cpp b/hotspot/src/share/vm/oops/method.cpp
index f37278edd13..beed68bed8e 100644
--- a/hotspot/src/share/vm/oops/method.cpp
+++ b/hotspot/src/share/vm/oops/method.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -2199,7 +2199,6 @@ void Method::print_on(outputStream* st) const {
ResourceMark rm;
assert(is_method(), "must be method");
st->print_cr("%s", internal_name());
- // get the effect of PrintOopAddress, always, for methods:
st->print_cr(" - this oop: " INTPTR_FORMAT, p2i(this));
st->print (" - method holder: "); method_holder()->print_value_on(st); st->cr();
st->print (" - constants: " INTPTR_FORMAT " ", p2i(constants()));
diff --git a/hotspot/src/share/vm/prims/jvm.cpp b/hotspot/src/share/vm/prims/jvm.cpp
index 71b0ea3e2e2..59704b2ced7 100644
--- a/hotspot/src/share/vm/prims/jvm.cpp
+++ b/hotspot/src/share/vm/prims/jvm.cpp
@@ -2967,14 +2967,7 @@ JVM_ENTRY(void, JVM_Yield(JNIEnv *env, jclass threadClass))
JVMWrapper("JVM_Yield");
if (os::dont_yield()) return;
HOTSPOT_THREAD_YIELD();
-
- // When ConvertYieldToSleep is off (default), this matches the classic VM use of yield.
- // Critical for similar threading behaviour
- if (ConvertYieldToSleep) {
- os::sleep(thread, MinSleepInterval, false);
- } else {
- os::naked_yield();
- }
+ os::naked_yield();
JVM_END
@@ -2998,18 +2991,7 @@ JVM_ENTRY(void, JVM_Sleep(JNIEnv* env, jclass threadClass, jlong millis))
EventThreadSleep event;
if (millis == 0) {
- // When ConvertSleepToYield is on, this matches the classic VM implementation of
- // JVM_Sleep. Critical for similar threading behaviour (Win32)
- // It appears that in certain GUI contexts, it may be beneficial to do a short sleep
- // for SOLARIS
- if (ConvertSleepToYield) {
- os::naked_yield();
- } else {
- ThreadState old_state = thread->osthread()->get_state();
- thread->osthread()->set_state(SLEEPING);
- os::sleep(thread, MinSleepInterval, false);
- thread->osthread()->set_state(old_state);
- }
+ os::naked_yield();
} else {
ThreadState old_state = thread->osthread()->get_state();
thread->osthread()->set_state(SLEEPING);
diff --git a/hotspot/src/share/vm/runtime/arguments.cpp b/hotspot/src/share/vm/runtime/arguments.cpp
index 2bd540222a7..82dd7b2c637 100644
--- a/hotspot/src/share/vm/runtime/arguments.cpp
+++ b/hotspot/src/share/vm/runtime/arguments.cpp
@@ -375,53 +375,17 @@ static SpecialFlag const special_jvm_flags[] = {
// -------------- Deprecated Flags --------------
// --- Non-alias flags - sorted by obsolete_in then expired_in:
{ "MaxGCMinorPauseMillis", JDK_Version::jdk(8), JDK_Version::undefined(), JDK_Version::undefined() },
- { "AutoGCSelectPauseMillis", JDK_Version::jdk(9), JDK_Version::undefined(), JDK_Version::jdk(10) },
- { "UseAutoGCSelectPolicy", JDK_Version::jdk(9), JDK_Version::undefined(), JDK_Version::jdk(10) },
- { "UseParNewGC", JDK_Version::jdk(9), JDK_Version::undefined(), JDK_Version::jdk(10) },
- { "ExplicitGCInvokesConcurrentAndUnloadsClasses", JDK_Version::jdk(9), JDK_Version::undefined(), JDK_Version::jdk(10) },
- { "ConvertSleepToYield", JDK_Version::jdk(9), JDK_Version::jdk(10), JDK_Version::jdk(11) },
- { "ConvertYieldToSleep", JDK_Version::jdk(9), JDK_Version::jdk(10), JDK_Version::jdk(11) },
// --- Deprecated alias flags (see also aliased_jvm_flags) - sorted by obsolete_in then expired_in:
{ "DefaultMaxRAMFraction", JDK_Version::jdk(8), JDK_Version::undefined(), JDK_Version::undefined() },
{ "CreateMinidumpOnCrash", JDK_Version::jdk(9), JDK_Version::undefined(), JDK_Version::undefined() },
- { "CMSMarkStackSizeMax", JDK_Version::jdk(9), JDK_Version::undefined(), JDK_Version::jdk(10) },
- { "CMSMarkStackSize", JDK_Version::jdk(9), JDK_Version::undefined(), JDK_Version::jdk(10) },
- { "G1MarkStackSize", JDK_Version::jdk(9), JDK_Version::undefined(), JDK_Version::jdk(10) },
- { "ParallelMarkingThreads", JDK_Version::jdk(9), JDK_Version::undefined(), JDK_Version::jdk(10) },
- { "ParallelCMSThreads", JDK_Version::jdk(9), JDK_Version::undefined(), JDK_Version::jdk(10) },
// -------------- Obsolete Flags - sorted by expired_in --------------
- { "UseOldInlining", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
- { "SafepointPollOffset", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
- { "UseBoundThreads", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
- { "DefaultThreadPriority", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
- { "NoYieldsInMicrolock", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
- { "BackEdgeThreshold", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
- { "UseNewReflection", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
- { "ReflectionWrapResolutionErrors",JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
- { "VerifyReflectionBytecodes", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
- { "AutoShutdownNMT", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
- { "NmethodSweepFraction", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
- { "NmethodSweepCheckInterval", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
- { "CodeCacheMinimumFreeSpace", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
-#ifndef ZERO
- { "UseFastAccessorMethods", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
- { "UseFastEmptyMethods", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
-#endif // ZERO
- { "UseCompilerSafepoints", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
- { "AdaptiveSizePausePolicy", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
- { "ParallelGCRetainPLAB", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
- { "ThreadSafetyMargin", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
- { "LazyBootClassLoader", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
- { "StarvationMonitorInterval", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
- { "PreInflateSpin", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
- { "JNIDetachReleasesMonitors", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
- { "UseAltSigs", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
- { "SegmentedHeapDumpThreshold", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
- { "PrintOopAddress", JDK_Version::undefined(), JDK_Version::jdk(9), JDK_Version::jdk(10) },
- { "PermSize", JDK_Version::undefined(), JDK_Version::jdk(8), JDK_Version::jdk(10) },
- { "MaxPermSize", JDK_Version::undefined(), JDK_Version::jdk(8), JDK_Version::jdk(10) },
+ { "ConvertSleepToYield", JDK_Version::jdk(9), JDK_Version::jdk(10), JDK_Version::jdk(11) },
+ { "ConvertYieldToSleep", JDK_Version::jdk(9), JDK_Version::jdk(10), JDK_Version::jdk(11) },
+ { "MinSleepInterval", JDK_Version::jdk(9), JDK_Version::jdk(10), JDK_Version::jdk(11) },
+ { "PermSize", JDK_Version::undefined(), JDK_Version::jdk(8), JDK_Version::undefined() },
+ { "MaxPermSize", JDK_Version::undefined(), JDK_Version::jdk(8), JDK_Version::undefined() },
#ifdef TEST_VERIFY_SPECIAL_JVM_FLAGS
{ "dep > obs", JDK_Version::jdk(9), JDK_Version::jdk(8), JDK_Version::undefined() },
@@ -444,11 +408,6 @@ typedef struct {
static AliasedFlag const aliased_jvm_flags[] = {
{ "DefaultMaxRAMFraction", "MaxRAMFraction" },
- { "CMSMarkStackSizeMax", "MarkStackSizeMax" },
- { "CMSMarkStackSize", "MarkStackSize" },
- { "G1MarkStackSize", "MarkStackSize" },
- { "ParallelMarkingThreads", "ConcGCThreads" },
- { "ParallelCMSThreads", "ConcGCThreads" },
{ "CreateMinidumpOnCrash", "CreateCoredumpOnCrash" },
{ NULL, NULL}
};
@@ -1547,7 +1506,6 @@ void Arguments::set_parnew_gc_flags() {
assert(!UseSerialGC && !UseParallelOldGC && !UseParallelGC && !UseG1GC,
"control point invariant");
assert(UseConcMarkSweepGC, "CMS is expected to be on here");
- assert(UseParNewGC, "ParNew should always be used with CMS");
if (FLAG_IS_DEFAULT(ParallelGCThreads)) {
FLAG_SET_DEFAULT(ParallelGCThreads, Abstract_VM_Version::parallel_worker_threads());
@@ -1588,7 +1546,6 @@ void Arguments::set_parnew_gc_flags() {
void Arguments::set_cms_and_parnew_gc_flags() {
assert(!UseSerialGC && !UseParallelOldGC && !UseParallelGC, "Error");
assert(UseConcMarkSweepGC, "CMS is expected to be on here");
- assert(UseParNewGC, "ParNew should always be used with CMS");
// Turn off AdaptiveSizePolicy by default for cms until it is complete.
disable_adaptive_size_policy("UseConcMarkSweepGC");
@@ -1728,16 +1685,6 @@ size_t Arguments::max_heap_for_compressed_oops() {
NOT_LP64(ShouldNotReachHere(); return 0);
}
-bool Arguments::should_auto_select_low_pause_collector() {
- if (UseAutoGCSelectPolicy &&
- !FLAG_IS_DEFAULT(MaxGCPauseMillis) &&
- (MaxGCPauseMillis <= AutoGCSelectPauseMillis)) {
- log_trace(gc)("Automatic selection of the low pause collector based on pause goal of %d (ms)", (int) MaxGCPauseMillis);
- return true;
- }
- return false;
-}
-
void Arguments::set_use_compressed_oops() {
#ifndef ZERO
#ifdef _LP64
@@ -1841,16 +1788,7 @@ void Arguments::select_compilation_mode_ergonomically() {
void Arguments::select_gc_ergonomically() {
#if INCLUDE_ALL_GCS
if (os::is_server_class_machine()) {
- if (!UseAutoGCSelectPolicy) {
- FLAG_SET_ERGO_IF_DEFAULT(bool, UseG1GC, true);
- } else {
- if (should_auto_select_low_pause_collector()) {
- FLAG_SET_ERGO_IF_DEFAULT(bool, UseConcMarkSweepGC, true);
- FLAG_SET_ERGO_IF_DEFAULT(bool, UseParNewGC, true);
- } else {
- FLAG_SET_ERGO_IF_DEFAULT(bool, UseParallelGC, true);
- }
- }
+ FLAG_SET_ERGO_IF_DEFAULT(bool, UseG1GC, true);
} else {
FLAG_SET_ERGO_IF_DEFAULT(bool, UseSerialGC, true);
}
@@ -1859,7 +1797,6 @@ void Arguments::select_gc_ergonomically() {
UNSUPPORTED_OPTION(UseParallelGC);
UNSUPPORTED_OPTION(UseParallelOldGC);
UNSUPPORTED_OPTION(UseConcMarkSweepGC);
- UNSUPPORTED_OPTION(UseParNewGC);
FLAG_SET_ERGO_IF_DEFAULT(bool, UseSerialGC, true);
#endif // INCLUDE_ALL_GCS
}
@@ -2078,7 +2015,6 @@ void Arguments::set_gc_specific_flags() {
if (!ClassUnloading) {
FLAG_SET_CMDLINE(bool, CMSClassUnloadingEnabled, false);
FLAG_SET_CMDLINE(bool, ClassUnloadingWithConcurrentMark, false);
- FLAG_SET_CMDLINE(bool, ExplicitGCInvokesConcurrentAndUnloadsClasses, false);
}
#endif // INCLUDE_ALL_GCS
}
@@ -2433,18 +2369,6 @@ bool Arguments::check_gc_consistency() {
return false;
}
- if (UseConcMarkSweepGC && !UseParNewGC) {
- jio_fprintf(defaultStream::error_stream(),
- "It is not possible to combine the DefNew young collector with the CMS collector.\n");
- return false;
- }
-
- if (UseParNewGC && !UseConcMarkSweepGC) {
- jio_fprintf(defaultStream::error_stream(),
- "It is not possible to combine the ParNew young collector with any collector other than CMS.\n");
- return false;
- }
-
return true;
}
@@ -3731,11 +3655,6 @@ jint Arguments::finalize_vm_init_args() {
}
}
- if (UseConcMarkSweepGC && FLAG_IS_DEFAULT(UseParNewGC) && !UseParNewGC) {
- // CMS can only be used with ParNew
- FLAG_SET_ERGO(bool, UseParNewGC, true);
- }
-
if (!check_vm_args_consistency()) {
return JNI_ERR;
}
diff --git a/hotspot/src/share/vm/runtime/arguments.hpp b/hotspot/src/share/vm/runtime/arguments.hpp
index daa91c22bd7..ad2178d7d20 100644
--- a/hotspot/src/share/vm/runtime/arguments.hpp
+++ b/hotspot/src/share/vm/runtime/arguments.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -480,9 +480,6 @@ class Arguments : AllStatic {
static julong limit_by_allocatable_memory(julong size);
// Setup heap size
static void set_heap_size();
- // Based on automatic selection criteria, should the
- // low pause collector be used.
- static bool should_auto_select_low_pause_collector();
// Bytecode rewriting
static void set_bytecode_flags();
diff --git a/hotspot/src/share/vm/runtime/globals.hpp b/hotspot/src/share/vm/runtime/globals.hpp
index 8209f62efc6..e6b24b4c749 100644
--- a/hotspot/src/share/vm/runtime/globals.hpp
+++ b/hotspot/src/share/vm/runtime/globals.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -1158,13 +1158,6 @@ public:
product_pd(bool, DontYieldALot, \
"Throw away obvious excess yield calls") \
\
- product(bool, ConvertSleepToYield, true, \
- "Convert sleep(0) to thread yield ") \
- \
- product(bool, ConvertYieldToSleep, false, \
- "Convert yield to a sleep of MinSleepInterval to simulate Win32 " \
- "behavior") \
- \
develop(bool, UseDetachedThreads, true, \
"Use detached threads that are recycled upon termination " \
"(for Solaris only)") \
@@ -1478,11 +1471,6 @@ public:
"A System.gc() request invokes a concurrent collection; " \
"(effective only when using concurrent collectors)") \
\
- product(bool, ExplicitGCInvokesConcurrentAndUnloadsClasses, false, \
- "A System.gc() request invokes a concurrent collection and " \
- "also unloads classes during such a concurrent gc cycle " \
- "(effective only when UseConcMarkSweepGC)") \
- \
product(bool, GCLockerInvokesConcurrent, false, \
"The exit of a JNI critical section necessitating a scavenge, " \
"also kicks off a background concurrent collection") \
@@ -1500,9 +1488,6 @@ public:
product(bool, UseCMSBestFit, true, \
"Use CMS best fit allocation strategy") \
\
- product(bool, UseParNewGC, false, \
- "Use parallel threads in the new generation") \
- \
product(uintx, ParallelGCBufferWastePct, 10, \
"Wasted fraction of parallel allocation buffer") \
range(0, 100) \
@@ -2058,13 +2043,6 @@ public:
"Maximum fraction (1/n) of virtual memory used for ergonomically "\
"determining maximum heap size") \
\
- product(bool, UseAutoGCSelectPolicy, false, \
- "Use automatic collection selection policy") \
- \
- product(uintx, AutoGCSelectPauseMillis, 5000, \
- "Automatic GC selection pause threshold in milliseconds") \
- range(0, max_uintx) \
- \
product(bool, UseAdaptiveSizePolicy, true, \
"Use adaptive generation sizing policies") \
\
@@ -3002,10 +2980,6 @@ public:
develop(intx, DontYieldALotInterval, 10, \
"Interval between which yields will be dropped (milliseconds)") \
\
- develop(intx, MinSleepInterval, 1, \
- "Minimum sleep() interval (milliseconds) when " \
- "ConvertSleepToYield is off (used for Solaris)") \
- \
develop(intx, ProfilerPCTickThreshold, 15, \
"Number of ticks in a PC buckets to be a hotspot") \
\
diff --git a/hotspot/test/TEST.groups b/hotspot/test/TEST.groups
index c50c741f44d..8953467a9b2 100644
--- a/hotspot/test/TEST.groups
+++ b/hotspot/test/TEST.groups
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2013, 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
@@ -209,11 +209,8 @@ needs_full_vm_compact1 = \
gc/g1/TestShrinkToOneRegion.java \
gc/metaspace/G1AddMetaspaceDependency.java \
gc/startup_warnings/TestCMS.java \
- gc/startup_warnings/TestDefNewCMS.java \
gc/startup_warnings/TestParallelGC.java \
gc/startup_warnings/TestParallelScavengeSerialOld.java \
- gc/startup_warnings/TestParNewCMS.java \
- gc/startup_warnings/TestParNewSerialOld.java \
runtime/SharedArchiveFile/SharedArchiveFile.java
# Minimal VM on Compact 2 adds in some compact2 tests
diff --git a/hotspot/test/compiler/jsr292/patches/java.base/java/lang/invoke/MethodHandleHelper.java b/hotspot/test/compiler/jsr292/patches/java.base/java/lang/invoke/MethodHandleHelper.java
index f19244b8388..c7406282274 100644
--- a/hotspot/test/compiler/jsr292/patches/java.base/java/lang/invoke/MethodHandleHelper.java
+++ b/hotspot/test/compiler/jsr292/patches/java.base/java/lang/invoke/MethodHandleHelper.java
@@ -99,7 +99,7 @@ public class MethodHandleHelper {
public static MethodHandle make(MethodHandle target) {
LambdaForm lform = DelegatingMethodHandle.makeReinvokerForm(
- target, -1, DelegatingMethodHandle.class, "reinvoker.dontInline",
+ target, -1, DelegatingMethodHandle.class,
/*forceInline=*/false, DelegatingMethodHandle.NF_getTarget, null);
return new NonInlinedReinvoker(target, lform);
}
diff --git a/hotspot/test/gc/arguments/TestExplicitGCInvokesConcurrentAndUnloadsClasses.java b/hotspot/test/gc/arguments/TestExplicitGCInvokesConcurrentAndUnloadsClasses.java
deleted file mode 100644
index 83f075760d6..00000000000
--- a/hotspot/test/gc/arguments/TestExplicitGCInvokesConcurrentAndUnloadsClasses.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * 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.
- */
-
-/*
- * @test TestExplicitGCInvokesConcurrentAndUnloadsClasses
- * @summary Test that the flag ExplicitGCInvokesConcurrentAndUnloadsClasses is deprecated
- * @bug 8170388
- * @key gc
- * @library /test/lib
- * @modules java.base/jdk.internal.misc
- * java.management
- * @run driver TestExplicitGCInvokesConcurrentAndUnloadsClasses
- */
-
-import jdk.test.lib.process.OutputAnalyzer;
-import jdk.test.lib.process.ProcessTools;
-
-public class TestExplicitGCInvokesConcurrentAndUnloadsClasses {
- public static void main(String[] args) throws Exception {
- ProcessBuilder pb =
- ProcessTools.createJavaProcessBuilder("-XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses",
- "-Xlog:gc",
- "-version");
- OutputAnalyzer output = new OutputAnalyzer(pb.start());
- output.shouldContain("ExplicitGCInvokesConcurrentAndUnloadsClasses was deprecated");
- output.shouldHaveExitValue(0);
- }
-}
diff --git a/hotspot/test/gc/arguments/TestSelectDefaultGC.java b/hotspot/test/gc/arguments/TestSelectDefaultGC.java
index de770b283b8..084ee04a86b 100644
--- a/hotspot/test/gc/arguments/TestSelectDefaultGC.java
+++ b/hotspot/test/gc/arguments/TestSelectDefaultGC.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, 2016, 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
@@ -66,7 +66,6 @@ public class TestSelectDefaultGC {
assertVMOption(output, "UseSerialGC", !isServer);
// CMS is never default
assertVMOption(output, "UseConcMarkSweepGC", false);
- assertVMOption(output, "UseParNewGC", false);
}
public static void main(String[] args) throws Exception {
diff --git a/hotspot/test/gc/startup_warnings/TestDefNewCMS.java b/hotspot/test/gc/startup_warnings/TestDefNewCMS.java
deleted file mode 100644
index f8780679733..00000000000
--- a/hotspot/test/gc/startup_warnings/TestDefNewCMS.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (c) 2013, 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.
- */
-
-/*
-* @test TestDefNewCMS
-* @key gc
-* @bug 8065972
-* @summary Test that the unsupported DefNew+CMS combination does not start
-* @library /test/lib
-* @modules java.base/jdk.internal.misc
-* java.management
-*/
-
-import jdk.test.lib.process.ProcessTools;
-import jdk.test.lib.process.OutputAnalyzer;
-
-public class TestDefNewCMS {
-
- public static void main(String args[]) throws Exception {
- ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:-UseParNewGC", "-XX:+UseConcMarkSweepGC", "-version");
- OutputAnalyzer output = new OutputAnalyzer(pb.start());
- output.shouldContain("It is not possible to combine the DefNew young collector with the CMS collector.");
- output.shouldContain("Error");
- output.shouldHaveExitValue(1);
- }
-
-}
diff --git a/hotspot/test/gc/startup_warnings/TestParNewCMS.java b/hotspot/test/gc/startup_warnings/TestParNewCMS.java
deleted file mode 100644
index 75dbe4bf7b3..00000000000
--- a/hotspot/test/gc/startup_warnings/TestParNewCMS.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (c) 2013, 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.
- */
-
-/*
-* @test TestParNewCMS
-* @key gc
-* @bug 8065972
-* @summary Test that specifying -XX:+UseParNewGC on the command line logs a warning message
-* @library /test/lib
-* @modules java.base/jdk.internal.misc
-* java.management
-*/
-
-import jdk.test.lib.process.ProcessTools;
-import jdk.test.lib.process.OutputAnalyzer;
-
-
-public class TestParNewCMS {
-
- public static void main(String args[]) throws Exception {
- ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UseParNewGC", "-XX:+UseConcMarkSweepGC", "-version");
- OutputAnalyzer output = new OutputAnalyzer(pb.start());
- output.shouldContain("warning: Option UseParNewGC was deprecated in version");
- output.shouldNotContain("error");
- output.shouldHaveExitValue(0);
- }
-
-}
diff --git a/hotspot/test/gc/startup_warnings/TestParNewSerialOld.java b/hotspot/test/gc/startup_warnings/TestParNewSerialOld.java
deleted file mode 100644
index a4c8d5c31e1..00000000000
--- a/hotspot/test/gc/startup_warnings/TestParNewSerialOld.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (c) 2013, 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.
- */
-
-/*
-* @test TestParNewSerialOld
-* @key gc
-* @bug 8065972
-* @summary Test that the unsupported ParNew+SerialOld combination does not start
-* @library /test/lib
-* @modules java.base/jdk.internal.misc
-* java.management
-*/
-
-import jdk.test.lib.process.ProcessTools;
-import jdk.test.lib.process.OutputAnalyzer;
-
-
-public class TestParNewSerialOld {
-
- public static void main(String args[]) throws Exception {
- ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-XX:+UseParNewGC", "-version");
- OutputAnalyzer output = new OutputAnalyzer(pb.start());
- output.shouldContain("It is not possible to combine the ParNew young collector with any collector other than CMS.");
- output.shouldContain("Error");
- output.shouldHaveExitValue(1);
- }
-
-}
diff --git a/hotspot/test/runtime/CommandLine/ObsoleteFlagErrorMessage.java b/hotspot/test/runtime/CommandLine/ObsoleteFlagErrorMessage.java
index 31d8b47a2ba..59d245548a5 100644
--- a/hotspot/test/runtime/CommandLine/ObsoleteFlagErrorMessage.java
+++ b/hotspot/test/runtime/CommandLine/ObsoleteFlagErrorMessage.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014, 2015, 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
@@ -37,18 +37,18 @@ public class ObsoleteFlagErrorMessage {
// Case 1: Newly obsolete flags with extra junk appended should not be treated as newly obsolete (8060449)
ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
- "-XX:UseOldInliningPlusJunk", "-version");
+ "-XX:ConvertSleepToYieldPlusJunk", "-version");
OutputAnalyzer output = new OutputAnalyzer(pb.start());
- output.shouldContain("Unrecognized VM option 'UseOldInliningPlusJunk'"); // Must identify bad option.
+ output.shouldContain("Unrecognized VM option 'ConvertSleepToYieldPlusJunk'"); // Must identify bad option.
output.shouldHaveExitValue(1);
- // Case 2: Newly obsolete integer-valued flags should be recognized as newly obsolete (8073989)
+ // Case 2: Newly obsolete flags should be recognized as newly obsolete (8073989)
ProcessBuilder pb2 = ProcessTools.createJavaProcessBuilder(
- "-XX:NmethodSweepFraction=10", "-version");
+ "-XX:+ConvertSleepToYield", "-version");
OutputAnalyzer output2 = new OutputAnalyzer(pb2.start());
output2.shouldContain("Ignoring option").shouldContain("support was removed");
- output2.shouldContain("NmethodSweepFraction");
+ output2.shouldContain("ConvertSleepToYield");
}
}
diff --git a/hotspot/test/runtime/CommandLine/VMAliasOptions.java b/hotspot/test/runtime/CommandLine/VMAliasOptions.java
index eae37477c08..d82b4ae2274 100644
--- a/hotspot/test/runtime/CommandLine/VMAliasOptions.java
+++ b/hotspot/test/runtime/CommandLine/VMAliasOptions.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, 2016, 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
@@ -40,11 +40,6 @@ public class VMAliasOptions {
*/
public static final String[][] ALIAS_OPTIONS = {
{"DefaultMaxRAMFraction", "MaxRAMFraction", "1032"},
- {"CMSMarkStackSizeMax", "MarkStackSizeMax", "1032"},
- {"CMSMarkStackSize", "MarkStackSize", "1032"},
- {"G1MarkStackSize", "MarkStackSize", "1032"},
- {"ParallelMarkingThreads", "ConcGCThreads", "2"},
- {"ParallelCMSThreads", "ConcGCThreads", "2"},
{"CreateMinidumpOnCrash", "CreateCoredumpOnCrash", "false" },
};
diff --git a/hotspot/test/runtime/CommandLine/VMDeprecatedOptions.java b/hotspot/test/runtime/CommandLine/VMDeprecatedOptions.java
index 06f73568460..bbd2ea5c49f 100644
--- a/hotspot/test/runtime/CommandLine/VMDeprecatedOptions.java
+++ b/hotspot/test/runtime/CommandLine/VMDeprecatedOptions.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, 2016, 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
@@ -41,17 +41,9 @@ public class VMDeprecatedOptions {
public static final String[][] DEPRECATED_OPTIONS = {
// deprecated non-alias flags:
{"MaxGCMinorPauseMillis", "1032"},
- {"UseParNewGC", "false"},
- {"ConvertSleepToYield", "false" },
- {"ConvertYieldToSleep", "false" },
// deprecated alias flags (see also aliased_jvm_flags):
{"DefaultMaxRAMFraction", "4"},
- {"CMSMarkStackSizeMax", "1032"},
- {"CMSMarkStackSize", "1032"},
- {"G1MarkStackSize", "1032"},
- {"ParallelMarkingThreads", "2"},
- {"ParallelCMSThreads", "2"},
{"CreateMinidumpOnCrash", "false"}
};
diff --git a/hotspot/test/runtime/NMT/AutoshutdownNMT.java b/hotspot/test/runtime/NMT/AutoshutdownNMT.java
deleted file mode 100644
index d07103e810c..00000000000
--- a/hotspot/test/runtime/NMT/AutoshutdownNMT.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (c) 2014, 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.
- */
-
-/*
- * @test
- * @key nmt
- * @summary Test for deprecated message if -XX:-AutoShutdownNMT is specified
- * @library /test/lib
- * @modules java.base/jdk.internal.misc
- * java.management
- */
-
-import jdk.test.lib.process.ProcessTools;
-import jdk.test.lib.process.OutputAnalyzer;
-
-public class AutoshutdownNMT {
-
- public static void main(String args[]) throws Exception {
-
- ProcessBuilder pb = ProcessTools.createJavaProcessBuilder(
- "-XX:NativeMemoryTracking=detail",
- "-XX:-AutoShutdownNMT",
- "-version");
- OutputAnalyzer output = new OutputAnalyzer(pb.start());
- output.shouldContain("Ignoring option AutoShutdownNMT");
- }
-}
diff --git a/jaxp/.hgtags b/jaxp/.hgtags
index 9804e10e82f..2d1cb9696f3 100644
--- a/jaxp/.hgtags
+++ b/jaxp/.hgtags
@@ -396,5 +396,9 @@ f85154af719f99a3b4d81b67a8b4c18a650d10f9 jdk-9+150
13c6906bfc861d99dc35a19c80b7a99f0b0ac58d jdk-9+151
7e3da313b1746578da648155e37dd8526e83153d jdk-9+152
1384504d2cd0e55c5e0becaeaf40ab05cae959d6 jdk-9+153
+0908877116d17c6e59092ec7d53ef687a96d3278 jdk-10+0
7fa738305436d14c0926df0f04892890cacc766b jdk-9+154
48fa77af153288b08ba794e1616a7b0685f3b67e jdk-9+155
+e930c373aaa4e0e712c9a25ba4b03d473b48c294 jdk-9+156
+412df235a8a229469a2cb9e7bb274d43277077d2 jdk-9+157
+60e670a65e07cc309951bd838b484401e6dd7847 jdk-9+158
diff --git a/jaxp/.jcheck/conf b/jaxp/.jcheck/conf
index 5c6f62dc12c..b2581358014 100644
--- a/jaxp/.jcheck/conf
+++ b/jaxp/.jcheck/conf
@@ -1 +1 @@
-project=jdk9
+project=jdk10
diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/TemplatesImpl.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/TemplatesImpl.java
index e5fac8b7395..d0ddbe10f54 100644
--- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/TemplatesImpl.java
+++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xalan/internal/xsltc/trax/TemplatesImpl.java
@@ -438,7 +438,7 @@ public final class TemplatesImpl implements Templates, Serializable {
Layer bootLayer = Layer.boot();
Configuration cf = bootLayer.configuration()
- .resolveRequires(finder, ModuleFinder.of(), Set.of(mn));
+ .resolve(finder, ModuleFinder.of(), Set.of(mn));
PrivilegedAction pa = () -> bootLayer.defineModules(cf, name -> loader);
Layer layer = AccessController.doPrivileged(pa);
@@ -483,10 +483,11 @@ public final class TemplatesImpl implements Templates, Serializable {
String pn = _tfactory.getPackageName();
assert pn != null && pn.length() > 0;
- ModuleDescriptor descriptor = ModuleDescriptor.module(mn)
- .requires("java.xml")
- .exports(pn)
- .build();
+ ModuleDescriptor descriptor =
+ ModuleDescriptor.newModule(mn, Set.of(ModuleDescriptor.Modifier.SYNTHETIC))
+ .requires("java.xml")
+ .exports(pn)
+ .build();
Module m = createModule(descriptor, loader);
diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/XMLDocumentScannerImpl.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/XMLDocumentScannerImpl.java
index 1226fe319ff..d6d73ca56a5 100644
--- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/XMLDocumentScannerImpl.java
+++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/XMLDocumentScannerImpl.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved.
*/
/*
@@ -743,7 +743,7 @@ public class XMLDocumentScannerImpl
// scan XMLDecl
try {
if (fEntityScanner.skipString(XMLDECL)) {
- if (fEntityScanner.peekChar() == ' ') {
+ if (XMLChar.isSpace(fEntityScanner.peekChar())) {
fMarkupDepth++;
scanXMLDeclOrTextDecl(false);
} else {
diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/parsers/XML11Configuration.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/parsers/XML11Configuration.java
index f56467532b6..ac5e7e7ba39 100644
--- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/parsers/XML11Configuration.java
+++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/parsers/XML11Configuration.java
@@ -415,9 +415,15 @@ public class XML11Configuration extends ParserConfigurationSettings
/** Current DTD scanner. */
protected XMLDTDScanner fCurrentDTDScanner;
- /** Flag indiciating whether XML11 components have been initialized. */
+ /** Flag indicating whether XML11 components have been initialized. */
private boolean f11Initialized = false;
+ /** Flag indicating whether the symbol table instance was specified during construction **/
+ private boolean fSymbolTableProvided = false;
+
+ /** Flag indicating if the symbol table was initialized and never used before that **/
+ private boolean fSymbolTableJustInitialized = true;
+
//
// Constructors
//
@@ -566,15 +572,18 @@ public class XML11Configuration extends ParserConfigurationSettings
};
addRecognizedProperties(recognizedProperties);
- if (symbolTable == null) {
- symbolTable = new SymbolTable();
+ // Remember if symbolTable was provided from outside
+ fSymbolTableProvided = symbolTable != null;
+ if (!fSymbolTableProvided) {
+ fSymbolTable = new SymbolTable();
+ } else {
+ fSymbolTable = symbolTable;
}
- fSymbolTable = symbolTable;
fProperties.put(SYMBOL_TABLE, fSymbolTable);
fGrammarPool = grammarPool;
if (fGrammarPool != null) {
- fProperties.put(XMLGRAMMAR_POOL, fGrammarPool);
+ fProperties.put(XMLGRAMMAR_POOL, fGrammarPool);
}
fEntityManager = new XMLEntityManager();
@@ -840,6 +849,7 @@ public class XML11Configuration extends ParserConfigurationSettings
fValidationManager.reset();
fVersionDetector.reset(this);
fConfigUpdated = true;
+ resetSymbolTable();
resetCommon();
short version = fVersionDetector.determineDocVersion(fInputSource);
@@ -858,15 +868,7 @@ public class XML11Configuration extends ParserConfigurationSettings
// resets and sets the pipeline.
fVersionDetector.startDocumentParsing((XMLEntityHandler) fCurrentScanner, version);
fInputSource = null;
- } catch (XNIException ex) {
- if (PRINT_EXCEPTION_STACK_TRACE)
- ex.printStackTrace();
- throw ex;
- } catch (IOException ex) {
- if (PRINT_EXCEPTION_STACK_TRACE)
- ex.printStackTrace();
- throw ex;
- } catch (RuntimeException ex) {
+ } catch (IOException | RuntimeException ex) {
if (PRINT_EXCEPTION_STACK_TRACE)
ex.printStackTrace();
throw ex;
@@ -879,15 +881,7 @@ public class XML11Configuration extends ParserConfigurationSettings
try {
return fCurrentScanner.scanDocument(complete);
- } catch (XNIException ex) {
- if (PRINT_EXCEPTION_STACK_TRACE)
- ex.printStackTrace();
- throw ex;
- } catch (IOException ex) {
- if (PRINT_EXCEPTION_STACK_TRACE)
- ex.printStackTrace();
- throw ex;
- } catch (RuntimeException ex) {
+ } catch (IOException | RuntimeException ex) {
if (PRINT_EXCEPTION_STACK_TRACE)
ex.printStackTrace();
throw ex;
@@ -1589,6 +1583,23 @@ public class XML11Configuration extends ParserConfigurationSettings
}
}
+
+ /**
+ * Reset the symbol table if it wasn't provided during construction
+ * and its not the first time when parse is called after initialization
+ */
+ private void resetSymbolTable() {
+ if (!fSymbolTableProvided) {
+ if (fSymbolTableJustInitialized) {
+ // Skip symbol table reallocation for the first parsing process
+ fSymbolTableJustInitialized = false;
+ } else {
+ fSymbolTable = new SymbolTable();
+ fProperties.put(SYMBOL_TABLE, fSymbolTable);
+ }
+ }
+ }
+
/**
* Returns the state of a feature. This method calls getFeature()
* on ParserConfigurationSettings, bypassing getFeature() on this
diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/ToHTMLStream.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/ToHTMLStream.java
index 502a8b8debb..3d510286d63 100644
--- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/ToHTMLStream.java
+++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/ToHTMLStream.java
@@ -717,7 +717,9 @@ public final class ToHTMLStream extends ToStream
*/
public final void endDocument() throws org.xml.sax.SAXException
{
- flushCharactersBuffer();
+ if (m_doIndent) {
+ flushCharactersBuffer();
+ }
flushPending();
if (m_doIndent && !m_isprevtext)
{
@@ -776,9 +778,11 @@ public final class ToHTMLStream extends ToStream
Attributes atts)
throws SAXException
{
- // will add extra one if having namespace but no matter
- m_childNodeNum++;
- flushCharactersBuffer();
+ if (m_doIndent) {
+ // will add extra one if having namespace but no matter
+ m_childNodeNum++;
+ flushCharactersBuffer();
+ }
ElemContext elemContext = m_elemContext;
// clean up any pending things first
@@ -839,8 +843,10 @@ public final class ToHTMLStream extends ToStream
writer.write('<');
writer.write(name);
- m_childNodeNumStack.push(m_childNodeNum);
- m_childNodeNum = 0;
+ if (m_doIndent) {
+ m_childNodeNumStack.add(m_childNodeNum);
+ m_childNodeNum = 0;
+ }
if (m_tracer != null)
firePseudoAttributes();
@@ -915,7 +921,9 @@ public final class ToHTMLStream extends ToStream
final String name)
throws org.xml.sax.SAXException
{
- flushCharactersBuffer();
+ if (m_doIndent) {
+ flushCharactersBuffer();
+ }
// deal with any pending issues
if (m_cdataTagOpen)
closeCDATA();
@@ -997,12 +1005,11 @@ public final class ToHTMLStream extends ToStream
}
}
- m_childNodeNum = m_childNodeNumStack.pop();
- // clean up because the element has ended
- if ((elemFlags & ElemDesc.WHITESPACESENSITIVE) != 0)
- m_ispreserve = true;
- m_isprevtext = false;
-
+ if (m_doIndent) {
+ m_childNodeNum = m_childNodeNumStack.remove(m_childNodeNumStack.size() - 1);
+ // clean up because the element has ended
+ m_isprevtext = false;
+ }
// fire off the end element event
if (m_tracer != null)
super.fireEndElem(name);
@@ -1018,11 +1025,6 @@ public final class ToHTMLStream extends ToStream
}
// some more clean because the element has ended.
- if (!elemContext.m_startTagOpen)
- {
- if (m_doIndent && !m_preserves.isEmpty())
- m_preserves.pop();
- }
m_elemContext = elemContext.m_prev;
// m_isRawStack.pop();
}
@@ -1525,7 +1527,6 @@ public final class ToHTMLStream extends ToStream
closeStartTag();
m_elemContext.m_startTagOpen = false;
}
- m_ispreserve = true;
// With m_ispreserve just set true it looks like shouldIndent()
// will always return false, so drop any possible indentation.
@@ -1602,8 +1603,6 @@ public final class ToHTMLStream extends ToStream
m_elemContext.m_startTagOpen = false;
}
- m_ispreserve = true;
-
if (shouldIndent())
indent();
@@ -1640,8 +1639,10 @@ public final class ToHTMLStream extends ToStream
public void processingInstruction(String target, String data)
throws org.xml.sax.SAXException
{
- m_childNodeNum++;
- flushCharactersBuffer();
+ if (m_doIndent) {
+ m_childNodeNum++;
+ flushCharactersBuffer();
+ }
// Process any pending starDocument and startElement first.
flushPending();
@@ -1790,11 +1791,6 @@ public final class ToHTMLStream extends ToStream
*/
if (m_StringOfCDATASections != null)
m_elemContext.m_isCdataSection = isCdataSection();
- if (m_doIndent)
- {
- m_isprevtext = false;
- m_preserves.push(m_ispreserve);
- }
}
catch(IOException e)
diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/ToStream.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/ToStream.java
index 994a7800d97..ae14a4922b1 100644
--- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/ToStream.java
+++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/ToStream.java
@@ -20,34 +20,36 @@
package com.sun.org.apache.xml.internal.serializer;
-import com.sun.org.apache.xalan.internal.utils.SecuritySupport;
-import com.sun.org.apache.xml.internal.serializer.utils.MsgKey;
-import com.sun.org.apache.xml.internal.serializer.utils.Utils;
-import com.sun.org.apache.xml.internal.serializer.utils.WrappedRuntimeException;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.io.Writer;
-import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Deque;
import java.util.EmptyStackException;
import java.util.Enumeration;
+import java.util.Iterator;
+import java.util.List;
import java.util.Properties;
-import java.util.Queue;
import java.util.Set;
import java.util.StringTokenizer;
+
import javax.xml.transform.ErrorListener;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
+
import org.w3c.dom.Node;
import org.xml.sax.Attributes;
import org.xml.sax.ContentHandler;
import org.xml.sax.SAXException;
+import com.sun.org.apache.xalan.internal.utils.SecuritySupport;
+import com.sun.org.apache.xml.internal.serializer.utils.MsgKey;
+import com.sun.org.apache.xml.internal.serializer.utils.Utils;
+import com.sun.org.apache.xml.internal.serializer.utils.WrappedRuntimeException;
+
/**
* This abstract class is a base class for other stream
* serializers (xml, html, text ...) that write output to a stream.
@@ -103,7 +105,7 @@ abstract public class ToStream extends SerializerBase {
* If m_childNodeNum > 1, the text node will be indented.
*
*/
- protected Deque m_childNodeNumStack = new ArrayDeque<>();
+ protected List m_childNodeNumStack = new ArrayList<>();
protected int m_childNodeNum = 0;
@@ -115,26 +117,6 @@ abstract public class ToStream extends SerializerBase {
protected boolean m_ispreserveSpace = false;
- /**
- * Stack to keep track of whether or not we need to
- * preserve whitespace.
- *
- * Used to push/pop values used for the field m_ispreserve, but
- * m_ispreserve is only relevant if m_doIndent is true.
- * If m_doIndent is false this field has no impact.
- *
- */
- protected BoolStack m_preserves = new BoolStack();
-
- /**
- * State flag to tell if preservation of whitespace
- * is important.
- *
- * Used only in shouldIndent() but only if m_doIndent is true.
- * If m_doIndent is false this flag has no impact.
- *
- */
- protected boolean m_ispreserve = false;
/**
* State flag that tells if the previous node processed
@@ -1267,7 +1249,6 @@ abstract public class ToStream extends SerializerBase {
closeStartTag();
m_elemContext.m_startTagOpen = false;
}
- m_ispreserve = true;
if (shouldIndent())
indent();
@@ -1357,8 +1338,6 @@ abstract public class ToStream extends SerializerBase {
m_elemContext.m_startTagOpen = false;
}
- m_ispreserve = true;
-
m_writer.write(ch, start, length);
}
catch (IOException e)
@@ -1405,8 +1384,8 @@ abstract public class ToStream extends SerializerBase {
if (length == 0 || (isInEntityRef()))
return;
- final boolean shouldFormat = shouldFormatOutput();
- if (m_elemContext.m_startTagOpen && !shouldFormat)
+ final boolean shouldNotFormat = !shouldFormatOutput();
+ if (m_elemContext.m_startTagOpen)
{
closeStartTag();
m_elemContext.m_startTagOpen = false;
@@ -1432,8 +1411,12 @@ abstract public class ToStream extends SerializerBase {
if (m_disableOutputEscapingStates.peekOrFalse() || (!m_escaping))
{
- charactersRaw(chars, start, length);
- m_isprevtext = true;
+ if (shouldNotFormat) {
+ charactersRaw(chars, start, length);
+ m_isprevtext = true;
+ } else {
+ m_charactersBuffer.addRawText(chars, start, length);
+ }
// time to fire off characters generation event
if (m_tracer != null)
super.fireCharEvent(chars, start, length);
@@ -1441,16 +1424,16 @@ abstract public class ToStream extends SerializerBase {
return;
}
- if (m_elemContext.m_startTagOpen && !shouldFormat)
+ if (m_elemContext.m_startTagOpen)
{
closeStartTag();
m_elemContext.m_startTagOpen = false;
}
- if (shouldFormat) {
- m_charactersBuffer.addText(chars, start, length);
- } else {
+ if (shouldNotFormat) {
outputCharacters(chars, start, length);
+ } else {
+ m_charactersBuffer.addText(chars, start, length);
}
// time to fire off characters generation event
@@ -1465,7 +1448,14 @@ abstract public class ToStream extends SerializerBase {
* @return True if the content should be formatted.
*/
protected boolean shouldFormatOutput() {
- return !m_ispreserveSpace && m_doIndent;
+ return m_doIndent && !m_ispreserveSpace;
+ }
+
+ /**
+ * @return True if the content in current element should be formatted.
+ */
+ public boolean getIndent() {
+ return shouldFormatOutput();
}
/**
@@ -1506,12 +1496,6 @@ abstract public class ToStream extends SerializerBase {
i = lastDirty;
}
}
- /* If there is some non-whitespace, mark that we may need
- * to preserve this. This is only important if we have indentation on.
- */
- if (i < end)
- m_ispreserve = true;
-
// int lengthClean; // number of clean characters in a row
// final boolean[] isAsciiClean = m_charInfo.getASCIIClean();
@@ -1577,12 +1561,7 @@ abstract public class ToStream extends SerializerBase {
*/
final protected void flushCharactersBuffer() throws SAXException {
try {
- if (shouldFormatOutput() && m_charactersBuffer.hasContent()) {
- if (m_elemContext.m_startTagOpen) {
- closeStartTag();
- m_elemContext.m_startTagOpen = false;
- }
-
+ if (shouldFormatOutput() && m_charactersBuffer.isAnyCharactersBuffered()) {
if (m_elemContext.m_isCdataSection) {
/*
* due to cdata-section-elements atribute, we need this as
@@ -1594,11 +1573,16 @@ abstract public class ToStream extends SerializerBase {
}
m_childNodeNum++;
+ boolean skipBeginningNewlines = false;
if (shouldIndentForText()) {
indent();
m_startNewLine = true;
+ // newline has always been added here because if this is the
+ // text before the first element, shouldIndent() won't
+ // return true.
+ skipBeginningNewlines = true;
}
- m_charactersBuffer.flush();
+ m_charactersBuffer.flush(skipBeginningNewlines);
}
} catch (IOException e) {
throw new SAXException(e);
@@ -1858,8 +1842,10 @@ abstract public class ToStream extends SerializerBase {
if (isInEntityRef())
return;
- m_childNodeNum++;
- flushCharactersBuffer();
+ if (m_doIndent) {
+ m_childNodeNum++;
+ flushCharactersBuffer();
+ }
if (m_needToCallStartDocument)
{
@@ -1890,8 +1876,6 @@ abstract public class ToStream extends SerializerBase {
if (namespaceURI != null)
ensurePrefixIsDeclared(namespaceURI, name);
- m_ispreserve = false;
-
if (shouldIndent() && m_startNewLine)
{
indent();
@@ -1912,11 +1896,13 @@ abstract public class ToStream extends SerializerBase {
if (atts != null)
addAttributes(atts);
- m_ispreserveSpace = m_preserveSpaces.peekOrFalse();
- m_preserveSpaces.push(m_ispreserveSpace);
+ if (m_doIndent) {
+ m_ispreserveSpace = m_preserveSpaces.peekOrFalse();
+ m_preserveSpaces.push(m_ispreserveSpace);
- m_childNodeNumStack.push(m_childNodeNum);
- m_childNodeNum = 0;
+ m_childNodeNumStack.add(m_childNodeNum);
+ m_childNodeNum = 0;
+ }
m_elemContext = m_elemContext.push(namespaceURI,localName,name);
m_isprevtext = false;
@@ -2128,7 +2114,9 @@ abstract public class ToStream extends SerializerBase {
if (isInEntityRef())
return;
- flushCharactersBuffer();
+ if (m_doIndent) {
+ flushCharactersBuffer();
+ }
// namespaces declared at the current depth are no longer valid
// so get rid of them
m_prefixMap.popNamespaces(m_elemContext.m_currentElemDepth, null);
@@ -2175,16 +2163,13 @@ abstract public class ToStream extends SerializerBase {
throw new SAXException(e);
}
- if (!m_elemContext.m_startTagOpen && m_doIndent)
- {
- m_ispreserve = m_preserves.isEmpty() ? false : m_preserves.pop();
+ if (m_doIndent) {
+ m_ispreserveSpace = m_preserveSpaces.popAndTop();
+ m_childNodeNum = m_childNodeNumStack.remove(m_childNodeNumStack.size() - 1);
+
+ m_isprevtext = false;
}
- m_ispreserveSpace = m_preserveSpaces.popAndTop();
- m_childNodeNum = m_childNodeNumStack.pop();
-
- m_isprevtext = false;
-
// fire off the end element event
if (m_tracer != null)
super.fireEndElem(name);
@@ -2320,8 +2305,10 @@ abstract public class ToStream extends SerializerBase {
int start_old = start;
if (isInEntityRef())
return;
- m_childNodeNum++;
- flushCharactersBuffer();
+ if (m_doIndent) {
+ m_childNodeNum++;
+ flushCharactersBuffer();
+ }
if (m_elemContext.m_startTagOpen)
{
closeStartTag();
@@ -2501,8 +2488,10 @@ abstract public class ToStream extends SerializerBase {
*/
public void startCDATA() throws org.xml.sax.SAXException
{
- m_childNodeNum++;
- flushCharactersBuffer();
+ if (m_doIndent) {
+ m_childNodeNum++;
+ flushCharactersBuffer();
+ }
m_cdataStartCalled = true;
}
@@ -2588,12 +2577,6 @@ abstract public class ToStream extends SerializerBase {
*/
if (m_StringOfCDATASections != null)
m_elemContext.m_isCdataSection = isCdataSection();
-
- if (m_doIndent)
- {
- m_isprevtext = false;
- m_preserves.push(m_ispreserve);
- }
}
}
@@ -2943,7 +2926,9 @@ abstract public class ToStream extends SerializerBase {
String value,
boolean xslAttribute)
{
- if (m_charactersBuffer.isAnyCharactersBuffered()) {
+ if (!m_charactersBuffer.isAnyCharactersBuffered()) {
+ return doAddAttributeAlways(uri, localName, rawName, type, value, xslAttribute);
+ } else {
/*
* If stylesheet includes xsl:copy-of an attribute node, XSLTC will
* fire an addAttribute event. When a text node is handling in
@@ -2954,8 +2939,6 @@ abstract public class ToStream extends SerializerBase {
*
*/
return m_attributes.getIndex(rawName) < 0;
- } else {
- return doAddAttributeAlways(uri, localName, rawName, type, value, xslAttribute);
}
}
@@ -3086,7 +3069,7 @@ abstract public class ToStream extends SerializerBase {
}
}
- if (rawName.equals("xml:space")) {
+ if (m_doIndent && rawName.equals("xml:space")) {
if (value.equals("preserve")) {
m_ispreserveSpace = true;
if (m_preserveSpaces.size() > 0)
@@ -3227,8 +3210,6 @@ abstract public class ToStream extends SerializerBase {
// Leave m_format alone for now - Brian M.
// this.m_format = null;
this.m_inDoctype = false;
- this.m_ispreserve = false;
- this.m_preserves.clear();
this.m_ispreserveSpace = false;
this.m_preserveSpaces.clear();
this.m_childNodeNum = 0;
@@ -3411,6 +3392,7 @@ abstract public class ToStream extends SerializerBase {
}
}
+
/**
* This inner class is used to buffer the text nodes and the entity
* reference nodes if indentation is on. There is only one CharacterBuffer
@@ -3425,20 +3407,21 @@ abstract public class ToStream extends SerializerBase {
*/
private abstract class GenericCharacters {
/**
- * @return True if having any character other than whitespace or
- * line feed.
+ * @return True if all characters in this Text are newlines.
*/
- abstract boolean hasContent();
-
- abstract void flush() throws SAXException;
+ abstract boolean flush(boolean skipBeginningNewlines) throws SAXException;
/**
- * Converts this GenericCharacters to a new character array.
+ * Converts this GenericCharacters to a new character array. This
+ * method is used to handle cdata-section-elements attribute in
+ * xsl:output. Therefore it doesn't need to consider
+ * skipBeginningNewlines because the text will be involved with CDATA
+ * tag.
*/
abstract char[] toChars();
}
- private Queue bufferedCharacters = new ArrayDeque<>();
+ private List bufferedCharacters = new ArrayList<>();
/**
* Append a text node to the buffer.
@@ -3451,27 +3434,21 @@ abstract public class ToStream extends SerializerBase {
text = Arrays.copyOfRange(chars, start, start + length);
}
- boolean hasContent() {
- for (int i = 0; i < text.length; i++) {
- if (!isWhiteSpace(text[i])) {
+ boolean flush(boolean skipBeginningNewlines) throws SAXException {
+ int start = 0;
+ while (skipBeginningNewlines && text[start] == '\n') {
+ start++;
+ if (start == text.length) {
return true;
}
}
+ outputCharacters(text, start, text.length - start);
return false;
}
- void flush() throws SAXException {
- outputCharacters(text, 0, text.length);
- }
-
char[] toChars() {
return text;
}
-
- boolean isWhiteSpace(char ch) {
- return ch == ' ' || ch == '\t' || ch == '\n' || ch == '\r';
- }
-
});
}
@@ -3480,12 +3457,22 @@ abstract public class ToStream extends SerializerBase {
*/
public void addEntityReference(String entityName) {
bufferedCharacters.add(new GenericCharacters() {
- boolean hasContent() {
- return true;
- }
-
- void flush() throws SAXException {
- outputEntityReference(entityName);
+ boolean flush(boolean skipBeginningNewlines) throws SAXException {
+ if (m_elemContext.m_startTagOpen)
+ {
+ closeStartTag();
+ m_elemContext.m_startTagOpen = false;
+ }
+ if (m_cdataTagOpen)
+ closeCDATA();
+ char[] cs = toChars();
+ try {
+ m_writer.write(cs, 0, cs.length);
+ m_isprevtext = true;
+ } catch (IOException e) {
+ throw new SAXException(e);
+ }
+ return false;
}
char[] toChars() {
@@ -3495,35 +3482,69 @@ abstract public class ToStream extends SerializerBase {
}
/**
- * @return True if any GenericCharacters is already buffered.
+ * Append a raw text to the buffer. Used to handle raw characters event.
*/
- public boolean isAnyCharactersBuffered() {
- return !bufferedCharacters.isEmpty();
+ public void addRawText(final char chars[], final int start, final int length) {
+ bufferedCharacters.add(new GenericCharacters() {
+ char[] text;
+
+ {
+ text = Arrays.copyOfRange(chars, start, start + length);
+ }
+
+ boolean flush(boolean skipBeginningNewlines) throws SAXException {
+ try {
+ int start = 0;
+ while (skipBeginningNewlines && text[start] == '\n') {
+ start++;
+ if (start == text.length) {
+ return true;
+ }
+ }
+ m_writer.write(text, start, text.length - start);
+ m_isprevtext = true;
+ } catch (IOException e) {
+ throw new SAXException(e);
+ }
+ return false;
+ }
+
+ char[] toChars() {
+ return text;
+ }
+ });
}
/**
- * @return True if any buffered GenericCharacters has content.
+ * @return True if any GenericCharacters are buffered.
*/
- public boolean hasContent() {
- return bufferedCharacters.stream().anyMatch(GenericCharacters::hasContent);
+ public boolean isAnyCharactersBuffered() {
+ return bufferedCharacters.size() > 0;
}
/**
* Flush all buffered GenericCharacters.
*/
- public void flush() throws SAXException {
- GenericCharacters element;
- while ((element = bufferedCharacters.poll()) != null)
- element.flush();
+ public void flush(boolean skipBeginningNewlines) throws SAXException {
+ Iterator itr = bufferedCharacters.iterator();
+
+ boolean continueSkipBeginningNewlines = skipBeginningNewlines;
+ while (itr.hasNext()) {
+ GenericCharacters element = itr.next();
+ continueSkipBeginningNewlines = element.flush(continueSkipBeginningNewlines);
+ itr.remove();
+ }
}
/**
* Converts all buffered GenericCharacters to a new character array.
*/
public char[] toChars() {
- return bufferedCharacters.stream().map(GenericCharacters::toChars)
- .collect(StringBuilder::new, StringBuilder::append, StringBuilder::append).toString()
- .toCharArray();
+ StringBuilder sb = new StringBuilder();
+ for (GenericCharacters element : bufferedCharacters) {
+ sb.append(element.toChars());
+ }
+ return sb.toString().toCharArray();
}
/**
@@ -3534,6 +3555,7 @@ abstract public class ToStream extends SerializerBase {
}
}
+
// Implement DTDHandler
/**
* If this method is called, the serializer is used as a
diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/ToXMLStream.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/ToXMLStream.java
index 681737ebc88..add764619ae 100644
--- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/ToXMLStream.java
+++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/ToXMLStream.java
@@ -88,8 +88,6 @@ public final class ToXMLStream extends ToStream
setOmitXMLDeclaration(xmlListener.getOmitXMLDeclaration());
- m_ispreserve = xmlListener.m_ispreserve;
- m_preserves = xmlListener.m_preserves;
m_ispreserveSpace = xmlListener.m_ispreserveSpace;
m_preserveSpaces = xmlListener.m_preserveSpaces;
m_childNodeNum = xmlListener.m_childNodeNum;
@@ -201,7 +199,9 @@ public final class ToXMLStream extends ToStream
*/
public void endDocument() throws org.xml.sax.SAXException
{
- flushCharactersBuffer();
+ if (m_doIndent) {
+ flushCharactersBuffer();
+ }
flushPending();
if (m_doIndent && !m_isprevtext)
{
@@ -235,11 +235,6 @@ public final class ToXMLStream extends ToStream
*/
public void startPreserving() throws org.xml.sax.SAXException
{
-
- // Not sure this is really what we want. -sb
- m_preserves.push(true);
-
- m_ispreserve = true;
}
/**
@@ -251,9 +246,6 @@ public final class ToXMLStream extends ToStream
*/
public void endPreserving() throws org.xml.sax.SAXException
{
-
- // Not sure this is really what we want. -sb
- m_ispreserve = m_preserves.isEmpty() ? false : m_preserves.pop();
}
/**
@@ -273,8 +265,10 @@ public final class ToXMLStream extends ToStream
if (isInEntityRef())
return;
- m_childNodeNum++;
- flushCharactersBuffer();
+ if (m_doIndent) {
+ m_childNodeNum++;
+ flushCharactersBuffer();
+ }
flushPending();
if (target.equals(Result.PI_DISABLE_OUTPUT_ESCAPING))
diff --git a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/dom3/DOM3TreeWalker.java b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/dom3/DOM3TreeWalker.java
index 68864ca7800..1fafb24c641 100644
--- a/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/dom3/DOM3TreeWalker.java
+++ b/jaxp/src/java.xml/share/classes/com/sun/org/apache/xml/internal/serializer/dom3/DOM3TreeWalker.java
@@ -1024,7 +1024,8 @@ final class DOM3TreeWalker {
return;
}
- if (bDispatch) {
+ if (bDispatch
+ && (!fSerializer.getIndent() || !node.getData().replace('\n', ' ').trim().isEmpty())) {
dispatachChars(node);
}
}
diff --git a/jaxp/src/java.xml/share/classes/module-info.java b/jaxp/src/java.xml/share/classes/module-info.java
index d9259677564..5182cda9f16 100644
--- a/jaxp/src/java.xml/share/classes/module-info.java
+++ b/jaxp/src/java.xml/share/classes/module-info.java
@@ -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
@@ -26,6 +26,8 @@
/**
* Defines the Java API for XML Processing (JAXP), the Streaming API for XML (StAX),
* the Simple API for XML (SAX), and the W3C Document Object Model (DOM) API.
+ *
+ * @since 9
*/
module java.xml {
exports javax.xml;
@@ -53,12 +55,6 @@ module java.xml {
exports org.xml.sax;
exports org.xml.sax.ext;
exports org.xml.sax.helpers;
- exports com.sun.org.apache.xerces.internal.dom to
- java.xml.ws;
- exports com.sun.org.apache.xerces.internal.jaxp to
- java.xml.ws;
- exports com.sun.org.apache.xerces.internal.util to
- java.xml.ws;
exports com.sun.org.apache.xml.internal.dtm to
java.xml.crypto;
exports com.sun.org.apache.xml.internal.utils to
diff --git a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/NodeTest.java b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/NodeTest.java
index bb4d6b3574a..264ad06a95f 100644
--- a/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/NodeTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/org/w3c/dom/ptests/NodeTest.java
@@ -22,6 +22,7 @@
*/
package org.w3c.dom.ptests;
+import static jaxp.library.JAXPTestUtilities.USER_DIR;
import static jaxp.library.JAXPTestUtilities.compareWithGold;
import static jaxp.library.JAXPTestUtilities.tryRunWithTmpPermission;
import static org.testng.Assert.assertEquals;
@@ -157,7 +158,7 @@ public class NodeTest {
Element element = (Element) document.getElementsByTagName("sender").item(0);
parentElement.insertBefore(createTestDocumentFragment(document), element);
- String outputfile = "InsertBefore.out";
+ String outputfile = USER_DIR + "InsertBefore.out";
String goldfile = GOLDEN_DIR + "InsertBeforeGF.out";
tryRunWithTmpPermission(() -> outputXml(document, outputfile), new PropertyPermission("user.dir", "read"));
assertTrue(compareWithGold(goldfile, outputfile));
@@ -175,7 +176,7 @@ public class NodeTest {
Element element = (Element) document.getElementsByTagName("sender").item(0);
parentElement.replaceChild(createTestDocumentFragment(document), element);
- String outputfile = "ReplaceChild3.out";
+ String outputfile = USER_DIR + "ReplaceChild3.out";
String goldfile = GOLDEN_DIR + "ReplaceChild3GF.out";
tryRunWithTmpPermission(() -> outputXml(document, outputfile), new PropertyPermission("user.dir", "read"));
assertTrue(compareWithGold(goldfile, outputfile));
diff --git a/jaxp/test/javax/xml/jaxp/functional/test/astro/DocumentLSTest.java b/jaxp/test/javax/xml/jaxp/functional/test/astro/DocumentLSTest.java
index acfe988c13a..673674b9e65 100644
--- a/jaxp/test/javax/xml/jaxp/functional/test/astro/DocumentLSTest.java
+++ b/jaxp/test/javax/xml/jaxp/functional/test/astro/DocumentLSTest.java
@@ -22,6 +22,7 @@
*/
package test.astro;
+import static jaxp.library.JAXPTestUtilities.USER_DIR;
import static jaxp.library.JAXPTestUtilities.filenameToURL;
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNotNull;
@@ -130,7 +131,7 @@ public class DocumentLSTest {
impl = (DOMImplementationLS) db.getDOMImplementation();
LSSerializer domSerializer = impl.createLSSerializer();
MyDOMOutput mydomoutput = new MyDOMOutput();
- try (OutputStream os = new FileOutputStream("test.out")) {
+ try (OutputStream os = new FileOutputStream(USER_DIR + "test.out")) {
mydomoutput.setByteStream(os);
mydomoutput.setEncoding("UTF-8");
assertTrue(domSerializer.write(doc, mydomoutput));
diff --git a/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/LayerModularXMLParserTest.java b/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/LayerModularXMLParserTest.java
index 74f051ac04d..fcfba1955ae 100644
--- a/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/LayerModularXMLParserTest.java
+++ b/jaxp/test/javax/xml/jaxp/module/ServiceProviderTest/LayerModularXMLParserTest.java
@@ -96,7 +96,7 @@ public class LayerModularXMLParserTest {
public void testOneLayer() throws Exception {
ModuleFinder finder1 = ModuleFinder.of(MOD_DIR1);
Configuration cf1 = Layer.boot().configuration()
- .resolveRequiresAndUses(finder1, ModuleFinder.of(), Set.of("test"));
+ .resolveAndBind(finder1, ModuleFinder.of(), Set.of("test"));
ClassLoader scl = ClassLoader.getSystemClassLoader();
Layer layer1 = Layer.boot().defineModulesWithManyLoaders(cf1, scl);
ClassLoader cl1 = layer1.findLoader("test");
@@ -126,12 +126,12 @@ public class LayerModularXMLParserTest {
public void testTwoLayer() throws Exception {
ModuleFinder finder1 = ModuleFinder.of(MOD_DIR1);
Configuration cf1 = Layer.boot().configuration()
- .resolveRequiresAndUses(finder1, ModuleFinder.of(), Set.of("test"));
+ .resolveAndBind(finder1, ModuleFinder.of(), Set.of("test"));
ClassLoader scl = ClassLoader.getSystemClassLoader();
Layer layer1 = Layer.boot().defineModulesWithManyLoaders(cf1, scl);
ModuleFinder finder2 = ModuleFinder.of(MOD_DIR2);
- Configuration cf2 = cf1.resolveRequiresAndUses(finder2, ModuleFinder.of(), Set.of("test"));
+ Configuration cf2 = cf1.resolveAndBind(finder2, ModuleFinder.of(), Set.of("test"));
Layer layer2 = layer1.defineModulesWithOneLoader(cf2, layer1.findLoader("test"));
ClassLoader cl2 = layer2.findLoader("test");
@@ -160,12 +160,12 @@ public class LayerModularXMLParserTest {
public void testTwoLayerWithDuplicate() throws Exception {
ModuleFinder finder1 = ModuleFinder.of(MOD_DIR1, MOD_DIR2);
Configuration cf1 = Layer.boot().configuration()
- .resolveRequiresAndUses(finder1, ModuleFinder.of(), Set.of("test"));
+ .resolveAndBind(finder1, ModuleFinder.of(), Set.of("test"));
ClassLoader scl = ClassLoader.getSystemClassLoader();
Layer layer1 = Layer.boot().defineModulesWithManyLoaders(cf1, scl);
ModuleFinder finder2 = ModuleFinder.of(MOD_DIR2);
- Configuration cf2 = cf1.resolveRequiresAndUses(finder2, ModuleFinder.of(), Set.of("test"));
+ Configuration cf2 = cf1.resolveAndBind(finder2, ModuleFinder.of(), Set.of("test"));
Layer layer2 = layer1.defineModulesWithOneLoader(cf2, layer1.findLoader("test"));
ClassLoader cl2 = layer2.findLoader("test");
diff --git a/jaxp/test/javax/xml/jaxp/unittest/common/prettyprint/PrettyPrintTest.java b/jaxp/test/javax/xml/jaxp/unittest/common/prettyprint/PrettyPrintTest.java
index be54c6c2e05..da4ff787589 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/common/prettyprint/PrettyPrintTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/common/prettyprint/PrettyPrintTest.java
@@ -60,7 +60,7 @@ import org.xml.sax.SAXException;
/*
* @test
- * @bug 6439439 8087303
+ * @bug 6439439 8087303 8174025
* @library /javax/xml/jaxp/libs /javax/xml/jaxp/unittest
* @run testng/othervm -DrunSecMngr=true common.prettyprint.PrettyPrintTest
* @run testng/othervm common.prettyprint.PrettyPrintTest
@@ -69,29 +69,30 @@ import org.xml.sax.SAXException;
@Listeners({jaxp.library.FilePolicy.class})
public class PrettyPrintTest {
/*
- * test CDATA, elements only, text and element, whitespace and element,
- * xml:space property and nested xml:space property, mixed node types.
+ * test CDATA, elements only, text and element, xml:space property, mixed
+ * node types.
*/
@DataProvider(name = "xml-data")
public Object[][] xmlData() throws Exception {
return new Object[][] {
- { read("xmltest1.xml"), read("xmltest1.out") },
- { read("xmltest2.xml"), read("xmltest2.out") },
- { read("xmltest3.xml"), read("xmltest3.out") },
- { read("xmltest4.xml"), read("xmltest4.out") },
- { read("xmltest5.xml"), read("xmltest5.out") },
- { read("xmltest6.xml"), read("xmltest6.out") },
- { read("xmltest7.xml"), read("xmltest7.out") },
- { read("xmltest8.xml"), read("xmltest8.out") } };
+ { "xmltest1.xml", "xmltest1.out" },
+ { "xmltest2.xml", "xmltest2.out" },
+ { "xmltest3.xml", "xmltest3.out" },
+ { "xmltest4.xml", "xmltest4.out" },
+ { "xmltest6.xml", "xmltest6.out" },
+ { "xmltest8.xml", "xmltest8.out" } };
}
/*
* @bug 8087303
- * Test the whitespace text nodes are serialized with pretty-print by LSSerializer and transformer correctly
+ * Test the xml document are serialized with pretty-print by
+ * LSSerializer and transformer correctly
*
*/
@Test(dataProvider = "xml-data")
- public void testXMLPrettyPrint(String source, String expected) throws Exception {
+ public void testXMLPrettyPrint(String sourceFile, String expectedFile) throws Exception {
+ String source = read(sourceFile);
+ String expected = read(expectedFile);
// test it's no change if no pretty-print
String result = serializerWrite(toXmlDocument(source), false);
assertTrue(toXmlDocument(source).isEqualNode(toXmlDocument(result)), "The actual is: " + result);
@@ -104,40 +105,116 @@ public class PrettyPrintTest {
assertEquals(transform(toXmlDocument(source), true).replaceAll("\r\n", "\n"), expected);
}
+
/*
- * test pure text content, and sequent Text nodes.
+ * @bug 8087303
+ * Test a single text node is serialized with pretty-print by
+ * LSSerializer and transformer correctly
+ *
*/
- @DataProvider(name = "xml-node-data")
- public Object[][] xmlNodeData() throws Exception {
- return new Object[][] {
- { newTextNode(read("nodetest1.txt")), read("nodetest1.out") },
- { createDocWithSequentTextNodes(), read("nodetest2.out") } };
+ @Test
+ public void testSingleTextNode() throws Exception {
+ Node xml = newTextNode(read("nodetest1.txt"));
+ String expected = read("nodetest1.out");
+ assertEquals(serializerWrite(xml, true), expected);
+ assertEquals(transform(xml, true).replaceAll("\r\n", "\n"), expected);
}
/*
* @bug 8087303
- * Test the whitespace text nodes are serialized with pretty-print by LSSerializer and transformer correctly,
- * doesn't compare with the source because the test data is Node object
+ * Test the transformer shall keep all whitespace text node in
+ * sequent text nodes
*
*/
- @Test(dataProvider = "xml-node-data")
- public void testXMLNodePrettyPrint(Node xml, String expected) throws Exception {
- assertEquals(serializerWrite(xml, true), expected);
+ @Test
+ public void testSequentTextNodesWithTransformer() throws Exception {
+ Node xml = createDocWithSequentTextNodes();
+ String expected = read("nodetest2.out");
assertEquals(transform(xml, true).replaceAll("\r\n", "\n"), expected);
}
+ /*
+ * @bug 8087303
+ * Test LSSerializer shall eliminate the whitespace text node
+ * in sequent text nodes
+ *
+ */
+ @Test
+ public void testSequentTextNodesWithLSSerializer() throws Exception {
+ Node xml = createDocWithSequentTextNodes();
+ String expected = read("nodetest2ls.out");
+ assertEquals(serializerWrite(xml, true), expected);
+ }
+
+
+ /*
+ * test whitespace and element, nested xml:space property.
+ */
+ @DataProvider(name = "xml-data-whitespace-ls")
+ public Object[][] whitespaceLS() throws Exception {
+ return new Object[][] {
+ { "xmltest5.xml", "xmltest5ls.out" },
+ { "xmltest7.xml", "xmltest7ls.out" } };
+ }
+
+ /*
+ * @bug 8087303
+ * Test LSSerializer shall eliminate the whitespace text node
+ * unless xml:space="preserve"
+ *
+ */
+ @Test(dataProvider = "xml-data-whitespace-ls")
+ public void testWhitespaceWithLSSerializer(String sourceFile, String expectedFile) throws Exception {
+ String source = read(sourceFile);
+ String expected = read(expectedFile);
+ // test it's no change if no pretty-print
+ String result = serializerWrite(toXmlDocument(source), false);
+ assertTrue(toXmlDocument(source).isEqualNode(toXmlDocument(result)), "The actual is: " + result);
+ // test pretty-print
+ assertEquals(serializerWrite(toXmlDocument(source), true), expected);
+ }
+
+ /*
+ * test whitespace and element, nested xml:space property.
+ */
+ @DataProvider(name = "xml-data-whitespace-xslt")
+ public Object[][] whitespaceXSLT() throws Exception {
+ return new Object[][] {
+ { "xmltest5.xml", "xmltest5xslt.out" },
+ { "xmltest7.xml", "xmltest7xslt.out" } };
+ }
+
+ /*
+ * @bug 8087303
+ * Test the transformer shall format the output but keep all
+ * whitespace text node even if xml:space="preserve"
+ *
+ */
+ @Test(dataProvider = "xml-data-whitespace-xslt")
+ public void testWhitespaceWithTransformer(String sourceFile, String expectedFile) throws Exception {
+ String source = read(sourceFile);
+ String expected = read(expectedFile);
+ // test it's no change if no pretty-print
+ String result = transform(toXmlDocument(source), false);
+ assertTrue(toXmlDocument(source).isEqualNode(toXmlDocument(result)), "The actual is: " + result);
+ // test pretty-print
+ assertEquals(transform(toXmlDocument(source), true).replaceAll("\r\n", "\n"), expected);
+ }
+
/*
* test block element, inline element, text, and mixed elements.
*/
@DataProvider(name = "html-data")
public Object[][] htmlData() throws Exception {
return new Object[][] {
- { read("htmltest1.xml"), read("htmltest1.out") },
- { read("htmltest2.xml"), read("htmltest2.out") },
- { read("htmltest3.xml"), read("htmltest3.out") },
- { read("htmltest4.xml"), read("htmltest4.out") },
- { read("htmltest5.xml"), read("htmltest5.out") },
- { read("htmltest6.xml"), read("htmltest6.out") } };
+ { "htmltest1.xml", "htmltest1.out" },
+ { "htmltest2.xml", "htmltest2.out" },
+ { "htmltest3.xml", "htmltest3.out" },
+ { "htmltest4.xml", "htmltest4.out" },
+ { "htmltest5.xml", "htmltest5.out" },
+ { "htmltest6.xml", "htmltest6.out" },
+ /* @bug 8174025, test whitespace between inline elements */
+ { "htmltest7.xml", "htmltest7.out" } };
}
/*
@@ -146,7 +223,9 @@ public class PrettyPrintTest {
*
*/
@Test(dataProvider = "html-data")
- public void testTransformToHTML(String source, String expected) throws Exception {
+ public void testTransformToHTML(String sourceFile, String expectedFile) throws Exception {
+ String source = read(sourceFile);
+ String expected = read(expectedFile);
// test it's no change if no pretty-print
StringWriter writer = new StringWriter();
getTransformer(true, false).transform(new StreamSource(new StringReader(source)), new StreamResult(writer));
@@ -158,6 +237,27 @@ public class PrettyPrintTest {
assertEquals(writer.toString().replaceAll("\r\n", "\n"), expected);
}
+ /*
+ * @bug 8174025
+ * Test the serializer can handle correctly.
+ *
+ */
+ @Test
+ public void testDisableOutputEscaping() throws Exception {
+ final String xsl ="generate-catalog.xsl";
+ final String xml ="simple-entity-resolver-config.xml";
+ final String expectedOutput ="simple-entity-resolver-config-transformed.xml";
+ TransformerFactory factory = TransformerFactory.newInstance();
+ Transformer transformer = factory.newTemplates(new StreamSource(new StringReader(read(xsl)))).newTransformer();
+
+ String key = "schemaBase";
+ String value = "schemas";
+ transformer.setParameter(key, value);
+ StringWriter writer = new StringWriter();
+ transformer.transform(new StreamSource(new StringReader(read(xml))), new StreamResult(writer));
+ assertEquals(writer.toString().replaceAll("\r\n", "\n"), read(expectedOutput));
+ }
+
@Test
public void testLSSerializerFormatPrettyPrint() {
@@ -298,6 +398,9 @@ public class PrettyPrintTest {
Document doc = db.newDocument();
Node root = doc.createElement("root");
doc.appendChild(root);
+ root.appendChild(doc.createTextNode("\n"));
+ root.appendChild(doc.createTextNode("\n"));
+ root.appendChild(doc.createTextNode("\n"));
root.appendChild(doc.createTextNode(" "));
root.appendChild(doc.createTextNode("t"));
root.appendChild(doc.createTextNode("\n"));
diff --git a/jaxp/test/javax/xml/jaxp/unittest/common/prettyprint/generate-catalog.xsl b/jaxp/test/javax/xml/jaxp/unittest/common/prettyprint/generate-catalog.xsl
new file mode 100644
index 00000000000..e1b8e75171a
--- /dev/null
+++ b/jaxp/test/javax/xml/jaxp/unittest/common/prettyprint/generate-catalog.xsl
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ <system systemId="
+
+ " uri="
+
+ " />
+
+
+
+
\ No newline at end of file
diff --git a/jaxp/test/javax/xml/jaxp/unittest/common/prettyprint/htmltest1.xml b/jaxp/test/javax/xml/jaxp/unittest/common/prettyprint/htmltest1.xml
index 50460626a7b..c0959b46dc8 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/common/prettyprint/htmltest1.xml
+++ b/jaxp/test/javax/xml/jaxp/unittest/common/prettyprint/htmltest1.xml
@@ -1 +1 @@
-Java Tutorials and Examples 1en-us
\ No newline at end of file
+Java Tutorials and Examples 1en-us
\ No newline at end of file
diff --git a/jaxp/test/javax/xml/jaxp/unittest/common/prettyprint/htmltest7.out b/jaxp/test/javax/xml/jaxp/unittest/common/prettyprint/htmltest7.out
new file mode 100644
index 00000000000..2ce8445a6dc
--- /dev/null
+++ b/jaxp/test/javax/xml/jaxp/unittest/common/prettyprint/htmltest7.out
@@ -0,0 +1,7 @@
+
+
+
\ No newline at end of file
diff --git a/jaxp/test/javax/xml/jaxp/unittest/common/prettyprint/nodetest2.out b/jaxp/test/javax/xml/jaxp/unittest/common/prettyprint/nodetest2.out
index a0d94368a3d..8a7d8fb0d18 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/common/prettyprint/nodetest2.out
+++ b/jaxp/test/javax/xml/jaxp/unittest/common/prettyprint/nodetest2.out
@@ -1,19 +1,30 @@
t
t
-
+
+
t
-
-
-
+
+
+
+
+
+
t
+
t
+
t
+
+
+
+
+
diff --git a/jaxp/test/javax/xml/jaxp/unittest/common/prettyprint/nodetest2ls.out b/jaxp/test/javax/xml/jaxp/unittest/common/prettyprint/nodetest2ls.out
new file mode 100644
index 00000000000..92e2d1f41e0
--- /dev/null
+++ b/jaxp/test/javax/xml/jaxp/unittest/common/prettyprint/nodetest2ls.out
@@ -0,0 +1,18 @@
+
+ tt
+
+ t
+
+
+
+
+ t
+
+ t
+
+ t
+
+
+
+
+
diff --git a/jaxp/test/javax/xml/jaxp/unittest/common/prettyprint/simple-entity-resolver-config-transformed.xml b/jaxp/test/javax/xml/jaxp/unittest/common/prettyprint/simple-entity-resolver-config-transformed.xml
new file mode 100644
index 00000000000..238b5e2a2ac
--- /dev/null
+++ b/jaxp/test/javax/xml/jaxp/unittest/common/prettyprint/simple-entity-resolver-config-transformed.xml
@@ -0,0 +1,3 @@
+
+
+
diff --git a/jaxp/test/javax/xml/jaxp/unittest/common/prettyprint/simple-entity-resolver-config.xml b/jaxp/test/javax/xml/jaxp/unittest/common/prettyprint/simple-entity-resolver-config.xml
new file mode 100644
index 00000000000..9156728e13d
--- /dev/null
+++ b/jaxp/test/javax/xml/jaxp/unittest/common/prettyprint/simple-entity-resolver-config.xml
@@ -0,0 +1,20 @@
+
+
+
+
+ Example 1 Schema Type library 10.0
+ >-//Oracle//Example 1 Schema Type library 10.0//EN
+ http://www.example.test/oracle/schema/example1.xsd
+ META-INF/example1.xsd
+
+
+ Example 2 Schema Type library 10.0
+ >-//Oracle//Example 2 Schema Type library 10.0//EN
+ http://www.example.test/oracle/schema/example2.xsd
+ META-INF/example2.xsd
+
+
\ No newline at end of file
diff --git a/jaxp/test/javax/xml/jaxp/unittest/common/prettyprint/xmltest5.out b/jaxp/test/javax/xml/jaxp/unittest/common/prettyprint/xmltest5ls.out
similarity index 100%
rename from jaxp/test/javax/xml/jaxp/unittest/common/prettyprint/xmltest5.out
rename to jaxp/test/javax/xml/jaxp/unittest/common/prettyprint/xmltest5ls.out
diff --git a/jaxp/test/javax/xml/jaxp/unittest/common/prettyprint/xmltest5xslt.out b/jaxp/test/javax/xml/jaxp/unittest/common/prettyprint/xmltest5xslt.out
new file mode 100644
index 00000000000..4178e8ea9c2
--- /dev/null
+++ b/jaxp/test/javax/xml/jaxp/unittest/common/prettyprint/xmltest5xslt.out
@@ -0,0 +1,15 @@
+
+
+
+ Java Tutorials and Examples 1
+
+ en-us
+
+
+
+
+
+
+
+
+
diff --git a/jaxp/test/javax/xml/jaxp/unittest/common/prettyprint/xmltest7.out b/jaxp/test/javax/xml/jaxp/unittest/common/prettyprint/xmltest7ls.out
similarity index 100%
rename from jaxp/test/javax/xml/jaxp/unittest/common/prettyprint/xmltest7.out
rename to jaxp/test/javax/xml/jaxp/unittest/common/prettyprint/xmltest7ls.out
diff --git a/jaxp/test/javax/xml/jaxp/unittest/common/prettyprint/xmltest7xslt.out b/jaxp/test/javax/xml/jaxp/unittest/common/prettyprint/xmltest7xslt.out
new file mode 100644
index 00000000000..06296cddd1d
--- /dev/null
+++ b/jaxp/test/javax/xml/jaxp/unittest/common/prettyprint/xmltest7xslt.out
@@ -0,0 +1,17 @@
+
+ Java
+
+ 5
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/jaxp/test/javax/xml/jaxp/unittest/common/prettyprint/xmltest8.out b/jaxp/test/javax/xml/jaxp/unittest/common/prettyprint/xmltest8.out
index 621263fbe19..b62fff27a78 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/common/prettyprint/xmltest8.out
+++ b/jaxp/test/javax/xml/jaxp/unittest/common/prettyprint/xmltest8.out
@@ -1,25 +1,20 @@
-
- t
+ t
-
-t
+ t
-
- t
+ t
-
- t
+ t
t
-
- t
+ t
diff --git a/jaxp/test/javax/xml/jaxp/unittest/common/prettyprint/xmltest8.xml b/jaxp/test/javax/xml/jaxp/unittest/common/prettyprint/xmltest8.xml
index e9c1c477d3a..6b9c54af8ed 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/common/prettyprint/xmltest8.xml
+++ b/jaxp/test/javax/xml/jaxp/unittest/common/prettyprint/xmltest8.xml
@@ -2,14 +2,7 @@
t
t
- t
-
-
- t
-
- t
-
+ t
+ tt
t
-
-
-
+
diff --git a/jaxp/test/javax/xml/jaxp/unittest/dom/ls/LSSerializerTest.java b/jaxp/test/javax/xml/jaxp/unittest/dom/ls/LSSerializerTest.java
index 9068969b318..50c79a962a6 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/dom/ls/LSSerializerTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/dom/ls/LSSerializerTest.java
@@ -279,11 +279,11 @@ public class LSSerializerTest {
"\n" +
" &name1;Jo Smith\n" +
" b &name2;Jo Smith &name1;Jo Smith b\n" +
- " &name;Jo Smith \n" +
+ " &name;Jo Smith \n" +
" &ele1;d\n" +
- " &ele2;eee \n" +
+ " &ele2;eee \n" +
" <att>\n" +
- " &ele; g\n" +
+ " &ele; g\n" +
" &ele2;\n" +
"\n");
@@ -301,7 +301,7 @@ public class LSSerializerTest {
"\n" +
" &name;Jo Smith\n" +
" b &name;Jo Smith &name;Jo Smith b\n" +
- " &name;Jo Smith \n" +
+ " &name;Jo Smith \n" +
" \n" +
" \n" +
" text\n" +
diff --git a/jaxp/test/javax/xml/jaxp/unittest/parsers/BaseParsingTest.java b/jaxp/test/javax/xml/jaxp/unittest/parsers/BaseParsingTest.java
new file mode 100644
index 00000000000..2d15fda1b0e
--- /dev/null
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/BaseParsingTest.java
@@ -0,0 +1,158 @@
+/*
+ * 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.
+ */
+package parsers;
+
+import java.io.StringReader;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamReader;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Listeners;
+import org.testng.annotations.Test;
+import org.xml.sax.InputSource;
+
+/**
+ * @test
+ * @bug 8169450
+ * @library /javax/xml/jaxp/libs /javax/xml/jaxp/unittest
+ * @run testng/othervm -DrunSecMngr=true parsers.BaseParsingTest
+ * @run testng/othervm parsers.BaseParsingTest
+ * @summary Tests that verify base parsing
+ */
+@Listeners({jaxp.library.BasePolicy.class})
+public class BaseParsingTest {
+
+ @DataProvider(name = "xmlDeclarations")
+ public static Object[][] xmlDeclarations() {
+ return new Object[][]{
+ {"t"},
+ {"t"},
+ {"t"},
+ {"\n"
+ + "\n"
+ + " t\n"
+ + ""},
+ {"\n"
+ + "\n"
+ + " t\n"
+ + ""},
+ {"\n"
+ + "\n"
+ + " t\n"
+ + ""},
+ {"\n"
+ + "\n"
+ + " t\n"
+ + ""},
+ {"t"},
+ {"t"},
+ {"t"},
+ {"\n"
+ + "\n"
+ + " t\n"
+ + ""},
+ {"\n"
+ + "\n"
+ + " t\n"
+ + ""},
+ {"\n"
+ + "\n"
+ + " t\n"
+ + ""},
+ {"\n"
+ + "\n"
+ + " t\n"
+ + ""}
+ };
+ }
+
+ /**
+ * @bug 8169450
+ * Verifies that the parser successfully parses the declarations provided in
+ * xmlDeclarations. Exception would otherwise be thrown as reported in 8169450.
+ *
+ * XML Declaration according to https://www.w3.org/TR/REC-xml/#NT-XMLDecl
+ * [23] XMLDecl ::= ''
+ * [24] VersionInfo ::= S 'version' Eq ("'" VersionNum "'" | '"' VersionNum '"')
+ * [25] Eq ::= S? '=' S? [26] VersionNum ::= '1.' [0-9]+
+ *
+ * @param xml the test xml
+ * @throws Exception if the parser fails to parse the xml
+ */
+ @Test(dataProvider = "xmlDeclarations")
+ public void test(String xml) throws Exception {
+ XMLInputFactory xif = XMLInputFactory.newDefaultFactory();
+ XMLStreamReader xsr = xif.createXMLStreamReader(new StringReader(xml));
+ while (xsr.hasNext()) {
+ xsr.next();
+ }
+ }
+
+ /**
+ * @bug 8169450
+ * This particular issue does not appear in DOM parsing since the spaces are
+ * normalized during version detection. This test case then serves as a guard
+ * against such an issue from occuring in the version detection.
+ *
+ * @param xml the test xml
+ * @throws Exception if the parser fails to parse the xml
+ */
+ @Test(dataProvider = "xmlDeclarations")
+ public void testWithDOM(String xml) throws Exception {
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ dbf.setValidating(true);
+ DocumentBuilder db = dbf.newDocumentBuilder();
+ db.parse(new InputSource(new StringReader(xml)));
+ }
+}
diff --git a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6341770.java b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6341770.java
index 942e7ffaed8..1bf27aa09a0 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6341770.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/parsers/Bug6341770.java
@@ -23,6 +23,7 @@
package parsers;
+import static jaxp.library.JAXPTestUtilities.USER_DIR;
import static jaxp.library.JAXPTestUtilities.tryRunWithTmpPermission;
import java.io.File;
@@ -61,7 +62,7 @@ public class Bug6341770 {
return;
}
try {
- File dir = new File(ALPHA);
+ File dir = new File(USER_DIR + ALPHA);
dir.delete();
dir.mkdir();
File main = new File(dir, "main.xml");
diff --git a/jaxp/test/javax/xml/jaxp/unittest/sax/Bug7057778Test.java b/jaxp/test/javax/xml/jaxp/unittest/sax/Bug7057778Test.java
index 4bd69f09765..be6dbc986f8 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/sax/Bug7057778Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/sax/Bug7057778Test.java
@@ -23,6 +23,7 @@
package sax;
+import static jaxp.library.JAXPTestUtilities.USER_DIR;
import static jaxp.library.JAXPTestUtilities.getSystemProperty;
import static jaxp.library.JAXPTestUtilities.tryRunWithTmpPermission;
@@ -69,7 +70,7 @@ public class Bug7057778Test {
@Test
public void testParse() {
File src = new File(getClass().getResource(xml).getFile());
- File dst = new File(xml1);
+ File dst = new File(USER_DIR + xml1);
try {
copyFile(src, dst);
SAXParserFactory spf = SAXParserFactory.newInstance();
diff --git a/jaxp/test/javax/xml/jaxp/unittest/sax/SymbolTableResetTest.java b/jaxp/test/javax/xml/jaxp/unittest/sax/SymbolTableResetTest.java
new file mode 100644
index 00000000000..d54086361eb
--- /dev/null
+++ b/jaxp/test/javax/xml/jaxp/unittest/sax/SymbolTableResetTest.java
@@ -0,0 +1,78 @@
+/*
+ * 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.
+ */
+
+package sax;
+
+import java.io.StringReader;
+
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
+
+import org.testng.Assert;
+import org.testng.annotations.Listeners;
+import org.testng.annotations.Test;
+import org.xml.sax.InputSource;
+import org.xml.sax.helpers.DefaultHandler;
+
+/*
+ * @test
+ * @bug 8173390
+ * @library /javax/xml/jaxp/libs /javax/xml/jaxp/unittest
+ * @run testng/othervm -DrunSecMngr=true sax.SymbolTableResetTest
+ * @run testng/othervm sax.SymbolTableResetTest
+ * @summary Test that SAXParser reallocates symbol table during
+ * subsequent parse operations
+ */
+@Listeners({jaxp.library.BasePolicy.class})
+public class SymbolTableResetTest {
+
+ /*
+ * Test mimics the SAXParser usage in SAAJ-RI that reuses the
+ * parsers from the internal pool. To avoid memory leaks, symbol
+ * table associated with the parser should be reallocated during each
+ * parse() operation.
+ */
+ @Test
+ public void testReset() throws Exception {
+ // Dummy xml input for parser
+ String input = "Test";
+ // Create SAXParser
+ SAXParserFactory spf = SAXParserFactory.newInstance();
+ SAXParser p = spf.newSAXParser();
+ // First parse iteration
+ p.parse(new InputSource(new StringReader(input)), new DefaultHandler());
+ // Get first symbol table reference
+ Object symTable1 = p.getProperty(SYMBOL_TABLE_PROPERTY);
+ p.reset();
+ // Second parse iteration
+ p.parse(new InputSource(new StringReader(input)), new DefaultHandler());
+ // Get second symbol table reference
+ Object symTable2 = p.getProperty(SYMBOL_TABLE_PROPERTY);
+ // Symbol table references should be different
+ Assert.assertNotSame(symTable1, symTable2, "Symbol table references");
+ }
+
+ // Symbol table property
+ private static final String SYMBOL_TABLE_PROPERTY = "http://apache.org/xml/properties/internal/symbol-table";
+
+}
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6688002Test.java b/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6688002Test.java
index 1c4ac758575..1d1f728009d 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6688002Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/Bug6688002Test.java
@@ -23,6 +23,8 @@
package stream;
+import static jaxp.library.JAXPTestUtilities.USER_DIR;
+
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
@@ -67,15 +69,15 @@ public class Bug6688002Test {
}
public class MyRunnable implements Runnable {
- final int no;
+ final String no;
MyRunnable(int no) {
- this.no = no;
+ this.no = String.valueOf(no);
}
public void run() {
try {
- FileOutputStream fos = new FileOutputStream("" + no);
+ FileOutputStream fos = new FileOutputStream(USER_DIR + no);
XMLStreamWriter w = getWriter(fos);
// System.out.println("Writer="+w+" Thread="+Thread.currentThread());
w.writeStartDocument();
@@ -89,7 +91,7 @@ public class Bug6688002Test {
w.close();
fos.close();
- FileInputStream fis = new FileInputStream("" + no);
+ FileInputStream fis = new FileInputStream(USER_DIR + no);
XMLStreamReader r = getReader(fis);
while (r.hasNext()) {
r.next();
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventWriterTest/ReaderToWriterTest.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventWriterTest/ReaderToWriterTest.java
index 3bd3ca25296..28b871afcd9 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventWriterTest/ReaderToWriterTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLEventWriterTest/ReaderToWriterTest.java
@@ -23,6 +23,8 @@
package stream.XMLEventWriterTest;
+import static jaxp.library.JAXPTestUtilities.USER_DIR;
+
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
@@ -58,7 +60,7 @@ public class ReaderToWriterTest {
private static final XMLOutputFactory XML_OUTPUT_FACTORY = XMLOutputFactory.newInstance();
private static final String INPUT_FILE = "W2JDLR4002TestService.wsdl.data";
- private static final String OUTPUT_FILE = "Encoded.wsdl";
+ private static final String OUTPUT_FILE = USER_DIR + "Encoded.wsdl";
/**
* Unit test for writing namespaces when namespaceURI == null.
@@ -126,7 +128,7 @@ public class ReaderToWriterTest {
try {
InputStream in = getClass().getResourceAsStream("ReaderToWriterTest.wsdl");
- OutputStream out = new FileOutputStream("ReaderToWriterTest-out.xml");
+ OutputStream out = new FileOutputStream(USER_DIR + "ReaderToWriterTest-out.xml");
XMLEventReader reader = XML_INPUT_FACTORY.createXMLEventReader(in);
XMLEventWriter writer = XML_OUTPUT_FACTORY.createXMLEventWriter(out, "UTF-8");
diff --git a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/WriterTest.java b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/WriterTest.java
index 7e681e343c4..abb9957a256 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/WriterTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/stream/XMLStreamWriterTest/WriterTest.java
@@ -23,6 +23,8 @@
package stream.XMLStreamWriterTest;
+import static jaxp.library.JAXPTestUtilities.USER_DIR;
+
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
@@ -84,7 +86,7 @@ public class WriterTest {
System.out.println("Test StreamWriter with out any namespace functionality");
try {
- String outputFile = files[0] + ".out";
+ String outputFile = USER_DIR + files[0] + ".out";
System.out.println("Writing output to " + outputFile);
xtw = outputFactory.createXMLStreamWriter(new FileOutputStream(outputFile), ENCODING);
@@ -98,7 +100,7 @@ public class WriterTest {
xtw.flush();
xtw.close();
- Assert.assertTrue(checkResults(files[0] + ".out", files[0] + ".org"));
+ Assert.assertTrue(checkResults(outputFile, files[0] + ".org"));
} catch (Exception ex) {
Assert.fail("testOne Failed " + ex);
@@ -113,7 +115,7 @@ public class WriterTest {
System.out.println("Test StreamWriter's Namespace Context");
try {
- String outputFile = files[1] + ".out";
+ String outputFile = USER_DIR + files[1] + ".out";
System.out.println("Writing output to " + outputFile);
xtw = outputFactory.createXMLStreamWriter(System.out);
@@ -157,7 +159,7 @@ public class WriterTest {
System.out.println("Test StreamWriter for proper element sequence.");
try {
- String outputFile = files[2] + ".out";
+ String outputFile = USER_DIR + files[2] + ".out";
System.out.println("Writing output to " + outputFile);
xtw = outputFactory.createXMLStreamWriter(new FileOutputStream(outputFile), ENCODING);
@@ -172,7 +174,7 @@ public class WriterTest {
xtw.flush();
xtw.close();
- Assert.assertTrue(checkResults(files[2] + ".out", files[2] + ".org"));
+ Assert.assertTrue(checkResults(outputFile, files[2] + ".org"));
} catch (Exception ex) {
Assert.fail("testThree Failed " + ex);
@@ -188,7 +190,7 @@ public class WriterTest {
try {
- String outputFile = files[3] + ".out";
+ String outputFile = USER_DIR + files[3] + ".out";
System.out.println("Writing output to " + outputFile);
xtw = outputFactory.createXMLStreamWriter(new FileOutputStream(outputFile), ENCODING);
@@ -205,7 +207,7 @@ public class WriterTest {
xtw.flush();
xtw.close();
- Assert.assertTrue(checkResults(files[3] + ".out", files[3] + ".org"));
+ Assert.assertTrue(checkResults(outputFile, files[3] + ".org"));
} catch (Exception ex) {
Assert.fail("testFour Failed " + ex);
@@ -221,7 +223,7 @@ public class WriterTest {
try {
- String outputFile = files[4] + ".out";
+ String outputFile = USER_DIR + files[4] + ".out";
System.out.println("Writing output to " + outputFile);
xtw = outputFactory.createXMLStreamWriter(System.out);
@@ -265,7 +267,7 @@ public class WriterTest {
xtw.writeEndDocument();
xtw.flush();
xtw.close();
- Assert.assertTrue(checkResults(files[4] + ".out", files[4] + ".org"));
+ Assert.assertTrue(checkResults(outputFile, files[4] + ".org"));
System.out.println("Done");
} catch (Exception ex) {
Assert.fail("testFive Failed " + ex);
@@ -281,7 +283,7 @@ public class WriterTest {
try {
- String outputFile = files[5] + ".out";
+ String outputFile = USER_DIR + files[5] + ".out";
System.out.println("Writing output to " + outputFile);
xtw = outputFactory.createXMLStreamWriter(System.out);
@@ -325,7 +327,7 @@ public class WriterTest {
xtw.writeEndDocument();
xtw.flush();
xtw.close();
- Assert.assertTrue(checkResults(files[5] + ".out", files[5] + ".org"));
+ Assert.assertTrue(checkResults(outputFile, files[5] + ".org"));
System.out.println("Done");
} catch (Exception ex) {
Assert.fail("testSix Failed " + ex);
@@ -341,7 +343,7 @@ public class WriterTest {
try {
- String outputFile = files[6] + ".out";
+ String outputFile = USER_DIR + files[6] + ".out";
System.out.println("Writing output to " + outputFile);
xtw = outputFactory.createXMLStreamWriter(new FileOutputStream(outputFile), ENCODING);
@@ -374,7 +376,7 @@ public class WriterTest {
xtw.writeEndDocument();
xtw.flush();
xtw.close();
- Assert.assertTrue(checkResults(files[6] + ".out", files[6] + ".org"));
+ Assert.assertTrue(checkResults(outputFile, files[6] + ".org"));
System.out.println("Done");
} catch (Exception ex) {
Assert.fail("testSeven Failed " + ex);
@@ -390,7 +392,7 @@ public class WriterTest {
try {
- String outputFile = files[7] + ".out";
+ String outputFile = USER_DIR + files[7] + ".out";
System.out.println("Writing output to " + outputFile);
outputFactory.setProperty(XMLOutputFactory.IS_REPAIRING_NAMESPACES, new Boolean(true));
xtw = outputFactory.createXMLStreamWriter(new FileOutputStream(outputFile), ENCODING);
@@ -424,7 +426,7 @@ public class WriterTest {
xtw.flush();
xtw.close();
// check against testSeven.xml.org
- Assert.assertTrue(checkResults(files[7] + ".out", files[7] + ".org"));
+ Assert.assertTrue(checkResults(outputFile, files[7] + ".org"));
System.out.println("Done");
} catch (Exception ex) {
ex.printStackTrace();
@@ -442,7 +444,7 @@ public class WriterTest {
try {
- String outputFile = files[8] + ".out";
+ String outputFile = USER_DIR + files[8] + ".out";
System.out.println("Writing output to " + outputFile);
outputFactory.setProperty(XMLOutputFactory.IS_REPAIRING_NAMESPACES, new Boolean(true));
xtw = outputFactory.createXMLStreamWriter(new FileOutputStream(outputFile), ENCODING);
@@ -476,7 +478,7 @@ public class WriterTest {
xtw.flush();
xtw.close();
// check against testSeven.xml.org
- Assert.assertTrue(checkResults(files[8] + ".out", files[7] + ".org"));
+ Assert.assertTrue(checkResults(outputFile, files[7] + ".org"));
System.out.println("Done");
} catch (Exception ex) {
Assert.fail("testNine Failed " + ex);
@@ -491,7 +493,7 @@ public class WriterTest {
System.out.println("Test StreamWriter supplied with no namespace information and" + "isRepairingNamespace is set to true.");
try {
- String outputFile = files[9] + ".out";
+ String outputFile = USER_DIR + files[9] + ".out";
System.out.println("Writing output to " + outputFile);
outputFactory.setProperty(XMLOutputFactory.IS_REPAIRING_NAMESPACES, new Boolean(true));
xtw = outputFactory.createXMLStreamWriter(new FileOutputStream(outputFile), ENCODING);
@@ -542,7 +544,7 @@ public class WriterTest {
System.out.println("Test StreamWriter supplied with namespace information passed through startElement and" + "isRepairingNamespace is set to true.");
try {
- String outputFile = files[10] + ".out";
+ String outputFile = USER_DIR + files[10] + ".out";
System.out.println("Writing output to " + outputFile);
outputFactory.setProperty(XMLOutputFactory.IS_REPAIRING_NAMESPACES, new Boolean(true));
xtw = outputFactory.createXMLStreamWriter(new FileOutputStream(outputFile), ENCODING);
@@ -576,7 +578,7 @@ public class WriterTest {
xtw.flush();
xtw.close();
// check against testSeven.xml.org
- Assert.assertTrue(checkResults(files[10] + ".out", files[7] + ".org"));
+ Assert.assertTrue(checkResults(outputFile, files[7] + ".org"));
System.out.println("Done");
} catch (Exception ex) {
Assert.fail("testEleven Failed " + ex);
@@ -592,7 +594,7 @@ public class WriterTest {
try {
- String outputFile = files[11] + ".out";
+ String outputFile = USER_DIR + files[11] + ".out";
System.out.println("Writing output to " + outputFile);
outputFactory.setProperty(XMLOutputFactory.IS_REPAIRING_NAMESPACES, new Boolean(true));
xtw = outputFactory.createXMLStreamWriter(new FileOutputStream(outputFile), ENCODING);
@@ -643,7 +645,7 @@ public class WriterTest {
try {
- String outputFile = files[12] + ".out";
+ String outputFile = USER_DIR + files[12] + ".out";
System.out.println("Writing output to " + outputFile);
outputFactory.setProperty(XMLOutputFactory.IS_REPAIRING_NAMESPACES, new Boolean(true));
xtw = outputFactory.createXMLStreamWriter(new FileOutputStream(outputFile), ENCODING);
@@ -695,7 +697,7 @@ public class WriterTest {
try {
- String outputFile = files[14] + ".out";
+ String outputFile = USER_DIR + files[14] + ".out";
System.out.println("Writing output to " + outputFile);
outputFactory.setProperty(XMLOutputFactory.IS_REPAIRING_NAMESPACES, new Boolean(true));
xtw = outputFactory.createXMLStreamWriter(new FileOutputStream(outputFile), ENCODING);
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug4693341Test.java b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug4693341Test.java
index 2b2a1e94506..1e4266d65e7 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug4693341Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug4693341Test.java
@@ -23,6 +23,8 @@
package transform;
+import static jaxp.library.JAXPTestUtilities.USER_DIR;
+
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
@@ -55,7 +57,7 @@ public class Bug4693341Test {
// save dtd file to current working directory to avoid writing into source repository
public void copyDTDtoWorkDir() throws IOException {
try (FileInputStream dtdres = new FileInputStream(getClass().getResource("Bug4693341.dtd").getPath());
- FileOutputStream dtdwork = new FileOutputStream("Bug4693341.dtd");) {
+ FileOutputStream dtdwork = new FileOutputStream(USER_DIR + "Bug4693341.dtd");) {
int n;
byte[] buffer = new byte[1024];
while((n = dtdres.read(buffer)) > -1) {
@@ -71,7 +73,7 @@ public class Bug4693341Test {
copyDTDtoWorkDir();
- File outf = new File("Bug4693341.out");
+ File outf = new File(USER_DIR + "Bug4693341.out");
StreamResult result = new StreamResult(new FileOutputStream(outf));
String in = getClass().getResource("Bug4693341.xml").getPath();
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug4892774.java b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug4892774.java
index cb92eb762ed..0419c1cf8bc 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug4892774.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug4892774.java
@@ -23,6 +23,8 @@
package transform;
+import static jaxp.library.JAXPTestUtilities.USER_DIR;
+
import java.io.File;
import javax.xml.transform.Source;
@@ -58,7 +60,7 @@ public class Bug4892774 {
private final String XML_FILE = "catalog.xml";
private final String XML10_FILE = "catalog_10.xml"; // 1.0 version document
- private final String TEMP_FILE = "tmp.xml";
+ private final String TEMP_FILE = USER_DIR + "tmp.xml";
private final String EXPECTED_VERSION = "1.1";
static private Transformer idTransform = null;
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6216226Test.java b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6216226Test.java
index 7031585a864..9ba16dbc9c1 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6216226Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/Bug6216226Test.java
@@ -23,6 +23,7 @@
package transform;
+import static jaxp.library.JAXPTestUtilities.USER_DIR;
import static jaxp.library.JAXPTestUtilities.runWithTmpPermission;
import java.io.File;
@@ -52,7 +53,7 @@ public class Bug6216226Test {
@Test
public final void test() {
try {
- File test = new File("bug6216226.txt");
+ File test = new File(USER_DIR + "bug6216226.txt");
TransformerFactory tf = TransformerFactory.newInstance();
Transformer xformer = tf.newTransformer();
StringReader st = new StringReader("");
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/CR6935697Test.java b/jaxp/test/javax/xml/jaxp/unittest/transform/CR6935697Test.java
index db8d8721d2e..fe65ee0e7a9 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/CR6935697Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/CR6935697Test.java
@@ -23,6 +23,8 @@
package transform;
+import static jaxp.library.JAXPTestUtilities.USER_DIR;
+
import java.io.FileOutputStream;
import javax.xml.transform.Result;
@@ -65,7 +67,7 @@ public class CR6935697Test {
Transformer xformer = template.newTransformer();
// Prepare the input and output files
Source source = new StreamSource(getClass().getResourceAsStream(inFilename));
- Result result = new StreamResult(new FileOutputStream(outFilename));
+ Result result = new StreamResult(new FileOutputStream(USER_DIR + outFilename));
// Apply the xsl file to the source file and write the result to the
// output file
xformer.transform(source, result);
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/XSLTFunctionsTest.java b/jaxp/test/javax/xml/jaxp/unittest/transform/XSLTFunctionsTest.java
index 87360daf486..3f99410869b 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/XSLTFunctionsTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/XSLTFunctionsTest.java
@@ -23,6 +23,7 @@
package transform;
+import java.io.FilePermission;
import java.io.IOException;
import java.io.StringReader;
import java.io.StringWriter;
@@ -46,6 +47,7 @@ import static org.testng.Assert.assertEquals;
import static jaxp.library.JAXPTestUtilities.runWithAllPerm;
import static jaxp.library.JAXPTestUtilities.clearSystemProperty;
import static jaxp.library.JAXPTestUtilities.setSystemProperty;
+import static jaxp.library.JAXPTestUtilities.tryRunWithTmpPermission;
import static jaxp.library.JAXPTestUtilities.getSystemProperty;
/*
@@ -77,7 +79,9 @@ public class XSLTFunctionsTest {
Transformer t = tf.newTransformer(new StreamSource(new StringReader(xsl)));
//Transform the xml
- t.transform(new StreamSource(new StringReader(xml)), new StreamResult(new StringWriter()));
+ tryRunWithTmpPermission(
+ () -> t.transform(new StreamSource(new StringReader(xml)), new StreamResult(new StringWriter())),
+ new FilePermission(output, "write"), new FilePermission(redirect, "write"));
// Verifies that the output is redirected successfully
String userDir = getSystemProperty("user.dir");
diff --git a/jaxp/test/javax/xml/jaxp/unittest/transform/util/TransformerUtil.java b/jaxp/test/javax/xml/jaxp/unittest/transform/util/TransformerUtil.java
index 61d7bfe09db..3294aeb93ae 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/transform/util/TransformerUtil.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/transform/util/TransformerUtil.java
@@ -23,6 +23,8 @@
package transform.util;
+import static jaxp.library.JAXPTestUtilities.USER_DIR;
+
import java.io.InputStream;
import javax.xml.parsers.DocumentBuilder;
@@ -34,7 +36,7 @@ public abstract class TransformerUtil {
protected String type;
- protected final String TEMP_FILE = "tmp.xml";
+ protected final String TEMP_FILE = USER_DIR + "tmp.xml";
public abstract Source prepareSource(InputStream is) throws Exception;
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/CR6708840Test.java b/jaxp/test/javax/xml/jaxp/unittest/validation/CR6708840Test.java
index d3a0f1ef40c..71f55a4f3c4 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/CR6708840Test.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/CR6708840Test.java
@@ -23,6 +23,8 @@
package validation;
+import static jaxp.library.JAXPTestUtilities.USER_DIR;
+
import java.io.File;
import java.io.FileWriter;
@@ -122,7 +124,7 @@ public class CR6708840Test {
Validator schemaValidator = schemaGrammar.newValidator();
Source staxSrc = new StAXSource(staxReader);
- File resultFile = new File("gMonths.result.xml");
+ File resultFile = new File(USER_DIR + "gMonths.result.xml");
if (resultFile.exists()) {
resultFile.delete();
}
diff --git a/jaxp/test/javax/xml/jaxp/unittest/validation/ValidatorTest.java b/jaxp/test/javax/xml/jaxp/unittest/validation/ValidatorTest.java
index 40ca0cc8d3a..22317b325bb 100644
--- a/jaxp/test/javax/xml/jaxp/unittest/validation/ValidatorTest.java
+++ b/jaxp/test/javax/xml/jaxp/unittest/validation/ValidatorTest.java
@@ -23,6 +23,7 @@
package validation;
+import static jaxp.library.JAXPTestUtilities.USER_DIR;
import static jaxp.library.JAXPTestUtilities.runWithTmpPermission;
import java.io.File;
@@ -61,7 +62,7 @@ public class ValidatorTest {
File resultFile = null;
try {
- resultFile = new File("stax.result");
+ resultFile = new File(USER_DIR + "stax.result");
if (resultFile.exists()) {
resultFile.delete();
}
@@ -88,7 +89,7 @@ public class ValidatorTest {
File resultFile = null;
try {
- resultFile = new File("stax.result");
+ resultFile = new File(USER_DIR + "stax.result");
if (resultFile.exists()) {
resultFile.delete();
}
@@ -117,7 +118,7 @@ public class ValidatorTest {
// test valid gMonths
File resultFile = null;
try {
- resultFile = new File("gMonths.result.xml");
+ resultFile = new File(USER_DIR + "gMonths.result.xml");
if (resultFile.exists()) {
resultFile.delete();
}
@@ -144,7 +145,7 @@ public class ValidatorTest {
// test invalid gMonths
File invalidResultFile = null;
try {
- invalidResultFile = new File("gMonths-invalid.result.xml");
+ invalidResultFile = new File(USER_DIR + "gMonths-invalid.result.xml");
if (invalidResultFile.exists()) {
invalidResultFile.delete();
}
diff --git a/jaxws/.hgtags b/jaxws/.hgtags
index b130a70170d..560522dcf6e 100644
--- a/jaxws/.hgtags
+++ b/jaxws/.hgtags
@@ -399,5 +399,9 @@ c8c9c334743caf8155c9809b6b4ac315d3a66476 jdk-9+148
c48b4d4768b1c2b8fe5d1a844ca13732e5dfbe2a jdk-9+151
6f8fb1cf7e5f61c40dcc3654f9a623c505f6de1f jdk-9+152
7a532a9a227137155b905341d4b99939db51220e jdk-9+153
+34af95c7dbff74f3448fcdb7d745524e8a1cc88a jdk-10+0
34af95c7dbff74f3448fcdb7d745524e8a1cc88a jdk-9+154
9b9918656c97724fd89c04a8547043bbd37f5935 jdk-9+155
+7c829eba781409b4fe15392639289af1553dcf63 jdk-9+156
+b7e70e1e0154e1d2c69f814e03a8800ef8634fe0 jdk-9+157
+e53b322357382209fb553b9a1541ccfd12cbcb6c jdk-9+158
diff --git a/jaxws/.jcheck/conf b/jaxws/.jcheck/conf
index 5c6f62dc12c..b2581358014 100644
--- a/jaxws/.jcheck/conf
+++ b/jaxws/.jcheck/conf
@@ -1 +1 @@
-project=jdk9
+project=jdk10
diff --git a/jaxws/src/java.activation/share/classes/META-INF/mimetypes.default b/jaxws/src/java.activation/share/classes/META-INF/mimetypes.default
index 0c22eb2efb8..1b4056b194f 100644
--- a/jaxws/src/java.activation/share/classes/META-INF/mimetypes.default
+++ b/jaxws/src/java.activation/share/classes/META-INF/mimetypes.default
@@ -7,6 +7,7 @@ image/gif gif GIF
image/ief ief
image/jpeg jpeg jpg jpe JPG
image/tiff tiff tif
+image/png png PNG
image/x-xwindowdump xwd
application/postscript ai eps ps
application/rtf rtf
diff --git a/jaxws/src/java.activation/share/classes/module-info.java b/jaxws/src/java.activation/share/classes/module-info.java
index 00d40e18550..9477d19acc9 100644
--- a/jaxws/src/java.activation/share/classes/module-info.java
+++ b/jaxws/src/java.activation/share/classes/module-info.java
@@ -25,6 +25,8 @@
/**
* Defines the JavaBeans Activation Framework (JAF) API.
+ *
+ * @since 9
*/
module java.activation {
requires transitive java.datatransfer;
diff --git a/jaxws/src/java.xml.bind/share/classes/com/sun/istack/internal/localization/Localizable.java b/jaxws/src/java.xml.bind/share/classes/com/sun/istack/internal/localization/Localizable.java
index 2f4da84f319..0406d5b4c6b 100644
--- a/jaxws/src/java.xml.bind/share/classes/com/sun/istack/internal/localization/Localizable.java
+++ b/jaxws/src/java.xml.bind/share/classes/com/sun/istack/internal/localization/Localizable.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -54,9 +54,7 @@ public interface Localizable {
public Object[] getArguments();
public String getResourceBundleName();
- public default ResourceBundle getResourceBundle(Locale locale) {
- return null;
- }
+ public ResourceBundle getResourceBundle(Locale locale);
/**
* Special constant that represents a message that
diff --git a/jaxws/src/java.xml.bind/share/classes/com/sun/istack/internal/localization/LocalizableMessage.java b/jaxws/src/java.xml.bind/share/classes/com/sun/istack/internal/localization/LocalizableMessage.java
index 1d7ace5146c..747110e350f 100644
--- a/jaxws/src/java.xml.bind/share/classes/com/sun/istack/internal/localization/LocalizableMessage.java
+++ b/jaxws/src/java.xml.bind/share/classes/com/sun/istack/internal/localization/LocalizableMessage.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -31,6 +31,7 @@ import java.util.Arrays;
import java.util.Locale;
import java.util.ResourceBundle;
+
/**
* @author WS Development Team
*/
@@ -42,13 +43,9 @@ public final class LocalizableMessage implements Localizable {
private final String _key;
private final Object[] _args;
+ @Deprecated
public LocalizableMessage(String bundlename, String key, Object... args) {
- _bundlename = bundlename;
- _rbSupplier = null;
- _key = key;
- if(args==null)
- args = new Object[0];
- _args = args;
+ this(bundlename, null, key, args);
}
public LocalizableMessage(String bundlename, ResourceBundleSupplier rbSupplier,
@@ -61,15 +58,17 @@ public final class LocalizableMessage implements Localizable {
_args = args;
}
-
+ @Override
public String getKey() {
return _key;
}
+ @Override
public Object[] getArguments() {
return Arrays.copyOf(_args, _args.length);
}
+ @Override
public String getResourceBundleName() {
return _bundlename;
}
diff --git a/jaxws/src/java.xml.bind/share/classes/com/sun/istack/internal/localization/LocalizableMessageFactory.java b/jaxws/src/java.xml.bind/share/classes/com/sun/istack/internal/localization/LocalizableMessageFactory.java
index bf8a28b76f3..e4d5a126962 100644
--- a/jaxws/src/java.xml.bind/share/classes/com/sun/istack/internal/localization/LocalizableMessageFactory.java
+++ b/jaxws/src/java.xml.bind/share/classes/com/sun/istack/internal/localization/LocalizableMessageFactory.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -36,6 +36,7 @@ public class LocalizableMessageFactory {
private final String _bundlename;
private final ResourceBundleSupplier _rbSupplier;
+ @Deprecated
public LocalizableMessageFactory(String bundlename) {
_bundlename = bundlename;
_rbSupplier = null;
@@ -58,4 +59,5 @@ public class LocalizableMessageFactory {
*/
ResourceBundle getResourceBundle(Locale locale);
}
+
}
diff --git a/jaxws/src/java.xml.bind/share/classes/com/sun/istack/internal/localization/Localizer.java b/jaxws/src/java.xml.bind/share/classes/com/sun/istack/internal/localization/Localizer.java
index 2f78673eab0..a0436beafa1 100644
--- a/jaxws/src/java.xml.bind/share/classes/com/sun/istack/internal/localization/Localizer.java
+++ b/jaxws/src/java.xml.bind/share/classes/com/sun/istack/internal/localization/Localizer.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -25,7 +25,6 @@
package com.sun.istack.internal.localization;
-import com.sun.istack.internal.localization.LocalizableMessageFactory.ResourceBundleSupplier;
import java.text.MessageFormat;
import java.util.HashMap;
import java.util.Locale;
@@ -41,7 +40,7 @@ import java.util.ResourceBundle;
public class Localizer {
private final Locale _locale;
- private final HashMap _resourceBundles;
+ private final HashMap _resourceBundles;
public Localizer() {
this(Locale.getDefault());
@@ -49,7 +48,7 @@ public class Localizer {
public Localizer(Locale l) {
_locale = l;
- _resourceBundles = new HashMap();
+ _resourceBundles = new HashMap<>();
}
public Locale getLocale() {
diff --git a/jaxws/src/java.xml.bind/share/classes/com/sun/istack/internal/localization/NullLocalizable.java b/jaxws/src/java.xml.bind/share/classes/com/sun/istack/internal/localization/NullLocalizable.java
index e0fb44621f4..f9f0b7abe09 100644
--- a/jaxws/src/java.xml.bind/share/classes/com/sun/istack/internal/localization/NullLocalizable.java
+++ b/jaxws/src/java.xml.bind/share/classes/com/sun/istack/internal/localization/NullLocalizable.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -25,6 +25,9 @@
package com.sun.istack.internal.localization;
+import java.util.Locale;
+import java.util.ResourceBundle;
+
/**
* {@link Localizable} that wraps a non-localizable string.
*
@@ -39,13 +42,20 @@ public final class NullLocalizable implements Localizable {
this.msg = msg;
}
+ @Override
public String getKey() {
return Localizable.NOT_LOCALIZABLE;
}
+ @Override
public Object[] getArguments() {
return new Object[]{msg};
}
+ @Override
public String getResourceBundleName() {
return "";
}
+ @Override
+ public ResourceBundle getResourceBundle(Locale locale) {
+ return null;
+ }
}
diff --git a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/api/JAXBRIContext.java b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/api/JAXBRIContext.java
index a27f0825fe8..fcf907d88ee 100644
--- a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/api/JAXBRIContext.java
+++ b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/api/JAXBRIContext.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -533,4 +533,14 @@ public abstract class JAXBRIContext extends JAXBContext {
* @since 2.2.6
*/
public static final String DISABLE_XML_SECURITY = "com.sun.xml.internal.bind.disableXmlSecurity";
+
+ /**
+ * If true and element namespace is not specified, namespace of parent element will be used.
+ * The default value is false.
+ *
+ * Boolean
+ * @since 2.3.0
+ */
+ public static final String BACKUP_WITH_PARENT_NAMESPACE = "com.sun.xml.internal.bind.backupWithParentNamespace";
+
}
diff --git a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/ContextFactory.java b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/ContextFactory.java
index a18f79e1d58..73fe277419f 100644
--- a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/ContextFactory.java
+++ b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/ContextFactory.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -112,6 +112,8 @@ public class ContextFactory {
"is not active. Using JAXB's implementation");
}
+ Boolean backupWithParentNamespace = getPropertyValue(properties, JAXBRIContext.BACKUP_WITH_PARENT_NAMESPACE, Boolean.class);
+
RuntimeAnnotationReader ar = getPropertyValue(properties,JAXBRIContext.ANNOTATION_READER,RuntimeAnnotationReader.class);
Collection tr = getPropertyValue(properties, JAXBRIContext.TYPE_REFERENCES, Collection.class);
@@ -144,6 +146,7 @@ public class ContextFactory {
builder.setSupressAccessorWarnings(supressAccessorWarnings);
builder.setImprovedXsiTypeHandling(improvedXsiTypeHandling);
builder.setDisableSecurityProcessing(disablesecurityProcessing);
+ builder.setBackupWithParentNamespace(backupWithParentNamespace);
return builder.build();
}
diff --git a/jdk/src/jdk.desktop/share/classes/module-info.java b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/bytecode/package-info.java
similarity index 86%
rename from jdk/src/jdk.desktop/share/classes/module-info.java
rename to jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/bytecode/package-info.java
index 2aac00da299..848316f6c53 100644
--- a/jdk/src/jdk.desktop/share/classes/module-info.java
+++ b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/bytecode/package-info.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -23,12 +23,7 @@
* questions.
*/
-/*
- * Provides non-SE desktop APIs.
+/**
+ * Code that deals with low level byte code manipulation.
*/
-
-module jdk.desktop {
- requires transitive java.desktop;
-
- exports jdk.awt;
-}
+package com.sun.xml.internal.bind.v2.bytecode;
diff --git a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/bytecode/package.html b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/bytecode/package.html
deleted file mode 100644
index 092f6f3e5d2..00000000000
--- a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/bytecode/package.html
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
-
-
- Code that deals with low level byte code manipulation.
-
-
diff --git a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/model/annotation/package-info.java b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/model/annotation/package-info.java
new file mode 100644
index 00000000000..40328931c18
--- /dev/null
+++ b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/model/annotation/package-info.java
@@ -0,0 +1,29 @@
+/*
+ * 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. 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.
+ */
+
+/**
+ * Abstraction around reading annotations, to support internal/external annotations.
+ */
+package com.sun.xml.internal.bind.v2.model.annotation;
diff --git a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/model/annotation/package.html b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/model/annotation/package.html
deleted file mode 100644
index acc9be725ab..00000000000
--- a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/model/annotation/package.html
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
-
- Abstraction around reading annotations, to support internal/external annotations.
-
diff --git a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/model/core/ErrorHandler.java b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/model/core/ErrorHandler.java
index 5b97093d3fd..c584056f611 100644
--- a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/model/core/ErrorHandler.java
+++ b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/model/core/ErrorHandler.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -29,24 +29,25 @@ import com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationException;
/**
* listen to static errors found during building a JAXB model from a set of classes.
- * Implemented by the client of {@link com.sun.xml.internal.bind.v2.model.impl.ModelBuilder}.
+ * Implemented by the client of {@link com.sun.xml.internal.bind.v2.model.impl.ModelBuilderI}.
*
*
* All the static errors have to be reported while constructing a
- * model, not when a model is used (IOW, until the {@link com.sun.xml.internal.bind.v2.model.impl.ModelBuilder#link} completes.
- * Internally, {@link com.sun.xml.internal.bind.v2.model.impl.ModelBuilder} wraps an {@link ErrorHandler} and all the model
+ * model, not when a model is used (IOW, until the {@link com.sun.xml.internal.bind.v2.model.impl.ModelBuilderI} completes.
+ * Internally, {@link com.sun.xml.internal.bind.v2.model.impl.ModelBuilderI} wraps an {@link ErrorHandler} and all the model
* components should report errors through it.
*
*
* {@link IllegalAnnotationException} is a checked exception to remind
* the model classes to report it rather than to throw it.
*
- * @see com.sun.xml.internal.bind.v2.model.impl.ModelBuilder
+ * @see com.sun.xml.internal.bind.v2.model.impl.ModelBuilderI
* @author Kohsuke Kawaguchi
*/
public interface ErrorHandler {
/**
* Receives a notification for an error in the annotated code.
+ * @param e
*/
void error( IllegalAnnotationException e );
}
diff --git a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/model/core/PropertyKind.java b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/model/core/PropertyKind.java
index c3406b7da6f..83caf8f4f04 100644
--- a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/model/core/PropertyKind.java
+++ b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/model/core/PropertyKind.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -57,7 +57,7 @@ public enum PropertyKind {
public final boolean isOrdered;
/**
- * {@link com.sun.xml.internal.bind.v2.runtime.property.PropertyFactory} benefits from having index numbers assigned to
+ * {@code com.sun.xml.internal.bind.v2.runtime.property.PropertyFactory} benefits from having index numbers assigned to
* {@link #ELEMENT}, {@link #REFERENCE}, and {@link #MAP} in this order.
*/
public final int propertyIndex;
diff --git a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/model/core/RegistryInfo.java b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/model/core/RegistryInfo.java
index 794c3396d25..9bfe5e04209 100644
--- a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/model/core/RegistryInfo.java
+++ b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/model/core/RegistryInfo.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -34,18 +34,22 @@ import javax.xml.bind.annotation.XmlRegistry;
*
*
* This interface is only meant to be used as a return type from
- * {@link com.sun.xml.internal.bind.v2.model.impl.ModelBuilder}.
+ * {@link com.sun.xml.internal.bind.v2.model.impl.ModelBuilderI}.
*
* @author Kohsuke Kawaguchi
+ * @param
+ * @param
*/
public interface RegistryInfo {
/**
* Returns all the references to other types in this registry.
+ * @return
*/
Set> getReferences();
/**
* Returns the class with {@link XmlRegistry}.
+ * @return
*/
C getClazz();
}
diff --git a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/model/impl/package-info.java b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/model/impl/package-info.java
new file mode 100644
index 00000000000..68abc10902c
--- /dev/null
+++ b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/model/impl/package-info.java
@@ -0,0 +1,29 @@
+/*
+ * 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. 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.
+ */
+
+/**
+ * Implementation of the com.sun.xml.internal.bind.j2s.model package.
+ */
+package com.sun.xml.internal.bind.v2.model.impl;
diff --git a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/model/impl/package.html b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/model/impl/package.html
deleted file mode 100644
index e37eebd2ac4..00000000000
--- a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/model/impl/package.html
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
-
-
-Implementation of the com.sun.xml.internal.bind.j2s.model package.
-
-
diff --git a/jaxws/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/SOAPDocumentFragment.java b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/model/nav/package-info.java
similarity index 68%
rename from jaxws/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/SOAPDocumentFragment.java
rename to jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/model/nav/package-info.java
index 1ffe4fffceb..ea3b945f33c 100644
--- a/jaxws/src/java.xml.ws/share/classes/com/sun/xml/internal/messaging/saaj/soap/SOAPDocumentFragment.java
+++ b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/model/nav/package-info.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * 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
@@ -24,22 +24,6 @@
*/
/**
-*
-* @author SAAJ RI Development Team
-*/
-package com.sun.xml.internal.messaging.saaj.soap;
-
-import com.sun.org.apache.xerces.internal.dom.CoreDocumentImpl;
-import com.sun.org.apache.xerces.internal.dom.DocumentFragmentImpl;
-
-public class SOAPDocumentFragment extends DocumentFragmentImpl {
-
- public SOAPDocumentFragment(CoreDocumentImpl ownerDoc) {
- super(ownerDoc);
- }
-
- public SOAPDocumentFragment() {
- super();
- }
-
-}
+ * Abstraction around the reflection library, to support various reflection models (such as java.lang.reflect and Annotation Processing).
+ */
+package com.sun.xml.internal.bind.v2.model.nav;
diff --git a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/model/nav/package.html b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/model/nav/package.html
deleted file mode 100644
index 319f86c97b9..00000000000
--- a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/model/nav/package.html
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
-
- Abstraction around the reflection library, to support various reflection models (such as java.lang.reflect and Annotation Processing).
-
diff --git a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/JAXBContextImpl.java b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/JAXBContextImpl.java
index 3c918598348..5a03996782a 100644
--- a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/JAXBContextImpl.java
+++ b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/JAXBContextImpl.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -241,6 +241,16 @@ public final class JAXBContextImpl extends JAXBRIContext {
private Set xmlNsSet = null;
+ /**
+ * If true, despite the specification, unmarshall child element with parent namespace, if child namespace is not specified.
+ * The default value is null for System {code}com.sun.xml.internal.bind.backupWithParentNamespace{code} property to be used,
+ * and false is assumed if it's not set either.
+ *
+ * Boolean
+ * @since 2.3.0
+ */
+ public Boolean backupWithParentNamespace = null;
+
/**
* Returns declared XmlNs annotations (from package-level annotation XmlSchema
*
@@ -263,6 +273,7 @@ public final class JAXBContextImpl extends JAXBRIContext {
this.supressAccessorWarnings = builder.supressAccessorWarnings;
this.improvedXsiTypeHandling = builder.improvedXsiTypeHandling;
this.disableSecurityProcessing = builder.disableSecurityProcessing;
+ this.backupWithParentNamespace = builder.backupWithParentNamespace;
Collection typeRefs = builder.typeRefs;
@@ -1024,6 +1035,7 @@ public final class JAXBContextImpl extends JAXBRIContext {
private boolean allNillable;
private boolean improvedXsiTypeHandling = true;
private boolean disableSecurityProcessing = true;
+ private Boolean backupWithParentNamespace = null; // null for System property to be used
public JAXBContextBuilder() {};
@@ -1039,6 +1051,7 @@ public final class JAXBContextImpl extends JAXBRIContext {
this.xmlAccessorFactorySupport = baseImpl.xmlAccessorFactorySupport;
this.allNillable = baseImpl.allNillable;
this.disableSecurityProcessing = baseImpl.disableSecurityProcessing;
+ this.backupWithParentNamespace = baseImpl.backupWithParentNamespace;
}
public JAXBContextBuilder setRetainPropertyInfo(boolean val) {
@@ -1101,6 +1114,11 @@ public final class JAXBContextImpl extends JAXBRIContext {
return this;
}
+ public JAXBContextBuilder setBackupWithParentNamespace(Boolean backupWithParentNamespace) {
+ this.backupWithParentNamespace = backupWithParentNamespace;
+ return this;
+ }
+
public JAXBContextImpl build() throws JAXBException {
// fool-proof
diff --git a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/package-info.java b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/package-info.java
new file mode 100644
index 00000000000..3ae977b9d19
--- /dev/null
+++ b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/package-info.java
@@ -0,0 +1,29 @@
+/*
+ * 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. 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.
+ */
+
+/**
+ * Code that implements JAXBContext, Unmarshaller, and Marshaller.
+ */
+package com.sun.xml.internal.bind.v2.runtime;
diff --git a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/package.html b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/package.html
deleted file mode 100644
index 2c45e53176e..00000000000
--- a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/package.html
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
-
-
-Code that implements JAXBContext, Unmarshaller, and Marshaller.
-
-
diff --git a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/reflect/opt/AccessorInjector.java b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/reflect/opt/AccessorInjector.java
index 1be59952231..d2154319c48 100644
--- a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/reflect/opt/AccessorInjector.java
+++ b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/reflect/opt/AccessorInjector.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -39,7 +39,7 @@ class AccessorInjector {
private static final Logger logger = Util.getClassLogger();
- protected static final boolean noOptimize = Runtime.version().major() >= 9 ||
+ protected static final boolean noOptimize =
Util.getSystemProperty(ClassTailor.class.getName()+".noOptimize")!=null;
static {
diff --git a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/reflect/opt/Injector.java b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/reflect/opt/Injector.java
index 17c99557d9f..9e00016d7e9 100644
--- a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/reflect/opt/Injector.java
+++ b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/reflect/opt/Injector.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -40,6 +40,11 @@ import java.util.logging.Logger;
import com.sun.xml.internal.bind.Util;
import com.sun.xml.internal.bind.v2.runtime.reflect.Accessor;
+import java.lang.reflect.Field;
+import java.security.CodeSource;
+import java.security.PrivilegedActionException;
+import java.security.PrivilegedExceptionAction;
+import java.security.ProtectionDomain;
/**
* A {@link ClassLoader} used to "inject" optimized accessor classes
@@ -131,7 +136,7 @@ final class Injector {
/**
* Injected classes keyed by their names.
*/
- private final Map classes = new HashMap();
+ private final Map classes = new HashMap<>();
private final ReentrantReadWriteLock rwl = new ReentrantReadWriteLock();
private final Lock r = rwl.readLock();
private final Lock w = rwl.writeLock();
@@ -141,26 +146,59 @@ final class Injector {
* False otherwise, which happens if this classloader can't see {@link Accessor}.
*/
private final boolean loadable;
- private static final Method defineClass;
- private static final Method resolveClass;
- private static final Method findLoadedClass;
+ private static Method defineClass;
+ private static Method resolveClass;
+ private static Method findLoadedClass;
+ private static Object U;
static {
- Method[] m = AccessController.doPrivileged(
- new PrivilegedAction() {
- @Override
- public Method[] run() {
- return new Method[]{
- getMethod(ClassLoader.class, "defineClass", String.class, byte[].class, Integer.TYPE, Integer.TYPE),
- getMethod(ClassLoader.class, "resolveClass", Class.class),
- getMethod(ClassLoader.class, "findLoadedClass", String.class)
- };
- }
+ try {
+ Method[] m = AccessController.doPrivileged(
+ new PrivilegedAction() {
+ @Override
+ public Method[] run() {
+ return new Method[]{
+ getMethod(ClassLoader.class, "defineClass", String.class, byte[].class, Integer.TYPE, Integer.TYPE),
+ getMethod(ClassLoader.class, "resolveClass", Class.class),
+ getMethod(ClassLoader.class, "findLoadedClass", String.class)
+ };
}
- );
- defineClass = m[0];
- resolveClass = m[1];
- findLoadedClass = m[2];
+ }
+ );
+ defineClass = m[0];
+ resolveClass = m[1];
+ findLoadedClass = m[2];
+ } catch (Throwable t) {
+ try {
+ U = AccessController.doPrivileged(new PrivilegedExceptionAction() {
+ @Override
+ public Object run() throws Exception {
+ Class u = Class.forName("sun.misc.Unsafe");
+ Field theUnsafe = u.getDeclaredField("theUnsafe");
+ theUnsafe.setAccessible(true);
+ return theUnsafe.get(null);
+ }
+ });
+ defineClass = AccessController.doPrivileged(new PrivilegedExceptionAction() {
+ @Override
+ public Method run() throws Exception {
+ try {
+ return U.getClass().getMethod("defineClass",
+ new Class[]{String.class,
+ byte[].class,
+ Integer.TYPE,
+ Integer.TYPE,
+ ClassLoader.class,
+ ProtectionDomain.class});
+ } catch (NoSuchMethodException | SecurityException ex) {
+ throw ex;
+ }
+ }
+ });
+ } catch (SecurityException | PrivilegedActionException ex) {
+ Logger.getLogger(Injector.class.getName()).log(Level.SEVERE, null, ex);
+ }
+ }
}
private static Method getMethod(final Class> c, final String methodname, final Class>... params) {
@@ -210,13 +248,11 @@ final class Injector {
rlocked = false;
//find loaded class from classloader
- if (c == null) {
+ if (c == null && findLoadedClass != null) {
try {
c = (Class) findLoadedClass.invoke(parent, className.replace('/', '.'));
- } catch (IllegalArgumentException e) {
- logger.log(Level.FINE, "Unable to find " + className, e);
- } catch (IllegalAccessException e) {
+ } catch (IllegalArgumentException | IllegalAccessException e) {
logger.log(Level.FINE, "Unable to find " + className, e);
} catch (InvocationTargetException e) {
Throwable t = e.getTargetException();
@@ -253,9 +289,13 @@ final class Injector {
// we need to inject a class into the
try {
- c = (Class) defineClass.invoke(parent, className.replace('/', '.'), image, 0, image.length);
- resolveClass.invoke(parent, c);
- } catch (IllegalAccessException e) {
+ if (resolveClass != null) {
+ c = (Class) defineClass.invoke(parent, className.replace('/', '.'), image, 0, image.length);
+ resolveClass.invoke(parent, c);
+ } else {
+ c = (Class) defineClass.invoke(U, className.replace('/', '.'), image, 0, image.length, parent, Injector.class.getProtectionDomain());
+ }
+ } catch (IllegalAccessException e) {
logger.log(Level.FINE, "Unable to inject " + className, e);
return null;
} catch (InvocationTargetException e) {
diff --git a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/reflect/opt/package-info.java b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/reflect/opt/package-info.java
new file mode 100644
index 00000000000..70ae20ccdd9
--- /dev/null
+++ b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/reflect/opt/package-info.java
@@ -0,0 +1,36 @@
+/*
+ * 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. 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.
+ */
+
+/**
+ * Hosts optimized
+ * {@link com.sun.xml.internal.bind.v2.runtime.reflect.Accessor},
+ * {@link com.sun.xml.internal.bind.v2.runtime.reflect.TransducedAccessor}, and {@link com.sun.xml.internal.bind.v2.runtime.Transducer}.
+ *
+ *
How it works
+ *
+ * Most of the classes in this package are "templates." At run-time, A template class file is slightly modified to match
+ * the target Java Bean, then it will be loaded into the VM.
+ */
+package com.sun.xml.internal.bind.v2.runtime.reflect.opt;
diff --git a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/reflect/opt/package.html b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/reflect/opt/package.html
deleted file mode 100644
index 9039ffafb01..00000000000
--- a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/reflect/opt/package.html
+++ /dev/null
@@ -1,39 +0,0 @@
-
-
-
- Most of the classes in this package are "templates." At run-time,
- A template class file is slightly modified to match the target Java Bean,
- then it will be loaded into the VM.
-
diff --git a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/reflect/package-info.java b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/reflect/package-info.java
new file mode 100644
index 00000000000..35dfd4abe9d
--- /dev/null
+++ b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/reflect/package-info.java
@@ -0,0 +1,29 @@
+/*
+ * 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. 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.
+ */
+
+/**
+ * Abstraction around accessing data of actual objects.
+ */
+package com.sun.xml.internal.bind.v2.runtime.reflect;
diff --git a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/reflect/package.html b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/reflect/package.html
deleted file mode 100644
index 36c5c915cf8..00000000000
--- a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/reflect/package.html
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
-
- Abstraction around accessing data of actual objects.
-
diff --git a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/LocatorEx.java b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/LocatorEx.java
index d1e67292e4e..8ae68be34c0 100644
--- a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/LocatorEx.java
+++ b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/LocatorEx.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -33,7 +33,7 @@ import org.xml.sax.Locator;
import org.w3c.dom.Node;
/**
- * Object that returns the current location that the {@link com.sun.xml.internal.bind.v2.runtime.unmarshaller.XmlVisitor}
+ * Object that returns the current location that the {@code com.sun.xml.internal.bind.v2.runtime.unmarshaller.XmlVisitor}
* is parsing.
*
* @author Kohsuke Kawaguchi
@@ -41,6 +41,7 @@ import org.w3c.dom.Node;
public interface LocatorEx extends Locator {
/**
* Gets the current location in a {@link ValidationEventLocator} object.
+ * @return
*/
ValidationEventLocator getLocation();
diff --git a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/StructureLoader.java b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/StructureLoader.java
index 9becb9dd086..8141e4e5178 100644
--- a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/StructureLoader.java
+++ b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/unmarshaller/StructureLoader.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -31,7 +31,9 @@ import java.util.Map;
import javax.xml.namespace.QName;
+import com.sun.xml.internal.bind.Util;
import com.sun.xml.internal.bind.api.AccessorException;
+import com.sun.xml.internal.bind.api.JAXBRIContext;
import com.sun.xml.internal.bind.v2.WellKnownNamespace;
import com.sun.xml.internal.bind.v2.runtime.ClassBeanInfoImpl;
import com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl;
@@ -231,11 +233,26 @@ public final class StructureLoader extends Loader {
@Override
public void childElement(UnmarshallingContext.State state, TagName arg) throws SAXException {
ChildLoader child = childUnmarshallers.get(arg.uri,arg.local);
- if (child == null) {
- child = catchAll;
- if (child==null) {
- super.childElement(state,arg);
- return;
+ if(child == null) {
+ Boolean backupWithParentNamespace = ((JAXBContextImpl) state.getContext().getJAXBContext()).backupWithParentNamespace;
+ backupWithParentNamespace = backupWithParentNamespace != null
+ ? backupWithParentNamespace
+ : Boolean.parseBoolean(Util.getSystemProperty(JAXBRIContext.BACKUP_WITH_PARENT_NAMESPACE));
+ if ((beanInfo != null) && (beanInfo.getTypeNames() != null) && backupWithParentNamespace) {
+ Iterator> typeNamesIt = beanInfo.getTypeNames().iterator();
+ QName parentQName = null;
+ if ((typeNamesIt != null) && (typeNamesIt.hasNext()) && (catchAll == null)) {
+ parentQName = (QName) typeNamesIt.next();
+ String parentUri = parentQName.getNamespaceURI();
+ child = childUnmarshallers.get(parentUri, arg.local);
+ }
+ }
+ if (child == null) {
+ child = catchAll;
+ if(child==null) {
+ super.childElement(state,arg);
+ return;
+ }
}
}
diff --git a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/schemagen/xmlschema/package-info.java b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/schemagen/xmlschema/package-info.java
index fbe7ff55cb5..f7b434e49d8 100644
--- a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/schemagen/xmlschema/package-info.java
+++ b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/schemagen/xmlschema/package-info.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 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
@@ -23,5 +23,8 @@
* questions.
*/
+/**
+ * XML Schema writer generated by TXW.
+ */
@com.sun.xml.internal.txw2.annotation.XmlNamespace("http://www.w3.org/2001/XMLSchema")
package com.sun.xml.internal.bind.v2.schemagen.xmlschema;
diff --git a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/schemagen/xmlschema/package.html b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/schemagen/xmlschema/package.html
deleted file mode 100644
index cce3c1b8ebf..00000000000
--- a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/schemagen/xmlschema/package.html
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
-
-
-XML Schema writer generated by TXW.
-
-
diff --git a/jaxws/src/java.xml.bind/share/classes/javax/xml/bind/ContextFinder.java b/jaxws/src/java.xml.bind/share/classes/javax/xml/bind/ContextFinder.java
index d31a1cbe0d7..d59b0e40471 100644
--- a/jaxws/src/java.xml.bind/share/classes/javax/xml/bind/ContextFinder.java
+++ b/jaxws/src/java.xml.bind/share/classes/javax/xml/bind/ContextFinder.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -158,7 +158,7 @@ class ContextFinder {
Class spFactory = ServiceLoaderUtil.safeLoadClass(className, PLATFORM_DEFAULT_FACTORY_CLASS, classLoader);
return newInstance(contextPath, spFactory, classLoader, properties);
} catch (ClassNotFoundException x) {
- throw new JAXBException(Messages.format(Messages.PROVIDER_NOT_FOUND, className), x);
+ throw new JAXBException(Messages.format(Messages.DEFAULT_PROVIDER_NOT_FOUND), x);
} catch (RuntimeException | JAXBException x) {
// avoid wrapping RuntimeException to JAXBException,
@@ -228,7 +228,7 @@ class ContextFinder {
}
}
- private static Object instantiateProviderIfNecessary(Class> implClass) throws JAXBException {
+ private static Object instantiateProviderIfNecessary(final Class> implClass) throws JAXBException {
try {
if (JAXBContextFactory.class.isAssignableFrom(implClass)) {
return AccessController.doPrivileged(new PrivilegedExceptionAction