diff options
Diffstat (limited to 'java/openjdk8/files/patch-8u11-b13')
-rw-r--r-- | java/openjdk8/files/patch-8u11-b13 | 6004 |
1 files changed, 0 insertions, 6004 deletions
diff --git a/java/openjdk8/files/patch-8u11-b13 b/java/openjdk8/files/patch-8u11-b13 deleted file mode 100644 index d93b0e96fe53..000000000000 --- a/java/openjdk8/files/patch-8u11-b13 +++ /dev/null @@ -1,6004 +0,0 @@ ---- .hgtags Tue Mar 11 13:01:27 2014 -0700 -+++ .hgtags Tue Jun 03 14:19:17 2014 -0700 -@@ -258,6 +258,7 @@ - 6f3357d3dbf83c1ef0098bcb853e3aa3b26f4cb8 jdk8u5-b02 - 794b4365b6884e9a15f0840792539f5821814127 jdk8u5-b03 - c200d6cb184056e44afe7102913004b717896aa3 jdk8u5-b04 -+eb537d7c31e069ac10de0901727515743f7535d2 jdk8u11-b00 - eb537d7c31e069ac10de0901727515743f7535d2 jdk8u5-b05 - 75cdae18810a479cc3c0fe8eb9055d968ae31c63 jdk8u5-b06 - b1585984f29320737ca0da5af029b1225a75c476 jdk8u5-b07 -@@ -266,3 +267,15 @@ - fae51c73a06d71304c9dbff22984ee501812b972 jdk8u5-b10 - dd3bd272ceedbd69fabafc531b6b1e056659f733 jdk8u5-b11 - 3e05b6ae0a1e2bd7352462e9bf8e7262246fb77f jdk8u5-b12 -+d81e301cae70f1f95f4bb976ec053c915dee503a jdk8u5-b13 -+397902f53444be14aa4e261cd47064fac82919c9 jdk8u11-b01 -+6ffd41be920a3e63c5767f36ac725e9e3bf5ec50 jdk8u11-b02 -+3078ab9b8d4ad37cf18bf6a1ed49c8015e70ec73 jdk8u11-b03 -+7be4371ce4ed33cf779606ef3b6256f316898e08 jdk8u11-b04 -+97c6d6a8e5bb3dfc24b9a32711aa0906ea110e23 jdk8u11-b05 -+5ea1a19659427ea813ae4a00ae9d54338c7faec6 jdk8u11-b06 -+fe460afb120e2312769454f4630cccd406ded3f6 jdk8u11-b07 -+81f3392f551c45578cabe29552c670b87170d325 jdk8u11-b08 -+390084098df7bffecd0eb2318facc6f0f9a46b70 jdk8u11-b09 -+6d324f36e2448f486d0caa67f70e5a6cf5ac6c0d jdk8u11-b10 -+f0b9fee1d40a6aae31be4780f70aba02148ec54c jdk8u11-b11 ---- make/Jprt.gmk Tue Mar 11 13:01:27 2014 -0700 -+++ make/Jprt.gmk Tue Jun 03 14:19:17 2014 -0700 -@@ -106,6 +106,9 @@ - ifdef ENABLE_SJAVAC - @$(ECHO) " --enable-sjavac" >> $@.tmp - endif -+ ifdef JDK_UPDATE_VERSION -+ @$(ECHO) " --with-update-version=$(JDK_UPDATE_VERSION)" >> $@.tmp -+ endif - ifeq ($(HOTSPOT_AVAILABLE),false) - ifdef ALT_JDK_IMPORT_PATH - @$(ECHO) " --with-import-hotspot=$(call UnixPath,$(ALT_JDK_IMPORT_PATH)) " >> $@.tmp ---- corba/.hgtags Tue Mar 11 13:01:32 2014 -0700 -+++ corba/.hgtags Tue Jun 03 14:19:19 2014 -0700 -@@ -258,6 +258,7 @@ - c750098a3ef18de28a6d739666559f0333c76c78 jdk8u5-b02 - 3d9b40a53134aa33031bf13581dff9fccade9048 jdk8u5-b03 - 596f4e4c5587c29767345555c4e48a5be0a58b83 jdk8u5-b04 -+1f95c888e5efe010550d95ef59020ddb15876463 jdk8u11-b00 - 1f95c888e5efe010550d95ef59020ddb15876463 jdk8u5-b05 - edfa8bc86fda1b2fd064abbafb4506c80a47587e jdk8u5-b06 - 0a25d1c162bc046aa230577736429935716a2243 jdk8u5-b07 -@@ -266,3 +267,15 @@ - d9031b5525f777299554080d6beb8b077df0a614 jdk8u5-b10 - a2f7b36bfc1bc8df033fe5721b48fac1c3928a5b jdk8u5-b11 - 475b96f6d8cecf720ca9fd6d332dd4bafb0f654c jdk8u5-b12 -+897088ef059f53a8aa73267985666ad319223064 jdk8u5-b13 -+e2cfebaf3b9d0eae06c2d5ee7669180f1723f897 jdk8u11-b01 -+152d1b91e5c5dfc940cccef1bfeae60a6604032a jdk8u11-b02 -+60b073836311720d4f013d4493af2729ebe663f6 jdk8u11-b03 -+4a0c834de2827b753e5ba2972ca3d9125a5c80eb jdk8u11-b04 -+08aa9f55fe5bce1f04cfd2958f71e8df18643e29 jdk8u11-b05 -+d6f052f3ad5d9244452d40236efdabe13be24716 jdk8u11-b06 -+3052e1208958022173a6bf752edb88c7ad188797 jdk8u11-b07 -+fff1b1687ed60d3d398b3d55c0dc71ee3450a601 jdk8u11-b08 -+f846c0c1c330545b8a85fc05a36fa95f48757525 jdk8u11-b09 -+3e4b895d06e8d292f7338aa2155849173722062f jdk8u11-b10 -+ce324096c5626997634df1e5fa68f206909431ab jdk8u11-b11 ---- hotspot/.hgtags Tue Mar 11 13:02:13 2014 -0700 -+++ hotspot/.hgtags Tue Jun 03 14:19:26 2014 -0700 -@@ -426,6 +426,7 @@ - e5561d89fe8bfc79cd6c8fcc36d270cc6a49ec6e jdk8u5-b02 - 2f9eb9fcab6c42c8c84ddb44170ea33235116d84 jdk8u5-b03 - 5ac720d47ab83f8eb2f5fe3641667823a0298f41 jdk8u5-b04 -+b90de55aca30678ab0fec05d6a61bb3468b783d2 jdk8u11-b00 - b90de55aca30678ab0fec05d6a61bb3468b783d2 jdk8u5-b05 - 956c0e048ef29ee9a8026fb05858abe64b4e0ceb jdk8u5-b06 - 46fa2940e6861df18a107b6b83a2df85239e5ec7 jdk8u5-b07 -@@ -434,3 +435,15 @@ - 629267e4f0b5155608edcd71922983be98786bd7 jdk8u5-b10 - 17a75e692af397532e2b296b24f6b9b6c239c633 jdk8u5-b11 - 9b289963cb9a14636fbe8faaa2dd6d3678464a7b jdk8u5-b12 -+8a67179106085689906732013a282efeeb9bd5f4 jdk8u5-b13 -+f0d759a6a2309a1c149d530b29db24eda885f267 jdk8u11-b01 -+3c079aebb516765784dd8097887daadda5a76ac1 jdk8u11-b02 -+0037e964ce486c009984171f004259263628079f jdk8u11-b03 -+4c40343ecdb33fe046833fe4b8970fd29859c4ad jdk8u11-b04 -+a4d44dfb7d30eea54bc172e4429a655454ae0bbf jdk8u11-b05 -+b73ee2b9027c4183e520b2c0884d785ef9e539cf jdk8u11-b06 -+561045d225990b8423af11fd80d2d704954c89c2 jdk8u11-b07 -+af747c288b0f379448bebf56e2982f50caac6972 jdk8u11-b08 -+34de1e8eeabbcc6e690f92766fd619beb9f3f049 jdk8u11-b09 -+7e4ae023277bef5b82361fd985262f4009eb2fe8 jdk8u11-b10 -+e6b7384074325d5a4ede728d6928ecb7f1cc1326 jdk8u11-b11 ---- hotspot/make/hotspot_version Tue Mar 11 13:02:13 2014 -0700 -+++ hotspot/make/hotspot_version Tue Jun 03 14:19:26 2014 -0700 -@@ -34,8 +34,8 @@ - HOTSPOT_VM_COPYRIGHT=Copyright 2014 - - HS_MAJOR_VER=25 --HS_MINOR_VER=5 --HS_BUILD_NUMBER=02 -+HS_MINOR_VER=11 -+HS_BUILD_NUMBER=03 - - JDK_MAJOR_VER=1 - JDK_MINOR_VER=8 ---- hotspot/src/os/bsd/vm/os_bsd.cpp Tue Mar 11 13:02:13 2014 -0700 -+++ hotspot/src/os/bsd/vm/os_bsd.cpp Tue Jun 03 14:19:26 2014 -0700 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -1115,10 +1115,6 @@ - ::abort(); - } - --// unused on bsd for now. --void os::set_error_file(const char *logfile) {} -- -- - // This method is a copy of JDK's sysGetLastErrorString - // from src/solaris/hpi/src/system_md.c - -@@ -1808,6 +1804,7 @@ - // determine if this is a legacy image or modules image - // modules image doesn't have "jre" subdirectory - len = strlen(buf); -+ assert(len < buflen, "Ran out of buffer space"); - jrelib_p = buf + len; - - // Add the appropriate library subdir -@@ -1841,7 +1838,7 @@ - } - } - -- strcpy(saved_jvm_path, buf); -+ strncpy(saved_jvm_path, buf, MAXPATHLEN); - } - - void os::print_jni_name_prefix_on(outputStream* st, int args_size) { ---- hotspot/src/os/linux/vm/os_linux.cpp Tue Mar 11 13:02:13 2014 -0700 -+++ hotspot/src/os/linux/vm/os_linux.cpp Tue Jun 03 14:19:26 2014 -0700 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -1572,9 +1572,6 @@ - ::abort(); - } - --// unused on linux for now. --void os::set_error_file(const char *logfile) {} -- - - // This method is a copy of JDK's sysGetLastErrorString - // from src/solaris/hpi/src/system_md.c -@@ -2399,6 +2396,7 @@ - // determine if this is a legacy image or modules image - // modules image doesn't have "jre" subdirectory - len = strlen(buf); -+ assert(len < buflen, "Ran out of buffer room"); - jrelib_p = buf + len; - snprintf(jrelib_p, buflen-len, "/jre/lib/%s", cpu_arch); - if (0 != access(buf, F_OK)) { -@@ -2419,7 +2417,7 @@ - } - } - -- strcpy(saved_jvm_path, buf); -+ strncpy(saved_jvm_path, buf, MAXPATHLEN); - } - - void os::print_jni_name_prefix_on(outputStream* st, int args_size) { ---- hotspot/src/os/solaris/vm/os_solaris.cpp Tue Mar 11 13:02:13 2014 -0700 -+++ hotspot/src/os/solaris/vm/os_solaris.cpp Tue Jun 03 14:19:26 2014 -0700 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -1788,9 +1788,6 @@ - ::abort(); // dump core (for debugging) - } - --// unused --void os::set_error_file(const char *logfile) {} -- - // DLL functions - - const char* os::dll_file_extension() { return ".so"; } -@@ -2474,6 +2471,7 @@ - // determine if this is a legacy image or modules image - // modules image doesn't have "jre" subdirectory - len = strlen(buf); -+ assert(len < buflen, "Ran out of buffer space"); - jrelib_p = buf + len; - snprintf(jrelib_p, buflen-len, "/jre/lib/%s", cpu_arch); - if (0 != access(buf, F_OK)) { -@@ -2492,7 +2490,7 @@ - } - } - -- strcpy(saved_jvm_path, buf); -+ strncpy(saved_jvm_path, buf, MAXPATHLEN); - } - - ---- hotspot/src/os/windows/vm/os_windows.cpp Tue Mar 11 13:02:13 2014 -0700 -+++ hotspot/src/os/windows/vm/os_windows.cpp Tue Jun 03 14:19:26 2014 -0700 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -1819,7 +1819,8 @@ - // libjvm.so is installed there (append a fake suffix - // hotspot/libjvm.so). - char* java_home_var = ::getenv("JAVA_HOME"); -- if (java_home_var != NULL && java_home_var[0] != 0) { -+ if (java_home_var != NULL && java_home_var[0] != 0 && -+ strlen(java_home_var) < (size_t)buflen) { - - strncpy(buf, java_home_var, buflen); - -@@ -1837,9 +1838,9 @@ - } - - if(buf[0] == '\0') { -- GetModuleFileName(vm_lib_handle, buf, buflen); -- } -- strcpy(saved_jvm_path, buf); -+ GetModuleFileName(vm_lib_handle, buf, buflen); -+ } -+ strncpy(saved_jvm_path, buf, MAX_PATH); - } - - -@@ -2290,19 +2291,8 @@ - } - - */ --#endif //_WIN64 -- -- --// Fatal error reporting is single threaded so we can make this a --// static and preallocated. If it's more than MAX_PATH silently ignore --// it. --static char saved_error_file[MAX_PATH] = {0}; -- --void os::set_error_file(const char *logfile) { -- if (strlen(logfile) <= MAX_PATH) { -- strncpy(saved_error_file, logfile, MAX_PATH); -- } --} -+#endif // _WIN64 -+ - - static inline void report_error(Thread* t, DWORD exception_code, - address addr, void* siginfo, void* context) { ---- hotspot/src/share/vm/classfile/classFileParser.cpp Tue Mar 11 13:02:13 2014 -0700 -+++ hotspot/src/share/vm/classfile/classFileParser.cpp Tue Jun 03 14:19:26 2014 -0700 -@@ -931,7 +931,7 @@ - "Wrong size %u for field's Signature attribute in class file %s", - attribute_length, CHECK); - } -- generic_signature_index = cfs->get_u2(CHECK); -+ generic_signature_index = parse_generic_signature_attribute(CHECK); - } else if (attribute_name == vmSymbols::tag_runtime_visible_annotations()) { - runtime_visible_annotations_length = attribute_length; - runtime_visible_annotations = cfs->get_u1_buffer(); -@@ -2305,8 +2305,7 @@ - "Invalid Signature attribute length %u in class file %s", - method_attribute_length, CHECK_(nullHandle)); - } -- cfs->guarantee_more(2, CHECK_(nullHandle)); // generic_signature_index -- generic_signature_index = cfs->get_u2_fast(); -+ generic_signature_index = parse_generic_signature_attribute(CHECK_(nullHandle)); - } else if (method_attribute_name == vmSymbols::tag_runtime_visible_annotations()) { - runtime_visible_annotations_length = method_attribute_length; - runtime_visible_annotations = cfs->get_u1_buffer(); -@@ -2616,6 +2615,17 @@ - return method_ordering; - } - -+// Parse generic_signature attribute for methods and fields -+u2 ClassFileParser::parse_generic_signature_attribute(TRAPS) { -+ ClassFileStream* cfs = stream(); -+ cfs->guarantee_more(2, CHECK_0); // generic_signature_index -+ u2 generic_signature_index = cfs->get_u2_fast(); -+ check_property( -+ valid_symbol_at(generic_signature_index), -+ "Invalid Signature attribute at constant pool index %u in class file %s", -+ generic_signature_index, CHECK_0); -+ return generic_signature_index; -+} - - void ClassFileParser::parse_classfile_sourcefile_attribute(TRAPS) { - ClassFileStream* cfs = stream(); -@@ -2770,18 +2780,19 @@ - ClassFileStream* cfs = stream(); - u1* current_start = cfs->current(); - -- cfs->guarantee_more(2, CHECK); // length -- int attribute_array_length = cfs->get_u2_fast(); -- -- guarantee_property(_max_bootstrap_specifier_index < attribute_array_length, -- "Short length on BootstrapMethods in class file %s", -- CHECK); -- - guarantee_property(attribute_byte_length > sizeof(u2), - "Invalid BootstrapMethods attribute length %u in class file %s", - attribute_byte_length, - CHECK); - -+ cfs->guarantee_more(attribute_byte_length, CHECK); -+ -+ int attribute_array_length = cfs->get_u2_fast(); -+ -+ guarantee_property(_max_bootstrap_specifier_index < attribute_array_length, -+ "Short length on BootstrapMethods in class file %s", -+ CHECK); -+ - // The attribute contains a counted array of counted tuples of shorts, - // represending bootstrap specifiers: - // length*{bootstrap_method_index, argument_count*{argument_index}} ---- hotspot/src/share/vm/classfile/classFileParser.hpp Tue Mar 11 13:02:13 2014 -0700 -+++ hotspot/src/share/vm/classfile/classFileParser.hpp Tue Jun 03 14:19:26 2014 -0700 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -266,6 +266,7 @@ - u1* parse_stackmap_table(u4 code_attribute_length, TRAPS); - - // Classfile attribute parsing -+ u2 parse_generic_signature_attribute(TRAPS); - void parse_classfile_sourcefile_attribute(TRAPS); - void parse_classfile_source_debug_extension_attribute(int length, TRAPS); - u2 parse_classfile_inner_classes_attribute(u1* inner_classes_attribute_start, ---- hotspot/src/share/vm/classfile/stackMapTable.cpp Tue Mar 11 13:02:13 2014 -0700 -+++ hotspot/src/share/vm/classfile/stackMapTable.cpp Tue Jun 03 14:19:26 2014 -0700 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -134,6 +134,7 @@ - } - // check if uninitialized objects exist on backward branches - check_new_object(frame, target, CHECK_VERIFY(frame->verifier())); -+ frame->verifier()->update_furthest_jump(target); - } - - void StackMapTable::check_new_object( ---- hotspot/src/share/vm/classfile/verifier.cpp Tue Mar 11 13:02:13 2014 -0700 -+++ hotspot/src/share/vm/classfile/verifier.cpp Tue Jun 03 14:19:26 2014 -0700 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -632,6 +632,9 @@ - bool no_control_flow = false; // Set to true when there is no direct control - // flow from current instruction to the next - // instruction in sequence -+ -+ set_furthest_jump(0); -+ - Bytecodes::Code opcode; - while (!bcs.is_last_bytecode()) { - // Check for recursive re-verification before each bytecode. -@@ -2245,6 +2248,29 @@ - "Bad <init> method call"); - return; - } -+ -+ // Make sure that this call is not jumped over. -+ if (bci < furthest_jump()) { -+ verify_error(ErrorContext::bad_code(bci), -+ "Bad <init> method call from inside of a branch"); -+ return; -+ } -+ -+ // Make sure that this call is not done from within a TRY block because -+ // that can result in returning an incomplete object. Simply checking -+ // (bci >= start_pc) also ensures that this call is not done after a TRY -+ // block. That is also illegal because this call must be the first Java -+ // statement in the constructor. -+ ExceptionTable exhandlers(_method()); -+ int exlength = exhandlers.length(); -+ for(int i = 0; i < exlength; i++) { -+ if (bci >= exhandlers.start_pc(i)) { -+ verify_error(ErrorContext::bad_code(bci), -+ "Bad <init> method call from after the start of a try block"); -+ return; -+ } -+ } -+ - current_frame->initialize_object(type, current_type()); - *this_uninit = true; - } else if (type.is_uninitialized()) { -@@ -2281,16 +2307,19 @@ - Method* m = InstanceKlass::cast(ref_klass)->uncached_lookup_method( - vmSymbols::object_initializer_name(), - cp->signature_ref_at(bcs->get_index_u2())); -- instanceKlassHandle mh(THREAD, m->method_holder()); -- if (m->is_protected() && !mh->is_same_class_package(_klass())) { -- bool assignable = current_type().is_assignable_from( -- objectref_type, this, CHECK_VERIFY(this)); -- if (!assignable) { -- verify_error(ErrorContext::bad_type(bci, -- TypeOrigin::cp(new_class_index, objectref_type), -- TypeOrigin::implicit(current_type())), -- "Bad access to protected <init> method"); -- return; -+ // Do nothing if method is not found. Let resolution detect the error. -+ if (m != NULL) { -+ instanceKlassHandle mh(THREAD, m->method_holder()); -+ if (m->is_protected() && !mh->is_same_class_package(_klass())) { -+ bool assignable = current_type().is_assignable_from( -+ objectref_type, this, CHECK_VERIFY(this)); -+ if (!assignable) { -+ verify_error(ErrorContext::bad_type(bci, -+ TypeOrigin::cp(new_class_index, objectref_type), -+ TypeOrigin::implicit(current_type())), -+ "Bad access to protected <init> method"); -+ return; -+ } - } - } - } ---- hotspot/src/share/vm/classfile/verifier.hpp Tue Mar 11 13:02:13 2014 -0700 -+++ hotspot/src/share/vm/classfile/verifier.hpp Tue Jun 03 14:19:26 2014 -0700 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -258,6 +258,9 @@ - - ErrorContext _error_context; // contains information about an error - -+ // Used to detect illegal jumps over calls to super() nd this() in ctors. -+ int32_t _furthest_jump; -+ - void verify_method(methodHandle method, TRAPS); - char* generate_code_data(methodHandle m, u4 code_length, TRAPS); - void verify_exception_handler_table(u4 code_length, char* code_data, -@@ -403,6 +406,20 @@ - Symbol* create_temporary_symbol(const char *s, int length, TRAPS); - - TypeOrigin ref_ctx(const char* str, TRAPS); -+ -+ // Keep track of the furthest branch done in a method to make sure that -+ // there are no branches over calls to super() or this() from inside of -+ // a constructor. -+ int32_t furthest_jump() { return _furthest_jump; } -+ -+ void set_furthest_jump(int32_t target) { -+ _furthest_jump = target; -+ } -+ -+ void update_furthest_jump(int32_t target) { -+ if (target > _furthest_jump) _furthest_jump = target; -+ } -+ - }; - - inline int ClassVerifier::change_sig_to_verificationType( ---- hotspot/src/share/vm/compiler/compileBroker.cpp Tue Mar 11 13:02:13 2014 -0700 -+++ hotspot/src/share/vm/compiler/compileBroker.cpp Tue Jun 03 14:19:26 2014 -0700 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -2089,6 +2089,7 @@ - ResourceMark rm; - char* method_name = method->name()->as_C_string(); - strncpy(_last_method_compiled, method_name, CompileBroker::name_buffer_length); -+ _last_method_compiled[CompileBroker::name_buffer_length - 1] = '\0'; // ensure null terminated - char current_method[CompilerCounters::cmname_buffer_length]; - size_t maxLen = CompilerCounters::cmname_buffer_length; - ---- hotspot/src/share/vm/oops/klassVtable.cpp Tue Mar 11 13:02:13 2014 -0700 -+++ hotspot/src/share/vm/oops/klassVtable.cpp Tue Jun 03 14:19:26 2014 -0700 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -249,6 +249,17 @@ - // For bytecodes not produced by javac together it is possible that a method does not override - // the superclass's method, but might indirectly override a super-super class's vtable entry - // If none found, return a null superk, else return the superk of the method this does override -+// For public and protected methods: if they override a superclass, they will -+// also be overridden themselves appropriately. -+// Private methods do not override and are not overridden. -+// Package Private methods are trickier: -+// e.g. P1.A, pub m -+// P2.B extends A, package private m -+// P1.C extends B, public m -+// P1.C.m needs to override P1.A.m and can not override P2.B.m -+// Therefore: all package private methods need their own vtable entries for -+// them to be the root of an inheritance overriding decision -+// Package private methods may also override other vtable entries - InstanceKlass* klassVtable::find_transitive_override(InstanceKlass* initialsuper, methodHandle target_method, - int vtable_index, Handle target_loader, Symbol* target_classname, Thread * THREAD) { - InstanceKlass* superk = initialsuper; -@@ -396,8 +407,11 @@ - target_classname, THREAD)) - != (InstanceKlass*)NULL)))) - { -- // overriding, so no new entry -- allocate_new = false; -+ // Package private methods always need a new entry to root their own -+ // overriding. They may also override other methods. -+ if (!target_method()->is_package_private()) { -+ allocate_new = false; -+ } - - if (checkconstraints) { - // Override vtable entry if passes loader constraint check -@@ -541,8 +555,9 @@ - AccessFlags class_flags, - TRAPS) { - if (class_flags.is_interface()) { -- // Interfaces do not use vtables, so there is no point to assigning -- // a vtable index to any of their methods. If we refrain from doing this, -+ // Interfaces do not use vtables, except for java.lang.Object methods, -+ // so there is no point to assigning -+ // a vtable index to any of their local methods. If we refrain from doing this, - // we can use Method::_vtable_index to hold the itable index - return false; - } -@@ -580,6 +595,12 @@ - return true; - } - -+ // Package private methods always need a new entry to root their own -+ // overriding. This allows transitive overriding to work. -+ if (target_method()->is_package_private()) { -+ return true; -+ } -+ - // search through the super class hierarchy to see if we need - // a new entry - ResourceMark rm; ---- hotspot/src/share/vm/runtime/os.hpp Tue Mar 11 13:02:13 2014 -0700 -+++ hotspot/src/share/vm/runtime/os.hpp Tue Jun 03 14:19:26 2014 -0700 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -470,9 +470,6 @@ - // run cmd in a separate process and return its exit code; or -1 on failures - static int fork_and_exec(char *cmd); - -- // Set file to send error reports. -- static void set_error_file(const char *logfile); -- - // os::exit() is merged with vm_exit() - // static void exit(int num); - ---- hotspot/src/share/vm/utilities/events.cpp Tue Mar 11 13:02:13 2014 -0700 -+++ hotspot/src/share/vm/utilities/events.cpp Tue Jun 03 14:19:26 2014 -0700 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -82,7 +82,7 @@ - va_start(ap, format); - // Save a copy of begin message and log it. - _buffer.printv(format, ap); -- Events::log(NULL, _buffer); -+ Events::log(NULL, "%s", (const char*)_buffer); - va_end(ap); - } - } -@@ -91,6 +91,6 @@ - if (LogEvents) { - // Append " done" to the begin message and log it - _buffer.append(" done"); -- Events::log(NULL, _buffer); -+ Events::log(NULL, "%s", (const char*)_buffer); - } - } ---- hotspot/src/share/vm/utilities/vmError.cpp Tue Mar 11 13:02:13 2014 -0700 -+++ hotspot/src/share/vm/utilities/vmError.cpp Tue Jun 03 14:19:26 2014 -0700 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -975,7 +975,6 @@ - if (fd != -1) { - out.print_raw("# An error report file with more information is saved as:\n# "); - out.print_raw_cr(buffer); -- os::set_error_file(buffer); - - log.set_fd(fd); - } else { ---- jaxp/.hgtags Tue Mar 11 13:02:28 2014 -0700 -+++ jaxp/.hgtags Tue Jun 03 14:19:32 2014 -0700 -@@ -258,6 +258,9 @@ - bd97ff5f82588c627869218df02a9c2dbb9402d0 jdk8u5-b02 - 195b74b3e57905b6d6c9ed9b32139c6781ba7d28 jdk8u5-b03 - 106fdcde4b8a6981be13dac34a3de99d6fece97c jdk8u5-b04 -+8f859b1b0f0b18ee7e231d6887b18b5721c2404e jdk8u11-b00 -+57c695af3fe838c36eaef647f2af543cd60533e4 jdk8u5-b05 -+0000000000000000000000000000000000000000 jdk8u5-b05 - 8f859b1b0f0b18ee7e231d6887b18b5721c2404e jdk8u5-b05 - e22bc548b58a695eede0304399777314ae473562 jdk8u5-b06 - 0f96584b02b399df706bec2052a7fe48bdc6058b jdk8u5-b07 -@@ -266,3 +269,15 @@ - 4b32ee8d711251e90ade1d958a51e134c3d387c9 jdk8u5-b10 - c17a827bec287f4c7565c72c195667e52154772b jdk8u5-b11 - 0e5317cbe451d57f9ffcbb835de07fe553a8aa34 jdk8u5-b12 -+a303ebb338518a716c267b17986634e3574e7cfe jdk8u5-b13 -+3e1631f54539cc21770659dcf61440693ac5fa79 jdk8u11-b01 -+6eaf565691a13328e82473d70dfd0feb8fb2f5e8 jdk8u11-b02 -+36d713c3339ad945521d298eeb21c67ee856344e jdk8u11-b03 -+a25020bdca11acad85454a35a9912fd1b4168d83 jdk8u11-b04 -+65e5ee249ebc81c0ccfff23946a0a2a6d4becdcc jdk8u11-b05 -+beafeb0b7a178a3906bcb7dcf46f3c9a9c9717c5 jdk8u11-b06 -+1923c759e5ed7e9a92512797269d997cae1135b8 jdk8u11-b07 -+61faafa45502e4e6db6ce9026d2a7f2121dcae3f jdk8u11-b08 -+a01fd971ef667977a131f5fbaaee300e500424c3 jdk8u11-b09 -+1d894a9d308c4b3a64e876097c2e0e1e577cfd73 jdk8u11-b10 -+41edd71af41f1100b965e0fab88f97d3c130e3de jdk8u11-b11 ---- jaxp/src/com/sun/org/apache/xalan/internal/XalanConstants.java Tue Mar 11 13:02:28 2014 -0700 -+++ jaxp/src/com/sun/org/apache/xalan/internal/XalanConstants.java Tue Jun 03 14:19:32 2014 -0700 -@@ -91,6 +91,13 @@ - */ - public static final String JDK_XML_NAME_LIMIT = - ORACLE_JAXP_PROPERTY_PREFIX + "maxXMLNameLimit"; -+ -+ /** -+ * JDK maxElementDepth limit -+ */ -+ public static final String JDK_MAX_ELEMENT_DEPTH = -+ ORACLE_JAXP_PROPERTY_PREFIX + "maxElementDepth"; -+ - /** - * JDK property indicating whether the parser shall print out entity - * count information -@@ -139,6 +146,11 @@ - */ - public static final String SP_XML_NAME_LIMIT = "jdk.xml.maxXMLNameLimit"; - -+ /** -+ * JDK maxElementDepth limit -+ */ -+ public static final String SP_MAX_ELEMENT_DEPTH = "jdk.xml.maxElementDepth"; -+ - //legacy System Properties - public final static String ENTITY_EXPANSION_LIMIT = "entityExpansionLimit"; - public static final String ELEMENT_ATTRIBUTE_LIMIT = "elementAttributeLimit" ; ---- jaxp/src/com/sun/org/apache/xalan/internal/utils/XMLSecurityManager.java Tue Mar 11 13:02:28 2014 -0700 -+++ jaxp/src/com/sun/org/apache/xalan/internal/utils/XMLSecurityManager.java Tue Jun 03 14:19:32 2014 -0700 -@@ -76,7 +76,9 @@ - GENERAL_ENTITY_SIZE_LIMIT(XalanConstants.JDK_GENERAL_ENTITY_SIZE_LIMIT, - XalanConstants.SP_GENERAL_ENTITY_SIZE_LIMIT, 0, 0), - PARAMETER_ENTITY_SIZE_LIMIT(XalanConstants.JDK_PARAMETER_ENTITY_SIZE_LIMIT, -- XalanConstants.SP_PARAMETER_ENTITY_SIZE_LIMIT, 0, 1000000); -+ XalanConstants.SP_PARAMETER_ENTITY_SIZE_LIMIT, 0, 1000000), -+ MAX_ELEMENT_DEPTH_LIMIT(XalanConstants.JDK_MAX_ELEMENT_DEPTH, -+ XalanConstants.SP_MAX_ELEMENT_DEPTH, 0, 0); - - final String apiProperty; - final String systemProperty; ---- jaxp/src/com/sun/org/apache/xerces/internal/impl/Constants.java Tue Mar 11 13:02:28 2014 -0700 -+++ jaxp/src/com/sun/org/apache/xerces/internal/impl/Constants.java Tue Jun 03 14:19:32 2014 -0700 -@@ -252,6 +252,13 @@ - */ - public static final String JDK_XML_NAME_LIMIT = - ORACLE_JAXP_PROPERTY_PREFIX + "maxXMLNameLimit"; -+ -+ /** -+ * JDK maxElementDepth limit -+ */ -+ public static final String JDK_MAX_ELEMENT_DEPTH = -+ ORACLE_JAXP_PROPERTY_PREFIX + "maxElementDepth"; -+ - /** - * JDK property to allow printing out information from the limit analyzer - */ -@@ -297,6 +304,11 @@ - */ - public static final String SP_XML_NAME_LIMIT = "jdk.xml.maxXMLNameLimit"; - -+ /** -+ * JDK maxElementDepth limit -+ */ -+ public static final String SP_MAX_ELEMENT_DEPTH = "jdk.xml.maxElementDepth"; -+ - //legacy System Properties - public final static String ENTITY_EXPANSION_LIMIT = "entityExpansionLimit"; - public static final String ELEMENT_ATTRIBUTE_LIMIT = "elementAttributeLimit" ; ---- jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLDocumentFragmentScannerImpl.java Tue Mar 11 13:02:28 2014 -0700 -+++ jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLDocumentFragmentScannerImpl.java Tue Jun 03 14:19:32 2014 -0700 -@@ -1309,6 +1309,7 @@ - - fAttributes.removeAllAttributes(); - -+ checkDepth(rawname); - if(!seekCloseOfStartTag()){ - fReadingAttributes = true; - fAttributeCacheUsedCount =0; -@@ -1913,6 +1914,21 @@ - // utility methods - - /** -+ * Check if the depth exceeds the maxElementDepth limit -+ * @param elementName name of the current element -+ */ -+ void checkDepth(String elementName) { -+ fLimitAnalyzer.addValue(Limit.MAX_ELEMENT_DEPTH_LIMIT, elementName, fElementStack.fDepth); -+ if (fSecurityManager.isOverLimit(Limit.MAX_ELEMENT_DEPTH_LIMIT,fLimitAnalyzer)) { -+ fSecurityManager.debugPrint(fLimitAnalyzer); -+ reportFatalError("MaxElementDepthLimit", new Object[]{elementName, -+ fLimitAnalyzer.getTotalValue(Limit.MAX_ELEMENT_DEPTH_LIMIT), -+ fSecurityManager.getLimit(Limit.MAX_ELEMENT_DEPTH_LIMIT), -+ "maxElementDepth"}); -+ } -+ } -+ -+ /** - * Calls document handler with a single character resulting from - * built-in entity resolution. - * ---- jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLNSDocumentScannerImpl.java Tue Mar 11 13:02:28 2014 -0700 -+++ jaxp/src/com/sun/org/apache/xerces/internal/impl/XMLNSDocumentScannerImpl.java Tue Jun 03 14:19:32 2014 -0700 -@@ -220,6 +220,7 @@ - fCurrentElement = fElementQName; - - String rawname = fElementQName.rawname; -+ checkDepth(rawname); - if (fBindNamespaces) { - fNamespaceContext.pushContext(); - if (fScannerState == SCANNER_STATE_ROOT_ELEMENT) { ---- jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages.properties Tue Mar 11 13:02:28 2014 -0700 -+++ jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages.properties Tue Jun 03 14:19:32 2014 -0700 -@@ -299,4 +299,5 @@ - MaxEntitySizeLimit=JAXP00010003: The length of entity \"{0}\" is \"{1}\" that exceeds the \"{2}\" limit set by \"{3}\". - TotalEntitySizeLimit=JAXP00010004: The accumulated size \"{0}\" of entities exceeded the \"{1}\" limit set by \"{2}\". - MaxXMLNameLimit=JAXP00010005: The name \"{0}\" exceeded the \"{1}\" limit set by \"{2}\". -+ MaxElementDepthLimit=JAXP00010006: The element \"{0}\" has a depth of \"{1}\" that exceeds the limit \"{2}\" set by \"{3}\". - ---- jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_de.properties Tue Mar 11 13:02:28 2014 -0700 -+++ jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_de.properties Tue Jun 03 14:19:32 2014 -0700 -@@ -251,7 +251,7 @@ - NMTOKENInvalid = Attributwert "{0}" mit dem Typ NMTOKEN muss ein Namenstoken sein. - NMTOKENSInvalid = Attributwert "{0}" mit dem Typ NMTOKENS muss mindestens ein Namenstoken sein. - NoNotationOnEmptyElement = Elementtyp "{0}", der als EMPTY deklariert wurde, kann nicht das Attribut "{1}" mit dem Typ NOTATION deklarieren. -- RootElementTypeMustMatchDoctypedecl = Dokument-Root-Element "{1}"muss mit DOCTYPE-Root "{0}" \u00FCbereinstimmen. -+ RootElementTypeMustMatchDoctypedecl = Document Root-Element "{1}"muss mit DOCTYPE-Root "{0}" \u00FCbereinstimmen. - UndeclaredElementInContentSpec = Contentmodell des Elements "{0}" verweist auf das nicht deklarierte Element "{1}". - UniqueNotationName = Deklaration f\u00FCr die Notation "{0}" ist nicht eindeutig. Ein jeweiliger Name darf nicht in mehreren Notationsdeklarationen deklariert werden. - ENTITYFailedInitializeGrammar = ENTITYDatatype-Validator: Nicht erfolgreich. Initialisierungsmethode muss mit einer g\u00FCltigen Grammatikreferenz aufgerufen werden. \t -@@ -299,4 +299,5 @@ - MaxEntitySizeLimit=JAXP00010003: Die L\u00E4nge von Entit\u00E4t "{0}" ist "{1}" und \u00FCberschreitet den Grenzwert "{2}", der von "{3}" festgelegt wurde. - TotalEntitySizeLimit=JAXP00010004: Die akkumulierte Gr\u00F6\u00DFe "{0}" der Entit\u00E4ten \u00FCberschreitet den Grenzwert "{1}", der von "{2}" festgelegt wurde. - MaxXMLNameLimit=JAXP00010005: Der Name "{0}" \u00FCberschreitet den Grenzwert "{1}", der von "{2}" festgelegt wurde. -+ MaxElementDepthLimit=JAXP00010006: Die Tiefe von Element "{0}" ist "{1}" und \u00FCberschreitet den Grenzwert "{2}", der von "{3}" festgelegt wurde. - ---- jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_es.properties Tue Mar 11 13:02:28 2014 -0700 -+++ jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_es.properties Tue Jun 03 14:19:32 2014 -0700 -@@ -299,4 +299,5 @@ - MaxEntitySizeLimit=JAXP00010003: la longitud de la entidad "{0}" es "{1}", que excede el l\u00EDmite de "{2}" que ha definido "{3}". - TotalEntitySizeLimit=JAXP00010004: el tama\u00F1o acumulado "{0}" de las entidades ha excedido el l\u00EDmite de "{1}" que ha definido "{2}". - MaxXMLNameLimit=JAXP00010005: el nombre "{0}" ha excedido el l\u00EDmite de "{1}" que ha definido "{2}". -+ MaxElementDepthLimit=JAXP00010006: El elemento "{0}" tiene una profundidad de "{1}" que excede el l\u00EDmite "{2}" definido por "{3}". - ---- jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_fr.properties Tue Mar 11 13:02:28 2014 -0700 -+++ jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_fr.properties Tue Jun 03 14:19:32 2014 -0700 -@@ -299,4 +299,5 @@ - MaxEntitySizeLimit=JAXP00010003 : La longueur de l''entit\u00E9 "{0}" est de "{1}". Cette valeur d\u00E9passe la limite de "{2}" d\u00E9finie par "{3}". - TotalEntitySizeLimit=JAXP00010004 : La taille cumul\u00E9e des entit\u00E9s ("{0}") d\u00E9passe la limite de "{1}" d\u00E9finie par "{2}". - MaxXMLNameLimit=JAXP00010005 : le nom "{0}" d\u00E9passe la limite de "{1}" d\u00E9finie par "{2}". -+ MaxElementDepthLimit=JAXP00010006 : l''\u00E9l\u00E9ment "{0}" a une profondeur de "{1}" qui d\u00E9passe la limite de "{2}" d\u00E9finie par "{3}". - ---- jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_it.properties Tue Mar 11 13:02:28 2014 -0700 -+++ jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_it.properties Tue Jun 03 14:19:32 2014 -0700 -@@ -299,4 +299,5 @@ - MaxEntitySizeLimit=JAXP00010003: la lunghezza dell''entit\u00E0 "{0}" \u00E8 "{1}". Tale valore supera il limite "{2}" definito da "{3}". - TotalEntitySizeLimit=JAXP00010004: le dimensioni accumulate "{0}" delle entit\u00E0 supera il limite "{1}" definito da "{2}". - MaxXMLNameLimit=JAXP00010005: il nome "{0}" supera il limite "{1}" definito da "{2}". -+ MaxElementDepthLimit=JAXP00010006: la profondit\u00E0 dell''elemento "{0}" \u00E8 "{1}". Tale valore supera il limite "{2}" definito da "{3}". - ---- jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_ja.properties Tue Mar 11 13:02:28 2014 -0700 -+++ jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_ja.properties Tue Jun 03 14:19:32 2014 -0700 -@@ -122,7 +122,7 @@ - ExpectedByte = {1}\u30D0\u30A4\u30C8\u306EUTF-8\u30B7\u30FC\u30B1\u30F3\u30B9\u306E\u30D0\u30A4\u30C8{0}\u304C\u5FC5\u8981\u3067\u3059\u3002 - InvalidHighSurrogate = UTF-8\u30B7\u30FC\u30B1\u30F3\u30B9\u306E\u4E0A\u4F4D\u30B5\u30ED\u30B2\u30FC\u30C8\u30FB\u30D3\u30C3\u30C8\u306E\u4E0A\u9650\u306F0x10\u3067\u3059\u304C\u30010x{0}\u304C\u691C\u51FA\u3055\u308C\u307E\u3057\u305F\u3002 - OperationNotSupported = \u64CD\u4F5C"{0}"\u306F{1}\u30EA\u30FC\u30C0\u30FC\u3067\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002 -- InvalidASCII = \u30D0\u30A4\u30C8"{0}"\u306F\u3001(7\u30D3\u30C3\u30C8) ASCII\u30AD\u30E3\u30E9\u30AF\u30BF\u30FB\u30BB\u30C3\u30C8\u306E\u30E1\u30F3\u30D0\u30FC\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002 -+ InvalidASCII = \u30D0\u30A4\u30C8"{0}"\u306F\u3001(7\u30D3\u30C3\u30C8) ASCII\u6587\u5B57\u30BB\u30C3\u30C8\u306E\u30E1\u30F3\u30D0\u30FC\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002 - CharConversionFailure = \u7279\u5B9A\u306E\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\u3067\u3042\u308B\u3068\u78BA\u5B9A\u3055\u308C\u305F\u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u306B\u306F\u3001\u305D\u306E\u30A8\u30F3\u30B3\u30FC\u30C7\u30A3\u30F3\u30B0\u3067\u4E0D\u6B63\u306A\u30B7\u30FC\u30B1\u30F3\u30B9\u3092\u542B\u3081\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093\u3002 - - # DTD Messages -@@ -299,4 +299,5 @@ - MaxEntitySizeLimit=JAXP00010003: \u30A8\u30F3\u30C6\u30A3\u30C6\u30A3"{0}"\u306E\u9577\u3055\u306F"{1}"\u3067\u3001"{3}"\u3067\u8A2D\u5B9A\u3055\u308C\u305F\u5236\u9650"{2}"\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002 - TotalEntitySizeLimit=JAXP00010004: \u30A8\u30F3\u30C6\u30A3\u30C6\u30A3\u306E\u7D2F\u7A4D\u30B5\u30A4\u30BA"{0}"\u306F\u3001"{2}"\u3067\u8A2D\u5B9A\u3055\u308C\u305F\u5236\u9650"{1}"\u3092\u8D85\u3048\u307E\u3057\u305F\u3002 - MaxXMLNameLimit=JAXP00010005: \u540D\u524D"{0}"\u306F\u3001"{2}"\u3067\u8A2D\u5B9A\u3055\u308C\u305F\u5236\u9650"{1}"\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002 -+ MaxElementDepthLimit=JAXP00010006: \u8981\u7D20"{0}"\u306E\u6DF1\u3055\u306F"{1}"\u3067\u3001"{3}"\u3067\u8A2D\u5B9A\u3055\u308C\u305F\u5236\u9650"{2}"\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002 - ---- jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_ko.properties Tue Mar 11 13:02:28 2014 -0700 -+++ jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_ko.properties Tue Jun 03 14:19:32 2014 -0700 -@@ -299,4 +299,5 @@ - MaxEntitySizeLimit=JAXP00010003: "{0}" \uC5D4\uD2F0\uD2F0\uC758 \uAE38\uC774\uAC00 "{3}"\uC5D0\uC11C \uC124\uC815\uB41C "{2}" \uC81C\uD55C\uC744 \uCD08\uACFC\uD558\uB294 "{1}"\uC785\uB2C8\uB2E4. - TotalEntitySizeLimit=JAXP00010004: \uC5D4\uD2F0\uD2F0\uC758 \uB204\uC801 \uD06C\uAE30 "{0}"\uC774(\uAC00) "{2}"\uC5D0\uC11C \uC124\uC815\uB41C "{1}" \uC81C\uD55C\uC744 \uCD08\uACFC\uD588\uC2B5\uB2C8\uB2E4. - MaxXMLNameLimit=JAXP00010005: "{0}" \uC774\uB984\uC774 "{2}"\uC5D0\uC11C \uC124\uC815\uB41C "{1}" \uC81C\uD55C\uC744 \uCD08\uACFC\uD588\uC2B5\uB2C8\uB2E4. -+ MaxElementDepthLimit=JAXP00010006: "{0}" \uC694\uC18C\uC758 \uAE4A\uC774\uAC00 "{3}"\uC5D0\uC11C \uC124\uC815\uB41C "{2}" \uC81C\uD55C\uC744 \uCD08\uACFC\uD558\uB294 "{1}"\uC785\uB2C8\uB2E4. - ---- jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_pt_BR.properties Tue Mar 11 13:02:28 2014 -0700 -+++ jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_pt_BR.properties Tue Jun 03 14:19:32 2014 -0700 -@@ -129,7 +129,7 @@ - # 2.2 Characters - InvalidCharInEntityValue = Um caractere XML inv\u00E1lido (Unicode: 0x {0}) foi encontrado no valor da entidade da literal. - InvalidCharInExternalSubset = Um caractere XML inv\u00E1lido (Unicode: 0x {0}) foi encontrado no subconjunto externo do DTD. -- InvalidCharInIgnoreSect = Um caractere XML inv\u00E1lido (Unicode: 0x{0}) foi encontrado na se\u00E7\u00E3o condicional deletada. -+ InvalidCharInIgnoreSect = Um caractere XML inv\u00E1lido (Unicode: 0x{0}) foi encontrado na se\u00E7\u00E3o condicional exclu\u00EDda. - InvalidCharInPublicID = Um caractere XML inv\u00E1lido (Unicode: 0x{0}) foi encontrado no identificador p\u00FAblico. - InvalidCharInSystemID = Um caractere XML inv\u00E1lido (Unicode: 0x{0}) foi encontrado no identificador do sistema. - # 2.3 Common Syntactic Constructs -@@ -148,7 +148,7 @@ - PEReferenceWithinMarkup = A refer\u00EAncia da entidade do par\u00E2metro "%{0};" n\u00E3o pode ocorrer na marca\u00E7\u00E3o no subconjunto interno do DTD. - MSG_MARKUP_NOT_RECOGNIZED_IN_DTD = As declara\u00E7\u00F5es de marca\u00E7\u00E3o contidas ou apontadas pela declara\u00E7\u00E3o do tipo de documento devem estar corretas. - # 2.10 White Space Handling -- MSG_XML_SPACE_DECLARATION_ILLEGAL = Deve ser fornecida a declara\u00E7\u00E3o do atributo para "xml:space" como um tipo enumerado, cujo os \u00FAnicos valores poss\u00EDveis s\u00E3o "default" e "preserve". -+ MSG_XML_SPACE_DECLARATION_ILLEGAL = Deve ser fornecida a declara\u00E7\u00E3o do atributo para "xml:space" como um tipo enumerado, cujo os \u00FAnicos valores poss\u00EDveis s\u00E3o "padr\u00E3o" e "preserve". - # 3.2 Element Type Declarations - MSG_SPACE_REQUIRED_BEFORE_ELEMENT_TYPE_IN_ELEMENTDECL = O espa\u00E7o em branco \u00E9 necess\u00E1rio ap\u00F3s "<!ELEMENT" na declara\u00E7\u00E3o do tipo de elemento. - MSG_ELEMENT_TYPE_REQUIRED_IN_ELEMENTDECL = O tipo de elemento \u00E9 necess\u00E1rio na declara\u00E7\u00E3o do tipo de elemento. -@@ -169,7 +169,7 @@ - AttNameRequiredInAttDef = O nome do atributo deve ser especificado na declara\u00E7\u00E3o da lista de atributos do elemento "{0}". - MSG_SPACE_REQUIRED_BEFORE_ATTTYPE_IN_ATTDEF = \u00C9 necess\u00E1rio o espa\u00E7o em branco antes do tipo de atributo na declara\u00E7\u00E3o do atributo "{1}" do elemento "{0}". - AttTypeRequiredInAttDef = \u00C9 necess\u00E1rio o tipo de atributo na declara\u00E7\u00E3o do atributo "{1}" do elemento "{0}". -- MSG_SPACE_REQUIRED_BEFORE_DEFAULTDECL_IN_ATTDEF = \u00C9 necess\u00E1rio o espa\u00E7o em branco antes do default do atributo na declara\u00E7\u00E3o do atributo "{1}" do elemento "{0}". -+ MSG_SPACE_REQUIRED_BEFORE_DEFAULTDECL_IN_ATTDEF = \u00C9 necess\u00E1rio o espa\u00E7o em branco antes do padr\u00E3o do atributo na declara\u00E7\u00E3o do atributo "{1}" do elemento "{0}". - MSG_DUPLICATE_ATTRIBUTE_DEFINITION = Mais de uma defini\u00E7\u00E3o de atributo fornecida para o mesmo atributo "{1}" de um determinado elemento "{0}". - # 3.3.1 Attribute Types - MSG_SPACE_REQUIRED_AFTER_NOTATION_IN_NOTATIONTYPE = O espa\u00E7o em branco deve aparecer ap\u00F3s "NOTATION" na declara\u00E7\u00E3o do atributo "{1}". -@@ -216,7 +216,7 @@ - DuplicateTypeInMixedContent = O tipo de elemento "{1}" j\u00E1 foi especificado no modelo de conte\u00FAdo da declara\u00E7\u00E3o do elemento "{0}". - ENTITIESInvalid = O valor do atributo "{1}" do tipo ENTITIES deve ser o nome de uma ou mais entidades n\u00E3o submetidas a parsing. - ENTITYInvalid = O valor do atributo "{1}" do tipo ENTITY deve ser o nome de uma entidade n\u00E3o submetida a parsing. -- IDDefaultTypeInvalid = O atributo do ID "{0}" deve ter um default declarado "#IMPLIED" ou "#REQUIRED". -+ IDDefaultTypeInvalid = O atributo do ID "{0}" deve ter um padr\u00E3o declarado "#IMPLIED" ou "#REQUIRED". - IDInvalid = O valor do atributo "{0}" do ID de tipo deve ser um nome. - IDInvalidWithNamespaces = O valor do atributo "{0}" do ID de tipo deve ser um NCName quando os namespaces estiverem ativados. - IDNotUnique = O valor do atributo "{0}" do ID de tipo deve ser exclusivo no documento. -@@ -233,7 +233,7 @@ - MSG_CONTENT_INCOMPLETE = O conte\u00FAdo do tipo de elemento "{0}" est\u00E1 incompleto; ele deve corresponder a "{1}". - MSG_CONTENT_INVALID = O conte\u00FAdo do tipo de elemento "{0}" deve corresponder a "{1}". - MSG_CONTENT_INVALID_SPECIFIED = O conte\u00FAdo do tipo de elemento "{0}" deve corresponder a "{1}". N\u00E3o s\u00E3o permitidos os filhos do tipo "{2}". -- MSG_DEFAULTED_ATTRIBUTE_NOT_SPECIFIED = O atributo "{1}" do tipo de elemento "{0}" tem um valor default e deve ser especificado em um documento stand-alone. -+ MSG_DEFAULTED_ATTRIBUTE_NOT_SPECIFIED = O atributo "{1}" do tipo de elemento "{0}" tem um valor padr\u00E3o e deve ser especificado em um documento stand-alone. - MSG_DUPLICATE_ATTDEF = O atributo "{1}" j\u00E1 foi declarado para o tipo de elemento "{0}". - MSG_ELEMENT_ALREADY_DECLARED = O tipo de elemento "{0}" n\u00E3o deve ser declarado mais de uma vez. - MSG_ELEMENT_NOT_DECLARED = O tipo de elemento "{0}" deve ser declarado. -@@ -299,4 +299,5 @@ - MaxEntitySizeLimit=JAXP00010003: o tamanho da entidade "{0}" \u00E9 "{1}", o que excede o limite de "{2}" definido por "{3}". - TotalEntitySizeLimit=JAXP00010004: o tamanho acumulado "{0}" de entidades excedeu o limite de "{1}" definido por "{2}". - MaxXMLNameLimit=JAXP00010005: o nome "{0}" excedeu o limite de "{1}" definido por "{2}". -+ MaxElementDepthLimit=JAXP00010006: o elemento "{0}" tem uma profundidade de "{1}" que excede o limite de "{2}" definido por "{3}". - ---- jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_sv.properties Tue Mar 11 13:02:28 2014 -0700 -+++ jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_sv.properties Tue Jun 03 14:19:32 2014 -0700 -@@ -7,7 +7,7 @@ - FormatFailed = Ett internt fel intr\u00E4ffade vid formatering av f\u00F6ljande meddelande:\n - - # Document messages -- PrematureEOF=F\u00F6r tidigt filslut (EOF). -+ PrematureEOF=Filen har avslutats f\u00F6r tidigt. - # 2.1 Well-Formed XML Documents - RootElementRequired = Rotelementet kr\u00E4vs i ett v\u00E4lformulerat dokument. - # 2.2 Characters -@@ -299,4 +299,5 @@ - MaxEntitySizeLimit=JAXP00010003: L\u00E4ngden p\u00E5 enheten "{0}" \u00E4r "{1}" som \u00F6verskriver gr\u00E4nsv\u00E4rdet p\u00E5 "{2}" som anges av "{3}". - TotalEntitySizeLimit=JAXP00010004: Den ackumulerade storleken "{0}" f\u00F6r enheter \u00F6verskred gr\u00E4nsv\u00E4rdet p\u00E5 "{1}" som anges av "{2}". - MaxXMLNameLimit=JAXP00010005: Namnet "{0}" \u00F6verskred gr\u00E4nsv\u00E4rdet p\u00E5 "{1}" som anges av "{2}". -+ MaxElementDepthLimit=JAXP00010006: Elementet "{0}" har djupet "{1}" vilket \u00E4r st\u00F6rre \u00E4n gr\u00E4nsen "{2}" som anges av "{3}". - ---- jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_zh_CN.properties Tue Mar 11 13:02:28 2014 -0700 -+++ jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_zh_CN.properties Tue Jun 03 14:19:32 2014 -0700 -@@ -299,4 +299,5 @@ - MaxEntitySizeLimit=JAXP00010003: \u5B9E\u4F53 "{0}" \u7684\u957F\u5EA6\u4E3A "{1}", \u8D85\u8FC7\u4E86 "{3}" \u8BBE\u7F6E\u7684 "{2}" \u9650\u5236\u3002 - TotalEntitySizeLimit=JAXP00010004: \u5B9E\u4F53\u7684\u7D2F\u8BA1\u5927\u5C0F "{0}" \u8D85\u8FC7\u4E86 "{2}" \u8BBE\u7F6E\u7684 "{1}" \u9650\u5236\u3002 - MaxXMLNameLimit=JAXP00010005: \u540D\u79F0 "{0}" \u8D85\u8FC7\u4E86 "{2}" \u8BBE\u7F6E\u7684 "{1}" \u9650\u5236\u3002 -+ MaxElementDepthLimit=JAXP00010006: \u5143\u7D20 "{0}" \u7684\u6DF1\u5EA6 "{1}" \u8D85\u8FC7\u4E86 "{3}" \u8BBE\u7F6E\u7684\u9650\u5236 "{2}"\u3002 - ---- jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_zh_TW.properties Tue Mar 11 13:02:28 2014 -0700 -+++ jaxp/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessages_zh_TW.properties Tue Jun 03 14:19:32 2014 -0700 -@@ -299,4 +299,5 @@ - MaxEntitySizeLimit=JAXP00010003: \u5BE6\u9AD4 "{0}" \u7684\u9577\u5EA6\u70BA "{1}"\uFF0C\u8D85\u904E "{3}" \u6240\u8A2D\u5B9A\u7684 "{2}" \u9650\u5236\u3002 - TotalEntitySizeLimit=JAXP00010004: \u5BE6\u9AD4\u7684\u7D2F\u7A4D\u5927\u5C0F "{0}" \u8D85\u904E "{2}" \u8A2D\u5B9A\u7684 "{1}" \u9650\u5236\u3002 - MaxXMLNameLimit=JAXP00010005: \u540D\u7A31 "{0}" \u8D85\u904E "{2}" \u8A2D\u5B9A\u7684 "{1}" \u9650\u5236\u3002 -+ MaxElementDepthLimit=JAXP00010006: \u5143\u7D20 "{0}" \u7684\u6DF1\u5EA6\u70BA "{1}"\uFF0C\u8D85\u904E "{3}" \u8A2D\u5B9A\u7684 "{2}" \u9650\u5236\u3002 - ---- jaxp/src/com/sun/org/apache/xerces/internal/utils/XMLLimitAnalyzer.java Tue Mar 11 13:02:28 2014 -0700 -+++ jaxp/src/com/sun/org/apache/xerces/internal/utils/XMLLimitAnalyzer.java Tue Jun 03 14:19:32 2014 -0700 -@@ -132,6 +132,10 @@ - totalValue[index] += value; - return; - } -+ if (index == Limit.MAX_ELEMENT_DEPTH_LIMIT.ordinal()) { -+ totalValue[index] = value; -+ return; -+ } - - Map<String, Integer> cache; - if (caches[index] == null) { ---- jaxp/src/com/sun/org/apache/xerces/internal/utils/XMLSecurityManager.java Tue Mar 11 13:02:28 2014 -0700 -+++ jaxp/src/com/sun/org/apache/xerces/internal/utils/XMLSecurityManager.java Tue Jun 03 14:19:32 2014 -0700 -@@ -66,7 +66,8 @@ - ELEMENT_ATTRIBUTE_LIMIT(Constants.JDK_ELEMENT_ATTRIBUTE_LIMIT, Constants.SP_ELEMENT_ATTRIBUTE_LIMIT, 0, 10000), - TOTAL_ENTITY_SIZE_LIMIT(Constants.JDK_TOTAL_ENTITY_SIZE_LIMIT, Constants.SP_TOTAL_ENTITY_SIZE_LIMIT, 0, 50000000), - GENERAL_ENTITY_SIZE_LIMIT(Constants.JDK_GENERAL_ENTITY_SIZE_LIMIT, Constants.SP_GENERAL_ENTITY_SIZE_LIMIT, 0, 0), -- PARAMETER_ENTITY_SIZE_LIMIT(Constants.JDK_PARAMETER_ENTITY_SIZE_LIMIT, Constants.SP_PARAMETER_ENTITY_SIZE_LIMIT, 0, 1000000); -+ PARAMETER_ENTITY_SIZE_LIMIT(Constants.JDK_PARAMETER_ENTITY_SIZE_LIMIT, Constants.SP_PARAMETER_ENTITY_SIZE_LIMIT, 0, 1000000), -+ MAX_ELEMENT_DEPTH_LIMIT(Constants.JDK_MAX_ELEMENT_DEPTH, Constants.SP_MAX_ELEMENT_DEPTH, 0, 0); - - final String apiProperty; - final String systemProperty; -@@ -429,9 +430,10 @@ - return false; - } - -- if (index==Limit.ELEMENT_ATTRIBUTE_LIMIT.ordinal() || -- index==Limit.ENTITY_EXPANSION_LIMIT.ordinal() || -- index==Limit.TOTAL_ENTITY_SIZE_LIMIT.ordinal()) { -+ if (index == Limit.ELEMENT_ATTRIBUTE_LIMIT.ordinal() || -+ index == Limit.ENTITY_EXPANSION_LIMIT.ordinal() || -+ index == Limit.TOTAL_ENTITY_SIZE_LIMIT.ordinal() || -+ index == Limit.MAX_ELEMENT_DEPTH_LIMIT.ordinal()) { - return (limitAnalyzer.getTotalValue(index) > values[index]); - } else { - return (limitAnalyzer.getValue(index) > values[index]); ---- jaxws/.hgtags Tue Mar 11 13:02:38 2014 -0700 -+++ jaxws/.hgtags Tue Jun 03 14:19:34 2014 -0700 -@@ -258,6 +258,7 @@ - 384ccf4e14cb90c89570e16a5f4ca440a69d6d93 jdk8u5-b02 - e423a4f2ec72ea0e24bea0fa77dd105095bbee67 jdk8u5-b03 - 738b966ee0b00d994445d34eb7eb087bd41a5478 jdk8u5-b04 -+3960c6ef7bd1782d6357c510dab393d291164045 jdk8u11-b00 - 3960c6ef7bd1782d6357c510dab393d291164045 jdk8u5-b05 - 0543f4dddddc67b142b4706b2d403a654809e605 jdk8u5-b06 - 0eb7f9f88e93587ace50614385f85afd221f5cb1 jdk8u5-b07 -@@ -266,3 +267,15 @@ - 22a840b408eb0242e363700843fba3f4988df749 jdk8u5-b10 - 75fd3933daaf5826e7c03bfb318026ac8a4c07ef jdk8u5-b11 - e2454d30b525bcb6ebcc711bd2928fbd29c11143 jdk8u5-b12 -+d2200a87d5ad6a9d06d9df144376ea5511b3916b jdk8u5-b13 -+d2732c66f0f927d7f31dead4cce1a0612b9ff2a1 jdk8u11-b01 -+152cc523baf1fdfe48514e3fe0d8e5a9b3c01ba4 jdk8u11-b02 -+c2c073f04f0566c868fec49b96e5885ad69f065c jdk8u11-b03 -+d1dbc7bc54291d447fce5655e0878b8689ad25b7 jdk8u11-b04 -+9626907d2521220a0214129733088bad35656239 jdk8u11-b05 -+6b71476418c1f6a085fb10460dcfedc5346e69af jdk8u11-b06 -+c29ede8e947c365ce55174eba716050c48461576 jdk8u11-b07 -+ca91f03660789a75710b4a081cd32aab00e80964 jdk8u11-b08 -+6e994ba1e4610b367f292a41a0d2c77091f93ab6 jdk8u11-b09 -+aa3f37b9fbdca195ac9430b8c301db7f33347241 jdk8u11-b10 -+5d161297f3031a82d04953bf60721f31e7c18da1 jdk8u11-b11 ---- jaxws/src/share/jaxws_classes/com/sun/tools/internal/xjc/model/nav/Utils.java Tue Mar 11 13:02:38 2014 -0700 -+++ jaxws/src/share/jaxws_classes/com/sun/tools/internal/xjc/model/nav/Utils.java Tue Jun 03 14:19:34 2014 -0700 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -31,6 +31,8 @@ - import java.lang.reflect.InvocationTargetException; - import java.lang.reflect.Method; - import java.lang.reflect.Type; -+import java.security.AccessController; -+import java.security.PrivilegedAction; - import java.util.logging.Level; - import java.util.logging.Logger; - -@@ -38,22 +40,32 @@ - * Utils class. - * Has *package private* access to avoid inappropriate usage. - */ --/* package */ final class Utils { -+final class Utils { - - private static final Logger LOGGER = Logger.getLogger(Utils.class.getName()); - - /** - * static ReflectionNavigator field to avoid usage of reflection every time we use it. - */ -- /* package */ static final Navigator<Type, Class, Field, Method> REFLECTION_NAVIGATOR; -+ static final Navigator<Type, Class, Field, Method> REFLECTION_NAVIGATOR; - - static { // we statically initializing REFLECTION_NAVIGATOR property -- Class refNav = null; - try { -- refNav = Class.forName("com.sun.xml.internal.bind.v2.model.nav.ReflectionNavigator"); -+ Class refNav = Class.forName("com.sun.xml.internal.bind.v2.model.nav.ReflectionNavigator"); - //noinspection unchecked -- Method getInstance = refNav.getDeclaredMethod("getInstance"); -- getInstance.setAccessible(true); -+ final Method getInstance = refNav.getDeclaredMethod("getInstance"); -+ -+ // requires accessClassInPackage privilege -+ AccessController.doPrivileged( -+ new PrivilegedAction<Object>() { -+ @Override -+ public Object run() { -+ getInstance.setAccessible(true); -+ return null; -+ } -+ } -+ ); -+ - //noinspection unchecked - REFLECTION_NAVIGATOR = (Navigator<Type, Class, Field, Method>) getInstance.invoke(null); - } catch (ClassNotFoundException e) { ---- jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/api/Utils.java Tue Mar 11 13:02:38 2014 -0700 -+++ jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/api/Utils.java Tue Jun 03 14:19:34 2014 -0700 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -31,6 +31,8 @@ - import java.lang.reflect.InvocationTargetException; - import java.lang.reflect.Method; - import java.lang.reflect.Type; -+import java.security.AccessController; -+import java.security.PrivilegedAction; - import java.util.logging.Level; - import java.util.logging.Logger; - -@@ -38,22 +40,32 @@ - * Utils class. - * Has *package private* access to avoid inappropriate usage. - */ --/* package */ final class Utils { -+final class Utils { - - private static final Logger LOGGER = Logger.getLogger(Utils.class.getName()); - - /** - * static ReflectionNavigator field to avoid usage of reflection every time we use it. - */ -- /* package */ static final Navigator<Type, Class, Field, Method> REFLECTION_NAVIGATOR; -+ static final Navigator<Type, Class, Field, Method> REFLECTION_NAVIGATOR; - - static { // we statically initializing REFLECTION_NAVIGATOR property -- Class refNav = null; - try { -- refNav = Class.forName("com.sun.xml.internal.bind.v2.model.nav.ReflectionNavigator"); -+ Class refNav = Class.forName("com.sun.xml.internal.bind.v2.model.nav.ReflectionNavigator"); - //noinspection unchecked -- Method getInstance = refNav.getDeclaredMethod("getInstance"); -- getInstance.setAccessible(true); -+ final Method getInstance = refNav.getDeclaredMethod("getInstance"); -+ -+ // requires accessClassInPackage privilege -+ AccessController.doPrivileged( -+ new PrivilegedAction<Object>() { -+ @Override -+ public Object run() { -+ getInstance.setAccessible(true); -+ return null; -+ } -+ } -+ ); -+ - //noinspection unchecked - REFLECTION_NAVIGATOR = (Navigator<Type, Class, Field, Method>) getInstance.invoke(null); - } catch (ClassNotFoundException e) { ---- jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/model/impl/Utils.java Tue Mar 11 13:02:38 2014 -0700 -+++ jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/model/impl/Utils.java Tue Jun 03 14:19:34 2014 -0700 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -31,6 +31,8 @@ - import java.lang.reflect.InvocationTargetException; - import java.lang.reflect.Method; - import java.lang.reflect.Type; -+import java.security.AccessController; -+import java.security.PrivilegedAction; - import java.util.logging.Level; - import java.util.logging.Logger; - -@@ -38,22 +40,32 @@ - * Utils class. - * Has *package private* access to avoid inappropriate usage. - */ --/* package */ final class Utils { -+final class Utils { - - private static final Logger LOGGER = Logger.getLogger(Utils.class.getName()); - - /** - * static ReflectionNavigator field to avoid usage of reflection every time we use it. - */ -- /* package */ static final Navigator<Type, Class, Field, Method> REFLECTION_NAVIGATOR; -+ static final Navigator<Type, Class, Field, Method> REFLECTION_NAVIGATOR; - - static { // we statically initializing REFLECTION_NAVIGATOR property -- Class refNav = null; - try { -- refNav = Class.forName("com.sun.xml.internal.bind.v2.model.nav.ReflectionNavigator"); -+ Class refNav = Class.forName("com.sun.xml.internal.bind.v2.model.nav.ReflectionNavigator"); - //noinspection unchecked -- Method getInstance = refNav.getDeclaredMethod("getInstance"); -- getInstance.setAccessible(true); -+ final Method getInstance = refNav.getDeclaredMethod("getInstance"); -+ -+ // requires accessClassInPackage privilege -+ AccessController.doPrivileged( -+ new PrivilegedAction<Object>() { -+ @Override -+ public Object run() { -+ getInstance.setAccessible(true); -+ return null; -+ } -+ } -+ ); -+ - //noinspection unchecked - REFLECTION_NAVIGATOR = (Navigator<Type, Class, Field, Method>) getInstance.invoke(null); - } catch (ClassNotFoundException e) { ---- jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/Utils.java Tue Mar 11 13:02:38 2014 -0700 -+++ jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/Utils.java Tue Jun 03 14:19:34 2014 -0700 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -31,6 +31,8 @@ - import java.lang.reflect.InvocationTargetException; - import java.lang.reflect.Method; - import java.lang.reflect.Type; -+import java.security.AccessController; -+import java.security.PrivilegedAction; - import java.util.logging.Level; - import java.util.logging.Logger; - -@@ -38,22 +40,32 @@ - * Utils class. - * Has *package private* access to avoid inappropriate usage. - */ --/* package */ final class Utils { -+final class Utils { - - private static final Logger LOGGER = Logger.getLogger(Utils.class.getName()); - - /** - * static ReflectionNavigator field to avoid usage of reflection every time we use it. - */ -- /* package */ static final Navigator<Type, Class, Field, Method> REFLECTION_NAVIGATOR; -+ static final Navigator<Type, Class, Field, Method> REFLECTION_NAVIGATOR; - - static { // we statically initializing REFLECTION_NAVIGATOR property -- Class refNav = null; - try { -- refNav = Class.forName("com.sun.xml.internal.bind.v2.model.nav.ReflectionNavigator"); -+ Class refNav = Class.forName("com.sun.xml.internal.bind.v2.model.nav.ReflectionNavigator"); - //noinspection unchecked -- Method getInstance = refNav.getDeclaredMethod("getInstance"); -- getInstance.setAccessible(true); -+ final Method getInstance = refNav.getDeclaredMethod("getInstance"); -+ -+ // requires accessClassInPackage privilege -+ AccessController.doPrivileged( -+ new PrivilegedAction<Object>() { -+ @Override -+ public Object run() { -+ getInstance.setAccessible(true); -+ return null; -+ } -+ } -+ ); -+ - //noinspection unchecked - REFLECTION_NAVIGATOR = (Navigator<Type, Class, Field, Method>) getInstance.invoke(null); - } catch (ClassNotFoundException e) { ---- jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/property/Utils.java Tue Mar 11 13:02:38 2014 -0700 -+++ jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/property/Utils.java Tue Jun 03 14:19:34 2014 -0700 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -31,6 +31,8 @@ - import java.lang.reflect.InvocationTargetException; - import java.lang.reflect.Method; - import java.lang.reflect.Type; -+import java.security.AccessController; -+import java.security.PrivilegedAction; - import java.util.logging.Level; - import java.util.logging.Logger; - -@@ -38,22 +40,32 @@ - * Utils class. - * Has *package private* access to avoid inappropriate usage. - */ --/* package */ final class Utils { -+final class Utils { - - private static final Logger LOGGER = Logger.getLogger(Utils.class.getName()); - - /** - * static ReflectionNavigator field to avoid usage of reflection every time we use it. - */ -- /* package */ static final Navigator<Type, Class, Field, Method> REFLECTION_NAVIGATOR; -+ static final Navigator<Type, Class, Field, Method> REFLECTION_NAVIGATOR; - - static { // we statically initializing REFLECTION_NAVIGATOR property -- Class refNav = null; - try { -- refNav = Class.forName("com.sun.xml.internal.bind.v2.model.nav.ReflectionNavigator"); -+ Class refNav = Class.forName("com.sun.xml.internal.bind.v2.model.nav.ReflectionNavigator"); - //noinspection unchecked -- Method getInstance = refNav.getDeclaredMethod("getInstance"); -- getInstance.setAccessible(true); -+ final Method getInstance = refNav.getDeclaredMethod("getInstance"); -+ -+ // requires accessClassInPackage privilege -+ AccessController.doPrivileged( -+ new PrivilegedAction<Object>() { -+ @Override -+ public Object run() { -+ getInstance.setAccessible(true); -+ return null; -+ } -+ } -+ ); -+ - //noinspection unchecked - REFLECTION_NAVIGATOR = (Navigator<Type, Class, Field, Method>) getInstance.invoke(null); - } catch (ClassNotFoundException e) { ---- jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/reflect/Utils.java Tue Mar 11 13:02:38 2014 -0700 -+++ jaxws/src/share/jaxws_classes/com/sun/xml/internal/bind/v2/runtime/reflect/Utils.java Tue Jun 03 14:19:34 2014 -0700 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -31,6 +31,8 @@ - import java.lang.reflect.InvocationTargetException; - import java.lang.reflect.Method; - import java.lang.reflect.Type; -+import java.security.AccessController; -+import java.security.PrivilegedAction; - import java.util.logging.Level; - import java.util.logging.Logger; - -@@ -38,22 +40,32 @@ - * Utils class. - * Has *package private* access to avoid inappropriate usage. - */ --/* package */ final class Utils { -+final class Utils { - - private static final Logger LOGGER = Logger.getLogger(Utils.class.getName()); - - /** - * static ReflectionNavigator field to avoid usage of reflection every time we use it. - */ -- /* package */ static final Navigator<Type, Class, Field, Method> REFLECTION_NAVIGATOR; -+ static final Navigator<Type, Class, Field, Method> REFLECTION_NAVIGATOR; - - static { // we statically initializing REFLECTION_NAVIGATOR property -- Class refNav = null; - try { -- refNav = Class.forName("com.sun.xml.internal.bind.v2.model.nav.ReflectionNavigator"); -+ Class refNav = Class.forName("com.sun.xml.internal.bind.v2.model.nav.ReflectionNavigator"); - //noinspection unchecked -- Method getInstance = refNav.getDeclaredMethod("getInstance"); -- getInstance.setAccessible(true); -+ final Method getInstance = refNav.getDeclaredMethod("getInstance"); -+ -+ // requires accessClassInPackage privilege -+ AccessController.doPrivileged( -+ new PrivilegedAction<Object>() { -+ @Override -+ public Object run() { -+ getInstance.setAccessible(true); -+ return null; -+ } -+ } -+ ); -+ - //noinspection unchecked - REFLECTION_NAVIGATOR = (Navigator<Type, Class, Field, Method>) getInstance.invoke(null); - } catch (ClassNotFoundException e) { ---- jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/model/Utils.java Tue Mar 11 13:02:38 2014 -0700 -+++ jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/model/Utils.java Tue Jun 03 14:19:34 2014 -0700 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -31,6 +31,8 @@ - import java.lang.reflect.InvocationTargetException; - import java.lang.reflect.Method; - import java.lang.reflect.Type; -+import java.security.AccessController; -+import java.security.PrivilegedAction; - import java.util.logging.Level; - import java.util.logging.Logger; - -@@ -41,22 +43,32 @@ - * - * Has *package private* access to avoid inappropriate usage. - */ --/* package */ final class Utils { -+final class Utils { - - private static final Logger LOGGER = Logger.getLogger(Utils.class.getName()); - - /** - * static ReflectionNavigator field to avoid usage of reflection every time we use it. - */ -- /* package */ static final Navigator<Type, Class, Field, Method> REFLECTION_NAVIGATOR; -+ static final Navigator<Type, Class, Field, Method> REFLECTION_NAVIGATOR; - - static { // we statically initializing REFLECTION_NAVIGATOR property -- Class refNav = null; - try { -- refNav = Class.forName("com.sun.xml.internal.bind.v2.model.nav.ReflectionNavigator"); -+ Class refNav = Class.forName("com.sun.xml.internal.bind.v2.model.nav.ReflectionNavigator"); - //noinspection unchecked -- Method getInstance = refNav.getDeclaredMethod("getInstance"); -- getInstance.setAccessible(true); -+ final Method getInstance = refNav.getDeclaredMethod("getInstance"); -+ -+ // requires accessClassInPackage privilege -+ AccessController.doPrivileged( -+ new PrivilegedAction<Object>() { -+ @Override -+ public Object run() { -+ getInstance.setAccessible(true); -+ return null; -+ } -+ } -+ ); -+ - //noinspection unchecked - REFLECTION_NAVIGATOR = (Navigator<Type, Class, Field, Method>) getInstance.invoke(null); - } catch (ClassNotFoundException e) { ---- jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/spi/db/Utils.java Tue Mar 11 13:02:38 2014 -0700 -+++ jaxws/src/share/jaxws_classes/com/sun/xml/internal/ws/spi/db/Utils.java Tue Jun 03 14:19:34 2014 -0700 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -31,6 +31,8 @@ - import java.lang.reflect.InvocationTargetException; - import java.lang.reflect.Method; - import java.lang.reflect.Type; -+import java.security.AccessController; -+import java.security.PrivilegedAction; - import java.util.logging.Level; - import java.util.logging.Logger; - -@@ -41,22 +43,32 @@ - * - * Has *package private* access to avoid inappropriate usage. - */ --/* package */ final class Utils { -+final class Utils { - - private static final Logger LOGGER = Logger.getLogger(Utils.class.getName()); - - /** - * static ReflectionNavigator field to avoid usage of reflection every time we use it. - */ -- /* package */ static final Navigator<Type, Class, Field, Method> REFLECTION_NAVIGATOR; -+ static final Navigator<Type, Class, Field, Method> REFLECTION_NAVIGATOR; - - static { // we statically initializing REFLECTION_NAVIGATOR property -- Class refNav = null; - try { -- refNav = Class.forName("com.sun.xml.internal.bind.v2.model.nav.ReflectionNavigator"); -+ Class refNav = Class.forName("com.sun.xml.internal.bind.v2.model.nav.ReflectionNavigator"); - //noinspection unchecked -- Method getInstance = refNav.getDeclaredMethod("getInstance"); -- getInstance.setAccessible(true); -+ final Method getInstance = refNav.getDeclaredMethod("getInstance"); -+ -+ // requires accessClassInPackage privilege -+ AccessController.doPrivileged( -+ new PrivilegedAction<Object>() { -+ @Override -+ public Object run() { -+ getInstance.setAccessible(true); -+ return null; -+ } -+ } -+ ); -+ - //noinspection unchecked - REFLECTION_NAVIGATOR = (Navigator<Type, Class, Field, Method>) getInstance.invoke(null); - } catch (ClassNotFoundException e) { ---- jdk/.hgtags Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/.hgtags Tue Jun 03 14:19:36 2014 -0700 -@@ -258,6 +258,7 @@ - 343f4f8ba0982b3516e33c859b01634d919243c4 jdk8u5-b02 - c35571198602a5856280d5c7c10bda4e7b769104 jdk8u5-b03 - 55e6175fb6904d771bfaec4ada4f5e20b54f4791 jdk8u5-b04 -+911d590f34aaa7f7b9ef300d0c0a019e70a62d1d jdk8u11-b00 - 911d590f34aaa7f7b9ef300d0c0a019e70a62d1d jdk8u5-b05 - 94fe0ed14bfcca335ff72abd20cf871dab100e79 jdk8u5-b06 - 469c2c1a4885ddedc114e17902bb2f7f7326a4b7 jdk8u5-b07 -@@ -266,3 +267,15 @@ - 7f905cc47d4951628d956c436c8aa95aeb8bd014 jdk8u5-b10 - f4f3b7ccd2801a0a87dd4677332f5b93191d08f2 jdk8u5-b11 - 9ff7f7909e122bb54f7df80efd0fc7a03ce7efff jdk8u5-b12 -+c6836440c427800a9f48168af29759b79857781d jdk8u5-b13 -+5eff6b1060758eae51125156a6f9c7725905e64e jdk8u11-b01 -+cb1b9eca5890807476935051b8a5f13f4d3e5c63 jdk8u11-b02 -+5efce41be1c8637b399980ea227f19e0f98341bc jdk8u11-b03 -+4af24a3f52aeb07b51d3860049b0d1504e400feb jdk8u11-b04 -+726370d73baebc513d0d83df71bb7629703ef7d0 jdk8u11-b05 -+dc8eb8ba138a53df4cc80f6379ed25ef20644667 jdk8u11-b06 -+69ea8bc3ce29eda152d9c2ebea91a9ce233bde9e jdk8u11-b07 -+bec9dcd4c06358154cce431c4b70da56530827de jdk8u11-b08 -+801e730c85eb822ac3b00466b32d42e089cb7233 jdk8u11-b09 -+105753f0465e534e3664d0935016f5a0d061829d jdk8u11-b10 -+bd5f7651116e2634c09adf073609811c60a4d5e7 jdk8u11-b11 ---- jdk/make/data/tzdata/VERSION Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/make/data/tzdata/VERSION Tue Jun 03 14:19:36 2014 -0700 -@@ -21,4 +21,4 @@ - # or visit www.oracle.com if you need additional information or have any - # questions. - # --tzdata2013i -+tzdata2014c ---- jdk/make/data/tzdata/africa Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/make/data/tzdata/africa Tue Jun 03 14:19:36 2014 -0700 -@@ -358,11 +358,54 @@ - # http://www.worldtimezone.com/dst_news/dst_news_egypt02.html - # </a> - -+# From Ahmad El-Dardiry (2014-05-07): -+# Egypt is to change back to Daylight system on May 15 -+# http://english.ahram.org.eg/NewsContent/1/64/100735/Egypt/Politics-/Egypts-government-to-reapply-daylight-saving-time-.aspx -+ -+# From Gunther Vermier (2015-05-13): -+# our Egypt office confirms that the change will be at 15 May "midnight" (24:00) -+ -+# From Paul Eggert (2014-05-13): -+# Sarah El Deeb and Lee Keath of AP report that the Egyptian government says -+# the change is because of blackouts in Cairo, even though Ahram Online (cited -+# above) says DST had no affect on electricity consumption. The AP story says -+# DST will not be observed during Ramadan. There is no information about when -+# DST will end. See: -+# http://abcnews.go.com/International/wireStory/el-sissi-pushes-egyptians-line-23614833 -+# -+# For now, guess that later transitions will use 2010's rules, and that -+# Egypt will agree with Morocco (see below) about the date Ramadan starts and -+# ends, though (unlike Morocco) it will switch at 00:00 standard time. In -+# Egypt the spring-forward transitions are removed for 2020-2022, when the -+# guessed spring-forward date falls during the estimated Ramadan, and all -+# transitions removed for 2023-2038, where the estimated Ramadan falls entirely -+# outside the guessed daylight-saving time. Ramadan intrudes on the guessed -+# DST starting in 2039, but that's beyond our somewhat-arbitrary cutoff. -+ - Rule Egypt 2008 only - Aug lastThu 23:00s 0 - - Rule Egypt 2009 only - Aug 20 23:00s 0 - - Rule Egypt 2010 only - Aug 11 0:00 0 - - Rule Egypt 2010 only - Sep 10 0:00 1:00 S - Rule Egypt 2010 only - Sep lastThu 23:00s 0 - -+Rule Egypt 2014 only - May 15 24:00 1:00 S -+Rule Egypt 2014 only - Jun 29 0:00s 0 - -+Rule Egypt 2014 only - Jul 29 0:00s 1:00 S -+Rule Egypt 2014 max - Sep lastThu 23:00s 0 - -+Rule Egypt 2015 2019 - Apr lastFri 0:00s 1:00 S -+Rule Egypt 2015 only - Jun 18 0:00s 0 - -+Rule Egypt 2015 only - Jul 18 0:00s 1:00 S -+Rule Egypt 2016 only - Jun 7 0:00s 0 - -+Rule Egypt 2016 only - Jul 7 0:00s 1:00 S -+Rule Egypt 2017 only - May 27 0:00s 0 - -+Rule Egypt 2017 only - Jun 26 0:00s 1:00 S -+Rule Egypt 2018 only - May 16 0:00s 0 - -+Rule Egypt 2018 only - Jun 15 0:00s 1:00 S -+Rule Egypt 2019 only - May 6 0:00s 0 - -+Rule Egypt 2019 only - Jun 5 0:00s 1:00 S -+Rule Egypt 2020 only - May 24 0:00s 1:00 S -+Rule Egypt 2021 only - May 13 0:00s 1:00 S -+Rule Egypt 2022 only - May 3 0:00s 1:00 S -+Rule Egypt 2023 max - Apr lastFri 0:00s 1:00 S - - # Zone NAME GMTOFF RULES FORMAT [UNTIL] - Zone Africa/Cairo 2:05:09 - LMT 1900 Oct -@@ -891,7 +934,10 @@ - # Another source (specifying the time for start and end in the decree): - # http://www.lemag.ma/Heure-d-ete-au-Maroc-jusqu-au-27-octobre_a75620.html - --# From Paul Eggert (2013-10-03): -+# From Sebastien Willemijns (2014-03-18): -+# http://www.afriquinfos.com/articles/2014/3/18/maroc-heure-dete-avancez-tous-horloges-247891.asp -+ -+# From Paul Eggert (2014-03-19): - # To estimate what the Moroccan government will do in future years, - # transition dates for 2014 through 2038 were determined by running - # the following program under GNU Emacs 24.3: ---- jdk/make/data/tzdata/antarctica Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/make/data/tzdata/antarctica Tue Jun 03 14:19:36 2014 -0700 -@@ -253,24 +253,41 @@ - # year-round base - # Scott Base, Ross Island, since 1957-01. - # See Pacific/Auckland. --# --# These rules for New Zealand are stolen from the 'australasia' file. --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S --Rule NZAQ 1974 only - Nov 3 2:00s 1:00 D --Rule NZAQ 1975 1988 - Oct lastSun 2:00s 1:00 D --Rule NZAQ 1989 only - Oct 8 2:00s 1:00 D --Rule NZAQ 1990 2006 - Oct Sun>=1 2:00s 1:00 D --Rule NZAQ 1975 only - Feb 23 2:00s 0 S --Rule NZAQ 1976 1989 - Mar Sun>=1 2:00s 0 S --Rule NZAQ 1990 2007 - Mar Sun>=15 2:00s 0 S --Rule NZAQ 2007 max - Sep lastSun 2:00s 1:00 D --Rule NZAQ 2008 max - Apr Sun>=1 2:00s 0 S - - # Norway - territories - # Bouvet (never inhabited) - # - # claims - # Peter I Island (never inhabited) -+# -+# year-round base -+# Troll, Queen Maud Land, -720041+0023206, since 2005-02-12 -+# -+# From Paul-Inge Flakstad (2014-03-10): -+# I recently had a long dialog about this with the developer of timegenie.com. -+# In the absence of specific dates, he decided to choose some likely ones: -+# GMT +1 - From March 1 to the last Sunday in March -+# GMT +2 - From the last Sunday in March until the last Sunday in October -+# GMT +1 - From the last Sunday in October until November 7 -+# GMT +0 - From November 7 until March 1 -+# The dates for switching to and from UTC+0 will probably not be absolutely -+# correct, but they should be quite close to the actual dates. -+# -+# From Paul Eggert (2014-03-21): -+# The CET-switching Troll rules require zic from tzcode 2014b or later, so as -+# suggested by Bengt-Inge Larsson comment them out for now, and approximate -+# with only UTC and CEST. Uncomment them when 2014b is more prevalent. -+# -+# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+#Rule Troll 2005 max - Mar 1 1:00u 1:00 CET -+Rule Troll 2005 max - Mar lastSun 1:00u 2:00 CEST -+#Rule Troll 2005 max - Oct lastSun 1:00u 1:00 CET -+#Rule Troll 2004 max - Nov 7 1:00u 0:00 UTC -+# Remove the following line when uncommenting the above '#Rule' lines. -+Rule Troll 2004 max - Oct lastSun 1:00u 0:00 UTC -+# Zone NAME GMTOFF RULES FORMAT [UNTIL] -+Zone Antarctica/Troll 0 - zzz 2005 Feb 12 -+ 0:00 Troll %s - - # Poland - year-round base - # Arctowski, King George Island, -620945-0582745, since 1977 ---- jdk/make/data/tzdata/asia Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/make/data/tzdata/asia Tue Jun 03 14:19:36 2014 -0700 -@@ -1113,8 +1113,13 @@ - Rule Zion 1986 only - Sep 7 0:00 0 S - Rule Zion 1987 only - Apr 15 0:00 1:00 D - Rule Zion 1987 only - Sep 13 0:00 0 S --Rule Zion 1988 only - Apr 9 0:00 1:00 D --Rule Zion 1988 only - Sep 3 0:00 0 S -+ -+# From Avigdor Finkelstein (2014-03-05): -+# I check the Parliament (Knesset) records and there it's stated that the -+# [1988] transition should take place on Saturday night, when the Sabbath -+# ends and changes to Sunday. -+Rule Zion 1988 only - Apr 10 0:00 1:00 D -+Rule Zion 1988 only - Sep 4 0:00 0 S - - # From Ephraim Silverberg - # (1997-03-04, 1998-03-16, 1998-12-28, 2000-01-17, 2000-07-25, 2004-12-22, -@@ -1365,22 +1370,6 @@ - # "Jordan will switch to winter time on Friday, October 27". - # - --# From Phil Pizzey (2009-04-02): --# ...I think I may have spotted an error in the timezone data for --# Jordan. --# The current (2009d) asia file shows Jordan going to daylight --# saving --# time on the last Thursday in March. --# --# Rule Jordan 2000 max - Mar lastThu 0:00s 1:00 S --# --# However timeanddate.com, which I usually find reliable, shows Jordan --# going to daylight saving time on the last Friday in March since 2002. --# Please see --# <a href="http://www.timeanddate.com/worldclock/timezone.html?n=11"> --# http://www.timeanddate.com/worldclock/timezone.html?n=11 --# </a> -- - # From Steffen Thorsen (2009-04-02): - # This single one might be good enough, (2009-03-24, Arabic): - # <a href="http://petra.gov.jo/Artical.aspx?Lng=2&Section=8&Artical=95279"> ---- jdk/make/data/tzdata/australasia Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/make/data/tzdata/australasia Tue Jun 03 14:19:36 2014 -0700 -@@ -377,16 +377,18 @@ - # http://www.fiji.gov.fj/index.php?option=com_content&view=article&id=6702&catid=71&Itemid=155 - - # From the Fijian Government Media Center (2013-08-30) via David Wheeler: --# Fiji will start daylight savings on Sunday 27th October, 2013 and end at 3am --# on Sunday 19th January, 2014.... move clocks forward by one hour from 2am -+# Fiji will start daylight savings on Sunday 27th October, 2013 ... -+# move clocks forward by one hour from 2am - # http://www.fiji.gov.fj/Media-Center/Press-Releases/DAYLIGHT-SAVING-STARTS-ON-SUNDAY,-27th-OCTOBER-201.aspx --# --# From Paul Eggert (2013-09-09): -+ -+# From Steffen Thorsen (2013-01-10): -+# Fiji will end DST on 2014-01-19 02:00: -+# http://www.fiji.gov.fj/Media-Center/Press-Releases/DAYLIGHT-SAVINGS-TO-END-THIS-MONTH-%281%29.aspx -+ -+# From Paul Eggert (2014-01-10): - # For now, guess that Fiji springs forward the Sunday before the fourth --# Monday in October. This matches both recent practice and --# timeanddate.com's current spring-forward prediction. --# For the January 2014 transition we guessed right while timeanddate.com --# guessed wrong, so leave the fall-back prediction alone. -+# Monday in October, and springs back the penultimate Sunday in January. -+# This is ad hoc, but matches recent practice. - - # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S - Rule Fiji 1998 1999 - Nov Sun>=1 2:00 1:00 S -@@ -395,7 +397,8 @@ - Rule Fiji 2010 only - Mar lastSun 3:00 0 - - Rule Fiji 2010 max - Oct Sun>=21 2:00 1:00 S - Rule Fiji 2011 only - Mar Sun>=1 3:00 0 - --Rule Fiji 2012 max - Jan Sun>=18 3:00 0 - -+Rule Fiji 2012 2013 - Jan Sun>=18 3:00 0 - -+Rule Fiji 2014 max - Jan Sun>=18 2:00 0 - - # Zone NAME GMTOFF RULES FORMAT [UNTIL] - Zone Pacific/Fiji 11:55:44 - LMT 1915 Oct 26 # Suva - 12:00 Fiji FJ%sT # Fiji Time -@@ -783,14 +786,29 @@ - - # Johnston - # --# From Paul Eggert (2013-09-03): -+# From Paul Eggert (2014-03-11): -+# Sometimes Johnston kept Hawaii time, and sometimes it was an hour behind. -+# Details are uncertain. We have no data for Johnston after 1970, so -+# treat it like Hawaii for now. -+# - # In his memoirs of June 6th to October 4, 1945 - # <http://www.315bw.org/Herb_Bach.htm> (2005), Herbert C. Bach writes, - # "We started our letdown to Kwajalein Atoll and landed there at 5:00 AM - # Johnston time, 1:30 AM Kwajalein time." This was in June 1945, and - # confirms that Johnston kept the same time as Honolulu in summer 1945. --# We have no better information, so for now, assume this has been true --# indefinitely into the past. -+# -+# From Lyle McElhaney (2014-03-11): -+# [W]hen JI was being used for that [atomic bomb] testing, the time being used -+# was not Hawaiian time but rather the same time being used on the ships, -+# which had a GMT offset of -11 hours. This apparently applied to at least the -+# time from Operation Newsreel (Hardtack I/Teak shot, 1958-08-01) to the last -+# Operation Fishbowl shot (Tightrope, 1962-11-04).... [See] Herman Hoerlin, -+# "The United States High-Altitude Test Experience: A Review Emphasizing the -+# Impact on the Environment", Los Alamos LA-6405, Oct 1976 -+# <http://www.fas.org/sgp/othergov/doe/lanl/docs1/00322994.pdf>. -+# See the table on page 4 where he lists GMT and local times for the tests; a -+# footnote for the JI tests reads that local time is "JI time = Hawaii Time -+# Minus One Hour". - # - # See 'northamerica' for Pacific/Johnston. - ---- jdk/make/data/tzdata/europe Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/make/data/tzdata/europe Tue Jun 03 14:19:36 2014 -0700 -@@ -2768,14 +2768,18 @@ - # According to the articles linked below, Turkey will change into summer - # time zone (GMT+3) on March 28, 2011 at 3:00 a.m. instead of March 27. - # This change is due to a nationwide exam on 27th. --# --# <a href="http://www.worldbulletin.net/?aType=haber&ArticleID=70872"> - # http://www.worldbulletin.net/?aType=haber&ArticleID=70872 --# </a> - # Turkish: --# <a href="http://www.hurriyet.com.tr/ekonomi/17230464.asp?gid=373"> - # http://www.hurriyet.com.tr/ekonomi/17230464.asp?gid=373 --# </a> -+ -+# From Faruk Pasin (2014-02-14): -+# The DST for Turkey has been changed for this year because of the -+# Turkish Local election.... -+# http://www.sabah.com.tr/Ekonomi/2014/02/12/yaz-saatinde-onemli-degisiklik -+# ... so Turkey will move clocks forward one hour on March 31 at 3:00 a.m. -+# From Paul Eggert (2014-02-17): -+# Here is an English-language source: -+# http://www.worldbulletin.net/turkey/129016/turkey-switches-to-daylight-saving-time-march-31 - - # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S - Rule Turkey 1916 only - May 1 0:00 1:00 S -@@ -2844,6 +2848,8 @@ - 2:00 Turkey EE%sT 2007 - 2:00 EU EE%sT 2011 Mar 27 1:00u - 2:00 - EET 2011 Mar 28 1:00u -+ 2:00 EU EE%sT 2014 Mar 30 1:00u -+ 2:00 - EET 2014 Mar 31 1:00u - 2:00 EU EE%sT - Link Europe/Istanbul Asia/Istanbul # Istanbul is in both continents. - -@@ -2865,19 +2871,13 @@ - # approval from 266 deputies. - # - # Ukraine abolishes transter back to the winter time (in Russian) --# <a href="http://news.mail.ru/politics/6861560/"> - # http://news.mail.ru/politics/6861560/ --# </a> - # - # The Ukrainians will no longer change the clock (in Russian) --# <a href="http://www.segodnya.ua/news/14290482.html"> - # http://www.segodnya.ua/news/14290482.html --# </a> - # - # Deputies cancelled the winter time (in Russian) --# <a href="http://www.pravda.com.ua/rus/news/2011/09/20/6600616/"> - # http://www.pravda.com.ua/rus/news/2011/09/20/6600616/ --# </a> - # - # From Philip Pizzey (2011-10-18): - # Today my Ukrainian colleagues have informed me that the -@@ -2888,18 +2888,39 @@ - # As far as I understand, the recent change to the Ukrainian time zone - # (Europe/Kiev) to introduce permanent daylight saving time (similar - # to Russia) was reverted today: --# --# <a href="http://portal.rada.gov.ua/rada/control/en/publish/article/info_left?art_id=287324&cat_id=105995"> - # http://portal.rada.gov.ua/rada/control/en/publish/article/info_left?art_id=287324&cat_id=105995 --# </a> - # - # Also reported by Alexander Bokovoy (2011-10-18) who also noted: - # The law documents themselves are at -+# http://w1.c1.rada.gov.ua/pls/zweb_n/webproc4_1?id=&pf3511=41484 -+ -+# From Vladimir in Moscow via Alois Treindl re Kiev time 1991/2 (2014-02-28): -+# First in Ukraine they changed Time zone from UTC+3 to UTC+2 with DST: -+# 03 25 1990 02:00 -03.00 1 Time Zone 3 with DST -+# 07 01 1990 02:00 -02.00 1 Time Zone 2 with DST -+# * Ukrainian Government's Resolution of 18.06.1990, No. 134. -+# http://search.ligazakon.ua/l_doc2.nsf/link1/T001500.html - # --# <a href="http://w1.c1.rada.gov.ua/pls/zweb_n/webproc4_1?id=&pf3511=41484"> --# http://w1.c1.rada.gov.ua/pls/zweb_n/webproc4_1?id=&pf3511=41484 --# </a> -- -+# They did not end DST in September, 1990 (according to the law, -+# "summer time" was still in action): -+# 09 30 1990 03:00 -02.00 1 Time Zone 2 with DST -+# * Ukrainian Government's Resolution of 21.09.1990, No. 272. -+# http://search.ligazakon.ua/l_doc2.nsf/link1/KP900272.html -+# -+# Again no change in March, 1991 ("summer time" in action): -+# 03 31 1991 02:00 -02.00 1 Time Zone 2 with DST -+# -+# DST ended in September 1991 ("summer time" ended): -+# 09 29 1991 03:00 -02.00 0 Time Zone 2, no DST -+# * Ukrainian Government's Resolution of 25.09.1991, No. 225. -+# http://www.uazakon.com/documents/date_21/pg_iwgdoc.htm -+# This is an answer. -+# -+# Since 1992 they had normal DST procedure: -+# 03 29 1992 02:00 -02.00 1 DST started -+# 09 27 1992 03:00 -02.00 0 DST ended -+# * Ukrainian Government's Resolution of 20.03.1992, No. 139. -+# http://www.uazakon.com/documents/date_8u/pg_grcasa.htm - - # Zone NAME GMTOFF RULES FORMAT [UNTIL] - # Most of Ukraine since 1970 has been like Kiev. -@@ -2910,9 +2931,8 @@ - 2:00 - EET 1930 Jun 21 - 3:00 - MSK 1941 Sep 20 - 1:00 C-Eur CE%sT 1943 Nov 6 -- 3:00 Russia MSK/MSD 1990 -- 3:00 - MSK 1990 Jul 1 2:00 -- 2:00 - EET 1992 -+ 3:00 Russia MSK/MSD 1990 Jul 1 2:00 -+ 2:00 1:00 EEST 1991 Sep 29 3:00 - 2:00 E-Eur EE%sT 1995 - 2:00 EU EE%sT - # Ruthenia used CET 1990/1991. -@@ -2966,7 +2986,15 @@ - # Assume it happened in March by not changing the clocks. - 3:00 Russia MSK/MSD 1997 - 3:00 - MSK 1997 Mar lastSun 1:00u -- 2:00 EU EE%sT -+# From Alexander Krivenyshev (2014-03-17): -+# time change at 2:00 (2am) on March 30, 2014 -+# http://vz.ru/news/2014/3/17/677464.html -+# From Paul Eggert (2014-03-30): -+# Simferopol and Sevastopol reportedly changed their central town clocks -+# late the previous day, but this appears to have been ceremonial -+# and the discrepancies are small enough to not worry about. -+ 2:00 EU EE%sT 2014 Mar 30 2:00 -+ 4:00 - MSK - - # Vatican City - # See Europe/Rome. ---- jdk/make/data/tzdata/leapseconds Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/make/data/tzdata/leapseconds Tue Jun 03 14:19:36 2014 -0700 -@@ -20,7 +20,7 @@ - # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - # or visit www.oracle.com if you need additional information or have any - # questions. -- -+# - # Allowance for leapseconds added to each timezone file. - - # This file is in the public domain. ---- jdk/make/data/tzdata/northamerica Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/make/data/tzdata/northamerica Tue Jun 03 14:19:36 2014 -0700 -@@ -414,9 +414,10 @@ - # US Pacific time, represented by Los Angeles - # - # California, northern Idaho (Benewah, Bonner, Boundary, Clearwater, --# Idaho, Kootenai, Latah, Lewis, Nez Perce, and Shoshone counties, --# and the northern three-quarters of Idaho county), --# most of Nevada, most of Oregon, and Washington -+# Kootenai, Latah, Lewis, Nez Perce, and Shoshone counties, Idaho county -+# north of the Salmon River, and the towns of Burgdorf and Warren), -+# Nevada (except West Wendover), Oregon (except the northern 3/4 of -+# Malheur county), and Washington - # - # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER - Rule CA 1948 only - Mar 14 2:00 1:00 D ---- jdk/make/data/tzdata/southamerica Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/make/data/tzdata/southamerica Tue Jun 03 14:19:36 2014 -0700 -@@ -1298,6 +1298,13 @@ - # start date is 2013-09-08 00:00.... - # http://www.gob.cl/informa/2013/02/15/gobierno-anuncia-fechas-de-cambio-de-hora-para-el-ano-2013.htm - -+# From Jose Miguel Garrido (2014-02-19): -+# Today appeared in the Diario Oficial a decree amending the time change -+# dates to 2014. -+# DST End: last Saturday of April 2014 (Sun 27 Apr 2014 03:00 UTC) -+# DST Start: first Saturday of September 2014 (Sun 07 Sep 2014 04:00 UTC) -+# http://www.diariooficial.interior.gob.cl//media/2014/02/19/do-20140219.pdf -+ - # NOTE: ChileAQ rules for Antarctic bases are stored separately in the - # 'antarctica' file. - -@@ -1631,6 +1638,9 @@ - # From Carlos Raul Perasso (2013-03-15): - # The change in Paraguay is now final. Decree number 10780 - # http://www.presidencia.gov.py/uploads/pdf/presidencia-3b86ff4b691c79d4f5927ca964922ec74772ce857c02ca054a52a37b49afc7fb.pdf -+# From Carlos Raul Perasso (2014-02-28): -+# Decree 1264 can be found at: -+# http://www.presidencia.gov.py/archivos/documentos/DECRETO1264_ey9r8zai.pdf - Rule Para 2013 max - Mar Sun>=22 0:00 0 - - - # Zone NAME GMTOFF RULES FORMAT [UNTIL] -@@ -1689,18 +1699,19 @@ - Zone America/Port_of_Spain -4:06:04 - LMT 1912 Mar 2 - -4:00 - AST - -+# These all agree with Trinidad and Tobago since 1970. - Link America/Port_of_Spain America/Anguilla - Link America/Port_of_Spain America/Dominica - Link America/Port_of_Spain America/Grenada - Link America/Port_of_Spain America/Guadeloupe --Link America/Port_of_Spain America/Marigot -+Link America/Port_of_Spain America/Marigot # St Martin (French part) - Link America/Port_of_Spain America/Montserrat - Link America/Port_of_Spain America/St_Barthelemy --Link America/Port_of_Spain America/St_Kitts -+Link America/Port_of_Spain America/St_Kitts # St Kitts & Nevis - Link America/Port_of_Spain America/St_Lucia --Link America/Port_of_Spain America/St_Thomas -+Link America/Port_of_Spain America/St_Thomas # Virgin Islands (US) - Link America/Port_of_Spain America/St_Vincent --Link America/Port_of_Spain America/Tortola -+Link America/Port_of_Spain America/Tortola # Virgin Islands (UK) - - # Uruguay - # From Paul Eggert (1993-11-18): ---- jdk/make/data/tzdata/zone.tab Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/make/data/tzdata/zone.tab Tue Jun 03 14:19:36 2014 -0700 -@@ -74,6 +74,7 @@ - AQ -7824+10654 Antarctica/Vostok Vostok Station, Lake Vostok - AQ -6640+14001 Antarctica/DumontDUrville Dumont-d'Urville Station, Terre Adelie - AQ -690022+0393524 Antarctica/Syowa Syowa Station, E Ongul I -+AQ -720041+0023206 Antarctica/Troll Troll Station, Queen Maud Land - AR -3436-05827 America/Argentina/Buenos_Aires Buenos Aires (BA, CF) - AR -3124-06411 America/Argentina/Cordoba most locations (CB, CC, CN, ER, FM, MN, SE, SF) - AR -2447-06525 America/Argentina/Salta (SA, LP, NQ, RN) -@@ -366,6 +367,7 @@ - RU +5545+03735 Europe/Moscow Moscow+00 - west Russia - RU +4844+04425 Europe/Volgograd Moscow+00 - Caspian Sea - RU +5312+05009 Europe/Samara Moscow+00 - Samara, Udmurtia -+RU +4457+03406 Europe/Simferopol Moscow+00 - Crimea - RU +5651+06036 Asia/Yekaterinburg Moscow+02 - Urals - RU +5500+07324 Asia/Omsk Moscow+03 - west Siberia - RU +5502+08255 Asia/Novosibirsk Moscow+03 - Novosibirsk -@@ -421,7 +423,6 @@ - UA +5026+03031 Europe/Kiev most locations - UA +4837+02218 Europe/Uzhgorod Ruthenia - UA +4750+03510 Europe/Zaporozhye Zaporozh'ye, E Lugansk / Zaporizhia, E Luhansk --UA +4457+03406 Europe/Simferopol central Crimea - UG +0019+03225 Africa/Kampala - UM +1645-16931 Pacific/Johnston Johnston Atoll - UM +2813-17722 Pacific/Midway Midway Islands ---- jdk/make/mapfiles/libsunec/mapfile-vers Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/make/mapfiles/libsunec/mapfile-vers Tue Jun 03 14:19:36 2014 -0700 -@@ -1,5 +1,5 @@ - # --# Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved. -+# Copyright (c) 2009, 2014, Oracle and/or its affiliates. All rights reserved. - # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - # - # This code is free software; you can redistribute it and/or modify it -@@ -28,10 +28,9 @@ - SUNWprivate_1.1 { - global: - Java_sun_security_ec_ECKeyPairGenerator_generateECKeyPair; -- Java_sun_security_ec_ECKeyPairGenerator_getEncodedBytes; -- Java_sun_security_ec_ECDSASignature_signDigest; -- Java_sun_security_ec_ECDSASignature_verifySignedDigest; -- Java_sun_security_ec_ECDHKeyAgreement_deriveKey; -+ Java_sun_security_ec_ECDSASignature_signDigest; -+ Java_sun_security_ec_ECDSASignature_verifySignedDigest; -+ Java_sun_security_ec_ECDHKeyAgreement_deriveKey; - local: - *; - }; ---- jdk/make/profile-includes.txt Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/make/profile-includes.txt Tue Jun 03 14:19:36 2014 -0700 -@@ -73,6 +73,7 @@ - rt.jar \ - security/US_export_policy.jar \ - security/blacklist \ -+ security/blacklisted.certs \ - security/cacerts \ - security/java.policy \ - security/java.security \ ---- jdk/src/macosx/native/sun/awt/AWTWindow.m Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/src/macosx/native/sun/awt/AWTWindow.m Tue Jun 03 14:19:36 2014 -0700 -@@ -261,7 +261,8 @@ - - // returns id for the topmost window under mouse - + (NSInteger) getTopmostWindowUnderMouseID { -- -+ NSInteger result = -1; -+ - NSRect screenRect = [[NSScreen mainScreen] frame]; - NSPoint nsMouseLocation = [NSEvent mouseLocation]; - CGPoint cgMouseLocation = CGPointMake(nsMouseLocation.x, screenRect.size.height - nsMouseLocation.y); -@@ -274,11 +275,13 @@ - CGRect rect; - CGRectMakeWithDictionaryRepresentation((CFDictionaryRef)[window objectForKey:(id)kCGWindowBounds], &rect); - if (CGRectContainsPoint(rect, cgMouseLocation)) { -- return [[window objectForKey:(id)kCGWindowNumber] integerValue]; -+ result = [[window objectForKey:(id)kCGWindowNumber] integerValue]; -+ break; - } - } - } -- return -1; -+ [windows release]; -+ return result; - } - - // checks that this window is under the mouse cursor and this point is not overlapped by others windows ---- jdk/src/macosx/native/sun/awt/CGraphicsDevice.m Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/src/macosx/native/sun/awt/CGraphicsDevice.m Tue Jun 03 14:19:36 2014 -0700 -@@ -66,7 +66,8 @@ - CFArrayAppendValue(validModes, cRef); - } - } -- -+ CFRelease(allModes); -+ - CGDisplayModeRef currentMode = CGDisplayCopyDisplayMode(displayID); - - BOOL containsCurrentMode = NO; -@@ -81,6 +82,7 @@ - if (!containsCurrentMode) { - CFArrayAppendValue(validModes, currentMode); - } -+ CGDisplayModeRelease(currentMode); - - return validModes; - } -@@ -235,17 +237,19 @@ - { - JNF_COCOA_ENTER(env); - CFArrayRef allModes = getAllValidDisplayModes(displayID); -- - CGDisplayModeRef closestMatch = getBestModeForParameters(allModes, (int)w, (int)h, (int)bpp, (int)refrate); -+ - __block CGError retCode = kCGErrorSuccess; - if (closestMatch != NULL) { -- [JNFRunLoop performOnMainThreadWaiting:YES withBlock:^(){ -+ CGDisplayModeRetain(closestMatch); -+ [ThreadUtilities performOnMainThreadWaiting:YES block:^(){ - CGDisplayConfigRef config; - retCode = CGBeginDisplayConfiguration(&config); - if (retCode == kCGErrorSuccess) { - CGConfigureDisplayWithDisplayMode(config, displayID, closestMatch, NULL); - retCode = CGCompleteDisplayConfiguration(config, kCGConfigureForAppOnly); - } -+ CGDisplayModeRelease(closestMatch); - }]; - } else { - [JNFException raise:env as:kIllegalArgumentException reason:"Invalid display mode"]; -@@ -253,8 +257,7 @@ - - if (retCode != kCGErrorSuccess){ - [JNFException raise:env as:kIllegalArgumentException reason:"Unable to set display mode!"]; -- } -- -+ } - CFRelease(allModes); - JNF_COCOA_EXIT(env); - } ---- jdk/src/share/classes/com/sun/jmx/remote/security/SubjectDelegator.java Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/src/share/classes/com/sun/jmx/remote/security/SubjectDelegator.java Tue Jun 03 14:19:36 2014 -0700 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -34,22 +34,14 @@ - - import javax.management.remote.SubjectDelegationPermission; - --import com.sun.jmx.remote.util.CacheMap; --import java.util.ArrayList; --import java.util.Collection; -+import java.util.*; - - public class SubjectDelegator { -- private static final int PRINCIPALS_CACHE_SIZE = 10; -- private static final int ACC_CACHE_SIZE = 10; -- -- private CacheMap<Subject, Principal[]> principalsCache; -- private CacheMap<Subject, AccessControlContext> accCache; -- - /* Return the AccessControlContext appropriate to execute an - operation on behalf of the delegatedSubject. If the - authenticatedAccessControlContext does not have permission to - delegate to that subject, throw SecurityException. */ -- public synchronized AccessControlContext -+ public AccessControlContext - delegatedContext(AccessControlContext authenticatedACC, - Subject delegatedSubject, - boolean removeCallerContext) -@@ -58,56 +50,14 @@ - if (System.getSecurityManager() != null && authenticatedACC == null) { - throw new SecurityException("Illegal AccessControlContext: null"); - } -- if (principalsCache == null || accCache == null) { -- principalsCache = -- new CacheMap<>(PRINCIPALS_CACHE_SIZE); -- accCache = -- new CacheMap<>(ACC_CACHE_SIZE); -- } -- -- // Retrieve the principals for the given -- // delegated subject from the cache -- // -- Principal[] delegatedPrincipals = principalsCache.get(delegatedSubject); -- -- // Convert the set of principals stored in the -- // delegated subject into an array of principals -- // and store it in the cache -- // -- if (delegatedPrincipals == null) { -- delegatedPrincipals = -- delegatedSubject.getPrincipals().toArray(new Principal[0]); -- principalsCache.put(delegatedSubject, delegatedPrincipals); -- } -- -- // Retrieve the access control context for the -- // given delegated subject from the cache -- // -- AccessControlContext delegatedACC = accCache.get(delegatedSubject); -- -- // Build the access control context to be used -- // when executing code as the delegated subject -- // and store it in the cache -- // -- if (delegatedACC == null) { -- if (removeCallerContext) { -- delegatedACC = -- JMXSubjectDomainCombiner.getDomainCombinerContext( -- delegatedSubject); -- } else { -- delegatedACC = -- JMXSubjectDomainCombiner.getContext(delegatedSubject); -- } -- accCache.put(delegatedSubject, delegatedACC); -- } - - // Check if the subject delegation permission allows the - // authenticated subject to assume the identity of each - // principal in the delegated subject - // -- final Principal[] dp = delegatedPrincipals; -- final Collection<Permission> permissions = new ArrayList<>(dp.length); -- for(Principal p : dp) { -+ Collection<Principal> ps = getSubjectPrincipals(delegatedSubject); -+ final Collection<Permission> permissions = new ArrayList<>(ps.size()); -+ for(Principal p : ps) { - final String pname = p.getClass().getName() + "." + p.getName(); - permissions.add(new SubjectDelegationPermission(pname)); - } -@@ -122,7 +72,15 @@ - }; - AccessController.doPrivileged(action, authenticatedACC); - -- return delegatedACC; -+ return getDelegatedAcc(delegatedSubject, removeCallerContext); -+ } -+ -+ private AccessControlContext getDelegatedAcc(Subject delegatedSubject, boolean removeCallerContext) { -+ if (removeCallerContext) { -+ return JMXSubjectDomainCombiner.getDomainCombinerContext(delegatedSubject); -+ } else { -+ return JMXSubjectDomainCombiner.getContext(delegatedSubject); -+ } - } - - /** -@@ -137,11 +95,9 @@ - public static synchronized boolean - checkRemoveCallerContext(Subject subject) { - try { -- final Principal[] dp = -- subject.getPrincipals().toArray(new Principal[0]); -- for (int i = 0 ; i < dp.length ; i++) { -+ for (Principal p : getSubjectPrincipals(subject)) { - final String pname = -- dp[i].getClass().getName() + "." + dp[i].getName(); -+ p.getClass().getName() + "." + p.getName(); - final Permission sdp = - new SubjectDelegationPermission(pname); - AccessController.checkPermission(sdp); -@@ -151,4 +107,19 @@ - } - return true; - } -+ -+ /** -+ * Retrieves the {@linkplain Subject} principals -+ * @param subject The subject -+ * @return If the {@code Subject} is immutable it will return the principals directly. -+ * If the {@code Subject} is mutable it will create an unmodifiable copy. -+ */ -+ private static Collection<Principal> getSubjectPrincipals(Subject subject) { -+ if (subject.isReadOnly()) { -+ return subject.getPrincipals(); -+ } -+ -+ List<Principal> principals = Arrays.asList(subject.getPrincipals().toArray(new Principal[0])); -+ return Collections.unmodifiableList(principals); -+ } - } ---- jdk/src/share/classes/com/sun/jmx/remote/util/CacheMap.java Wed Mar 12 11:58:14 2014 +0000 -+++ /dev/null Thu Jan 01 00:00:00 1970 +0000 -@@ -1,121 +0,0 @@ --/* -- * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved. -- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -- * -- * This code is free software; you can redistribute it and/or modify it -- * under the terms of the GNU General Public License version 2 only, as -- * published by the Free Software Foundation. Oracle designates this -- * particular file as subject to the "Classpath" exception as provided -- * by Oracle in the LICENSE file that accompanied this code. -- * -- * This code is distributed in the hope that it will be useful, but WITHOUT -- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -- * version 2 for more details (a copy is included in the LICENSE file that -- * accompanied this code). -- * -- * You should have received a copy of the GNU General Public License version -- * 2 along with this work; if not, write to the Free Software Foundation, -- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -- * -- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -- * or visit www.oracle.com if you need additional information or have any -- * questions. -- */ -- --package com.sun.jmx.remote.util; -- --import java.lang.ref.SoftReference; --import java.util.Iterator; --import java.util.LinkedList; --import java.util.List; --import java.util.WeakHashMap; -- --import com.sun.jmx.mbeanserver.Util; -- --/** -- * <p>Like WeakHashMap, except that the keys of the <em>n</em> most -- * recently-accessed entries are kept as {@link SoftReference soft -- * references}. Accessing an element means creating it, or retrieving -- * it with {@link #get(Object) get}. Because these entries are kept -- * with soft references, they will tend to remain even if their keys -- * are not referenced elsewhere. But if memory is short, they will -- * be removed.</p> -- */ --public class CacheMap<K, V> extends WeakHashMap<K, V> { -- /** -- * <p>Create a <code>CacheMap</code> that can keep up to -- * <code>nSoftReferences</code> as soft references.</p> -- * -- * @param nSoftReferences Maximum number of keys to keep as soft -- * references. Access times for {@link #get(Object) get} and -- * {@link #put(Object, Object) put} have a component that scales -- * linearly with <code>nSoftReferences</code>, so this value -- * should not be too great. -- * -- * @throws IllegalArgumentException if -- * <code>nSoftReferences</code> is negative. -- */ -- public CacheMap(int nSoftReferences) { -- if (nSoftReferences < 0) { -- throw new IllegalArgumentException("nSoftReferences = " + -- nSoftReferences); -- } -- this.nSoftReferences = nSoftReferences; -- } -- -- public V put(K key, V value) { -- cache(key); -- return super.put(key, value); -- } -- -- public V get(Object key) { -- cache(Util.<K>cast(key)); -- return super.get(key); -- } -- -- /* We don't override remove(Object) or try to do something with -- the map's iterators to detect removal. So we may keep useless -- entries in the soft reference list for keys that have since -- been removed. The assumption is that entries are added to the -- cache but never removed. But the behavior is not wrong if -- they are in fact removed -- the caching is just less -- performant. */ -- -- private void cache(K key) { -- Iterator<SoftReference<K>> it = cache.iterator(); -- while (it.hasNext()) { -- SoftReference<K> sref = it.next(); -- K key1 = sref.get(); -- if (key1 == null) -- it.remove(); -- else if (key.equals(key1)) { -- // Move this element to the head of the LRU list -- it.remove(); -- cache.add(0, sref); -- return; -- } -- } -- -- int size = cache.size(); -- if (size == nSoftReferences) { -- if (size == 0) -- return; // degenerate case, equivalent to WeakHashMap -- it.remove(); -- } -- -- cache.add(0, new SoftReference<K>(key)); -- } -- -- /* List of soft references for the most-recently referenced keys. -- The list is in most-recently-used order, i.e. the first element -- is the most-recently referenced key. There are never more than -- nSoftReferences elements of this list. -- -- If we didn't care about J2SE 1.3 compatibility, we could use -- LinkedHashSet in conjunction with a subclass of SoftReference -- whose equals and hashCode reflect the referent. */ -- private final LinkedList<SoftReference<K>> cache = -- new LinkedList<SoftReference<K>>(); -- private final int nSoftReferences; --} ---- jdk/src/share/classes/com/sun/security/sasl/CramMD5Base.java Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/src/share/classes/com/sun/security/sasl/CramMD5Base.java Tue Jun 03 14:19:36 2014 -0700 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -32,6 +32,7 @@ - import java.security.NoSuchAlgorithmException; - import java.security.MessageDigest; - -+import java.util.Arrays; - import java.util.logging.Logger; - - /** -@@ -159,7 +160,7 @@ - MessageDigest md5 = MessageDigest.getInstance("MD5"); - - /* digest the key if longer than 64 bytes */ -- if (key.length > 64) { -+ if (key.length > MD5_BLOCKSIZE) { - key = md5.digest(key); - } - -@@ -169,13 +170,9 @@ - int i; - - /* store key in pads */ -- for (i = 0; i < MD5_BLOCKSIZE; i++) { -- for ( ; i < key.length; i++) { -- ipad[i] = key[i]; -- opad[i] = key[i]; -- } -- ipad[i] = 0x00; -- opad[i] = 0x00; -+ for (i = 0; i < key.length; i++) { -+ ipad[i] = key[i]; -+ opad[i] = key[i]; - } - - /* XOR key with pads */ -@@ -207,6 +204,11 @@ - } - } - -+ Arrays.fill(ipad, (byte)0); -+ Arrays.fill(opad, (byte)0); -+ ipad = null; -+ opad = null; -+ - return (digestString.toString()); - } - ---- jdk/src/share/classes/java/lang/ProcessBuilder.java Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/src/share/classes/java/lang/ProcessBuilder.java Tue Jun 03 14:19:36 2014 -0700 -@@ -1019,6 +1019,12 @@ - - String dir = directory == null ? null : directory.toString(); - -+ for (int i = 1; i < cmdarray.length; i++) { -+ if (cmdarray[i].indexOf('\u0000') >= 0) { -+ throw new IOException("invalid null character in command"); -+ } -+ } -+ - try { - return ProcessImpl.start(cmdarray, - environment, ---- jdk/src/share/classes/java/lang/invoke/MethodHandles.java Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/src/share/classes/java/lang/invoke/MethodHandles.java Tue Jun 03 14:19:36 2014 -0700 -@@ -39,7 +39,9 @@ - import sun.security.util.SecurityConstants; - import static java.lang.invoke.MethodHandleStatics.*; - import static java.lang.invoke.MethodHandleNatives.Constants.*; -+ - import java.util.concurrent.ConcurrentHashMap; -+ - import sun.security.util.SecurityConstants; - - /** -@@ -1504,6 +1506,10 @@ - // that is *not* the bytecode behavior. - mods ^= Modifier.PROTECTED | Modifier.PUBLIC; - } -+ if (Modifier.isProtected(mods) && refKind == REF_newInvokeSpecial) { -+ // cannot "new" a protected ctor in a different package -+ mods ^= Modifier.PROTECTED; -+ } - if (Modifier.isFinal(mods) && - MethodHandleNatives.refKindIsSetter(refKind)) - throw m.makeAccessException("unexpected set of a final field", this); ---- jdk/src/share/classes/java/lang/reflect/Proxy.java Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/src/share/classes/java/lang/reflect/Proxy.java Tue Jun 03 14:19:36 2014 -0700 -@@ -362,12 +362,13 @@ - Class<?>... interfaces) - throws IllegalArgumentException - { -- SecurityManager sm = System.getSecurityManager(); -+ final Class<?>[] intfs = interfaces.clone(); -+ final SecurityManager sm = System.getSecurityManager(); - if (sm != null) { -- checkProxyAccess(Reflection.getCallerClass(), loader, interfaces); -+ checkProxyAccess(Reflection.getCallerClass(), loader, intfs); - } - -- return getProxyClass0(loader, interfaces); -+ return getProxyClass0(loader, intfs); - } - - /* -@@ -706,15 +707,16 @@ - { - Objects.requireNonNull(h); - -+ final Class<?>[] intfs = interfaces.clone(); - final SecurityManager sm = System.getSecurityManager(); - if (sm != null) { -- checkProxyAccess(Reflection.getCallerClass(), loader, interfaces); -+ checkProxyAccess(Reflection.getCallerClass(), loader, intfs); - } - - /* - * Look up or generate the designated proxy class. - */ -- Class<?> cl = getProxyClass0(loader, interfaces); -+ Class<?> cl = getProxyClass0(loader, intfs); - - /* - * Invoke its constructor with the designated invocation handler. ---- jdk/src/share/classes/java/security/Provider.java Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/src/share/classes/java/security/Provider.java Tue Jun 03 14:19:36 2014 -0700 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 1996, 2014, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -1372,7 +1372,7 @@ - * <p>This class defines the methods {@link #supportsParameter - * supportsParameter()} and {@link #newInstance newInstance()} - * which are used by the Java security framework when it searches for -- * suitable services and instantes them. The valid arguments to those -+ * suitable services and instantiates them. The valid arguments to those - * methods depend on the type of service. For the service types defined - * within Java SE, see the - * <a href="../../../technotes/guides/security/crypto/CryptoSpec.html"> -@@ -1562,7 +1562,7 @@ - * - * @throws InvalidParameterException if the value of - * constructorParameter is invalid for this type of service. -- * @throws NoSuchAlgorithmException if instantation failed for -+ * @throws NoSuchAlgorithmException if instantiation failed for - * any other reason. - */ - public Object newInstance(Object constructorParameter) -@@ -1590,7 +1590,9 @@ - + " engines"); - } - Class<?> clazz = getImplClass(); -- return clazz.newInstance(); -+ Class<?>[] empty = {}; -+ Constructor<?> con = clazz.getConstructor(empty); -+ return con.newInstance(); - } else { - Class<?> paramClass = cap.getConstructorParameterClass(); - if (constructorParameter != null) { -@@ -1633,13 +1635,18 @@ - } else { - clazz = cl.loadClass(className); - } -+ if (!Modifier.isPublic(clazz.getModifiers())) { -+ throw new NoSuchAlgorithmException -+ ("class configured for " + type + " (provider: " + -+ provider.getName() + ") is not public."); -+ } - classRef = new WeakReference<Class<?>>(clazz); - } - return clazz; - } catch (ClassNotFoundException e) { - throw new NoSuchAlgorithmException -- ("class configured for " + type + "(provider: " + -- provider.getName() + ")" + "cannot be found.", e); -+ ("class configured for " + type + " (provider: " + -+ provider.getName() + ") cannot be found.", e); - } - } - -@@ -1652,15 +1659,21 @@ - throws Exception { - Class<?> clazz = getImplClass(); - if (constructorParameter == null) { -- Object o = clazz.newInstance(); -- return o; -+ // create instance with public no-arg constructor if it exists -+ try { -+ Class<?>[] empty = {}; -+ Constructor<?> con = clazz.getConstructor(empty); -+ return con.newInstance(); -+ } catch (NoSuchMethodException e) { -+ throw new NoSuchAlgorithmException("No public no-arg " -+ + "constructor found in class " + className); -+ } - } - Class<?> argClass = constructorParameter.getClass(); - Constructor[] cons = clazz.getConstructors(); - // find first public constructor that can take the - // argument as parameter -- for (int i = 0; i < cons.length; i++) { -- Constructor<?> con = cons[i]; -+ for (Constructor<?> con : cons) { - Class<?>[] paramTypes = con.getParameterTypes(); - if (paramTypes.length != 1) { - continue; -@@ -1668,10 +1681,9 @@ - if (paramTypes[0].isAssignableFrom(argClass) == false) { - continue; - } -- Object o = con.newInstance(new Object[] {constructorParameter}); -- return o; -+ return con.newInstance(constructorParameter); - } -- throw new NoSuchAlgorithmException("No constructor matching " -+ throw new NoSuchAlgorithmException("No public constructor matching " - + argClass.getName() + " found in class " + className); - } - ---- jdk/src/share/classes/java/util/concurrent/atomic/AtomicReferenceFieldUpdater.java Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/src/share/classes/java/util/concurrent/atomic/AtomicReferenceFieldUpdater.java Tue Jun 03 14:19:36 2014 -0700 -@@ -334,6 +334,8 @@ - - if (vclass != fieldClass) - throw new ClassCastException(); -+ if (vclass.isPrimitive()) -+ throw new IllegalArgumentException("Must be reference type"); - - if (!Modifier.isVolatile(modifiers)) - throw new IllegalArgumentException("Must be volatile type"); ---- jdk/src/share/classes/javax/swing/filechooser/FileSystemView.java Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/src/share/classes/javax/swing/filechooser/FileSystemView.java Tue Jun 03 14:19:36 2014 -0700 -@@ -718,7 +718,8 @@ - * @return the Desktop folder. - */ - public File getHomeDirectory() { -- return getRoots()[0]; -+ File[] roots = getRoots(); -+ return (roots.length == 0) ? null : roots[0]; - } - - /** ---- jdk/src/share/classes/sun/awt/AppContext.java Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/src/share/classes/sun/awt/AppContext.java Tue Jun 03 14:19:36 2014 -0700 -@@ -329,6 +329,20 @@ - while (context == null) { - threadGroup = threadGroup.getParent(); - if (threadGroup == null) { -+ // We've got up to the root thread group and did not find an AppContext -+ // Try to get it from the security manager -+ SecurityManager securityManager = System.getSecurityManager(); -+ if (securityManager != null) { -+ ThreadGroup smThreadGroup = securityManager.getThreadGroup(); -+ if (smThreadGroup != null) { -+ /* -+ * If we get this far then it's likely that -+ * the ThreadGroup does not actually belong -+ * to the applet, so do not cache it. -+ */ -+ return threadGroup2appContext.get(smThreadGroup); -+ } -+ } - return null; - } - context = threadGroup2appContext.get(threadGroup); ---- jdk/src/share/classes/sun/awt/FontConfiguration.java Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/src/share/classes/sun/awt/FontConfiguration.java Tue Jun 03 14:19:36 2014 -0700 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 1996, 2014, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -867,7 +867,7 @@ - return descriptors; - } - -- private FontDescriptor[] buildFontDescriptors(int fontIndex, int styleIndex) { -+ protected FontDescriptor[] buildFontDescriptors(int fontIndex, int styleIndex) { - String fontName = fontNames[fontIndex]; - String styleName = styleNames[styleIndex]; - ---- jdk/src/share/classes/sun/security/ec/ECKeyPairGenerator.java Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/src/share/classes/sun/security/ec/ECKeyPairGenerator.java Tue Jun 03 14:19:36 2014 -0700 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 2009, 2014, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -125,19 +125,18 @@ - - try { - -- long[] handles = generateECKeyPair(keySize, encodedParams, seed); -+ Object[] keyBytes = generateECKeyPair(keySize, encodedParams, seed); - - // The 'params' object supplied above is equivalent to the native - // one so there is no need to fetch it. -- -- // handles[0] points to the native private key -- BigInteger s = new BigInteger(1, getEncodedBytes(handles[0])); -+ // keyBytes[0] is the encoding of the native private key -+ BigInteger s = new BigInteger(1, (byte[])keyBytes[0]); - - PrivateKey privateKey = - new ECPrivateKeyImpl(s, (ECParameterSpec)params); - -- // handles[1] points to the native public key -- ECPoint w = ECUtil.decodePoint(getEncodedBytes(handles[1]), -+ // keyBytes[1] is the encoding of the native public key -+ ECPoint w = ECUtil.decodePoint((byte[])keyBytes[1], - ((ECParameterSpec)params).getCurve()); - PublicKey publicKey = - new ECPublicKeyImpl(w, (ECParameterSpec)params); -@@ -162,14 +161,9 @@ - } - - /* -- * Generates the keypair and returns a 2-element array of handles. -- * The first handle points to the private key, the second to the public key. -+ * Generates the keypair and returns a 2-element array of encoding bytes. -+ * The first one is for the private key, the second for the public key. - */ -- private static native long[] generateECKeyPair(int keySize, -+ private static native Object[] generateECKeyPair(int keySize, - byte[] encodedParams, byte[] seed) throws GeneralSecurityException; -- -- /* -- * Extracts the encoded key data using the supplied handle. -- */ -- private static native byte[] getEncodedBytes(long handle); - } ---- jdk/src/share/classes/sun/security/rsa/RSACore.java Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/src/share/classes/sun/security/rsa/RSACore.java Tue Jun 03 14:19:36 2014 -0700 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -50,6 +50,15 @@ - */ - public final class RSACore { - -+ // globally enable/disable use of blinding -+ private final static boolean ENABLE_BLINDING = true; -+ -+ // cache for blinding parameters. Map<BigInteger, BlindingParameters> -+ // use a weak hashmap so that cached values are automatically cleared -+ // when the modulus is GC'ed -+ private final static Map<BigInteger, BlindingParameters> -+ blindingCache = new WeakHashMap<>(); -+ - private RSACore() { - // empty - } -@@ -100,12 +109,12 @@ - if (key instanceof RSAPrivateCrtKey) { - return crtCrypt(msg, (RSAPrivateCrtKey)key); - } else { -- return crypt(msg, key.getModulus(), key.getPrivateExponent()); -+ return priCrypt(msg, key.getModulus(), key.getPrivateExponent()); - } - } - - /** -- * RSA public key ops and non-CRT private key ops. Simple modPow(). -+ * RSA public key ops. Simple modPow(). - */ - private static byte[] crypt(byte[] msg, BigInteger n, BigInteger exp) - throws BadPaddingException { -@@ -115,22 +124,29 @@ - } - - /** -+ * RSA non-CRT private key operations. -+ */ -+ private static byte[] priCrypt(byte[] msg, BigInteger n, BigInteger exp) -+ throws BadPaddingException { -+ -+ BigInteger c = parseMsg(msg, n); -+ BlindingRandomPair brp = null; -+ BigInteger m; -+ if (ENABLE_BLINDING) { -+ brp = getBlindingRandomPair(null, exp, n); -+ c = c.multiply(brp.u).mod(n); -+ m = c.modPow(exp, n); -+ m = m.multiply(brp.v).mod(n); -+ } else { -+ m = c.modPow(exp, n); -+ } -+ -+ return toByteArray(m, getByteLength(n)); -+ } -+ -+ /** - * RSA private key operations with CRT. Algorithm and variable naming - * are taken from PKCS#1 v2.1, section 5.1.2. -- * -- * The only difference is the addition of blinding to twart timing attacks. -- * This is described in the RSA Bulletin#2 (Jan 96) among other places. -- * This means instead of implementing RSA as -- * m = c ^ d mod n (or RSA in CRT variant) -- * we do -- * r = random(0, n-1) -- * c' = c * r^e mod n -- * m' = c' ^ d mod n (or RSA in CRT variant) -- * m = m' * r^-1 mod n (where r^-1 is the modular inverse of r mod n) -- * This works because r^(e*d) * r^-1 = r * r^-1 = 1 (all mod n) -- * -- * We do not generate new blinding parameters for each operation but reuse -- * them BLINDING_MAX_REUSE times (see definition below). - */ - private static byte[] crtCrypt(byte[] msg, RSAPrivateCrtKey key) - throws BadPaddingException { -@@ -141,13 +157,13 @@ - BigInteger dP = key.getPrimeExponentP(); - BigInteger dQ = key.getPrimeExponentQ(); - BigInteger qInv = key.getCrtCoefficient(); -+ BigInteger e = key.getPublicExponent(); -+ BigInteger d = key.getPrivateExponent(); - -- BlindingParameters params; -+ BlindingRandomPair brp; - if (ENABLE_BLINDING) { -- params = getBlindingParameters(key); -- c = c.multiply(params.re).mod(n); -- } else { -- params = null; -+ brp = getBlindingRandomPair(e, d, n); -+ c = c.multiply(brp.u).mod(n); - } - - // m1 = c ^ dP mod p -@@ -165,8 +181,8 @@ - // m = m2 + q * h - BigInteger m = h.multiply(q).add(m2); - -- if (params != null) { -- m = m.multiply(params.rInv).mod(n); -+ if (ENABLE_BLINDING) { -+ m = m.multiply(brp.v).mod(n); - } - - return toByteArray(m, getByteLength(n)); -@@ -208,82 +224,217 @@ - return t; - } - -- // globally enable/disable use of blinding -- private final static boolean ENABLE_BLINDING = true; -+ /** -+ * Parameters (u,v) for RSA Blinding. This is described in the RSA -+ * Bulletin#2 (Jan 96) and other places: -+ * -+ * ftp://ftp.rsa.com/pub/pdfs/bull-2.pdf -+ * -+ * The standard RSA Blinding decryption requires the public key exponent -+ * (e) and modulus (n), and converts ciphertext (c) to plaintext (p). -+ * -+ * Before the modular exponentiation operation, the input message should -+ * be multiplied by (u (mod n)), and afterward the result is corrected -+ * by multiplying with (v (mod n)). The system should reject messages -+ * equal to (0 (mod n)). That is: -+ * -+ * 1. Generate r between 0 and n-1, relatively prime to n. -+ * 2. Compute x = (c*u) mod n -+ * 3. Compute y = (x^d) mod n -+ * 4. Compute p = (y*v) mod n -+ * -+ * The Java APIs allows for either standard RSAPrivateKey or -+ * RSAPrivateCrtKey RSA keys. -+ * -+ * If the public exponent is available to us (e.g. RSAPrivateCrtKey), -+ * choose a random r, then let (u, v): -+ * -+ * u = r ^ e mod n -+ * v = r ^ (-1) mod n -+ * -+ * The proof follows: -+ * -+ * p = (((c * u) ^ d mod n) * v) mod n -+ * = ((c ^ d) * (u ^ d) * v) mod n -+ * = ((c ^ d) * (r ^ e) ^ d) * (r ^ (-1))) mod n -+ * = ((c ^ d) * (r ^ (e * d)) * (r ^ (-1))) mod n -+ * = ((c ^ d) * (r ^ 1) * (r ^ (-1))) mod n (see below) -+ * = (c ^ d) mod n -+ * -+ * because in RSA cryptosystem, d is the multiplicative inverse of e: -+ * -+ * (r^(e * d)) mod n -+ * = (r ^ 1) mod n -+ * = r mod n -+ * -+ * However, if the public exponent is not available (e.g. RSAPrivateKey), -+ * we mitigate the timing issue by using a similar random number blinding -+ * approach using the private key: -+ * -+ * u = r -+ * v = ((r ^ (-1)) ^ d) mod n -+ * -+ * This returns the same plaintext because: -+ * -+ * p = (((c * u) ^ d mod n) * v) mod n -+ * = ((c ^ d) * (u ^ d) * v) mod n -+ * = ((c ^ d) * (u ^ d) * ((u ^ (-1)) ^d)) mod n -+ * = (c ^ d) mod n -+ * -+ * Computing inverses mod n and random number generation is slow, so -+ * it is often not practical to generate a new random (u, v) pair for -+ * each new exponentiation. The calculation of parameters might even be -+ * subject to timing attacks. However, (u, v) pairs should not be -+ * reused since they themselves might be compromised by timing attacks, -+ * leaving the private exponent vulnerable. An efficient solution to -+ * this problem is update u and v before each modular exponentiation -+ * step by computing: -+ * -+ * u = u ^ 2 -+ * v = v ^ 2 -+ * -+ * The total performance cost is small. -+ */ -+ private final static class BlindingRandomPair { -+ final BigInteger u; -+ final BigInteger v; - -- // maximum number of times that we will use a set of blinding parameters -- // value suggested by Paul Kocher (quoted by NSS) -- private final static int BLINDING_MAX_REUSE = 50; -- -- // cache for blinding parameters. Map<BigInteger, BlindingParameters> -- // use a weak hashmap so that cached values are automatically cleared -- // when the modulus is GC'ed -- private final static Map<BigInteger, BlindingParameters> blindingCache = -- new WeakHashMap<>(); -+ BlindingRandomPair(BigInteger u, BigInteger v) { -+ this.u = u; -+ this.v = v; -+ } -+ } - - /** - * Set of blinding parameters for a given RSA key. - * - * The RSA modulus is usually unique, so we index by modulus in -- * blindingCache. However, to protect against the unlikely case of two -- * keys sharing the same modulus, we also store the public exponent. -- * This means we cannot cache blinding parameters for multiple keys that -- * share the same modulus, but since sharing moduli is fundamentally broken -- * an insecure, this does not matter. -+ * {@code blindingCache}. However, to protect against the unlikely -+ * case of two keys sharing the same modulus, we also store the public -+ * or the private exponent. This means we cannot cache blinding -+ * parameters for multiple keys that share the same modulus, but -+ * since sharing moduli is fundamentally broken and insecure, this -+ * does not matter. - */ -- private static final class BlindingParameters { -- // e (RSA public exponent) -- final BigInteger e; -- // r ^ e mod n -- final BigInteger re; -- // inverse of r mod n -- final BigInteger rInv; -- // how many more times this parameter object can be used -- private volatile int remainingUses; -- BlindingParameters(BigInteger e, BigInteger re, BigInteger rInv) { -+ private final static class BlindingParameters { -+ private final static BigInteger BIG_TWO = BigInteger.valueOf(2L); -+ -+ // RSA public exponent -+ private final BigInteger e; -+ -+ // hash code of RSA private exponent -+ private final BigInteger d; -+ -+ // r ^ e mod n (CRT), or r mod n (Non-CRT) -+ private BigInteger u; -+ -+ // r ^ (-1) mod n (CRT) , or ((r ^ (-1)) ^ d) mod n (Non-CRT) -+ private BigInteger v; -+ -+ // e: the public exponent -+ // d: the private exponent -+ // n: the modulus -+ BlindingParameters(BigInteger e, BigInteger d, BigInteger n) { -+ this.u = null; -+ this.v = null; - this.e = e; -- this.re = re; -- this.rInv = rInv; -- // initialize remaining uses, subtract current use now -- remainingUses = BLINDING_MAX_REUSE - 1; -+ this.d = d; -+ -+ int len = n.bitLength(); -+ SecureRandom random = JCAUtil.getSecureRandom(); -+ u = new BigInteger(len, random).mod(n); -+ // Although the possibility is very much limited that u is zero -+ // or is not relatively prime to n, we still want to be careful -+ // about the special value. -+ // -+ // Secure random generation is expensive, try to use BigInteger.ONE -+ // this time if this new generated random number is zero or is not -+ // relatively prime to n. Next time, new generated secure random -+ // number will be used instead. -+ if (u.equals(BigInteger.ZERO)) { -+ u = BigInteger.ONE; // use 1 this time -+ } -+ -+ try { -+ // The call to BigInteger.modInverse() checks that u is -+ // relatively prime to n. Otherwise, ArithmeticException is -+ // thrown. -+ v = u.modInverse(n); -+ } catch (ArithmeticException ae) { -+ // if u is not relatively prime to n, use 1 this time -+ u = BigInteger.ONE; -+ v = BigInteger.ONE; -+ } -+ -+ if (e != null) { -+ u = u.modPow(e, n); // e: the public exponent -+ // u: random ^ e -+ // v: random ^ (-1) -+ } else { -+ v = v.modPow(d, n); // d: the private exponent -+ // u: random -+ // v: random ^ (-d) -+ } - } -- boolean valid(BigInteger e) { -- int k = remainingUses--; -- return (k > 0) && this.e.equals(e); -+ -+ // return null if need to reset the parameters -+ BlindingRandomPair getBlindingRandomPair( -+ BigInteger e, BigInteger d, BigInteger n) { -+ -+ if ((this.e != null && this.e.equals(e)) || -+ (this.d != null && this.d.equals(d))) { -+ -+ BlindingRandomPair brp = null; -+ synchronized (this) { -+ if (!u.equals(BigInteger.ZERO) && -+ !v.equals(BigInteger.ZERO)) { -+ -+ brp = new BlindingRandomPair(u, v); -+ if (u.compareTo(BigInteger.ONE) <= 0 || -+ v.compareTo(BigInteger.ONE) <= 0) { -+ -+ // need to reset the random pair next time -+ u = BigInteger.ZERO; -+ v = BigInteger.ZERO; -+ } else { -+ u = u.modPow(BIG_TWO, n); -+ v = v.modPow(BIG_TWO, n); -+ } -+ } // Otherwise, need to reset the random pair. -+ } -+ return brp; -+ } -+ -+ return null; - } - } - -- /** -- * Return valid RSA blinding parameters for the given private key. -- * Use cached parameters if available. If not, generate new parameters -- * and cache. -- */ -- private static BlindingParameters getBlindingParameters -- (RSAPrivateCrtKey key) { -- BigInteger modulus = key.getModulus(); -- BigInteger e = key.getPublicExponent(); -- BlindingParameters params; -- // we release the lock between get() and put() -- // that means threads might concurrently generate new blinding -- // parameters for the same modulus. this is only a slight waste -- // of cycles and seems preferable in terms of scalability -- // to locking out all threads while generating new parameters -+ private static BlindingRandomPair getBlindingRandomPair( -+ BigInteger e, BigInteger d, BigInteger n) { -+ -+ BlindingParameters bps = null; - synchronized (blindingCache) { -- params = blindingCache.get(modulus); -+ bps = blindingCache.get(n); - } -- if ((params != null) && params.valid(e)) { -- return params; -+ -+ if (bps == null) { -+ bps = new BlindingParameters(e, d, n); -+ synchronized (blindingCache) { -+ blindingCache.putIfAbsent(n, bps); -+ } - } -- int len = modulus.bitLength(); -- SecureRandom random = JCAUtil.getSecureRandom(); -- BigInteger r = new BigInteger(len, random).mod(modulus); -- BigInteger re = r.modPow(e, modulus); -- BigInteger rInv = r.modInverse(modulus); -- params = new BlindingParameters(e, re, rInv); -- synchronized (blindingCache) { -- blindingCache.put(modulus, params); -+ -+ BlindingRandomPair brp = bps.getBlindingRandomPair(e, d, n); -+ if (brp == null) { -+ // need to reset the blinding parameters -+ bps = new BlindingParameters(e, d, n); -+ synchronized (blindingCache) { -+ blindingCache.replace(n, bps); -+ } -+ brp = bps.getBlindingRandomPair(e, d, n); - } -- return params; -+ -+ return brp; - } - - } ---- jdk/src/share/classes/sun/security/util/KeyUtil.java Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/src/share/classes/sun/security/util/KeyUtil.java Tue Jun 03 14:19:36 2014 -0700 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -198,7 +198,16 @@ - "Diffie-Hellman public key is too large"); - } - -- // Don't bother to check against the y^q mod p if safe primes are used. -+ // y^q mod p == 1? -+ // Unable to perform this check as q is unknown in this circumstance. -+ -+ // p is expected to be prime. However, it is too expensive to check -+ // that p is prime. Instead, in order to mitigate the impact of -+ // non-prime values, we check that y is not a factor of p. -+ BigInteger r = p.remainder(y); -+ if (r.equals(BigInteger.ZERO)) { -+ throw new InvalidKeyException("Invalid Diffie-Hellman parameters"); -+ } - } - - /** ---- jdk/src/share/classes/sun/util/resources/TimeZoneNames.java Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/src/share/classes/sun/util/resources/TimeZoneNames.java Tue Jun 03 14:19:36 2014 -0700 -@@ -570,6 +570,9 @@ - {"Antarctica/Syowa", new String[] {"Syowa Time", "SYOT", - "Syowa Summer Time", "SYOST", - "Syowa Time", "SYOT"}}, -+ {"Antarctica/Troll", new String[] {"Coordinated Universal Time", "UTC", -+ "Central European Summer Time", "CEST", -+ "Troll Time", "ATT"}}, - {"Antarctica/Vostok", new String[] {"Vostok Time", "VOST", - "Vostok Summer Time", "VOSST", - "Vostok Time", "VOST"}}, -@@ -839,7 +842,7 @@ - "Samara Time", "SAMT"}}, - {"Europe/San_Marino", CET}, - {"Europe/Sarajevo", CET}, -- {"Europe/Simferopol", EET}, -+ {"Europe/Simferopol", MSK}, - {"Europe/Skopje", CET}, - {"Europe/Sofia", EET}, - {"Europe/Stockholm", CET}, ---- jdk/src/share/classes/sun/util/resources/de/TimeZoneNames_de.java Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/src/share/classes/sun/util/resources/de/TimeZoneNames_de.java Tue Jun 03 14:19:36 2014 -0700 -@@ -570,6 +570,9 @@ - {"Antarctica/Syowa", new String[] {"Syowa Zeit", "SYOT", - "Syowa Sommerzeit", "SYOST", - "Syowa Zeit", "SYOT"}}, -+ {"Antarctica/Troll", new String[] {"Koordinierte Universalzeit", "UTC", -+ "Mitteleurop\u00e4ische Sommerzeit", "MESZ", -+ "Troll Time", "ATT"}}, - {"Antarctica/Vostok", new String[] {"Vostok Zeit", "VOST", - "Vostok Sommerzeit", "VOSST", - "Vostok Zeit", "VOST"}}, -@@ -838,7 +841,7 @@ - "Samarische Zeit", "SAMT"}}, - {"Europe/San_Marino", CET}, - {"Europe/Sarajevo", CET}, -- {"Europe/Simferopol", EET}, -+ {"Europe/Simferopol", MSK}, - {"Europe/Skopje", CET}, - {"Europe/Sofia", EET}, - {"Europe/Stockholm", CET}, ---- jdk/src/share/classes/sun/util/resources/es/TimeZoneNames_es.java Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/src/share/classes/sun/util/resources/es/TimeZoneNames_es.java Tue Jun 03 14:19:36 2014 -0700 -@@ -570,6 +570,9 @@ - {"Antarctica/Syowa", new String[] {"Hora de Syowa", "SYOT", - "Hora de verano de Syowa", "SYOST", - "Hora de Syowa", "SYOT"}}, -+ {"Antarctica/Troll", new String[] {"Hora Universal Coordinada", "UTC", -+ "Hora de verano de Europa Central", "CEST", -+ "Troll Time", "ATT"}}, - {"Antarctica/Vostok", new String[] {"Hora de Vostok", "VOST", - "Hora de verano de Vostok", "VOSST", - "Hora de Vostok", "VOST"}}, -@@ -838,7 +841,7 @@ - "Hora de Samara", "SAMT"}}, - {"Europe/San_Marino", CET}, - {"Europe/Sarajevo", CET}, -- {"Europe/Simferopol", EET}, -+ {"Europe/Simferopol", MSK}, - {"Europe/Skopje", CET}, - {"Europe/Sofia", EET}, - {"Europe/Stockholm", CET}, ---- jdk/src/share/classes/sun/util/resources/fr/TimeZoneNames_fr.java Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/src/share/classes/sun/util/resources/fr/TimeZoneNames_fr.java Tue Jun 03 14:19:36 2014 -0700 -@@ -570,6 +570,9 @@ - {"Antarctica/Syowa", new String[] {"Heure de Syowa", "SYOT", - "Heure d'\u00e9t\u00e9 de Syowa", "SYOST", - "Heure de Syowa", "SYOT"}}, -+ {"Antarctica/Troll", new String[] {"Temps universel coordonn\u00e9", "UTC", -+ "Heure d'\u00e9t\u00e9 d'Europe centrale", "CEST", -+ "Troll Time", "ATT"}}, - {"Antarctica/Vostok", new String[] {"Heure de Vostok", "VOST", - "Heure d'\u00e9t\u00e9 de Vostok", "VOSST", - "Heure de Vostok", "VOST"}}, -@@ -838,7 +841,7 @@ - "Heure de Samara", "SAMT"}}, - {"Europe/San_Marino", CET}, - {"Europe/Sarajevo", CET}, -- {"Europe/Simferopol", EET}, -+ {"Europe/Simferopol", MSK}, - {"Europe/Skopje", CET}, - {"Europe/Sofia", EET}, - {"Europe/Stockholm", CET}, ---- jdk/src/share/classes/sun/util/resources/it/TimeZoneNames_it.java Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/src/share/classes/sun/util/resources/it/TimeZoneNames_it.java Tue Jun 03 14:19:36 2014 -0700 -@@ -570,6 +570,9 @@ - {"Antarctica/Syowa", new String[] {"Ora di Syowa", "SYOT", - "Ora estiva di Syowa", "SYOST", - "Ora di Syowa", "SYOT"}}, -+ {"Antarctica/Troll", new String[] {"Tempo universale coordinato", "UTC", -+ "Ora estiva dell'Europa centrale", "CEST", -+ "Troll Time", "ATT"}}, - {"Antarctica/Vostok", new String[] {"Ora di Vostok", "VOST", - "Ora estiva di Vostok", "VOSST", - "Ora di Vostok", "VOST"}}, -@@ -838,7 +841,7 @@ - "Ora di Samara", "SAMT"}}, - {"Europe/San_Marino", CET}, - {"Europe/Sarajevo", CET}, -- {"Europe/Simferopol", EET}, -+ {"Europe/Simferopol", MSK}, - {"Europe/Skopje", CET}, - {"Europe/Sofia", EET}, - {"Europe/Stockholm", CET}, ---- jdk/src/share/classes/sun/util/resources/ja/TimeZoneNames_ja.java Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/src/share/classes/sun/util/resources/ja/TimeZoneNames_ja.java Tue Jun 03 14:19:36 2014 -0700 -@@ -570,6 +570,9 @@ - {"Antarctica/Syowa", new String[] {"\u662d\u548c\u57fa\u5730\u6642\u9593", "SYOT", - "\u662d\u548c\u57fa\u5730\u590f\u6642\u9593", "SYOST", - "\u662D\u548C\u57FA\u5730\u6642\u9593", "SYOT"}}, -+ {"Antarctica/Troll", new String[] {"\u5354\u5b9a\u4e16\u754c\u6642", "UTC", -+ "\u4e2d\u90e8\u30e8\u30fc\u30ed\u30c3\u30d1\u590f\u6642\u9593", "CEST", -+ "Troll Time", "ATT"}}, - {"Antarctica/Vostok", new String[] {"\u30dc\u30b9\u30c8\u30fc\u30af\u57fa\u5730\u6642\u9593", "VOST", - "\u30dc\u30b9\u30c8\u30fc\u30af\u57fa\u5730\u590f\u6642\u9593", "VOSST", - "\u30DC\u30B9\u30C8\u30FC\u30AF\u6642\u9593", "VOST"}}, -@@ -838,7 +841,7 @@ - "\u30B5\u30DE\u30E9\u6642\u9593", "SAMT"}}, - {"Europe/San_Marino", CET}, - {"Europe/Sarajevo", CET}, -- {"Europe/Simferopol", EET}, -+ {"Europe/Simferopol", MSK}, - {"Europe/Skopje", CET}, - {"Europe/Sofia", EET}, - {"Europe/Stockholm", CET}, ---- jdk/src/share/classes/sun/util/resources/ko/TimeZoneNames_ko.java Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/src/share/classes/sun/util/resources/ko/TimeZoneNames_ko.java Tue Jun 03 14:19:36 2014 -0700 -@@ -570,6 +570,9 @@ - {"Antarctica/Syowa", new String[] {"Syowa \uc2dc\uac04", "SYOT", - "Syowa \uc77c\uad11\uc808\uc57d\uc2dc\uac04", "SYOST", - "\uC1FC\uC640 \uD45C\uC900\uC2DC", "SYOT"}}, -+ {"Antarctica/Troll", new String[] {"\uc138\uacc4 \ud45c\uc900\uc2dc", "UTC", -+ "\uc911\uc559 \uc720\ub7fd \uc77c\uad11\uc808\uc57d\uc2dc\uac04", "CEST", -+ "Troll Time", "ATT"}}, - {"Antarctica/Vostok", new String[] {"Vostok \uc2dc\uac04", "VOST", - "Vostok \uc77c\uad11\uc808\uc57d\uc2dc\uac04", "VOSST", - "\uBCF4\uC2A4\uD1A1 \uD45C\uC900\uC2DC", "VOST"}}, -@@ -838,7 +841,7 @@ - "\uC0AC\uB9C8\uB77C \uD45C\uC900\uC2DC", "SAMT"}}, - {"Europe/San_Marino", CET}, - {"Europe/Sarajevo", CET}, -- {"Europe/Simferopol", EET}, -+ {"Europe/Simferopol", MSK}, - {"Europe/Skopje", CET}, - {"Europe/Sofia", EET}, - {"Europe/Stockholm", CET}, ---- jdk/src/share/classes/sun/util/resources/pt/TimeZoneNames_pt_BR.java Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/src/share/classes/sun/util/resources/pt/TimeZoneNames_pt_BR.java Tue Jun 03 14:19:36 2014 -0700 -@@ -570,6 +570,9 @@ - {"Antarctica/Syowa", new String[] {"Fuso hor\u00e1rio de Syowa", "SYOT", - "Fuso hor\u00e1rio de ver\u00e3o de Syowa", "SYOST", - "Hor\u00E1rio de Syowa", "SYOT"}}, -+ {"Antarctica/Troll", new String[] {"Tempo universal coordenado", "UTC", -+ "Fuso hor\u00e1rio de ver\u00e3o da Europa Central", "CEST", -+ "Troll Time", "ATT"}}, - {"Antarctica/Vostok", new String[] {"Fuso hor\u00e1rio de Vostok", "VOST", - "Fuso hor\u00e1rio de ver\u00e3o de Vostok", "VOSST", - "Hor\u00E1rio de Vostok", "VOST"}}, -@@ -838,7 +841,7 @@ - "Hor\u00E1rio de Samara", "SAMT"}}, - {"Europe/San_Marino", CET}, - {"Europe/Sarajevo", CET}, -- {"Europe/Simferopol", EET}, -+ {"Europe/Simferopol", MSK}, - {"Europe/Skopje", CET}, - {"Europe/Sofia", EET}, - {"Europe/Stockholm", CET}, ---- jdk/src/share/classes/sun/util/resources/sv/TimeZoneNames_sv.java Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/src/share/classes/sun/util/resources/sv/TimeZoneNames_sv.java Tue Jun 03 14:19:36 2014 -0700 -@@ -570,6 +570,9 @@ - {"Antarctica/Syowa", new String[] {"Syowa, normaltid", "SYOT", - "Syowa, sommartid", "SYOST", - "Syowa-tid", "SYOT"}}, -+ {"Antarctica/Troll", new String[] {"Koordinerad universell tid", "UTC", -+ "Centraleuropeisk sommartid", "CEST", -+ "Troll Time", "ATT"}}, - {"Antarctica/Vostok", new String[] {"Vostok, normaltid", "VOST", - "Vostok, sommartid", "VOSST", - "Vostok-tid", "VOST"}}, -@@ -838,7 +841,7 @@ - "Samara-tid", "SAMT"}}, - {"Europe/San_Marino", CET}, - {"Europe/Sarajevo", CET}, -- {"Europe/Simferopol", EET}, -+ {"Europe/Simferopol", MSK}, - {"Europe/Skopje", CET}, - {"Europe/Sofia", EET}, - {"Europe/Stockholm", CET}, ---- jdk/src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_CN.java Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_CN.java Tue Jun 03 14:19:36 2014 -0700 -@@ -570,6 +570,9 @@ - {"Antarctica/Syowa", new String[] {"Syowa \u65f6\u95f4", "SYOT", - "Syowa \u590f\u4ee4\u65f6", "SYOST", - "Syowa \u65F6\u95F4", "SYOT"}}, -+ {"Antarctica/Troll", new String[] {"\u534f\u8c03\u4e16\u754c\u65f6\u95f4", "UTC", -+ "\u4e2d\u6b27\u590f\u4ee4\u65f6", "CEST", -+ "Troll Time", "ATT"}}, - {"Antarctica/Vostok", new String[] {"\u83ab\u65af\u6258\u514b\u65f6\u95f4", "VOST", - "\u83ab\u65af\u6258\u514b\u590f\u4ee4\u65f6", "VOSST", - "\u83AB\u65AF\u6258\u514B\u65F6\u95F4", "VOST"}}, -@@ -838,7 +841,7 @@ - "\u6C99\u9A6C\u62C9\u65F6\u95F4", "SAMT"}}, - {"Europe/San_Marino", CET}, - {"Europe/Sarajevo", CET}, -- {"Europe/Simferopol", EET}, -+ {"Europe/Simferopol", MSK}, - {"Europe/Skopje", CET}, - {"Europe/Sofia", EET}, - {"Europe/Stockholm", CET}, ---- jdk/src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_TW.java Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_TW.java Tue Jun 03 14:19:36 2014 -0700 -@@ -570,6 +570,9 @@ - {"Antarctica/Syowa", new String[] {"\u5915\u6b50\u74e6 (Syowa) \u6642\u9593", "SYOT", - "\u5915\u6b50\u74e6 (Syowa) \u590f\u4ee4\u6642\u9593", "SYOST", - "\u5915\u6B50\u74E6 (Syowa) \u6642\u9593", "SYOT"}}, -+ {"Antarctica/Troll", new String[] {"\u5354\u8abf\u4e16\u754c\u6642\u9593", "UTC", -+ "\u4e2d\u6b50\u590f\u4ee4\u6642\u9593", "CEST", -+ "Troll Time", "ATT"}}, - {"Antarctica/Vostok", new String[] {"\u4f5b\u65af\u6258 (Vostok) \u6642\u9593", "VOST", - "\u4f5b\u65af\u6258 (Vostok) \u590f\u4ee4\u6642\u9593", "VOSST", - "\u4F5B\u65AF\u6258 (Vostok) \u6642\u9593", "VOST"}}, -@@ -840,7 +843,7 @@ - "\u6C99\u99AC\u62C9\u6642\u9593", "SAMT"}}, - {"Europe/San_Marino", CET}, - {"Europe/Sarajevo", CET}, -- {"Europe/Simferopol", EET}, -+ {"Europe/Simferopol", MSK}, - {"Europe/Skopje", CET}, - {"Europe/Sofia", EET}, - {"Europe/Stockholm", CET}, ---- jdk/src/share/lib/security/java.security-linux Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/src/share/lib/security/java.security-linux Tue Jun 03 14:19:36 2014 -0700 -@@ -210,8 +210,8 @@ - org.jcp.xml.dsig.internal.,\ - jdk.internal.,\ - jdk.nashorn.internal.,\ -- jdk.nashorn.tools. -- -+ jdk.nashorn.tools.,\ -+ com.sun.activation.registries. - - # - # List of comma-separated packages that start with or equal this string -@@ -257,8 +257,8 @@ - org.jcp.xml.dsig.internal.,\ - jdk.internal.,\ - jdk.nashorn.internal.,\ -- jdk.nashorn.tools. -- -+ jdk.nashorn.tools.,\ -+ com.sun.activation.registries. - - # - # Determines whether this properties file can be appended to ---- jdk/src/share/lib/security/java.security-macosx Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/src/share/lib/security/java.security-macosx Tue Jun 03 14:19:36 2014 -0700 -@@ -212,6 +212,7 @@ - jdk.internal.,\ - jdk.nashorn.internal.,\ - jdk.nashorn.tools.,\ -+ com.sun.activation.registries.,\ - apple. - - # -@@ -259,6 +260,7 @@ - jdk.internal.,\ - jdk.nashorn.internal.,\ - jdk.nashorn.tools.,\ -+ com.sun.activation.registries.,\ - apple. - - # ---- jdk/src/share/lib/security/java.security-solaris Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/src/share/lib/security/java.security-solaris Tue Jun 03 14:19:36 2014 -0700 -@@ -212,7 +212,8 @@ - org.jcp.xml.dsig.internal.,\ - jdk.internal.,\ - jdk.nashorn.internal.,\ -- jdk.nashorn.tools. -+ jdk.nashorn.tools.,\ -+ com.sun.activation.registries. - - # - # List of comma-separated packages that start with or equal this string -@@ -258,7 +259,8 @@ - org.jcp.xml.dsig.internal.,\ - jdk.internal.,\ - jdk.nashorn.internal.,\ -- jdk.nashorn.tools. -+ jdk.nashorn.tools.,\ -+ com.sun.activation.registries. - - # - # Determines whether this properties file can be appended to ---- jdk/src/share/lib/security/java.security-windows Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/src/share/lib/security/java.security-windows Tue Jun 03 14:19:36 2014 -0700 -@@ -212,6 +212,7 @@ - jdk.internal.,\ - jdk.nashorn.internal.,\ - jdk.nashorn.tools.,\ -+ com.sun.activation.registries.,\ - com.sun.java.accessibility. - - # -@@ -259,6 +260,7 @@ - jdk.internal.,\ - jdk.nashorn.internal.,\ - jdk.nashorn.tools.,\ -+ com.sun.activation.registries.,\ - com.sun.java.accessibility. - - # ---- jdk/src/share/native/com/sun/java/util/jar/pack/defines.h Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/src/share/native/com/sun/java/util/jar/pack/defines.h Tue Jun 03 14:19:36 2014 -0700 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 2001, 2014, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -79,6 +79,7 @@ - #define ERROR_RESOURCE "Cannot extract resource file" - #define ERROR_OVERFLOW "Internal buffer overflow" - #define ERROR_INTERNAL "Internal error" -+#define ERROR_INIT "cannot init class members" - - #define LOGFILE_STDOUT "-" - #define LOGFILE_STDERR "" ---- jdk/src/share/native/com/sun/java/util/jar/pack/jni.cpp Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/src/share/native/com/sun/java/util/jar/pack/jni.cpp Tue Jun 03 14:19:36 2014 -0700 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -56,6 +56,45 @@ - - #define THROW_IOE(x) JNU_ThrowIOException(env,x) - -+#define CHECK_EXCEPTION_RETURN_VOID_THROW_IOE(CERVTI_exception, CERVTI_message) \ -+ do { \ -+ if ((env)->ExceptionOccurred()) { \ -+ THROW_IOE(CERVTI_message); \ -+ return; \ -+ } \ -+ if ((CERVTI_exception) == NULL) { \ -+ THROW_IOE(CERVTI_message); \ -+ return; \ -+ } \ -+ } while (JNI_FALSE) -+ -+ -+#define CHECK_EXCEPTION_RETURN_VALUE(CERL_exception, CERL_return_value) \ -+ do { \ -+ if ((env)->ExceptionOccurred()) { \ -+ return CERL_return_value; \ -+ } \ -+ if ((CERL_exception) == NULL) { \ -+ return CERL_return_value; \ -+ } \ -+ } while (JNI_FALSE) -+ -+ -+// If these useful macros aren't defined in jni_util.h then define them here -+#ifndef CHECK_NULL_RETURN -+#define CHECK_NULL_RETURN(x, y) \ -+ do { \ -+ if ((x) == NULL) return (y); \ -+ } while (JNI_FALSE) -+#endif -+ -+#ifndef CHECK_EXCEPTION_RETURN -+#define CHECK_EXCEPTION_RETURN(env, y) \ -+ do { \ -+ if ((*env)->ExceptionCheck(env)) return (y); \ -+ } while (JNI_FALSE) -+#endif -+ - static jlong read_input_via_jni(unpacker* self, - void* buf, jlong minlen, jlong maxlen); - -@@ -92,9 +131,11 @@ - vm->GetEnv(&envRaw, JNI_VERSION_1_1); - JNIEnv* env = (JNIEnv*) envRaw; - //fprintf(stderr, "get_unpacker() env=%p\n", env); -- if (env == null) -- return null; -+ CHECK_NULL_RETURN(env, NULL); - jobject pObj = env->CallStaticObjectMethod(NIclazz, currentInstMID); -+ // We should check upon the known non-null variable because here we want to check -+ // only for pending exceptions. If pObj is null we'll deal with it later. -+ CHECK_EXCEPTION_RETURN_VALUE(env, NULL); - //fprintf(stderr, "get_unpacker0() pObj=%p\n", pObj); - if (pObj != null) { - // Got pObj and env; now do it the easy way. -@@ -137,20 +178,20 @@ - while( dbg != null) { sleep(10); } - #endif - NIclazz = (jclass) env->NewGlobalRef(clazz); -+ - unpackerPtrFID = env->GetFieldID(clazz, "unpackerPtr", "J"); -+ CHECK_EXCEPTION_RETURN_VOID_THROW_IOE(unpackerPtrFID, ERROR_INIT); -+ - currentInstMID = env->GetStaticMethodID(clazz, "currentInstance", - "()Ljava/lang/Object;"); -+ CHECK_EXCEPTION_RETURN_VOID_THROW_IOE(currentInstMID, ERROR_INIT); -+ - readInputMID = env->GetMethodID(clazz, "readInputFn", - "(Ljava/nio/ByteBuffer;J)J"); -+ CHECK_EXCEPTION_RETURN_VOID_THROW_IOE(readInputMID, ERROR_INIT); -+ - getUnpackerPtrMID = env->GetMethodID(clazz, "getUnpackerPtr", "()J"); -- -- if (unpackerPtrFID == null || -- currentInstMID == null || -- readInputMID == null || -- NIclazz == null || -- getUnpackerPtrMID == null) { -- THROW_IOE("cannot init class members"); -- } -+ CHECK_EXCEPTION_RETURN_VOID_THROW_IOE(getUnpackerPtrMID, ERROR_INIT); - } - - JNIEXPORT jlong JNICALL -@@ -160,9 +201,7 @@ - // valid object pointers and env is intact, if not now is good time to bail. - unpacker* uPtr = get_unpacker(); - //fprintf(stderr, "start(%p) uPtr=%p initializing\n", pObj, uPtr); -- if (uPtr == null) { -- return -1; -- } -+ CHECK_EXCEPTION_RETURN_VALUE(uPtr, -1); - // redirect our io to the default log file or whatever. - uPtr->redirect_stdio(); - -@@ -200,6 +239,7 @@ - jobjectArray pParts) { - - unpacker* uPtr = get_unpacker(env, pObj); -+ CHECK_EXCEPTION_RETURN_VALUE(uPtr, false); - unpacker::file* filep = uPtr->get_next_file(); - - if (uPtr->aborting()) { -@@ -207,32 +247,38 @@ - return false; - } - -- if (filep == null) { -- return false; // end of the sequence -- } -+ CHECK_NULL_RETURN(filep, false); - assert(filep == &uPtr->cur_file); - - int pidx = 0, iidx = 0; - jintArray pIntParts = (jintArray) env->GetObjectArrayElement(pParts, pidx++); -+ CHECK_EXCEPTION_RETURN_VALUE(pIntParts, false); - jint* intParts = env->GetIntArrayElements(pIntParts, null); - intParts[iidx++] = (jint)( (julong)filep->size >> 32 ); - intParts[iidx++] = (jint)( (julong)filep->size >> 0 ); - intParts[iidx++] = filep->modtime; - intParts[iidx++] = filep->deflate_hint() ? 1 : 0; - env->ReleaseIntArrayElements(pIntParts, intParts, JNI_COMMIT); -- -- env->SetObjectArrayElement(pParts, pidx++, env->NewStringUTF(filep->name)); -- -+ jstring filename = env->NewStringUTF(filep->name); -+ CHECK_EXCEPTION_RETURN_VALUE(filename, false); -+ env->SetObjectArrayElement(pParts, pidx++, filename); -+ CHECK_EXCEPTION_RETURN_VALUE(uPtr, false); - jobject pDataBuf = null; -- if (filep->data[0].len > 0) -+ if (filep->data[0].len > 0) { - pDataBuf = env->NewDirectByteBuffer(filep->data[0].ptr, - filep->data[0].len); -+ CHECK_EXCEPTION_RETURN_VALUE(pDataBuf, false); -+ } - env->SetObjectArrayElement(pParts, pidx++, pDataBuf); -+ CHECK_EXCEPTION_RETURN_VALUE(uPtr, false); - pDataBuf = null; -- if (filep->data[1].len > 0) -+ if (filep->data[1].len > 0) { - pDataBuf = env->NewDirectByteBuffer(filep->data[1].ptr, - filep->data[1].len); -+ CHECK_EXCEPTION_RETURN_VALUE(pDataBuf, false); -+ } - env->SetObjectArrayElement(pParts, pidx++, pDataBuf); -+ CHECK_EXCEPTION_RETURN_VALUE(uPtr, false); - - return true; - } -@@ -241,6 +287,7 @@ - JNIEXPORT jobject JNICALL - Java_com_sun_java_util_jar_pack_NativeUnpack_getUnusedInput(JNIEnv *env, jobject pObj) { - unpacker* uPtr = get_unpacker(env, pObj); -+ CHECK_EXCEPTION_RETURN_VALUE(uPtr, NULL); - unpacker::file* filep = &uPtr->cur_file; - - if (uPtr->aborting()) { -@@ -263,7 +310,7 @@ - JNIEXPORT jlong JNICALL - Java_com_sun_java_util_jar_pack_NativeUnpack_finish(JNIEnv *env, jobject pObj) { - unpacker* uPtr = get_unpacker(env, pObj, false); -- if (uPtr == null) return 0; -+ CHECK_EXCEPTION_RETURN_VALUE(uPtr, NULL); - size_t consumed = uPtr->input_consumed(); - free_unpacker(env, pObj, uPtr); - return consumed; -@@ -274,7 +321,9 @@ - jstring pProp, jstring pValue) { - unpacker* uPtr = get_unpacker(env, pObj); - const char* prop = env->GetStringUTFChars(pProp, JNI_FALSE); -+ CHECK_EXCEPTION_RETURN_VALUE(prop, false); - const char* value = env->GetStringUTFChars(pValue, JNI_FALSE); -+ CHECK_EXCEPTION_RETURN_VALUE(value, false); - jboolean retval = uPtr->set_option(prop, value); - env->ReleaseStringUTFChars(pProp, prop); - env->ReleaseStringUTFChars(pValue, value); -@@ -286,9 +335,11 @@ - jstring pProp) { - - unpacker* uPtr = get_unpacker(env, pObj); -+ CHECK_EXCEPTION_RETURN_VALUE(uPtr, NULL); - const char* prop = env->GetStringUTFChars(pProp, JNI_FALSE); -+ CHECK_EXCEPTION_RETURN_VALUE(prop, NULL); - const char* value = uPtr->get_option(prop); -+ CHECK_EXCEPTION_RETURN_VALUE(value, NULL); - env->ReleaseStringUTFChars(pProp, prop); -- if (value == null) return null; - return env->NewStringUTF(value); - } ---- jdk/src/share/native/sun/awt/medialib/awt_ImagingLib.c Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/src/share/native/sun/awt/medialib/awt_ImagingLib.c Tue Jun 03 14:19:36 2014 -0700 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -373,14 +373,14 @@ - - - /* Parse the source image */ -- if ((status = awt_parseImage(env, jsrc, &srcImageP, FALSE)) <= 0) { -+ if (awt_parseImage(env, jsrc, &srcImageP, FALSE) <= 0) { - /* Can't handle any custom images */ - free(dkern); - return 0; - } - - /* Parse the destination image */ -- if ((status = awt_parseImage(env, jdst, &dstImageP, FALSE)) <= 0) { -+ if (awt_parseImage(env, jdst, &dstImageP, FALSE) <= 0) { - /* Can't handle any custom images */ - awt_freeParsedImage(srcImageP, TRUE); - free(dkern); -@@ -627,7 +627,7 @@ - } - - /* Parse the source raster */ -- if ((status = awt_parseRaster(env, jsrc, srcRasterP)) <= 0) { -+ if (awt_parseRaster(env, jsrc, srcRasterP) <= 0) { - /* Can't handle any custom rasters */ - free(srcRasterP); - free(dstRasterP); -@@ -636,7 +636,7 @@ - } - - /* Parse the destination raster */ -- if ((status = awt_parseRaster(env, jdst, dstRasterP)) <= 0) { -+ if (awt_parseRaster(env, jdst, dstRasterP) <= 0) { - /* Can't handle any custom images */ - awt_freeParsedRaster(srcRasterP, TRUE); - free(dstRasterP); -@@ -839,13 +839,13 @@ - (*env)->ReleasePrimitiveArrayCritical(env, jmatrix, matrix, JNI_ABORT); - - /* Parse the source image */ -- if ((status = awt_parseImage(env, jsrc, &srcImageP, FALSE)) <= 0) { -+ if (awt_parseImage(env, jsrc, &srcImageP, FALSE) <= 0) { - /* Can't handle any custom images */ - return 0; - } - - /* Parse the destination image */ -- if ((status = awt_parseImage(env, jdst, &dstImageP, FALSE)) <= 0) { -+ if (awt_parseImage(env, jdst, &dstImageP, FALSE) <= 0) { - /* Can't handle any custom images */ - awt_freeParsedImage(srcImageP, TRUE); - return 0; -@@ -1059,7 +1059,7 @@ - (*env)->ReleasePrimitiveArrayCritical(env, jmatrix, matrix, JNI_ABORT); - - /* Parse the source raster */ -- if ((status = awt_parseRaster(env, jsrc, srcRasterP)) <= 0) { -+ if (awt_parseRaster(env, jsrc, srcRasterP) <= 0) { - /* Can't handle any custom rasters */ - free(srcRasterP); - free(dstRasterP); -@@ -1067,7 +1067,7 @@ - } - - /* Parse the destination raster */ -- if ((status = awt_parseRaster(env, jdst, dstRasterP)) <= 0) { -+ if (awt_parseRaster(env, jdst, dstRasterP) <= 0) { - /* Can't handle any custom images */ - awt_freeParsedRaster(srcRasterP, TRUE); - free(dstRasterP); -@@ -1305,13 +1305,13 @@ - if (s_timeIt) (*start_timer)(3600); - - /* Parse the source image */ -- if ((status = awt_parseImage(env, jsrc, &srcImageP, FALSE)) <= 0) { -+ if (awt_parseImage(env, jsrc, &srcImageP, FALSE) <= 0) { - /* Can't handle any custom images */ - return 0; - } - - /* Parse the destination image */ -- if ((status = awt_parseImage(env, jdst, &dstImageP, FALSE)) <= 0) { -+ if (awt_parseImage(env, jdst, &dstImageP, FALSE) <= 0) { - /* Can't handle any custom images */ - awt_freeParsedImage(srcImageP, TRUE); - return 0; -@@ -1553,14 +1553,14 @@ - } - - /* Parse the source raster - reject custom images */ -- if ((status = awt_parseRaster(env, jsrc, srcRasterP)) <= 0) { -+ if (awt_parseRaster(env, jsrc, srcRasterP) <= 0) { - free(srcRasterP); - free(dstRasterP); - return 0; - } - - /* Parse the destination image - reject custom images */ -- if ((status = awt_parseRaster(env, jdst, dstRasterP)) <= 0) { -+ if (awt_parseRaster(env, jdst, dstRasterP) <= 0) { - awt_freeParsedRaster(srcRasterP, TRUE); - free(dstRasterP); - return 0; ---- jdk/src/share/native/sun/font/freetypeScaler.c Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/src/share/native/sun/font/freetypeScaler.c Tue Jun 03 14:19:36 2014 -0700 -@@ -177,18 +177,10 @@ - if (numBytes > FILEDATACACHESIZE) { - bBuffer = (*env)->NewDirectByteBuffer(env, destBuffer, numBytes); - if (bBuffer != NULL) { -- /* Loop until the read succeeds (or EOF). -- * This should improve robustness in the event of a problem in -- * the I/O system. If we find that we ever end up spinning here -- * we are going to have to do some serious work to recover. -- * Just returning without reading the data will cause a crash. -- */ -- while (bread == 0) { -- bread = (*env)->CallIntMethod(env, -- scalerInfo->font2D, -- sunFontIDs.ttReadBlockMID, -- bBuffer, offset, numBytes); -- } -+ bread = (*env)->CallIntMethod(env, -+ scalerInfo->font2D, -+ sunFontIDs.ttReadBlockMID, -+ bBuffer, offset, numBytes); - return bread; - } else { - /* We probably hit bug bug 4845371. For reasons that -@@ -224,19 +216,10 @@ - (offset + FILEDATACACHESIZE > scalerInfo->fileSize) ? - scalerInfo->fileSize - offset : FILEDATACACHESIZE; - bBuffer = scalerInfo->directBuffer; -- /* Loop until all the read succeeds (or EOF). -- * This should improve robustness in the event of a problem in -- * the I/O system. If we find that we ever end up spinning here -- * we are going to have to do some serious work to recover. -- * Just returning without reading the data will cause a crash. -- */ -- while (bread == 0) { -- bread = (*env)->CallIntMethod(env, scalerInfo->font2D, -- sunFontIDs.ttReadBlockMID, -- bBuffer, offset, -- scalerInfo->fontDataLength); -- } -- -+ bread = (*env)->CallIntMethod(env, scalerInfo->font2D, -+ sunFontIDs.ttReadBlockMID, -+ bBuffer, offset, -+ scalerInfo->fontDataLength); - memcpy(destBuffer, scalerInfo->fontData, numBytes); - return numBytes; - } ---- jdk/src/share/native/sun/management/GcInfoBuilder.c Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/src/share/native/sun/management/GcInfoBuilder.c Tue Jun 03 14:19:36 2014 -0700 -@@ -190,7 +190,7 @@ - - if (ext_att_count <= 0) { - JNU_ThrowIllegalArgumentException(env, "Invalid ext_att_count"); -- return; -+ return 0; - } - - gc_stat.usage_before_gc = usageBeforeGC; ---- jdk/src/share/native/sun/security/ec/ECC_JNI.cpp Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/src/share/native/sun/security/ec/ECC_JNI.cpp Tue Jun 03 14:19:36 2014 -0700 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 2009, 2014, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -64,22 +64,40 @@ - free(ecparams); - } - -+jbyteArray getEncodedBytes(JNIEnv *env, SECItem *hSECItem) -+{ -+ SECItem *s = (SECItem *)hSECItem; -+ -+ jbyteArray jEncodedBytes = env->NewByteArray(s->len); -+ if (jEncodedBytes == NULL) { -+ return NULL; -+ } -+ // Copy bytes from a native SECItem buffer to Java byte array -+ env->SetByteArrayRegion(jEncodedBytes, 0, s->len, (jbyte *)s->data); -+ if (env->ExceptionCheck()) { // should never happen -+ return NULL; -+ } -+ return jEncodedBytes; -+} -+ -+ - /* - * Class: sun_security_ec_ECKeyPairGenerator - * Method: generateECKeyPair -- * Signature: (I[B[B)[J -+ * Signature: (I[B[B)[[B - */ --JNIEXPORT jlongArray -+JNIEXPORT jobjectArray - JNICALL Java_sun_security_ec_ECKeyPairGenerator_generateECKeyPair - (JNIEnv *env, jclass clazz, jint keySize, jbyteArray encodedParams, jbyteArray seed) - { -- ECPrivateKey *privKey; /* contains both public and private values */ -+ ECPrivateKey *privKey = NULL; // contains both public and private values - ECParams *ecparams = NULL; - SECKEYECParams params_item; - jint jSeedLength; - jbyte* pSeedBuffer = NULL; -- jlongArray result = NULL; -- jlong* resultElements = NULL; -+ jobjectArray result = NULL; -+ jclass baCls = NULL; -+ jbyteArray jba; - - // Initialize the ECParams struct - params_item.len = env->GetArrayLength(encodedParams); -@@ -106,61 +124,61 @@ - } - - jboolean isCopy; -- result = env->NewLongArray(2); -- resultElements = env->GetLongArrayElements(result, &isCopy); -+ baCls = env->FindClass("[B"); -+ if (baCls == NULL) { -+ goto cleanup; -+ } -+ result = env->NewObjectArray(2, baCls, NULL); -+ if (result == NULL) { -+ goto cleanup; -+ } -+ jba = getEncodedBytes(env, &(privKey->privateValue)); -+ if (jba == NULL) { -+ result = NULL; -+ goto cleanup; -+ } -+ env->SetObjectArrayElement(result, 0, jba); // big integer -+ if (env->ExceptionCheck()) { // should never happen -+ result = NULL; -+ goto cleanup; -+ } - -- resultElements[0] = (jlong) &(privKey->privateValue); // private big integer -- resultElements[1] = (jlong) &(privKey->publicValue); // encoded ec point -- -- // If the array is a copy then we must write back our changes -- if (isCopy == JNI_TRUE) { -- env->ReleaseLongArrayElements(result, resultElements, 0); -+ jba = getEncodedBytes(env, &(privKey->publicValue)); -+ if (jba == NULL) { -+ result = NULL; -+ goto cleanup; -+ } -+ env->SetObjectArrayElement(result, 1, jba); // encoded ec point -+ if (env->ExceptionCheck()) { // should never happen -+ result = NULL; -+ goto cleanup; - } - - cleanup: - { -- if (params_item.data) -+ if (params_item.data) { - env->ReleaseByteArrayElements(encodedParams, - (jbyte *) params_item.data, JNI_ABORT); -- -- if (ecparams) -+ } -+ if (ecparams) { - FreeECParams(ecparams, true); -- -+ } - if (privKey) { - FreeECParams(&privKey->ecParams, false); - SECITEM_FreeItem(&privKey->version, B_FALSE); -- // Don't free privKey->privateValue and privKey->publicValue -+ SECITEM_FreeItem(&privKey->privateValue, B_FALSE); -+ SECITEM_FreeItem(&privKey->publicValue, B_FALSE); -+ free(privKey); - } -- -- if (pSeedBuffer) -+ if (pSeedBuffer) { - delete [] pSeedBuffer; -+ } - } - - return result; - } - - /* -- * Class: sun_security_ec_ECKeyPairGenerator -- * Method: getEncodedBytes -- * Signature: (J)[B -- */ --JNIEXPORT jbyteArray --JNICALL Java_sun_security_ec_ECKeyPairGenerator_getEncodedBytes -- (JNIEnv *env, jclass clazz, jlong hSECItem) --{ -- SECItem *s = (SECItem *)hSECItem; -- jbyteArray jEncodedBytes = env->NewByteArray(s->len); -- -- // Copy bytes from a native SECItem buffer to Java byte array -- env->SetByteArrayRegion(jEncodedBytes, 0, s->len, (jbyte *)s->data); -- -- // Use B_FALSE to free only the SECItem->data -- SECITEM_FreeItem(s, B_FALSE); -- -- return jEncodedBytes; --} -- --/* - * Class: sun_security_ec_ECDSASignature - * Method: signDigest - * Signature: ([B[B[B[B)[B -@@ -234,21 +252,26 @@ - - cleanup: - { -- if (params_item.data) -+ if (params_item.data) { - env->ReleaseByteArrayElements(encodedParams, - (jbyte *) params_item.data, JNI_ABORT); -- -- if (pDigestBuffer) -+ } -+ if (privKey.privateValue.data) { -+ env->ReleaseByteArrayElements(privateKey, -+ (jbyte *) privKey.privateValue.data, JNI_ABORT); -+ } -+ if (pDigestBuffer) { - delete [] pDigestBuffer; -- -- if (pSignedDigestBuffer) -+ } -+ if (pSignedDigestBuffer) { - delete [] pSignedDigestBuffer; -- -- if (pSeedBuffer) -+ } -+ if (pSeedBuffer) { - delete [] pSeedBuffer; -- -- if (ecparams) -+ } -+ if (ecparams) { - FreeECParams(ecparams, true); -+ } - } - - return jSignedDigest; ---- jdk/src/solaris/classes/sun/font/FcFontConfiguration.java Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/src/solaris/classes/sun/font/FcFontConfiguration.java Tue Jun 03 14:19:36 2014 -0700 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2008, 2012, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 2008, 2014, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -33,6 +33,7 @@ - import java.net.InetAddress; - import java.net.UnknownHostException; - import java.nio.charset.Charset; -+import java.nio.charset.StandardCharsets; - import java.nio.file.Files; - import java.util.HashMap; - import java.util.HashSet; -@@ -173,8 +174,16 @@ - } - - @Override -- public FontDescriptor[] getFontDescriptors(String fontName, int style) { -- return new FontDescriptor[0]; -+ protected FontDescriptor[] buildFontDescriptors(int fontIndex, int styleIndex) { -+ CompositeFontDescriptor[] cfi = get2DCompositeFontInfo(); -+ int idx = fontIndex * NUM_STYLES + styleIndex; -+ String[] componentFaceNames = cfi[idx].getComponentFaceNames(); -+ FontDescriptor[] ret = new FontDescriptor[componentFaceNames.length]; -+ for (int i = 0; i < componentFaceNames.length; i++) { -+ ret[i] = new FontDescriptor(componentFaceNames[i], StandardCharsets.UTF_8.newEncoder(), new int[0]); -+ } -+ -+ return ret; - } - - @Override -@@ -250,10 +259,12 @@ - } - - String[] fileNames = new String[numFonts]; -+ String[] faceNames = new String[numFonts]; - - int index; - for (index = 0; index < fcFonts.length; index++) { - fileNames[index] = fcFonts[index].fontFile; -+ faceNames[index] = fcFonts[index].familyName; - } - - if (installedFallbackFontFiles != null) { -@@ -266,7 +277,7 @@ - = new CompositeFontDescriptor( - faceName, - 1, -- null, -+ faceNames, - fileNames, - null, null); - } ---- jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c Tue Jun 03 14:19:36 2014 -0700 -@@ -517,6 +517,8 @@ - } else if (ret == JVM_IO_ERR) { - if (errno == EBADF) { - JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException", "Socket closed"); -+ } else if (errno == ENOMEM) { -+ JNU_ThrowOutOfMemoryError(env, "NET_Timeout native heap allocation failed"); - } else { - NET_ThrowByNameWithLastError(env, JNU_JAVANETPKG "SocketException", "Peek failed"); - } -@@ -617,15 +619,18 @@ - "Receive timed out"); - return -1; - } else if (ret == JVM_IO_ERR) { -+ if (errno == ENOMEM) { -+ JNU_ThrowOutOfMemoryError(env, "NET_Timeout native heap allocation failed"); - #ifdef __linux__ -- if (errno == EBADF) { -+ } else if (errno == EBADF) { - JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException", "Socket closed"); - } else { - NET_ThrowByNameWithLastError(env, JNU_JAVANETPKG "SocketException", "Receive failed"); -+#else -+ } else { -+ JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException", "Socket closed"); -+#endif - } --#else -- JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException", "Socket closed"); --#endif - return -1; - } else if (ret == JVM_IO_INTR) { - JNU_ThrowByName(env, JNU_JAVAIOPKG "InterruptedIOException", -@@ -835,15 +840,18 @@ - JNU_ThrowByName(env, JNU_JAVANETPKG "SocketTimeoutException", - "Receive timed out"); - } else if (ret == JVM_IO_ERR) { -+ if (errno == ENOMEM) { -+ JNU_ThrowOutOfMemoryError(env, "NET_Timeout native heap allocation failed"); - #ifdef __linux__ -- if (errno == EBADF) { -+ } else if (errno == EBADF) { - JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException", "Socket closed"); - } else { - NET_ThrowByNameWithLastError(env, JNU_JAVANETPKG "SocketException", "Receive failed"); -+#else -+ } else { -+ JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException", "Socket closed"); -+#endif - } --#else -- JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException", "Socket closed"); --#endif - } else if (ret == JVM_IO_INTR) { - JNU_ThrowByName(env, JNU_JAVAIOPKG "InterruptedIOException", - "operation interrupted"); ---- jdk/src/solaris/native/java/net/PlainSocketImpl.c Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/src/solaris/native/java/net/PlainSocketImpl.c Tue Jun 03 14:19:36 2014 -0700 -@@ -708,7 +708,6 @@ - } else { - ret = NET_Timeout(fd, timeout); - } -- - if (ret == 0) { - JNU_ThrowByName(env, JNU_JAVANETPKG "SocketTimeoutException", - "Accept timed out"); -@@ -716,6 +715,8 @@ - } else if (ret == JVM_IO_ERR) { - if (errno == EBADF) { - JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException", "Socket closed"); -+ } else if (errno == ENOMEM) { -+ JNU_ThrowOutOfMemoryError(env, "NET_Timeout native heap allocation failed"); - } else { - NET_ThrowByNameWithLastError(env, JNU_JAVANETPKG "SocketException", "Accept failed"); - } ---- jdk/src/solaris/native/java/net/SocketInputStream.c Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/src/solaris/native/java/net/SocketInputStream.c Tue Jun 03 14:19:36 2014 -0700 -@@ -108,6 +108,8 @@ - } else if (nread == JVM_IO_ERR) { - if (errno == EBADF) { - JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException", "Socket closed"); -+ } else if (errno == ENOMEM) { -+ JNU_ThrowOutOfMemoryError(env, "NET_Timeout native heap allocation failed"); - } else { - NET_ThrowByNameWithLastError(env, JNU_JAVANETPKG "SocketException", - "select/poll failed"); ---- jdk/src/solaris/native/java/net/bsd_close.c Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/src/solaris/native/java/net/bsd_close.c Tue Jun 03 14:19:36 2014 -0700 -@@ -25,6 +25,7 @@ - - #include <stdio.h> - #include <stdlib.h> -+#include <sys/param.h> - #include <signal.h> - #include <pthread.h> - #include <sys/types.h> -@@ -35,7 +36,6 @@ - #include <sys/uio.h> - #include <unistd.h> - #include <errno.h> -- - #include <sys/poll.h> - - /* -@@ -347,6 +347,10 @@ - int NET_Timeout(int s, long timeout) { - long prevtime = 0, newtime; - struct timeval t, *tp = &t; -+ fd_set fds; -+ fd_set* fdsp = NULL; -+ int allocated = 0; -+ threadEntry_t self; - fdEntry_t *fdEntry = getFdEntry(s); - - /* -@@ -376,20 +380,29 @@ - t.tv_usec = 0; - } - -+ if (s < FD_SETSIZE) { -+ fdsp = &fds; -+ FD_ZERO(fdsp); -+ } else { -+ int length = (howmany(s+1, NFDBITS)) * sizeof(int); -+ fdsp = (fd_set *) calloc(1, length); -+ if (fdsp == NULL) { -+ return -1; // errno will be set to ENOMEM -+ } -+ allocated = 1; -+ } -+ FD_SET(s, fdsp); -+ - for(;;) { -- fd_set rfds; - int rv; -- threadEntry_t self; - - /* - * call select on the fd. If interrupted by our wakeup signal - * errno will be set to EBADF. - */ -- FD_ZERO(&rfds); -- FD_SET(s, &rfds); - - startOp(fdEntry, &self); -- rv = select(s+1, &rfds, 0, 0, tp); -+ rv = select(s+1, fdsp, 0, 0, tp); - endOp(fdEntry, &self); - - /* -@@ -403,6 +416,8 @@ - newtime = now.tv_sec * 1000 + now.tv_usec / 1000; - timeout -= newtime - prevtime; - if (timeout <= 0) { -+ if (allocated != 0) -+ free(fdsp); - return 0; - } - prevtime = newtime; -@@ -410,6 +425,8 @@ - t.tv_usec = (timeout % 1000) * 1000; - } - } else { -+ if (allocated != 0) -+ free(fdsp); - return rv; - } - ---- jdk/src/solaris/native/java/net/linux_close.c Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/src/solaris/native/java/net/linux_close.c Tue Jun 03 14:19:36 2014 -0700 -@@ -34,7 +34,6 @@ - #include <sys/uio.h> - #include <unistd.h> - #include <errno.h> -- - #include <sys/poll.h> - - /* ---- jdk/src/windows/bin/java_md.c Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/src/windows/bin/java_md.c Tue Jun 03 14:19:36 2014 -0700 -@@ -1301,6 +1301,14 @@ - /* save path length */ - jrePathLen = JLI_StrLen(libraryPath); - -+ if (jrePathLen + JLI_StrLen("\\bin\\verify.dll") >= MAXPATHLEN) { -+ /* jre path is too long, the library path will not fit there; -+ * report and abort preloading -+ */ -+ JLI_ReportErrorMessage(JRE_ERROR11); -+ break; -+ } -+ - /* load msvcrt 1st */ - LoadMSVCRT(); - ---- jdk/src/windows/classes/sun/awt/shell/Win32ShellFolder2.java Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/src/windows/classes/sun/awt/shell/Win32ShellFolder2.java Tue Jun 03 14:19:36 2014 -0700 -@@ -583,11 +583,18 @@ - - // Needs to be accessible to Win32ShellFolderManager2 - static String getFileSystemPath(final int csidl) throws IOException, InterruptedException { -- return invoke(new Callable<String>() { -+ String path = invoke(new Callable<String>() { - public String call() throws IOException { - return getFileSystemPath0(csidl); - } - }, IOException.class); -+ if (path != null) { -+ SecurityManager security = System.getSecurityManager(); -+ if (security != null) { -+ security.checkRead(path); -+ } -+ } -+ return path; - } - - // NOTE: this method uses COM and must be called on the 'COM thread'. See ComInvoker for the details ---- jdk/src/windows/classes/sun/awt/shell/Win32ShellFolderManager2.java Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/src/windows/classes/sun/awt/shell/Win32ShellFolderManager2.java Tue Jun 03 14:19:36 2014 -0700 -@@ -142,6 +142,8 @@ - if (desktop == null) { - try { - desktop = new Win32ShellFolder2(DESKTOP); -+ } catch (SecurityException e) { -+ // Ignore error - } catch (IOException e) { - // Ignore error - } catch (InterruptedException e) { -@@ -155,6 +157,8 @@ - if (drives == null) { - try { - drives = new Win32ShellFolder2(DRIVES); -+ } catch (SecurityException e) { -+ // Ignore error - } catch (IOException e) { - // Ignore error - } catch (InterruptedException e) { -@@ -171,6 +175,8 @@ - if (path != null) { - recent = createShellFolder(getDesktop(), new File(path)); - } -+ } catch (SecurityException e) { -+ // Ignore error - } catch (InterruptedException e) { - // Ignore error - } catch (IOException e) { -@@ -184,6 +190,8 @@ - if (network == null) { - try { - network = new Win32ShellFolder2(NETWORK); -+ } catch (SecurityException e) { -+ // Ignore error - } catch (IOException e) { - // Ignore error - } catch (InterruptedException e) { -@@ -207,6 +215,8 @@ - personal.setIsPersonal(); - } - } -+ } catch (SecurityException e) { -+ // Ignore error - } catch (InterruptedException e) { - // Ignore error - } catch (IOException e) { ---- jdk/src/windows/classes/sun/awt/windows/ThemeReader.java Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/src/windows/classes/sun/awt/windows/ThemeReader.java Tue Jun 03 14:19:36 2014 -0700 -@@ -56,18 +56,12 @@ - new ReentrantReadWriteLock(); - private static final Lock readLock = readWriteLock.readLock(); - private static final Lock writeLock = readWriteLock.writeLock(); -+ private static volatile boolean valid = false; - - static void flush() { -- writeLock.lock(); -- try { -- // Close old themes. -- for (Long value : widgetToTheme.values()) { -- closeTheme(value.longValue()); -- } -- widgetToTheme.clear(); -- } finally { -- writeLock.unlock(); -- } -+ // Could be called on Toolkit thread, so do not try to aquire locks -+ // to avoid deadlock with theme initialization -+ valid = false; - } - - public native static boolean isThemed(); -@@ -94,6 +88,24 @@ - // returns theme value - // this method should be invoked with readLock locked - private static Long getTheme(String widget) { -+ if (!valid) { -+ readLock.unlock(); -+ writeLock.lock(); -+ try { -+ if (!valid) { -+ // Close old themes. -+ for (Long value : widgetToTheme.values()) { -+ closeTheme(value); -+ } -+ widgetToTheme.clear(); -+ valid = true; -+ } -+ } finally { -+ readLock.lock(); -+ writeLock.unlock(); -+ } -+ } -+ - // mostly copied from the javadoc for ReentrantReadWriteLock - Long theme = widgetToTheme.get(widget); - if (theme == null) { ---- jdk/src/windows/classes/sun/awt/windows/WToolkit.java Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/src/windows/classes/sun/awt/windows/WToolkit.java Tue Jun 03 14:19:36 2014 -0700 -@@ -38,6 +38,7 @@ - import java.security.PrivilegedAction; - import sun.awt.AWTAutoShutdown; - import sun.awt.LightweightFrame; -+import sun.awt.AppContext; - import sun.awt.SunToolkit; - import sun.misc.ThreadGroupUtils; - import sun.awt.Win32GraphicsDevice; -@@ -866,11 +867,16 @@ - * Windows doesn't always send WM_SETTINGCHANGE when it should. - */ - private void windowsSettingChange() { -- EventQueue.invokeLater(new Runnable() { -- public void run() { -- updateProperties(); -- } -- }); -+ if (AppContext.getAppContext() == null) { -+ // We cannot post the update to any EventQueue. Listeners will -+ // be called on EDTs by DesktopPropertyChangeSupport -+ updateProperties(); -+ } else { -+ // Cannot update on Toolkit thread. -+ // DesktopPropertyChangeSupport will call listeners on Toolkit -+ // thread if it has AppContext (standalone mode) -+ EventQueue.invokeLater(this::updateProperties); -+ } - } - - private synchronized void updateProperties() { ---- jdk/src/windows/classes/sun/awt/windows/WWindowPeer.java Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/src/windows/classes/sun/awt/windows/WWindowPeer.java Tue Jun 03 14:19:36 2014 -0700 -@@ -436,6 +436,7 @@ - @SuppressWarnings("unchecked") - public static long[] getActiveWindowHandles() { - AppContext appContext = AppContext.getAppContext(); -+ if (appContext == null) return null; - synchronized (appContext) { - List<WWindowPeer> l = (List<WWindowPeer>)appContext.get(ACTIVE_WINDOWS_KEY); - if (l == null) { ---- jdk/src/windows/native/sun/windows/awt_Component.cpp Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/src/windows/native/sun/windows/awt_Component.cpp Tue Jun 03 14:19:36 2014 -0700 -@@ -1719,9 +1719,11 @@ - case WM_IME_SETCONTEXT: - // lParam is passed as pointer and it can be modified. - mr = WmImeSetContext(static_cast<BOOL>(wParam), &lParam); -+ CallProxyDefWindowProc(message, wParam, lParam, retValue, mr); - break; - case WM_IME_NOTIFY: - mr = WmImeNotify(wParam, lParam); -+ CallProxyDefWindowProc(message, wParam, lParam, retValue, mr); - break; - case WM_IME_STARTCOMPOSITION: - mr = WmImeStartComposition(); -@@ -4070,7 +4072,7 @@ - { - if (mr != mrConsume) { - HWND proxy = GetProxyFocusOwner(); -- if (proxy != NULL) { -+ if (proxy != NULL && ::IsWindowEnabled(proxy)) { - retVal = ComCtl32Util::GetInstance().DefWindowProc(NULL, proxy, message, wParam, lParam); - mr = mrConsume; - } ---- jdk/src/windows/native/sun/windows/awt_Frame.cpp Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/src/windows/native/sun/windows/awt_Frame.cpp Tue Jun 03 14:19:36 2014 -0700 -@@ -342,6 +342,8 @@ - case WM_IME_STARTCOMPOSITION: - case WM_IME_ENDCOMPOSITION: - case WM_IME_COMPOSITION: -+ case WM_IME_SETCONTEXT: -+ case WM_IME_NOTIFY: - case WM_IME_CONTROL: - case WM_IME_COMPOSITIONFULL: - case WM_IME_SELECT: ---- jdk/test/java/awt/DataFlavor/MissedHtmlAndRtfBug/InterprocessMessages.java Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/test/java/awt/DataFlavor/MissedHtmlAndRtfBug/InterprocessMessages.java Tue Jun 03 14:19:36 2014 -0700 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -24,5 +24,6 @@ - interface InterprocessMessages { - final static int EXECUTION_IS_SUCCESSFULL = 0; - final static int DATA_IS_CORRUPTED = 212; -+ final static int NO_DROP_HAPPENED = 112; - } - ---- jdk/test/java/awt/DataFlavor/MissedHtmlAndRtfBug/MissedHtmlAndRtfBug.html Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/test/java/awt/DataFlavor/MissedHtmlAndRtfBug/MissedHtmlAndRtfBug.html Tue Jun 03 14:19:36 2014 -0700 -@@ -1,5 +1,5 @@ - <!-- -- Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. -+ Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved. - DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - - This code is free software; you can redistribute it and/or modify it -@@ -24,7 +24,7 @@ - <html> - <!-- - @test -- @bug 8005932 -+ @bug 8005932 8017456 - @summary Java 7 on mac os x only provides text clipboard formats - @author mikhail.cherkasov@oracle.com - @library ../../regtesthelpers ---- jdk/test/java/awt/DataFlavor/MissedHtmlAndRtfBug/MissedHtmlAndRtfBug.java Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/test/java/awt/DataFlavor/MissedHtmlAndRtfBug/MissedHtmlAndRtfBug.java Tue Jun 03 14:19:36 2014 -0700 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -21,17 +21,6 @@ - * questions. - */ - --/* -- @bug 8005932 -- @summary Java 7 on mac os x only provides text clipboard formats -- @author mikhail.cherkasov@oracle.com -- @library ../../regtesthelpers -- @library ../../regtesthelpers/process -- @build Util -- @build ProcessResults ProcessCommunicator -- @run applet/othervm MissedHtmlAndRtfBug.html --*/ -- - import java.awt.*; - import java.awt.datatransfer.DataFlavor; - import java.awt.event.*; -@@ -47,6 +36,7 @@ - import static java.lang.Thread.sleep; - - public class MissedHtmlAndRtfBug extends Applet { -+ - public void init() { - setLayout(new BorderLayout()); - }//End init() -@@ -82,9 +72,6 @@ - args.add(concatStrings(DataFlavorSearcher.RICH_TEXT_NAMES)); - - ProcessResults processResults = --// ProcessCommunicator.executeChildProcess(this.getClass(), "/Users/mcherkasov/ws/clipboard/DataFlover/out/production/DataFlover" + --// " -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005 ", --// args.toArray(new String[0])); - ProcessCommunicator.executeChildProcess(this.getClass(), - "." + File.separator + System.getProperty("java.class.path"), args.toArray(new String[]{})); - -@@ -117,6 +104,13 @@ - throw new RuntimeException("TEST IS FAILED: Target has received" + - " corrupted data."); - } -+ if (InterprocessMessages.NO_DROP_HAPPENED == -+ processResults.getExitValue()) { -+ processResults.printProcessErrorOutput(System.err); -+ throw new RuntimeException("Error. Drop did not happen." + -+ " Target frame is possibly covered by a window of other application." + -+ " Please, rerun the test with all windows minimized."); -+ } - processResults.verifyStdErr(System.err); - processResults.verifyProcessExitValue(System.err); - processResults.printProcessStandartOutput(System.out); -@@ -184,7 +178,7 @@ - } - } - -- public static void main(String[] args) { -+ public static void main(String[] args) throws InterruptedException { - Point dragSourcePoint = new Point(InterprocessArguments.DRAG_SOURCE_POINT_X_ARGUMENT.extractInt(args), - InterprocessArguments.DRAG_SOURCE_POINT_Y_ARGUMENT.extractInt(args)); - Point targetFrameLocation = new Point(InterprocessArguments.TARGET_FRAME_X_POSITION_ARGUMENT.extractInt(args), -@@ -197,6 +191,8 @@ - } catch (InterruptedException e) { - e.printStackTrace(); - } -+ sleep(5000); -+ System.exit(InterprocessMessages.NO_DROP_HAPPENED); - } - - ---- jdk/test/java/awt/Frame/7024749/bug7024749.java Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/test/java/awt/Frame/7024749/bug7024749.java Tue Jun 03 14:19:36 2014 -0700 -@@ -23,7 +23,7 @@ - - /* - * @test -- * @bug 7024749 -+ * @bug 7024749 8019990 - * @summary JDK7 b131---a crash in: Java_sun_awt_windows_ThemeReader_isGetThemeTransitionDurationDefined+0x75 - * @library ../../regtesthelpers - * @build Util ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ jdk/test/java/awt/FullScreen/DisplayChangeVITest/DisplayChangeVITest.java Tue Jun 03 14:19:36 2014 -0700 -@@ -0,0 +1,245 @@ -+/* -+ * Copyright (c) 2006, 2014, Oracle and/or its affiliates. All rights reserved. -+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -+ * -+ * This code is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License version 2 only, as -+ * published by the Free Software Foundation. -+ * -+ * This code is distributed in the hope that it will be useful, but WITHOUT -+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -+ * version 2 for more details (a copy is included in the LICENSE file that -+ * accompanied this code). -+ * -+ * You should have received a copy of the GNU General Public License version -+ * 2 along with this work; if not, write to the Free Software Foundation, -+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -+ * -+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -+ * or visit www.oracle.com if you need additional information or have any -+ * questions. -+ */ -+ -+/** -+ * @test -+ * @bug 6366359 -+ * @summary Test that we don't crash when changing from 8 to 16/32 bit modes -+ * @author Dmitri.Trembovetski@Sun.COM area=FullScreen -+ * @run main/othervm/timeout=200 DisplayChangeVITest -+ * @run main/othervm/timeout=200 -Dsun.java2d.d3d=false DisplayChangeVITest -+ * @run main/othervm/timeout=200 -Dsun.java2d.opengl=true DisplayChangeVITest -+ */ -+ -+import java.awt.Color; -+import java.awt.DisplayMode; -+import java.awt.Graphics; -+import java.awt.GraphicsDevice; -+import java.awt.GraphicsEnvironment; -+import java.awt.event.KeyAdapter; -+import java.awt.event.KeyEvent; -+import java.awt.image.BufferedImage; -+import java.awt.image.VolatileImage; -+import java.lang.Exception; -+import java.lang.Thread; -+import java.util.ArrayList; -+import java.util.Random; -+import javax.swing.JFrame; -+ -+/** -+ * The test enters fullscreen mode (if it's supported) and then tries -+ * to switch between display moes with different depths and dimensions -+ * while doing both rendering to the screen (via a VolatileImage) -+ * and Swing repainting just to make things more chaotic. -+ * -+ * The procedure is repeated TEST_REPS times (3 by default). -+ * -+ * Don't pay attention to what happens on the screen, it won't be pretty. -+ * If the test doesn't crash or throw exceptions, it passes, otherwise -+ * it fails. -+ */ -+public class DisplayChangeVITest extends JFrame implements Runnable { -+ -+ private final Random rnd = new Random(); -+ private VolatileImage bb; -+ private BufferedImage sprite; -+ private VolatileImage volSprite; -+ -+ private static boolean done = false; -+ private static final Object lock = new Object(); -+ private static final int TEST_REPS = 3; -+ -+ private ArrayList<DisplayMode> dms; -+ -+ DisplayChangeVITest() { -+ selectDisplayModes(); -+ addKeyListener(new KeyAdapter() { -+ public void keyPressed(KeyEvent e) { -+ if (e.getKeyCode() == KeyEvent.VK_ESCAPE) { -+ synchronized (lock) { -+ done = true; -+ } -+ } -+ } -+ }); -+ sprite = new BufferedImage(200, 200, BufferedImage.TYPE_INT_RGB); -+ sprite.getRaster().getDataBuffer(); -+ Graphics g = sprite.getGraphics(); -+ g.setColor(Color.yellow); -+ g.fillRect(0, 0, sprite.getWidth(), sprite.getHeight()); -+ } -+ -+ void render(Graphics g) { -+ do { -+ // volatile images validated here -+ initBackbuffer(); -+ -+ g.setColor(Color.black); -+ g.fillRect(0, 0, getWidth(), getHeight()); -+ -+ Graphics gg = bb.getGraphics(); -+ gg.setColor(new Color(rnd.nextInt(0x00ffffff))); -+ gg.fillRect(0, 0, bb.getWidth(), bb.getHeight()); -+ for (int x = 0; x < 10; x++) { -+ gg.drawImage(sprite, x*200, 0, null); -+ gg.drawImage(volSprite, x*200, 500, null); -+ } -+ -+ g.drawImage(bb, 0, 0, null); -+ } while (bb.contentsLost()); -+ } -+ -+ private static void sleep(long msec) { -+ try { Thread.sleep(msec); } catch (InterruptedException e) {} -+ } -+ -+ private int reps = 0; -+ public void run() { -+ GraphicsDevice gd = getGraphicsConfiguration().getDevice(); -+ if (gd.isDisplayChangeSupported() && dms.size() > 0) { -+ while (!done && reps++ < TEST_REPS) { -+ for (DisplayMode dm : dms) { -+ System.err.printf("Entering DisplayMode[%dx%dx%d]\n", -+ dm.getWidth(), dm.getHeight(), dm.getBitDepth()); -+ gd.setDisplayMode(dm); -+ -+ initBackbuffer(); -+ for (int i = 0; i < 10; i++) { -+ // render to the screen -+ render(getGraphics()); -+ // ask Swing to repaint -+ repaint(); -+ sleep(100); -+ } -+ sleep(1500); -+ } -+ } -+ } else { -+ System.err.println("Display mode change " + -+ "not supported. Test passed."); -+ } -+ dispose(); -+ synchronized (lock) { -+ done = true; -+ lock.notify(); -+ } -+ } -+ -+ private void createBackbuffer() { -+ if (bb == null || -+ bb.getWidth() != getWidth() || bb.getHeight() != getHeight()) -+ { -+ bb = createVolatileImage(getWidth(), getHeight()); -+ } -+ } -+ -+ private void initBackbuffer() { -+ createBackbuffer(); -+ -+ int res = bb.validate(getGraphicsConfiguration()); -+ if (res == VolatileImage.IMAGE_INCOMPATIBLE) { -+ bb = null; -+ createBackbuffer(); -+ bb.validate(getGraphicsConfiguration()); -+ res = VolatileImage.IMAGE_RESTORED; -+ } -+ if (res == VolatileImage.IMAGE_RESTORED) { -+ Graphics g = bb.getGraphics(); -+ g.setColor(new Color(rnd.nextInt(0x00ffffff))); -+ g.fillRect(0, 0, bb.getWidth(), bb.getHeight()); -+ -+ volSprite = createVolatileImage(100, 100); -+ } -+ volSprite.validate(getGraphicsConfiguration()); -+ } -+ -+ private void selectDisplayModes() { -+ GraphicsDevice gd = -+ GraphicsEnvironment.getLocalGraphicsEnvironment(). -+ getDefaultScreenDevice(); -+ dms = new ArrayList<DisplayMode>(); -+ DisplayMode dmArray[] = gd.getDisplayModes(); -+ boolean found8 = false, found16 = false, -+ found24 = false, found32 = false; -+ for (DisplayMode dm : dmArray) { -+ if (!found8 && -+ (dm.getBitDepth() == 8 || -+ dm.getBitDepth() == DisplayMode.BIT_DEPTH_MULTI) && -+ (dm.getWidth() >= 800 && dm.getWidth() < 1024)) -+ { -+ dms.add(dm); -+ found8 = true; -+ continue; -+ } -+ if (!found32 && -+ (dm.getBitDepth() == 32 || -+ dm.getBitDepth() == DisplayMode.BIT_DEPTH_MULTI) && -+ dm.getWidth() >= 1280) -+ { -+ dms.add(dm); -+ found32 = true; -+ continue; -+ } -+ if (!found16 && -+ dm.getBitDepth() == 16 && -+ (dm.getWidth() >= 1024 && dm.getWidth() < 1280)) -+ { -+ dms.add(dm); -+ found16 = true; -+ continue; -+ } -+ if (found8 && found16 && found32) { -+ break; -+ } -+ } -+ System.err.println("Found display modes:"); -+ for (DisplayMode dm : dms) { -+ System.err.printf("DisplayMode[%dx%dx%d]\n", -+ dm.getWidth(), dm.getHeight(), dm.getBitDepth()); -+ } -+ } -+ -+ public static void main(String[] args) throws Exception { -+ DisplayChangeVITest test = new DisplayChangeVITest(); -+ GraphicsDevice gd = -+ GraphicsEnvironment.getLocalGraphicsEnvironment(). -+ getDefaultScreenDevice(); -+ if (gd.isFullScreenSupported()) { -+ gd.setFullScreenWindow(test); -+ Thread t = new Thread(test); -+ t.run(); -+ synchronized (lock) { -+ while (!done) { -+ try { -+ lock.wait(50); -+ } catch (InterruptedException ex) { -+ ex.printStackTrace(); -+ } -+ } -+ } -+ System.err.println("Test Passed."); -+ } else { -+ System.err.println("Full screen not supported. Test passed."); -+ } -+ } -+} ---- jdk/test/java/awt/regtesthelpers/process/ProcessCommunicator.java Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/test/java/awt/regtesthelpers/process/ProcessCommunicator.java Tue Jun 03 14:19:36 2014 -0700 -@@ -81,7 +81,7 @@ - public static ProcessResults executeChildProcess(final Class classToExecute, - final String [] args) - { -- return executeChildProcess(classToExecute, " ", args); -+ return executeChildProcess(classToExecute, System.getProperty("java.class.path"), args); - } - - /** ---- jdk/test/java/lang/SecurityManager/CheckPackageAccess.java Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/test/java/lang/SecurityManager/CheckPackageAccess.java Tue Jun 03 14:19:36 2014 -0700 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -23,7 +23,7 @@ - - /* - * @test -- * @bug 6741606 7146431 8000450 8019830 8022945 -+ * @bug 6741606 7146431 8000450 8019830 8022945 8027144 8041633 - * @summary Make sure all restricted packages listed in the package.access - * property in the java.security file are blocked - * @run main/othervm CheckPackageAccess -@@ -84,7 +84,8 @@ - "org.jcp.xml.dsig.internal.", - "jdk.internal.", - "jdk.nashorn.internal.", -- "jdk.nashorn.tools." -+ "jdk.nashorn.tools.", -+ "com.sun.activation.registries." - }; - - public static void main(String[] args) throws Exception { ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ jdk/test/java/net/ServerSocket/AnotherSelectFdsLimit.java Tue Jun 03 14:19:36 2014 -0700 -@@ -0,0 +1,78 @@ -+/* -+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. -+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -+ * -+ * This code is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License version 2 only, as -+ * published by the Free Software Foundation. -+ * -+ * This code is distributed in the hope that it will be useful, but WITHOUT -+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -+ * version 2 for more details (a copy is included in the LICENSE file that -+ * accompanied this code). -+ * -+ * You should have received a copy of the GNU General Public License version -+ * 2 along with this work; if not, write to the Free Software Foundation, -+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -+ * -+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -+ * or visit www.oracle.com if you need additional information or have any -+ * questions. -+ */ -+ -+/* -+ * @test -+ * @bug 8035897 -+ * @summary FD_SETSIZE should be set on macosx -+ * @run main/othervm AnotherSelectFdsLimit 1023 -+ * @run main/othervm AnotherSelectFdsLimit 1024 -+ * @run main/othervm AnotherSelectFdsLimit 1025 -+ * @run main/othervm AnotherSelectFdsLimit 1600 -+ */ -+ -+import java.io.IOException; -+import java.net.ServerSocket; -+import java.net.SocketTimeoutException; -+import java.util.ArrayList; -+import java.util.List; -+ -+public class AnotherSelectFdsLimit { -+ static final int DEFAULT_FDS_TO_USE = 1600; -+ -+ public static void main(String [] args) throws Exception { -+ if (!System.getProperty("os.name").contains("OS X")) { -+ System.out.println("Test only run on MAC. Exiting."); -+ return; -+ } -+ -+ int fdsToUse = DEFAULT_FDS_TO_USE; -+ if (args.length == 1) -+ fdsToUse = Integer.parseInt(args[0]); -+ -+ System.out.println("Using " + fdsToUse + " fds."); -+ -+ List<Thread> threads = new ArrayList<>(); -+ for (int i=0; i<fdsToUse; i++) -+ threads.add(new WorkerThread()); -+ -+ for (Thread t : threads) -+ t.start(); -+ -+ for (Thread t : threads) -+ t.join(); -+ } -+ -+ static class WorkerThread extends Thread { -+ public void run() { -+ try (ServerSocket ss = new ServerSocket(0)) { -+ ss.setSoTimeout(2000); -+ ss.accept(); -+ } catch (SocketTimeoutException x) { -+ // expected -+ } catch (IOException x) { -+ throw new java.io.UncheckedIOException(x); -+ } -+ } -+ } -+} ---- jdk/test/java/nio/channels/Selector/ByteServer.java Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/test/java/nio/channels/Selector/ByteServer.java Tue Jun 03 14:19:36 2014 -0700 -@@ -22,52 +22,54 @@ - */ - - /** -- * -- * Utility class for tests. A simple server, which waits for a connection, -- * writes out n bytes and waits. -+ * Utility class for tests. A simple "in-thread" server to accept connections -+ * and write bytes. - * @author kladko - */ - - import java.net.Socket; - import java.net.ServerSocket; -+import java.net.SocketAddress; -+import java.net.InetSocketAddress; -+import java.io.IOException; -+import java.io.Closeable; - --public class ByteServer { -+public class ByteServer implements Closeable { - -- public static final String LOCALHOST = "localhost"; -- private int bytecount; -- private Socket socket; -- private ServerSocket serversocket; -- private Thread serverthread; -- volatile Exception savedException; -+ private final ServerSocket ss; -+ private Socket s; - -- public ByteServer(int bytecount) throws Exception{ -- this.bytecount = bytecount; -- serversocket = new ServerSocket(0); -+ ByteServer() throws IOException { -+ this.ss = new ServerSocket(0); - } - -- public int port() { -- return serversocket.getLocalPort(); -+ SocketAddress address() { -+ return new InetSocketAddress(ss.getInetAddress(), ss.getLocalPort()); - } - -- public void start() { -- serverthread = new Thread() { -- public void run() { -- try { -- socket = serversocket.accept(); -- socket.getOutputStream().write(new byte[bytecount]); -- socket.getOutputStream().flush(); -- } catch (Exception e) { -- System.err.println("Exception in ByteServer: " + e); -- System.exit(1); -- } -- } -- }; -- serverthread.start(); -+ void acceptConnection() throws IOException { -+ if (s != null) -+ throw new IllegalStateException("already connected"); -+ this.s = ss.accept(); - } - -- public void exit() throws Exception { -- serverthread.join(); -- socket.close(); -- serversocket.close(); -+ void closeConnection() throws IOException { -+ Socket s = this.s; -+ if (s != null) { -+ this.s = null; -+ s.close(); -+ } -+ } -+ -+ void write(int count) throws IOException { -+ if (s == null) -+ throw new IllegalStateException("no connection"); -+ s.getOutputStream().write(new byte[count]); -+ } -+ -+ public void close() throws IOException { -+ if (s != null) -+ s.close(); -+ ss.close(); - } - } ---- jdk/test/java/nio/channels/Selector/ReadAfterConnect.java Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/test/java/nio/channels/Selector/ReadAfterConnect.java Tue Jun 03 14:19:36 2014 -0700 -@@ -27,27 +27,25 @@ - * @author kladko - */ - --import java.net.*; --import java.nio.*; --import java.nio.channels.*; -+import java.nio.channels.Selector; -+import java.nio.channels.SelectionKey; -+import java.nio.channels.SocketChannel; - - public class ReadAfterConnect { -+ public static void main(String[] argv) throws Exception { -+ try (ByteServer server = new ByteServer(); -+ SocketChannel sc = SocketChannel.open(server.address())) { - -- public static void main(String[] argv) throws Exception { -- ByteServer server = new ByteServer(0); // server: accept connection and do nothing -- server.start(); -- InetSocketAddress isa = new InetSocketAddress( -- InetAddress.getByName(ByteServer.LOCALHOST), server.port()); -- Selector sel = Selector.open(); -- SocketChannel sc = SocketChannel.open(); -- sc.connect(isa); -- sc.configureBlocking(false); -- sc.register(sel, SelectionKey.OP_READ); -- // Previously channel would get selected here, although there is nothing to read -- if (sel.selectNow() != 0) -- throw new Exception("Select returned nonzero value"); -- sc.close(); -- server.exit(); -+ server.acceptConnection(); -+ -+ try (Selector sel = Selector.open()) { -+ sc.configureBlocking(false); -+ sc.register(sel, SelectionKey.OP_READ); -+ // Previously channel would get selected here, although there is nothing to read -+ if (sel.selectNow() != 0) -+ throw new Exception("Select returned nonzero value"); -+ } -+ } - } - - } ---- jdk/test/java/nio/channels/Selector/SelectAfterRead.java Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/test/java/nio/channels/Selector/SelectAfterRead.java Tue Jun 03 14:19:36 2014 -0700 -@@ -28,60 +28,62 @@ - * @author kladko - */ - --import java.net.*; --import java.nio.*; --import java.nio.channels.*; -+import java.nio.ByteBuffer; -+import java.nio.channels.Selector; -+import java.nio.channels.SelectionKey; -+import java.nio.channels.SocketChannel; - - public class SelectAfterRead { - -- final static int TIMEOUT = 1000; -+ private static final int TIMEOUT = 1000; - - public static void main(String[] argv) throws Exception { -- InetAddress lh = InetAddress.getByName(ByteServer.LOCALHOST); - - // server: accept connection and write one byte -- ByteServer server = new ByteServer(1); -- server.start(); -- Selector sel = Selector.open(); -- SocketChannel sc = SocketChannel.open(); -- sc.connect(new InetSocketAddress(lh, server.port())); -- sc.read(ByteBuffer.allocate(1)); -- sc.configureBlocking(false); -- sc.register(sel, SelectionKey.OP_READ); -- // previously on Windows select would select channel here, although there was -- // nothing to read -- if (sel.selectNow() != 0) -- throw new Exception("Select returned nonzero value"); -- sc.close(); -- sel.close(); -- server.exit(); -+ try (ByteServer server = new ByteServer(); -+ SocketChannel sc = SocketChannel.open(server.address())) { -+ -+ server.acceptConnection(); -+ server.write(1); -+ -+ try (Selector sel = Selector.open()) { -+ sc.read(ByteBuffer.allocate(1)); -+ sc.configureBlocking(false); -+ sc.register(sel, SelectionKey.OP_READ); -+ // previously on Windows select would select channel here, although there was -+ // nothing to read -+ if (sel.selectNow() != 0) -+ throw new Exception("Select returned nonzero value"); -+ } -+ } - - // Now we will test a two reads combination - // server: accept connection and write two bytes -- server = new ByteServer(2); -- server.start(); -- sc = SocketChannel.open(); -- sc.connect(new InetSocketAddress(lh, server.port())); -- sc.configureBlocking(false); -- sel = Selector.open(); -- sc.register(sel, SelectionKey.OP_READ); -- if (sel.select(TIMEOUT) != 1) -- throw new Exception("One selected key expected"); -- sel.selectedKeys().clear(); -- // previously on Windows a channel would get selected only once -- if (sel.selectNow() != 1) -- throw new Exception("One selected key expected"); -- // Previously on Windows two consequent reads would cause select() -- // to select a channel, although there was nothing remaining to -- // read in the channel -- if (sc.read(ByteBuffer.allocate(1)) != 1) -- throw new Exception("One byte expected"); -- if (sc.read(ByteBuffer.allocate(1)) != 1) -- throw new Exception("One byte expected"); -- if (sel.selectNow() != 0) -- throw new Exception("Select returned nonzero value"); -- sc.close(); -- sel.close(); -- server.exit(); -+ try (ByteServer server = new ByteServer(); -+ SocketChannel sc = SocketChannel.open(server.address())) { -+ -+ server.acceptConnection(); -+ server.write(2); -+ -+ try (Selector sel = Selector.open()) { -+ sc.configureBlocking(false); -+ sc.register(sel, SelectionKey.OP_READ); -+ if (sel.select(TIMEOUT) != 1) -+ throw new Exception("One selected key expected"); -+ sel.selectedKeys().clear(); -+ // previously on Windows a channel would get selected only once -+ if (sel.selectNow() != 1) -+ throw new Exception("One selected key expected"); -+ // Previously on Windows two consequent reads would cause select() -+ // to select a channel, although there was nothing remaining to -+ // read in the channel -+ if (sc.read(ByteBuffer.allocate(1)) != 1) -+ throw new Exception("One byte expected"); -+ if (sc.read(ByteBuffer.allocate(1)) != 1) -+ throw new Exception("One byte expected"); -+ if (sel.selectNow() != 0) -+ throw new Exception("Select returned nonzero value"); -+ } -+ } - } - } ---- jdk/test/java/nio/channels/Selector/SelectWrite.java Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/test/java/nio/channels/Selector/SelectWrite.java Tue Jun 03 14:19:36 2014 -0700 -@@ -22,36 +22,33 @@ - */ - - /* @test -- @bug 4645302 -- @summary Socket with OP_WRITE would get selected only once -- @author kladko -+ * @bug 4645302 -+ * @summary Socket with OP_WRITE would get selected only once -+ * @author kladko - */ - --import java.net.*; --import java.nio.*; --import java.nio.channels.*; -- -+import java.nio.channels.Selector; -+import java.nio.channels.SelectionKey; -+import java.nio.channels.SocketChannel; - - public class SelectWrite { - - public static void main(String[] argv) throws Exception { -- ByteServer server = new ByteServer(0); -- // server: accept connection and do nothing -- server.start(); -- InetSocketAddress isa = new InetSocketAddress( -- InetAddress.getByName(ByteServer.LOCALHOST), server.port()); -- Selector sel = Selector.open(); -- SocketChannel sc = SocketChannel.open(); -- sc.connect(isa); -- sc.configureBlocking(false); -- sc.register(sel, SelectionKey.OP_WRITE); -- sel.select(); -- sel.selectedKeys().clear(); -- if (sel.select() == 0) { -- throw new Exception("Select returned zero"); -+ try (ByteServer server = new ByteServer(); -+ SocketChannel sc = SocketChannel.open(server.address())) { -+ -+ server.acceptConnection(); -+ -+ try (Selector sel = Selector.open()) { -+ sc.configureBlocking(false); -+ sc.register(sel, SelectionKey.OP_WRITE); -+ sel.select(); -+ sel.selectedKeys().clear(); -+ if (sel.select() == 0) { -+ throw new Exception("Select returned zero"); -+ } -+ } - } -- sc.close(); -- sel.close(); - } - - } ---- jdk/test/javax/management/remote/mandatory/util/CacheMapTest.java Wed Mar 12 11:58:14 2014 +0000 -+++ /dev/null Thu Jan 01 00:00:00 1970 +0000 -@@ -1,110 +0,0 @@ --/* -- * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved. -- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -- * -- * This code is free software; you can redistribute it and/or modify it -- * under the terms of the GNU General Public License version 2 only, as -- * published by the Free Software Foundation. -- * -- * This code is distributed in the hope that it will be useful, but WITHOUT -- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -- * version 2 for more details (a copy is included in the LICENSE file that -- * accompanied this code). -- * -- * You should have received a copy of the GNU General Public License version -- * 2 along with this work; if not, write to the Free Software Foundation, -- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -- * -- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -- * or visit www.oracle.com if you need additional information or have any -- * questions. -- */ -- --/* -- * @test -- * @bug 7654321 -- * @summary Tests the CacheMap class. -- * @author Eamonn McManus -- * @run clean CacheMapTest -- * @run build CacheMapTest -- * @run main CacheMapTest -- */ -- --import java.util.Iterator; --import java.util.Map; -- --import com.sun.jmx.remote.util.CacheMap; -- --public class CacheMapTest { -- public static void main(String[] args) { -- try { -- boolean ok = test(5) && test(100); -- if (ok) { -- System.out.println("Test completed"); -- return; -- } else { -- System.out.println("Test failed!"); -- System.exit(1); -- } -- } catch (Exception e) { -- System.err.println("Unexpected exception: " + e); -- e.printStackTrace(); -- System.exit(1); -- } -- } -- -- private static boolean test(int cacheSize) throws Exception { -- System.out.println("CacheMap test with cache size " + cacheSize); -- CacheMap map = new CacheMap(cacheSize); -- int size = 0; -- int maxIterations = cacheSize * 10; -- while (map.size() == size && size < maxIterations) { -- Integer key = new Integer(size); -- Object x = map.put(key, "x"); -- if (x != null) { -- System.out.println("Map already had entry " + key + "!"); -- return false; -- } -- x = map.get(key); -- if (!"x".equals(x)) { -- System.out.println("Got back surprising value: " + x); -- return false; -- } -- size++; -- } -- System.out.println("Map size is " + map.size() + " after inserting " + -- size + " elements"); -- do { -- System.gc(); -- Thread.sleep(1); -- System.out.println("Map size is " + map.size() + " after GC"); -- } while (map.size() > cacheSize); -- if (map.size() < cacheSize) { -- System.out.println("Map shrank to less than cache size: " + -- map.size() + " (surprising but not wrong)"); -- } else -- System.out.println("Map shrank to cache size as expected"); -- int lowest = size - cacheSize; -- // lowest value that can still be in cache if LRU is respected -- for (Iterator it = map.entrySet().iterator(); it.hasNext(); ) { -- Map.Entry entry = (Map.Entry) it.next(); -- Integer x = (Integer) entry.getKey(); -- int xx = x.intValue(); -- if (xx < lowest || xx >= size) { -- System.out.println("Old value remained (" + x + "), " + -- "expected none earlier than " + lowest); -- return false; -- } -- Object xxx = entry.getValue(); -- if (!"x".equals(xxx)) { -- System.out.println("Got back surprising value: " + xxx); -- return false; -- } -- } -- if (map.size() > 0) -- System.out.println("Remaining elements are the most recent ones"); -- System.out.println("Test passed"); -- return true; -- } --} ---- jdk/test/sun/misc/Version/Version.java Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/test/sun/misc/Version/Version.java Tue Jun 03 14:19:36 2014 -0700 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 2010, 2014, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -116,10 +116,16 @@ - } else if (Character.isDigit(cs.charAt(0)) && - Character.isDigit(cs.charAt(1)) && cs.charAt(2) == '.' && - Character.isDigit(cs.charAt(3))) { -- // HSX has nn.n (major.minor) version -+ // HSX has nn.n[n] (major.minor) version - major = Integer.valueOf(version.substring(0, 2)).intValue(); -- minor = Character.digit(cs.charAt(3), 10); -- cs = cs.subSequence(4, cs.length()); -+ if (Character.isDigit(cs.charAt(4))) { -+ minor = Integer.valueOf(version.substring(3, 5)).intValue(); -+ cs = cs.subSequence(5, cs.length()); -+ } -+ else { -+ minor = Character.digit(cs.charAt(3), 10); -+ cs = cs.subSequence(4, cs.length()); -+ } - } - if (cs.charAt(0) == '_' && cs.length() >= 3 && - Character.isDigit(cs.charAt(1)) && ---- jdk/test/sun/util/calendar/zi/Zoneinfo.java Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/test/sun/util/calendar/zi/Zoneinfo.java Tue Jun 03 14:19:36 2014 -0700 -@@ -372,6 +372,7 @@ - ZoneRec zrec = zone.get(zone.size()-1); - tz.getOffsetIndex(zrec.getGmtOffset()); - -+ int lastGmtOffsetValue = -1; - int currentSave = 0; - boolean usedZone; - for (int zindex = 0; zindex < zone.size(); zindex++) { -@@ -380,9 +381,12 @@ - gmtOffset = zrec.getGmtOffset(); - int stdOffset = zrec.getDirectSave(); - -+ if (gmtOffset != lastGmtOffsetValue) { -+ tz.setRawOffset(gmtOffset, fromTime); -+ lastGmtOffsetValue = gmtOffset; -+ } - // If this is the last zone record, take the last rule info. - if (!zrec.hasUntil()) { -- tz.setRawOffset(gmtOffset, fromTime); - if (zrec.hasRuleReference()) { - tz.setLastRules(zrec.getRuleRef().getLastRules()); - } else if (stdOffset != 0) { ---- jdk/test/sun/util/calendar/zi/tzdata/VERSION Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/test/sun/util/calendar/zi/tzdata/VERSION Tue Jun 03 14:19:36 2014 -0700 -@@ -21,4 +21,4 @@ - # or visit www.oracle.com if you need additional information or have any - # questions. - # --tzdata2013i -+tzdata2014c ---- jdk/test/sun/util/calendar/zi/tzdata/africa Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/test/sun/util/calendar/zi/tzdata/africa Tue Jun 03 14:19:36 2014 -0700 -@@ -358,11 +358,54 @@ - # http://www.worldtimezone.com/dst_news/dst_news_egypt02.html - # </a> - -+# From Ahmad El-Dardiry (2014-05-07): -+# Egypt is to change back to Daylight system on May 15 -+# http://english.ahram.org.eg/NewsContent/1/64/100735/Egypt/Politics-/Egypts-government-to-reapply-daylight-saving-time-.aspx -+ -+# From Gunther Vermier (2015-05-13): -+# our Egypt office confirms that the change will be at 15 May "midnight" (24:00) -+ -+# From Paul Eggert (2014-05-13): -+# Sarah El Deeb and Lee Keath of AP report that the Egyptian government says -+# the change is because of blackouts in Cairo, even though Ahram Online (cited -+# above) says DST had no affect on electricity consumption. The AP story says -+# DST will not be observed during Ramadan. There is no information about when -+# DST will end. See: -+# http://abcnews.go.com/International/wireStory/el-sissi-pushes-egyptians-line-23614833 -+# -+# For now, guess that later transitions will use 2010's rules, and that -+# Egypt will agree with Morocco (see below) about the date Ramadan starts and -+# ends, though (unlike Morocco) it will switch at 00:00 standard time. In -+# Egypt the spring-forward transitions are removed for 2020-2022, when the -+# guessed spring-forward date falls during the estimated Ramadan, and all -+# transitions removed for 2023-2038, where the estimated Ramadan falls entirely -+# outside the guessed daylight-saving time. Ramadan intrudes on the guessed -+# DST starting in 2039, but that's beyond our somewhat-arbitrary cutoff. -+ - Rule Egypt 2008 only - Aug lastThu 23:00s 0 - - Rule Egypt 2009 only - Aug 20 23:00s 0 - - Rule Egypt 2010 only - Aug 11 0:00 0 - - Rule Egypt 2010 only - Sep 10 0:00 1:00 S - Rule Egypt 2010 only - Sep lastThu 23:00s 0 - -+Rule Egypt 2014 only - May 15 24:00 1:00 S -+Rule Egypt 2014 only - Jun 29 0:00s 0 - -+Rule Egypt 2014 only - Jul 29 0:00s 1:00 S -+Rule Egypt 2014 max - Sep lastThu 23:00s 0 - -+Rule Egypt 2015 2019 - Apr lastFri 0:00s 1:00 S -+Rule Egypt 2015 only - Jun 18 0:00s 0 - -+Rule Egypt 2015 only - Jul 18 0:00s 1:00 S -+Rule Egypt 2016 only - Jun 7 0:00s 0 - -+Rule Egypt 2016 only - Jul 7 0:00s 1:00 S -+Rule Egypt 2017 only - May 27 0:00s 0 - -+Rule Egypt 2017 only - Jun 26 0:00s 1:00 S -+Rule Egypt 2018 only - May 16 0:00s 0 - -+Rule Egypt 2018 only - Jun 15 0:00s 1:00 S -+Rule Egypt 2019 only - May 6 0:00s 0 - -+Rule Egypt 2019 only - Jun 5 0:00s 1:00 S -+Rule Egypt 2020 only - May 24 0:00s 1:00 S -+Rule Egypt 2021 only - May 13 0:00s 1:00 S -+Rule Egypt 2022 only - May 3 0:00s 1:00 S -+Rule Egypt 2023 max - Apr lastFri 0:00s 1:00 S - - # Zone NAME GMTOFF RULES FORMAT [UNTIL] - Zone Africa/Cairo 2:05:09 - LMT 1900 Oct -@@ -891,7 +934,10 @@ - # Another source (specifying the time for start and end in the decree): - # http://www.lemag.ma/Heure-d-ete-au-Maroc-jusqu-au-27-octobre_a75620.html - --# From Paul Eggert (2013-10-03): -+# From Sebastien Willemijns (2014-03-18): -+# http://www.afriquinfos.com/articles/2014/3/18/maroc-heure-dete-avancez-tous-horloges-247891.asp -+ -+# From Paul Eggert (2014-03-19): - # To estimate what the Moroccan government will do in future years, - # transition dates for 2014 through 2038 were determined by running - # the following program under GNU Emacs 24.3: ---- jdk/test/sun/util/calendar/zi/tzdata/antarctica Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/test/sun/util/calendar/zi/tzdata/antarctica Tue Jun 03 14:19:36 2014 -0700 -@@ -253,24 +253,41 @@ - # year-round base - # Scott Base, Ross Island, since 1957-01. - # See Pacific/Auckland. --# --# These rules for New Zealand are stolen from the 'australasia' file. --# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S --Rule NZAQ 1974 only - Nov 3 2:00s 1:00 D --Rule NZAQ 1975 1988 - Oct lastSun 2:00s 1:00 D --Rule NZAQ 1989 only - Oct 8 2:00s 1:00 D --Rule NZAQ 1990 2006 - Oct Sun>=1 2:00s 1:00 D --Rule NZAQ 1975 only - Feb 23 2:00s 0 S --Rule NZAQ 1976 1989 - Mar Sun>=1 2:00s 0 S --Rule NZAQ 1990 2007 - Mar Sun>=15 2:00s 0 S --Rule NZAQ 2007 max - Sep lastSun 2:00s 1:00 D --Rule NZAQ 2008 max - Apr Sun>=1 2:00s 0 S - - # Norway - territories - # Bouvet (never inhabited) - # - # claims - # Peter I Island (never inhabited) -+# -+# year-round base -+# Troll, Queen Maud Land, -720041+0023206, since 2005-02-12 -+# -+# From Paul-Inge Flakstad (2014-03-10): -+# I recently had a long dialog about this with the developer of timegenie.com. -+# In the absence of specific dates, he decided to choose some likely ones: -+# GMT +1 - From March 1 to the last Sunday in March -+# GMT +2 - From the last Sunday in March until the last Sunday in October -+# GMT +1 - From the last Sunday in October until November 7 -+# GMT +0 - From November 7 until March 1 -+# The dates for switching to and from UTC+0 will probably not be absolutely -+# correct, but they should be quite close to the actual dates. -+# -+# From Paul Eggert (2014-03-21): -+# The CET-switching Troll rules require zic from tzcode 2014b or later, so as -+# suggested by Bengt-Inge Larsson comment them out for now, and approximate -+# with only UTC and CEST. Uncomment them when 2014b is more prevalent. -+# -+# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -+#Rule Troll 2005 max - Mar 1 1:00u 1:00 CET -+Rule Troll 2005 max - Mar lastSun 1:00u 2:00 CEST -+#Rule Troll 2005 max - Oct lastSun 1:00u 1:00 CET -+#Rule Troll 2004 max - Nov 7 1:00u 0:00 UTC -+# Remove the following line when uncommenting the above '#Rule' lines. -+Rule Troll 2004 max - Oct lastSun 1:00u 0:00 UTC -+# Zone NAME GMTOFF RULES FORMAT [UNTIL] -+Zone Antarctica/Troll 0 - zzz 2005 Feb 12 -+ 0:00 Troll %s - - # Poland - year-round base - # Arctowski, King George Island, -620945-0582745, since 1977 ---- jdk/test/sun/util/calendar/zi/tzdata/asia Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/test/sun/util/calendar/zi/tzdata/asia Tue Jun 03 14:19:36 2014 -0700 -@@ -1113,8 +1113,13 @@ - Rule Zion 1986 only - Sep 7 0:00 0 S - Rule Zion 1987 only - Apr 15 0:00 1:00 D - Rule Zion 1987 only - Sep 13 0:00 0 S --Rule Zion 1988 only - Apr 9 0:00 1:00 D --Rule Zion 1988 only - Sep 3 0:00 0 S -+ -+# From Avigdor Finkelstein (2014-03-05): -+# I check the Parliament (Knesset) records and there it's stated that the -+# [1988] transition should take place on Saturday night, when the Sabbath -+# ends and changes to Sunday. -+Rule Zion 1988 only - Apr 10 0:00 1:00 D -+Rule Zion 1988 only - Sep 4 0:00 0 S - - # From Ephraim Silverberg - # (1997-03-04, 1998-03-16, 1998-12-28, 2000-01-17, 2000-07-25, 2004-12-22, -@@ -1365,22 +1370,6 @@ - # "Jordan will switch to winter time on Friday, October 27". - # - --# From Phil Pizzey (2009-04-02): --# ...I think I may have spotted an error in the timezone data for --# Jordan. --# The current (2009d) asia file shows Jordan going to daylight --# saving --# time on the last Thursday in March. --# --# Rule Jordan 2000 max - Mar lastThu 0:00s 1:00 S --# --# However timeanddate.com, which I usually find reliable, shows Jordan --# going to daylight saving time on the last Friday in March since 2002. --# Please see --# <a href="http://www.timeanddate.com/worldclock/timezone.html?n=11"> --# http://www.timeanddate.com/worldclock/timezone.html?n=11 --# </a> -- - # From Steffen Thorsen (2009-04-02): - # This single one might be good enough, (2009-03-24, Arabic): - # <a href="http://petra.gov.jo/Artical.aspx?Lng=2&Section=8&Artical=95279"> ---- jdk/test/sun/util/calendar/zi/tzdata/australasia Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/test/sun/util/calendar/zi/tzdata/australasia Tue Jun 03 14:19:36 2014 -0700 -@@ -377,16 +377,18 @@ - # http://www.fiji.gov.fj/index.php?option=com_content&view=article&id=6702&catid=71&Itemid=155 - - # From the Fijian Government Media Center (2013-08-30) via David Wheeler: --# Fiji will start daylight savings on Sunday 27th October, 2013 and end at 3am --# on Sunday 19th January, 2014.... move clocks forward by one hour from 2am -+# Fiji will start daylight savings on Sunday 27th October, 2013 ... -+# move clocks forward by one hour from 2am - # http://www.fiji.gov.fj/Media-Center/Press-Releases/DAYLIGHT-SAVING-STARTS-ON-SUNDAY,-27th-OCTOBER-201.aspx --# --# From Paul Eggert (2013-09-09): -+ -+# From Steffen Thorsen (2013-01-10): -+# Fiji will end DST on 2014-01-19 02:00: -+# http://www.fiji.gov.fj/Media-Center/Press-Releases/DAYLIGHT-SAVINGS-TO-END-THIS-MONTH-%281%29.aspx -+ -+# From Paul Eggert (2014-01-10): - # For now, guess that Fiji springs forward the Sunday before the fourth --# Monday in October. This matches both recent practice and --# timeanddate.com's current spring-forward prediction. --# For the January 2014 transition we guessed right while timeanddate.com --# guessed wrong, so leave the fall-back prediction alone. -+# Monday in October, and springs back the penultimate Sunday in January. -+# This is ad hoc, but matches recent practice. - - # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S - Rule Fiji 1998 1999 - Nov Sun>=1 2:00 1:00 S -@@ -395,7 +397,8 @@ - Rule Fiji 2010 only - Mar lastSun 3:00 0 - - Rule Fiji 2010 max - Oct Sun>=21 2:00 1:00 S - Rule Fiji 2011 only - Mar Sun>=1 3:00 0 - --Rule Fiji 2012 max - Jan Sun>=18 3:00 0 - -+Rule Fiji 2012 2013 - Jan Sun>=18 3:00 0 - -+Rule Fiji 2014 max - Jan Sun>=18 2:00 0 - - # Zone NAME GMTOFF RULES FORMAT [UNTIL] - Zone Pacific/Fiji 11:55:44 - LMT 1915 Oct 26 # Suva - 12:00 Fiji FJ%sT # Fiji Time -@@ -783,14 +786,29 @@ - - # Johnston - # --# From Paul Eggert (2013-09-03): -+# From Paul Eggert (2014-03-11): -+# Sometimes Johnston kept Hawaii time, and sometimes it was an hour behind. -+# Details are uncertain. We have no data for Johnston after 1970, so -+# treat it like Hawaii for now. -+# - # In his memoirs of June 6th to October 4, 1945 - # <http://www.315bw.org/Herb_Bach.htm> (2005), Herbert C. Bach writes, - # "We started our letdown to Kwajalein Atoll and landed there at 5:00 AM - # Johnston time, 1:30 AM Kwajalein time." This was in June 1945, and - # confirms that Johnston kept the same time as Honolulu in summer 1945. --# We have no better information, so for now, assume this has been true --# indefinitely into the past. -+# -+# From Lyle McElhaney (2014-03-11): -+# [W]hen JI was being used for that [atomic bomb] testing, the time being used -+# was not Hawaiian time but rather the same time being used on the ships, -+# which had a GMT offset of -11 hours. This apparently applied to at least the -+# time from Operation Newsreel (Hardtack I/Teak shot, 1958-08-01) to the last -+# Operation Fishbowl shot (Tightrope, 1962-11-04).... [See] Herman Hoerlin, -+# "The United States High-Altitude Test Experience: A Review Emphasizing the -+# Impact on the Environment", Los Alamos LA-6405, Oct 1976 -+# <http://www.fas.org/sgp/othergov/doe/lanl/docs1/00322994.pdf>. -+# See the table on page 4 where he lists GMT and local times for the tests; a -+# footnote for the JI tests reads that local time is "JI time = Hawaii Time -+# Minus One Hour". - # - # See 'northamerica' for Pacific/Johnston. - ---- jdk/test/sun/util/calendar/zi/tzdata/europe Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/test/sun/util/calendar/zi/tzdata/europe Tue Jun 03 14:19:36 2014 -0700 -@@ -2768,14 +2768,18 @@ - # According to the articles linked below, Turkey will change into summer - # time zone (GMT+3) on March 28, 2011 at 3:00 a.m. instead of March 27. - # This change is due to a nationwide exam on 27th. --# --# <a href="http://www.worldbulletin.net/?aType=haber&ArticleID=70872"> - # http://www.worldbulletin.net/?aType=haber&ArticleID=70872 --# </a> - # Turkish: --# <a href="http://www.hurriyet.com.tr/ekonomi/17230464.asp?gid=373"> - # http://www.hurriyet.com.tr/ekonomi/17230464.asp?gid=373 --# </a> -+ -+# From Faruk Pasin (2014-02-14): -+# The DST for Turkey has been changed for this year because of the -+# Turkish Local election.... -+# http://www.sabah.com.tr/Ekonomi/2014/02/12/yaz-saatinde-onemli-degisiklik -+# ... so Turkey will move clocks forward one hour on March 31 at 3:00 a.m. -+# From Paul Eggert (2014-02-17): -+# Here is an English-language source: -+# http://www.worldbulletin.net/turkey/129016/turkey-switches-to-daylight-saving-time-march-31 - - # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S - Rule Turkey 1916 only - May 1 0:00 1:00 S -@@ -2844,6 +2848,8 @@ - 2:00 Turkey EE%sT 2007 - 2:00 EU EE%sT 2011 Mar 27 1:00u - 2:00 - EET 2011 Mar 28 1:00u -+ 2:00 EU EE%sT 2014 Mar 30 1:00u -+ 2:00 - EET 2014 Mar 31 1:00u - 2:00 EU EE%sT - Link Europe/Istanbul Asia/Istanbul # Istanbul is in both continents. - -@@ -2865,19 +2871,13 @@ - # approval from 266 deputies. - # - # Ukraine abolishes transter back to the winter time (in Russian) --# <a href="http://news.mail.ru/politics/6861560/"> - # http://news.mail.ru/politics/6861560/ --# </a> - # - # The Ukrainians will no longer change the clock (in Russian) --# <a href="http://www.segodnya.ua/news/14290482.html"> - # http://www.segodnya.ua/news/14290482.html --# </a> - # - # Deputies cancelled the winter time (in Russian) --# <a href="http://www.pravda.com.ua/rus/news/2011/09/20/6600616/"> - # http://www.pravda.com.ua/rus/news/2011/09/20/6600616/ --# </a> - # - # From Philip Pizzey (2011-10-18): - # Today my Ukrainian colleagues have informed me that the -@@ -2888,18 +2888,39 @@ - # As far as I understand, the recent change to the Ukrainian time zone - # (Europe/Kiev) to introduce permanent daylight saving time (similar - # to Russia) was reverted today: --# --# <a href="http://portal.rada.gov.ua/rada/control/en/publish/article/info_left?art_id=287324&cat_id=105995"> - # http://portal.rada.gov.ua/rada/control/en/publish/article/info_left?art_id=287324&cat_id=105995 --# </a> - # - # Also reported by Alexander Bokovoy (2011-10-18) who also noted: - # The law documents themselves are at -+# http://w1.c1.rada.gov.ua/pls/zweb_n/webproc4_1?id=&pf3511=41484 -+ -+# From Vladimir in Moscow via Alois Treindl re Kiev time 1991/2 (2014-02-28): -+# First in Ukraine they changed Time zone from UTC+3 to UTC+2 with DST: -+# 03 25 1990 02:00 -03.00 1 Time Zone 3 with DST -+# 07 01 1990 02:00 -02.00 1 Time Zone 2 with DST -+# * Ukrainian Government's Resolution of 18.06.1990, No. 134. -+# http://search.ligazakon.ua/l_doc2.nsf/link1/T001500.html - # --# <a href="http://w1.c1.rada.gov.ua/pls/zweb_n/webproc4_1?id=&pf3511=41484"> --# http://w1.c1.rada.gov.ua/pls/zweb_n/webproc4_1?id=&pf3511=41484 --# </a> -- -+# They did not end DST in September, 1990 (according to the law, -+# "summer time" was still in action): -+# 09 30 1990 03:00 -02.00 1 Time Zone 2 with DST -+# * Ukrainian Government's Resolution of 21.09.1990, No. 272. -+# http://search.ligazakon.ua/l_doc2.nsf/link1/KP900272.html -+# -+# Again no change in March, 1991 ("summer time" in action): -+# 03 31 1991 02:00 -02.00 1 Time Zone 2 with DST -+# -+# DST ended in September 1991 ("summer time" ended): -+# 09 29 1991 03:00 -02.00 0 Time Zone 2, no DST -+# * Ukrainian Government's Resolution of 25.09.1991, No. 225. -+# http://www.uazakon.com/documents/date_21/pg_iwgdoc.htm -+# This is an answer. -+# -+# Since 1992 they had normal DST procedure: -+# 03 29 1992 02:00 -02.00 1 DST started -+# 09 27 1992 03:00 -02.00 0 DST ended -+# * Ukrainian Government's Resolution of 20.03.1992, No. 139. -+# http://www.uazakon.com/documents/date_8u/pg_grcasa.htm - - # Zone NAME GMTOFF RULES FORMAT [UNTIL] - # Most of Ukraine since 1970 has been like Kiev. -@@ -2910,9 +2931,8 @@ - 2:00 - EET 1930 Jun 21 - 3:00 - MSK 1941 Sep 20 - 1:00 C-Eur CE%sT 1943 Nov 6 -- 3:00 Russia MSK/MSD 1990 -- 3:00 - MSK 1990 Jul 1 2:00 -- 2:00 - EET 1992 -+ 3:00 Russia MSK/MSD 1990 Jul 1 2:00 -+ 2:00 1:00 EEST 1991 Sep 29 3:00 - 2:00 E-Eur EE%sT 1995 - 2:00 EU EE%sT - # Ruthenia used CET 1990/1991. -@@ -2966,7 +2986,15 @@ - # Assume it happened in March by not changing the clocks. - 3:00 Russia MSK/MSD 1997 - 3:00 - MSK 1997 Mar lastSun 1:00u -- 2:00 EU EE%sT -+# From Alexander Krivenyshev (2014-03-17): -+# time change at 2:00 (2am) on March 30, 2014 -+# http://vz.ru/news/2014/3/17/677464.html -+# From Paul Eggert (2014-03-30): -+# Simferopol and Sevastopol reportedly changed their central town clocks -+# late the previous day, but this appears to have been ceremonial -+# and the discrepancies are small enough to not worry about. -+ 2:00 EU EE%sT 2014 Mar 30 2:00 -+ 4:00 - MSK - - # Vatican City - # See Europe/Rome. ---- jdk/test/sun/util/calendar/zi/tzdata/leapseconds Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/test/sun/util/calendar/zi/tzdata/leapseconds Tue Jun 03 14:19:36 2014 -0700 -@@ -20,7 +20,7 @@ - # Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - # or visit www.oracle.com if you need additional information or have any - # questions. -- -+# - # Allowance for leapseconds added to each timezone file. - - # This file is in the public domain. ---- jdk/test/sun/util/calendar/zi/tzdata/northamerica Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/test/sun/util/calendar/zi/tzdata/northamerica Tue Jun 03 14:19:36 2014 -0700 -@@ -414,9 +414,10 @@ - # US Pacific time, represented by Los Angeles - # - # California, northern Idaho (Benewah, Bonner, Boundary, Clearwater, --# Idaho, Kootenai, Latah, Lewis, Nez Perce, and Shoshone counties, --# and the northern three-quarters of Idaho county), --# most of Nevada, most of Oregon, and Washington -+# Kootenai, Latah, Lewis, Nez Perce, and Shoshone counties, Idaho county -+# north of the Salmon River, and the towns of Burgdorf and Warren), -+# Nevada (except West Wendover), Oregon (except the northern 3/4 of -+# Malheur county), and Washington - # - # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER - Rule CA 1948 only - Mar 14 2:00 1:00 D ---- jdk/test/sun/util/calendar/zi/tzdata/southamerica Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/test/sun/util/calendar/zi/tzdata/southamerica Tue Jun 03 14:19:36 2014 -0700 -@@ -1298,6 +1298,13 @@ - # start date is 2013-09-08 00:00.... - # http://www.gob.cl/informa/2013/02/15/gobierno-anuncia-fechas-de-cambio-de-hora-para-el-ano-2013.htm - -+# From Jose Miguel Garrido (2014-02-19): -+# Today appeared in the Diario Oficial a decree amending the time change -+# dates to 2014. -+# DST End: last Saturday of April 2014 (Sun 27 Apr 2014 03:00 UTC) -+# DST Start: first Saturday of September 2014 (Sun 07 Sep 2014 04:00 UTC) -+# http://www.diariooficial.interior.gob.cl//media/2014/02/19/do-20140219.pdf -+ - # NOTE: ChileAQ rules for Antarctic bases are stored separately in the - # 'antarctica' file. - -@@ -1631,6 +1638,9 @@ - # From Carlos Raul Perasso (2013-03-15): - # The change in Paraguay is now final. Decree number 10780 - # http://www.presidencia.gov.py/uploads/pdf/presidencia-3b86ff4b691c79d4f5927ca964922ec74772ce857c02ca054a52a37b49afc7fb.pdf -+# From Carlos Raul Perasso (2014-02-28): -+# Decree 1264 can be found at: -+# http://www.presidencia.gov.py/archivos/documentos/DECRETO1264_ey9r8zai.pdf - Rule Para 2013 max - Mar Sun>=22 0:00 0 - - - # Zone NAME GMTOFF RULES FORMAT [UNTIL] -@@ -1689,18 +1699,19 @@ - Zone America/Port_of_Spain -4:06:04 - LMT 1912 Mar 2 - -4:00 - AST - -+# These all agree with Trinidad and Tobago since 1970. - Link America/Port_of_Spain America/Anguilla - Link America/Port_of_Spain America/Dominica - Link America/Port_of_Spain America/Grenada - Link America/Port_of_Spain America/Guadeloupe --Link America/Port_of_Spain America/Marigot -+Link America/Port_of_Spain America/Marigot # St Martin (French part) - Link America/Port_of_Spain America/Montserrat - Link America/Port_of_Spain America/St_Barthelemy --Link America/Port_of_Spain America/St_Kitts -+Link America/Port_of_Spain America/St_Kitts # St Kitts & Nevis - Link America/Port_of_Spain America/St_Lucia --Link America/Port_of_Spain America/St_Thomas -+Link America/Port_of_Spain America/St_Thomas # Virgin Islands (US) - Link America/Port_of_Spain America/St_Vincent --Link America/Port_of_Spain America/Tortola -+Link America/Port_of_Spain America/Tortola # Virgin Islands (UK) - - # Uruguay - # From Paul Eggert (1993-11-18): ---- jdk/test/sun/util/calendar/zi/tzdata/zone.tab Wed Mar 12 11:58:14 2014 +0000 -+++ jdk/test/sun/util/calendar/zi/tzdata/zone.tab Tue Jun 03 14:19:36 2014 -0700 -@@ -74,6 +74,7 @@ - AQ -7824+10654 Antarctica/Vostok Vostok Station, Lake Vostok - AQ -6640+14001 Antarctica/DumontDUrville Dumont-d'Urville Station, Terre Adelie - AQ -690022+0393524 Antarctica/Syowa Syowa Station, E Ongul I -+AQ -720041+0023206 Antarctica/Troll Troll Station, Queen Maud Land - AR -3436-05827 America/Argentina/Buenos_Aires Buenos Aires (BA, CF) - AR -3124-06411 America/Argentina/Cordoba most locations (CB, CC, CN, ER, FM, MN, SE, SF) - AR -2447-06525 America/Argentina/Salta (SA, LP, NQ, RN) -@@ -366,6 +367,7 @@ - RU +5545+03735 Europe/Moscow Moscow+00 - west Russia - RU +4844+04425 Europe/Volgograd Moscow+00 - Caspian Sea - RU +5312+05009 Europe/Samara Moscow+00 - Samara, Udmurtia -+RU +4457+03406 Europe/Simferopol Moscow+00 - Crimea - RU +5651+06036 Asia/Yekaterinburg Moscow+02 - Urals - RU +5500+07324 Asia/Omsk Moscow+03 - west Siberia - RU +5502+08255 Asia/Novosibirsk Moscow+03 - Novosibirsk -@@ -421,7 +423,6 @@ - UA +5026+03031 Europe/Kiev most locations - UA +4837+02218 Europe/Uzhgorod Ruthenia - UA +4750+03510 Europe/Zaporozhye Zaporozh'ye, E Lugansk / Zaporizhia, E Luhansk --UA +4457+03406 Europe/Simferopol central Crimea - UG +0019+03225 Africa/Kampala - UM +1645-16931 Pacific/Johnston Johnston Atoll - UM +2813-17722 Pacific/Midway Midway Islands ---- langtools/.hgtags Tue Mar 11 13:03:14 2014 -0700 -+++ langtools/.hgtags Tue Jun 03 14:19:44 2014 -0700 -@@ -258,6 +258,7 @@ - 9003a59a512e6b764d8a3f805aadc3996a58e5bd jdk8u5-b02 - 30e3dad0ebbdf3129bacd04a7f4cdecd3df92bb2 jdk8u5-b03 - 019dcdfffced0ca2026a0ad8c0e5fcb49d46116f jdk8u5-b04 -+c9db8c800797258540e0411e58b8f7d59273de5f jdk8u11-b00 - c9db8c800797258540e0411e58b8f7d59273de5f jdk8u5-b05 - b1920c0b701d5ff219c9f622db5cafc9bf00d5c8 jdk8u5-b06 - 180df7f2c078f1efaa6fcd8ca9f55dc5f81b182c jdk8u5-b07 -@@ -266,3 +267,15 @@ - 026543c71810701de08cdfd906d1b8fdc69b89c0 jdk8u5-b10 - a12055904afd9f951131804868215e724c71b684 jdk8u5-b11 - 2a7002626e7997e946b96530629e2787bc1864bb jdk8u5-b12 -+9beafb58fb99e8b5f7577b2f26b12743ef4d07e7 jdk8u5-b13 -+d37e407fba44f68c660f89be4e48f9e7b256a2d5 jdk8u11-b01 -+e75f843c4bf81c79ca4c5d51dfe5fe39525c5301 jdk8u11-b02 -+d9904b00b027b9176d6479dee7c7f4e054a68710 jdk8u11-b03 -+5b5c46fe954cb744e2633e1ab097e934cc547a57 jdk8u11-b04 -+f491f1581f196950c2cb858508dd06601968c417 jdk8u11-b05 -+a4ecc38ec7910d5beb07be4623bd80dabe1fbfe8 jdk8u11-b06 -+7803caf52e4b12f11e552565f55ef65aeb2be6a5 jdk8u11-b07 -+a47aa3203c0210def786ab5ee685e97d07e8bf77 jdk8u11-b08 -+e973a591a2182c0bdbdd9545ab13f83325acf1e6 jdk8u11-b09 -+51cade4632608a6c0b8da33f420bd546aecf6faf jdk8u11-b10 -+dc0d952b4199dc1cbc534c9afd535c78d21ed519 jdk8u11-b11 ---- nashorn/.hgtags Tue Mar 11 13:03:16 2014 -0700 -+++ nashorn/.hgtags Tue Jun 03 14:19:46 2014 -0700 -@@ -255,3 +255,15 @@ - 8bc83045abc547edb7cfb7d688d84164f0b11cea jdk8u5-b10 - bc23b19e08eb1575663044902b6442ceaafa924f jdk8u5-b11 - 18b007062905dac9304605955a4b84eaf2a08553 jdk8u5-b12 -+e4fb85d69d6b33c9561b932ec5515f44c53c1017 jdk8u5-b13 -+53cc5fda790e0f90dca53fb459c70517d76680bc jdk8u11-b01 -+4dda2b1e51aa7977f53c261f983230fe505bbc3e jdk8u11-b02 -+161f144c4e84037f655a2f6ebb0ba3057e8b18fa jdk8u11-b03 -+2842beaa5db81731abe9d895181fbfceef720cf3 jdk8u11-b04 -+7001e9f95b443a75e432205a29974c05b88e0fdc jdk8u11-b05 -+daa414a4d8b712584d0818fab3fd31996e4cb645 jdk8u11-b06 -+d9d482948b7c89161887b47e68e3367663d51b76 jdk8u11-b07 -+a392513941025e2750acdcc45f9df2ec9080bde9 jdk8u11-b08 -+dec6999877f39d3c17f7a092d8e2e17b676bb34b jdk8u11-b09 -+d522ff5f53730cabd02c1863bb9d437c13bcc5e0 jdk8u11-b10 -+3175dcbdd76ee9272276fa756247203dffb20596 jdk8u11-b11 ---- nashorn/make/project.properties Tue Mar 11 13:03:16 2014 -0700 -+++ nashorn/make/project.properties Tue Jun 03 14:19:46 2014 -0700 -@@ -244,7 +244,7 @@ - test.src.dir=test/src - - # -Xmx is used for all tests, -Xms only for octane benchmark --run.test.xmx=3G -+run.test.xmx=2G - run.test.xms=2G - - run.test.user.language=tr ---- nashorn/test/script/basic/JDK-8026161.js Tue Mar 11 13:03:16 2014 -0700 -+++ nashorn/test/script/basic/JDK-8026161.js Tue Jun 03 14:19:46 2014 -0700 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 2010, 2014, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it -@@ -28,5 +28,5 @@ - * @run - */ - --print(new java.awt.Color(1, 1, 1)) // creates Color[r=1,g=1,b=1] --print(new java.awt.Color(1.0, 1.0, 1.0)) // Color[r=255,g=255,b=255] -+print(Java.type("jdk.nashorn.test.models.IntFloatOverloadSelection").overloadedMethod(1)) -+print(Java.type("jdk.nashorn.test.models.IntFloatOverloadSelection").overloadedMethod(1.0)) ---- nashorn/test/script/basic/JDK-8026161.js.EXPECTED Tue Mar 11 13:03:16 2014 -0700 -+++ nashorn/test/script/basic/JDK-8026161.js.EXPECTED Tue Jun 03 14:19:46 2014 -0700 -@@ -1,2 +1,2 @@ --java.awt.Color[r=1,g=1,b=1] --java.awt.Color[r=255,g=255,b=255] -+int -+float ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ nashorn/test/src/jdk/nashorn/test/models/IntFloatOverloadSelection.java Tue Jun 03 14:19:46 2014 -0700 -@@ -0,0 +1,36 @@ -+/* -+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. -+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. -+ * -+ * This code is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License version 2 only, as -+ * published by the Free Software Foundation. Oracle designates this -+ * particular file as subject to the "Classpath" exception as provided -+ * by Oracle in the LICENSE file that accompanied this code. -+ * -+ * This code is distributed in the hope that it will be useful, but WITHOUT -+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -+ * version 2 for more details (a copy is included in the LICENSE file that -+ * accompanied this code). -+ * -+ * You should have received a copy of the GNU General Public License version -+ * 2 along with this work; if not, write to the Free Software Foundation, -+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. -+ * -+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA -+ * or visit www.oracle.com if you need additional information or have any -+ * questions. -+ */ -+package jdk.nashorn.test.models; -+ -+public class IntFloatOverloadSelection { -+ -+ public static String overloadedMethod(int i) { -+ return "int"; -+ } -+ -+ public static String overloadedMethod(float f) { -+ return "float"; -+ } -+} |