OpenJDK / jdk / jdk
changeset 1647:8ec788265903
Merge
author | duke |
---|---|
date | Wed, 05 Jul 2017 16:44:33 +0200 |
parents | 180d45acc127 aa4827d7a611 |
children | 9273c3cfb28e |
files | |
diffstat | 399 files changed, 2408 insertions(+), 1010 deletions(-) [+] |
line wrap: on
line diff
--- a/.hgtags-top-repo Thu Dec 04 11:10:19 2008 -0800 +++ b/.hgtags-top-repo Wed Jul 05 16:44:33 2017 +0200 @@ -15,3 +15,4 @@ cc47a76899ed33a2c513cb688348244c9b5a1288 jdk7-b38 ab523b49de1fc73fefe6855ce1e0349bdbd7af29 jdk7-b39 44be42de6693063fb191989bf0e188de2fa51e7c jdk7-b40 +541bdc5ad32fc33255944d0a044ad992f3d915e8 jdk7-b41
--- a/README-builds.html Thu Dec 04 11:10:19 2008 -0800 +++ b/README-builds.html Wed Jul 05 16:44:33 2017 +0200 @@ -839,7 +839,7 @@ <blockquote> All OpenJDK builds require access to least Ant 1.6.5. The Ant tool is available from the - <a href="http://ant.apache.org/antlibs/bindownload.cgi" target="_blank"> + <a href="http://ant.apache.org" target="_blank"> Ant download site</a>. You should always make sure <tt>ant</tt> is in your PATH, and on Windows you may also need to set
--- a/corba/.hgtags Thu Dec 04 11:10:19 2008 -0800 +++ b/corba/.hgtags Wed Jul 05 16:44:33 2017 +0200 @@ -15,3 +15,4 @@ 08be802754b0296c91a7713b6d85a015dbcd5349 jdk7-b38 55078b6661e286e90387d1d9950bd865f5cc436e jdk7-b39 184e21992f47a8d730df1adc5b21a108f3125489 jdk7-b40 +c90eeda9594ed2983403e2049aed8d503126c62e jdk7-b41
--- a/corba/make/common/Defs-windows.gmk Thu Dec 04 11:10:19 2008 -0800 +++ b/corba/make/common/Defs-windows.gmk Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ # -# Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it
--- a/corba/make/common/shared/Compiler-msvc.gmk Thu Dec 04 11:10:19 2008 -0800 +++ b/corba/make/common/shared/Compiler-msvc.gmk Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ # -# Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it
--- a/hotspot/.hgtags Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/.hgtags Wed Jul 05 16:44:33 2017 +0200 @@ -15,3 +15,4 @@ d9bc824aa078573829bb66572af847e26e1bd12e jdk7-b38 49ca90d77f34571b0757ebfcb8a7848ef2696b88 jdk7-b39 81a0cbe3b28460ce836109934ece03db7afaf9cc jdk7-b40 +f9d938ede1960d18cb7cf23c645b026519c1a678 jdk7-b41
--- a/hotspot/make/hotspot_version Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/make/hotspot_version Wed Jul 05 16:44:33 2017 +0200 @@ -35,7 +35,7 @@ HS_MAJOR_VER=14 HS_MINOR_VER=0 -HS_BUILD_NUMBER=08 +HS_BUILD_NUMBER=09 JDK_MAJOR_VER=1 JDK_MINOR_VER=7
--- a/hotspot/make/windows/build.make Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/make/windows/build.make Wed Jul 05 16:44:33 2017 +0200 @@ -200,29 +200,6 @@ checkSA:: @echo Not building SA: ARCH = ia64 -!elseif exist("$(MSVCDIR)\PlatformSDK\Include\dbgeng.h") -# These don't have to be set because the default -# setting of INCLUDE and LIB already contain the needed dirs. -SA_INCLUDE = -SA_LIB = - -!elseif exist("$(SYSTEMROOT)\..\Program Files\Microsoft SDK\include\dbgeng.h") -# These don't have to be set because the default -# setting of INCLUDE and LIB already contain the needed dirs. -SA_INCLUDE = -SA_LIB = - -!else -checkSA:: - @echo . - @echo ERROR: Can't build SA because dbgeng.h does not exist here: - @echo $(MSVCDIR)\PlatformSDK\Include\dbgeng.h - @echo nor here: - @echo $(SYSTEMROOT)\..\Program Files\Microsoft SDK\include\dbgeng.h - @echo You must use Vis. Studio .Net 2003 on Win 32, and you must - @echo have the Microsoft SDK installed on Win amd64. - @echo You can disable building of SA by specifying BUILD_WIN_SA = 0 - @echo . && false !endif # ! "$(BUILD_WIN_SA)" != "1" #########################################################################
--- a/hotspot/make/windows/makefiles/defs.make Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/make/windows/makefiles/defs.make Wed Jul 05 16:44:33 2017 +0200 @@ -119,7 +119,7 @@ # we want to release it. If we build it here, # the SDK makefiles will copy it over and put it into # the created image. -BUILD_WIN_SA = 0 +BUILD_WIN_SA = 1 ifneq ($(ALT_BUILD_WIN_SA),) BUILD_WIN_SA = $(ALT_BUILD_WIN_SA) endif
--- a/hotspot/make/windows/makefiles/sa.make Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/make/windows/makefiles/sa.make Wed Jul 05 16:44:33 2017 +0200 @@ -49,6 +49,9 @@ default:: $(GENERATED)\sa-jdi.jar +# Remove the space between $(SA_BUILD_VERSION_PROP) and > below as it adds a white space +# at the end of SA version string and causes a version mismatch with the target VM version. + $(GENERATED)\sa-jdi.jar: $(AGENT_FILES1:/=\) $(AGENT_FILES2:/=\) @if not exist $(SA_CLASSDIR) mkdir $(SA_CLASSDIR) @echo ...Building sa-jdi.jar @@ -56,15 +59,15 @@ @$(COMPILE_JAVAC) -source 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -g -d $(SA_CLASSDIR) $(AGENT_FILES1:/=\) @$(COMPILE_JAVAC) -source 1.4 -classpath $(SA_CLASSPATH) -sourcepath $(AGENT_SRC_DIR) -g -d $(SA_CLASSDIR) $(AGENT_FILES2:/=\) $(COMPILE_RMIC) -classpath $(SA_CLASSDIR) -d $(SA_CLASSDIR) sun.jvm.hotspot.debugger.remote.RemoteDebuggerServer - $(QUIETLY) echo $(SA_BUILD_VERSION_PROP) > $(SA_PROPERTIES) - $(RUN_JAR) cf $@ -C saclasses . - $(RUN_JAR) uf $@ -C $(AGENT_SRC_DIR:/=\) META-INF\services\com.sun.jdi.connect.Connector + $(QUIETLY) echo $(SA_BUILD_VERSION_PROP)> $(SA_PROPERTIES) $(QUIETLY) rm -f $(SA_CLASSDIR)/sun/jvm/hotspot/utilities/soql/sa.js $(QUIETLY) cp $(AGENT_SRC_DIR)/sun/jvm/hotspot/utilities/soql/sa.js $(SA_CLASSDIR)/sun/jvm/hotspot/utilities/soql - $(QUIETLY) mkdir -p $(SA_CLASSDIR)/sun/jvm/hotspot/ui/resources - $(QUIETLY) rm -f $(SA_CLASSDIR)/sun/jvm/hotspot/ui/resources/* - $(QUIETLY) cp $(AGENT_SRC_DIR)/sun/jvm/hotspot/ui/resources/*.png $(SA_CLASSDIR)/sun/jvm/hotspot/ui/resources/ - $(QUIETLY) cp -r $(AGENT_SRC_DIR)/images/* $(SA_CLASSDIR)/ + $(QUIETLY) rm -rf $(SA_CLASSDIR)/sun/jvm/hotspot/ui/resources + $(QUIETLY) mkdir $(SA_CLASSDIR)\sun\jvm\hotspot\ui\resources + $(QUIETLY) cp $(AGENT_SRC_DIR)/sun/jvm/hotspot/ui/resources/*.png $(SA_CLASSDIR)/sun/jvm/hotspot/ui/resources + $(QUIETLY) cp -r $(AGENT_SRC_DIR)/images/* $(SA_CLASSDIR) + $(RUN_JAR) cf $@ -C saclasses . + $(RUN_JAR) uf $@ -C $(AGENT_SRC_DIR:/=\) META-INF\services\com.sun.jdi.connect.Connector $(RUN_JAVAH) -classpath $(SA_CLASSDIR) -jni sun.jvm.hotspot.debugger.windbg.WindbgDebuggerLocal $(RUN_JAVAH) -classpath $(SA_CLASSDIR) -jni sun.jvm.hotspot.debugger.x86.X86ThreadContext $(RUN_JAVAH) -classpath $(SA_CLASSDIR) -jni sun.jvm.hotspot.debugger.ia64.IA64ThreadContext @@ -93,7 +96,7 @@ SA_CFLAGS = /nologo $(MS_RUNTIME_OPTION) /W3 /Gm $(GX_OPTION) /ZI /Od /D "WIN32" /D "_WINDOWS" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c !endif !if "$(MT)" != "" - SA_LINK_FLAGS = /manifest $(SA_LINK_FLAGS) +SA_LINK_FLAGS = /manifest $(SA_LINK_FLAGS) !endif SASRCFILE = $(AGENT_DIR)/src/os/win32/windbg/sawindbg.cpp SA_LFLAGS = $(SA_LINK_FLAGS) /nologo /subsystem:console /map /debug /machine:$(MACHINE)
--- a/hotspot/src/cpu/sparc/vm/templateTable_sparc.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/cpu/sparc/vm/templateTable_sparc.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -2085,7 +2085,7 @@ } else { if (has_tos) { // save object pointer before call_VM() clobbers it - __ mov(Otos_i, Lscratch); + __ push_ptr(Otos_i); // put object on tos where GC wants it. } else { // Load top of stack (do not pop the value off the stack); __ ld_ptr(Lesp, Interpreter::expr_offset_in_bytes(0), Otos_i); @@ -2097,7 +2097,7 @@ __ call_VM(noreg, CAST_FROM_FN_PTR(address, InterpreterRuntime::post_field_access), Otos_i, Rcache); if (!is_static && has_tos) { - __ mov(Lscratch, Otos_i); // restore object pointer + __ pop_ptr(Otos_i); // restore object pointer __ verify_oop(Otos_i); } __ get_cache_and_index_at_bcp(Rcache, index, 1);
--- a/hotspot/src/cpu/x86/vm/vm_version_x86_32.hpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/cpu/x86/vm/vm_version_x86_32.hpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/cpu/x86/vm/vm_version_x86_64.hpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/cpu/x86/vm/vm_version_x86_64.hpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2003-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/os/linux/launcher/java.c Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/os/linux/launcher/java.c Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/os/linux/launcher/java.h Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/os/linux/launcher/java.h Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1999-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/os/linux/launcher/java_md.c Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/os/linux/launcher/java_md.c Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1999-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/os/linux/vm/globals_linux.hpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/os/linux/vm/globals_linux.hpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/os/linux/vm/os_linux.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/os/linux/vm/os_linux.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -2272,7 +2272,9 @@ uncommit_memory(addr, bytes); } -void os::numa_make_global(char *addr, size_t bytes) { } +void os::numa_make_global(char *addr, size_t bytes) { + Linux::numa_interleave_memory(addr, bytes); +} void os::numa_make_local(char *addr, size_t bytes, int lgrp_hint) { Linux::numa_tonode_memory(addr, bytes, lgrp_hint); @@ -2314,7 +2316,7 @@ extern "C" void numa_warn(int number, char *where, ...) { } extern "C" void numa_error(char *where) { } -void os::Linux::libnuma_init() { +bool os::Linux::libnuma_init() { // sched_getcpu() should be in libc. set_sched_getcpu(CAST_TO_FN_PTR(sched_getcpu_func_t, dlsym(RTLD_DEFAULT, "sched_getcpu"))); @@ -2330,31 +2332,51 @@ dlsym(handle, "numa_available"))); set_numa_tonode_memory(CAST_TO_FN_PTR(numa_tonode_memory_func_t, dlsym(handle, "numa_tonode_memory"))); + set_numa_interleave_memory(CAST_TO_FN_PTR(numa_interleave_memory_func_t, + dlsym(handle, "numa_interleave_memory"))); + + if (numa_available() != -1) { + set_numa_all_nodes((unsigned long*)dlsym(handle, "numa_all_nodes")); // Create a cpu -> node mapping _cpu_to_node = new (ResourceObj::C_HEAP) GrowableArray<int>(0, true); rebuild_cpu_to_node_map(); + return true; } } } + return false; } // rebuild_cpu_to_node_map() constructs a table mapping cpud id to node id. // The table is later used in get_node_by_cpu(). void os::Linux::rebuild_cpu_to_node_map() { - int cpu_num = os::active_processor_count(); + const size_t NCPUS = 32768; // Since the buffer size computation is very obscure + // in libnuma (possible values are starting from 16, + // and continuing up with every other power of 2, but less + // than the maximum number of CPUs supported by kernel), and + // is a subject to change (in libnuma version 2 the requirements + // are more reasonable) we'll just hardcode the number they use + // in the library. + const size_t BitsPerCLong = sizeof(long) * CHAR_BIT; + + size_t cpu_num = os::active_processor_count(); + size_t cpu_map_size = NCPUS / BitsPerCLong; + size_t cpu_map_valid_size = + MIN2((cpu_num + BitsPerCLong - 1) / BitsPerCLong, cpu_map_size); + cpu_to_node()->clear(); cpu_to_node()->at_grow(cpu_num - 1); - int node_num = numa_get_groups_num(); - int cpu_map_size = (cpu_num + BitsPerLong - 1) / BitsPerLong; + size_t node_num = numa_get_groups_num(); + unsigned long *cpu_map = NEW_C_HEAP_ARRAY(unsigned long, cpu_map_size); - for (int i = 0; i < node_num; i++) { + for (size_t i = 0; i < node_num; i++) { if (numa_node_to_cpus(i, cpu_map, cpu_map_size * sizeof(unsigned long)) != -1) { - for (int j = 0; j < cpu_map_size; j++) { + for (size_t j = 0; j < cpu_map_valid_size; j++) { if (cpu_map[j] != 0) { - for (int k = 0; k < BitsPerLong; k++) { + for (size_t k = 0; k < BitsPerCLong; k++) { if (cpu_map[j] & (1UL << k)) { - cpu_to_node()->at_put(j * BitsPerLong + k, i); + cpu_to_node()->at_put(j * BitsPerCLong + k, i); } } } @@ -2377,7 +2399,8 @@ os::Linux::numa_max_node_func_t os::Linux::_numa_max_node; os::Linux::numa_available_func_t os::Linux::_numa_available; os::Linux::numa_tonode_memory_func_t os::Linux::_numa_tonode_memory; - +os::Linux::numa_interleave_memory_func_t os::Linux::_numa_interleave_memory; +unsigned long* os::Linux::_numa_all_nodes; bool os::uncommit_memory(char* addr, size_t size) { return ::mmap(addr, size, @@ -3695,7 +3718,17 @@ } if (UseNUMA) { - Linux::libnuma_init(); + if (!Linux::libnuma_init()) { + UseNUMA = false; + } else { + if ((Linux::numa_max_node() < 1)) { + // There's only one node(they start from 0), disable NUMA. + UseNUMA = false; + } + } + if (!UseNUMA && ForceNUMA) { + UseNUMA = true; + } } if (MaxFDLimit) {
--- a/hotspot/src/os/linux/vm/os_linux.hpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/os/linux/vm/os_linux.hpp Wed Jul 05 16:44:33 2017 +0200 @@ -146,7 +146,7 @@ static bool is_floating_stack() { return _is_floating_stack; } static void libpthread_init(); - static void libnuma_init(); + static bool libnuma_init(); // Minimum stack size a thread can be created with (allowing // the VM to completely create the thread and enter user code) @@ -240,20 +240,23 @@ typedef int (*numa_max_node_func_t)(void); typedef int (*numa_available_func_t)(void); typedef int (*numa_tonode_memory_func_t)(void *start, size_t size, int node); - + typedef void (*numa_interleave_memory_func_t)(void *start, size_t size, unsigned long *nodemask); static sched_getcpu_func_t _sched_getcpu; static numa_node_to_cpus_func_t _numa_node_to_cpus; static numa_max_node_func_t _numa_max_node; static numa_available_func_t _numa_available; static numa_tonode_memory_func_t _numa_tonode_memory; + static numa_interleave_memory_func_t _numa_interleave_memory; + static unsigned long* _numa_all_nodes; static void set_sched_getcpu(sched_getcpu_func_t func) { _sched_getcpu = func; } static void set_numa_node_to_cpus(numa_node_to_cpus_func_t func) { _numa_node_to_cpus = func; } static void set_numa_max_node(numa_max_node_func_t func) { _numa_max_node = func; } static void set_numa_available(numa_available_func_t func) { _numa_available = func; } static void set_numa_tonode_memory(numa_tonode_memory_func_t func) { _numa_tonode_memory = func; } - + static void set_numa_interleave_memory(numa_interleave_memory_func_t func) { _numa_interleave_memory = func; } + static void set_numa_all_nodes(unsigned long* ptr) { _numa_all_nodes = ptr; } public: static int sched_getcpu() { return _sched_getcpu != NULL ? _sched_getcpu() : -1; } static int numa_node_to_cpus(int node, unsigned long *buffer, int bufferlen) { @@ -264,6 +267,11 @@ static int numa_tonode_memory(void *start, size_t size, int node) { return _numa_tonode_memory != NULL ? _numa_tonode_memory(start, size, node) : -1; } + static void numa_interleave_memory(void *start, size_t size) { + if (_numa_interleave_memory != NULL && _numa_all_nodes != NULL) { + _numa_interleave_memory(start, size, _numa_all_nodes); + } + } static int get_node_by_cpu(int cpu_id); };
--- a/hotspot/src/os/solaris/launcher/java.c Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/os/solaris/launcher/java.c Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1998-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/os/solaris/launcher/java.h Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/os/solaris/launcher/java.h Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1998-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/os/solaris/launcher/java_md.c Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/os/solaris/launcher/java_md.c Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1998-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/os/solaris/vm/globals_solaris.hpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/os/solaris/vm/globals_solaris.hpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/os/solaris/vm/os_solaris.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/os/solaris/vm/os_solaris.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -4638,7 +4638,7 @@ } } -void os::Solaris::liblgrp_init() { +bool os::Solaris::liblgrp_init() { void *handle = dlopen("liblgrp.so.1", RTLD_LAZY); if (handle != NULL) { os::Solaris::set_lgrp_home(CAST_TO_FN_PTR(lgrp_home_func_t, dlsym(handle, "lgrp_home"))); @@ -4653,9 +4653,9 @@ lgrp_cookie_t c = lgrp_init(LGRP_VIEW_CALLER); set_lgrp_cookie(c); - } else { - warning("your OS does not support NUMA"); - } + return true; + } + return false; } void os::Solaris::misc_sym_init() { @@ -4824,9 +4824,25 @@ vm_page_size())); Solaris::libthread_init(); + if (UseNUMA) { - Solaris::liblgrp_init(); - } + if (!Solaris::liblgrp_init()) { + UseNUMA = false; + } else { + size_t lgrp_limit = os::numa_get_groups_num(); + int *lgrp_ids = NEW_C_HEAP_ARRAY(int, lgrp_limit); + size_t lgrp_num = os::numa_get_leaf_groups(lgrp_ids, lgrp_limit); + FREE_C_HEAP_ARRAY(int, lgrp_ids); + if (lgrp_num < 2) { + // There's only one locality group, disable NUMA. + UseNUMA = false; + } + } + if (!UseNUMA && ForceNUMA) { + UseNUMA = true; + } + } + Solaris::misc_sym_init(); Solaris::signal_sets_init(); Solaris::init_signal_mem();
--- a/hotspot/src/os/solaris/vm/os_solaris.hpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/os/solaris/vm/os_solaris.hpp Wed Jul 05 16:44:33 2017 +0200 @@ -176,7 +176,7 @@ public: static void libthread_init(); static void synchronization_init(); - static void liblgrp_init(); + static bool liblgrp_init(); // Load miscellaneous symbols. static void misc_sym_init(); // This boolean allows users to forward their own non-matching signals
--- a/hotspot/src/os/windows/vm/globals_windows.hpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/os/windows/vm/globals_windows.hpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/os/windows/vm/os_windows.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/os/windows/vm/os_windows.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -2217,15 +2217,10 @@ // We only expect null pointers in the stubs (vtable) // the rest are checked explicitly now. // - CodeBlob* cb = CodeCache::find_blob(pc); - if (cb != NULL) { - if (VtableStubs::stub_containing(pc) != NULL) { - if (((uintptr_t)addr) < os::vm_page_size() ) { - // an access to the first page of VM--assume it is a null pointer - return Handle_Exception(exceptionInfo, - SharedRuntime::continuation_for_implicit_exception(thread, pc, SharedRuntime::IMPLICIT_NULL)); - } - } + if (((uintptr_t)addr) < os::vm_page_size() ) { + // an access to the first page of VM--assume it is a null pointer + address stub = SharedRuntime::continuation_for_implicit_exception(thread, pc, SharedRuntime::IMPLICIT_NULL); + if (stub != NULL) return Handle_Exception(exceptionInfo, stub); } } } // in_java @@ -2241,9 +2236,8 @@ // Windows 98 reports faulting addresses incorrectly if (!MacroAssembler::needs_explicit_null_check((intptr_t)addr) || !os::win32::is_nt()) { - - return Handle_Exception(exceptionInfo, - SharedRuntime::continuation_for_implicit_exception(thread, pc, SharedRuntime::IMPLICIT_NULL)); + address stub = SharedRuntime::continuation_for_implicit_exception(thread, pc, SharedRuntime::IMPLICIT_NULL); + if (stub != NULL) return Handle_Exception(exceptionInfo, stub); } report_error(t, exception_code, pc, exceptionInfo->ExceptionRecord, exceptionInfo->ContextRecord); @@ -3353,6 +3347,10 @@ // initialize thread priority policy prio_init(); + if (UseNUMA && !ForceNUMA) { + UseNUMA = false; // Currently unsupported. + } + return JNI_OK; }
--- a/hotspot/src/os/windows/vm/os_windows.hpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/os/windows/vm/os_windows.hpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/os_cpu/linux_x86/vm/linux_x86_32.ad Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/os_cpu/linux_x86/vm/linux_x86_32.ad Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ // -// Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved. +// Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. // // This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/serialization/XMLWriter.java Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/tools/IdealGraphVisualizer/Data/src/com/sun/hotspot/igv/data/serialization/XMLWriter.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1998-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/tools/IdealGraphVisualizer/Difference/src/com/sun/hotspot/igv/difference/Difference.java Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/tools/IdealGraphVisualizer/Difference/src/com/sun/hotspot/igv/difference/Difference.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1998-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/tools/IdealGraphVisualizer/Filter/src/com/sun/hotspot/igv/filter/CustomFilter.java Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/tools/IdealGraphVisualizer/Filter/src/com/sun/hotspot/igv/filter/CustomFilter.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1998-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/tools/IdealGraphVisualizer/Util/src/com/sun/hotspot/igv/util/PropertiesSheet.java Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/tools/IdealGraphVisualizer/Util/src/com/sun/hotspot/igv/util/PropertiesSheet.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1998-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/tools/IdealGraphVisualizer/Util/src/com/sun/hotspot/igv/util/RangeSliderModel.java Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/tools/IdealGraphVisualizer/Util/src/com/sun/hotspot/igv/util/RangeSliderModel.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1998-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/DiagramViewModel.java Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/tools/IdealGraphVisualizer/View/src/com/sun/hotspot/igv/view/DiagramViewModel.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1998-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/adlc/adlparse.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/adlc/adlparse.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/adlc/adlparse.hpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/adlc/adlparse.hpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/adlc/filebuff.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/adlc/filebuff.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2002 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/adlc/filebuff.hpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/adlc/filebuff.hpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2004 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/adlc/formssel.hpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/adlc/formssel.hpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1998-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/c1/c1_GraphBuilder.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -676,21 +676,6 @@ } -void GraphBuilder::kill_field(ciField* field) { - if (UseLocalValueNumbering) { - vmap()->kill_field(field); - } -} - - -void GraphBuilder::kill_array(Value value) { - if (UseLocalValueNumbering) { - vmap()->kill_array(value->type()); - } - _memory->store_value(value); -} - - void GraphBuilder::kill_all() { if (UseLocalValueNumbering) { vmap()->kill_all(); @@ -987,8 +972,8 @@ length = append(new ArrayLength(array, lock_stack())); } StoreIndexed* result = new StoreIndexed(array, index, length, type, value, lock_stack()); - kill_array(value); // invalidate all CSEs that are memory accesses of the same type append(result); + _memory->store_value(value); } @@ -1478,9 +1463,6 @@ case Bytecodes::_putstatic: { Value val = pop(type); append(new StoreField(append(obj), offset, field, val, true, lock_stack(), state_copy, is_loaded, is_initialized)); - if (UseLocalValueNumbering) { - vmap()->kill_field(field); // invalidate all CSEs that are memory accesses - } } break; case Bytecodes::_getfield : @@ -1503,7 +1485,6 @@ if (is_loaded) store = _memory->store(store); if (store != NULL) { append(store); - kill_field(field); // invalidate all CSEs that are accesses of this field } } break; @@ -1900,6 +1881,8 @@ assert(i2->bci() != -1, "should already be linked"); return i2; } + ValueNumberingEffects vne(vmap()); + i1->visit(&vne); } if (i1->as_Phi() == NULL && i1->as_Local() == NULL) { @@ -1926,14 +1909,8 @@ assert(_last == i1, "adjust code below"); StateSplit* s = i1->as_StateSplit(); if (s != NULL && i1->as_BlockEnd() == NULL) { - // Continue CSE across certain intrinsics - Intrinsic* intrinsic = s->as_Intrinsic(); - if (UseLocalValueNumbering) { - if (intrinsic == NULL || !intrinsic->preserves_state()) { - vmap()->kill_all(); // for now, hopefully we need this only for calls eventually - } - } if (EliminateFieldAccess) { + Intrinsic* intrinsic = s->as_Intrinsic(); if (s->as_Invoke() != NULL || (intrinsic && !intrinsic->preserves_state())) { _memory->kill(); }
--- a/hotspot/src/share/vm/c1/c1_GraphBuilder.hpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/c1/c1_GraphBuilder.hpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -283,8 +283,6 @@ Dependencies* dependency_recorder() const; // = compilation()->dependencies() bool direct_compare(ciKlass* k); - void kill_field(ciField* field); - void kill_array(Value value); void kill_all(); ValueStack* lock_stack();
--- a/hotspot/src/share/vm/c1/c1_IR.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/c1/c1_IR.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/c1/c1_ValueMap.hpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/c1/c1_ValueMap.hpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -133,53 +133,77 @@ virtual void kill_array(ValueType* type) = 0; // visitor functions - void do_StoreField (StoreField* x) { kill_field(x->field()); }; - void do_StoreIndexed (StoreIndexed* x) { kill_array(x->type()); }; - void do_MonitorEnter (MonitorEnter* x) { kill_memory(); }; - void do_MonitorExit (MonitorExit* x) { kill_memory(); }; - void do_Invoke (Invoke* x) { kill_memory(); }; - void do_UnsafePutRaw (UnsafePutRaw* x) { kill_memory(); }; - void do_UnsafePutObject(UnsafePutObject* x) { kill_memory(); }; - void do_Intrinsic (Intrinsic* x) { if (!x->preserves_state()) kill_memory(); }; + void do_StoreField (StoreField* x) { + if (!x->is_initialized()) { + kill_memory(); + } else { + kill_field(x->field()); + } + } + void do_StoreIndexed (StoreIndexed* x) { kill_array(x->type()); } + void do_MonitorEnter (MonitorEnter* x) { kill_memory(); } + void do_MonitorExit (MonitorExit* x) { kill_memory(); } + void do_Invoke (Invoke* x) { kill_memory(); } + void do_UnsafePutRaw (UnsafePutRaw* x) { kill_memory(); } + void do_UnsafePutObject(UnsafePutObject* x) { kill_memory(); } + void do_Intrinsic (Intrinsic* x) { if (!x->preserves_state()) kill_memory(); } - void do_Phi (Phi* x) { /* nothing to do */ }; - void do_Local (Local* x) { /* nothing to do */ }; - void do_Constant (Constant* x) { /* nothing to do */ }; - void do_LoadField (LoadField* x) { /* nothing to do */ }; - void do_ArrayLength (ArrayLength* x) { /* nothing to do */ }; - void do_LoadIndexed (LoadIndexed* x) { /* nothing to do */ }; - void do_NegateOp (NegateOp* x) { /* nothing to do */ }; - void do_ArithmeticOp (ArithmeticOp* x) { /* nothing to do */ }; - void do_ShiftOp (ShiftOp* x) { /* nothing to do */ }; - void do_LogicOp (LogicOp* x) { /* nothing to do */ }; - void do_CompareOp (CompareOp* x) { /* nothing to do */ }; - void do_IfOp (IfOp* x) { /* nothing to do */ }; - void do_Convert (Convert* x) { /* nothing to do */ }; - void do_NullCheck (NullCheck* x) { /* nothing to do */ }; - void do_NewInstance (NewInstance* x) { /* nothing to do */ }; - void do_NewTypeArray (NewTypeArray* x) { /* nothing to do */ }; - void do_NewObjectArray (NewObjectArray* x) { /* nothing to do */ }; - void do_NewMultiArray (NewMultiArray* x) { /* nothing to do */ }; - void do_CheckCast (CheckCast* x) { /* nothing to do */ }; - void do_InstanceOf (InstanceOf* x) { /* nothing to do */ }; - void do_BlockBegin (BlockBegin* x) { /* nothing to do */ }; - void do_Goto (Goto* x) { /* nothing to do */ }; - void do_If (If* x) { /* nothing to do */ }; - void do_IfInstanceOf (IfInstanceOf* x) { /* nothing to do */ }; - void do_TableSwitch (TableSwitch* x) { /* nothing to do */ }; - void do_LookupSwitch (LookupSwitch* x) { /* nothing to do */ }; - void do_Return (Return* x) { /* nothing to do */ }; - void do_Throw (Throw* x) { /* nothing to do */ }; - void do_Base (Base* x) { /* nothing to do */ }; - void do_OsrEntry (OsrEntry* x) { /* nothing to do */ }; - void do_ExceptionObject(ExceptionObject* x) { /* nothing to do */ }; - void do_RoundFP (RoundFP* x) { /* nothing to do */ }; - void do_UnsafeGetRaw (UnsafeGetRaw* x) { /* nothing to do */ }; - void do_UnsafeGetObject(UnsafeGetObject* x) { /* nothing to do */ }; - void do_UnsafePrefetchRead (UnsafePrefetchRead* x) { /* nothing to do */ }; - void do_UnsafePrefetchWrite(UnsafePrefetchWrite* x) { /* nothing to do */ }; - void do_ProfileCall (ProfileCall* x) { /* nothing to do */ }; - void do_ProfileCounter (ProfileCounter* x) { /* nothing to do */ }; + void do_Phi (Phi* x) { /* nothing to do */ } + void do_Local (Local* x) { /* nothing to do */ } + void do_Constant (Constant* x) { /* nothing to do */ } + void do_LoadField (LoadField* x) { + if (!x->is_initialized()) { + kill_memory(); + } + } + void do_ArrayLength (ArrayLength* x) { /* nothing to do */ } + void do_LoadIndexed (LoadIndexed* x) { /* nothing to do */ } + void do_NegateOp (NegateOp* x) { /* nothing to do */ } + void do_ArithmeticOp (ArithmeticOp* x) { /* nothing to do */ } + void do_ShiftOp (ShiftOp* x) { /* nothing to do */ } + void do_LogicOp (LogicOp* x) { /* nothing to do */ } + void do_CompareOp (CompareOp* x) { /* nothing to do */ } + void do_IfOp (IfOp* x) { /* nothing to do */ } + void do_Convert (Convert* x) { /* nothing to do */ } + void do_NullCheck (NullCheck* x) { /* nothing to do */ } + void do_NewInstance (NewInstance* x) { /* nothing to do */ } + void do_NewTypeArray (NewTypeArray* x) { /* nothing to do */ } + void do_NewObjectArray (NewObjectArray* x) { /* nothing to do */ } + void do_NewMultiArray (NewMultiArray* x) { /* nothing to do */ } + void do_CheckCast (CheckCast* x) { /* nothing to do */ } + void do_InstanceOf (InstanceOf* x) { /* nothing to do */ } + void do_BlockBegin (BlockBegin* x) { /* nothing to do */ } + void do_Goto (Goto* x) { /* nothing to do */ } + void do_If (If* x) { /* nothing to do */ } + void do_IfInstanceOf (IfInstanceOf* x) { /* nothing to do */ } + void do_TableSwitch (TableSwitch* x) { /* nothing to do */ } + void do_LookupSwitch (LookupSwitch* x) { /* nothing to do */ } + void do_Return (Return* x) { /* nothing to do */ } + void do_Throw (Throw* x) { /* nothing to do */ } + void do_Base (Base* x) { /* nothing to do */ } + void do_OsrEntry (OsrEntry* x) { /* nothing to do */ } + void do_ExceptionObject(ExceptionObject* x) { /* nothing to do */ } + void do_RoundFP (RoundFP* x) { /* nothing to do */ } + void do_UnsafeGetRaw (UnsafeGetRaw* x) { /* nothing to do */ } + void do_UnsafeGetObject(UnsafeGetObject* x) { /* nothing to do */ } + void do_UnsafePrefetchRead (UnsafePrefetchRead* x) { /* nothing to do */ } + void do_UnsafePrefetchWrite(UnsafePrefetchWrite* x) { /* nothing to do */ } + void do_ProfileCall (ProfileCall* x) { /* nothing to do */ } + void do_ProfileCounter (ProfileCounter* x) { /* nothing to do */ } +}; + + +class ValueNumberingEffects: public ValueNumberingVisitor { + private: + ValueMap* _map; + + public: + // implementation for abstract methods of ValueNumberingVisitor + void kill_memory() { _map->kill_memory(); } + void kill_field(ciField* field) { _map->kill_field(field); } + void kill_array(ValueType* type) { _map->kill_array(type); } + + ValueNumberingEffects(ValueMap* map): _map(map) {} };
--- a/hotspot/src/share/vm/ci/ciEnv.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/ci/ciEnv.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/ci/ciTypeFlow.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/ci/ciTypeFlow.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/classfile/classFileParser.hpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/classfile/classFileParser.hpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsOopClosures.hpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/cmsOopClosures.hpp Wed Jul 05 16:44:33 2017 +0200 @@ -325,24 +325,30 @@ // For objects in CMS generation, this closure marks // given objects (transitively) as being reachable/live. // This is currently used during the (weak) reference object -// processing phase of the CMS final checkpoint step. +// processing phase of the CMS final checkpoint step, as +// well as during the concurrent precleaning of the discovered +// reference lists. class CMSKeepAliveClosure: public OopClosure { private: CMSCollector* _collector; const MemRegion _span; CMSMarkStack* _mark_stack; CMSBitMap* _bit_map; + bool _concurrent_precleaning; protected: DO_OOP_WORK_DEFN public: CMSKeepAliveClosure(CMSCollector* collector, MemRegion span, - CMSBitMap* bit_map, CMSMarkStack* mark_stack): + CMSBitMap* bit_map, CMSMarkStack* mark_stack, + bool cpc): _collector(collector), _span(span), _bit_map(bit_map), - _mark_stack(mark_stack) { + _mark_stack(mark_stack), + _concurrent_precleaning(cpc) { assert(!_span.is_empty(), "Empty span could spell trouble"); } + bool concurrent_precleaning() const { return _concurrent_precleaning; } virtual void do_oop(oop* p); virtual void do_oop(narrowOop* p); inline void do_oop_nv(oop* p) { CMSKeepAliveClosure::do_oop_work(p); }
--- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -538,6 +538,7 @@ _survivor_chunk_capacity(0), // -- ditto -- _survivor_chunk_index(0), // -- ditto -- _ser_pmc_preclean_ovflw(0), + _ser_kac_preclean_ovflw(0), _ser_pmc_remark_ovflw(0), _par_pmc_remark_ovflw(0), _ser_kac_ovflw(0), @@ -1960,6 +1961,7 @@ ref_processor()->set_enqueuing_is_done(false); ref_processor()->enable_discovery(); + ref_processor()->setup_policy(clear_all_soft_refs); // If an asynchronous collection finishes, the _modUnionTable is // all clear. If we are assuming the collection from an asynchronous // collection, clear the _modUnionTable. @@ -2383,6 +2385,9 @@ Universe::verify(true); } + // Snapshot the soft reference policy to be used in this collection cycle. + ref_processor()->setup_policy(clear_all_soft_refs); + bool init_mark_was_synchronous = false; // until proven otherwise while (_collectorState != Idling) { if (TraceCMSState) { @@ -4388,10 +4393,10 @@ CMSPrecleanRefsYieldClosure yield_cl(this); assert(rp->span().equals(_span), "Spans should be equal"); CMSKeepAliveClosure keep_alive(this, _span, &_markBitMap, - &_markStack); + &_markStack, true /* preclean */); CMSDrainMarkingStackClosure complete_trace(this, - _span, &_markBitMap, &_markStack, - &keep_alive); + _span, &_markBitMap, &_markStack, + &keep_alive, true /* preclean */); // We don't want this step to interfere with a young // collection because we don't want to take CPU @@ -4590,11 +4595,11 @@ if (!dirtyRegion.is_empty()) { assert(numDirtyCards > 0, "consistency check"); HeapWord* stop_point = NULL; + stopTimer(); + CMSTokenSyncWithLocks ts(true, gen->freelistLock(), + bitMapLock()); + startTimer(); { - stopTimer(); - CMSTokenSyncWithLocks ts(true, gen->freelistLock(), - bitMapLock()); - startTimer(); verify_work_stacks_empty(); verify_overflow_empty(); sample_eden(); @@ -4611,10 +4616,6 @@ assert((CMSPermGenPrecleaningEnabled && (gen == _permGen)) || (_collectorState == AbortablePreclean && should_abort_preclean()), "Unparsable objects should only be in perm gen."); - - stopTimer(); - CMSTokenSyncWithLocks ts(true, bitMapLock()); - startTimer(); _modUnionTable.mark_range(MemRegion(stop_point, dirtyRegion.end())); if (should_abort_preclean()) { break; // out of preclean loop @@ -4852,17 +4853,19 @@ // recurrence of that condition. assert(_markStack.isEmpty(), "No grey objects"); size_t ser_ovflw = _ser_pmc_remark_ovflw + _ser_pmc_preclean_ovflw + - _ser_kac_ovflw; + _ser_kac_ovflw + _ser_kac_preclean_ovflw; if (ser_ovflw > 0) { if (PrintCMSStatistics != 0) { gclog_or_tty->print_cr("Marking stack overflow (benign) " - "(pmc_pc="SIZE_FORMAT", pmc_rm="SIZE_FORMAT", kac="SIZE_FORMAT")", + "(pmc_pc="SIZE_FORMAT", pmc_rm="SIZE_FORMAT", kac="SIZE_FORMAT + ", kac_preclean="SIZE_FORMAT")", _ser_pmc_preclean_ovflw, _ser_pmc_remark_ovflw, - _ser_kac_ovflw); + _ser_kac_ovflw, _ser_kac_preclean_ovflw); } _markStack.expand(); _ser_pmc_remark_ovflw = 0; _ser_pmc_preclean_ovflw = 0; + _ser_kac_preclean_ovflw = 0; _ser_kac_ovflw = 0; } if (_par_pmc_remark_ovflw > 0 || _par_kac_ovflw > 0) { @@ -5675,40 +5678,29 @@ ResourceMark rm; HandleMark hm; - ReferencePolicy* soft_ref_policy; - - assert(!ref_processor()->enqueuing_is_done(), "Enqueuing should not be complete"); - // Process weak references. - if (clear_all_soft_refs) { - soft_ref_policy = new AlwaysClearPolicy(); - } else { -#ifdef COMPILER2 - soft_ref_policy = new LRUMaxHeapPolicy(); -#else - soft_ref_policy = new LRUCurrentHeapPolicy(); -#endif // COMPILER2 - } - verify_work_stacks_empty(); ReferenceProcessor* rp = ref_processor(); assert(rp->span().equals(_span), "Spans should be equal"); + assert(!rp->enqueuing_is_done(), "Enqueuing should not be complete"); + // Process weak references. + rp->setup_policy(clear_all_soft_refs); + verify_work_stacks_empty(); + CMSKeepAliveClosure cmsKeepAliveClosure(this, _span, &_markBitMap, - &_markStack); + &_markStack, false /* !preclean */); CMSDrainMarkingStackClosure cmsDrainMarkingStackClosure(this, _span, &_markBitMap, &_markStack, - &cmsKeepAliveClosure); + &cmsKeepAliveClosure, false /* !preclean */); { TraceTime t("weak refs processing", PrintGCDetails, false, gclog_or_tty); if (rp->processing_is_mt()) { CMSRefProcTaskExecutor task_executor(*this); - rp->process_discovered_references(soft_ref_policy, - &_is_alive_closure, + rp->process_discovered_references(&_is_alive_closure, &cmsKeepAliveClosure, &cmsDrainMarkingStackClosure, &task_executor); } else { - rp->process_discovered_references(soft_ref_policy, - &_is_alive_closure, + rp->process_discovered_references(&_is_alive_closure, &cmsKeepAliveClosure, &cmsDrainMarkingStackClosure, NULL); @@ -6163,8 +6155,8 @@ #endif size_t CMSCollector::block_size_using_printezis_bits(HeapWord* addr) const { - assert(_markBitMap.isMarked(addr) && _markBitMap.isMarked(addr + 1), - "missing Printezis mark?"); + assert(_markBitMap.isMarked(addr) && _markBitMap.isMarked(addr + 1), + "missing Printezis mark?"); HeapWord* nextOneAddr = _markBitMap.getNextMarkedWordAddress(addr + 2); size_t size = pointer_delta(nextOneAddr + 1, addr); assert(size == CompactibleFreeListSpace::adjustObjectSize(size), @@ -8302,8 +8294,29 @@ } ) if (simulate_overflow || !_mark_stack->push(obj)) { - _collector->push_on_overflow_list(obj); - _collector->_ser_kac_ovflw++; + if (_concurrent_precleaning) { + // We dirty the overflown object and let the remark + // phase deal with it. + assert(_collector->overflow_list_is_empty(), "Error"); + // In the case of object arrays, we need to dirty all of + // the cards that the object spans. No locking or atomics + // are needed since no one else can be mutating the mod union + // table. + if (obj->is_objArray()) { + size_t sz = obj->size(); + HeapWord* end_card_addr = + (HeapWord*)round_to((intptr_t)(addr+sz), CardTableModRefBS::card_size); + MemRegion redirty_range = MemRegion(addr, end_card_addr); + assert(!redirty_range.is_empty(), "Arithmetical tautology"); + _collector->_modUnionTable.mark_range(redirty_range); + } else { + _collector->_modUnionTable.mark(addr); + } + _collector->_ser_kac_preclean_ovflw++; + } else { + _collector->push_on_overflow_list(obj); + _collector->_ser_kac_ovflw++; + } } } } @@ -8400,6 +8413,8 @@ void CMSDrainMarkingStackClosure::do_void() { // the max number to take from overflow list at a time const size_t num = _mark_stack->capacity()/4; + assert(!_concurrent_precleaning || _collector->overflow_list_is_empty(), + "Overflow list should be NULL during concurrent phases"); while (!_mark_stack->isEmpty() || // if stack is empty, check the overflow list _collector->take_from_overflow_list(num, _mark_stack)) {
--- a/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.hpp Wed Jul 05 16:44:33 2017 +0200 @@ -592,6 +592,7 @@ size_t _ser_pmc_preclean_ovflw; size_t _ser_pmc_remark_ovflw; size_t _par_pmc_remark_ovflw; + size_t _ser_kac_preclean_ovflw; size_t _ser_kac_ovflw; size_t _par_kac_ovflw; NOT_PRODUCT(size_t _num_par_pushes;) @@ -1749,21 +1750,30 @@ // work-routine/closure used to complete transitive // marking of objects as live after a certain point // in which an initial set has been completely accumulated. +// This closure is currently used both during the final +// remark stop-world phase, as well as during the concurrent +// precleaning of the discovered reference lists. class CMSDrainMarkingStackClosure: public VoidClosure { CMSCollector* _collector; MemRegion _span; CMSMarkStack* _mark_stack; CMSBitMap* _bit_map; CMSKeepAliveClosure* _keep_alive; + bool _concurrent_precleaning; public: CMSDrainMarkingStackClosure(CMSCollector* collector, MemRegion span, CMSBitMap* bit_map, CMSMarkStack* mark_stack, - CMSKeepAliveClosure* keep_alive): + CMSKeepAliveClosure* keep_alive, + bool cpc): _collector(collector), _span(span), _bit_map(bit_map), _mark_stack(mark_stack), - _keep_alive(keep_alive) { } + _keep_alive(keep_alive), + _concurrent_precleaning(cpc) { + assert(_concurrent_precleaning == _keep_alive->concurrent_precleaning(), + "Mismatch"); + } void do_void(); };
--- a/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -811,6 +811,7 @@ ReferenceProcessor* rp = g1h->ref_processor(); rp->verify_no_references_recorded(); rp->enable_discovery(); // enable ("weak") refs discovery + rp->setup_policy(false); // snapshot the soft ref policy to be used in this cycle SATBMarkQueueSet& satb_mq_set = JavaThread::satb_mark_queue_set(); satb_mq_set.set_process_completed_threshold(G1SATBProcessCompletedThreshold); @@ -1829,32 +1830,21 @@ void ConcurrentMark::weakRefsWork(bool clear_all_soft_refs) { ResourceMark rm; HandleMark hm; - ReferencePolicy* soft_ref_policy; + G1CollectedHeap* g1h = G1CollectedHeap::heap(); + ReferenceProcessor* rp = g1h->ref_processor(); // Process weak references. - if (clear_all_soft_refs) { - soft_ref_policy = new AlwaysClearPolicy(); - } else { -#ifdef COMPILER2 - soft_ref_policy = new LRUMaxHeapPolicy(); -#else - soft_ref_policy = new LRUCurrentHeapPolicy(); -#endif - } + rp->setup_policy(clear_all_soft_refs); assert(_markStack.isEmpty(), "mark stack should be empty"); - G1CollectedHeap* g1 = G1CollectedHeap::heap(); - G1CMIsAliveClosure g1IsAliveClosure(g1); - - G1CMKeepAliveClosure g1KeepAliveClosure(g1, this, nextMarkBitMap()); + G1CMIsAliveClosure g1IsAliveClosure (g1h); + G1CMKeepAliveClosure g1KeepAliveClosure(g1h, this, nextMarkBitMap()); G1CMDrainMarkingStackClosure g1DrainMarkingStackClosure(nextMarkBitMap(), &_markStack, &g1KeepAliveClosure); // XXXYYY Also: copy the parallel ref processing code from CMS. - ReferenceProcessor* rp = g1->ref_processor(); - rp->process_discovered_references(soft_ref_policy, - &g1IsAliveClosure, + rp->process_discovered_references(&g1IsAliveClosure, &g1KeepAliveClosure, &g1DrainMarkingStackClosure, NULL);
--- a/hotspot/src/share/vm/gc_implementation/g1/dirtyCardQueue.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/gc_implementation/g1/dirtyCardQueue.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/gc_implementation/g1/g1BlockOffsetTable.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/gc_implementation/g1/g1BlockOffsetTable.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -891,6 +891,7 @@ ReferenceProcessorIsAliveMutator rp_is_alive_null(ref_processor(), NULL); ref_processor()->enable_discovery(); + ref_processor()->setup_policy(clear_all_soft_refs); // Do collection work { @@ -2463,7 +2464,7 @@ COMPILER2_PRESENT(DerivedPointerTable::clear()); - // We want to turn off ref discovere, if necessary, and turn it back on + // We want to turn off ref discovery, if necessary, and turn it back on // on again later if we do. bool was_enabled = ref_processor()->discovery_enabled(); if (was_enabled) ref_processor()->disable_discovery();
--- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectorPolicy.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/gc_implementation/g1/g1MarkSweep.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -33,8 +33,9 @@ // hook up weak ref data so it can be used during Mark-Sweep assert(GenMarkSweep::ref_processor() == NULL, "no stomping"); + assert(rp != NULL, "should be non-NULL"); GenMarkSweep::_ref_processor = rp; - assert(rp != NULL, "should be non-NULL"); + rp->setup_policy(clear_all_softrefs); // When collecting the permanent generation methodOops may be moving, // so we either have to flush all bcp data or convert it into bci. @@ -121,23 +122,12 @@ &GenMarkSweep::follow_root_closure); // Process reference objects found during marking - ReferencePolicy *soft_ref_policy; - if (clear_all_softrefs) { - soft_ref_policy = new AlwaysClearPolicy(); - } else { -#ifdef COMPILER2 - soft_ref_policy = new LRUMaxHeapPolicy(); -#else - soft_ref_policy = new LRUCurrentHeapPolicy(); -#endif - } - assert(soft_ref_policy != NULL,"No soft reference policy"); - GenMarkSweep::ref_processor()->process_discovered_references( - soft_ref_policy, - &GenMarkSweep::is_alive, - &GenMarkSweep::keep_alive, - &GenMarkSweep::follow_stack_closure, - NULL); + ReferenceProcessor* rp = GenMarkSweep::ref_processor(); + rp->setup_policy(clear_all_softrefs); + rp->process_discovered_references(&GenMarkSweep::is_alive, + &GenMarkSweep::keep_alive, + &GenMarkSweep::follow_stack_closure, + NULL); // Follow system dictionary roots and unload classes bool purged_class = SystemDictionary::do_unloading(&GenMarkSweep::is_alive);
--- a/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/gc_implementation/g1/heapRegion.hpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegion.hpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/gc_implementation/g1/heapRegionSeq.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegionSeq.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/gc_implementation/g1/heapRegionSeq.hpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegionSeq.hpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/gc_implementation/g1/ptrQueue.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/gc_implementation/g1/ptrQueue.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/gc_implementation/g1/ptrQueue.hpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/gc_implementation/g1/ptrQueue.hpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/gc_implementation/includeDB_gc_g1 Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/gc_implementation/includeDB_gc_g1 Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ // -// Copyright 2004-2006 Sun Microsystems, Inc. All Rights Reserved. +// Copyright 2004-2008 Sun Microsystems, Inc. All Rights Reserved. // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. // // This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -759,17 +759,12 @@ thread_state_set.steals(), thread_state_set.pops()+thread_state_set.steals()); } - assert(thread_state_set.pushes() == thread_state_set.pops() + thread_state_set.steals(), + assert(thread_state_set.pushes() == thread_state_set.pops() + + thread_state_set.steals(), "Or else the queues are leaky."); - // For now, process discovered weak refs sequentially. -#ifdef COMPILER2 - ReferencePolicy *soft_ref_policy = new LRUMaxHeapPolicy(); -#else - ReferencePolicy *soft_ref_policy = new LRUCurrentHeapPolicy(); -#endif // COMPILER2 - // Process (weak) reference objects found during scavenge. + ReferenceProcessor* rp = ref_processor(); IsAliveClosure is_alive(this); ScanWeakRefClosure scan_weak_ref(this); KeepAliveClosure keep_alive(&scan_weak_ref); @@ -778,18 +773,17 @@ set_promo_failure_scan_stack_closure(&scan_without_gc_barrier); EvacuateFollowersClosureGeneral evacuate_followers(gch, _level, &scan_without_gc_barrier, &scan_with_gc_barrier); - if (ref_processor()->processing_is_mt()) { + rp->setup_policy(clear_all_soft_refs); + if (rp->processing_is_mt()) { ParNewRefProcTaskExecutor task_executor(*this, thread_state_set); - ref_processor()->process_discovered_references( - soft_ref_policy, &is_alive, &keep_alive, &evacuate_followers, - &task_executor); + rp->process_discovered_references(&is_alive, &keep_alive, + &evacuate_followers, &task_executor); } else { thread_state_set.flush(); gch->set_par_threads(0); // 0 ==> non-parallel. gch->save_marks(); - ref_processor()->process_discovered_references( - soft_ref_policy, &is_alive, &keep_alive, &evacuate_followers, - NULL); + rp->process_discovered_references(&is_alive, &keep_alive, + &evacuate_followers, NULL); } if (!promotion_failed()) { // Swap the survivor spaces. @@ -851,14 +845,14 @@ SpecializationStats::print(); - ref_processor()->set_enqueuing_is_done(true); - if (ref_processor()->processing_is_mt()) { + rp->set_enqueuing_is_done(true); + if (rp->processing_is_mt()) { ParNewRefProcTaskExecutor task_executor(*this, thread_state_set); - ref_processor()->enqueue_discovered_references(&task_executor); + rp->enqueue_discovered_references(&task_executor); } else { - ref_processor()->enqueue_discovered_references(NULL); + rp->enqueue_discovered_references(NULL); } - ref_processor()->verify_no_references_recorded(); + rp->verify_no_references_recorded(); } static int sum; @@ -1211,7 +1205,7 @@ int n = 0; while (cur != NULL) { oop obj_to_push = cur->forwardee(); - oop next = oop(cur->klass()); + oop next = oop(cur->klass_or_null()); cur->set_klass(obj_to_push->klass()); if (par_scan_state->should_be_partially_scanned(obj_to_push, cur)) { obj_to_push = cur;
--- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/pcTasks.hpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/pcTasks.hpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.hpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psCompactionManager.hpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweep.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -172,6 +172,7 @@ COMPILER2_PRESENT(DerivedPointerTable::clear()); ref_processor()->enable_discovery(); + ref_processor()->setup_policy(clear_all_softrefs); mark_sweep_phase1(clear_all_softrefs); @@ -517,20 +518,9 @@ // Process reference objects found during marking { - ReferencePolicy *soft_ref_policy; - if (clear_all_softrefs) { - soft_ref_policy = new AlwaysClearPolicy(); - } else { -#ifdef COMPILER2 - soft_ref_policy = new LRUMaxHeapPolicy(); -#else - soft_ref_policy = new LRUCurrentHeapPolicy(); -#endif // COMPILER2 - } - assert(soft_ref_policy != NULL,"No soft reference policy"); + ref_processor()->setup_policy(clear_all_softrefs); ref_processor()->process_discovered_references( - soft_ref_policy, is_alive_closure(), mark_and_push_closure(), - follow_stack_closure(), NULL); + is_alive_closure(), mark_and_push_closure(), follow_stack_closure(), NULL); } // Follow system dictionary roots and unload classes
--- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweepDecorator.hpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psMarkSweepDecorator.hpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2001-2002 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -1578,6 +1578,7 @@ COMPILER2_PRESENT(DerivedPointerTable::clear()); ref_processor()->enable_discovery(); + ref_processor()->setup_policy(maximum_heap_compaction); bool marked_for_unloading = false; @@ -1894,26 +1895,14 @@ // Process reference objects found during marking { TraceTime tm_r("reference processing", print_phases(), true, gclog_or_tty); - ReferencePolicy *soft_ref_policy; - if (maximum_heap_compaction) { - soft_ref_policy = new AlwaysClearPolicy(); - } else { -#ifdef COMPILER2 - soft_ref_policy = new LRUMaxHeapPolicy(); -#else - soft_ref_policy = new LRUCurrentHeapPolicy(); -#endif // COMPILER2 - } - assert(soft_ref_policy != NULL, "No soft reference policy"); if (ref_processor()->processing_is_mt()) { RefProcTaskExecutor task_executor; ref_processor()->process_discovered_references( - soft_ref_policy, is_alive_closure(), &mark_and_push_closure, - &follow_stack_closure, &task_executor); + is_alive_closure(), &mark_and_push_closure, &follow_stack_closure, + &task_executor); } else { ref_processor()->process_discovered_references( - soft_ref_policy, is_alive_closure(), &mark_and_push_closure, - &follow_stack_closure, NULL); + is_alive_closure(), &mark_and_push_closure, &follow_stack_closure, NULL); } }
--- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPermGen.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPermGen.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2001-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -330,6 +330,7 @@ COMPILER2_PRESENT(DerivedPointerTable::clear()); reference_processor()->enable_discovery(); + reference_processor()->setup_policy(false); // We track how much was promoted to the next generation for // the AdaptiveSizePolicy. @@ -394,24 +395,16 @@ // Process reference objects discovered during scavenge { -#ifdef COMPILER2 - ReferencePolicy *soft_ref_policy = new LRUMaxHeapPolicy(); -#else - ReferencePolicy *soft_ref_policy = new LRUCurrentHeapPolicy(); -#endif // COMPILER2 - + reference_processor()->setup_policy(false); // not always_clear PSKeepAliveClosure keep_alive(promotion_manager); PSEvacuateFollowersClosure evac_followers(promotion_manager); - assert(soft_ref_policy != NULL,"No soft reference policy"); if (reference_processor()->processing_is_mt()) { PSRefProcTaskExecutor task_executor; reference_processor()->process_discovered_references( - soft_ref_policy, &_is_alive_closure, &keep_alive, &evac_followers, - &task_executor); + &_is_alive_closure, &keep_alive, &evac_followers, &task_executor); } else { reference_processor()->process_discovered_references( - soft_ref_policy, &_is_alive_closure, &keep_alive, &evac_followers, - NULL); + &_is_alive_closure, &keep_alive, &evac_followers, NULL); } }
--- a/hotspot/src/share/vm/gc_implementation/shared/mutableNUMASpace.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/gc_implementation/shared/mutableNUMASpace.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -414,9 +414,20 @@ if (limit > 0) { limit = round_down(limit, page_size()); if (chunk_size > current_chunk_size(i)) { - chunk_size = MIN2((off_t)chunk_size, (off_t)current_chunk_size(i) + (off_t)limit); + size_t upper_bound = pages_available * page_size(); + if (upper_bound > limit && + current_chunk_size(i) < upper_bound - limit) { + // The resulting upper bound should not exceed the available + // amount of memory (pages_available * page_size()). + upper_bound = current_chunk_size(i) + limit; + } + chunk_size = MIN2(chunk_size, upper_bound); } else { - chunk_size = MAX2((off_t)chunk_size, (off_t)current_chunk_size(i) - (off_t)limit); + size_t lower_bound = page_size(); + if (current_chunk_size(i) > limit) { // lower_bound shouldn't underflow. + lower_bound = current_chunk_size(i) - limit; + } + chunk_size = MAX2(chunk_size, lower_bound); } } assert(chunk_size <= pages_available * page_size(), "Chunk size out of range");
--- a/hotspot/src/share/vm/includeDB_core Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/includeDB_core Wed Jul 05 16:44:33 2017 +0200 @@ -2303,6 +2303,7 @@ javaCalls.cpp interfaceSupport.hpp javaCalls.cpp interpreter.hpp javaCalls.cpp javaCalls.hpp +javaCalls.cpp jniCheck.hpp javaCalls.cpp linkResolver.hpp javaCalls.cpp mutexLocker.hpp javaCalls.cpp nmethod.hpp @@ -3434,6 +3435,7 @@ referenceProcessor.cpp systemDictionary.hpp referenceProcessor.hpp instanceRefKlass.hpp +referenceProcessor.hpp referencePolicy.hpp reflection.cpp arguments.hpp reflection.cpp handles.inline.hpp
--- a/hotspot/src/share/vm/includeDB_features Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/includeDB_features Wed Jul 05 16:44:33 2017 +0200 @@ -115,6 +115,8 @@ heapInspection.cpp os.hpp heapInspection.cpp resourceArea.hpp +javaCalls.cpp jniCheck.hpp + jniCheck.cpp fieldDescriptor.hpp jniCheck.cpp handles.hpp jniCheck.cpp instanceKlass.hpp
--- a/hotspot/src/share/vm/interpreter/bytecodeStream.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/interpreter/bytecodeStream.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/interpreter/bytecodes.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/interpreter/bytecodes.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/interpreter/bytecodes.hpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/interpreter/bytecodes.hpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/memory/defNewGeneration.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/memory/defNewGeneration.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -540,14 +540,6 @@ assert(gch->no_allocs_since_save_marks(0), "save marks have not been newly set."); - // Weak refs. - // FIXME: Are these storage leaks, or are they resource objects? -#ifdef COMPILER2 - ReferencePolicy *soft_ref_policy = new LRUMaxHeapPolicy(); -#else - ReferencePolicy *soft_ref_policy = new LRUCurrentHeapPolicy(); -#endif // COMPILER2 - // Not very pretty. CollectorPolicy* cp = gch->collector_policy(); @@ -574,8 +566,10 @@ evacuate_followers.do_void(); FastKeepAliveClosure keep_alive(this, &scan_weak_ref); - ref_processor()->process_discovered_references( - soft_ref_policy, &is_alive, &keep_alive, &evacuate_followers, NULL); + ReferenceProcessor* rp = ref_processor(); + rp->setup_policy(clear_all_soft_refs); + rp->process_discovered_references(&is_alive, &keep_alive, &evacuate_followers, + NULL); if (!promotion_failed()) { // Swap the survivor spaces. eden()->clear(SpaceDecorator::Mangle);
--- a/hotspot/src/share/vm/memory/genCollectedHeap.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/memory/genCollectedHeap.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -525,8 +525,9 @@ if (rp->discovery_is_atomic()) { rp->verify_no_references_recorded(); rp->enable_discovery(); + rp->setup_policy(clear_all_soft_refs); } else { - // collect() will enable discovery as appropriate + // collect() below will enable discovery as appropriate } _gens[i]->collect(full, clear_all_soft_refs, size, is_tlab); if (!rp->enqueuing_is_done()) {
--- a/hotspot/src/share/vm/memory/genMarkSweep.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/memory/genMarkSweep.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -31,8 +31,9 @@ // hook up weak ref data so it can be used during Mark-Sweep assert(ref_processor() == NULL, "no stomping"); + assert(rp != NULL, "should be non-NULL"); _ref_processor = rp; - assert(rp != NULL, "should be non-NULL"); + rp->setup_policy(clear_all_softrefs); TraceTime t1("Full GC", PrintGC && !PrintGCDetails, true, gclog_or_tty); @@ -245,20 +246,9 @@ // Process reference objects found during marking { - ReferencePolicy *soft_ref_policy; - if (clear_all_softrefs) { - soft_ref_policy = new AlwaysClearPolicy(); - } else { -#ifdef COMPILER2 - soft_ref_policy = new LRUMaxHeapPolicy(); -#else - soft_ref_policy = new LRUCurrentHeapPolicy(); -#endif // COMPILER2 - } - assert(soft_ref_policy != NULL,"No soft reference policy"); + ref_processor()->setup_policy(clear_all_softrefs); ref_processor()->process_discovered_references( - soft_ref_policy, &is_alive, &keep_alive, - &follow_stack_closure, NULL); + &is_alive, &keep_alive, &follow_stack_closure, NULL); } // Follow system dictionary roots and unload classes
--- a/hotspot/src/share/vm/memory/referencePolicy.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/memory/referencePolicy.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2000-2003 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -26,6 +26,11 @@ # include "incls/_referencePolicy.cpp.incl" LRUCurrentHeapPolicy::LRUCurrentHeapPolicy() { + setup(); +} + +// Capture state (of-the-VM) information needed to evaluate the policy +void LRUCurrentHeapPolicy::setup() { _max_interval = (Universe::get_heap_free_at_last_gc() / M) * SoftRefLRUPolicyMSPerMB; assert(_max_interval >= 0,"Sanity check"); } @@ -47,6 +52,11 @@ /////////////////////// MaxHeap ////////////////////// LRUMaxHeapPolicy::LRUMaxHeapPolicy() { + setup(); +} + +// Capture state (of-the-VM) information needed to evaluate the policy +void LRUMaxHeapPolicy::setup() { size_t max_heap = MaxHeapSize; max_heap -= Universe::get_heap_used_at_last_gc(); max_heap /= M;
--- a/hotspot/src/share/vm/memory/referencePolicy.hpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/memory/referencePolicy.hpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2000 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -26,9 +26,11 @@ // should be cleared. -class ReferencePolicy : public ResourceObj { +class ReferencePolicy : public CHeapObj { public: virtual bool should_clear_reference(oop p) { ShouldNotReachHere(); return true; } + // Capture state (of-the-VM) information needed to evaluate the policy + virtual void setup() { /* do nothing */ } }; class NeverClearPolicy : public ReferencePolicy { @@ -48,6 +50,8 @@ public: LRUCurrentHeapPolicy(); + // Capture state (of-the-VM) information needed to evaluate the policy + void setup(); bool should_clear_reference(oop p); }; @@ -58,5 +62,7 @@ public: LRUMaxHeapPolicy(); + // Capture state (of-the-VM) information needed to evaluate the policy + void setup(); bool should_clear_reference(oop p); };
--- a/hotspot/src/share/vm/memory/referenceProcessor.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/memory/referenceProcessor.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -25,6 +25,11 @@ # include "incls/_precompiled.incl" # include "incls/_referenceProcessor.cpp.incl" +ReferencePolicy* ReferenceProcessor::_always_clear_soft_ref_policy = NULL; +ReferencePolicy* ReferenceProcessor::_default_soft_ref_policy = NULL; +oop ReferenceProcessor::_sentinelRef = NULL; +const int subclasses_of_ref = REF_PHANTOM - REF_OTHER; + // List of discovered references. class DiscoveredList { public: @@ -47,7 +52,9 @@ } bool empty() const { return head() == ReferenceProcessor::sentinel_ref(); } size_t length() { return _len; } - void set_length(size_t len) { _len = len; } + void set_length(size_t len) { _len = len; } + void inc_length(size_t inc) { _len += inc; assert(_len > 0, "Error"); } + void dec_length(size_t dec) { _len -= dec; } private: // Set value depending on UseCompressedOops. This could be a template class // but then we have to fix all the instantiations and declarations that use this class. @@ -56,10 +63,6 @@ size_t _len; }; -oop ReferenceProcessor::_sentinelRef = NULL; - -const int subclasses_of_ref = REF_PHANTOM - REF_OTHER; - void referenceProcessor_init() { ReferenceProcessor::init_statics(); } @@ -80,6 +83,12 @@ } assert(_sentinelRef != NULL && _sentinelRef->is_oop(), "Just constructed it!"); + _always_clear_soft_ref_policy = new AlwaysClearPolicy(); + _default_soft_ref_policy = new COMPILER2_PRESENT(LRUMaxHeapPolicy()) + NOT_COMPILER2(LRUCurrentHeapPolicy()); + if (_always_clear_soft_ref_policy == NULL || _default_soft_ref_policy == NULL) { + vm_exit_during_initialization("Could not allocate reference policy object"); + } guarantee(RefDiscoveryPolicy == ReferenceBasedDiscovery || RefDiscoveryPolicy == ReferentBasedDiscovery, "Unrecongnized RefDiscoveryPolicy"); @@ -106,6 +115,7 @@ vm_exit_during_initialization("Could not allocate ReferenceProcessor object"); } rp->set_is_alive_non_header(is_alive_non_header); + rp->setup_policy(false /* default soft ref policy */); return rp; } @@ -192,7 +202,6 @@ } void ReferenceProcessor::process_discovered_references( - ReferencePolicy* policy, BoolObjectClosure* is_alive, OopClosure* keep_alive, VoidClosure* complete_gc, @@ -207,7 +216,7 @@ // Soft references { TraceTime tt("SoftReference", trace_time, false, gclog_or_tty); - process_discovered_reflist(_discoveredSoftRefs, policy, true, + process_discovered_reflist(_discoveredSoftRefs, _current_soft_ref_policy, true, is_alive, keep_alive, complete_gc, task_executor); } @@ -436,13 +445,13 @@ // The "allow_null_referent" argument tells us to allow for the possibility // of a NULL referent in the discovered Reference object. This typically // happens in the case of concurrent collectors that may have done the - // discovery concurrently or interleaved with mutator execution. + // discovery concurrently, or interleaved, with mutator execution. inline void load_ptrs(DEBUG_ONLY(bool allow_null_referent)); // Move to the next discovered reference. inline void next(); - // Remove the current reference from the list and move to the next. + // Remove the current reference from the list inline void remove(); // Make the Reference object active again. @@ -476,7 +485,6 @@ inline size_t removed() const { return _removed; } ) -private: inline void move_to_next(); private: @@ -553,7 +561,7 @@ oopDesc::store_heap_oop((oop*)_prev_next, _next); } NOT_PRODUCT(_removed++); - move_to_next(); + _refs_list.dec_length(1); } inline void DiscoveredListIterator::move_to_next() { @@ -591,12 +599,13 @@ gclog_or_tty->print_cr("Dropping reference (" INTPTR_FORMAT ": %s" ") by policy", iter.obj(), iter.obj()->blueprint()->internal_name()); } + // Remove Reference object from list + iter.remove(); // Make the Reference object active again iter.make_active(); // keep the referent around iter.make_referent_alive(); - // Remove Reference object from list - iter.remove(); + iter.move_to_next(); } else { iter.next(); } @@ -629,12 +638,13 @@ iter.obj(), iter.obj()->blueprint()->internal_name()); } // The referent is reachable after all. + // Remove Reference object from list. + iter.remove(); // Update the referent pointer as necessary: Note that this // should not entail any recursive marking because the // referent must already have been traversed. iter.make_referent_alive(); - // Remove Reference object from list - iter.remove(); + iter.move_to_next(); } else { iter.next(); } @@ -670,6 +680,7 @@ } else { keep_alive->do_oop((oop*)next_addr); } + iter.move_to_next(); } else { iter.next(); } @@ -832,9 +843,9 @@ } java_lang_ref_Reference::set_discovered(move_tail, ref_lists[to_idx].head()); ref_lists[to_idx].set_head(move_head); - ref_lists[to_idx].set_length(ref_lists[to_idx].length() + refs_to_move); + ref_lists[to_idx].inc_length(refs_to_move); ref_lists[from_idx].set_head(new_head); - ref_lists[from_idx].set_length(ref_lists[from_idx].length() - refs_to_move); + ref_lists[from_idx].dec_length(refs_to_move); } else { ++to_idx; } @@ -923,7 +934,6 @@ void ReferenceProcessor::clean_up_discovered_reflist(DiscoveredList& refs_list) { assert(!discovery_is_atomic(), "Else why call this method?"); DiscoveredListIterator iter(refs_list, NULL, NULL); - size_t length = refs_list.length(); while (iter.has_next()) { iter.load_ptrs(DEBUG_ONLY(true /* allow_null_referent */)); oop next = java_lang_ref_Reference::next(iter.obj()); @@ -941,12 +951,11 @@ ) // Remove Reference object from list iter.remove(); - --length; + iter.move_to_next(); } else { iter.next(); } } - refs_list.set_length(length); NOT_PRODUCT( if (PrintGCDetails && TraceReferenceGC) { gclog_or_tty->print( @@ -1024,7 +1033,7 @@ // We have separate lists for enqueueing so no synchronization // is necessary. refs_list.set_head(obj); - refs_list.set_length(refs_list.length() + 1); + refs_list.inc_length(1); if (_discovered_list_needs_barrier) { _bs->write_ref_field((void*)discovered_addr, current_head); guarantee(false, "Needs to be fixed: YSR"); } @@ -1090,15 +1099,28 @@ // reachable. if (is_alive_non_header() != NULL) { oop referent = java_lang_ref_Reference::referent(obj); - // We'd like to assert the following: - // assert(referent != NULL, "Refs with null referents already filtered"); - // However, since this code may be executed concurrently with - // mutators, which can clear() the referent, it is not - // guaranteed that the referent is non-NULL. + // In the case of non-concurrent discovery, the last + // disjunct below should hold. It may not hold in the + // case of concurrent discovery because mutators may + // concurrently clear() a Reference. + assert(UseConcMarkSweepGC || UseG1GC || referent != NULL, + "Refs with null referents already filtered"); if (is_alive_non_header()->do_object_b(referent)) { return false; // referent is reachable } } + if (rt == REF_SOFT) { + // For soft refs we can decide now if these are not + // current candidates for clearing, in which case we + // can mark through them now, rather than delaying that + // to the reference-processing phase. Since all current + // time-stamp policies advance the soft-ref clock only + // at a major collection cycle, this is always currently + // accurate. + if (!_current_soft_ref_policy->should_clear_reference(obj)) { + return false; + } + } HeapWord* const discovered_addr = java_lang_ref_Reference::discovered_addr(obj); const oop discovered = java_lang_ref_Reference::discovered(obj); @@ -1168,7 +1190,7 @@ _bs->write_ref_field((oop*)discovered_addr, current_head); } list->set_head(obj); - list->set_length(list->length() + 1); + list->inc_length(1); } // In the MT discovery case, it is currently possible to see @@ -1209,45 +1231,48 @@ TraceTime tt("Preclean SoftReferences", PrintGCDetails && PrintReferenceGC, false, gclog_or_tty); for (int i = 0; i < _num_q; i++) { + if (yield->should_return()) { + return; + } preclean_discovered_reflist(_discoveredSoftRefs[i], is_alive, keep_alive, complete_gc, yield); } } - if (yield->should_return()) { - return; - } // Weak references { TraceTime tt("Preclean WeakReferences", PrintGCDetails && PrintReferenceGC, false, gclog_or_tty); for (int i = 0; i < _num_q; i++) { + if (yield->should_return()) { + return; + } preclean_discovered_reflist(_discoveredWeakRefs[i], is_alive, keep_alive, complete_gc, yield); } } - if (yield->should_return()) { - return; - } // Final references { TraceTime tt("Preclean FinalReferences", PrintGCDetails && PrintReferenceGC, false, gclog_or_tty); for (int i = 0; i < _num_q; i++) { + if (yield->should_return()) { + return; + } preclean_discovered_reflist(_discoveredFinalRefs[i], is_alive, keep_alive, complete_gc, yield); } } - if (yield->should_return()) { - return; - } // Phantom references { TraceTime tt("Preclean PhantomReferences", PrintGCDetails && PrintReferenceGC, false, gclog_or_tty); for (int i = 0; i < _num_q; i++) { + if (yield->should_return()) { + return; + } preclean_discovered_reflist(_discoveredPhantomRefs[i], is_alive, keep_alive, complete_gc, yield); } @@ -1256,9 +1281,12 @@ // Walk the given discovered ref list, and remove all reference objects // whose referents are still alive, whose referents are NULL or which -// are not active (have a non-NULL next field). NOTE: For this to work -// correctly, refs discovery can not be happening concurrently with this -// step. +// are not active (have a non-NULL next field). NOTE: When we are +// thus precleaning the ref lists (which happens single-threaded today), +// we do not disable refs discovery to honour the correct semantics of +// java.lang.Reference. As a result, we need to be careful below +// that ref removal steps interleave safely with ref discovery steps +// (in this thread). void ReferenceProcessor::preclean_discovered_reflist(DiscoveredList& refs_list, BoolObjectClosure* is_alive, @@ -1266,7 +1294,6 @@ VoidClosure* complete_gc, YieldClosure* yield) { DiscoveredListIterator iter(refs_list, keep_alive, is_alive); - size_t length = refs_list.length(); while (iter.has_next()) { iter.load_ptrs(DEBUG_ONLY(true /* allow_null_referent */)); oop obj = iter.obj(); @@ -1281,7 +1308,6 @@ } // Remove Reference object from list iter.remove(); - --length; // Keep alive its cohort. iter.make_referent_alive(); if (UseCompressedOops) { @@ -1291,12 +1317,11 @@ oop* next_addr = (oop*)java_lang_ref_Reference::next_addr(obj); keep_alive->do_oop(next_addr); } + iter.move_to_next(); } else { iter.next(); } } - refs_list.set_length(length); - // Close the reachable set complete_gc->do_void();
--- a/hotspot/src/share/vm/memory/referenceProcessor.hpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/memory/referenceProcessor.hpp Wed Jul 05 16:44:33 2017 +0200 @@ -23,7 +23,7 @@ */ // ReferenceProcessor class encapsulates the per-"collector" processing -// of "weak" references for GC. The interface is useful for supporting +// of java.lang.Reference objects for GC. The interface is useful for supporting // a generational abstraction, in particular when there are multiple // generations that are being independently collected -- possibly // concurrently and/or incrementally. Note, however, that the @@ -75,6 +75,14 @@ // all collectors but the CMS collector). BoolObjectClosure* _is_alive_non_header; + // Soft ref clearing policies + // . the default policy + static ReferencePolicy* _default_soft_ref_policy; + // . the "clear all" policy + static ReferencePolicy* _always_clear_soft_ref_policy; + // . the current policy below is either one of the above + ReferencePolicy* _current_soft_ref_policy; + // The discovered ref lists themselves // The MT'ness degree of the queues below @@ -90,6 +98,12 @@ DiscoveredList* discovered_soft_refs() { return _discoveredSoftRefs; } static oop sentinel_ref() { return _sentinelRef; } static oop* adr_sentinel_ref() { return &_sentinelRef; } + ReferencePolicy* setup_policy(bool always_clear) { + _current_soft_ref_policy = always_clear ? + _always_clear_soft_ref_policy : _default_soft_ref_policy; + _current_soft_ref_policy->setup(); // snapshot the policy threshold + return _current_soft_ref_policy; + } public: // Process references with a certain reachability level. @@ -297,8 +311,7 @@ bool discover_reference(oop obj, ReferenceType rt); // Process references found during GC (called by the garbage collector) - void process_discovered_references(ReferencePolicy* policy, - BoolObjectClosure* is_alive, + void process_discovered_references(BoolObjectClosure* is_alive, OopClosure* keep_alive, VoidClosure* complete_gc, AbstractRefProcTaskExecutor* task_executor);
--- a/hotspot/src/share/vm/memory/tenuredGeneration.hpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/memory/tenuredGeneration.hpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/memory/universe.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/memory/universe.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -96,7 +96,7 @@ bool Universe::_fully_initialized = false; size_t Universe::_heap_capacity_at_last_gc; -size_t Universe::_heap_used_at_last_gc; +size_t Universe::_heap_used_at_last_gc = 0; CollectedHeap* Universe::_collectedHeap = NULL; address Universe::_heap_base = NULL;
--- a/hotspot/src/share/vm/oops/constantPoolOop.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/oops/constantPoolOop.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/oops/oop.inline.hpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/oops/oop.inline.hpp Wed Jul 05 16:44:33 2017 +0200 @@ -92,7 +92,7 @@ // This is only to be used during GC, for from-space objects, so no // barrier is needed. if (UseCompressedOops) { - _metadata._compressed_klass = encode_heap_oop_not_null(k); + _metadata._compressed_klass = encode_heap_oop(k); // may be null (parnew overflow handling) } else { _metadata._klass = (klassOop)k; }
--- a/hotspot/src/share/vm/opto/block.hpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/opto/block.hpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/opto/callnode.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/opto/callnode.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -395,7 +395,13 @@ OptoReg::regname(OptoReg::c_frame_pointer), regalloc->reg2offset(box_reg)); } - format_helper( regalloc, st, obj, "MON-OBJ[", i, &scobjs ); + const char* obj_msg = "MON-OBJ["; + if (EliminateLocks) { + while( !box->is_BoxLock() ) box = box->in(1); + if (box->as_BoxLock()->is_eliminated()) + obj_msg = "MON-OBJ(LOCK ELIMINATED)["; + } + format_helper( regalloc, st, obj, obj_msg, i, &scobjs ); } for (i = 0; i < (uint)scobjs.length(); i++) { @@ -908,8 +914,9 @@ add_req(lock->box_node()); add_req(lock->obj_node()); } else { - add_req(NULL); - add_req(NULL); + Node* top = Compile::current()->top(); + add_req(top); + add_req(top); } jvms()->set_scloff(nextmon+MonitorEdges); jvms()->set_endoff(req()); @@ -1382,7 +1389,7 @@ // // If we are locking an unescaped object, the lock/unlock is unnecessary // - ConnectionGraph *cgr = Compile::current()->congraph(); + ConnectionGraph *cgr = phase->C->congraph(); PointsToNode::EscapeState es = PointsToNode::GlobalEscape; if (cgr != NULL) es = cgr->escape_state(obj_node(), phase); @@ -1450,6 +1457,7 @@ // Mark it eliminated to update any counters lock->set_eliminated(); + lock->set_coarsened(); } } else if (result != NULL && ctrl->is_Region() && iter->_worklist.member(ctrl)) { @@ -1484,7 +1492,7 @@ // // If we are unlocking an unescaped object, the lock/unlock is unnecessary. // - ConnectionGraph *cgr = Compile::current()->congraph(); + ConnectionGraph *cgr = phase->C->congraph(); PointsToNode::EscapeState es = PointsToNode::GlobalEscape; if (cgr != NULL) es = cgr->escape_state(obj_node(), phase);
--- a/hotspot/src/share/vm/opto/callnode.hpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/opto/callnode.hpp Wed Jul 05 16:44:33 2017 +0200 @@ -780,7 +780,8 @@ //------------------------------AbstractLockNode----------------------------------- class AbstractLockNode: public CallNode { private: - bool _eliminate; // indicates this lock can be safely eliminated + bool _eliminate; // indicates this lock can be safely eliminated + bool _coarsened; // indicates this lock was coarsened #ifndef PRODUCT NamedCounter* _counter; #endif @@ -801,6 +802,7 @@ public: AbstractLockNode(const TypeFunc *tf) : CallNode(tf, NULL, TypeRawPtr::BOTTOM), + _coarsened(false), _eliminate(false) { #ifndef PRODUCT @@ -819,6 +821,9 @@ // mark node as eliminated and update the counter if there is one void set_eliminated(); + bool is_coarsened() { return _coarsened; } + void set_coarsened() { _coarsened = true; } + // locking does not modify its arguments virtual bool may_modify(const TypePtr *addr_t, PhaseTransform *phase){ return false;}
--- a/hotspot/src/share/vm/opto/compile.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/opto/compile.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -1532,11 +1532,6 @@ if (failing()) return; - // get rid of the connection graph since it's information is not - // updated by optimizations - _congraph = NULL; - - // Loop transforms on the ideal graph. Range Check Elimination, // peeling, unrolling, etc.
--- a/hotspot/src/share/vm/opto/escape.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/opto/escape.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -199,7 +199,8 @@ es = ptnode_adr(idx)->escape_state(); // if we have already computed a value, return it - if (es != PointsToNode::UnknownEscape) + if (es != PointsToNode::UnknownEscape && + ptnode_adr(idx)->node_type() == PointsToNode::JavaObject) return es; // PointsTo() calls n->uncast() which can return a new ideal node.
--- a/hotspot/src/share/vm/opto/locknode.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/opto/locknode.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -44,10 +44,15 @@ _inmask.Insert(reg); } +//-----------------------------hash-------------------------------------------- +uint BoxLockNode::hash() const { + return Node::hash() + _slot + (_is_eliminated ? Compile::current()->fixed_slots() : 0); +} + //------------------------------cmp-------------------------------------------- uint BoxLockNode::cmp( const Node &n ) const { const BoxLockNode &bn = (const BoxLockNode &)n; - return bn._slot == _slot; + return bn._slot == _slot && bn._is_eliminated == _is_eliminated; } OptoReg::Name BoxLockNode::stack_slot(Node* box_node) {
--- a/hotspot/src/share/vm/opto/locknode.hpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/opto/locknode.hpp Wed Jul 05 16:44:33 2017 +0200 @@ -36,7 +36,7 @@ virtual const RegMask &in_RegMask(uint) const; virtual const RegMask &out_RegMask() const; virtual uint size_of() const; - virtual uint hash() const { return Node::hash() + _slot; } + virtual uint hash() const; virtual uint cmp( const Node &n ) const; virtual const class Type *bottom_type() const { return TypeRawPtr::BOTTOM; } virtual uint ideal_reg() const { return Op_RegP; }
--- a/hotspot/src/share/vm/opto/macro.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/opto/macro.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -59,7 +59,7 @@ for (uint i = old_dbg_start; i < oldcall->req(); i++) { Node* old_in = oldcall->in(i); // Clone old SafePointScalarObjectNodes, adjusting their field contents. - if (old_in->is_SafePointScalarObject()) { + if (old_in != NULL && old_in->is_SafePointScalarObject()) { SafePointScalarObjectNode* old_sosn = old_in->as_SafePointScalarObject(); uint old_unique = C->unique(); Node* new_in = old_sosn->clone(jvms_adj, sosn_map); @@ -1509,21 +1509,63 @@ if (!alock->is_eliminated()) { return false; } - // Mark the box lock as eliminated if all correspondent locks are eliminated - // to construct correct debug info. - BoxLockNode* box = alock->box_node()->as_BoxLock(); - if (!box->is_eliminated()) { - bool eliminate = true; - for (DUIterator_Fast imax, i = box->fast_outs(imax); i < imax; i++) { - Node *lck = box->fast_out(i); - if (lck->is_Lock() && !lck->as_AbstractLock()->is_eliminated()) { - eliminate = false; - break; - } - } - if (eliminate) - box->set_eliminated(); - } + if (alock->is_Lock() && !alock->is_coarsened()) { + // Create new "eliminated" BoxLock node and use it + // in monitor debug info for the same object. + BoxLockNode* oldbox = alock->box_node()->as_BoxLock(); + Node* obj = alock->obj_node(); + if (!oldbox->is_eliminated()) { + BoxLockNode* newbox = oldbox->clone()->as_BoxLock(); + newbox->set_eliminated(); + transform_later(newbox); + // Replace old box node with new box for all users + // of the same object. + for (uint i = 0; i < oldbox->outcnt();) { + + bool next_edge = true; + Node* u = oldbox->raw_out(i); + if (u == alock) { + i++; + continue; // It will be removed below + } + if (u->is_Lock() && + u->as_Lock()->obj_node() == obj && + // oldbox could be referenced in debug info also + u->as_Lock()->box_node() == oldbox) { + assert(u->as_Lock()->is_eliminated(), "sanity"); + _igvn.hash_delete(u); + u->set_req(TypeFunc::Parms + 1, newbox); + next_edge = false; +#ifdef ASSERT + } else if (u->is_Unlock() && u->as_Unlock()->obj_node() == obj) { + assert(u->as_Unlock()->is_eliminated(), "sanity"); +#endif + } + // Replace old box in monitor debug info. + if (u->is_SafePoint() && u->as_SafePoint()->jvms()) { + SafePointNode* sfn = u->as_SafePoint(); + JVMState* youngest_jvms = sfn->jvms(); + int max_depth = youngest_jvms->depth(); + for (int depth = 1; depth <= max_depth; depth++) { + JVMState* jvms = youngest_jvms->of_depth(depth); + int num_mon = jvms->nof_monitors(); + // Loop over monitors + for (int idx = 0; idx < num_mon; idx++) { + Node* obj_node = sfn->monitor_obj(jvms, idx); + Node* box_node = sfn->monitor_box(jvms, idx); + if (box_node == oldbox && obj_node == obj) { + int j = jvms->monitor_box_offset(idx); + _igvn.hash_delete(u); + u->set_req(j, newbox); + next_edge = false; + } + } // for (int idx = 0; + } // for (int depth = 1; + } // if (u->is_SafePoint() + if (next_edge) i++; + } // for (uint i = 0; i < oldbox->outcnt();) + } // if (!oldbox->is_eliminated()) + } // if (alock->is_Lock() && !lock->is_coarsened()) #ifndef PRODUCT if (PrintEliminateLocks) { @@ -1562,6 +1604,15 @@ _igvn.subsume_node(ctrlproj, fallthroughproj); _igvn.hash_delete(memproj); _igvn.subsume_node(memproj, memproj_fallthrough); + + // Delete FastLock node also if this Lock node is unique user + // (a loop peeling may clone a Lock node). + Node* flock = alock->as_Lock()->fastlock_node(); + if (flock->outcnt() == 1) { + assert(flock->unique_out() == alock, "sanity"); + _igvn.hash_delete(flock); + _igvn.subsume_node(flock, top()); + } } // Seach for MemBarRelease node and delete it also. @@ -1887,7 +1938,7 @@ bool PhaseMacroExpand::expand_macro_nodes() { if (C->macro_count() == 0) return false; - // attempt to eliminate allocations + // First, attempt to eliminate locks bool progress = true; while (progress) { progress = false; @@ -1895,6 +1946,26 @@ Node * n = C->macro_node(i-1); bool success = false; debug_only(int old_macro_count = C->macro_count();); + if (n->is_AbstractLock()) { + success = eliminate_locking_node(n->as_AbstractLock()); + } else if (n->Opcode() == Op_Opaque1 || n->Opcode() == Op_Opaque2) { + _igvn.add_users_to_worklist(n); + _igvn.hash_delete(n); + _igvn.subsume_node(n, n->in(1)); + success = true; + } + assert(success == (C->macro_count() < old_macro_count), "elimination reduces macro count"); + progress = progress || success; + } + } + // Next, attempt to eliminate allocations + progress = true; + while (progress) { + progress = false; + for (int i = C->macro_count(); i > 0; i--) { + Node * n = C->macro_node(i-1); + bool success = false; + debug_only(int old_macro_count = C->macro_count();); switch (n->class_id()) { case Node::Class_Allocate: case Node::Class_AllocateArray: @@ -1902,17 +1973,10 @@ break; case Node::Class_Lock: case Node::Class_Unlock: - success = eliminate_locking_node(n->as_AbstractLock()); + assert(!n->as_AbstractLock()->is_eliminated(), "sanity"); break; default: - if (n->Opcode() == Op_Opaque1 || n->Opcode() == Op_Opaque2) { - _igvn.add_users_to_worklist(n); - _igvn.hash_delete(n); - _igvn.subsume_node(n, n->in(1)); - success = true; - } else { - assert(false, "unknown node type in macro list"); - } + assert(false, "unknown node type in macro list"); } assert(success == (C->macro_count() < old_macro_count), "elimination reduces macro count"); progress = progress || success;
--- a/hotspot/src/share/vm/opto/output.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/opto/output.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -849,10 +849,8 @@ // Loop over monitors and insert into array for(idx = 0; idx < num_mon; idx++) { // Grab the node that defines this monitor - Node* box_node; - Node* obj_node; - box_node = sfn->monitor_box(jvms, idx); - obj_node = sfn->monitor_obj(jvms, idx); + Node* box_node = sfn->monitor_box(jvms, idx); + Node* obj_node = sfn->monitor_obj(jvms, idx); // Create ScopeValue for object ScopeValue *scval = NULL; @@ -890,6 +888,7 @@ OptoReg::Name box_reg = BoxLockNode::stack_slot(box_node); Location basic_lock = Location::new_stk_loc(Location::normal,_regalloc->reg2offset(box_reg)); + while( !box_node->is_BoxLock() ) box_node = box_node->in(1); monarray->append(new MonitorValue(scval, basic_lock, box_node->as_BoxLock()->is_eliminated())); }
--- a/hotspot/src/share/vm/opto/phase.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/opto/phase.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/opto/phase.hpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/opto/phase.hpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/prims/jniCheck.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/prims/jniCheck.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2001-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -112,18 +112,6 @@ static const char * fatal_non_string = "JNI string operation received a non-string"; - -// Report a JNI failure caught by -Xcheck:jni. Perform a core dump. -// Note: two variations -- one to be called when in VM state (e.g. when -// within IN_VM macro), one to be called when in NATIVE state. - -// When in VM state: -static void ReportJNIFatalError(JavaThread* thr, const char *msg) { - tty->print_cr("FATAL ERROR in native method: %s", msg); - thr->print_stack(); - os::abort(true); -} - // When in VM state: static void ReportJNIWarning(JavaThread* thr, const char *msg) { tty->print_cr("WARNING in native method: %s", msg);
--- a/hotspot/src/share/vm/prims/jniCheck.hpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/prims/jniCheck.hpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2003-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,6 +22,19 @@ * */ +extern "C" { + // Report a JNI failure caught by -Xcheck:jni. Perform a core dump. + // Note: two variations -- one to be called when in VM state (e.g. when + // within IN_VM macro), one to be called when in NATIVE state. + + // When in VM state: + static void ReportJNIFatalError(JavaThread* thr, const char *msg) { + tty->print_cr("FATAL ERROR in native method: %s", msg); + thr->print_stack(); + os::abort(true); + } +} + // // Checked JNI routines that are useful for outside of checked JNI //
--- a/hotspot/src/share/vm/prims/jvmtiEnvBase.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/prims/jvmtiEnvBase.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/prims/jvmtiTrace.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/prims/jvmtiTrace.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/runtime/arguments.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/runtime/arguments.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -2322,7 +2322,12 @@ return JNI_ERR; } } - + // Change the default value for flags which have different default values + // when working with older JDKs. + if (JDK_Version::current().compare_major(6) <= 0 && + FLAG_IS_DEFAULT(UseVMInterruptibleIO)) { + FLAG_SET_DEFAULT(UseVMInterruptibleIO, true); + } return JNI_OK; }
--- a/hotspot/src/share/vm/runtime/biasedLocking.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/runtime/biasedLocking.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -582,13 +582,19 @@ if (heuristics == HR_NOT_BIASED) { return NOT_BIASED; } else if (heuristics == HR_SINGLE_REVOKE) { - if (mark->biased_locker() == THREAD) { + Klass *k = Klass::cast(obj->klass()); + markOop prototype_header = k->prototype_header(); + if (mark->biased_locker() == THREAD && + prototype_header->bias_epoch() == mark->bias_epoch()) { // A thread is trying to revoke the bias of an object biased // toward it, again likely due to an identity hash code // computation. We can again avoid a safepoint in this case // since we are only going to walk our own stack. There are no // races with revocations occurring in other threads because we // reach no safepoints in the revocation path. + // Also check the epoch because even if threads match, another thread + // can come in with a CAS to steal the bias of an object that has a + // stale epoch. ResourceMark rm; if (TraceBiasedLocking) { tty->print_cr("Revoking bias by walking my own stack:");
--- a/hotspot/src/share/vm/runtime/globals.hpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/runtime/globals.hpp Wed Jul 05 16:44:33 2017 +0200 @@ -342,6 +342,9 @@ product(bool, UseNUMA, false, \ "Use NUMA if available") \ \ + product(bool, ForceNUMA, false, \ + "Force NUMA optimizations on single-node/UMA systems") \ + \ product(intx, NUMAChunkResizeWeight, 20, \ "Percentage (0-100) used to weight the current sample when " \ "computing exponentially decaying average for " \ @@ -1474,7 +1477,7 @@ "CMSPrecleanNumerator:CMSPrecleanDenominator yields convergence" \ " ratio") \ \ - product(bool, CMSPrecleanRefLists1, false, \ + product(bool, CMSPrecleanRefLists1, true, \ "Preclean ref lists during (initial) preclean phase") \ \ product(bool, CMSPrecleanRefLists2, false, \ @@ -3262,9 +3265,10 @@ diagnostic(bool, PrintDTraceDOF, false, \ "Print the DTrace DOF passed to the system for JSDT probes") \ \ - product(bool, UseVMInterruptibleIO, true, \ + product(bool, UseVMInterruptibleIO, false, \ "(Unstable, Solaris-specific) Thread interrupt before or with " \ - "EINTR for I/O operations results in OS_INTRPT") + "EINTR for I/O operations results in OS_INTRPT. The default value"\ + " of this flag is true for JDK 6 and earliers") /*
--- a/hotspot/src/share/vm/runtime/javaCalls.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/runtime/javaCalls.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -309,8 +309,12 @@ CHECK_UNHANDLED_OOPS_ONLY(thread->clear_unhandled_oops();) - // Make sure that the arguments have the right type - debug_only(args->verify(method, result->get_type(), thread)); + // Verify the arguments + + if (CheckJNICalls) { + args->verify(method, result->get_type(), thread); + } + else debug_only(args->verify(method, result->get_type(), thread)); // Ignore call if method is empty if (method->is_empty_method()) { @@ -431,24 +435,26 @@ return TaggedStackInterpreter ? _parameters : _value; } -//-------------------------------------------------------------------------------------- -// Non-Product code -#ifndef PRODUCT class SignatureChekker : public SignatureIterator { private: bool *_is_oop; int _pos; BasicType _return_type; + intptr_t* _value; + Thread* _thread; public: bool _is_return; - SignatureChekker(symbolHandle signature, BasicType return_type, bool is_static, bool* is_oop) : SignatureIterator(signature) { + SignatureChekker(symbolHandle signature, BasicType return_type, bool is_static, bool* is_oop, intptr_t* value, Thread* thread) : SignatureIterator(signature) { _is_oop = is_oop; _is_return = false; _return_type = return_type; _pos = 0; + _value = value; + _thread = thread; + if (!is_static) { check_value(true); // Receiver must be an oop } @@ -489,6 +495,24 @@ check_return_type(t); return; } + + // verify handle and the oop pointed to by handle + int p = _pos; + bool bad = false; + // If argument is oop + if (_is_oop[p]) { + intptr_t v = _value[p]; + if (v != 0 ) { + size_t t = (size_t)v; + bad = (t < (size_t)os::vm_page_size() ) || !(*(oop*)v)->is_oop_or_null(true); + if (CheckJNICalls && bad) { + ReportJNIFatalError((JavaThread*)_thread, "Bad JNI oop argument"); + } + } + // for the regular debug case. + assert(!bad, "Bad JNI oop argument"); + } + check_value(true); } @@ -505,6 +529,7 @@ void do_array(int begin, int end) { check_obj(T_OBJECT); } }; + void JavaCallArguments::verify(methodHandle method, BasicType return_type, Thread *thread) { guarantee(method->size_of_parameters() == size_of_parameters(), "wrong no. of arguments pushed"); @@ -515,10 +540,9 @@ // Check that oop information is correct symbolHandle signature (thread, method->signature()); - SignatureChekker sc(signature, return_type, method->is_static(),_is_oop); + SignatureChekker sc(signature, return_type, method->is_static(),_is_oop, _value, thread); sc.iterate_parameters(); sc.check_doing_return(true); sc.iterate_returntype(); } -#endif // PRODUCT
--- a/hotspot/src/share/vm/runtime/javaCalls.hpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/runtime/javaCalls.hpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -150,7 +150,7 @@ int size_of_parameters() const { return _size; } // Verify that pushed arguments fits a given method - void verify(methodHandle method, BasicType return_type, Thread *thread) PRODUCT_RETURN; + void verify(methodHandle method, BasicType return_type, Thread *thread); }; // All calls to Java have to go via JavaCalls. Sets up the stack frame
--- a/hotspot/src/share/vm/runtime/perfMemory.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/runtime/perfMemory.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2001-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/runtime/perfMemory.hpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/runtime/perfMemory.hpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2001-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/runtime/sharedRuntime.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/runtime/sharedRuntime.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -556,7 +556,10 @@ // the caller was at a call site, it's safe to destroy all // caller-saved registers, as these entry points do. VtableStub* vt_stub = VtableStubs::stub_containing(pc); - guarantee(vt_stub != NULL, "unable to find SEGVing vtable stub"); + + // If vt_stub is NULL, then return NULL to signal handler to report the SEGV error. + if (vt_stub == NULL) return NULL; + if (vt_stub->is_abstract_method_error(pc)) { assert(!vt_stub->is_vtable_stub(), "should never see AbstractMethodErrors from vtable-type VtableStubs"); return StubRoutines::throw_AbstractMethodError_entry(); @@ -565,7 +568,9 @@ } } else { CodeBlob* cb = CodeCache::find_blob(pc); - guarantee(cb != NULL, "exception happened outside interpreter, nmethods and vtable stubs (1)"); + + // If code blob is NULL, then return NULL to signal handler to report the SEGV error. + if (cb == NULL) return NULL; // Exception happened in CodeCache. Must be either: // 1. Inline-cache check in C2I handler blob, @@ -574,7 +579,7 @@ if (!cb->is_nmethod()) { guarantee(cb->is_adapter_blob(), - "exception happened outside interpreter, nmethods and vtable stubs (2)"); + "exception happened outside interpreter, nmethods and vtable stubs (1)"); // There is no handler here, so we will simply unwind. return StubRoutines::throw_NullPointerException_at_call_entry(); }
--- a/hotspot/src/share/vm/runtime/thread.hpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/runtime/thread.hpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/services/threadService.hpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/services/threadService.hpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2003-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/utilities/array.hpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/utilities/array.hpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2000-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/utilities/constantTag.hpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/utilities/constantTag.hpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/utilities/growableArray.hpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/utilities/growableArray.hpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/utilities/hashtable.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/utilities/hashtable.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2003-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/hotspot/src/share/vm/utilities/macros.hpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/utilities/macros.hpp Wed Jul 05 16:44:33 2017 +0200 @@ -65,8 +65,10 @@ // COMPILER2 variant #ifdef COMPILER2 #define COMPILER2_PRESENT(code) code +#define NOT_COMPILER2(code) #else // COMPILER2 #define COMPILER2_PRESENT(code) +#define NOT_COMPILER2(code) code #endif // COMPILER2
--- a/hotspot/src/share/vm/utilities/taskqueue.cpp Thu Dec 04 11:10:19 2008 -0800 +++ b/hotspot/src/share/vm/utilities/taskqueue.cpp Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2001-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hotspot/test/compiler/6756768/Test6756768.java Wed Jul 05 16:44:33 2017 +0200 @@ -0,0 +1,55 @@ +/* + * Copyright 2008 Sun Microsystems, Inc. All Rights Reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ + +/** + * @test + * @bug 6756768 + * @summary C1 generates invalid code + * + * @run main/othervm -Xcomp Test6756768 + */ + +class Test6756768a +{ + static boolean var_1 = true; +} + +final class Test6756768b +{ + static boolean var_24 = false; + static int var_25 = 0; + + static boolean var_temp1 = Test6756768a.var_1 = false; +} + +public final class Test6756768 extends Test6756768a +{ + final static int var = var_1 ^ (Test6756768b.var_24 ? var_1 : var_1) ? Test6756768b.var_25 : 1; + + static public void main(String[] args) { + if (var != 0) { + throw new InternalError("var = " + var); + } + } + +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hotspot/test/compiler/6756768/Test6756768_2.java Wed Jul 05 16:44:33 2017 +0200 @@ -0,0 +1,55 @@ +/* + * Copyright 2008 Sun Microsystems, Inc. All Rights Reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ + +/** + * @test + * @bug 6756768 + * @summary C1 generates invalid code + * + * @run main/othervm -Xcomp Test6756768_2 + */ + +class Test6756768_2a { + static int var = ++Test6756768_2.var; +} + +public class Test6756768_2 { + static int var = 1; + + static Object d2 = null; + + static void test_static_field() { + int v = var; + int v2 = Test6756768_2a.var; + int v3 = var; + var = v3; + } + + public static void main(String[] args) { + var = 1; + test_static_field(); + if (var != 2) { + throw new InternalError(); + } + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hotspot/test/compiler/6775880/Test.java Wed Jul 05 16:44:33 2017 +0200 @@ -0,0 +1,67 @@ +/* + * Copyright 2008 Sun Microsystems, Inc. All Rights Reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + * + */ + +/* + * @test + * @bug 6775880 + * @summary EA +DeoptimizeALot: assert(mon_info->owner()->is_locked(),"object must be locked now") + * @compile -source 1.4 -target 1.4 Test.java + * @run main/othervm -server -Xbatch -XX:+DoEscapeAnalysis -XX:+DeoptimizeALot -XX:CompileCommand=exclude,java.lang.AbstractStringBuilder::append Test + */ + +public class Test { + + int cnt; + int b[]; + String s; + + String test() { + String res=""; + for (int i=0; i < cnt; i++) { + if (i != 0) { + res = res +"."; + } + res = res + b[i]; + } + return res; + } + + public static void main(String[] args) { + Test t = new Test(); + t.cnt = 3; + t.b = new int[3]; + t.b[0] = 0; + t.b[1] = 1; + t.b[2] = 2; + int j=0; + t.s = ""; + for (int i=0; i<10001; i++) { + t.s = "c"; + t.s = t.test(); + } + System.out.println("After s=" + t.s); + } +} + +
--- a/jaxp/.hgtags Thu Dec 04 11:10:19 2008 -0800 +++ b/jaxp/.hgtags Wed Jul 05 16:44:33 2017 +0200 @@ -15,3 +15,4 @@ e9f750f0a3a00413a7b77028b2ecdabb7129ae32 jdk7-b38 831b80be6cea8e7d7da197ccdac5fd4c701a5033 jdk7-b39 54946f466e2c047c44c903f1bec400b685c2508e jdk7-b40 +0758bd3e2852e4f931ba211cc4d48f589450eeb4 jdk7-b41
--- a/jdk/.hgtags Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/.hgtags Wed Jul 05 16:44:33 2017 +0200 @@ -15,3 +15,4 @@ cc5f810b5af8a3a83b0df5a29d9e24d7a0ff8086 jdk7-b38 4e51997582effa006dde5c6d8b8820b2045b9c7f jdk7-b39 2201dad60231a3c3e0346e3a0250d69ca3b71fd4 jdk7-b40 +44941f893cea95ecdd5987b12e548069bd803849 jdk7-b41
--- a/jdk/make/common/shared/Sanity.gmk Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/make/common/shared/Sanity.gmk Wed Jul 05 16:44:33 2017 +0200 @@ -1350,10 +1350,11 @@ $(ALSA_VERSION_CHECK).c: @$(prep-target) @$(ECHO) "#include <alsa/asoundlib.h>\n" \ - "int main(char** argv, int argc) {\n" \ - " printf(\"%s\", SND_LIB_VERSION_STR);\n" \ - " return 0;\n" \ - "}\n" \ + "#include <stdio.h>\n" \ + "int main(int argc, char** argv) {\n" \ + " printf(\"%s\", SND_LIB_VERSION_STR);\n" \ + " return 0;\n" \ + "}\n" \ > $@ endif
--- a/jdk/make/javax/swing/Makefile Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/make/javax/swing/Makefile Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ # -# Copyright 1998-2006 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it
--- a/jdk/make/netbeans/jmx/build.xml Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/make/netbeans/jmx/build.xml Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ <!-- - Copyright 2007 Sun Microsystems, Inc. All Rights Reserved. + Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions
--- a/jdk/make/sun/net/spi/Makefile Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/make/sun/net/spi/Makefile Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ # -# Copyright 2000-2005 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it
--- a/jdk/make/sun/net/spi/nameservice/Makefile Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/make/sun/net/spi/nameservice/Makefile Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ # -# Copyright 2000-2005 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/com/sun/java/swing/SwingUtilities3.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/com/sun/java/swing/SwingUtilities3.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2002-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/windows/DesktopProperty.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/com/sun/java/swing/plaf/windows/DesktopProperty.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2001-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/windows/WindowsDesktopManager.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/com/sun/java/swing/plaf/windows/WindowsDesktopManager.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1998-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/windows/WindowsFileChooserUI.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/com/sun/java/swing/plaf/windows/WindowsFileChooserUI.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/windows/WindowsInternalFrameTitlePane.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/com/sun/java/swing/plaf/windows/WindowsInternalFrameTitlePane.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2001-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/windows/WindowsScrollBarUI.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/com/sun/java/swing/plaf/windows/WindowsScrollBarUI.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/windows/WindowsTabbedPaneUI.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/com/sun/java/swing/plaf/windows/WindowsTabbedPaneUI.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/windows/WindowsTableHeaderUI.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/com/sun/java/swing/plaf/windows/WindowsTableHeaderUI.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/com/sun/jmx/defaults/ServiceName.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/com/sun/jmx/defaults/ServiceName.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/com/sun/jmx/interceptor/DefaultMBeanServerInterceptor.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/com/sun/jmx/interceptor/DefaultMBeanServerInterceptor.java Wed Jul 05 16:44:33 2017 +0200 @@ -70,6 +70,7 @@ import javax.management.ListenerNotFoundException; import javax.management.MBeanException; import javax.management.MBeanInfo; +import javax.management.MBeanNotificationInfo; import javax.management.MBeanPermission; import javax.management.MBeanRegistration; import javax.management.MBeanRegistrationException; @@ -1045,8 +1046,10 @@ Object resource = getResource(mbean); MBeanInjector.inject(resource, mbs, name); if (MBeanInjector.injectsSendNotification(resource)) { + MBeanNotificationInfo[] mbnis = + mbean.getMBeanInfo().getNotifications(); NotificationBroadcasterSupport nbs = - new NotificationBroadcasterSupport(); + new NotificationBroadcasterSupport(mbnis); MBeanInjector.injectSendNotification(resource, nbs); mbean = NotifySupport.wrap(mbean, nbs); }
--- a/jdk/src/share/classes/com/sun/jmx/mbeanserver/ClassLoaderRepositorySupport.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/com/sun/jmx/mbeanserver/ClassLoaderRepositorySupport.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2002-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/com/sun/jmx/mbeanserver/MBeanIntrospector.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/com/sun/jmx/mbeanserver/MBeanIntrospector.java Wed Jul 05 16:44:33 2017 +0200 @@ -44,6 +44,7 @@ import javax.management.ImmutableDescriptor; import javax.management.IntrospectionException; import javax.management.InvalidAttributeValueException; +import javax.management.JMX; import javax.management.MBean; import javax.management.MBeanAttributeInfo; import javax.management.MBeanConstructorInfo; @@ -79,7 +80,7 @@ * ancestor with ConvertingMethod. But that would mean an extra object * for every Method in every Standard MBean interface. */ -abstract class MBeanIntrospector<M> { +public abstract class MBeanIntrospector<M> { static final class PerInterfaceMap<M> extends WeakHashMap<Class<?>, WeakReference<PerInterface<M>>> {} @@ -538,24 +539,25 @@ } static MBeanNotificationInfo[] findNotifications(Object moi) { - if (!(moi instanceof NotificationBroadcaster)) - return null; - MBeanNotificationInfo[] mbn = - ((NotificationBroadcaster) moi).getNotificationInfo(); - if (mbn == null || mbn.length == 0) - return findNotificationsFromAnnotations(moi.getClass()); - MBeanNotificationInfo[] result = - new MBeanNotificationInfo[mbn.length]; - for (int i = 0; i < mbn.length; i++) { - MBeanNotificationInfo ni = mbn[i]; - if (ni.getClass() != MBeanNotificationInfo.class) - ni = (MBeanNotificationInfo) ni.clone(); - result[i] = ni; + if (moi instanceof NotificationBroadcaster) { + MBeanNotificationInfo[] mbn = + ((NotificationBroadcaster) moi).getNotificationInfo(); + if (mbn != null && mbn.length > 0) { + MBeanNotificationInfo[] result = + new MBeanNotificationInfo[mbn.length]; + for (int i = 0; i < mbn.length; i++) { + MBeanNotificationInfo ni = mbn[i]; + if (ni.getClass() != MBeanNotificationInfo.class) + ni = (MBeanNotificationInfo) ni.clone(); + result[i] = ni; + } + return result; + } } - return result; + return findNotificationsFromAnnotations(moi.getClass()); } - private static MBeanNotificationInfo[] findNotificationsFromAnnotations( + public static MBeanNotificationInfo[] findNotificationsFromAnnotations( Class<?> mbeanClass) { Class<?> c = getAnnotatedNotificationInfoClass(mbeanClass); if (c == null)
--- a/jdk/src/share/classes/com/sun/jmx/mbeanserver/ObjectInputStreamWithLoader.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/com/sun/jmx/mbeanserver/ObjectInputStreamWithLoader.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/com/sun/jmx/mbeanserver/SecureClassLoaderRepository.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/com/sun/jmx/mbeanserver/SecureClassLoaderRepository.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2002-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/com/sun/jmx/mbeanserver/WeakIdentityHashMap.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/com/sun/jmx/mbeanserver/WeakIdentityHashMap.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/com/sun/jmx/remote/internal/ArrayNotificationBuffer.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/com/sun/jmx/remote/internal/ArrayNotificationBuffer.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2003-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/com/sun/jmx/remote/internal/Unmarshal.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/com/sun/jmx/remote/internal/Unmarshal.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2003 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/com/sun/jmx/remote/util/ClassLoaderWithRepository.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/com/sun/jmx/remote/util/ClassLoaderWithRepository.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2003 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/com/sun/jmx/remote/util/ClassLogger.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/com/sun/jmx/remote/util/ClassLogger.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2003 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/com/sun/jmx/remote/util/OrderClassLoaders.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/com/sun/jmx/remote/util/OrderClassLoaders.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2003 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/com/sun/net/ssl/internal/www/protocol/https/HttpsURLConnectionOldImpl.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/com/sun/net/ssl/internal/www/protocol/https/HttpsURLConnectionOldImpl.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1996-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1996-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/java/awt/EventDispatchThread.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/java/awt/EventDispatchThread.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1996-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1996-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/java/net/HttpURLConnection.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/java/net/HttpURLConnection.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1996-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1996-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/java/nio/Buffer.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/java/nio/Buffer.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -543,6 +543,10 @@ return mark; } + final void discardMark() { // package-private + mark = -1; + } + static void checkBounds(int off, int len, int size) { // package-private if ((off | len | (off + len) | (size - (off + len))) < 0) throw new IndexOutOfBoundsException();
--- a/jdk/src/share/classes/java/nio/ByteBufferAs-X-Buffer.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/java/nio/ByteBufferAs-X-Buffer.java Wed Jul 05 16:44:33 2017 +0200 @@ -150,6 +150,7 @@ sb.compact(); position(rem); limit(capacity()); + discardMark(); return this; #else[rw] throw new ReadOnlyBufferException();
--- a/jdk/src/share/classes/java/nio/Direct-X-Buffer.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/java/nio/Direct-X-Buffer.java Wed Jul 05 16:44:33 2017 +0200 @@ -365,6 +365,7 @@ unsafe.copyMemory(ix(pos), ix(0), rem << $LG_BYTES_PER_VALUE$); position(rem); limit(capacity()); + discardMark(); return this; #else[rw] throw new ReadOnlyBufferException();
--- a/jdk/src/share/classes/java/nio/Heap-X-Buffer.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/java/nio/Heap-X-Buffer.java Wed Jul 05 16:44:33 2017 +0200 @@ -222,6 +222,7 @@ System.arraycopy(hb, ix(position()), hb, ix(0), remaining()); position(remaining()); limit(capacity()); + discardMark(); return this; #else[rw] throw new ReadOnlyBufferException();
--- a/jdk/src/share/classes/java/nio/channels/Channels.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/java/nio/channels/Channels.java Wed Jul 05 16:44:33 2017 +0200 @@ -65,6 +65,10 @@ private Channels() { } // No instantiation + private static void checkNotNull(Object o, String name) { + if (o == null) + throw new NullPointerException("\"" + name + "\" is null!"); + } /** * Write all remaining bytes in buffer to the given channel. @@ -120,6 +124,7 @@ * @return A new input stream */ public static InputStream newInputStream(ReadableByteChannel ch) { + checkNotNull(ch, "ch"); return new sun.nio.ch.ChannelInputStream(ch); } @@ -138,6 +143,8 @@ * @return A new output stream */ public static OutputStream newOutputStream(final WritableByteChannel ch) { + checkNotNull(ch, "ch"); + return new OutputStream() { private ByteBuffer bb = null; @@ -193,9 +200,7 @@ * @return A new readable byte channel */ public static ReadableByteChannel newChannel(final InputStream in) { - if (in == null) { - throw new NullPointerException(); - } + checkNotNull(in, "in"); if (in instanceof FileInputStream && FileInputStream.class.equals(in.getClass())) { @@ -270,9 +275,7 @@ * @return A new writable byte channel */ public static WritableByteChannel newChannel(final OutputStream out) { - if (out == null) { - throw new NullPointerException(); - } + checkNotNull(out, "out"); if (out instanceof FileOutputStream && FileOutputStream.class.equals(out.getClass())) { @@ -357,8 +360,8 @@ CharsetDecoder dec, int minBufferCap) { - dec.reset(); - return StreamDecoder.forDecoder(ch, dec, minBufferCap); + checkNotNull(ch, "ch"); + return StreamDecoder.forDecoder(ch, dec.reset(), minBufferCap); } /** @@ -393,6 +396,7 @@ public static Reader newReader(ReadableByteChannel ch, String csName) { + checkNotNull(csName, "csName"); return newReader(ch, Charset.forName(csName).newDecoder(), -1); } @@ -425,8 +429,8 @@ final CharsetEncoder enc, final int minBufferCap) { - enc.reset(); - return StreamEncoder.forEncoder(ch, enc, minBufferCap); + checkNotNull(ch, "ch"); + return StreamEncoder.forEncoder(ch, enc.reset(), minBufferCap); } /** @@ -461,6 +465,7 @@ public static Writer newWriter(WritableByteChannel ch, String csName) { + checkNotNull(csName, "csName"); return newWriter(ch, Charset.forName(csName).newEncoder(), -1); }
--- a/jdk/src/share/classes/java/nio/channels/SelectableChannel.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/java/nio/channels/SelectableChannel.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2000-2001 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/java/nio/channels/spi/AbstractSelectableChannel.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/java/nio/channels/spi/AbstractSelectableChannel.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2000-2003 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/java/text/SimpleDateFormat.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/java/text/SimpleDateFormat.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1996-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1996-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/ClientContext.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/management/ClientContext.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/DefaultLoaderRepository.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/management/DefaultLoaderRepository.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/JMRuntimeException.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/management/JMRuntimeException.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1999-2003 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/JMX.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/management/JMX.java Wed Jul 05 16:44:33 2017 +0200 @@ -51,8 +51,6 @@ * this class. */ static final JMX proof = new JMX(); - private static final ClassLogger logger = - new ClassLogger("javax.management.misc", "JMX"); private JMX() {} @@ -824,11 +822,16 @@ */ public static boolean isNotificationSource(Object mbean) throws NotCompliantMBeanException { - if (mbean instanceof NotificationBroadcaster) - return true; - Object resource = (mbean instanceof DynamicWrapperMBean) ? - ((DynamicWrapperMBean) mbean).getWrappedObject() : mbean; - return (MBeanInjector.injectsSendNotification(resource)); + for (int i = 0; i < 2; i++) { + if (mbean instanceof NotificationBroadcaster || + MBeanInjector.injectsSendNotification(mbean)) + return true; + if (mbean instanceof DynamicWrapperMBean) + mbean = ((DynamicWrapperMBean) mbean).getWrappedObject(); + else + break; + } + return false; } /**
--- a/jdk/src/share/classes/javax/management/MBeanAttributeInfo.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/management/MBeanAttributeInfo.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/MBeanConstructorInfo.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/management/MBeanConstructorInfo.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/MBeanInfo.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/management/MBeanInfo.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/Notification.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/management/Notification.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/NotificationListener.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/management/NotificationListener.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/StandardEmitterMBean.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/management/StandardEmitterMBean.java Wed Jul 05 16:44:33 2017 +0200 @@ -26,6 +26,7 @@ package javax.management; import com.sun.jmx.mbeanserver.MBeanInjector; +import com.sun.jmx.mbeanserver.MBeanIntrospector; import static javax.management.JMX.MBeanOptions; /** @@ -195,10 +196,12 @@ MBeanOptions options, NotificationEmitter emitter) { super(implementation, mbeanInterface, options); + MBeanNotificationInfo[] defaultMBNIs = defaultMBNIs(implementation); if (emitter == null) - emitter = defaultEmitter(); + emitter = defaultEmitter(defaultMBNIs); this.emitter = emitter; - this.notificationInfo = emitter.getNotificationInfo(); + this.notificationInfo = + firstNonEmpty(emitter.getNotificationInfo(), defaultMBNIs); injectEmitter(); } @@ -320,15 +323,23 @@ protected StandardEmitterMBean(Class<?> mbeanInterface, MBeanOptions options, NotificationEmitter emitter) { super(mbeanInterface, options); + MBeanNotificationInfo[] defaultMBNIs = defaultMBNIs(this); if (emitter == null) - emitter = defaultEmitter(); + emitter = defaultEmitter(defaultMBNIs); this.emitter = emitter; - this.notificationInfo = emitter.getNotificationInfo(); + this.notificationInfo = + firstNonEmpty(emitter.getNotificationInfo(), defaultMBNIs); injectEmitter(); } - private NotificationEmitter defaultEmitter() { - MBeanNotificationInfo[] mbnis = getNotificationInfo(); + private static MBeanNotificationInfo[] defaultMBNIs(Object mbean) { + return MBeanIntrospector.findNotificationsFromAnnotations( + mbean.getClass()); + } + + private NotificationEmitter defaultEmitter(MBeanNotificationInfo[] defaultMBNIs) { + MBeanNotificationInfo[] mbnis = + firstNonEmpty(getNotificationInfo(), defaultMBNIs); // Will be null unless getNotificationInfo() is overridden, // since the notificationInfo field has not been set at this point. if (mbnis == null) @@ -336,6 +347,14 @@ return new NotificationBroadcasterSupport(mbnis); } + private static <T> T[] firstNonEmpty(T[]... items) { + for (T[] t : items) { + if (t != null && t.length != 0) + return t; + } + return null; + } + private void injectEmitter() { if (emitter instanceof SendNotification) { try {
--- a/jdk/src/share/classes/javax/management/StandardMBean.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/management/StandardMBean.java Wed Jul 05 16:44:33 2017 +0200 @@ -1058,10 +1058,6 @@ cachedMBeanInfo = info; } - private boolean isMXBean() { - return mbean.isMXBean(); - } - private static <T> boolean identicalArrays(T[] a, T[] b) { if (a == b) return true; @@ -1466,7 +1462,7 @@ // Check for "MBeanNotificationInfo[] getNotificationInfo()" // method. // - // This method is only taken into account for the MBeanInfo + // This method is taken into account for the MBeanInfo // immutability checks if and only if the given subclass is // StandardEmitterMBean itself or can be assigned to // StandardEmitterMBean.
--- a/jdk/src/share/classes/javax/management/loading/DefaultLoaderRepository.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/management/loading/DefaultLoaderRepository.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/loading/MLetObjectInputStream.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/management/loading/MLetObjectInputStream.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1999-2003 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/modelmbean/ModelMBeanInfo.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/management/modelmbean/ModelMBeanInfo.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Portions Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved. + * Portions Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/openmbean/CompositeDataSupport.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/management/openmbean/CompositeDataSupport.java Wed Jul 05 16:44:33 2017 +0200 @@ -101,7 +101,7 @@ * the same size as <tt>itemNames</tt>; must not be null. * * @throws IllegalArgumentException <tt>compositeType</tt> is null, or - * <tt>itemNames[]</tt> or <tt>itemValues[]</tt> is null or empty, or one + * <tt>itemNames[]</tt> or <tt>itemValues[]</tt> is null, or one * of the elements in <tt>itemNames[]</tt> is a null or empty string, or * <tt>itemNames[]</tt> and <tt>itemValues[]</tt> are not of the same size. *
--- a/jdk/src/share/classes/javax/management/openmbean/OpenMBeanParameterInfoSupport.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/management/openmbean/OpenMBeanParameterInfoSupport.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/relation/MBeanServerNotificationFilter.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/management/relation/MBeanServerNotificationFilter.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/relation/Role.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/management/relation/Role.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/relation/RoleList.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/management/relation/RoleList.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2000-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/relation/RoleResult.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/management/relation/RoleResult.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/relation/RoleUnresolved.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/management/relation/RoleUnresolved.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/relation/RoleUnresolvedList.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/management/relation/RoleUnresolvedList.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2000-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/remote/rmi/NoCallStackClassLoader.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/management/remote/rmi/NoCallStackClassLoader.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2003-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/remote/rmi/RMIConnection.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/management/remote/rmi/RMIConnection.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2002-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/management/remote/rmi/RMIServerImpl.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/management/remote/rmi/RMIServerImpl.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2002-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/AbstractCellEditor.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/AbstractCellEditor.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/AbstractListModel.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/AbstractListModel.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2004 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/AbstractSpinnerModel.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/AbstractSpinnerModel.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/ActionMap.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/ActionMap.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/AncestorNotifier.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/AncestorNotifier.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/ArrayTable.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/ArrayTable.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2003-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/ButtonGroup.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/ButtonGroup.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/DefaultBoundedRangeModel.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/DefaultBoundedRangeModel.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/DefaultButtonModel.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/DefaultButtonModel.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/DefaultFocusManager.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/DefaultFocusManager.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2003 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/DefaultSingleSelectionModel.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/DefaultSingleSelectionModel.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2004 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/GroupLayout.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/GroupLayout.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2006-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/InputMap.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/InputMap.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1999-2003 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/JDesktopPane.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/JDesktopPane.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/JDialog.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/JDialog.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/JLayeredPane.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/JLayeredPane.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/JMenu.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/JMenu.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/JMenuItem.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/JMenuItem.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/JSpinner.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/JSpinner.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/JTextField.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/JTextField.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/JTree.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/JTree.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/JWindow.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/JWindow.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/KeyboardManager.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/KeyboardManager.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1998-2004 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/LayoutComparator.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/LayoutComparator.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2000-2004 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/LayoutFocusTraversalPolicy.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/LayoutFocusTraversalPolicy.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/LegacyGlueFocusTraversalPolicy.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/LegacyGlueFocusTraversalPolicy.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2000-2002 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/MultiUIDefaults.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/MultiUIDefaults.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2003 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/RepaintManager.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/RepaintManager.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/SortingFocusTraversalPolicy.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/SortingFocusTraversalPolicy.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/SpringLayout.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/SpringLayout.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2001-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/Timer.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/Timer.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/TimerQueue.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/TimerQueue.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/UIDefaults.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/UIDefaults.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/UIManager.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/UIManager.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/border/CompoundBorder.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/border/CompoundBorder.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicButtonListener.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicButtonListener.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicComboBoxEditor.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicComboBoxEditor.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicComboBoxUI.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicComboBoxUI.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicGraphicsUtils.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicGraphicsUtils.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicInternalFrameTitlePane.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicInternalFrameTitlePane.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicLabelUI.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicLabelUI.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicMenuUI.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicMenuUI.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicPopupMenuUI.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicPopupMenuUI.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicRadioButtonUI.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicRadioButtonUI.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicSplitPaneUI.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicSplitPaneUI.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicTextUI.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicTextUI.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicToggleButtonUI.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicToggleButtonUI.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2003 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicTreeUI.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicTreeUI.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/plaf/basic/DragRecognitionSupport.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/plaf/basic/DragRecognitionSupport.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/plaf/basic/LazyActionMap.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/plaf/basic/LazyActionMap.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2002-2003 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/plaf/metal/DefaultMetalTheme.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/plaf/metal/DefaultMetalTheme.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1998-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalBumps.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalBumps.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1998-2003 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalFileChooserUI.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalFileChooserUI.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1998-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalInternalFrameTitlePane.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalInternalFrameTitlePane.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1998-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalRadioButtonUI.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalRadioButtonUI.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1998-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalSliderUI.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalSliderUI.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1998-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalToolBarUI.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalToolBarUI.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1998-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/plaf/synth/DefaultSynthStyleFactory.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/plaf/synth/DefaultSynthStyleFactory.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2003-2004 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/plaf/synth/ImagePainter.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/plaf/synth/ImagePainter.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2002-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/plaf/synth/Region.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/plaf/synth/Region.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2002-2004 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthButtonUI.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthButtonUI.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2002-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthComboBoxUI.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthComboBoxUI.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2002-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthContext.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthContext.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2002-2003 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthEditorPaneUI.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthEditorPaneUI.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2002-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthInternalFrameTitlePane.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthInternalFrameTitlePane.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2002-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthLookAndFeel.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthLookAndFeel.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2002-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthParser.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthParser.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2003-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthStyle.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthStyle.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2002-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthTextAreaUI.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthTextAreaUI.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2002-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthTextFieldUI.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthTextFieldUI.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2002-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthTreeUI.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthTreeUI.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2002-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/table/AbstractTableModel.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/table/AbstractTableModel.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2004 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/table/DefaultTableModel.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/table/DefaultTableModel.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/text/AsyncBoxView.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/text/AsyncBoxView.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1999-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/text/ComponentView.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/text/ComponentView.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/text/DefaultCaret.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/text/DefaultCaret.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/text/DefaultFormatter.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/text/DefaultFormatter.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2000-2004 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/text/DefaultHighlighter.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/text/DefaultHighlighter.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2003 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/text/DefaultStyledDocument.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/text/DefaultStyledDocument.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/text/ElementIterator.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/text/ElementIterator.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1998-2002 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/text/GapContent.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/text/GapContent.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1998-2003 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/text/InternationalFormatter.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/text/InternationalFormatter.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2000-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/text/LayoutQueue.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/text/LayoutQueue.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1999 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/text/MaskFormatter.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/text/MaskFormatter.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2000-2003 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/text/SegmentCache.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/text/SegmentCache.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2001 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/text/SimpleAttributeSet.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/text/SimpleAttributeSet.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2004 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/text/StringContent.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/text/StringContent.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2001 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/text/StyleContext.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/text/StyleContext.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/text/TableView.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/text/TableView.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/text/TextAction.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/text/TextAction.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2003 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/text/TextLayoutStrategy.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/text/TextLayoutStrategy.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1999-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/text/ZoneView.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/text/ZoneView.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1998-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/text/html/HRuleView.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/text/html/HRuleView.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2002 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/text/html/HTML.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/text/html/HTML.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1998-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/text/html/HTMLDocument.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/text/html/HTMLDocument.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/text/html/HTMLWriter.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/text/html/HTMLWriter.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1998-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/text/html/Map.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/text/html/Map.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1998-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/text/html/MinimalHTMLWriter.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/text/html/MinimalHTMLWriter.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1998-1999 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/text/html/OptionListModel.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/text/html/OptionListModel.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1998-2000 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/text/html/StyleSheet.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/text/html/StyleSheet.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/text/html/TableView.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/text/html/TableView.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1998-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/text/html/parser/TagStack.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/text/html/parser/TagStack.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1998 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/text/rtf/MockAttributeSet.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/text/rtf/MockAttributeSet.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2004 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/text/rtf/RTFParser.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/text/rtf/RTFParser.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2000 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/text/rtf/RTFReader.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/text/rtf/RTFReader.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2004 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/tree/DefaultTreeCellEditor.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/tree/DefaultTreeCellEditor.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1998-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/tree/DefaultTreeModel.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/tree/DefaultTreeModel.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/tree/FixedHeightLayoutCache.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/tree/FixedHeightLayoutCache.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1998-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/tree/VariableHeightLayoutCache.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/tree/VariableHeightLayoutCache.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1998-2004 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/undo/StateEdit.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/undo/StateEdit.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2004 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/undo/UndoManager.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/undo/UndoManager.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/javax/swing/undo/UndoableEditSupport.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/javax/swing/undo/UndoableEditSupport.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2004 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/DigesterOutputStream.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/DigesterOutputStream.java Wed Jul 05 16:44:33 2017 +0200 @@ -19,7 +19,7 @@ * */ /* - * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All rights reserved. */ /* * $Id: DigesterOutputStream.java,v 1.2 2008/07/24 15:20:31 mullan Exp $
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/SignerOutputStream.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/SignerOutputStream.java Wed Jul 05 16:44:33 2017 +0200 @@ -19,7 +19,7 @@ * */ /* - * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All rights reserved. */ /* * $Id: SignerOutputStream.java,v 1.2 2008/07/24 15:20:31 mullan Exp $
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/ApacheCanonicalizer.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/ApacheCanonicalizer.java Wed Jul 05 16:44:33 2017 +0200 @@ -19,7 +19,7 @@ * */ /* - * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All rights reserved. */ /* * $Id: ApacheCanonicalizer.java,v 1.2 2008/07/24 15:20:32 mullan Exp $
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/ApacheData.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/ApacheData.java Wed Jul 05 16:44:33 2017 +0200 @@ -19,7 +19,7 @@ * */ /* - * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All rights reserved. */ /* * $Id: ApacheData.java,v 1.2 2008/07/24 15:20:32 mullan Exp $
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/ApacheNodeSetData.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/ApacheNodeSetData.java Wed Jul 05 16:44:33 2017 +0200 @@ -19,7 +19,7 @@ * */ /* - * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All rights reserved. */ /* * $Id: ApacheNodeSetData.java,v 1.2 2008/07/24 15:20:32 mullan Exp $
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/ApacheOctetStreamData.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/ApacheOctetStreamData.java Wed Jul 05 16:44:33 2017 +0200 @@ -19,7 +19,7 @@ * */ /* - * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All rights reserved. */ /* * $Id: ApacheOctetStreamData.java,v 1.2 2008/07/24 15:20:32 mullan Exp $
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/ApacheTransform.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/ApacheTransform.java Wed Jul 05 16:44:33 2017 +0200 @@ -19,7 +19,7 @@ * */ /* - * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All rights reserved. */ /* * $Id: ApacheTransform.java,v 1.2 2008/07/24 15:20:32 mullan Exp $
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMBase64Transform.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMBase64Transform.java Wed Jul 05 16:44:33 2017 +0200 @@ -19,7 +19,7 @@ * */ /* - * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All rights reserved. */ /* * $Id: DOMBase64Transform.java,v 1.2 2008/07/24 15:20:32 mullan Exp $
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMCanonicalXMLC14NMethod.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMCanonicalXMLC14NMethod.java Wed Jul 05 16:44:33 2017 +0200 @@ -19,7 +19,7 @@ * */ /* - * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All rights reserved. */ /* * $Id: DOMCanonicalXMLC14NMethod.java,v 1.2 2008/07/24 15:20:32 mullan Exp $
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMCanonicalizationMethod.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMCanonicalizationMethod.java Wed Jul 05 16:44:33 2017 +0200 @@ -19,7 +19,7 @@ * */ /* - * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All rights reserved. */ /* * $Id: DOMCanonicalizationMethod.java,v 1.2 2008/07/24 15:20:32 mullan Exp $
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMCryptoBinary.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMCryptoBinary.java Wed Jul 05 16:44:33 2017 +0200 @@ -19,7 +19,7 @@ * */ /* - * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All rights reserved. */ /* * $Id: DOMCryptoBinary.java,v 1.2 2008/07/24 15:20:32 mullan Exp $
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMDigestMethod.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMDigestMethod.java Wed Jul 05 16:44:33 2017 +0200 @@ -19,7 +19,7 @@ * */ /* - * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All rights reserved. */ /* * $Id: DOMDigestMethod.java,v 1.2 2008/07/24 15:20:32 mullan Exp $
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMEnvelopedTransform.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMEnvelopedTransform.java Wed Jul 05 16:44:33 2017 +0200 @@ -19,7 +19,7 @@ * */ /* - * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All rights reserved. */ /* * $Id: DOMEnvelopedTransform.java,v 1.2 2008/07/24 15:20:32 mullan Exp $
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMExcC14NMethod.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMExcC14NMethod.java Wed Jul 05 16:44:33 2017 +0200 @@ -19,7 +19,7 @@ * */ /* - * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All rights reserved. */ /* * $Id: DOMExcC14NMethod.java,v 1.2 2008/07/24 15:20:32 mullan Exp $
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMHMACSignatureMethod.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMHMACSignatureMethod.java Wed Jul 05 16:44:33 2017 +0200 @@ -19,7 +19,7 @@ * */ /* - * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All rights reserved. */ /* * $Id: DOMHMACSignatureMethod.java,v 1.2 2008/07/24 15:20:32 mullan Exp $
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMKeyInfo.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMKeyInfo.java Wed Jul 05 16:44:33 2017 +0200 @@ -19,7 +19,7 @@ * */ /* - * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All rights reserved. */ /* * $Id: DOMKeyInfo.java,v 1.2 2008/07/24 15:20:32 mullan Exp $
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMKeyInfoFactory.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMKeyInfoFactory.java Wed Jul 05 16:44:33 2017 +0200 @@ -19,7 +19,7 @@ * */ /* - * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All rights reserved. */ /* * $Id: DOMKeyInfoFactory.java,v 1.2 2008/07/24 15:20:32 mullan Exp $
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMKeyName.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMKeyName.java Wed Jul 05 16:44:33 2017 +0200 @@ -19,7 +19,7 @@ * */ /* - * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All rights reserved. */ /* * $Id: DOMKeyName.java,v 1.2 2008/07/24 15:20:32 mullan Exp $
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMKeyValue.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMKeyValue.java Wed Jul 05 16:44:33 2017 +0200 @@ -19,7 +19,7 @@ * */ /* - * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All rights reserved. */ /* * $Id: DOMKeyValue.java,v 1.2 2008/07/24 15:20:32 mullan Exp $
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMManifest.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMManifest.java Wed Jul 05 16:44:33 2017 +0200 @@ -19,7 +19,7 @@ * */ /* - * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All rights reserved. */ /* * $Id: DOMManifest.java,v 1.2 2008/07/24 15:20:32 mullan Exp $
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMPGPData.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMPGPData.java Wed Jul 05 16:44:33 2017 +0200 @@ -19,7 +19,7 @@ * */ /* - * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All rights reserved. */ /* * $Id: DOMPGPData.java,v 1.2 2008/07/24 15:20:32 mullan Exp $
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMSignatureMethod.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMSignatureMethod.java Wed Jul 05 16:44:33 2017 +0200 @@ -19,7 +19,7 @@ * */ /* - * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All rights reserved. */ /* * $Id: DOMSignatureMethod.java,v 1.2 2008/07/24 15:20:32 mullan Exp $
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMSignatureProperties.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMSignatureProperties.java Wed Jul 05 16:44:33 2017 +0200 @@ -19,7 +19,7 @@ * */ /* - * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All rights reserved. */ /* * $Id: DOMSignatureProperties.java,v 1.2 2008/07/24 15:20:32 mullan Exp $
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMSignatureProperty.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMSignatureProperty.java Wed Jul 05 16:44:33 2017 +0200 @@ -19,7 +19,7 @@ * */ /* - * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All rights reserved. */ /* * $Id: DOMSignatureProperty.java,v 1.2 2008/07/24 15:20:32 mullan Exp $
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMSignedInfo.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMSignedInfo.java Wed Jul 05 16:44:33 2017 +0200 @@ -19,7 +19,7 @@ * */ /* - * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All rights reserved. */ /* * $Id: DOMSignedInfo.java,v 1.2 2008/07/24 15:20:32 mullan Exp $
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMStructure.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMStructure.java Wed Jul 05 16:44:33 2017 +0200 @@ -19,7 +19,7 @@ * */ /* - * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All rights reserved. */ /* * $Id: DOMStructure.java,v 1.2 2008/07/24 15:20:32 mullan Exp $
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMSubTreeData.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMSubTreeData.java Wed Jul 05 16:44:33 2017 +0200 @@ -19,7 +19,7 @@ * */ /* - * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All rights reserved. */ /* * $Id: DOMSubTreeData.java,v 1.2 2008/07/24 15:20:32 mullan Exp $
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMTransform.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMTransform.java Wed Jul 05 16:44:33 2017 +0200 @@ -19,7 +19,7 @@ * */ /* - * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All rights reserved. */ /* * $Id: DOMTransform.java,v 1.2 2008/07/24 15:20:32 mullan Exp $
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMURIDereferencer.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMURIDereferencer.java Wed Jul 05 16:44:33 2017 +0200 @@ -19,7 +19,7 @@ * */ /* - * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All rights reserved. */ /* * $Id: DOMURIDereferencer.java,v 1.2 2008/07/24 15:20:32 mullan Exp $
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMUtils.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMUtils.java Wed Jul 05 16:44:33 2017 +0200 @@ -19,7 +19,7 @@ * */ /* - * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All rights reserved. */ /* * $Id: DOMUtils.java,v 1.2 2008/07/24 15:20:32 mullan Exp $
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMX509Data.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMX509Data.java Wed Jul 05 16:44:33 2017 +0200 @@ -19,7 +19,7 @@ * */ /* - * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All rights reserved. */ /* * $Id: DOMX509Data.java,v 1.2 2008/07/24 15:20:32 mullan Exp $
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMX509IssuerSerial.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMX509IssuerSerial.java Wed Jul 05 16:44:33 2017 +0200 @@ -19,7 +19,7 @@ * */ /* - * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All rights reserved. */ /* * $Id: DOMX509IssuerSerial.java,v 1.2 2008/07/24 15:20:32 mullan Exp $
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMXMLObject.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMXMLObject.java Wed Jul 05 16:44:33 2017 +0200 @@ -19,7 +19,7 @@ * */ /* - * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All rights reserved. */ /* * $Id: DOMXMLObject.java,v 1.2 2008/07/24 15:20:32 mullan Exp $
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMXMLSignatureFactory.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMXMLSignatureFactory.java Wed Jul 05 16:44:33 2017 +0200 @@ -19,7 +19,7 @@ * */ /* - * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All rights reserved. */ /* * $Id: DOMXMLSignatureFactory.java,v 1.2 2008/07/24 15:20:32 mullan Exp $
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMXPathTransform.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMXPathTransform.java Wed Jul 05 16:44:33 2017 +0200 @@ -19,7 +19,7 @@ * */ /* - * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All rights reserved. */ /* * $Id: DOMXPathTransform.java,v 1.2 2008/07/24 15:20:32 mullan Exp $
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMXSLTTransform.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMXSLTTransform.java Wed Jul 05 16:44:33 2017 +0200 @@ -19,7 +19,7 @@ * */ /* - * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All rights reserved. */ /* * $Id: DOMXSLTTransform.java,v 1.2 2008/07/24 15:20:32 mullan Exp $
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/Utils.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/Utils.java Wed Jul 05 16:44:33 2017 +0200 @@ -19,7 +19,7 @@ * */ /* - * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All rights reserved. */ /* * $Id: Utils.java,v 1.2 2008/07/24 15:20:32 mullan Exp $
--- a/jdk/src/share/classes/sun/awt/im/CompositionArea.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/sun/awt/im/CompositionArea.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/sun/management/jmxremote/LocalRMIServerSocketFactory.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/sun/management/jmxremote/LocalRMIServerSocketFactory.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -49,13 +49,34 @@ return new ServerSocket(port) { @Override public Socket accept() throws IOException { - Socket socket = super.accept(); - InetAddress remoteAddr = socket.getInetAddress(); + final Socket socket = super.accept(); + final InetAddress remoteAddr = socket.getInetAddress(); final String msg = "The server sockets created using the " + - "LocalRMIServerSocketFactory only accept connections " + - "from clients running on the host where the RMI " + - "remote objects have been exported."; - if (remoteAddr.isAnyLocalAddress()) { + "LocalRMIServerSocketFactory only accept connections " + + "from clients running on the host where the RMI " + + "remote objects have been exported."; + + if (remoteAddr == null) { + // Though unlikeky, the socket could be already + // closed... Send a more detailed message in + // this case. Also avoid throwing NullPointerExceptiion + // + String details = ""; + if (socket.isClosed()) { + details = " Socket is closed."; + } else if (!socket.isConnected()) { + details = " Socket is not connected"; + } + try { + socket.close(); + } catch (Exception ok) { + // ok - this is just cleanup before throwing detailed + // exception. + } + throw new IOException(msg + + " Couldn't determine client address." + + details); + } else if (remoteAddr.isLoopbackAddress()) { // local address: accept the connection. return socket; }
--- a/jdk/src/share/classes/sun/net/ProgressEvent.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/sun/net/ProgressEvent.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2004 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2004-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/sun/net/httpserver/ExchangeImpl.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/sun/net/httpserver/ExchangeImpl.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/sun/net/httpserver/FixedLengthInputStream.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/sun/net/httpserver/FixedLengthInputStream.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/sun/net/httpserver/Request.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/sun/net/httpserver/Request.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/sun/net/www/http/ChunkedOutputStream.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/sun/net/www/http/ChunkedOutputStream.java Wed Jul 05 16:44:33 2017 +0200 @@ -29,32 +29,58 @@ /** * OutputStream that sends the output to the underlying stream using chunked * encoding as specified in RFC 2068. - * - * @author Alan Bateman */ public class ChunkedOutputStream extends PrintStream { /* Default chunk size (including chunk header) if not specified */ static final int DEFAULT_CHUNK_SIZE = 4096; + private static final byte[] CRLF = {'\r', '\n'}; + private static final int CRLF_SIZE = CRLF.length; + private static final byte[] FOOTER = CRLF; + private static final int FOOTER_SIZE = CRLF_SIZE; + private static final byte[] EMPTY_CHUNK_HEADER = getHeader(0); + private static final int EMPTY_CHUNK_HEADER_SIZE = getHeaderSize(0); /* internal buffer */ private byte buf[]; + /* size of data (excluding footers and headers) already stored in buf */ + private int size; + /* current index in buf (i.e. buf[count] */ private int count; + /* number of bytes to be filled up to complete a data chunk + * currently being built */ + private int spaceInCurrentChunk; /* underlying stream */ private PrintStream out; /* the chunk size we use */ - private int preferredChunkSize; - - /* if the users write buffer is bigger than this size, we - * write direct from the users buffer instead of copying - */ - static final int MAX_BUF_SIZE = 10 * 1024; + private int preferredChunkDataSize; + private int preferedHeaderSize; + private int preferredChunkGrossSize; + /* header for a complete Chunk */ + private byte[] completeHeader; /* return the size of the header for a particular chunk size */ - private int headerSize(int size) { - return 2 + (Integer.toHexString(size)).length(); + private static int getHeaderSize(int size) { + return (Integer.toHexString(size)).length() + CRLF_SIZE; + } + + /* return a header for a particular chunk size */ + private static byte[] getHeader(int size){ + try { + String hexStr = Integer.toHexString(size); + byte[] hexBytes = hexStr.getBytes("US-ASCII"); + byte[] header = new byte[getHeaderSize(size)]; + for (int i=0; i<hexBytes.length; i++) + header[i] = hexBytes[i]; + header[hexBytes.length] = CRLF[0]; + header[hexBytes.length+1] = CRLF[1]; + return header; + } catch (java.io.UnsupportedEncodingException e) { + /* This should never happen */ + throw new InternalError(e.getMessage()); + } } public ChunkedOutputStream(PrintStream o) { @@ -63,111 +89,114 @@ public ChunkedOutputStream(PrintStream o, int size) { super(o); - out = o; if (size <= 0) { size = DEFAULT_CHUNK_SIZE; } + /* Adjust the size to cater for the chunk header - eg: if the * preferred chunk size is 1k this means the chunk size should - * be 1019 bytes (differs by 5 from preferred size because of - * 3 bytes for chunk size in hex and CRLF). + * be 1017 bytes (differs by 7 from preferred size because of + * 3 bytes for chunk size in hex and CRLF (header) and CRLF (footer)). + * + * If headerSize(adjusted_size) is shorter then headerSize(size) + * then try to use the extra byte unless headerSize(adjusted_size+1) + * increases back to headerSize(size) */ if (size > 0) { - int adjusted_size = size - headerSize(size); - if (adjusted_size + headerSize(adjusted_size) < size) { + int adjusted_size = size - getHeaderSize(size) - FOOTER_SIZE; + if (getHeaderSize(adjusted_size+1) < getHeaderSize(size)){ adjusted_size++; } size = adjusted_size; } if (size > 0) { - preferredChunkSize = size; + preferredChunkDataSize = size; } else { - preferredChunkSize = DEFAULT_CHUNK_SIZE - headerSize(DEFAULT_CHUNK_SIZE); + preferredChunkDataSize = DEFAULT_CHUNK_SIZE - + getHeaderSize(DEFAULT_CHUNK_SIZE) - FOOTER_SIZE; } + preferedHeaderSize = getHeaderSize(preferredChunkDataSize); + preferredChunkGrossSize = preferedHeaderSize + preferredChunkDataSize + + FOOTER_SIZE; + completeHeader = getHeader(preferredChunkDataSize); + /* start with an initial buffer */ - buf = new byte[preferredChunkSize + 32]; + buf = new byte[preferredChunkDataSize + 32]; + reset(); } /* - * If flushAll is true, then all data is flushed in one chunk. - * - * If false and the size of the buffer data exceeds the preferred - * chunk size then chunks are flushed to the output stream. - * If there isn't enough data to make up a complete chunk, - * then the method returns. + * Flush a buffered, completed chunk to an underlying stream. If the data in + * the buffer is insufficient to build up a chunk of "preferredChunkSize" + * then the data do not get flushed unless flushAll is true. If flushAll is + * true then the remaining data builds up a last chunk which size is smaller + * than preferredChunkSize, and then the last chunk gets flushed to + * underlying stream. If flushAll is true and there is no data in a buffer + * at all then an empty chunk (containing a header only) gets flushed to + * underlying stream. */ - private void flush(byte[] buf, boolean flushAll) { - flush (buf, flushAll, 0); - } - - private void flush(byte[] buf, boolean flushAll, int offset) { - int chunkSize; + private void flush(boolean flushAll) { + if (spaceInCurrentChunk == 0) { + /* flush a completed chunk to underlying stream */ + out.write(buf, 0, preferredChunkGrossSize); + out.flush(); + reset(); + } else if (flushAll){ + /* complete the last chunk and flush it to underlying stream */ + if (size > 0){ + /* adjust a header start index in case the header of the last + * chunk is shorter then preferedHeaderSize */ - do { - if (count < preferredChunkSize) { - if (!flushAll) { - break; - } - chunkSize = count; + int adjustedHeaderStartIndex = preferedHeaderSize - + getHeaderSize(size); + + /* write header */ + System.arraycopy(getHeader(size), 0, buf, + adjustedHeaderStartIndex, getHeaderSize(size)); + + /* write footer */ + buf[count++] = FOOTER[0]; + buf[count++] = FOOTER[1]; + + //send the last chunk to underlying stream + out.write(buf, adjustedHeaderStartIndex, count - adjustedHeaderStartIndex); } else { - chunkSize = preferredChunkSize; - } - - byte[] bytes = null; - try { - bytes = (Integer.toHexString(chunkSize)).getBytes("US-ASCII"); - } catch (java.io.UnsupportedEncodingException e) { - //This should never happen. - throw new InternalError(e.getMessage()); + //send an empty chunk (containing just a header) to underlying stream + out.write(EMPTY_CHUNK_HEADER, 0, EMPTY_CHUNK_HEADER_SIZE); } - out.write(bytes, 0, bytes.length); - out.write((byte)'\r'); - out.write((byte)'\n'); - if (chunkSize > 0) { - out.write(buf, offset, chunkSize); - out.write((byte)'\r'); - out.write((byte)'\n'); - } out.flush(); - if (checkError()) { - break; - } - if (chunkSize > 0) { - count -= chunkSize; - offset += chunkSize; - } - } while (count > 0); - - if (!checkError() && count > 0) { - System.arraycopy(buf, offset, this.buf, 0, count); - } + reset(); + } } + @Override public boolean checkError() { return out.checkError(); } - /* - * Check if we have enough data for a chunk and if so flush to the - * underlying output stream. - */ - private void checkFlush() { - if (count >= preferredChunkSize) { - flush(buf, false); - } - } - /* Check that the output stream is still open */ private void ensureOpen() { if (out == null) setError(); } + /* + * Writes data from b[] to an internal buffer and stores the data as data + * chunks of a following format: {Data length in Hex}{CRLF}{data}{CRLF} + * The size of the data is preferredChunkSize. As soon as a completed chunk + * is read from b[] a process of reading from b[] suspends, the chunk gets + * flushed to the underlying stream and then the reading process from b[] + * continues. When there is no more sufficient data in b[] to build up a + * chunk of preferredChunkSize size the data get stored as an incomplete + * chunk of a following format: {space for data length}{CRLF}{data} + * The size of the data is of course smaller than preferredChunkSize. + */ + @Override public synchronized void write(byte b[], int off, int len) { ensureOpen(); if ((off < 0) || (off > b.length) || (len < 0) || @@ -177,81 +206,95 @@ return; } - int l = preferredChunkSize - count; + /* if b[] contains enough data then one loop cycle creates one complete + * data chunk with a header, body and a footer, and then flushes the + * chunk to the underlying stream. Otherwise, the last loop cycle + * creates incomplete data chunk with empty header and with no footer + * and stores this incomplete chunk in an internal buffer buf[] + */ + int bytesToWrite = len; + int inputIndex = off; /* the index of the byte[] currently being written */ + + do { + /* enough data to complete a chunk */ + if (bytesToWrite >= spaceInCurrentChunk) { - if ((len > MAX_BUF_SIZE) && (len > l)) { - /* current chunk is empty just write the data */ - if (count == 0) { - count = len; - flush (b, false, off); - return; - } + /* header */ + for (int i=0; i<completeHeader.length; i++) + buf[i] = completeHeader[i]; + + /* data */ + System.arraycopy(b, inputIndex, buf, count, spaceInCurrentChunk); + inputIndex += spaceInCurrentChunk; + bytesToWrite -= spaceInCurrentChunk; + count += spaceInCurrentChunk; - /* first finish the current chunk */ - if (l > 0) { - System.arraycopy(b, off, buf, count, l); - count = preferredChunkSize; - flush(buf, false); + /* footer */ + buf[count++] = FOOTER[0]; + buf[count++] = FOOTER[1]; + spaceInCurrentChunk = 0; //chunk is complete + + flush(false); + if (checkError()){ + break; + } } - count = len - l; - /* Now write the rest of the data */ - flush (b, false, l+off); - } else { - int newcount = count + len; + /* not enough data to build a chunk */ + else { + /* header */ + /* do not write header if not enough bytes to build a chunk yet */ - if (newcount > buf.length) { - byte newbuf[] = new byte[Math.max(buf.length << 1, newcount)]; - System.arraycopy(buf, 0, newbuf, 0, count); - buf = newbuf; + /* data */ + System.arraycopy(b, inputIndex, buf, count, bytesToWrite); + count += bytesToWrite; + size += bytesToWrite; + spaceInCurrentChunk -= bytesToWrite; + bytesToWrite = 0; + + /* footer */ + /* do not write header if not enough bytes to build a chunk yet */ } - System.arraycopy(b, off, buf, count, len); - count = newcount; - checkFlush(); - } + } while (bytesToWrite > 0); } - public synchronized void write(int b) { - ensureOpen(); - int newcount = count + 1; - if (newcount > buf.length) { - byte newbuf[] = new byte[Math.max(buf.length << 1, newcount)]; - System.arraycopy(buf, 0, newbuf, 0, count); - buf = newbuf; - } - buf[count] = (byte)b; - count = newcount; - checkFlush(); + @Override + public synchronized void write(int _b) { + byte b[] = {(byte)_b}; + write(b, 0, 1); } public synchronized void reset() { - count = 0; + count = preferedHeaderSize; + size = 0; + spaceInCurrentChunk = preferredChunkDataSize; } public int size() { - return count; + return size; } + @Override public synchronized void close() { ensureOpen(); /* if we have buffer a chunked send it */ - if (count > 0) { - flush(buf, true); + if (size > 0) { + flush(true); } /* send a zero length chunk */ - flush(buf, true); + flush(true); /* don't close the underlying stream */ out = null; } + @Override public synchronized void flush() { ensureOpen(); - if (count > 0) { - flush(buf, true); + if (size > 0) { + flush(true); } } - }
--- a/jdk/src/share/classes/sun/net/www/protocol/https/HttpsURLConnectionImpl.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/sun/net/www/protocol/https/HttpsURLConnectionImpl.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2001-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/sun/nio/ch/AbstractPollSelectorImpl.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/sun/nio/ch/AbstractPollSelectorImpl.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2001-2004 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/sun/nio/cs/ext/ExtendedCharsets.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/sun/nio/cs/ext/ExtendedCharsets.java Wed Jul 05 16:44:33 2017 +0200 @@ -770,6 +770,7 @@ new String[] { "cp834", "ibm834", + "834", "ibm-834" });
--- a/jdk/src/share/classes/sun/security/provider/certpath/OCSPResponse.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/sun/security/provider/certpath/OCSPResponse.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2003-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/sun/swing/AccessibleMethod.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/sun/swing/AccessibleMethod.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/sun/swing/SwingLazyValue.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/sun/swing/SwingLazyValue.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2003 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/sun/swing/SwingUtilities2.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/sun/swing/SwingUtilities2.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2002-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/sun/swing/plaf/synth/DefaultSynthStyle.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/sun/swing/plaf/synth/DefaultSynthStyle.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2002-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/sun/swing/plaf/synth/SynthFileChooserUIImpl.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/sun/swing/plaf/synth/SynthFileChooserUIImpl.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2003-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/sun/util/calendar/ZoneInfo.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/sun/util/calendar/ZoneInfo.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2000-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/sun/util/resources/TimeZoneNames.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/sun/util/resources/TimeZoneNames.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Portions Copyright 1996-2007 Sun Microsystems, Inc. All Rights Reserved. + * Portions Copyright 1996-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/sun/util/resources/TimeZoneNames_de.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/sun/util/resources/TimeZoneNames_de.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Portions Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. + * Portions Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/sun/util/resources/TimeZoneNames_es.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/sun/util/resources/TimeZoneNames_es.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Portions Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. + * Portions Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/sun/util/resources/TimeZoneNames_fr.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/sun/util/resources/TimeZoneNames_fr.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Portions Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Portions Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/sun/util/resources/TimeZoneNames_it.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/sun/util/resources/TimeZoneNames_it.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Portions Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Portions Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/sun/util/resources/TimeZoneNames_ja.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/sun/util/resources/TimeZoneNames_ja.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Portions Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Portions Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/sun/util/resources/TimeZoneNames_ko.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/sun/util/resources/TimeZoneNames_ko.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Portions Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Portions Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/sun/util/resources/TimeZoneNames_sv.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/sun/util/resources/TimeZoneNames_sv.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Portions Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Portions Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/sun/util/resources/TimeZoneNames_zh_CN.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/sun/util/resources/TimeZoneNames_zh_CN.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Portions Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Portions Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/classes/sun/util/resources/TimeZoneNames_zh_TW.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/classes/sun/util/resources/TimeZoneNames_zh_TW.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Portions Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved. + * Portions Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/share/native/sun/font/bidi/ubidi.c Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/share/native/sun/font/bidi/ubidi.c Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Portions Copyright 2000-2004 Sun Microsystems, Inc. All Rights Reserved. + * Portions Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/solaris/classes/sun/net/www/protocol/http/NTLMAuthentication.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/solaris/classes/sun/net/www/protocol/http/NTLMAuthentication.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/solaris/classes/sun/nio/ch/EPollSelectorImpl.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/solaris/classes/sun/nio/ch/EPollSelectorImpl.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/windows/classes/sun/nio/ch/WindowsSelectorImpl.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/windows/classes/sun/nio/ch/WindowsSelectorImpl.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2002-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/src/windows/native/java/lang/java_props_md.c Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/src/windows/native/java/lang/java_props_md.c Wed Jul 05 16:44:33 2017 +0200 @@ -38,6 +38,12 @@ #define VER_PLATFORM_WIN32_WINDOWS 1 #endif +#ifndef PROCESSOR_ARCHITECTURE_AMD64 +#define PROCESSOR_ARCHITECTURE_AMD64 9 +#endif + +typedef void (WINAPI *PGNSI)(LPSYSTEM_INFO); + #define SHELL_KEY "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders" /* Encodings for Windows language groups. According to @@ -674,9 +680,22 @@ { char buf[100]; OSVERSIONINFOEX ver; + SYSTEM_INFO si; + PGNSI pGNSI; + ver.dwOSVersionInfoSize = sizeof(ver); GetVersionEx((OSVERSIONINFO *) &ver); + ZeroMemory(&si, sizeof(SYSTEM_INFO)); + // Call GetNativeSystemInfo if supported or GetSystemInfo otherwise. + pGNSI = (PGNSI) GetProcAddress( + GetModuleHandle(TEXT("kernel32.dll")), + "GetNativeSystemInfo"); + if(NULL != pGNSI) + pGNSI(&si); + else + GetSystemInfo(&si); + /* * From msdn page on OSVERSIONINFOEX, current as of this * writing, decoding of dwMajorVersion and dwMinorVersion. @@ -690,9 +709,14 @@ * Windows 3.51 3 51 * Windows NT 4.0 4 0 * Windows 2000 5 0 - * Windows XP 5 1 + * Windows XP 32 bit 5 1 * Windows Server 2003 family 5 2 + * Windows XP 64 bit 5 2 + * where ((&ver.wServicePackMinor) + 2) = 1 + * and si.wProcessorArchitecture = 9 * Windows Vista family 6 0 + * Windows 2008 6 0 + * where ((&ver.wServicePackMinor) + 2) = 1 * * This mapping will presumably be augmented as new Windows * versions are released. @@ -720,7 +744,25 @@ switch (ver.dwMinorVersion) { case 0: sprops.os_name = "Windows 2000"; break; case 1: sprops.os_name = "Windows XP"; break; - case 2: sprops.os_name = "Windows 2003"; break; + case 2: + /* + * From MSDN OSVERSIONINFOEX and SYSTEM_INFO documentation: + * + * "Because the version numbers for Windows Server 2003 + * and Windows XP 6u4 bit are identical, you must also test + * whether the wProductType member is VER_NT_WORKSTATION. + * and si.wProcessorArchitecture is + * PROCESSOR_ARCHITECTURE_AMD64 (which is 9) + * If it is, the operating system is Windows XP 64 bit; + * otherwise, it is Windows Server 2003." + */ + if(ver.wProductType == VER_NT_WORKSTATION && + si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64) { + sprops.os_name = "Windows XP"; /* 64 bit */ + } else { + sprops.os_name = "Windows 2003"; + } + break; default: sprops.os_name = "Windows NT (unknown)"; break; } } else if (ver.dwMajorVersion == 6) {
--- a/jdk/test/java/net/DatagramSocket/SetDatagramSocketImplFactory/ADatagramSocket.sh Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/test/java/net/DatagramSocket/SetDatagramSocketImplFactory/ADatagramSocket.sh Wed Jul 05 16:44:33 2017 +0200 @@ -1,7 +1,7 @@ #! /bin/sh # -# Copyright 1999-2002 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 1999-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/java/nio/Buffer/Basic-X.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/test/java/nio/Buffer/Basic-X.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -31,6 +31,7 @@ #warn This file is preprocessed before being compiled import java.nio.*; +import java.lang.reflect.Method; public class Basic$Type$ @@ -184,32 +185,57 @@ b.position(p); } + private static void compact(Buffer b) { + try { + Class<?> cl = b.getClass(); + Method m = cl.getDeclaredMethod("compact"); + m.setAccessible(true); + m.invoke(b); + } catch (Exception e) { + fail(e.getMessage(), b); + } + } + + private static void checkInvalidMarkException(final Buffer b) { + tryCatch(b, InvalidMarkException.class, new Runnable() { + public void run() { + b.mark(); + compact(b); + b.reset(); + }}); + } + private static void testViews(int level, ByteBuffer b, boolean direct) { ShortBuffer sb = b.asShortBuffer(); BasicShort.test(level, sb, direct); checkBytes(b, new byte[] { 0, (byte)ic(0) }); + checkInvalidMarkException(sb); CharBuffer cb = b.asCharBuffer(); BasicChar.test(level, cb, direct); checkBytes(b, new byte[] { 0, (byte)ic(0) }); + checkInvalidMarkException(cb); IntBuffer ib = b.asIntBuffer(); BasicInt.test(level, ib, direct); checkBytes(b, new byte[] { 0, 0, 0, (byte)ic(0) }); + checkInvalidMarkException(ib); LongBuffer lb = b.asLongBuffer(); BasicLong.test(level, lb, direct); checkBytes(b, new byte[] { 0, 0, 0, 0, 0, 0, 0, (byte)ic(0) }); + checkInvalidMarkException(lb); FloatBuffer fb = b.asFloatBuffer(); BasicFloat.test(level, fb, direct); checkBytes(b, new byte[] { 0x42, (byte)0xc2, 0, 0 }); + checkInvalidMarkException(fb); DoubleBuffer db = b.asDoubleBuffer(); BasicDouble.test(level, db, direct); checkBytes(b, new byte[] { 0x40, 0x58, 0x40, 0, 0, 0, 0, 0 }); - + checkInvalidMarkException(db); } private static void testHet(int level, ByteBuffer b) { @@ -288,8 +314,11 @@ try { thunk.run(); } catch (Throwable x) { - if (ex.isAssignableFrom(x.getClass())) + if (ex.isAssignableFrom(x.getClass())) { caught = true; + } else { + fail(x.getMessage() + " not expected"); + } } if (!caught) fail(ex.getName() + " not thrown", b); @@ -356,7 +385,6 @@ // Exceptions - boolean caught = false; relPut(b); b.limit(b.capacity() / 2); b.position(b.limit()); @@ -386,6 +414,14 @@ b.put(b.limit(), ($type$)42); }}); + tryCatch(b, InvalidMarkException.class, new Runnable() { + public void run() { + b.position(0); + b.mark(); + b.compact(); + b.reset(); + }}); + // Values b.clear();
--- a/jdk/test/java/nio/Buffer/Basic.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/test/java/nio/Buffer/Basic.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -25,7 +25,7 @@ * @summary Unit test for buffers * @bug 4413135 4414911 4416536 4416562 4418782 4471053 4472779 4490253 4523725 * 4526177 4463011 4660660 4661219 4663521 4782970 4804304 4938424 6231529 - * 6221101 6234263 6535542 6591971 + * 6221101 6234263 6535542 6591971 6593946 * @author Mark Reinhold */
--- a/jdk/test/java/nio/Buffer/BasicByte.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/test/java/nio/Buffer/BasicByte.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -31,6 +31,7 @@ // -- This file was mechanically generated: Do not edit! -- // import java.nio.*; +import java.lang.reflect.Method; public class BasicByte @@ -184,32 +185,57 @@ b.position(p); } + private static void compact(Buffer b) { + try { + Class<?> cl = b.getClass(); + Method m = cl.getDeclaredMethod("compact"); + m.setAccessible(true); + m.invoke(b); + } catch (Exception e) { + fail(e.getMessage(), b); + } + } + + private static void checkInvalidMarkException(final Buffer b) { + tryCatch(b, InvalidMarkException.class, new Runnable() { + public void run() { + b.mark(); + compact(b); + b.reset(); + }}); + } + private static void testViews(int level, ByteBuffer b, boolean direct) { ShortBuffer sb = b.asShortBuffer(); BasicShort.test(level, sb, direct); checkBytes(b, new byte[] { 0, (byte)ic(0) }); + checkInvalidMarkException(sb); CharBuffer cb = b.asCharBuffer(); BasicChar.test(level, cb, direct); checkBytes(b, new byte[] { 0, (byte)ic(0) }); + checkInvalidMarkException(cb); IntBuffer ib = b.asIntBuffer(); BasicInt.test(level, ib, direct); checkBytes(b, new byte[] { 0, 0, 0, (byte)ic(0) }); + checkInvalidMarkException(ib); LongBuffer lb = b.asLongBuffer(); BasicLong.test(level, lb, direct); checkBytes(b, new byte[] { 0, 0, 0, 0, 0, 0, 0, (byte)ic(0) }); + checkInvalidMarkException(lb); FloatBuffer fb = b.asFloatBuffer(); BasicFloat.test(level, fb, direct); checkBytes(b, new byte[] { 0x42, (byte)0xc2, 0, 0 }); + checkInvalidMarkException(fb); DoubleBuffer db = b.asDoubleBuffer(); BasicDouble.test(level, db, direct); checkBytes(b, new byte[] { 0x40, 0x58, 0x40, 0, 0, 0, 0, 0 }); - + checkInvalidMarkException(db); } private static void testHet(int level, ByteBuffer b) { @@ -288,8 +314,11 @@ try { thunk.run(); } catch (Throwable x) { - if (ex.isAssignableFrom(x.getClass())) + if (ex.isAssignableFrom(x.getClass())) { caught = true; + } else { + fail(x.getMessage() + " not expected"); + } } if (!caught) fail(ex.getName() + " not thrown", b); @@ -356,7 +385,6 @@ // Exceptions - boolean caught = false; relPut(b); b.limit(b.capacity() / 2); b.position(b.limit()); @@ -386,6 +414,14 @@ b.put(b.limit(), (byte)42); }}); + tryCatch(b, InvalidMarkException.class, new Runnable() { + public void run() { + b.position(0); + b.mark(); + b.compact(); + b.reset(); + }}); + // Values b.clear();
--- a/jdk/test/java/nio/Buffer/BasicChar.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/test/java/nio/Buffer/BasicChar.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -31,6 +31,7 @@ // -- This file was mechanically generated: Do not edit! -- // import java.nio.*; +import java.lang.reflect.Method; public class BasicChar @@ -283,13 +284,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + private static void tryCatch(Buffer b, Class ex, Runnable thunk) { boolean caught = false; try { thunk.run(); } catch (Throwable x) { - if (ex.isAssignableFrom(x.getClass())) + if (ex.isAssignableFrom(x.getClass())) { caught = true; + } else { + fail(x.getMessage() + " not expected"); + } } if (!caught) fail(ex.getName() + " not thrown", b); @@ -356,7 +385,6 @@ // Exceptions - boolean caught = false; relPut(b); b.limit(b.capacity() / 2); b.position(b.limit()); @@ -386,6 +414,14 @@ b.put(b.limit(), (char)42); }}); + tryCatch(b, InvalidMarkException.class, new Runnable() { + public void run() { + b.position(0); + b.mark(); + b.compact(); + b.reset(); + }}); + // Values b.clear();
--- a/jdk/test/java/nio/Buffer/BasicDouble.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/test/java/nio/Buffer/BasicDouble.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -31,6 +31,7 @@ // -- This file was mechanically generated: Do not edit! -- // import java.nio.*; +import java.lang.reflect.Method; public class BasicDouble @@ -283,13 +284,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + private static void tryCatch(Buffer b, Class ex, Runnable thunk) { boolean caught = false; try { thunk.run(); } catch (Throwable x) { - if (ex.isAssignableFrom(x.getClass())) + if (ex.isAssignableFrom(x.getClass())) { caught = true; + } else { + fail(x.getMessage() + " not expected"); + } } if (!caught) fail(ex.getName() + " not thrown", b); @@ -356,7 +385,6 @@ // Exceptions - boolean caught = false; relPut(b); b.limit(b.capacity() / 2); b.position(b.limit()); @@ -386,6 +414,14 @@ b.put(b.limit(), (double)42); }}); + tryCatch(b, InvalidMarkException.class, new Runnable() { + public void run() { + b.position(0); + b.mark(); + b.compact(); + b.reset(); + }}); + // Values b.clear();
--- a/jdk/test/java/nio/Buffer/BasicFloat.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/test/java/nio/Buffer/BasicFloat.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -31,6 +31,7 @@ // -- This file was mechanically generated: Do not edit! -- // import java.nio.*; +import java.lang.reflect.Method; public class BasicFloat @@ -283,13 +284,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + private static void tryCatch(Buffer b, Class ex, Runnable thunk) { boolean caught = false; try { thunk.run(); } catch (Throwable x) { - if (ex.isAssignableFrom(x.getClass())) + if (ex.isAssignableFrom(x.getClass())) { caught = true; + } else { + fail(x.getMessage() + " not expected"); + } } if (!caught) fail(ex.getName() + " not thrown", b); @@ -356,7 +385,6 @@ // Exceptions - boolean caught = false; relPut(b); b.limit(b.capacity() / 2); b.position(b.limit()); @@ -386,6 +414,14 @@ b.put(b.limit(), (float)42); }}); + tryCatch(b, InvalidMarkException.class, new Runnable() { + public void run() { + b.position(0); + b.mark(); + b.compact(); + b.reset(); + }}); + // Values b.clear();
--- a/jdk/test/java/nio/Buffer/BasicInt.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/test/java/nio/Buffer/BasicInt.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -31,6 +31,7 @@ // -- This file was mechanically generated: Do not edit! -- // import java.nio.*; +import java.lang.reflect.Method; public class BasicInt @@ -283,13 +284,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + private static void tryCatch(Buffer b, Class ex, Runnable thunk) { boolean caught = false; try { thunk.run(); } catch (Throwable x) { - if (ex.isAssignableFrom(x.getClass())) + if (ex.isAssignableFrom(x.getClass())) { caught = true; + } else { + fail(x.getMessage() + " not expected"); + } } if (!caught) fail(ex.getName() + " not thrown", b); @@ -356,7 +385,6 @@ // Exceptions - boolean caught = false; relPut(b); b.limit(b.capacity() / 2); b.position(b.limit()); @@ -386,6 +414,14 @@ b.put(b.limit(), (int)42); }}); + tryCatch(b, InvalidMarkException.class, new Runnable() { + public void run() { + b.position(0); + b.mark(); + b.compact(); + b.reset(); + }}); + // Values b.clear();
--- a/jdk/test/java/nio/Buffer/BasicLong.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/test/java/nio/Buffer/BasicLong.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -31,6 +31,7 @@ // -- This file was mechanically generated: Do not edit! -- // import java.nio.*; +import java.lang.reflect.Method; public class BasicLong @@ -283,13 +284,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + private static void tryCatch(Buffer b, Class ex, Runnable thunk) { boolean caught = false; try { thunk.run(); } catch (Throwable x) { - if (ex.isAssignableFrom(x.getClass())) + if (ex.isAssignableFrom(x.getClass())) { caught = true; + } else { + fail(x.getMessage() + " not expected"); + } } if (!caught) fail(ex.getName() + " not thrown", b); @@ -356,7 +385,6 @@ // Exceptions - boolean caught = false; relPut(b); b.limit(b.capacity() / 2); b.position(b.limit()); @@ -386,6 +414,14 @@ b.put(b.limit(), (long)42); }}); + tryCatch(b, InvalidMarkException.class, new Runnable() { + public void run() { + b.position(0); + b.mark(); + b.compact(); + b.reset(); + }}); + // Values b.clear();
--- a/jdk/test/java/nio/Buffer/BasicShort.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/test/java/nio/Buffer/BasicShort.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -31,6 +31,7 @@ // -- This file was mechanically generated: Do not edit! -- // import java.nio.*; +import java.lang.reflect.Method; public class BasicShort @@ -283,13 +284,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + private static void tryCatch(Buffer b, Class ex, Runnable thunk) { boolean caught = false; try { thunk.run(); } catch (Throwable x) { - if (ex.isAssignableFrom(x.getClass())) + if (ex.isAssignableFrom(x.getClass())) { caught = true; + } else { + fail(x.getMessage() + " not expected"); + } } if (!caught) fail(ex.getName() + " not thrown", b); @@ -356,7 +385,6 @@ // Exceptions - boolean caught = false; relPut(b); b.limit(b.capacity() / 2); b.position(b.limit()); @@ -386,6 +414,14 @@ b.put(b.limit(), (short)42); }}); + tryCatch(b, InvalidMarkException.class, new Runnable() { + public void run() { + b.position(0); + b.mark(); + b.compact(); + b.reset(); + }}); + // Values b.clear();
--- a/jdk/test/java/nio/Buffer/genBasic.sh Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/test/java/nio/Buffer/genBasic.sh Wed Jul 05 16:44:33 2017 +0200 @@ -1,7 +1,7 @@ #! /bin/sh # -# Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -23,10 +23,10 @@ # have any questions. # -SPP='sh ../../../../make/java/nio/spp.sh' +javac -d . ../../../../make/tools/src/build/tools/spp/Spp.java gen() { - $SPP -K$1 -Dtype=$1 -DType=$2 -DFulltype=$3 <Basic-X.java >Basic$2.java + java build.tools.spp.Spp -K$1 -Dtype=$1 -DType=$2 -DFulltype=$3 <Basic-X.java >Basic$2.java } gen byte Byte Byte @@ -36,3 +36,5 @@ gen long Long Long gen float Float Float gen double Double Double + +rm -rf build
--- a/jdk/test/java/nio/Buffer/genCopyDirectMemory.sh Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/test/java/nio/Buffer/genCopyDirectMemory.sh Wed Jul 05 16:44:33 2017 +0200 @@ -1,7 +1,7 @@ #! /bin/sh # -# Copyright 2002-2007 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it @@ -23,10 +23,10 @@ # have any questions. # -SPP='sh ../../../../make/java/nio/spp.sh' +javac -d . ../../../../make/tools/src/build/tools/spp/Spp.java > Spp.java gen() { - $SPP -K$1 -Dtype=$1 -DType=$2 -DFulltype=$3<CopyDirect-X-Memory.java >CopyDirect$2Memory.java + java build.tools.spp.Spp -K$1 -Dtype=$1 -DType=$2 -DFulltype=$3<CopyDirect-X-Memory.java >CopyDirect$2Memory.java } gen byte Byte Byte @@ -37,3 +37,4 @@ gen float Float Float gen double Double Double +rm -rf build
--- a/jdk/test/java/nio/channels/Channels/Basic.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/test/java/nio/channels/Channels/Basic.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2001-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2001-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -22,12 +22,13 @@ */ /* @test - * @bug 4417152 4481572 6248930 + * @bug 4417152 4481572 6248930 6725399 * @summary Test Channels basic functionality */ import java.io.*; import java.nio.*; +import java.nio.charset.*; import java.nio.channels.*; @@ -50,22 +51,106 @@ test(); } + static void failNpeExpected() { + throw new RuntimeException("Did not get the expected NullPointerException."); + } + private static void test() throws Exception { + //Test if methods of Channels throw NPE with null argument(s) + try { + Channels.newInputStream((ReadableByteChannel)null); + failNpeExpected(); + } catch (NullPointerException npe) {} + + try { + Channels.newOutputStream((WritableByteChannel)null); + failNpeExpected(); + } catch (NullPointerException npe) {} + try { ReadableByteChannel channel = Channels.newChannel((InputStream)null); - - throw new RuntimeException("Did not get the expected NullPointerException."); - } catch (NullPointerException ne) { - // OK. As expected. - } + failNpeExpected(); + } catch (NullPointerException ne) {} // OK. As expected. try { WritableByteChannel channel = Channels.newChannel((OutputStream)null); + failNpeExpected(); + } catch (NullPointerException ne) {} // OK. As expected. - throw new RuntimeException("Did not get the expected NullPointerException."); - } catch (NullPointerException ne) { - // OK. As expected. - } + WritableByteChannel wbc = new WritableByteChannel() { + public int write(ByteBuffer src) { return 0; } + public void close() throws IOException { } + public boolean isOpen() { return true; } + }; + + ReadableByteChannel rbc = new ReadableByteChannel() { + public int read(ByteBuffer dst) { return 0; } + public void close() {} + public boolean isOpen() { return true; } + }; + + try { + Channels.newReader((ReadableByteChannel)null, + Charset.defaultCharset().newDecoder(), + -1); + failNpeExpected(); + } catch (NullPointerException npe) {} + + try { + Channels.newReader(rbc, (CharsetDecoder)null, -1); + failNpeExpected(); + } catch (NullPointerException npe) {} + + try { + Channels.newReader((ReadableByteChannel)null, + Charset.defaultCharset().name()); + failNpeExpected(); + } catch (NullPointerException npe) {} + + try { + Channels.newReader(rbc, null); + failNpeExpected(); + } catch (NullPointerException npe) {} + + + try { + Channels.newReader(null, null); + failNpeExpected(); + } catch (NullPointerException npe) {} + + try { + Channels.newWriter((WritableByteChannel)null, + Charset.defaultCharset().newEncoder(), + -1); + failNpeExpected(); + } catch (NullPointerException npe) {} + + try { + Channels.newWriter(null, null, -1); + failNpeExpected(); + } catch (NullPointerException npe) {} + + try { + Channels.newWriter(wbc, null, -1); + failNpeExpected(); + } catch (NullPointerException npe) {} + + try { + Channels.newWriter((WritableByteChannel)null, + Charset.defaultCharset().name()); + failNpeExpected(); + } catch (NullPointerException npe) {} + + try { + Channels.newWriter(wbc, null); + failNpeExpected(); + } catch (NullPointerException npe) {} + + try { + Channels.newWriter(null, null); + failNpeExpected(); + } catch (NullPointerException npe) {} + try { blah = File.createTempFile("blah", null);
--- a/jdk/test/java/util/TimeZone/OldIDMappingTest.sh Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/test/java/util/TimeZone/OldIDMappingTest.sh Wed Jul 05 16:44:33 2017 +0200 @@ -1,4 +1,4 @@ -# Copyright 2003-2004 Sun Microsystems, Inc. All Rights Reserved. +# Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/Introspector/AnnotatedNotificationInfoTest.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/test/javax/management/Introspector/AnnotatedNotificationInfoTest.java Wed Jul 05 16:44:33 2017 +0200 @@ -22,8 +22,8 @@ */ /* - * @test %M% %I% - * @bug 6323980 + * @test + * @bug 6323980 6772779 * @summary Test @NotificationInfo annotation * @author Eamonn McManus * @run main/othervm -ea AnnotatedNotificationInfoTest @@ -32,6 +32,7 @@ import java.io.Serializable; import java.lang.management.ManagementFactory; import java.lang.reflect.Field; +import java.util.Arrays; import javax.annotation.Resource; import javax.management.AttributeChangeNotification; import javax.management.Description; @@ -134,6 +135,23 @@ private static Object mbeanIntf5 = new Intf5Impl(); + @NotificationInfo( + types = {"foo", "bar"}, + notificationClass = AttributeChangeNotification.class, + description = @Description( + value = "description", + bundleBaseName = "bundle", + key = "key"), + descriptorFields = {"foo=bar"}) + public static interface Intf6MBean {} + + public static class Intf6 implements Intf6MBean { + @Resource + private volatile SendNotification send; + } + + private static Object mbeanIntf6 = new Intf6(); + public static interface Impl1MBean {} @NotificationInfo( @@ -202,22 +220,21 @@ private static Object mbeanMBean2 = new MBean2(); - // Following disabled until we support it -// @MBean -// @NotificationInfo( -// types = {"foo", "bar"}, -// notificationClass = AttributeChangeNotification.class, -// description = @Description( -// value = "description", -// bundleBaseName = "bundle", -// key = "key"), -// descriptorFields = {"foo=bar"}) -// public static class MBean3 { -// @Resource -// private volatile SendNotification send; -// } -// -// private static Object mbeanMBean3 = new MBean3(); + @MBean + @NotificationInfo( + types = {"foo", "bar"}, + notificationClass = AttributeChangeNotification.class, + description = @Description( + value = "description", + bundleBaseName = "bundle", + key = "key"), + descriptorFields = {"foo=bar"}) + public static class MBean3 { + @Resource + private volatile SendNotification send; + } + + private static Object mbeanMBean3 = new MBean3(); @MXBean @NotificationInfo( @@ -237,6 +254,23 @@ private static Object mbeanMXBean2 = new MXBean2(); + // Classes for the second test. This tests the simplest case, which is + // the first example in the javadoc for @NotificationInfo. Notice that + // this MBean is not a NotificationBroadcaster and does not inject a + // SendNotification! That should possibly be an error, but it's currently + // allowed by the spec. + @NotificationInfo(types={"com.example.notifs.create", + "com.example.notifs.destroy"}) + public static interface CacheMBean { + public int getCachedNum(); + } + + public static class Cache implements CacheMBean { + public int getCachedNum() { + return 0; + } + } + public static void main(String[] args) throws Exception { if (!AnnotatedNotificationInfoTest.class.desiredAssertionStatus()) throw new Exception("Test must be run with -ea"); @@ -267,5 +301,14 @@ assert mbnis[0].equals(expected) : mbnis[0]; mbs.unregisterMBean(on); } + + mbs.registerMBean(new Cache(), on); + MBeanInfo mbi = mbs.getMBeanInfo(on); + MBeanNotificationInfo[] mbnis = mbi.getNotifications(); + assert mbnis.length == 1 : mbnis.length; + String[] types = mbnis[0].getNotifTypes(); + String[] expectedTypes = + CacheMBean.class.getAnnotation(NotificationInfo.class).types(); + assert Arrays.equals(types, expectedTypes) : Arrays.toString(types); } }
--- a/jdk/test/javax/management/Introspector/AnnotationTest.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/test/javax/management/Introspector/AnnotationTest.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/MBeanServer/DynamicWrapperMBeanTest.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/test/javax/management/MBeanServer/DynamicWrapperMBeanTest.java Wed Jul 05 16:44:33 2017 +0200 @@ -23,14 +23,27 @@ /* * @test DynamicWrapperMBeanTest - * @bug 6624232 + * @bug 6624232 6776225 * @summary Test the DynamicWrapperMBean interface * @author Eamonn McManus */ import java.lang.management.ManagementFactory; +import javax.annotation.Resource; +import javax.management.JMX; +import javax.management.ListenerNotFoundException; +import javax.management.MBeanNotificationInfo; import javax.management.MBeanServer; +import javax.management.Notification; +import javax.management.NotificationBroadcaster; +import javax.management.NotificationBroadcasterSupport; +import javax.management.NotificationEmitter; +import javax.management.NotificationFilter; +import javax.management.NotificationInfo; +import javax.management.NotificationListener; import javax.management.ObjectName; +import javax.management.SendNotification; +import javax.management.StandardEmitterMBean; import javax.management.StandardMBean; import javax.management.modelmbean.ModelMBeanInfo; import javax.management.modelmbean.ModelMBeanInfoSupport; @@ -39,6 +52,25 @@ import static javax.management.StandardMBean.Options; public class DynamicWrapperMBeanTest { + private static String failure; + + public static void main(String[] args) throws Exception { + wrapTest(); + notifTest(); + + if (failure == null) + System.out.println("TEST PASSED"); + else + throw new Exception("TEST FAILED: " + failure); + } + + private static final Options wrappedVisOpts = new Options(); + private static final Options wrappedInvisOpts = new Options(); + static { + wrappedVisOpts.setWrappedObjectVisible(true); + wrappedInvisOpts.setWrappedObjectVisible(false); + } + public static interface WrappedMBean { public void sayHello(); } @@ -48,19 +80,13 @@ } } - private static String failure; - - public static void main(String[] args) throws Exception { + private static void wrapTest() throws Exception { if (Wrapped.class.getClassLoader() == StandardMBean.class.getClassLoader()) { throw new Exception( "TEST ERROR: Resource and StandardMBean have same ClassLoader"); } - Options wrappedVisOpts = new Options(); - wrappedVisOpts.setWrappedObjectVisible(true); - Options wrappedInvisOpts = new Options(); - wrappedInvisOpts.setWrappedObjectVisible(false); assertEquals("Options withWrappedObjectVisible(false)", new Options(), wrappedInvisOpts); @@ -138,8 +164,223 @@ assertEquals("isInstanceOf(RequiredModelMBean) for invisible resource", true, mbs.isInstanceOf(invisibleName, RequiredModelMBean.class.getName())); - if (failure != null) - throw new Exception("TEST FAILED: " + failure); + mbs.unregisterMBean(visibleName); + mbs.unregisterMBean(invisibleName); + } + + private static enum WrapType { + NBS("NotificationBroadcasterSupport"), + INJ("@Resource SendNotification"), + STD_MBEAN_NBS("StandardMBean delegating to NotificationBroadcasterSupport"), + STD_MBEAN_INJ("StandardMBean delegating to @Resource SendNotification"), + STD_MBEAN_SUB_NBS("StandardMBean subclass implementing NotificationBroadcaster"), + STD_MBEAN_SUB_INJ("StandardMBean subclass with @Resource SendNotification"), + STD_EMIT_MBEAN_NBS("StandardEmitterMBean delegating to NotificationBroadcasterSupport"), + STD_EMIT_MBEAN_INJ("StandardEmitterMBean delegating to @Resource SendNotification"), + STD_EMIT_MBEAN_SUB("StandardEmitterMBean subclass"), + STD_EMIT_MBEAN_SUB_INJ("StandardEmitterMBean subclass with @Resource SendNotification"); + + WrapType(String s) { + this.s = s; + } + + @Override + public String toString() { + return s; + } + + private final String s; + } + + @NotificationInfo( + types = {"foo", "bar"} + ) + public static interface BroadcasterMBean { + public void send(Notification n); + } + + public static class Broadcaster + extends NotificationBroadcasterSupport implements BroadcasterMBean { + public void send(Notification n) { + super.sendNotification(n); + } + } + + public static interface SendNotifMBean extends BroadcasterMBean { + } + + public static class SendNotif implements SendNotifMBean { + @Resource + private volatile SendNotification sendNotif; + + public void send(Notification n) { + sendNotif.sendNotification(n); + } + } + + public static class StdBroadcaster + extends StandardMBean + implements BroadcasterMBean, NotificationBroadcaster { + private final NotificationBroadcasterSupport nbs = + new NotificationBroadcasterSupport(); + + public StdBroadcaster() throws Exception { + super(BroadcasterMBean.class); + } + + public void send(Notification n) { + nbs.sendNotification(n); + } + + public void addNotificationListener(NotificationListener listener, + NotificationFilter filter, Object handback) { + nbs.addNotificationListener(listener, filter, handback); + } + + public MBeanNotificationInfo[] getNotificationInfo() { + return null; + } + + public void removeNotificationListener(NotificationListener listener) + throws ListenerNotFoundException { + nbs.removeNotificationListener(listener); + } + } + + public static class StdSendNotif + extends StandardMBean implements SendNotifMBean { + @Resource + private volatile SendNotification sendNotif; + + public StdSendNotif() throws Exception { + super(SendNotifMBean.class); + } + + public void send(Notification n) { + sendNotif.sendNotification(n); + } + } + + public static class StdEmitterBroadcaster // :-) + extends StandardEmitterMBean + implements BroadcasterMBean { + + public StdEmitterBroadcaster() throws Exception { + super(BroadcasterMBean.class, null); + } + + public void send(Notification n) { + super.sendNotification(n); + } + } + + // This case is unlikely - if you're using @Resource SendNotification + // then there's no point in using StandardEmitterMBean, since + // StandardMBean would suffice. + public static class StdEmitterSendNotif + extends StandardEmitterMBean implements SendNotifMBean { + @Resource + private volatile SendNotification sendNotif; + + public StdEmitterSendNotif() { + super(SendNotifMBean.class, null); + } + + public void send(Notification n) { + sendNotif.sendNotification(n); + } + } + + // Test that JMX.isNotificationSource and + // mbs.isInstanceOf("NotificationBroadcaster") work correctly even when + // the MBean is a broadcaster by virtue of its wrapped resource. + // Test that we find the MBeanNotificationInfo[] from the @NotificationInfo + // annotation on BroadcasterMBean. We cover a large number of different + // MBean types, but all ultimately implement that interface. + private static void notifTest() throws Exception { + System.out.println("===Testing notification senders==="); + + for (WrapType wrapType : WrapType.values()) { + System.out.println("---" + wrapType); + + final Object mbean; + + switch (wrapType) { + case NBS: + // An MBean that extends NotificationBroadcasterSupport + mbean = new Broadcaster(); + break; + case INJ: + // An MBean that injects SendNotification + mbean = new SendNotif(); + break; + case STD_MBEAN_NBS: + // A StandardMBean that delegates to a NotificationBroadcasterSupport + mbean = new StandardMBean( + new Broadcaster(), BroadcasterMBean.class, wrappedVisOpts); + break; + case STD_MBEAN_INJ: + // A StandardMBean that delegates to an object that injects + // SendNotification + mbean = new StandardMBean( + new SendNotif(), BroadcasterMBean.class, wrappedVisOpts); + break; + case STD_EMIT_MBEAN_NBS: { + // A StandardEmitterMBean that delegates to a NotificationBroadcasterSupport + Broadcaster broadcaster = new Broadcaster(); + mbean = new StandardEmitterMBean( + broadcaster, BroadcasterMBean.class, wrappedVisOpts, + broadcaster); + break; + } + case STD_EMIT_MBEAN_INJ: { + // A StandardEmitterMBean that delegates to an object that injects + // SendNotification + SendNotif sendNotif = new SendNotif(); + mbean = new StandardEmitterMBean( + sendNotif, BroadcasterMBean.class, wrappedVisOpts, + null); + break; + } + case STD_MBEAN_SUB_NBS: + // A subclass of StandardMBean that implements NotificationBroadcaster + mbean = new StdBroadcaster(); + break; + case STD_MBEAN_SUB_INJ: + // A subclass of StandardMBean that injects SendNotification + mbean = new StdSendNotif(); + break; + case STD_EMIT_MBEAN_SUB: + // A subclass of StandardEmitterMBean + mbean = new StdEmitterBroadcaster(); + break; + case STD_EMIT_MBEAN_SUB_INJ: + // A subclass of StandardEmitterMBean that injects SendNotification + // (which is a rather strange thing to do and probably a user + // misunderstanding but we should do the right thing anyway). + mbean = new StdEmitterSendNotif(); + break; + default: + throw new AssertionError(); + } + + MBeanServer mbs = ManagementFactory.getPlatformMBeanServer(); + + final ObjectName name = new ObjectName("a:type=Sender"); + mbs.registerMBean(mbean, name); + boolean isBroadcaster = mbs.isInstanceOf( + name, NotificationBroadcaster.class.getName()); + assertEquals("JMX.isNotificationSource(mbean)", + true, JMX.isNotificationSource(mbean)); + assertEquals("isInstanceOf(NotificationBroadcaster)", + true, isBroadcaster); + MBeanNotificationInfo[] mbnis = + mbs.getMBeanInfo(name).getNotifications(); + assertEquals("MBeanNotificationInfo not empty", + true, (mbnis.length > 0)); + + mbs.unregisterMBean(name); + } } private static void assertEquals(String what, Object expect, Object actual) {
--- a/jdk/test/javax/management/MBeanServer/MBeanExceptionTest.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/test/javax/management/MBeanServer/MBeanExceptionTest.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2004 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2004-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/context/ContextTest.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/test/javax/management/context/ContextTest.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/context/LocaleTest.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/test/javax/management/context/LocaleTest.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/context/LocalizableTest.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/test/javax/management/context/LocalizableTest.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/context/localizable/MBeanDescriptions_fr.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/test/javax/management/context/localizable/MBeanDescriptions_fr.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/context/localizable/Whatsit.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/test/javax/management/context/localizable/Whatsit.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/context/localizable/WhatsitMBean.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/test/javax/management/context/localizable/WhatsitMBean.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/remote/mandatory/provider/ProviderTest.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/test/javax/management/remote/mandatory/provider/ProviderTest.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2003 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/management/remote/mandatory/subjectDelegation/SimpleStandard.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/test/javax/management/remote/mandatory/subjectDelegation/SimpleStandard.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2003-2005 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/swing/RepaintManager/6608456/bug6608456.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/test/javax/swing/RepaintManager/6608456/bug6608456.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/swing/text/html/HRuleView/Test5062055.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/test/javax/swing/text/html/HRuleView/Test5062055.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/javax/xml/crypto/dsig/GenerationTests.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/test/javax/xml/crypto/dsig/GenerationTests.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it
--- a/jdk/test/lib/security/cacerts/VerifyCACerts.java Thu Dec 04 11:10:19 2008 -0800 +++ b/jdk/test/lib/security/cacerts/VerifyCACerts.java Wed Jul 05 16:44:33 2017 +0200 @@ -1,5 +1,5 @@ /* - * Copyright 2002-2006 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2002-2008 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -23,11 +23,12 @@ /** * @test - * @bug 4400624 6321453 + * @bug 4400624 6321453 6728890 6732157 6754779 6768559 * @summary Make sure all self-signed root cert signatures are valid */ import java.io.FileInputStream; import java.security.KeyStore; +import java.security.MessageDigest; import java.security.cert.*; import java.util.*; @@ -39,25 +40,102 @@ System.getProperty("file.separator") + "security" + System.getProperty("file.separator") + "cacerts"; + private static boolean atLeastOneFailed = false; + + private static MessageDigest md; + + // map of cert alias to SHA1 fingerprint + private static Map<String, String> fpMap = new HashMap<String, String>(); + + private static String[][] entries = { + { "swisssignsilverg2ca", "9B:AA:E5:9F:56:EE:21:CB:43:5A:BE:25:93:DF:A7:F0:40:D1:1D:CB"}, + { "swisssigngoldg2ca", "D8:C5:38:8A:B7:30:1B:1B:6E:D4:7A:E6:45:25:3A:6F:9F:1A:27:61"}, + { "swisssignplatinumg2ca", "56:E0:FA:C0:3B:8F:18:23:55:18:E5:D3:11:CA:E8:C2:43:31:AB:66"}, + { "verisigntsaca", "BE:36:A4:56:2F:B2:EE:05:DB:B3:D3:23:23:AD:F4:45:08:4E:D6:56"}, + { "camerfirmachambersignca", "4A:BD:EE:EC:95:0D:35:9C:89:AE:C7:52:A1:2C:5B:29:F6:D6:AA:0C"}, + { "camerfirmachambersca", "78:6A:74:AC:76:AB:14:7F:9C:6A:30:50:BA:9E:A8:7E:FE:9A:CE:3C"}, + { "camerfirmachamberscommerceca", "6E:3A:55:A4:19:0C:19:5C:93:84:3C:C0:DB:72:2E:31:30:61:F0:B1"}, + { "deutschetelekomrootca2", "85:A4:08:C0:9C:19:3E:5D:51:58:7D:CD:D6:13:30:FD:8C:DE:37:BF"}, + }; + + static { + for (String[] entry : entries) { + fpMap.put(entry[0], entry[1]); + } + }; + public static void main(String[] args) throws Exception { + md = MessageDigest.getInstance("SHA1"); + KeyStore ks = KeyStore.getInstance("JKS"); + ks.load(new FileInputStream(cacertsFileName), "changeit".toCharArray()); + // check that all entries in the map are in the keystore + for (String alias : fpMap.keySet()) { + if (!ks.isCertificateEntry(alias)) { + atLeastOneFailed = true; + System.err.println(alias + " is not in cacerts"); + } + } // pull all the trusted self-signed CA certs out of the cacerts file // and verify their signatures - KeyStore ks = KeyStore.getInstance("JKS"); - ks.load(new FileInputStream(cacertsFileName), "changeit".toCharArray()); Enumeration<String> aliases = ks.aliases(); while (aliases.hasMoreElements()) { String alias = aliases.nextElement(); System.out.println("Verifying " + alias); - if (!ks.isCertificateEntry(alias)) - throw new Exception(alias + " is not a trusted cert entry"); + if (!ks.isCertificateEntry(alias)) { + atLeastOneFailed = true; + System.err.println(alias + " is not a trusted cert entry"); + } Certificate cert = ks.getCertificate(alias); // remember the GTE CyberTrust CA cert for further tests if (alias.equals("gtecybertrustca")) { - throw new Exception + atLeastOneFailed = true; + System.err.println ("gtecybertrustca is expired and should be deleted"); } cert.verify(cert.getPublicKey()); + if (!checkFingerprint(alias, cert)) { + atLeastOneFailed = true; + System.err.println + (alias + " SHA1 fingerprint is incorrect"); + } + } + + if (atLeastOneFailed) { + throw new Exception("At least one cacert test failed"); } } + + private static boolean checkFingerprint(String alias, Certificate cert) + throws Exception { + String fingerprint = fpMap.get(alias); + if (fingerprint == null) { + // no entry for alias + return true; + } + System.out.println("Checking fingerprint of " + alias); + byte[] digest = md.digest(cert.getEncoded()); + return fingerprint.equals(toHexString(digest)); + } + + private static String toHexString(byte[] block) { + StringBuffer buf = new StringBuffer(); + int len = block.length; + for (int i = 0; i < len; i++) { + byte2hex(block[i], buf); + if (i < len-1) { + buf.append(":"); + } + } + return buf.toString(); + } + + private static void byte2hex(byte b, StringBuffer buf) { + char[] hexChars = { '0', '1', '2', '3', '4', '5', '6', '7', '8', + '9', 'A', 'B', 'C', 'D', 'E', 'F' }; + int high = ((b & 0xf0) >> 4); + int low = (b & 0x0f); + buf.append(hexChars[high]); + buf.append(hexChars[low]); + } }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/test/sun/management/jmxremote/LocalRMIServerSocketFactoryTest.java Wed Jul 05 16:44:33 2017 +0200 @@ -0,0 +1,145 @@ +/* + * Copyright 2008 Sun Microsystems, Inc. All Rights Reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ + +/** + * @test LocalRMIServerSocketFactoryTest.java + * @bug 6774170 + * @summary Connect to a server socket returned by the LocalRMIServerSocketFactory. + * + * @author Daniel Fuchs + * + * @run compile -XDignore.symbol.file=true -source 1.6 -g LocalRMIServerSocketFactoryTest.java + * @run main LocalRMIServerSocketFactoryTest + */ + +import sun.management.jmxremote.LocalRMIServerSocketFactory; +import java.io.IOException; +import java.net.InetAddress; +import java.net.NetworkInterface; +import java.net.ServerSocket; +import java.net.Socket; +import java.util.concurrent.SynchronousQueue; + +public class LocalRMIServerSocketFactoryTest { + + private static final SynchronousQueue<Exception> queue = + new SynchronousQueue<Exception>(); + + static final class Result extends Exception { + + private Result() { + super("SUCCESS: No exception was thrown"); + } + static final Result SUCCESS = new Result(); + } + + private static void checkError(String message) throws Exception { + + // Wait for the server to set the error field. + final Exception x = queue.take(); + + if (x == Result.SUCCESS) { + return; + } + + + // case of 6674166: this is very unlikely to happen, even if + // both 6674166 and 6774170 aren't fixed. If it happens + // however, it might indicate that neither defects are fixed. + + if (x instanceof NullPointerException) { + throw new Exception(message + " - " + + "Congratulations! it seems you have triggered 6674166. " + + "Neither 6674166 nor 6774170 seem to be fixed: " + x, x); + } else if (x instanceof IOException) { + throw new Exception(message + " - " + + "Unexpected IOException. Maybe you triggered 6674166? " + + x, x); + } else if (x != null) { + throw new Exception(message + " - " + + "Ouch, that's bad. " + + "This is a new kind of unexpected exception " + + x, x); + } + } + + public static void main(String[] args) throws Exception { + final LocalRMIServerSocketFactory f = + new LocalRMIServerSocketFactory(); + final ServerSocket s = f.createServerSocket(0); + final int port = s.getLocalPort(); + Thread t = new Thread() { + + public void run() { + while (true) { + Exception error = Result.SUCCESS; + try { + System.err.println("Accepting: "); + final Socket ss = s.accept(); + System.err.println(ss.getInetAddress() + " accepted"); + } catch (Exception x) { + x.printStackTrace(); + error = x; + } finally { + try { + // wait for the client to get the exception. + queue.put(error); + } catch (Exception x) { + // too bad! + System.err.println("Could't send result to client!"); + x.printStackTrace(); + return; + } + } + } + } + }; + t.setDaemon(true); + t.start(); + + System.err.println("new Socket((String)null, port)"); + final Socket s1 = new Socket((String) null, port); + checkError("new Socket((String)null, port)"); + s1.close(); + System.err.println("new Socket((String)null, port): PASSED"); + + System.err.println("new Socket(InetAddress.getByName(null), port)"); + final Socket s2 = new Socket(InetAddress.getByName(null), port); + checkError("new Socket(InetAddress.getByName(null), port)"); + s2.close(); + System.err.println("new Socket(InetAddress.getByName(null), port): PASSED"); + + System.err.println("new Socket(localhost, port)"); + final Socket s3 = new Socket("localhost", port); + checkError("new Socket(localhost, port)"); + s3.close(); + System.err.println("new Socket(localhost, port): PASSED"); + + System.err.println("new Socket(127.0.0.1, port)"); + final Socket s4 = new Socket("127.0.0.1", port); + checkError("new Socket(127.0.0.1, port)"); + s4.close(); + System.err.println("new Socket(127.0.0.1, port): PASSED"); + + } +}