diff --git a/agent/src/share/classes/com/sun/java/swing/action/ActionManager.java b/agent/src/share/classes/com/sun/java/swing/action/ActionManager.java index 751d4a63114d4d6022298fb6e94e42bcb566bde1..7da5b6534caa5d7907e11cd7af9a5659d24a5a28 100644 --- a/agent/src/share/classes/com/sun/java/swing/action/ActionManager.java +++ b/agent/src/share/classes/com/sun/java/swing/action/ActionManager.java @@ -46,6 +46,11 @@ public abstract class ActionManager return manager; } + protected static void setInstance(ActionManager m) + { + manager = m; + } + protected abstract void addActions(); protected void addAction(String cmdname, Action action) @@ -90,6 +95,6 @@ public abstract class ActionManager private HashMap actions; private static ActionUtilities utilities = new ActionUtilities(); - protected static ActionManager manager; + private static ActionManager manager; } diff --git a/agent/src/share/classes/sun/jvm/hotspot/ui/action/HSDBActionManager.java b/agent/src/share/classes/sun/jvm/hotspot/ui/action/HSDBActionManager.java index f234231e3630d8cd272e2b3e2b490f280daef20d..1ebcb1b38823ff8c9bfe2fc30a08ec76abc8912d 100644 --- a/agent/src/share/classes/sun/jvm/hotspot/ui/action/HSDBActionManager.java +++ b/agent/src/share/classes/sun/jvm/hotspot/ui/action/HSDBActionManager.java @@ -32,10 +32,12 @@ import com.sun.java.swing.action.ActionManager; public class HSDBActionManager extends ActionManager { public static ActionManager getInstance() { - if (manager == null) { - manager = new HSDBActionManager(); + ActionManager m = ActionManager.getInstance(); + if (m == null) { + m = new HSDBActionManager(); + ActionManager.setInstance(m); } - return manager; + return m; } protected void addActions() { diff --git a/make/hotspot_version b/make/hotspot_version index a3115f70a997c0d6be1c79aa1da355e37c00a82e..1c61e0807df71a3d3689c61f270c871e3242f880 100644 --- a/make/hotspot_version +++ b/make/hotspot_version @@ -35,7 +35,7 @@ HOTSPOT_VM_COPYRIGHT=Copyright 2015 HS_MAJOR_VER=25 HS_MINOR_VER=60 -HS_BUILD_NUMBER=09 +HS_BUILD_NUMBER=10 JDK_MAJOR_VER=1 JDK_MINOR_VER=8 diff --git a/src/cpu/zero/vm/cppInterpreter_zero.cpp b/src/cpu/zero/vm/cppInterpreter_zero.cpp index 9272724addcc49c4f703c1cf3d12e082ae9f59df..4de3dae32ac465a0d93ba872bd6c2c430ddf3111 100644 --- a/src/cpu/zero/vm/cppInterpreter_zero.cpp +++ b/src/cpu/zero/vm/cppInterpreter_zero.cpp @@ -730,7 +730,7 @@ InterpreterFrame *InterpreterFrame::build(Method* const method, TRAPS) { if (method->is_static()) object = method->constants()->pool_holder()->java_mirror(); else - object = (oop) locals[0]; + object = (oop) (void*)locals[0]; monitor->set_obj(object); } diff --git a/src/cpu/zero/vm/frame_zero.inline.hpp b/src/cpu/zero/vm/frame_zero.inline.hpp index 8c968599864790e437f30243f51468bbf52c7aed..45368f625596b56786796b2230d8842bd2382fbe 100644 --- a/src/cpu/zero/vm/frame_zero.inline.hpp +++ b/src/cpu/zero/vm/frame_zero.inline.hpp @@ -26,6 +26,8 @@ #ifndef CPU_ZERO_VM_FRAME_ZERO_INLINE_HPP #define CPU_ZERO_VM_FRAME_ZERO_INLINE_HPP +#include "code/codeCache.hpp" + // Constructors inline frame::frame() { diff --git a/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp b/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp index 52090b8bc38aab9a2ce7023f200a50986ac1395a..668dee06b795a7830c3b16b03df00040bcb0f003 100644 --- a/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp +++ b/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp @@ -6017,56 +6017,68 @@ void G1CollectedHeap::check_bitmaps(const char* caller) { guarantee(!cl.failures(), "bitmap verification"); } -bool G1CollectedHeap::check_cset_fast_test() { - bool failures = false; - for (uint i = 0; i < _hrm.length(); i += 1) { - HeapRegion* hr = _hrm.at(i); - InCSetState cset_state = (InCSetState) _in_cset_fast_test.get_by_index((uint) i); +class G1CheckCSetFastTableClosure : public HeapRegionClosure { + private: + bool _failures; + public: + G1CheckCSetFastTableClosure() : HeapRegionClosure(), _failures(false) { } + + virtual bool doHeapRegion(HeapRegion* hr) { + uint i = hr->hrm_index(); + InCSetState cset_state = (InCSetState) G1CollectedHeap::heap()->_in_cset_fast_test.get_by_index(i); if (hr->isHumongous()) { if (hr->in_collection_set()) { gclog_or_tty->print_cr("\n## humongous region %u in CSet", i); - failures = true; - break; + _failures = true; + return true; } if (cset_state.is_in_cset()) { gclog_or_tty->print_cr("\n## inconsistent cset state %d for humongous region %u", cset_state.value(), i); - failures = true; - break; + _failures = true; + return true; } if (hr->continuesHumongous() && cset_state.is_humongous()) { gclog_or_tty->print_cr("\n## inconsistent cset state %d for continues humongous region %u", cset_state.value(), i); - failures = true; - break; + _failures = true; + return true; } } else { if (cset_state.is_humongous()) { gclog_or_tty->print_cr("\n## inconsistent cset state %d for non-humongous region %u", cset_state.value(), i); - failures = true; - break; + _failures = true; + return true; } if (hr->in_collection_set() != cset_state.is_in_cset()) { gclog_or_tty->print_cr("\n## in CSet %d / cset state %d inconsistency for region %u", hr->in_collection_set(), cset_state.value(), i); - failures = true; - break; + _failures = true; + return true; } if (cset_state.is_in_cset()) { if (hr->is_young() != (cset_state.is_young())) { gclog_or_tty->print_cr("\n## is_young %d / cset state %d inconsistency for region %u", hr->is_young(), cset_state.value(), i); - failures = true; - break; + _failures = true; + return true; } if (hr->is_old() != (cset_state.is_old())) { gclog_or_tty->print_cr("\n## is_old %d / cset state %d inconsistency for region %u", hr->is_old(), cset_state.value(), i); - failures = true; - break; + _failures = true; + return true; } } } + return false; } - return !failures; + + bool failures() const { return _failures; } +}; + +bool G1CollectedHeap::check_cset_fast_test() { + G1CheckCSetFastTableClosure cl; + _hrm.iterate(&cl); + return !cl.failures(); } #endif // PRODUCT diff --git a/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp b/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp index a19cb6eff22dfb2ca61dd5d1686d565fbffcf618..72ee3ee0783f8ce0104e2f7aefdf423ee0f3f6dd 100644 --- a/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp +++ b/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp @@ -213,6 +213,9 @@ class G1CollectedHeap : public SharedHeap { // Other related classes. friend class G1MarkSweep; + // Testing classes. + friend class G1CheckCSetFastTableClosure; + private: // The one and only G1CollectedHeap, so static functions can find it. static G1CollectedHeap* _g1h; diff --git a/src/share/vm/interpreter/bytecodeInterpreter.cpp b/src/share/vm/interpreter/bytecodeInterpreter.cpp index c846664ba4c30638581171e50f82d9e09b4e8e61..7c6f2e59b1259dac89fc8ad062225965eea25267 100644 --- a/src/share/vm/interpreter/bytecodeInterpreter.cpp +++ b/src/share/vm/interpreter/bytecodeInterpreter.cpp @@ -3432,7 +3432,7 @@ BytecodeInterpreter::print() { tty->print_cr("osr._osr_buf: " INTPTR_FORMAT, (uintptr_t) this->_result._osr._osr_buf); tty->print_cr("osr._osr_entry: " INTPTR_FORMAT, (uintptr_t) this->_result._osr._osr_entry); tty->print_cr("prev_link: " INTPTR_FORMAT, (uintptr_t) this->_prev_link); - tty->print_cr("native_mirror: " INTPTR_FORMAT, (uintptr_t) this->_oop_temp); + tty->print_cr("native_mirror: " INTPTR_FORMAT, (uintptr_t) p2i(this->_oop_temp)); tty->print_cr("stack_base: " INTPTR_FORMAT, (uintptr_t) this->_stack_base); tty->print_cr("stack_limit: " INTPTR_FORMAT, (uintptr_t) this->_stack_limit); tty->print_cr("monitor_base: " INTPTR_FORMAT, (uintptr_t) this->_monitor_base);