OpenJDK / jdk / jdk
changeset 47068:fb4a834e02b8
Merge
author | prr |
---|---|
date | Thu, 06 Jul 2017 09:36:17 -0700 |
parents | 9e0f3b2a2c66 9ef5029b247b |
children | 3e7ed3a7da38 |
files | hotspot/test/runtime/modules/JVMAddModulePackage.java jaxws/src/java.xml.ws/share/classes/javax/xml/ws/handler/package.html jaxws/src/java.xml.ws/share/classes/javax/xml/ws/handler/soap/package.html jaxws/src/java.xml.ws/share/classes/javax/xml/ws/http/package.html jaxws/src/java.xml.ws/share/classes/javax/xml/ws/soap/package.html jaxws/src/java.xml.ws/share/classes/javax/xml/ws/spi/package.html jaxws/src/jdk.xml.ws/share/classes/com/sun/tools/internal/ws/resources/newmessages.properties jdk/make/src/classes/build/tools/docs/GenDocsBundlePage.java jdk/make/src/classes/build/tools/docs/docs-bundle-page.html jdk/make/src/classes/build/tools/docs/docs-module-groups.properties jdk/src/java.instrument/share/classes/java/lang/instrument/package.html jdk/test/java/util/ServiceLoader/modules/BadProvidersTest.java jdk/test/java/util/ServiceLoader/modules/Basic.java jdk/test/java/util/ServiceLoader/modules/badfactories/badreturntype/ProviderFactory.java jdk/test/java/util/ServiceLoader/modules/badfactories/classnotpublic/ProviderFactory.java jdk/test/java/util/ServiceLoader/modules/badfactories/classnotpublic/Service.java jdk/test/java/util/ServiceLoader/modules/badfactories/methodnotpublic/ProviderFactory.java jdk/test/java/util/ServiceLoader/modules/badfactories/methodnotpublic/Service.java jdk/test/java/util/ServiceLoader/modules/badfactories/returnsnull/ProviderFactory.java jdk/test/java/util/ServiceLoader/modules/badfactories/returnsnull/Service.java jdk/test/java/util/ServiceLoader/modules/badfactories/throwsexception/ProviderFactory.java jdk/test/java/util/ServiceLoader/modules/badfactories/throwsexception/Service.java jdk/test/java/util/ServiceLoader/modules/badproviders/ctornotpublic/Provider.java jdk/test/java/util/ServiceLoader/modules/badproviders/ctornotpublic/Service.java jdk/test/java/util/ServiceLoader/modules/badproviders/notasubtype/Provider.java jdk/test/java/util/ServiceLoader/modules/badproviders/notpublic/Provider.java jdk/test/java/util/ServiceLoader/modules/badproviders/notpublic/Service.java jdk/test/java/util/ServiceLoader/modules/badproviders/throwsexception/Provider.java jdk/test/java/util/ServiceLoader/modules/badproviders/throwsexception/Service.java jdk/test/java/util/ServiceLoader/modules/modules/bananascript/module-info.java jdk/test/java/util/ServiceLoader/modules/modules/bananascript/org/banana/BananaScript.java jdk/test/java/util/ServiceLoader/modules/modules/bananascript/org/banana/BananaScriptEngineFactory.java jdk/test/java/util/ServiceLoader/modules/modules/test1/module-info.java jdk/test/java/util/ServiceLoader/modules/modules/test1/p/ProviderFactory.java jdk/test/java/util/ServiceLoader/modules/modules/test1/p/Service.java jdk/test/java/util/ServiceLoader/modules/modules/test2/module-info.java jdk/test/java/util/ServiceLoader/modules/modules/test2/p/Provider.java jdk/test/java/util/ServiceLoader/modules/modules/test2/p/Service.java jdk/test/java/util/ServiceLoader/modules/src/pearscript/META-INF/services/javax.script.ScriptEngineFactory jdk/test/java/util/ServiceLoader/modules/src/pearscript/org/pear/PearScript.java jdk/test/java/util/ServiceLoader/modules/src/pearscript/org/pear/PearScriptEngineFactory.java jdk/test/lib/testlibrary/jdk/testlibrary/Platform.java jdk/test/tools/launcher/modules/permit/AttemptAccess.java jdk/test/tools/launcher/modules/permit/PermitIllegalAccess.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/Taglet.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/AbstractExecutableMemberWriter.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/AbstractIndexWriter.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/AbstractMemberWriter.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/AbstractPackageIndexWriter.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/AbstractTreeWriter.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/AllClassesFrameWriter.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeFieldWriterImpl.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeOptionalMemberWriterImpl.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeRequiredMemberWriterImpl.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/AnnotationTypeWriterImpl.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/ClassUseWriter.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/ClassWriterImpl.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/ConfigurationImpl.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/ConstantsSummaryWriterImpl.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/ConstructorWriterImpl.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/DeprecatedListWriter.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/EnumConstantWriterImpl.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/FieldWriterImpl.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/FrameOutputWriter.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/HelpWriter.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/HtmlDoclet.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/HtmlSerialFieldWriter.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/HtmlSerialMethodWriter.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/LinkFactoryImpl.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/LinkInfoImpl.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/LinkOutputImpl.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/MethodWriterImpl.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/NestedClassWriterImpl.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/PackageFrameWriter.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/PackageIndexFrameWriter.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/PackageIndexWriter.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/PackageTreeWriter.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/PackageUseWriter.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/PackageWriterImpl.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/PropertyWriterImpl.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/SearchIndexItem.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/SectionName.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/SerializedFormWriterImpl.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/SingleIndexWriter.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/SourceToHTMLConverter.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/SplitIndexWriter.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/SubWriterHolderWriter.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/TagletWriterImpl.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/TreeWriter.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/WriterFactoryImpl.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/markup/Comment.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/markup/ContentBuilder.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/markup/DocType.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlAttr.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlConstants.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlDocWriter.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlDocument.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlStyle.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlTag.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlTree.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlVersion.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlWriter.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/markup/RawHtml.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/markup/StringContent.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/markup/package-info.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/package-info.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/resources/standard.properties langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/resources/standard_ja.properties langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/formats/html/resources/standard_zh_CN.properties langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/AbstractDoclet.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/AnnotationTypeFieldWriter.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/AnnotationTypeOptionalMemberWriter.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/AnnotationTypeRequiredMemberWriter.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/AnnotationTypeWriter.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/ClassWriter.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/Configuration.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/ConstantsSummaryWriter.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/ConstructorWriter.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/Content.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/EnumConstantWriter.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/FieldWriter.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/MemberSummaryWriter.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/MethodWriter.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/NestedClassWriter.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/PackageSummaryWriter.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/PropertyWriter.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/SerializedFormWriter.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/WriterFactory.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AbstractBuilder.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AbstractMemberBuilder.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AnnotationTypeBuilder.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AnnotationTypeFieldBuilder.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AnnotationTypeOptionalMemberBuilder.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/builders/AnnotationTypeRequiredMemberBuilder.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/builders/BuilderFactory.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/builders/ClassBuilder.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/builders/ConstantsSummaryBuilder.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/builders/ConstructorBuilder.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/builders/EnumConstantBuilder.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/builders/FieldBuilder.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/builders/LayoutParser.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/builders/MemberSummaryBuilder.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/builders/MethodBuilder.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/builders/PackageSummaryBuilder.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/builders/PropertyBuilder.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/builders/SerializedFormBuilder.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/builders/XMLNode.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/builders/package-info.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/package-info.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclet.xml langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclets.properties langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclets_ja.properties langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/resources/doclets_zh_CN.properties langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/resources/glass.png langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/resources/jquery/external/jquery/jquery.js langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/resources/jquery/images/ui-bg_flat_0_aaaaaa_40x100.png langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/resources/jquery/images/ui-bg_flat_75_ffffff_40x100.png langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/resources/jquery/images/ui-bg_glass_55_fbf9ee_1x400.png langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/resources/jquery/images/ui-bg_glass_65_ffffff_1x400.png langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/resources/jquery/images/ui-bg_glass_75_dadada_1x400.png langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/resources/jquery/images/ui-bg_glass_75_e6e6e6_1x400.png langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/resources/jquery/images/ui-bg_glass_95_fef1ec_1x400.png langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/resources/jquery/images/ui-bg_highlight-soft_75_cccccc_1x100.png langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/resources/jquery/images/ui-icons_222222_256x240.png langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/resources/jquery/images/ui-icons_2e83ff_256x240.png langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/resources/jquery/images/ui-icons_454545_256x240.png langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/resources/jquery/images/ui-icons_888888_256x240.png langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/resources/jquery/images/ui-icons_cd0a0a_256x240.png langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/resources/jquery/jquery-1.10.2.js langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/resources/jquery/jquery-ui.css langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/resources/jquery/jquery-ui.js langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/resources/jquery/jquery-ui.min.css langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/resources/jquery/jquery-ui.min.js langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/resources/jquery/jquery-ui.structure.css langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/resources/jquery/jquery-ui.structure.min.css langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/resources/jquery/jszip-utils/dist/jszip-utils-ie.js langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/resources/jquery/jszip-utils/dist/jszip-utils-ie.min.js langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/resources/jquery/jszip-utils/dist/jszip-utils.js langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/resources/jquery/jszip-utils/dist/jszip-utils.min.js langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/resources/jquery/jszip/dist/jszip.js langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/resources/jquery/jszip/dist/jszip.min.js langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/resources/script.js langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/resources/search.js langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/resources/stylesheet.css langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/resources/x.png langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/BaseExecutableMemberTaglet.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/BaseInlineTaglet.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/BasePropertyTaglet.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/BaseTaglet.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/CodeTaglet.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/DeprecatedTaglet.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/DocRootTaglet.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/IndexTaglet.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/InheritDocTaglet.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/InheritableTaglet.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/LegacyTaglet.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/LiteralTaglet.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/ParamTaglet.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/PropertyGetterTaglet.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/PropertySetterTaglet.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/ReturnTaglet.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/SeeTaglet.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/SimpleTaglet.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/Taglet.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/TagletManager.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/TagletWriter.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/ThrowsTaglet.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/ValueTaglet.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/taglets/package-info.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/util/ClassDocCatalog.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/util/ClassTree.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/util/ClassUseMapper.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/util/DeprecatedAPIListBuilder.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/util/DocFile.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/util/DocFileFactory.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/util/DocFinder.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/util/DocLink.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/util/DocPath.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/util/DocPaths.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/util/DocletAbortException.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/util/DocletConstants.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/util/Extern.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/util/FatalError.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/util/Group.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/util/ImplementedMethods.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/util/IndexBuilder.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/util/MessageRetriever.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/util/MetaKeywords.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/util/MethodTypes.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/util/PackageListWriter.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/util/StandardDocFileFactory.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/util/TextTag.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/util/Utils.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/util/VisibleMemberMap.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/util/links/LinkFactory.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/util/links/LinkInfo.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/util/links/LinkOutput.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/util/links/package-info.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/internal/toolkit/util/package-info.java langtools/src/jdk.javadoc/share/classes/com/sun/tools/doclets/package-info.java langtools/test/com/sun/javadoc/5093723/DocumentedClass.java langtools/test/com/sun/javadoc/5093723/T5093723.java langtools/test/com/sun/javadoc/5093723/UndocumentedClass.java langtools/test/com/sun/javadoc/AccessAsciiArt/AccessAsciiArt.java langtools/test/com/sun/javadoc/AccessAsciiArt/p1/C.java langtools/test/com/sun/javadoc/AccessAsciiArt/p1/I.java langtools/test/com/sun/javadoc/AccessAsciiArt/p1/SC.java langtools/test/com/sun/javadoc/AccessAsciiArt/p1/SI.java langtools/test/com/sun/javadoc/AccessAsciiArt/p1/subpkg/SSC.java langtools/test/com/sun/javadoc/AccessFrameTitle/AccessFrameTitle.java langtools/test/com/sun/javadoc/AccessFrameTitle/p1/C1.java langtools/test/com/sun/javadoc/AccessFrameTitle/p2/C2.java langtools/test/com/sun/javadoc/AccessH1/AccessH1.java langtools/test/com/sun/javadoc/AccessH1/p1/C.java langtools/test/com/sun/javadoc/AccessH1/p2/C2.java langtools/test/com/sun/javadoc/AccessSkipNav/AccessSkipNav.java langtools/test/com/sun/javadoc/AccessSkipNav/p1/C1.java langtools/test/com/sun/javadoc/AccessSkipNav/p2/C2.java langtools/test/com/sun/javadoc/AccessSummary/AccessSummary.java langtools/test/com/sun/javadoc/AccessSummary/p1/C1.java langtools/test/com/sun/javadoc/AccessSummary/p2/C2.java langtools/test/com/sun/javadoc/AuthorDD/AuthorDD.java langtools/test/com/sun/javadoc/AuthorDD/p1/C1.java langtools/test/com/sun/javadoc/DocRootSlash/DocRootSlash.java langtools/test/com/sun/javadoc/DocRootSlash/overview.html langtools/test/com/sun/javadoc/DocRootSlash/p1/C1.java langtools/test/com/sun/javadoc/DocRootSlash/p1/package.html langtools/test/com/sun/javadoc/DocRootSlash/p2/C2.java langtools/test/com/sun/javadoc/DocRootSlash/p2/package.html langtools/test/com/sun/javadoc/InheritDocForUserTags/DocTest.java langtools/test/com/sun/javadoc/JavascriptWinTitle/JavascriptWinTitle.java langtools/test/com/sun/javadoc/JavascriptWinTitle/overview.html langtools/test/com/sun/javadoc/JavascriptWinTitle/p1/C.java langtools/test/com/sun/javadoc/JavascriptWinTitle/p2/C2.java langtools/test/com/sun/javadoc/JavascriptWinTitle/package-list langtools/test/com/sun/javadoc/MetaTag/MetaTag.java langtools/test/com/sun/javadoc/MetaTag/p1/C1.java langtools/test/com/sun/javadoc/MetaTag/p2/C2.java langtools/test/com/sun/javadoc/PackagesHeader/PackagesHeader.java langtools/test/com/sun/javadoc/PackagesHeader/p1/C1.java langtools/test/com/sun/javadoc/PackagesHeader/p2/C2.java langtools/test/com/sun/javadoc/T6735320/SerialFieldTest.java langtools/test/com/sun/javadoc/T6735320/T6735320.java langtools/test/com/sun/javadoc/ValidHtml/ValidHtml.java langtools/test/com/sun/javadoc/ValidHtml/overview.html langtools/test/com/sun/javadoc/ValidHtml/p1/C.java langtools/test/com/sun/javadoc/ValidHtml/p2/C2.java langtools/test/com/sun/javadoc/VersionNumber/VersionNumber.java langtools/test/com/sun/javadoc/VersionNumber/p1/C.java langtools/test/com/sun/javadoc/WindowTitles/WindowTitles.java langtools/test/com/sun/javadoc/WindowTitles/p1/C1.java langtools/test/com/sun/javadoc/WindowTitles/p2/C2.java langtools/test/com/sun/javadoc/_template/Template.java langtools/test/com/sun/javadoc/_template/TemplateComplete.java langtools/test/com/sun/javadoc/constantValues/A.java langtools/test/com/sun/javadoc/constantValues/TestConstantValues.java langtools/test/com/sun/javadoc/constantValues/TestConstantValues2.java langtools/test/com/sun/javadoc/constantValues/TestConstantValuesDriver.java langtools/test/com/sun/javadoc/dupThrowsTags/TestDupThrowsTags.java langtools/test/com/sun/javadoc/lib/JavadocTester.java langtools/test/com/sun/javadoc/testAbsLinkPath/TestAbsLinkPath.java langtools/test/com/sun/javadoc/testAbsLinkPath/pkg1/C1.java langtools/test/com/sun/javadoc/testAbsLinkPath/pkg2/C2.java langtools/test/com/sun/javadoc/testAbstractMethod/TestAbstractMethod.java langtools/test/com/sun/javadoc/testAbstractMethod/pkg/A.java langtools/test/com/sun/javadoc/testAbstractMethod/pkg/B.java langtools/test/com/sun/javadoc/testAbstractMethod/pkg/C.java langtools/test/com/sun/javadoc/testAnchorNames/TestAnchorNames.java langtools/test/com/sun/javadoc/testAnchorNames/pkg1/DeprMemClass.java langtools/test/com/sun/javadoc/testAnchorNames/pkg1/RegClass.java langtools/test/com/sun/javadoc/testAnnotationOptional/TestAnnotationOptional.java langtools/test/com/sun/javadoc/testAnnotationOptional/pkg/AnnotationOptional.java langtools/test/com/sun/javadoc/testAnnotationTypes/TestAnnotationTypes.java langtools/test/com/sun/javadoc/testAnnotationTypes/pkg/AnnotationType.java langtools/test/com/sun/javadoc/testAnnotationTypes/pkg/AnnotationTypeField.java langtools/test/com/sun/javadoc/testBackSlashInLink/C.java langtools/test/com/sun/javadoc/testBackSlashInLink/TestBackSlashInLink.java langtools/test/com/sun/javadoc/testBadPackageFileInJar/TestBadPackageFileInJar.java langtools/test/com/sun/javadoc/testBadPackageFileInJar/badPackageFileInJar.jar langtools/test/com/sun/javadoc/testBadPackageFileInJar/pkg/C.java langtools/test/com/sun/javadoc/testBadSourceFile/C1.java langtools/test/com/sun/javadoc/testBadSourceFile/C2.java langtools/test/com/sun/javadoc/testBadSourceFile/TestBadSourceFile.java langtools/test/com/sun/javadoc/testBaseClass/Bar.java langtools/test/com/sun/javadoc/testBaseClass/BaseClass.java langtools/test/com/sun/javadoc/testBaseClass/TestBaseClass.java langtools/test/com/sun/javadoc/testBaseClass/baz/Foo.java langtools/test/com/sun/javadoc/testBreakIterator/TestBreakIterator.java langtools/test/com/sun/javadoc/testBreakIterator/pkg/BreakIteratorTest.java langtools/test/com/sun/javadoc/testCRLineSeparator/TestCRLineSeparator.java langtools/test/com/sun/javadoc/testCRLineSeparator/pkg/MyClass.java langtools/test/com/sun/javadoc/testCharset/TestCharset.java langtools/test/com/sun/javadoc/testCharset/pkg/Foo.java langtools/test/com/sun/javadoc/testClassCrossReferences/C.java langtools/test/com/sun/javadoc/testClassCrossReferences/TestClassCrossReferences.java langtools/test/com/sun/javadoc/testClassCrossReferences/package-list langtools/test/com/sun/javadoc/testClassTree/TestClassTree.java langtools/test/com/sun/javadoc/testClassTree/pkg/AnnotationType.java langtools/test/com/sun/javadoc/testClassTree/pkg/ChildClass.java langtools/test/com/sun/javadoc/testClassTree/pkg/Coin.java langtools/test/com/sun/javadoc/testClassTree/pkg/ParentClass.java langtools/test/com/sun/javadoc/testCmndLineClass/C5.java langtools/test/com/sun/javadoc/testCmndLineClass/TestCmndLineClass.java langtools/test/com/sun/javadoc/testCmndLineClass/pkg1/C1.java langtools/test/com/sun/javadoc/testCmndLineClass/pkg1/C2.java langtools/test/com/sun/javadoc/testCmndLineClass/pkg1/package.html langtools/test/com/sun/javadoc/testCmndLineClass/pkg2/C3.java langtools/test/com/sun/javadoc/testCmndLineClass/pkg2/C4.java langtools/test/com/sun/javadoc/testCmndLineClass/pkg2/package.html langtools/test/com/sun/javadoc/testCompletionFailure/TestCompletionFailure.java langtools/test/com/sun/javadoc/testCompletionFailure/pkg1/NumberFormatTest.java langtools/test/com/sun/javadoc/testConstantValuesPage/TestConstantValuesPage.java langtools/test/com/sun/javadoc/testConstructorIndent/C.java langtools/test/com/sun/javadoc/testConstructorIndent/TestConstructorIndent.java langtools/test/com/sun/javadoc/testConstructors/TestConstructors.java langtools/test/com/sun/javadoc/testConstructors/pkg1/Outer.java langtools/test/com/sun/javadoc/testCustomTag/TagTestClass.java langtools/test/com/sun/javadoc/testCustomTag/TestCustomTag.java langtools/test/com/sun/javadoc/testCustomTag/taglets/CustomTag.java langtools/test/com/sun/javadoc/testDeprecatedDocs/TestDeprecatedDocs.java langtools/test/com/sun/javadoc/testDeprecatedDocs/pkg/DeprecatedClassByAnnotation.java langtools/test/com/sun/javadoc/testDeprecatedDocs/pkg/TestAnnotationType.java langtools/test/com/sun/javadoc/testDeprecatedDocs/pkg/TestClass.java langtools/test/com/sun/javadoc/testDeprecatedDocs/pkg/TestEnum.java langtools/test/com/sun/javadoc/testDeprecatedDocs/pkg/TestError.java langtools/test/com/sun/javadoc/testDeprecatedDocs/pkg/TestException.java langtools/test/com/sun/javadoc/testDeprecatedDocs/pkg/TestInterface.java langtools/test/com/sun/javadoc/testDocEncoding/TestDocEncoding.java langtools/test/com/sun/javadoc/testDocEncoding/pkg/Test.java langtools/test/com/sun/javadoc/testDocErrorReporter/TestDocErrorReporter.java langtools/test/com/sun/javadoc/testDocFileDir/TestDocFileDir.java langtools/test/com/sun/javadoc/testDocFileDir/pkg/C.java langtools/test/com/sun/javadoc/testDocFileDir/pkg/doc-files/subdir-excluded1/testfile.txt langtools/test/com/sun/javadoc/testDocFileDir/pkg/doc-files/subdir-excluded2/testfile.txt langtools/test/com/sun/javadoc/testDocFileDir/pkg/doc-files/subdir-used1/testfile.txt langtools/test/com/sun/javadoc/testDocFileDir/pkg/doc-files/subdir-used2/testfile.txt langtools/test/com/sun/javadoc/testDocFileDir/pkg/doc-files/testfile.txt langtools/test/com/sun/javadoc/testDocFiles/TestDocFiles.java langtools/test/com/sun/javadoc/testDocFiles/pkg/Test.java langtools/test/com/sun/javadoc/testDocFiles/pkg/doc-files/test.txt langtools/test/com/sun/javadoc/testDocRootInlineTag/TestDocRootInlineTag.java langtools/test/com/sun/javadoc/testDocRootInlineTag/TestDocRootTag.java langtools/test/com/sun/javadoc/testDocRootInlineTag/package-list langtools/test/com/sun/javadoc/testDocRootInlineTag/pkg/C.java langtools/test/com/sun/javadoc/testDocRootLink/TestDocRootLink.java langtools/test/com/sun/javadoc/testDocRootLink/pkg1/C1.java langtools/test/com/sun/javadoc/testDocRootLink/pkg1/package.html langtools/test/com/sun/javadoc/testDocRootLink/pkg2/C2.java langtools/test/com/sun/javadoc/testDocRootLink/pkg2/package.html langtools/test/com/sun/javadoc/testDupParamWarn/TestDupParamWarn.java langtools/test/com/sun/javadoc/testDupParamWarn/pkg/Bar.java langtools/test/com/sun/javadoc/testDupParamWarn/pkg/Foo.java langtools/test/com/sun/javadoc/testEmptyClass/TestEmptyClass.java langtools/test/com/sun/javadoc/testEmptyClass/src/Empty.java langtools/test/com/sun/javadoc/testEnclosingClass/TestEnclosingClass.java langtools/test/com/sun/javadoc/testEnclosingClass/pkg/MyClass.java langtools/test/com/sun/javadoc/testEncoding/EncodeTest.java langtools/test/com/sun/javadoc/testEncoding/TestEncoding.java langtools/test/com/sun/javadoc/testExternalOverridenMethod/TestExternalOverridenMethod.java langtools/test/com/sun/javadoc/testExternalOverridenMethod/package-list langtools/test/com/sun/javadoc/testExternalOverridenMethod/pkg/XReader.java langtools/test/com/sun/javadoc/testGeneratedBy/TestGeneratedBy.java langtools/test/com/sun/javadoc/testGeneratedBy/pkg/MyClass.java langtools/test/com/sun/javadoc/testGroupOption/TestGroupOption.java langtools/test/com/sun/javadoc/testGroupOption/pkg1/C.java langtools/test/com/sun/javadoc/testGroupOption/pkg2/C.java langtools/test/com/sun/javadoc/testGroupOption/pkg3/C.java langtools/test/com/sun/javadoc/testHeadings/TestHeadings.java langtools/test/com/sun/javadoc/testHeadings/pkg1/C1.java langtools/test/com/sun/javadoc/testHeadings/pkg2/C2.java langtools/test/com/sun/javadoc/testHelpFile/TestHelpFile.java langtools/test/com/sun/javadoc/testHelpOption/TestHelpOption.java langtools/test/com/sun/javadoc/testHiddenMembers/TestHiddenMembers.java langtools/test/com/sun/javadoc/testHiddenMembers/pkg/BaseClass.java langtools/test/com/sun/javadoc/testHiddenMembers/pkg/SubClass.java langtools/test/com/sun/javadoc/testHref/TestHref.java langtools/test/com/sun/javadoc/testHref/package-list langtools/test/com/sun/javadoc/testHref/pkg/C1.java langtools/test/com/sun/javadoc/testHref/pkg/C2.java langtools/test/com/sun/javadoc/testHref/pkg/C4.java langtools/test/com/sun/javadoc/testHrefInDocComment/TestHrefInDocComment.java langtools/test/com/sun/javadoc/testHrefInDocComment/pkg/I1.java langtools/test/com/sun/javadoc/testHrefInDocComment/pkg/I2.java langtools/test/com/sun/javadoc/testHtmlComments/C.java langtools/test/com/sun/javadoc/testHtmlComments/TestHtmlComments.java langtools/test/com/sun/javadoc/testHtmlDefinitionListTag/TestHtmlDefinitionListTag.java langtools/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C1.java langtools/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C2.java langtools/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C3.java langtools/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C4.java langtools/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/C5.java langtools/test/com/sun/javadoc/testHtmlDefinitionListTag/pkg1/package-info.java langtools/test/com/sun/javadoc/testHtmlDocument/TestHtmlDocument.java langtools/test/com/sun/javadoc/testHtmlDocument/testLink.html langtools/test/com/sun/javadoc/testHtmlDocument/testMarkup.html langtools/test/com/sun/javadoc/testHtmlStrongTag/TestHtmlStrongTag.java langtools/test/com/sun/javadoc/testHtmlStrongTag/pkg1/C1.java langtools/test/com/sun/javadoc/testHtmlStrongTag/pkg2/C2.java langtools/test/com/sun/javadoc/testHtmlTableStyles/TestHtmlTableStyles.java langtools/test/com/sun/javadoc/testHtmlTableStyles/pkg1/TestTable.java langtools/test/com/sun/javadoc/testHtmlTableStyles/pkg2/TestUse.java langtools/test/com/sun/javadoc/testHtmlTableTags/TestHtmlTableTags.java langtools/test/com/sun/javadoc/testHtmlTableTags/pkg1/C1.java langtools/test/com/sun/javadoc/testHtmlTableTags/pkg1/I1.java langtools/test/com/sun/javadoc/testHtmlTableTags/pkg1/package-info.java langtools/test/com/sun/javadoc/testHtmlTableTags/pkg2/C2.java langtools/test/com/sun/javadoc/testHtmlTableTags/pkg2/C3.java langtools/test/com/sun/javadoc/testHtmlTableTags/pkg2/C4.java langtools/test/com/sun/javadoc/testHtmlTableTags/pkg2/package-info.java langtools/test/com/sun/javadoc/testHtmlTag/TestHtmlTag.java langtools/test/com/sun/javadoc/testHtmlTag/pkg1/C1.java langtools/test/com/sun/javadoc/testHtmlTag/pkg2/C2.java langtools/test/com/sun/javadoc/testHtmlVersion/TestHtmlVersion.java langtools/test/com/sun/javadoc/testHtmlVersion/pkg/AnnotationType.java langtools/test/com/sun/javadoc/testHtmlVersion/pkg/AnotherClass.java langtools/test/com/sun/javadoc/testHtmlVersion/pkg/TestError.java langtools/test/com/sun/javadoc/testHtmlVersion/pkg/TestException.java langtools/test/com/sun/javadoc/testHtmlVersion/pkg/TestInterface.java langtools/test/com/sun/javadoc/testHtmlVersion/pkg/package-info.java langtools/test/com/sun/javadoc/testHtmlVersion/pkg1/NestedInnerClass.java langtools/test/com/sun/javadoc/testHtmlVersion/pkg1/PrivateIncludeInnerClass.java langtools/test/com/sun/javadoc/testHtmlVersion/pkg1/ProtectedInnerClass.java langtools/test/com/sun/javadoc/testHtmlVersion/pkg1/PublicExcludeInnerClass.java langtools/test/com/sun/javadoc/testHtmlVersion/pkg1/RegClass.java langtools/test/com/sun/javadoc/testHtmlVersion/pkg2/DeprecatedClassByAnnotation.java langtools/test/com/sun/javadoc/testHtmlVersion/pkg2/Interface.java langtools/test/com/sun/javadoc/testHtmlVersion/pkg2/TestAnnotationType.java langtools/test/com/sun/javadoc/testHtmlVersion/pkg2/TestClass.java langtools/test/com/sun/javadoc/testHtmlVersion/pkg2/TestEnum.java langtools/test/com/sun/javadoc/testHtmlVersion/pkg2/TestError.java langtools/test/com/sun/javadoc/testHtmlVersion/pkg2/TestException.java langtools/test/com/sun/javadoc/testHtmlVersion/pkg2/TestInterface.java langtools/test/com/sun/javadoc/testHtmlVersion/pkg3/ClassNoConstants.java langtools/test/com/sun/javadoc/testHtmlVersion/profile-rtjar-includes.txt langtools/test/com/sun/javadoc/testIndentation/TestIndentation.java langtools/test/com/sun/javadoc/testIndentation/p/Indent.java langtools/test/com/sun/javadoc/testIndentation/p/IndentAnnot.java langtools/test/com/sun/javadoc/testIndex/NoPackage.java langtools/test/com/sun/javadoc/testIndex/TestIndex.java langtools/test/com/sun/javadoc/testIndex/pkg/AnnotationType.java langtools/test/com/sun/javadoc/testIndex/pkg/C.java langtools/test/com/sun/javadoc/testIndex/pkg/Coin.java langtools/test/com/sun/javadoc/testIndex/pkg/Interface.java langtools/test/com/sun/javadoc/testInlineLinkLabel/TestInlineLinkLabel.java langtools/test/com/sun/javadoc/testInlineLinkLabel/pkg/C1.java langtools/test/com/sun/javadoc/testInlineLinkLabel/pkg/C2.java langtools/test/com/sun/javadoc/testInlineLinkLabel/pkg/package.html langtools/test/com/sun/javadoc/testInterface/TestInterface.java langtools/test/com/sun/javadoc/testInterface/pkg/Child.java langtools/test/com/sun/javadoc/testInterface/pkg/Interface.java langtools/test/com/sun/javadoc/testInterface/pkg/Parent.java langtools/test/com/sun/javadoc/testJavaFX/TestJavaFX.java langtools/test/com/sun/javadoc/testJavaFX/pkg1/C.java langtools/test/com/sun/javadoc/testJavaFX/pkg1/D.java langtools/test/com/sun/javadoc/testJavaFX/pkg2/Test.java langtools/test/com/sun/javadoc/testJavascript/TestJavascript.java langtools/test/com/sun/javadoc/testJavascript/pkg/C.java langtools/test/com/sun/javadoc/testLambdaFeature/TestLambdaFeature.java langtools/test/com/sun/javadoc/testLambdaFeature/pkg/A.java langtools/test/com/sun/javadoc/testLambdaFeature/pkg/B.java langtools/test/com/sun/javadoc/testLambdaFeature/pkg1/FuncInf.java langtools/test/com/sun/javadoc/testLambdaFeature/pkg1/NotAFuncInf.java langtools/test/com/sun/javadoc/testLeadingSpaces/LeadingSpaces.java langtools/test/com/sun/javadoc/testLegacyTaglet/C.java langtools/test/com/sun/javadoc/testLegacyTaglet/Check.java langtools/test/com/sun/javadoc/testLegacyTaglet/TestLegacyTaglet.java langtools/test/com/sun/javadoc/testLegacyTaglet/ToDoTaglet.java langtools/test/com/sun/javadoc/testLegacyTaglet/UnderlineTaglet.java langtools/test/com/sun/javadoc/testLinkOption/TestBadLinkOption.java langtools/test/com/sun/javadoc/testLinkOption/TestLinkOption.java langtools/test/com/sun/javadoc/testLinkOption/TestNewLineInLink.java langtools/test/com/sun/javadoc/testLinkOption/extra/StringBuilder.java langtools/test/com/sun/javadoc/testLinkOption/jdk/package-list langtools/test/com/sun/javadoc/testLinkOption/mylib/lang/StringBuilderChild.java langtools/test/com/sun/javadoc/testLinkOption/pkg/C.java langtools/test/com/sun/javadoc/testLinkOption/pkg2/C2.java langtools/test/com/sun/javadoc/testLinkOption/testNewLineInLink/C.java langtools/test/com/sun/javadoc/testLinkOption/testNewLineInLink/package.html langtools/test/com/sun/javadoc/testLinkTaglet/TestLinkTaglet.java langtools/test/com/sun/javadoc/testLinkTaglet/checkPkg/A.java langtools/test/com/sun/javadoc/testLinkTaglet/checkPkg/B.java langtools/test/com/sun/javadoc/testLinkTaglet/pkg/C.java langtools/test/com/sun/javadoc/testLinkToSerialForm/TestLinkToSerialForm.java langtools/test/com/sun/javadoc/testLinkToSerialForm/pkg/C.java langtools/test/com/sun/javadoc/testLiteralCodeInPre/TestLiteralCodeInPre.java langtools/test/com/sun/javadoc/testLiteralCodeInPre/pkg/Test.java langtools/test/com/sun/javadoc/testMemberInheritence/TestMemberInheritence.java langtools/test/com/sun/javadoc/testMemberInheritence/diamond/A.java langtools/test/com/sun/javadoc/testMemberInheritence/diamond/B.java langtools/test/com/sun/javadoc/testMemberInheritence/diamond/C.java langtools/test/com/sun/javadoc/testMemberInheritence/diamond/X.java langtools/test/com/sun/javadoc/testMemberInheritence/diamond/Z.java langtools/test/com/sun/javadoc/testMemberInheritence/inheritDist/A.java langtools/test/com/sun/javadoc/testMemberInheritence/inheritDist/B.java langtools/test/com/sun/javadoc/testMemberInheritence/inheritDist/C.java langtools/test/com/sun/javadoc/testMemberInheritence/pkg/BaseClass.java langtools/test/com/sun/javadoc/testMemberInheritence/pkg/BaseInterface.java langtools/test/com/sun/javadoc/testMemberInheritence/pkg/SubClass.java langtools/test/com/sun/javadoc/testMemberSummary/TestMemberSummary.java langtools/test/com/sun/javadoc/testMemberSummary/pkg/PrivateParent.java langtools/test/com/sun/javadoc/testMemberSummary/pkg/PublicChild.java langtools/test/com/sun/javadoc/testMemberSummary/pkg2/A.java langtools/test/com/sun/javadoc/testMethodTypes/TestMethodTypes.java langtools/test/com/sun/javadoc/testMethodTypes/pkg1/A.java langtools/test/com/sun/javadoc/testMethodTypes/pkg1/B.java langtools/test/com/sun/javadoc/testMethodTypes/pkg1/D.java langtools/test/com/sun/javadoc/testModifier/Interface.java langtools/test/com/sun/javadoc/testModifier/ModifierAbstract.java langtools/test/com/sun/javadoc/testModifier/Test.java langtools/test/com/sun/javadoc/testModifier/TestModifier.java langtools/test/com/sun/javadoc/testNavigation/TestNavigation.java langtools/test/com/sun/javadoc/testNavigation/pkg/A.java langtools/test/com/sun/javadoc/testNavigation/pkg/C.java langtools/test/com/sun/javadoc/testNavigation/pkg/E.java langtools/test/com/sun/javadoc/testNavigation/pkg/I.java langtools/test/com/sun/javadoc/testNestedGenerics/TestNestedGenerics.java langtools/test/com/sun/javadoc/testNestedGenerics/pkg/NestedGenerics.java langtools/test/com/sun/javadoc/testNestedInlineTag/TestNestedInlineTag.java langtools/test/com/sun/javadoc/testNestedInlineTag/testtaglets/BoldTaglet.java langtools/test/com/sun/javadoc/testNestedInlineTag/testtaglets/GreenTaglet.java langtools/test/com/sun/javadoc/testNestedInlineTag/testtaglets/UnderlineTaglet.java langtools/test/com/sun/javadoc/testNewLanguageFeatures/TestNewLanguageFeatures.java langtools/test/com/sun/javadoc/testNewLanguageFeatures/pkg/AnnotationType.java langtools/test/com/sun/javadoc/testNewLanguageFeatures/pkg/AnnotationTypeUndocumented.java langtools/test/com/sun/javadoc/testNewLanguageFeatures/pkg/AnnotationTypeUsage.java langtools/test/com/sun/javadoc/testNewLanguageFeatures/pkg/Coin.java langtools/test/com/sun/javadoc/testNewLanguageFeatures/pkg/MultiTypeParameters.java langtools/test/com/sun/javadoc/testNewLanguageFeatures/pkg/SubInterface.java langtools/test/com/sun/javadoc/testNewLanguageFeatures/pkg/SuperInterface.java langtools/test/com/sun/javadoc/testNewLanguageFeatures/pkg/TypeParameterSubClass.java langtools/test/com/sun/javadoc/testNewLanguageFeatures/pkg/TypeParameterSuperClass.java langtools/test/com/sun/javadoc/testNewLanguageFeatures/pkg/TypeParameters.java langtools/test/com/sun/javadoc/testNewLanguageFeatures/pkg/VarArgs.java langtools/test/com/sun/javadoc/testNewLanguageFeatures/pkg/Wildcards.java langtools/test/com/sun/javadoc/testNewLanguageFeatures/pkg/package-info.java langtools/test/com/sun/javadoc/testNewLanguageFeatures/pkg1/A.java langtools/test/com/sun/javadoc/testNewLanguageFeatures/pkg1/B.java langtools/test/com/sun/javadoc/testNewLanguageFeatures/pkg2/ClassUseTest1.java langtools/test/com/sun/javadoc/testNewLanguageFeatures/pkg2/ClassUseTest2.java langtools/test/com/sun/javadoc/testNewLanguageFeatures/pkg2/ClassUseTest3.java langtools/test/com/sun/javadoc/testNewLanguageFeatures/pkg2/Foo.java langtools/test/com/sun/javadoc/testNewLanguageFeatures/pkg2/Foo2.java langtools/test/com/sun/javadoc/testNewLanguageFeatures/pkg2/Foo3.java langtools/test/com/sun/javadoc/testNewLanguageFeatures/pkg2/Foo4.java langtools/test/com/sun/javadoc/testNewLanguageFeatures/pkg2/ParamTest.java langtools/test/com/sun/javadoc/testNewLanguageFeatures/pkg2/ParamTest2.java langtools/test/com/sun/javadoc/testNoPackagesFile/C.java langtools/test/com/sun/javadoc/testNoPackagesFile/TestNoPackagesFile.java langtools/test/com/sun/javadoc/testNonInlineHtmlTagRemoval/C.java langtools/test/com/sun/javadoc/testNonInlineHtmlTagRemoval/Negative.java langtools/test/com/sun/javadoc/testNonInlineHtmlTagRemoval/TestNonInlineHtmlTagRemoval.java langtools/test/com/sun/javadoc/testNotifications/TestNotifications.java langtools/test/com/sun/javadoc/testNotifications/pkg/C.java langtools/test/com/sun/javadoc/testOptions/TestOptions.java langtools/test/com/sun/javadoc/testOptions/pkg/Foo.java langtools/test/com/sun/javadoc/testOrdering/C.java langtools/test/com/sun/javadoc/testOrdering/TestOrdering.java langtools/test/com/sun/javadoc/testOrdering/UsedInC.java langtools/test/com/sun/javadoc/testOrdering/pkg1/A.java langtools/test/com/sun/javadoc/testOrdering/pkg1/B.java langtools/test/com/sun/javadoc/testOrdering/pkg1/C1.java langtools/test/com/sun/javadoc/testOrdering/pkg1/C2.java langtools/test/com/sun/javadoc/testOrdering/pkg1/C3.java langtools/test/com/sun/javadoc/testOrdering/pkg1/C4.java langtools/test/com/sun/javadoc/testOrdering/pkg1/MethodOrder.java langtools/test/com/sun/javadoc/testOrdering/pkg1/UsedClass.java langtools/test/com/sun/javadoc/testOrdering/src-2/a/A.java langtools/test/com/sun/javadoc/testOrdering/src-2/a/something.java langtools/test/com/sun/javadoc/testOrdering/src-2/b/B.java langtools/test/com/sun/javadoc/testOrdering/src-2/b/something.java langtools/test/com/sun/javadoc/testOrdering/src-2/e/something.java langtools/test/com/sun/javadoc/testOrdering/src-2/something/J.java langtools/test/com/sun/javadoc/testOrdering/src-2/something/package-info.java langtools/test/com/sun/javadoc/testOrdering/src-2/something/something.java langtools/test/com/sun/javadoc/testOverridenMethods/TestMultiInheritence.java langtools/test/com/sun/javadoc/testOverridenMethods/TestOverridenMethodDocCopy.java langtools/test/com/sun/javadoc/testOverridenMethods/TestOverridenPrivateMethods.java langtools/test/com/sun/javadoc/testOverridenMethods/TestOverridenPrivateMethodsWithPackageFlag.java langtools/test/com/sun/javadoc/testOverridenMethods/TestOverridenPrivateMethodsWithPrivateFlag.java langtools/test/com/sun/javadoc/testOverridenMethods/pkg1/BaseClass.java langtools/test/com/sun/javadoc/testOverridenMethods/pkg1/SubClass.java langtools/test/com/sun/javadoc/testOverridenMethods/pkg2/SubClass.java langtools/test/com/sun/javadoc/testOverridenMethods/pkg3/I0.java langtools/test/com/sun/javadoc/testOverridenMethods/pkg3/I1.java langtools/test/com/sun/javadoc/testOverridenMethods/pkg3/I2.java langtools/test/com/sun/javadoc/testOverridenMethods/pkg3/I3.java langtools/test/com/sun/javadoc/testOverridenMethods/pkg3/I4.java langtools/test/com/sun/javadoc/testPackageDeprecation/C2.java langtools/test/com/sun/javadoc/testPackageDeprecation/FooDepr.java langtools/test/com/sun/javadoc/testPackageDeprecation/TestPackageDeprecation.java langtools/test/com/sun/javadoc/testPackageDeprecation/pkg/A.java langtools/test/com/sun/javadoc/testPackageDeprecation/pkg1/ClassUseTest1.java langtools/test/com/sun/javadoc/testPackageDeprecation/pkg1/Foo.java langtools/test/com/sun/javadoc/testPackageDeprecation/pkg1/Foo2.java langtools/test/com/sun/javadoc/testPackageDeprecation/pkg1/package-info.java langtools/test/com/sun/javadoc/testPackagePage/TestPackagePage.java langtools/test/com/sun/javadoc/testPackagePage/com/pkg/C.java langtools/test/com/sun/javadoc/testPackagePage/com/pkg/package.html langtools/test/com/sun/javadoc/testPackagePage/pkg2/C.java langtools/test/com/sun/javadoc/testParamTaglet/TestParamTaglet.java langtools/test/com/sun/javadoc/testParamTaglet/pkg/C.java langtools/test/com/sun/javadoc/testParamTaglet/pkg/Parent.java langtools/test/com/sun/javadoc/testPrivateClasses/TestPrivateClasses.java langtools/test/com/sun/javadoc/testPrivateClasses/pkg/PrivateInterface.java langtools/test/com/sun/javadoc/testPrivateClasses/pkg/PrivateParent.java langtools/test/com/sun/javadoc/testPrivateClasses/pkg/PublicChild.java langtools/test/com/sun/javadoc/testPrivateClasses/pkg/PublicInterface.java langtools/test/com/sun/javadoc/testPrivateClasses/pkg2/C.java langtools/test/com/sun/javadoc/testPrivateClasses/pkg2/I.java langtools/test/com/sun/javadoc/testRecurseSubPackages/TestRecurseSubPackages.java langtools/test/com/sun/javadoc/testRecurseSubPackages/pkg1/C1.java langtools/test/com/sun/javadoc/testRecurseSubPackages/pkg1/C2.java langtools/test/com/sun/javadoc/testRecurseSubPackages/pkg1/pkg2/C3.java langtools/test/com/sun/javadoc/testRecurseSubPackages/pkg1/pkg2/C4.java langtools/test/com/sun/javadoc/testRecurseSubPackages/pkg1/pkg2/packageToExclude/DummyClass.java langtools/test/com/sun/javadoc/testRecurseSubPackages/pkg1/pkg2/pkg3/C5.java langtools/test/com/sun/javadoc/testRecurseSubPackages/pkg1/pkg2/pkg3/C6.java langtools/test/com/sun/javadoc/testRelativeLinks/TestRelativeLinks.java langtools/test/com/sun/javadoc/testRelativeLinks/pkg/C.java langtools/test/com/sun/javadoc/testRelativeLinks/pkg/package.html langtools/test/com/sun/javadoc/testRelativeLinks/pkg2/Foo.java langtools/test/com/sun/javadoc/testRepeatedAnnotations/TestRepeatedAnnotations.java langtools/test/com/sun/javadoc/testRepeatedAnnotations/pkg/C.java langtools/test/com/sun/javadoc/testRepeatedAnnotations/pkg/ContaineeRegDoc.java langtools/test/com/sun/javadoc/testRepeatedAnnotations/pkg/ContaineeSynthDoc.java langtools/test/com/sun/javadoc/testRepeatedAnnotations/pkg/ContainerRegDoc.java langtools/test/com/sun/javadoc/testRepeatedAnnotations/pkg/ContainerRegNotDoc.java langtools/test/com/sun/javadoc/testRepeatedAnnotations/pkg/ContainerSynthDoc.java langtools/test/com/sun/javadoc/testRepeatedAnnotations/pkg/D.java langtools/test/com/sun/javadoc/testRepeatedAnnotations/pkg/NonSynthDocContainer.java langtools/test/com/sun/javadoc/testRepeatedAnnotations/pkg/RegArryDoc.java langtools/test/com/sun/javadoc/testRepeatedAnnotations/pkg/RegContaineeDoc.java langtools/test/com/sun/javadoc/testRepeatedAnnotations/pkg/RegContaineeNotDoc.java langtools/test/com/sun/javadoc/testRepeatedAnnotations/pkg/RegContainerDoc.java langtools/test/com/sun/javadoc/testRepeatedAnnotations/pkg/RegContainerNotDoc.java langtools/test/com/sun/javadoc/testRepeatedAnnotations/pkg/RegDoc.java langtools/test/com/sun/javadoc/testRepeatedAnnotations/pkg1/C.java langtools/test/com/sun/javadoc/testRepeatedAnnotations/pkg1/ContaineeNotDoc.java langtools/test/com/sun/javadoc/testRepeatedAnnotations/pkg1/ContaineeSynthDoc.java langtools/test/com/sun/javadoc/testRepeatedAnnotations/pkg1/ContainerSynthNotDoc.java langtools/test/com/sun/javadoc/testRepeatedAnnotations/pkg1/ContainerValDoc.java langtools/test/com/sun/javadoc/testRepeatedAnnotations/pkg1/ContainerValNotDoc.java langtools/test/com/sun/javadoc/testRepeatedAnnotations/pkg1/RegContaineeDoc.java langtools/test/com/sun/javadoc/testRepeatedAnnotations/pkg1/RegContaineeNotDoc.java langtools/test/com/sun/javadoc/testRepeatedAnnotations/pkg1/RegContainerValDoc.java langtools/test/com/sun/javadoc/testRepeatedAnnotations/pkg1/RegContainerValNotDoc.java langtools/test/com/sun/javadoc/testReturnTag/TestReturnTag.java langtools/test/com/sun/javadoc/testSearch/TestSearch.java langtools/test/com/sun/javadoc/testSearch/UnnamedPkgClass.java langtools/test/com/sun/javadoc/testSearch/pkg/AnnotationType.java langtools/test/com/sun/javadoc/testSearch/pkg/AnotherClass.java langtools/test/com/sun/javadoc/testSearch/pkg/TestError.java langtools/test/com/sun/javadoc/testSearch/pkg/TestException.java langtools/test/com/sun/javadoc/testSearch/pkg/TestInterface.java langtools/test/com/sun/javadoc/testSearch/pkg/package-info.java langtools/test/com/sun/javadoc/testSearch/pkg1/NestedInnerClass.java langtools/test/com/sun/javadoc/testSearch/pkg1/PrivateIncludeInnerClass.java langtools/test/com/sun/javadoc/testSearch/pkg1/ProtectedInnerClass.java langtools/test/com/sun/javadoc/testSearch/pkg1/PublicExcludeInnerClass.java langtools/test/com/sun/javadoc/testSearch/pkg1/RegClass.java langtools/test/com/sun/javadoc/testSearch/pkg2/DeprecatedClassByAnnotation.java langtools/test/com/sun/javadoc/testSearch/pkg2/Interface.java langtools/test/com/sun/javadoc/testSearch/pkg2/TestAnnotationType.java langtools/test/com/sun/javadoc/testSearch/pkg2/TestClass.java langtools/test/com/sun/javadoc/testSearch/pkg2/TestEnum.java langtools/test/com/sun/javadoc/testSearch/pkg2/TestError.java langtools/test/com/sun/javadoc/testSearch/pkg2/TestException.java langtools/test/com/sun/javadoc/testSearch/pkg2/TestInterface.java langtools/test/com/sun/javadoc/testSearch/pkg3/ClassNoConstants.java langtools/test/com/sun/javadoc/testSearch/pkgfx/C.java langtools/test/com/sun/javadoc/testSeeTag/TestSeeTag.java langtools/test/com/sun/javadoc/testSeeTag/pkg/Test.java langtools/test/com/sun/javadoc/testSerialVersionUID/C.java langtools/test/com/sun/javadoc/testSerialVersionUID/TestSerialVersionUID.java langtools/test/com/sun/javadoc/testSerializedForm/TestSerializedForm.java langtools/test/com/sun/javadoc/testSerializedForm/pkg1/NestedInnerClass.java langtools/test/com/sun/javadoc/testSerializedForm/pkg1/PrivateIncludeInnerClass.java langtools/test/com/sun/javadoc/testSerializedForm/pkg1/ProtectedInnerClass.java langtools/test/com/sun/javadoc/testSerializedForm/pkg1/PublicExcludeInnerClass.java langtools/test/com/sun/javadoc/testSerializedFormDeprecationInfo/TestSerializedFormDeprecationInfo.java langtools/test/com/sun/javadoc/testSerializedFormDeprecationInfo/pkg1/C1.java langtools/test/com/sun/javadoc/testSerializedFormDeprecationInfo/pkg1/C2.java langtools/test/com/sun/javadoc/testSerializedFormDeprecationInfo/pkg1/C3.java langtools/test/com/sun/javadoc/testSimpleTag/C.java langtools/test/com/sun/javadoc/testSimpleTag/TestSimpleTag.java langtools/test/com/sun/javadoc/testSimpleTagExclude/DummyClass.java langtools/test/com/sun/javadoc/testSimpleTagExclude/TestSimpleTagExclude.java langtools/test/com/sun/javadoc/testSimpleTagInherit/TestSimpleTagInherit.java langtools/test/com/sun/javadoc/testSimpleTagInherit/p/BaseClass.java langtools/test/com/sun/javadoc/testSimpleTagInherit/p/TestClass.java langtools/test/com/sun/javadoc/testSinceTag/TestSinceTag.java langtools/test/com/sun/javadoc/testSinceTag/pkg1/C1.java langtools/test/com/sun/javadoc/testSingleQuotedLink/TestSingleQuotedLink.java langtools/test/com/sun/javadoc/testSingleQuotedLink/pkg1/C1.java langtools/test/com/sun/javadoc/testSingleQuotedLink/pkg1/C2.java langtools/test/com/sun/javadoc/testSingleQuotedLink/pkg1/package.html langtools/test/com/sun/javadoc/testSourceTab/DoubleTab/C.java langtools/test/com/sun/javadoc/testSourceTab/SingleTab/C.java langtools/test/com/sun/javadoc/testSourceTab/TestSourceTab.java langtools/test/com/sun/javadoc/testStylesheet/TestStylesheet.java langtools/test/com/sun/javadoc/testStylesheet/pkg/A.java langtools/test/com/sun/javadoc/testSubTitle/TestSubTitle.java langtools/test/com/sun/javadoc/testSubTitle/pkg/C.java langtools/test/com/sun/javadoc/testSubTitle/pkg/package.html langtools/test/com/sun/javadoc/testSummaryHeading/C.java langtools/test/com/sun/javadoc/testSummaryHeading/TestSummaryHeading.java langtools/test/com/sun/javadoc/testSuperclassInSerialForm/TestSuperClassInSerialForm.java langtools/test/com/sun/javadoc/testSuperclassInSerialForm/pkg/SubClass.java langtools/test/com/sun/javadoc/testSuperclassInSerialForm/pkg/SuperClass.java langtools/test/com/sun/javadoc/testSupplementary/C.java langtools/test/com/sun/javadoc/testSupplementary/TestSupplementary.java langtools/test/com/sun/javadoc/testTagHolderMethod/TestTagHolderMethod.java langtools/test/com/sun/javadoc/testTagHolderMethod/pkg/C.java langtools/test/com/sun/javadoc/testTagInheritence/TestTagInheritence.java langtools/test/com/sun/javadoc/testTagInheritence/firstSentence/A.java langtools/test/com/sun/javadoc/testTagInheritence/firstSentence/B.java langtools/test/com/sun/javadoc/testTagInheritence/firstSentence2/A.java langtools/test/com/sun/javadoc/testTagInheritence/firstSentence2/B.java langtools/test/com/sun/javadoc/testTagInheritence/firstSentence2/C.java langtools/test/com/sun/javadoc/testTagInheritence/pkg/TestAbstractClass.java langtools/test/com/sun/javadoc/testTagInheritence/pkg/TestInterface.java langtools/test/com/sun/javadoc/testTagInheritence/pkg/TestInterfaceForAbstractClass.java langtools/test/com/sun/javadoc/testTagInheritence/pkg/TestSuperSuperClass.java langtools/test/com/sun/javadoc/testTagInheritence/pkg/TestSuperSuperInterface.java langtools/test/com/sun/javadoc/testTagInheritence/pkg/TestTagInheritence.java langtools/test/com/sun/javadoc/testTagMisuse/TestTagMisuse.java langtools/test/com/sun/javadoc/testTagOutput/TestTagOutput.java langtools/test/com/sun/javadoc/testTagOutput/pkg1/DeprecatedTag.java langtools/test/com/sun/javadoc/testTaglets/C.java langtools/test/com/sun/javadoc/testTaglets/Child.java langtools/test/com/sun/javadoc/testTaglets/Parent.java langtools/test/com/sun/javadoc/testTaglets/TestTaglets.java langtools/test/com/sun/javadoc/testTaglets/taglets/Foo.java langtools/test/com/sun/javadoc/testThrowsHead/C.java langtools/test/com/sun/javadoc/testThrowsHead/TestThrowsHead.java langtools/test/com/sun/javadoc/testThrowsInheritence/C.java langtools/test/com/sun/javadoc/testThrowsInheritence/Foo.java langtools/test/com/sun/javadoc/testThrowsInheritence/I.java langtools/test/com/sun/javadoc/testThrowsInheritence/Iface.java langtools/test/com/sun/javadoc/testThrowsInheritence/TestThrowsTagInheritence.java langtools/test/com/sun/javadoc/testThrowsTag/TestThrowsTag.java langtools/test/com/sun/javadoc/testThrowsTag/pkg/C.java langtools/test/com/sun/javadoc/testThrowsTag/pkg/P.java langtools/test/com/sun/javadoc/testThrowsTag/pkg/T1.java langtools/test/com/sun/javadoc/testThrowsTag/pkg/T2.java langtools/test/com/sun/javadoc/testThrowsTag/pkg/T3.java langtools/test/com/sun/javadoc/testThrowsTag/pkg/T4.java langtools/test/com/sun/javadoc/testThrowsTag/pkg/T5.java langtools/test/com/sun/javadoc/testThrowsTag/pkg/T6.java langtools/test/com/sun/javadoc/testThrowsTag/pkg/T7.java langtools/test/com/sun/javadoc/testThrowsTag/pkg/T8.java langtools/test/com/sun/javadoc/testTitleInHref/TestTitleInHref.java langtools/test/com/sun/javadoc/testTitleInHref/package-list langtools/test/com/sun/javadoc/testTitleInHref/pkg/Class.java langtools/test/com/sun/javadoc/testTitleInHref/pkg/Interface.java langtools/test/com/sun/javadoc/testTitleInHref/pkg/Links.java langtools/test/com/sun/javadoc/testTopOption/TestTopOption.java langtools/test/com/sun/javadoc/testTopOption/overview.html langtools/test/com/sun/javadoc/testTopOption/pkg/AnnotationType.java langtools/test/com/sun/javadoc/testTopOption/pkg/Cl.java langtools/test/com/sun/javadoc/testTypeAnnotations/TestTypeAnnotations.java langtools/test/com/sun/javadoc/testTypeAnnotations/typeannos/ClassExtends.java langtools/test/com/sun/javadoc/testTypeAnnotations/typeannos/ClassParameters.java langtools/test/com/sun/javadoc/testTypeAnnotations/typeannos/Fields.java langtools/test/com/sun/javadoc/testTypeAnnotations/typeannos/MethodReturnType.java langtools/test/com/sun/javadoc/testTypeAnnotations/typeannos/MethodTypeParameters.java langtools/test/com/sun/javadoc/testTypeAnnotations/typeannos/Parameters.java langtools/test/com/sun/javadoc/testTypeAnnotations/typeannos/Receivers.java langtools/test/com/sun/javadoc/testTypeAnnotations/typeannos/Throws.java langtools/test/com/sun/javadoc/testTypeAnnotations/typeannos/TypeParameters.java langtools/test/com/sun/javadoc/testTypeAnnotations/typeannos/Varargs.java langtools/test/com/sun/javadoc/testTypeAnnotations/typeannos/Wildcards.java langtools/test/com/sun/javadoc/testTypeParams/TestTypeParameters.java langtools/test/com/sun/javadoc/testTypeParams/pkg/C.java langtools/test/com/sun/javadoc/testTypeParams/pkg/ClassUseTest3.java langtools/test/com/sun/javadoc/testTypeParams/pkg/Foo4.java langtools/test/com/sun/javadoc/testTypeParams/pkg/ParamTest2.java langtools/test/com/sun/javadoc/testTypeParams/pkg/Parent.java langtools/test/com/sun/javadoc/testUnnamedPackage/BadSource.java langtools/test/com/sun/javadoc/testUnnamedPackage/C.java langtools/test/com/sun/javadoc/testUnnamedPackage/TestUnnamedPackage.java langtools/test/com/sun/javadoc/testUnnamedPackage/package.html langtools/test/com/sun/javadoc/testUseOption/C.java langtools/test/com/sun/javadoc/testUseOption/TestUseOption.java langtools/test/com/sun/javadoc/testUseOption/UsedInC.java langtools/test/com/sun/javadoc/testUseOption/pkg1/AnAbstract.java langtools/test/com/sun/javadoc/testUseOption/pkg1/C1.java langtools/test/com/sun/javadoc/testUseOption/pkg1/C10.java langtools/test/com/sun/javadoc/testUseOption/pkg1/C2.java langtools/test/com/sun/javadoc/testUseOption/pkg1/C4.java langtools/test/com/sun/javadoc/testUseOption/pkg1/C5.java langtools/test/com/sun/javadoc/testUseOption/pkg1/C6.java langtools/test/com/sun/javadoc/testUseOption/pkg1/C7.java langtools/test/com/sun/javadoc/testUseOption/pkg1/C8.java langtools/test/com/sun/javadoc/testUseOption/pkg1/C9.java langtools/test/com/sun/javadoc/testUseOption/pkg1/UsedClass.java langtools/test/com/sun/javadoc/testUseOption/pkg1/UsedInterface.java langtools/test/com/sun/javadoc/testUseOption/pkg1/UsedInterfaceA.java langtools/test/com/sun/javadoc/testUseOption/pkg1/package.html langtools/test/com/sun/javadoc/testUseOption/pkg2/C3.java langtools/test/com/sun/javadoc/testUseOption/pkg2/package.html langtools/test/com/sun/javadoc/testUseOption/unique/C1.java langtools/test/com/sun/javadoc/testUseOption/unique/UseMe.java langtools/test/com/sun/javadoc/testValueTag/TestValueTag.java langtools/test/com/sun/javadoc/testValueTag/pkg1/Class1.java langtools/test/com/sun/javadoc/testValueTag/pkg1/Class2.java langtools/test/com/sun/javadoc/testValueTag/pkg1/CustomTagUsage.java langtools/test/com/sun/javadoc/testValueTag/pkg2/Class3.java langtools/test/com/sun/javadoc/testValueTag/pkg2/package.html langtools/test/com/sun/javadoc/testWarnBadParamNames/C.java langtools/test/com/sun/javadoc/testWarnBadParamNames/TestWarnBadParamNames.java langtools/test/com/sun/javadoc/testWarnings/TestWarnings.java langtools/test/com/sun/javadoc/testWarnings/pkg/X.java langtools/test/com/sun/javadoc/testWarnings/pkg/package.html langtools/test/com/sun/javadoc/testWindowTitle/TestWindowTitle.java langtools/test/com/sun/javadoc/testWindowTitle/p1/C1.java langtools/test/com/sun/javadoc/testWindowTitle/p2/C2.java langtools/test/com/sun/javadoc/testXOption/TestXOption.java langtools/test/com/sun/javadoc/typeAnnotations/smoke/TestSmoke.java langtools/test/com/sun/javadoc/typeAnnotations/smoke/pkg/TargetTypes.java langtools/test/tools/javac/modules/LegacyXModuleTest.java langtools/test/tools/javadoc/6958836/errs/Errors.java langtools/test/tools/javadoc/6958836/warns/Warnings.java langtools/test/tools/javadoc/T4696488.java langtools/test/tools/javadoc/T6551367.java langtools/test/tools/javadoc/TestScriptInComment.java langtools/test/tools/javadoc/api/basic/TagletPathTest.java langtools/test/tools/javadoc/badSuper/BadSuper.java langtools/test/tools/javadoc/badSuper/p/A.java langtools/test/tools/javadoc/badSuper/p/B.java langtools/test/tools/javadoc/sampleapi/SampleApiTest.java langtools/test/tools/javadoc/sampleapi/res/fx.xml langtools/test/tools/javadoc/sampleapi/res/simple.xml langtools/test/tools/javadoc/sampleapi/res/sub.xml langtools/test/tools/javadoc/sampleapi/res/tiny.xml |
diffstat | 1716 files changed, 29742 insertions(+), 130967 deletions(-) [+] |
line wrap: on
line diff
--- a/.hgtags Fri Jun 23 09:53:43 2017 -0700 +++ b/.hgtags Thu Jul 06 09:36:17 2017 -0700 @@ -1,3 +1,4 @@ +994036e74ab805bcc09afa0646be17a725bec42f jdk-9+175 94680c6d60ecd9ed3ffd1847706efde7eb947afc jdk-9+174 6dd7fda42bab7ecf648cafb0a4e9b4ca11b3094f jdk-9+173 dad6746278facbbea57dd462cb56fb743dc0a5f0 jdk-9+172 @@ -430,3 +431,4 @@ b0f2b8ff25a2209b2c807785d75f20e5086bbfc2 jdk-10+10 036dbf8b381798e5d31065109714d04d97bf98a4 jdk-10+11 e6d70017f5b9adbb2ec82d826973d0251800a3c3 jdk-10+12 +9927a9f16738e240ab7014f0118f41e314ef8f99 jdk-10+13
--- a/.hgtags-top-repo Fri Jun 23 09:53:43 2017 -0700 +++ b/.hgtags-top-repo Thu Jul 06 09:36:17 2017 -0700 @@ -430,3 +430,5 @@ 88d7fd969e7df0e07a53b201cfd29393ca33ede9 jdk-9+173 5466f409346e0446ee9a6daeb7f5d75c8fc76823 jdk-9+174 8d4ed1e06fe184c9cb08c5b708e7d6f5c066644f jdk-10+12 +8f7227c6012b0051ea4e0bcee040c627bf699b88 jdk-9+175 +d67a3f1f057f7e31e12f33ebe3667cb73d252268 jdk-10+13
--- a/.jcheck/conf Fri Jun 23 09:53:43 2017 -0700 +++ b/.jcheck/conf Thu Jul 06 09:36:17 2017 -0700 @@ -1,1 +1,2 @@ project=jdk10 +bugids=dup
--- a/common/doc/testing.html Fri Jun 23 09:53:43 2017 -0700 +++ b/common/doc/testing.html Thu Jul 06 09:36:17 2017 -0700 @@ -18,14 +18,16 @@ </header> <nav id="TOC"> <ul> -<li><a href="#using-the-run-test-framework">Using the run-test framework</a></li> +<li><a href="#using-the-run-test-framework">Using the run-test framework</a><ul> +<li><a href="#configuration">Configuration</a></li> +</ul></li> <li><a href="#test-selection">Test selection</a><ul> -<li><a href="#jtreg">JTreg</a></li> +<li><a href="#jtreg">JTReg</a></li> <li><a href="#gtest">Gtest</a></li> </ul></li> <li><a href="#test-results-and-summary">Test results and summary</a></li> <li><a href="#test-suite-control">Test suite control</a><ul> -<li><a href="#jtreg-keywords">JTreg keywords</a></li> +<li><a href="#jtreg-keywords">JTReg keywords</a></li> <li><a href="#gtest-keywords">Gtest keywords</a></li> </ul></li> </ul> @@ -41,14 +43,17 @@ $ make run-test TEST="hotspot/test:hotspot_gc" JTREG="JOBS=1;TIMEOUT=8;VM_OTIONS=-XshowSettings -Xlog:gc+ref=debug" $ make run-test TEST="jtreg:hotspot/test:hotspot_gc hotspot/test/native_sanity/JniVersion.java" $ make exploded-run-test TEST=hotspot_tier1</code></pre> + +<h3 id="configuration">Configuration</h3> +<p>To be able to run JTReg tests, <code>configure</code> needs to know where to find the JTReg test framework. If it is not picked up automatically by configure, use the <code>--with-jtreg=<path to jtreg home></code> option to point to the JTReg framework. Note that this option should point to the JTReg home, i.e. the top directory, containing <code>lib/jtreg.jar</code> etc. (An alternative is to set the <code>JT_HOME</code> environment variable to point to the JTReg home before running <code>configure</code>.)</p> <h2 id="test-selection">Test selection</h2> <p>All functionality is available using the run-test make target. In this use case, the test or tests to be executed is controlled using the <code>TEST</code> variable. To speed up subsequent test runs with no source code changes, run-test-only can be used instead, which do not depend on the source and test image build.</p> -<p>For some common top-level tests, direct make targets have been generated. This includes all JTreg test groups, the hotspot gtest, and custom tests (if present). This means that <code>make run-test-tier1</code> is equivalent to <code>make run-test TEST="tier1"</code>, but the latter is more tab-completion friendly. For more complex test runs, the <code>run-test TEST="x"</code> solution needs to be used.</p> +<p>For some common top-level tests, direct make targets have been generated. This includes all JTReg test groups, the hotspot gtest, and custom tests (if present). This means that <code>make run-test-tier1</code> is equivalent to <code>make run-test TEST="tier1"</code>, but the latter is more tab-completion friendly. For more complex test runs, the <code>run-test TEST="x"</code> solution needs to be used.</p> <p>The test specifications given in <code>TEST</code> is parsed into fully qualified test descriptors, which clearly and unambigously show which tests will be run. As an example, <code>:tier1</code> will expand to <code>jtreg:jdk/test:tier1 jtreg:langtools/test:tier1 jtreg:nashorn/test:tier1 jtreg:jaxp/test:tier1</code>. You can always submit a list of fully qualified test descriptors in the <code>TEST</code> variable if you want to shortcut the parser.</p> -<h3 id="jtreg">JTreg</h3> -<p>JTreg test groups can be specified either without a test root, e.g. <code>:tier1</code> (or <code>tier1</code>, the initial colon is optional), or with, e.g. <code>hotspot/test:tier1</code>, <code>jdk/test:jdk_util</code>.</p> +<h3 id="jtreg">JTReg</h3> +<p>JTReg test groups can be specified either without a test root, e.g. <code>:tier1</code> (or <code>tier1</code>, the initial colon is optional), or with, e.g. <code>hotspot/test:tier1</code>, <code>jdk/test:jdk_util</code>.</p> <p>When specified without a test root, all matching groups from all tests roots will be added. Otherwise, only the group from the specified test root will be added.</p> -<p>Individual JTreg tests or directories containing JTreg tests can also be specified, like <code>hotspot/test/native_sanity/JniVersion.java</code> or <code>hotspot/test/native_sanity</code>. You can also specify an absolute path, to point to a JTreg test outside the source tree.</p> +<p>Individual JTReg tests or directories containing JTReg tests can also be specified, like <code>hotspot/test/native_sanity/JniVersion.java</code> or <code>hotspot/test/native_sanity</code>. You can also specify an absolute path, to point to a JTReg test outside the source tree.</p> <p>As long as the test groups or test paths can be uniquely resolved, you do not need to enter the <code>jtreg:</code> prefix. If this is not possible, or if you want to use a fully qualified test descriptor, add <code>jtreg:</code>, e.g. <code>jtreg:hotspot/test/native_sanity</code>.</p> <h3 id="gtest">Gtest</h3> <p>Since the Hotspot Gtest suite is so quick, the default is to run all tests. This is specified by just <code>gtest</code>, or as a fully qualified test descriptor <code>gtest:all</code>.</p> @@ -67,15 +72,15 @@ <p>Tests where the number of TOTAL tests does not equal the number of PASSed tests will be considered a test failure. These are marked with the <code>>> ... <<</code> marker for easy identification.</p> <p>The classification of non-passed tests differs a bit between test suites. In the summary, ERROR is used as a catch-all for tests that neither passed nor are classified as failed by the framework. This might indicate test framework error, timeout or other problems.</p> <p>In case of test failures, <code>make run-test</code> will exit with a non-zero exit value.</p> -<p>All tests have their result stored in <code>build/$BUILD/test-result/$TEST_ID</code>, where TEST_ID is a path-safe conversion from the fully qualified test descriptor, e.g. for <code>jtreg:jdk/test:tier1</code> the TEST_ID is <code>jtreg_jdk_test_tier1</code>. This path is also printed in the log at the end of the test run.</p> +<p>All tests have their result stored in <code>build/$BUILD/test-results/$TEST_ID</code>, where TEST_ID is a path-safe conversion from the fully qualified test descriptor, e.g. for <code>jtreg:jdk/test:tier1</code> the TEST_ID is <code>jtreg_jdk_test_tier1</code>. This path is also printed in the log at the end of the test run.</p> <p>Additional work data is stored in <code>build/$BUILD/test-support/$TEST_ID</code>. For some frameworks, this directory might contain information that is useful in determining the cause of a failed test.</p> <h2 id="test-suite-control">Test suite control</h2> <p>It is possible to control various aspects of the test suites using make control variables.</p> -<p>These variables use a keyword=value approach to allow multiple values to be set. So, for instance, <code>JTREG="JOBS=1;TIMEOUT=8"</code> will set the JTreg concurrency level to 1 and the timeout factor to 8. This is equivalent to setting <code>JTREG_JOBS=1 JTREG_TIMEOUT=8</code>, but using the keyword format means that the <code>JTREG</code> variable is parsed and verified for correctness, so <code>JTREG="TMIEOUT=8"</code> would give an error, while <code>JTREG_TMIEOUT=8</code> would just pass unnoticed.</p> +<p>These variables use a keyword=value approach to allow multiple values to be set. So, for instance, <code>JTREG="JOBS=1;TIMEOUT=8"</code> will set the JTReg concurrency level to 1 and the timeout factor to 8. This is equivalent to setting <code>JTREG_JOBS=1 JTREG_TIMEOUT=8</code>, but using the keyword format means that the <code>JTREG</code> variable is parsed and verified for correctness, so <code>JTREG="TMIEOUT=8"</code> would give an error, while <code>JTREG_TMIEOUT=8</code> would just pass unnoticed.</p> <p>To separate multiple keyword=value pairs, use <code>;</code> (semicolon). Since the shell normally eats <code>;</code>, the recommended usage is to write the assignment inside qoutes, e.g. <code>JTREG="...;..."</code>. This will also make sure spaces are preserved, as in <code>JTREG="VM_OTIONS=-XshowSettings -Xlog:gc+ref=debug"</code>.</p> <p>(Other ways are possible, e.g. using backslash: <code>JTREG=JOBS=1\;TIMEOUT=8</code>. Also, as a special technique, the string <code>%20</code> will be replaced with space for certain options, e.g. <code>JTREG=VM_OTIONS=-XshowSettings%20-Xlog:gc+ref=debug</code>. This can be useful if you have layers of scripts and have trouble getting proper quoting of command line arguments through.)</p> <p>As far as possible, the names of the keywords have been standardized between test suites.</p> -<h3 id="jtreg-keywords">JTreg keywords</h3> +<h3 id="jtreg-keywords">JTReg keywords</h3> <h4 id="jobs">JOBS</h4> <p>The test concurrency (<code>-concurrency</code>).</p> <p>Defaults to TEST_JOBS (if set by <code>--with-test-jobs=</code>), otherwise it defaults to JOBS, except for Hotspot, where the default is <em>number of CPU cores/2</em>, but never more than 12.</p> @@ -96,15 +101,15 @@ <p>Defaults to <code>fail,error</code>.</p> <h4 id="max_mem">MAX_MEM</h4> <p>Limit memory consumption (<code>-Xmx</code> and <code>-vmoption:-Xmx</code>, or none).</p> -<p>Limit memory consumption for JTreg test framework and VM under test. Set to 0 to disable the limits.</p> +<p>Limit memory consumption for JTReg test framework and VM under test. Set to 0 to disable the limits.</p> <p>Defaults to 512m, except for hotspot, where it defaults to 0 (no limit).</p> <h4 id="options">OPTIONS</h4> -<p>Additional options to the JTreg test framework.</p> -<p>Use <code>JTREG="OPTIONS=--help all"</code> to see all available JTreg options.</p> +<p>Additional options to the JTReg test framework.</p> +<p>Use <code>JTREG="OPTIONS=--help all"</code> to see all available JTReg options.</p> <h4 id="java_options">JAVA_OPTIONS</h4> -<p>Additional Java options to JTreg (<code>-javaoption</code>).</p> +<p>Additional Java options to JTReg (<code>-javaoption</code>).</p> <h4 id="vm_options">VM_OPTIONS</h4> -<p>Additional VM options to JTreg (<code>-vmoption</code>).</p> +<p>Additional VM options to JTReg (<code>-vmoption</code>).</p> <h3 id="gtest-keywords">Gtest keywords</h3> <h4 id="repeat">REPEAT</h4> <p>The number of times to repeat the tests (<code>--gtest_repeat</code>).</p>
--- a/common/doc/testing.md Fri Jun 23 09:53:43 2017 -0700 +++ b/common/doc/testing.md Thu Jul 06 09:36:17 2017 -0700 @@ -22,6 +22,15 @@ $ make run-test TEST="jtreg:hotspot/test:hotspot_gc hotspot/test/native_sanity/JniVersion.java" $ make exploded-run-test TEST=hotspot_tier1 +### Configuration + +To be able to run JTReg tests, `configure` needs to know where to find the +JTReg test framework. If it is not picked up automatically by configure, use +the `--with-jtreg=<path to jtreg home>` option to point to the JTReg framework. +Note that this option should point to the JTReg home, i.e. the top directory, +containing `lib/jtreg.jar` etc. (An alternative is to set the `JT_HOME` +environment variable to point to the JTReg home before running `configure`.) + ## Test selection All functionality is available using the run-test make target. In this use @@ -30,7 +39,7 @@ be used instead, which do not depend on the source and test image build. For some common top-level tests, direct make targets have been generated. This -includes all JTreg test groups, the hotspot gtest, and custom tests (if +includes all JTReg test groups, the hotspot gtest, and custom tests (if present). This means that `make run-test-tier1` is equivalent to `make run-test TEST="tier1"`, but the latter is more tab-completion friendly. For more complex test runs, the `run-test TEST="x"` solution needs to be used. @@ -42,9 +51,9 @@ can always submit a list of fully qualified test descriptors in the `TEST` variable if you want to shortcut the parser. -### JTreg +### JTReg -JTreg test groups can be specified either without a test root, e.g. `:tier1` +JTReg test groups can be specified either without a test root, e.g. `:tier1` (or `tier1`, the initial colon is optional), or with, e.g. `hotspot/test:tier1`, `jdk/test:jdk_util`. @@ -52,10 +61,10 @@ will be added. Otherwise, only the group from the specified test root will be added. -Individual JTreg tests or directories containing JTreg tests can also be +Individual JTReg tests or directories containing JTReg tests can also be specified, like `hotspot/test/native_sanity/JniVersion.java` or `hotspot/test/native_sanity`. You can also specify an absolute path, to point -to a JTreg test outside the source tree. +to a JTReg test outside the source tree. As long as the test groups or test paths can be uniquely resolved, you do not need to enter the `jtreg:` prefix. If this is not possible, or if you want to @@ -99,7 +108,7 @@ In case of test failures, `make run-test` will exit with a non-zero exit value. -All tests have their result stored in `build/$BUILD/test-result/$TEST_ID`, +All tests have their result stored in `build/$BUILD/test-results/$TEST_ID`, where TEST_ID is a path-safe conversion from the fully qualified test descriptor, e.g. for `jtreg:jdk/test:tier1` the TEST_ID is `jtreg_jdk_test_tier1`. This path is also printed in the log at the end of the @@ -115,7 +124,7 @@ variables. These variables use a keyword=value approach to allow multiple values to be -set. So, for instance, `JTREG="JOBS=1;TIMEOUT=8"` will set the JTreg +set. So, for instance, `JTREG="JOBS=1;TIMEOUT=8"` will set the JTReg concurrency level to 1 and the timeout factor to 8. This is equivalent to setting `JTREG_JOBS=1 JTREG_TIMEOUT=8`, but using the keyword format means that the `JTREG` variable is parsed and verified for correctness, so @@ -136,7 +145,7 @@ As far as possible, the names of the keywords have been standardized between test suites. -### JTreg keywords +### JTReg keywords #### JOBS The test concurrency (`-concurrency`). @@ -174,21 +183,21 @@ #### MAX_MEM Limit memory consumption (`-Xmx` and `-vmoption:-Xmx`, or none). -Limit memory consumption for JTreg test framework and VM under test. Set to 0 +Limit memory consumption for JTReg test framework and VM under test. Set to 0 to disable the limits. Defaults to 512m, except for hotspot, where it defaults to 0 (no limit). #### OPTIONS -Additional options to the JTreg test framework. +Additional options to the JTReg test framework. -Use `JTREG="OPTIONS=--help all"` to see all available JTreg options. +Use `JTREG="OPTIONS=--help all"` to see all available JTReg options. #### JAVA_OPTIONS -Additional Java options to JTreg (`-javaoption`). +Additional Java options to JTReg (`-javaoption`). #### VM_OPTIONS -Additional VM options to JTreg (`-vmoption`). +Additional VM options to JTReg (`-vmoption`). ### Gtest keywords
--- a/corba/.hgtags Fri Jun 23 09:53:43 2017 -0700 +++ b/corba/.hgtags Thu Jul 06 09:36:17 2017 -0700 @@ -430,3 +430,5 @@ 534ba4f8cfcf12accc5b9adb943103f2ff79fe16 jdk-9+173 3615768c12904e29bb2ec1b506cd4633cd8a9ced jdk-9+174 00ae6307d78bac49883ddc85d687aa88c49f3971 jdk-10+12 +dc78a3dd6b3a4f11cdae8a3e3d160e6a78bc7838 jdk-9+175 +564fced058bd2c8375e9104aa8f9494642cd7bdd jdk-10+13
--- a/corba/.jcheck/conf Fri Jun 23 09:53:43 2017 -0700 +++ b/corba/.jcheck/conf Thu Jul 06 09:36:17 2017 -0700 @@ -1,1 +1,2 @@ project=jdk10 +bugids=dup
--- a/corba/src/java.corba/share/classes/module-info.java Fri Jun 23 09:53:43 2017 -0700 +++ b/corba/src/java.corba/share/classes/module-info.java Thu Jul 06 09:36:17 2017 -0700 @@ -26,18 +26,21 @@ /** * Defines the Java binding of the OMG CORBA APIs, and the RMI-IIOP API. * + * <p> This module is upgradeble. + * * @moduleGraph * @since 9 */ @Deprecated(since="9", forRemoval=true) module java.corba { - requires transitive java.desktop; - requires transitive java.rmi; requires java.logging; requires java.naming; requires java.transaction; requires jdk.unsupported; + requires transitive java.desktop; + requires transitive java.rmi; + exports javax.activity; exports javax.rmi; exports javax.rmi.CORBA;
--- a/corba/src/java.corba/share/classes/org/omg/CORBA/BoundsHelper.java Fri Jun 23 09:53:43 2017 -0700 +++ b/corba/src/java.corba/share/classes/org/omg/CORBA/BoundsHelper.java Thu Jul 06 09:36:17 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2017, 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 @@ -29,7 +29,7 @@ /** * This Helper class is used to facilitate the marshalling of {@code Bounds}. * For more information on Helper files, see - * <a href="doc-files/generatedfiles.html#helper"> + * <a href="{@docRoot}/org/omg/CORBA/doc-files/generatedfiles.html#helper"> * "Generated Files: Helper Files"</a>. */
--- a/corba/src/java.corba/share/classes/org/omg/CORBA/ORBPackage/InvalidNameHelper.java Fri Jun 23 09:53:43 2017 -0700 +++ b/corba/src/java.corba/share/classes/org/omg/CORBA/ORBPackage/InvalidNameHelper.java Thu Jul 06 09:36:17 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2017, 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 @@ -30,7 +30,7 @@ * This Helper class is used to facilitate the marshalling of * {@code ORBPackage/InvalidName}. * For more information on Helper files, see - * <a href="doc-files/generatedfiles.html#helper"> + * <a href="{@docRoot}/org/omg/CORBA/doc-files/generatedfiles.html#helper"> * "Generated Files: Helper Files"</a>. */
--- a/corba/src/java.corba/share/classes/org/omg/CORBA/TypeCodePackage/BadKindHelper.java Fri Jun 23 09:53:43 2017 -0700 +++ b/corba/src/java.corba/share/classes/org/omg/CORBA/TypeCodePackage/BadKindHelper.java Thu Jul 06 09:36:17 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2017, 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 @@ -30,7 +30,7 @@ * This Helper class is used to facilitate the marshalling of * {@code TypeCodePackage/BadKind}. * For more information on Helper files, see - * <a href="doc-files/generatedfiles.html#helper"> + * <a href="{@docRoot}/org/omg/CORBA/doc-files/generatedfiles.html#helper"> * "Generated Files: Helper Files"</a>. */
--- a/corba/src/java.corba/share/classes/org/omg/CORBA/TypeCodePackage/BoundsHelper.java Fri Jun 23 09:53:43 2017 -0700 +++ b/corba/src/java.corba/share/classes/org/omg/CORBA/TypeCodePackage/BoundsHelper.java Thu Jul 06 09:36:17 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2017, 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 @@ -30,7 +30,7 @@ * This Helper class is used to facilitate the marshalling of * {@code TypeCodePackage/Bounds}. * For more information on Helper files, see - * <a href="doc-files/generatedfiles.html#helper"> + * <a href="{@docRoot}/org/omg/CORBA/doc-files/generatedfiles.html#helper"> * "Generated Files: Helper Files"</a>. */
--- a/hotspot/.hgtags Fri Jun 23 09:53:43 2017 -0700 +++ b/hotspot/.hgtags Thu Jul 06 09:36:17 2017 -0700 @@ -590,3 +590,5 @@ e64b1cb48d6e7703928a9d1da106fc27f8cb65fd jdk-9+173 944791f8160185bffa13fbb821fc09b6198f1f25 jdk-9+174 070aa7a2eb14c4645f7eb31384cba0a2ba72a4b5 jdk-10+12 +8f04d457168b9f1f4a1b2c37f49e0513ca9d33a7 jdk-9+175 +a9da03357f190807591177fe9846d6e68ad64fc0 jdk-10+13
--- a/hotspot/.jcheck/conf Fri Jun 23 09:53:43 2017 -0700 +++ b/hotspot/.jcheck/conf Thu Jul 06 09:36:17 2017 -0700 @@ -1,1 +1,2 @@ project=jdk10 +bugids=dup
--- a/hotspot/make/symbols/symbols-unix Fri Jun 23 09:53:43 2017 -0700 +++ b/hotspot/make/symbols/symbols-unix Thu Jul 06 09:36:17 2017 -0700 @@ -188,7 +188,6 @@ JVM_AddModuleExports JVM_AddModuleExportsToAll JVM_AddModuleExportsToAllUnnamed -JVM_AddModulePackage JVM_AddReadsModule JVM_DefineModule JVM_SetBootLoaderUnnamedModule
--- a/hotspot/make/test/JtregNative.gmk Fri Jun 23 09:53:43 2017 -0700 +++ b/hotspot/make/test/JtregNative.gmk Thu Jul 06 09:36:17 2017 -0700 @@ -56,6 +56,7 @@ $(HOTSPOT_TOPDIR)/test/compiler/floatingpoint/ \ $(HOTSPOT_TOPDIR)/test/compiler/calls \ $(HOTSPOT_TOPDIR)/test/serviceability/jvmti/GetNamedModule \ + $(HOTSPOT_TOPDIR)/test/serviceability/jvmti/IsModifiableModule \ $(HOTSPOT_TOPDIR)/test/serviceability/jvmti/AddModuleReads \ $(HOTSPOT_TOPDIR)/test/serviceability/jvmti/AddModuleExportsAndOpens \ $(HOTSPOT_TOPDIR)/test/serviceability/jvmti/AddModuleUsesAndProvides \ @@ -85,6 +86,7 @@ BUILD_HOTSPOT_JTREG_LIBRARIES_LIBS_liboverflow := -lc BUILD_HOTSPOT_JTREG_LIBRARIES_LIBS_libSimpleClassFileLoadHook := -lc BUILD_HOTSPOT_JTREG_LIBRARIES_LIBS_libGetNamedModuleTest := -lc + BUILD_HOTSPOT_JTREG_LIBRARIES_LIBS_libIsModifiableModuleTest := -lc BUILD_HOTSPOT_JTREG_LIBRARIES_LDFLAGS_libAddModuleReadsTest := -lc BUILD_HOTSPOT_JTREG_LIBRARIES_LDFLAGS_libAddModuleExportsAndOpensTest := -lc BUILD_HOTSPOT_JTREG_LIBRARIES_LDFLAGS_libAddModuleUsesAndProvidesTest := -lc
--- a/hotspot/src/cpu/aarch64/vm/abstractInterpreter_aarch64.cpp Fri Jun 23 09:53:43 2017 -0700 +++ b/hotspot/src/cpu/aarch64/vm/abstractInterpreter_aarch64.cpp Thu Jul 06 09:36:17 2017 -0700 @@ -109,9 +109,15 @@ // for the callee's params we only need to account for the extra // locals. int size = overhead + - (callee_locals - callee_params)*Interpreter::stackElementWords + + (callee_locals - callee_params) + monitors * frame::interpreter_frame_monitor_size() + - temps* Interpreter::stackElementWords + extra_args; + // On the top frame, at all times SP <= ESP, and SP is + // 16-aligned. We ensure this by adjusting SP on method + // entry and re-entry to allow room for the maximum size of + // the expression stack. When we call another method we bump + // SP so that no stack space is wasted. So, only on the top + // frame do we need to allow max_stack words. + (is_top_frame ? max_stack : temps + extra_args); // On AArch64 we always keep the stack pointer 16-aligned, so we // must round up here.
--- a/hotspot/src/cpu/aarch64/vm/c1_LIRGenerator_aarch64.cpp Fri Jun 23 09:53:43 2017 -0700 +++ b/hotspot/src/cpu/aarch64/vm/c1_LIRGenerator_aarch64.cpp Thu Jul 06 09:36:17 2017 -0700 @@ -598,12 +598,12 @@ } else { assert (x->op() == Bytecodes::_imul, "expect imul"); if (right.is_constant()) { - int c = right.get_jint_constant(); - if (! is_power_of_2(c) && ! is_power_of_2(c + 1) && ! is_power_of_2(c - 1)) { + jint c = right.get_jint_constant(); + if (c > 0 && c < max_jint && (is_power_of_2(c) || is_power_of_2(c - 1) || is_power_of_2(c + 1))) { + right_arg->dont_load_item(); + } else { // Cannot use constant op. - right.load_item(); - } else { - right.dont_load_item(); + right_arg->load_item(); } } else { right.load_item();
--- a/hotspot/src/cpu/aarch64/vm/vtableStubs_aarch64.cpp Fri Jun 23 09:53:43 2017 -0700 +++ b/hotspot/src/cpu/aarch64/vm/vtableStubs_aarch64.cpp Thu Jul 06 09:36:17 2017 -0700 @@ -51,6 +51,11 @@ VtableStub* VtableStubs::create_vtable_stub(int vtable_index) { const int aarch64_code_length = VtableStub::pd_code_size_limit(true); VtableStub* s = new(aarch64_code_length) VtableStub(true, vtable_index); + // Can be NULL if there is no free space in the code cache. + if (s == NULL) { + return NULL; + } + ResourceMark rm; CodeBuffer cb(s->entry_point(), aarch64_code_length); MacroAssembler* masm = new MacroAssembler(&cb);
--- a/hotspot/src/cpu/arm/vm/c1_LIRGenerator_arm.cpp Fri Jun 23 09:53:43 2017 -0700 +++ b/hotspot/src/cpu/arm/vm/c1_LIRGenerator_arm.cpp Thu Jul 06 09:36:17 2017 -0700 @@ -923,8 +923,8 @@ } else { left_arg->load_item(); if (x->op() == Bytecodes::_imul && right_arg->is_constant()) { - int c = right_arg->get_jint_constant(); - if (c > 0 && (is_power_of_2(c) || is_power_of_2(c - 1) || is_power_of_2(c + 1))) { + jint c = right_arg->get_jint_constant(); + if (c > 0 && c < max_jint && (is_power_of_2(c) || is_power_of_2(c - 1) || is_power_of_2(c + 1))) { right_arg->dont_load_item(); } else { right_arg->load_item();
--- a/hotspot/src/cpu/x86/vm/c1_LIRGenerator_x86.cpp Fri Jun 23 09:53:43 2017 -0700 +++ b/hotspot/src/cpu/x86/vm/c1_LIRGenerator_x86.cpp Thu Jul 06 09:36:17 2017 -0700 @@ -234,8 +234,8 @@ } -bool LIRGenerator::strength_reduce_multiply(LIR_Opr left, int c, LIR_Opr result, LIR_Opr tmp) { - if (tmp->is_valid()) { +bool LIRGenerator::strength_reduce_multiply(LIR_Opr left, jint c, LIR_Opr result, LIR_Opr tmp) { + if (tmp->is_valid() && c > 0 && c < max_jint) { if (is_power_of_2(c + 1)) { __ move(left, tmp); __ shift_left(left, log2_intptr(c + 1), left); @@ -603,8 +603,8 @@ bool use_constant = false; bool use_tmp = false; if (right_arg->is_constant()) { - int iconst = right_arg->get_jint_constant(); - if (iconst > 0) { + jint iconst = right_arg->get_jint_constant(); + if (iconst > 0 && iconst < max_jint) { if (is_power_of_2(iconst)) { use_constant = true; } else if (is_power_of_2(iconst - 1) || is_power_of_2(iconst + 1)) {
--- a/hotspot/src/jdk.aot/share/classes/module-info.java Fri Jun 23 09:53:43 2017 -0700 +++ b/hotspot/src/jdk.aot/share/classes/module-info.java Thu Jul 06 09:36:17 2017 -0700 @@ -23,8 +23,15 @@ * questions. */ +/** + * Defines the Ahead-of-Time (AOT) compiler, <em>{@index jaotc jaotc tool}</em>, + * for compiling Java classes into AOT library. + * + * @moduleGraph + * @since 9 + */ module jdk.aot { - requires jdk.management; requires jdk.internal.vm.ci; requires jdk.internal.vm.compiler; + requires jdk.management; }
--- a/hotspot/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/CompilerToVM.java Fri Jun 23 09:53:43 2017 -0700 +++ b/hotspot/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/CompilerToVM.java Thu Jul 06 09:36:17 2017 -0700 @@ -644,4 +644,9 @@ * {@link Long} */ native Object getFlagValue(String name); + + /** + * Gets the host class for {@code type}. + */ + native HotSpotResolvedObjectTypeImpl getHostClass(HotSpotResolvedObjectTypeImpl type); }
--- a/hotspot/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl.java Fri Jun 23 09:53:43 2017 -0700 +++ b/hotspot/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedObjectTypeImpl.java Thu Jul 06 09:36:17 2017 -0700 @@ -412,6 +412,14 @@ } @Override + public ResolvedJavaType getHostClass() { + if (isArray()) { + return null; + } + return compilerToVM().getHostClass(this); + } + + @Override public boolean isJavaLangObject() { return javaClass.equals(Object.class); }
--- a/hotspot/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedPrimitiveType.java Fri Jun 23 09:53:43 2017 -0700 +++ b/hotspot/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotResolvedPrimitiveType.java Thu Jul 06 09:36:17 2017 -0700 @@ -154,6 +154,11 @@ } @Override + public ResolvedJavaType getHostClass() { + return null; + } + + @Override public JavaKind getJavaKind() { return kind; }
--- a/hotspot/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/ResolvedJavaType.java Fri Jun 23 09:53:43 2017 -0700 +++ b/hotspot/src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/ResolvedJavaType.java Thu Jul 06 09:36:17 2017 -0700 @@ -105,6 +105,13 @@ boolean isAssignableFrom(ResolvedJavaType other); /** + * Returns the {@link ResolvedJavaType} object representing the host class of this VM anonymous + * class (as opposed to the unrelated concept specified by {@link Class#isAnonymousClass()}) or + * {@code null} if this object does not represent a VM anonymous class. + */ + ResolvedJavaType getHostClass(); + + /** * Returns true if this type is exactly the type {@link java.lang.Object}. */ default boolean isJavaLangObject() {
--- a/hotspot/src/jdk.internal.vm.compiler/share/classes/module-info.java Fri Jun 23 09:53:43 2017 -0700 +++ b/hotspot/src/jdk.internal.vm.compiler/share/classes/module-info.java Thu Jul 06 09:36:17 2017 -0700 @@ -26,11 +26,9 @@ module jdk.internal.vm.compiler { requires java.instrument; requires java.management; + requires jdk.internal.vm.ci; requires jdk.management; - requires jdk.internal.vm.ci; - - // sun.misc.Unsafe is used - requires jdk.unsupported; + requires jdk.unsupported; // sun.misc.Unsafe is used uses org.graalvm.compiler.code.DisassemblerProvider; uses org.graalvm.compiler.core.match.MatchStatementSet;
--- a/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp Fri Jun 23 09:53:43 2017 -0700 +++ b/hotspot/src/share/vm/c1/c1_LIRGenerator.cpp Thu Jul 06 09:36:17 2017 -0700 @@ -545,11 +545,11 @@ case Bytecodes::_imul: { - bool did_strength_reduce = false; + bool did_strength_reduce = false; if (right->is_constant()) { - int c = right->as_jint(); - if (is_power_of_2(c)) { + jint c = right->as_jint(); + if (c > 0 && is_power_of_2(c)) { // do not need tmp here __ shift_left(left_op, exact_log2(c), result_op); did_strength_reduce = true;
--- a/hotspot/src/share/vm/c1/c1_LIRGenerator.hpp Fri Jun 23 09:53:43 2017 -0700 +++ b/hotspot/src/share/vm/c1/c1_LIRGenerator.hpp Thu Jul 06 09:36:17 2017 -0700 @@ -313,7 +313,7 @@ // is_strictfp is only needed for mul and div (and only generates different code on i486) void arithmetic_op(Bytecodes::Code code, LIR_Opr result, LIR_Opr left, LIR_Opr right, bool is_strictfp, LIR_Opr tmp, CodeEmitInfo* info = NULL); // machine dependent. returns true if it emitted code for the multiply - bool strength_reduce_multiply(LIR_Opr left, int constant, LIR_Opr result, LIR_Opr tmp); + bool strength_reduce_multiply(LIR_Opr left, jint constant, LIR_Opr result, LIR_Opr tmp); void store_stack_parameter (LIR_Opr opr, ByteSize offset_from_sp_in_bytes);
--- a/hotspot/src/share/vm/classfile/modules.cpp Fri Jun 23 09:53:43 2017 -0700 +++ b/hotspot/src/share/vm/classfile/modules.cpp Thu Jul 06 09:36:17 2017 -0700 @@ -722,74 +722,6 @@ return NULL; } -void Modules::add_module_package(jobject module, const char* package_name, TRAPS) { - ResourceMark rm(THREAD); - - if (module == NULL) { - THROW_MSG(vmSymbols::java_lang_NullPointerException(), - "module is null"); - } - if (package_name == NULL) { - THROW_MSG(vmSymbols::java_lang_NullPointerException(), - "package is null"); - } - ModuleEntry* module_entry = get_module_entry(module, CHECK); - if (module_entry == NULL) { - THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(), - "module is invalid"); - } - if (!module_entry->is_named()) { - THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(), - "module cannot be an unnamed module"); - } - if (!verify_package_name(package_name)) { - THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(), - err_msg("Invalid package name: %s", package_name)); - } - - ClassLoaderData *loader_data = module_entry->loader_data(); - - // Only modules defined to either the boot or platform class loader, can define a "java/" package. - if (!loader_data->is_the_null_class_loader_data() && - !loader_data->is_platform_class_loader_data() && - (strncmp(package_name, JAVAPKG, JAVAPKG_LEN) == 0 && - (package_name[JAVAPKG_LEN] == '/' || package_name[JAVAPKG_LEN] == '\0'))) { - const char* class_loader_name = SystemDictionary::loader_name(loader_data); - size_t pkg_len = strlen(package_name); - char* pkg_name = NEW_RESOURCE_ARRAY_IN_THREAD(THREAD, char, pkg_len); - strncpy(pkg_name, package_name, pkg_len); - StringUtils::replace_no_expand(pkg_name, "/", "."); - const char* msg_text1 = "Class loader (instance of): "; - const char* msg_text2 = " tried to define prohibited package name: "; - size_t len = strlen(msg_text1) + strlen(class_loader_name) + strlen(msg_text2) + pkg_len + 1; - char* message = NEW_RESOURCE_ARRAY_IN_THREAD(THREAD, char, len); - jio_snprintf(message, len, "%s%s%s%s", msg_text1, class_loader_name, msg_text2, pkg_name); - THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(), message); - } - - log_debug(module)("add_module_package(): Adding package %s to module %s", - package_name, module_entry->name()->as_C_string()); - - TempNewSymbol pkg_symbol = SymbolTable::new_symbol(package_name, CHECK); - PackageEntryTable* package_table = loader_data->packages(); - assert(package_table != NULL, "Missing package_table"); - - PackageEntry* existing_pkg = NULL; - { - MutexLocker ml(Module_lock, THREAD); - - // Check that the package does not exist in the class loader's package table. - existing_pkg = package_table->lookup_only(pkg_symbol); - if (existing_pkg == NULL) { - PackageEntry* pkg = package_table->locked_create_entry_or_null(pkg_symbol, module_entry); - assert(pkg != NULL, "Unable to create a module's package entry"); - } - } - if (existing_pkg != NULL) { - throw_dup_pkg_exception(module_entry->name()->as_C_string(), existing_pkg, CHECK); - } -} - // Export package in module to all unnamed modules. void Modules::add_module_exports_to_all_unnamed(jobject module, const char* package_name, TRAPS) { if (module == NULL) {
--- a/hotspot/src/share/vm/classfile/modules.hpp Fri Jun 23 09:53:43 2017 -0700 +++ b/hotspot/src/share/vm/classfile/modules.hpp Thu Jul 06 09:36:17 2017 -0700 @@ -113,14 +113,6 @@ // Returns NULL if package is invalid or not defined by loader. static jobject get_module(Symbol* package_name, Handle h_loader, TRAPS); - // This adds package to module. - // It throws IllegalArgumentException if: - // * Module is bad - // * Module is unnamed - // * Package is not syntactically correct - // * Package is already defined for module's class loader. - static void add_module_package(jobject module, const char* package, TRAPS); - // Marks the specified package as exported to all unnamed modules. // If either module or package is null then NullPointerException is thrown. // If module or package is bad, or module is unnamed, or package is not in
--- a/hotspot/src/share/vm/code/codeCache.cpp Fri Jun 23 09:53:43 2017 -0700 +++ b/hotspot/src/share/vm/code/codeCache.cpp Thu Jul 06 09:36:17 2017 -0700 @@ -130,6 +130,7 @@ // Iterate over all CodeHeaps #define FOR_ALL_HEAPS(heap) for (GrowableArrayIterator<CodeHeap*> heap = _heaps->begin(); heap != _heaps->end(); ++heap) #define FOR_ALL_NMETHOD_HEAPS(heap) for (GrowableArrayIterator<CodeHeap*> heap = _nmethod_heaps->begin(); heap != _nmethod_heaps->end(); ++heap) +#define FOR_ALL_ALLOCABLE_HEAPS(heap) for (GrowableArrayIterator<CodeHeap*> heap = _allocable_heaps->begin(); heap != _allocable_heaps->end(); ++heap) // Iterate over all CodeBlobs (cb) on the given CodeHeap #define FOR_ALL_BLOBS(cb, heap) for (CodeBlob* cb = first_blob(heap); cb != NULL; cb = next_blob(heap, cb)) @@ -140,10 +141,11 @@ bool CodeCache::_needs_cache_clean = false; nmethod* CodeCache::_scavenge_root_nmethods = NULL; -// Initialize array of CodeHeaps +// Initialize arrays of CodeHeap subsets GrowableArray<CodeHeap*>* CodeCache::_heaps = new(ResourceObj::C_HEAP, mtCode) GrowableArray<CodeHeap*> (CodeBlobType::All, true); GrowableArray<CodeHeap*>* CodeCache::_compiled_heaps = new(ResourceObj::C_HEAP, mtCode) GrowableArray<CodeHeap*> (CodeBlobType::All, true); GrowableArray<CodeHeap*>* CodeCache::_nmethod_heaps = new(ResourceObj::C_HEAP, mtCode) GrowableArray<CodeHeap*> (CodeBlobType::All, true); +GrowableArray<CodeHeap*>* CodeCache::_allocable_heaps = new(ResourceObj::C_HEAP, mtCode) GrowableArray<CodeHeap*> (CodeBlobType::All, true); void CodeCache::check_heap_sizes(size_t non_nmethod_size, size_t profiled_size, size_t non_profiled_size, size_t cache_size, bool all_set) { size_t total_size = non_nmethod_size + profiled_size + non_profiled_size; @@ -338,6 +340,7 @@ return rs; } +// Heaps available for allocation bool CodeCache::heap_available(int code_blob_type) { if (!SegmentedCodeCache) { // No segmentation: use a single code heap @@ -391,6 +394,9 @@ if (code_blob_type_accepts_nmethod(type)) { _nmethod_heaps->insert_sorted<code_heap_compare>(heap); } + if (code_blob_type_accepts_allocable(type)) { + _allocable_heaps->insert_sorted<code_heap_compare>(heap); + } } void CodeCache::add_heap(ReservedSpace rs, const char* name, int code_blob_type) { @@ -620,7 +626,7 @@ void CodeCache::blobs_do(void f(CodeBlob* nm)) { assert_locked_or_safepoint(CodeCache_lock); - FOR_ALL_NMETHOD_HEAPS(heap) { + FOR_ALL_HEAPS(heap) { FOR_ALL_BLOBS(cb, *heap) { f(cb); } @@ -663,7 +669,7 @@ void CodeCache::blobs_do(CodeBlobClosure* f) { assert_locked_or_safepoint(CodeCache_lock); - FOR_ALL_NMETHOD_HEAPS(heap) { + FOR_ALL_ALLOCABLE_HEAPS(heap) { FOR_ALL_BLOBS(cb, *heap) { if (cb->is_alive()) { f->do_code_blob(cb); @@ -960,7 +966,7 @@ size_t CodeCache::capacity() { size_t cap = 0; - FOR_ALL_NMETHOD_HEAPS(heap) { + FOR_ALL_ALLOCABLE_HEAPS(heap) { cap += (*heap)->capacity(); } return cap; @@ -973,7 +979,7 @@ size_t CodeCache::unallocated_capacity() { size_t unallocated_cap = 0; - FOR_ALL_NMETHOD_HEAPS(heap) { + FOR_ALL_ALLOCABLE_HEAPS(heap) { unallocated_cap += (*heap)->unallocated_capacity(); } return unallocated_cap; @@ -981,7 +987,7 @@ size_t CodeCache::max_capacity() { size_t max_cap = 0; - FOR_ALL_NMETHOD_HEAPS(heap) { + FOR_ALL_ALLOCABLE_HEAPS(heap) { max_cap += (*heap)->max_capacity(); } return max_cap; @@ -1007,7 +1013,7 @@ size_t CodeCache::bytes_allocated_in_freelists() { size_t allocated_bytes = 0; - FOR_ALL_NMETHOD_HEAPS(heap) { + FOR_ALL_ALLOCABLE_HEAPS(heap) { allocated_bytes += (*heap)->allocated_in_freelist(); } return allocated_bytes; @@ -1015,7 +1021,7 @@ int CodeCache::allocated_segments() { int number_of_segments = 0; - FOR_ALL_NMETHOD_HEAPS(heap) { + FOR_ALL_ALLOCABLE_HEAPS(heap) { number_of_segments += (*heap)->allocated_segments(); } return number_of_segments; @@ -1023,7 +1029,7 @@ size_t CodeCache::freelists_length() { size_t length = 0; - FOR_ALL_NMETHOD_HEAPS(heap) { + FOR_ALL_ALLOCABLE_HEAPS(heap) { length += (*heap)->freelist_length(); } return length; @@ -1354,7 +1360,7 @@ void CodeCache::print_memory_overhead() { size_t wasted_bytes = 0; - FOR_ALL_NMETHOD_HEAPS(heap) { + FOR_ALL_ALLOCABLE_HEAPS(heap) { CodeHeap* curr_heap = *heap; for (CodeBlob* cb = (CodeBlob*)curr_heap->first(); cb != NULL; cb = (CodeBlob*)curr_heap->next(cb)) { HeapBlock* heap_block = ((HeapBlock*)cb) - 1; @@ -1400,7 +1406,7 @@ ResourceMark rm; int i = 0; - FOR_ALL_NMETHOD_HEAPS(heap) { + FOR_ALL_ALLOCABLE_HEAPS(heap) { if ((_nmethod_heaps->length() >= 1) && Verbose) { tty->print_cr("-- %s --", (*heap)->name()); } @@ -1497,7 +1503,7 @@ CodeBlob_sizes live; CodeBlob_sizes dead; - FOR_ALL_NMETHOD_HEAPS(heap) { + FOR_ALL_ALLOCABLE_HEAPS(heap) { FOR_ALL_BLOBS(cb, *heap) { if (!cb->is_alive()) { dead.add(cb); @@ -1523,7 +1529,7 @@ int number_of_blobs = 0; int number_of_oop_maps = 0; int map_size = 0; - FOR_ALL_NMETHOD_HEAPS(heap) { + FOR_ALL_ALLOCABLE_HEAPS(heap) { FOR_ALL_BLOBS(cb, *heap) { if (cb->is_alive()) { number_of_blobs++;
--- a/hotspot/src/share/vm/code/codeCache.hpp Fri Jun 23 09:53:43 2017 -0700 +++ b/hotspot/src/share/vm/code/codeCache.hpp Thu Jul 06 09:36:17 2017 -0700 @@ -85,6 +85,7 @@ static GrowableArray<CodeHeap*>* _heaps; static GrowableArray<CodeHeap*>* _compiled_heaps; static GrowableArray<CodeHeap*>* _nmethod_heaps; + static GrowableArray<CodeHeap*>* _allocable_heaps; static address _low_bound; // Lower bound of CodeHeap addresses static address _high_bound; // Upper bound of CodeHeap addresses @@ -237,6 +238,11 @@ return type == CodeBlobType::All || type <= CodeBlobType::MethodProfiled; } + static bool code_blob_type_accepts_allocable(int type) { + return type <= CodeBlobType::All; + } + + // Returns the CodeBlobType for the given compilation level static int get_code_blob_type(int comp_level) { if (comp_level == CompLevel_none ||
--- a/hotspot/src/share/vm/compiler/compileBroker.cpp Fri Jun 23 09:53:43 2017 -0700 +++ b/hotspot/src/share/vm/compiler/compileBroker.cpp Thu Jul 06 09:36:17 2017 -0700 @@ -1557,7 +1557,7 @@ // First thread to get here will initialize the compiler interface - if (!ciObjectFactory::is_initialized()) { + { ASSERT_IN_VM; MutexLocker only_one (CompileThread_lock, thread); if (!ciObjectFactory::is_initialized()) {
--- a/hotspot/src/share/vm/jvmci/jvmciCompilerToVM.cpp Fri Jun 23 09:53:43 2017 -0700 +++ b/hotspot/src/share/vm/jvmci/jvmciCompilerToVM.cpp Thu Jul 06 09:36:17 2017 -0700 @@ -1687,6 +1687,13 @@ } C2V_END +C2V_VMENTRY(jobject, getHostClass, (JNIEnv*, jobject, jobject jvmci_type)) + InstanceKlass* k = InstanceKlass::cast(CompilerToVM::asKlass(jvmci_type)); + InstanceKlass* host = k->host_klass(); + oop result = CompilerToVM::get_jvmci_type(host, CHECK_NULL); + return JNIHandles::make_local(THREAD, result); +C2V_END + C2V_VMENTRY(int, interpreterFrameSize, (JNIEnv*, jobject, jobject bytecode_frame_handle)) if (bytecode_frame_handle == NULL) { THROW_0(vmSymbols::java_lang_NullPointerException()); @@ -1817,6 +1824,7 @@ {CC "flushDebugOutput", CC "()V", FN_PTR(flushDebugOutput)}, {CC "methodDataProfileDataSize", CC "(JI)I", FN_PTR(methodDataProfileDataSize)}, {CC "getFingerprint", CC "(J)J", FN_PTR(getFingerprint)}, + {CC "getHostClass", CC "(" HS_RESOLVED_KLASS ")" HS_RESOLVED_KLASS, FN_PTR(getHostClass)}, {CC "interpreterFrameSize", CC "(" BYTECODE_FRAME ")I", FN_PTR(interpreterFrameSize)}, {CC "compileToBytecode", CC "(" OBJECT ")V", FN_PTR(compileToBytecode)}, {CC "getFlagValue", CC "(" STRING ")" OBJECT, FN_PTR(getFlagValue)},
--- a/hotspot/src/share/vm/prims/jvm.cpp Fri Jun 23 09:53:43 2017 -0700 +++ b/hotspot/src/share/vm/prims/jvm.cpp Thu Jul 06 09:36:17 2017 -0700 @@ -1039,11 +1039,6 @@ Modules::add_reads_module(from_module, source_module, CHECK); JVM_END -JVM_ENTRY (void, JVM_AddModulePackage(JNIEnv *env, jobject module, const char* package)) - JVMWrapper("JVM_AddModulePackage"); - Modules::add_module_package(module, package, CHECK); -JVM_END - // Reflection support ////////////////////////////////////////////////////////////////////////////// JVM_ENTRY(jstring, JVM_GetClassName(JNIEnv *env, jclass cls))
--- a/hotspot/src/share/vm/prims/jvm.h Fri Jun 23 09:53:43 2017 -0700 +++ b/hotspot/src/share/vm/prims/jvm.h Thu Jul 06 09:36:17 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2017, 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 @@ -467,14 +467,6 @@ JVM_AddReadsModule(JNIEnv *env, jobject from_module, jobject source_module); /* - * Add a package to a module. - * module: module that will contain the package - * package: package to add to the module - */ -JNIEXPORT void JNICALL -JVM_AddModulePackage(JNIEnv* env, jobject module, const char* package); - -/* * Reflection support functions */
--- a/hotspot/src/share/vm/prims/whitebox.cpp Fri Jun 23 09:53:43 2017 -0700 +++ b/hotspot/src/share/vm/prims/whitebox.cpp Thu Jul 06 09:36:17 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2017, 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 @@ -1457,15 +1457,6 @@ Modules::add_reads_module(from_module, source_module, CHECK); WB_END -WB_ENTRY(void, WB_AddModulePackage(JNIEnv* env, jobject o, jclass module, jstring package)) - ResourceMark rm(THREAD); - char* package_name = NULL; - if (package != NULL) { - package_name = java_lang_String::as_utf8_string(JNIHandles::resolve_non_null(package)); - } - Modules::add_module_package(module, package_name, CHECK); -WB_END - WB_ENTRY(jobject, WB_GetModuleByPackageName(JNIEnv* env, jobject o, jobject loader, jstring package)) ResourceMark rm(THREAD); char* package_name = NULL; @@ -1910,8 +1901,6 @@ (void*)&WB_AddModuleExports }, {CC"AddReadsModule", CC"(Ljava/lang/Object;Ljava/lang/Object;)V", (void*)&WB_AddReadsModule }, - {CC"AddModulePackage", CC"(Ljava/lang/Object;Ljava/lang/String;)V", - (void*)&WB_AddModulePackage }, {CC"GetModuleByPackageName", CC"(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;", (void*)&WB_GetModuleByPackageName }, {CC"AddModuleExportsToAllUnnamed", CC"(Ljava/lang/Object;Ljava/lang/String;)V",
--- a/hotspot/src/share/vm/runtime/arguments.cpp Fri Jun 23 09:53:43 2017 -0700 +++ b/hotspot/src/share/vm/runtime/arguments.cpp Thu Jul 06 09:36:17 2017 -0700 @@ -2861,8 +2861,8 @@ if (res != JNI_OK) { return res; } - } else if (match_option(option, "--permit-illegal-access")) { - if (!create_property("jdk.module.permitIllegalAccess", "true", ExternalProperty)) { + } else if (match_option(option, "--illegal-access=", &tail)) { + if (!create_property("jdk.module.illegalAccess", tail, ExternalProperty)) { return JNI_ENOMEM; } // -agentlib and -agentpath
--- a/hotspot/src/share/vm/services/lowMemoryDetector.cpp Fri Jun 23 09:53:43 2017 -0700 +++ b/hotspot/src/share/vm/services/lowMemoryDetector.cpp Thu Jul 06 09:36:17 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2017, 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 @@ -296,19 +296,41 @@ Klass* k = Management::sun_management_Sensor_klass(CHECK); instanceKlassHandle sensorKlass (THREAD, k); Handle sensor_h(THREAD, _sensor_obj); - Handle usage_h = MemoryService::create_MemoryUsage_obj(_usage, CHECK); + + Symbol* trigger_method_signature; JavaValue result(T_VOID); JavaCallArguments args(sensor_h); args.push_int((int) count); - args.push_oop(usage_h); + + Handle usage_h = MemoryService::create_MemoryUsage_obj(_usage, THREAD); + // Call Sensor::trigger(int, MemoryUsage) to send notification to listeners. + // When OOME occurs and fails to allocate MemoryUsage object, call + // Sensor::trigger(int) instead. The pending request will be processed + // but no notification will be sent. + if (HAS_PENDING_EXCEPTION) { + assert((PENDING_EXCEPTION->is_a(SystemDictionary::OutOfMemoryError_klass())), "we expect only an OOME here"); + CLEAR_PENDING_EXCEPTION; + trigger_method_signature = vmSymbols::int_void_signature(); + } else { + trigger_method_signature = vmSymbols::trigger_method_signature(); + args.push_oop(usage_h); + } JavaCalls::call_virtual(&result, - sensorKlass, - vmSymbols::trigger_name(), - vmSymbols::trigger_method_signature(), - &args, - CHECK); + sensorKlass, + vmSymbols::trigger_name(), + trigger_method_signature, + &args, + THREAD); + + if (HAS_PENDING_EXCEPTION) { + // We just clear the OOM pending exception that we might have encountered + // in Java's tiggerAction(), and continue with updating the counters since + // the Java counters have been updated too. + assert((PENDING_EXCEPTION->is_a(SystemDictionary::OutOfMemoryError_klass())), "we expect only an OOME here"); + CLEAR_PENDING_EXCEPTION; + } } {
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hotspot/test/compiler/c1/MultiplyByMaxInt.java Thu Jul 06 09:36:17 2017 -0700 @@ -0,0 +1,53 @@ +/* + * Copyright (c) 2017, 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 8181872 + * + * @run main/othervm -XX:+IgnoreUnrecognizedVMOptions + * -XX:CompileThreshold=100 -XX:+TieredCompilation -XX:TieredStopAtLevel=1 + * -XX:-BackgroundCompilation -XX:CompileCommand=dontinline,compiler.c1.MultiplyByMaxInt::test + * compiler.c1.MultiplyByMaxInt + * @run main/othervm -XX:+IgnoreUnrecognizedVMOptions -XX:-BackgroundCompilation + * -XX:CompileThreshold=100 -XX:+TieredCompilation -XX:TieredStopAtLevel=3 + * -XX:CompileCommand=dontinline,compiler.c1.MultiplyByMaxInt::test + * compiler.c1.MultiplyByMaxInt + */ +package compiler.c1; + +public class MultiplyByMaxInt { + static int test(int x) { + int loops = (x >>> 4) & 7; + while (loops-- > 0) { + x = (x * 2147483647) % 16807; + } + return x; + } + + public static void main(String[] args) { + for (int i = 0; i < 20000; i++) { + test(i); + } + } +}
--- a/hotspot/test/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/TestResolvedJavaType.java Fri Jun 23 09:53:43 2017 -0700 +++ b/hotspot/test/compiler/jvmci/jdk.vm.ci.runtime.test/src/jdk/vm/ci/runtime/test/TestResolvedJavaType.java Thu Jul 06 09:36:17 2017 -0700 @@ -54,6 +54,7 @@ import java.lang.reflect.Modifier; import java.util.Arrays; import java.util.Collections; +import java.util.function.Supplier; import java.util.HashMap; import java.util.HashSet; import java.util.Map; @@ -143,6 +144,27 @@ } @Test + public void getHostClassTest() { + for (Class<?> c : classes) { + ResolvedJavaType type = metaAccess.lookupJavaType(c); + ResolvedJavaType host = type.getHostClass(); + assertNull(host); + } + + class LocalClass {} + Cloneable clone = new Cloneable() {}; + assertNull(metaAccess.lookupJavaType(LocalClass.class).getHostClass()); + assertNull(metaAccess.lookupJavaType(clone.getClass()).getHostClass()); + + Supplier<Runnable> lambda = () -> () -> System.out.println("run"); + ResolvedJavaType lambdaType = metaAccess.lookupJavaType(lambda.getClass()); + ResolvedJavaType nestedLambdaType = metaAccess.lookupJavaType(lambda.get().getClass()); + assertNotNull(lambdaType.getHostClass()); + assertNotNull(nestedLambdaType.getHostClass()); + assertEquals(lambdaType.getHostClass(), nestedLambdaType.getHostClass()); + } + + @Test public void getModifiersTest() { for (Class<?> c : classes) { ResolvedJavaType type = metaAccess.lookupJavaType(c);
--- a/hotspot/test/runtime/modules/JVMAddModulePackage.java Fri Jun 23 09:53:43 2017 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,154 +0,0 @@ -/* - * Copyright (c) 2016, 2017, 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 - * @modules java.base/jdk.internal.misc - * @library /test/lib .. - * @build sun.hotspot.WhiteBox - * @compile/module=java.base java/lang/ModuleHelper.java - * @run main ClassFileInstaller sun.hotspot.WhiteBox - * sun.hotspot.WhiteBox$WhiteBoxPermission - * @run main/othervm -Xbootclasspath/a:. -XX:+UnlockDiagnosticVMOptions -XX:+WhiteBoxAPI JVMAddModulePackage - */ - -import static jdk.test.lib.Asserts.*; -import java.sql.Time; - -public class JVMAddModulePackage { - - public static void main(String args[]) throws Throwable { - MyClassLoader cl1 = new MyClassLoader(); - MyClassLoader cl3 = new MyClassLoader(); - Object module_one, module_two, module_three; - boolean result; - - module_one = ModuleHelper.ModuleObject("module_one", cl1, new String[] { "mypackage" }); - assertNotNull(module_one, "Module should not be null"); - ModuleHelper.DefineModule(module_one, "9.0", "module_one/here", new String[] { "mypackage" }); - module_two = ModuleHelper.ModuleObject("module_two", cl1, new String[] { "yourpackage" }); - assertNotNull(module_two, "Module should not be null"); - ModuleHelper.DefineModule(module_two, "9.0", "module_two/here", new String[] { "yourpackage" }); - module_three = ModuleHelper.ModuleObject("module_three", cl3, new String[] { "apackage/num3" }); - assertNotNull(module_three, "Module should not be null"); - ModuleHelper.DefineModule(module_three, "9.0", "module_three/here", new String[] { "apackage/num3" }); - - // Simple call - ModuleHelper.AddModulePackage(module_one, "new_package"); - - // Add a package and export it - ModuleHelper.AddModulePackage(module_one, "apackage/num3"); - ModuleHelper.AddModuleExportsToAll(module_one, "apackage/num3"); - - // Null module argument, expect an NPE - try { - ModuleHelper.AddModulePackage(null, "new_package"); - throw new RuntimeException("Failed to get the expected NPE"); - } catch(NullPointerException e) { - // Expected - } - - // Bad module argument, expect an IAE - try { - ModuleHelper.AddModulePackage(cl1, "new_package"); - throw new RuntimeException("Failed to get the expected IAE"); - } catch(IllegalArgumentException e) { - // Expected - } - - // Null package argument, expect an NPE - try { - ModuleHelper.AddModulePackage(module_one, null); - throw new RuntimeException("Failed to get the expected NPE"); - } catch(NullPointerException e) { - // Expected - } - - // Existing package, expect an ISE - try { - ModuleHelper.AddModulePackage(module_one, "yourpackage"); - throw new RuntimeException("Failed to get the expected ISE"); - } catch(IllegalStateException e) { - // Expected - } - - // Invalid package name, expect an IAE - try { - ModuleHelper.AddModulePackage(module_one, "your.apackage"); - throw new RuntimeException("Failed to get the expected IAE"); - } catch(IllegalArgumentException e) { - // Expected - } - - // Invalid package name, expect an IAE - try { - ModuleHelper.AddModulePackage(module_one, ";your/apackage"); - throw new RuntimeException("Failed to get the expected IAE"); - } catch(IllegalArgumentException e) { - // Expected - } - - // Invalid package name, expect an IAE - try { - ModuleHelper.AddModulePackage(module_one, "7[743"); - throw new RuntimeException("Failed to get the expected IAE"); - } catch(IllegalArgumentException e) { - // Expected - } - - // Empty package name, expect an IAE - try { - ModuleHelper.AddModulePackage(module_one, ""); - throw new RuntimeException("Failed to get the expected IAE"); - } catch(IllegalArgumentException e) { - // Expected - } - - // Add package named "java" to an module defined to a class loader other than the boot or platform loader. - try { - // module_one is defined to a MyClassLoader class loader. - ModuleHelper.AddModulePackage(module_one, "java/foo"); - throw new RuntimeException("Failed to get the expected IAE"); - } catch(IllegalArgumentException e) { - if (!e.getMessage().contains("prohibited package name")) { - throw new RuntimeException("Failed to get expected IAE message for prohibited package name: " + e.getMessage()); - } - } - - // Package "javabar" should be ok - ModuleHelper.AddModulePackage(module_one, "javabar"); - - // Package named "java" defined to the boot class loader, should be ok - Object module_javabase = module_one.getClass().getModule(); - ModuleHelper.AddModulePackage(module_javabase, "java/foo"); - - // Package named "java" defined to the platform class loader, should be ok - // The module java.sql is defined to the platform class loader. - java.sql.Time jst = new java.sql.Time(45000); // milliseconds - Object module_javasql = jst.getClass().getModule(); - ModuleHelper.AddModulePackage(module_javasql, "java/foo"); - } - - static class MyClassLoader extends ClassLoader { } -} -
--- a/hotspot/test/runtime/modules/ModuleHelper.java Fri Jun 23 09:53:43 2017 -0700 +++ b/hotspot/test/runtime/modules/ModuleHelper.java Thu Jul 06 09:36:17 2017 -0700 @@ -49,12 +49,6 @@ java.lang.ModuleHelper.addReadsNoSync((Module)from, (Module)to); } - public static void AddModulePackage(Object m, String pkg) throws Throwable { - WhiteBox wb = WhiteBox.getWhiteBox(); - wb.AddModulePackage(m, pkg); - java.lang.ModuleHelper.addPackageNoSync((Module)m, pkg); - } - public static Module GetModuleByPackageName(Object ldr, String pkg) throws Throwable { WhiteBox wb = WhiteBox.getWhiteBox(); return (Module)wb.GetModuleByPackageName(ldr, pkg);
--- a/hotspot/test/runtime/modules/java.base/java/lang/ModuleHelper.java Fri Jun 23 09:53:43 2017 -0700 +++ b/hotspot/test/runtime/modules/java.base/java/lang/ModuleHelper.java Thu Jul 06 09:36:17 2017 -0700 @@ -63,11 +63,4 @@ } } - /** - * Adds a package to a module without notifying the VM. - */ - public static void addPackageNoSync(Module m, String pkg) { - m.implAddPackageNoSync(pkg); - } - }
--- a/hotspot/test/serviceability/jvmti/GetNamedModule/MyPackage/GetNamedModuleTest.java Fri Jun 23 09:53:43 2017 -0700 +++ b/hotspot/test/serviceability/jvmti/GetNamedModule/MyPackage/GetNamedModuleTest.java Thu Jul 06 09:36:17 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2016, 2017, 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 @@ -26,6 +26,7 @@ /** * @test * @summary Verifies the JVMTI GetNamedModule API + * @modules jdk.jdi * @compile GetNamedModuleTest.java * @run main/othervm/native -agentlib:GetNamedModuleTest MyPackage.GetNamedModuleTest */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hotspot/test/serviceability/jvmti/IsModifiableModule/MyPackage/IsModifiableModuleTest.java Thu Jul 06 09:36:17 2017 -0700 @@ -0,0 +1,57 @@ +/* + * Copyright (c) 2017, 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. + */ + +package MyPackage; + +/** + * @test + * @summary Verifies the JVMTI IsModifiableModule API + * @modules jdk.jdi + * @compile IsModifiableModuleTest.java + * @run main/othervm/native -agentlib:IsModifiableModuleTest MyPackage.IsModifiableModuleTest + */ + +import java.io.PrintStream; + +public class IsModifiableModuleTest { + + static { + try { + System.loadLibrary("IsModifiableModuleTest"); + } catch (UnsatisfiedLinkError ule) { + System.err.println("Could not load IsModifiableModuleTest library"); + System.err.println("java.library.path: " + + System.getProperty("java.library.path")); + throw ule; + } + } + + native static int check(); + + public static void main(String args[]) { + int status = check(); + if (status != 0) { + throw new RuntimeException("Non-zero status returned from the agent: " + status); + } + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hotspot/test/serviceability/jvmti/IsModifiableModule/libIsModifiableModuleTest.c Thu Jul 06 09:36:17 2017 -0700 @@ -0,0 +1,215 @@ +/* + * Copyright (c) 2017, 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. + */ + +#include <stdio.h> +#include <string.h> +#include "jvmti.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef JNI_ENV_ARG + +#ifdef __cplusplus +#define JNI_ENV_ARG(x, y) y +#define JNI_ENV_PTR(x) x +#else +#define JNI_ENV_ARG(x,y) x, y +#define JNI_ENV_PTR(x) (*x) +#endif + +#endif + +#define TranslateError(err) "JVMTI error" + +#define PASSED 0 +#define FAILED 2 + +static const char *EXC_CNAME = "java/lang/AssertionError"; + +static jvmtiEnv *jvmti = NULL; +static jint result = PASSED; +static jboolean printdump = JNI_FALSE; + +static jint Agent_Initialize(JavaVM *jvm, char *options, void *reserved); + +JNIEXPORT +jint JNICALL Agent_OnLoad(JavaVM *jvm, char *options, void *reserved) { + return Agent_Initialize(jvm, options, reserved); +} + +JNIEXPORT +jint JNICALL Agent_OnAttach(JavaVM *jvm, char *options, void *reserved) { + return Agent_Initialize(jvm, options, reserved); +} + +JNIEXPORT +jint JNICALL JNI_OnLoad(JavaVM *jvm, void *reserved) { + return JNI_VERSION_1_8; +} + +static +jint Agent_Initialize(JavaVM *jvm, char *options, void *reserved) { + jint res; + + if (options != NULL && strcmp(options, "printdump") == 0) { + printdump = JNI_TRUE; + } + + res = JNI_ENV_PTR(jvm)->GetEnv(JNI_ENV_ARG(jvm, (void **) &jvmti), + JVMTI_VERSION_9); + if (res != JNI_OK || jvmti == NULL) { + printf(" Error: wrong result of a valid call to GetEnv!\n"); + return JNI_ERR; + } + + return JNI_OK; +} + +static +jclass find_class(JNIEnv *env, const char* cname) { + jclass cls = JNI_ENV_PTR(env)->FindClass(JNI_ENV_ARG(env, cname)); + + if (cls == NULL) { + printf("find_class: Error: FindClass(env, \"%s\") returned NULL\n", cname); + } + return cls; +} + +static +jint throw_exc(JNIEnv *env, char *msg) { + jclass exc_class = find_class(env, EXC_CNAME); + + if (exc_class == NULL) { + printf("throw_exc: Error in find_class(env, \"%s\")\n", EXC_CNAME); + return -1; + } + return JNI_ENV_PTR(env)->ThrowNew(JNI_ENV_ARG(env, exc_class), msg); +} + +static jobject get_module_by_class_name(JNIEnv *env, const char* cname) { + jobject module = NULL; + jclass cls = find_class(env, cname); + + printf(">>> getting module by class name: \"%s\"\n", cname); + if (cls == NULL) { + printf("get_module_by_class_name: Error in find_class(env, \"%s\")\n", cname); + return NULL; + } + module = JNI_ENV_PTR(env)->GetModule(JNI_ENV_ARG(env, cls)); + if (module == NULL) { + printf("get_module_by_class_name: Error in GetModule for class \"%s\"\n", cname); + } + return module; +} + +static +jint check_is_modifiable_error_codes(jobject module, jobject not_a_module) { + jvmtiError err = JVMTI_ERROR_NONE; + jboolean is_modifiable = JNI_FALSE; + + printf(">>> passing a bad module argument to JVMTI IsModifiableModule\n"); + err = (*jvmti)->IsModifiableModule(jvmti, not_a_module, &is_modifiable); + if (err != JVMTI_ERROR_INVALID_MODULE) { + printf(" Error #EC0: Did not get expected INVALID_MODULE error code from" + " IsModifiableModule: %s (%d)\n", TranslateError(err), err); + return FAILED; + } + printf(">>> passing NULL module argument to JVMTI IsModifiableModule\n"); + err = (*jvmti)->IsModifiableModule(jvmti, NULL, &is_modifiable); + if (err != JVMTI_ERROR_NULL_POINTER) { + printf(" Error #EC1: Did not get expected NULL_POINTER error code from" + " IsModifiableModule: %s (%d)\n", TranslateError(err), err); + return FAILED; + } + printf(">>> passing NULL status pointer to JVMTI IsModifiableModule\n"); + err = (*jvmti)->IsModifiableModule(jvmti, module, NULL); + if (err != JVMTI_ERROR_NULL_POINTER) { + printf(" Error #EC2: Did not get expected NULL_POINTER error code from" + " IsModifiableModule: %s (%d)\n", TranslateError(err), err); + return FAILED; + } + return PASSED; +} + +static +jint check_is_modifiable(jobject module) { + jvmtiError err = JVMTI_ERROR_NONE; + jboolean is_modifiable = JNI_FALSE; + + printf(">>> checking module %p is modifiable\n", module); + err = (*jvmti)->IsModifiableModule(jvmti, module, &is_modifiable); + if (err != JVMTI_ERROR_NONE) { + printf(" Error in IsModifiableModule for module %p: %s (%d)\n", + module, TranslateError(err), err); + return FAILED; + } + if (is_modifiable == JNI_FALSE) { + printf(" unexpected non-modifiable status for module: %p\n", module); + return FAILED; + } + return PASSED; +} + +JNIEXPORT jint JNICALL +Java_MyPackage_IsModifiableModuleTest_check(JNIEnv *env, jclass cls) { + jobject module = NULL; + + if (jvmti == NULL) { + throw_exc(env, "JVMTI client was not properly loaded!\n"); + return FAILED; + } + + printf("\n*** Testing IsModifiableModule ***\n\n"); + + if (check_is_modifiable_error_codes(module, cls) == FAILED) { + throw_exc(env, "check #MM0: failed to return expected error code from " + "a bad call to JVMTI IsModifiableModule"); + return FAILED; + } + + module = get_module_by_class_name(env, "java/lang/Class"); + if (check_is_modifiable(module) == FAILED) { + throw_exc(env, "check #MM1: failed to return modifiable module status"); + return FAILED; + } + + module = get_module_by_class_name(env, "com/sun/jdi/VirtualMachine"); + if (check_is_modifiable(module) == FAILED) { + throw_exc(env, "check #MM2: failed to return modifiable module status"); + return FAILED; + } + + module = get_module_by_class_name(env, "MyPackage/IsModifiableModuleTest"); + if (check_is_modifiable(module) == FAILED) { + throw_exc(env, "check #MM3: failed to return modifiable module status"); + return FAILED; + } + + return PASSED; +} + +#ifdef __cplusplus +} +#endif
--- a/hotspot/test/testlibrary_tests/TestMutuallyExclusivePlatformPredicates.java Fri Jun 23 09:53:43 2017 -0700 +++ b/hotspot/test/testlibrary_tests/TestMutuallyExclusivePlatformPredicates.java Thu Jul 06 09:36:17 2017 -0700 @@ -51,8 +51,7 @@ VM_TYPE("isClient", "isServer", "isGraal", "isMinimal", "isZero", "isEmbedded"), MODE("isInt", "isMixed", "isComp"), IGNORED("isEmulatedClient", "isDebugBuild", "isFastDebugBuild", "isSlowDebugBuild", - "shouldSAAttach", "canPtraceAttachLinux", "canAttachOSX", - "isTieredSupported"); + "shouldSAAttach", "isTieredSupported"); public final List<String> methodNames;
--- a/jaxp/.hgtags Fri Jun 23 09:53:43 2017 -0700 +++ b/jaxp/.hgtags Thu Jul 06 09:36:17 2017 -0700 @@ -430,3 +430,5 @@ 9788347e0629d0cb3a0e55a903494ff741d4fa15 jdk-9+173 b9c0b105002272d7414c8b34af9aded151f9cad6 jdk-9+174 ff293e39e83366c40a5687dacd1ccb2305ed2c1e jdk-10+12 +736412a8dccee9d439044e6b1af2e7470d0a3563 jdk-9+175 +5d374af9e78d02976e0e7f8dc2706f91a020f025 jdk-10+13
--- a/jaxp/.jcheck/conf Fri Jun 23 09:53:43 2017 -0700 +++ b/jaxp/.jcheck/conf Thu Jul 06 09:36:17 2017 -0700 @@ -1,1 +1,2 @@ project=jdk10 +bugids=dup
--- a/jaxp/src/java.xml/share/classes/module-info.java Fri Jun 23 09:53:43 2017 -0700 +++ b/jaxp/src/java.xml/share/classes/module-info.java Thu Jul 06 09:36:17 2017 -0700 @@ -67,6 +67,7 @@ exports org.xml.sax; exports org.xml.sax.ext; exports org.xml.sax.helpers; + exports com.sun.org.apache.xml.internal.dtm to java.xml.crypto; exports com.sun.org.apache.xml.internal.utils to @@ -81,8 +82,7 @@ java.xml.crypto; exports com.sun.org.apache.xpath.internal.res to java.xml.crypto; - // reflection access from com.sun.xml.internal.ws.api.streaming.XMLStreamWriterFactory - exports com.sun.xml.internal.stream.writers to java.xml.ws; + uses javax.xml.datatype.DatatypeFactory; uses javax.xml.parsers.DocumentBuilderFactory; uses javax.xml.parsers.SAXParserFactory;
--- a/jaxp/src/jdk.xml.dom/share/classes/module-info.java Fri Jun 23 09:53:43 2017 -0700 +++ b/jaxp/src/jdk.xml.dom/share/classes/module-info.java Thu Jul 06 09:36:17 2017 -0700 @@ -32,6 +32,7 @@ */ module jdk.xml.dom { requires transitive java.xml; + exports org.w3c.dom.css; exports org.w3c.dom.html; exports org.w3c.dom.stylesheets;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/css/package-info.java Thu Jul 06 09:36:17 2017 -0700 @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2017, 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. + */ + +/** + * Provides interfaces for DOM Level 2 Style Specification. Refer to the + * <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'> + * Document Object Model (DOM) Level 2 Style Specification</a>, + * the CSS and stylesheets modules define the Document Object Model Level 2 Style + * Sheets and Cascading Style Sheets (CSS) that allow programs and scripts to + * dynamically access and update the content of style sheets documents. + * + * + * @since 1.4 + */ + +package org.w3c.dom.css;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/html/package-info.java Thu Jul 06 09:36:17 2017 -0700 @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2017, 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. + */ + +/** + * Provides interfaces for DOM Level 2 HTML Specification. Refer to the + * <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'> + * Document Object Model (DOM) Level 2 Specification</a>, + * the HTML module extends the Core API to describe objects and methods specific + * to HTML documents that comply with + * <a href='https://www.w3.org/TR/1998/REC-html40-19980424/'> + * HTML 4.0 Specification</a>. + * + * + * @since 1.4 + */ + +package org.w3c.dom.html;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/stylesheets/package-info.java Thu Jul 06 09:36:17 2017 -0700 @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2017, 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. + */ + +/** + * Provides interfaces for DOM Level 2 Style Specification. Refer to the + * <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'> + * Document Object Model (DOM) Level 2 Style Specification</a>, + * the CSS and stylesheets modules define the Document Object Model Level 2 Style + * Sheets and Cascading Style Sheets (CSS) that allow programs and scripts to + * dynamically access and update the content of style sheets documents. + * + * + * @since 1.4 + */ + +package org.w3c.dom.stylesheets;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jaxp/src/jdk.xml.dom/share/classes/org/w3c/dom/xpath/package-info.java Thu Jul 06 09:36:17 2017 -0700 @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2017, 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. + */ + +/** + * Provides interfaces for DOM Level 3 XPath Specification. The XPath module + * provides simple functionalities to access a DOM tree using + * <a href='https://www.w3.org/TR/1999/REC-xpath-19991116/'>XPath 1.0</a>. + * <p> + * The interfaces and classes in this package came from + * Document Object Model (DOM) Level 3 XPath Specification, + * Working Draft 20 August 2002. Refer to + * <a href='https://www.w3.org/TR/DOM-Level-3-XPath/'> + * Document Object Model (DOM) Level 3 XPath Specification, Version 1.0, + * W3C Working Group Note 26 February 2004</a> except that the values of + * {@link XPathException#INVALID_EXPRESSION_ERR} and {@link XPathException#TYPE_ERR} + * are 1 and 2 respectively (instead of 51 and 52). + * + * @since 1.4 + */ + +package org.w3c.dom.xpath;
--- a/jaxws/.hgtags Fri Jun 23 09:53:43 2017 -0700 +++ b/jaxws/.hgtags Thu Jul 06 09:36:17 2017 -0700 @@ -433,3 +433,5 @@ 2bd967aa452c1e0e87a6173bef6fbb96ef1c521b jdk-9+173 c2296642010f1b215ac35da89e92c3ce44104e32 jdk-9+174 712a3a657654079514590d37a0f4894d43541d5c jdk-10+12 +a5d361b9d1f7f78a675f3baef0d1fd32deee9ea2 jdk-9+175 +46a14aad004aa0b980d5f4ff7810d894fd5a36ae jdk-10+13
--- a/jaxws/.jcheck/conf Fri Jun 23 09:53:43 2017 -0700 +++ b/jaxws/.jcheck/conf Thu Jul 06 09:36:17 2017 -0700 @@ -1,1 +1,2 @@ project=jdk10 +bugids=dup
--- a/jaxws/src/java.activation/share/classes/javax/activation/CommandInfo.java Fri Jun 23 09:53:43 2017 -0700 +++ b/jaxws/src/java.activation/share/classes/javax/activation/CommandInfo.java Thu Jul 06 09:36:17 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2017, 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 @@ -118,6 +118,9 @@ * passed to the command. * @param loader The ClassLoader to be used to instantiate the bean. * @return The bean + * @exception IOException for failures reading data + * @exception ClassNotFoundException if command object class can't + * be found * @see java.beans.Beans#instantiate * @see javax.activation.CommandObject */
--- a/jaxws/src/java.activation/share/classes/javax/activation/CommandObject.java Fri Jun 23 09:53:43 2017 -0700 +++ b/jaxws/src/java.activation/share/classes/javax/activation/CommandObject.java Thu Jul 06 09:36:17 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2017, 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 @@ -48,6 +48,7 @@ * * @param verb The Command Verb this object refers to. * @param dh The DataHandler. + * @exception IOException for failures accessing data */ public void setCommandContext(String verb, DataHandler dh) throws IOException;
--- a/jaxws/src/java.activation/share/classes/javax/activation/DataHandler.java Fri Jun 23 09:53:43 2017 -0700 +++ b/jaxws/src/java.activation/share/classes/javax/activation/DataHandler.java Thu Jul 06 09:36:17 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2017, 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 @@ -326,6 +326,7 @@ * Otherwise, {@code null} is returned. * * @return the OutputStream + * @exception IOException for failures creating the OutputStream * * @see javax.activation.DataSource#getOutputStream * @see javax.activation.URLDataSource
--- a/jaxws/src/java.activation/share/classes/javax/activation/DataSource.java Fri Jun 23 09:53:43 2017 -0700 +++ b/jaxws/src/java.activation/share/classes/javax/activation/DataSource.java Thu Jul 06 09:36:17 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2017, 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 @@ -49,6 +49,7 @@ * positioned at the beginning of the data. * * @return an InputStream + * @exception IOException for failures creating the InputStream */ public InputStream getInputStream() throws IOException; @@ -60,6 +61,7 @@ * be positioned at the location the data is to be written. * * @return an OutputStream + * @exception IOException for failures creating the OutputStream */ public OutputStream getOutputStream() throws IOException;
--- a/jaxws/src/java.activation/share/classes/javax/activation/MailcapCommandMap.java Fri Jun 23 09:53:43 2017 -0700 +++ b/jaxws/src/java.activation/share/classes/javax/activation/MailcapCommandMap.java Thu Jul 06 09:36:17 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2017, 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 @@ -29,6 +29,8 @@ import java.util.*; import java.io.*; import java.net.*; +import java.security.AccessController; +import java.security.PrivilegedAction; import com.sun.activation.registries.MailcapFile; import com.sun.activation.registries.LogSupport; @@ -48,12 +50,19 @@ * <ol> * <li> Programatically added entries to the MailcapCommandMap instance. * <li> The file {@code .mailcap} in the user's home directory. - * <li> The file {@literal <}<i>java.home</i>{@literal >}{@code /lib/mailcap}. + * <li> The file {@code mailcap} in the Java runtime. * <li> The file or resources named {@code META-INF/mailcap}. * <li> The file or resource named {@code META-INF/mailcap.default} * (usually found only in the {@code activation.jar} file). * </ol> * <p> + * (The current implementation looks for the {@code mailcap} file + * in the Java runtime in the directory <i>java.home</i>{@code /conf} + * if it exists, and otherwise in the directory + * <i>java.home</i>{@code /lib}, where <i>java.home</i> is the value + * of the "java.home" System property. Note that the "conf" directory was + * introduced in JDK 9.) + * <p> * <b>Mailcap file format:</b><p> * * Mailcap files must conform to the mailcap @@ -120,6 +129,29 @@ private MailcapFile[] DB; private static final int PROG = 0; // programmatically added entries + private static final String confDir; + + static { + String dir = null; + try { + dir = (String)AccessController.doPrivileged( + new PrivilegedAction() { + public Object run() { + String home = System.getProperty("java.home"); + String newdir = home + File.separator + "conf"; + File conf = new File(newdir); + if (conf.exists()) + return newdir + File.separator; + else + return home + File.separator + "lib" + File.separator; + } + }); + } catch (Exception ex) { + // ignore any exceptions + } + confDir = dir; + } + /** * The default Constructor. */ @@ -144,11 +176,11 @@ LogSupport.log("MailcapCommandMap: load SYS"); try { // check system's home - String system_mailcap = System.getProperty("java.home") + - File.separator + "lib" + File.separator + "mailcap"; - mf = loadFile(system_mailcap); - if (mf != null) - dbv.add(mf); + if (confDir != null) { + mf = loadFile(confDir + "mailcap"); + if (mf != null) + dbv.add(mf); + } } catch (SecurityException ex) {} LogSupport.log("MailcapCommandMap: load JAR"); @@ -633,6 +665,7 @@ * entries that specify a view command for the specified * MIME type are returned. * + * @param mimeType the MIME type * @return array of native command entries * @since 1.6, JAF 1.1 */
--- a/jaxws/src/java.activation/share/classes/javax/activation/MimeType.java Fri Jun 23 09:53:43 2017 -0700 +++ b/jaxws/src/java.activation/share/classes/javax/activation/MimeType.java Thu Jul 06 09:36:17 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2017, 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 @@ -58,6 +58,7 @@ * Constructor that builds a MimeType from a String. * * @param rawdata the MIME type string + * @exception MimeTypeParseException if the MIME type can't be parsed */ public MimeType(String rawdata) throws MimeTypeParseException { parse(rawdata); @@ -258,6 +259,7 @@ * * @param rawdata the MIME type string to compare with * @return true if they match + * @exception MimeTypeParseException if the MIME type can't be parsed */ public boolean match(String rawdata) throws MimeTypeParseException { return match(new MimeType(rawdata));
--- a/jaxws/src/java.activation/share/classes/javax/activation/MimeTypeParameterList.java Fri Jun 23 09:53:43 2017 -0700 +++ b/jaxws/src/java.activation/share/classes/javax/activation/MimeTypeParameterList.java Thu Jul 06 09:36:17 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2017, 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 @@ -58,6 +58,7 @@ * Constructs a new MimeTypeParameterList with the passed in data. * * @param parameterList an RFC 2045, 2046 compliant parameter list. + * @exception MimeTypeParseException if the MIME type can't be parsed */ public MimeTypeParameterList(String parameterList) throws MimeTypeParseException { @@ -71,6 +72,7 @@ * A routine for parsing the parameter list out of a String. * * @param parameterList an RFC 2045, 2046 compliant parameter list. + * @exception MimeTypeParseException if the MIME type can't be parsed */ protected void parse(String parameterList) throws MimeTypeParseException { if (parameterList == null)
--- a/jaxws/src/java.activation/share/classes/javax/activation/MimetypesFileTypeMap.java Fri Jun 23 09:53:43 2017 -0700 +++ b/jaxws/src/java.activation/share/classes/javax/activation/MimetypesFileTypeMap.java Thu Jul 06 09:36:17 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2017, 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,6 +28,8 @@ import java.io.*; import java.net.*; import java.util.*; +import java.security.AccessController; +import java.security.PrivilegedAction; import com.sun.activation.registries.MimeTypeFile; import com.sun.activation.registries.LogSupport; @@ -43,12 +45,19 @@ * <ol> * <li> Programmatically added entries to the MimetypesFileTypeMap instance. * <li> The file {@code .mime.types} in the user's home directory. - * <li> The file {@literal <}<i>java.home</i>{@literal >}{@code /lib/mime.types}. + * <li> The file {@code mime.types} in the Java runtime. * <li> The file or resources named {@code META-INF/mime.types}. * <li> The file or resource named {@code META-INF/mimetypes.default} * (usually found only in the {@code activation.jar} file). * </ol> * <p> + * (The current implementation looks for the {@code mime.types} file + * in the Java runtime in the directory <i>java.home</i>{@code /conf} + * if it exists, and otherwise in the directory + * <i>java.home</i>{@code /lib}, where <i>java.home</i> is the value + * of the "java.home" System property. Note that the "conf" directory was + * introduced in JDK 9.) + * <p> * <b>MIME types file format:</b> * * <pre>{@code @@ -72,7 +81,30 @@ private MimeTypeFile[] DB; private static final int PROG = 0; // programmatically added entries - private static String defaultType = "application/octet-stream"; + private static final String defaultType = "application/octet-stream"; + + private static final String confDir; + + static { + String dir = null; + try { + dir = (String)AccessController.doPrivileged( + new PrivilegedAction() { + public Object run() { + String home = System.getProperty("java.home"); + String newdir = home + File.separator + "conf"; + File conf = new File(newdir); + if (conf.exists()) + return newdir + File.separator; + else + return home + File.separator + "lib" + File.separator; + } + }); + } catch (Exception ex) { + // ignore any exceptions + } + confDir = dir; + } /** * The default constructor. @@ -97,11 +129,11 @@ LogSupport.log("MimetypesFileTypeMap: load SYS"); try { // check system's home - String system_mimetypes = System.getProperty("java.home") + - File.separator + "lib" + File.separator + "mime.types"; - mf = loadFile(system_mimetypes); - if (mf != null) - dbv.addElement(mf); + if (confDir != null) { + mf = loadFile(confDir + "mime.types"); + if (mf != null) + dbv.addElement(mf); + } } catch (SecurityException ex) {} LogSupport.log("MimetypesFileTypeMap: load JAR"); @@ -239,6 +271,7 @@ * added from the named file. * * @param mimeTypeFileName the file name + * @exception IOException for errors reading the file */ public MimetypesFileTypeMap(String mimeTypeFileName) throws IOException { this();
--- a/jaxws/src/java.activation/share/classes/module-info.java Fri Jun 23 09:53:43 2017 -0700 +++ b/jaxws/src/java.activation/share/classes/module-info.java Thu Jul 06 09:36:17 2017 -0700 @@ -26,13 +26,16 @@ /** * Defines the JavaBeans Activation Framework (JAF) API. * + * <p> This module is upgradeble. + * * @moduleGraph * @since 9 */ @Deprecated(since="9", forRemoval=true) module java.activation { + requires java.logging; + requires transitive java.datatransfer; - requires java.logging; exports javax.activation; }
--- a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/marshaller/MinimumEscapeHandler.java Fri Jun 23 09:53:43 2017 -0700 +++ b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/marshaller/MinimumEscapeHandler.java Thu Jul 06 09:36:17 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2017, 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 @@ -48,10 +48,10 @@ int limit = start+length; for (int i = start; i < limit; i++) { char c = ch[i]; - if(c == '&' || c == '<' || c == '>' || c == '\r' || (c == '\"' && isAttVal) ) { - if(i!=start) - out.write(ch,start,i-start); - start = i+1; + if (c == '&' || c == '<' || c == '>' || c == '\r' || (c == '\n' && isAttVal) || (c == '\"' && isAttVal)) { + if (i != start) + out.write(ch, start, i - start); + start = i + 1; switch (ch[i]) { case '&': out.write("&"); @@ -65,6 +65,14 @@ case '\"': out.write("""); break; + case '\n': + case '\r': + out.write("&#"); + out.write(Integer.toString(c)); + out.write(';'); + break; + default: + throw new IllegalArgumentException("Cannot escape: '" + c + "'"); } } }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/marshaller/NoEscapeHandler.java Thu Jul 06 09:36:17 2017 -0700 @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2017, 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.xml.internal.bind.marshaller; + +import java.io.IOException; +import java.io.Writer; + +/** + * Performs no character escaping. + * + * @author + * Roman Grigoriadi (roman.grigoriadi@oracle.com) + */ +public class NoEscapeHandler implements CharacterEscapeHandler { + + public static final NoEscapeHandler theInstance = new NoEscapeHandler(); + + @Override + public void escape(char[] ch, int start, int length, boolean isAttVal, Writer out) throws IOException { + out.write(ch, start, length); + } +}
--- a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/BridgeImpl.java Fri Jun 23 09:53:43 2017 -0700 +++ b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/BridgeImpl.java Thu Jul 06 09:36:17 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2017, 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 @@ -76,7 +76,7 @@ public void marshal(Marshaller _m, T t, XMLStreamWriter output) throws JAXBException { MarshallerImpl m = (MarshallerImpl)_m; - m.write(tagName,bi,t,XMLStreamWriterOutput.create(output,context),new StAXPostInitAction(output,m.serializer)); + m.write(tagName,bi,t,XMLStreamWriterOutput.create(output,context, m.getEscapeHandler()),new StAXPostInitAction(output,m.serializer)); } public void marshal(Marshaller _m, T t, OutputStream output, NamespaceContext nsContext) throws JAXBException {
--- a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/MarshallerImpl.java Fri Jun 23 09:53:43 2017 -0700 +++ b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/MarshallerImpl.java Thu Jul 06 09:36:17 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2017, 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 @@ -165,7 +165,7 @@ @Override public void marshal(Object obj, XMLStreamWriter writer) throws JAXBException { - write(obj, XMLStreamWriterOutput.create(writer,context), new StAXPostInitAction(writer,serializer)); + write(obj, XMLStreamWriterOutput.create(writer,context, escapeHandler), new StAXPostInitAction(writer,serializer)); } @Override @@ -371,6 +371,15 @@ } + /** + * Returns escape handler provided with JAXB context parameters. + * + * @return escape handler + */ + CharacterEscapeHandler getEscapeHandler() { + return escapeHandler; + } + // // // create XMLWriter by specifing various type of output. @@ -436,13 +445,14 @@ if(encoding.equals("UTF-8")) { Encoded[] table = context.getUTF8NameTable(); final UTF8XmlOutput out; + CharacterEscapeHandler ceh = createEscapeHandler(encoding); if(isFormattedOutput()) - out = new IndentingUTF8XmlOutput(os, indent, table, escapeHandler); + out = new IndentingUTF8XmlOutput(os, indent, table, ceh); else { if(c14nSupport) - out = new C14nXmlOutput(os, table, context.c14nSupport, escapeHandler); + out = new C14nXmlOutput(os, table, context.c14nSupport, ceh); else - out = new UTF8XmlOutput(os, table, escapeHandler); + out = new UTF8XmlOutput(os, table, ceh); } if(header!=null) out.setHeader(header);
--- a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/output/FastInfosetStreamWriterOutput.java Fri Jun 23 09:53:43 2017 -0700 +++ b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/output/FastInfosetStreamWriterOutput.java Thu Jul 06 09:36:17 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2017, 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 @@ -25,21 +25,22 @@ package com.sun.xml.internal.bind.v2.runtime.output; +import com.sun.xml.internal.bind.marshaller.NoEscapeHandler; import com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl; import com.sun.xml.internal.bind.v2.runtime.Name; import com.sun.xml.internal.bind.v2.runtime.XMLSerializer; -import javax.xml.stream.XMLStreamException; - import com.sun.xml.internal.bind.v2.runtime.unmarshaller.Base64Data; import com.sun.xml.internal.fastinfoset.EncodingConstants; import com.sun.xml.internal.fastinfoset.stax.StAXDocumentSerializer; +import com.sun.xml.internal.org.jvnet.fastinfoset.VocabularyApplicationData; +import org.xml.sax.SAXException; + +import javax.xml.bind.JAXBContext; +import javax.xml.stream.XMLStreamException; import java.io.IOException; import java.util.Collection; import java.util.Map; import java.util.WeakHashMap; -import javax.xml.bind.JAXBContext; -import com.sun.xml.internal.org.jvnet.fastinfoset.VocabularyApplicationData; -import org.xml.sax.SAXException; /** * {@link XmlOutput} for {@link StAXDocumentSerializer}. @@ -220,7 +221,7 @@ public FastInfosetStreamWriterOutput(StAXDocumentSerializer out, JAXBContextImpl context) { - super(out); + super(out, NoEscapeHandler.theInstance); this.fiout = out; this.localNames = context.getUTF8NameTable();
--- a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/output/StAXExStreamWriterOutput.java Fri Jun 23 09:53:43 2017 -0700 +++ b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/output/StAXExStreamWriterOutput.java Thu Jul 06 09:36:17 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2017, 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 @@ -27,6 +27,7 @@ import javax.xml.stream.XMLStreamException; +import com.sun.xml.internal.bind.marshaller.NoEscapeHandler; import com.sun.xml.internal.bind.v2.runtime.unmarshaller.Base64Data; import com.sun.xml.internal.org.jvnet.staxex.XMLStreamWriterEx; @@ -40,7 +41,7 @@ private final XMLStreamWriterEx out; public StAXExStreamWriterOutput(XMLStreamWriterEx out) { - super(out); + super(out, NoEscapeHandler.theInstance); this.out = out; }
--- a/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/output/XMLStreamWriterOutput.java Fri Jun 23 09:53:43 2017 -0700 +++ b/jaxws/src/java.xml.bind/share/classes/com/sun/xml/internal/bind/v2/runtime/output/XMLStreamWriterOutput.java Thu Jul 06 09:36:17 2017 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2017, 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 @@ -26,15 +26,16 @@ package com.sun.xml.internal.bind.v2.runtime.output; import java.io.IOException; +import java.io.Writer; import java.lang.reflect.Constructor; import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamWriter; +import com.sun.xml.internal.bind.marshaller.CharacterEscapeHandler; import com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl; import com.sun.xml.internal.bind.v2.runtime.XMLSerializer; -import com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl; import org.xml.sax.SAXException; /** @@ -53,7 +54,7 @@ * Creates a new {@link XmlOutput} from a {@link XMLStreamWriter}. * This method recognizes an FI StAX writer. */ - public static XmlOutput create(XMLStreamWriter out, JAXBContextImpl context) { + public static XmlOutput create(XMLStreamWriter out, JAXBContextImpl context, CharacterEscapeHandler escapeHandler) { // try optimized path final Class writerClass = out.getClass(); if (writerClass==FI_STAX_WRITER_CLASS) { @@ -69,17 +70,26 @@ } } + CharacterEscapeHandler xmlStreamEscapeHandler = escapeHandler != null ? + escapeHandler : NewLineEscapeHandler.theInstance; + // otherwise the normal writer. - return new XMLStreamWriterOutput(out); + return new XMLStreamWriterOutput(out, xmlStreamEscapeHandler); } private final XMLStreamWriter out; + private final CharacterEscapeHandler escapeHandler; + + private final XmlStreamOutWriterAdapter writerWrapper; + protected final char[] buf = new char[256]; - protected XMLStreamWriterOutput(XMLStreamWriter out) { + protected XMLStreamWriterOutput(XMLStreamWriter out, CharacterEscapeHandler escapeHandler) { this.out = out; + this.escapeHandler = escapeHandler; + this.writerWrapper = new XmlStreamOutWriterAdapter(out); } // not called if we are generating fragments @@ -137,7 +147,7 @@ public void text(String value, boolean needsSeparatingWhitespace) throws IOException, SAXException, XMLStreamException { if(needsSeparatingWhitespace) out.writeCharacters(" "); - out.writeCharacters(value); + escapeHandler.escape(value.toCharArray(), 0, value.length(), false, writerWrapper); } public void text(Pcdata value, boolean needsSeparatingWhitespace) throws IOException, SAXException, XMLStreamException { @@ -207,4 +217,81 @@ } } + /** + * Performs character escaping only for new lines. + */ + private static class NewLineEscapeHandler implements CharacterEscapeHandler { + + public static final NewLineEscapeHandler theInstance = new NewLineEscapeHandler(); + + @Override + public void escape(char[] ch, int start, int length, boolean isAttVal, Writer out) throws IOException { + int limit = start+length; + int lastEscaped = start; + for (int i = start; i < limit; i++) { + char c = ch[i]; + if (c == '\r' || c == '\n') { + if (i != lastEscaped) { + out.write(ch, lastEscaped, i - lastEscaped); + } + lastEscaped = i + 1; + if (out instanceof XmlStreamOutWriterAdapter) { + try { + ((XmlStreamOutWriterAdapter)out).writeEntityRef("#x" + Integer.toHexString(c)); + } catch (XMLStreamException e) { + throw new IOException("Error writing xml stream", e); + } + } else { + out.write("&#x"); + out.write(Integer.toHexString(c)); + out.write(';'); + } + } + } + + if (lastEscaped != limit) { + out.write(ch, lastEscaped, length - lastEscaped); + } + } + } + + private static final class XmlStreamOutWriterAdapter extends Writer { + + private final XMLStreamWriter writer; + + private XmlStreamOutWriterAdapter(XMLStreamWriter writer) { + this.writer = writer; + } + + @Override + public void write(char[] cbuf, int off, int len) throws IOException { + try { + writer.writeCharacters(cbuf, off, len); + } catch (XMLStreamException e) { + throw new IOException("Error writing XML stream", e); + } + } + + public void writeEntityRef(String entityReference) throws XMLStreamException { + writer.writeEntityRef(entityReference); + } + + @Override + public void flush() throws IOException { + try { + writer.flush(); + } catch (XMLStreamException e) { + throw new IOException("Error flushing XML stream", e); + } + } + + @Override + public void close() throws IOException { + try { + writer.close(); + } catch (XMLStreamException e) { + throw new IOException("Error closing XML stream", e); + } + } + } }
--- a/jaxws/src/java.xml.bind/share/classes/javax/xml/bind/ContextFinder.java Fri Jun 23 09:53:43 2017 -0700 +++ b/jaxws/src/java.xml.bind/share/classes/javax/xml/bind/ContextFinder.java Thu Jul 06 09:36:17 2017 -0700 @@ -150,13 +150,14 @@ * Create an instance of a class using the specified ClassLoader */ static JAXBContext newInstance(String contextPath, + Class[] contextPathClasses, String className, ClassLoader classLoader, Map properties) throws JAXBException { try { Class spFactory = ServiceLoaderUtil.safeLoadClass(className, PLATFORM_DEFAULT_FACTORY_CLASS, classLoader); - return newInstance(contextPath, spFactory, classLoader, properties); + return newInstance(contextPath, contextPathClasses, spFactory, classLoader, properties); } catch (ClassNotFoundException x) { throw new JAXBException(Messages.format(Messages.DEFAULT_PROVIDER_NOT_FOUND), x); @@ -175,6 +176,7 @@ } static JAXBContext newInstance(String contextPath, + Class[] contextPathClasses, Class spFactory, ClassLoader classLoader, Map properties) throws JAXBException { @@ -212,6 +214,9 @@ // the cast would fail, so generate an exception with a nice message throw handleClassCastException(context.getClass(), JAXBContext.class); } + + ModuleUtil.delegateAddOpensToImplModule(contextPathClasses, spFactory); + return (JAXBContext) context; } catch (InvocationTargetException x) { // throw if it is exception not to be wrapped @@ -277,6 +282,7 @@ // the cast would fail, so generate an exception with a nice message throw handleClassCastException(context.getClass(), JAXBContext.class); } + ModuleUtil.delegateAddOpensToImplModule(classes, spFactory); return (JAXBContext) context; } catch (NoSuchMethodException | IllegalAccessException e) { @@ -295,50 +301,52 @@ ClassLoader classLoader, Map properties) throws JAXBException { - StringTokenizer packages = new StringTokenizer(contextPath, ":"); - if (!packages.hasMoreTokens()) { + if (contextPath == null || contextPath.isEmpty()) { // no context is specified throw new JAXBException(Messages.format(Messages.NO_PACKAGE_IN_CONTEXTPATH)); } - // search for jaxb.properties in the class loader of each class first - logger.fine("Searching jaxb.properties"); - while (packages.hasMoreTokens()) { - // com.acme.foo - > com/acme/foo/jaxb.properties - String factoryClassName = - classNameFromPackageProperties( - classLoader, - packages.nextToken(":").replace('.', '/'), - factoryId, - JAXB_CONTEXT_FACTORY_DEPRECATED); + //ModuleUtil is mr-jar class, scans context path for jaxb classes on jdk9 and higher + Class[] contextPathClasses = ModuleUtil.getClassesFromContextPath(contextPath, classLoader); - if (factoryClassName != null) { - return newInstance(contextPath, factoryClassName, classLoader, properties); - } + //first try with classloader#getResource + String factoryClassName = jaxbProperties(contextPath, classLoader, factoryId); + if (factoryClassName == null && contextPathClasses != null) { + //try with class#getResource + factoryClassName = jaxbProperties(contextPathClasses, factoryId); } + if (factoryClassName != null) { + return newInstance(contextPath, contextPathClasses, factoryClassName, classLoader, properties); + } + + String factoryName = classNameFromSystemProperties(); - if (factoryName != null) return newInstance(contextPath, factoryName, classLoader, properties); + if (factoryName != null) return newInstance(contextPath, contextPathClasses, factoryName, classLoader, properties); JAXBContextFactory obj = ServiceLoaderUtil.firstByServiceLoader( JAXBContextFactory.class, logger, EXCEPTION_HANDLER); - if (obj != null) return obj.createContext(contextPath, classLoader, properties); + if (obj != null) { + JAXBContext context = obj.createContext(contextPath, classLoader, properties); + ModuleUtil.delegateAddOpensToImplModule(contextPathClasses, obj.getClass()); + return context; + } // to ensure backwards compatibility factoryName = firstByServiceLoaderDeprecated(JAXBContext.class, classLoader); - if (factoryName != null) return newInstance(contextPath, factoryName, classLoader, properties); + if (factoryName != null) return newInstance(contextPath, contextPathClasses, factoryName, classLoader, properties); Class ctxFactory = (Class) ServiceLoaderUtil.lookupUsingOSGiServiceLoader( "javax.xml.bind.JAXBContext", logger); if (ctxFactory != null) { - return newInstance(contextPath, ctxFactory, classLoader, properties); + return newInstance(contextPath, contextPathClasses, ctxFactory, classLoader, properties); } // else no provider found logger.fine("Trying to create the platform default provider"); - return newInstance(contextPath, PLATFORM_DEFAULT_FACTORY_CLASS, classLoader, properties); + return newInstance(contextPath, contextPathClasses, PLATFORM_DEFAULT_FACTORY_CLASS, classLoader, properties); } static JAXBContext find(Class<?>[] classes, Map<String, ?> properties) throws JAXBException { @@ -356,13 +364,18 @@ // TODO: it's easier to look things up from the class // c.getResourceAsStream("jaxb.properties"); - String factoryClassName = - classNameFromPackageProperties( - getClassClassLoader(c), - c.getPackage().getName().replace('.', '/'), - JAXBContext.JAXB_CONTEXT_FACTORY, JAXB_CONTEXT_FACTORY_DEPRECATED); + URL jaxbPropertiesUrl = getResourceUrl(c, "jaxb.properties"); + + if (jaxbPropertiesUrl != null) { - if (factoryClassName != null) return newInstance(classes, properties, factoryClassName); + String factoryClassName = + classNameFromPackageProperties( + jaxbPropertiesUrl, + JAXBContext.JAXB_CONTEXT_FACTORY, JAXB_CONTEXT_FACTORY_DEPRECATED); + + return newInstance(classes, properties, factoryClassName); + } + } String factoryClassName = classNameFromSystemProperties(); @@ -371,7 +384,11 @@ JAXBContextFactory factory = ServiceLoaderUtil.firstByServiceLoader(JAXBContextFactory.class, logger, EXCEPTION_HANDLER); - if (factory != null) return factory.createContext(classes, properties); + if (factory != null) { + JAXBContext context = factory.createContext(classes, properties); + ModuleUtil.delegateAddOpensToImplModule(classes, factory.getClass()); + return context; + } // to ensure backwards compatibility String className = firstByServiceLoaderDeprecated(JAXBContext.class, getContextClassLoader()); @@ -395,22 +412,20 @@ * first factoryId should be the preferred one, * more of those can be provided to support backwards compatibility */ - private static String classNameFromPackageProperties(ClassLoader classLoader, - String packageName, + private static String classNameFromPackageProperties(URL packagePropertiesUrl, String ... factoryIds) throws JAXBException { - String resourceName = packageName + "/jaxb.properties"; - logger.log(Level.FINE, "Trying to locate {0}", resourceName); - Properties props = loadJAXBProperties(classLoader, resourceName); - if (props != null) { - for(String factoryId : factoryIds) { - if (props.containsKey(factoryId)) { - return props.getProperty(factoryId); - } + logger.log(Level.FINE, "Trying to locate {0}", packagePropertiesUrl.toString()); + Properties props = loadJAXBProperties(packagePropertiesUrl); + for(String factoryId : factoryIds) { + if (props.containsKey(factoryId)) { + return props.getProperty(factoryId); } - throw new JAXBException(Messages.format(Messages.MISSING_PROPERTY, packageName, factoryIds[0])); } - return null; + //Factory key not found + String propertiesUrl = packagePropertiesUrl.toExternalForm(); + String packageName = propertiesUrl.substring(0, propertiesUrl.indexOf("/jaxb.properties")); + throw new JAXBException(Messages.format(Messages.MISSING_PROPERTY, packageName, factoryIds[0])); } private static String classNameFromSystemProperties() throws JAXBException { @@ -452,30 +467,40 @@ return value; } - private static Properties loadJAXBProperties(ClassLoader classLoader, - String propFileName) throws JAXBException { + private static Properties loadJAXBProperties(URL url) throws JAXBException { - Properties props = null; try { - URL url; - if (classLoader == null) - url = ClassLoader.getSystemResource(propFileName); - else - url = classLoader.getResource(propFileName); - - if (url != null) { - logger.log(Level.FINE, "loading props from {0}", url); - props = new Properties(); - InputStream is = url.openStream(); - props.load(is); - is.close(); - } + Properties props; + logger.log(Level.FINE, "loading props from {0}", url); + props = new Properties(); + InputStream is = url.openStream(); + props.load(is); + is.close(); + return props; } catch (IOException ioe) { - logger.log(Level.FINE, "Unable to load " + propFileName, ioe); + logger.log(Level.FINE, "Unable to load " + url.toString(), ioe); throw new JAXBException(ioe.toString(), ioe); } + } - return props; + /** + * If run on JPMS package containing resource must be open unconditionally. + * + * @param classLoader classloader to load resource with + * @param resourceName qualified name of the resource + * @return resource url if found + */ + private static URL getResourceUrl(ClassLoader classLoader, String resourceName) { + URL url; + if (classLoader == null) + url = ClassLoader.getSystemResource(resourceName); + else + url = classLoader.getResource(resourceName); + return url; + } + + private static URL getResourceUrl(Class<?> clazz, String resourceName) { + return clazz.getResource(resourceName); } @@ -606,4 +631,28 @@ } }