Merge

Thu, 08 Jun 2017 13:45:15 -0700

author
asaha
date
Thu, 08 Jun 2017 13:45:15 -0700
changeset 3405
bb56de84ab73
parent 3404
af48981bdd47
parent 3395
ec280466843d
child 3406
f081adae3486

Merge

.hgtags file | annotate | diff | comparison | revisions
     1.1 --- a/.hgtags	Tue Dec 13 12:53:03 2016 -0800
     1.2 +++ b/.hgtags	Thu Jun 08 13:45:15 2017 -0700
     1.3 @@ -667,11 +667,44 @@
     1.4  b353281f73db9617d993353e468342d3420c29f1 jdk8u112-b14
     1.5  6116c6644be0c85556931aaeb9b4f2dbc9c79157 jdk8u112-b15
     1.6  ee37eafc48cb6fb20cb6c1e31cfecfe1ccc800da jdk8u112-b16
     1.7 +de1c3df992adb0c704005583210d1ed6dac758cd jdk8u112-b31
     1.8  5710d574a99aeff3600c49a4aed34fa1b373f7b8 jdk8u121-b00
     1.9  ab5d32d8cf5f6d81482692f801385a869b2d83c1 jdk8u121-b01
    1.10  e260d46661d2da3ede78aae434d5420acce99950 jdk8u121-b02
    1.11  0acfd50d67d98259a25fbd51129b763bab56d068 jdk8u121-b03
    1.12  29a08aff06088cad98dafddef7628b51e324fcae jdk8u121-b04
    1.13 +a933635275c33e37c9403767d600a12b9ee71df7 jdk8u121-b05
    1.14 +dc1dd2e6cf8e094c4a8437d54ebc7bac1f7ab964 jdk8u121-b06
    1.15 +6cd0cd4078e9ec8ad9fa167cabf9c671ed21fc66 jdk8u121-b07
    1.16 +8efc10efbfe137ed5de6bf55875fdafd25bb6a1b jdk8u121-b08
    1.17 +57a26fe61f2b435332c0697e92965a22246cd143 jdk8u121-b09
    1.18 +53c94a674d6076ff390c62a7682ea0e87a893cdc jdk8u121-b10
    1.19 +b634abfcd98fb8b201da9208e398ea17cabd2b32 jdk8u121-b11
    1.20 +7fc347da372c8c4e5530a7fa32084b5dbc4ee8b6 jdk8u121-b12
    1.21 +f634736433d9fc1cffbdc55611f97ecb2cd44059 jdk8u121-b13
    1.22  8b331e7199f74a2dea8a8a866f0d7f1977f146ee jdk8u131-b00
    1.23 +0d04068f82fe680c65619e08ef012ead7483873b jdk8u131-b01
    1.24 +452448c6347af8f7bd827dd4632ac06c991a15b8 jdk8u131-b02
    1.25 +38ea0481f6438a6379941d5c6cfc3078ab384027 jdk8u131-b03
    1.26 +f85da82b8218301a785ef925f8f3d8a59d6d3345 jdk8u131-b04
    1.27 +5a4e3151102973a2e0420272b044d1db94337e74 jdk8u131-b05
    1.28 +dd55d0995340fa86eb7e8bb41a7205dd724a4883 jdk8u131-b06
    1.29 +bc4f253725f93d9b832ec60d521cd5426a9489ea jdk8u131-b07
    1.30 +3a62189765a88f393a51923f98020ad7b2d4fc7d jdk8u131-b08
    1.31 +2f2c4931d13c44bb6a0f808809e723de0677e302 jdk8u131-b09
    1.32 +676a07884de49a7c60379da8ac892fe1403de6b6 jdk8u131-b10
    1.33 +5162417b51bdf68b95696198181f2e662a14ff8a jdk8u131-b11
    1.34  1175fac90fdbbd864f7b1f306397644d26eb9781 jdk8u141-b00
    1.35 +bb163efa3276e129c69bad28299a6283b869caa3 jdk8u141-b01
    1.36 +5864e3781953daa69efd54b329a358a568229268 jdk8u141-b02
    1.37 +4378c8e874a5c13409b651a47b4b388f17904da1 jdk8u141-b03
    1.38 +d89ea3127a93d7ea6f2b89ee3adc673136833933 jdk8u141-b04
    1.39 +b8e0348df792b1c5f95cd7d77d5c05da1d435d32 jdk8u141-b05
    1.40 +13b638c8e005d48be437db11835a63721ca10086 jdk8u141-b06
    1.41 +4d04a70e3207dcb46b71e6f9ad04bf0e130cf389 jdk8u141-b07
    1.42 +e2abef6f10b9b2946ce8f5f851af67a764bbe57d jdk8u141-b08
    1.43 +1df48afb34a0778df6c97a2c96c483a177135431 jdk8u141-b09
    1.44 +479c13a68ca457526d49d8e2c7034a365bf0233d jdk8u141-b10
    1.45 +2cc58a0fdfd6e7e2d21a254f6830ba51c2b3612f jdk8u141-b11
    1.46 +b5259d2465fa61256f485860f986bd575f13fe92 jdk8u141-b12
    1.47  4d69601f88c30e9f05e3b56c6d38a2f3eb47d477 jdk8u151-b00
     2.1 --- a/THIRD_PARTY_README	Tue Dec 13 12:53:03 2016 -0800
     2.2 +++ b/THIRD_PARTY_README	Thu Jun 08 13:45:15 2017 -0700
     2.3 @@ -3318,12 +3318,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-2013 Jean-loup Gailly and Mark Adler
    2.17  
     3.1 --- a/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclets_ja.properties	Tue Dec 13 12:53:03 2016 -0800
     3.2 +++ b/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclets_ja.properties	Thu Jun 08 13:45:15 2017 -0700
     3.3 @@ -27,6 +27,7 @@
     3.4  doclet.Building_Tree=\u5168\u30D1\u30C3\u30B1\u30FC\u30B8\u3068\u30AF\u30E9\u30B9\u306E\u968E\u5C64\u30C4\u30EA\u30FC\u3092\u4F5C\u6210\u3057\u3066\u3044\u307E\u3059...
     3.5  doclet.Building_Index=\u5168\u30D1\u30C3\u30B1\u30FC\u30B8\u3068\u30AF\u30E9\u30B9\u306E\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u3092\u4F5C\u6210\u3057\u3066\u3044\u307E\u3059...
     3.6  doclet.Building_Index_For_All_Classes=\u5168\u30AF\u30E9\u30B9\u306E\u30A4\u30F3\u30C7\u30C3\u30AF\u30B9\u3092\u4F5C\u6210\u3057\u3066\u3044\u307E\u3059...
     3.7 +doclet.JavaScript_in_option={0}\u306E\u5F15\u6570\u306BJavaScript\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059\u3002\n--allow-script-in-comments\u3092\u4F7F\u7528\u3057\u3066\u3001JavaScript\u306E\u4F7F\u7528\u3092\u8A31\u53EF\u3057\u3066\u304F\u3060\u3055\u3044\u3002
     3.8  doclet.sourcetab_warning=-sourcetab\u306E\u5F15\u6570\u306F0\u3088\u308A\u5927\u304D\u3044\u6574\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002
     3.9  doclet.Packages=\u30D1\u30C3\u30B1\u30FC\u30B8
    3.10  doclet.Profiles=\u30D7\u30ED\u30D5\u30A1\u30A4\u30EB
     4.1 --- a/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclets_zh_CN.properties	Tue Dec 13 12:53:03 2016 -0800
     4.2 +++ b/src/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclets_zh_CN.properties	Thu Jun 08 13:45:15 2017 -0700
     4.3 @@ -27,6 +27,7 @@
     4.4  doclet.Building_Tree=\u6B63\u5728\u6784\u5EFA\u6240\u6709\u7A0B\u5E8F\u5305\u548C\u7C7B\u7684\u6811...
     4.5  doclet.Building_Index=\u6B63\u5728\u6784\u5EFA\u6240\u6709\u7A0B\u5E8F\u5305\u548C\u7C7B\u7684\u7D22\u5F15...
     4.6  doclet.Building_Index_For_All_Classes=\u6B63\u5728\u6784\u5EFA\u6240\u6709\u7C7B\u7684\u7D22\u5F15...
     4.7 +doclet.JavaScript_in_option={0} \u7684\u53C2\u6570\u5305\u542B JavaScript\u3002\n\u4F7F\u7528 --allow-script-in-comments \u53EF\u5141\u8BB8\u4F7F\u7528 JavaScript\u3002
     4.8  doclet.sourcetab_warning=-sourcetab \u7684\u53C2\u6570\u5FC5\u987B\u662F\u5927\u4E8E 0 \u7684\u6574\u6570\u3002
     4.9  doclet.Packages=\u7A0B\u5E8F\u5305
    4.10  doclet.Profiles=\u914D\u7F6E\u6587\u4EF6
     5.1 --- a/src/share/classes/com/sun/tools/javac/code/Types.java	Tue Dec 13 12:53:03 2016 -0800
     5.2 +++ b/src/share/classes/com/sun/tools/javac/code/Types.java	Thu Jun 08 13:45:15 2017 -0700
     5.3 @@ -1067,7 +1067,7 @@
     5.4         List<Type> argtypes = msym.type.getParameterTypes();
     5.5         return (msym.flags_field & NATIVE) != 0 &&
     5.6                 msym.owner == syms.methodHandleType.tsym &&
     5.7 -               argtypes.tail.tail == null &&
     5.8 +               argtypes.length() == 1 &&
     5.9                 argtypes.head.hasTag(TypeTag.ARRAY) &&
    5.10                 msym.type.getReturnType().tsym == syms.objectType.tsym &&
    5.11                 ((ArrayType)argtypes.head).elemtype.tsym == syms.objectType.tsym;
     6.1 --- a/src/share/classes/com/sun/tools/javadoc/resources/javadoc_ja.properties	Tue Dec 13 12:53:03 2016 -0800
     6.2 +++ b/src/share/classes/com/sun/tools/javadoc/resources/javadoc_ja.properties	Thu Jun 08 13:45:15 2017 -0700
     6.3 @@ -1,5 +1,5 @@
     6.4  #
     6.5 -# Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
     6.6 +# Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
     6.7  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     6.8  #
     6.9  # This code is free software; you can redistribute it and/or modify it
    6.10 @@ -81,6 +81,7 @@
    6.11  javadoc.Body_missing_from_html_file=HTML\u306Bbody\u30BF\u30B0\u304C\u3042\u308A\u307E\u305B\u3093
    6.12  javadoc.End_body_missing_from_html_file=HTML\u30D5\u30A1\u30A4\u30EB\u306Bbody\u306E\u9589\u3058\u30BF\u30B0\u304C\u3042\u308A\u307E\u305B\u3093
    6.13  javadoc.Multiple_package_comments=\u30D1\u30C3\u30B1\u30FC\u30B8"{0}"\u306B\u8907\u6570\u306E\u30D1\u30C3\u30B1\u30FC\u30B8\u30FB\u30B3\u30E1\u30F3\u30C8\u306E\u30BD\u30FC\u30B9\u304C\u691C\u51FA\u3055\u308C\u307E\u3057\u305F
    6.14 +javadoc.JavaScript_in_comment=\u30C9\u30AD\u30E5\u30E1\u30F3\u30C8\u30FB\u30B3\u30E1\u30F3\u30C8\u306BJavaScript\u304C\u898B\u3064\u304B\u308A\u307E\u3057\u305F\u3002\n--allow-script-in-comments\u3092\u4F7F\u7528\u3057\u3066\u3001JavaScript\u306E\u4F7F\u7528\u3092\u8A31\u53EF\u3057\u3066\u304F\u3060\u3055\u3044\u3002
    6.15  javadoc.class_not_found=\u30AF\u30E9\u30B9{0}\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002
    6.16  javadoc.error=\u30A8\u30E9\u30FC
    6.17  javadoc.warning=\u8B66\u544A
     7.1 --- a/src/share/classes/com/sun/tools/javadoc/resources/javadoc_zh_CN.properties	Tue Dec 13 12:53:03 2016 -0800
     7.2 +++ b/src/share/classes/com/sun/tools/javadoc/resources/javadoc_zh_CN.properties	Thu Jun 08 13:45:15 2017 -0700
     7.3 @@ -1,5 +1,5 @@
     7.4  #
     7.5 -# Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
     7.6 +# Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved.
     7.7  # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     7.8  #
     7.9  # This code is free software; you can redistribute it and/or modify it
    7.10 @@ -81,6 +81,7 @@
    7.11  javadoc.Body_missing_from_html_file=HTML \u6587\u4EF6\u4E2D\u7F3A\u5C11\u4E3B\u4F53\u6807\u8BB0
    7.12  javadoc.End_body_missing_from_html_file=HTML \u6587\u4EF6\u4E2D\u7F3A\u5C11\u4E3B\u4F53\u7ED3\u675F\u6807\u8BB0
    7.13  javadoc.Multiple_package_comments=\u627E\u5230\u7A0B\u5E8F\u5305 "{0}" \u7684\u591A\u4E2A\u7A0B\u5E8F\u5305\u6CE8\u91CA\u6E90
    7.14 +javadoc.JavaScript_in_comment=\u6587\u6863\u6CE8\u91CA\u4E2D\u53D1\u73B0 JavaScript\u3002\n\u4F7F\u7528 --allow-script-in-comments \u53EF\u5141\u8BB8\u4F7F\u7528 JavaScript\u3002
    7.15  javadoc.class_not_found=\u627E\u4E0D\u5230\u7C7B{0}\u3002
    7.16  javadoc.error=\u9519\u8BEF
    7.17  javadoc.warning=\u8B66\u544A
     8.1 --- a/src/share/classes/com/sun/tools/jdeps/ClassFileReader.java	Tue Dec 13 12:53:03 2016 -0800
     8.2 +++ b/src/share/classes/com/sun/tools/jdeps/ClassFileReader.java	Thu Jun 08 13:45:15 2017 -0700
     8.3 @@ -1,5 +1,5 @@
     8.4  /*
     8.5 - * Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved.
     8.6 + * Copyright (c) 2012, 2017, Oracle and/or its affiliates. All rights reserved.
     8.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     8.8   *
     8.9   * This code is free software; you can redistribute it and/or modify it
    8.10 @@ -34,8 +34,10 @@
    8.11  import java.nio.file.SimpleFileVisitor;
    8.12  import java.nio.file.attribute.BasicFileAttributes;
    8.13  import java.util.*;
    8.14 +import java.util.jar.Attributes;
    8.15  import java.util.jar.JarEntry;
    8.16  import java.util.jar.JarFile;
    8.17 +import java.util.jar.Manifest;
    8.18  
    8.19  /**
    8.20   * ClassFileReader reads ClassFile(s) of a given path that can be
    8.21 @@ -154,6 +156,8 @@
    8.22          }
    8.23      }
    8.24  
    8.25 +    public boolean isMultiReleaseJar() throws IOException { return false; }
    8.26 +
    8.27      public String toString() {
    8.28          return path.toString();
    8.29      }
    8.30 @@ -290,6 +294,16 @@
    8.31                  }
    8.32              };
    8.33          }
    8.34 +
    8.35 +        @Override
    8.36 +        public boolean isMultiReleaseJar() throws IOException {
    8.37 +            Manifest mf = this.jarfile.getManifest();
    8.38 +            if (mf != null) {
    8.39 +                Attributes atts = mf.getMainAttributes();
    8.40 +                return "true".equalsIgnoreCase(atts.getValue("Multi-Release"));
    8.41 +            }
    8.42 +            return false;
    8.43 +        }
    8.44      }
    8.45  
    8.46      class JarFileIterator implements Iterator<ClassFile> {
     9.1 --- a/src/share/classes/com/sun/tools/jdeps/JdepsTask.java	Tue Dec 13 12:53:03 2016 -0800
     9.2 +++ b/src/share/classes/com/sun/tools/jdeps/JdepsTask.java	Thu Jun 08 13:45:15 2017 -0700
     9.3 @@ -1,5 +1,5 @@
     9.4  /*
     9.5 - * Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved.
     9.6 + * Copyright (c) 2012, 2017, Oracle and/or its affiliates. All rights reserved.
     9.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     9.8   *
     9.9   * This code is free software; you can redistribute it and/or modify it
    9.10 @@ -515,6 +515,13 @@
    9.11          // add all classpath archives to the source locations for reporting
    9.12          sourceLocations.addAll(classpaths);
    9.13  
    9.14 +        // warn about Multi-Release jars
    9.15 +        for (Archive a : sourceLocations) {
    9.16 +            if (a.reader().isMultiReleaseJar()) {
    9.17 +                warning("warn.mrjar.usejdk9", a.getPathName());
    9.18 +            }
    9.19 +        }
    9.20 +
    9.21          // Work queue of names of classfiles to be searched.
    9.22          // Entries will be unique, and for classes that do not yet have
    9.23          // dependencies in the results map.
    10.1 --- a/src/share/classes/com/sun/tools/jdeps/resources/jdeps.properties	Tue Dec 13 12:53:03 2016 -0800
    10.2 +++ b/src/share/classes/com/sun/tools/jdeps/resources/jdeps.properties	Thu Jun 08 13:45:15 2017 -0700
    10.3 @@ -99,6 +99,10 @@
    10.4  Please modify your code to eliminate dependency on any JDK internal APIs.\n\
    10.5  For the most recent update on JDK internal API replacements, please check:\n\
    10.6  {0}
    10.7 +warn.mrjar.usejdk9=\
    10.8 +{0} is a multi-release jar file.\n\
    10.9 +All versioned entries are analyzed. To analyze the entries for a specific\n\
   10.10 +version, use a newer version of jdeps (JDK 9 or later) \"--multi-release\" option.
   10.11  
   10.12  artifact.not.found=not found
   10.13  jdeps.wiki.url=https://wiki.openjdk.java.net/display/JDK8/Java+Dependency+Analysis+Tool
    11.1 --- a/src/share/classes/com/sun/tools/jdeps/resources/jdeps_ja.properties	Tue Dec 13 12:53:03 2016 -0800
    11.2 +++ b/src/share/classes/com/sun/tools/jdeps/resources/jdeps_ja.properties	Thu Jun 08 13:45:15 2017 -0700
    11.3 @@ -46,6 +46,7 @@
    11.4  warn.invalid.arg=\u7121\u52B9\u306A\u30AF\u30E9\u30B9\u540D\u307E\u305F\u306F\u30D1\u30B9\u540D\u304C\u5B58\u5728\u3057\u307E\u305B\u3093: {0}
    11.5  warn.split.package=\u30D1\u30C3\u30B1\u30FC\u30B8{0}\u306F{1} {2}\u3067\u5B9A\u7FA9\u3055\u308C\u3066\u3044\u307E\u3059
    11.6  warn.replace.useJDKInternals=JDK\u5185\u90E8API\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u304A\u3089\u305A\u3001JDK\u5B9F\u88C5\u5C02\u7528\u3067\u3059\u304C\u3001\u4E92\u63DB\u6027\u306A\u3057\u3067\n\u524A\u9664\u307E\u305F\u306F\u5909\u66F4\u3055\u308C\u308B\u5834\u5408\u304C\u3042\u308A\u3001\u30A2\u30D7\u30EA\u30B1\u30FC\u30B7\u30E7\u30F3\u3092\u4E2D\u65AD\u3055\u305B\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002\nJDK\u5185\u90E8API\u306E\u4F9D\u5B58\u6027\u3092\u524A\u9664\u3059\u308B\u3088\u3046\u30B3\u30FC\u30C9\u3092\u5909\u66F4\u3057\u3066\u304F\u3060\u3055\u3044\u3002\nJDK\u5185\u90E8API\u306E\u7F6E\u63DB\u306B\u95A2\u3059\u308B\u6700\u65B0\u306E\u66F4\u65B0\u306B\u3064\u3044\u3066\u306F\u3001\u6B21\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044:\n{0}
    11.7 +warn.mrjar.usejdk9={0}\u306F\u30DE\u30EB\u30C1\u30EA\u30EA\u30FC\u30B9jar\u30D5\u30A1\u30A4\u30EB\u3067\u3059\u3002\n\u3059\u3079\u3066\u306E\u30D0\u30FC\u30B8\u30E7\u30CB\u30F3\u30B0\u6E08\u30A8\u30F3\u30C8\u30EA\u3092\u5206\u6790\u3057\u307E\u3059\u3002\u7279\u5B9A\u306E\u30D0\u30FC\u30B8\u30E7\u30F3\u306E\u30A8\u30F3\u30C8\u30EA\u3092\u5206\u6790\u3059\u308B\u306B\u306F\u3001\n\u65B0\u3057\u3044\u30D0\u30FC\u30B8\u30E7\u30F3\u306Ejdeps (JDK 9\u4EE5\u964D)\u306E"--multi-release"\u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u4F7F\u7528\u3057\u307E\u3059\u3002
    11.8  
    11.9  artifact.not.found=\u898B\u3064\u304B\u308A\u307E\u305B\u3093
   11.10  jdeps.wiki.url=https://wiki.openjdk.java.net/display/JDK8/Java+Dependency+Analysis+Tool
    12.1 --- a/src/share/classes/com/sun/tools/jdeps/resources/jdeps_zh_CN.properties	Tue Dec 13 12:53:03 2016 -0800
    12.2 +++ b/src/share/classes/com/sun/tools/jdeps/resources/jdeps_zh_CN.properties	Thu Jun 08 13:45:15 2017 -0700
    12.3 @@ -46,6 +46,7 @@
    12.4  warn.invalid.arg=\u7C7B\u540D\u65E0\u6548\u6216\u8DEF\u5F84\u540D\u4E0D\u5B58\u5728: {0}
    12.5  warn.split.package=\u5DF2\u5728{1} {2}\u4E2D\u5B9A\u4E49\u7A0B\u5E8F\u5305{0}
    12.6  warn.replace.useJDKInternals=\u4E0D\u652F\u6301 JDK \u5185\u90E8 API, \u5B83\u4EEC\u4E13\u7528\u4E8E\u901A\u8FC7\u4E0D\u517C\u5BB9\u65B9\u5F0F\u6765\u5220\u9664\n\u6216\u66F4\u6539\u7684 JDK \u5B9E\u73B0, \u53EF\u80FD\u4F1A\u635F\u574F\u60A8\u7684\u5E94\u7528\u7A0B\u5E8F\u3002\n\u8BF7\u4FEE\u6539\u60A8\u7684\u4EE3\u7801, \u6D88\u9664\u4E0E\u4EFB\u4F55 JDK \u5185\u90E8 API \u7684\u76F8\u5173\u6027\u3002\n\u6709\u5173 JDK \u5185\u90E8 API \u66FF\u6362\u7684\u6700\u65B0\u66F4\u65B0, \u8BF7\u67E5\u770B:\n{0}
    12.7 +warn.mrjar.usejdk9={0} \u662F\u591A\u53D1\u884C\u7248 jar \u6587\u4EF6\u3002\n\u5DF2\u5206\u6790\u6240\u6709\u7248\u672C\u5316\u6761\u76EE\u3002\u8981\u5206\u6790\u67D0\u4E2A\u7279\u5B9A\u7248\u672C\u7684\u6761\u76EE,\n\u8BF7\u4F7F\u7528\u66F4\u65B0\u7248\u672C\u7684 jdeps (JDK 9 \u6216\u66F4\u9AD8\u7248\u672C) "--multi-release" \u9009\u9879\u3002
    12.8  
    12.9  artifact.not.found=\u627E\u4E0D\u5230
   12.10  jdeps.wiki.url=https://wiki.openjdk.java.net/display/JDK8/Java+Dependency+Analysis+Tool
    13.1 --- a/src/share/classes/com/sun/tools/jdeps/resources/jdkinternals.properties	Tue Dec 13 12:53:03 2016 -0800
    13.2 +++ b/src/share/classes/com/sun/tools/jdeps/resources/jdkinternals.properties	Thu Jun 08 13:45:15 2017 -0700
    13.3 @@ -1,22 +1,45 @@
    13.4  // No translation needed
    13.5  com.sun.crypto.provider.SunJCE=Use java.security.Security.getProvider(provider-name) @since 1.3
    13.6 -com.sun.image.codec=Use javax.imageio @since 1.4
    13.7  com.sun.org.apache.xml.internal.security=Use java.xml.crypto @since 1.6
    13.8  com.sun.org.apache.xml.internal.security.utils.Base64=Use java.util.Base64 @since 1.8
    13.9 +com.sun.org.apache.xml.internal.resolver=Use javax.xml.catalog @since 9
   13.10  com.sun.net.ssl=Use javax.net.ssl @since 1.4
   13.11  com.sun.net.ssl.internal.ssl.Provider=Use java.security.Security.getProvider(provider-name) @since 1.3
   13.12  com.sun.rowset=Use javax.sql.rowset.RowSetProvider @since 1.7
   13.13 +com.sun.tools.doclets.standard=Use jdk.javadoc.doclets.StandardDoclet @since 9.
   13.14  com.sun.tools.javac.tree=Use com.sun.source @since 1.6
   13.15  com.sun.tools.javac=Use javax.tools and javax.lang.model @since 1.6
   13.16 -sun.awt.image.codec=Use javax.imageio @since 1.4
   13.17 -sun.misc.BASE64Encoder=Use java.util.Base64 @since 1.8
   13.18 -sun.misc.BASE64Decoder=Use java.util.Base64 @since 1.8
   13.19 -sun.misc.Cleaner=Use java.lang.ref.PhantomReference @since 1.2
   13.20 -sun.misc.Service=Use java.util.ServiceLoader @since 1.6
   13.21 +java.awt.peer=Should not use. See https://bugs.openjdk.java.net/browse/JDK-8037739
   13.22 +java.awt.dnd.peer=Should not use. See https://bugs.openjdk.java.net/browse/JDK-8037739
   13.23 +jdk.internal.ref.Cleaner=Use java.lang.ref.PhantomReference @since 1.2 or java.lang.ref.Cleaner @since 9
   13.24 +sun.awt.CausedFocusEvent=Use java.awt.event.FocusEvent::getCause @since 9
   13.25 +sun.font.FontUtilities=See java.awt.Font.textRequiresLayout @since 9
   13.26 +sun.reflect.Reflection=See http://openjdk.java.net/jeps/260
   13.27 +sun.reflect.ReflectionFactory=See http://openjdk.java.net/jeps/260
   13.28 +sun.misc.Unsafe=See http://openjdk.java.net/jeps/260
   13.29 +sun.misc.Signal=See http://openjdk.java.net/jeps/260
   13.30 +sun.misc.SignalHandler=See http://openjdk.java.net/jeps/260
   13.31  sun.security.action=Use java.security.PrivilegedAction @since 1.1
   13.32  sun.security.krb5=Use com.sun.security.jgss
   13.33  sun.security.provider.PolicyFile=Use java.security.Policy.getInstance("JavaPolicy", new URIParameter(uri)) @since 1.6
   13.34  sun.security.provider.Sun=Use java.security.Security.getProvider(provider-name) @since 1.3
   13.35 +sun.security.util.HostnameChecker=Use javax.net.ssl.SSLParameters.setEndpointIdentificationAlgorithm("HTTPS") @since 1.7\n\
   13.36 +or javax.net.ssl.HttpsURLConnection.setHostnameVerifier() @since 1.4
   13.37  sun.security.util.SecurityConstants=Use appropriate java.security.Permission subclass @since 1.1
   13.38  sun.security.x509.X500Name=Use javax.security.auth.x500.X500Principal @since 1.4
   13.39 -sun.tools.jar=Use java.util.jar or jar tool @since 1.2
   13.40 +sun.tools.jar=Use java.util.jar @since 1.2
   13.41 +sun.tools.jar.Main=Use java.util.spi.ToolProvider @since 9
   13.42 +# Internal APIs removed in JDK 9
   13.43 +com.apple.eawt=Use java.awt.Desktop @since 9.  See http://openjdk.java.net/jeps/272
   13.44 +com.apple.concurrent=Removed in JDK 9. See https://bugs.openjdk.java.net/browse/JDK-8148187
   13.45 +com.sun.image.codec.jpeg=Use javax.imageio @since 1.4
   13.46 +sun.awt.image.codec=Use javax.imageio @since 1.4
   13.47 +sun.misc.BASE64Encoder=Use java.util.Base64 @since 1.8
   13.48 +sun.misc.BASE64Decoder=Use java.util.Base64 @since 1.8
   13.49 +sun.misc.ClassLoaderUtil=Use java.net.URLClassLoader.close() @since 1.7
   13.50 +sun.misc.Cleaner=Use java.lang.ref.PhantomReference @since 1.2 or java.lang.ref.Cleaner @since 9.\n\
   13.51 +See http://openjdk.java.net/jeps/260.
   13.52 +sun.misc.Service=Use java.util.ServiceLoader @since 1.6
   13.53 +sun.misc=Removed in JDK 9. See http://openjdk.java.net/jeps/260
   13.54 +sun.reflect=Removed in JDK 9. See http://openjdk.java.net/jeps/260
   13.55 +
    14.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    14.2 +++ b/test/tools/javac/meth/BadPolySig.java	Thu Jun 08 13:45:15 2017 -0700
    14.3 @@ -0,0 +1,37 @@
    14.4 +/*
    14.5 + * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
    14.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    14.7 + *
    14.8 + * This code is free software; you can redistribute it and/or modify it
    14.9 + * under the terms of the GNU General Public License version 2 only, as
   14.10 + * published by the Free Software Foundation.  Oracle designates this
   14.11 + * particular file as subject to the "Classpath" exception as provided
   14.12 + * by Oracle in the LICENSE file that accompanied this code.
   14.13 + *
   14.14 + * This code is distributed in the hope that it will be useful, but WITHOUT
   14.15 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   14.16 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   14.17 + * version 2 for more details (a copy is included in the LICENSE file that
   14.18 + * accompanied this code).
   14.19 + *
   14.20 + * You should have received a copy of the GNU General Public License version
   14.21 + * 2 along with this work; if not, write to the Free Software Foundation,
   14.22 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   14.23 + *
   14.24 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
   14.25 + * or visit www.oracle.com if you need additional information or have any
   14.26 + * questions.
   14.27 + */
   14.28 +
   14.29 +/*
   14.30 + * @test
   14.31 + * @bug 8168774
   14.32 + * @summary Polymorhic signature method check crashes javac
   14.33 + * @compile BadPolySig.java
   14.34 + */
   14.35 +
   14.36 +package java.lang.invoke;
   14.37 +
   14.38 +class MethodHandle {
   14.39 +    native Object m();
   14.40 +}
    15.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    15.2 +++ b/test/tools/jdeps/MRJarWarning.java	Thu Jun 08 13:45:15 2017 -0700
    15.3 @@ -0,0 +1,169 @@
    15.4 +/*
    15.5 + * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
    15.6 + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
    15.7 + *
    15.8 + * This code is free software; you can redistribute it and/or modify it
    15.9 + * under the terms of the GNU General Public License version 2 only, as
   15.10 + * published by the Free Software Foundation.
   15.11 + *
   15.12 + * This code is distributed in the hope that it will be useful, but WITHOUT
   15.13 + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
   15.14 + * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
   15.15 + * version 2 for more details (a copy is included in the LICENSE file that
   15.16 + * accompanied this code).
   15.17 + *
   15.18 + * You should have received a copy of the GNU General Public License version
   15.19 + * 2 along with this work; if not, write to the Free Software Foundation,
   15.20 + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
   15.21 + *
   15.22 + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
   15.23 + * or visit www.oracle.com if you need additional information or have any
   15.24 + * questions.
   15.25 + */
   15.26 +
   15.27 +/*
   15.28 + * @test
   15.29 + * @bug 8176329
   15.30 + * @summary Test for jdeps warning when it encounters a multi-release jar
   15.31 + * @run testng MRJarWarning
   15.32 + */
   15.33 +
   15.34 +import java.io.IOException;
   15.35 +import java.io.OutputStream;
   15.36 +import java.io.PrintWriter;
   15.37 +import java.io.StringWriter;
   15.38 +import java.nio.file.Files;
   15.39 +import java.nio.file.Path;
   15.40 +import java.nio.file.Paths;
   15.41 +import java.util.Arrays;
   15.42 +import java.util.Collections;
   15.43 +import java.util.List;
   15.44 +import java.util.Locale;
   15.45 +import java.util.jar.Attributes;
   15.46 +import java.util.jar.JarEntry;
   15.47 +import java.util.jar.JarOutputStream;
   15.48 +import java.util.jar.Manifest;
   15.49 +import org.testng.Assert;
   15.50 +import org.testng.annotations.BeforeSuite;
   15.51 +import org.testng.annotations.DataProvider;
   15.52 +import org.testng.annotations.Test;
   15.53 +
   15.54 +public class MRJarWarning {
   15.55 +    private static final String WARNING = " is a multi-release jar file";
   15.56 +    private static final String MRJAR_ATTR = "Multi-Release";
   15.57 +
   15.58 +    Path mrjar1;
   15.59 +    Path mrjar2;
   15.60 +    Path nonMRjar;
   15.61 +    Path mrjarAllCaps;
   15.62 +
   15.63 +    private Attributes defaultAttributes;
   15.64 +
   15.65 +    @BeforeSuite
   15.66 +    public void setup() throws IOException {
   15.67 +        defaultAttributes = new Attributes();
   15.68 +        defaultAttributes.putValue("Manifest-Version", "1.0");
   15.69 +        defaultAttributes.putValue("Created-By", "1.8.0-internal");
   15.70 +
   15.71 +        mrjar1   = Paths.get("mrjar1.jar");
   15.72 +        mrjar2   = Paths.get("mrjar2.jar");
   15.73 +        nonMRjar = Paths.get("nonMRjar.jar");
   15.74 +        mrjarAllCaps = Paths.get("mrjarAllCaps.jar");
   15.75 +
   15.76 +        Attributes mrJarAttrs = new Attributes(defaultAttributes);
   15.77 +        mrJarAttrs.putValue(MRJAR_ATTR, "true");
   15.78 +
   15.79 +        build(mrjar1, mrJarAttrs);
   15.80 +        build(mrjar2, mrJarAttrs);
   15.81 +        build(nonMRjar, defaultAttributes);
   15.82 +
   15.83 +        // JEP 238 - "Multi-Release JAR Files" states that the attribute name
   15.84 +        // and value are case insensitive.  Try with all caps to ensure that
   15.85 +        // jdeps still recognizes a multi-release jar.
   15.86 +        Attributes allCapsAttrs = new Attributes(defaultAttributes);
   15.87 +        allCapsAttrs.putValue(MRJAR_ATTR.toUpperCase(), "TRUE");
   15.88 +        build(mrjarAllCaps, allCapsAttrs);
   15.89 +    }
   15.90 +
   15.91 +    @DataProvider(name="provider")
   15.92 +    private Object[][] args() {
   15.93 +        // jdeps warning messages may be localized.
   15.94 +        // This test only checks for the English version.  Return an empty
   15.95 +        // array (skip testing) if the default language is not English.
   15.96 +        String language = Locale.getDefault().getLanguage();
   15.97 +        System.out.println("Language: " + language);
   15.98 +
   15.99 +        if ("en".equals(language)) {
  15.100 +            return new Object[][] {
  15.101 +                // one mrjar arg
  15.102 +                {   Arrays.asList(mrjar1.toString()),
  15.103 +                    Arrays.asList(mrjar1)},
  15.104 +                // two mrjar args
  15.105 +                {   Arrays.asList(mrjar1.toString(), mrjar2.toString()),
  15.106 +                    Arrays.asList(mrjar1, mrjar2)},
  15.107 +                // one mrjar arg, with mrjar on classpath
  15.108 +                {   Arrays.asList("-cp", mrjar2.toString(), mrjar1.toString()),
  15.109 +                    Arrays.asList(mrjar1, mrjar2)},
  15.110 +                // non-mrjar arg, with mrjar on classpath
  15.111 +                {   Arrays.asList("-cp", mrjar1.toString(), nonMRjar.toString()),
  15.112 +                    Arrays.asList(mrjar1)},
  15.113 +                // mrjar arg with jar attribute name/value in ALL CAPS
  15.114 +                {   Arrays.asList(mrjarAllCaps.toString()),
  15.115 +                    Arrays.asList(mrjarAllCaps)},
  15.116 +                // non-mrjar arg
  15.117 +                {   Arrays.asList(nonMRjar.toString()),
  15.118 +                    Collections.emptyList()}
  15.119 +            };
  15.120 +        } else {
  15.121 +            System.out.println("Non-English language \""+ language +
  15.122 +                    "\"; test passes superficially");
  15.123 +            return new Object[][]{};
  15.124 +        }
  15.125 +    }
  15.126 +
  15.127 +    /* Run jdeps with the arguments given in 'args', and confirm that a warning
  15.128 +     * is issued for each Multi-Release jar in 'expectedMRpaths'.
  15.129 +     */
  15.130 +    @Test(dataProvider="provider")
  15.131 +    public void checkWarning(List<String> args, List<Path> expectedMRpaths) {
  15.132 +        StringWriter sw = new StringWriter();
  15.133 +        PrintWriter pw = new PrintWriter(sw);
  15.134 +
  15.135 +        int rc = com.sun.tools.jdeps.Main.run(args.toArray(new String[args.size()]), pw);
  15.136 +        pw.close();
  15.137 +
  15.138 +        expectedMRJars(sw.toString(), expectedMRpaths);
  15.139 +        Assert.assertEquals(rc, 0, "non-zero exit code from jdeps");
  15.140 +    }
  15.141 +
  15.142 +    /* Confirm that warnings for the specified paths are in the output (or that
  15.143 +     * warnings are absent if 'paths' is empty).
  15.144 +     * Doesn't check for extra, unexpected warnings.
  15.145 +     */
  15.146 +    private static void expectedMRJars(String output, List<Path> paths) {
  15.147 +        if (paths.isEmpty()) {
  15.148 +            Assert.assertFalse(output.contains(WARNING),
  15.149 +                               "Expected no mrjars, but found:\n" + output);
  15.150 +        } else {
  15.151 +            for (Path path : paths) {
  15.152 +                String expect = "Warning: " + path.toString() + WARNING;
  15.153 +                Assert.assertTrue(output.contains(expect),
  15.154 +                        "Did not find:\n" + expect + "\nin:\n" + output + "\n");
  15.155 +            }
  15.156 +        }
  15.157 +    }
  15.158 +
  15.159 +    /* Build a jar at the expected path, containing the given attributes */
  15.160 +    private static void build(Path path, Attributes attributes) throws IOException {
  15.161 +        try (OutputStream os = Files.newOutputStream(path);
  15.162 +             JarOutputStream jos = new JarOutputStream(os)) {
  15.163 +
  15.164 +            JarEntry me = new JarEntry("META-INF/MANIFEST.MF");
  15.165 +            jos.putNextEntry(me);
  15.166 +            Manifest manifest = new Manifest();
  15.167 +            manifest.getMainAttributes().putAll(attributes);
  15.168 +            manifest.write(jos);
  15.169 +            jos.closeEntry();
  15.170 +        }
  15.171 +    }
  15.172 +}

mercurial