Merge jdk8u162-b03

Mon, 23 Oct 2017 06:39:54 -0700

author
robm
date
Mon, 23 Oct 2017 06:39:54 -0700
changeset 8909
e0c000e8eb75
parent 8908
d1b47c83a9dd
parent 8902
f61ab523f726
child 8910
f299cf0b7bae
child 9046
4edb0f406a2c

Merge

     1.1 --- a/.hgtags	Sat Oct 14 12:05:34 2017 +0000
     1.2 +++ b/.hgtags	Mon Oct 23 06:39:54 2017 -0700
     1.3 @@ -975,6 +975,19 @@
     1.4  23f1790147d838ddb1133cc79dc08e7c9ba5ab44 jdk8u141-b15
     1.5  eea89df81a8e414813d921eeeeef9b6795f56698 jdk8u144-b00
     1.6  db36f4d498b1bde975700a800b5ce732941c04b7 jdk8u144-b01
     1.7 +2d5100bddeb80cf767485b787fc3051311e3d7b9 jdk8u151-b00
     1.8 +596b584c68b73ec635347807571463580deb955f jdk8u151-b01
     1.9 +1f6f436360d5cd375b806aec1c78abb8fcb4e5f6 jdk8u151-b02
    1.10 +0aaeb48ae39e4fc558caf1b0c7ee504a49fec441 jdk8u151-b03
    1.11 +e48302d521d59c2fe62f874f1f5d34bc46517da7 jdk8u151-b04
    1.12 +507af6ef977a5d0306a8723dec66e34befc1ae81 jdk8u151-b05
    1.13 +e1dc36cddcbc36b78e3d0558f87bbf459191e479 jdk8u151-b06
    1.14 +e2a930243efa63b0a789e85a523e69574d53ac92 jdk8u151-b07
    1.15 +158904fa31b28f1e027dc5b5a833ee673e89a84b jdk8u151-b08
    1.16 +8b0169692abbf8fb7972920cd79cee7dcab959c3 jdk8u151-b09
    1.17 +e352e54382928eb8d5ec70455ef251973c332ccb jdk8u151-b10
    1.18 +0f06584f52ffc8627b78f4d461a3eba2b703a8f7 jdk8u151-b11
    1.19 +856e341587d52114a753e48674517e7e307fceff jdk8u151-b12
    1.20  5aa8c4ca51f0e666d368a4f119ed734d3ac59d7c jdk8u122-b00
    1.21  2198ef7e1c1702b3506b95b5d8c886ad5a12bbe5 jdk8u122-b01
    1.22  58d961f47dd4ee1d516512b7744e0f1fc83d8f52 jdk8u122-b02
    1.23 @@ -991,5 +1004,17 @@
    1.24  d63e731a896c711b8e0c30ac9ae2d900d4e024f6 jdk8u152-b03
    1.25  0bd600d6d77b5b41780074bcbfa133032dadf657 jdk8u152-b04
    1.26  68758c5ab0c1ef01e89bea8a9b799714831a177f jdk8u152-b05
    1.27 +98fb3d75fe567bda30a3667c58a9f83ad2acbdf3 jdk8u152-b06
    1.28 +4af38194b12580bdc885ab3873d7efefa990f543 jdk8u152-b07
    1.29 +285fcd09ae9994ac836a2759f6615520b2568432 jdk8u152-b08
    1.30 +70f18ab733f55856cbd880fe8ba3034ff4d7265d jdk8u152-b09
    1.31 +39967c81d3f3b8d20584d1400e6f4b2490f0c822 jdk8u152-b10
    1.32 +cbb6bc4b8c867ea69962fd5b6c79ffe3aa9fd77d jdk8u152-b11
    1.33 +cdfe7ec6f29293d7c2f64239518e8947733ad85c jdk8u152-b12
    1.34 +3dd92151df1b3b7c21756f241b49607024b6fe5a jdk8u152-b13
    1.35 +0a9d8db98fc5f0302da6520ba329f41baa092ae0 jdk8u152-b14
    1.36 +c1bf165d3b27e864a9f8eec5bb0c1e746a972ad5 jdk8u152-b15
    1.37 +98b4b0661837817cc39047000e1a7efa6015af7c jdk8u152-b16
    1.38  7b96cfeed22242bb68a387d1680e602e37e48050 jdk8u162-b00
    1.39  92693f9dd704467ddd5fbae5a5908c1713a08ee0 jdk8u162-b01
    1.40 +741b7a6743c0e02eae7e4a864f378fa1df0da112 jdk8u162-b02
     2.1 --- a/THIRD_PARTY_README	Sat Oct 14 12:05:34 2017 +0000
     2.2 +++ b/THIRD_PARTY_README	Mon Oct 23 06:39:54 2017 -0700
     2.3 @@ -2808,12 +2808,12 @@
     2.4  
     2.5  -------------------------------------------------------------------------------
     2.6  
     2.7 -%% This notice is provided with respect to zlib v1.2.8, which may be included 
     2.8 +%% This notice is provided with respect to zlib v1.2.11, which may be included 
     2.9  with JRE 8, JDK 8, and OpenJDK 8.
    2.10  
    2.11  --- begin of LICENSE ---
    2.12  
    2.13 -  version 1.2.8, April 28th, 2013
    2.14 +  version 1.2.11, January 15th, 2017
    2.15  
    2.16    Copyright (C) 1995-2017 Jean-loup Gailly and Mark Adler
    2.17  
     3.1 --- a/src/share/vm/interpreter/linkResolver.cpp	Sat Oct 14 12:05:34 2017 +0000
     3.2 +++ b/src/share/vm/interpreter/linkResolver.cpp	Mon Oct 23 06:39:54 2017 -0700
     3.3 @@ -540,6 +540,42 @@
     3.4    }
     3.5  }
     3.6  
     3.7 +void LinkResolver::check_method_loader_constraints(methodHandle& resolved_method,
     3.8 +                                                   KlassHandle resolved_klass,
     3.9 +                                                   Symbol* method_name,
    3.10 +                                                   Symbol* method_signature,
    3.11 +                                                   KlassHandle current_klass,
    3.12 +                                                   const char* method_type, TRAPS) {
    3.13 +  Handle loader (THREAD, InstanceKlass::cast(current_klass())->class_loader());
    3.14 +  Handle class_loader (THREAD, resolved_method->method_holder()->class_loader());
    3.15 +  {
    3.16 +    ResourceMark rm(THREAD);
    3.17 +    Symbol* failed_type_symbol =
    3.18 +      SystemDictionary::check_signature_loaders(method_signature, loader,
    3.19 +                                                class_loader, true, CHECK);
    3.20 +    if (failed_type_symbol != NULL) {
    3.21 +      const char* msg = "loader constraint violation: when resolving %s"
    3.22 +        " \"%s\" the class loader (instance of %s) of the current class, %s,"
    3.23 +        " and the class loader (instance of %s) for the method's defining class, %s, have"
    3.24 +        " different Class objects for the type %s used in the signature";
    3.25 +      char* sig = Method::name_and_sig_as_C_string(resolved_klass(), method_name, method_signature);
    3.26 +      const char* loader1 = SystemDictionary::loader_name(loader());
    3.27 +      char* current = InstanceKlass::cast(current_klass())->name()->as_C_string();
    3.28 +      const char* loader2 = SystemDictionary::loader_name(class_loader());
    3.29 +      char* target = InstanceKlass::cast(resolved_method->method_holder())
    3.30 +                     ->name()->as_C_string();
    3.31 +      char* failed_type_name = failed_type_symbol->as_C_string();
    3.32 +      size_t buflen = strlen(msg) + strlen(sig) + strlen(loader1) +
    3.33 +        strlen(current) + strlen(loader2) + strlen(target) +
    3.34 +        strlen(failed_type_name) + strlen(method_type) + 1;
    3.35 +      char* buf = NEW_RESOURCE_ARRAY_IN_THREAD(THREAD, char, buflen);
    3.36 +      jio_snprintf(buf, buflen, msg, method_type, sig, loader1, current, loader2,
    3.37 +                   target, failed_type_name);
    3.38 +      THROW_MSG(vmSymbols::java_lang_LinkageError(), buf);
    3.39 +    }
    3.40 +  }
    3.41 +}
    3.42 +
    3.43  void LinkResolver::resolve_method(methodHandle& resolved_method, KlassHandle resolved_klass,
    3.44                                    Symbol* method_name, Symbol* method_signature,
    3.45                                    KlassHandle current_klass, bool check_access,
    3.46 @@ -596,34 +632,8 @@
    3.47                                 CHECK);
    3.48  
    3.49      // check loader constraints
    3.50 -    Handle loader (THREAD, InstanceKlass::cast(current_klass())->class_loader());
    3.51 -    Handle class_loader (THREAD, resolved_method->method_holder()->class_loader());
    3.52 -    {
    3.53 -      ResourceMark rm(THREAD);
    3.54 -      Symbol* failed_type_symbol =
    3.55 -        SystemDictionary::check_signature_loaders(method_signature, loader,
    3.56 -                                                  class_loader, true, CHECK);
    3.57 -      if (failed_type_symbol != NULL) {
    3.58 -        const char* msg = "loader constraint violation: when resolving method"
    3.59 -          " \"%s\" the class loader (instance of %s) of the current class, %s,"
    3.60 -          " and the class loader (instance of %s) for the method's defining class, %s, have"
    3.61 -          " different Class objects for the type %s used in the signature";
    3.62 -        char* sig = Method::name_and_sig_as_C_string(resolved_klass(),method_name,method_signature);
    3.63 -        const char* loader1 = SystemDictionary::loader_name(loader());
    3.64 -        char* current = InstanceKlass::cast(current_klass())->name()->as_C_string();
    3.65 -        const char* loader2 = SystemDictionary::loader_name(class_loader());
    3.66 -        char* target = InstanceKlass::cast(resolved_method->method_holder())
    3.67 -                       ->name()->as_C_string();
    3.68 -        char* failed_type_name = failed_type_symbol->as_C_string();
    3.69 -        size_t buflen = strlen(msg) + strlen(sig) + strlen(loader1) +
    3.70 -          strlen(current) + strlen(loader2) + strlen(target) +
    3.71 -          strlen(failed_type_name) + 1;
    3.72 -        char* buf = NEW_RESOURCE_ARRAY_IN_THREAD(THREAD, char, buflen);
    3.73 -        jio_snprintf(buf, buflen, msg, sig, loader1, current, loader2,
    3.74 -                     target, failed_type_name);
    3.75 -        THROW_MSG(vmSymbols::java_lang_LinkageError(), buf);
    3.76 -      }
    3.77 -    }
    3.78 +    check_method_loader_constraints(resolved_method, resolved_klass, method_name,
    3.79 +                                    method_signature, current_klass, "method", CHECK);
    3.80    }
    3.81  }
    3.82  
    3.83 @@ -672,36 +682,8 @@
    3.84                                 resolved_method,
    3.85                                 CHECK);
    3.86  
    3.87 -    HandleMark hm(THREAD);
    3.88 -    Handle loader (THREAD, InstanceKlass::cast(current_klass())->class_loader());
    3.89 -    Handle class_loader (THREAD, resolved_method->method_holder()->class_loader());
    3.90 -    {
    3.91 -      ResourceMark rm(THREAD);
    3.92 -      Symbol* failed_type_symbol =
    3.93 -        SystemDictionary::check_signature_loaders(method_signature, loader,
    3.94 -                                                  class_loader, true, CHECK);
    3.95 -      if (failed_type_symbol != NULL) {
    3.96 -        const char* msg = "loader constraint violation: when resolving "
    3.97 -          "interface method \"%s\" the class loader (instance of %s) of the "
    3.98 -          "current class, %s, and the class loader (instance of %s) for "
    3.99 -          "the method's defining class, %s, have different Class objects for the type %s "
   3.100 -          "used in the signature";
   3.101 -        char* sig = Method::name_and_sig_as_C_string(resolved_klass(),method_name,method_signature);
   3.102 -        const char* loader1 = SystemDictionary::loader_name(loader());
   3.103 -        char* current = InstanceKlass::cast(current_klass())->name()->as_C_string();
   3.104 -        const char* loader2 = SystemDictionary::loader_name(class_loader());
   3.105 -        char* target = InstanceKlass::cast(resolved_method->method_holder())
   3.106 -                       ->name()->as_C_string();
   3.107 -        char* failed_type_name = failed_type_symbol->as_C_string();
   3.108 -        size_t buflen = strlen(msg) + strlen(sig) + strlen(loader1) +
   3.109 -          strlen(current) + strlen(loader2) + strlen(target) +
   3.110 -          strlen(failed_type_name) + 1;
   3.111 -        char* buf = NEW_RESOURCE_ARRAY_IN_THREAD(THREAD, char, buflen);
   3.112 -        jio_snprintf(buf, buflen, msg, sig, loader1, current, loader2,
   3.113 -                     target, failed_type_name);
   3.114 -        THROW_MSG(vmSymbols::java_lang_LinkageError(), buf);
   3.115 -      }
   3.116 -    }
   3.117 +    check_method_loader_constraints(resolved_method, resolved_klass, method_name,
   3.118 +                                    method_signature, current_klass, "interface method", CHECK);
   3.119    }
   3.120  
   3.121    if (nostatics && resolved_method->is_static()) {
   3.122 @@ -1051,6 +1033,10 @@
   3.123                    Method::name_and_sig_as_C_string(resolved_klass(),
   3.124                                              resolved_method->name(),
   3.125                                              resolved_method->signature()));
   3.126 +      } else if (sel_method() != resolved_method()) {
   3.127 +        check_method_loader_constraints(sel_method, resolved_klass,
   3.128 +                                        sel_method->name(), sel_method->signature(),
   3.129 +                                        current_klass, "method", CHECK);
   3.130        }
   3.131      }
   3.132  
     4.1 --- a/src/share/vm/interpreter/linkResolver.hpp	Sat Oct 14 12:05:34 2017 +0000
     4.2 +++ b/src/share/vm/interpreter/linkResolver.hpp	Mon Oct 23 06:39:54 2017 -0700
     4.3 @@ -1,5 +1,5 @@
     4.4  /*
     4.5 - * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
     4.6 + * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
     4.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4.8   *
     4.9   * This code is free software; you can redistribute it and/or modify it
    4.10 @@ -135,6 +135,9 @@
    4.11    static void resolve_pool  (KlassHandle& resolved_klass, Symbol*& method_name, Symbol*& method_signature, KlassHandle& current_klass, constantPoolHandle pool, int index, TRAPS);
    4.12  
    4.13    static void resolve_interface_method(methodHandle& resolved_method, KlassHandle resolved_klass, Symbol* method_name, Symbol* method_signature, KlassHandle current_klass, bool check_access, bool nostatics, TRAPS);
    4.14 +  static void check_method_loader_constraints(methodHandle& resolved_method, KlassHandle resolved_klass,
    4.15 +                                              Symbol* method_name, Symbol* method_signature,
    4.16 +                                              KlassHandle current_klass, const char* method_type, TRAPS);
    4.17    static void resolve_method          (methodHandle& resolved_method, KlassHandle resolved_klass, Symbol* method_name, Symbol* method_signature, KlassHandle current_klass, bool check_access, bool require_methodref, TRAPS);
    4.18  
    4.19    static void linktime_resolve_static_method    (methodHandle& resolved_method, KlassHandle resolved_klass, Symbol* method_name, Symbol* method_signature, KlassHandle current_klass, bool check_access, TRAPS);

mercurial