From 9224d25f96ad206d23827945b73d8f8b56d37e9d Mon Sep 17 00:00:00 2001
From: Miroslav Kos
Date: Sun, 30 Dec 2012 00:00:00 +0100
Subject: [PATCH 001/181] 8029237: Update copyright year to match last edit in
jaxws repository for 2012
Reviewed-by: chegar
---
jaxws/build.properties | 2 +-
jaxws/build.xml | 2 +-
.../jaf_classes/com/sun/activation/registries/LogSupport.java | 2 +-
.../jaf_classes/com/sun/activation/registries/MailcapFile.java | 2 +-
.../com/sun/activation/registries/MailcapParseException.java | 2 +-
.../com/sun/activation/registries/MailcapTokenizer.java | 2 +-
.../com/sun/activation/registries/MimeTypeEntry.java | 2 +-
.../jaf_classes/com/sun/activation/registries/MimeTypeFile.java | 2 +-
.../jaf_classes/javax/activation/ActivationDataFlavor.java | 2 +-
jaxws/src/share/jaf_classes/javax/activation/CommandInfo.java | 2 +-
jaxws/src/share/jaf_classes/javax/activation/CommandMap.java | 2 +-
jaxws/src/share/jaf_classes/javax/activation/CommandObject.java | 2 +-
.../share/jaf_classes/javax/activation/DataContentHandler.java | 2 +-
.../jaf_classes/javax/activation/DataContentHandlerFactory.java | 2 +-
jaxws/src/share/jaf_classes/javax/activation/DataHandler.java | 2 +-
jaxws/src/share/jaf_classes/javax/activation/DataSource.java | 2 +-
.../src/share/jaf_classes/javax/activation/FileDataSource.java | 2 +-
jaxws/src/share/jaf_classes/javax/activation/FileTypeMap.java | 2 +-
.../share/jaf_classes/javax/activation/MailcapCommandMap.java | 2 +-
jaxws/src/share/jaf_classes/javax/activation/MimeType.java | 2 +-
.../jaf_classes/javax/activation/MimeTypeParameterList.java | 2 +-
.../jaf_classes/javax/activation/MimeTypeParseException.java | 2 +-
.../jaf_classes/javax/activation/MimetypesFileTypeMap.java | 2 +-
.../src/share/jaf_classes/javax/activation/SecuritySupport.java | 2 +-
jaxws/src/share/jaf_classes/javax/activation/URLDataSource.java | 2 +-
.../javax/activation/UnsupportedDataTypeException.java | 2 +-
.../jaxws_classes/com/sun/codemodel/internal/ClassType.java | 2 +-
.../jaxws_classes/com/sun/codemodel/internal/CodeWriter.java | 2 +-
.../jaxws_classes/com/sun/codemodel/internal/JAnnotatable.java | 2 +-
.../com/sun/codemodel/internal/JAnnotationArrayMember.java | 2 +-
.../com/sun/codemodel/internal/JAnnotationStringValue.java | 2 +-
.../com/sun/codemodel/internal/JAnnotationUse.java | 2 +-
.../com/sun/codemodel/internal/JAnnotationValue.java | 2 +-
.../com/sun/codemodel/internal/JAnnotationWriter.java | 2 +-
.../com/sun/codemodel/internal/JAnonymousClass.java | 2 +-
.../share/jaxws_classes/com/sun/codemodel/internal/JArray.java | 2 +-
.../jaxws_classes/com/sun/codemodel/internal/JArrayClass.java | 2 +-
.../jaxws_classes/com/sun/codemodel/internal/JArrayCompRef.java | 2 +-
.../jaxws_classes/com/sun/codemodel/internal/JAssignment.java | 2 +-
.../com/sun/codemodel/internal/JAssignmentTarget.java | 2 +-
.../share/jaxws_classes/com/sun/codemodel/internal/JAtom.java | 2 +-
.../share/jaxws_classes/com/sun/codemodel/internal/JBlock.java | 2 +-
.../share/jaxws_classes/com/sun/codemodel/internal/JBreak.java | 2 +-
.../share/jaxws_classes/com/sun/codemodel/internal/JCase.java | 2 +-
.../share/jaxws_classes/com/sun/codemodel/internal/JCast.java | 2 +-
.../jaxws_classes/com/sun/codemodel/internal/JCatchBlock.java | 2 +-
.../share/jaxws_classes/com/sun/codemodel/internal/JClass.java | 2 +-
.../sun/codemodel/internal/JClassAlreadyExistsException.java | 2 +-
.../com/sun/codemodel/internal/JClassContainer.java | 2 +-
.../jaxws_classes/com/sun/codemodel/internal/JCodeModel.java | 2 +-
.../jaxws_classes/com/sun/codemodel/internal/JCommentPart.java | 2 +-
.../jaxws_classes/com/sun/codemodel/internal/JConditional.java | 2 +-
.../jaxws_classes/com/sun/codemodel/internal/JContinue.java | 2 +-
.../jaxws_classes/com/sun/codemodel/internal/JDeclaration.java | 2 +-
.../jaxws_classes/com/sun/codemodel/internal/JDefinedClass.java | 2 +-
.../jaxws_classes/com/sun/codemodel/internal/JDirectClass.java | 2 +-
.../share/jaxws_classes/com/sun/codemodel/internal/JDoLoop.java | 2 +-
.../jaxws_classes/com/sun/codemodel/internal/JDocComment.java | 2 +-
.../com/sun/codemodel/internal/JDocCommentable.java | 2 +-
.../jaxws_classes/com/sun/codemodel/internal/JEnumConstant.java | 2 +-
.../share/jaxws_classes/com/sun/codemodel/internal/JExpr.java | 2 +-
.../jaxws_classes/com/sun/codemodel/internal/JExpression.java | 2 +-
.../com/sun/codemodel/internal/JExpressionImpl.java | 2 +-
.../jaxws_classes/com/sun/codemodel/internal/JFieldRef.java | 2 +-
.../jaxws_classes/com/sun/codemodel/internal/JFieldVar.java | 2 +-
.../jaxws_classes/com/sun/codemodel/internal/JForEach.java | 2 +-
.../jaxws_classes/com/sun/codemodel/internal/JForLoop.java | 2 +-
.../jaxws_classes/com/sun/codemodel/internal/JFormatter.java | 2 +-
.../jaxws_classes/com/sun/codemodel/internal/JGenerable.java | 2 +-
.../jaxws_classes/com/sun/codemodel/internal/JGenerifiable.java | 2 +-
.../com/sun/codemodel/internal/JGenerifiableImpl.java | 2 +-
.../jaxws_classes/com/sun/codemodel/internal/JInvocation.java | 2 +-
.../jaxws_classes/com/sun/codemodel/internal/JJavaName.java | 2 +-
.../share/jaxws_classes/com/sun/codemodel/internal/JLabel.java | 2 +-
.../share/jaxws_classes/com/sun/codemodel/internal/JMethod.java | 2 +-
.../share/jaxws_classes/com/sun/codemodel/internal/JMod.java | 2 +-
.../share/jaxws_classes/com/sun/codemodel/internal/JMods.java | 2 +-
.../com/sun/codemodel/internal/JNarrowedClass.java | 2 +-
.../jaxws_classes/com/sun/codemodel/internal/JNullType.java | 2 +-
.../src/share/jaxws_classes/com/sun/codemodel/internal/JOp.java | 2 +-
.../jaxws_classes/com/sun/codemodel/internal/JPackage.java | 2 +-
.../com/sun/codemodel/internal/JPrimitiveType.java | 2 +-
.../jaxws_classes/com/sun/codemodel/internal/JResourceFile.java | 2 +-
.../share/jaxws_classes/com/sun/codemodel/internal/JReturn.java | 2 +-
.../jaxws_classes/com/sun/codemodel/internal/JStatement.java | 2 +-
.../com/sun/codemodel/internal/JStringLiteral.java | 2 +-
.../share/jaxws_classes/com/sun/codemodel/internal/JSwitch.java | 2 +-
.../share/jaxws_classes/com/sun/codemodel/internal/JThrow.java | 2 +-
.../jaxws_classes/com/sun/codemodel/internal/JTryBlock.java | 2 +-
.../share/jaxws_classes/com/sun/codemodel/internal/JType.java | 2 +-
.../jaxws_classes/com/sun/codemodel/internal/JTypeVar.java | 2 +-
.../jaxws_classes/com/sun/codemodel/internal/JTypeWildcard.java | 2 +-
.../share/jaxws_classes/com/sun/codemodel/internal/JVar.java | 2 +-
.../jaxws_classes/com/sun/codemodel/internal/JWhileLoop.java | 2 +-
.../jaxws_classes/com/sun/codemodel/internal/SecureLoader.java | 2 +-
.../com/sun/codemodel/internal/TypedAnnotationWriter.java | 2 +-
.../com/sun/codemodel/internal/fmt/JBinaryFile.java | 2 +-
.../com/sun/codemodel/internal/fmt/JPropertyFile.java | 2 +-
.../com/sun/codemodel/internal/fmt/JSerializedObject.java | 2 +-
.../com/sun/codemodel/internal/fmt/JStaticFile.java | 2 +-
.../com/sun/codemodel/internal/fmt/JStaticJavaFile.java | 2 +-
.../jaxws_classes/com/sun/codemodel/internal/fmt/JTextFile.java | 2 +-
.../com/sun/codemodel/internal/fmt/SecureLoader.java | 2 +-
.../jaxws_classes/com/sun/codemodel/internal/package-info.java | 2 +-
.../com/sun/codemodel/internal/util/ClassNameComparator.java | 2 +-
.../com/sun/codemodel/internal/util/EncoderFactory.java | 2 +-
.../com/sun/codemodel/internal/util/JavadocEscapeWriter.java | 2 +-
.../com/sun/codemodel/internal/util/MS1252Encoder.java | 2 +-
.../com/sun/codemodel/internal/util/SingleByteEncoder.java | 2 +-
.../com/sun/codemodel/internal/util/Surrogate.java | 2 +-
.../com/sun/codemodel/internal/util/UnicodeEscapeWriter.java | 2 +-
.../com/sun/codemodel/internal/writer/FileCodeWriter.java | 2 +-
.../com/sun/codemodel/internal/writer/FilterCodeWriter.java | 2 +-
.../com/sun/codemodel/internal/writer/ProgressCodeWriter.java | 2 +-
.../com/sun/codemodel/internal/writer/PrologCodeWriter.java | 2 +-
.../sun/codemodel/internal/writer/SingleStreamCodeWriter.java | 2 +-
.../com/sun/codemodel/internal/writer/ZipCodeWriter.java | 2 +-
.../jaxws_classes/com/sun/org/glassfish/gmbal/AMXClient.java | 2 +-
.../com/sun/org/glassfish/gmbal/AMXMBeanInterface.java | 2 +-
.../jaxws_classes/com/sun/org/glassfish/gmbal/AMXMetadata.java | 2 +-
.../jaxws_classes/com/sun/org/glassfish/gmbal/Description.java | 2 +-
.../com/sun/org/glassfish/gmbal/DescriptorFields.java | 2 +-
.../com/sun/org/glassfish/gmbal/DescriptorKey.java | 2 +-
.../com/sun/org/glassfish/gmbal/GmbalException.java | 2 +-
.../jaxws_classes/com/sun/org/glassfish/gmbal/GmbalMBean.java | 2 +-
.../com/sun/org/glassfish/gmbal/GmbalMBeanNOPImpl.java | 2 +-
.../share/jaxws_classes/com/sun/org/glassfish/gmbal/Impact.java | 2 +-
.../com/sun/org/glassfish/gmbal/IncludeSubclass.java | 2 +-
.../com/sun/org/glassfish/gmbal/InheritedAttribute.java | 2 +-
.../com/sun/org/glassfish/gmbal/InheritedAttributes.java | 2 +-
.../com/sun/org/glassfish/gmbal/ManagedAttribute.java | 2 +-
.../jaxws_classes/com/sun/org/glassfish/gmbal/ManagedData.java | 2 +-
.../com/sun/org/glassfish/gmbal/ManagedObject.java | 2 +-
.../com/sun/org/glassfish/gmbal/ManagedObjectManager.java | 2 +-
.../sun/org/glassfish/gmbal/ManagedObjectManagerFactory.java | 2 +-
.../sun/org/glassfish/gmbal/ManagedObjectManagerNOPImpl.java | 2 +-
.../com/sun/org/glassfish/gmbal/ManagedOperation.java | 2 +-
.../jaxws_classes/com/sun/org/glassfish/gmbal/NameValue.java | 2 +-
.../com/sun/org/glassfish/gmbal/ParameterNames.java | 2 +-
.../com/sun/org/glassfish/gmbal/util/GenericConstructor.java | 2 +-
.../jaxws_classes/com/sun/tools/internal/jxc/Messages.java | 2 +-
.../jaxws_classes/com/sun/tools/internal/jxc/ap/Const.java | 2 +-
.../com/sun/tools/internal/jxc/ap/ErrorReceiverImpl.java | 2 +-
.../sun/tools/internal/jxc/ap/InlineAnnotationReaderImpl.java | 2 +-
.../com/sun/tools/internal/jxc/ap/MessageBundle.properties | 2 +-
.../jaxws_classes/com/sun/tools/internal/jxc/ap/Messages.java | 2 +-
.../jaxws_classes/com/sun/tools/internal/jxc/ap/package.html | 2 +-
.../com/sun/tools/internal/jxc/gen/config/config.rng | 2 +-
.../com/sun/tools/internal/jxc/gen/config/config.xsd | 2 +-
.../com/sun/tools/internal/xjc/AbortException.java | 2 +-
.../com/sun/tools/internal/xjc/BadCommandLineException.java | 2 +-
.../com/sun/tools/internal/xjc/ConsoleErrorReporter.java | 2 +-
.../jaxws_classes/com/sun/tools/internal/xjc/ErrorReceiver.java | 2 +-
.../jaxws_classes/com/sun/tools/internal/xjc/Language.java | 2 +-
.../share/jaxws_classes/com/sun/tools/internal/xjc/Plugin.java | 2 +-
.../com/sun/tools/internal/xjc/ProgressCodeWriter.java | 2 +-
.../jaxws_classes/com/sun/tools/internal/xjc/XJCListener.java | 2 +-
.../com/sun/tools/internal/xjc/addon/accessors/PluginImpl.java | 2 +-
.../sun/tools/internal/xjc/addon/at_generated/PluginImpl.java | 2 +-
.../com/sun/tools/internal/xjc/addon/code_injector/Const.java | 2 +-
.../sun/tools/internal/xjc/addon/code_injector/PluginImpl.java | 2 +-
.../com/sun/tools/internal/xjc/addon/episode/PluginImpl.java | 2 +-
.../com/sun/tools/internal/xjc/addon/episode/package-info.java | 2 +-
.../tools/internal/xjc/addon/locator/SourceLocationAddOn.java | 2 +-
.../tools/internal/xjc/addon/sync/SynchronizedMethodAddOn.java | 2 +-
.../com/sun/tools/internal/xjc/api/ClassNameAllocator.java | 2 +-
.../com/sun/tools/internal/xjc/api/ErrorListener.java | 2 +-
.../com/sun/tools/internal/xjc/api/J2SJAXBModel.java | 2 +-
.../jaxws_classes/com/sun/tools/internal/xjc/api/JAXBModel.java | 2 +-
.../com/sun/tools/internal/xjc/api/JavaCompiler.java | 2 +-
.../jaxws_classes/com/sun/tools/internal/xjc/api/Mapping.java | 2 +-
.../jaxws_classes/com/sun/tools/internal/xjc/api/Property.java | 2 +-
.../jaxws_classes/com/sun/tools/internal/xjc/api/Reference.java | 2 +-
.../com/sun/tools/internal/xjc/api/S2JJAXBModel.java | 2 +-
.../com/sun/tools/internal/xjc/api/SchemaCompiler.java | 2 +-
.../com/sun/tools/internal/xjc/api/SpecVersion.java | 2 +-
.../com/sun/tools/internal/xjc/api/TypeAndAnnotation.java | 2 +-
.../tools/internal/xjc/api/impl/s2j/AbstractMappingImpl.java | 2 +-
.../sun/tools/internal/xjc/api/impl/s2j/BeanMappingImpl.java | 2 +-
.../internal/xjc/api/impl/s2j/DowngradingErrorHandler.java | 2 +-
.../com/sun/tools/internal/xjc/api/impl/s2j/ElementAdapter.java | 2 +-
.../internal/xjc/api/impl/s2j/ElementCollectionAdapter.java | 2 +-
.../sun/tools/internal/xjc/api/impl/s2j/ElementMappingImpl.java | 2 +-
.../tools/internal/xjc/api/impl/s2j/ElementSingleAdapter.java | 2 +-
.../com/sun/tools/internal/xjc/api/impl/s2j/JAXBModelImpl.java | 2 +-
.../com/sun/tools/internal/xjc/api/impl/s2j/PropertyImpl.java | 2 +-
.../com/sun/tools/internal/xjc/api/impl/s2j/package.html | 2 +-
.../jaxws_classes/com/sun/tools/internal/xjc/api/package.html | 2 +-
.../com/sun/tools/internal/xjc/api/util/ApClassLoader.java | 2 +-
.../com/sun/tools/internal/xjc/api/util/FilerCodeWriter.java | 2 +-
.../com/sun/tools/internal/xjc/api/util/Messages.java | 2 +-
.../com/sun/tools/internal/xjc/api/util/Messages.properties | 2 +-
.../tools/internal/xjc/api/util/ToolsJarNotFoundException.java | 2 +-
.../com/sun/tools/internal/xjc/api/util/package.html | 2 +-
.../sun/tools/internal/xjc/generator/bean/ClassOutlineImpl.java | 2 +-
.../tools/internal/xjc/generator/bean/ElementOutlineImpl.java | 2 +-
.../internal/xjc/generator/bean/ImplStructureStrategy.java | 2 +-
.../com/sun/tools/internal/xjc/generator/bean/Messages.java | 2 +-
.../com/sun/tools/internal/xjc/generator/bean/MethodWriter.java | 2 +-
.../internal/xjc/generator/bean/ObjectFactoryGenerator.java | 2 +-
.../internal/xjc/generator/bean/ObjectFactoryGeneratorImpl.java | 2 +-
.../tools/internal/xjc/generator/bean/PackageOutlineImpl.java | 2 +-
.../xjc/generator/bean/PrivateObjectFactoryGenerator.java | 2 +-
.../xjc/generator/bean/PublicObjectFactoryGenerator.java | 2 +-
.../tools/internal/xjc/generator/bean/field/AbstractField.java | 2 +-
.../internal/xjc/generator/bean/field/AbstractListField.java | 2 +-
.../sun/tools/internal/xjc/generator/bean/field/ArrayField.java | 2 +-
.../sun/tools/internal/xjc/generator/bean/field/ConstField.java | 2 +-
.../internal/xjc/generator/bean/field/ConstFieldRenderer.java | 2 +-
.../internal/xjc/generator/bean/field/ContentListField.java | 2 +-
.../internal/xjc/generator/bean/field/DefaultFieldRenderer.java | 2 +-
.../tools/internal/xjc/generator/bean/field/DummyListField.java | 2 +-
.../tools/internal/xjc/generator/bean/field/FieldRenderer.java | 2 +-
.../internal/xjc/generator/bean/field/FieldRendererFactory.java | 2 +-
.../internal/xjc/generator/bean/field/GenericFieldRenderer.java | 2 +-
.../sun/tools/internal/xjc/generator/bean/field/IsSetField.java | 2 +-
.../internal/xjc/generator/bean/field/IsSetFieldRenderer.java | 2 +-
.../internal/xjc/generator/bean/field/MessageBundle.properties | 2 +-
.../sun/tools/internal/xjc/generator/bean/field/Messages.java | 2 +-
.../xjc/generator/bean/field/NoExtendedContentField.java | 2 +-
.../tools/internal/xjc/generator/bean/field/SingleField.java | 2 +-
.../xjc/generator/bean/field/SinglePrimitiveAccessField.java | 2 +-
.../tools/internal/xjc/generator/bean/field/UnboxedField.java | 2 +-
.../internal/xjc/generator/bean/field/UntypedListField.java | 2 +-
.../xjc/generator/bean/field/UntypedListFieldRenderer.java | 2 +-
.../sun/tools/internal/xjc/generator/bean/field/package.html | 2 +-
.../com/sun/tools/internal/xjc/generator/package-info.java | 2 +-
.../sun/tools/internal/xjc/generator/util/BlockReference.java | 2 +-
.../internal/xjc/generator/util/ExistingBlockReference.java | 2 +-
.../tools/internal/xjc/generator/util/LazyBlockReference.java | 2 +-
.../tools/internal/xjc/generator/util/WhitespaceNormalizer.java | 2 +-
.../com/sun/tools/internal/xjc/model/AbstractCElement.java | 2 +-
.../com/sun/tools/internal/xjc/model/AbstractCTypeInfoImpl.java | 2 +-
.../sun/tools/internal/xjc/model/AutoClassNameAllocator.java | 2 +-
.../com/sun/tools/internal/xjc/model/CAdapter.java | 2 +-
.../sun/tools/internal/xjc/model/CAttributePropertyInfo.java | 2 +-
.../jaxws_classes/com/sun/tools/internal/xjc/model/CClass.java | 2 +-
.../com/sun/tools/internal/xjc/model/CClassInfo.java | 2 +-
.../com/sun/tools/internal/xjc/model/CClassInfoParent.java | 2 +-
.../com/sun/tools/internal/xjc/model/CClassRef.java | 2 +-
.../com/sun/tools/internal/xjc/model/CCustomizable.java | 2 +-
.../com/sun/tools/internal/xjc/model/CCustomizations.java | 2 +-
.../com/sun/tools/internal/xjc/model/CDefaultValue.java | 2 +-
.../com/sun/tools/internal/xjc/model/CElement.java | 2 +-
.../com/sun/tools/internal/xjc/model/CElementInfo.java | 2 +-
.../com/sun/tools/internal/xjc/model/CElementPropertyInfo.java | 2 +-
.../com/sun/tools/internal/xjc/model/CEnumConstant.java | 2 +-
.../com/sun/tools/internal/xjc/model/CEnumLeafInfo.java | 2 +-
.../com/sun/tools/internal/xjc/model/CNonElement.java | 2 +-
.../com/sun/tools/internal/xjc/model/CPluginCustomization.java | 2 +-
.../com/sun/tools/internal/xjc/model/CPropertyVisitor.java | 2 +-
.../sun/tools/internal/xjc/model/CReferencePropertyInfo.java | 2 +-
.../sun/tools/internal/xjc/model/CSingleTypePropertyInfo.java | 2 +-
.../com/sun/tools/internal/xjc/model/CValuePropertyInfo.java | 2 +-
.../com/sun/tools/internal/xjc/model/CWildcardTypeInfo.java | 2 +-
.../sun/tools/internal/xjc/model/ClassNameAllocatorWrapper.java | 2 +-
.../com/sun/tools/internal/xjc/model/Constructor.java | 2 +-
.../jaxws_classes/com/sun/tools/internal/xjc/model/Model.java | 2 +-
.../com/sun/tools/internal/xjc/model/Multiplicity.java | 2 +-
.../com/sun/tools/internal/xjc/model/Populatable.java | 2 +-
.../com/sun/tools/internal/xjc/model/SymbolSpace.java | 2 +-
.../jaxws_classes/com/sun/tools/internal/xjc/model/TypeUse.java | 2 +-
.../com/sun/tools/internal/xjc/model/TypeUseFactory.java | 2 +-
.../com/sun/tools/internal/xjc/model/TypeUseImpl.java | 2 +-
.../com/sun/tools/internal/xjc/model/nav/EagerNClass.java | 2 +-
.../com/sun/tools/internal/xjc/model/nav/NClass.java | 2 +-
.../com/sun/tools/internal/xjc/model/nav/NClassByJClass.java | 2 +-
.../sun/tools/internal/xjc/model/nav/NParameterizedType.java | 2 +-
.../com/sun/tools/internal/xjc/model/nav/NType.java | 2 +-
.../com/sun/tools/internal/xjc/model/nav/package.html | 2 +-
.../com/sun/tools/internal/xjc/outline/Aspect.java | 2 +-
.../com/sun/tools/internal/xjc/outline/ClassOutline.java | 2 +-
.../com/sun/tools/internal/xjc/outline/ElementOutline.java | 2 +-
.../com/sun/tools/internal/xjc/outline/EnumConstantOutline.java | 2 +-
.../com/sun/tools/internal/xjc/outline/EnumOutline.java | 2 +-
.../com/sun/tools/internal/xjc/outline/FieldAccessor.java | 2 +-
.../com/sun/tools/internal/xjc/outline/FieldOutline.java | 2 +-
.../com/sun/tools/internal/xjc/outline/Outline.java | 2 +-
.../com/sun/tools/internal/xjc/outline/PackageOutline.java | 2 +-
.../com/sun/tools/internal/xjc/outline/package.html | 2 +-
.../jaxws_classes/com/sun/tools/internal/xjc/package-info.java | 2 +-
.../internal/xjc/reader/AbstractExtensionBindingChecker.java | 2 +-
.../jaxws_classes/com/sun/tools/internal/xjc/reader/Const.java | 2 +-
.../sun/tools/internal/xjc/reader/ExtensionBindingChecker.java | 2 +-
.../com/sun/tools/internal/xjc/reader/MessageBundle.properties | 2 +-
.../com/sun/tools/internal/xjc/reader/Messages.java | 2 +-
.../com/sun/tools/internal/xjc/reader/ModelChecker.java | 2 +-
.../com/sun/tools/internal/xjc/reader/RawTypeSet.java | 2 +-
.../jaxws_classes/com/sun/tools/internal/xjc/reader/Ring.java | 2 +-
.../jaxws_classes/com/sun/tools/internal/xjc/reader/Util.java | 2 +-
.../com/sun/tools/internal/xjc/reader/dtd/Block.java | 2 +-
.../com/sun/tools/internal/xjc/reader/dtd/Element.java | 2 +-
.../sun/tools/internal/xjc/reader/dtd/MessageBundle.properties | 2 +-
.../com/sun/tools/internal/xjc/reader/dtd/Messages.java | 2 +-
.../com/sun/tools/internal/xjc/reader/dtd/ModelGroup.java | 2 +-
.../com/sun/tools/internal/xjc/reader/dtd/Occurence.java | 2 +-
.../com/sun/tools/internal/xjc/reader/dtd/TDTDReader.java | 2 +-
.../com/sun/tools/internal/xjc/reader/dtd/Term.java | 2 +-
.../sun/tools/internal/xjc/reader/dtd/bindinfo/BIAttribute.java | 2 +-
.../tools/internal/xjc/reader/dtd/bindinfo/BIConstructor.java | 2 +-
.../sun/tools/internal/xjc/reader/dtd/bindinfo/BIContent.java | 2 +-
.../tools/internal/xjc/reader/dtd/bindinfo/BIConversion.java | 2 +-
.../sun/tools/internal/xjc/reader/dtd/bindinfo/BIElement.java | 2 +-
.../tools/internal/xjc/reader/dtd/bindinfo/BIEnumeration.java | 2 +-
.../sun/tools/internal/xjc/reader/dtd/bindinfo/BIInterface.java | 2 +-
.../sun/tools/internal/xjc/reader/dtd/bindinfo/DOMLocator.java | 2 +-
.../com/sun/tools/internal/xjc/reader/dtd/bindinfo/DOMUtil.java | 2 +-
.../xjc/reader/dtd/bindinfo/DTDExtensionBindingChecker.java | 2 +-
.../internal/xjc/reader/dtd/bindinfo/MessageBundle.properties | 2 +-
.../sun/tools/internal/xjc/reader/dtd/bindinfo/Messages.java | 2 +-
.../sun/tools/internal/xjc/reader/dtd/bindinfo/bindingfile.rng | 2 +-
.../sun/tools/internal/xjc/reader/dtd/bindinfo/bindingfile.xsd | 2 +-
.../com/sun/tools/internal/xjc/reader/dtd/bindinfo/package.html | 2 +-
.../com/sun/tools/internal/xjc/reader/dtd/bindinfo/xjc.xsd | 2 +-
.../com/sun/tools/internal/xjc/reader/gbind/Choice.java | 2 +-
.../sun/tools/internal/xjc/reader/gbind/ConnectedComponent.java | 2 +-
.../com/sun/tools/internal/xjc/reader/gbind/Element.java | 2 +-
.../com/sun/tools/internal/xjc/reader/gbind/ElementSet.java | 2 +-
.../com/sun/tools/internal/xjc/reader/gbind/ElementSets.java | 2 +-
.../com/sun/tools/internal/xjc/reader/gbind/Expression.java | 2 +-
.../com/sun/tools/internal/xjc/reader/gbind/Graph.java | 2 +-
.../com/sun/tools/internal/xjc/reader/gbind/OneOrMore.java | 2 +-
.../com/sun/tools/internal/xjc/reader/gbind/Sequence.java | 2 +-
.../com/sun/tools/internal/xjc/reader/gbind/SinkNode.java | 2 +-
.../com/sun/tools/internal/xjc/reader/gbind/SourceNode.java | 2 +-
.../com/sun/tools/internal/xjc/reader/gbind/package.html | 2 +-
.../internalizer/ContentHandlerNamespacePrefixAdapter.java | 2 +-
.../sun/tools/internal/xjc/reader/internalizer/DOMBuilder.java | 2 +-
.../tools/internal/xjc/reader/internalizer/DOMForestParser.java | 2 +-
.../internal/xjc/reader/internalizer/DOMForestScanner.java | 2 +-
.../internal/xjc/reader/internalizer/InternalizationLogic.java | 2 +-
.../tools/internal/xjc/reader/internalizer/LocatorTable.java | 2 +-
.../internal/xjc/reader/internalizer/MessageBundle.properties | 2 +-
.../sun/tools/internal/xjc/reader/internalizer/Messages.java | 2 +-
.../internal/xjc/reader/internalizer/NamespaceContextImpl.java | 2 +-
.../tools/internal/xjc/reader/internalizer/VersionChecker.java | 2 +-
.../internal/xjc/reader/internalizer/WhitespaceStripper.java | 2 +-
.../com/sun/tools/internal/xjc/reader/internalizer/package.html | 2 +-
.../com/sun/tools/internal/xjc/reader/package.html | 2 +-
.../com/sun/tools/internal/xjc/reader/relaxng/BindStyle.java | 2 +-
.../tools/internal/xjc/reader/relaxng/ContentModelBinder.java | 2 +-
.../com/sun/tools/internal/xjc/reader/relaxng/DatatypeLib.java | 2 +-
.../com/sun/tools/internal/xjc/reader/relaxng/DefineFinder.java | 2 +-
.../sun/tools/internal/xjc/reader/relaxng/NameCalculator.java | 2 +-
.../sun/tools/internal/xjc/reader/relaxng/RELAXNGCompiler.java | 2 +-
.../xjc/reader/relaxng/RELAXNGInternalizationLogic.java | 2 +-
.../tools/internal/xjc/reader/relaxng/RawTypeSetBuilder.java | 2 +-
.../tools/internal/xjc/reader/relaxng/TypePatternBinder.java | 2 +-
.../sun/tools/internal/xjc/reader/relaxng/TypeUseBinder.java | 2 +-
.../sun/tools/internal/xjc/reader/xmlschema/Abstractifier.java | 2 +-
.../com/sun/tools/internal/xjc/reader/xmlschema/BindBlue.java | 2 +-
.../com/sun/tools/internal/xjc/reader/xmlschema/BindGreen.java | 2 +-
.../com/sun/tools/internal/xjc/reader/xmlschema/BindPurple.java | 2 +-
.../com/sun/tools/internal/xjc/reader/xmlschema/BindRed.java | 2 +-
.../com/sun/tools/internal/xjc/reader/xmlschema/BindYellow.java | 2 +-
.../tools/internal/xjc/reader/xmlschema/BindingComponent.java | 2 +-
.../sun/tools/internal/xjc/reader/xmlschema/ClassBinder.java | 2 +-
.../tools/internal/xjc/reader/xmlschema/ClassBinderFilter.java | 2 +-
.../sun/tools/internal/xjc/reader/xmlschema/ClassSelector.java | 2 +-
.../sun/tools/internal/xjc/reader/xmlschema/CollisionInfo.java | 2 +-
.../sun/tools/internal/xjc/reader/xmlschema/ColorBinder.java | 2 +-
.../tools/internal/xjc/reader/xmlschema/DefaultClassBinder.java | 2 +-
.../internal/xjc/reader/xmlschema/DefaultParticleBinder.java | 2 +-
.../sun/tools/internal/xjc/reader/xmlschema/ErrorReporter.java | 2 +-
.../tools/internal/xjc/reader/xmlschema/ExpressionBuilder.java | 2 +-
.../internal/xjc/reader/xmlschema/ExpressionParticleBinder.java | 2 +-
.../com/sun/tools/internal/xjc/reader/xmlschema/GElement.java | 2 +-
.../sun/tools/internal/xjc/reader/xmlschema/GElementImpl.java | 2 +-
.../tools/internal/xjc/reader/xmlschema/GWildcardElement.java | 2 +-
.../internal/xjc/reader/xmlschema/MessageBundle.properties | 2 +-
.../com/sun/tools/internal/xjc/reader/xmlschema/Messages.java | 2 +-
.../internal/xjc/reader/xmlschema/MultiplicityCounter.java | 2 +-
.../sun/tools/internal/xjc/reader/xmlschema/ParticleBinder.java | 2 +-
.../tools/internal/xjc/reader/xmlschema/RawTypeSetBuilder.java | 2 +-
.../sun/tools/internal/xjc/reader/xmlschema/RefererFinder.java | 2 +-
.../xjc/reader/xmlschema/UnusedCustomizationChecker.java | 2 +-
.../internal/xjc/reader/xmlschema/WildcardNameClassBuilder.java | 2 +-
.../xjc/reader/xmlschema/bindinfo/AbstractDeclarationImpl.java | 2 +-
.../tools/internal/xjc/reader/xmlschema/bindinfo/BIClass.java | 2 +-
.../internal/xjc/reader/xmlschema/bindinfo/BIConversion.java | 2 +-
.../internal/xjc/reader/xmlschema/bindinfo/BIDeclaration.java | 2 +-
.../sun/tools/internal/xjc/reader/xmlschema/bindinfo/BIDom.java | 2 +-
.../tools/internal/xjc/reader/xmlschema/bindinfo/BIEnum.java | 2 +-
.../internal/xjc/reader/xmlschema/bindinfo/BIEnumMember.java | 2 +-
.../internal/xjc/reader/xmlschema/bindinfo/BIFactoryMethod.java | 2 +-
.../internal/xjc/reader/xmlschema/bindinfo/BIGlobalBinding.java | 2 +-
.../xjc/reader/xmlschema/bindinfo/BIInlineBinaryData.java | 2 +-
.../internal/xjc/reader/xmlschema/bindinfo/BIProperty.java | 2 +-
.../internal/xjc/reader/xmlschema/bindinfo/BISchemaBinding.java | 2 +-
.../internal/xjc/reader/xmlschema/bindinfo/BISerializable.java | 2 +-
.../tools/internal/xjc/reader/xmlschema/bindinfo/BIXDom.java | 2 +-
.../xjc/reader/xmlschema/bindinfo/BIXPluginCustomization.java | 2 +-
.../xjc/reader/xmlschema/bindinfo/BIXSubstitutable.java | 2 +-
.../xjc/reader/xmlschema/bindinfo/CollectionTypeAttribute.java | 2 +-
.../internal/xjc/reader/xmlschema/bindinfo/EnumMemberMode.java | 2 +-
.../internal/xjc/reader/xmlschema/bindinfo/ForkingFilter.java | 2 +-
.../internal/xjc/reader/xmlschema/bindinfo/LocalScoping.java | 2 +-
.../xjc/reader/xmlschema/bindinfo/MessageBundle.properties | 2 +-
.../tools/internal/xjc/reader/xmlschema/bindinfo/Messages.java | 2 +-
.../xjc/reader/xmlschema/bindinfo/OptionalPropertyMode.java | 2 +-
.../tools/internal/xjc/reader/xmlschema/bindinfo/binding.rng | 2 +-
.../tools/internal/xjc/reader/xmlschema/bindinfo/binding.xsd | 2 +-
.../internal/xjc/reader/xmlschema/bindinfo/package-info.java | 2 +-
.../tools/internal/xjc/reader/xmlschema/bindinfo/package.html | 2 +-
.../sun/tools/internal/xjc/reader/xmlschema/bindinfo/xjc.xsd | 2 +-
.../com/sun/tools/internal/xjc/reader/xmlschema/bindinfo/xs.xsd | 2 +-
.../sun/tools/internal/xjc/reader/xmlschema/ct/CTBuilder.java | 2 +-
.../reader/xmlschema/ct/ChoiceContentComplexTypeBuilder.java | 2 +-
.../xjc/reader/xmlschema/ct/ComplexTypeBindingMode.java | 2 +-
.../xjc/reader/xmlschema/ct/ComplexTypeFieldBuilder.java | 2 +-
.../xjc/reader/xmlschema/ct/ExtendedComplexTypeBuilder.java | 2 +-
.../xjc/reader/xmlschema/ct/FreshComplexTypeBuilder.java | 2 +-
.../internal/xjc/reader/xmlschema/ct/MessageBundle.properties | 2 +-
.../sun/tools/internal/xjc/reader/xmlschema/ct/Messages.java | 2 +-
.../xjc/reader/xmlschema/ct/MixedComplexTypeBuilder.java | 2 +-
.../reader/xmlschema/ct/MixedExtendedComplexTypeBuilder.java | 2 +-
.../reader/xmlschema/ct/MultiWildcardComplexTypeBuilder.java | 2 +-
.../xjc/reader/xmlschema/ct/RestrictedComplexTypeBuilder.java | 2 +-
.../xjc/reader/xmlschema/ct/STDerivedComplexTypeBuilder.java | 2 +-
.../reader/xmlschema/parser/CustomizationContextChecker.java | 2 +-
.../reader/xmlschema/parser/IncorrectNamespaceURIChecker.java | 2 +-
.../internal/xjc/reader/xmlschema/parser/LSInputSAXWrapper.java | 2 +-
.../xjc/reader/xmlschema/parser/MessageBundle.properties | 2 +-
.../tools/internal/xjc/reader/xmlschema/parser/Messages.java | 2 +-
.../reader/xmlschema/parser/XMLSchemaInternalizationLogic.java | 2 +-
.../com/sun/tools/internal/xjc/runtime/JAXBContextFactory.java | 2 +-
.../sun/tools/internal/xjc/runtime/ZeroOneBooleanAdapter.java | 2 +-
.../com/sun/tools/internal/xjc/runtime/package.html | 2 +-
.../com/sun/tools/internal/xjc/util/CodeModelClassFactory.java | 2 +-
.../com/sun/tools/internal/xjc/util/ErrorReceiverFilter.java | 2 +-
.../com/sun/tools/internal/xjc/util/ForkContentHandler.java | 2 +-
.../com/sun/tools/internal/xjc/util/ForkEntityResolver.java | 2 +-
.../com/sun/tools/internal/xjc/util/MessageBundle.properties | 2 +-
.../jaxws_classes/com/sun/tools/internal/xjc/util/Messages.java | 2 +-
.../com/sun/tools/internal/xjc/util/MimeTypeRange.java | 2 +-
.../sun/tools/internal/xjc/util/NamespaceContextAdapter.java | 2 +-
.../com/sun/tools/internal/xjc/util/NullStream.java | 2 +-
.../com/sun/tools/internal/xjc/util/ReadOnlyAdapter.java | 2 +-
.../com/sun/tools/internal/xjc/util/StringCutter.java | 2 +-
.../com/sun/tools/internal/xjc/util/SubtreeCutter.java | 2 +-
.../com/sun/tools/internal/xjc/writer/SignatureWriter.java | 2 +-
.../com/sun/xml/internal/bind/AccessorFactory.java | 2 +-
.../com/sun/xml/internal/bind/AccessorFactoryImpl.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/bind/AnyTypeAdapter.java | 2 +-
.../com/sun/xml/internal/bind/CycleRecoverable.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/bind/IDResolver.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/bind/Locatable.java | 2 +-
.../com/sun/xml/internal/bind/ValidationEventLocatorEx.java | 2 +-
.../com/sun/xml/internal/bind/XmlAccessorFactory.java | 2 +-
.../sun/xml/internal/bind/annotation/OverrideAnnotationOf.java | 2 +-
.../com/sun/xml/internal/bind/annotation/XmlIsSet.java | 2 +-
.../com/sun/xml/internal/bind/annotation/XmlLocation.java | 2 +-
.../com/sun/xml/internal/bind/api/AccessorException.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/bind/api/Bridge.java | 2 +-
.../com/sun/xml/internal/bind/api/BridgeContext.java | 2 +-
.../com/sun/xml/internal/bind/api/ClassResolver.java | 2 +-
.../com/sun/xml/internal/bind/api/CompositeStructure.java | 2 +-
.../com/sun/xml/internal/bind/api/ErrorListener.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/bind/api/Messages.java | 2 +-
.../com/sun/xml/internal/bind/api/Messages.properties | 2 +-
.../com/sun/xml/internal/bind/api/RawAccessor.java | 2 +-
.../com/sun/xml/internal/bind/api/package-info.java | 2 +-
.../xml/internal/bind/marshaller/CharacterEscapeHandler.java | 2 +-
.../com/sun/xml/internal/bind/marshaller/DataWriter.java | 2 +-
.../com/sun/xml/internal/bind/marshaller/DumbEscapeHandler.java | 2 +-
.../com/sun/xml/internal/bind/marshaller/Messages.java | 2 +-
.../com/sun/xml/internal/bind/marshaller/Messages.properties | 2 +-
.../sun/xml/internal/bind/marshaller/MinimumEscapeHandler.java | 2 +-
.../sun/xml/internal/bind/marshaller/NamespacePrefixMapper.java | 2 +-
.../com/sun/xml/internal/bind/marshaller/NioEscapeHandler.java | 2 +-
.../com/sun/xml/internal/bind/marshaller/XMLWriter.java | 2 +-
.../com/sun/xml/internal/bind/unmarshaller/DOMScanner.java | 2 +-
.../com/sun/xml/internal/bind/unmarshaller/InfosetScanner.java | 2 +-
.../com/sun/xml/internal/bind/unmarshaller/Messages.java | 2 +-
.../com/sun/xml/internal/bind/unmarshaller/Messages.properties | 2 +-
.../com/sun/xml/internal/bind/unmarshaller/Patcher.java | 2 +-
.../com/sun/xml/internal/bind/util/AttributesImpl.java | 2 +-
.../xml/internal/bind/util/ValidationEventLocatorExImpl.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/bind/util/Which.java | 2 +-
.../share/jaxws_classes/com/sun/xml/internal/bind/v2/TODO.java | 2 +-
.../com/sun/xml/internal/bind/v2/WellKnownNamespace.java | 2 +-
.../com/sun/xml/internal/bind/v2/bytecode/ClassTailor.java | 2 +-
.../com/sun/xml/internal/bind/v2/bytecode/SecureLoader.java | 2 +-
.../com/sun/xml/internal/bind/v2/bytecode/package.html | 2 +-
.../v2/model/annotation/AbstractInlineAnnotationReaderImpl.java | 2 +-
.../xml/internal/bind/v2/model/annotation/AnnotationReader.java | 2 +-
.../xml/internal/bind/v2/model/annotation/AnnotationSource.java | 2 +-
.../xml/internal/bind/v2/model/annotation/ClassLocatable.java | 2 +-
.../xml/internal/bind/v2/model/annotation/FieldLocatable.java | 2 +-
.../sun/xml/internal/bind/v2/model/annotation/Locatable.java | 2 +-
.../internal/bind/v2/model/annotation/LocatableAnnotation.java | 2 +-
.../com/sun/xml/internal/bind/v2/model/annotation/Messages.java | 2 +-
.../xml/internal/bind/v2/model/annotation/Messages.properties | 2 +-
.../xml/internal/bind/v2/model/annotation/MethodLocatable.java | 2 +-
.../com/sun/xml/internal/bind/v2/model/annotation/Quick.java | 2 +-
.../bind/v2/model/annotation/RuntimeAnnotationReader.java | 2 +-
.../bind/v2/model/annotation/RuntimeInlineAnnotationReader.java | 2 +-
.../sun/xml/internal/bind/v2/model/annotation/SecureLoader.java | 2 +-
.../com/sun/xml/internal/bind/v2/model/annotation/package.html | 2 +-
.../com/sun/xml/internal/bind/v2/model/core/Adapter.java | 2 +-
.../com/sun/xml/internal/bind/v2/model/core/ArrayInfo.java | 2 +-
.../xml/internal/bind/v2/model/core/AttributePropertyInfo.java | 2 +-
.../sun/xml/internal/bind/v2/model/core/BuiltinLeafInfo.java | 2 +-
.../com/sun/xml/internal/bind/v2/model/core/ClassInfo.java | 2 +-
.../com/sun/xml/internal/bind/v2/model/core/Element.java | 2 +-
.../com/sun/xml/internal/bind/v2/model/core/ElementInfo.java | 2 +-
.../xml/internal/bind/v2/model/core/ElementPropertyInfo.java | 2 +-
.../com/sun/xml/internal/bind/v2/model/core/EnumConstant.java | 2 +-
.../com/sun/xml/internal/bind/v2/model/core/EnumLeafInfo.java | 2 +-
.../com/sun/xml/internal/bind/v2/model/core/ID.java | 2 +-
.../com/sun/xml/internal/bind/v2/model/core/LeafInfo.java | 2 +-
.../sun/xml/internal/bind/v2/model/core/MapPropertyInfo.java | 2 +-
.../com/sun/xml/internal/bind/v2/model/core/MaybeElement.java | 2 +-
.../com/sun/xml/internal/bind/v2/model/core/NonElement.java | 2 +-
.../com/sun/xml/internal/bind/v2/model/core/NonElementRef.java | 2 +-
.../xml/internal/bind/v2/model/core/ReferencePropertyInfo.java | 2 +-
.../com/sun/xml/internal/bind/v2/model/core/TypeInfo.java | 2 +-
.../com/sun/xml/internal/bind/v2/model/core/TypeInfoSet.java | 2 +-
.../com/sun/xml/internal/bind/v2/model/core/TypeRef.java | 2 +-
.../sun/xml/internal/bind/v2/model/core/ValuePropertyInfo.java | 2 +-
.../com/sun/xml/internal/bind/v2/model/core/WildcardMode.java | 2 +-
.../sun/xml/internal/bind/v2/model/core/WildcardTypeInfo.java | 2 +-
.../com/sun/xml/internal/bind/v2/model/impl/AnyTypeImpl.java | 2 +-
.../internal/bind/v2/model/impl/AttributePropertyInfoImpl.java | 2 +-
.../xml/internal/bind/v2/model/impl/BuiltinLeafInfoImpl.java | 2 +-
.../com/sun/xml/internal/bind/v2/model/impl/ClassInfoImpl.java | 2 +-
.../sun/xml/internal/bind/v2/model/impl/DummyPropertyInfo.java | 2 +-
.../sun/xml/internal/bind/v2/model/impl/ERPropertyInfoImpl.java | 2 +-
.../sun/xml/internal/bind/v2/model/impl/ElementInfoImpl.java | 2 +-
.../internal/bind/v2/model/impl/ElementPropertyInfoImpl.java | 2 +-
.../sun/xml/internal/bind/v2/model/impl/EnumConstantImpl.java | 2 +-
.../sun/xml/internal/bind/v2/model/impl/EnumLeafInfoImpl.java | 2 +-
.../sun/xml/internal/bind/v2/model/impl/FieldPropertySeed.java | 2 +-
.../internal/bind/v2/model/impl/GetterSetterPropertySeed.java | 2 +-
.../com/sun/xml/internal/bind/v2/model/impl/LeafInfoImpl.java | 2 +-
.../xml/internal/bind/v2/model/impl/MapPropertyInfoImpl.java | 2 +-
.../com/sun/xml/internal/bind/v2/model/impl/Messages.java | 2 +-
.../com/sun/xml/internal/bind/v2/model/impl/Messages.properties | 2 +-
.../sun/xml/internal/bind/v2/model/impl/PropertyInfoImpl.java | 2 +-
.../com/sun/xml/internal/bind/v2/model/impl/PropertySeed.java | 2 +-
.../sun/xml/internal/bind/v2/model/impl/RegistryInfoImpl.java | 2 +-
.../xml/internal/bind/v2/model/impl/RuntimeArrayInfoImpl.java | 2 +-
.../bind/v2/model/impl/RuntimeAttributePropertyInfoImpl.java | 2 +-
.../xml/internal/bind/v2/model/impl/RuntimeClassInfoImpl.java | 2 +-
.../bind/v2/model/impl/RuntimeElementPropertyInfoImpl.java | 2 +-
.../internal/bind/v2/model/impl/RuntimeEnumConstantImpl.java | 2 +-
.../internal/bind/v2/model/impl/RuntimeEnumLeafInfoImpl.java | 2 +-
.../internal/bind/v2/model/impl/RuntimeMapPropertyInfoImpl.java | 2 +-
.../bind/v2/model/impl/RuntimeReferencePropertyInfoImpl.java | 2 +-
.../sun/xml/internal/bind/v2/model/impl/RuntimeTypeRefImpl.java | 2 +-
.../bind/v2/model/impl/RuntimeValuePropertyInfoImpl.java | 2 +-
.../com/sun/xml/internal/bind/v2/model/impl/SecureLoader.java | 2 +-
.../internal/bind/v2/model/impl/SingleTypePropertyInfoImpl.java | 2 +-
.../com/sun/xml/internal/bind/v2/model/impl/TypeInfoImpl.java | 2 +-
.../sun/xml/internal/bind/v2/model/impl/TypeInfoSetImpl.java | 2 +-
.../com/sun/xml/internal/bind/v2/model/impl/TypeRefImpl.java | 2 +-
.../com/sun/xml/internal/bind/v2/model/impl/Util.java | 2 +-
.../xml/internal/bind/v2/model/impl/ValuePropertyInfoImpl.java | 2 +-
.../com/sun/xml/internal/bind/v2/model/impl/package.html | 2 +-
.../xml/internal/bind/v2/model/nav/GenericArrayTypeImpl.java | 2 +-
.../com/sun/xml/internal/bind/v2/model/nav/TypeVisitor.java | 2 +-
.../sun/xml/internal/bind/v2/model/nav/WildcardTypeImpl.java | 2 +-
.../com/sun/xml/internal/bind/v2/model/nav/package.html | 2 +-
.../xml/internal/bind/v2/model/runtime/RuntimeArrayInfo.java | 2 +-
.../bind/v2/model/runtime/RuntimeAttributePropertyInfo.java | 2 +-
.../internal/bind/v2/model/runtime/RuntimeBuiltinLeafInfo.java | 2 +-
.../xml/internal/bind/v2/model/runtime/RuntimeClassInfo.java | 2 +-
.../sun/xml/internal/bind/v2/model/runtime/RuntimeElement.java | 2 +-
.../xml/internal/bind/v2/model/runtime/RuntimeElementInfo.java | 2 +-
.../bind/v2/model/runtime/RuntimeElementPropertyInfo.java | 2 +-
.../xml/internal/bind/v2/model/runtime/RuntimeEnumLeafInfo.java | 2 +-
.../sun/xml/internal/bind/v2/model/runtime/RuntimeLeafInfo.java | 2 +-
.../internal/bind/v2/model/runtime/RuntimeMapPropertyInfo.java | 2 +-
.../internal/bind/v2/model/runtime/RuntimeNonElementRef.java | 2 +-
.../xml/internal/bind/v2/model/runtime/RuntimePropertyInfo.java | 2 +-
.../bind/v2/model/runtime/RuntimeReferencePropertyInfo.java | 2 +-
.../sun/xml/internal/bind/v2/model/runtime/RuntimeTypeInfo.java | 2 +-
.../sun/xml/internal/bind/v2/model/runtime/RuntimeTypeRef.java | 2 +-
.../bind/v2/model/runtime/RuntimeValuePropertyInfo.java | 2 +-
.../sun/xml/internal/bind/v2/model/runtime/package-info.java | 2 +-
.../com/sun/xml/internal/bind/v2/runtime/AnyTypeBeanInfo.java | 2 +-
.../com/sun/xml/internal/bind/v2/runtime/ArrayBeanInfoImpl.java | 2 +-
.../com/sun/xml/internal/bind/v2/runtime/AssociationMap.java | 2 +-
.../com/sun/xml/internal/bind/v2/runtime/AttributeAccessor.java | 2 +-
.../com/sun/xml/internal/bind/v2/runtime/BinderImpl.java | 2 +-
.../com/sun/xml/internal/bind/v2/runtime/BridgeContextImpl.java | 2 +-
.../com/sun/xml/internal/bind/v2/runtime/BridgeImpl.java | 2 +-
.../internal/bind/v2/runtime/CompositeStructureBeanInfo.java | 2 +-
.../sun/xml/internal/bind/v2/runtime/ContentHandlerAdaptor.java | 2 +-
.../com/sun/xml/internal/bind/v2/runtime/DomPostInitAction.java | 2 +-
.../com/sun/xml/internal/bind/v2/runtime/FilterTransducer.java | 2 +-
.../internal/bind/v2/runtime/IllegalAnnotationException.java | 2 +-
.../internal/bind/v2/runtime/IllegalAnnotationsException.java | 2 +-
.../xml/internal/bind/v2/runtime/InlineBinaryTransducer.java | 2 +-
.../com/sun/xml/internal/bind/v2/runtime/InternalBridge.java | 2 +-
.../com/sun/xml/internal/bind/v2/runtime/JaxBeanInfo.java | 2 +-
.../com/sun/xml/internal/bind/v2/runtime/LifecycleMethods.java | 2 +-
.../com/sun/xml/internal/bind/v2/runtime/Location.java | 2 +-
.../com/sun/xml/internal/bind/v2/runtime/Messages.java | 2 +-
.../com/sun/xml/internal/bind/v2/runtime/Messages.properties | 2 +-
.../sun/xml/internal/bind/v2/runtime/MimeTypedTransducer.java | 2 +-
.../com/sun/xml/internal/bind/v2/runtime/Name.java | 2 +-
.../com/sun/xml/internal/bind/v2/runtime/NameBuilder.java | 2 +-
.../com/sun/xml/internal/bind/v2/runtime/NameList.java | 2 +-
.../com/sun/xml/internal/bind/v2/runtime/NamespaceContext2.java | 2 +-
.../sun/xml/internal/bind/v2/runtime/SchemaTypeTransducer.java | 2 +-
.../sun/xml/internal/bind/v2/runtime/StAXPostInitAction.java | 2 +-
.../com/sun/xml/internal/bind/v2/runtime/SwaRefAdapter.java | 2 +-
.../com/sun/xml/internal/bind/v2/runtime/Transducer.java | 2 +-
.../sun/xml/internal/bind/v2/runtime/ValueListBeanInfoImpl.java | 2 +-
.../sun/xml/internal/bind/v2/runtime/output/C14nXmlOutput.java | 2 +-
.../com/sun/xml/internal/bind/v2/runtime/output/DOMOutput.java | 2 +-
.../com/sun/xml/internal/bind/v2/runtime/output/Encoded.java | 2 +-
.../bind/v2/runtime/output/FastInfosetStreamWriterOutput.java | 2 +-
.../sun/xml/internal/bind/v2/runtime/output/ForkXmlOutput.java | 2 +-
.../internal/bind/v2/runtime/output/IndentingUTF8XmlOutput.java | 2 +-
.../sun/xml/internal/bind/v2/runtime/output/MTOMXmlOutput.java | 2 +-
.../internal/bind/v2/runtime/output/NamespaceContextImpl.java | 2 +-
.../com/sun/xml/internal/bind/v2/runtime/output/Pcdata.java | 2 +-
.../com/sun/xml/internal/bind/v2/runtime/output/SAXOutput.java | 2 +-
.../sun/xml/internal/bind/v2/runtime/output/SecureLoader.java | 2 +-
.../bind/v2/runtime/output/StAXExStreamWriterOutput.java | 2 +-
.../sun/xml/internal/bind/v2/runtime/output/UTF8XmlOutput.java | 2 +-
.../internal/bind/v2/runtime/output/XMLEventWriterOutput.java | 2 +-
.../internal/bind/v2/runtime/output/XMLStreamWriterOutput.java | 2 +-
.../com/sun/xml/internal/bind/v2/runtime/output/XmlOutput.java | 2 +-
.../internal/bind/v2/runtime/output/XmlOutputAbstractImpl.java | 2 +-
.../sun/xml/internal/bind/v2/runtime/output/package-info.java | 2 +-
.../com/sun/xml/internal/bind/v2/runtime/package.html | 2 +-
.../xml/internal/bind/v2/runtime/property/ArrayERProperty.java | 2 +-
.../bind/v2/runtime/property/ArrayElementLeafProperty.java | 2 +-
.../bind/v2/runtime/property/ArrayElementNodeProperty.java | 2 +-
.../internal/bind/v2/runtime/property/ArrayElementProperty.java | 2 +-
.../bind/v2/runtime/property/ArrayReferenceNodeProperty.java | 2 +-
.../internal/bind/v2/runtime/property/AttributeProperty.java | 2 +-
.../com/sun/xml/internal/bind/v2/runtime/property/Messages.java | 2 +-
.../xml/internal/bind/v2/runtime/property/Messages.properties | 2 +-
.../com/sun/xml/internal/bind/v2/runtime/property/Property.java | 2 +-
.../xml/internal/bind/v2/runtime/property/PropertyFactory.java | 2 +-
.../sun/xml/internal/bind/v2/runtime/property/PropertyImpl.java | 2 +-
.../bind/v2/runtime/property/SingleElementNodeProperty.java | 2 +-
.../bind/v2/runtime/property/SingleReferenceNodeProperty.java | 2 +-
.../bind/v2/runtime/property/StructureLoaderBuilder.java | 2 +-
.../sun/xml/internal/bind/v2/runtime/property/TagAndType.java | 2 +-
.../internal/bind/v2/runtime/property/UnmarshallerChain.java | 2 +-
.../xml/internal/bind/v2/runtime/property/ValueProperty.java | 2 +-
.../xml/internal/bind/v2/runtime/reflect/AdaptedAccessor.java | 2 +-
.../sun/xml/internal/bind/v2/runtime/reflect/AdaptedLister.java | 2 +-
.../bind/v2/runtime/reflect/DefaultTransducedAccessor.java | 2 +-
.../sun/xml/internal/bind/v2/runtime/reflect/ListIterator.java | 2 +-
.../bind/v2/runtime/reflect/ListTransducedAccessorImpl.java | 2 +-
.../com/sun/xml/internal/bind/v2/runtime/reflect/Messages.java | 2 +-
.../xml/internal/bind/v2/runtime/reflect/Messages.properties | 2 +-
.../xml/internal/bind/v2/runtime/reflect/NullSafeAccessor.java | 2 +-
.../bind/v2/runtime/reflect/PrimitiveArrayListerByte.java | 2 +-
.../com/sun/xml/internal/bind/v2/runtime/reflect/opt/Bean.java | 2 +-
.../com/sun/xml/internal/bind/v2/runtime/reflect/opt/Const.java | 2 +-
.../bind/v2/runtime/reflect/opt/FieldAccessor_Byte.java | 2 +-
.../internal/bind/v2/runtime/reflect/opt/FieldAccessor_Ref.java | 2 +-
.../bind/v2/runtime/reflect/opt/MethodAccessor_Byte.java | 2 +-
.../bind/v2/runtime/reflect/opt/MethodAccessor_Ref.java | 2 +-
.../runtime/reflect/opt/OptimizedTransducedAccessorFactory.java | 2 +-
.../com/sun/xml/internal/bind/v2/runtime/reflect/opt/Ref.java | 2 +-
.../xml/internal/bind/v2/runtime/reflect/opt/SecureLoader.java | 2 +-
.../runtime/reflect/opt/TransducedAccessor_field_Boolean.java | 2 +-
.../v2/runtime/reflect/opt/TransducedAccessor_field_Byte.java | 2 +-
.../runtime/reflect/opt/TransducedAccessor_field_Integer.java | 2 +-
.../v2/runtime/reflect/opt/TransducedAccessor_method_Byte.java | 2 +-
.../runtime/reflect/opt/TransducedAccessor_method_Integer.java | 2 +-
.../sun/xml/internal/bind/v2/runtime/reflect/opt/package.html | 2 +-
.../com/sun/xml/internal/bind/v2/runtime/reflect/package.html | 2 +-
.../xml/internal/bind/v2/runtime/unmarshaller/AttributesEx.java | 2 +-
.../internal/bind/v2/runtime/unmarshaller/AttributesExImpl.java | 2 +-
.../xml/internal/bind/v2/runtime/unmarshaller/Base64Data.java | 2 +-
.../xml/internal/bind/v2/runtime/unmarshaller/ChildLoader.java | 2 +-
.../bind/v2/runtime/unmarshaller/DefaultIDResolver.java | 2 +-
.../v2/runtime/unmarshaller/DefaultValueLoaderDecorator.java | 2 +-
.../xml/internal/bind/v2/runtime/unmarshaller/Discarder.java | 2 +-
.../bind/v2/runtime/unmarshaller/FastInfosetConnector.java | 2 +-
.../xml/internal/bind/v2/runtime/unmarshaller/IntArrayData.java | 2 +-
.../sun/xml/internal/bind/v2/runtime/unmarshaller/IntData.java | 2 +-
.../xml/internal/bind/v2/runtime/unmarshaller/Intercepter.java | 2 +-
.../bind/v2/runtime/unmarshaller/InterningXmlVisitor.java | 2 +-
.../bind/v2/runtime/unmarshaller/LeafPropertyLoader.java | 2 +-
.../bind/v2/runtime/unmarshaller/LeafPropertyXsiLoader.java | 2 +-
.../xml/internal/bind/v2/runtime/unmarshaller/LocatorEx.java | 2 +-
.../internal/bind/v2/runtime/unmarshaller/LocatorExWrapper.java | 2 +-
.../internal/bind/v2/runtime/unmarshaller/MTOMDecorator.java | 2 +-
.../sun/xml/internal/bind/v2/runtime/unmarshaller/Patcher.java | 2 +-
.../xml/internal/bind/v2/runtime/unmarshaller/ProxyLoader.java | 2 +-
.../sun/xml/internal/bind/v2/runtime/unmarshaller/Receiver.java | 2 +-
.../sun/xml/internal/bind/v2/runtime/unmarshaller/Scope.java | 2 +-
.../xml/internal/bind/v2/runtime/unmarshaller/SecureLoader.java | 2 +-
.../internal/bind/v2/runtime/unmarshaller/StAXConnector.java | 2 +-
.../bind/v2/runtime/unmarshaller/StAXEventConnector.java | 2 +-
.../internal/bind/v2/runtime/unmarshaller/StAXExConnector.java | 2 +-
.../bind/v2/runtime/unmarshaller/StAXStreamConnector.java | 2 +-
.../internal/bind/v2/runtime/unmarshaller/StructureLoader.java | 2 +-
.../sun/xml/internal/bind/v2/runtime/unmarshaller/TagName.java | 2 +-
.../xml/internal/bind/v2/runtime/unmarshaller/TextLoader.java | 2 +-
.../bind/v2/runtime/unmarshaller/ValidatingUnmarshaller.java | 2 +-
.../bind/v2/runtime/unmarshaller/ValuePropertyLoader.java | 2 +-
.../internal/bind/v2/runtime/unmarshaller/WildcardLoader.java | 2 +-
.../xml/internal/bind/v2/runtime/unmarshaller/XmlVisitor.java | 2 +-
.../xml/internal/bind/v2/runtime/unmarshaller/XsiNilLoader.java | 2 +-
.../sun/xml/internal/bind/v2/schemagen/FoolProofResolver.java | 2 +-
.../com/sun/xml/internal/bind/v2/schemagen/Form.java | 2 +-
.../com/sun/xml/internal/bind/v2/schemagen/GroupKind.java | 2 +-
.../com/sun/xml/internal/bind/v2/schemagen/Messages.java | 2 +-
.../com/sun/xml/internal/bind/v2/schemagen/Messages.properties | 2 +-
.../com/sun/xml/internal/bind/v2/schemagen/MultiMap.java | 2 +-
.../com/sun/xml/internal/bind/v2/schemagen/Tree.java | 2 +-
.../com/sun/xml/internal/bind/v2/schemagen/Util.java | 2 +-
.../sun/xml/internal/bind/v2/schemagen/episode/Bindings.java | 2 +-
.../com/sun/xml/internal/bind/v2/schemagen/episode/Klass.java | 2 +-
.../com/sun/xml/internal/bind/v2/schemagen/episode/Package.java | 2 +-
.../xml/internal/bind/v2/schemagen/episode/SchemaBindings.java | 2 +-
.../xml/internal/bind/v2/schemagen/episode/package-info.java | 2 +-
.../com/sun/xml/internal/bind/v2/schemagen/package-info.java | 2 +-
.../bind/v2/schemagen/xmlschema/ContentModelContainer.java | 2 +-
.../sun/xml/internal/bind/v2/schemagen/xmlschema/Particle.java | 2 +-
.../sun/xml/internal/bind/v2/schemagen/xmlschema/package.html | 2 +-
.../internal/bind/v2/schemagen/xmlschema/xmlschema-for-jaxb.rng | 2 +-
.../sun/xml/internal/bind/v2/util/ByteArrayOutputStreamEx.java | 2 +-
.../com/sun/xml/internal/bind/v2/util/CollisionCheckStack.java | 2 +-
.../com/sun/xml/internal/bind/v2/util/DataSourceSource.java | 2 +-
.../com/sun/xml/internal/bind/v2/util/FatalAdapter.java | 2 +-
.../com/sun/xml/internal/bind/v2/util/FlattenIterator.java | 2 +-
.../com/sun/xml/internal/bind/v2/util/QNameMap.java | 2 +-
.../com/sun/xml/internal/bind/v2/util/StackRecorder.java | 2 +-
.../com/sun/xml/internal/bind/v2/util/TypeCast.java | 2 +-
.../sun/xml/internal/fastinfoset/AbstractResourceBundle.java | 2 +-
.../com/sun/xml/internal/fastinfoset/DecoderStateTables.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/fastinfoset/Encoder.java | 2 +-
.../com/sun/xml/internal/fastinfoset/EncodingConstants.java | 2 +-
.../com/sun/xml/internal/fastinfoset/Notation.java | 2 +-
.../com/sun/xml/internal/fastinfoset/OctetBufferListener.java | 2 +-
.../com/sun/xml/internal/fastinfoset/QualifiedName.java | 2 +-
.../com/sun/xml/internal/fastinfoset/UnparsedEntity.java | 2 +-
.../fastinfoset/algorithm/BuiltInEncodingAlgorithmFactory.java | 2 +-
.../fastinfoset/algorithm/BuiltInEncodingAlgorithmState.java | 2 +-
.../internal/fastinfoset/algorithm/DoubleEncodingAlgorithm.java | 2 +-
.../algorithm/IEEE754FloatingPointEncodingAlgorithm.java | 2 +-
.../internal/fastinfoset/algorithm/IntEncodingAlgorithm.java | 2 +-
.../fastinfoset/algorithm/IntegerEncodingAlgorithm.java | 2 +-
.../internal/fastinfoset/algorithm/LongEncodingAlgorithm.java | 2 +-
.../internal/fastinfoset/algorithm/ShortEncodingAlgorithm.java | 2 +-
.../internal/fastinfoset/algorithm/UUIDEncodingAlgorithm.java | 2 +-
.../fastinfoset/alphabet/BuiltInRestrictedAlphabets.java | 2 +-
.../sun/xml/internal/fastinfoset/dom/DOMDocumentSerializer.java | 2 +-
.../internal/fastinfoset/org/apache/xerces/util/XMLChar.java | 2 +-
.../com/sun/xml/internal/fastinfoset/sax/Features.java | 2 +-
.../com/sun/xml/internal/fastinfoset/sax/Properties.java | 2 +-
.../sun/xml/internal/fastinfoset/sax/SAXDocumentSerializer.java | 2 +-
.../fastinfoset/sax/SAXDocumentSerializerWithPrefixMapping.java | 2 +-
.../com/sun/xml/internal/fastinfoset/sax/SystemIdResolver.java | 2 +-
.../com/sun/xml/internal/fastinfoset/stax/EventLocation.java | 2 +-
.../xml/internal/fastinfoset/stax/StAXDocumentSerializer.java | 2 +-
.../com/sun/xml/internal/fastinfoset/stax/StAXManager.java | 2 +-
.../sun/xml/internal/fastinfoset/stax/events/AttributeBase.java | 2 +-
.../xml/internal/fastinfoset/stax/events/CharactersEvent.java | 2 +-
.../sun/xml/internal/fastinfoset/stax/events/CommentEvent.java | 2 +-
.../com/sun/xml/internal/fastinfoset/stax/events/DTDEvent.java | 2 +-
.../sun/xml/internal/fastinfoset/stax/events/EmptyIterator.java | 2 +-
.../xml/internal/fastinfoset/stax/events/EndDocumentEvent.java | 2 +-
.../xml/internal/fastinfoset/stax/events/EndElementEvent.java | 2 +-
.../internal/fastinfoset/stax/events/EntityDeclarationImpl.java | 2 +-
.../internal/fastinfoset/stax/events/EntityReferenceEvent.java | 2 +-
.../com/sun/xml/internal/fastinfoset/stax/events/EventBase.java | 2 +-
.../sun/xml/internal/fastinfoset/stax/events/NamespaceBase.java | 2 +-
.../fastinfoset/stax/events/ProcessingInstructionEvent.java | 2 +-
.../sun/xml/internal/fastinfoset/stax/events/ReadIterator.java | 2 +-
.../fastinfoset/stax/events/StAXEventAllocatorBase.java | 2 +-
.../xml/internal/fastinfoset/stax/events/StAXEventReader.java | 2 +-
.../xml/internal/fastinfoset/stax/events/StAXEventWriter.java | 2 +-
.../xml/internal/fastinfoset/stax/events/StAXFilteredEvent.java | 2 +-
.../internal/fastinfoset/stax/events/StartDocumentEvent.java | 2 +-
.../com/sun/xml/internal/fastinfoset/stax/events/Util.java | 2 +-
.../sun/xml/internal/fastinfoset/stax/events/XMLConstants.java | 2 +-
.../xml/internal/fastinfoset/stax/factory/StAXEventFactory.java | 2 +-
.../xml/internal/fastinfoset/stax/factory/StAXInputFactory.java | 2 +-
.../xml/internal/fastinfoset/stax/util/StAXFilteredParser.java | 2 +-
.../xml/internal/fastinfoset/stax/util/StAXParserWrapper.java | 2 +-
.../fastinfoset/tools/FI_DOM_Or_XML_DOM_SAX_SAXEvent.java | 2 +-
.../fastinfoset/tools/FI_SAX_Or_XML_SAX_DOM_SAX_SAXEvent.java | 2 +-
.../internal/fastinfoset/tools/FI_SAX_Or_XML_SAX_SAXEvent.java | 2 +-
.../com/sun/xml/internal/fastinfoset/tools/FI_SAX_XML.java | 2 +-
.../fastinfoset/tools/FI_StAX_SAX_Or_XML_SAX_SAXEvent.java | 2 +-
.../com/sun/xml/internal/fastinfoset/tools/PrintTable.java | 2 +-
.../com/sun/xml/internal/fastinfoset/tools/SAX2StAXWriter.java | 2 +-
.../com/sun/xml/internal/fastinfoset/tools/StAX2SAXReader.java | 2 +-
.../sun/xml/internal/fastinfoset/tools/VocabularyGenerator.java | 2 +-
.../com/sun/xml/internal/fastinfoset/tools/XML_DOM_FI.java | 2 +-
.../com/sun/xml/internal/fastinfoset/tools/XML_DOM_SAX_FI.java | 2 +-
.../com/sun/xml/internal/fastinfoset/tools/XML_SAX_FI.java | 2 +-
.../com/sun/xml/internal/fastinfoset/tools/XML_SAX_StAX_FI.java | 2 +-
.../com/sun/xml/internal/fastinfoset/util/CharArray.java | 2 +-
.../com/sun/xml/internal/fastinfoset/util/CharArrayArray.java | 2 +-
.../com/sun/xml/internal/fastinfoset/util/CharArrayIntMap.java | 2 +-
.../com/sun/xml/internal/fastinfoset/util/CharArrayString.java | 2 +-
.../xml/internal/fastinfoset/util/ContiguousCharArrayArray.java | 2 +-
.../internal/fastinfoset/util/DuplicateAttributeVerifier.java | 2 +-
.../xml/internal/fastinfoset/util/FixedEntryStringIntMap.java | 2 +-
.../com/sun/xml/internal/fastinfoset/util/KeyIntMap.java | 2 +-
.../internal/fastinfoset/util/LocalNameQualifiedNamesMap.java | 2 +-
.../fastinfoset/util/NamespaceContextImplementation.java | 2 +-
.../com/sun/xml/internal/fastinfoset/util/PrefixArray.java | 2 +-
.../sun/xml/internal/fastinfoset/util/QualifiedNameArray.java | 2 +-
.../com/sun/xml/internal/fastinfoset/util/StringArray.java | 2 +-
.../com/sun/xml/internal/fastinfoset/util/StringIntMap.java | 2 +-
.../com/sun/xml/internal/fastinfoset/util/ValueArray.java | 2 +-
.../internal/fastinfoset/util/ValueArrayResourceException.java | 2 +-
.../sun/xml/internal/fastinfoset/vocab/ParserVocabulary.java | 2 +-
.../xml/internal/fastinfoset/vocab/SerializerVocabulary.java | 2 +-
.../com/sun/xml/internal/fastinfoset/vocab/Vocabulary.java | 2 +-
.../xml/internal/org/jvnet/fastinfoset/EncodingAlgorithm.java | 2 +-
.../org/jvnet/fastinfoset/EncodingAlgorithmException.java | 2 +-
.../org/jvnet/fastinfoset/EncodingAlgorithmIndexes.java | 2 +-
.../xml/internal/org/jvnet/fastinfoset/ExternalVocabulary.java | 2 +-
.../internal/org/jvnet/fastinfoset/FastInfosetException.java | 2 +-
.../xml/internal/org/jvnet/fastinfoset/FastInfosetParser.java | 2 +-
.../xml/internal/org/jvnet/fastinfoset/FastInfosetResult.java | 2 +-
.../internal/org/jvnet/fastinfoset/FastInfosetSerializer.java | 2 +-
.../xml/internal/org/jvnet/fastinfoset/FastInfosetSource.java | 2 +-
.../xml/internal/org/jvnet/fastinfoset/RestrictedAlphabet.java | 2 +-
.../com/sun/xml/internal/org/jvnet/fastinfoset/Vocabulary.java | 2 +-
.../org/jvnet/fastinfoset/VocabularyApplicationData.java | 2 +-
.../org/jvnet/fastinfoset/sax/EncodingAlgorithmAttributes.java | 2 +-
.../jvnet/fastinfoset/sax/EncodingAlgorithmContentHandler.java | 2 +-
.../org/jvnet/fastinfoset/sax/ExtendedContentHandler.java | 2 +-
.../internal/org/jvnet/fastinfoset/sax/FastInfosetReader.java | 2 +-
.../internal/org/jvnet/fastinfoset/sax/FastInfosetWriter.java | 2 +-
.../org/jvnet/fastinfoset/sax/PrimitiveTypeContentHandler.java | 2 +-
.../jvnet/fastinfoset/sax/RestrictedAlphabetContentHandler.java | 2 +-
.../sax/helpers/EncodingAlgorithmAttributesImpl.java | 2 +-
.../fastinfoset/sax/helpers/FastInfosetDefaultHandler.java | 2 +-
.../org/jvnet/fastinfoset/stax/FastInfosetStreamReader.java | 2 +-
.../jvnet/fastinfoset/stax/LowLevelFastInfosetStreamWriter.java | 2 +-
.../com/sun/xml/internal/rngom/ast/builder/Annotations.java | 2 +-
.../com/sun/xml/internal/rngom/ast/builder/BuildException.java | 2 +-
.../com/sun/xml/internal/rngom/ast/builder/CommentList.java | 2 +-
.../sun/xml/internal/rngom/ast/builder/DataPatternBuilder.java | 2 +-
.../com/sun/xml/internal/rngom/ast/builder/Div.java | 2 +-
.../internal/rngom/ast/builder/ElementAnnotationBuilder.java | 2 +-
.../com/sun/xml/internal/rngom/ast/builder/Grammar.java | 2 +-
.../com/sun/xml/internal/rngom/ast/builder/GrammarSection.java | 2 +-
.../com/sun/xml/internal/rngom/ast/builder/Include.java | 2 +-
.../com/sun/xml/internal/rngom/ast/builder/IncludedGrammar.java | 2 +-
.../sun/xml/internal/rngom/ast/builder/NameClassBuilder.java | 2 +-
.../com/sun/xml/internal/rngom/ast/builder/SchemaBuilder.java | 2 +-
.../com/sun/xml/internal/rngom/ast/builder/Scope.java | 2 +-
.../com/sun/xml/internal/rngom/ast/om/Location.java | 2 +-
.../sun/xml/internal/rngom/ast/om/ParsedElementAnnotation.java | 2 +-
.../com/sun/xml/internal/rngom/ast/om/ParsedNameClass.java | 2 +-
.../com/sun/xml/internal/rngom/ast/om/ParsedPattern.java | 2 +-
.../sun/xml/internal/rngom/ast/util/CheckingSchemaBuilder.java | 2 +-
.../com/sun/xml/internal/rngom/ast/util/LocatorImpl.java | 2 +-
.../com/sun/xml/internal/rngom/ast/util/package.html | 2 +-
.../com/sun/xml/internal/rngom/binary/AfterPattern.java | 2 +-
.../com/sun/xml/internal/rngom/binary/Alphabet.java | 2 +-
.../com/sun/xml/internal/rngom/binary/AttributePattern.java | 2 +-
.../com/sun/xml/internal/rngom/binary/BinaryPattern.java | 2 +-
.../com/sun/xml/internal/rngom/binary/ChoicePattern.java | 2 +-
.../com/sun/xml/internal/rngom/binary/DataExceptPattern.java | 2 +-
.../com/sun/xml/internal/rngom/binary/DataPattern.java | 2 +-
.../xml/internal/rngom/binary/DuplicateAttributeDetector.java | 2 +-
.../com/sun/xml/internal/rngom/binary/ElementPattern.java | 2 +-
.../com/sun/xml/internal/rngom/binary/EmptyPattern.java | 2 +-
.../com/sun/xml/internal/rngom/binary/ErrorPattern.java | 2 +-
.../com/sun/xml/internal/rngom/binary/GroupPattern.java | 2 +-
.../com/sun/xml/internal/rngom/binary/InterleavePattern.java | 2 +-
.../com/sun/xml/internal/rngom/binary/ListPattern.java | 2 +-
.../com/sun/xml/internal/rngom/binary/Messages.properties | 2 +-
.../com/sun/xml/internal/rngom/binary/NotAllowedPattern.java | 2 +-
.../com/sun/xml/internal/rngom/binary/OneOrMorePattern.java | 2 +-
.../com/sun/xml/internal/rngom/binary/Pattern.java | 2 +-
.../com/sun/xml/internal/rngom/binary/PatternBuilder.java | 2 +-
.../com/sun/xml/internal/rngom/binary/PatternInterner.java | 2 +-
.../com/sun/xml/internal/rngom/binary/RefPattern.java | 2 +-
.../internal/rngom/binary/RestrictionViolationException.java | 2 +-
.../com/sun/xml/internal/rngom/binary/SchemaPatternBuilder.java | 2 +-
.../com/sun/xml/internal/rngom/binary/StringPattern.java | 2 +-
.../com/sun/xml/internal/rngom/binary/TextPattern.java | 2 +-
.../com/sun/xml/internal/rngom/binary/ValuePattern.java | 2 +-
.../com/sun/xml/internal/rngom/binary/package.html | 2 +-
.../xml/internal/rngom/binary/visitor/ChildElementFinder.java | 2 +-
.../sun/xml/internal/rngom/binary/visitor/PatternFunction.java | 2 +-
.../sun/xml/internal/rngom/binary/visitor/PatternVisitor.java | 2 +-
.../sun/xml/internal/rngom/binary/visitor/PatternWalker.java | 2 +-
.../com/sun/xml/internal/rngom/digested/Annotation.java | 2 +-
.../com/sun/xml/internal/rngom/digested/CommentListImpl.java | 2 +-
.../com/sun/xml/internal/rngom/digested/DAnnotation.java | 2 +-
.../com/sun/xml/internal/rngom/digested/DAttributePattern.java | 2 +-
.../com/sun/xml/internal/rngom/digested/DChoicePattern.java | 2 +-
.../com/sun/xml/internal/rngom/digested/DContainerPattern.java | 2 +-
.../com/sun/xml/internal/rngom/digested/DDefine.java | 2 +-
.../com/sun/xml/internal/rngom/digested/DElementPattern.java | 2 +-
.../com/sun/xml/internal/rngom/digested/DEmptyPattern.java | 2 +-
.../com/sun/xml/internal/rngom/digested/DGrammarPattern.java | 2 +-
.../com/sun/xml/internal/rngom/digested/DGroupPattern.java | 2 +-
.../com/sun/xml/internal/rngom/digested/DInterleavePattern.java | 2 +-
.../com/sun/xml/internal/rngom/digested/DListPattern.java | 2 +-
.../com/sun/xml/internal/rngom/digested/DMixedPattern.java | 2 +-
.../com/sun/xml/internal/rngom/digested/DNotAllowedPattern.java | 2 +-
.../com/sun/xml/internal/rngom/digested/DOMPrinter.java | 2 +-
.../com/sun/xml/internal/rngom/digested/DOneOrMorePattern.java | 2 +-
.../com/sun/xml/internal/rngom/digested/DOptionalPattern.java | 2 +-
.../com/sun/xml/internal/rngom/digested/DPatternVisitor.java | 2 +-
.../com/sun/xml/internal/rngom/digested/DPatternWalker.java | 2 +-
.../com/sun/xml/internal/rngom/digested/DRefPattern.java | 2 +-
.../com/sun/xml/internal/rngom/digested/DSchemaBuilderImpl.java | 2 +-
.../com/sun/xml/internal/rngom/digested/DTextPattern.java | 2 +-
.../com/sun/xml/internal/rngom/digested/DUnaryPattern.java | 2 +-
.../com/sun/xml/internal/rngom/digested/DValuePattern.java | 2 +-
.../com/sun/xml/internal/rngom/digested/DXmlTokenPattern.java | 2 +-
.../com/sun/xml/internal/rngom/digested/DZeroOrMorePattern.java | 2 +-
.../internal/rngom/digested/ElementAnnotationBuilderImpl.java | 2 +-
.../com/sun/xml/internal/rngom/digested/ElementWrapper.java | 2 +-
.../com/sun/xml/internal/rngom/digested/IncludeImpl.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/rngom/digested/Main.java | 2 +-
.../com/sun/xml/internal/rngom/digested/PatternParseable.java | 2 +-
.../com/sun/xml/internal/rngom/digested/package.html | 2 +-
.../sun/xml/internal/rngom/dt/CachedDatatypeLibraryFactory.java | 2 +-
.../xml/internal/rngom/dt/CascadingDatatypeLibraryFactory.java | 2 +-
.../internal/rngom/dt/DoNothingDatatypeLibraryFactoryImpl.java | 2 +-
.../xml/internal/rngom/dt/builtin/BuiltinDatatypeBuilder.java | 2 +-
.../xml/internal/rngom/dt/builtin/BuiltinDatatypeLibrary.java | 2 +-
.../rngom/dt/builtin/BuiltinDatatypeLibraryFactory.java | 2 +-
.../internal/rngom/dt/builtin/CompatibilityDatatypeLibrary.java | 2 +-
.../com/sun/xml/internal/rngom/dt/builtin/Messages.properties | 2 +-
.../com/sun/xml/internal/rngom/dt/builtin/package.html | 2 +-
.../com/sun/xml/internal/rngom/nc/AnyNameExceptNameClass.java | 2 +-
.../com/sun/xml/internal/rngom/nc/ChoiceNameClass.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/rngom/nc/NameClass.java | 2 +-
.../com/sun/xml/internal/rngom/nc/NameClassVisitor.java | 2 +-
.../com/sun/xml/internal/rngom/nc/NameClassWalker.java | 2 +-
.../com/sun/xml/internal/rngom/nc/NsNameClass.java | 2 +-
.../com/sun/xml/internal/rngom/nc/NsNameExceptNameClass.java | 2 +-
.../com/sun/xml/internal/rngom/nc/NullNameClass.java | 2 +-
.../com/sun/xml/internal/rngom/nc/OverlapDetector.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/rngom/nc/package.html | 2 +-
.../jaxws_classes/com/sun/xml/internal/rngom/parse/Context.java | 2 +-
.../sun/xml/internal/rngom/parse/IllegalSchemaException.java | 2 +-
.../com/sun/xml/internal/rngom/parse/Messages.properties | 2 +-
.../com/sun/xml/internal/rngom/parse/Parseable.java | 2 +-
.../sun/xml/internal/rngom/parse/compact/CompactParseable.java | 2 +-
.../com/sun/xml/internal/rngom/parse/compact/CompactSyntax.java | 2 +-
.../internal/rngom/parse/compact/CompactSyntaxConstants.java | 2 +-
.../internal/rngom/parse/compact/CompactSyntaxTokenManager.java | 2 +-
.../com/sun/xml/internal/rngom/parse/compact/EOFException.java | 2 +-
.../xml/internal/rngom/parse/compact/EscapeSyntaxException.java | 2 +-
.../sun/xml/internal/rngom/parse/compact/JavaCharStream.java | 2 +-
.../sun/xml/internal/rngom/parse/compact/Messages.properties | 2 +-
.../sun/xml/internal/rngom/parse/compact/ParseException.java | 2 +-
.../com/sun/xml/internal/rngom/parse/compact/Token.java | 2 +-
.../com/sun/xml/internal/rngom/parse/compact/TokenMgrError.java | 2 +-
.../com/sun/xml/internal/rngom/parse/host/AnnotationsHost.java | 2 +-
.../com/sun/xml/internal/rngom/parse/host/Base.java | 2 +-
.../com/sun/xml/internal/rngom/parse/host/CommentListHost.java | 2 +-
.../xml/internal/rngom/parse/host/DataPatternBuilderHost.java | 2 +-
.../com/sun/xml/internal/rngom/parse/host/DivHost.java | 2 +-
.../internal/rngom/parse/host/ElementAnnotationBuilderHost.java | 2 +-
.../com/sun/xml/internal/rngom/parse/host/GrammarHost.java | 2 +-
.../sun/xml/internal/rngom/parse/host/GrammarSectionHost.java | 2 +-
.../com/sun/xml/internal/rngom/parse/host/IncludeHost.java | 2 +-
.../com/sun/xml/internal/rngom/parse/host/LocationHost.java | 2 +-
.../sun/xml/internal/rngom/parse/host/NameClassBuilderHost.java | 2 +-
.../internal/rngom/parse/host/ParsedElementAnnotationHost.java | 2 +-
.../sun/xml/internal/rngom/parse/host/ParsedNameClassHost.java | 2 +-
.../sun/xml/internal/rngom/parse/host/ParsedPatternHost.java | 2 +-
.../sun/xml/internal/rngom/parse/host/SchemaBuilderHost.java | 2 +-
.../com/sun/xml/internal/rngom/parse/host/ScopeHost.java | 2 +-
.../com/sun/xml/internal/rngom/parse/host/package.html | 2 +-
.../com/sun/xml/internal/rngom/parse/xml/DtdContext.java | 2 +-
.../com/sun/xml/internal/rngom/parse/xml/Messages.properties | 2 +-
.../com/sun/xml/internal/rngom/parse/xml/SAXParseable.java | 2 +-
.../com/sun/xml/internal/rngom/util/Localizer.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/rngom/util/Uri.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/rngom/util/Utf16.java | 2 +-
.../sun/xml/internal/rngom/xml/sax/AbstractLexicalHandler.java | 2 +-
.../com/sun/xml/internal/rngom/xml/sax/XMLReaderCreator.java | 2 +-
.../com/sun/xml/internal/rngom/xml/sax/XmlBaseHandler.java | 2 +-
.../com/sun/xml/internal/rngom/xml/util/EncodingMap.java | 2 +-
.../com/sun/xml/internal/rngom/xml/util/Naming.java | 2 +-
.../sun/xml/internal/rngom/xml/util/WellKnownNamespaces.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/txw2/Attribute.java | 2 +-
.../share/jaxws_classes/com/sun/xml/internal/txw2/Cdata.java | 2 +-
.../share/jaxws_classes/com/sun/xml/internal/txw2/Comment.java | 2 +-
.../com/sun/xml/internal/txw2/ContainerElement.java | 2 +-
.../share/jaxws_classes/com/sun/xml/internal/txw2/Content.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/txw2/ContentVisitor.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/txw2/DatatypeWriter.java | 2 +-
.../share/jaxws_classes/com/sun/xml/internal/txw2/Document.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/txw2/EndDocument.java | 2 +-
.../share/jaxws_classes/com/sun/xml/internal/txw2/EndTag.java | 2 +-
.../com/sun/xml/internal/txw2/IllegalAnnotationException.java | 2 +-
.../com/sun/xml/internal/txw2/IllegalSignatureException.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/txw2/NamespaceDecl.java | 2 +-
.../com/sun/xml/internal/txw2/NamespaceResolver.java | 2 +-
.../com/sun/xml/internal/txw2/NamespaceSupport.java | 2 +-
.../share/jaxws_classes/com/sun/xml/internal/txw2/Pcdata.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/txw2/StartDocument.java | 2 +-
.../share/jaxws_classes/com/sun/xml/internal/txw2/StartTag.java | 2 +-
.../src/share/jaxws_classes/com/sun/xml/internal/txw2/TXW.java | 2 +-
.../src/share/jaxws_classes/com/sun/xml/internal/txw2/Text.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/txw2/TxwException.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/txw2/TypedXmlWriter.java | 2 +-
.../com/sun/xml/internal/txw2/annotation/XmlAttribute.java | 2 +-
.../com/sun/xml/internal/txw2/annotation/XmlCDATA.java | 2 +-
.../com/sun/xml/internal/txw2/annotation/XmlElement.java | 2 +-
.../com/sun/xml/internal/txw2/annotation/XmlNamespace.java | 2 +-
.../com/sun/xml/internal/txw2/annotation/XmlValue.java | 2 +-
.../com/sun/xml/internal/txw2/annotation/package.html | 2 +-
.../sun/xml/internal/txw2/output/CharacterEscapeHandler.java | 2 +-
.../com/sun/xml/internal/txw2/output/DataWriter.java | 2 +-
.../sun/xml/internal/txw2/output/DelegatingXMLStreamWriter.java | 2 +-
.../com/sun/xml/internal/txw2/output/DomSerializer.java | 2 +-
.../com/sun/xml/internal/txw2/output/DumbEscapeHandler.java | 2 +-
.../com/sun/xml/internal/txw2/output/DumpSerializer.java | 2 +-
.../com/sun/xml/internal/txw2/output/IndentingXMLFilter.java | 2 +-
.../sun/xml/internal/txw2/output/IndentingXMLStreamWriter.java | 2 +-
.../com/sun/xml/internal/txw2/output/ResultFactory.java | 2 +-
.../com/sun/xml/internal/txw2/output/SaxSerializer.java | 2 +-
.../com/sun/xml/internal/txw2/output/StaxSerializer.java | 2 +-
.../com/sun/xml/internal/txw2/output/StreamSerializer.java | 2 +-
.../com/sun/xml/internal/txw2/output/TXWResult.java | 2 +-
.../com/sun/xml/internal/txw2/output/TXWSerializer.java | 2 +-
.../com/sun/xml/internal/txw2/output/XmlSerializer.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/txw2/output/package.html | 2 +-
.../share/jaxws_classes/com/sun/xml/internal/txw2/package.html | 2 +-
.../xml/internal/ws/org/objectweb/asm/AnnotationVisitor.java | 2 +-
.../sun/xml/internal/ws/org/objectweb/asm/AnnotationWriter.java | 2 +-
.../com/sun/xml/internal/ws/org/objectweb/asm/Attribute.java | 2 +-
.../com/sun/xml/internal/ws/org/objectweb/asm/ByteVector.java | 2 +-
.../com/sun/xml/internal/ws/org/objectweb/asm/ClassReader.java | 2 +-
.../com/sun/xml/internal/ws/org/objectweb/asm/ClassVisitor.java | 2 +-
.../com/sun/xml/internal/ws/org/objectweb/asm/ClassWriter.java | 2 +-
.../com/sun/xml/internal/ws/org/objectweb/asm/Edge.java | 2 +-
.../com/sun/xml/internal/ws/org/objectweb/asm/FieldVisitor.java | 2 +-
.../com/sun/xml/internal/ws/org/objectweb/asm/FieldWriter.java | 2 +-
.../com/sun/xml/internal/ws/org/objectweb/asm/Frame.java | 2 +-
.../com/sun/xml/internal/ws/org/objectweb/asm/Handler.java | 2 +-
.../com/sun/xml/internal/ws/org/objectweb/asm/Item.java | 2 +-
.../com/sun/xml/internal/ws/org/objectweb/asm/Label.java | 2 +-
.../sun/xml/internal/ws/org/objectweb/asm/MethodVisitor.java | 2 +-
.../com/sun/xml/internal/ws/org/objectweb/asm/MethodWriter.java | 2 +-
.../com/sun/xml/internal/ws/org/objectweb/asm/Opcodes.java | 2 +-
.../com/sun/xml/internal/ws/org/objectweb/asm/Type.java | 2 +-
.../com/sun/xml/internal/ws/policy/AssertionSet.java | 2 +-
.../xml/internal/ws/policy/AssertionValidationProcessor.java | 2 +-
.../com/sun/xml/internal/ws/policy/ComplexAssertion.java | 2 +-
.../xml/internal/ws/policy/EffectiveAlternativeSelector.java | 2 +-
.../com/sun/xml/internal/ws/policy/EffectivePolicyModifier.java | 2 +-
.../com/sun/xml/internal/ws/policy/NestedPolicy.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/ws/policy/Policy.java | 2 +-
.../com/sun/xml/internal/ws/policy/PolicyAssertion.java | 2 +-
.../com/sun/xml/internal/ws/policy/PolicyConstants.java | 2 +-
.../com/sun/xml/internal/ws/policy/PolicyException.java | 2 +-
.../com/sun/xml/internal/ws/policy/PolicyIntersector.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/ws/policy/PolicyMap.java | 2 +-
.../com/sun/xml/internal/ws/policy/PolicyMapExtender.java | 2 +-
.../com/sun/xml/internal/ws/policy/PolicyMapKey.java | 2 +-
.../com/sun/xml/internal/ws/policy/PolicyMapKeyHandler.java | 2 +-
.../com/sun/xml/internal/ws/policy/PolicyMapMutator.java | 2 +-
.../com/sun/xml/internal/ws/policy/PolicyMapUtil.java | 2 +-
.../com/sun/xml/internal/ws/policy/PolicyMerger.java | 2 +-
.../com/sun/xml/internal/ws/policy/PolicyScope.java | 2 +-
.../com/sun/xml/internal/ws/policy/PolicySubject.java | 2 +-
.../com/sun/xml/internal/ws/policy/SimpleAssertion.java | 2 +-
.../com/sun/xml/internal/ws/policy/package-info.java | 2 +-
.../xml/internal/ws/policy/privateutil/Localization.properties | 2 +-
.../internal/ws/policy/privateutil/LocalizationMessages.java | 2 +-
.../sun/xml/internal/ws/policy/privateutil/PolicyLogger.java | 2 +-
.../ws/policy/privateutil/RuntimePolicyUtilsException.java | 2 +-
.../ws/policy/privateutil/ServiceConfigurationError.java | 2 +-
.../sun/xml/internal/ws/policy/privateutil/ServiceFinder.java | 2 +-
.../sun/xml/internal/ws/policy/privateutil/package-info.java | 2 +-
.../sun/xml/internal/ws/policy/sourcemodel/AssertionData.java | 2 +-
.../internal/ws/policy/sourcemodel/CompactModelGenerator.java | 2 +-
.../ws/policy/sourcemodel/DefaultPolicyAssertionCreator.java | 2 +-
.../com/sun/xml/internal/ws/policy/sourcemodel/ModelNode.java | 2 +-
.../ws/policy/sourcemodel/NormalizedModelGenerator.java | 2 +-
.../internal/ws/policy/sourcemodel/PolicyModelGenerator.java | 2 +-
.../internal/ws/policy/sourcemodel/PolicyModelMarshaller.java | 2 +-
.../internal/ws/policy/sourcemodel/PolicyModelTranslator.java | 2 +-
.../internal/ws/policy/sourcemodel/PolicyModelUnmarshaller.java | 2 +-
.../xml/internal/ws/policy/sourcemodel/PolicyReferenceData.java | 2 +-
.../xml/internal/ws/policy/sourcemodel/PolicySourceModel.java | 2 +-
.../ws/policy/sourcemodel/PolicySourceModelContext.java | 2 +-
.../ws/policy/sourcemodel/XmlPolicyModelMarshaller.java | 2 +-
.../ws/policy/sourcemodel/XmlPolicyModelUnmarshaller.java | 2 +-
.../sourcemodel/attach/ExternalAttachmentsUnmarshaller.java | 2 +-
.../xml/internal/ws/policy/sourcemodel/attach/package-info.java | 2 +-
.../sun/xml/internal/ws/policy/sourcemodel/package-info.java | 2 +-
.../ws/policy/sourcemodel/wspolicy/NamespaceVersion.java | 2 +-
.../xml/internal/ws/policy/sourcemodel/wspolicy/XmlToken.java | 2 +-
.../sun/xml/internal/ws/policy/spi/AbstractQNameValidator.java | 2 +-
.../xml/internal/ws/policy/spi/AssertionCreationException.java | 2 +-
.../sun/xml/internal/ws/policy/spi/PolicyAssertionCreator.java | 2 +-
.../xml/internal/ws/policy/spi/PolicyAssertionValidator.java | 2 +-
.../com/sun/xml/internal/ws/policy/spi/PrefixMapper.java | 2 +-
.../com/sun/xml/internal/ws/policy/spi/package-info.java | 2 +-
.../xml/internal/ws/policy/subject/PolicyMapKeyConverter.java | 2 +-
.../sun/xml/internal/ws/policy/subject/WsdlBindingSubject.java | 2 +-
.../com/sun/xml/internal/ws/policy/subject/package-info.java | 2 +-
.../com/sun/xml/internal/xsom/ForeignAttributes.java | 2 +-
.../src/share/jaxws_classes/com/sun/xml/internal/xsom/SCD.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/xsom/XSAnnotation.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/xsom/XSAttContainer.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/xsom/XSAttGroupDecl.java | 2 +-
.../com/sun/xml/internal/xsom/XSAttributeDecl.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/xsom/XSAttributeUse.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/xsom/XSComplexType.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/xsom/XSComponent.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/xsom/XSContentType.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/xsom/XSDeclaration.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/xsom/XSElementDecl.java | 2 +-
.../share/jaxws_classes/com/sun/xml/internal/xsom/XSFacet.java | 2 +-
.../com/sun/xml/internal/xsom/XSIdentityConstraint.java | 2 +-
.../com/sun/xml/internal/xsom/XSListSimpleType.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/xsom/XSModelGroup.java | 2 +-
.../com/sun/xml/internal/xsom/XSModelGroupDecl.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/xsom/XSNotation.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/xsom/XSParticle.java | 2 +-
.../com/sun/xml/internal/xsom/XSRestrictionSimpleType.java | 2 +-
.../share/jaxws_classes/com/sun/xml/internal/xsom/XSSchema.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/xsom/XSSchemaSet.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/xsom/XSSimpleType.java | 2 +-
.../share/jaxws_classes/com/sun/xml/internal/xsom/XSTerm.java | 2 +-
.../share/jaxws_classes/com/sun/xml/internal/xsom/XSType.java | 2 +-
.../com/sun/xml/internal/xsom/XSUnionSimpleType.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/xsom/XSVariety.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/xsom/XSWildcard.java | 2 +-
.../share/jaxws_classes/com/sun/xml/internal/xsom/XSXPath.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/xsom/XmlString.java | 2 +-
.../com/sun/xml/internal/xsom/impl/AnnotationImpl.java | 2 +-
.../com/sun/xml/internal/xsom/impl/AttGroupDeclImpl.java | 2 +-
.../com/sun/xml/internal/xsom/impl/AttributeDeclImpl.java | 2 +-
.../com/sun/xml/internal/xsom/impl/AttributeUseImpl.java | 2 +-
.../com/sun/xml/internal/xsom/impl/AttributesHolder.java | 2 +-
.../com/sun/xml/internal/xsom/impl/ComplexTypeImpl.java | 2 +-
.../com/sun/xml/internal/xsom/impl/ComponentImpl.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/xsom/impl/Const.java | 2 +-
.../com/sun/xml/internal/xsom/impl/ContentTypeImpl.java | 2 +-
.../com/sun/xml/internal/xsom/impl/DeclarationImpl.java | 2 +-
.../com/sun/xml/internal/xsom/impl/ElementDecl.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/xsom/impl/EmptyImpl.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/xsom/impl/FacetImpl.java | 2 +-
.../com/sun/xml/internal/xsom/impl/ForeignAttributesImpl.java | 2 +-
.../com/sun/xml/internal/xsom/impl/IdentityConstraintImpl.java | 2 +-
.../com/sun/xml/internal/xsom/impl/ListSimpleTypeImpl.java | 2 +-
.../com/sun/xml/internal/xsom/impl/ModelGroupDeclImpl.java | 2 +-
.../com/sun/xml/internal/xsom/impl/ModelGroupImpl.java | 2 +-
.../com/sun/xml/internal/xsom/impl/NotationImpl.java | 2 +-
.../com/sun/xml/internal/xsom/impl/ParticleImpl.java | 2 +-
.../share/jaxws_classes/com/sun/xml/internal/xsom/impl/Ref.java | 2 +-
.../sun/xml/internal/xsom/impl/RestrictionSimpleTypeImpl.java | 2 +-
.../com/sun/xml/internal/xsom/impl/SchemaImpl.java | 2 +-
.../com/sun/xml/internal/xsom/impl/SchemaSetImpl.java | 2 +-
.../com/sun/xml/internal/xsom/impl/SimpleTypeImpl.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/xsom/impl/UName.java | 2 +-
.../com/sun/xml/internal/xsom/impl/UnionSimpleTypeImpl.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/xsom/impl/Util.java | 2 +-
.../com/sun/xml/internal/xsom/impl/WildcardImpl.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/xsom/impl/XPathImpl.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/xsom/impl/package.html | 2 +-
.../com/sun/xml/internal/xsom/impl/parser/BaseContentRef.java | 2 +-
.../xml/internal/xsom/impl/parser/DefaultAnnotationParser.java | 2 +-
.../com/sun/xml/internal/xsom/impl/parser/DelayedRef.java | 2 +-
.../sun/xml/internal/xsom/impl/parser/Messages_ja.properties | 2 +-
.../com/sun/xml/internal/xsom/impl/parser/NGCCRuntimeEx.java | 2 +-
.../com/sun/xml/internal/xsom/impl/parser/ParserContext.java | 2 +-
.../com/sun/xml/internal/xsom/impl/parser/Patch.java | 2 +-
.../com/sun/xml/internal/xsom/impl/parser/PatcherManager.java | 2 +-
.../sun/xml/internal/xsom/impl/parser/SchemaDocumentImpl.java | 2 +-
.../xml/internal/xsom/impl/parser/SubstGroupBaseTypeRef.java | 2 +-
.../com/sun/xml/internal/xsom/impl/parser/datatypes.xsd | 2 +-
.../com/sun/xml/internal/xsom/impl/parser/package.html | 2 +-
.../sun/xml/internal/xsom/impl/parser/state/AttributesImpl.java | 2 +-
.../xml/internal/xsom/impl/parser/state/NGCCEventReceiver.java | 2 +-
.../xml/internal/xsom/impl/parser/state/NGCCEventSource.java | 2 +-
.../sun/xml/internal/xsom/impl/parser/state/NGCCHandler.java | 2 +-
.../internal/xsom/impl/parser/state/NGCCInterleaveFilter.java | 2 +-
.../sun/xml/internal/xsom/impl/parser/state/NGCCRuntime.java | 2 +-
.../xml/internal/xsom/impl/parser/state/foreignAttributes.java | 2 +-
.../sun/xml/internal/xsom/impl/parser/state/qualification.java | 2 +-
.../com/sun/xml/internal/xsom/impl/scd/AbstractAxisImpl.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/xsom/impl/scd/Axis.java | 2 +-
.../com/sun/xml/internal/xsom/impl/scd/Iterators.java | 2 +-
.../com/sun/xml/internal/xsom/impl/scd/ParseException.java | 2 +-
.../com/sun/xml/internal/xsom/impl/scd/SCDImpl.java | 2 +-
.../com/sun/xml/internal/xsom/impl/scd/SCDParser.java | 2 +-
.../com/sun/xml/internal/xsom/impl/scd/SCDParserConstants.java | 2 +-
.../sun/xml/internal/xsom/impl/scd/SCDParserTokenManager.java | 2 +-
.../com/sun/xml/internal/xsom/impl/scd/SimpleCharStream.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/xsom/impl/scd/Step.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/xsom/impl/scd/Token.java | 2 +-
.../com/sun/xml/internal/xsom/impl/scd/TokenMgrError.java | 2 +-
.../sun/xml/internal/xsom/impl/util/DraconianErrorHandler.java | 2 +-
.../sun/xml/internal/xsom/impl/util/ResourceEntityResolver.java | 2 +-
.../sun/xml/internal/xsom/impl/util/SchemaTreeTraverser.java | 2 +-
.../com/sun/xml/internal/xsom/impl/util/SchemaWriter.java | 2 +-
.../share/jaxws_classes/com/sun/xml/internal/xsom/package.html | 2 +-
.../com/sun/xml/internal/xsom/parser/AnnotationContext.java | 2 +-
.../com/sun/xml/internal/xsom/parser/AnnotationParser.java | 2 +-
.../sun/xml/internal/xsom/parser/AnnotationParserFactory.java | 2 +-
.../com/sun/xml/internal/xsom/parser/SchemaDocument.java | 2 +-
.../com/sun/xml/internal/xsom/parser/XMLParser.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/xsom/parser/package.html | 2 +-
.../com/sun/xml/internal/xsom/util/ComponentNameFunction.java | 2 +-
.../com/sun/xml/internal/xsom/util/DeferedCollection.java | 2 +-
.../com/sun/xml/internal/xsom/util/NameGetter.java | 2 +-
.../com/sun/xml/internal/xsom/util/NameGetter.properties | 2 +-
.../com/sun/xml/internal/xsom/util/SimpleTypeSet.java | 2 +-
.../com/sun/xml/internal/xsom/util/TypeClosure.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/xsom/util/TypeSet.java | 2 +-
.../jaxws_classes/com/sun/xml/internal/xsom/util/XSFinder.java | 2 +-
.../com/sun/xml/internal/xsom/util/XSFunctionFilter.java | 2 +-
.../sun/xml/internal/xsom/visitor/XSContentTypeFunction.java | 2 +-
.../com/sun/xml/internal/xsom/visitor/XSContentTypeVisitor.java | 2 +-
.../com/sun/xml/internal/xsom/visitor/XSFunction.java | 2 +-
.../com/sun/xml/internal/xsom/visitor/XSSimpleTypeFunction.java | 2 +-
.../com/sun/xml/internal/xsom/visitor/XSSimpleTypeVisitor.java | 2 +-
.../com/sun/xml/internal/xsom/visitor/XSTermFunction.java | 2 +-
.../sun/xml/internal/xsom/visitor/XSTermFunctionWithParam.java | 2 +-
.../com/sun/xml/internal/xsom/visitor/XSTermVisitor.java | 2 +-
.../com/sun/xml/internal/xsom/visitor/XSVisitor.java | 2 +-
.../com/sun/xml/internal/xsom/visitor/XSWildcardFunction.java | 2 +-
.../com/sun/xml/internal/xsom/visitor/XSWildcardVisitor.java | 2 +-
.../com/sun/xml/internal/xsom/visitor/package.html | 2 +-
jaxws/src/share/jaxws_classes/javax/jws/HandlerChain.java | 2 +-
jaxws/src/share/jaxws_classes/javax/jws/Oneway.java | 2 +-
jaxws/src/share/jaxws_classes/javax/jws/WebMethod.java | 2 +-
jaxws/src/share/jaxws_classes/javax/jws/WebParam.java | 2 +-
jaxws/src/share/jaxws_classes/javax/jws/WebResult.java | 2 +-
jaxws/src/share/jaxws_classes/javax/jws/WebService.java | 2 +-
jaxws/src/share/jaxws_classes/javax/jws/soap/InitParam.java | 2 +-
jaxws/src/share/jaxws_classes/javax/jws/soap/SOAPBinding.java | 2 +-
.../share/jaxws_classes/javax/jws/soap/SOAPMessageHandler.java | 2 +-
.../share/jaxws_classes/javax/jws/soap/SOAPMessageHandlers.java | 2 +-
jaxws/src/share/jaxws_classes/javax/xml/soap/package.html | 2 +-
jaxws/src/share/jaxws_classes/javax/xml/ws/Action.java | 2 +-
jaxws/src/share/jaxws_classes/javax/xml/ws/AsyncHandler.java | 2 +-
jaxws/src/share/jaxws_classes/javax/xml/ws/Binding.java | 2 +-
jaxws/src/share/jaxws_classes/javax/xml/ws/BindingProvider.java | 2 +-
jaxws/src/share/jaxws_classes/javax/xml/ws/BindingType.java | 2 +-
jaxws/src/share/jaxws_classes/javax/xml/ws/Dispatch.java | 2 +-
jaxws/src/share/jaxws_classes/javax/xml/ws/Endpoint.java | 2 +-
jaxws/src/share/jaxws_classes/javax/xml/ws/EndpointContext.java | 2 +-
.../src/share/jaxws_classes/javax/xml/ws/EndpointReference.java | 2 +-
jaxws/src/share/jaxws_classes/javax/xml/ws/FaultAction.java | 2 +-
jaxws/src/share/jaxws_classes/javax/xml/ws/Holder.java | 2 +-
jaxws/src/share/jaxws_classes/javax/xml/ws/LogicalMessage.java | 2 +-
.../src/share/jaxws_classes/javax/xml/ws/ProtocolException.java | 2 +-
jaxws/src/share/jaxws_classes/javax/xml/ws/Provider.java | 2 +-
jaxws/src/share/jaxws_classes/javax/xml/ws/RequestWrapper.java | 2 +-
jaxws/src/share/jaxws_classes/javax/xml/ws/RespectBinding.java | 2 +-
.../share/jaxws_classes/javax/xml/ws/RespectBindingFeature.java | 2 +-
jaxws/src/share/jaxws_classes/javax/xml/ws/Response.java | 2 +-
jaxws/src/share/jaxws_classes/javax/xml/ws/ResponseWrapper.java | 2 +-
jaxws/src/share/jaxws_classes/javax/xml/ws/Service.java | 2 +-
jaxws/src/share/jaxws_classes/javax/xml/ws/ServiceMode.java | 2 +-
jaxws/src/share/jaxws_classes/javax/xml/ws/WebEndpoint.java | 2 +-
jaxws/src/share/jaxws_classes/javax/xml/ws/WebFault.java | 2 +-
.../src/share/jaxws_classes/javax/xml/ws/WebServiceClient.java | 2 +-
.../src/share/jaxws_classes/javax/xml/ws/WebServiceContext.java | 2 +-
.../share/jaxws_classes/javax/xml/ws/WebServiceException.java | 2 +-
.../src/share/jaxws_classes/javax/xml/ws/WebServiceFeature.java | 2 +-
.../share/jaxws_classes/javax/xml/ws/WebServicePermission.java | 2 +-
.../share/jaxws_classes/javax/xml/ws/WebServiceProvider.java | 2 +-
jaxws/src/share/jaxws_classes/javax/xml/ws/WebServiceRef.java | 2 +-
.../jaxws_classes/javax/xml/ws/handler/HandlerResolver.java | 2 +-
.../jaxws_classes/javax/xml/ws/handler/LogicalHandler.java | 2 +-
.../javax/xml/ws/handler/LogicalMessageContext.java | 2 +-
.../jaxws_classes/javax/xml/ws/handler/MessageContext.java | 2 +-
.../src/share/jaxws_classes/javax/xml/ws/handler/PortInfo.java | 2 +-
jaxws/src/share/jaxws_classes/javax/xml/ws/handler/package.html | 2 +-
.../jaxws_classes/javax/xml/ws/handler/soap/SOAPHandler.java | 2 +-
.../javax/xml/ws/handler/soap/SOAPMessageContext.java | 2 +-
.../share/jaxws_classes/javax/xml/ws/handler/soap/package.html | 2 +-
.../src/share/jaxws_classes/javax/xml/ws/http/HTTPBinding.java | 2 +-
.../share/jaxws_classes/javax/xml/ws/http/HTTPException.java | 2 +-
jaxws/src/share/jaxws_classes/javax/xml/ws/http/package.html | 2 +-
jaxws/src/share/jaxws_classes/javax/xml/ws/package.html | 2 +-
jaxws/src/share/jaxws_classes/javax/xml/ws/soap/Addressing.java | 2 +-
jaxws/src/share/jaxws_classes/javax/xml/ws/soap/MTOM.java | 2 +-
.../src/share/jaxws_classes/javax/xml/ws/soap/SOAPBinding.java | 2 +-
.../jaxws_classes/javax/xml/ws/soap/SOAPFaultException.java | 2 +-
jaxws/src/share/jaxws_classes/javax/xml/ws/soap/package.html | 2 +-
jaxws/src/share/jaxws_classes/javax/xml/ws/spi/Invoker.java | 2 +-
jaxws/src/share/jaxws_classes/javax/xml/ws/spi/Provider.java | 2 +-
.../share/jaxws_classes/javax/xml/ws/spi/ServiceDelegate.java | 2 +-
.../javax/xml/ws/spi/WebServiceFeatureAnnotation.java | 2 +-
.../share/jaxws_classes/javax/xml/ws/spi/http/HttpContext.java | 2 +-
.../share/jaxws_classes/javax/xml/ws/spi/http/HttpExchange.java | 2 +-
.../share/jaxws_classes/javax/xml/ws/spi/http/HttpHandler.java | 2 +-
.../share/jaxws_classes/javax/xml/ws/spi/http/package-info.java | 2 +-
jaxws/src/share/jaxws_classes/javax/xml/ws/spi/package.html | 2 +-
.../javax/xml/ws/wsaddressing/W3CEndpointReferenceBuilder.java | 2 +-
.../jaxws_classes/javax/xml/ws/wsaddressing/package-info.java | 2 +-
.../share/jaxws_classes/javax/xml/ws/wsaddressing/package.html | 2 +-
1301 files changed, 1301 insertions(+), 1301 deletions(-)
diff --git a/jaxws/build.properties b/jaxws/build.properties
index 9240acc57f8..f2c977cd749 100644
--- a/jaxws/build.properties
+++ b/jaxws/build.properties
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2007, 2012, 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
diff --git a/jaxws/build.xml b/jaxws/build.xml
index afea552e3b8..ef0402f3b01 100644
--- a/jaxws/build.xml
+++ b/jaxws/build.xml
@@ -1,6 +1,6 @@
+
+
+
From 03045efef61726d0090b1c0b94b442df41860f64 Mon Sep 17 00:00:00 2001
From: Joe Darcy
Date: Wed, 22 Jan 2014 23:20:58 -0800
Subject: [PATCH 065/181] 8032047: Fix static lint warnings in client libraries
8032048: Add static lint warning to build of jdk repository
Reviewed-by: pchelko, serb, erikj
---
jdk/make/Setup.gmk | 4 +-
.../imageio/plugins/gif/GIFImageWriter.java | 4 +-
.../com/sun/java/browser/dom/DOMService.java | 4 +-
.../java/swing/plaf/gtk/GTKFileChooserUI.java | 6 +--
.../sun/java/swing/plaf/gtk/PangoFonts.java | 4 +-
.../sun/media/sound/MidiInDeviceProvider.java | 6 +--
.../media/sound/MidiOutDeviceProvider.java | 6 +--
.../java/awt/image/AffineTransformOp.java | 24 ++++++------
.../classes/java/awt/image/LookupOp.java | 11 +++---
.../classes/javax/swing/AbstractButton.java | 4 +-
.../javax/swing/DefaultDesktopManager.java | 6 +--
.../javax/swing/JFormattedTextField.java | 4 +-
.../plaf/metal/MetalSplitPaneDivider.java | 6 +--
.../javax/swing/text/StyledEditorKit.java | 4 +-
.../javax/swing/text/html/HTMLEditorKit.java | 4 +-
.../javax/swing/text/html/StyleSheet.java | 10 ++---
.../text/html/parser/ParserDelegator.java | 4 +-
.../javax/swing/text/rtf/RTFReader.java | 4 +-
.../share/classes/sun/awt/PlatformFont.java | 8 ++--
.../datatransfer/ClipboardTransferable.java | 5 +--
.../sun/awt/dnd/SunDragSourceContextPeer.java | 5 +--
.../share/classes/sun/awt/geom/Crossings.java | 4 +-
.../classes/sun/awt/image/ImageFetcher.java | 4 +-
.../sun/awt/image/ImageRepresentation.java | 8 ++--
.../sun/font/ExtendedTextSourceLabel.java | 6 +--
.../share/classes/sun/font/StrikeCache.java | 4 +-
.../sun/tools/tree/FinallyStatement.java | 4 +-
.../sun/tools/tree/SynchronizedStatement.java | 4 +-
.../classes/sun/tools/util/CommandLine.java | 4 +-
.../classes/sun/awt/X11/XComponentPeer.java | 4 +-
.../classes/sun/awt/X11/XDialogPeer.java | 6 +--
.../sun/awt/X11/XDnDDropTargetProtocol.java | 5 ++-
.../classes/sun/awt/X11/XEmbedCanvasPeer.java | 6 +--
.../sun/awt/X11/XEmbedServerTester.java | 4 +-
.../classes/sun/awt/X11/XFramePeer.java | 6 +--
.../solaris/classes/sun/awt/X11/XToolkit.java | 4 +-
.../classes/sun/font/FcFontConfiguration.java | 4 +-
.../classes/sun/font/X11TextRenderer.java | 6 +--
.../classes/sun/java2d/d3d/D3DBufImgOps.java | 6 +--
.../classes/sun/java2d/d3d/D3DDrawImage.java | 4 +-
.../sun/java2d/d3d/D3DGraphicsDevice.java | 4 +-
.../classes/sun/java2d/d3d/D3DPaints.java | 6 +--
.../sun/java2d/d3d/D3DSurfaceData.java | 38 +++++++++----------
.../sun/java2d/d3d/D3DSurfaceDataProxy.java | 4 +-
.../sun/java2d/windows/GDIRenderer.java | 8 ++--
.../java2d/windows/GDIWindowSurfaceData.java | 22 +++++------
46 files changed, 156 insertions(+), 152 deletions(-)
diff --git a/jdk/make/Setup.gmk b/jdk/make/Setup.gmk
index 8a81f2b868b..7095e6926f4 100644
--- a/jdk/make/Setup.gmk
+++ b/jdk/make/Setup.gmk
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -27,7 +27,7 @@ DISABLE_WARNINGS := -Xlint:all,-deprecation,-unchecked,-rawtypes,-cast,-serial,-
# To build with all warnings enabled, do the following:
# make JAVAC_WARNINGS="-Xlint:all -Xmaxwarns 10000"
-JAVAC_WARNINGS := -Xlint:-unchecked,-deprecation,-overrides,auxiliaryclass,classfile,dep-ann,divzero,empty,overloads,try,varargs -Werror
+JAVAC_WARNINGS := -Xlint:-unchecked,-deprecation,-overrides,auxiliaryclass,classfile,dep-ann,divzero,empty,overloads,static,try,varargs -Werror
# Any java code executed during a JDK build to build other parts of the JDK must be
# executed by the bootstrap JDK (probably with -Xbootclasspath/p: ) and for this
diff --git a/jdk/src/share/classes/com/sun/imageio/plugins/gif/GIFImageWriter.java b/jdk/src/share/classes/com/sun/imageio/plugins/gif/GIFImageWriter.java
index e62db31bfe5..63874ae9b24 100644
--- a/jdk/src/share/classes/com/sun/imageio/plugins/gif/GIFImageWriter.java
+++ b/jdk/src/share/classes/com/sun/imageio/plugins/gif/GIFImageWriter.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -357,7 +357,7 @@ public class GIFImageWriter extends ImageWriter {
// Undo change to interlace flag if not MODE_COPY_FROM_METADATA.
if (param != null && param.canWriteProgressive() &&
- param.getProgressiveMode() != param.MODE_COPY_FROM_METADATA) {
+ param.getProgressiveMode() != ImageWriteParam.MODE_COPY_FROM_METADATA) {
im.interlaceFlag = isProgressive;
}
diff --git a/jdk/src/share/classes/com/sun/java/browser/dom/DOMService.java b/jdk/src/share/classes/com/sun/java/browser/dom/DOMService.java
index 483fbf8280a..88b5ba7a5d2 100644
--- a/jdk/src/share/classes/com/sun/java/browser/dom/DOMService.java
+++ b/jdk/src/share/classes/com/sun/java/browser/dom/DOMService.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -46,7 +46,7 @@ public abstract class DOMService
String provider = (String) java.security.AccessController.doPrivileged(
new sun.security.action.GetPropertyAction("com.sun.java.browser.dom.DOMServiceProvider"));
- Class clazz = DOMService.class.forName("sun.plugin.dom.DOMService");
+ Class clazz = Class.forName("sun.plugin.dom.DOMService");
return (DOMService) clazz.newInstance();
}
diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/GTKFileChooserUI.java b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/GTKFileChooserUI.java
index df2b7f7cc23..6bd21545554 100644
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/GTKFileChooserUI.java
+++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/GTKFileChooserUI.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -433,7 +433,7 @@ class GTKFileChooserUI extends SynthFileChooserUI {
if (objects.length == 1
&& ((File)objects[0]).isDirectory()
&& chooser.isTraversable(((File)objects[0]))
- && (chooser.getFileSelectionMode() != chooser.DIRECTORIES_ONLY
+ && (chooser.getFileSelectionMode() != JFileChooser.DIRECTORIES_ONLY
|| !chooser.getFileSystemView().isFileSystem(((File)objects[0])))) {
setDirectorySelected(true);
setDirectory(((File)objects[0]));
@@ -458,7 +458,7 @@ class GTKFileChooserUI extends SynthFileChooserUI {
if (file != null
&& file.isDirectory()
&& chooser.isTraversable(file)
- && (chooser.getFileSelectionMode() == chooser.FILES_ONLY
+ && (chooser.getFileSelectionMode() == JFileChooser.FILES_ONLY
|| !chooser.getFileSystemView().isFileSystem(file))) {
setDirectorySelected(true);
diff --git a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/PangoFonts.java b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/PangoFonts.java
index 4794d83f7a7..fa94a57f2e3 100644
--- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/PangoFonts.java
+++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/PangoFonts.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -61,7 +61,7 @@ class PangoFonts {
GraphicsEnvironment ge =
GraphicsEnvironment.getLocalGraphicsEnvironment();
- if (!ge.isHeadless()) {
+ if (!GraphicsEnvironment.isHeadless()) {
GraphicsConfiguration gc =
ge.getDefaultScreenDevice().getDefaultConfiguration();
AffineTransform at = gc.getNormalizingTransform();
diff --git a/jdk/src/share/classes/com/sun/media/sound/MidiInDeviceProvider.java b/jdk/src/share/classes/com/sun/media/sound/MidiInDeviceProvider.java
index e15616f14f0..1f397724e3f 100644
--- a/jdk/src/share/classes/com/sun/media/sound/MidiInDeviceProvider.java
+++ b/jdk/src/share/classes/com/sun/media/sound/MidiInDeviceProvider.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -88,9 +88,9 @@ public final class MidiInDeviceProvider extends AbstractMidiDeviceProvider {
}
MidiDevice[] getDeviceCache() { return devices; }
- void setDeviceCache(MidiDevice[] devices) { this.devices = devices; }
+ void setDeviceCache(MidiDevice[] devices) { MidiInDeviceProvider.devices = devices; }
Info[] getInfoCache() { return infos; }
- void setInfoCache(Info[] infos) { this.infos = infos; }
+ void setInfoCache(Info[] infos) { MidiInDeviceProvider.infos = infos; }
// INNER CLASSES
diff --git a/jdk/src/share/classes/com/sun/media/sound/MidiOutDeviceProvider.java b/jdk/src/share/classes/com/sun/media/sound/MidiOutDeviceProvider.java
index ebe2880f026..75583ab1e65 100644
--- a/jdk/src/share/classes/com/sun/media/sound/MidiOutDeviceProvider.java
+++ b/jdk/src/share/classes/com/sun/media/sound/MidiOutDeviceProvider.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -86,9 +86,9 @@ public final class MidiOutDeviceProvider extends AbstractMidiDeviceProvider {
}
MidiDevice[] getDeviceCache() { return devices; }
- void setDeviceCache(MidiDevice[] devices) { this.devices = devices; }
+ void setDeviceCache(MidiDevice[] devices) { MidiOutDeviceProvider.devices = devices; }
Info[] getInfoCache() { return infos; }
- void setInfoCache(Info[] infos) { this.infos = infos; }
+ void setInfoCache(Info[] infos) { MidiOutDeviceProvider.infos = infos; }
// INNER CLASSES
diff --git a/jdk/src/share/classes/java/awt/image/AffineTransformOp.java b/jdk/src/share/classes/java/awt/image/AffineTransformOp.java
index 30819ba8897..9e6a66eea5c 100644
--- a/jdk/src/share/classes/java/awt/image/AffineTransformOp.java
+++ b/jdk/src/share/classes/java/awt/image/AffineTransformOp.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -110,23 +110,23 @@ public class AffineTransformOp implements BufferedImageOp, RasterOp {
this.hints = hints;
if (hints != null) {
- Object value = hints.get(hints.KEY_INTERPOLATION);
+ Object value = hints.get(RenderingHints.KEY_INTERPOLATION);
if (value == null) {
- value = hints.get(hints.KEY_RENDERING);
- if (value == hints.VALUE_RENDER_SPEED) {
+ value = hints.get(RenderingHints.KEY_RENDERING);
+ if (value == RenderingHints.VALUE_RENDER_SPEED) {
interpolationType = TYPE_NEAREST_NEIGHBOR;
}
- else if (value == hints.VALUE_RENDER_QUALITY) {
+ else if (value == RenderingHints.VALUE_RENDER_QUALITY) {
interpolationType = TYPE_BILINEAR;
}
}
- else if (value == hints.VALUE_INTERPOLATION_NEAREST_NEIGHBOR) {
+ else if (value == RenderingHints.VALUE_INTERPOLATION_NEAREST_NEIGHBOR) {
interpolationType = TYPE_NEAREST_NEIGHBOR;
}
- else if (value == hints.VALUE_INTERPOLATION_BILINEAR) {
+ else if (value == RenderingHints.VALUE_INTERPOLATION_BILINEAR) {
interpolationType = TYPE_BILINEAR;
}
- else if (value == hints.VALUE_INTERPOLATION_BICUBIC) {
+ else if (value == RenderingHints.VALUE_INTERPOLATION_BICUBIC) {
interpolationType = TYPE_BICUBIC;
}
}
@@ -235,10 +235,12 @@ public class AffineTransformOp implements BufferedImageOp, RasterOp {
{
int type = xform.getType();
boolean needTrans = ((type&
- (xform.TYPE_MASK_ROTATION|
- xform.TYPE_GENERAL_TRANSFORM))
+ (AffineTransform.TYPE_MASK_ROTATION|
+ AffineTransform.TYPE_GENERAL_TRANSFORM))
!= 0);
- if (! needTrans && type != xform.TYPE_TRANSLATION && type != xform.TYPE_IDENTITY)
+ if (! needTrans &&
+ type != AffineTransform.TYPE_TRANSLATION &&
+ type != AffineTransform.TYPE_IDENTITY)
{
double[] mtx = new double[4];
xform.getMatrix(mtx);
diff --git a/jdk/src/share/classes/java/awt/image/LookupOp.java b/jdk/src/share/classes/java/awt/image/LookupOp.java
index 288abaf8645..1b872ed9255 100644
--- a/jdk/src/share/classes/java/awt/image/LookupOp.java
+++ b/jdk/src/share/classes/java/awt/image/LookupOp.java
@@ -1,5 +1,6 @@
+
/*
- * Copyright (c) 1997, 2000, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -373,11 +374,11 @@ public class LookupOp implements BufferedImageOp, RasterOp {
int trans = cm.getTransparency();
int[] nbits = null;
if (ltable instanceof ByteLookupTable) {
- if (db.getDataType() == db.TYPE_USHORT) {
+ if (db.getDataType() == DataBuffer.TYPE_USHORT) {
// Dst raster should be of type byte
if (hasAlpha) {
nbits = new int[2];
- if (trans == cm.BITMASK) {
+ if (trans == java.awt.Transparency.BITMASK) {
nbits[1] = 1;
}
else {
@@ -393,10 +394,10 @@ public class LookupOp implements BufferedImageOp, RasterOp {
}
else if (ltable instanceof ShortLookupTable) {
transferType = DataBuffer.TYPE_USHORT;
- if (db.getDataType() == db.TYPE_BYTE) {
+ if (db.getDataType() == DataBuffer.TYPE_BYTE) {
if (hasAlpha) {
nbits = new int[2];
- if (trans == cm.BITMASK) {
+ if (trans == java.awt.Transparency.BITMASK) {
nbits[1] = 1;
}
else {
diff --git a/jdk/src/share/classes/javax/swing/AbstractButton.java b/jdk/src/share/classes/javax/swing/AbstractButton.java
index 6f75be948e9..55e0e0b3817 100644
--- a/jdk/src/share/classes/javax/swing/AbstractButton.java
+++ b/jdk/src/share/classes/javax/swing/AbstractButton.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -370,7 +370,7 @@ public abstract class AbstractButton extends JComponent implements ItemSelectabl
model.setPressed(true);
paintImmediately(new Rectangle(0,0, size.width, size.height));
try {
- Thread.currentThread().sleep(pressTime);
+ Thread.sleep(pressTime);
} catch(InterruptedException ie) {
}
model.setPressed(false);
diff --git a/jdk/src/share/classes/javax/swing/DefaultDesktopManager.java b/jdk/src/share/classes/javax/swing/DefaultDesktopManager.java
index 806ec342172..ed62d77b97c 100644
--- a/jdk/src/share/classes/javax/swing/DefaultDesktopManager.java
+++ b/jdk/src/share/classes/javax/swing/DefaultDesktopManager.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -185,8 +185,8 @@ public class DefaultDesktopManager implements DesktopManager, java.io.Serializab
if (c instanceof JLayeredPane) {
JLayeredPane lp = (JLayeredPane)c;
- int layer = lp.getLayer(f);
- lp.putLayer(desktopIcon, layer);
+ int layer = JLayeredPane.getLayer(f);
+ JLayeredPane.putLayer(desktopIcon, layer);
}
// If we are maximized we already have the normal bounds recorded
diff --git a/jdk/src/share/classes/javax/swing/JFormattedTextField.java b/jdk/src/share/classes/javax/swing/JFormattedTextField.java
index 36e637727ea..e7354a09ef5 100644
--- a/jdk/src/share/classes/javax/swing/JFormattedTextField.java
+++ b/jdk/src/share/classes/javax/swing/JFormattedTextField.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -651,7 +651,7 @@ public class JFormattedTextField extends JTextField {
JFormattedTextField.this.setValue(
JFormattedTextField.this.getValue(), true, true);
} catch (ParseException pe) {
- if (fb == JFormattedTextField.this.COMMIT_OR_REVERT) {
+ if (fb == JFormattedTextField.COMMIT_OR_REVERT) {
JFormattedTextField.this.setValue(
JFormattedTextField.this.getValue(), true, true);
}
diff --git a/jdk/src/share/classes/javax/swing/plaf/metal/MetalSplitPaneDivider.java b/jdk/src/share/classes/javax/swing/plaf/metal/MetalSplitPaneDivider.java
index 33ef49d6ad5..cdeffadaeab 100644
--- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalSplitPaneDivider.java
+++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalSplitPaneDivider.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -391,11 +391,11 @@ class MetalSplitPaneDivider extends BasicSplitPaneDivider
*/
int getOneTouchSizeFromSuper() {
- return super.ONE_TOUCH_SIZE;
+ return BasicSplitPaneDivider.ONE_TOUCH_SIZE;
}
int getOneTouchOffsetFromSuper() {
- return super.ONE_TOUCH_OFFSET;
+ return BasicSplitPaneDivider.ONE_TOUCH_OFFSET;
}
int getOrientationFromSuper() {
diff --git a/jdk/src/share/classes/javax/swing/text/StyledEditorKit.java b/jdk/src/share/classes/javax/swing/text/StyledEditorKit.java
index 57b8ac00044..43809f55ae9 100644
--- a/jdk/src/share/classes/javax/swing/text/StyledEditorKit.java
+++ b/jdk/src/share/classes/javax/swing/text/StyledEditorKit.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -90,7 +90,7 @@ public class StyledEditorKit extends DefaultEditorKit {
* @return the command list
*/
public Action[] getActions() {
- return TextAction.augmentList(super.getActions(), this.defaultActions);
+ return TextAction.augmentList(super.getActions(), defaultActions);
}
/**
diff --git a/jdk/src/share/classes/javax/swing/text/html/HTMLEditorKit.java b/jdk/src/share/classes/javax/swing/text/html/HTMLEditorKit.java
index 468f8626d2f..5ec27c0f5c1 100644
--- a/jdk/src/share/classes/javax/swing/text/html/HTMLEditorKit.java
+++ b/jdk/src/share/classes/javax/swing/text/html/HTMLEditorKit.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -433,7 +433,7 @@ public class HTMLEditorKit extends StyledEditorKit implements Accessible {
* @return the command list
*/
public Action[] getActions() {
- return TextAction.augmentList(super.getActions(), this.defaultActions);
+ return TextAction.augmentList(super.getActions(), defaultActions);
}
/**
diff --git a/jdk/src/share/classes/javax/swing/text/html/StyleSheet.java b/jdk/src/share/classes/javax/swing/text/html/StyleSheet.java
index 2e7998a6670..645327cb809 100644
--- a/jdk/src/share/classes/javax/swing/text/html/StyleSheet.java
+++ b/jdk/src/share/classes/javax/swing/text/html/StyleSheet.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -2079,8 +2079,8 @@ public class StyleSheet extends StyleContext {
// Parent view.
View v = childView.getParent();
HTMLDocument doc = (HTMLDocument)v.getDocument();
- if (doc.matchNameAttribute(v.getElement().getAttributes(),
- HTML.Tag.OL)) {
+ if (HTMLDocument.matchNameAttribute(v.getElement().getAttributes(),
+ HTML.Tag.OL)) {
childtype = CSS.Value.DECIMAL;
} else {
childtype = CSS.Value.DISC;
@@ -2473,13 +2473,13 @@ public class StyleSheet extends StyleContext {
flags |= 4;
}
else if (pos.isHorizontalPositionRelativeToSize()) {
- hPosition *= css.getFontSize(a, 12, ss);
+ hPosition *= CSS.getFontSize(a, 12, ss);
}
if (pos.isVerticalPositionRelativeToSize()) {
flags |= 8;
}
else if (pos.isVerticalPositionRelativeToFontSize()) {
- vPosition *= css.getFontSize(a, 12, ss);
+ vPosition *= CSS.getFontSize(a, 12, ss);
}
}
// Determine any repeating values.
diff --git a/jdk/src/share/classes/javax/swing/text/html/parser/ParserDelegator.java b/jdk/src/share/classes/javax/swing/text/html/parser/ParserDelegator.java
index cdea9579fe6..81f7bb2cace 100644
--- a/jdk/src/share/classes/javax/swing/text/html/parser/ParserDelegator.java
+++ b/jdk/src/share/classes/javax/swing/text/html/parser/ParserDelegator.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -84,7 +84,7 @@ public class ParserDelegator extends HTMLEditorKit.Parser implements Serializabl
in = getResourceAsStream(path);
if (in != null) {
dtd.read(new DataInputStream(new BufferedInputStream(in)));
- dtd.putDTDHash(name, dtd);
+ DTD.putDTDHash(name, dtd);
}
} catch (Exception e) {
System.out.println(e);
diff --git a/jdk/src/share/classes/javax/swing/text/rtf/RTFReader.java b/jdk/src/share/classes/javax/swing/text/rtf/RTFReader.java
index 5fd48246be8..2e58e6b95b8 100644
--- a/jdk/src/share/classes/javax/swing/text/rtf/RTFReader.java
+++ b/jdk/src/share/classes/javax/swing/text/rtf/RTFReader.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -599,7 +599,7 @@ static char[] readCharset(InputStream strm)
} catch (Exception e) {
throw new IOException("Unable to read from character set file (" + e + ")");
}
- if (ttype != in.TT_NUMBER) {
+ if (ttype != StreamTokenizer.TT_NUMBER) {
// System.out.println("Bad token: type=" + ttype + " tok=" + in.sval);
throw new IOException("Unexpected token in character set file");
// continue;
diff --git a/jdk/src/share/classes/sun/awt/PlatformFont.java b/jdk/src/share/classes/sun/awt/PlatformFont.java
index 74e75ac8496..8b34c5c443a 100644
--- a/jdk/src/share/classes/sun/awt/PlatformFont.java
+++ b/jdk/src/share/classes/sun/awt/PlatformFont.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1996, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -270,7 +270,7 @@ public abstract class PlatformFont implements FontPeer {
currentDefaultChar = data[stringIndex];
// Note that cache sizes must be a power of two!
- cacheIndex = (int)(currentDefaultChar & this.FONTCACHEMASK);
+ cacheIndex = (int)(currentDefaultChar & PlatformFont.FONTCACHEMASK);
theChar = (PlatformFontCache)getFontCache()[cacheIndex];
@@ -309,7 +309,7 @@ public abstract class PlatformFont implements FontPeer {
theChar.bb,
true);
*/
- if (currentFontDescriptor.isLE) {
+ if (FontDescriptor.isLE) {
theChar.bb.put((byte)(input[0] & 0xff));
theChar.bb.put((byte)(input[0] >>8));
} else {
@@ -420,7 +420,7 @@ public abstract class PlatformFont implements FontPeer {
// twice or return an array which will be dereferenced and gced
// right away.
if (fontCache == null) {
- fontCache = new Object[this.FONTCACHESIZE];
+ fontCache = new Object[PlatformFont.FONTCACHESIZE];
}
return fontCache;
diff --git a/jdk/src/share/classes/sun/awt/datatransfer/ClipboardTransferable.java b/jdk/src/share/classes/sun/awt/datatransfer/ClipboardTransferable.java
index 9439ec569b4..4335a3567b6 100644
--- a/jdk/src/share/classes/sun/awt/datatransfer/ClipboardTransferable.java
+++ b/jdk/src/share/classes/sun/awt/datatransfer/ClipboardTransferable.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -97,8 +97,7 @@ public class ClipboardTransferable implements Transferable {
fetchOneFlavor(clipboard, flavor, lFormat, cached_data);
}
- flavors = DataTransferer.getInstance().
- setToSortedDataFlavorArray(flavorsToData.keySet());
+ flavors = DataTransferer.setToSortedDataFlavorArray(flavorsToData.keySet());
}
} finally {
clipboard.closeClipboard();
diff --git a/jdk/src/share/classes/sun/awt/dnd/SunDragSourceContextPeer.java b/jdk/src/share/classes/sun/awt/dnd/SunDragSourceContextPeer.java
index 67c9cb4f516..ae0a642dcb2 100644
--- a/jdk/src/share/classes/sun/awt/dnd/SunDragSourceContextPeer.java
+++ b/jdk/src/share/classes/sun/awt/dnd/SunDragSourceContextPeer.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -130,8 +130,7 @@ public abstract class SunDragSourceContextPeer implements DragSourceContextPeer
SortedMap formatMap = DataTransferer.getInstance().
getFormatsForTransferable(transferable, DataTransferer.adaptFlavorMap
(getTrigger().getDragSource().getFlavorMap()));
- long[] formats = DataTransferer.getInstance().
- keysToLongArray(formatMap);
+ long[] formats = DataTransferer.keysToLongArray(formatMap);
startDrag(transferable, formats, formatMap);
/*
diff --git a/jdk/src/share/classes/sun/awt/geom/Crossings.java b/jdk/src/share/classes/sun/awt/geom/Crossings.java
index 6275c4dfeba..7ab97bce80c 100644
--- a/jdk/src/share/classes/sun/awt/geom/Crossings.java
+++ b/jdk/src/share/classes/sun/awt/geom/Crossings.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -100,7 +100,7 @@ public abstract class Crossings {
double xhi, double yhi)
{
Crossings cross;
- if (pi.getWindingRule() == pi.WIND_EVEN_ODD) {
+ if (pi.getWindingRule() == PathIterator.WIND_EVEN_ODD) {
cross = new EvenOdd(xlo, ylo, xhi, yhi);
} else {
cross = new NonZero(xlo, ylo, xhi, yhi);
diff --git a/jdk/src/share/classes/sun/awt/image/ImageFetcher.java b/jdk/src/share/classes/sun/awt/image/ImageFetcher.java
index 6f9501301cf..a5af63512c7 100644
--- a/jdk/src/share/classes/sun/awt/image/ImageFetcher.java
+++ b/jdk/src/share/classes/sun/awt/image/ImageFetcher.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1995, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -195,7 +195,7 @@ class ImageFetcher extends Thread {
// the fetcher was interrupted, as we used to,
// because there may be other images waiting
// to be fetched (see 4789067)
- me.interrupted();
+ Thread.interrupted();
me.setPriority(HIGH_PRIORITY);
ImageFetchable src = nextImage();
if (src == null) {
diff --git a/jdk/src/share/classes/sun/awt/image/ImageRepresentation.java b/jdk/src/share/classes/sun/awt/image/ImageRepresentation.java
index 18fb13ed69b..77ee7339a59 100644
--- a/jdk/src/share/classes/sun/awt/image/ImageRepresentation.java
+++ b/jdk/src/share/classes/sun/awt/image/ImageRepresentation.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1995, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -209,7 +209,7 @@ public class ImageRepresentation extends ImageWatched implements ImageConsumer
// Check to see if model is INT_RGB
if (model instanceof IndexColorModel) {
- if (model.getTransparency() == model.TRANSLUCENT) {
+ if (model.getTransparency() == Transparency.TRANSLUCENT) {
// REMIND:
// Probably need to composite anyway so force ARGB
cmodel = ColorModel.getRGBdefault();
@@ -586,8 +586,8 @@ public class ImageRepresentation extends ImageWatched implements ImageConsumer
}
}
else {
- if (model.getTransparency() != model.OPAQUE &&
- cmodel.getTransparency() == cmodel.OPAQUE) {
+ if (model.getTransparency() != Transparency.OPAQUE &&
+ cmodel.getTransparency() == Transparency.OPAQUE) {
convertToRGB();
}
diff --git a/jdk/src/share/classes/sun/font/ExtendedTextSourceLabel.java b/jdk/src/share/classes/sun/font/ExtendedTextSourceLabel.java
index ba7e29edc05..da149905133 100644
--- a/jdk/src/share/classes/sun/font/ExtendedTextSourceLabel.java
+++ b/jdk/src/share/classes/sun/font/ExtendedTextSourceLabel.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -894,12 +894,12 @@ class ExtendedTextSourceLabel extends ExtendedTextLabel implements Decoration.La
public String toString() {
if (true) {
- return source.toString(source.WITHOUT_CONTEXT);
+ return source.toString(TextSource.WITHOUT_CONTEXT);
}
StringBuffer buf = new StringBuffer();
buf.append(super.toString());
buf.append("[source:");
- buf.append(source.toString(source.WITHOUT_CONTEXT));
+ buf.append(source.toString(TextSource.WITHOUT_CONTEXT));
buf.append(", lb:");
buf.append(lb);
buf.append(", ab:");
diff --git a/jdk/src/share/classes/sun/font/StrikeCache.java b/jdk/src/share/classes/sun/font/StrikeCache.java
index 2651a7fef94..3c927ebf8b0 100644
--- a/jdk/src/share/classes/sun/font/StrikeCache.java
+++ b/jdk/src/share/classes/sun/font/StrikeCache.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -280,7 +280,7 @@ public final class StrikeCache {
RenderQueue rq = null;
GraphicsEnvironment ge =
GraphicsEnvironment.getLocalGraphicsEnvironment();
- if (!ge.isHeadless()) {
+ if (!GraphicsEnvironment.isHeadless()) {
GraphicsConfiguration gc =
ge.getDefaultScreenDevice().getDefaultConfiguration();
if (gc instanceof AccelGraphicsConfig) {
diff --git a/jdk/src/share/classes/sun/tools/tree/FinallyStatement.java b/jdk/src/share/classes/sun/tools/tree/FinallyStatement.java
index d0b688fdcd5..aa85218e83f 100644
--- a/jdk/src/share/classes/sun/tools/tree/FinallyStatement.java
+++ b/jdk/src/share/classes/sun/tools/tree/FinallyStatement.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1994, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1994, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -281,7 +281,7 @@ class FinallyStatement extends Statement {
returnType,
idFinallyReturnValue);
ctx.declare(env, localfield);
- env.debugOutput("Assigning return slot to " + localfield.number);
+ Environment.debugOutput("Assigning return slot to " + localfield.number);
}
// allocate space for the exception and return address
diff --git a/jdk/src/share/classes/sun/tools/tree/SynchronizedStatement.java b/jdk/src/share/classes/sun/tools/tree/SynchronizedStatement.java
index 58db7462718..2c2daa85f41 100644
--- a/jdk/src/share/classes/sun/tools/tree/SynchronizedStatement.java
+++ b/jdk/src/share/classes/sun/tools/tree/SynchronizedStatement.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1994, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1994, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -120,7 +120,7 @@ class SynchronizedStatement extends Statement {
LocalMember localfield = new LocalMember(0, clazz, 0, returnType,
idFinallyReturnValue);
ctx.declare(env, localfield);
- env.debugOutput("Assigning return slot to " + localfield.number);
+ Environment.debugOutput("Assigning return slot to " + localfield.number);
}
LocalMember f1 = new LocalMember(where, clazz, 0, Type.tObject, null);
diff --git a/jdk/src/share/classes/sun/tools/util/CommandLine.java b/jdk/src/share/classes/sun/tools/util/CommandLine.java
index 4dd3b4c302a..4bf9582583c 100644
--- a/jdk/src/share/classes/sun/tools/util/CommandLine.java
+++ b/jdk/src/share/classes/sun/tools/util/CommandLine.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -82,7 +82,7 @@ public class CommandLine {
st.commentChar('#');
st.quoteChar('"');
st.quoteChar('\'');
- while (st.nextToken() != st.TT_EOF) {
+ while (st.nextToken() != StreamTokenizer.TT_EOF) {
args.add(st.sval);
}
r.close();
diff --git a/jdk/src/solaris/classes/sun/awt/X11/XComponentPeer.java b/jdk/src/solaris/classes/sun/awt/X11/XComponentPeer.java
index c3cb2649c17..54249bbe7d7 100644
--- a/jdk/src/solaris/classes/sun/awt/X11/XComponentPeer.java
+++ b/jdk/src/solaris/classes/sun/awt/X11/XComponentPeer.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -184,7 +184,7 @@ public class XComponentPeer extends XWindow implements ComponentPeer, DropTarget
XWindowPeer wpeer = (XWindowPeer)(container.getPeer());
if (wpeer != null) {
return (wpeer.winAttr.visibilityState !=
- wpeer.winAttr.AWT_UNOBSCURED);
+ XWindowAttributesData.AWT_UNOBSCURED);
}
}
return true;
diff --git a/jdk/src/solaris/classes/sun/awt/X11/XDialogPeer.java b/jdk/src/solaris/classes/sun/awt/X11/XDialogPeer.java
index fc0a0b7d44f..c2e451785f7 100644
--- a/jdk/src/solaris/classes/sun/awt/X11/XDialogPeer.java
+++ b/jdk/src/solaris/classes/sun/awt/X11/XDialogPeer.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -47,9 +47,9 @@ class XDialogPeer extends XDecoratedPeer implements DialogPeer {
undecorated = Boolean.valueOf(target.isUndecorated());
winAttr.nativeDecor = !target.isUndecorated();
if (winAttr.nativeDecor) {
- winAttr.decorations = winAttr.AWT_DECOR_ALL;
+ winAttr.decorations = XWindowAttributesData.AWT_DECOR_ALL;
} else {
- winAttr.decorations = winAttr.AWT_DECOR_NONE;
+ winAttr.decorations = XWindowAttributesData.AWT_DECOR_NONE;
}
winAttr.functions = MWMConstants.MWM_FUNC_ALL;
winAttr.isResizable = true; //target.isResizable();
diff --git a/jdk/src/solaris/classes/sun/awt/X11/XDnDDropTargetProtocol.java b/jdk/src/solaris/classes/sun/awt/X11/XDnDDropTargetProtocol.java
index f0a6622c4bd..2af8e66d730 100644
--- a/jdk/src/solaris/classes/sun/awt/X11/XDnDDropTargetProtocol.java
+++ b/jdk/src/solaris/classes/sun/awt/X11/XDnDDropTargetProtocol.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -1005,6 +1005,7 @@ class XDnDDropTargetProtocol extends XDropTargetProtocol {
}
}
+ @SuppressWarnings("static")
private void notifyProtocolListener(XWindow xwindow, int x, int y,
int dropAction,
XClientMessageEvent xclient,
@@ -1147,7 +1148,7 @@ class XDnDDropTargetProtocol extends XDropTargetProtocol {
event while it still can be referenced from other Java events. */
{
XClientMessageEvent copy = new XClientMessageEvent();
- unsafe.copyMemory(xclient.pData, copy.pData, copy.getSize());
+ unsafe.copyMemory(xclient.pData, copy.pData, XClientMessageEvent.getSize());
copy.set_data(0, xclient.get_window());
diff --git a/jdk/src/solaris/classes/sun/awt/X11/XEmbedCanvasPeer.java b/jdk/src/solaris/classes/sun/awt/X11/XEmbedCanvasPeer.java
index 167c3fe3209..cdce154834e 100644
--- a/jdk/src/solaris/classes/sun/awt/X11/XEmbedCanvasPeer.java
+++ b/jdk/src/solaris/classes/sun/awt/X11/XEmbedCanvasPeer.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -654,9 +654,9 @@ public class XEmbedCanvasPeer extends XCanvasPeer implements WindowFocusListener
if (xembedLog.isLoggable(PlatformLogger.Level.FINER)) {
xembedLog.finer("Client message to embedder: " + msg);
}
- if (msg.get_message_type() == xembed.XEmbed.getAtom()) {
+ if (msg.get_message_type() == XEmbedHelper.XEmbed.getAtom()) {
if (xembedLog.isLoggable(PlatformLogger.Level.FINE)) {
- xembedLog.fine(xembed.XEmbedMessageToString(msg));
+ xembedLog.fine(XEmbedHelper.XEmbedMessageToString(msg));
}
}
if (isXEmbedActive()) {
diff --git a/jdk/src/solaris/classes/sun/awt/X11/XEmbedServerTester.java b/jdk/src/solaris/classes/sun/awt/X11/XEmbedServerTester.java
index e21d1d255f4..fdc069e2757 100644
--- a/jdk/src/solaris/classes/sun/awt/X11/XEmbedServerTester.java
+++ b/jdk/src/solaris/classes/sun/awt/X11/XEmbedServerTester.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -647,7 +647,7 @@ public class XEmbedServerTester implements XEventDispatcher {
public void dispatchEvent(XEvent ev) {
if (ev.get_type() == ClientMessage) {
XClientMessageEvent msg = ev.get_xclient();
- if (msg.get_message_type() == xembed.XEmbed.getAtom()) {
+ if (msg.get_message_type() == XEmbedHelper.XEmbed.getAtom()) {
if (xembedLog.isLoggable(PlatformLogger.Level.FINE)) {
xembedLog.fine("Embedded message: " + XEmbedHelper.msgidToString((int)msg.get_data(1)));
}
diff --git a/jdk/src/solaris/classes/sun/awt/X11/XFramePeer.java b/jdk/src/solaris/classes/sun/awt/X11/XFramePeer.java
index 050e0f20171..ac93ae6501e 100644
--- a/jdk/src/solaris/classes/sun/awt/X11/XFramePeer.java
+++ b/jdk/src/solaris/classes/sun/awt/X11/XFramePeer.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -67,9 +67,9 @@ class XFramePeer extends XDecoratedPeer implements FramePeer {
undecorated = Boolean.valueOf(target.isUndecorated());
winAttr.nativeDecor = !target.isUndecorated();
if (winAttr.nativeDecor) {
- winAttr.decorations = winAttr.AWT_DECOR_ALL;
+ winAttr.decorations = XWindowAttributesData.AWT_DECOR_ALL;
} else {
- winAttr.decorations = winAttr.AWT_DECOR_NONE;
+ winAttr.decorations = XWindowAttributesData.AWT_DECOR_NONE;
}
winAttr.functions = MWMConstants.MWM_FUNC_ALL;
winAttr.isResizable = true; // target.isResizable();
diff --git a/jdk/src/solaris/classes/sun/awt/X11/XToolkit.java b/jdk/src/solaris/classes/sun/awt/X11/XToolkit.java
index 475ea7848b3..9970b2a8457 100644
--- a/jdk/src/solaris/classes/sun/awt/X11/XToolkit.java
+++ b/jdk/src/solaris/classes/sun/awt/X11/XToolkit.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -1542,7 +1542,7 @@ public final class XToolkit extends UNIXToolkit implements Runnable {
*/
if (desktopProperties.get(SunToolkit.DESKTOPFONTHINTS) == null) {
if (XWM.isKDE2()) {
- Object hint = fcManager.getFontConfigAAHint();
+ Object hint = FontConfigManager.getFontConfigAAHint();
if (hint != null) {
/* set the fontconfig/KDE property so that
* getDesktopHints() below will see it
diff --git a/jdk/src/solaris/classes/sun/font/FcFontConfiguration.java b/jdk/src/solaris/classes/sun/font/FcFontConfiguration.java
index e33e08a867b..23cf93624a6 100644
--- a/jdk/src/solaris/classes/sun/font/FcFontConfiguration.java
+++ b/jdk/src/solaris/classes/sun/font/FcFontConfiguration.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -441,7 +441,7 @@ public class FcFontConfiguration extends FontConfiguration {
try {
fcVersion = Integer.parseInt(fcVersionStr);
if (fcVersion != 0 &&
- fcVersion != fcm.getFontConfigVersion()) {
+ fcVersion != FontConfigManager.getFontConfigVersion()) {
return;
}
} catch (Exception e) {
diff --git a/jdk/src/solaris/classes/sun/font/X11TextRenderer.java b/jdk/src/solaris/classes/sun/font/X11TextRenderer.java
index a408168a5cc..3afb0ccd5a4 100644
--- a/jdk/src/solaris/classes/sun/font/X11TextRenderer.java
+++ b/jdk/src/solaris/classes/sun/font/X11TextRenderer.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -57,11 +57,11 @@ public class X11TextRenderer extends GlyphListPipe {
super.drawGlyphVector(sg2d, g, x, y);
return;
case SunHints.INTVAL_TEXT_ANTIALIAS_ON:
- sg2d.surfaceData.aaTextRenderer.drawGlyphVector(sg2d, g, x, y);
+ SurfaceData.aaTextRenderer.drawGlyphVector(sg2d, g, x, y);
return;
case SunHints.INTVAL_TEXT_ANTIALIAS_LCD_HRGB:
case SunHints.INTVAL_TEXT_ANTIALIAS_LCD_VRGB:
- sg2d.surfaceData.lcdTextRenderer.drawGlyphVector(sg2d, g, x, y);
+ SurfaceData.lcdTextRenderer.drawGlyphVector(sg2d, g, x, y);
return;
default:
}
diff --git a/jdk/src/windows/classes/sun/java2d/d3d/D3DBufImgOps.java b/jdk/src/windows/classes/sun/java2d/d3d/D3DBufImgOps.java
index c2dee96aaef..890bb87d66b 100644
--- a/jdk/src/windows/classes/sun/java2d/d3d/D3DBufImgOps.java
+++ b/jdk/src/windows/classes/sun/java2d/d3d/D3DBufImgOps.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -78,12 +78,12 @@ class D3DBufImgOps extends BufferedBufImgOps {
}
SurfaceData srcData =
- dstData.getSourceSurfaceData(img, sg.TRANSFORM_ISIDENT,
+ dstData.getSourceSurfaceData(img, SunGraphics2D.TRANSFORM_ISIDENT,
CompositeType.SrcOver, null);
if (!(srcData instanceof D3DSurfaceData)) {
// REMIND: this hack tries to ensure that we have a cached texture
srcData =
- dstData.getSourceSurfaceData(img, sg.TRANSFORM_ISIDENT,
+ dstData.getSourceSurfaceData(img, SunGraphics2D.TRANSFORM_ISIDENT,
CompositeType.SrcOver, null);
if (!(srcData instanceof D3DSurfaceData)) {
return false;
diff --git a/jdk/src/windows/classes/sun/java2d/d3d/D3DDrawImage.java b/jdk/src/windows/classes/sun/java2d/d3d/D3DDrawImage.java
index 8bfac53732b..f814dc2f613 100644
--- a/jdk/src/windows/classes/sun/java2d/d3d/D3DDrawImage.java
+++ b/jdk/src/windows/classes/sun/java2d/d3d/D3DDrawImage.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -53,7 +53,7 @@ public class D3DDrawImage extends DrawImage {
SurfaceData dstData = sg.surfaceData;
SurfaceData srcData =
dstData.getSourceSurfaceData(img,
- sg.TRANSFORM_GENERIC,
+ SunGraphics2D.TRANSFORM_GENERIC,
sg.imageComp,
bgColor);
diff --git a/jdk/src/windows/classes/sun/java2d/d3d/D3DGraphicsDevice.java b/jdk/src/windows/classes/sun/java2d/d3d/D3DGraphicsDevice.java
index 2012b19e700..bf6134648c3 100644
--- a/jdk/src/windows/classes/sun/java2d/d3d/D3DGraphicsDevice.java
+++ b/jdk/src/windows/classes/sun/java2d/d3d/D3DGraphicsDevice.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -235,10 +235,12 @@ public class D3DGraphicsDevice extends Win32GraphicsDevice {
*/
private static class D3DFSWindowAdapter extends WindowAdapter {
@Override
+ @SuppressWarnings("static")
public void windowDeactivated(WindowEvent e) {
D3DRenderQueue.getInstance().restoreDevices();
}
@Override
+ @SuppressWarnings("static")
public void windowActivated(WindowEvent e) {
D3DRenderQueue.getInstance().restoreDevices();
}
diff --git a/jdk/src/windows/classes/sun/java2d/d3d/D3DPaints.java b/jdk/src/windows/classes/sun/java2d/d3d/D3DPaints.java
index 53e59762c23..b328ce3a083 100644
--- a/jdk/src/windows/classes/sun/java2d/d3d/D3DPaints.java
+++ b/jdk/src/windows/classes/sun/java2d/d3d/D3DPaints.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -132,14 +132,14 @@ abstract class D3DPaints {
}
SurfaceData srcData =
- dstData.getSourceSurfaceData(bi, sg2d.TRANSFORM_ISIDENT,
+ dstData.getSourceSurfaceData(bi, SunGraphics2D.TRANSFORM_ISIDENT,
CompositeType.SrcOver, null);
if (!(srcData instanceof D3DSurfaceData)) {
// REMIND: this is a hack that attempts to cache the system
// memory image from the TexturePaint instance into a
// D3D texture...
srcData =
- dstData.getSourceSurfaceData(bi, sg2d.TRANSFORM_ISIDENT,
+ dstData.getSourceSurfaceData(bi, SunGraphics2D.TRANSFORM_ISIDENT,
CompositeType.SrcOver, null);
if (!(srcData instanceof D3DSurfaceData)) {
return false;
diff --git a/jdk/src/windows/classes/sun/java2d/d3d/D3DSurfaceData.java b/jdk/src/windows/classes/sun/java2d/d3d/D3DSurfaceData.java
index d37db9e925b..ffab9092a5a 100644
--- a/jdk/src/windows/classes/sun/java2d/d3d/D3DSurfaceData.java
+++ b/jdk/src/windows/classes/sun/java2d/d3d/D3DSurfaceData.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -542,7 +542,7 @@ public class D3DSurfaceData extends SurfaceData implements AccelSurface {
// REMIND: the D3D pipeline doesn't support XOR!, more
// fixes will be needed below. For now we disable D3D rendering
// for the surface which had any XOR rendering done to.
- if (sg2d.compositeState >= sg2d.COMP_XOR) {
+ if (sg2d.compositeState >= SunGraphics2D.COMP_XOR) {
super.validatePipe(sg2d);
sg2d.imagepipe = d3dImagePipe;
disableAccelerationForSurface();
@@ -557,18 +557,18 @@ public class D3DSurfaceData extends SurfaceData implements AccelSurface {
// by the CompositeType.SrcNoEa (any color) test below.)
if (/* CompositeType.SrcNoEa (any color) */
- (sg2d.compositeState <= sg2d.COMP_ISCOPY &&
- sg2d.paintState <= sg2d.PAINT_ALPHACOLOR) ||
+ (sg2d.compositeState <= SunGraphics2D.COMP_ISCOPY &&
+ sg2d.paintState <= SunGraphics2D.PAINT_ALPHACOLOR) ||
/* CompositeType.SrcOver (any color) */
- (sg2d.compositeState == sg2d.COMP_ALPHA &&
- sg2d.paintState <= sg2d.PAINT_ALPHACOLOR &&
+ (sg2d.compositeState == SunGraphics2D.COMP_ALPHA &&
+ sg2d.paintState <= SunGraphics2D.PAINT_ALPHACOLOR &&
(((AlphaComposite)sg2d.composite).getRule() ==
AlphaComposite.SRC_OVER)) ||
/* CompositeType.Xor (any color) */
- (sg2d.compositeState == sg2d.COMP_XOR &&
- sg2d.paintState <= sg2d.PAINT_ALPHACOLOR))
+ (sg2d.compositeState == SunGraphics2D.COMP_XOR &&
+ sg2d.paintState <= SunGraphics2D.PAINT_ALPHACOLOR))
{
textpipe = d3dTextPipe;
} else {
@@ -583,12 +583,12 @@ public class D3DSurfaceData extends SurfaceData implements AccelSurface {
D3DRenderer nonTxPipe = null;
if (sg2d.antialiasHint != SunHints.INTVAL_ANTIALIAS_ON) {
- if (sg2d.paintState <= sg2d.PAINT_ALPHACOLOR) {
- if (sg2d.compositeState <= sg2d.COMP_XOR) {
+ if (sg2d.paintState <= SunGraphics2D.PAINT_ALPHACOLOR) {
+ if (sg2d.compositeState <= SunGraphics2D.COMP_XOR) {
txPipe = d3dTxRenderPipe;
nonTxPipe = d3dRenderPipe;
}
- } else if (sg2d.compositeState <= sg2d.COMP_ALPHA) {
+ } else if (sg2d.compositeState <= SunGraphics2D.COMP_ALPHA) {
if (D3DPaints.isValid(sg2d)) {
txPipe = d3dTxRenderPipe;
nonTxPipe = d3dRenderPipe;
@@ -596,7 +596,7 @@ public class D3DSurfaceData extends SurfaceData implements AccelSurface {
// custom paints handled by super.validatePipe() below
}
} else {
- if (sg2d.paintState <= sg2d.PAINT_ALPHACOLOR) {
+ if (sg2d.paintState <= SunGraphics2D.PAINT_ALPHACOLOR) {
if (graphicsDevice.isCapPresent(CAPS_AA_SHADER) &&
(sg2d.imageComp == CompositeType.SrcOverNoEa ||
sg2d.imageComp == CompositeType.SrcOver))
@@ -613,7 +613,7 @@ public class D3DSurfaceData extends SurfaceData implements AccelSurface {
sg2d.drawpipe = aaConverter;
sg2d.fillpipe = aaConverter;
sg2d.shapepipe = aaConverter;
- } else if (sg2d.compositeState == sg2d.COMP_XOR) {
+ } else if (sg2d.compositeState == SunGraphics2D.COMP_XOR) {
// install the solid pipes when AA and XOR are both enabled
txPipe = d3dTxRenderPipe;
nonTxPipe = d3dRenderPipe;
@@ -623,10 +623,10 @@ public class D3DSurfaceData extends SurfaceData implements AccelSurface {
}
if (txPipe != null) {
- if (sg2d.transformState >= sg2d.TRANSFORM_TRANSLATESCALE) {
+ if (sg2d.transformState >= SunGraphics2D.TRANSFORM_TRANSLATESCALE) {
sg2d.drawpipe = txPipe;
sg2d.fillpipe = txPipe;
- } else if (sg2d.strokeState != sg2d.STROKE_THIN) {
+ } else if (sg2d.strokeState != SunGraphics2D.STROKE_THIN) {
sg2d.drawpipe = txPipe;
sg2d.fillpipe = nonTxPipe;
} else {
@@ -653,7 +653,7 @@ public class D3DSurfaceData extends SurfaceData implements AccelSurface {
@Override
protected MaskFill getMaskFill(SunGraphics2D sg2d) {
- if (sg2d.paintState > sg2d.PAINT_ALPHACOLOR) {
+ if (sg2d.paintState > SunGraphics2D.PAINT_ALPHACOLOR) {
/*
* We can only accelerate non-Color MaskFill operations if
* all of the following conditions hold true:
@@ -678,8 +678,8 @@ public class D3DSurfaceData extends SurfaceData implements AccelSurface {
public boolean copyArea(SunGraphics2D sg2d,
int x, int y, int w, int h, int dx, int dy)
{
- if (sg2d.transformState < sg2d.TRANSFORM_TRANSLATESCALE &&
- sg2d.compositeState < sg2d.COMP_XOR)
+ if (sg2d.transformState < SunGraphics2D.TRANSFORM_TRANSLATESCALE &&
+ sg2d.compositeState < SunGraphics2D.COMP_XOR)
{
x += sg2d.transX;
y += sg2d.transY;
@@ -738,7 +738,7 @@ public class D3DSurfaceData extends SurfaceData implements AccelSurface {
D3DRenderQueue rq = D3DRenderQueue.getInstance();
// swapBuffers can be called from the toolkit thread by swing, we
// should detect this and prevent the deadlocks
- if (rq.isRenderQueueThread()) {
+ if (D3DRenderQueue.isRenderQueueThread()) {
if (!rq.tryLock()) {
// if we could not obtain the lock, repaint the area
// that was supposed to be swapped, and no-op this swap
diff --git a/jdk/src/windows/classes/sun/java2d/d3d/D3DSurfaceDataProxy.java b/jdk/src/windows/classes/sun/java2d/d3d/D3DSurfaceDataProxy.java
index 46b1446c975..66e98882a19 100644
--- a/jdk/src/windows/classes/sun/java2d/d3d/D3DSurfaceDataProxy.java
+++ b/jdk/src/windows/classes/sun/java2d/d3d/D3DSurfaceDataProxy.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -72,7 +72,7 @@ public class D3DSurfaceDataProxy extends SurfaceDataProxy {
try {
cachedData = d3dgc.createManagedSurface(w, h, transparency);
} catch (InvalidPipeException e) {
- if (!d3dgc.getD3DDevice().isD3DAvailable()) {
+ if (!D3DGraphicsDevice.isD3DAvailable()) {
invalidate();
flush();
return null;
diff --git a/jdk/src/windows/classes/sun/java2d/windows/GDIRenderer.java b/jdk/src/windows/classes/sun/java2d/windows/GDIRenderer.java
index bb3e2725700..5971c09cdd6 100644
--- a/jdk/src/windows/classes/sun/java2d/windows/GDIRenderer.java
+++ b/jdk/src/windows/classes/sun/java2d/windows/GDIRenderer.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -264,7 +264,7 @@ public class GDIRenderer implements
Path2D.Float p2df;
int transX;
int transY;
- if (sg2d.transformState <= sg2d.TRANSFORM_INT_TRANSLATE) {
+ if (sg2d.transformState <= SunGraphics2D.TRANSFORM_INT_TRANSLATE) {
if (s instanceof Path2D.Float) {
p2df = (Path2D.Float)s;
} else {
@@ -308,9 +308,9 @@ public class GDIRenderer implements
}
public void draw(SunGraphics2D sg2d, Shape s) {
- if (sg2d.strokeState == sg2d.STROKE_THIN) {
+ if (sg2d.strokeState == SunGraphics2D.STROKE_THIN) {
doShape(sg2d, s, false);
- } else if (sg2d.strokeState < sg2d.STROKE_CUSTOM) {
+ } else if (sg2d.strokeState < SunGraphics2D.STROKE_CUSTOM) {
ShapeSpanIterator si = LoopPipe.getStrokeSpans(sg2d, s);
try {
doFillSpans(sg2d, si);
diff --git a/jdk/src/windows/classes/sun/java2d/windows/GDIWindowSurfaceData.java b/jdk/src/windows/classes/sun/java2d/windows/GDIWindowSurfaceData.java
index deaf9c60e0d..49d9261bbd3 100644
--- a/jdk/src/windows/classes/sun/java2d/windows/GDIWindowSurfaceData.java
+++ b/jdk/src/windows/classes/sun/java2d/windows/GDIWindowSurfaceData.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -153,11 +153,11 @@ public class GDIWindowSurfaceData extends SurfaceData {
public void validatePipe(SunGraphics2D sg2d) {
if (sg2d.antialiasHint != SunHints.INTVAL_ANTIALIAS_ON &&
- sg2d.paintState <= sg2d.PAINT_ALPHACOLOR &&
- (sg2d.compositeState <= sg2d.COMP_ISCOPY ||
- sg2d.compositeState == sg2d.COMP_XOR))
+ sg2d.paintState <= SunGraphics2D.PAINT_ALPHACOLOR &&
+ (sg2d.compositeState <= SunGraphics2D.COMP_ISCOPY ||
+ sg2d.compositeState == SunGraphics2D.COMP_XOR))
{
- if (sg2d.clipState == sg2d.CLIP_SHAPE) {
+ if (sg2d.clipState == SunGraphics2D.CLIP_SHAPE) {
// Do this to init textpipe correctly; we will override the
// other non-text pipes below
// REMIND: we should clean this up eventually instead of
@@ -194,10 +194,10 @@ public class GDIWindowSurfaceData extends SurfaceData {
}
}
sg2d.imagepipe = imagepipe;
- if (sg2d.transformState >= sg2d.TRANSFORM_TRANSLATESCALE) {
+ if (sg2d.transformState >= SunGraphics2D.TRANSFORM_TRANSLATESCALE) {
sg2d.drawpipe = gdiTxPipe;
sg2d.fillpipe = gdiTxPipe;
- } else if (sg2d.strokeState != sg2d.STROKE_THIN){
+ } else if (sg2d.strokeState != SunGraphics2D.STROKE_THIN){
sg2d.drawpipe = gdiTxPipe;
sg2d.fillpipe = gdiPipe;
} else {
@@ -220,8 +220,8 @@ public class GDIWindowSurfaceData extends SurfaceData {
}
public RenderLoops getRenderLoops(SunGraphics2D sg2d) {
- if (sg2d.paintState <= sg2d.PAINT_ALPHACOLOR &&
- sg2d.compositeState <= sg2d.COMP_ISCOPY)
+ if (sg2d.paintState <= SunGraphics2D.PAINT_ALPHACOLOR &&
+ sg2d.compositeState <= SunGraphics2D.COMP_ISCOPY)
{
return solidloops;
}
@@ -295,8 +295,8 @@ public class GDIWindowSurfaceData extends SurfaceData {
int x, int y, int w, int h, int dx, int dy)
{
CompositeType comptype = sg2d.imageComp;
- if (sg2d.transformState < sg2d.TRANSFORM_TRANSLATESCALE &&
- sg2d.clipState != sg2d.CLIP_SHAPE &&
+ if (sg2d.transformState < SunGraphics2D.TRANSFORM_TRANSLATESCALE &&
+ sg2d.clipState != SunGraphics2D.CLIP_SHAPE &&
(CompositeType.SrcOverNoEa.equals(comptype) ||
CompositeType.SrcNoEa.equals(comptype)))
{
From 6f46c5c2f0ff1ab3092933943d6af25752d5bb32 Mon Sep 17 00:00:00 2001
From: Staffan Larsen
Date: Thu, 23 Jan 2014 09:06:21 +0100
Subject: [PATCH 066/181] 8031968: Mac OS X: VM starts the agent by calling
both Agent_OnAttach and Agent_OnAttach_L functions if its agent library is
dynamically linked
Make sure we only look for statically linked agents in the main process image
Reviewed-by: dsamersoff, bpittore, dcubed
---
hotspot/src/os/bsd/vm/os_bsd.cpp | 11 +++++++++++
hotspot/src/os/linux/vm/os_linux.cpp | 3 +++
hotspot/src/os/posix/vm/os_posix.cpp | 4 ----
hotspot/src/os/solaris/vm/os_solaris.cpp | 4 ++++
4 files changed, 18 insertions(+), 4 deletions(-)
diff --git a/hotspot/src/os/bsd/vm/os_bsd.cpp b/hotspot/src/os/bsd/vm/os_bsd.cpp
index 1bea78444a8..47e5d16efdc 100644
--- a/hotspot/src/os/bsd/vm/os_bsd.cpp
+++ b/hotspot/src/os/bsd/vm/os_bsd.cpp
@@ -1557,6 +1557,17 @@ void * os::dll_load(const char *filename, char *ebuf, int ebuflen)
}
#endif /* !__APPLE__ */
+void* os::get_default_process_handle() {
+#ifdef __APPLE__
+ // MacOS X needs to use RTLD_FIRST instead of RTLD_LAZY
+ // to avoid finding unexpected symbols on second (or later)
+ // loads of a library.
+ return (void*)::dlopen(NULL, RTLD_FIRST);
+#else
+ return (void*)::dlopen(NULL, RTLD_LAZY);
+#endif
+}
+
// XXX: Do we need a lock around this as per Linux?
void* os::dll_lookup(void* handle, const char* name) {
return dlsym(handle, name);
diff --git a/hotspot/src/os/linux/vm/os_linux.cpp b/hotspot/src/os/linux/vm/os_linux.cpp
index 1bb32901540..54149e18253 100644
--- a/hotspot/src/os/linux/vm/os_linux.cpp
+++ b/hotspot/src/os/linux/vm/os_linux.cpp
@@ -2104,6 +2104,9 @@ void* os::dll_lookup(void* handle, const char* name) {
return res;
}
+void* os::get_default_process_handle() {
+ return (void*)::dlopen(NULL, RTLD_LAZY);
+}
static bool _print_ascii_file(const char* filename, outputStream* st) {
int fd = ::open(filename, O_RDONLY);
diff --git a/hotspot/src/os/posix/vm/os_posix.cpp b/hotspot/src/os/posix/vm/os_posix.cpp
index 6aae96e9b89..63333172893 100644
--- a/hotspot/src/os/posix/vm/os_posix.cpp
+++ b/hotspot/src/os/posix/vm/os_posix.cpp
@@ -262,10 +262,6 @@ FILE* os::open(int fd, const char* mode) {
return ::fdopen(fd, mode);
}
-void* os::get_default_process_handle() {
- return (void*)::dlopen(NULL, RTLD_LAZY);
-}
-
// Builds a platform dependent Agent_OnLoad_ function name
// which is used to find statically linked in agents.
// Parameters:
diff --git a/hotspot/src/os/solaris/vm/os_solaris.cpp b/hotspot/src/os/solaris/vm/os_solaris.cpp
index 8e5984ffa3d..a4d0178c887 100644
--- a/hotspot/src/os/solaris/vm/os_solaris.cpp
+++ b/hotspot/src/os/solaris/vm/os_solaris.cpp
@@ -2146,6 +2146,10 @@ void* os::dll_lookup(void* handle, const char* name) {
return dlsym(handle, name);
}
+void* os::get_default_process_handle() {
+ return (void*)::dlopen(NULL, RTLD_LAZY);
+}
+
int os::stat(const char *path, struct stat *sbuf) {
char pathbuf[MAX_PATH];
if (strlen(path) > MAX_PATH - 1) {
From f0a718ceb02b3c99a59fdffe656a1029a29f4854 Mon Sep 17 00:00:00 2001
From: Jaroslav Bachorik
Date: Thu, 23 Jan 2014 10:06:52 +0100
Subject: [PATCH 067/181] 6309226: TEST:
java/lang/management/ThreadMXBean/SynchronizationStatistics.java didn't check
Thread.sleep
Reviewed-by: dholmes, mchung
---
.../SynchronizationStatistics.java | 735 +++++++-----------
1 file changed, 289 insertions(+), 446 deletions(-)
diff --git a/jdk/test/java/lang/management/ThreadMXBean/SynchronizationStatistics.java b/jdk/test/java/lang/management/ThreadMXBean/SynchronizationStatistics.java
index e03042864c9..6986adc6893 100644
--- a/jdk/test/java/lang/management/ThreadMXBean/SynchronizationStatistics.java
+++ b/jdk/test/java/lang/management/ThreadMXBean/SynchronizationStatistics.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -27,45 +27,28 @@
* @summary Basic unit test of the synchronization statistics support:
*
* @author Mandy Chung
+ * @author Jaroslav Bachorik
*
- * @ignore 6309226
- * @build Semaphore
* @run main/othervm SynchronizationStatistics
*/
import java.lang.management.*;
+import java.util.concurrent.Phaser;
public class SynchronizationStatistics {
- private static ThreadMXBean mbean = ManagementFactory.getThreadMXBean();
-
- private static boolean blockedTimeCheck =
- mbean.isThreadContentionMonitoringSupported();
- private static boolean trace = false;
-
- private static Object lockA = new Object();
- private static Object lockB = new Object();
- private static Object lockC = new Object();
- private static Object lockD = new Object();
- private static Object waiter = new Object();
- private static volatile boolean testFailed = false;
-
- private static Object go = new Object();
-
- private static void goSleep(long ms) {
- try {
- Thread.sleep(ms);
- } catch (InterruptedException e) {
- e.printStackTrace();
- System.out.println("Unexpected exception.");
- testFailed = true;
+ private static class LockerThread extends Thread {
+ public LockerThread(Runnable r) {
+ super(r, "LockerThread");
}
}
- public static void main(String args[]) throws Exception {
- if (args.length > 0 && args[0].equals("trace")) {
- trace = true;
- }
+ private static final ThreadMXBean mbean = ManagementFactory.getThreadMXBean();
+ private static final boolean blockedTimeCheck =
+ mbean.isThreadContentionMonitoringSupported();
+
+
+ public static void main(String args[]) throws Exception {
if (blockedTimeCheck) {
mbean.setThreadContentionMonitoringEnabled(true);
}
@@ -75,457 +58,317 @@ public class SynchronizationStatistics {
"Thread Contention Monitoring is not enabled");
}
- Examiner examiner = new Examiner("Examiner");
- BlockedThread blocked = new BlockedThread("BlockedThread");
- examiner.setThread(blocked);
-
- // Start the threads and check them in Blocked and Waiting states
- examiner.start();
-
- // wait until the examiner acquires all the locks and waiting
- // for the BlockedThread to start
- examiner.waitUntilWaiting();
-
- System.out.println("Checking the thread state for the examiner thread " +
- "is waiting to begin.");
-
- // The Examiner should be waiting to be notified by the BlockedThread
- checkThreadState(examiner, Thread.State.WAITING);
-
- System.out.println("Now starting the blocked thread");
- blocked.start();
-
- try {
- examiner.join();
- blocked.join();
- } catch (InterruptedException e) {
- e.printStackTrace();
- System.out.println("Unexpected exception.");
- testFailed = true;
- }
-
- if (testFailed)
- throw new RuntimeException("TEST FAILED.");
+ testBlockingOnSimpleMonitor();
+ testBlockingOnNestedMonitor();
+ testWaitingOnSimpleMonitor();
+ testMultiWaitingOnSimpleMonitor();
+ testWaitingOnNestedMonitor();
System.out.println("Test passed.");
}
- private static String INDENT = " ";
- private static void printStack(Thread t, StackTraceElement[] stack) {
- System.out.println(INDENT + t +
- " stack: (length = " + stack.length + ")");
- if (t != null) {
- for (int j = 0; j < stack.length; j++) {
- System.out.println(INDENT + stack[j]);
+ private static LockerThread newLockerThread(Runnable r) {
+ LockerThread t = new LockerThread(r);
+ t.setDaemon(true);
+ return t;
+ }
+
+ private static void waitForThreadState(Thread t, Thread.State state) throws InterruptedException {
+ while (!t.isInterrupted() && t.getState() != state) {
+ Thread.sleep(3);
+ }
+ }
+
+ /**
+ * Tests that blocking on a single monitor properly increases the
+ * blocked count at least by 1. Also asserts that the correct lock name is provided.
+ */
+ private static void testBlockingOnSimpleMonitor() throws Exception {
+ System.out.println("testBlockingOnSimpleMonitor");
+ final Object lock1 = new Object();
+ final Phaser p = new Phaser(2);
+ LockerThread lt = newLockerThread(new Runnable() {
+ @Override
+ public void run() {
+ p.arriveAndAwaitAdvance(); // phase[1]
+ synchronized(lock1) {
+ System.out.println("[LockerThread obtained Lock1]");
+ p.arriveAndAwaitAdvance(); // phase[2]
+ }
+ p.arriveAndAwaitAdvance(); // phase[3]
}
- System.out.println();
+ });
+
+ lt.start();
+ long tid = lt.getId();
+ ThreadInfo ti = mbean.getThreadInfo(tid);
+ String lockName = null;
+ synchronized(lock1) {
+ p.arriveAndAwaitAdvance(); // phase[1]
+ waitForThreadState(lt, Thread.State.BLOCKED);
+ lockName = mbean.getThreadInfo(tid).getLockName();
}
+
+ p.arriveAndAwaitAdvance(); // phase[2]
+ testBlocked(ti, mbean.getThreadInfo(tid), lockName, lock1);
+ p.arriveAndDeregister(); // phase[3]
+
+ lt.join();
+
+ System.out.println("OK");
}
- private static void checkThreadState(Thread thread, Thread.State s)
- throws Exception {
+ /**
+ * Tests that blocking on a nested monitor properly increases the
+ * blocked count at least by 1 - it is not affected by the nesting depth.
+ * Also asserts that the correct lock name is provided.
+ */
+ private static void testBlockingOnNestedMonitor() throws Exception {
+ System.out.println("testBlockingOnNestedMonitor");
+ final Object lock1 = new Object();
+ final Object lock2 = new Object();
- ThreadInfo ti = mbean.getThreadInfo(thread.getId());
- if (ti.getThreadState() != s) {
- ThreadInfo info = mbean.getThreadInfo(thread.getId(),
- Integer.MAX_VALUE);
- System.out.println(INDENT + "TEST FAILED:");
- printStack(thread, info.getStackTrace());
- System.out.println(INDENT + "Thread state: " + info.getThreadState());
-
- throw new RuntimeException("TEST FAILED: " +
- "Thread state for " + thread + " returns " + ti.getThreadState() +
- ". Expected to be " + s);
- }
- }
-
- private static void checkThreadState(Thread thread,
- Thread.State s1, Thread.State s2)
- throws Exception {
-
- ThreadInfo ti = mbean.getThreadInfo(thread.getId());
- if (ti.getThreadState() != s1 && ti.getThreadState() != s2) {
- throw new RuntimeException("TEST FAILED: " +
- "Thread state for " + thread + " returns " + ti.getThreadState() +
- ". Expected to be " + s1 + " or " + s2);
- }
- }
-
- static class StatThread extends Thread {
- private long blockingBaseTime = 0;
- private long totalWaitTime = 0;
- private long totalBlockedEnterTime = 0;
-
- StatThread(String name) {
- super(name);
- }
-
- void addWaitTime(long ns) {
- totalWaitTime = totalWaitTime + ns;
- }
- void addBlockedEnterTime(long ns) {
- totalBlockedEnterTime = totalBlockedEnterTime + ns;
- }
- void setBlockingBaseTime(long time) {
- blockingBaseTime = time;
- }
-
- long totalBlockedTimeMs() {
- return totalBlockedEnterTime / 1000000;
- }
-
- long totalBlockedTimeMs(long now) {
- long t = totalBlockedEnterTime + (now - blockingBaseTime);
- return t / 1000000;
- }
-
- long totalWaitTimeMs() {
- return totalWaitTime / 1000000;
- }
-
- long totalWaitTimeMs(long now) {
- long t = totalWaitTime + (now - blockingBaseTime);
- return t / 1000000;
- }
- }
-
- static class BlockedThread extends StatThread {
- private Semaphore handshake = new Semaphore();
- BlockedThread(String name) {
- super(name);
- }
- void waitUntilBlocked() {
- handshake.semaP();
-
- // give a chance for the examiner thread to really wait
- goSleep(20);
- }
-
- void waitUntilWaiting() {
- waitUntilBlocked();
- }
-
- boolean hasWaitersForBlocked() {
- return (handshake.getWaiterCount() > 0);
- }
-
- private void notifyWaiter() {
- // wait until the examiner waits on the semaphore
- while (handshake.getWaiterCount() == 0) {
- goSleep(20);
- }
- handshake.semaV();
- }
-
- private void waitObj(long ms) {
- synchronized (waiter) {
- try {
- // notify examinerabout to wait on a monitor
- notifyWaiter();
-
- long base = System.nanoTime();
- setBlockingBaseTime(base);
- waiter.wait(ms);
- long now = System.nanoTime();
- addWaitTime(now - base);
- } catch (Exception e) {
- e.printStackTrace();
- System.out.println("Unexpected exception.");
- testFailed = true;
+ final Phaser p = new Phaser(2);
+ LockerThread lt = newLockerThread(new Runnable() {
+ @Override
+ public void run() {
+ p.arriveAndAwaitAdvance(); // phase[1]
+ synchronized(lock1) {
+ System.out.println("[LockerThread obtained Lock1]");
+ p.arriveAndAwaitAdvance(); // phase[2]
+ p.arriveAndAwaitAdvance(); // phase[3]
+ synchronized(lock2) {
+ System.out.println("[LockerThread obtained Lock2]");
+ p.arriveAndAwaitAdvance(); // phase[4]
+ }
+ p.arriveAndAwaitAdvance(); // phase[5]
}
}
+ });
+
+ lt.start();
+ long tid = lt.getId();
+ ThreadInfo ti = mbean.getThreadInfo(tid);
+ ThreadInfo ti1 = null;
+ String lockName = null;
+ synchronized(lock1) {
+ p.arriveAndAwaitAdvance(); // phase[1]
+ waitForThreadState(lt, Thread.State.BLOCKED);
+ lockName = mbean.getThreadInfo(tid).getLockName();
}
+ p.arriveAndAwaitAdvance(); // phase[2]
- private void test() {
- // notify examiner about to block on lockA
- notifyWaiter();
+ ti1 = mbean.getThreadInfo(tid);
+ testBlocked(ti, ti1, lockName, lock1);
+ ti = ti1;
- long base = System.nanoTime();
- setBlockingBaseTime(base);
- synchronized (lockA) {
- long now = System.nanoTime();
- addBlockedEnterTime(now - base);
-
- A(); // Expected blocked count = 1
- }
- E();
+ synchronized(lock2) {
+ p.arriveAndAwaitAdvance(); // phase [3]
+ waitForThreadState(lt, Thread.State.BLOCKED);
+ lockName = mbean.getThreadInfo(tid).getLockName();
}
- private void A() {
- // notify examiner about to block on lockB
- notifyWaiter();
+ p.arriveAndAwaitAdvance(); // phase [4]
+ testBlocked(ti, mbean.getThreadInfo(tid), lockName, lock2);
+ p.arriveAndDeregister();
- long base = System.nanoTime();
- setBlockingBaseTime(base);
- synchronized (lockB) {
- long now = System.nanoTime();
- addBlockedEnterTime(now - base);
+ lt.join();
- B(); // Expected blocked count = 2
+ System.out.println("OK");
+ }
+
+ /**
+ * Tests that waiting on a single monitor properly increases the waited
+ * count by 1 and the waited time by a positive number.
+ */
+ private static void testWaitingOnSimpleMonitor() throws Exception {
+ System.out.println("testWaitingOnSimpleMonitor");
+ final Object lock1 = new Object();
+ final Phaser p = new Phaser(2);
+ LockerThread lt = newLockerThread(new Runnable() {
+ @Override
+ public void run() {
+ p.arriveAndAwaitAdvance(); // phase[1]
+ synchronized(lock1) {
+ System.out.println("[LockerThread obtained Lock1]");
+ try {
+ lock1.wait(300);
+ } catch (InterruptedException ex) {
+ // ignore
+ }
+ p.arriveAndAwaitAdvance(); // phase[2]
+ }
+ p.arriveAndAwaitAdvance(); // phase[3]
}
+ });
+
+ lt.start();
+ ThreadInfo ti1 = mbean.getThreadInfo(lt.getId());
+ synchronized(lock1) {
+ p.arriveAndAwaitAdvance(); // phase[1]
+ waitForThreadState(lt, Thread.State.BLOCKED);
}
- private void B() {
- // notify examiner about to block on lockC
- notifyWaiter();
+ p.arriveAndAwaitAdvance(); // phase[2]
- long base = System.nanoTime();
- setBlockingBaseTime(base);
- synchronized (lockC) {
- long now = System.nanoTime();
- addBlockedEnterTime(now - base);
+ ThreadInfo ti2 = mbean.getThreadInfo(lt.getId());
+ p.arriveAndDeregister(); // phase[3]
- C(); // Expected blocked count = 3
+ lt.join();
+
+ testWaited(ti1, ti2, 1);
+ System.out.println("OK");
+ }
+
+ /**
+ * Tests that waiting multiple times on the same monitor subsequently
+ * increases the waited count by the number of subsequent calls and the
+ * waited time by a positive number.
+ */
+ private static void testMultiWaitingOnSimpleMonitor() throws Exception {
+ System.out.println("testWaitingOnMultipleMonitors");
+ final Object lock1 = new Object();
+
+ final Phaser p = new Phaser(2);
+ LockerThread lt = newLockerThread(new Runnable() {
+ @Override
+ public void run() {
+ p.arriveAndAwaitAdvance(); // phase[1]
+ synchronized(lock1) {
+ System.out.println("[LockerThread obtained Lock1]");
+ for (int i = 0; i < 3; i++) {
+ try {
+ lock1.wait(300);
+ } catch (InterruptedException ex) {
+ // ignore
+ }
+ p.arriveAndAwaitAdvance(); // phase[2-4]
+ }
+ }
+ p.arriveAndAwaitAdvance(); // phase[5]
}
+ });
+
+ lt.start();
+ ThreadInfo ti1 = mbean.getThreadInfo(lt.getId());
+ synchronized(lock1) {
+ p.arriveAndAwaitAdvance(); //phase[1]
+ waitForThreadState(lt, Thread.State.BLOCKED);
}
- private void C() {
- // notify examiner about to block on lockD
- notifyWaiter();
+ int phase = p.getPhase();
+ while ((p.arriveAndAwaitAdvance() - phase) < 3); // phase[2-4]
- long base = System.nanoTime();
- setBlockingBaseTime(base);
- synchronized (lockD) {
- long now = System.nanoTime();
- addBlockedEnterTime(now - base);
+ ThreadInfo ti2 = mbean.getThreadInfo(lt.getId());
+ p.arriveAndDeregister(); // phase[5]
- D(); // Expected blocked count = 4
- }
- }
- private void D() {
- goSleep(50);
- }
- private void E() {
- final int WAIT = 1000;
- waitObj(WAIT);
- waitObj(WAIT);
- waitObj(WAIT);
- }
+ lt.join();
+ testWaited(ti1, ti2, 3);
+ System.out.println("OK");
+ }
- public void run() {
- test();
- } // run()
- } // BlockedThread
+ /**
+ * Tests that waiting on monitors places in nested synchronized blocks
+ * properly increases the waited count by the number of times the "lock.wait()"
+ * was invoked and the waited time by a positive number.
+ */
+ private static void testWaitingOnNestedMonitor() throws Exception {
+ System.out.println("testWaitingOnNestedMonitor");
+ final Object lock1 = new Object();
+ final Object lock2 = new Object();
+ final Object lock3 = new Object();
- static int blockedCount = 0;
- static int waitedCount = 0;
- static class Examiner extends StatThread {
- private BlockedThread blockedThread;
- private Semaphore semaphore = new Semaphore();
+ final Phaser p = new Phaser(2);
+ LockerThread lt = newLockerThread(new Runnable() {
+ @Override
+ public void run() {
+ p.arriveAndAwaitAdvance(); // phase[1]
+ synchronized(lock1) {
+ System.out.println("[LockerThread obtained Lock1]");
+ try {
+ lock1.wait(300);
+ } catch (InterruptedException ex) {
+ // ignore
+ }
- Examiner(String name) {
- super(name);
- }
-
- public void setThread(BlockedThread thread) {
- blockedThread = thread;
- }
-
- private void blockedTimeRangeCheck(StatThread t,
- long blockedTime,
- long nowNano)
- throws Exception {
- long expected = t.totalBlockedTimeMs(nowNano);
-
- // accept 5% range
- timeRangeCheck(blockedTime, expected, 5);
- }
- private void waitedTimeRangeCheck(StatThread t,
- long waitedTime,
- long nowNano)
- throws Exception {
- long expected = t.totalWaitTimeMs(nowNano);
-
- // accept 5% range
- timeRangeCheck(waitedTime, expected, 5);
- }
-
- private void timeRangeCheck(long time, long expected, int percent)
- throws Exception {
-
- double diff = expected - time;
-
- if (trace) {
- System.out.println(" Time = " + time +
- " expected = " + expected +
- ". Diff = " + diff);
-
- }
- // throw an exception if blockedTime and expectedTime
- // differs > percent%
- if (diff < 0) {
- diff = diff * -1;
- }
-
- long range = (expected * percent) / 100;
- // minimum range = 2 ms
- if (range < 2) {
- range = 2;
- }
- if (diff > range) {
- throw new RuntimeException("TEST FAILED: " +
- "Time returned = " + time +
- " expected = " + expected + ". Diff = " + diff);
- }
- }
- private void checkInfo(StatThread t, Thread.State s, Object lock,
- String lockName, int bcount, int wcount)
- throws Exception {
-
- String action = "ERROR";
- if (s == Thread.State.WAITING || s == Thread.State.TIMED_WAITING) {
- action = "wait on ";
- } else if (s == Thread.State.BLOCKED) {
- action = "block on ";
- }
- System.out.println(t + " expected to " + action + lockName +
- " with blocked count = " + bcount +
- " and waited count = " + wcount);
-
- long now = System.nanoTime();
- ThreadInfo info = mbean.getThreadInfo(t.getId());
- if (info.getThreadState() != s) {
- printStack(t, info.getStackTrace());
- throw new RuntimeException("TEST FAILED: " +
- "Thread state returned is " + info.getThreadState() +
- ". Expected to be " + s);
- }
-
- if (info.getLockName() == null ||
- !info.getLockName().equals(lock.toString())) {
- throw new RuntimeException("TEST FAILED: " +
- "getLockName() returned " + info.getLockName() +
- ". Expected to be " + lockName + " - " + lock.toString());
- }
-
- if (info.getBlockedCount() != bcount) {
- throw new RuntimeException("TEST FAILED: " +
- "Blocked Count returned is " + info.getBlockedCount() +
- ". Expected to be " + bcount);
- }
- if (info.getWaitedCount() != wcount) {
- throw new RuntimeException("TEST FAILED: " +
- "Waited Count returned is " + info.getWaitedCount() +
- ". Expected to be " + wcount);
- }
-
- String lockObj = info.getLockName();
- if (lockObj == null || !lockObj.equals(lock.toString())) {
- throw new RuntimeException("TEST FAILED: " +
- "Object blocked on is " + lockObj +
- ". Expected to be " + lock.toString());
- }
-
- if (!blockedTimeCheck) {
- return;
- }
- long blockedTime = info.getBlockedTime();
- if (blockedTime < 0) {
- throw new RuntimeException("TEST FAILED: " +
- "Blocked time returned is negative = " + blockedTime);
- }
-
- if (s == Thread.State.BLOCKED) {
- blockedTimeRangeCheck(t, blockedTime, now);
- } else {
- timeRangeCheck(blockedTime, t.totalBlockedTimeMs(), 5);
- }
-
- long waitedTime = info.getWaitedTime();
- if (waitedTime < 0) {
- throw new RuntimeException("TEST FAILED: " +
- "Waited time returned is negative = " + waitedTime);
- }
- if (s == Thread.State.WAITING || s == Thread.State.TIMED_WAITING) {
- waitedTimeRangeCheck(t, waitedTime, now);
- } else {
- timeRangeCheck(waitedTime, t.totalWaitTimeMs(), 5);
- }
-
- }
-
- private void examine() {
- try {
- synchronized (lockD) {
- synchronized (lockC) {
- synchronized (lockB) {
- synchronized (lockA) {
- // notify main thread to continue
- semaphore.semaV();
-
- // wait until BlockedThread has started
- blockedThread.waitUntilBlocked();
-
- blockedCount++;
- checkInfo(blockedThread, Thread.State.BLOCKED,
- lockA, "lockA",
- blockedCount, waitedCount);
- }
-
- // wait until BlockedThread to block on lockB
- blockedThread.waitUntilBlocked();
-
- blockedCount++;
- checkInfo(blockedThread, Thread.State.BLOCKED,
- lockB, "lockB",
- blockedCount, waitedCount);
+ p.arriveAndAwaitAdvance(); // phase[2]
+ synchronized(lock2) {
+ System.out.println("[LockerThread obtained Lock2]");
+ try {
+ lock2.wait(300);
+ } catch (InterruptedException ex) {
+ // ignore
}
- // wait until BlockedThread to block on lockC
- blockedThread.waitUntilBlocked();
-
- blockedCount++;
- checkInfo(blockedThread, Thread.State.BLOCKED,
- lockC, "lockC",
- blockedCount, waitedCount);
+ p.arriveAndAwaitAdvance(); // phase[3]
+ synchronized(lock3) {
+ System.out.println("[LockerThread obtained Lock3]");
+ try {
+ lock3.wait(300);
+ } catch (InterruptedException ex) {
+ // ignore
+ }
+ p.arriveAndAwaitAdvance(); // phase[4]
+ }
}
- // wait until BlockedThread to block on lockD
- blockedThread.waitUntilBlocked();
- blockedCount++;
-
- checkInfo(blockedThread, Thread.State.BLOCKED,
- lockD, "lockD",
- blockedCount, waitedCount);
}
-
- // wait until BlockedThread about to call E()
- // BlockedThread will wait on waiter for 3 times
- blockedThread.waitUntilWaiting();
-
- waitedCount++;
- checkInfo(blockedThread, Thread.State.TIMED_WAITING,
- waiter, "waiter", blockedCount, waitedCount);
-
- blockedThread.waitUntilWaiting();
-
- waitedCount++;
- checkInfo(blockedThread, Thread.State.TIMED_WAITING,
- waiter, "waiter", blockedCount, waitedCount);
-
- blockedThread.waitUntilWaiting();
-
- waitedCount++;
- checkInfo(blockedThread, Thread.State.TIMED_WAITING,
- waiter, "waiter", blockedCount, waitedCount);
-
- } catch (Exception e) {
- e.printStackTrace();
- System.out.println("Unexpected exception.");
- testFailed = true;
+ p.arriveAndAwaitAdvance(); // phase[5]
}
+ });
+
+ lt.start();
+ ThreadInfo ti1 = mbean.getThreadInfo(lt.getId());
+ synchronized(lock1) {
+ p.arriveAndAwaitAdvance(); // phase[1]
+ waitForThreadState(lt, Thread.State.BLOCKED);
}
- public void run() {
- examine();
- } // run()
-
- public void waitUntilWaiting() {
- semaphore.semaP();
-
- // wait until the examiner is waiting for
- while (!blockedThread.hasWaitersForBlocked()) {
- goSleep(50);
- }
- // give a chance for the examiner thread to really wait
- goSleep(20);
-
+ synchronized(lock2) {
+ p.arriveAndAwaitAdvance(); // phase[2]
+ waitForThreadState(lt, Thread.State.BLOCKED);
}
- } // Examiner
+
+ synchronized(lock3) {
+ p.arriveAndAwaitAdvance(); // phase[3]
+ waitForThreadState(lt, Thread.State.BLOCKED);
+ }
+
+ p.arriveAndAwaitAdvance(); // phase[4]
+ ThreadInfo ti2 = mbean.getThreadInfo(lt.getId());
+ p.arriveAndDeregister(); // phase[5]
+
+ lt.join();
+ testWaited(ti1, ti2, 3);
+ System.out.println("OK");
+ }
+
+ private static void testWaited(ThreadInfo ti1, ThreadInfo ti2, int waited) throws Error {
+ long waitCntDiff = ti2.getWaitedCount() - ti1.getWaitedCount();
+ long waitTimeDiff = ti2.getWaitedTime() - ti1.getWaitedTime();
+ if (waitCntDiff < waited) {
+ throw new Error("Unexpected diff in waited count. Expecting at least "
+ + waited + " , got " + waitCntDiff);
+ }
+ if (waitTimeDiff <= 0) {
+ throw new Error("Unexpected diff in waited time. Expecting increasing " +
+ "value, got " + waitTimeDiff + "ms");
+ }
+ }
+
+ private static void testBlocked(ThreadInfo ti1, ThreadInfo ti2,
+ String lockName, final Object lock)
+ throws Error {
+ long blkCntDiff = ti2.getBlockedCount() - ti1.getBlockedCount();
+ long blkTimeDiff = ti2.getBlockedTime() - ti1.getBlockedTime();
+ if (blkCntDiff < 1) {
+ throw new Error("Unexpected diff in blocked count. Expecting at least 1, " +
+ "got " + blkCntDiff);
+ }
+ if (blkTimeDiff < 0) {
+ throw new Error("Unexpected diff in blocked time. Expecting a positive " +
+ "number, got " + blkTimeDiff);
+ }
+ if (!lockName.equals(lock.toString())) {
+ throw new Error("Unexpected blocked monitor name. Expecting " +
+ lock.toString() + ", got " +
+ lockName);
+ }
+ }
}
From 076122acf62aeb09c3a77cf45f13aacbecf05129 Mon Sep 17 00:00:00 2001
From: Kevin Walls
Date: Thu, 23 Jan 2014 09:33:50 +0000
Subject: [PATCH 068/181] 8032466:
serviceability/sa/jmap-hashcode/Test8028623.java fails with compilation
errors
Reviewed-by: dsamersoff, sla
---
hotspot/test/serviceability/sa/jmap-hashcode/Test8028623.java | 2 ++
1 file changed, 2 insertions(+)
diff --git a/hotspot/test/serviceability/sa/jmap-hashcode/Test8028623.java b/hotspot/test/serviceability/sa/jmap-hashcode/Test8028623.java
index 38afd66902a..bd743ab1c1f 100644
--- a/hotspot/test/serviceability/sa/jmap-hashcode/Test8028623.java
+++ b/hotspot/test/serviceability/sa/jmap-hashcode/Test8028623.java
@@ -26,6 +26,8 @@
* @bug 8028623
* @summary Test hashing of extended characters in Serviceability Agent.
* @library /testlibrary
+ * @compile -encoding utf8 Test8028623.java
+ * @run main Test8028623
*/
import com.oracle.java.testlibrary.JDKToolLauncher;
From 70eb26fc0abec32f613a73a2008f192b6f6cddf8 Mon Sep 17 00:00:00 2001
From: Kumar Srinivasan
Date: Thu, 23 Jan 2014 06:34:53 -0800
Subject: [PATCH 069/181] 8031023: [javac] LambdaToMethod is missing
forceSerializedRepresentation logic and switch
Reviewed-by: jjg, rfield
---
.../classes/com/sun/tools/javac/comp/LambdaToMethod.java | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/langtools/src/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java b/langtools/src/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java
index c30744645ff..5714524afeb 100644
--- a/langtools/src/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/LambdaToMethod.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -96,6 +96,9 @@ public class LambdaToMethod extends TreeTranslator {
/** dump statistics about lambda code generation */
private boolean dumpLambdaToMethodStats;
+ /** force serializable representation, for stress testing **/
+ private final boolean forceSerializable;
+
/** Flag for alternate metafactories indicating the lambda object is intended to be serializable */
public static final int FLAG_SERIALIZABLE = 1 << 0;
@@ -130,6 +133,7 @@ public class LambdaToMethod extends TreeTranslator {
Options options = Options.instance(context);
dumpLambdaToMethodStats = options.isSet("dumpLambdaToMethodStats");
attr = Attr.instance(context);
+ forceSerializable = options.isSet("forceSerializable");
}
//
@@ -1692,6 +1696,9 @@ public class LambdaToMethod extends TreeTranslator {
/** does this functional expression require serialization support? */
boolean isSerializable() {
+ if (forceSerializable) {
+ return true;
+ }
for (Type target : tree.targets) {
if (types.asSuper(target, syms.serializableType.tsym) != null) {
return true;
From b1bcbaeb4bac7af952ec02e663e662ce17851b66 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joel=20Borggr=C3=A9n-Franck?=
Date: Thu, 23 Jan 2014 14:09:29 +0100
Subject: [PATCH 070/181] 8029017: ElementType.TYPE_USE should be a logical
superset of ElementType.TYPE and ANNOTATION_TYPE
Reviewed-by: abuckley, jlahoda, vromero
---
.../com/sun/tools/javac/comp/Check.java | 16 ++-
.../8029017/TypeUseTarget.java | 129 ++++++++++++++++++
.../8029017/TypeUseTargetNeg.java | 100 ++++++++++++++
.../8029017/TypeUseTargetNeg.out | 7 +
.../combo/TargetAnnoCombo.java | 12 +-
5 files changed, 258 insertions(+), 6 deletions(-)
create mode 100644 langtools/test/tools/javac/annotations/repeatingAnnotations/8029017/TypeUseTarget.java
create mode 100644 langtools/test/tools/javac/annotations/repeatingAnnotations/8029017/TypeUseTargetNeg.java
create mode 100644 langtools/test/tools/javac/annotations/repeatingAnnotations/8029017/TypeUseTargetNeg.out
diff --git a/langtools/src/share/classes/com/sun/tools/javac/comp/Check.java b/langtools/src/share/classes/com/sun/tools/javac/comp/Check.java
index 13e09823d3d..e44c6ddc586 100644
--- a/langtools/src/share/classes/com/sun/tools/javac/comp/Check.java
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Check.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -2778,7 +2778,7 @@ public class Check {
validateDocumented(t.tsym, s, pos);
validateInherited(t.tsym, s, pos);
validateTarget(t.tsym, s, pos);
- validateDefault(t.tsym, s, pos);
+ validateDefault(t.tsym, pos);
}
private void validateValue(TypeSymbol container, TypeSymbol contained, DiagnosticPosition pos) {
@@ -2897,7 +2897,9 @@ public class Check {
/** Checks that s is a subset of t, with respect to ElementType
- * semantics, specifically {ANNOTATION_TYPE} is a subset of {TYPE}
+ * semantics, specifically {ANNOTATION_TYPE} is a subset of {TYPE},
+ * and {TYPE_USE} covers the set {ANNOTATION_TYPE, TYPE, TYPE_USE,
+ * TYPE_PARAMETER}.
*/
private boolean isTargetSubsetOf(Set s, Set t) {
// Check that all elements in s are present in t
@@ -2910,6 +2912,12 @@ public class Check {
} else if (n1 == names.TYPE && n2 == names.ANNOTATION_TYPE) {
currentElementOk = true;
break;
+ } else if (n1 == names.TYPE_USE &&
+ (n2 == names.TYPE ||
+ n2 == names.ANNOTATION_TYPE ||
+ n2 == names.TYPE_PARAMETER)) {
+ currentElementOk = true;
+ break;
}
}
if (!currentElementOk)
@@ -2918,7 +2926,7 @@ public class Check {
return true;
}
- private void validateDefault(Symbol container, Symbol contained, DiagnosticPosition pos) {
+ private void validateDefault(Symbol container, DiagnosticPosition pos) {
// validate that all other elements of containing type has defaults
Scope scope = container.members();
for(Symbol elm : scope.getElements()) {
diff --git a/langtools/test/tools/javac/annotations/repeatingAnnotations/8029017/TypeUseTarget.java b/langtools/test/tools/javac/annotations/repeatingAnnotations/8029017/TypeUseTarget.java
new file mode 100644
index 00000000000..5af979dd5e6
--- /dev/null
+++ b/langtools/test/tools/javac/annotations/repeatingAnnotations/8029017/TypeUseTarget.java
@@ -0,0 +1,129 @@
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * @test
+ * @bug 8029017
+ * @summary sanity testing of ElementType validation for repeating annotations
+ * @compile TypeUseTarget.java
+ */
+
+import java.lang.annotation.*;
+
+public class TypeUseTarget {}
+
+
+// Case 1:
+@Target({
+ ElementType.TYPE_USE,
+})
+@Repeatable(Case1Container.class)
+@interface Case1 {}
+
+@Target({
+ ElementType.ANNOTATION_TYPE,
+ ElementType.TYPE,
+ ElementType.TYPE_USE,
+ ElementType.TYPE_PARAMETER,
+})
+@interface Case1Container {
+ Case1[] value();
+}
+
+
+// Case 2:
+@Target({
+ ElementType.TYPE_USE,
+})
+@Repeatable(Case2Container.class)
+@interface Case2 {}
+
+@Target({
+ ElementType.ANNOTATION_TYPE,
+ ElementType.TYPE,
+ ElementType.TYPE_USE,
+})
+@interface Case2Container {
+ Case2[] value();
+}
+
+
+// Case 3:
+@Target({
+ ElementType.TYPE_USE,
+})
+@Repeatable(Case3Container.class)
+@interface Case3 {}
+
+@Target({
+ ElementType.ANNOTATION_TYPE,
+ ElementType.TYPE,
+})
+@interface Case3Container {
+ Case3[] value();
+}
+
+
+// Case 4:
+@Target({
+ ElementType.TYPE_USE,
+})
+@Repeatable(Case4Container.class)
+@interface Case4 {}
+
+@Target({
+ ElementType.ANNOTATION_TYPE,
+})
+@interface Case4Container {
+ Case4[] value();
+}
+
+
+// Case 5:
+@Target({
+ ElementType.TYPE_USE,
+})
+@Repeatable(Case5Container.class)
+@interface Case5 {}
+
+@Target({
+ ElementType.TYPE,
+})
+@interface Case5Container {
+ Case5[] value();
+}
+
+
+// Case 6:
+@Target({
+ ElementType.TYPE_USE,
+})
+@Repeatable(Case6Container.class)
+@interface Case6 {}
+
+@Target({
+ ElementType.TYPE_PARAMETER,
+})
+@interface Case6Container {
+ Case6[] value();
+}
diff --git a/langtools/test/tools/javac/annotations/repeatingAnnotations/8029017/TypeUseTargetNeg.java b/langtools/test/tools/javac/annotations/repeatingAnnotations/8029017/TypeUseTargetNeg.java
new file mode 100644
index 00000000000..02b57d0e8cd
--- /dev/null
+++ b/langtools/test/tools/javac/annotations/repeatingAnnotations/8029017/TypeUseTargetNeg.java
@@ -0,0 +1,100 @@
+/**
+ * @test /nodynamiccopyright/
+ * @bug 8029017
+ * @summary sanity testing of ElementType validation for repeating annotations
+ * @compile/fail/ref=TypeUseTargetNeg.out -XDrawDiagnostics TypeUseTargetNeg.java
+ */
+
+import java.lang.annotation.*;
+
+public class TypeUseTargetNeg {}
+
+// Case 1:
+@Target({
+ ElementType.TYPE_USE,
+})
+@Repeatable(FooContainer.class)
+@interface Foo {}
+
+@Target({
+ ElementType.ANNOTATION_TYPE,
+ ElementType.TYPE,
+ ElementType.TYPE_USE,
+ ElementType.TYPE_PARAMETER,
+ ElementType.FIELD,
+
+})
+@interface FooContainer {
+ Foo[] value();
+}
+
+
+// Case 2:
+@Target({
+ ElementType.TYPE_USE,
+})
+@Repeatable(BarContainer.class)
+@interface Bar {}
+
+@Target({
+ ElementType.ANNOTATION_TYPE,
+ ElementType.TYPE,
+ ElementType.TYPE_USE,
+ ElementType.METHOD,
+})
+@interface BarContainer {
+ Bar[] value();
+}
+
+
+// Case 3:
+@Target({
+ ElementType.TYPE_USE,
+})
+@Repeatable(BazContainer.class)
+@interface Baz {}
+
+@Target({
+ ElementType.ANNOTATION_TYPE,
+ ElementType.TYPE,
+ ElementType.PARAMETER,
+})
+@interface BazContainer {
+ Baz[] value();
+}
+
+
+// Case 4:
+@Target({
+ ElementType.TYPE_USE,
+})
+@Repeatable(QuxContainer.class)
+@interface Qux {}
+
+@interface QuxContainer {
+ Qux[] value();
+}
+
+
+// Case 5:
+@Target({})
+@Repeatable(QuuxContainer.class)
+@interface Quux {}
+
+@Target({
+ ElementType.TYPE_PARAMETER,
+})
+@interface QuuxContainer {
+ Quux[] value();
+}
+
+// Case 6:
+@Repeatable(QuuuxContainer.class)
+@interface Quuux {}
+
+@Target({
+ ElementType.TYPE_USE,
+})
+@interface QuuuxContainer {
+ Quuux[] value();
+}
diff --git a/langtools/test/tools/javac/annotations/repeatingAnnotations/8029017/TypeUseTargetNeg.out b/langtools/test/tools/javac/annotations/repeatingAnnotations/8029017/TypeUseTargetNeg.out
new file mode 100644
index 00000000000..8bf41706954
--- /dev/null
+++ b/langtools/test/tools/javac/annotations/repeatingAnnotations/8029017/TypeUseTargetNeg.out
@@ -0,0 +1,7 @@
+TypeUseTargetNeg.java:16:1: compiler.err.invalid.repeatable.annotation.incompatible.target: FooContainer, Foo
+TypeUseTargetNeg.java:36:1: compiler.err.invalid.repeatable.annotation.incompatible.target: BarContainer, Bar
+TypeUseTargetNeg.java:54:1: compiler.err.invalid.repeatable.annotation.incompatible.target: BazContainer, Baz
+TypeUseTargetNeg.java:71:1: compiler.err.invalid.repeatable.annotation.incompatible.target: QuxContainer, Qux
+TypeUseTargetNeg.java:81:1: compiler.err.invalid.repeatable.annotation.incompatible.target: QuuxContainer, Quux
+TypeUseTargetNeg.java:92:1: compiler.err.invalid.repeatable.annotation.incompatible.target: QuuuxContainer, Quuux
+6 errors
diff --git a/langtools/test/tools/javac/annotations/repeatingAnnotations/combo/TargetAnnoCombo.java b/langtools/test/tools/javac/annotations/repeatingAnnotations/combo/TargetAnnoCombo.java
index 058b48910cd..66e1c1440b1 100644
--- a/langtools/test/tools/javac/annotations/repeatingAnnotations/combo/TargetAnnoCombo.java
+++ b/langtools/test/tools/javac/annotations/repeatingAnnotations/combo/TargetAnnoCombo.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
/*
* @test
- * @bug 7151010 8006547 8007766
+ * @bug 7151010 8006547 8007766 8029017
* @summary Default test cases for running combinations for Target values
* @build Helper
* @run main TargetAnnoCombo
@@ -145,11 +145,19 @@ public class TargetAnnoCombo {
Set tempBaseSet = EnumSet.noneOf(ElementType.class);
tempBaseSet.addAll(baseAnnotations);
+
// If BaseAnno has TYPE, then ANNOTATION_TYPE is allowed by default.
if (baseAnnotations.contains(TYPE)) {
tempBaseSet.add(ANNOTATION_TYPE);
}
+ // If BaseAnno has TYPE_USE, then add the extra allowed types
+ if (baseAnnotations.contains(TYPE_USE)) {
+ tempBaseSet.add(ANNOTATION_TYPE);
+ tempBaseSet.add(TYPE);
+ tempBaseSet.add(TYPE_PARAMETER);
+ }
+
// If containerAnno has no @Target, only valid case if baseAnnoTarget has
// all targets defined else invalid set.
if (containerAnnotations == null) {
From 7d09fd8b125901889971a8d6bab684db78dc36c4 Mon Sep 17 00:00:00 2001
From: Shanliang Jiang
Date: Thu, 23 Jan 2014 15:17:36 +0100
Subject: [PATCH 071/181] 6980984:
java/lang/management/MemoryMXBean/MemoryManagement is not robust when
getMax() returns -1
Reviewed-by: jbachorik, dfuchs
---
.../MemoryMXBean/MemoryManagement.java | 32 ++++++++++++-------
1 file changed, 20 insertions(+), 12 deletions(-)
diff --git a/jdk/test/java/lang/management/MemoryMXBean/MemoryManagement.java b/jdk/test/java/lang/management/MemoryMXBean/MemoryManagement.java
index d9c8d472456..4077d2a08ef 100644
--- a/jdk/test/java/lang/management/MemoryMXBean/MemoryManagement.java
+++ b/jdk/test/java/lang/management/MemoryMXBean/MemoryManagement.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -23,9 +23,9 @@
/*
* @test
- * @bug 4530538
+ * @bug 4530538 6980984
* @summary Basic unit test of memory management testing:
- * 1) setUsatgeThreshold() and getUsageThreshold()
+ * 1) setUsageThreshold() and getUsageThreshold()
* 2) test low memory detection on the old generation.
*
* @author Mandy Chung
@@ -40,16 +40,18 @@ import javax.management.*;
import javax.management.openmbean.CompositeData;
public class MemoryManagement {
- private static MemoryMXBean mm = ManagementFactory.getMemoryMXBean();
- private static List pools = ManagementFactory.getMemoryPoolMXBeans();
- private static List managers = ManagementFactory.getMemoryManagerMXBeans();
- private static MemoryPoolMXBean mpool = null;
- private static boolean trace = false;
- private static boolean testFailed = false;
+ private static final MemoryMXBean mm = ManagementFactory.getMemoryMXBean();
+ private static final List pools =
+ Collections.synchronizedList(ManagementFactory.getMemoryPoolMXBeans());
+ private static final List managers =
+ Collections.synchronizedList(ManagementFactory.getMemoryManagerMXBeans());
+ private static volatile MemoryPoolMXBean mpool = null;
+ private static volatile boolean trace = false;
+ private static volatile boolean testFailed = false;
private static final int NUM_CHUNKS = 2;
- private static long chunkSize;
+ private static volatile long chunkSize;
+ private static volatile int listenerInvoked = 0;
- private static int listenerInvoked = 0;
static class SensorListener implements NotificationListener {
public void handleNotification(Notification notif, Object handback) {
String type = notif.getType();
@@ -101,7 +103,13 @@ public class MemoryManagement {
// Now set threshold
MemoryUsage mu = mpool.getUsage();
- chunkSize = (mu.getMax() - mu.getUsed()) / 20;
+ long max = mu.getMax();
+ if (max != -1) {
+ chunkSize = (max - mu.getUsed()) / 20;
+ } else { // 6980984
+ System.gc();
+ chunkSize = Runtime.getRuntime().freeMemory()/20;
+ }
newThreshold = mu.getUsed() + (chunkSize * NUM_CHUNKS);
System.out.println("Setting threshold for " + mpool.getName() +
From 4a3aa3a77a87c39fb6ad06768adcd125d406c80c Mon Sep 17 00:00:00 2001
From: Yumin Qi
Date: Thu, 23 Jan 2014 09:40:32 -0800
Subject: [PATCH 072/181] 6651256: jstack: DeleteGlobalRef method call doesn't
lead to descreasing of global refs count shown by jstack
Jni_DeleteGlobalRef does not really release the jni handle, instead, set the handle point to JNIHandles::_deleted_handle which holds an oop instance (java/lang/Object) in Java heap and never be GC'ed. When counting number of global reference, it counts all the handles on the chain list, which includes the already deleted ones.
Reviewed-by: zgu, sla, coleenp
---
hotspot/src/share/vm/runtime/jniHandles.cpp | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/hotspot/src/share/vm/runtime/jniHandles.cpp b/hotspot/src/share/vm/runtime/jniHandles.cpp
index 7a3fb8b4c51..5e918a19ddd 100644
--- a/hotspot/src/share/vm/runtime/jniHandles.cpp
+++ b/hotspot/src/share/vm/runtime/jniHandles.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -195,8 +195,10 @@ private:
int _count;
public:
CountHandleClosure(): _count(0) {}
- virtual void do_oop(oop* unused) {
- _count++;
+ virtual void do_oop(oop* ooph) {
+ if (*ooph != JNIHandles::deleted_handle()) {
+ _count++;
+ }
}
virtual void do_oop(narrowOop* unused) { ShouldNotReachHere(); }
int count() { return _count; }
From 90a44b778da61c8ee531748141686870b2769382 Mon Sep 17 00:00:00 2001
From: Gilles Duboscq
Date: Thu, 23 Jan 2014 16:02:14 -0500
Subject: [PATCH 073/181] 8031427: AllocObject and Unsafe.allocateInstance
segfault for primitive types
The fix just throws an InstantiationException if the Klass is NULL.
Reviewed-by: coleenp, twisti, jrose
---
hotspot/src/share/vm/prims/jni.cpp | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/hotspot/src/share/vm/prims/jni.cpp b/hotspot/src/share/vm/prims/jni.cpp
index 9ced092e7ab..de176d9177b 100644
--- a/hotspot/src/share/vm/prims/jni.cpp
+++ b/hotspot/src/share/vm/prims/jni.cpp
@@ -1355,6 +1355,10 @@ static void jni_invoke_nonstatic(JNIEnv *env, JavaValue* result, jobject receive
static instanceOop alloc_object(jclass clazz, TRAPS) {
KlassHandle k(THREAD, java_lang_Class::as_Klass(JNIHandles::resolve_non_null(clazz)));
+ if (k == NULL) {
+ ResourceMark rm(THREAD);
+ THROW_(vmSymbols::java_lang_InstantiationException(), NULL);
+ }
k()->check_valid_for_instantiation(false, CHECK_NULL);
InstanceKlass::cast(k())->initialize(CHECK_NULL);
instanceOop ih = InstanceKlass::cast(k())->allocate_instance(THREAD);
From 5634f01fdb4fcc9d6023dd2d313410df802f3e4d Mon Sep 17 00:00:00 2001
From: Mandy Chung
Date: Thu, 23 Jan 2014 14:04:52 -0800
Subject: [PATCH 074/181] 4932272: (cl) Remove declaration of the unused
private method ClassLoader.defineClass0
Reviewed-by: alanb
---
jdk/src/share/classes/java/lang/ClassLoader.java | 3 ---
1 file changed, 3 deletions(-)
diff --git a/jdk/src/share/classes/java/lang/ClassLoader.java b/jdk/src/share/classes/java/lang/ClassLoader.java
index 875f5ec8e97..bb4c79abd25 100644
--- a/jdk/src/share/classes/java/lang/ClassLoader.java
+++ b/jdk/src/share/classes/java/lang/ClassLoader.java
@@ -851,9 +851,6 @@ public abstract class ClassLoader {
return c;
}
- private native Class> defineClass0(String name, byte[] b, int off, int len,
- ProtectionDomain pd);
-
private native Class> defineClass1(String name, byte[] b, int off, int len,
ProtectionDomain pd, String source);
From 7e46f00b861b72c5e313193af729d9b74303516b Mon Sep 17 00:00:00 2001
From: Mandy Chung
Date: Thu, 23 Jan 2014 14:06:58 -0800
Subject: [PATCH 075/181] 6516909: (cl spec) ClassLoader.loadClass()
clarification to indicate it shouldn't be used for array classes
Reviewed-by: alanb
---
.../share/classes/java/lang/ClassLoader.java | 7 ++--
jdk/src/share/classes/sun/misc/VM.java | 34 -------------------
2 files changed, 5 insertions(+), 36 deletions(-)
diff --git a/jdk/src/share/classes/java/lang/ClassLoader.java b/jdk/src/share/classes/java/lang/ClassLoader.java
index bb4c79abd25..3905944fc37 100644
--- a/jdk/src/share/classes/java/lang/ClassLoader.java
+++ b/jdk/src/share/classes/java/lang/ClassLoader.java
@@ -172,6 +172,10 @@ import sun.security.util.SecurityConstants;
* "java.net.URLClassLoader$3$1"
*
*
+ * {@code Class} objects for array classes are not created by {@code ClassLoader};
+ * use the {@link Class#forName} method instead.
+ *
+ * @jls 13.1 The Form of a Binary
* @see #resolveClass(Class)
* @since 1.0
*/
@@ -862,8 +866,7 @@ public abstract class ClassLoader {
private boolean checkName(String name) {
if ((name == null) || (name.length() == 0))
return true;
- if ((name.indexOf('/') != -1)
- || (!VM.allowArraySyntax() && (name.charAt(0) == '[')))
+ if ((name.indexOf('/') != -1) || (name.charAt(0) == '['))
return false;
return true;
}
diff --git a/jdk/src/share/classes/sun/misc/VM.java b/jdk/src/share/classes/sun/misc/VM.java
index a464305a201..8b77e2297fa 100644
--- a/jdk/src/share/classes/sun/misc/VM.java
+++ b/jdk/src/share/classes/sun/misc/VM.java
@@ -206,32 +206,6 @@ public class VM {
return pageAlignDirectMemory;
}
- // A user-settable boolean to determine whether ClassLoader.loadClass should
- // accept array syntax. This value may be changed during VM initialization
- // via the system property "sun.lang.ClassLoader.allowArraySyntax".
- //
- // The default for 1.5 is "true", array syntax is allowed. In 1.6, the
- // default will be "false". The presence of this system property to
- // control array syntax allows applications the ability to preview this new
- // behaviour.
- //
- private static boolean defaultAllowArraySyntax = false;
- private static boolean allowArraySyntax = defaultAllowArraySyntax;
-
- // The allowArraySyntax boolean is initialized during system initialization
- // in the saveAndRemoveProperties method.
- //
- // It is initialized based on the value of the system property
- // "sun.lang.ClassLoader.allowArraySyntax". If the system property is not
- // provided, the default for 1.5 is "true". In 1.6, the default will be
- // "false". If the system property is provided, then the value of
- // allowArraySyntax will be equal to "true" if Boolean.parseBoolean()
- // returns "true". Otherwise, the field will be set to "false".
- //
- public static boolean allowArraySyntax() {
- return allowArraySyntax;
- }
-
/**
* Returns true if the given class loader is in the system domain
* in which all permissions are granted.
@@ -296,14 +270,6 @@ public class VM {
if ("true".equals(s))
pageAlignDirectMemory = true;
- // Set a boolean to determine whether ClassLoader.loadClass accepts
- // array syntax. This value is controlled by the system property
- // "sun.lang.ClassLoader.allowArraySyntax".
- s = props.getProperty("sun.lang.ClassLoader.allowArraySyntax");
- allowArraySyntax = (s == null
- ? defaultAllowArraySyntax
- : Boolean.parseBoolean(s));
-
// Remove other private system properties
// used by java.lang.Integer.IntegerCache
props.remove("java.lang.Integer.IntegerCache.high");
From edb5dd324e5a44921a4c44ce58545d25e6d96995 Mon Sep 17 00:00:00 2001
From: David Simms
Date: Fri, 24 Jan 2014 09:28:47 +0100
Subject: [PATCH 076/181] 8028280: ParkEvent leak when running modified
runThese which only loads classes
Use spin lock to manage ParkEvent and PlatformEvent free lists.
Reviewed-by: dholmes, fparain
---
hotspot/src/os/bsd/vm/os_bsd.cpp | 18 +++-
hotspot/src/os/linux/vm/os_linux.cpp | 30 +++++-
hotspot/src/os/solaris/vm/os_solaris.cpp | 11 +-
hotspot/src/os/windows/vm/os_windows.cpp | 10 ++
hotspot/src/share/vm/runtime/os.hpp | 5 +-
hotspot/src/share/vm/runtime/park.cpp | 129 ++++++-----------------
hotspot/src/share/vm/runtime/thread.cpp | 4 +-
7 files changed, 95 insertions(+), 112 deletions(-)
diff --git a/hotspot/src/os/bsd/vm/os_bsd.cpp b/hotspot/src/os/bsd/vm/os_bsd.cpp
index 47e5d16efdc..456daba559c 100644
--- a/hotspot/src/os/bsd/vm/os_bsd.cpp
+++ b/hotspot/src/os/bsd/vm/os_bsd.cpp
@@ -2636,9 +2636,21 @@ int os::sleep(Thread* thread, jlong millis, bool interruptible) {
}
}
-int os::naked_sleep() {
- // %% make the sleep time an integer flag. for now use 1 millisec.
- return os::sleep(Thread::current(), 1, false);
+void os::naked_short_sleep(jlong ms) {
+ struct timespec req;
+
+ assert(ms < 1000, "Un-interruptable sleep, short time use only");
+ req.tv_sec = 0;
+ if (ms > 0) {
+ req.tv_nsec = (ms % 1000) * 1000000;
+ }
+ else {
+ req.tv_nsec = 1;
+ }
+
+ nanosleep(&req, NULL);
+
+ return;
}
// Sleep forever; naked call to OS-specific sleep; use with CAUTION
diff --git a/hotspot/src/os/linux/vm/os_linux.cpp b/hotspot/src/os/linux/vm/os_linux.cpp
index 54149e18253..d0751f005ad 100644
--- a/hotspot/src/os/linux/vm/os_linux.cpp
+++ b/hotspot/src/os/linux/vm/os_linux.cpp
@@ -3871,9 +3871,33 @@ int os::sleep(Thread* thread, jlong millis, bool interruptible) {
}
}
-int os::naked_sleep() {
- // %% make the sleep time an integer flag. for now use 1 millisec.
- return os::sleep(Thread::current(), 1, false);
+//
+// Short sleep, direct OS call.
+//
+// Note: certain versions of Linux CFS scheduler (since 2.6.23) do not guarantee
+// sched_yield(2) will actually give up the CPU:
+//
+// * Alone on this pariticular CPU, keeps running.
+// * Before the introduction of "skip_buddy" with "compat_yield" disabled
+// (pre 2.6.39).
+//
+// So calling this with 0 is an alternative.
+//
+void os::naked_short_sleep(jlong ms) {
+ struct timespec req;
+
+ assert(ms < 1000, "Un-interruptable sleep, short time use only");
+ req.tv_sec = 0;
+ if (ms > 0) {
+ req.tv_nsec = (ms % 1000) * 1000000;
+ }
+ else {
+ req.tv_nsec = 1;
+ }
+
+ nanosleep(&req, NULL);
+
+ return;
}
// Sleep forever; naked call to OS-specific sleep; use with CAUTION
diff --git a/hotspot/src/os/solaris/vm/os_solaris.cpp b/hotspot/src/os/solaris/vm/os_solaris.cpp
index a4d0178c887..533bbb76650 100644
--- a/hotspot/src/os/solaris/vm/os_solaris.cpp
+++ b/hotspot/src/os/solaris/vm/os_solaris.cpp
@@ -3540,9 +3540,14 @@ int os::sleep(Thread* thread, jlong millis, bool interruptible) {
return os_sleep(millis, interruptible);
}
-int os::naked_sleep() {
- // %% make the sleep time an integer flag. for now use 1 millisec.
- return os_sleep(1, false);
+void os::naked_short_sleep(jlong ms) {
+ assert(ms < 1000, "Un-interruptable sleep, short time use only");
+
+ // usleep is deprecated and removed from POSIX, in favour of nanosleep, but
+ // Solaris requires -lrt for this.
+ usleep((ms * 1000));
+
+ return;
}
// Sleep forever; naked call to OS-specific sleep; use with CAUTION
diff --git a/hotspot/src/os/windows/vm/os_windows.cpp b/hotspot/src/os/windows/vm/os_windows.cpp
index fe800d7a284..5cf47426595 100644
--- a/hotspot/src/os/windows/vm/os_windows.cpp
+++ b/hotspot/src/os/windows/vm/os_windows.cpp
@@ -3486,6 +3486,16 @@ int os::sleep(Thread* thread, jlong ms, bool interruptable) {
return result;
}
+//
+// Short sleep, direct OS call.
+//
+// ms = 0, means allow others (if any) to run.
+//
+void os::naked_short_sleep(jlong ms) {
+ assert(ms < 1000, "Un-interruptable sleep, short time use only");
+ Sleep(ms);
+}
+
// Sleep forever; naked call to OS-specific sleep; use with CAUTION
void os::infinite_sleep() {
while (true) { // sleep forever ...
diff --git a/hotspot/src/share/vm/runtime/os.hpp b/hotspot/src/share/vm/runtime/os.hpp
index 17fcd3bdd79..47ebeb6bbb5 100644
--- a/hotspot/src/share/vm/runtime/os.hpp
+++ b/hotspot/src/share/vm/runtime/os.hpp
@@ -430,7 +430,10 @@ class os: AllStatic {
static intx current_thread_id();
static int current_process_id();
static int sleep(Thread* thread, jlong ms, bool interruptable);
- static int naked_sleep();
+ // Short standalone OS sleep suitable for slow path spin loop.
+ // Ignores Thread.interrupt() (so keep it short).
+ // ms = 0, will sleep for the least amount of time allowed by the OS.
+ static void naked_short_sleep(jlong ms);
static void infinite_sleep(); // never returns, use with CAUTION
static void yield(); // Yields to all threads with same priority
enum YieldResult {
diff --git a/hotspot/src/share/vm/runtime/park.cpp b/hotspot/src/share/vm/runtime/park.cpp
index 6380570ef50..0ab5b5b6786 100644
--- a/hotspot/src/share/vm/runtime/park.cpp
+++ b/hotspot/src/share/vm/runtime/park.cpp
@@ -59,58 +59,22 @@ ParkEvent * ParkEvent::Allocate (Thread * t) {
// Start by trying to recycle an existing but unassociated
// ParkEvent from the global free list.
- for (;;) {
- ev = FreeList ;
- if (ev == NULL) break ;
- // 1: Detach - sequester or privatize the list
- // Tantamount to ev = Swap (&FreeList, NULL)
- if (Atomic::cmpxchg_ptr (NULL, &FreeList, ev) != ev) {
- continue ;
+ // Using a spin lock since we are part of the mutex impl.
+ // 8028280: using concurrent free list without memory management can leak
+ // pretty badly it turns out.
+ Thread::SpinAcquire(&ListLock, "ParkEventFreeListAllocate");
+ {
+ ev = FreeList;
+ if (ev != NULL) {
+ FreeList = ev->FreeNext;
}
-
- // We've detached the list. The list in-hand is now
- // local to this thread. This thread can operate on the
- // list without risk of interference from other threads.
- // 2: Extract -- pop the 1st element from the list.
- ParkEvent * List = ev->FreeNext ;
- if (List == NULL) break ;
- for (;;) {
- // 3: Try to reattach the residual list
- guarantee (List != NULL, "invariant") ;
- ParkEvent * Arv = (ParkEvent *) Atomic::cmpxchg_ptr (List, &FreeList, NULL) ;
- if (Arv == NULL) break ;
-
- // New nodes arrived. Try to detach the recent arrivals.
- if (Atomic::cmpxchg_ptr (NULL, &FreeList, Arv) != Arv) {
- continue ;
- }
- guarantee (Arv != NULL, "invariant") ;
- // 4: Merge Arv into List
- ParkEvent * Tail = List ;
- while (Tail->FreeNext != NULL) Tail = Tail->FreeNext ;
- Tail->FreeNext = Arv ;
- }
- break ;
}
+ Thread::SpinRelease(&ListLock);
if (ev != NULL) {
guarantee (ev->AssociatedWith == NULL, "invariant") ;
} else {
// Do this the hard way -- materialize a new ParkEvent.
- // In rare cases an allocating thread might detach a long list --
- // installing null into FreeList -- and then stall or be obstructed.
- // A 2nd thread calling Allocate() would see FreeList == null.
- // The list held privately by the 1st thread is unavailable to the 2nd thread.
- // In that case the 2nd thread would have to materialize a new ParkEvent,
- // even though free ParkEvents existed in the system. In this case we end up
- // with more ParkEvents in circulation than we need, but the race is
- // rare and the outcome is benign. Ideally, the # of extant ParkEvents
- // is equal to the maximum # of threads that existed at any one time.
- // Because of the race mentioned above, segments of the freelist
- // can be transiently inaccessible. At worst we may end up with the
- // # of ParkEvents in circulation slightly above the ideal.
- // Note that if we didn't have the TSM/immortal constraint, then
- // when reattaching, above, we could trim the list.
ev = new ParkEvent () ;
guarantee ((intptr_t(ev) & 0xFF) == 0, "invariant") ;
}
@@ -124,13 +88,14 @@ void ParkEvent::Release (ParkEvent * ev) {
if (ev == NULL) return ;
guarantee (ev->FreeNext == NULL , "invariant") ;
ev->AssociatedWith = NULL ;
- for (;;) {
- // Push ev onto FreeList
- // The mechanism is "half" lock-free.
- ParkEvent * List = FreeList ;
- ev->FreeNext = List ;
- if (Atomic::cmpxchg_ptr (ev, &FreeList, List) == List) break ;
+ // Note that if we didn't have the TSM/immortal constraint, then
+ // when reattaching we could trim the list.
+ Thread::SpinAcquire(&ListLock, "ParkEventFreeListRelease");
+ {
+ ev->FreeNext = FreeList;
+ FreeList = ev;
}
+ Thread::SpinRelease(&ListLock);
}
// Override operator new and delete so we can ensure that the
@@ -164,56 +129,21 @@ Parker * Parker::Allocate (JavaThread * t) {
// Start by trying to recycle an existing but unassociated
// Parker from the global free list.
- for (;;) {
- p = FreeList ;
- if (p == NULL) break ;
- // 1: Detach
- // Tantamount to p = Swap (&FreeList, NULL)
- if (Atomic::cmpxchg_ptr (NULL, &FreeList, p) != p) {
- continue ;
+ // 8028280: using concurrent free list without memory management can leak
+ // pretty badly it turns out.
+ Thread::SpinAcquire(&ListLock, "ParkerFreeListAllocate");
+ {
+ p = FreeList;
+ if (p != NULL) {
+ FreeList = p->FreeNext;
}
-
- // We've detached the list. The list in-hand is now
- // local to this thread. This thread can operate on the
- // list without risk of interference from other threads.
- // 2: Extract -- pop the 1st element from the list.
- Parker * List = p->FreeNext ;
- if (List == NULL) break ;
- for (;;) {
- // 3: Try to reattach the residual list
- guarantee (List != NULL, "invariant") ;
- Parker * Arv = (Parker *) Atomic::cmpxchg_ptr (List, &FreeList, NULL) ;
- if (Arv == NULL) break ;
-
- // New nodes arrived. Try to detach the recent arrivals.
- if (Atomic::cmpxchg_ptr (NULL, &FreeList, Arv) != Arv) {
- continue ;
- }
- guarantee (Arv != NULL, "invariant") ;
- // 4: Merge Arv into List
- Parker * Tail = List ;
- while (Tail->FreeNext != NULL) Tail = Tail->FreeNext ;
- Tail->FreeNext = Arv ;
- }
- break ;
}
+ Thread::SpinRelease(&ListLock);
if (p != NULL) {
guarantee (p->AssociatedWith == NULL, "invariant") ;
} else {
// Do this the hard way -- materialize a new Parker..
- // In rare cases an allocating thread might detach
- // a long list -- installing null into FreeList --and
- // then stall. Another thread calling Allocate() would see
- // FreeList == null and then invoke the ctor. In this case we
- // end up with more Parkers in circulation than we need, but
- // the race is rare and the outcome is benign.
- // Ideally, the # of extant Parkers is equal to the
- // maximum # of threads that existed at any one time.
- // Because of the race mentioned above, segments of the
- // freelist can be transiently inaccessible. At worst
- // we may end up with the # of Parkers in circulation
- // slightly above the ideal.
p = new Parker() ;
}
p->AssociatedWith = t ; // Associate p with t
@@ -227,11 +157,12 @@ void Parker::Release (Parker * p) {
guarantee (p->AssociatedWith != NULL, "invariant") ;
guarantee (p->FreeNext == NULL , "invariant") ;
p->AssociatedWith = NULL ;
- for (;;) {
- // Push p onto FreeList
- Parker * List = FreeList ;
- p->FreeNext = List ;
- if (Atomic::cmpxchg_ptr (p, &FreeList, List) == List) break ;
+
+ Thread::SpinAcquire(&ListLock, "ParkerFreeListRelease");
+ {
+ p->FreeNext = FreeList;
+ FreeList = p;
}
+ Thread::SpinRelease(&ListLock);
}
diff --git a/hotspot/src/share/vm/runtime/thread.cpp b/hotspot/src/share/vm/runtime/thread.cpp
index a7b8068e211..c5a1145a74a 100644
--- a/hotspot/src/share/vm/runtime/thread.cpp
+++ b/hotspot/src/share/vm/runtime/thread.cpp
@@ -4446,9 +4446,7 @@ void Thread::SpinAcquire (volatile int * adr, const char * LockName) {
++ctr ;
if ((ctr & 0xFFF) == 0 || !os::is_MP()) {
if (Yields > 5) {
- // Consider using a simple NakedSleep() instead.
- // Then SpinAcquire could be called by non-JVM threads
- Thread::current()->_ParkEvent->park(1) ;
+ os::naked_short_sleep(1);
} else {
os::NakedYield() ;
++Yields ;
From 99aae5c1fd00b81a892c38c12dfb31d5e5500dab Mon Sep 17 00:00:00 2001
From: Andreas Lundblad
Date: Fri, 24 Jan 2014 09:39:51 +0100
Subject: [PATCH 077/181] 8028267: sun.tools.javac.util.Bits contains a
main-method with test code
Removed main method from Bits and added proper unit testing.
Reviewed-by: jfranck
---
.../com/sun/tools/javac/util/Bits.java | 23 +-
langtools/test/tools/javac/util/BitsTest.java | 204 ++++++++++++++++++
2 files changed, 205 insertions(+), 22 deletions(-)
create mode 100644 langtools/test/tools/javac/util/BitsTest.java
diff --git a/langtools/src/share/classes/com/sun/tools/javac/util/Bits.java b/langtools/src/share/classes/com/sun/tools/javac/util/Bits.java
index f8db31a4665..eca872b987d 100644
--- a/langtools/src/share/classes/com/sun/tools/javac/util/Bits.java
+++ b/langtools/src/share/classes/com/sun/tools/javac/util/Bits.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -345,25 +345,4 @@ public class Bits {
}
}
- /** Test Bits.nextBit(int). */
- public static void main(String[] args) {
- java.util.Random r = new java.util.Random();
- Bits bits = new Bits();
- for (int i=0; i<125; i++) {
- int k;
- do {
- k = r.nextInt(250);
- } while (bits.isMember(k));
- System.out.println("adding " + k);
- bits.incl(k);
- }
- int count = 0;
- for (int i = bits.nextBit(0); i >= 0; i = bits.nextBit(i+1)) {
- System.out.println("found " + i);
- count ++;
- }
- if (count != 125) {
- throw new Error();
- }
- }
}
diff --git a/langtools/test/tools/javac/util/BitsTest.java b/langtools/test/tools/javac/util/BitsTest.java
new file mode 100644
index 00000000000..149ff473961
--- /dev/null
+++ b/langtools/test/tools/javac/util/BitsTest.java
@@ -0,0 +1,204 @@
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * @test
+ * @bug 8028267
+ * @summary Unit tests for the com.sun.tools.javac.util.Bits class.
+ * @run main BitsTest
+ */
+
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+import com.sun.tools.javac.util.Bits;
+
+public class BitsTest {
+
+ final static int[] samples = { 0, 1, 7, 16, 19, 31, 32, 33, 63, 64 };
+ final static int LENGTH = samples[samples.length - 1] + 50;
+
+ public static void main(String... args) throws Exception {
+
+ testIncl();
+ testInclRange();
+ testDup();
+ testClear();
+ testExcl();
+ testExcludeFrom();
+ testBinOps();
+ testNextBit();
+
+ }
+
+
+ // Test Bits.incl
+ static void testIncl() {
+ for (int a : samples) {
+ for (int b : samples) {
+ Bits bits = new Bits();
+ bits.incl(a);
+ if (a != b)
+ bits.incl(b);
+ for (int i = 0; i < LENGTH; i++)
+ assert bits.isMember(i) == (i == a || i == b);
+ }
+ }
+ }
+
+
+ // Test Bits.excl
+ static void testExcl() {
+ for (int a : samples) {
+ for (int b : samples) {
+ Bits bits = new Bits();
+ bits.inclRange(0, LENGTH);
+ bits.excl(a);
+ if (a != b)
+ bits.excl(b);
+ for (int i = 0; i < LENGTH; i++)
+ assert !bits.isMember(i) == (i == a || i == b);
+ }
+ }
+ }
+
+
+ // Test Bits.inclRange with various ranges.
+ static void testInclRange() {
+ for (int i = 0; i < samples.length; i++) {
+ for (int j = i; j < samples.length; j++)
+ testInclRangeHelper(samples[i], samples[j]);
+ }
+ }
+
+
+ // Tests Bits.inclRange for the given range.
+ static void testInclRangeHelper(int from, int to) {
+ Bits bits = new Bits();
+ bits.inclRange(from, to);
+ for (int i = 0; i < LENGTH; i++)
+ assert bits.isMember(i) == (from <= i && i < to);
+ }
+
+
+ // Test Bits.dup
+ static void testDup() {
+ Bits bits = sampleBits();
+ Bits dupBits = bits.dup();
+ assertEquals(LENGTH, bits, dupBits);
+ }
+
+
+ // Make sure Bits.clear clears all bits.
+ static void testClear() {
+ Bits bits = sampleBits();
+ bits.clear();
+ for (int i = 0; i < LENGTH; i++)
+ assert !bits.isMember(i);
+ }
+
+
+ // Test Bits.excludeFrom
+ static void testExcludeFrom() {
+ Bits bits = sampleBits();
+
+ int half = samples.length / 2;
+ Set expected = new HashSet();
+ for (int i : Arrays.copyOf(samples, half))
+ expected.add(i);
+
+ bits.excludeFrom(samples[half]);
+
+ for (int i = 0; i < LENGTH; i++)
+ assert bits.isMember(i) == expected.contains(i);
+ }
+
+
+ // Test andSet, orSet, diffSet, xorSet
+ static void testBinOps() {
+ int[] a = { 1630757163, -592623705 };
+ int[] b = { 1062404889, 1969380693 };
+
+ int[] or = { a[0] | b[0], a[1] | b[1] };
+ int[] and = { a[0] & b[0], a[1] & b[1] };
+ int[] xor = { a[0] ^ b[0], a[1] ^ b[1] };
+ int[] diff = { a[0] & ~b[0], a[1] & ~b[1] };
+
+ assertEquals(64, fromInts(a).orSet (fromInts(b)), fromInts(or));
+ assertEquals(64, fromInts(a).andSet (fromInts(b)), fromInts(and));
+ assertEquals(64, fromInts(a).xorSet (fromInts(b)), fromInts(xor));
+ assertEquals(64, fromInts(a).diffSet(fromInts(b)), fromInts(diff));
+
+ }
+
+
+ // Create a Bits-instance based on bits in 'ints' argument.
+ static Bits fromInts(int[] ints) {
+ Bits bits = new Bits();
+ for (int bit = 0; bit < ints.length * 32; bit++)
+ if ((ints[bit / 32] & (1 << (bit % 32))) != 0)
+ bits.incl(bit);
+ return bits;
+ }
+
+
+ // Asserts that two Bits-instances are equal up to first 'len' bits.
+ static void assertEquals(int len, Bits a, Bits b) {
+ for (int i = 0; i < len; i++)
+ assert a.isMember(i) == b.isMember(i);
+ }
+
+
+ // Test Bits.nextBit
+ static void testNextBit() {
+ Bits bits = sampleBits();
+
+ int index = 0;
+ for (int bit = 0; bit < LENGTH; bit++) {
+
+ int expected;
+
+ // Passed last sample index?
+ if (index < samples.length) {
+ expected = samples[index];
+ if (bit == samples[index])
+ index++;
+ } else {
+ expected = -1;
+ }
+
+ assert bits.nextBit(bit) == expected;
+ }
+ }
+
+
+ // Convenience method: Generate a Bits-instance based on samples.
+ static Bits sampleBits() {
+ Bits bits = new Bits();
+ for (int i : samples)
+ bits.incl(i);
+ return bits;
+ }
+
+}
From 65a9d3695b35e011564459ffee1e557859a26c0d Mon Sep 17 00:00:00 2001
From: Alan Bateman
Date: Fri, 24 Jan 2014 11:50:33 +0000
Subject: [PATCH 078/181] 8032456:
vm/jni/Miscellaneous/misc001/misc00101m1/misc00101m1.html failing on OS X
Reviewed-by: sla, chegar, psandoz
---
jdk/src/solaris/native/common/jni_util_md.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/jdk/src/solaris/native/common/jni_util_md.c b/jdk/src/solaris/native/common/jni_util_md.c
index e9e0f4e0f3f..42ab2de0037 100644
--- a/jdk/src/solaris/native/common/jni_util_md.c
+++ b/jdk/src/solaris/native/common/jni_util_md.c
@@ -23,6 +23,8 @@
* questions.
*/
+#include
+
#include "jni.h"
#include "jni_util.h"
#include "dlfcn.h"
@@ -40,7 +42,11 @@ void* getProcessHandle() {
if (procHandle != NULL) {
return procHandle;
}
+#ifdef __APPLE__
+ procHandle = (void*)dlopen(NULL, RTLD_FIRST);
+#else
procHandle = (void*)dlopen(NULL, RTLD_LAZY);
+#endif
return procHandle;
}
From 39f19c2f76425c2398e0ae6835204cfab68db649 Mon Sep 17 00:00:00 2001
From: Harold Seigel
Date: Fri, 24 Jan 2014 08:13:42 -0500
Subject: [PATCH 079/181] 8028553: The JVM should not throw VerifyError when
'overriding' a static final method in a superclass
Check if method is static before throwing exception.
Reviewed-by: kamg, coleenp, lfoltan, fparain
---
.../share/vm/classfile/classFileParser.cpp | 6 +-
.../test/runtime/finalStatic/FinalStatic.java | 142 ++++++++++++++++++
2 files changed, 145 insertions(+), 3 deletions(-)
create mode 100644 hotspot/test/runtime/finalStatic/FinalStatic.java
diff --git a/hotspot/src/share/vm/classfile/classFileParser.cpp b/hotspot/src/share/vm/classfile/classFileParser.cpp
index 66d6785a1c6..f45bb750269 100644
--- a/hotspot/src/share/vm/classfile/classFileParser.cpp
+++ b/hotspot/src/share/vm/classfile/classFileParser.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -4504,8 +4504,8 @@ void ClassFileParser::check_final_method_override(instanceKlassHandle this_klass
break; // didn't find any match; get out
}
- if (super_m->is_final() &&
- // matching method in super is final
+ if (super_m->is_final() && !super_m->is_static() &&
+ // matching method in super is final, and not static
(Reflection::verify_field_access(this_klass(),
super_m->method_holder(),
super_m->method_holder(),
diff --git a/hotspot/test/runtime/finalStatic/FinalStatic.java b/hotspot/test/runtime/finalStatic/FinalStatic.java
new file mode 100644
index 00000000000..314b1928f41
--- /dev/null
+++ b/hotspot/test/runtime/finalStatic/FinalStatic.java
@@ -0,0 +1,142 @@
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8028553
+ * @summary Test that VerifyError is not thrown when 'overriding' a static method.
+ * @run main FinalStatic
+ */
+
+import java.lang.reflect.*;
+import jdk.internal.org.objectweb.asm.ClassWriter;
+import jdk.internal.org.objectweb.asm.MethodVisitor;
+import jdk.internal.org.objectweb.asm.Opcodes;
+
+/*
+ * class A { static final int m() {return FAIL; } }
+ * class B extends A { int m() { return PASS; } }
+ * class FinalStatic {
+ * public static void main () {
+ * Object b = new B();
+ * b.m();
+ * }
+ * }
+ */
+public class FinalStatic {
+
+ static final String CLASS_NAME_A = "A";
+ static final String CLASS_NAME_B = "B";
+ static final int FAILED = 0;
+ static final int EXPECTED = 1234;
+
+ static class TestClassLoader extends ClassLoader implements Opcodes {
+
+ @Override
+ public Class findClass(String name) throws ClassNotFoundException {
+ byte[] b;
+ try {
+ b = loadClassData(name);
+ } catch (Throwable th) {
+ // th.printStackTrace();
+ throw new ClassNotFoundException("Loading error", th);
+ }
+ return defineClass(name, b, 0, b.length);
+ }
+
+ private byte[] loadClassData(String name) throws Exception {
+ ClassWriter cw = new ClassWriter(0);
+ MethodVisitor mv;
+ switch (name) {
+ case CLASS_NAME_A:
+ cw.visit(52, ACC_SUPER | ACC_PUBLIC, CLASS_NAME_A, null, "java/lang/Object", null);
+ {
+ mv = cw.visitMethod(ACC_PUBLIC, "", "()V", null, null);
+ mv.visitCode();
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitMethodInsn(INVOKESPECIAL, "java/lang/Object", "", "()V");
+ mv.visitInsn(RETURN);
+ mv.visitMaxs(1, 1);
+ mv.visitEnd();
+
+ mv = cw.visitMethod(ACC_FINAL | ACC_STATIC, "m", "()I", null, null);
+ mv.visitCode();
+ mv.visitLdcInsn(FAILED);
+ mv.visitInsn(IRETURN);
+ mv.visitMaxs(1, 1);
+ mv.visitEnd();
+ }
+ break;
+ case CLASS_NAME_B:
+ cw.visit(52, ACC_SUPER | ACC_PUBLIC, CLASS_NAME_B, null, CLASS_NAME_A, null);
+ {
+ mv = cw.visitMethod(ACC_PUBLIC, "", "()V", null, null);
+ mv.visitCode();
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitMethodInsn(INVOKESPECIAL, CLASS_NAME_A, "", "()V");
+ mv.visitInsn(RETURN);
+ mv.visitMaxs(1, 1);
+ mv.visitEnd();
+
+ mv = cw.visitMethod(ACC_PUBLIC, "m", "()I", null, null);
+ mv.visitCode();
+ mv.visitLdcInsn(EXPECTED);
+ mv.visitInsn(IRETURN);
+ mv.visitMaxs(1, 1);
+ mv.visitEnd();
+
+ }
+ break;
+ default:
+ break;
+ }
+ cw.visitEnd();
+
+ return cw.toByteArray();
+ }
+ }
+
+ public static void main(String[] args) throws Exception {
+ TestClassLoader tcl = new TestClassLoader();
+ Class> a = tcl.loadClass(CLASS_NAME_A);
+ Class> b = tcl.loadClass(CLASS_NAME_B);
+ Object inst = b.newInstance();
+ Method[] meths = b.getDeclaredMethods();
+
+ Method m = meths[0];
+ int mod = m.getModifiers();
+ if ((mod & Modifier.FINAL) != 0) {
+ throw new Exception("FAILED: " + m + " is FINAL");
+ }
+ if ((mod & Modifier.STATIC) != 0) {
+ throw new Exception("FAILED: " + m + " is STATIC");
+ }
+
+ m.setAccessible(true);
+ if (!m.invoke(inst).equals(EXPECTED)) {
+ throw new Exception("FAILED: " + EXPECTED + " from " + m);
+ }
+
+ System.out.println("Passed.");
+ }
+}
From 69f2f2fad49fc67a96574d6b3c75c01eaa0ca1c6 Mon Sep 17 00:00:00 2001
From: Matherey Nunez
Date: Mon, 27 Jan 2014 12:45:03 -0800
Subject: [PATCH 080/181] 8027175: Existing regression tests in tl/langtools
and tl/jdk need to be updated for @bug keyword
Reviewed-by: jjg, ksrini
---
langtools/test/tools/javac/api/TestJavacTaskScanner.java | 4 ++--
langtools/test/tools/javac/lambda/InnerConstructor.java | 4 ++--
.../javac/lambda/intersection/IntersectionTargetTypeTest.java | 4 ++--
langtools/test/tools/javac/lambda/separate/Test.java | 3 ++-
langtools/test/tools/javac/resolve/ResolveHarness.java | 4 ++--
5 files changed, 10 insertions(+), 9 deletions(-)
diff --git a/langtools/test/tools/javac/api/TestJavacTaskScanner.java b/langtools/test/tools/javac/api/TestJavacTaskScanner.java
index 7103ba74cdd..a02ca67a033 100644
--- a/langtools/test/tools/javac/api/TestJavacTaskScanner.java
+++ b/langtools/test/tools/javac/api/TestJavacTaskScanner.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
/*
* @test
- * @bug 4813736
+ * @bug 4813736 8013256
* @summary Additional functionality test of task and JSR 269
* @author Peter von der Ah\u00e9
* @library ./lib
diff --git a/langtools/test/tools/javac/lambda/InnerConstructor.java b/langtools/test/tools/javac/lambda/InnerConstructor.java
index 3675020c9d8..28a33908a08 100644
--- a/langtools/test/tools/javac/lambda/InnerConstructor.java
+++ b/langtools/test/tools/javac/lambda/InnerConstructor.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
/*
* @test
- * @bug 8003280
+ * @bug 8003280 8003306
* @summary Add lambda tests
* Regression test JDK-8003306 inner class constructor in lambda
* @author Robert Field
diff --git a/langtools/test/tools/javac/lambda/intersection/IntersectionTargetTypeTest.java b/langtools/test/tools/javac/lambda/intersection/IntersectionTargetTypeTest.java
index 36e18611ba5..4b8ec208d15 100644
--- a/langtools/test/tools/javac/lambda/intersection/IntersectionTargetTypeTest.java
+++ b/langtools/test/tools/javac/lambda/intersection/IntersectionTargetTypeTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
/*
* @test
- * @bug 8002099
+ * @bug 8002099 8010822
* @summary Add support for intersection types in cast expression
*/
diff --git a/langtools/test/tools/javac/lambda/separate/Test.java b/langtools/test/tools/javac/lambda/separate/Test.java
index 7aa6b2c5c08..14bfd493500 100644
--- a/langtools/test/tools/javac/lambda/separate/Test.java
+++ b/langtools/test/tools/javac/lambda/separate/Test.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -23,6 +23,7 @@
/*
* @test
+ * @bug 8008708
* @compile Foo.java
* @compile Test.java
*/
diff --git a/langtools/test/tools/javac/resolve/ResolveHarness.java b/langtools/test/tools/javac/resolve/ResolveHarness.java
index 2512f54f081..7d79f1c851f 100644
--- a/langtools/test/tools/javac/resolve/ResolveHarness.java
+++ b/langtools/test/tools/javac/resolve/ResolveHarness.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
/*
* @test
- * @bug 7098660
+ * @bug 7098660 8014649
* @summary Write better overload resolution/inference tests
* @library /tools/javac/lib
* @build JavacTestingAbstractProcessor ResolveHarness
From 1bb2245091145713d6ac8a31c3d40b3e68c6aaf7 Mon Sep 17 00:00:00 2001
From: Eric McCorkle
Date: Fri, 24 Jan 2014 08:47:32 -0500
Subject: [PATCH 081/181] 8032587: Change silent failure in Attr.java to
assertion
Change silent failure in Attr.fromAttributes into a non-null assertion
Reviewed-by: jfranck
---
.../classes/com/sun/tools/javac/comp/Attr.java | 14 ++------------
1 file changed, 2 insertions(+), 12 deletions(-)
diff --git a/langtools/src/share/classes/com/sun/tools/javac/comp/Attr.java b/langtools/src/share/classes/com/sun/tools/javac/comp/Attr.java
index e8b49d9a9be..0da5864fb9f 100644
--- a/langtools/src/share/classes/com/sun/tools/javac/comp/Attr.java
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Attr.java
@@ -4093,18 +4093,8 @@ public class Attr extends JCTree.Visitor {
ListBuffer buf = new ListBuffer<>();
for (JCAnnotation anno : annotations) {
- if (anno.attribute != null) {
- // TODO: this null-check is only needed for an obscure
- // ordering issue, where annotate.flush is called when
- // the attribute is not set yet. For an example failure
- // try the referenceinfos/NestedTypes.java test.
- // Any better solutions?
- buf.append((Attribute.TypeCompound) anno.attribute);
- }
- // Eventually we will want to throw an exception here, but
- // we can't do that just yet, because it gets triggered
- // when attempting to attach an annotation that isn't
- // defined.
+ Assert.checkNonNull(anno.attribute);
+ buf.append((Attribute.TypeCompound) anno.attribute);
}
return buf.toList();
}
From d5a62b140122674175ab562ce89e0306fbb344c1 Mon Sep 17 00:00:00 2001
From: Alan Bateman
Date: Fri, 24 Jan 2014 13:54:16 +0000
Subject: [PATCH 082/181] 8032451: (dc) DatagramChannel.join should support
include-mode filtering on OS X
Reviewed-by: chegar
---
jdk/src/solaris/native/sun/nio/ch/Net.c | 78 ++++++-------------------
1 file changed, 18 insertions(+), 60 deletions(-)
diff --git a/jdk/src/solaris/native/sun/nio/ch/Net.c b/jdk/src/solaris/native/sun/nio/ch/Net.c
index 679a9d8d0da..beeaeff12f4 100644
--- a/jdk/src/solaris/native/sun/nio/ch/Net.c
+++ b/jdk/src/solaris/native/sun/nio/ch/Net.c
@@ -47,57 +47,20 @@
*/
#ifdef __linux__
#ifndef IP_MULTICAST_ALL
- #define IP_MULTICAST_ALL 49
+ #define IP_MULTICAST_ALL 49
#endif
#endif
-#ifdef _ALLBSD_SOURCE
-
-#ifndef IP_BLOCK_SOURCE
-
-#define IP_ADD_SOURCE_MEMBERSHIP 70 /* join a source-specific group */
-#define IP_DROP_SOURCE_MEMBERSHIP 71 /* drop a single source */
-#define IP_BLOCK_SOURCE 72 /* block a source */
-#define IP_UNBLOCK_SOURCE 73 /* unblock a source */
-
-#endif /* IP_BLOCK_SOURCE */
-
-#ifndef MCAST_BLOCK_SOURCE
-
-#define MCAST_JOIN_SOURCE_GROUP 82 /* join a source-specific group */
-#define MCAST_LEAVE_SOURCE_GROUP 83 /* leave a single source */
-#define MCAST_BLOCK_SOURCE 84 /* block a source */
-#define MCAST_UNBLOCK_SOURCE 85 /* unblock a source */
-
-#endif /* MCAST_BLOCK_SOURCE */
-
-#ifndef IPV6_ADD_MEMBERSHIP
-
-#define IPV6_ADD_MEMBERSHIP IPV6_JOIN_GROUP
-#define IPV6_DROP_MEMBERSHIP IPV6_LEAVE_GROUP
-
-#endif /* IPV6_ADD_MEMBERSHIP */
-
-struct my_ip_mreq_source {
- struct in_addr imr_multiaddr;
- struct in_addr imr_interface;
- struct in_addr imr_sourceaddr;
-};
-
-struct my_group_source_req {
- uint32_t gsr_interface; /* interface index */
- struct sockaddr_storage gsr_group; /* group address */
- struct sockaddr_storage gsr_source; /* source address */
-};
-
-#else /* _ALLBSD_SOURCE */
-
-#define my_ip_mreq_source ip_mreq_source
-#define my_group_source_req group_source_req
-
+/**
+ * IPV6_ADD_MEMBERSHIP/IPV6_DROP_MEMBERSHIP may not be defined on OSX
+ */
+#ifdef __APPLE__
+ #ifndef IPV6_ADD_MEMBERSHIP
+ #define IPV6_ADD_MEMBERSHIP IPV6_JOIN_GROUP
+ #define IPV6_DROP_MEMBERSHIP IPV6_LEAVE_GROUP
+ #endif
#endif
-
#define COPY_INET6_ADDRESS(env, source, target) \
(*env)->GetByteArrayRegion(env, source, 0, 16, target)
@@ -107,7 +70,7 @@ struct my_group_source_req {
*/
#ifdef AF_INET6
static void initGroupSourceReq(JNIEnv* env, jbyteArray group, jint index,
- jbyteArray source, struct my_group_source_req* req)
+ jbyteArray source, struct group_source_req* req)
{
struct sockaddr_in6* sin6;
@@ -143,7 +106,7 @@ Java_sun_nio_ch_Net_isExclusiveBindAvailable(JNIEnv *env, jclass clazz) {
JNIEXPORT jboolean JNICALL
Java_sun_nio_ch_Net_canIPv6SocketJoinIPv4Group0(JNIEnv* env, jclass cl)
{
-#ifdef MACOSX
+#ifdef __APPLE__
/* for now IPv6 sockets cannot join IPv4 multicast groups */
return JNI_FALSE;
#else
@@ -460,7 +423,7 @@ Java_sun_nio_ch_Net_joinOrDrop4(JNIEnv *env, jobject this, jboolean join, jobjec
jint group, jint interf, jint source)
{
struct ip_mreq mreq;
- struct my_ip_mreq_source mreq_source;
+ struct ip_mreq_source mreq_source;
int opt, n, optlen;
void* optval;
@@ -471,17 +434,12 @@ Java_sun_nio_ch_Net_joinOrDrop4(JNIEnv *env, jobject this, jboolean join, jobjec
optval = (void*)&mreq;
optlen = sizeof(mreq);
} else {
-#ifdef MACOSX
- /* no IPv4 include-mode filtering for now */
- return IOS_UNAVAILABLE;
-#else
mreq_source.imr_multiaddr.s_addr = htonl(group);
mreq_source.imr_sourceaddr.s_addr = htonl(source);
mreq_source.imr_interface.s_addr = htonl(interf);
opt = (join) ? IP_ADD_SOURCE_MEMBERSHIP : IP_DROP_SOURCE_MEMBERSHIP;
optval = (void*)&mreq_source;
optlen = sizeof(mreq_source);
-#endif
}
n = setsockopt(fdval(env,fdo), IPPROTO_IP, opt, optval, optlen);
@@ -497,11 +455,11 @@ JNIEXPORT jint JNICALL
Java_sun_nio_ch_Net_blockOrUnblock4(JNIEnv *env, jobject this, jboolean block, jobject fdo,
jint group, jint interf, jint source)
{
-#ifdef MACOSX
+#ifdef __APPLE__
/* no IPv4 exclude-mode filtering for now */
return IOS_UNAVAILABLE;
#else
- struct my_ip_mreq_source mreq_source;
+ struct ip_mreq_source mreq_source;
int n;
int opt = (block) ? IP_BLOCK_SOURCE : IP_UNBLOCK_SOURCE;
@@ -526,7 +484,7 @@ Java_sun_nio_ch_Net_joinOrDrop6(JNIEnv *env, jobject this, jboolean join, jobjec
{
#ifdef AF_INET6
struct ipv6_mreq mreq6;
- struct my_group_source_req req;
+ struct group_source_req req;
int opt, n, optlen;
void* optval;
@@ -537,7 +495,7 @@ Java_sun_nio_ch_Net_joinOrDrop6(JNIEnv *env, jobject this, jboolean join, jobjec
optval = (void*)&mreq6;
optlen = sizeof(mreq6);
} else {
-#ifdef MACOSX
+#ifdef __APPLE__
/* no IPv6 include-mode filtering for now */
return IOS_UNAVAILABLE;
#else
@@ -566,11 +524,11 @@ Java_sun_nio_ch_Net_blockOrUnblock6(JNIEnv *env, jobject this, jboolean block, j
jbyteArray group, jint index, jbyteArray source)
{
#ifdef AF_INET6
- #ifdef MACOSX
+ #ifdef __APPLE__
/* no IPv6 exclude-mode filtering for now */
return IOS_UNAVAILABLE;
#else
- struct my_group_source_req req;
+ struct group_source_req req;
int n;
int opt = (block) ? MCAST_BLOCK_SOURCE : MCAST_UNBLOCK_SOURCE;
From 4a3b8f4df6fa35fad5be99c5a4237b2796afc004 Mon Sep 17 00:00:00 2001
From: Joe Darcy
Date: Fri, 24 Jan 2014 07:16:53 -0800
Subject: [PATCH 083/181] 8032627: Add @SuppressWarnings("serial") to
appropriate javax.swing classes
Reviewed-by: alexsch, alanb
---
jdk/src/share/classes/javax/swing/AbstractAction.java | 3 ++-
jdk/src/share/classes/javax/swing/AbstractButton.java | 2 ++
.../share/classes/javax/swing/AbstractCellEditor.java | 4 ++--
.../share/classes/javax/swing/AbstractListModel.java | 3 ++-
.../share/classes/javax/swing/CellRendererPane.java | 3 ++-
.../classes/javax/swing/DefaultBoundedRangeModel.java | 3 ++-
.../share/classes/javax/swing/DefaultButtonModel.java | 3 ++-
.../share/classes/javax/swing/DefaultCellEditor.java | 4 ++--
.../classes/javax/swing/DefaultListCellRenderer.java | 4 +++-
.../share/classes/javax/swing/DefaultListModel.java | 3 ++-
.../classes/javax/swing/DefaultListSelectionModel.java | 4 ++--
.../javax/swing/DefaultSingleSelectionModel.java | 3 ++-
jdk/src/share/classes/javax/swing/ImageIcon.java | 4 +++-
jdk/src/share/classes/javax/swing/JApplet.java | 3 ++-
jdk/src/share/classes/javax/swing/JCheckBox.java | 4 +++-
.../share/classes/javax/swing/JCheckBoxMenuItem.java | 4 +++-
jdk/src/share/classes/javax/swing/JColorChooser.java | 3 ++-
jdk/src/share/classes/javax/swing/JComboBox.java | 4 +++-
jdk/src/share/classes/javax/swing/JComponent.java | 4 +++-
jdk/src/share/classes/javax/swing/JDesktopPane.java | 4 +++-
jdk/src/share/classes/javax/swing/JDialog.java | 3 ++-
jdk/src/share/classes/javax/swing/JEditorPane.java | 5 ++++-
.../share/classes/javax/swing/JFormattedTextField.java | 1 +
jdk/src/share/classes/javax/swing/JFrame.java | 3 ++-
jdk/src/share/classes/javax/swing/JInternalFrame.java | 6 +++++-
jdk/src/share/classes/javax/swing/JLabel.java | 2 +-
jdk/src/share/classes/javax/swing/JList.java | 4 +++-
jdk/src/share/classes/javax/swing/JOptionPane.java | 4 +++-
jdk/src/share/classes/javax/swing/JPanel.java | 4 +++-
jdk/src/share/classes/javax/swing/JPasswordField.java | 3 ++-
jdk/src/share/classes/javax/swing/JProgressBar.java | 5 ++++-
jdk/src/share/classes/javax/swing/JRadioButton.java | 4 +++-
.../classes/javax/swing/JRadioButtonMenuItem.java | 4 +++-
jdk/src/share/classes/javax/swing/JScrollBar.java | 4 +++-
jdk/src/share/classes/javax/swing/JScrollPane.java | 5 ++++-
jdk/src/share/classes/javax/swing/JSlider.java | 4 +++-
jdk/src/share/classes/javax/swing/JSpinner.java | 3 ++-
jdk/src/share/classes/javax/swing/JSplitPane.java | 4 +++-
jdk/src/share/classes/javax/swing/JTabbedPane.java | 4 +++-
jdk/src/share/classes/javax/swing/JTable.java | 4 +++-
jdk/src/share/classes/javax/swing/JTextArea.java | 2 ++
jdk/src/share/classes/javax/swing/JTextField.java | 4 +++-
jdk/src/share/classes/javax/swing/JTextPane.java | 3 ++-
jdk/src/share/classes/javax/swing/JToggleButton.java | 5 ++++-
jdk/src/share/classes/javax/swing/JToolBar.java | 3 ++-
jdk/src/share/classes/javax/swing/JViewport.java | 5 ++++-
jdk/src/share/classes/javax/swing/KeyStroke.java | 3 ++-
jdk/src/share/classes/javax/swing/OverlayLayout.java | 3 ++-
.../share/classes/javax/swing/ScrollPaneLayout.java | 3 ++-
.../share/classes/javax/swing/SizeRequirements.java | 3 ++-
jdk/src/share/classes/javax/swing/Spring.java | 1 +
jdk/src/share/classes/javax/swing/SpringLayout.java | 3 ++-
jdk/src/share/classes/javax/swing/UIDefaults.java | 3 ++-
jdk/src/share/classes/javax/swing/UIManager.java | 3 ++-
.../javax/swing/UnsupportedLookAndFeelException.java | 3 ++-
jdk/src/share/classes/javax/swing/ViewportLayout.java | 3 ++-
.../share/classes/javax/swing/border/BevelBorder.java | 3 ++-
.../share/classes/javax/swing/border/EtchedBorder.java | 3 ++-
.../share/classes/javax/swing/border/LineBorder.java | 3 ++-
.../classes/javax/swing/border/SoftBevelBorder.java | 3 ++-
.../share/classes/javax/swing/border/StrokeBorder.java | 3 ++-
.../swing/colorchooser/AbstractColorChooserPanel.java | 3 ++-
.../colorchooser/ColorChooserComponentFactory.java | 3 ++-
.../javax/swing/colorchooser/DefaultPreviewPanel.java | 3 ++-
.../swing/colorchooser/DefaultSwatchChooserPanel.java | 3 ++-
.../share/classes/javax/swing/event/CaretEvent.java | 3 ++-
.../classes/javax/swing/event/HyperlinkEvent.java | 3 ++-
.../classes/javax/swing/event/InternalFrameEvent.java | 3 ++-
.../classes/javax/swing/event/ListSelectionEvent.java | 3 ++-
.../javax/swing/event/TableColumnModelEvent.java | 3 ++-
.../classes/javax/swing/event/TableModelEvent.java | 3 ++-
.../classes/javax/swing/event/TreeExpansionEvent.java | 3 ++-
.../classes/javax/swing/event/TreeModelEvent.java | 3 ++-
.../classes/javax/swing/event/UndoableEditEvent.java | 3 ++-
.../classes/javax/swing/plaf/BorderUIResource.java | 3 ++-
.../classes/javax/swing/plaf/ColorUIResource.java | 3 ++-
.../classes/javax/swing/plaf/DimensionUIResource.java | 3 ++-
.../share/classes/javax/swing/plaf/FontUIResource.java | 3 ++-
.../share/classes/javax/swing/plaf/IconUIResource.java | 3 ++-
.../classes/javax/swing/plaf/InsetsUIResource.java | 3 ++-
.../javax/swing/plaf/basic/BasicArrowButton.java | 3 ++-
.../javax/swing/plaf/basic/BasicCheckBoxUI.java | 3 ++-
.../javax/swing/plaf/basic/BasicComboBoxEditor.java | 3 ++-
.../javax/swing/plaf/basic/BasicComboBoxRenderer.java | 4 +++-
.../javax/swing/plaf/basic/BasicComboPopup.java | 3 ++-
.../javax/swing/plaf/basic/BasicEditorPaneUI.java | 3 ++-
.../javax/swing/plaf/basic/BasicIconFactory.java | 3 ++-
.../swing/plaf/basic/BasicInternalFrameTitlePane.java | 3 ++-
.../classes/javax/swing/plaf/basic/BasicListUI.java | 6 +++++-
.../javax/swing/plaf/basic/BasicLookAndFeel.java | 3 ++-
.../javax/swing/plaf/basic/BasicSplitPaneDivider.java | 4 +++-
.../javax/swing/plaf/basic/BasicTextAreaUI.java | 3 ++-
.../javax/swing/plaf/basic/BasicTextFieldUI.java | 3 ++-
.../javax/swing/plaf/basic/BasicTextPaneUI.java | 3 ++-
.../classes/javax/swing/plaf/basic/BasicTextUI.java | 3 ++-
.../classes/javax/swing/plaf/basic/ComboPopup.java | 3 ++-
.../javax/swing/plaf/metal/DefaultMetalTheme.java | 3 ++-
.../classes/javax/swing/plaf/metal/MetalButtonUI.java | 3 ++-
.../javax/swing/plaf/metal/MetalCheckBoxIcon.java | 3 ++-
.../javax/swing/plaf/metal/MetalCheckBoxUI.java | 3 ++-
.../javax/swing/plaf/metal/MetalComboBoxButton.java | 3 ++-
.../javax/swing/plaf/metal/MetalComboBoxEditor.java | 4 +++-
.../javax/swing/plaf/metal/MetalComboBoxUI.java | 3 ++-
.../javax/swing/plaf/metal/MetalIconFactory.java | 7 ++++++-
.../javax/swing/plaf/metal/MetalLookAndFeel.java | 3 ++-
.../javax/swing/plaf/metal/MetalProgressBarUI.java | 3 ++-
.../javax/swing/plaf/metal/MetalRadioButtonUI.java | 3 ++-
.../javax/swing/plaf/metal/MetalRootPaneUI.java | 3 ++-
.../javax/swing/plaf/metal/MetalScrollButton.java | 3 ++-
.../javax/swing/plaf/metal/MetalScrollPaneUI.java | 3 ++-
.../javax/swing/plaf/metal/MetalSeparatorUI.java | 4 ++--
.../classes/javax/swing/plaf/metal/MetalSliderUI.java | 3 ++-
.../javax/swing/plaf/metal/MetalSplitPaneDivider.java | 1 +
.../javax/swing/plaf/metal/MetalSplitPaneUI.java | 3 ++-
.../javax/swing/plaf/metal/MetalTabbedPaneUI.java | 4 ++--
.../javax/swing/plaf/metal/MetalTextFieldUI.java | 3 ++-
.../javax/swing/plaf/metal/MetalToggleButtonUI.java | 3 ++-
.../classes/javax/swing/plaf/metal/MetalToolTipUI.java | 3 ++-
.../javax/swing/plaf/multi/MultiLookAndFeel.java | 3 ++-
.../javax/swing/plaf/synth/SynthTextAreaUI.java | 3 ++-
.../javax/swing/plaf/synth/SynthTextFieldUI.java | 3 ++-
.../javax/swing/plaf/synth/SynthTextPaneUI.java | 3 ++-
.../classes/javax/swing/table/AbstractTableModel.java | 3 ++-
.../javax/swing/table/DefaultTableCellRenderer.java | 4 +++-
.../javax/swing/table/DefaultTableColumnModel.java | 3 ++-
.../classes/javax/swing/table/DefaultTableModel.java | 3 ++-
.../share/classes/javax/swing/table/JTableHeader.java | 4 +++-
.../share/classes/javax/swing/table/TableColumn.java | 3 ++-
.../classes/javax/swing/text/AbstractDocument.java | 6 +++++-
.../share/classes/javax/swing/text/DateFormatter.java | 3 ++-
.../share/classes/javax/swing/text/DefaultCaret.java | 3 ++-
.../classes/javax/swing/text/DefaultEditorKit.java | 10 +++++++++-
.../classes/javax/swing/text/DefaultFormatter.java | 3 ++-
.../javax/swing/text/DefaultFormatterFactory.java | 3 ++-
.../javax/swing/text/DefaultStyledDocument.java | 6 +++++-
.../javax/swing/text/InternationalFormatter.java | 3 ++-
.../share/classes/javax/swing/text/JTextComponent.java | 5 ++++-
.../share/classes/javax/swing/text/MaskFormatter.java | 3 ++-
.../classes/javax/swing/text/NumberFormatter.java | 3 ++-
.../share/classes/javax/swing/text/PlainDocument.java | 3 ++-
.../classes/javax/swing/text/SimpleAttributeSet.java | 3 ++-
.../share/classes/javax/swing/text/StringContent.java | 3 ++-
.../share/classes/javax/swing/text/StyleContext.java | 4 +++-
.../classes/javax/swing/text/StyledEditorKit.java | 8 ++++++++
jdk/src/share/classes/javax/swing/text/TabSet.java | 3 ++-
jdk/src/share/classes/javax/swing/text/TabStop.java | 3 ++-
jdk/src/share/classes/javax/swing/text/TextAction.java | 1 +
.../classes/javax/swing/text/html/HTMLDocument.java | 3 ++-
.../share/classes/javax/swing/text/html/Option.java | 3 ++-
.../classes/javax/swing/tree/AbstractLayoutCache.java | 4 ++--
.../javax/swing/tree/DefaultMutableTreeNode.java | 3 ++-
.../javax/swing/tree/DefaultTreeCellEditor.java | 1 +
.../javax/swing/tree/DefaultTreeCellRenderer.java | 3 ++-
.../classes/javax/swing/tree/DefaultTreeModel.java | 3 ++-
.../javax/swing/tree/DefaultTreeSelectionModel.java | 2 +-
.../javax/swing/tree/FixedHeightLayoutCache.java | 4 ++--
jdk/src/share/classes/javax/swing/tree/TreePath.java | 3 ++-
.../javax/swing/tree/VariableHeightLayoutCache.java | 4 ++--
.../classes/javax/swing/undo/CannotRedoException.java | 3 ++-
.../classes/javax/swing/undo/CannotUndoException.java | 3 ++-
.../share/classes/javax/swing/undo/UndoManager.java | 3 ++-
161 files changed, 380 insertions(+), 161 deletions(-)
diff --git a/jdk/src/share/classes/javax/swing/AbstractAction.java b/jdk/src/share/classes/javax/swing/AbstractAction.java
index 5b49dd92c91..f8f15f4f992 100644
--- a/jdk/src/share/classes/javax/swing/AbstractAction.java
+++ b/jdk/src/share/classes/javax/swing/AbstractAction.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -56,6 +56,7 @@ import sun.security.action.GetPropertyAction;
* @author Georges Saab
* @see Action
*/
+@SuppressWarnings("serial") // Same-version serialization only
public abstract class AbstractAction implements Action, Cloneable, Serializable
{
/**
diff --git a/jdk/src/share/classes/javax/swing/AbstractButton.java b/jdk/src/share/classes/javax/swing/AbstractButton.java
index 55e0e0b3817..f7eec138451 100644
--- a/jdk/src/share/classes/javax/swing/AbstractButton.java
+++ b/jdk/src/share/classes/javax/swing/AbstractButton.java
@@ -72,6 +72,7 @@ import java.util.*;
*
* @author Jeff Dinkins
*/
+@SuppressWarnings("serial") // Same-version serialization only
public abstract class AbstractButton extends JComponent implements ItemSelectable, SwingConstants {
// *********************************
@@ -2384,6 +2385,7 @@ public abstract class AbstractButton extends JComponent implements ItemSelectabl
* Please see {@link java.beans.XMLEncoder}.
* @since 1.4
*/
+ @SuppressWarnings("serial") // Same-version serialization only
protected abstract class AccessibleAbstractButton
extends AccessibleJComponent implements AccessibleAction,
AccessibleValue, AccessibleText, AccessibleExtendedComponent {
diff --git a/jdk/src/share/classes/javax/swing/AbstractCellEditor.java b/jdk/src/share/classes/javax/swing/AbstractCellEditor.java
index f9efea555dc..7523c64e85f 100644
--- a/jdk/src/share/classes/javax/swing/AbstractCellEditor.java
+++ b/jdk/src/share/classes/javax/swing/AbstractCellEditor.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -50,7 +50,7 @@ import java.io.Serializable;
* @author Philip Milne
* @since 1.3
*/
-
+@SuppressWarnings("serial") // Same-version serialization only
public abstract class AbstractCellEditor implements CellEditor, Serializable {
protected EventListenerList listenerList = new EventListenerList();
diff --git a/jdk/src/share/classes/javax/swing/AbstractListModel.java b/jdk/src/share/classes/javax/swing/AbstractListModel.java
index 7270c8f222c..33145a51e8e 100644
--- a/jdk/src/share/classes/javax/swing/AbstractListModel.java
+++ b/jdk/src/share/classes/javax/swing/AbstractListModel.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -46,6 +46,7 @@ import java.util.EventListener;
*
* @author Hans Muller
*/
+@SuppressWarnings("serial") // Same-version serialization only
public abstract class AbstractListModel implements ListModel, Serializable
{
protected EventListenerList listenerList = new EventListenerList();
diff --git a/jdk/src/share/classes/javax/swing/CellRendererPane.java b/jdk/src/share/classes/javax/swing/CellRendererPane.java
index 3e43b80d9ea..33539284e2d 100644
--- a/jdk/src/share/classes/javax/swing/CellRendererPane.java
+++ b/jdk/src/share/classes/javax/swing/CellRendererPane.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -63,6 +63,7 @@ import javax.accessibility.*;
*
* @author Hans Muller
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class CellRendererPane extends Container implements Accessible
{
/**
diff --git a/jdk/src/share/classes/javax/swing/DefaultBoundedRangeModel.java b/jdk/src/share/classes/javax/swing/DefaultBoundedRangeModel.java
index fb250acbcda..8d316ce28ac 100644
--- a/jdk/src/share/classes/javax/swing/DefaultBoundedRangeModel.java
+++ b/jdk/src/share/classes/javax/swing/DefaultBoundedRangeModel.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -45,6 +45,7 @@ import java.util.EventListener;
* @author Hans Muller
* @see BoundedRangeModel
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class DefaultBoundedRangeModel implements BoundedRangeModel, Serializable
{
/**
diff --git a/jdk/src/share/classes/javax/swing/DefaultButtonModel.java b/jdk/src/share/classes/javax/swing/DefaultButtonModel.java
index 7c0fa3d2181..2b0f150e42c 100644
--- a/jdk/src/share/classes/javax/swing/DefaultButtonModel.java
+++ b/jdk/src/share/classes/javax/swing/DefaultButtonModel.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -45,6 +45,7 @@ import javax.swing.event.*;
*
* @author Jeff Dinkins
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class DefaultButtonModel implements ButtonModel, Serializable {
/** The bitmask used to store the state of the button. */
diff --git a/jdk/src/share/classes/javax/swing/DefaultCellEditor.java b/jdk/src/share/classes/javax/swing/DefaultCellEditor.java
index 60042a378ef..1eea9e1fb3f 100644
--- a/jdk/src/share/classes/javax/swing/DefaultCellEditor.java
+++ b/jdk/src/share/classes/javax/swing/DefaultCellEditor.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -50,7 +50,7 @@ import java.io.Serializable;
* @author Alan Chung
* @author Philip Milne
*/
-
+@SuppressWarnings("serial") // Same-version serialization only
public class DefaultCellEditor extends AbstractCellEditor
implements TableCellEditor, TreeCellEditor {
diff --git a/jdk/src/share/classes/javax/swing/DefaultListCellRenderer.java b/jdk/src/share/classes/javax/swing/DefaultListCellRenderer.java
index 4d7a64909e1..e4968364cc0 100644
--- a/jdk/src/share/classes/javax/swing/DefaultListCellRenderer.java
+++ b/jdk/src/share/classes/javax/swing/DefaultListCellRenderer.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -70,6 +70,7 @@ import sun.swing.DefaultLookup;
* @author Philip Milne
* @author Hans Muller
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class DefaultListCellRenderer extends JLabel
implements ListCellRenderer, Serializable
{
@@ -341,6 +342,7 @@ public class DefaultListCellRenderer extends JLabel
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
public static class UIResource extends DefaultListCellRenderer
implements javax.swing.plaf.UIResource
{
diff --git a/jdk/src/share/classes/javax/swing/DefaultListModel.java b/jdk/src/share/classes/javax/swing/DefaultListModel.java
index 33efc4abe32..063c18e2716 100644
--- a/jdk/src/share/classes/javax/swing/DefaultListModel.java
+++ b/jdk/src/share/classes/javax/swing/DefaultListModel.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -52,6 +52,7 @@ import javax.swing.event.*;
*
* @author Hans Muller
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class DefaultListModel extends AbstractListModel
{
private Vector delegate = new Vector();
diff --git a/jdk/src/share/classes/javax/swing/DefaultListSelectionModel.java b/jdk/src/share/classes/javax/swing/DefaultListSelectionModel.java
index 388a5a59a81..f7b00bee086 100644
--- a/jdk/src/share/classes/javax/swing/DefaultListSelectionModel.java
+++ b/jdk/src/share/classes/javax/swing/DefaultListSelectionModel.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -49,7 +49,7 @@ import javax.swing.event.*;
* @author Hans Muller
* @see ListSelectionModel
*/
-
+@SuppressWarnings("serial") // Same-version serialization only
public class DefaultListSelectionModel implements ListSelectionModel, Cloneable, Serializable
{
private static final int MIN = -1;
diff --git a/jdk/src/share/classes/javax/swing/DefaultSingleSelectionModel.java b/jdk/src/share/classes/javax/swing/DefaultSingleSelectionModel.java
index 1d5ad7ccac0..d5e5ab81e1d 100644
--- a/jdk/src/share/classes/javax/swing/DefaultSingleSelectionModel.java
+++ b/jdk/src/share/classes/javax/swing/DefaultSingleSelectionModel.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -43,6 +43,7 @@ import java.util.EventListener;
*
* @author Dave Moore
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class DefaultSingleSelectionModel implements SingleSelectionModel,
Serializable {
/* Only one ModelChangeEvent is needed per model instance since the
diff --git a/jdk/src/share/classes/javax/swing/ImageIcon.java b/jdk/src/share/classes/javax/swing/ImageIcon.java
index b744d5aa5c5..e286e936f11 100644
--- a/jdk/src/share/classes/javax/swing/ImageIcon.java
+++ b/jdk/src/share/classes/javax/swing/ImageIcon.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2013, 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
@@ -66,6 +66,7 @@ import java.security.*;
* @author Jeff Dinkins
* @author Lynn Monsanto
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class ImageIcon implements Icon, Serializable, Accessible {
/* Keep references to the filename and location so that
* alternate persistence schemes have the option to archive
@@ -572,6 +573,7 @@ public class ImageIcon implements Icon, Serializable, Accessible {
* Please see {@link java.beans.XMLEncoder}.
* @since 1.3
*/
+ @SuppressWarnings("serial") // Same-version serialization only
protected class AccessibleImageIcon extends AccessibleContext
implements AccessibleIcon, Serializable {
diff --git a/jdk/src/share/classes/javax/swing/JApplet.java b/jdk/src/share/classes/javax/swing/JApplet.java
index a97b3e96d75..539458979d4 100644
--- a/jdk/src/share/classes/javax/swing/JApplet.java
+++ b/jdk/src/share/classes/javax/swing/JApplet.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -90,6 +90,7 @@ import javax.accessibility.*;
*
* @author Arnaud Weber
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class JApplet extends Applet implements Accessible,
RootPaneContainer,
TransferHandler.HasGetTransferHandler
diff --git a/jdk/src/share/classes/javax/swing/JCheckBox.java b/jdk/src/share/classes/javax/swing/JCheckBox.java
index 8fdbd17fa04..53502645c72 100644
--- a/jdk/src/share/classes/javax/swing/JCheckBox.java
+++ b/jdk/src/share/classes/javax/swing/JCheckBox.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -75,6 +75,7 @@ import java.io.IOException;
*
* @author Jeff Dinkins
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class JCheckBox extends JToggleButton implements Accessible {
/** Identifies a change to the flat property. */
@@ -334,6 +335,7 @@ public class JCheckBox extends JToggleButton implements Accessible {
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
protected class AccessibleJCheckBox extends AccessibleJToggleButton {
/**
diff --git a/jdk/src/share/classes/javax/swing/JCheckBoxMenuItem.java b/jdk/src/share/classes/javax/swing/JCheckBoxMenuItem.java
index 3d924d38536..08eb53864c4 100644
--- a/jdk/src/share/classes/javax/swing/JCheckBoxMenuItem.java
+++ b/jdk/src/share/classes/javax/swing/JCheckBoxMenuItem.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -88,6 +88,7 @@ import javax.accessibility.*;
* @author Georges Saab
* @author David Karlton
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class JCheckBoxMenuItem extends JMenuItem implements SwingConstants,
Accessible
{
@@ -293,6 +294,7 @@ public class JCheckBoxMenuItem extends JMenuItem implements SwingConstants,
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
protected class AccessibleJCheckBoxMenuItem extends AccessibleJMenuItem {
/**
* Get the role of this object.
diff --git a/jdk/src/share/classes/javax/swing/JColorChooser.java b/jdk/src/share/classes/javax/swing/JColorChooser.java
index 9fb2a35a778..88f91c00ca7 100644
--- a/jdk/src/share/classes/javax/swing/JColorChooser.java
+++ b/jdk/src/share/classes/javax/swing/JColorChooser.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -83,6 +83,7 @@ import sun.swing.SwingUtilities2;
* @author Amy Fowler
* @author Steve Wilson
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class JColorChooser extends JComponent implements Accessible {
/**
diff --git a/jdk/src/share/classes/javax/swing/JComboBox.java b/jdk/src/share/classes/javax/swing/JComboBox.java
index 11081f959df..6416f5036a8 100644
--- a/jdk/src/share/classes/javax/swing/JComboBox.java
+++ b/jdk/src/share/classes/javax/swing/JComboBox.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -78,6 +78,7 @@ import javax.accessibility.*;
* @author Arnaud Weber
* @author Mark Davidson
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class JComboBox extends JComponent
implements ItemSelectable,ListDataListener,ActionListener, Accessible {
/**
@@ -1612,6 +1613,7 @@ implements ItemSelectable,ListDataListener,ActionListener, Accessible {
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
protected class AccessibleJComboBox extends AccessibleJComponent
implements AccessibleAction, AccessibleSelection {
diff --git a/jdk/src/share/classes/javax/swing/JComponent.java b/jdk/src/share/classes/javax/swing/JComponent.java
index d6f35ac3fea..98c4d7fb5dd 100644
--- a/jdk/src/share/classes/javax/swing/JComponent.java
+++ b/jdk/src/share/classes/javax/swing/JComponent.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -179,6 +179,7 @@ import sun.swing.UIClientPropertyKey;
* @author Hans Muller
* @author Arnaud Weber
*/
+@SuppressWarnings("serial") // Same-version serialization only
public abstract class JComponent extends Container implements Serializable,
TransferHandler.HasGetTransferHandler
{
@@ -3657,6 +3658,7 @@ public abstract class JComponent extends Container implements Serializable,
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
public abstract class AccessibleJComponent extends AccessibleAWTContainer
implements AccessibleExtendedComponent
{
diff --git a/jdk/src/share/classes/javax/swing/JDesktopPane.java b/jdk/src/share/classes/javax/swing/JDesktopPane.java
index 6ba0bc82bf2..94f7db248e1 100644
--- a/jdk/src/share/classes/javax/swing/JDesktopPane.java
+++ b/jdk/src/share/classes/javax/swing/JDesktopPane.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -86,6 +86,7 @@ import java.util.TreeSet;
*
* @author David Kloba
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class JDesktopPane extends JLayeredPane implements Accessible
{
/**
@@ -616,6 +617,7 @@ public class JDesktopPane extends JLayeredPane implements Accessible
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
protected class AccessibleJDesktopPane extends AccessibleJComponent {
/**
diff --git a/jdk/src/share/classes/javax/swing/JDialog.java b/jdk/src/share/classes/javax/swing/JDialog.java
index 2d8980e3056..12b978dbf46 100644
--- a/jdk/src/share/classes/javax/swing/JDialog.java
+++ b/jdk/src/share/classes/javax/swing/JDialog.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -95,6 +95,7 @@ import javax.accessibility.*;
* @author James Gosling
* @author Scott Violet
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class JDialog extends Dialog implements WindowConstants,
Accessible,
RootPaneContainer,
diff --git a/jdk/src/share/classes/javax/swing/JEditorPane.java b/jdk/src/share/classes/javax/swing/JEditorPane.java
index cbb888c3a88..c1382125237 100644
--- a/jdk/src/share/classes/javax/swing/JEditorPane.java
+++ b/jdk/src/share/classes/javax/swing/JEditorPane.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -189,6 +189,7 @@ import javax.accessibility.*;
*
* @author Timothy Prinzing
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class JEditorPane extends JTextComponent {
/**
@@ -1640,6 +1641,7 @@ public class JEditorPane extends JTextComponent {
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
protected class AccessibleJEditorPane extends AccessibleJTextComponent {
/**
@@ -1694,6 +1696,7 @@ public class JEditorPane extends JTextComponent {
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
protected class AccessibleJEditorPaneHTML extends AccessibleJEditorPane {
private AccessibleContext accessibleContext;
diff --git a/jdk/src/share/classes/javax/swing/JFormattedTextField.java b/jdk/src/share/classes/javax/swing/JFormattedTextField.java
index e7354a09ef5..5be75ff295a 100644
--- a/jdk/src/share/classes/javax/swing/JFormattedTextField.java
+++ b/jdk/src/share/classes/javax/swing/JFormattedTextField.java
@@ -177,6 +177,7 @@ import javax.swing.text.*;
*
* @since 1.4
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class JFormattedTextField extends JTextField {
private static final String uiClassID = "FormattedTextFieldUI";
private static final Action[] defaultActions =
diff --git a/jdk/src/share/classes/javax/swing/JFrame.java b/jdk/src/share/classes/javax/swing/JFrame.java
index 308320c8ecc..2077eb76249 100644
--- a/jdk/src/share/classes/javax/swing/JFrame.java
+++ b/jdk/src/share/classes/javax/swing/JFrame.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -112,6 +112,7 @@ import javax.accessibility.*;
* @author Georges Saab
* @author David Kloba
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class JFrame extends Frame implements WindowConstants,
Accessible,
RootPaneContainer,
diff --git a/jdk/src/share/classes/javax/swing/JInternalFrame.java b/jdk/src/share/classes/javax/swing/JInternalFrame.java
index 3183d5c4e90..e94854f9f12 100644
--- a/jdk/src/share/classes/javax/swing/JInternalFrame.java
+++ b/jdk/src/share/classes/javax/swing/JInternalFrame.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -110,6 +110,7 @@ import sun.swing.SwingUtilities2;
* description: A frame container which is contained within
* another window.
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class JInternalFrame extends JComponent implements
Accessible, WindowConstants,
RootPaneContainer
@@ -2034,6 +2035,7 @@ public class JInternalFrame extends JComponent implements
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
protected class AccessibleJInternalFrame extends AccessibleJComponent
implements AccessibleValue {
@@ -2151,6 +2153,7 @@ public class JInternalFrame extends JComponent implements
*
* @author David Kloba
*/
+ @SuppressWarnings("serial") // Same-version serialization only
static public class JDesktopIcon extends JComponent implements Accessible
{
JInternalFrame internalFrame;
@@ -2323,6 +2326,7 @@ public class JInternalFrame extends JComponent implements
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
protected class AccessibleJDesktopIcon extends AccessibleJComponent
implements AccessibleValue {
diff --git a/jdk/src/share/classes/javax/swing/JLabel.java b/jdk/src/share/classes/javax/swing/JLabel.java
index c5d527b808d..af080be9564 100644
--- a/jdk/src/share/classes/javax/swing/JLabel.java
+++ b/jdk/src/share/classes/javax/swing/JLabel.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
diff --git a/jdk/src/share/classes/javax/swing/JList.java b/jdk/src/share/classes/javax/swing/JList.java
index 1aae62e861f..6503887247e 100644
--- a/jdk/src/share/classes/javax/swing/JList.java
+++ b/jdk/src/share/classes/javax/swing/JList.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -277,6 +277,7 @@ import static sun.swing.SwingUtilities2.Section.*;
*
* @author Hans Muller
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class JList extends JComponent implements Scrollable, Accessible
{
/**
@@ -2881,6 +2882,7 @@ public class JList extends JComponent implements Scrollable, Accessible
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
protected class AccessibleJList extends AccessibleJComponent
implements AccessibleSelection, PropertyChangeListener,
ListSelectionListener, ListDataListener {
diff --git a/jdk/src/share/classes/javax/swing/JOptionPane.java b/jdk/src/share/classes/javax/swing/JOptionPane.java
index dcb991947e1..58d38669e9c 100644
--- a/jdk/src/share/classes/javax/swing/JOptionPane.java
+++ b/jdk/src/share/classes/javax/swing/JOptionPane.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -310,6 +310,7 @@ import static javax.swing.ClientPropertyKey.PopupFactory_FORCE_HEAVYWEIGHT_POPUP
* @author James Gosling
* @author Scott Violet
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class JOptionPane extends JComponent implements Accessible
{
/**
@@ -2576,6 +2577,7 @@ public class JOptionPane extends JComponent implements Accessible
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
protected class AccessibleJOptionPane extends AccessibleJComponent {
/**
diff --git a/jdk/src/share/classes/javax/swing/JPanel.java b/jdk/src/share/classes/javax/swing/JPanel.java
index 8ebfcb1cbfb..6211c8bcd29 100644
--- a/jdk/src/share/classes/javax/swing/JPanel.java
+++ b/jdk/src/share/classes/javax/swing/JPanel.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -62,6 +62,7 @@ import java.io.IOException;
* @author Arnaud Weber
* @author Steve Wilson
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class JPanel extends JComponent implements Accessible
{
/**
@@ -233,6 +234,7 @@ public class JPanel extends JComponent implements Accessible
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
protected class AccessibleJPanel extends AccessibleJComponent {
/**
diff --git a/jdk/src/share/classes/javax/swing/JPasswordField.java b/jdk/src/share/classes/javax/swing/JPasswordField.java
index 05a113b2ca4..a869d80c1f0 100644
--- a/jdk/src/share/classes/javax/swing/JPasswordField.java
+++ b/jdk/src/share/classes/javax/swing/JPasswordField.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -74,6 +74,7 @@ import java.util.Arrays;
*
* @author Timothy Prinzing
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class JPasswordField extends JTextField {
/**
diff --git a/jdk/src/share/classes/javax/swing/JProgressBar.java b/jdk/src/share/classes/javax/swing/JProgressBar.java
index 606ff13c2ca..b839018b1fd 100644
--- a/jdk/src/share/classes/javax/swing/JProgressBar.java
+++ b/jdk/src/share/classes/javax/swing/JProgressBar.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -129,6 +129,7 @@ import javax.swing.plaf.ProgressBarUI;
* @author Michael C. Albers
* @author Kathy Walrath
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class JProgressBar extends JComponent implements SwingConstants, Accessible
{
/**
@@ -647,6 +648,7 @@ public class JProgressBar extends JComponent implements SwingConstants, Accessib
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
private class ModelListener implements ChangeListener, Serializable {
public void stateChanged(ChangeEvent e) {
fireStateChanged();
@@ -1035,6 +1037,7 @@ public class JProgressBar extends JComponent implements SwingConstants, Accessib
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
protected class AccessibleJProgressBar extends AccessibleJComponent
implements AccessibleValue {
diff --git a/jdk/src/share/classes/javax/swing/JRadioButton.java b/jdk/src/share/classes/javax/swing/JRadioButton.java
index ad7a3abf8b9..41197072266 100644
--- a/jdk/src/share/classes/javax/swing/JRadioButton.java
+++ b/jdk/src/share/classes/javax/swing/JRadioButton.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -86,6 +86,7 @@ import java.io.IOException;
* @see JCheckBox
* @author Jeff Dinkins
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class JRadioButton extends JToggleButton implements Accessible {
/**
@@ -284,6 +285,7 @@ public class JRadioButton extends JToggleButton implements Accessible {
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
protected class AccessibleJRadioButton extends AccessibleJToggleButton {
/**
diff --git a/jdk/src/share/classes/javax/swing/JRadioButtonMenuItem.java b/jdk/src/share/classes/javax/swing/JRadioButtonMenuItem.java
index 897ba97c760..5d49c6f464f 100644
--- a/jdk/src/share/classes/javax/swing/JRadioButtonMenuItem.java
+++ b/jdk/src/share/classes/javax/swing/JRadioButtonMenuItem.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -83,6 +83,7 @@ import javax.accessibility.*;
* @author David Karlton
* @see ButtonGroup
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class JRadioButtonMenuItem extends JMenuItem implements Accessible {
/**
* @see #getUIClassID
@@ -266,6 +267,7 @@ public class JRadioButtonMenuItem extends JMenuItem implements Accessible {
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
protected class AccessibleJRadioButtonMenuItem extends AccessibleJMenuItem {
/**
* Get the role of this object.
diff --git a/jdk/src/share/classes/javax/swing/JScrollBar.java b/jdk/src/share/classes/javax/swing/JScrollBar.java
index 1c0eac1af7f..bdcee342e1f 100644
--- a/jdk/src/share/classes/javax/swing/JScrollBar.java
+++ b/jdk/src/share/classes/javax/swing/JScrollBar.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -78,6 +78,7 @@ import java.io.IOException;
*
* @author David Kloba
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class JScrollBar extends JComponent implements Adjustable, Accessible
{
/**
@@ -842,6 +843,7 @@ public class JScrollBar extends JComponent implements Adjustable, Accessible
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
protected class AccessibleJScrollBar extends AccessibleJComponent
implements AccessibleValue {
diff --git a/jdk/src/share/classes/javax/swing/JScrollPane.java b/jdk/src/share/classes/javax/swing/JScrollPane.java
index ecb3d8f34d9..444a1c22526 100644
--- a/jdk/src/share/classes/javax/swing/JScrollPane.java
+++ b/jdk/src/share/classes/javax/swing/JScrollPane.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -168,6 +168,7 @@ import java.beans.Transient;
*
* @author Hans Muller
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class JScrollPane extends JComponent implements ScrollPaneConstants, Accessible
{
private Border viewportBorder;
@@ -685,6 +686,7 @@ public class JScrollPane extends JComponent implements ScrollPaneConstants, Acce
* @see JScrollPane#createVerticalScrollBar
* @see JScrollPane#createHorizontalScrollBar
*/
+ @SuppressWarnings("serial") // Same-version serialization only
protected class ScrollBar extends JScrollBar implements UIResource
{
/**
@@ -1441,6 +1443,7 @@ public class JScrollPane extends JComponent implements ScrollPaneConstants, Acce
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
protected class AccessibleJScrollPane extends AccessibleJComponent
implements ChangeListener, PropertyChangeListener {
diff --git a/jdk/src/share/classes/javax/swing/JSlider.java b/jdk/src/share/classes/javax/swing/JSlider.java
index 88fe7129b2b..d75e1030634 100644
--- a/jdk/src/share/classes/javax/swing/JSlider.java
+++ b/jdk/src/share/classes/javax/swing/JSlider.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -78,6 +78,7 @@ import java.beans.*;
*
* @author David Kloba
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class JSlider extends JComponent implements SwingConstants, Accessible {
/**
* @see #getUIClassID
@@ -1429,6 +1430,7 @@ public class JSlider extends JComponent implements SwingConstants, Accessible {
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
protected class AccessibleJSlider extends AccessibleJComponent
implements AccessibleValue {
diff --git a/jdk/src/share/classes/javax/swing/JSpinner.java b/jdk/src/share/classes/javax/swing/JSpinner.java
index d2dac526518..f999fd3f987 100644
--- a/jdk/src/share/classes/javax/swing/JSpinner.java
+++ b/jdk/src/share/classes/javax/swing/JSpinner.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -126,6 +126,7 @@ import sun.util.locale.provider.LocaleServiceProviderPool;
* @author Lynn Monsanto (accessibility)
* @since 1.4
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class JSpinner extends JComponent implements Accessible
{
/**
diff --git a/jdk/src/share/classes/javax/swing/JSplitPane.java b/jdk/src/share/classes/javax/swing/JSplitPane.java
index d403dde928c..533d9a971af 100644
--- a/jdk/src/share/classes/javax/swing/JSplitPane.java
+++ b/jdk/src/share/classes/javax/swing/JSplitPane.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -98,6 +98,7 @@ import java.io.IOException;
*
* @author Scott Violet
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class JSplitPane extends JComponent implements Accessible
{
/**
@@ -1156,6 +1157,7 @@ public class JSplitPane extends JComponent implements Accessible
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
protected class AccessibleJSplitPane extends AccessibleJComponent
implements AccessibleValue {
/**
diff --git a/jdk/src/share/classes/javax/swing/JTabbedPane.java b/jdk/src/share/classes/javax/swing/JTabbedPane.java
index e6c0951bdae..e5c303489c6 100644
--- a/jdk/src/share/classes/javax/swing/JTabbedPane.java
+++ b/jdk/src/share/classes/javax/swing/JTabbedPane.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -106,6 +106,7 @@ import java.io.IOException;
*
* @see SingleSelectionModel
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class JTabbedPane extends JComponent
implements Serializable, Accessible, SwingConstants {
@@ -1889,6 +1890,7 @@ public class JTabbedPane extends JComponent
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
protected class AccessibleJTabbedPane extends AccessibleJComponent
implements AccessibleSelection, ChangeListener {
diff --git a/jdk/src/share/classes/javax/swing/JTable.java b/jdk/src/share/classes/javax/swing/JTable.java
index 526afcf66bf..f16888c8f8b 100644
--- a/jdk/src/share/classes/javax/swing/JTable.java
+++ b/jdk/src/share/classes/javax/swing/JTable.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -218,6 +218,7 @@ import sun.swing.SwingLazyValue;
/* The first versions of the JTable, contained in Swing-0.1 through
* Swing-0.4, were written by Alan Chung.
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class JTable extends JComponent implements TableModelListener, Scrollable,
TableColumnModelListener, ListSelectionListener, CellEditorListener,
Accessible, RowSorterListener
@@ -6583,6 +6584,7 @@ public class JTable extends JComponent implements TableModelListener, Scrollable
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
protected class AccessibleJTable extends AccessibleJComponent
implements AccessibleSelection, ListSelectionListener, TableModelListener,
TableColumnModelListener, CellEditorListener, PropertyChangeListener,
diff --git a/jdk/src/share/classes/javax/swing/JTextArea.java b/jdk/src/share/classes/javax/swing/JTextArea.java
index 570819f9df9..a6af9e241fa 100644
--- a/jdk/src/share/classes/javax/swing/JTextArea.java
+++ b/jdk/src/share/classes/javax/swing/JTextArea.java
@@ -124,6 +124,7 @@ import java.io.IOException;
* @see JTextPane
* @see JEditorPane
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class JTextArea extends JTextComponent {
/**
@@ -787,6 +788,7 @@ public class JTextArea extends JTextComponent {
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
protected class AccessibleJTextArea extends AccessibleJTextComponent {
/**
diff --git a/jdk/src/share/classes/javax/swing/JTextField.java b/jdk/src/share/classes/javax/swing/JTextField.java
index d4bc1aa0f6b..f50f6aa9be9 100644
--- a/jdk/src/share/classes/javax/swing/JTextField.java
+++ b/jdk/src/share/classes/javax/swing/JTextField.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -161,6 +161,7 @@ import java.io.Serializable;
* @see JPasswordField
* @see #addActionListener
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class JTextField extends JTextComponent implements SwingConstants {
/**
@@ -943,6 +944,7 @@ public class JTextField extends JTextComponent implements SwingConstants {
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
protected class AccessibleJTextField extends AccessibleJTextComponent {
/**
diff --git a/jdk/src/share/classes/javax/swing/JTextPane.java b/jdk/src/share/classes/javax/swing/JTextPane.java
index 0cb9ff8d722..017f897177c 100644
--- a/jdk/src/share/classes/javax/swing/JTextPane.java
+++ b/jdk/src/share/classes/javax/swing/JTextPane.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -79,6 +79,7 @@ import javax.swing.plaf.*;
* @author Timothy Prinzing
* @see javax.swing.text.StyledEditorKit
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class JTextPane extends JEditorPane {
/**
diff --git a/jdk/src/share/classes/javax/swing/JToggleButton.java b/jdk/src/share/classes/javax/swing/JToggleButton.java
index 3489a07e803..f2f9a0601e0 100644
--- a/jdk/src/share/classes/javax/swing/JToggleButton.java
+++ b/jdk/src/share/classes/javax/swing/JToggleButton.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -76,6 +76,7 @@ import java.io.IOException;
* @see JCheckBox
* @author Jeff Dinkins
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class JToggleButton extends AbstractButton implements Accessible {
/**
@@ -222,6 +223,7 @@ public class JToggleButton extends AbstractButton implements Accessible {
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
public static class ToggleButtonModel extends DefaultButtonModel {
/**
@@ -384,6 +386,7 @@ public class JToggleButton extends AbstractButton implements Accessible {
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
protected class AccessibleJToggleButton extends AccessibleAbstractButton
implements ItemListener {
diff --git a/jdk/src/share/classes/javax/swing/JToolBar.java b/jdk/src/share/classes/javax/swing/JToolBar.java
index a47e86127c0..0557e4b93f2 100644
--- a/jdk/src/share/classes/javax/swing/JToolBar.java
+++ b/jdk/src/share/classes/javax/swing/JToolBar.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -86,6 +86,7 @@ import java.util.Hashtable;
* @author Jeff Shapiro
* @see Action
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class JToolBar extends JComponent implements SwingConstants, Accessible
{
/**
diff --git a/jdk/src/share/classes/javax/swing/JViewport.java b/jdk/src/share/classes/javax/swing/JViewport.java
index 5df23b9b0ab..5cc25a71ad0 100644
--- a/jdk/src/share/classes/javax/swing/JViewport.java
+++ b/jdk/src/share/classes/javax/swing/JViewport.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -102,6 +102,7 @@ import java.io.Serializable;
* @author Philip Milne
* @see JScrollPane
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class JViewport extends JComponent implements Accessible
{
/**
@@ -1296,6 +1297,7 @@ public class JViewport extends JComponent implements Accessible
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
protected class ViewListener extends ComponentAdapter implements Serializable
{
public void componentResized(ComponentEvent e) {
@@ -1765,6 +1767,7 @@ public class JViewport extends JComponent implements Accessible
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
protected class AccessibleJViewport extends AccessibleJComponent {
/**
* Get the role of this object.
diff --git a/jdk/src/share/classes/javax/swing/KeyStroke.java b/jdk/src/share/classes/javax/swing/KeyStroke.java
index 774eeb692f1..e9f846c3d9c 100644
--- a/jdk/src/share/classes/javax/swing/KeyStroke.java
+++ b/jdk/src/share/classes/javax/swing/KeyStroke.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -61,6 +61,7 @@ import java.awt.event.KeyEvent;
* @author Arnaud Weber
* @author David Mendenhall
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class KeyStroke extends AWTKeyStroke {
/**
diff --git a/jdk/src/share/classes/javax/swing/OverlayLayout.java b/jdk/src/share/classes/javax/swing/OverlayLayout.java
index 6ea88c2e386..6f3735cd50f 100644
--- a/jdk/src/share/classes/javax/swing/OverlayLayout.java
+++ b/jdk/src/share/classes/javax/swing/OverlayLayout.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -51,6 +51,7 @@ import java.io.Serializable;
*
* @author Timothy Prinzing
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class OverlayLayout implements LayoutManager2,Serializable {
/**
diff --git a/jdk/src/share/classes/javax/swing/ScrollPaneLayout.java b/jdk/src/share/classes/javax/swing/ScrollPaneLayout.java
index 9aa581af867..71eda4b9c9a 100644
--- a/jdk/src/share/classes/javax/swing/ScrollPaneLayout.java
+++ b/jdk/src/share/classes/javax/swing/ScrollPaneLayout.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -57,6 +57,7 @@ import java.io.Serializable;
*
* @author Hans Muller
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class ScrollPaneLayout
implements LayoutManager, ScrollPaneConstants, Serializable
{
diff --git a/jdk/src/share/classes/javax/swing/SizeRequirements.java b/jdk/src/share/classes/javax/swing/SizeRequirements.java
index aa03f551423..d4a590bfd0f 100644
--- a/jdk/src/share/classes/javax/swing/SizeRequirements.java
+++ b/jdk/src/share/classes/javax/swing/SizeRequirements.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -93,6 +93,7 @@ import java.io.Serializable;
*
* @author Timothy Prinzing
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class SizeRequirements implements Serializable {
/**
diff --git a/jdk/src/share/classes/javax/swing/Spring.java b/jdk/src/share/classes/javax/swing/Spring.java
index 40320734219..e0cb0157fdf 100644
--- a/jdk/src/share/classes/javax/swing/Spring.java
+++ b/jdk/src/share/classes/javax/swing/Spring.java
@@ -127,6 +127,7 @@ import java.awt.Component;
* @author Philip Milne
* @since 1.4
*/
+@SuppressWarnings("serial") // Same-version serialization only
public abstract class Spring {
/**
diff --git a/jdk/src/share/classes/javax/swing/SpringLayout.java b/jdk/src/share/classes/javax/swing/SpringLayout.java
index 95444bfed59..fdaa55cf339 100644
--- a/jdk/src/share/classes/javax/swing/SpringLayout.java
+++ b/jdk/src/share/classes/javax/swing/SpringLayout.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -184,6 +184,7 @@ import java.util.*;
* @author Joe Winchester
* @since 1.4
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class SpringLayout implements LayoutManager2 {
private Map componentConstraints = new HashMap();
diff --git a/jdk/src/share/classes/javax/swing/UIDefaults.java b/jdk/src/share/classes/javax/swing/UIDefaults.java
index a560b2d03d7..b6797bd232f 100644
--- a/jdk/src/share/classes/javax/swing/UIDefaults.java
+++ b/jdk/src/share/classes/javax/swing/UIDefaults.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -72,6 +72,7 @@ import sun.util.CoreResourceBundleControl;
* @see UIManager
* @author Hans Muller
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class UIDefaults extends Hashtable
{
private static final Object PENDING = "Pending";
diff --git a/jdk/src/share/classes/javax/swing/UIManager.java b/jdk/src/share/classes/javax/swing/UIManager.java
index c7a3c8291bf..026f8a7b80f 100644
--- a/jdk/src/share/classes/javax/swing/UIManager.java
+++ b/jdk/src/share/classes/javax/swing/UIManager.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -174,6 +174,7 @@ import sun.awt.AWTAccessor;
* @author Thomas Ball
* @author Hans Muller
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class UIManager implements Serializable
{
/**
diff --git a/jdk/src/share/classes/javax/swing/UnsupportedLookAndFeelException.java b/jdk/src/share/classes/javax/swing/UnsupportedLookAndFeelException.java
index 0ff32966131..07b8e18c6ff 100644
--- a/jdk/src/share/classes/javax/swing/UnsupportedLookAndFeelException.java
+++ b/jdk/src/share/classes/javax/swing/UnsupportedLookAndFeelException.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -39,6 +39,7 @@ package javax.swing;
*
* @author unattributed
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class UnsupportedLookAndFeelException extends Exception
{
/**
diff --git a/jdk/src/share/classes/javax/swing/ViewportLayout.java b/jdk/src/share/classes/javax/swing/ViewportLayout.java
index aeac64276d6..2aa83bede3e 100644
--- a/jdk/src/share/classes/javax/swing/ViewportLayout.java
+++ b/jdk/src/share/classes/javax/swing/ViewportLayout.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -56,6 +56,7 @@ import java.io.Serializable;
*
* @author Hans Muller
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class ViewportLayout implements LayoutManager, Serializable
{
// Single instance used by JViewport.
diff --git a/jdk/src/share/classes/javax/swing/border/BevelBorder.java b/jdk/src/share/classes/javax/swing/border/BevelBorder.java
index 659bd7f6966..dd18a88245d 100644
--- a/jdk/src/share/classes/javax/swing/border/BevelBorder.java
+++ b/jdk/src/share/classes/javax/swing/border/BevelBorder.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -44,6 +44,7 @@ import java.beans.ConstructorProperties;
*
* @author David Kloba
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class BevelBorder extends AbstractBorder
{
/** Raised bevel type. */
diff --git a/jdk/src/share/classes/javax/swing/border/EtchedBorder.java b/jdk/src/share/classes/javax/swing/border/EtchedBorder.java
index 3bb5c7e0686..2850b60db7b 100644
--- a/jdk/src/share/classes/javax/swing/border/EtchedBorder.java
+++ b/jdk/src/share/classes/javax/swing/border/EtchedBorder.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -51,6 +51,7 @@ import java.beans.ConstructorProperties;
* @author David Kloba
* @author Amy Fowler
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class EtchedBorder extends AbstractBorder
{
/** Raised etched type. */
diff --git a/jdk/src/share/classes/javax/swing/border/LineBorder.java b/jdk/src/share/classes/javax/swing/border/LineBorder.java
index 8d7abb99ac9..1e083c1164f 100644
--- a/jdk/src/share/classes/javax/swing/border/LineBorder.java
+++ b/jdk/src/share/classes/javax/swing/border/LineBorder.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -50,6 +50,7 @@ import java.beans.ConstructorProperties;
*
* @author David Kloba
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class LineBorder extends AbstractBorder
{
private static Border blackLine;
diff --git a/jdk/src/share/classes/javax/swing/border/SoftBevelBorder.java b/jdk/src/share/classes/javax/swing/border/SoftBevelBorder.java
index d11b4202af8..8cd3afdd799 100644
--- a/jdk/src/share/classes/javax/swing/border/SoftBevelBorder.java
+++ b/jdk/src/share/classes/javax/swing/border/SoftBevelBorder.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -47,6 +47,7 @@ import java.beans.ConstructorProperties;
* @author Amy Fowler
* @author Chester Rose
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class SoftBevelBorder extends BevelBorder
{
diff --git a/jdk/src/share/classes/javax/swing/border/StrokeBorder.java b/jdk/src/share/classes/javax/swing/border/StrokeBorder.java
index f09ae254e90..447779ac85c 100644
--- a/jdk/src/share/classes/javax/swing/border/StrokeBorder.java
+++ b/jdk/src/share/classes/javax/swing/border/StrokeBorder.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -50,6 +50,7 @@ import java.beans.ConstructorProperties;
*
* @since 1.7
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class StrokeBorder extends AbstractBorder {
private final BasicStroke stroke;
private final Paint paint;
diff --git a/jdk/src/share/classes/javax/swing/colorchooser/AbstractColorChooserPanel.java b/jdk/src/share/classes/javax/swing/colorchooser/AbstractColorChooserPanel.java
index 58b5946aaaa..c75d08b89ff 100644
--- a/jdk/src/share/classes/javax/swing/colorchooser/AbstractColorChooserPanel.java
+++ b/jdk/src/share/classes/javax/swing/colorchooser/AbstractColorChooserPanel.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -47,6 +47,7 @@ import javax.swing.*;
* @author Tom Santos
* @author Steve Wilson
*/
+@SuppressWarnings("serial") // Same-version serialization only
public abstract class AbstractColorChooserPanel extends JPanel {
private final PropertyChangeListener enabledListener = new PropertyChangeListener() {
diff --git a/jdk/src/share/classes/javax/swing/colorchooser/ColorChooserComponentFactory.java b/jdk/src/share/classes/javax/swing/colorchooser/ColorChooserComponentFactory.java
index ef3f4012984..84386433350 100644
--- a/jdk/src/share/classes/javax/swing/colorchooser/ColorChooserComponentFactory.java
+++ b/jdk/src/share/classes/javax/swing/colorchooser/ColorChooserComponentFactory.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -43,6 +43,7 @@ import javax.swing.JComponent;
*
* @author Steve Wilson
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class ColorChooserComponentFactory {
private ColorChooserComponentFactory() { } // can't instantiate
diff --git a/jdk/src/share/classes/javax/swing/colorchooser/DefaultPreviewPanel.java b/jdk/src/share/classes/javax/swing/colorchooser/DefaultPreviewPanel.java
index 55bdf41ee4a..2abba55060b 100644
--- a/jdk/src/share/classes/javax/swing/colorchooser/DefaultPreviewPanel.java
+++ b/jdk/src/share/classes/javax/swing/colorchooser/DefaultPreviewPanel.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -53,6 +53,7 @@ import sun.swing.SwingUtilities2;
* @author Steve Wilson
* @see JColorChooser
*/
+@SuppressWarnings("serial") // Same-version serialization only
class DefaultPreviewPanel extends JPanel {
private int squareSize = 25;
diff --git a/jdk/src/share/classes/javax/swing/colorchooser/DefaultSwatchChooserPanel.java b/jdk/src/share/classes/javax/swing/colorchooser/DefaultSwatchChooserPanel.java
index 6fdcf42c827..e56b95f2ddf 100644
--- a/jdk/src/share/classes/javax/swing/colorchooser/DefaultSwatchChooserPanel.java
+++ b/jdk/src/share/classes/javax/swing/colorchooser/DefaultSwatchChooserPanel.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -51,6 +51,7 @@ import javax.accessibility.*;
*
* @author Steve Wilson
*/
+@SuppressWarnings("serial") // Same-version serialization only
class DefaultSwatchChooserPanel extends AbstractColorChooserPanel {
SwatchPanel swatchPanel;
diff --git a/jdk/src/share/classes/javax/swing/event/CaretEvent.java b/jdk/src/share/classes/javax/swing/event/CaretEvent.java
index 049ec5be649..55c50da3809 100644
--- a/jdk/src/share/classes/javax/swing/event/CaretEvent.java
+++ b/jdk/src/share/classes/javax/swing/event/CaretEvent.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -42,6 +42,7 @@ import java.util.EventObject;
*
* @author Timothy Prinzing
*/
+@SuppressWarnings("serial") // Same-version serialization only
public abstract class CaretEvent extends EventObject {
/**
diff --git a/jdk/src/share/classes/javax/swing/event/HyperlinkEvent.java b/jdk/src/share/classes/javax/swing/event/HyperlinkEvent.java
index b3262e6f0fd..848910188e9 100644
--- a/jdk/src/share/classes/javax/swing/event/HyperlinkEvent.java
+++ b/jdk/src/share/classes/javax/swing/event/HyperlinkEvent.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -45,6 +45,7 @@ import javax.swing.text.Element;
*
* @author Timothy Prinzing
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class HyperlinkEvent extends EventObject {
/**
diff --git a/jdk/src/share/classes/javax/swing/event/InternalFrameEvent.java b/jdk/src/share/classes/javax/swing/event/InternalFrameEvent.java
index f061581cbb9..29247682f1d 100644
--- a/jdk/src/share/classes/javax/swing/event/InternalFrameEvent.java
+++ b/jdk/src/share/classes/javax/swing/event/InternalFrameEvent.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -53,6 +53,7 @@ import javax.swing.JInternalFrame;
*
* @author Thomas Ball
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class InternalFrameEvent extends AWTEvent {
/**
diff --git a/jdk/src/share/classes/javax/swing/event/ListSelectionEvent.java b/jdk/src/share/classes/javax/swing/event/ListSelectionEvent.java
index adbb2c87ed7..a5128f1e47c 100644
--- a/jdk/src/share/classes/javax/swing/event/ListSelectionEvent.java
+++ b/jdk/src/share/classes/javax/swing/event/ListSelectionEvent.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -50,6 +50,7 @@ import javax.swing.*;
* @author Ray Ryan
* @see ListSelectionModel
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class ListSelectionEvent extends EventObject
{
private int firstIndex;
diff --git a/jdk/src/share/classes/javax/swing/event/TableColumnModelEvent.java b/jdk/src/share/classes/javax/swing/event/TableColumnModelEvent.java
index 18f72a0839d..1958ded5e39 100644
--- a/jdk/src/share/classes/javax/swing/event/TableColumnModelEvent.java
+++ b/jdk/src/share/classes/javax/swing/event/TableColumnModelEvent.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -45,6 +45,7 @@ import javax.swing.table.*;
* @author Alan Chung
* @see TableColumnModelListener
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class TableColumnModelEvent extends java.util.EventObject
{
//
diff --git a/jdk/src/share/classes/javax/swing/event/TableModelEvent.java b/jdk/src/share/classes/javax/swing/event/TableModelEvent.java
index ab450cbd72d..0247f992a4d 100644
--- a/jdk/src/share/classes/javax/swing/event/TableModelEvent.java
+++ b/jdk/src/share/classes/javax/swing/event/TableModelEvent.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -65,6 +65,7 @@ import javax.swing.table.*;
* @author Philip Milne
* @see TableModel
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class TableModelEvent extends java.util.EventObject
{
/** Identifies the addition of new rows or columns. */
diff --git a/jdk/src/share/classes/javax/swing/event/TreeExpansionEvent.java b/jdk/src/share/classes/javax/swing/event/TreeExpansionEvent.java
index c91d7cdb106..1e70200b2e7 100644
--- a/jdk/src/share/classes/javax/swing/event/TreeExpansionEvent.java
+++ b/jdk/src/share/classes/javax/swing/event/TreeExpansionEvent.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -48,6 +48,7 @@ import javax.swing.tree.TreePath;
*
* @author Scott Violet
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class TreeExpansionEvent extends EventObject
{
/**
diff --git a/jdk/src/share/classes/javax/swing/event/TreeModelEvent.java b/jdk/src/share/classes/javax/swing/event/TreeModelEvent.java
index 9b3bc05f331..8dbdfcb8d3c 100644
--- a/jdk/src/share/classes/javax/swing/event/TreeModelEvent.java
+++ b/jdk/src/share/classes/javax/swing/event/TreeModelEvent.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -50,6 +50,7 @@ import javax.swing.tree.TreePath;
* @author Ray Ryan
* @author Scott Violet
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class TreeModelEvent extends EventObject {
/** Path to the parent of the nodes that have changed. */
protected TreePath path;
diff --git a/jdk/src/share/classes/javax/swing/event/UndoableEditEvent.java b/jdk/src/share/classes/javax/swing/event/UndoableEditEvent.java
index 85d4c28c40c..bc81d9a721c 100644
--- a/jdk/src/share/classes/javax/swing/event/UndoableEditEvent.java
+++ b/jdk/src/share/classes/javax/swing/event/UndoableEditEvent.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -41,6 +41,7 @@ import javax.swing.undo.*;
*
* @author Ray Ryan
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class UndoableEditEvent extends java.util.EventObject {
private UndoableEdit myEdit;
diff --git a/jdk/src/share/classes/javax/swing/plaf/BorderUIResource.java b/jdk/src/share/classes/javax/swing/plaf/BorderUIResource.java
index 0e549348ef9..18fab84cd05 100644
--- a/jdk/src/share/classes/javax/swing/plaf/BorderUIResource.java
+++ b/jdk/src/share/classes/javax/swing/plaf/BorderUIResource.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -59,6 +59,7 @@ import javax.swing.plaf.UIResource;
* @author Amy Fowler
*
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class BorderUIResource implements Border, UIResource, Serializable
{
static Border etched;
diff --git a/jdk/src/share/classes/javax/swing/plaf/ColorUIResource.java b/jdk/src/share/classes/javax/swing/plaf/ColorUIResource.java
index 79eba0477a5..11a5e6bccae 100644
--- a/jdk/src/share/classes/javax/swing/plaf/ColorUIResource.java
+++ b/jdk/src/share/classes/javax/swing/plaf/ColorUIResource.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -45,6 +45,7 @@ import java.beans.ConstructorProperties;
* @author Hans Muller
*
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class ColorUIResource extends Color implements UIResource
{
@ConstructorProperties({"red", "green", "blue"})
diff --git a/jdk/src/share/classes/javax/swing/plaf/DimensionUIResource.java b/jdk/src/share/classes/javax/swing/plaf/DimensionUIResource.java
index 49828dc3550..1489352633c 100644
--- a/jdk/src/share/classes/javax/swing/plaf/DimensionUIResource.java
+++ b/jdk/src/share/classes/javax/swing/plaf/DimensionUIResource.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -48,6 +48,7 @@ import javax.swing.plaf.UIResource;
* @author Amy Fowler
*
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class DimensionUIResource extends Dimension implements UIResource
{
public DimensionUIResource(int width, int height) {
diff --git a/jdk/src/share/classes/javax/swing/plaf/FontUIResource.java b/jdk/src/share/classes/javax/swing/plaf/FontUIResource.java
index f8966e8719a..f39fa8d7afa 100644
--- a/jdk/src/share/classes/javax/swing/plaf/FontUIResource.java
+++ b/jdk/src/share/classes/javax/swing/plaf/FontUIResource.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -47,6 +47,7 @@ import javax.swing.plaf.UIResource;
* @author Hans Muller
*
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class FontUIResource extends Font implements UIResource
{
public FontUIResource(String name, int style, int size) {
diff --git a/jdk/src/share/classes/javax/swing/plaf/IconUIResource.java b/jdk/src/share/classes/javax/swing/plaf/IconUIResource.java
index 2fd10327a3f..5a25f5e8c4c 100644
--- a/jdk/src/share/classes/javax/swing/plaf/IconUIResource.java
+++ b/jdk/src/share/classes/javax/swing/plaf/IconUIResource.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -52,6 +52,7 @@ import javax.swing.plaf.UIResource;
* @author Amy Fowler
*
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class IconUIResource implements Icon, UIResource, Serializable
{
private Icon delegate;
diff --git a/jdk/src/share/classes/javax/swing/plaf/InsetsUIResource.java b/jdk/src/share/classes/javax/swing/plaf/InsetsUIResource.java
index 5da2498b4f5..9cf0ba4afed 100644
--- a/jdk/src/share/classes/javax/swing/plaf/InsetsUIResource.java
+++ b/jdk/src/share/classes/javax/swing/plaf/InsetsUIResource.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -47,6 +47,7 @@ import javax.swing.plaf.UIResource;
* @author Amy Fowler
*
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class InsetsUIResource extends Insets implements UIResource
{
public InsetsUIResource(int top, int left, int bottom, int right) {
diff --git a/jdk/src/share/classes/javax/swing/plaf/basic/BasicArrowButton.java b/jdk/src/share/classes/javax/swing/plaf/basic/BasicArrowButton.java
index 73b79263129..750fe60c235 100644
--- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicArrowButton.java
+++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicArrowButton.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -45,6 +45,7 @@ import javax.swing.plaf.UIResource;
*
* @author David Kloba
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class BasicArrowButton extends JButton implements SwingConstants
{
/**
diff --git a/jdk/src/share/classes/javax/swing/plaf/basic/BasicCheckBoxUI.java b/jdk/src/share/classes/javax/swing/plaf/basic/BasicCheckBoxUI.java
index 4c1d5c399d8..256a3afbfcf 100644
--- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicCheckBoxUI.java
+++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicCheckBoxUI.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -49,6 +49,7 @@ import java.io.Serializable;
*
* @author Jeff Dinkins
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class BasicCheckBoxUI extends BasicRadioButtonUI {
private static final Object BASIC_CHECK_BOX_UI_KEY = new Object();
diff --git a/jdk/src/share/classes/javax/swing/plaf/basic/BasicComboBoxEditor.java b/jdk/src/share/classes/javax/swing/plaf/basic/BasicComboBoxEditor.java
index 07e0a0f56e8..6aa49dda179 100644
--- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicComboBoxEditor.java
+++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicComboBoxEditor.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -164,6 +164,7 @@ public class BasicComboBoxEditor implements ComboBoxEditor,FocusListener {
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
public static class UIResource extends BasicComboBoxEditor
implements javax.swing.plaf.UIResource {
}
diff --git a/jdk/src/share/classes/javax/swing/plaf/basic/BasicComboBoxRenderer.java b/jdk/src/share/classes/javax/swing/plaf/basic/BasicComboBoxRenderer.java
index f98be00b12c..963e180d381 100644
--- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicComboBoxRenderer.java
+++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicComboBoxRenderer.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -47,6 +47,7 @@ import java.io.Serializable;
*
* @author Arnaud Weber
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class BasicComboBoxRenderer extends JLabel
implements ListCellRenderer, Serializable {
@@ -139,6 +140,7 @@ implements ListCellRenderer, Serializable {
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
public static class UIResource extends BasicComboBoxRenderer implements javax.swing.plaf.UIResource {
}
}
diff --git a/jdk/src/share/classes/javax/swing/plaf/basic/BasicComboPopup.java b/jdk/src/share/classes/javax/swing/plaf/basic/BasicComboPopup.java
index e3ed947d732..dbc35e980e8 100644
--- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicComboPopup.java
+++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicComboPopup.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -60,6 +60,7 @@ import java.io.Serializable;
* @author Tom Santos
* @author Mark Davidson
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class BasicComboPopup extends JPopupMenu implements ComboPopup {
// An empty ListMode, this is used when the UI changes to allow
// the JList to be gc'ed.
diff --git a/jdk/src/share/classes/javax/swing/plaf/basic/BasicEditorPaneUI.java b/jdk/src/share/classes/javax/swing/plaf/basic/BasicEditorPaneUI.java
index 32bace0cc43..7445d79c2dc 100644
--- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicEditorPaneUI.java
+++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicEditorPaneUI.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -50,6 +50,7 @@ import javax.swing.border.*;
*
* @author Timothy Prinzing
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class BasicEditorPaneUI extends BasicTextUI {
/**
diff --git a/jdk/src/share/classes/javax/swing/plaf/basic/BasicIconFactory.java b/jdk/src/share/classes/javax/swing/plaf/basic/BasicIconFactory.java
index 6ea1cbcccf4..ec27f18dac1 100644
--- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicIconFactory.java
+++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicIconFactory.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -49,6 +49,7 @@ import java.io.Serializable;
* @author David Kloba
* @author Georges Saab
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class BasicIconFactory implements Serializable
{
private static Icon frame_icon;
diff --git a/jdk/src/share/classes/javax/swing/plaf/basic/BasicInternalFrameTitlePane.java b/jdk/src/share/classes/javax/swing/plaf/basic/BasicInternalFrameTitlePane.java
index 22eb7951066..33b38623425 100644
--- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicInternalFrameTitlePane.java
+++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicInternalFrameTitlePane.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -57,6 +57,7 @@ import sun.swing.UIAction;
* @author David Kloba
* @author Steve Wilson
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class BasicInternalFrameTitlePane extends JComponent
{
protected JMenuBar menuBar;
diff --git a/jdk/src/share/classes/javax/swing/plaf/basic/BasicListUI.java b/jdk/src/share/classes/javax/swing/plaf/basic/BasicListUI.java
index eb8df7bb774..f8a91437dde 100644
--- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicListUI.java
+++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicListUI.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -1496,6 +1496,7 @@ public class BasicListUI extends ListUI
* @see #installKeyboardActions
* @see #installUI
*/
+ @SuppressWarnings("serial") // Same-version serialization only
public class MouseInputHandler implements MouseInputListener
{
public void mouseClicked(MouseEvent e) {
@@ -1600,6 +1601,7 @@ public class BasicListUI extends ListUI
* @see #getCellBounds
* @see #installUI
*/
+ @SuppressWarnings("serial") // Same-version serialization only
public class ListSelectionHandler implements ListSelectionListener
{
public void valueChanged(ListSelectionEvent e)
@@ -1659,6 +1661,7 @@ public class BasicListUI extends ListUI
* @see #createListDataListener
* @see #installUI
*/
+ @SuppressWarnings("serial") // Same-version serialization only
public class ListDataHandler implements ListDataListener
{
public void intervalAdded(ListDataEvent e) {
@@ -1725,6 +1728,7 @@ public class BasicListUI extends ListUI
* @see #createPropertyChangeListener
* @see #installUI
*/
+ @SuppressWarnings("serial") // Same-version serialization only
public class PropertyChangeHandler implements PropertyChangeListener
{
public void propertyChange(PropertyChangeEvent e)
diff --git a/jdk/src/share/classes/javax/swing/plaf/basic/BasicLookAndFeel.java b/jdk/src/share/classes/javax/swing/plaf/basic/BasicLookAndFeel.java
index 4ad134756e9..1bcf5fa93e0 100644
--- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicLookAndFeel.java
+++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicLookAndFeel.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -102,6 +102,7 @@ import java.beans.PropertyChangeEvent;
*
* @author unattributed
*/
+@SuppressWarnings("serial") // Same-version serialization only
public abstract class BasicLookAndFeel extends LookAndFeel implements Serializable
{
/**
diff --git a/jdk/src/share/classes/javax/swing/plaf/basic/BasicSplitPaneDivider.java b/jdk/src/share/classes/javax/swing/plaf/basic/BasicSplitPaneDivider.java
index 9704705b2f5..36b4129598c 100644
--- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicSplitPaneDivider.java
+++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicSplitPaneDivider.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -59,6 +59,7 @@ import sun.swing.DefaultLookup;
*
* @author Scott Violet
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class BasicSplitPaneDivider extends Container
implements PropertyChangeListener
{
@@ -675,6 +676,7 @@ public class BasicSplitPaneDivider extends Container
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
protected class DragController
{
/**
diff --git a/jdk/src/share/classes/javax/swing/plaf/basic/BasicTextAreaUI.java b/jdk/src/share/classes/javax/swing/plaf/basic/BasicTextAreaUI.java
index 4a34184bdb1..85793b0a590 100644
--- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicTextAreaUI.java
+++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicTextAreaUI.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -49,6 +49,7 @@ import javax.swing.plaf.*;
*
* @author Timothy Prinzing
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class BasicTextAreaUI extends BasicTextUI {
/**
diff --git a/jdk/src/share/classes/javax/swing/plaf/basic/BasicTextFieldUI.java b/jdk/src/share/classes/javax/swing/plaf/basic/BasicTextFieldUI.java
index 0083c34b74f..379a2ef9864 100644
--- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicTextFieldUI.java
+++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicTextFieldUI.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -51,6 +51,7 @@ import sun.swing.DefaultLookup;
*
* @author Timothy Prinzing
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class BasicTextFieldUI extends BasicTextUI {
/**
diff --git a/jdk/src/share/classes/javax/swing/plaf/basic/BasicTextPaneUI.java b/jdk/src/share/classes/javax/swing/plaf/basic/BasicTextPaneUI.java
index 1e460c41584..1d94e9c5651 100644
--- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicTextPaneUI.java
+++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicTextPaneUI.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -47,6 +47,7 @@ import javax.swing.border.*;
*
* @author Timothy Prinzing
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class BasicTextPaneUI extends BasicEditorPaneUI {
/**
diff --git a/jdk/src/share/classes/javax/swing/plaf/basic/BasicTextUI.java b/jdk/src/share/classes/javax/swing/plaf/basic/BasicTextUI.java
index e3a2fb66ac3..0965c77789f 100644
--- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicTextUI.java
+++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicTextUI.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -100,6 +100,7 @@ import javax.swing.plaf.basic.DragRecognitionSupport.BeforeDrag;
* @author Timothy Prinzing
* @author Shannon Hickey (drag and drop)
*/
+@SuppressWarnings("serial") // Same-version serialization only
public abstract class BasicTextUI extends TextUI implements ViewFactory {
/**
diff --git a/jdk/src/share/classes/javax/swing/plaf/basic/ComboPopup.java b/jdk/src/share/classes/javax/swing/plaf/basic/ComboPopup.java
index c2a4fa25006..75850fe7273 100644
--- a/jdk/src/share/classes/javax/swing/plaf/basic/ComboPopup.java
+++ b/jdk/src/share/classes/javax/swing/plaf/basic/ComboPopup.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -46,6 +46,7 @@ import javax.swing.JList;
*
* @author Tom Santos
*/
+@SuppressWarnings("serial") // Same-version serialization only
public interface ComboPopup {
/**
* Shows the popup
diff --git a/jdk/src/share/classes/javax/swing/plaf/metal/DefaultMetalTheme.java b/jdk/src/share/classes/javax/swing/plaf/metal/DefaultMetalTheme.java
index 5527815d5b6..dae37d5e7be 100644
--- a/jdk/src/share/classes/javax/swing/plaf/metal/DefaultMetalTheme.java
+++ b/jdk/src/share/classes/javax/swing/plaf/metal/DefaultMetalTheme.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -88,6 +88,7 @@ import sun.swing.SwingUtilities2;
*
* @author Steve Wilson
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class DefaultMetalTheme extends MetalTheme {
/**
* Whether or not fonts should be plain. This is only used if
diff --git a/jdk/src/share/classes/javax/swing/plaf/metal/MetalButtonUI.java b/jdk/src/share/classes/javax/swing/plaf/metal/MetalButtonUI.java
index 3d02f9c5138..233949e3df1 100644
--- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalButtonUI.java
+++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalButtonUI.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -50,6 +50,7 @@ import javax.swing.plaf.*;
*
* @author Tom Santos
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class MetalButtonUI extends BasicButtonUI {
// NOTE: These are not really needed, but at this point we can't pull
// them. Their values are updated purely for historical reasons.
diff --git a/jdk/src/share/classes/javax/swing/plaf/metal/MetalCheckBoxIcon.java b/jdk/src/share/classes/javax/swing/plaf/metal/MetalCheckBoxIcon.java
index b32157144ef..0962c8e943a 100644
--- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalCheckBoxIcon.java
+++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalCheckBoxIcon.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -46,6 +46,7 @@ import javax.swing.plaf.*;
*
* @author Steve Wilson
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class MetalCheckBoxIcon implements Icon, UIResource, Serializable {
protected int getControlSize() { return 13; }
diff --git a/jdk/src/share/classes/javax/swing/plaf/metal/MetalCheckBoxUI.java b/jdk/src/share/classes/javax/swing/plaf/metal/MetalCheckBoxUI.java
index 95ef177105c..b80ec636ac2 100644
--- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalCheckBoxUI.java
+++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalCheckBoxUI.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -51,6 +51,7 @@ import java.io.Serializable;
* @author Michael C. Albers
*
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class MetalCheckBoxUI extends MetalRadioButtonUI {
// NOTE: MetalCheckBoxUI inherts from MetalRadioButtonUI instead
diff --git a/jdk/src/share/classes/javax/swing/plaf/metal/MetalComboBoxButton.java b/jdk/src/share/classes/javax/swing/plaf/metal/MetalComboBoxButton.java
index 63a53bf1a6a..6a6d1ed860e 100644
--- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalComboBoxButton.java
+++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalComboBoxButton.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -48,6 +48,7 @@ import java.io.Serializable;
* @see MetalComboBoxButton
* @author Tom Santos
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class MetalComboBoxButton extends JButton {
protected JComboBox comboBox;
protected JList listBox;
diff --git a/jdk/src/share/classes/javax/swing/plaf/metal/MetalComboBoxEditor.java b/jdk/src/share/classes/javax/swing/plaf/metal/MetalComboBoxEditor.java
index aa375fbb6be..4c95250013b 100644
--- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalComboBoxEditor.java
+++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalComboBoxEditor.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -47,6 +47,7 @@ import javax.swing.plaf.basic.BasicComboBoxEditor;
*
* @author Steve Wilson
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class MetalComboBoxEditor extends BasicComboBoxEditor {
public MetalComboBoxEditor() {
@@ -133,6 +134,7 @@ public class MetalComboBoxEditor extends BasicComboBoxEditor {
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
public static class UIResource extends MetalComboBoxEditor
implements javax.swing.plaf.UIResource {
}
diff --git a/jdk/src/share/classes/javax/swing/plaf/metal/MetalComboBoxUI.java b/jdk/src/share/classes/javax/swing/plaf/metal/MetalComboBoxUI.java
index 74f8830f30c..eb9afb93439 100644
--- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalComboBoxUI.java
+++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalComboBoxUI.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -51,6 +51,7 @@ import java.beans.*;
* @see MetalComboBoxButton
* @author Tom Santos
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class MetalComboBoxUI extends BasicComboBoxUI {
public static ComponentUI createUI(JComponent c) {
diff --git a/jdk/src/share/classes/javax/swing/plaf/metal/MetalIconFactory.java b/jdk/src/share/classes/javax/swing/plaf/metal/MetalIconFactory.java
index 5b81f17624f..e74882523d0 100644
--- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalIconFactory.java
+++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalIconFactory.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -58,6 +58,7 @@ import sun.swing.CachedPainter;
*
* @author Michael C. Albers
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class MetalIconFactory implements Serializable {
// List of code-drawn Icons
@@ -1554,6 +1555,7 @@ public class MetalIconFactory implements Serializable {
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
public static class FolderIcon16 implements Icon, Serializable {
ImageCacher imageCacher;
@@ -1636,6 +1638,7 @@ public class MetalIconFactory implements Serializable {
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
public static class TreeFolderIcon extends FolderIcon16 {
public int getShift() { return -1; }
public int getAdditionalHeight() { return 2; }
@@ -1655,6 +1658,7 @@ public class MetalIconFactory implements Serializable {
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
public static class FileIcon16 implements Icon, Serializable {
ImageCacher imageCacher;
@@ -1740,6 +1744,7 @@ public class MetalIconFactory implements Serializable {
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
public static class TreeControlIcon implements Icon, Serializable {
// This data member should not have been exposed. It's called
// isLight, but now it really means isCollapsed. Since we can't change
diff --git a/jdk/src/share/classes/javax/swing/plaf/metal/MetalLookAndFeel.java b/jdk/src/share/classes/javax/swing/plaf/metal/MetalLookAndFeel.java
index 7318815e691..a51603608e6 100644
--- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalLookAndFeel.java
+++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalLookAndFeel.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -82,6 +82,7 @@ import sun.swing.SwingUtilities2;
*
* @author Steve Wilson
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class MetalLookAndFeel extends BasicLookAndFeel
{
diff --git a/jdk/src/share/classes/javax/swing/plaf/metal/MetalProgressBarUI.java b/jdk/src/share/classes/javax/swing/plaf/metal/MetalProgressBarUI.java
index a2918b0e9b1..aedede36688 100644
--- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalProgressBarUI.java
+++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalProgressBarUI.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -44,6 +44,7 @@ import java.awt.*;
*
* @author Michael C. Albers
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class MetalProgressBarUI extends BasicProgressBarUI {
private Rectangle innards;
diff --git a/jdk/src/share/classes/javax/swing/plaf/metal/MetalRadioButtonUI.java b/jdk/src/share/classes/javax/swing/plaf/metal/MetalRadioButtonUI.java
index 274335580c6..9b7beeacf98 100644
--- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalRadioButtonUI.java
+++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalRadioButtonUI.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -53,6 +53,7 @@ import javax.swing.text.View;
* @author Michael C. Albers (Metal modifications)
* @author Jeff Dinkins (original BasicRadioButtonCode)
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class MetalRadioButtonUI extends BasicRadioButtonUI {
private static final Object METAL_RADIO_BUTTON_UI_KEY = new Object();
diff --git a/jdk/src/share/classes/javax/swing/plaf/metal/MetalRootPaneUI.java b/jdk/src/share/classes/javax/swing/plaf/metal/MetalRootPaneUI.java
index e40721dddb5..2d2c4b20ce2 100644
--- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalRootPaneUI.java
+++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalRootPaneUI.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -63,6 +63,7 @@ import java.security.*;
* @author Terry Kellerman
* @since 1.4
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class MetalRootPaneUI extends BasicRootPaneUI
{
/**
diff --git a/jdk/src/share/classes/javax/swing/plaf/metal/MetalScrollButton.java b/jdk/src/share/classes/javax/swing/plaf/metal/MetalScrollButton.java
index 61616d47041..edd40950ec4 100644
--- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalScrollButton.java
+++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalScrollButton.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -50,6 +50,7 @@ import javax.swing.plaf.basic.BasicArrowButton;
* @author Tom Santos
* @author Steve Wilson
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class MetalScrollButton extends BasicArrowButton
{
private static Color shadowColor;
diff --git a/jdk/src/share/classes/javax/swing/plaf/metal/MetalScrollPaneUI.java b/jdk/src/share/classes/javax/swing/plaf/metal/MetalScrollPaneUI.java
index d1f5b7abb19..ffc5fc4df1c 100644
--- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalScrollPaneUI.java
+++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalScrollPaneUI.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -50,6 +50,7 @@ import java.awt.event.*;
*
* @author Steve Wilson
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class MetalScrollPaneUI extends BasicScrollPaneUI
{
diff --git a/jdk/src/share/classes/javax/swing/plaf/metal/MetalSeparatorUI.java b/jdk/src/share/classes/javax/swing/plaf/metal/MetalSeparatorUI.java
index 17ac847c703..9de133b902d 100644
--- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalSeparatorUI.java
+++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalSeparatorUI.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -50,7 +50,7 @@ import javax.swing.plaf.basic.BasicSeparatorUI;
*
* @author Jeff Shapiro
*/
-
+@SuppressWarnings("serial") // Same-version serialization only
public class MetalSeparatorUI extends BasicSeparatorUI
{
public static ComponentUI createUI( JComponent c )
diff --git a/jdk/src/share/classes/javax/swing/plaf/metal/MetalSliderUI.java b/jdk/src/share/classes/javax/swing/plaf/metal/MetalSliderUI.java
index 3fbfb3fa55f..6e629938a65 100644
--- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalSliderUI.java
+++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalSliderUI.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -50,6 +50,7 @@ import javax.swing.plaf.*;
*
* @author Tom Santos
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class MetalSliderUI extends BasicSliderUI {
protected final int TICK_BUFFER = 4;
diff --git a/jdk/src/share/classes/javax/swing/plaf/metal/MetalSplitPaneDivider.java b/jdk/src/share/classes/javax/swing/plaf/metal/MetalSplitPaneDivider.java
index cdeffadaeab..8ba134e48f6 100644
--- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalSplitPaneDivider.java
+++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalSplitPaneDivider.java
@@ -46,6 +46,7 @@ import javax.swing.plaf.basic.*;
* @author Steve Wilson
* @author Ralph kar
*/
+@SuppressWarnings("serial") // Same-version serialization only
class MetalSplitPaneDivider extends BasicSplitPaneDivider
{
private MetalBumps bumps = new MetalBumps(10, 10,
diff --git a/jdk/src/share/classes/javax/swing/plaf/metal/MetalSplitPaneUI.java b/jdk/src/share/classes/javax/swing/plaf/metal/MetalSplitPaneUI.java
index 8aaa40942a0..d27ea2e4828 100644
--- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalSplitPaneUI.java
+++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalSplitPaneUI.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -43,6 +43,7 @@ import javax.swing.plaf.basic.*;
*
* @author Steve Wilson
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class MetalSplitPaneUI extends BasicSplitPaneUI
{
diff --git a/jdk/src/share/classes/javax/swing/plaf/metal/MetalTabbedPaneUI.java b/jdk/src/share/classes/javax/swing/plaf/metal/MetalTabbedPaneUI.java
index 23ead51d4d9..75dc959ca3d 100644
--- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalTabbedPaneUI.java
+++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalTabbedPaneUI.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -47,7 +47,7 @@ import javax.swing.plaf.basic.BasicTabbedPaneUI;
*
* @author Tom Santos
*/
-
+@SuppressWarnings("serial") // Same-version serialization only
public class MetalTabbedPaneUI extends BasicTabbedPaneUI {
protected int minTabWidth = 40;
diff --git a/jdk/src/share/classes/javax/swing/plaf/metal/MetalTextFieldUI.java b/jdk/src/share/classes/javax/swing/plaf/metal/MetalTextFieldUI.java
index 8fe89f3fd33..1eca55ed7d2 100644
--- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalTextFieldUI.java
+++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalTextFieldUI.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -47,6 +47,7 @@ import javax.swing.plaf.basic.*;
*
* @author Steve Wilson
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class MetalTextFieldUI extends BasicTextFieldUI {
public static ComponentUI createUI(JComponent c) {
diff --git a/jdk/src/share/classes/javax/swing/plaf/metal/MetalToggleButtonUI.java b/jdk/src/share/classes/javax/swing/plaf/metal/MetalToggleButtonUI.java
index d207cbbb1d5..d0d902eecee 100644
--- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalToggleButtonUI.java
+++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalToggleButtonUI.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -55,6 +55,7 @@ import java.io.Serializable;
*
* @author Tom Santos
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class MetalToggleButtonUI extends BasicToggleButtonUI {
private static final Object METAL_TOGGLE_BUTTON_UI_KEY = new Object();
diff --git a/jdk/src/share/classes/javax/swing/plaf/metal/MetalToolTipUI.java b/jdk/src/share/classes/javax/swing/plaf/metal/MetalToolTipUI.java
index 38a39a06746..2a7a1b1e571 100644
--- a/jdk/src/share/classes/javax/swing/plaf/metal/MetalToolTipUI.java
+++ b/jdk/src/share/classes/javax/swing/plaf/metal/MetalToolTipUI.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -51,6 +51,7 @@ import javax.swing.text.View;
*
* @author Steve Wilson
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class MetalToolTipUI extends BasicToolTipUI {
static MetalToolTipUI sharedInstance = new MetalToolTipUI();
diff --git a/jdk/src/share/classes/javax/swing/plaf/multi/MultiLookAndFeel.java b/jdk/src/share/classes/javax/swing/plaf/multi/MultiLookAndFeel.java
index 0e6c8e8de96..65828883fdd 100644
--- a/jdk/src/share/classes/javax/swing/plaf/multi/MultiLookAndFeel.java
+++ b/jdk/src/share/classes/javax/swing/plaf/multi/MultiLookAndFeel.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -56,6 +56,7 @@ import javax.swing.plaf.*;
*
* @author Willie Walker
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class MultiLookAndFeel extends LookAndFeel {
//////////////////////////////
diff --git a/jdk/src/share/classes/javax/swing/plaf/synth/SynthTextAreaUI.java b/jdk/src/share/classes/javax/swing/plaf/synth/SynthTextAreaUI.java
index 09b33ec95e7..441698ce0a9 100644
--- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthTextAreaUI.java
+++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthTextAreaUI.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -51,6 +51,7 @@ import java.beans.PropertyChangeEvent;
* @author Shannon Hickey
* @since 1.7
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class SynthTextAreaUI extends BasicTextAreaUI implements SynthUI {
private Handler handler = new Handler();
private SynthStyle style;
diff --git a/jdk/src/share/classes/javax/swing/plaf/synth/SynthTextFieldUI.java b/jdk/src/share/classes/javax/swing/plaf/synth/SynthTextFieldUI.java
index 9a1ae3ef6d9..7028a5a5999 100644
--- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthTextFieldUI.java
+++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthTextFieldUI.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -50,6 +50,7 @@ import java.beans.PropertyChangeEvent;
* @author Shannon Hickey
* @since 1.7
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class SynthTextFieldUI extends BasicTextFieldUI implements SynthUI {
private Handler handler = new Handler();
private SynthStyle style;
diff --git a/jdk/src/share/classes/javax/swing/plaf/synth/SynthTextPaneUI.java b/jdk/src/share/classes/javax/swing/plaf/synth/SynthTextPaneUI.java
index 8b21b4ba7c6..d4f8aaca373 100644
--- a/jdk/src/share/classes/javax/swing/plaf/synth/SynthTextPaneUI.java
+++ b/jdk/src/share/classes/javax/swing/plaf/synth/SynthTextPaneUI.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -47,6 +47,7 @@ import java.awt.*;
* @author Shannon Hickey
* @since 1.7
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class SynthTextPaneUI extends SynthEditorPaneUI {
/**
diff --git a/jdk/src/share/classes/javax/swing/table/AbstractTableModel.java b/jdk/src/share/classes/javax/swing/table/AbstractTableModel.java
index c9ea60271dc..d7c63bce05a 100644
--- a/jdk/src/share/classes/javax/swing/table/AbstractTableModel.java
+++ b/jdk/src/share/classes/javax/swing/table/AbstractTableModel.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -57,6 +57,7 @@ import java.util.EventListener;
* @author Alan Chung
* @author Philip Milne
*/
+@SuppressWarnings("serial") // Same-version serialization only
public abstract class AbstractTableModel implements TableModel, Serializable
{
//
diff --git a/jdk/src/share/classes/javax/swing/table/DefaultTableCellRenderer.java b/jdk/src/share/classes/javax/swing/table/DefaultTableCellRenderer.java
index 61c6c9f732e..123ac8d5e64 100644
--- a/jdk/src/share/classes/javax/swing/table/DefaultTableCellRenderer.java
+++ b/jdk/src/share/classes/javax/swing/table/DefaultTableCellRenderer.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -82,6 +82,7 @@ import sun.swing.DefaultLookup;
* @author Philip Milne
* @see JTable
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class DefaultTableCellRenderer extends JLabel
implements TableCellRenderer, Serializable
{
@@ -391,6 +392,7 @@ public class DefaultTableCellRenderer extends JLabel
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
public static class UIResource extends DefaultTableCellRenderer
implements javax.swing.plaf.UIResource
{
diff --git a/jdk/src/share/classes/javax/swing/table/DefaultTableColumnModel.java b/jdk/src/share/classes/javax/swing/table/DefaultTableColumnModel.java
index b5bbd077a2b..96193cb35fd 100644
--- a/jdk/src/share/classes/javax/swing/table/DefaultTableColumnModel.java
+++ b/jdk/src/share/classes/javax/swing/table/DefaultTableColumnModel.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -52,6 +52,7 @@ import sun.swing.SwingUtilities2;
* @author Philip Milne
* @see JTable
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class DefaultTableColumnModel implements TableColumnModel,
PropertyChangeListener, ListSelectionListener, Serializable
{
diff --git a/jdk/src/share/classes/javax/swing/table/DefaultTableModel.java b/jdk/src/share/classes/javax/swing/table/DefaultTableModel.java
index 6bf39981d3d..74b88c1160d 100644
--- a/jdk/src/share/classes/javax/swing/table/DefaultTableModel.java
+++ b/jdk/src/share/classes/javax/swing/table/DefaultTableModel.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -59,6 +59,7 @@ import javax.swing.event.TableModelEvent;
* @see TableModel
* @see #getDataVector
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class DefaultTableModel extends AbstractTableModel implements Serializable {
//
diff --git a/jdk/src/share/classes/javax/swing/table/JTableHeader.java b/jdk/src/share/classes/javax/swing/table/JTableHeader.java
index e096e338cc4..3995cccc288 100644
--- a/jdk/src/share/classes/javax/swing/table/JTableHeader.java
+++ b/jdk/src/share/classes/javax/swing/table/JTableHeader.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -60,6 +60,7 @@ import java.io.IOException;
* @author Philip Milne
* @see javax.swing.JTable
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class JTableHeader extends JComponent implements TableColumnModelListener, Accessible
{
/**
@@ -780,6 +781,7 @@ public class JTableHeader extends JComponent implements TableColumnModelListener
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
protected class AccessibleJTableHeader extends AccessibleJComponent {
/**
diff --git a/jdk/src/share/classes/javax/swing/table/TableColumn.java b/jdk/src/share/classes/javax/swing/table/TableColumn.java
index 42d722aa958..713bf5483dc 100644
--- a/jdk/src/share/classes/javax/swing/table/TableColumn.java
+++ b/jdk/src/share/classes/javax/swing/table/TableColumn.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -82,6 +82,7 @@ import java.beans.PropertyChangeListener;
* @see JTable#getCellRenderer(int, int)
* @see JTable#getCellEditor(int, int)
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class TableColumn extends Object implements Serializable {
/**
diff --git a/jdk/src/share/classes/javax/swing/text/AbstractDocument.java b/jdk/src/share/classes/javax/swing/text/AbstractDocument.java
index f8a4332a839..6332cb3d3b7 100644
--- a/jdk/src/share/classes/javax/swing/text/AbstractDocument.java
+++ b/jdk/src/share/classes/javax/swing/text/AbstractDocument.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -96,6 +96,7 @@ import sun.swing.SwingUtilities2;
*
* @author Timothy Prinzing
*/
+@SuppressWarnings("serial") // Same-version serialization only
public abstract class AbstractDocument implements Document, Serializable {
/**
@@ -1782,6 +1783,7 @@ public abstract class AbstractDocument implements Document, Serializable {
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
public abstract class AbstractElement implements Element, MutableAttributeSet, Serializable, TreeNode {
/**
@@ -2251,6 +2253,7 @@ public abstract class AbstractDocument implements Document, Serializable {
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
public class BranchElement extends AbstractElement {
/**
@@ -2507,6 +2510,7 @@ public abstract class AbstractDocument implements Document, Serializable {
*
* @see Element
*/
+ @SuppressWarnings("serial") // Same-version serialization only
public class LeafElement extends AbstractElement {
/**
diff --git a/jdk/src/share/classes/javax/swing/text/DateFormatter.java b/jdk/src/share/classes/javax/swing/text/DateFormatter.java
index b301bf97aaa..e935053bfc8 100644
--- a/jdk/src/share/classes/javax/swing/text/DateFormatter.java
+++ b/jdk/src/share/classes/javax/swing/text/DateFormatter.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -47,6 +47,7 @@ import javax.swing.text.*;
*
* @since 1.4
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class DateFormatter extends InternationalFormatter {
/**
* This is shorthand for
diff --git a/jdk/src/share/classes/javax/swing/text/DefaultCaret.java b/jdk/src/share/classes/javax/swing/text/DefaultCaret.java
index 7b06fb3f1c9..5eb0b2b10fe 100644
--- a/jdk/src/share/classes/javax/swing/text/DefaultCaret.java
+++ b/jdk/src/share/classes/javax/swing/text/DefaultCaret.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -105,6 +105,7 @@ import sun.swing.SwingUtilities2;
* @author Timothy Prinzing
* @see Caret
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class DefaultCaret extends Rectangle implements Caret, FocusListener, MouseListener, MouseMotionListener {
/**
diff --git a/jdk/src/share/classes/javax/swing/text/DefaultEditorKit.java b/jdk/src/share/classes/javax/swing/text/DefaultEditorKit.java
index ec5a04f3780..55d75fb7364 100644
--- a/jdk/src/share/classes/javax/swing/text/DefaultEditorKit.java
+++ b/jdk/src/share/classes/javax/swing/text/DefaultEditorKit.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -849,6 +849,7 @@ public class DefaultEditorKit extends EditorKit {
* @see Keymap#setDefaultAction
* @see Keymap#getDefaultAction
*/
+ @SuppressWarnings("serial") // Same-version serialization only
public static class DefaultKeyTypedAction extends TextAction {
/**
@@ -906,6 +907,7 @@ public class DefaultEditorKit extends EditorKit {
* @see DefaultEditorKit#insertContentAction
* @see DefaultEditorKit#getActions
*/
+ @SuppressWarnings("serial") // Same-version serialization only
public static class InsertContentAction extends TextAction {
/**
@@ -954,6 +956,7 @@ public class DefaultEditorKit extends EditorKit {
* @see DefaultEditorKit#insertBreakAction
* @see DefaultEditorKit#getActions
*/
+ @SuppressWarnings("serial") // Same-version serialization only
public static class InsertBreakAction extends TextAction {
/**
@@ -996,6 +999,7 @@ public class DefaultEditorKit extends EditorKit {
* @see DefaultEditorKit#insertTabAction
* @see DefaultEditorKit#getActions
*/
+ @SuppressWarnings("serial") // Same-version serialization only
public static class InsertTabAction extends TextAction {
/**
@@ -1272,6 +1276,7 @@ public class DefaultEditorKit extends EditorKit {
* @see DefaultEditorKit#cutAction
* @see DefaultEditorKit#getActions
*/
+ @SuppressWarnings("serial") // Same-version serialization only
public static class CutAction extends TextAction {
/** Create this object with the appropriate identifier. */
@@ -1308,6 +1313,7 @@ public class DefaultEditorKit extends EditorKit {
* @see DefaultEditorKit#copyAction
* @see DefaultEditorKit#getActions
*/
+ @SuppressWarnings("serial") // Same-version serialization only
public static class CopyAction extends TextAction {
/** Create this object with the appropriate identifier. */
@@ -1345,6 +1351,7 @@ public class DefaultEditorKit extends EditorKit {
* @see DefaultEditorKit#pasteAction
* @see DefaultEditorKit#getActions
*/
+ @SuppressWarnings("serial") // Same-version serialization only
public static class PasteAction extends TextAction {
/** Create this object with the appropriate identifier. */
@@ -1380,6 +1387,7 @@ public class DefaultEditorKit extends EditorKit {
* @see DefaultEditorKit#beepAction
* @see DefaultEditorKit#getActions
*/
+ @SuppressWarnings("serial") // Same-version serialization only
public static class BeepAction extends TextAction {
/** Create this object with the appropriate identifier. */
diff --git a/jdk/src/share/classes/javax/swing/text/DefaultFormatter.java b/jdk/src/share/classes/javax/swing/text/DefaultFormatter.java
index 5fa3ad9fbbd..0a4df2c0a1d 100644
--- a/jdk/src/share/classes/javax/swing/text/DefaultFormatter.java
+++ b/jdk/src/share/classes/javax/swing/text/DefaultFormatter.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -59,6 +59,7 @@ import javax.swing.text.*;
*
* @since 1.4
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class DefaultFormatter extends JFormattedTextField.AbstractFormatter
implements Cloneable, Serializable {
/** Indicates if the value being edited must match the mask. */
diff --git a/jdk/src/share/classes/javax/swing/text/DefaultFormatterFactory.java b/jdk/src/share/classes/javax/swing/text/DefaultFormatterFactory.java
index 7474dcbc205..ff52dde9803 100644
--- a/jdk/src/share/classes/javax/swing/text/DefaultFormatterFactory.java
+++ b/jdk/src/share/classes/javax/swing/text/DefaultFormatterFactory.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -72,6 +72,7 @@ import javax.swing.JFormattedTextField;
*
* @since 1.4
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class DefaultFormatterFactory extends JFormattedTextField.AbstractFormatterFactory implements Serializable {
/**
* Default AbstractFormatter
to use if a more specific one has
diff --git a/jdk/src/share/classes/javax/swing/text/DefaultStyledDocument.java b/jdk/src/share/classes/javax/swing/text/DefaultStyledDocument.java
index 85c9fe5e308..a5ce0633f74 100644
--- a/jdk/src/share/classes/javax/swing/text/DefaultStyledDocument.java
+++ b/jdk/src/share/classes/javax/swing/text/DefaultStyledDocument.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -69,6 +69,7 @@ import static sun.swing.SwingUtilities2.IMPLIED_CR;
* @see Document
* @see AbstractDocument
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class DefaultStyledDocument extends AbstractDocument implements StyledDocument {
/**
@@ -1128,6 +1129,7 @@ public class DefaultStyledDocument extends AbstractDocument implements StyledDoc
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
protected class SectionElement extends BranchElement {
/**
@@ -1159,6 +1161,7 @@ public class DefaultStyledDocument extends AbstractDocument implements StyledDoc
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
public static class ElementSpec {
/**
@@ -1394,6 +1397,7 @@ public class DefaultStyledDocument extends AbstractDocument implements StyledDoc
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
public class ElementBuffer implements Serializable {
/**
diff --git a/jdk/src/share/classes/javax/swing/text/InternationalFormatter.java b/jdk/src/share/classes/javax/swing/text/InternationalFormatter.java
index dc3e046b024..8c91658167d 100644
--- a/jdk/src/share/classes/javax/swing/text/InternationalFormatter.java
+++ b/jdk/src/share/classes/javax/swing/text/InternationalFormatter.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -92,6 +92,7 @@ import javax.swing.*;
*
* @since 1.4
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class InternationalFormatter extends DefaultFormatter {
/**
* Used by getFields
.
diff --git a/jdk/src/share/classes/javax/swing/text/JTextComponent.java b/jdk/src/share/classes/javax/swing/text/JTextComponent.java
index 42c2a2e1764..714b3381619 100644
--- a/jdk/src/share/classes/javax/swing/text/JTextComponent.java
+++ b/jdk/src/share/classes/javax/swing/text/JTextComponent.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -292,6 +292,7 @@ import sun.swing.SwingAccessor;
* @see View
* @see ViewFactory
*/
+@SuppressWarnings("serial") // Same-version serialization only
public abstract class JTextComponent extends JComponent implements Scrollable, Accessible
{
/**
@@ -1118,6 +1119,7 @@ public abstract class JTextComponent extends JComponent implements Scrollable, A
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
public static class KeyBinding {
/**
@@ -2535,6 +2537,7 @@ public abstract class JTextComponent extends JComponent implements Scrollable, A
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
public class AccessibleJTextComponent extends AccessibleJComponent
implements AccessibleText, CaretListener, DocumentListener,
AccessibleAction, AccessibleEditableText,
diff --git a/jdk/src/share/classes/javax/swing/text/MaskFormatter.java b/jdk/src/share/classes/javax/swing/text/MaskFormatter.java
index 2285e4ef1d1..1c37ed9180f 100644
--- a/jdk/src/share/classes/javax/swing/text/MaskFormatter.java
+++ b/jdk/src/share/classes/javax/swing/text/MaskFormatter.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -149,6 +149,7 @@ import javax.swing.*;
*
* @since 1.4
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class MaskFormatter extends DefaultFormatter {
// Potential values in mask.
private static final char DIGIT_KEY = '#';
diff --git a/jdk/src/share/classes/javax/swing/text/NumberFormatter.java b/jdk/src/share/classes/javax/swing/text/NumberFormatter.java
index f170b9aa967..bcc518ce39e 100644
--- a/jdk/src/share/classes/javax/swing/text/NumberFormatter.java
+++ b/jdk/src/share/classes/javax/swing/text/NumberFormatter.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -91,6 +91,7 @@ import sun.swing.SwingUtilities2;
*
* @since 1.4
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class NumberFormatter extends InternationalFormatter {
/** The special characters from the Format instance. */
private String specialChars;
diff --git a/jdk/src/share/classes/javax/swing/text/PlainDocument.java b/jdk/src/share/classes/javax/swing/text/PlainDocument.java
index 8c731da6f61..e1adc38faf8 100644
--- a/jdk/src/share/classes/javax/swing/text/PlainDocument.java
+++ b/jdk/src/share/classes/javax/swing/text/PlainDocument.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -56,6 +56,7 @@ import java.util.Vector;
* @see Document
* @see AbstractDocument
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class PlainDocument extends AbstractDocument {
/**
diff --git a/jdk/src/share/classes/javax/swing/text/SimpleAttributeSet.java b/jdk/src/share/classes/javax/swing/text/SimpleAttributeSet.java
index f6505b46a9a..e7646368290 100644
--- a/jdk/src/share/classes/javax/swing/text/SimpleAttributeSet.java
+++ b/jdk/src/share/classes/javax/swing/text/SimpleAttributeSet.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -48,6 +48,7 @@ import java.util.LinkedHashMap;
*
* @author Tim Prinzing
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class SimpleAttributeSet implements MutableAttributeSet, Serializable, Cloneable
{
private static final long serialVersionUID = -6631553454711782652L;
diff --git a/jdk/src/share/classes/javax/swing/text/StringContent.java b/jdk/src/share/classes/javax/swing/text/StringContent.java
index a62fcc4ba84..99b8d5d3eb8 100644
--- a/jdk/src/share/classes/javax/swing/text/StringContent.java
+++ b/jdk/src/share/classes/javax/swing/text/StringContent.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -50,6 +50,7 @@ import javax.swing.SwingUtilities;
*
* @author Timothy Prinzing
*/
+@SuppressWarnings("serial") // Same-version serialization only
public final class StringContent implements AbstractDocument.Content, Serializable {
/**
diff --git a/jdk/src/share/classes/javax/swing/text/StyleContext.java b/jdk/src/share/classes/javax/swing/text/StyleContext.java
index c7942eaccd0..8d7975b1395 100644
--- a/jdk/src/share/classes/javax/swing/text/StyleContext.java
+++ b/jdk/src/share/classes/javax/swing/text/StyleContext.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -62,6 +62,7 @@ import sun.font.FontUtilities;
*
* @author Timothy Prinzing
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class StyleContext implements Serializable, AbstractDocument.AttributeContext {
/**
@@ -1244,6 +1245,7 @@ public class StyleContext implements Serializable, AbstractDocument.AttributeCon
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
public class NamedStyle implements Style, Serializable {
/**
diff --git a/jdk/src/share/classes/javax/swing/text/StyledEditorKit.java b/jdk/src/share/classes/javax/swing/text/StyledEditorKit.java
index 43809f55ae9..b62be0f7ef3 100644
--- a/jdk/src/share/classes/javax/swing/text/StyledEditorKit.java
+++ b/jdk/src/share/classes/javax/swing/text/StyledEditorKit.java
@@ -375,6 +375,7 @@ public class StyledEditorKit extends DefaultEditorKit {
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
public abstract static class StyledTextAction extends TextAction {
/**
@@ -494,6 +495,7 @@ public class StyledEditorKit extends DefaultEditorKit {
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
public static class FontFamilyAction extends StyledTextAction {
/**
@@ -550,6 +552,7 @@ public class StyledEditorKit extends DefaultEditorKit {
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
public static class FontSizeAction extends StyledTextAction {
/**
@@ -617,6 +620,7 @@ public class StyledEditorKit extends DefaultEditorKit {
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
public static class ForegroundAction extends StyledTextAction {
/**
@@ -683,6 +687,7 @@ public class StyledEditorKit extends DefaultEditorKit {
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
public static class AlignmentAction extends StyledTextAction {
/**
@@ -733,6 +738,7 @@ public class StyledEditorKit extends DefaultEditorKit {
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
public static class BoldAction extends StyledTextAction {
/**
@@ -772,6 +778,7 @@ public class StyledEditorKit extends DefaultEditorKit {
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
public static class ItalicAction extends StyledTextAction {
/**
@@ -811,6 +818,7 @@ public class StyledEditorKit extends DefaultEditorKit {
* has been added to the java.beans
package.
* Please see {@link java.beans.XMLEncoder}.
*/
+ @SuppressWarnings("serial") // Same-version serialization only
public static class UnderlineAction extends StyledTextAction {
/**
diff --git a/jdk/src/share/classes/javax/swing/text/TabSet.java b/jdk/src/share/classes/javax/swing/text/TabSet.java
index 2a5351607c2..6464125fbab 100644
--- a/jdk/src/share/classes/javax/swing/text/TabSet.java
+++ b/jdk/src/share/classes/javax/swing/text/TabSet.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -43,6 +43,7 @@ import java.io.Serializable;
*
* @author Scott Violet
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class TabSet implements Serializable
{
/** TabStops this TabSet contains. */
diff --git a/jdk/src/share/classes/javax/swing/text/TabStop.java b/jdk/src/share/classes/javax/swing/text/TabStop.java
index a78ea24b0c7..27112103dd2 100644
--- a/jdk/src/share/classes/javax/swing/text/TabStop.java
+++ b/jdk/src/share/classes/javax/swing/text/TabStop.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -42,6 +42,7 @@ import java.io.Serializable;
* Please see {@link java.beans.XMLEncoder}.
*
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class TabStop implements Serializable {
/** Character following tab is positioned at location. */
diff --git a/jdk/src/share/classes/javax/swing/text/TextAction.java b/jdk/src/share/classes/javax/swing/text/TextAction.java
index bcfa7c39043..9f0c43d861e 100644
--- a/jdk/src/share/classes/javax/swing/text/TextAction.java
+++ b/jdk/src/share/classes/javax/swing/text/TextAction.java
@@ -58,6 +58,7 @@ import javax.swing.KeyStroke;
*
* @author Timothy Prinzing
*/
+@SuppressWarnings("serial") // Same-version serialization only
public abstract class TextAction extends AbstractAction {
/**
diff --git a/jdk/src/share/classes/javax/swing/text/html/HTMLDocument.java b/jdk/src/share/classes/javax/swing/text/html/HTMLDocument.java
index 254d6156b9f..5aa989411cd 100644
--- a/jdk/src/share/classes/javax/swing/text/html/HTMLDocument.java
+++ b/jdk/src/share/classes/javax/swing/text/html/HTMLDocument.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -270,6 +270,7 @@ import static sun.swing.SwingUtilities2.IMPLIED_CR;
* @author Scott Violet
* @author Sunita Mani
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class HTMLDocument extends DefaultStyledDocument {
/**
* Constructs an HTML document using the default buffer size
diff --git a/jdk/src/share/classes/javax/swing/text/html/Option.java b/jdk/src/share/classes/javax/swing/text/html/Option.java
index 181b87cde5c..011b28a49f4 100644
--- a/jdk/src/share/classes/javax/swing/text/html/Option.java
+++ b/jdk/src/share/classes/javax/swing/text/html/Option.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -44,6 +44,7 @@ import javax.swing.text.*;
*
* @author Timothy Prinzing
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class Option implements Serializable {
/**
diff --git a/jdk/src/share/classes/javax/swing/tree/AbstractLayoutCache.java b/jdk/src/share/classes/javax/swing/tree/AbstractLayoutCache.java
index f44637c9c36..c0e474e26cd 100644
--- a/jdk/src/share/classes/javax/swing/tree/AbstractLayoutCache.java
+++ b/jdk/src/share/classes/javax/swing/tree/AbstractLayoutCache.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -42,7 +42,7 @@ import java.util.Enumeration;
*
* @author Scott Violet
*/
-
+@SuppressWarnings("serial") // Same-version serialization only
public abstract class AbstractLayoutCache implements RowMapper {
/** Object responsible for getting the size of a node. */
protected NodeDimensions nodeDimensions;
diff --git a/jdk/src/share/classes/javax/swing/tree/DefaultMutableTreeNode.java b/jdk/src/share/classes/javax/swing/tree/DefaultMutableTreeNode.java
index 17840426075..c33599064e2 100644
--- a/jdk/src/share/classes/javax/swing/tree/DefaultMutableTreeNode.java
+++ b/jdk/src/share/classes/javax/swing/tree/DefaultMutableTreeNode.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -85,6 +85,7 @@ import java.util.*;
*
* @author Rob Davis
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class DefaultMutableTreeNode implements Cloneable,
MutableTreeNode, Serializable
{
diff --git a/jdk/src/share/classes/javax/swing/tree/DefaultTreeCellEditor.java b/jdk/src/share/classes/javax/swing/tree/DefaultTreeCellEditor.java
index bc28d5dcfd3..05a6145c598 100644
--- a/jdk/src/share/classes/javax/swing/tree/DefaultTreeCellEditor.java
+++ b/jdk/src/share/classes/javax/swing/tree/DefaultTreeCellEditor.java
@@ -60,6 +60,7 @@ import java.util.Vector;
*
* @author Scott Violet
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class DefaultTreeCellEditor implements ActionListener, TreeCellEditor,
TreeSelectionListener {
/** Editor handling the editing. */
diff --git a/jdk/src/share/classes/javax/swing/tree/DefaultTreeCellRenderer.java b/jdk/src/share/classes/javax/swing/tree/DefaultTreeCellRenderer.java
index ad2a86bad29..3cc8bd238e5 100644
--- a/jdk/src/share/classes/javax/swing/tree/DefaultTreeCellRenderer.java
+++ b/jdk/src/share/classes/javax/swing/tree/DefaultTreeCellRenderer.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -103,6 +103,7 @@ import sun.swing.DefaultLookup;
* @author Ray Ryan
* @author Scott Violet
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class DefaultTreeCellRenderer extends JLabel implements TreeCellRenderer
{
/** Last tree the renderer was painted in. */
diff --git a/jdk/src/share/classes/javax/swing/tree/DefaultTreeModel.java b/jdk/src/share/classes/javax/swing/tree/DefaultTreeModel.java
index 5503481a5f7..c3b9de2d698 100644
--- a/jdk/src/share/classes/javax/swing/tree/DefaultTreeModel.java
+++ b/jdk/src/share/classes/javax/swing/tree/DefaultTreeModel.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -49,6 +49,7 @@ import javax.swing.event.*;
* @author Ray Ryan
* @author Scott Violet
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class DefaultTreeModel implements Serializable, TreeModel {
/** Root of the tree. */
protected TreeNode root;
diff --git a/jdk/src/share/classes/javax/swing/tree/DefaultTreeSelectionModel.java b/jdk/src/share/classes/javax/swing/tree/DefaultTreeSelectionModel.java
index 1f730192455..73054ad0046 100644
--- a/jdk/src/share/classes/javax/swing/tree/DefaultTreeSelectionModel.java
+++ b/jdk/src/share/classes/javax/swing/tree/DefaultTreeSelectionModel.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
diff --git a/jdk/src/share/classes/javax/swing/tree/FixedHeightLayoutCache.java b/jdk/src/share/classes/javax/swing/tree/FixedHeightLayoutCache.java
index 0cd55cb843d..fe2ad0b263c 100644
--- a/jdk/src/share/classes/javax/swing/tree/FixedHeightLayoutCache.java
+++ b/jdk/src/share/classes/javax/swing/tree/FixedHeightLayoutCache.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -48,7 +48,7 @@ import sun.swing.SwingUtilities2;
*
* @author Scott Violet
*/
-
+@SuppressWarnings("serial") // Same-version serialization only
public class FixedHeightLayoutCache extends AbstractLayoutCache {
/** Root node. */
private FHTreeStateNode root;
diff --git a/jdk/src/share/classes/javax/swing/tree/TreePath.java b/jdk/src/share/classes/javax/swing/tree/TreePath.java
index 53e285e9538..4ed1dbafd09 100644
--- a/jdk/src/share/classes/javax/swing/tree/TreePath.java
+++ b/jdk/src/share/classes/javax/swing/tree/TreePath.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -81,6 +81,7 @@ import java.beans.ConstructorProperties;
* @author Scott Violet
* @author Philip Milne
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class TreePath extends Object implements Serializable {
/** Path representing the parent, null if lastPathComponent represents
* the root. */
diff --git a/jdk/src/share/classes/javax/swing/tree/VariableHeightLayoutCache.java b/jdk/src/share/classes/javax/swing/tree/VariableHeightLayoutCache.java
index 460f5b77966..770b383b716 100644
--- a/jdk/src/share/classes/javax/swing/tree/VariableHeightLayoutCache.java
+++ b/jdk/src/share/classes/javax/swing/tree/VariableHeightLayoutCache.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -51,7 +51,7 @@ import sun.swing.SwingUtilities2;
* @author Ray Ryan
* @author Scott Violet
*/
-
+@SuppressWarnings("serial") // Same-version serialization only
public class VariableHeightLayoutCache extends AbstractLayoutCache {
/**
* The array of nodes that are currently visible, in the order they
diff --git a/jdk/src/share/classes/javax/swing/undo/CannotRedoException.java b/jdk/src/share/classes/javax/swing/undo/CannotRedoException.java
index e59e3f5eb14..15ed0c1b4b4 100644
--- a/jdk/src/share/classes/javax/swing/undo/CannotRedoException.java
+++ b/jdk/src/share/classes/javax/swing/undo/CannotRedoException.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -38,5 +38,6 @@ package javax.swing.undo;
*
* @author Ray Ryan
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class CannotRedoException extends RuntimeException {
}
diff --git a/jdk/src/share/classes/javax/swing/undo/CannotUndoException.java b/jdk/src/share/classes/javax/swing/undo/CannotUndoException.java
index 2779eaa8b54..35606df3f69 100644
--- a/jdk/src/share/classes/javax/swing/undo/CannotUndoException.java
+++ b/jdk/src/share/classes/javax/swing/undo/CannotUndoException.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -39,5 +39,6 @@ package javax.swing.undo;
*
* @author Ray Ryan
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class CannotUndoException extends RuntimeException {
}
diff --git a/jdk/src/share/classes/javax/swing/undo/UndoManager.java b/jdk/src/share/classes/javax/swing/undo/UndoManager.java
index 23dc9b5884e..a95ebf25ce8 100644
--- a/jdk/src/share/classes/javax/swing/undo/UndoManager.java
+++ b/jdk/src/share/classes/javax/swing/undo/UndoManager.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -132,6 +132,7 @@ import java.util.*;
*
* @author Ray Ryan
*/
+@SuppressWarnings("serial") // Same-version serialization only
public class UndoManager extends CompoundEdit implements UndoableEditListener {
int indexOfNextAdd;
int limit;
From 786fc244638666f8d9d9e468b109260556f45d0e Mon Sep 17 00:00:00 2001
From: Alexander Zuev
Date: Fri, 24 Jan 2014 21:29:25 +0400
Subject: [PATCH 084/181] 8029646: [pack200] should support the new zip64
format
Reviewed-by: ksrini, sherman
---
.../native/com/sun/java/util/jar/pack/zip.cpp | 144 ++++++++++++++---
.../native/com/sun/java/util/jar/pack/zip.h | 5 +-
jdk/test/tools/pack200/PackTestZip64.java | 152 ++++++++++++++++++
3 files changed, 274 insertions(+), 27 deletions(-)
create mode 100644 jdk/test/tools/pack200/PackTestZip64.java
diff --git a/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp b/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp
index 2544091768f..786a83228bb 100644
--- a/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp
+++ b/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -73,8 +73,9 @@ inline uint jar::get_crc32(uint c, uchar *ptr, uint len) { return crc32(c, ptr,
SWAP_BYTES(a & 0xFFFF)
#define GET_INT_HI(a) \
- SWAP_BYTES((a >> 16) & 0xFFFF);
+ SWAP_BYTES((a >> 16) & 0xFFFF)
+static const ushort jarmagic[2] = { SWAP_BYTES(0xCAFE), 0 };
void jar::init(unpacker* u_) {
BYTES_OF(*this).clear();
@@ -105,13 +106,14 @@ void jar::add_to_jar_directory(const char* fname, bool store, int modtime,
header[0] = (ushort)SWAP_BYTES(0x4B50);
header[1] = (ushort)SWAP_BYTES(0x0201);
- header[2] = (ushort)SWAP_BYTES(0xA);
+ header[2] = (ushort)SWAP_BYTES(( store ) ? 0x0A : 0x14);
// required version
- header[3] = (ushort)SWAP_BYTES(0xA);
+ header[3] = (ushort)SWAP_BYTES(( store ) ? 0x0A : 0x14);
- // flags 02 = maximum sub-compression flag
- header[4] = ( store ) ? 0x0 : SWAP_BYTES(0x2);
+ // Flags - UTF-8 compression and separating crc and sizes
+ // into separate headers for deflated file
+ header[4] = ( store ) ? SWAP_BYTES(0x0800) : 0x0808;
// Compression method 8=deflate.
header[5] = ( store ) ? 0x0 : SWAP_BYTES(0x08);
@@ -135,7 +137,8 @@ void jar::add_to_jar_directory(const char* fname, bool store, int modtime,
// Filename length
header[14] = (ushort)SWAP_BYTES(fname_length);
// So called "extra field" length.
- header[15] = 0;
+ // If it's the first record we must add JAR magic sequence
+ header[15] = ( central_directory_count ) ? 0 : (ushort)SWAP_BYTES(4);
// So called "comment" length.
header[16] = 0;
// Disk number start
@@ -155,6 +158,11 @@ void jar::add_to_jar_directory(const char* fname, bool store, int modtime,
// Copy the fname to the header.
central_directory.append(fname, fname_length);
+ // Add jar magic for the first record
+ if (central_directory_count == 0) {
+ central_directory.append((void *)jarmagic, sizeof(jarmagic));
+ }
+
central_directory_count++;
}
@@ -170,10 +178,10 @@ void jar::write_jar_header(const char* fname, bool store, int modtime,
header[1] = (ushort)SWAP_BYTES(0x0403);
// Version
- header[2] = (ushort)SWAP_BYTES(0xA);
+ header[2] = (ushort)SWAP_BYTES(( store ) ? 0x0A : 0x14);
- // flags 02 = maximum sub-compression flag
- header[3] = ( store ) ? 0x0 : SWAP_BYTES(0x2);
+ // General purpose flags - same as in the Central Directory
+ header[3] = ( store ) ? SWAP_BYTES(0x0800) : 0x0808;
// Compression method = deflate
header[4] = ( store ) ? 0x0 : SWAP_BYTES(0x08);
@@ -182,28 +190,51 @@ void jar::write_jar_header(const char* fname, bool store, int modtime,
header[5] = (ushort)GET_INT_LO(dostime);
header[6] = (ushort)GET_INT_HI(dostime);
- // CRC
- header[7] = (ushort)GET_INT_LO(crc);
- header[8] = (ushort)GET_INT_HI(crc);
+ // CRC, 0 if deflated, will come separately in extra header
+ header[7] = ( store ) ? (ushort)GET_INT_LO(crc) : 0;
+ header[8] = ( store ) ? (ushort)GET_INT_HI(crc) : 0;
- // Compressed length:
- header[9] = (ushort)GET_INT_LO(clen);
- header[10] = (ushort)GET_INT_HI(clen);
+ // Compressed length, 0 if deflated
+ header[9] = ( store ) ? (ushort)GET_INT_LO(clen) : 0;
+ header[10] = ( store ) ? (ushort)GET_INT_HI(clen) : 0;
- // Uncompressed length.
- header[11] = (ushort)GET_INT_LO(len);
- header[12] = (ushort)GET_INT_HI(len);
+ // Uncompressed length, 0 if deflated
+ header[11] = ( store ) ? (ushort)GET_INT_LO(len) : 0;
+ header[12] = ( store ) ? (ushort)GET_INT_HI(len) : 0;
// Filename length
header[13] = (ushort)SWAP_BYTES(fname_length);
// So called "extra field" length.
- header[14] = 0;
+ header[14] = ( central_directory_count - 1 ) ? 0 : (ushort)SWAP_BYTES(4);
// Write the LOC header to the output file.
write_data(header, (int)sizeof(header));
// Copy the fname to the header.
write_data((char*)fname, (int)fname_length);
+
+ if (central_directory_count == 1) {
+ // Write JAR magic sequence
+ write_data((void *)jarmagic, (int)sizeof(jarmagic));
+ }
+}
+
+void jar::write_jar_extra(int len, int clen, uint crc) {
+ ushort header[8];
+ // Extra field signature
+ header[0] = (ushort)SWAP_BYTES(0x4B50);
+ header[1] = (ushort)SWAP_BYTES(0x0807);
+ // CRC
+ header[2] = (ushort)GET_INT_LO(crc);
+ header[3] = (ushort)GET_INT_HI(crc);
+ // Compressed length
+ header[4] = (ushort)GET_INT_LO(clen);
+ header[5] = (ushort)GET_INT_HI(clen);
+ // Uncompressed length
+ header[6] = (ushort)GET_INT_LO(len);
+ header[7] = (ushort)GET_INT_HI(len);
+
+ write_data(header, sizeof(header));
}
static const char marker_comment[] = ZIP_ARCHIVE_MARKER_COMMENT;
@@ -212,6 +243,7 @@ void jar::write_central_directory() {
bytes mc; mc.set(marker_comment);
ushort header[11];
+ ushort header64[38];
// Create the End of Central Directory structure.
header[0] = (ushort)SWAP_BYTES(0x4B50);
@@ -220,8 +252,8 @@ void jar::write_central_directory() {
header[2] = 0;
header[3] = 0;
// Number of entries in central directory.
- header[4] = (ushort)SWAP_BYTES(central_directory_count);
- header[5] = (ushort)SWAP_BYTES(central_directory_count);
+ header[4] = ( central_directory_count >= 0xffff ) ? 0xffff : (ushort)SWAP_BYTES(central_directory_count);
+ header[5] = ( central_directory_count >= 0xffff ) ? 0xffff : (ushort)SWAP_BYTES(central_directory_count);
// Size of the central directory}
header[6] = (ushort)GET_INT_LO((int)central_directory.size());
header[7] = (ushort)GET_INT_HI((int)central_directory.size());
@@ -229,12 +261,71 @@ void jar::write_central_directory() {
header[8] = (ushort)GET_INT_LO(output_file_offset);
header[9] = (ushort)GET_INT_HI(output_file_offset);
// zipfile comment length;
- header [10] = (ushort)SWAP_BYTES((int)mc.len);
+ header[10] = (ushort)SWAP_BYTES((int)mc.len);
// Write the central directory.
PRINTCR((2, "Central directory at %d\n", output_file_offset));
write_data(central_directory.b);
+ // If number of records exceeds the 0xFFFF we need to prepend extended
+ // Zip64 End of Central Directory record and its locator to the old
+ // style ECD record
+ if (central_directory_count > 0xFFFF) {
+ // Zip64 END signature
+ header64[0] = (ushort)SWAP_BYTES(0x4B50);
+ header64[1] = (ushort)0x0606;
+ // Size of header (long)
+ header64[2] = (ushort)SWAP_BYTES(44);;
+ header64[3] = 0;
+ header64[4] = 0;
+ header64[5] = 0;
+ // Version produced and required (short)
+ header64[6] = (ushort)SWAP_BYTES(45);
+ header64[7] = (ushort)SWAP_BYTES(45);
+ // Current disk number (int)
+ header64[8] = 0;
+ header64[9] = 0;
+ // Central directory start disk (int)
+ header64[10] = 0;
+ header64[11] = 0;
+ // Count of records on disk (long)
+ header64[12] = (ushort)GET_INT_LO(central_directory_count);
+ header64[13] = (ushort)GET_INT_HI(central_directory_count);
+ header64[14] = 0;
+ header64[15] = 0;
+ // Count of records totally (long)
+ header64[16] = (ushort)GET_INT_LO(central_directory_count);
+ header64[17] = (ushort)GET_INT_HI(central_directory_count);
+ header64[18] = 0;
+ header64[19] = 0;
+ // Length of the central directory (long)
+ header64[20] = header[6];
+ header64[21] = header[7];
+ header64[22] = 0;
+ header64[23] = 0;
+ // Offset of central directory (long)
+ header64[24] = header[8];
+ header64[25] = header[9];
+ header64[26] = 0;
+ header64[27] = 0;
+ // Zip64 end of central directory locator
+ // Locator signature
+ header64[28] = (ushort)SWAP_BYTES(0x4B50);
+ header64[29] = (ushort)SWAP_BYTES(0x0706);
+ // Start disk number (int)
+ header64[30] = 0;
+ header64[31] = 0;
+ // Offset of zip64 END record (long)
+ header64[32] = (ushort)GET_INT_LO(output_file_offset);
+ header64[33] = (ushort)GET_INT_HI(output_file_offset);
+ header64[34] = 0;
+ header64[35] = 0;
+ // Total number of disks (int)
+ header64[36] = (ushort)SWAP_BYTES(1);
+ header64[37] = 0;
+ write_data(header64, (int)sizeof(header64));
+ }
+
// Write the End of Central Directory structure.
PRINTCR((2, "end-of-directory at %d\n", output_file_offset));
write_data(header, (int)sizeof(header));
@@ -286,6 +377,8 @@ void jar::addJarEntry(const char* fname,
if (deflate) {
write_data(deflated.b);
+ // Write deflated information in extra header
+ write_jar_extra(len, clen, crc);
} else {
write_data(head);
write_data(tail);
@@ -368,7 +461,7 @@ bool jar::deflate_bytes(bytes& head, bytes& tail) {
// NOTE: the window size should always be -MAX_WBITS normally -15.
// unzip/zipup.c and java/Deflater.c
- int error = deflateInit2(&zs, Z_BEST_COMPRESSION, Z_DEFLATED,
+ int error = deflateInit2(&zs, Z_DEFAULT_COMPRESSION, Z_DEFLATED,
-MAX_WBITS, 8, Z_DEFAULT_STRATEGY);
if (error != Z_OK) {
switch (error) {
@@ -414,7 +507,8 @@ bool jar::deflate_bytes(bytes& head, bytes& tail) {
error = deflate(&zs, Z_FINISH);
}
if (error == Z_STREAM_END) {
- if (len > (int)zs.total_out ) {
+ if ((int)zs.total_out > 0) {
+ // Even if compressed size is bigger than uncompressed, write it
PRINTCR((2, "deflate compressed data %d -> %d\n", len, zs.total_out));
deflated.b.len = zs.total_out;
deflateEnd(&zs);
diff --git a/jdk/src/share/native/com/sun/java/util/jar/pack/zip.h b/jdk/src/share/native/com/sun/java/util/jar/pack/zip.h
index d7c6b34ffd8..14ffc9d65bd 100644
--- a/jdk/src/share/native/com/sun/java/util/jar/pack/zip.h
+++ b/jdk/src/share/native/com/sun/java/util/jar/pack/zip.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -40,7 +40,7 @@ struct jar {
// Private members
fillbytes central_directory;
- ushort central_directory_count;
+ uint central_directory_count;
uint output_file_offset;
fillbytes deflated; // temporary buffer
@@ -74,6 +74,7 @@ struct jar {
int len, int clen, uLong crc);
void write_jar_header(const char* fname, bool store, int modtime,
int len, int clen, unsigned int crc);
+ void write_jar_extra(int len, int clen, unsigned int crc);
void write_central_directory();
uLong dostime(int y, int n, int d, int h, int m, int s);
uLong get_dostime(int modtime);
diff --git a/jdk/test/tools/pack200/PackTestZip64.java b/jdk/test/tools/pack200/PackTestZip64.java
new file mode 100644
index 00000000000..edfeb5a92d8
--- /dev/null
+++ b/jdk/test/tools/pack200/PackTestZip64.java
@@ -0,0 +1,152 @@
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+import java.io.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.List;
+import java.util.jar.JarEntry;
+import java.util.jar.JarFile;
+import java.util.jar.JarInputStream;
+import java.util.jar.JarOutputStream;
+import java.util.zip.ZipEntry;
+/*
+ * @test
+ * @bug 8029646
+ * @summary tests that native unpacker produces the same result as Java one
+ * @compile -XDignore.symbol.file Utils.java PackTestZip64.java
+ * @run main PackTestZip64
+ * @author kizune
+ */
+
+public class PackTestZip64 {
+ public static void main(String... args) throws Exception {
+ testPacking();
+ Utils.cleanup();
+ }
+
+ // 1KB buffer is enough to copy jar content
+ private static final byte[] BUFFER = new byte[1024];
+
+ static void testPacking() throws IOException {
+ // make a copy of the test specimen to local directory
+ File testFile = new File("tools_java.jar");
+ // Add a large number of small files to the golden jar
+ generateLargeJar(testFile, Utils.locateJar("golden.jar"));
+
+ List cmdsList = new ArrayList<>();
+
+ // Repack file to get the Java-based result
+ cmdsList.add(Utils.getPack200Cmd());
+ cmdsList.add("--repack");
+ cmdsList.add(testFile.getName());
+ Utils.runExec(cmdsList);
+ cmdsList.clear();
+
+ // Pack file with pack200 and unpack in with unpack200
+ File packedFile = new File("tools.pack.gz");
+ cmdsList.add(Utils.getPack200Cmd());
+ cmdsList.add(packedFile.getName());
+ cmdsList.add(testFile.getName());
+ Utils.runExec(cmdsList);
+ cmdsList.clear();
+
+ File unpackedFile = new File("tools_native.jar");
+ cmdsList.add(Utils.getUnpack200Cmd());
+ cmdsList.add(packedFile.getName());
+ cmdsList.add(unpackedFile.getName());
+ Utils.runExec(cmdsList);
+
+ // Compare files binary
+ compareTwoFiles(testFile, unpackedFile);
+
+ // Cleaning up generated files
+ testFile.delete();
+ packedFile.delete();
+ unpackedFile.delete();
+ }
+
+ static void compareTwoFiles(File src, File dst) throws IOException {
+ if (!src.exists()) {
+ throw new IOException("File " + src.getName() + " does not exist!");
+ }
+
+ if(!dst.exists()) {
+ throw new IOException("File " + dst.getName() + " does not exist!");
+ }
+
+ BufferedInputStream srcis, dstis;
+ srcis = new BufferedInputStream(new FileInputStream(src));
+ dstis = new BufferedInputStream(new FileInputStream(dst));
+
+ int s = 0, d, pos = 0;
+ while (s != -1) { // Checking of just one result for EOF is enough
+ s = srcis.read();
+ d = dstis.read();
+
+ if (s != d) {
+ throw new IOException("Files are differ starting at position: "
+ + Integer.toHexString(pos));
+ }
+
+ pos++;
+ }
+
+ srcis.close();
+ dstis.close();
+ }
+
+ static void generateLargeJar(File result, File source) throws IOException {
+ if (result.exists()) {
+ result.delete();
+ }
+
+ try (JarOutputStream copyTo = new JarOutputStream(new FileOutputStream(result));
+ JarFile srcJar = new JarFile(source)) {
+
+ for (JarEntry je : Collections.list(srcJar.entries())) {
+ copyTo.putNextEntry(je);
+ if (!je.isDirectory()) {
+ copyStream(srcJar.getInputStream(je), copyTo);
+ }
+ copyTo.closeEntry();
+ }
+
+ int many = Short.MAX_VALUE * 2 + 2;
+
+ for (int i = 0 ; i < many ; i++) {
+ JarEntry e = new JarEntry("F-" + i + ".txt");
+ copyTo.putNextEntry(e);
+ }
+ copyTo.flush();
+ copyTo.close();
+ }
+ }
+
+ static void copyStream(InputStream in, OutputStream out) throws IOException {
+ int bytesRead;
+ while ((bytesRead = in.read(BUFFER))!= -1) {
+ out.write(BUFFER, 0, bytesRead);
+ }
+ }
+}
From c329a619fd9b60fc8acf1c7c0f287621eb0b4b0f Mon Sep 17 00:00:00 2001
From: Volker Simonis
Date: Fri, 24 Jan 2014 19:18:17 +0100
Subject: [PATCH 085/181] 8032678: [TESTBUG] sun/misc/Version/Version.java
doesn't understand two-digit HotSpot minor version numbers
Reviewed-by: kvn
---
jdk/test/sun/misc/Version/Version.java | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/jdk/test/sun/misc/Version/Version.java b/jdk/test/sun/misc/Version/Version.java
index 13e507540c1..85c8ce2a071 100644
--- a/jdk/test/sun/misc/Version/Version.java
+++ b/jdk/test/sun/misc/Version/Version.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -116,10 +116,16 @@ public class Version {
} else if (Character.isDigit(cs.charAt(0)) &&
Character.isDigit(cs.charAt(1)) && cs.charAt(2) == '.' &&
Character.isDigit(cs.charAt(3))) {
- // HSX has nn.n (major.minor) version
+ // HSX has nn.n[n] (major.minor) version
major = Integer.valueOf(version.substring(0, 2)).intValue();
- minor = Character.digit(cs.charAt(3), 10);
- cs = cs.subSequence(4, cs.length());
+ if (Character.isDigit(cs.charAt(4))) {
+ minor = Integer.valueOf(version.substring(3, 5)).intValue();
+ cs = cs.subSequence(5, cs.length());
+ }
+ else {
+ minor = Character.digit(cs.charAt(3), 10);
+ cs = cs.subSequence(4, cs.length());
+ }
}
if (cs.charAt(0) == '_' && cs.length() >= 3 &&
Character.isDigit(cs.charAt(1)) &&
From d1fc6d132c2582232ba355ee63fb1f4248307662 Mon Sep 17 00:00:00 2001
From: Joe Darcy
Date: Fri, 24 Jan 2014 11:03:15 -0800
Subject: [PATCH 086/181] 8032616: Fix non-deprecation warnings in
com.sun.beans.*
Reviewed-by: alanb
---
.../classes/com/sun/beans/TypeResolver.java | 8 ++++----
.../com/sun/beans/editors/EnumEditor.java | 17 ++++++++++-------
.../com/sun/beans/finder/ConstructorFinder.java | 4 ++--
.../com/sun/beans/finder/InstanceFinder.java | 6 ++++--
.../sun/beans/finder/SignatureException.java | 4 +++-
.../share/classes/com/sun/beans/util/Cache.java | 3 ++-
6 files changed, 25 insertions(+), 17 deletions(-)
diff --git a/jdk/src/share/classes/com/sun/beans/TypeResolver.java b/jdk/src/share/classes/com/sun/beans/TypeResolver.java
index e4cb0f3fb2e..1cb27bd9dde 100644
--- a/jdk/src/share/classes/com/sun/beans/TypeResolver.java
+++ b/jdk/src/share/classes/com/sun/beans/TypeResolver.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -238,7 +238,7 @@ public final class TypeResolver {
return (Class>) pt.getRawType();
}
if (type instanceof TypeVariable) {
- TypeVariable tv = (TypeVariable)type;
+ TypeVariable> tv = (TypeVariable>)type;
Type[] bounds = tv.getBounds();
return (0 < bounds.length)
? erase(bounds[0])
@@ -267,9 +267,9 @@ public final class TypeResolver {
*
* @see #erase(Type)
*/
- public static Class[] erase(Type[] types) {
+ public static Class>[] erase(Type[] types) {
int length = types.length;
- Class[] classes = new Class[length];
+ Class>[] classes = new Class>[length];
for (int i = 0; i < length; i++) {
classes[i] = TypeResolver.erase(types[i]);
}
diff --git a/jdk/src/share/classes/com/sun/beans/editors/EnumEditor.java b/jdk/src/share/classes/com/sun/beans/editors/EnumEditor.java
index 6275977d344..b7f5ada0d1f 100644
--- a/jdk/src/share/classes/com/sun/beans/editors/EnumEditor.java
+++ b/jdk/src/share/classes/com/sun/beans/editors/EnumEditor.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -45,17 +45,18 @@ import java.util.List;
public final class EnumEditor implements PropertyEditor {
private final List listeners = new ArrayList();
- private final Class type;
+ @SuppressWarnings("rawtypes")
+ private final Class extends Enum> type;
private final String[] tags;
private Object value;
- public EnumEditor( Class type ) {
+ public EnumEditor(Class> type) {
Object[] values = type.getEnumConstants();
if ( values == null ) {
throw new IllegalArgumentException( "Unsupported " + type );
}
- this.type = type;
+ this.type = type.asSubclass(java.lang.Enum.class);
this.tags = new String[values.length];
for ( int i = 0; i < values.length; i++ ) {
this.tags[i] = ( ( Enum )values[i] ).name();
@@ -98,9 +99,11 @@ public final class EnumEditor implements PropertyEditor {
}
public void setAsText( String text ) {
- setValue( ( text != null )
- ? Enum.valueOf( this.type, text )
- : null );
+ @SuppressWarnings("unchecked")
+ Object tmp = ( text != null )
+ ? Enum.valueOf( (Class)this.type, text )
+ : null;
+ setValue(tmp);
}
public String[] getTags() {
diff --git a/jdk/src/share/classes/com/sun/beans/finder/ConstructorFinder.java b/jdk/src/share/classes/com/sun/beans/finder/ConstructorFinder.java
index d21d1a48748..bc2e7529d4f 100644
--- a/jdk/src/share/classes/com/sun/beans/finder/ConstructorFinder.java
+++ b/jdk/src/share/classes/com/sun/beans/finder/ConstructorFinder.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -44,7 +44,7 @@ import static sun.reflect.misc.ReflectUtil.isPackageAccessible;
public final class ConstructorFinder extends AbstractFinder> {
private static final Cache> CACHE = new Cache>(SOFT, SOFT) {
@Override
- public Constructor create(Signature signature) {
+ public Constructor> create(Signature signature) {
try {
ConstructorFinder finder = new ConstructorFinder(signature.getArgs());
return finder.find(signature.getType().getConstructors());
diff --git a/jdk/src/share/classes/com/sun/beans/finder/InstanceFinder.java b/jdk/src/share/classes/com/sun/beans/finder/InstanceFinder.java
index 5842af2bdad..7a46ed70ff9 100644
--- a/jdk/src/share/classes/com/sun/beans/finder/InstanceFinder.java
+++ b/jdk/src/share/classes/com/sun/beans/finder/InstanceFinder.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -93,7 +93,9 @@ class InstanceFinder {
type = ClassFinder.findClass(name, type.getClassLoader());
}
if (this.type.isAssignableFrom(type)) {
- return (T) type.newInstance();
+ @SuppressWarnings("unchecked")
+ T tmp = (T) type.newInstance();
+ return tmp;
}
}
catch (Exception exception) {
diff --git a/jdk/src/share/classes/com/sun/beans/finder/SignatureException.java b/jdk/src/share/classes/com/sun/beans/finder/SignatureException.java
index 07307d596b0..7e5a35d452d 100644
--- a/jdk/src/share/classes/com/sun/beans/finder/SignatureException.java
+++ b/jdk/src/share/classes/com/sun/beans/finder/SignatureException.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -25,6 +25,8 @@
package com.sun.beans.finder;
final class SignatureException extends RuntimeException {
+ private static final long serialVersionUID = 4536098341586118473L;
+
SignatureException(Throwable cause) {
super(cause);
}
diff --git a/jdk/src/share/classes/com/sun/beans/util/Cache.java b/jdk/src/share/classes/com/sun/beans/util/Cache.java
index 751da65a4f6..4f3f75571b0 100644
--- a/jdk/src/share/classes/com/sun/beans/util/Cache.java
+++ b/jdk/src/share/classes/com/sun/beans/util/Cache.java
@@ -244,7 +244,7 @@ public abstract class Cache {
* @param size requested capacity MUST be a power of two
* @return a new array for the cache entries
*/
- @SuppressWarnings("unchecked")
+ @SuppressWarnings({"unchecked", "rawtypes"})
private CacheEntry[] newTable(int size) {
return (CacheEntry[]) new CacheEntry[size];
}
@@ -265,6 +265,7 @@ public abstract class Cache {
synchronized (this.queue) {
do {
if (reference instanceof Ref) {
+ @SuppressWarnings("rawtypes")
Ref ref = (Ref) reference;
@SuppressWarnings("unchecked")
CacheEntry owner = (CacheEntry) ref.getOwner();
From 4139d6900cdfc72a8657c27342ee19a857248893 Mon Sep 17 00:00:00 2001
From: Joe Wang
Date: Fri, 24 Jan 2014 14:17:33 -0800
Subject: [PATCH 087/181] 8032392: Spec:
javax.xml.stream.XMLEventFactory/XMLOutputFactory/XMLInputFactory.newFactory(String,
ClassLoader) referring to ServiceLoader.load(Class, ClassLoader)
Reviewed-by: lancea, dfuchs
---
jaxp/src/javax/xml/stream/XMLEventFactory.java | 5 +++--
jaxp/src/javax/xml/stream/XMLInputFactory.java | 5 +++--
jaxp/src/javax/xml/stream/XMLOutputFactory.java | 5 +++--
3 files changed, 9 insertions(+), 6 deletions(-)
diff --git a/jaxp/src/javax/xml/stream/XMLEventFactory.java b/jaxp/src/javax/xml/stream/XMLEventFactory.java
index 7d543212860..548feeb272a 100644
--- a/jaxp/src/javax/xml/stream/XMLEventFactory.java
+++ b/jaxp/src/javax/xml/stream/XMLEventFactory.java
@@ -157,8 +157,9 @@ public abstract class XMLEventFactory {
*
* If {@code factoryId} is "javax.xml.stream.XMLEventFactory",
* use the service-provider loading facilities, defined by the
- * {@link java.util.ServiceLoader} class, to attempt to locate and load an
- * implementation of the service using the specified {@code ClassLoader}.
+ * {@link java.util.ServiceLoader} class, to attempt to {@linkplain
+ * java.util.ServiceLoader#load(java.lang.Class, java.lang.ClassLoader) locate and load}
+ * an implementation of the service using the specified {@code ClassLoader}.
* If {@code classLoader} is null, the {@linkplain
* java.util.ServiceLoader#load(java.lang.Class) default loading mechanism} will apply:
* That is, the service-provider loading facility will use the {@linkplain
diff --git a/jaxp/src/javax/xml/stream/XMLInputFactory.java b/jaxp/src/javax/xml/stream/XMLInputFactory.java
index 2275ad7330d..20af7a052b2 100644
--- a/jaxp/src/javax/xml/stream/XMLInputFactory.java
+++ b/jaxp/src/javax/xml/stream/XMLInputFactory.java
@@ -247,8 +247,9 @@ public abstract class XMLInputFactory {
*
* If {@code factoryId} is "javax.xml.stream.XMLInputFactory",
* use the service-provider loading facilities, defined by the
- * {@link java.util.ServiceLoader} class, to attempt to locate and load an
- * implementation of the service using the specified {@code ClassLoader}.
+ * {@link java.util.ServiceLoader} class, to attempt to {@linkplain
+ * java.util.ServiceLoader#load(java.lang.Class, java.lang.ClassLoader) locate and load}
+ * an implementation of the service using the specified {@code ClassLoader}.
* If {@code classLoader} is null, the {@linkplain
* java.util.ServiceLoader#load(java.lang.Class) default loading mechanism} will apply:
* That is, the service-provider loading facility will use the {@linkplain
diff --git a/jaxp/src/javax/xml/stream/XMLOutputFactory.java b/jaxp/src/javax/xml/stream/XMLOutputFactory.java
index df99723f191..e875ac2c277 100644
--- a/jaxp/src/javax/xml/stream/XMLOutputFactory.java
+++ b/jaxp/src/javax/xml/stream/XMLOutputFactory.java
@@ -221,8 +221,9 @@ public abstract class XMLOutputFactory {
*
* If {@code factoryId} is "javax.xml.stream.XMLOutputFactory",
* use the service-provider loading facilities, defined by the
- * {@link java.util.ServiceLoader} class, to attempt to locate and load an
- * implementation of the service using the specified {@code ClassLoader}.
+ * {@link java.util.ServiceLoader} class, to attempt to {@linkplain
+ * java.util.ServiceLoader#load(java.lang.Class, java.lang.ClassLoader) locate and load}
+ * an implementation of the service using the specified {@code ClassLoader}.
* If {@code classLoader} is null, the {@linkplain
* java.util.ServiceLoader#load(java.lang.Class) default loading mechanism} will apply:
* That is, the service-provider loading facility will use the {@linkplain
From 49fdbfba20231eec8339aa79b053bcd15f77b865 Mon Sep 17 00:00:00 2001
From: Weijun Wang
Date: Sat, 25 Jan 2014 18:16:33 +0800
Subject: [PATCH 088/181] 8031572: jarsigner -verify exits with 0 when a jar
file is not properly signed
Reviewed-by: mullan
---
.../share/classes/java/util/jar/JarFile.java | 13 +-
.../tools/jarsigner/EntriesOrder.java | 199 ++++++++++++++++++
2 files changed, 207 insertions(+), 5 deletions(-)
create mode 100644 jdk/test/sun/security/tools/jarsigner/EntriesOrder.java
diff --git a/jdk/src/share/classes/java/util/jar/JarFile.java b/jdk/src/share/classes/java/util/jar/JarFile.java
index 6e917e0ae26..946c4ae2bc2 100644
--- a/jdk/src/share/classes/java/util/jar/JarFile.java
+++ b/jdk/src/share/classes/java/util/jar/JarFile.java
@@ -40,6 +40,7 @@ import sun.misc.IOUtils;
import sun.security.action.GetPropertyAction;
import sun.security.util.ManifestEntryVerifier;
import sun.misc.SharedSecrets;
+import sun.security.util.SignatureFileVerifier;
/**
* The JarFile
class is used to read the contents of a jar file
@@ -364,11 +365,13 @@ class JarFile extends ZipFile {
String[] names = getMetaInfEntryNames();
if (names != null) {
for (String name : names) {
- JarEntry e = getJarEntry(name);
- if (e == null) {
- throw new JarException("corrupted jar file");
- }
- if (!e.isDirectory()) {
+ String uname = name.toUpperCase(Locale.ENGLISH);
+ if (MANIFEST_NAME.equals(uname)
+ || SignatureFileVerifier.isBlockOrSF(uname)) {
+ JarEntry e = getJarEntry(name);
+ if (e == null) {
+ throw new JarException("corrupted jar file");
+ }
if (mev == null) {
mev = new ManifestEntryVerifier
(getManifestFromReference());
diff --git a/jdk/test/sun/security/tools/jarsigner/EntriesOrder.java b/jdk/test/sun/security/tools/jarsigner/EntriesOrder.java
new file mode 100644
index 00000000000..96c90e98e12
--- /dev/null
+++ b/jdk/test/sun/security/tools/jarsigner/EntriesOrder.java
@@ -0,0 +1,199 @@
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/**
+ * @test
+ * @bug 8031572
+ * @summary jarsigner -verify exits with 0 when a jar file is not properly signed
+ */
+
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.security.cert.Certificate;
+import java.util.*;
+import java.util.jar.JarEntry;
+import java.util.jar.JarFile;
+import java.util.jar.JarInputStream;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipOutputStream;
+
+public class EntriesOrder {
+
+ public static void main(String[] args) throws Exception {
+
+ String[] entries = {
+ "META-INF/",
+ "META-INF/MANIFEST.MF",
+ "META-INF/A.RSA",
+ "META-INF/A.SF",
+ "META-INF/inf",
+ "a"};
+
+ Map content = new HashMap<>();
+
+ // We will create a jar containing entries above. Try all permutations
+ // and confirm 1) When opened as a JarFile, we can always get 3 signed
+ // ones (MANIFEST, inf, a), and 2) When opened as a JarInputStream,
+ // when the order is correct (MANIFEST at beginning, followed by RSA/SF,
+ // directory ignored), we can get 2 signed ones (inf, a).
+
+ // Prepares raw files
+ Files.write(Paths.get("a"), "a".getBytes());
+ Files.createDirectory(Paths.get("META-INF/"));
+ Files.write(Paths.get("META-INF/inf"), "inf".getBytes());
+
+ // Pack, sign, and extract to get all files
+ sun.tools.jar.Main m =
+ new sun.tools.jar.Main(System.out, System.err, "jar");
+ if (!m.run("cvf a.jar a META-INF/inf".split(" "))) {
+ throw new Exception("jar creation failed");
+ }
+ sun.security.tools.keytool.Main.main(
+ ("-keystore jks -storepass changeit -keypass changeit -dname" +
+ " CN=A -alias a -genkeypair -keyalg rsa").split(" "));
+ sun.security.tools.jarsigner.Main.main(
+ "-keystore jks -storepass changeit a.jar a".split(" "));
+ m = new sun.tools.jar.Main(System.out, System.err, "jar");
+ if (!m.run("xvf a.jar".split(" "))) {
+ throw new Exception("jar extraction failed");
+ }
+
+ // Data
+ for (String s: entries) {
+ if (!s.endsWith("/")) {
+ content.put(s, Files.readAllBytes(Paths.get(s)));
+ }
+ }
+
+ // Test
+ for (List perm: Permute(entries)) {
+
+ // Recreate a jar
+ try (ZipOutputStream zos
+ = new ZipOutputStream(new FileOutputStream("x.jar"))) {
+ for (String e: perm) {
+ zos.putNextEntry(new ZipEntry(e));
+ if (Paths.get(e).toFile().isDirectory()) continue;
+ zos.write(content.get(e));
+ }
+ }
+
+ // Open with JarFile, number of signed entries should be 3.
+ int cc = 0;
+ try (JarFile jf = new JarFile("x.jar")) {
+ Enumeration jes = jf.entries();
+ while (jes.hasMoreElements()) {
+ JarEntry je = jes.nextElement();
+ sun.misc.IOUtils.readFully(jf.getInputStream(je), -1, true);
+ Certificate[] certs = je.getCertificates();
+ if (certs != null && certs.length > 0) {
+ cc++;
+ }
+ }
+ }
+
+ if (cc != 3) {
+ System.out.println(perm + " - jf - " + cc);
+ throw new Exception();
+ }
+
+ // Open with JarInputStream
+ int signed;
+
+ perm.remove("META-INF/");
+ if (perm.get(0).equals("META-INF/MANIFEST.MF") &&
+ perm.get(1).contains("/A.") &&
+ perm.get(2).contains("/A.")) {
+ signed = 2; // Good order
+ } else {
+ signed = 0; // Bad order. In this case, the number of signed
+ // entries is not documented. Just test impl.
+ }
+
+ cc = 0;
+ try (JarInputStream jis
+ = new JarInputStream(new FileInputStream("x.jar"))) {
+ while (true) {
+ JarEntry je = jis.getNextJarEntry();
+ if (je == null) break;
+ sun.misc.IOUtils.readFully(jis, -1, true);
+ Certificate[] certs = je.getCertificates();
+ if (certs != null && certs.length > 0) {
+ cc++;
+ }
+ }
+ }
+
+ if (cc != signed) {
+ System.out.println(perm + " - jis - " + cc + " " + signed);
+ throw new Exception();
+ }
+ }
+ }
+
+ // Helper method to return all permutations of an array. Each output can
+ // be altered without damaging the iteration process.
+ static Iterable> Permute(String[] entries) {
+ return new Iterable>() {
+
+ int s = entries.length;
+ long c = factorial(s) - 1; // number of permutations
+
+ private long factorial(int n) {
+ return (n == 1) ? 1: (n * factorial(n-1));
+ }
+
+ @Override
+ public Iterator> iterator() {
+ return new Iterator>() {
+ @Override
+ public boolean hasNext() {
+ return c >= 0;
+ }
+
+ @Override
+ public List next() {
+ if (c < 0) return null;
+ List result = new ArrayList<>(s);
+ LinkedList source = new LinkedList<>(
+ Arrays.asList(entries));
+ // Treat c as a integer with different radixes at
+ // different digits, i.e. at digit 0, radix is s;
+ // at digit 1, radix is s-1. Thus a s-digit number
+ // is able to represent s! different values.
+ long n = c;
+ for (int i=s; i>=1; i--) {
+ int x = (int)(n % i);
+ result.add(source.remove(x));
+ n = n / i;
+ }
+ c--;
+ return result;
+ }
+ };
+ }
+ };
+ }
+}
From ebf3cad435e297bf8cbf79ff422f60c3a1bb7edd Mon Sep 17 00:00:00 2001
From: Dmitry Samersoff
Date: Mon, 27 Jan 2014 13:46:54 +0400
Subject: [PATCH 089/181] 8032247: SA: Constantpool lookup for invokedynamic is
not implemented
Implement constant pool lookup for invokedynamic
Reviewed-by: sla, sspitsyn
---
.../share/classes/sun/jvm/hotspot/oops/ConstantPool.java | 4 ++--
.../sun/jvm/hotspot/tools/jcore/ByteCodeRewriter.java | 9 ++++++---
2 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPool.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPool.java
index 2b81bf09d50..a055fe1619c 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPool.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/oops/ConstantPool.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -152,7 +152,7 @@ public class ConstantPool extends Metadata implements ClassConstants {
private long indexOffset(long index) {
if (Assert.ASSERTS_ENABLED) {
- Assert.that(index > 0 && index < getLength(), "invalid cp index " + index + " " + getLength());
+ Assert.that(index >= 0 && index < getLength(), "invalid cp index " + index + " " + getLength());
}
return (index * getElementSize()) + headerSize;
}
diff --git a/hotspot/agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ByteCodeRewriter.java b/hotspot/agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ByteCodeRewriter.java
index 40dc912fd8e..0c5202f9c5f 100644
--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ByteCodeRewriter.java
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/tools/jcore/ByteCodeRewriter.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -98,11 +98,14 @@ public class ByteCodeRewriter
break;
default: throw new IllegalArgumentException();
}
+
if (cpCache == null) {
return (short) cpCacheIndex;
} else if (fmt.indexOf("JJJJ") >= 0) {
- // change byte-ordering and go via secondary cache entry
- throw new InternalError("unimplemented");
+ // Invokedynamic require special handling
+ cpCacheIndex = ~cpCacheIndex;
+ cpCacheIndex = bytes.swapInt(cpCacheIndex);
+ return (short) cpCache.getEntryAt(cpCacheIndex).getConstantPoolIndex();
} else if (fmt.indexOf("JJ") >= 0) {
// change byte-ordering and go via cache
return (short) cpCache.getEntryAt((int) (0xFFFF & bytes.swapShort((short)cpCacheIndex))).getConstantPoolIndex();
From 4a7bc8eccde204d92e04b8a06df082e68c07b920 Mon Sep 17 00:00:00 2001
From: Stefan Sarne
Date: Mon, 27 Jan 2014 10:57:52 +0100
Subject: [PATCH 090/181] 8032662: test/compiler/ciReplay/TestSA.sh should
report ulimit issues
Reviewed-by: kvn, iignatyev
---
hotspot/test/compiler/ciReplay/common.sh | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/hotspot/test/compiler/ciReplay/common.sh b/hotspot/test/compiler/ciReplay/common.sh
index bcfdad823df..e03acaa8b30 100644
--- a/hotspot/test/compiler/ciReplay/common.sh
+++ b/hotspot/test/compiler/ciReplay/common.sh
@@ -196,6 +196,11 @@ generate_replay() {
then
# enable core dump
ulimit -c unlimited
+ new_ulimit=`ulimit -c`
+ if [ $new_ulimit != "unlimited" -a $new_ulimit != "-1" ]
+ then
+ test_fail 2 "CHECK :: ULIMIT" "Could not set 'ulimit -c unlimited'. 'ulimit -c' returns : $new_ulimit"
+ fi
if [ $VM_OS = "solaris" ]
then
@@ -228,7 +233,10 @@ generate_replay() {
core_locations=`grep -i core crash.out | grep "location:" | \
sed -e 's/.*location: //'`
+ echo CRASH OUTPUT:
+ cat crash.out
rm crash.out
+
# processing core locations for *nix
if [ $VM_OS != "windows" ]
then
From aab73f935623eb4fca22a2a306a1abdbba3d9f78 Mon Sep 17 00:00:00 2001
From: Dmitry Samersoff
Date: Mon, 27 Jan 2014 15:11:56 +0400
Subject: [PATCH 091/181] 8024049: com/sun/jdi/ProcessAttachTest.sh shortens
7-digit pid to 6-digit
Replace cut call to awk
Reviewed-by: sla, olagneau
---
jdk/test/com/sun/jdi/ProcessAttachTest.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/jdk/test/com/sun/jdi/ProcessAttachTest.sh b/jdk/test/com/sun/jdi/ProcessAttachTest.sh
index 10b5d503154..76a531bad38 100644
--- a/jdk/test/com/sun/jdi/ProcessAttachTest.sh
+++ b/jdk/test/com/sun/jdi/ProcessAttachTest.sh
@@ -87,7 +87,7 @@ startDebuggee()
# "java" process.
if [ "$OS" = "Windows" ]; then
sleep 2
- pid=`ps -o pid,ppid,comm|grep ${startpid}|grep "java"|cut -c1-6`
+ pid=`ps -o pid,ppid,comm | awk '/${startpid}.+java/{ print $1 }'`
fi
echo "Waiting for Debuggee to initialize..."
From 2489c7b220acc12117a1799f1b0c2ccce014ca47 Mon Sep 17 00:00:00 2001
From: Dmitry Samersoff
Date: Mon, 27 Jan 2014 17:13:16 +0400
Subject: [PATCH 092/181] 8002116: This JdbReadTwiceTest.sh gets an exit 1
Explicitly check readability of file in question
Reviewed-by: sla, dholmes, olagneau
---
jdk/test/com/sun/jdi/JdbReadTwiceTest.sh | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/jdk/test/com/sun/jdi/JdbReadTwiceTest.sh b/jdk/test/com/sun/jdi/JdbReadTwiceTest.sh
index 58be020422b..6f3cb193743 100644
--- a/jdk/test/com/sun/jdi/JdbReadTwiceTest.sh
+++ b/jdk/test/com/sun/jdi/JdbReadTwiceTest.sh
@@ -213,10 +213,17 @@ if [ ! -r c:/ ] ; then
# If the file exists, we try to read it. The
# read will fail.
mkFiles $HOME/jdb.ini
- chmod a-r $HOME/jdb.ini
- doit
- failIfNot 1 "open: $HOME/jdb.ini"
- clean
+ id > $HOME/jdb.ini
+ chmod a-r $HOME/jdb.ini
+ if grep -q "uid=" $HOME/jdb.ini ; then
+ echo "Unable to make file unreadable, so test will fail. chmod: $HOME/jdb.ini"
+ if grep -q "uid=0" $HOME/jdb.ini ; then
+ echo "The test is running as root. Fix infrastructure!"
+ fi
+ fi
+ doit
+ failIfNot 1 "open: $HOME/jdb.ini"
+ clean
fi
From 51efd8781242d6c27930d8d9f32b41fd53c6fe21 Mon Sep 17 00:00:00 2001
From: Paul Sandoz
Date: Mon, 27 Jan 2014 14:29:37 +0100
Subject: [PATCH 093/181] 8032779: Update code in java.lang to use newer
language features
Reviewed-by: darcy, alanb
---
jdk/src/share/classes/java/lang/Class.java | 32 ++++++++----------
.../share/classes/java/lang/ClassLoader.java | 33 +++++++++----------
.../java/lang/ConditionalSpecialCasing.java | 9 +++--
jdk/src/share/classes/java/lang/Package.java | 4 +--
.../classes/java/lang/SecurityManager.java | 12 +++----
.../share/classes/java/lang/StringCoding.java | 2 +-
.../share/classes/java/lang/ThreadLocal.java | 6 ++--
.../share/classes/java/lang/Throwable.java | 3 +-
.../java/lang/invoke/MethodHandleProxies.java | 2 +-
.../java/lang/invoke/MutableCallSite.java | 4 +--
.../java/lang/management/MemoryUsage.java | 2 +-
.../java/lang/reflect/AccessibleObject.java | 4 +--
.../classes/java/lang/reflect/Parameter.java | 8 ++---
.../classes/java/lang/reflect/Proxy.java | 7 ++--
14 files changed, 56 insertions(+), 72 deletions(-)
diff --git a/jdk/src/share/classes/java/lang/Class.java b/jdk/src/share/classes/java/lang/Class.java
index ea47cca2fca..a8aee7ffe62 100644
--- a/jdk/src/share/classes/java/lang/Class.java
+++ b/jdk/src/share/classes/java/lang/Class.java
@@ -1488,10 +1488,9 @@ public final class Class implements java.io.Serializable,
List> list = new ArrayList<>();
Class> currentClass = Class.this;
while (currentClass != null) {
- Class>[] members = currentClass.getDeclaredClasses();
- for (int i = 0; i < members.length; i++) {
- if (Modifier.isPublic(members[i].getModifiers())) {
- list.add(members[i]);
+ for (Class> m : currentClass.getDeclaredClasses()) {
+ if (Modifier.isPublic(m.getModifiers())) {
+ list.add(m);
}
}
currentClass = currentClass.getSuperclass();
@@ -2626,8 +2625,8 @@ public final class Class implements java.io.Serializable,
}
private static void addAll(Collection c, Field[] o) {
- for (int i = 0; i < o.length; i++) {
- c.add(o[i]);
+ for (Field f : o) {
+ c.add(f);
}
}
@@ -2713,8 +2712,8 @@ public final class Class implements java.io.Serializable,
}
void addAll(Method[] ma) {
- for (int i = 0; i < ma.length; i++) {
- add(ma[i]);
+ for (Method m : ma) {
+ add(m);
}
}
@@ -2819,9 +2818,8 @@ public final class Class implements java.io.Serializable,
// out concrete implementations inherited from superclasses at
// the end.
MethodArray inheritedMethods = new MethodArray();
- Class>[] interfaces = getInterfaces();
- for (int i = 0; i < interfaces.length; i++) {
- inheritedMethods.addAllNonStatic(interfaces[i].privateGetPublicMethods());
+ for (Class> i : getInterfaces()) {
+ inheritedMethods.addAllNonStatic(i.privateGetPublicMethods());
}
if (!isInterface()) {
Class> c = getSuperclass();
@@ -2864,9 +2862,9 @@ public final class Class implements java.io.Serializable,
private static Field searchFields(Field[] fields, String name) {
String internedName = name.intern();
- for (int i = 0; i < fields.length; i++) {
- if (fields[i].getName() == internedName) {
- return getReflectionFactory().copyField(fields[i]);
+ for (Field field : fields) {
+ if (field.getName() == internedName) {
+ return getReflectionFactory().copyField(field);
}
}
return null;
@@ -2887,8 +2885,7 @@ public final class Class implements java.io.Serializable,
}
// Direct superinterfaces, recursively
Class>[] interfaces = getInterfaces();
- for (int i = 0; i < interfaces.length; i++) {
- Class> c = interfaces[i];
+ for (Class> c : interfaces) {
if ((res = c.getField0(name)) != null) {
return res;
}
@@ -2911,8 +2908,7 @@ public final class Class implements java.io.Serializable,
{
Method res = null;
String internedName = name.intern();
- for (int i = 0; i < methods.length; i++) {
- Method m = methods[i];
+ for (Method m : methods) {
if (m.getName() == internedName
&& arrayContentsEq(parameterTypes, m.getParameterTypes())
&& (res == null
diff --git a/jdk/src/share/classes/java/lang/ClassLoader.java b/jdk/src/share/classes/java/lang/ClassLoader.java
index 3905944fc37..078c1502176 100644
--- a/jdk/src/share/classes/java/lang/ClassLoader.java
+++ b/jdk/src/share/classes/java/lang/ClassLoader.java
@@ -199,8 +199,7 @@ public abstract class ClassLoader {
// the set of parallel capable loader types
private static final Set> loaderTypes =
- Collections.newSetFromMap(
- new WeakHashMap, Boolean>());
+ Collections.newSetFromMap(new WeakHashMap<>());
static {
synchronized (loaderTypes) { loaderTypes.add(ClassLoader.class); }
}
@@ -285,8 +284,7 @@ public abstract class ClassLoader {
if (ParallelLoaders.isRegistered(this.getClass())) {
parallelLockMap = new ConcurrentHashMap<>();
package2certs = new ConcurrentHashMap<>();
- domains =
- Collections.synchronizedSet(new HashSet());
+ domains = Collections.synchronizedSet(new HashSet<>());
assertionLock = new Object();
} else {
// no finer-grained lock; lock on the classloader instance
@@ -916,10 +914,10 @@ public abstract class ClassLoader {
// go through and make sure all the certs in one array
// are in the other and vice-versa.
boolean match;
- for (int i = 0; i < certs.length; i++) {
+ for (Certificate cert : certs) {
match = false;
- for (int j = 0; j < pcerts.length; j++) {
- if (certs[i].equals(pcerts[j])) {
+ for (Certificate pcert : pcerts) {
+ if (cert.equals(pcert)) {
match = true;
break;
}
@@ -928,10 +926,10 @@ public abstract class ClassLoader {
}
// now do the same for pcerts
- for (int i = 0; i < pcerts.length; i++) {
+ for (Certificate pcert : pcerts) {
match = false;
- for (int j = 0; j < certs.length; j++) {
- if (pcerts[i].equals(certs[j])) {
+ for (Certificate cert : certs) {
+ if (pcert.equals(cert)) {
match = true;
break;
}
@@ -1648,10 +1646,10 @@ public abstract class ClassLoader {
pkgs = Package.getSystemPackages();
}
if (pkgs != null) {
- for (int i = 0; i < pkgs.length; i++) {
- String pkgName = pkgs[i].getName();
+ for (Package pkg : pkgs) {
+ String pkgName = pkg.getName();
if (map.get(pkgName) == null) {
- map.put(pkgName, pkgs[i]);
+ map.put(pkgName, pkg);
}
}
}
@@ -1830,8 +1828,8 @@ public abstract class ClassLoader {
throw new UnsatisfiedLinkError("Can't load " + libfilename);
}
}
- for (int i = 0 ; i < sys_paths.length ; i++) {
- File libfile = new File(sys_paths[i], System.mapLibraryName(name));
+ for (String sys_path : sys_paths) {
+ File libfile = new File(sys_path, System.mapLibraryName(name));
if (loadLibrary0(fromClass, libfile)) {
return;
}
@@ -1841,9 +1839,8 @@ public abstract class ClassLoader {
}
}
if (loader != null) {
- for (int i = 0 ; i < usr_paths.length ; i++) {
- File libfile = new File(usr_paths[i],
- System.mapLibraryName(name));
+ for (String usr_path : usr_paths) {
+ File libfile = new File(usr_path, System.mapLibraryName(name));
if (loadLibrary0(fromClass, libfile)) {
return;
}
diff --git a/jdk/src/share/classes/java/lang/ConditionalSpecialCasing.java b/jdk/src/share/classes/java/lang/ConditionalSpecialCasing.java
index d2ed9d91b50..bf5c7ae32fc 100644
--- a/jdk/src/share/classes/java/lang/ConditionalSpecialCasing.java
+++ b/jdk/src/share/classes/java/lang/ConditionalSpecialCasing.java
@@ -91,15 +91,14 @@ final class ConditionalSpecialCasing {
static Hashtable> entryTable = new Hashtable<>();
static {
// create hashtable from the entry
- for (int i = 0; i < entry.length; i ++) {
- Entry cur = entry[i];
- Integer cp = new Integer(cur.getCodePoint());
+ for (Entry cur : entry) {
+ Integer cp = cur.getCodePoint();
HashSet set = entryTable.get(cp);
if (set == null) {
- set = new HashSet();
+ set = new HashSet<>();
+ entryTable.put(cp, set);
}
set.add(cur);
- entryTable.put(cp, set);
}
}
diff --git a/jdk/src/share/classes/java/lang/Package.java b/jdk/src/share/classes/java/lang/Package.java
index e55d72bc038..f59176f558e 100644
--- a/jdk/src/share/classes/java/lang/Package.java
+++ b/jdk/src/share/classes/java/lang/Package.java
@@ -557,8 +557,8 @@ public class Package implements java.lang.reflect.AnnotatedElement {
// First, update the system package map with new package names
String[] names = getSystemPackages0();
synchronized (pkgs) {
- for (int i = 0; i < names.length; i++) {
- defineSystemPackage(names[i], getSystemPackage0(names[i]));
+ for (String name : names) {
+ defineSystemPackage(name, getSystemPackage0(name));
}
return pkgs.values().toArray(new Package[pkgs.size()]);
}
diff --git a/jdk/src/share/classes/java/lang/SecurityManager.java b/jdk/src/share/classes/java/lang/SecurityManager.java
index 3797b86a1c3..e0aeb32de17 100644
--- a/jdk/src/share/classes/java/lang/SecurityManager.java
+++ b/jdk/src/share/classes/java/lang/SecurityManager.java
@@ -1476,10 +1476,10 @@ class SecurityManager {
/*
* Traverse the list of packages, check for any matches.
*/
- for (int i = 0; i < pkgs.length; i++) {
- if (pkg.startsWith(pkgs[i]) || pkgs[i].equals(pkg + ".")) {
+ for (String restrictedPkg : pkgs) {
+ if (pkg.startsWith(restrictedPkg) || restrictedPkg.equals(pkg + ".")) {
checkPermission(
- new RuntimePermission("accessClassInPackage."+pkg));
+ new RuntimePermission("accessClassInPackage." + pkg));
break; // No need to continue; only need to check this once
}
}
@@ -1544,10 +1544,10 @@ class SecurityManager {
/*
* Traverse the list of packages, check for any matches.
*/
- for (int i = 0; i < pkgs.length; i++) {
- if (pkg.startsWith(pkgs[i]) || pkgs[i].equals(pkg + ".")) {
+ for (String restrictedPkg : pkgs) {
+ if (pkg.startsWith(restrictedPkg) || restrictedPkg.equals(pkg + ".")) {
checkPermission(
- new RuntimePermission("defineClassInPackage."+pkg));
+ new RuntimePermission("defineClassInPackage." + pkg));
break; // No need to continue; only need to check this once
}
}
diff --git a/jdk/src/share/classes/java/lang/StringCoding.java b/jdk/src/share/classes/java/lang/StringCoding.java
index 7a67ce77ab0..24ed0c06bbe 100644
--- a/jdk/src/share/classes/java/lang/StringCoding.java
+++ b/jdk/src/share/classes/java/lang/StringCoding.java
@@ -67,7 +67,7 @@ class StringCoding {
}
private static void set(ThreadLocal> tl, T ob) {
- tl.set(new SoftReference(ob));
+ tl.set(new SoftReference<>(ob));
}
// Trim the given byte array to the given length
diff --git a/jdk/src/share/classes/java/lang/ThreadLocal.java b/jdk/src/share/classes/java/lang/ThreadLocal.java
index 91d3df940d6..f9f78c4ecd9 100644
--- a/jdk/src/share/classes/java/lang/ThreadLocal.java
+++ b/jdk/src/share/classes/java/lang/ThreadLocal.java
@@ -382,8 +382,7 @@ public class ThreadLocal {
setThreshold(len);
table = new Entry[len];
- for (int j = 0; j < len; j++) {
- Entry e = parentTable[j];
+ for (Entry e : parentTable) {
if (e != null) {
@SuppressWarnings("unchecked")
ThreadLocal key = (ThreadLocal) e.get();
@@ -685,8 +684,7 @@ public class ThreadLocal {
Entry[] newTab = new Entry[newLen];
int count = 0;
- for (int j = 0; j < oldLen; ++j) {
- Entry e = oldTab[j];
+ for (Entry e : oldTab) {
if (e != null) {
ThreadLocal> k = e.get();
if (k == null) {
diff --git a/jdk/src/share/classes/java/lang/Throwable.java b/jdk/src/share/classes/java/lang/Throwable.java
index 4b9e2ad0415..abdb3fc5734 100644
--- a/jdk/src/share/classes/java/lang/Throwable.java
+++ b/jdk/src/share/classes/java/lang/Throwable.java
@@ -646,8 +646,7 @@ public class Throwable implements Serializable {
private void printStackTrace(PrintStreamOrWriter s) {
// Guard against malicious overrides of Throwable.equals by
// using a Set with identity equality semantics.
- Set dejaVu =
- Collections.newSetFromMap(new IdentityHashMap());
+ Set dejaVu = Collections.newSetFromMap(new IdentityHashMap<>());
dejaVu.add(this);
synchronized (s.lock()) {
diff --git a/jdk/src/share/classes/java/lang/invoke/MethodHandleProxies.java b/jdk/src/share/classes/java/lang/invoke/MethodHandleProxies.java
index 13b1d21acd4..34ec2348099 100644
--- a/jdk/src/share/classes/java/lang/invoke/MethodHandleProxies.java
+++ b/jdk/src/share/classes/java/lang/invoke/MethodHandleProxies.java
@@ -303,7 +303,7 @@ public class MethodHandleProxies {
private static
Method[] getSingleNameMethods(Class> intfc) {
- ArrayList methods = new ArrayList();
+ ArrayList methods = new ArrayList<>();
String uniqueName = null;
for (Method m : intfc.getMethods()) {
if (isObjectMethod(m)) continue;
diff --git a/jdk/src/share/classes/java/lang/invoke/MutableCallSite.java b/jdk/src/share/classes/java/lang/invoke/MutableCallSite.java
index 746c8d64e5c..68dabe82c33 100644
--- a/jdk/src/share/classes/java/lang/invoke/MutableCallSite.java
+++ b/jdk/src/share/classes/java/lang/invoke/MutableCallSite.java
@@ -274,8 +274,8 @@ public class MutableCallSite extends CallSite {
public static void syncAll(MutableCallSite[] sites) {
if (sites.length == 0) return;
STORE_BARRIER.lazySet(0);
- for (int i = 0; i < sites.length; i++) {
- sites[i].getClass(); // trigger NPE on first null
+ for (MutableCallSite site : sites) {
+ site.getClass(); // trigger NPE on first null
}
// FIXME: NYI
}
diff --git a/jdk/src/share/classes/java/lang/management/MemoryUsage.java b/jdk/src/share/classes/java/lang/management/MemoryUsage.java
index 6d11e323f6d..d20a5c78fa1 100644
--- a/jdk/src/share/classes/java/lang/management/MemoryUsage.java
+++ b/jdk/src/share/classes/java/lang/management/MemoryUsage.java
@@ -237,7 +237,7 @@ public class MemoryUsage {
* Returns a descriptive representation of this memory usage.
*/
public String toString() {
- StringBuffer buf = new StringBuffer();
+ StringBuilder buf = new StringBuilder();
buf.append("init = " + init + "(" + (init >> 10) + "K) ");
buf.append("used = " + used + "(" + (used >> 10) + "K) ");
buf.append("committed = " + committed + "(" +
diff --git a/jdk/src/share/classes/java/lang/reflect/AccessibleObject.java b/jdk/src/share/classes/java/lang/reflect/AccessibleObject.java
index f98aed5db25..a5931e145a7 100644
--- a/jdk/src/share/classes/java/lang/reflect/AccessibleObject.java
+++ b/jdk/src/share/classes/java/lang/reflect/AccessibleObject.java
@@ -93,8 +93,8 @@ public class AccessibleObject implements AnnotatedElement {
throws SecurityException {
SecurityManager sm = System.getSecurityManager();
if (sm != null) sm.checkPermission(ACCESS_PERMISSION);
- for (int i = 0; i < array.length; i++) {
- setAccessible0(array[i], flag);
+ for (AccessibleObject ao : array) {
+ setAccessible0(ao, flag);
}
}
diff --git a/jdk/src/share/classes/java/lang/reflect/Parameter.java b/jdk/src/share/classes/java/lang/reflect/Parameter.java
index d8c992c15bd..f035b8e5e73 100644
--- a/jdk/src/share/classes/java/lang/reflect/Parameter.java
+++ b/jdk/src/share/classes/java/lang/reflect/Parameter.java
@@ -337,11 +337,9 @@ public final class Parameter implements AnnotatedElement {
private synchronized Map, Annotation> declaredAnnotations() {
if(null == declaredAnnotations) {
- declaredAnnotations =
- new HashMap, Annotation>();
- Annotation[] ann = getDeclaredAnnotations();
- for(int i = 0; i < ann.length; i++)
- declaredAnnotations.put(ann[i].annotationType(), ann[i]);
+ declaredAnnotations = new HashMap<>();
+ for (Annotation a : getDeclaredAnnotations())
+ declaredAnnotations.put(a.annotationType(), a);
}
return declaredAnnotations;
}
diff --git a/jdk/src/share/classes/java/lang/reflect/Proxy.java b/jdk/src/share/classes/java/lang/reflect/Proxy.java
index 20e62b642ca..766bdf30116 100644
--- a/jdk/src/share/classes/java/lang/reflect/Proxy.java
+++ b/jdk/src/share/classes/java/lang/reflect/Proxy.java
@@ -465,7 +465,7 @@ public class Proxy implements java.io.Serializable {
Key2(Class> intf1, Class> intf2) {
super(intf1);
hash = 31 * intf1.hashCode() + intf2.hashCode();
- ref2 = new WeakReference>(intf2);
+ ref2 = new WeakReference<>(intf2);
}
@Override
@@ -725,7 +725,6 @@ public class Proxy implements java.io.Serializable {
}
final Constructor> cons = cl.getConstructor(constructorParams);
- final InvocationHandler ih = h;
if (!Modifier.isPublic(cl.getModifiers())) {
AccessController.doPrivileged(new PrivilegedAction() {
public Void run() {
@@ -735,7 +734,7 @@ public class Proxy implements java.io.Serializable {
});
}
return cons.newInstance(new Object[]{h});
- } catch (IllegalAccessException|InstantiationException e) {
+ } catch (IllegalAccessException | InstantiationException | NoSuchMethodException e) {
throw new InternalError(e.toString(), e);
} catch (InvocationTargetException e) {
Throwable t = e.getCause();
@@ -744,8 +743,6 @@ public class Proxy implements java.io.Serializable {
} else {
throw new InternalError(t.toString(), t);
}
- } catch (NoSuchMethodException e) {
- throw new InternalError(e.toString(), e);
}
}
From 478d2876a5f3804107b10c6320ac68792bb2cc9d Mon Sep 17 00:00:00 2001
From: Jonathan Gibbons
Date: Mon, 27 Jan 2014 16:07:32 -0800
Subject: [PATCH 094/181] 8031212: doclint incorrectly rejects some @see tags
in javadoc comments
Reviewed-by: vromero
---
.../com/sun/tools/javac/parser/DocCommentParser.java | 6 ++++--
langtools/test/tools/javac/doctree/SeeTest.java | 10 +++++-----
2 files changed, 9 insertions(+), 7 deletions(-)
diff --git a/langtools/src/share/classes/com/sun/tools/javac/parser/DocCommentParser.java b/langtools/src/share/classes/com/sun/tools/javac/parser/DocCommentParser.java
index 3a211dc8cec..2b3f11beefa 100644
--- a/langtools/src/share/classes/com/sun/tools/javac/parser/DocCommentParser.java
+++ b/langtools/src/share/classes/com/sun/tools/javac/parser/DocCommentParser.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -1173,8 +1173,10 @@ public class DocCommentParser {
DCText string = quotedString();
if (string != null) {
skipWhitespace();
- if (ch == '@')
+ if (ch == '@'
+ || ch == EOI && bp == buf.length - 1) {
return m.at(pos).See(List.of(string));
+ }
}
break;
diff --git a/langtools/test/tools/javac/doctree/SeeTest.java b/langtools/test/tools/javac/doctree/SeeTest.java
index bb2734814d9..6927788ce27 100644
--- a/langtools/test/tools/javac/doctree/SeeTest.java
+++ b/langtools/test/tools/javac/doctree/SeeTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
/*
* @test
- * @bug 7021614
+ * @bug 7021614 8031212
* @summary extend com.sun.source API to support parsing javadoc comments
* @build DocCommentTester
* @run main DocCommentTester SeeTest.java
@@ -41,9 +41,9 @@ DocComment[DOC_COMMENT, pos:1
Text[TEXT, pos:1, abc.]
body: empty
block tags: 1
- Erroneous[ERRONEOUS, pos:7
- code: compiler.err.dc.unexpected.content
- body: @see_"String"
+ See[SEE, pos:7
+ reference: 1
+ Text[TEXT, pos:12, "String"]
]
]
*/
From 1e80ad98e4e57b76998b89a84157361c51800df3 Mon Sep 17 00:00:00 2001
From: Mandy Chung
Date: Mon, 27 Jan 2014 16:22:08 -0800
Subject: [PATCH 095/181] 6760902: inconsistent behavior in system class loader
for classes and resources
Reviewed-by: psandoz, ksrini
---
jdk/src/share/classes/sun/misc/Launcher.java | 17 +--
.../ClassLoader/getResource/GetResource.java | 42 ++++++
.../ClassLoader/getResource/GetResource.sh | 124 ++++++++++++++++++
.../ClassLoader/getResource/test.properties | 1 +
4 files changed, 176 insertions(+), 8 deletions(-)
create mode 100644 jdk/test/java/lang/ClassLoader/getResource/GetResource.java
create mode 100644 jdk/test/java/lang/ClassLoader/getResource/GetResource.sh
create mode 100644 jdk/test/java/lang/ClassLoader/getResource/test.properties
diff --git a/jdk/src/share/classes/sun/misc/Launcher.java b/jdk/src/share/classes/sun/misc/Launcher.java
index 71b3d3bbce8..89557f711b4 100644
--- a/jdk/src/share/classes/sun/misc/Launcher.java
+++ b/jdk/src/share/classes/sun/misc/Launcher.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -266,7 +266,7 @@ public class Launcher {
throws IOException
{
final String s = System.getProperty("java.class.path");
- final File[] path = (s == null) ? new File[0] : getClassPath(s);
+ final File[] path = (s == null) ? new File[0] : getClassPath(s, true);
// Note: on bugid 4256530
// Prior implementations of this doPrivileged() block supplied
@@ -322,7 +322,7 @@ public class Launcher {
* This class loader supports dynamic additions to the class path
* at runtime.
*
- * @see java.lang.instrument.Instrumentation#appendToSystemClassPathSearch
+ * @see java.lang.instrument.Instrumentation#appendToSystemClassLoaderSearch
*/
private void appendToClassPathForInstrumentation(String path) {
assert(Thread.holdsLock(this));
@@ -364,7 +364,8 @@ public class Launcher {
urls = AccessController.doPrivileged(
new PrivilegedAction() {
public URL[] run() {
- File[] classPath = getClassPath(bootClassPath);
+ // Skip empty path in boot class path i.e. not default to use CWD
+ File[] classPath = getClassPath(bootClassPath, false);
int len = classPath.length;
Set seenDirs = new HashSet();
for (int i = 0; i < len; i++) {
@@ -405,7 +406,7 @@ public class Launcher {
return urls;
}
- private static File[] getClassPath(String cp) {
+ private static File[] getClassPath(String cp, boolean defaultToCwd) {
File[] path;
if (cp != null) {
int count = 0, maxCount = 1;
@@ -419,9 +420,9 @@ public class Launcher {
lastPos = pos = 0;
// Now scan for each path component
while ((pos = cp.indexOf(File.pathSeparator, lastPos)) != -1) {
- if (pos - lastPos > 0) {
+ if (pos > lastPos) {
path[count++] = new File(cp.substring(lastPos, pos));
- } else {
+ } else if (defaultToCwd) {
// empty path component translates to "."
path[count++] = new File(".");
}
@@ -430,7 +431,7 @@ public class Launcher {
// Make sure we include the last path component
if (lastPos < cp.length()) {
path[count++] = new File(cp.substring(lastPos));
- } else {
+ } else if (defaultToCwd) {
path[count++] = new File(".");
}
// Trim array to correct size
diff --git a/jdk/test/java/lang/ClassLoader/getResource/GetResource.java b/jdk/test/java/lang/ClassLoader/getResource/GetResource.java
new file mode 100644
index 00000000000..1eb62d0bf24
--- /dev/null
+++ b/jdk/test/java/lang/ClassLoader/getResource/GetResource.java
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import java.net.URL;
+
+public class GetResource {
+ private static final String RESOURCE_NAME = "test.properties";
+ public static void main(String[] args) {
+ String expect = args[0] + "/" + RESOURCE_NAME;
+ URL url = GetResource.class.getResource(RESOURCE_NAME);
+ System.out.println("getResource found: " + url);
+ if (!url.toString().endsWith(expect)) {
+ throw new RuntimeException(url + " != expected resource " + expect);
+ }
+
+ url = ClassLoader.getSystemResource(RESOURCE_NAME);
+ System.out.println("getSystemResource found: " + url);
+ if (!url.toString().endsWith(expect)) {
+ throw new RuntimeException(url + " != expected resource " + expect);
+ }
+ }
+}
diff --git a/jdk/test/java/lang/ClassLoader/getResource/GetResource.sh b/jdk/test/java/lang/ClassLoader/getResource/GetResource.sh
new file mode 100644
index 00000000000..2f178cd20b8
--- /dev/null
+++ b/jdk/test/java/lang/ClassLoader/getResource/GetResource.sh
@@ -0,0 +1,124 @@
+#
+# Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+# @test
+# @bug 6760902
+# @summary Empty path on bootclasspath is not default to current working
+# directory for both class lookup and resource lookup whereas
+# empty path on classpath is default to current working directory.
+#
+# @run shell GetResource.sh
+
+if [ "${TESTSRC}" = "" ] ; then
+ TESTSRC=`pwd`
+fi
+if [ "${TESTCLASSES}" = "" ] ; then
+ TESTCLASSES=`pwd`
+fi
+
+if [ "${TESTJAVA}" = "" ] ; then
+ echo "TESTJAVA not set. Test cannot execute."
+ echo "FAILED!!!"
+ exit 1
+fi
+
+if [ "${COMPILEJAVA}" = "" ] ; then
+ COMPILEJAVA="${TESTJAVA}"
+fi
+
+# set platform-specific variables
+OS=`uname -s`
+case "$OS" in
+ Windows*)
+ PS=";"
+ ;;
+ CYGWIN* )
+ PS=";"
+ TESTCLASSES=`/usr/bin/cygpath -a -s -m ${TESTCLASSES}`
+ ;;
+ * )
+ PS=":"
+ ;;
+esac
+
+echo TESTSRC=${TESTSRC}
+echo TESTCLASSES=${TESTCLASSES}
+echo TESTJAVA=${TESTJAVA}
+echo ""
+
+${COMPILEJAVA}/bin/javac ${TESTJAVACOPTS} ${TESTTOOLVMOPTS} \
+ -d ${TESTCLASSES} \
+ ${TESTSRC}/GetResource.java || exit 10
+
+setup() {
+ dest=${TESTCLASSES}/$1
+ rm -rf $dest
+ mkdir $dest
+ cp ${TESTSRC}/test.properties $dest
+ cp ${TESTCLASSES}/GetResource.class $dest
+}
+
+
+count=0
+runTest() {
+ expected=$1;
+ vmoption=$2; shift; shift
+ count=`expr $count+1`
+ echo "Test $count : $vmoption $@"
+ ${TESTJAVA}/bin/java ${TESTVMOPTS} "$vmoption" $@ \
+ GetResource $expected || exit $count
+}
+
+# run test
+setup "a"
+setup "b"
+
+cd ${TESTCLASSES}
+DIR=`pwd`
+
+# Expected -Xbootclasspath
+# Location or -classpath
+runTest "a" "-Xbootclasspath/p:a"
+runTest "a" "-Xbootclasspath/p:a${PS}b"
+runTest "b" "-Xbootclasspath/p:b"
+runTest "b" "-Xbootclasspath/p:b${PS}a"
+runTest "a" -cp a
+runTest "a" -cp "a${PS}b"
+runTest "b" -cp b
+runTest "b" -cp "b${PS}a"
+
+cd ${DIR}/a
+
+runTest "a" "-Xbootclasspath/p:."
+runTest "b" "-Xbootclasspath/p:../b"
+
+# no -classpath
+runTest "a" -cp "${PS}"
+runTest "b" -cp "../b"
+
+# Test empty path in bootclasspath not default to current working directory
+runTest "b" "-Xbootclasspath/p:${PS}../b"
+
+# Test empty path in classpath default to current working directory
+runTest "a" -cp "${PS}../b"
+
diff --git a/jdk/test/java/lang/ClassLoader/getResource/test.properties b/jdk/test/java/lang/ClassLoader/getResource/test.properties
new file mode 100644
index 00000000000..64ec12be2bd
--- /dev/null
+++ b/jdk/test/java/lang/ClassLoader/getResource/test.properties
@@ -0,0 +1 @@
+# empty resource
From 69a6133c7805245129f2c66729724eb6c76df83b Mon Sep 17 00:00:00 2001
From: Jonathan Gibbons
Date: Mon, 27 Jan 2014 17:48:47 -0800
Subject: [PATCH 096/181] 8032814: LineNumberTable/LocalVariableTable tables
duplication for the "-v -l" combination of options
Reviewed-by: ksrini
---
.../com/sun/tools/javap/ClassWriter.java | 28 +++---
langtools/test/tools/javap/T8032814.java | 93 +++++++++++++++++++
2 files changed, 105 insertions(+), 16 deletions(-)
create mode 100644 langtools/test/tools/javap/T8032814.java
diff --git a/langtools/src/share/classes/com/sun/tools/javap/ClassWriter.java b/langtools/src/share/classes/com/sun/tools/javap/ClassWriter.java
index 02fec473268..6057cd7b289 100644
--- a/langtools/src/share/classes/com/sun/tools/javap/ClassWriter.java
+++ b/langtools/src/share/classes/com/sun/tools/javap/ClassWriter.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -498,25 +498,21 @@ public class ClassWriter extends BasicWriter {
report("Unexpected or invalid value for Code attribute");
}
- if (options.showDisassembled && !options.showAllAttrs) {
- if (code != null) {
- println("Code:");
- codeWriter.writeInstrs(code);
- codeWriter.writeExceptionTable(code);
- }
- }
-
- if (options.showLineAndLocalVariableTables) {
- if (code != null) {
- attrWriter.write(code, code.attributes.get(Attribute.LineNumberTable), constant_pool);
- attrWriter.write(code, code.attributes.get(Attribute.LocalVariableTable), constant_pool);
- }
- }
-
if (options.showAllAttrs) {
Attribute[] attrs = m.attributes.attrs;
for (Attribute attr: attrs)
attrWriter.write(m, attr, constant_pool);
+ } else if (code != null) {
+ if (options.showDisassembled) {
+ println("Code:");
+ codeWriter.writeInstrs(code);
+ codeWriter.writeExceptionTable(code);
+ }
+
+ if (options.showLineAndLocalVariableTables) {
+ attrWriter.write(code, code.attributes.get(Attribute.LineNumberTable), constant_pool);
+ attrWriter.write(code, code.attributes.get(Attribute.LocalVariableTable), constant_pool);
+ }
}
indent(-1);
diff --git a/langtools/test/tools/javap/T8032814.java b/langtools/test/tools/javap/T8032814.java
new file mode 100644
index 00000000000..d9ee2d1915d
--- /dev/null
+++ b/langtools/test/tools/javap/T8032814.java
@@ -0,0 +1,93 @@
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8032814
+ * @summary LineNumberTable/LocalVariableTable tables duplication for the
+ * "-v -l" combination of options
+ * @compile -g T8032814.java
+ * @run main T8032814
+ */
+
+import java.io.*;
+import java.util.*;
+
+public class T8032814 {
+ public static void main(String... args) throws Exception {
+ new T8032814().run();
+ }
+
+ void run() throws Exception {
+ Class> clazz = T8032814.class;
+ int count = clazz.getDeclaredConstructors().length
+ + clazz.getDeclaredMethods().length;
+ test(clazz, 0);
+ test(clazz, count, "-v");
+ test(clazz, count, "-l");
+ test(clazz, count, "-v", "-l");
+
+ if (errors > 0)
+ throw new Exception(errors + " errors occurred");
+ }
+
+ void test(Class> clazz, int expectedCount, String... opts) throws Exception {
+ System.err.println("test class " + clazz.getName() + " " + Arrays.asList(opts) + ": expect: " + expectedCount);
+ List args = new ArrayList();
+ args.addAll(Arrays.asList(opts));
+ args.addAll(Arrays.asList("-classpath", System.getProperty("test.classes")));
+ args.add(clazz.getName());
+ StringWriter sw = new StringWriter();
+ PrintWriter pw = new PrintWriter(sw);
+ int rc = com.sun.tools.javap.Main.run(args.toArray(new String[args.size()]), pw);
+ pw.close();
+ String out = sw.toString();
+ if (rc != 0)
+ throw new Exception("javap failed unexpectedly: rc=" + rc);
+
+ int lntCount = 0, lvtCount = 0;
+ for (String line: out.split("[\r\n]+")) {
+ if (line.matches("^ *LineNumberTable:$"))
+ lntCount++;
+ if (line.matches("^ *LocalVariableTable:$"))
+ lvtCount++;
+ }
+ checkEqual("LineNumberTable", lntCount, expectedCount);
+ checkEqual("LocalVariableTable", lvtCount, expectedCount);
+ }
+
+ void checkEqual(String attr, int found, int expect) {
+ if (found != expect) {
+ error("Unexpected number of occurrences of " + attr + "\n" +
+ "found: " + found + ", expected: " + expect);
+ }
+ }
+
+ void error(String msg) {
+ System.err.println("Error: " + msg);
+ errors++;
+ }
+
+ int errors = 0;
+}
+
From 305d2f27f1b913728c5f955025c543d89afbdcdd Mon Sep 17 00:00:00 2001
From: Coleen Phillimore
Date: Mon, 27 Jan 2014 23:12:13 -0500
Subject: [PATCH 097/181] 8028275: Metaspace ShrinkGrowTest causes fatal error
if run with JFR
Clean up initialization from Threads::create_vm() so that exceptions cause vm_exit_during_initialzation without an exception mark.
Reviewed-by: dholmes, hseigel
---
hotspot/src/share/vm/oops/constantPool.cpp | 3 +-
hotspot/src/share/vm/prims/jni.cpp | 16 +-
hotspot/src/share/vm/runtime/thread.cpp | 156 ++++++++----------
hotspot/src/share/vm/runtime/thread.hpp | 4 +-
hotspot/src/share/vm/utilities/exceptions.hpp | 3 +-
5 files changed, 90 insertions(+), 92 deletions(-)
diff --git a/hotspot/src/share/vm/oops/constantPool.cpp b/hotspot/src/share/vm/oops/constantPool.cpp
index 16b53a69929..223fbc16935 100644
--- a/hotspot/src/share/vm/oops/constantPool.cpp
+++ b/hotspot/src/share/vm/oops/constantPool.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -1874,7 +1874,6 @@ void ConstantPool::preload_and_initialize_all_classes(ConstantPool* obj, TRAPS)
// Printing
void ConstantPool::print_on(outputStream* st) const {
- EXCEPTION_MARK;
assert(is_constantPool(), "must be constantPool");
st->print_cr(internal_name());
if (flags() != 0) {
diff --git a/hotspot/src/share/vm/prims/jni.cpp b/hotspot/src/share/vm/prims/jni.cpp
index de176d9177b..4149510abc2 100644
--- a/hotspot/src/share/vm/prims/jni.cpp
+++ b/hotspot/src/share/vm/prims/jni.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2012 Red Hat, Inc.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
@@ -5053,6 +5053,7 @@ _JNI_IMPORT_OR_EXPORT_ jint JNICALL JNI_CreateJavaVM(JavaVM **vm, void **penv, v
result = Threads::create_vm((JavaVMInitArgs*) args, &can_try_again);
if (result == JNI_OK) {
JavaThread *thread = JavaThread::current();
+ assert(!thread->has_pending_exception(), "should have returned not OK");
/* thread is thread_in_vm here */
*vm = (JavaVM *)(&main_vm);
*(JNIEnv**)penv = thread->jni_environment();
@@ -5089,6 +5090,19 @@ _JNI_IMPORT_OR_EXPORT_ jint JNICALL JNI_CreateJavaVM(JavaVM **vm, void **penv, v
// Since this is not a JVM_ENTRY we have to set the thread state manually before leaving.
ThreadStateTransition::transition_and_fence(thread, _thread_in_vm, _thread_in_native);
} else {
+ // If create_vm exits because of a pending exception, exit with that
+ // exception. In the future when we figure out how to reclaim memory,
+ // we may be able to exit with JNI_ERR and allow the calling application
+ // to continue.
+ if (Universe::is_fully_initialized()) {
+ // otherwise no pending exception possible - VM will already have aborted
+ JavaThread* THREAD = JavaThread::current();
+ if (HAS_PENDING_EXCEPTION) {
+ HandleMark hm;
+ vm_exit_during_initialization(Handle(THREAD, PENDING_EXCEPTION));
+ }
+ }
+
if (can_try_again) {
// reset safe_to_recreate_vm to 1 so that retrial would be possible
safe_to_recreate_vm = 1;
diff --git a/hotspot/src/share/vm/runtime/thread.cpp b/hotspot/src/share/vm/runtime/thread.cpp
index c5a1145a74a..7b4cf763501 100644
--- a/hotspot/src/share/vm/runtime/thread.cpp
+++ b/hotspot/src/share/vm/runtime/thread.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -3301,6 +3301,58 @@ void Threads::threads_do(ThreadClosure* tc) {
// If CompilerThreads ever become non-JavaThreads, add them here
}
+
+void Threads::initialize_java_lang_classes(JavaThread* main_thread, TRAPS) {
+ TraceTime timer("Initialize java.lang classes", TraceStartupTime);
+
+ if (EagerXrunInit && Arguments::init_libraries_at_startup()) {
+ create_vm_init_libraries();
+ }
+
+ initialize_class(vmSymbols::java_lang_String(), CHECK);
+
+ // Initialize java_lang.System (needed before creating the thread)
+ initialize_class(vmSymbols::java_lang_System(), CHECK);
+ initialize_class(vmSymbols::java_lang_ThreadGroup(), CHECK);
+ Handle thread_group = create_initial_thread_group(CHECK);
+ Universe::set_main_thread_group(thread_group());
+ initialize_class(vmSymbols::java_lang_Thread(), CHECK);
+ oop thread_object = create_initial_thread(thread_group, main_thread, CHECK);
+ main_thread->set_threadObj(thread_object);
+ // Set thread status to running since main thread has
+ // been started and running.
+ java_lang_Thread::set_thread_status(thread_object,
+ java_lang_Thread::RUNNABLE);
+
+ // The VM creates & returns objects of this class. Make sure it's initialized.
+ initialize_class(vmSymbols::java_lang_Class(), CHECK);
+
+ // The VM preresolves methods to these classes. Make sure that they get initialized
+ initialize_class(vmSymbols::java_lang_reflect_Method(), CHECK);
+ initialize_class(vmSymbols::java_lang_ref_Finalizer(), CHECK);
+ call_initializeSystemClass(CHECK);
+
+ // get the Java runtime name after java.lang.System is initialized
+ JDK_Version::set_runtime_name(get_java_runtime_name(THREAD));
+ JDK_Version::set_runtime_version(get_java_runtime_version(THREAD));
+
+ // an instance of OutOfMemory exception has been allocated earlier
+ initialize_class(vmSymbols::java_lang_OutOfMemoryError(), CHECK);
+ initialize_class(vmSymbols::java_lang_NullPointerException(), CHECK);
+ initialize_class(vmSymbols::java_lang_ClassCastException(), CHECK);
+ initialize_class(vmSymbols::java_lang_ArrayStoreException(), CHECK);
+ initialize_class(vmSymbols::java_lang_ArithmeticException(), CHECK);
+ initialize_class(vmSymbols::java_lang_StackOverflowError(), CHECK);
+ initialize_class(vmSymbols::java_lang_IllegalMonitorStateException(), CHECK);
+ initialize_class(vmSymbols::java_lang_IllegalArgumentException(), CHECK);
+}
+
+void Threads::initialize_jsr292_core_classes(TRAPS) {
+ initialize_class(vmSymbols::java_lang_invoke_MethodHandle(), CHECK);
+ initialize_class(vmSymbols::java_lang_invoke_MemberName(), CHECK);
+ initialize_class(vmSymbols::java_lang_invoke_MethodHandleNatives(), CHECK);
+}
+
jint Threads::create_vm(JavaVMInitArgs* args, bool* canTryAgain) {
extern void JDK_Version_init();
@@ -3470,13 +3522,13 @@ jint Threads::create_vm(JavaVMInitArgs* args, bool* canTryAgain) {
VMThread::execute(&verify_op);
}
- EXCEPTION_MARK;
+ Thread* THREAD = Thread::current();
// At this point, the Universe is initialized, but we have not executed
// any byte code. Now is a good time (the only time) to dump out the
// internal state of the JVM for sharing.
if (DumpSharedSpaces) {
- MetaspaceShared::preload_and_dump(CHECK_0);
+ MetaspaceShared::preload_and_dump(CHECK_JNI_ERR);
ShouldNotReachHere();
}
@@ -3487,74 +3539,12 @@ jint Threads::create_vm(JavaVMInitArgs* args, bool* canTryAgain) {
// Notify JVMTI agents that VM has started (JNI is up) - nop if no agents.
JvmtiExport::post_vm_start();
- {
- TraceTime timer("Initialize java.lang classes", TraceStartupTime);
+ initialize_java_lang_classes(main_thread, CHECK_JNI_ERR);
- if (EagerXrunInit && Arguments::init_libraries_at_startup()) {
- create_vm_init_libraries();
- }
-
- initialize_class(vmSymbols::java_lang_String(), CHECK_0);
-
- // Initialize java_lang.System (needed before creating the thread)
- initialize_class(vmSymbols::java_lang_System(), CHECK_0);
- initialize_class(vmSymbols::java_lang_ThreadGroup(), CHECK_0);
- Handle thread_group = create_initial_thread_group(CHECK_0);
- Universe::set_main_thread_group(thread_group());
- initialize_class(vmSymbols::java_lang_Thread(), CHECK_0);
- oop thread_object = create_initial_thread(thread_group, main_thread, CHECK_0);
- main_thread->set_threadObj(thread_object);
- // Set thread status to running since main thread has
- // been started and running.
- java_lang_Thread::set_thread_status(thread_object,
- java_lang_Thread::RUNNABLE);
-
- // The VM creates & returns objects of this class. Make sure it's initialized.
- initialize_class(vmSymbols::java_lang_Class(), CHECK_0);
-
- // The VM preresolves methods to these classes. Make sure that they get initialized
- initialize_class(vmSymbols::java_lang_reflect_Method(), CHECK_0);
- initialize_class(vmSymbols::java_lang_ref_Finalizer(), CHECK_0);
- call_initializeSystemClass(CHECK_0);
-
- // get the Java runtime name after java.lang.System is initialized
- JDK_Version::set_runtime_name(get_java_runtime_name(THREAD));
- JDK_Version::set_runtime_version(get_java_runtime_version(THREAD));
-
- // an instance of OutOfMemory exception has been allocated earlier
- initialize_class(vmSymbols::java_lang_OutOfMemoryError(), CHECK_0);
- initialize_class(vmSymbols::java_lang_NullPointerException(), CHECK_0);
- initialize_class(vmSymbols::java_lang_ClassCastException(), CHECK_0);
- initialize_class(vmSymbols::java_lang_ArrayStoreException(), CHECK_0);
- initialize_class(vmSymbols::java_lang_ArithmeticException(), CHECK_0);
- initialize_class(vmSymbols::java_lang_StackOverflowError(), CHECK_0);
- initialize_class(vmSymbols::java_lang_IllegalMonitorStateException(), CHECK_0);
- initialize_class(vmSymbols::java_lang_IllegalArgumentException(), CHECK_0);
- }
-
- // See : bugid 4211085.
- // Background : the static initializer of java.lang.Compiler tries to read
- // property"java.compiler" and read & write property "java.vm.info".
- // When a security manager is installed through the command line
- // option "-Djava.security.manager", the above properties are not
- // readable and the static initializer for java.lang.Compiler fails
- // resulting in a NoClassDefFoundError. This can happen in any
- // user code which calls methods in java.lang.Compiler.
- // Hack : the hack is to pre-load and initialize this class, so that only
- // system domains are on the stack when the properties are read.
- // Currently even the AWT code has calls to methods in java.lang.Compiler.
- // On the classic VM, java.lang.Compiler is loaded very early to load the JIT.
- // Future Fix : the best fix is to grant everyone permissions to read "java.compiler" and
- // read and write"java.vm.info" in the default policy file. See bugid 4211383
- // Once that is done, we should remove this hack.
- initialize_class(vmSymbols::java_lang_Compiler(), CHECK_0);
-
- // More hackery - the static initializer of java.lang.Compiler adds the string "nojit" to
- // the java.vm.info property if no jit gets loaded through java.lang.Compiler (the hotspot
- // compiler does not get loaded through java.lang.Compiler). "java -version" with the
- // hotspot vm says "nojit" all the time which is confusing. So, we reset it here.
- // This should also be taken out as soon as 4211383 gets fixed.
- reset_vm_info_property(CHECK_0);
+ // We need this for ClassDataSharing - the initial vm.info property is set
+ // with the default value of CDS "sharing" which may be reset through
+ // command line options.
+ reset_vm_info_property(CHECK_JNI_ERR);
quicken_jni_functions();
@@ -3583,10 +3573,7 @@ jint Threads::create_vm(JavaVMInitArgs* args, bool* canTryAgain) {
// Note that we do not use CHECK_0 here since we are inside an EXCEPTION_MARK and
// set_init_completed has just been called, causing exceptions not to be shortcut
// anymore. We call vm_exit_during_initialization directly instead.
- SystemDictionary::compute_java_system_loader(THREAD);
- if (HAS_PENDING_EXCEPTION) {
- vm_exit_during_initialization(Handle(THREAD, PENDING_EXCEPTION));
- }
+ SystemDictionary::compute_java_system_loader(CHECK_JNI_ERR);
#if INCLUDE_ALL_GCS
// Support for ConcurrentMarkSweep. This should be cleaned up
@@ -3594,12 +3581,9 @@ jint Threads::create_vm(JavaVMInitArgs* args, bool* canTryAgain) {
// once things are properly refactored. XXX YSR
if (UseConcMarkSweepGC || UseG1GC) {
if (UseConcMarkSweepGC) {
- ConcurrentMarkSweepThread::makeSurrogateLockerThread(THREAD);
+ ConcurrentMarkSweepThread::makeSurrogateLockerThread(CHECK_JNI_ERR);
} else {
- ConcurrentMarkThread::makeSurrogateLockerThread(THREAD);
- }
- if (HAS_PENDING_EXCEPTION) {
- vm_exit_during_initialization(Handle(THREAD, PENDING_EXCEPTION));
+ ConcurrentMarkThread::makeSurrogateLockerThread(CHECK_JNI_ERR);
}
}
#endif // INCLUDE_ALL_GCS
@@ -3642,19 +3626,16 @@ jint Threads::create_vm(JavaVMInitArgs* args, bool* canTryAgain) {
CompileBroker::compilation_init();
#endif
+ // Pre-initialize some JSR292 core classes to avoid deadlock during class loading.
+ // It is done after compilers are initialized, because otherwise compilations of
+ // signature polymorphic MH intrinsics can be missed
+ // (see SystemDictionary::find_method_handle_intrinsic).
if (EnableInvokeDynamic) {
- // Pre-initialize some JSR292 core classes to avoid deadlock during class loading.
- // It is done after compilers are initialized, because otherwise compilations of
- // signature polymorphic MH intrinsics can be missed
- // (see SystemDictionary::find_method_handle_intrinsic).
- initialize_class(vmSymbols::java_lang_invoke_MethodHandle(), CHECK_0);
- initialize_class(vmSymbols::java_lang_invoke_MemberName(), CHECK_0);
- initialize_class(vmSymbols::java_lang_invoke_MethodHandleNatives(), CHECK_0);
+ initialize_jsr292_core_classes(CHECK_JNI_ERR);
}
#if INCLUDE_MANAGEMENT
Management::initialize(THREAD);
-#endif // INCLUDE_MANAGEMENT
if (HAS_PENDING_EXCEPTION) {
// management agent fails to start possibly due to
@@ -3662,6 +3643,7 @@ jint Threads::create_vm(JavaVMInitArgs* args, bool* canTryAgain) {
// stack trace if appropriate. Simply exit VM.
vm_exit(1);
}
+#endif // INCLUDE_MANAGEMENT
if (Arguments::has_profile()) FlatProfiler::engage(main_thread, true);
if (MemProfiling) MemProfiler::engage();
diff --git a/hotspot/src/share/vm/runtime/thread.hpp b/hotspot/src/share/vm/runtime/thread.hpp
index d655df4f1da..4f5c98aebe1 100644
--- a/hotspot/src/share/vm/runtime/thread.hpp
+++ b/hotspot/src/share/vm/runtime/thread.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -1891,6 +1891,8 @@ class Threads: AllStatic {
static bool _vm_complete;
#endif
+ static void initialize_java_lang_classes(JavaThread* main_thread, TRAPS);
+ static void initialize_jsr292_core_classes(TRAPS);
public:
// Thread management
// force_daemon is a concession to JNI, where we may need to add a
diff --git a/hotspot/src/share/vm/utilities/exceptions.hpp b/hotspot/src/share/vm/utilities/exceptions.hpp
index beaabf8dcf7..504d4caf5e3 100644
--- a/hotspot/src/share/vm/utilities/exceptions.hpp
+++ b/hotspot/src/share/vm/utilities/exceptions.hpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -200,6 +200,7 @@ class Exceptions {
#define CHECK_NH CHECK_(Handle())
#define CHECK_NULL CHECK_(NULL)
#define CHECK_false CHECK_(false)
+#define CHECK_JNI_ERR CHECK_(JNI_ERR)
#define CHECK_AND_CLEAR THREAD); if (HAS_PENDING_EXCEPTION) { CLEAR_PENDING_EXCEPTION; return; } (void)(0
#define CHECK_AND_CLEAR_(result) THREAD); if (HAS_PENDING_EXCEPTION) { CLEAR_PENDING_EXCEPTION; return result; } (void)(0
From 04c87a2bbe7c6c650c70998071988823e7311497 Mon Sep 17 00:00:00 2001
From: Dmitry Samersoff
Date: Tue, 28 Jan 2014 12:50:53 +0400
Subject: [PATCH 098/181] 8022323: [JavaSecurityScanner] review package
com.sun.management.* Native methods should be private
Create java methods that calls native one
Reviewed-by: sla, dholmes
---
jdk/make/mapfiles/libmanagement/mapfile-vers | 22 +++----
.../sun/management/OperatingSystemImpl.java | 66 +++++++++++++++----
.../sun/management/LinuxOperatingSystem.c | 4 +-
.../sun/management/MacosxOperatingSystem.c | 4 +-
.../sun/management/OperatingSystemImpl.c | 18 ++---
.../sun/management/SolarisOperatingSystem.c | 4 +-
.../sun/management/OperatingSystemImpl.java | 50 +++++++++++---
.../sun/management/OperatingSystemImpl.c | 16 ++---
8 files changed, 128 insertions(+), 56 deletions(-)
diff --git a/jdk/make/mapfiles/libmanagement/mapfile-vers b/jdk/make/mapfiles/libmanagement/mapfile-vers
index 218dd3e3e71..a4cb163806a 100644
--- a/jdk/make/mapfiles/libmanagement/mapfile-vers
+++ b/jdk/make/mapfiles/libmanagement/mapfile-vers
@@ -27,17 +27,17 @@
SUNWprivate_1.1 {
global:
- Java_sun_management_OperatingSystemImpl_getCommittedVirtualMemorySize;
- Java_sun_management_OperatingSystemImpl_getFreePhysicalMemorySize;
- Java_sun_management_OperatingSystemImpl_getFreeSwapSpaceSize;
- Java_sun_management_OperatingSystemImpl_getMaxFileDescriptorCount;
- Java_sun_management_OperatingSystemImpl_getOpenFileDescriptorCount;
- Java_sun_management_OperatingSystemImpl_getProcessCpuLoad;
- Java_sun_management_OperatingSystemImpl_getProcessCpuTime;
- Java_sun_management_OperatingSystemImpl_getSystemCpuLoad;
- Java_sun_management_OperatingSystemImpl_getTotalPhysicalMemorySize;
- Java_sun_management_OperatingSystemImpl_getTotalSwapSpaceSize;
- Java_sun_management_OperatingSystemImpl_initialize;
+ Java_sun_management_OperatingSystemImpl_getCommittedVirtualMemorySize0;
+ Java_sun_management_OperatingSystemImpl_getFreePhysicalMemorySize0;
+ Java_sun_management_OperatingSystemImpl_getFreeSwapSpaceSize0;
+ Java_sun_management_OperatingSystemImpl_getMaxFileDescriptorCount0;
+ Java_sun_management_OperatingSystemImpl_getOpenFileDescriptorCount0;
+ Java_sun_management_OperatingSystemImpl_getProcessCpuLoad0;
+ Java_sun_management_OperatingSystemImpl_getProcessCpuTime0;
+ Java_sun_management_OperatingSystemImpl_getSystemCpuLoad0;
+ Java_sun_management_OperatingSystemImpl_getTotalPhysicalMemorySize0;
+ Java_sun_management_OperatingSystemImpl_getTotalSwapSpaceSize0;
+ Java_sun_management_OperatingSystemImpl_initialize0;
Java_sun_management_ClassLoadingImpl_setVerboseClass;
Java_sun_management_DiagnosticCommandImpl_executeDiagnosticCommand;
Java_sun_management_DiagnosticCommandImpl_getDiagnosticCommands;
diff --git a/jdk/src/solaris/classes/sun/management/OperatingSystemImpl.java b/jdk/src/solaris/classes/sun/management/OperatingSystemImpl.java
index 666840f247d..5e2f8dca3b7 100644
--- a/jdk/src/solaris/classes/sun/management/OperatingSystemImpl.java
+++ b/jdk/src/solaris/classes/sun/management/OperatingSystemImpl.java
@@ -39,19 +39,61 @@ class OperatingSystemImpl extends BaseOperatingSystemImpl
super(vm);
}
- public native long getCommittedVirtualMemorySize();
- public native long getTotalSwapSpaceSize();
- public native long getFreeSwapSpaceSize();
- public native long getProcessCpuTime();
- public native long getFreePhysicalMemorySize();
- public native long getTotalPhysicalMemorySize();
- public native long getOpenFileDescriptorCount();
- public native long getMaxFileDescriptorCount();
- public native double getSystemCpuLoad();
- public native double getProcessCpuLoad();
+ public long getCommittedVirtualMemorySize() {
+ return getCommittedVirtualMemorySize0();
+ }
+
+ public long getTotalSwapSpaceSize() {
+ return getTotalSwapSpaceSize0();
+ }
+
+ public long getFreeSwapSpaceSize() {
+ return getFreeSwapSpaceSize0();
+ }
+
+ public long getProcessCpuTime() {
+ return getProcessCpuTime0();
+ }
+
+ public long getFreePhysicalMemorySize() {
+ return getFreePhysicalMemorySize0();
+ }
+
+ public long getTotalPhysicalMemorySize() {
+ return getTotalPhysicalMemorySize0();
+ }
+
+ public long getOpenFileDescriptorCount() {
+ return getOpenFileDescriptorCount0();
+ }
+
+ public long getMaxFileDescriptorCount() {
+ return getMaxFileDescriptorCount0();
+ }
+
+ public double getSystemCpuLoad() {
+ return getSystemCpuLoad0();
+ }
+
+ public double getProcessCpuLoad() {
+ return getProcessCpuLoad0();
+ }
+
+ /* native methods */
+ private native long getCommittedVirtualMemorySize0();
+ private native long getFreePhysicalMemorySize0();
+ private native long getFreeSwapSpaceSize0();
+ private native long getMaxFileDescriptorCount0();
+ private native long getOpenFileDescriptorCount0();
+ private native long getProcessCpuTime0();
+ private native double getProcessCpuLoad0();
+ private native double getSystemCpuLoad0();
+ private native long getTotalPhysicalMemorySize0();
+ private native long getTotalSwapSpaceSize0();
static {
- initialize();
+ initialize0();
}
- private static native void initialize();
+
+ private static native void initialize0();
}
diff --git a/jdk/src/solaris/native/sun/management/LinuxOperatingSystem.c b/jdk/src/solaris/native/sun/management/LinuxOperatingSystem.c
index c8bd739ebef..1d6c89ed754 100644
--- a/jdk/src/solaris/native/sun/management/LinuxOperatingSystem.c
+++ b/jdk/src/solaris/native/sun/management/LinuxOperatingSystem.c
@@ -310,7 +310,7 @@ double get_process_load() {
}
JNIEXPORT jdouble JNICALL
-Java_sun_management_OperatingSystemImpl_getSystemCpuLoad
+Java_sun_management_OperatingSystemImpl_getSystemCpuLoad0
(JNIEnv *env, jobject dummy)
{
if(perfInit() == 0) {
@@ -321,7 +321,7 @@ Java_sun_management_OperatingSystemImpl_getSystemCpuLoad
}
JNIEXPORT jdouble JNICALL
-Java_sun_management_OperatingSystemImpl_getProcessCpuLoad
+Java_sun_management_OperatingSystemImpl_getProcessCpuLoad0
(JNIEnv *env, jobject dummy)
{
if(perfInit() == 0) {
diff --git a/jdk/src/solaris/native/sun/management/MacosxOperatingSystem.c b/jdk/src/solaris/native/sun/management/MacosxOperatingSystem.c
index 8fb39786fe1..24c8669ba47 100644
--- a/jdk/src/solaris/native/sun/management/MacosxOperatingSystem.c
+++ b/jdk/src/solaris/native/sun/management/MacosxOperatingSystem.c
@@ -31,7 +31,7 @@
JNIEXPORT jdouble JNICALL
-Java_sun_management_OperatingSystemImpl_getSystemCpuLoad
+Java_sun_management_OperatingSystemImpl_getSystemCpuLoad0
(JNIEnv *env, jobject dummy)
{
// This code is influenced by the darwin top source
@@ -83,7 +83,7 @@ Java_sun_management_OperatingSystemImpl_getSystemCpuLoad
JNIEXPORT jdouble JNICALL
-Java_sun_management_OperatingSystemImpl_getProcessCpuLoad
+Java_sun_management_OperatingSystemImpl_getProcessCpuLoad0
(JNIEnv *env, jobject dummy)
{
// This code is influenced by the darwin top source
diff --git a/jdk/src/solaris/native/sun/management/OperatingSystemImpl.c b/jdk/src/solaris/native/sun/management/OperatingSystemImpl.c
index f1322ebd90b..8681a89c14a 100644
--- a/jdk/src/solaris/native/sun/management/OperatingSystemImpl.c
+++ b/jdk/src/solaris/native/sun/management/OperatingSystemImpl.c
@@ -175,14 +175,14 @@ static jlong get_total_or_available_swap_space_size(JNIEnv* env, jboolean availa
}
JNIEXPORT void JNICALL
-Java_sun_management_OperatingSystemImpl_initialize
+Java_sun_management_OperatingSystemImpl_initialize0
(JNIEnv *env, jclass cls)
{
page_size = sysconf(_SC_PAGESIZE);
}
JNIEXPORT jlong JNICALL
-Java_sun_management_OperatingSystemImpl_getCommittedVirtualMemorySize
+Java_sun_management_OperatingSystemImpl_getCommittedVirtualMemorySize0
(JNIEnv *env, jobject mbean)
{
#ifdef __solaris__
@@ -249,21 +249,21 @@ Java_sun_management_OperatingSystemImpl_getCommittedVirtualMemorySize
}
JNIEXPORT jlong JNICALL
-Java_sun_management_OperatingSystemImpl_getTotalSwapSpaceSize
+Java_sun_management_OperatingSystemImpl_getTotalSwapSpaceSize0
(JNIEnv *env, jobject mbean)
{
return get_total_or_available_swap_space_size(env, JNI_FALSE);
}
JNIEXPORT jlong JNICALL
-Java_sun_management_OperatingSystemImpl_getFreeSwapSpaceSize
+Java_sun_management_OperatingSystemImpl_getFreeSwapSpaceSize0
(JNIEnv *env, jobject mbean)
{
return get_total_or_available_swap_space_size(env, JNI_TRUE);
}
JNIEXPORT jlong JNICALL
-Java_sun_management_OperatingSystemImpl_getProcessCpuTime
+Java_sun_management_OperatingSystemImpl_getProcessCpuTime0
(JNIEnv *env, jobject mbean)
{
#ifdef __APPLE__
@@ -305,7 +305,7 @@ Java_sun_management_OperatingSystemImpl_getProcessCpuTime
}
JNIEXPORT jlong JNICALL
-Java_sun_management_OperatingSystemImpl_getFreePhysicalMemorySize
+Java_sun_management_OperatingSystemImpl_getFreePhysicalMemorySize0
(JNIEnv *env, jobject mbean)
{
#ifdef __APPLE__
@@ -333,7 +333,7 @@ Java_sun_management_OperatingSystemImpl_getFreePhysicalMemorySize
}
JNIEXPORT jlong JNICALL
-Java_sun_management_OperatingSystemImpl_getTotalPhysicalMemorySize
+Java_sun_management_OperatingSystemImpl_getTotalPhysicalMemorySize0
(JNIEnv *env, jobject mbean)
{
#ifdef _ALLBSD_SOURCE
@@ -358,7 +358,7 @@ Java_sun_management_OperatingSystemImpl_getTotalPhysicalMemorySize
JNIEXPORT jlong JNICALL
-Java_sun_management_OperatingSystemImpl_getOpenFileDescriptorCount
+Java_sun_management_OperatingSystemImpl_getOpenFileDescriptorCount0
(JNIEnv *env, jobject mbean)
{
#ifdef __APPLE__
@@ -438,7 +438,7 @@ Java_sun_management_OperatingSystemImpl_getOpenFileDescriptorCount
}
JNIEXPORT jlong JNICALL
-Java_sun_management_OperatingSystemImpl_getMaxFileDescriptorCount
+Java_sun_management_OperatingSystemImpl_getMaxFileDescriptorCount0
(JNIEnv *env, jobject mbean)
{
struct rlimit rlp;
diff --git a/jdk/src/solaris/native/sun/management/SolarisOperatingSystem.c b/jdk/src/solaris/native/sun/management/SolarisOperatingSystem.c
index a8136f1ac63..f89da99aa39 100644
--- a/jdk/src/solaris/native/sun/management/SolarisOperatingSystem.c
+++ b/jdk/src/solaris/native/sun/management/SolarisOperatingSystem.c
@@ -226,14 +226,14 @@ double get_process_load(void) {
}
JNIEXPORT jdouble JNICALL
-Java_sun_management_OperatingSystemImpl_getSystemCpuLoad
+Java_sun_management_OperatingSystemImpl_getSystemCpuLoad0
(JNIEnv *env, jobject dummy)
{
return get_cpu_load(-1);
}
JNIEXPORT jdouble JNICALL
-Java_sun_management_OperatingSystemImpl_getProcessCpuLoad
+Java_sun_management_OperatingSystemImpl_getProcessCpuLoad0
(JNIEnv *env, jobject dummy)
{
return get_process_load();
diff --git a/jdk/src/windows/classes/sun/management/OperatingSystemImpl.java b/jdk/src/windows/classes/sun/management/OperatingSystemImpl.java
index ca766448177..f24ef7d9653 100644
--- a/jdk/src/windows/classes/sun/management/OperatingSystemImpl.java
+++ b/jdk/src/windows/classes/sun/management/OperatingSystemImpl.java
@@ -50,18 +50,48 @@ class OperatingSystemImpl extends BaseOperatingSystemImpl
return getCommittedVirtualMemorySize0();
}
}
- private native long getCommittedVirtualMemorySize0();
- public native long getTotalSwapSpaceSize();
- public native long getFreeSwapSpaceSize();
- public native long getProcessCpuTime();
- public native long getFreePhysicalMemorySize();
- public native long getTotalPhysicalMemorySize();
- public native double getSystemCpuLoad();
- public native double getProcessCpuLoad();
+ public long getTotalSwapSpaceSize() {
+ return getTotalSwapSpaceSize0();
+ }
+
+ public long getFreeSwapSpaceSize() {
+ return getFreeSwapSpaceSize0();
+ }
+
+ public long getProcessCpuTime() {
+ return getProcessCpuTime0();
+ }
+
+ public long getFreePhysicalMemorySize() {
+ return getFreePhysicalMemorySize0();
+ }
+
+ public long getTotalPhysicalMemorySize() {
+ return getTotalPhysicalMemorySize0();
+ }
+
+ public double getSystemCpuLoad() {
+ return getSystemCpuLoad0();
+ }
+
+ public double getProcessCpuLoad() {
+ return getProcessCpuLoad0();
+ }
+
+ /* native methods */
+ private native long getCommittedVirtualMemorySize0();
+ private native long getFreePhysicalMemorySize0();
+ private native long getFreeSwapSpaceSize0();
+ private native double getProcessCpuLoad0();
+ private native long getProcessCpuTime0();
+ private native double getSystemCpuLoad0();
+ private native long getTotalPhysicalMemorySize0();
+ private native long getTotalSwapSpaceSize0();
static {
- initialize();
+ initialize0();
}
- private static native void initialize();
+
+ private static native void initialize0();
}
diff --git a/jdk/src/windows/native/sun/management/OperatingSystemImpl.c b/jdk/src/windows/native/sun/management/OperatingSystemImpl.c
index c684e2bd81c..260f9f695b4 100644
--- a/jdk/src/windows/native/sun/management/OperatingSystemImpl.c
+++ b/jdk/src/windows/native/sun/management/OperatingSystemImpl.c
@@ -77,7 +77,7 @@ static HANDLE main_process;
int perfiInit(void);
JNIEXPORT void JNICALL
-Java_sun_management_OperatingSystemImpl_initialize
+Java_sun_management_OperatingSystemImpl_initialize0
(JNIEnv *env, jclass cls)
{
main_process = GetCurrentProcess();
@@ -97,7 +97,7 @@ Java_sun_management_OperatingSystemImpl_getCommittedVirtualMemorySize0
}
JNIEXPORT jlong JNICALL
-Java_sun_management_OperatingSystemImpl_getTotalSwapSpaceSize
+Java_sun_management_OperatingSystemImpl_getTotalSwapSpaceSize0
(JNIEnv *env, jobject mbean)
{
MEMORYSTATUSEX ms;
@@ -107,7 +107,7 @@ Java_sun_management_OperatingSystemImpl_getTotalSwapSpaceSize
}
JNIEXPORT jlong JNICALL
-Java_sun_management_OperatingSystemImpl_getFreeSwapSpaceSize
+Java_sun_management_OperatingSystemImpl_getFreeSwapSpaceSize0
(JNIEnv *env, jobject mbean)
{
MEMORYSTATUSEX ms;
@@ -117,7 +117,7 @@ Java_sun_management_OperatingSystemImpl_getFreeSwapSpaceSize
}
JNIEXPORT jlong JNICALL
-Java_sun_management_OperatingSystemImpl_getProcessCpuTime
+Java_sun_management_OperatingSystemImpl_getProcessCpuTime0
(JNIEnv *env, jobject mbean)
{
@@ -136,7 +136,7 @@ Java_sun_management_OperatingSystemImpl_getProcessCpuTime
}
JNIEXPORT jlong JNICALL
-Java_sun_management_OperatingSystemImpl_getFreePhysicalMemorySize
+Java_sun_management_OperatingSystemImpl_getFreePhysicalMemorySize0
(JNIEnv *env, jobject mbean)
{
MEMORYSTATUSEX ms;
@@ -146,7 +146,7 @@ Java_sun_management_OperatingSystemImpl_getFreePhysicalMemorySize
}
JNIEXPORT jlong JNICALL
-Java_sun_management_OperatingSystemImpl_getTotalPhysicalMemorySize
+Java_sun_management_OperatingSystemImpl_getTotalPhysicalMemorySize0
(JNIEnv *env, jobject mbean)
{
MEMORYSTATUSEX ms;
@@ -927,14 +927,14 @@ perfInit(void) {
}
JNIEXPORT jdouble JNICALL
-Java_sun_management_OperatingSystemImpl_getSystemCpuLoad
+Java_sun_management_OperatingSystemImpl_getSystemCpuLoad0
(JNIEnv *env, jobject dummy)
{
return perfGetCPULoad(-1);
}
JNIEXPORT jdouble JNICALL
-Java_sun_management_OperatingSystemImpl_getProcessCpuLoad
+Java_sun_management_OperatingSystemImpl_getProcessCpuLoad0
(JNIEnv *env, jobject dummy)
{
return perfGetProcessLoad();
From e6d68e6d66e162a3a29d0f70f17cdf7c18fefbc1 Mon Sep 17 00:00:00 2001
From: Dmitry Samersoff
Date: Tue, 28 Jan 2014 14:45:39 +0400
Subject: [PATCH 099/181] 7010732: SA_ALTROOT only works if running the SA
tools from their build directory
Fixed SA packaging scripts
Reviewed-by: sla, kevinw
---
hotspot/agent/make/mkinstall | 2 ++
hotspot/agent/make/saenv.sh | 19 ++++++++++---------
hotspot/agent/make/saenv64.sh | 21 ++++++++++++---------
3 files changed, 24 insertions(+), 18 deletions(-)
diff --git a/hotspot/agent/make/mkinstall b/hotspot/agent/make/mkinstall
index a9940005317..4277e54f1f6 100644
--- a/hotspot/agent/make/mkinstall
+++ b/hotspot/agent/make/mkinstall
@@ -27,7 +27,9 @@ jar -cvf $SA_NAME/sa.jar -C ../build/classes .
cp ../src/os/solaris/proc/amd64/libsaproc.so $SA_NAME/solaris/amd64
cp ../src/os/solaris/proc/sparc/libsaproc.so $SA_NAME/solaris/sparc
+cp ../src/os/solaris/proc/sparc/libsaproc_audit.so $SA_NAME/solaris/sparc
cp ../src/os/solaris/proc/sparcv9/libsaproc.so $SA_NAME/solaris/sparcv9
+cp ../src/os/solaris/proc/sparcv9/libsaproc_audit.so $SA_NAME/solaris/sparcv9
cp ../src/os/solaris/proc/i386/libsaproc.so $SA_NAME/solaris/i386
cp ../src/os/linux/i386/libsaproc.so $SA_NAME/linux/i386
cp ../src/os/linux/ia64/libsaproc.so $SA_NAME/linux/ia64
diff --git a/hotspot/agent/make/saenv.sh b/hotspot/agent/make/saenv.sh
index ab9a0a431c4..15fb0aca2b0 100644
--- a/hotspot/agent/make/saenv.sh
+++ b/hotspot/agent/make/saenv.sh
@@ -48,16 +48,17 @@ if [ "$OS" = "Linux" ]; then
CPU=i386
fi
else
- # configure audit helper library if SA_ALTROOT is set
- if [ -n "$SA_ALTROOT" ]; then
- LD_AUDIT_32=$STARTDIR/../src/os/solaris/proc/`uname -p`/libsaproc_audit.so
- export LD_AUDIT_32
- if [ ! -f $LD_AUDIT_32 ]; then
- echo "SA_ALTROOT is set and can't find libsaproc_audit.so."
- echo "Make sure to build it with 'make natives'."
- exit 1
- fi
+ # configure audit helper library for solaris
+ LD_AUDIT_32=$STARTDIR/../src/os/solaris/proc/`uname -p`/libsaproc_audit.so
+ if [ ! -f $LD_AUDIT_32 ]; then
+ LD_AUDIT_32=$STARTDIR/solaris/`uname -p`/libsaproc_audit.so
+ fi
+ if [ ! -f $LD_AUDIT_32 ]; then
+ echo "Can't find libsaproc_audit.so."
+ echo "Make sure to build it with 'make natives'."
+ exit 1
fi
+ export LD_AUDIT_32
SA_LIBPATH=$STARTDIR/../src/os/solaris/proc/`uname -p`:$STARTDIR/solaris/`uname -p`
OPTIONS="-Dsa.library.path=$SA_LIBPATH -Dsun.jvm.hotspot.debugger.useProcDebugger"
CPU=sparc
diff --git a/hotspot/agent/make/saenv64.sh b/hotspot/agent/make/saenv64.sh
index c00dc0d17c0..a68d34c99a2 100644
--- a/hotspot/agent/make/saenv64.sh
+++ b/hotspot/agent/make/saenv64.sh
@@ -43,16 +43,19 @@ else
fi
fi
-# configure audit helper library if SA_ALTROOT is set
-if [ -n "$SA_ALTROOT" ]; then
- LD_AUDIT_64=$STARTDIR/../src/os/solaris/proc/$CPU/libsaproc_audit.so
- export LD_AUDIT_64
- if [ ! -f $LD_AUDIT_64 ]; then
- echo "SA_ALTROOT is set and can't find libsaproc_audit.so."
- echo "Make sure to build it with 'make natives'."
- exit 1
- fi
+# configure audit helper library
+LD_AUDIT_64=$STARTDIR/../src/os/solaris/proc/$CPU/libsaproc_audit.so
+if [ ! -f $LD_AUDIT_64 ]; then
+ LD_AUDIT_64=$STARTDIR/solaris/$CPU/libsaproc_audit.so
fi
+
+if [ ! -f $LD_AUDIT_64 ]; then
+ echo "Can't find libsaproc_audit.so."
+ echo "Make sure to build it with 'make natives'."
+ exit 1
+fi
+
+export LD_AUDIT_64
SA_LIBPATH=$STARTDIR/../src/os/solaris/proc/$CPU:$STARTDIR/solaris/$CPU
OPTIONS="-Dsa.library.path=$SA_LIBPATH -Dsun.jvm.hotspot.debugger.useProcDebugger"
From 4d64b2ea8d2a81c7bbf40d95ad6a4fb7866857ef Mon Sep 17 00:00:00 2001
From: Magnus Ihse Bursie
Date: Tue, 28 Jan 2014 14:47:22 +0100
Subject: [PATCH 100/181] 8022411: Allow overriding of CXX and CC with absolute
path
Reviewed-by: erikj, tbell
---
common/autoconf/generated-configure.sh | 398 +++++++++++++++++--------
common/autoconf/toolchain.m4 | 72 +++--
2 files changed, 312 insertions(+), 158 deletions(-)
diff --git a/common/autoconf/generated-configure.sh b/common/autoconf/generated-configure.sh
index 43e26631193..cd5661ebeca 100644
--- a/common/autoconf/generated-configure.sh
+++ b/common/autoconf/generated-configure.sh
@@ -747,8 +747,8 @@ CXXFLAGS
CXX
ac_ct_PROPER_COMPILER_CXX
PROPER_COMPILER_CXX
-POTENTIAL_CXX
TOOLS_DIR_CXX
+POTENTIAL_CXX
OBJEXT
EXEEXT
ac_ct_CC
@@ -758,8 +758,8 @@ CFLAGS
CC
ac_ct_PROPER_COMPILER_CC
PROPER_COMPILER_CC
-POTENTIAL_CC
TOOLS_DIR_CC
+POTENTIAL_CC
BUILD_LD
BUILD_CXX
BUILD_CC
@@ -3865,7 +3865,7 @@ fi
#CUSTOM_AUTOCONF_INCLUDE
# Do not change or remove the following line, it is needed for consistency checks:
-DATE_WHEN_GENERATED=1389815815
+DATE_WHEN_GENERATED=1390907294
###############################################################################
#
@@ -7868,7 +7868,7 @@ $as_echo "$with_jvm_variants" >&6; }
fi
# Replace the commas with AND for use in the build directory name.
- ANDED_JVM_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/^,//' -e 's/,$//' -e 's/,/AND/'`
+ ANDED_JVM_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/^,//' -e 's/,$//' -e 's/,/AND/g'`
COUNT_VARIANTS=`$ECHO "$JVM_VARIANTS" | $SED -e 's/server,/1/' -e 's/client,/1/' -e 's/minimal1,/1/' -e 's/kernel,/1/' -e 's/zero,/1/' -e 's/zeroshark,/1/'`
if test "x$COUNT_VARIANTS" != "x,1"; then
BUILDING_MULTIPLE_JVM_VARIANTS=yes
@@ -19073,9 +19073,7 @@ $as_echo "$as_me: Downloading build dependency devkit from $with_builddeps_serve
# On Solaris, cc is preferred to gcc.
# Elsewhere, gcc is preferred to cc.
- if test "x$CC" != x; then
- COMPILER_CHECK_LIST="$CC"
- elif test "x$OPENJDK_TARGET_OS" = "xwindows"; then
+ if test "x$OPENJDK_TARGET_OS" = "xwindows"; then
COMPILER_CHECK_LIST="cl"
elif test "x$OPENJDK_TARGET_OS" = "xsolaris"; then
COMPILER_CHECK_LIST="cc gcc"
@@ -19085,66 +19083,16 @@ $as_echo "$as_me: Downloading build dependency devkit from $with_builddeps_serve
COMPILER_NAME=C
+ SEARCH_LIST="$COMPILER_CHECK_LIST"
- CC=
- # If TOOLS_DIR is set, check for all compiler names in there first
- # before checking the rest of the PATH.
- if test -n "$TOOLS_DIR"; then
- PATH_save="$PATH"
- PATH="$TOOLS_DIR"
- for ac_prog in $COMPILER_CHECK_LIST
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_TOOLS_DIR_CC+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $TOOLS_DIR_CC in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_TOOLS_DIR_CC="$TOOLS_DIR_CC" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_TOOLS_DIR_CC="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
+ if test "x$CC" != x; then
+ # User has supplied compiler name already, always let that override.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied compiler CC=$CC" >&5
+$as_echo "$as_me: Will use user supplied compiler CC=$CC" >&6;}
+ if test "x`basename $CC`" = "x$CC"; then
+ # A command without a complete path is provided, search $PATH.
- ;;
-esac
-fi
-TOOLS_DIR_CC=$ac_cv_path_TOOLS_DIR_CC
-if test -n "$TOOLS_DIR_CC"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TOOLS_DIR_CC" >&5
-$as_echo "$TOOLS_DIR_CC" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$TOOLS_DIR_CC" && break
-done
-
- CC=$TOOLS_DIR_CC
- PATH="$PATH_save"
- fi
-
- # AC_PATH_PROGS can't be run multiple times with the same variable,
- # so create a new name for this run.
- if test "x$CC" = x; then
- for ac_prog in $COMPILER_CHECK_LIST
+ for ac_prog in $CC
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -19189,10 +19137,126 @@ fi
test -n "$POTENTIAL_CC" && break
done
- CC=$POTENTIAL_CC
+ if test "x$POTENTIAL_CC" != x; then
+ CC=$POTENTIAL_CC
+ else
+ as_fn_error $? "User supplied compiler CC=$CC could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise it might already be a complete path
+ if test ! -x "$CC"; then
+ as_fn_error $? "User supplied compiler CC=$CC does not exist" "$LINENO" 5
+ fi
+ fi
+ else
+ # No user supplied value. Locate compiler ourselves
+ CC=
+ # If TOOLS_DIR is set, check for all compiler names in there first
+ # before checking the rest of the PATH.
+ if test -n "$TOOLS_DIR"; then
+ PATH_save="$PATH"
+ PATH="$TOOLS_DIR"
+ for ac_prog in $SEARCH_LIST
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_TOOLS_DIR_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $TOOLS_DIR_CC in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_TOOLS_DIR_CC="$TOOLS_DIR_CC" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_TOOLS_DIR_CC="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
fi
+done
+ done
+IFS=$as_save_IFS
- if test "x$CC" = x; then
+ ;;
+esac
+fi
+TOOLS_DIR_CC=$ac_cv_path_TOOLS_DIR_CC
+if test -n "$TOOLS_DIR_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TOOLS_DIR_CC" >&5
+$as_echo "$TOOLS_DIR_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$TOOLS_DIR_CC" && break
+done
+
+ CC=$TOOLS_DIR_CC
+ PATH="$PATH_save"
+ fi
+
+ # AC_PATH_PROGS can't be run multiple times with the same variable,
+ # so create a new name for this run.
+ if test "x$CC" = x; then
+ for ac_prog in $SEARCH_LIST
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_POTENTIAL_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $POTENTIAL_CC in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_POTENTIAL_CC="$POTENTIAL_CC" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_POTENTIAL_CC="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+POTENTIAL_CC=$ac_cv_path_POTENTIAL_CC
+if test -n "$POTENTIAL_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $POTENTIAL_CC" >&5
+$as_echo "$POTENTIAL_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$POTENTIAL_CC" && break
+done
+
+ CC=$POTENTIAL_CC
+ fi
+
+ if test "x$CC" = x; then
# Print a helpful message on how to acquire the necessary build dependency.
# devkit is the help tag: freetype, cups, pulse, alsa etc
@@ -19225,9 +19289,12 @@ done
fi
fi
- as_fn_error $? "Could not find a $COMPILER_NAME compiler. $HELP_MSG" "$LINENO" 5
+ as_fn_error $? "Could not find a $COMPILER_NAME compiler. $HELP_MSG" "$LINENO" 5
+ fi
fi
+ # Now we have a compiler binary in CC. Make sure it's okay.
+
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
# First separate the path from the arguments. This will split at the first
@@ -20652,9 +20719,7 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
### Locate C++ compiler (CXX)
- if test "x$CXX" != x; then
- COMPILER_CHECK_LIST="$CXX"
- elif test "x$OPENJDK_TARGET_OS" = "xwindows"; then
+ if test "x$OPENJDK_TARGET_OS" = "xwindows"; then
COMPILER_CHECK_LIST="cl"
elif test "x$OPENJDK_TARGET_OS" = "xsolaris"; then
COMPILER_CHECK_LIST="CC g++"
@@ -20664,66 +20729,16 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
COMPILER_NAME=C++
+ SEARCH_LIST="$COMPILER_CHECK_LIST"
- CXX=
- # If TOOLS_DIR is set, check for all compiler names in there first
- # before checking the rest of the PATH.
- if test -n "$TOOLS_DIR"; then
- PATH_save="$PATH"
- PATH="$TOOLS_DIR"
- for ac_prog in $COMPILER_CHECK_LIST
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_TOOLS_DIR_CXX+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $TOOLS_DIR_CXX in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_TOOLS_DIR_CXX="$TOOLS_DIR_CXX" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_TOOLS_DIR_CXX="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
+ if test "x$CXX" != x; then
+ # User has supplied compiler name already, always let that override.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied compiler CXX=$CXX" >&5
+$as_echo "$as_me: Will use user supplied compiler CXX=$CXX" >&6;}
+ if test "x`basename $CXX`" = "x$CXX"; then
+ # A command without a complete path is provided, search $PATH.
- ;;
-esac
-fi
-TOOLS_DIR_CXX=$ac_cv_path_TOOLS_DIR_CXX
-if test -n "$TOOLS_DIR_CXX"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TOOLS_DIR_CXX" >&5
-$as_echo "$TOOLS_DIR_CXX" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$TOOLS_DIR_CXX" && break
-done
-
- CXX=$TOOLS_DIR_CXX
- PATH="$PATH_save"
- fi
-
- # AC_PATH_PROGS can't be run multiple times with the same variable,
- # so create a new name for this run.
- if test "x$CXX" = x; then
- for ac_prog in $COMPILER_CHECK_LIST
+ for ac_prog in $CXX
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -20768,10 +20783,126 @@ fi
test -n "$POTENTIAL_CXX" && break
done
- CXX=$POTENTIAL_CXX
+ if test "x$POTENTIAL_CXX" != x; then
+ CXX=$POTENTIAL_CXX
+ else
+ as_fn_error $? "User supplied compiler CXX=$CXX could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise it might already be a complete path
+ if test ! -x "$CXX"; then
+ as_fn_error $? "User supplied compiler CXX=$CXX does not exist" "$LINENO" 5
+ fi
+ fi
+ else
+ # No user supplied value. Locate compiler ourselves
+ CXX=
+ # If TOOLS_DIR is set, check for all compiler names in there first
+ # before checking the rest of the PATH.
+ if test -n "$TOOLS_DIR"; then
+ PATH_save="$PATH"
+ PATH="$TOOLS_DIR"
+ for ac_prog in $SEARCH_LIST
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_TOOLS_DIR_CXX+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $TOOLS_DIR_CXX in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_TOOLS_DIR_CXX="$TOOLS_DIR_CXX" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_TOOLS_DIR_CXX="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
fi
+done
+ done
+IFS=$as_save_IFS
- if test "x$CXX" = x; then
+ ;;
+esac
+fi
+TOOLS_DIR_CXX=$ac_cv_path_TOOLS_DIR_CXX
+if test -n "$TOOLS_DIR_CXX"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TOOLS_DIR_CXX" >&5
+$as_echo "$TOOLS_DIR_CXX" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$TOOLS_DIR_CXX" && break
+done
+
+ CXX=$TOOLS_DIR_CXX
+ PATH="$PATH_save"
+ fi
+
+ # AC_PATH_PROGS can't be run multiple times with the same variable,
+ # so create a new name for this run.
+ if test "x$CXX" = x; then
+ for ac_prog in $SEARCH_LIST
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_POTENTIAL_CXX+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $POTENTIAL_CXX in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_POTENTIAL_CXX="$POTENTIAL_CXX" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_POTENTIAL_CXX="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+POTENTIAL_CXX=$ac_cv_path_POTENTIAL_CXX
+if test -n "$POTENTIAL_CXX"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $POTENTIAL_CXX" >&5
+$as_echo "$POTENTIAL_CXX" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$POTENTIAL_CXX" && break
+done
+
+ CXX=$POTENTIAL_CXX
+ fi
+
+ if test "x$CXX" = x; then
# Print a helpful message on how to acquire the necessary build dependency.
# devkit is the help tag: freetype, cups, pulse, alsa etc
@@ -20804,9 +20935,12 @@ done
fi
fi
- as_fn_error $? "Could not find a $COMPILER_NAME compiler. $HELP_MSG" "$LINENO" 5
+ as_fn_error $? "Could not find a $COMPILER_NAME compiler. $HELP_MSG" "$LINENO" 5
+ fi
fi
+ # Now we have a compiler binary in CXX. Make sure it's okay.
+
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
# First separate the path from the arguments. This will split at the first
diff --git a/common/autoconf/toolchain.m4 b/common/autoconf/toolchain.m4
index 84793969b92..3bd9e909152 100644
--- a/common/autoconf/toolchain.m4
+++ b/common/autoconf/toolchain.m4
@@ -113,29 +113,53 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_SYSROOT_AND_OUT_OPTIONS],
AC_DEFUN([TOOLCHAIN_FIND_COMPILER],
[
COMPILER_NAME=$2
+ SEARCH_LIST="$3"
- $1=
- # If TOOLS_DIR is set, check for all compiler names in there first
- # before checking the rest of the PATH.
- if test -n "$TOOLS_DIR"; then
- PATH_save="$PATH"
- PATH="$TOOLS_DIR"
- AC_PATH_PROGS(TOOLS_DIR_$1, $3)
- $1=$TOOLS_DIR_$1
- PATH="$PATH_save"
+ if test "x[$]$1" != x; then
+ # User has supplied compiler name already, always let that override.
+ AC_MSG_NOTICE([Will use user supplied compiler $1=[$]$1])
+ if test "x`basename [$]$1`" = "x[$]$1"; then
+ # A command without a complete path is provided, search $PATH.
+
+ AC_PATH_PROGS(POTENTIAL_$1, [$]$1)
+ if test "x$POTENTIAL_$1" != x; then
+ $1=$POTENTIAL_$1
+ else
+ AC_MSG_ERROR([User supplied compiler $1=[$]$1 could not be found])
+ fi
+ else
+ # Otherwise it might already be a complete path
+ if test ! -x "[$]$1"; then
+ AC_MSG_ERROR([User supplied compiler $1=[$]$1 does not exist])
+ fi
+ fi
+ else
+ # No user supplied value. Locate compiler ourselves
+ $1=
+ # If TOOLS_DIR is set, check for all compiler names in there first
+ # before checking the rest of the PATH.
+ if test -n "$TOOLS_DIR"; then
+ PATH_save="$PATH"
+ PATH="$TOOLS_DIR"
+ AC_PATH_PROGS(TOOLS_DIR_$1, $SEARCH_LIST)
+ $1=$TOOLS_DIR_$1
+ PATH="$PATH_save"
+ fi
+
+ # AC_PATH_PROGS can't be run multiple times with the same variable,
+ # so create a new name for this run.
+ if test "x[$]$1" = x; then
+ AC_PATH_PROGS(POTENTIAL_$1, $SEARCH_LIST)
+ $1=$POTENTIAL_$1
+ fi
+
+ if test "x[$]$1" = x; then
+ HELP_MSG_MISSING_DEPENDENCY([devkit])
+ AC_MSG_ERROR([Could not find a $COMPILER_NAME compiler. $HELP_MSG])
+ fi
fi
- # AC_PATH_PROGS can't be run multiple times with the same variable,
- # so create a new name for this run.
- if test "x[$]$1" = x; then
- AC_PATH_PROGS(POTENTIAL_$1, $3)
- $1=$POTENTIAL_$1
- fi
-
- if test "x[$]$1" = x; then
- HELP_MSG_MISSING_DEPENDENCY([devkit])
- AC_MSG_ERROR([Could not find a $COMPILER_NAME compiler. $HELP_MSG])
- fi
+ # Now we have a compiler binary in $1. Make sure it's okay.
BASIC_FIXUP_EXECUTABLE($1)
AC_MSG_CHECKING([resolved symbolic links for $1])
TEST_COMPILER="[$]$1"
@@ -248,9 +272,7 @@ AC_DEFUN([TOOLCHAIN_SETUP_PATHS],
# On Solaris, cc is preferred to gcc.
# Elsewhere, gcc is preferred to cc.
- if test "x$CC" != x; then
- COMPILER_CHECK_LIST="$CC"
- elif test "x$OPENJDK_TARGET_OS" = "xwindows"; then
+ if test "x$OPENJDK_TARGET_OS" = "xwindows"; then
COMPILER_CHECK_LIST="cl"
elif test "x$OPENJDK_TARGET_OS" = "xsolaris"; then
COMPILER_CHECK_LIST="cc gcc"
@@ -264,9 +286,7 @@ AC_DEFUN([TOOLCHAIN_SETUP_PATHS],
### Locate C++ compiler (CXX)
- if test "x$CXX" != x; then
- COMPILER_CHECK_LIST="$CXX"
- elif test "x$OPENJDK_TARGET_OS" = "xwindows"; then
+ if test "x$OPENJDK_TARGET_OS" = "xwindows"; then
COMPILER_CHECK_LIST="cl"
elif test "x$OPENJDK_TARGET_OS" = "xsolaris"; then
COMPILER_CHECK_LIST="CC g++"
From 673e8b47c0e524ddd0a14ea5dd0a1d38fd4ca132 Mon Sep 17 00:00:00 2001
From: Zhengyu Gu
Date: Tue, 28 Jan 2014 08:55:00 -0500
Subject: [PATCH 101/181] 8032827: NMT: missing virtual memory tagging in
os::workaround_expand_exec_shield_cs_limit()
Fixed missing virtual memory type tagging in os::workaround_expand_exec_shield_cs_limit() function
Reviewed-by: hseigel, coleenp
---
hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp b/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp
index 195982529ef..a7fa497c871 100644
--- a/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp
+++ b/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp
@@ -49,6 +49,7 @@
#include "runtime/stubRoutines.hpp"
#include "runtime/thread.inline.hpp"
#include "runtime/timer.hpp"
+#include "services/memTracker.hpp"
#include "utilities/events.hpp"
#include "utilities/vmError.hpp"
@@ -906,6 +907,9 @@ void os::workaround_expand_exec_shield_cs_limit() {
if ( (codebuf == NULL) || (!os::commit_memory(codebuf, page_size, true)) ) {
return; // No matter, we tried, best effort.
}
+
+ MemTracker::record_virtual_memory_type((address)codebuf, mtInternal);
+
if (PrintMiscellaneous && (Verbose || WizardMode)) {
tty->print_cr("[CS limit NX emulation work-around, exec code at: %p]", codebuf);
}
From ad66e1ea2c330597cb292c90623d01407174c929 Mon Sep 17 00:00:00 2001
From: Joe Darcy
Date: Tue, 28 Jan 2014 09:42:05 -0800
Subject: [PATCH 102/181] 8032733: Fix cast lint warnings in client libraries
8032734: Add cast lint warning to build of jdk repository
Reviewed-by: alanb, bae, tbell, wetmore
---
jdk/make/Setup.gmk | 2 +-
.../classes/apple/security/KeychainStore.java | 10 ++---
.../macosx/classes/sun/font/CFontManager.java | 6 +--
.../macosx/classes/sun/java2d/CRenderer.java | 4 +-
.../classes/sun/lwawt/macosx/CPrinterJob.java | 4 +-
jdk/src/share/classes/com/oracle/net/Sdp.java | 4 +-
.../imageio/plugins/bmp/BMPImageReader.java | 11 ++---
.../imageio/plugins/bmp/BMPImageWriter.java | 4 +-
.../sun/imageio/plugins/common/ImageUtil.java | 16 +++----
.../plugins/common/LZWStringTable.java | 4 +-
.../imageio/plugins/gif/GIFImageMetadata.java | 4 +-
.../plugins/jpeg/DHTMarkerSegment.java | 6 +--
.../plugins/jpeg/DQTMarkerSegment.java | 4 +-
.../plugins/jpeg/JFIFMarkerSegment.java | 4 +-
.../imageio/plugins/jpeg/JPEGImageWriter.java | 4 +-
.../imageio/plugins/jpeg/JPEGMetadata.java | 8 ++--
.../imageio/plugins/jpeg/MarkerSegment.java | 4 +-
.../plugins/jpeg/SOFMarkerSegment.java | 4 +-
.../plugins/jpeg/SOSMarkerSegment.java | 5 +--
.../sun/imageio/plugins/png/PNGMetadata.java | 35 +++++++--------
.../com/sun/java/browser/dom/DOMService.java | 2 +-
.../MBeanServerFileAccessController.java | 4 +-
.../sun/media/sound/AbstractMidiDevice.java | 8 ++--
.../com/sun/media/sound/AiffFileReader.java | 4 +-
.../com/sun/media/sound/AiffFileWriter.java | 8 ++--
.../com/sun/media/sound/AlawCodec.java | 10 ++---
.../com/sun/media/sound/AuFileWriter.java | 8 ++--
.../com/sun/media/sound/DLSSoundbank.java | 4 +-
.../sun/media/sound/DirectAudioDevice.java | 6 +--
.../com/sun/media/sound/PortMixer.java | 4 +-
.../sun/media/sound/RealTimeSequencer.java | 4 +-
.../com/sun/media/sound/SF2Soundbank.java | 8 ++--
.../com/sun/media/sound/SoftInstrument.java | 4 +-
.../media/sound/StandardMidiFileWriter.java | 4 +-
.../classes/com/sun/media/sound/Toolkit.java | 4 +-
.../com/sun/media/sound/UlawCodec.java | 8 ++--
.../com/sun/media/sound/WaveFileWriter.java | 10 ++---
.../expr/ExpressionParserTokenManager.java | 4 +-
.../share/classes/java/awt/AWTKeyStroke.java | 12 ++---
.../share/classes/java/awt/BasicStroke.java | 6 +--
.../share/classes/java/awt/CardLayout.java | 16 +++----
.../java/awt/DefaultKeyboardFocusManager.java | 6 +--
.../java/awt/GradientPaintContext.java | 6 +--
.../java/awt/KeyboardFocusManager.java | 8 ++--
.../awt/MultipleGradientPaintContext.java | 6 +--
.../java/awt/ScrollPaneAdjustable.java | 7 ++-
.../classes/java/awt/SequencedEvent.java | 6 +--
.../share/classes/java/awt/SystemTray.java | 4 +-
.../java/awt/datatransfer/DataFlavor.java | 5 +--
.../awt/datatransfer/StringSelection.java | 4 +-
.../java/awt/image/ComponentColorModel.java | 6 +--
.../java/awt/image/ComponentSampleModel.java | 12 ++---
.../classes/java/awt/image/DataBuffer.java | 6 +--
.../java/awt/image/DataBufferByte.java | 8 ++--
.../java/awt/image/DataBufferDouble.java | 8 ++--
.../java/awt/image/DataBufferFloat.java | 8 ++--
.../classes/java/awt/image/DataBufferInt.java | 10 ++---
.../java/awt/image/DataBufferShort.java | 8 ++--
.../java/awt/image/DataBufferUShort.java | 12 ++---
.../java/awt/image/IndexColorModel.java | 4 +-
.../image/MultiPixelPackedSampleModel.java | 4 +-
.../java/awt/image/PackedColorModel.java | 4 +-
.../classes/java/awt/image/RescaleOp.java | 6 +--
.../image/SinglePixelPackedSampleModel.java | 10 ++---
.../accessibility/AccessibleRelationSet.java | 12 +++--
.../accessibility/AccessibleStateSet.java | 9 ++--
.../share/classes/javax/imageio/IIOParam.java | 6 +--
.../share/classes/javax/imageio/ImageIO.java | 4 +-
.../classes/javax/imageio/ImageReadParam.java | 6 +--
.../classes/javax/imageio/ImageReader.java | 44 +++++++++----------
.../javax/imageio/ImageTypeSpecifier.java | 16 +++----
.../javax/imageio/ImageWriteParam.java | 4 +-
.../classes/javax/imageio/ImageWriter.java | 24 +++++-----
.../javax/imageio/metadata/IIOMetadata.java | 10 ++---
.../metadata/IIOMetadataFormatImpl.java | 6 +--
.../plugins/jpeg/JPEGImageReadParam.java | 14 +++---
.../plugins/jpeg/JPEGImageWriteParam.java | 18 ++++----
.../javax/imageio/spi/ImageReaderSpi.java | 8 ++--
.../imageio/spi/ImageReaderWriterSpi.java | 26 +++++------
.../javax/imageio/spi/ImageWriterSpi.java | 8 ++--
.../management/remote/JMXServiceURL.java | 4 +-
.../share/classes/javax/print/DocFlavor.java | 4 +-
.../print/attribute/HashAttributeSet.java | 4 +-
.../print/attribute/standard/Compression.java | 4 +-
.../print/attribute/standard/Finishings.java | 4 +-
.../print/attribute/standard/JobSheets.java | 4 +-
.../attribute/standard/JobStateReason.java | 4 +-
.../attribute/standard/JobStateReasons.java | 4 +-
.../print/attribute/standard/MediaName.java | 4 +-
.../attribute/standard/MediaSizeName.java | 4 +-
.../print/attribute/standard/MediaTray.java | 4 +-
.../standard/MultipleDocumentHandling.java | 4 +-
.../standard/PDLOverrideSupported.java | 4 +-
.../attribute/standard/PrintQuality.java | 4 +-
.../standard/PrinterStateReason.java | 4 +-
.../javax/sound/midi/MidiFileFormat.java | 4 +-
.../classes/javax/sound/midi/MidiSystem.java | 4 +-
.../classes/javax/sound/midi/Sequence.java | 6 +--
.../javax/sound/sampled/AudioFileFormat.java | 4 +-
.../javax/sound/sampled/AudioFormat.java | 4 +-
.../javax/sound/sampled/AudioSystem.java | 5 +--
.../javax/swing/MenuSelectionManager.java | 8 ++--
.../jcp/xml/dsig/internal/dom/DOMPGPData.java | 10 ++---
.../xml/dsig/internal/dom/DOMReference.java | 6 +--
.../dsig/internal/dom/DOMXMLSignature.java | 2 +-
.../sun/applet/AppletMessageHandler.java | 12 ++---
.../share/classes/sun/applet/AppletPanel.java | 6 +--
.../share/classes/sun/applet/AppletProps.java | 8 ++--
jdk/src/share/classes/sun/applet/Main.java | 2 +-
.../share/classes/sun/audio/AudioStream.java | 4 +-
.../classes/sun/awt/FontConfiguration.java | 10 ++---
.../share/classes/sun/awt/FontDescriptor.java | 4 +-
jdk/src/share/classes/sun/awt/IconInfo.java | 4 +-
.../share/classes/sun/awt/PlatformFont.java | 4 +-
.../datatransfer/ClipboardTransferable.java | 2 +-
.../sun/awt/image/ByteBandedRaster.java | 4 +-
.../sun/awt/image/ByteComponentRaster.java | 4 +-
.../sun/awt/image/ByteInterleavedRaster.java | 4 +-
.../sun/awt/image/IntegerComponentRaster.java | 4 +-
.../awt/image/IntegerInterleavedRaster.java | 4 +-
.../sun/awt/image/ShortBandedRaster.java | 4 +-
.../sun/awt/image/ShortComponentRaster.java | 8 ++--
.../sun/awt/image/ShortInterleavedRaster.java | 8 ++--
.../sun/awt/image/VSyncedBSManager.java | 4 +-
.../share/classes/sun/font/CompositeFont.java | 4 +-
.../share/classes/sun/font/Decoration.java | 4 +-
.../sun/font/ExtendedTextSourceLabel.java | 2 +-
.../classes/sun/font/FileFontStrike.java | 6 +--
.../classes/sun/font/FontLineMetrics.java | 2 +-
.../classes/sun/font/StandardGlyphVector.java | 10 ++---
.../share/classes/sun/font/StrikeCache.java | 2 +-
.../classes/sun/font/SunFontManager.java | 16 +++----
.../share/classes/sun/font/TrueTypeFont.java | 6 +--
jdk/src/share/classes/sun/font/Underline.java | 4 +-
.../share/classes/sun/java2d/Disposer.java | 4 +-
.../sun/java2d/SunGraphicsEnvironment.java | 4 +-
.../classes/sun/java2d/cmm/CMSManager.java | 4 +-
.../classes/sun/java2d/loops/ProcessPath.java | 6 +--
.../sun/java2d/opengl/OGLSurfaceData.java | 10 ++---
.../sun/java2d/opengl/OGLUtilities.java | 6 +--
.../java2d/pisces/PiscesRenderingEngine.java | 4 +-
.../perfdata/monitor/PerfDataBufferImpl.java | 4 +-
.../share/classes/sun/print/PSPrinterJob.java | 4 +-
.../classes/sun/print/RasterPrinterJob.java | 25 ++++-------
.../classes/sun/tools/javac/SourceClass.java | 4 +-
.../sun/tools/jconsole/ProxyClient.java | 6 +--
.../classes/sun/tools/jconsole/ThreadTab.java | 4 +-
.../jconsole/inspector/XOpenTypeViewer.java | 4 +-
.../jconsole/inspector/XPlottingViewer.java | 4 +-
.../sun/tools/tree/ConvertExpression.java | 4 +-
.../solaris/classes/sun/awt/UNIXToolkit.java | 4 +-
.../classes/sun/awt/X11/InfoWindow.java | 4 +-
.../sun/awt/X11/MotifDnDConstants.java | 6 +--
.../awt/X11/MotifDnDDragSourceProtocol.java | 4 +-
.../awt/X11/MotifDnDDropTargetProtocol.java | 10 ++---
.../classes/sun/awt/X11/XAWTFormatter.java | 4 +-
.../solaris/classes/sun/awt/X11/XAtom.java | 4 +-
.../classes/sun/awt/X11/XBaseMenuWindow.java | 4 +-
.../classes/sun/awt/X11/XBaseWindow.java | 6 +--
.../classes/sun/awt/X11/XComponentPeer.java | 2 +-
.../classes/sun/awt/X11/XContentWindow.java | 4 +-
.../classes/sun/awt/X11/XDecoratedPeer.java | 20 ++++-----
.../sun/awt/X11/XDnDDragSourceProtocol.java | 10 ++---
.../sun/awt/X11/XDnDDropTargetProtocol.java | 8 ++--
.../sun/awt/X11/XDragSourceContextPeer.java | 6 +--
.../awt/X11/XDropTargetEventProcessor.java | 8 ++--
.../sun/awt/X11/XDropTargetRegistry.java | 14 +++---
.../classes/sun/awt/X11/XEmbedHelper.java | 4 +-
.../sun/awt/X11/XEmbedServerTester.java | 2 +-
.../classes/sun/awt/X11/XFileDialogPeer.java | 4 +-
.../sun/awt/X11/XGlobalCursorManager.java | 6 +--
.../classes/sun/awt/X11/XIconWindow.java | 8 ++--
.../classes/sun/awt/X11/XInputMethod.java | 4 +-
.../classes/sun/awt/X11/XMenuBarPeer.java | 4 +-
.../classes/sun/awt/X11/XMenuWindow.java | 4 +-
.../classes/sun/awt/X11/XNETProtocol.java | 6 +--
.../classes/sun/awt/X11/XPopupMenuPeer.java | 4 +-
.../classes/sun/awt/X11/XTextAreaPeer.java | 4 +-
.../solaris/classes/sun/awt/X11/XToolkit.java | 6 +--
.../solaris/classes/sun/awt/X11/XWindow.java | 22 +++++-----
.../classes/sun/awt/X11/XWindowPeer.java | 16 +++----
.../classes/sun/awt/X11FontManager.java | 2 +-
.../sun/awt/X11GraphicsEnvironment.java | 4 +-
.../solaris/classes/sun/font/NativeFont.java | 3 +-
.../classes/sun/font/XRGlyphCacheEntry.java | 6 +--
.../sun/java2d/x11/X11SurfaceData.java | 9 ++--
.../classes/sun/java2d/xr/XRDrawLine.java | 12 +++--
.../classes/sun/java2d/xr/XRPMBlitLoops.java | 3 +-
.../classes/sun/java2d/xr/XRPaints.java | 6 +--
.../classes/sun/print/AttributeClass.java | 4 +-
.../classes/sun/print/CUPSPrinter.java | 6 +--
.../classes/sun/print/IPPPrintService.java | 10 ++---
.../classes/sun/print/UnixPrintJob.java | 5 +--
.../sun/print/UnixPrintServiceLookup.java | 14 +++---
.../classes/sun/awt/Win32GraphicsDevice.java | 4 +-
.../sun/awt/windows/WPathGraphics.java | 4 +-
.../classes/sun/io/Win32ErrorMode.java | 4 +-
.../classes/sun/print/Win32PrintJob.java | 13 +++---
.../classes/sun/print/Win32PrintService.java | 5 +--
199 files changed, 654 insertions(+), 692 deletions(-)
diff --git a/jdk/make/Setup.gmk b/jdk/make/Setup.gmk
index 7095e6926f4..fd42e76142a 100644
--- a/jdk/make/Setup.gmk
+++ b/jdk/make/Setup.gmk
@@ -27,7 +27,7 @@ DISABLE_WARNINGS := -Xlint:all,-deprecation,-unchecked,-rawtypes,-cast,-serial,-
# To build with all warnings enabled, do the following:
# make JAVAC_WARNINGS="-Xlint:all -Xmaxwarns 10000"
-JAVAC_WARNINGS := -Xlint:-unchecked,-deprecation,-overrides,auxiliaryclass,classfile,dep-ann,divzero,empty,overloads,static,try,varargs -Werror
+JAVAC_WARNINGS := -Xlint:-unchecked,-deprecation,-overrides,auxiliaryclass,cast,classfile,dep-ann,divzero,empty,overloads,static,try,varargs -Werror
# Any java code executed during a JDK build to build other parts of the JDK must be
# executed by the bootstrap JDK (probably with -Xbootclasspath/p: ) and for this
diff --git a/jdk/src/macosx/classes/apple/security/KeychainStore.java b/jdk/src/macosx/classes/apple/security/KeychainStore.java
index 2016c4811ab..8df45d7bea7 100644
--- a/jdk/src/macosx/classes/apple/security/KeychainStore.java
+++ b/jdk/src/macosx/classes/apple/security/KeychainStore.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -248,7 +248,7 @@ public final class KeychainStore extends KeyStoreSpi {
if (((KeyEntry)entry).chain == null) {
return null;
} else {
- return (Certificate[])((KeyEntry)entry).chain.clone();
+ return ((KeyEntry)entry).chain.clone();
}
} else {
return null;
@@ -365,7 +365,7 @@ public final class KeychainStore extends KeyStoreSpi {
throw new KeyStoreException("Certificate chain does not validate");
}
- entry.chain = (Certificate[])chain.clone();
+ entry.chain = chain.clone();
entry.chainRefs = new long[entry.chain.length];
}
@@ -429,7 +429,7 @@ public final class KeychainStore extends KeyStoreSpi {
if ((chain != null) &&
(chain.length != 0)) {
- entry.chain = (Certificate[])chain.clone();
+ entry.chain = chain.clone();
entry.chainRefs = new long[entry.chain.length];
}
@@ -1122,7 +1122,7 @@ public final class KeychainStore extends KeyStoreSpi {
throw uke;
}
- return ((byte[])key);
+ return key;
}
diff --git a/jdk/src/macosx/classes/sun/font/CFontManager.java b/jdk/src/macosx/classes/sun/font/CFontManager.java
index e3e216e7a33..a5f36154d64 100644
--- a/jdk/src/macosx/classes/sun/font/CFontManager.java
+++ b/jdk/src/macosx/classes/sun/font/CFontManager.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -76,7 +76,7 @@ public class CFontManager extends SunFontManager {
// This is a way to register any kind of Font2D, not just files and composites.
public static Font2D[] getGenericFonts() {
- return (Font2D[])genericFonts.values().toArray(new Font2D[0]);
+ return genericFonts.values().toArray(new Font2D[0]);
}
public Font2D registerGenericFont(Font2D f)
@@ -117,7 +117,7 @@ public class CFontManager extends SunFontManager {
}
return f;
} else {
- return (Font2D)genericFonts.get(fontName);
+ return genericFonts.get(fontName);
}
}
diff --git a/jdk/src/macosx/classes/sun/java2d/CRenderer.java b/jdk/src/macosx/classes/sun/java2d/CRenderer.java
index e26cdce6e69..b5570f6ce93 100644
--- a/jdk/src/macosx/classes/sun/java2d/CRenderer.java
+++ b/jdk/src/macosx/classes/sun/java2d/CRenderer.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -457,7 +457,7 @@ public class CRenderer implements PixelDrawPipe, PixelFillPipe, ShapeDrawPipe, D
protected boolean blitImage(SunGraphics2D sg2d, Image img, boolean fliph, boolean flipv, int sx, int sy, int sw, int sh, int dx, int dy, int dw, int dh, Color bgColor) {
CPrinterSurfaceData surfaceData = (CPrinterSurfaceData)sg2d.getSurfaceData();
- OSXOffScreenSurfaceData imgSurfaceData = (OSXOffScreenSurfaceData) OSXOffScreenSurfaceData.createNewSurface((BufferedImage)img);
+ OSXOffScreenSurfaceData imgSurfaceData = OSXOffScreenSurfaceData.createNewSurface((BufferedImage)img);
surfaceData.blitImage(this, sg2d, imgSurfaceData, fliph, flipv, sx, sy, sw, sh, dx, dy, dw, dh, bgColor);
return true;
}
diff --git a/jdk/src/macosx/classes/sun/lwawt/macosx/CPrinterJob.java b/jdk/src/macosx/classes/sun/lwawt/macosx/CPrinterJob.java
index 0743c00ae63..80257a44c6c 100644
--- a/jdk/src/macosx/classes/sun/lwawt/macosx/CPrinterJob.java
+++ b/jdk/src/macosx/classes/sun/lwawt/macosx/CPrinterJob.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -640,7 +640,7 @@ public class CPrinterJob extends RasterPrinterJob {
if (onEventThread) {
try { EventQueue.invokeAndWait(r);
} catch (java.lang.reflect.InvocationTargetException ite) {
- Throwable te = (Throwable)ite.getTargetException();
+ Throwable te = ite.getTargetException();
if (te instanceof PrinterException) throw (PrinterException)te;
else te.printStackTrace();
} catch (Exception e) { e.printStackTrace(); }
diff --git a/jdk/src/share/classes/com/oracle/net/Sdp.java b/jdk/src/share/classes/com/oracle/net/Sdp.java
index 32316073828..d22a95ed120 100644
--- a/jdk/src/share/classes/com/oracle/net/Sdp.java
+++ b/jdk/src/share/classes/com/oracle/net/Sdp.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -56,7 +56,7 @@ public final class Sdp {
private static final Constructor serverSocketCtor;
static {
try {
- serverSocketCtor = (Constructor)
+ serverSocketCtor =
ServerSocket.class.getDeclaredConstructor(SocketImpl.class);
setAccessible(serverSocketCtor);
} catch (NoSuchMethodException e) {
diff --git a/jdk/src/share/classes/com/sun/imageio/plugins/bmp/BMPImageReader.java b/jdk/src/share/classes/com/sun/imageio/plugins/bmp/BMPImageReader.java
index b8c9a1e2b36..ae0fedf5b48 100644
--- a/jdk/src/share/classes/com/sun/imageio/plugins/bmp/BMPImageReader.java
+++ b/jdk/src/share/classes/com/sun/imageio/plugins/bmp/BMPImageReader.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -806,14 +806,11 @@ public class BMPImageReader extends ImageReader implements BMPConstants {
// the sampleModel can be null in case of embedded image
if (sampleModel != null) {
if (sampleModel.getDataType() == DataBuffer.TYPE_BYTE)
- bdata = (byte[])
- ((DataBufferByte)raster.getDataBuffer()).getData();
+ bdata = ((DataBufferByte)raster.getDataBuffer()).getData();
else if (sampleModel.getDataType() == DataBuffer.TYPE_USHORT)
- sdata = (short[])
- ((DataBufferUShort)raster.getDataBuffer()).getData();
+ sdata = ((DataBufferUShort)raster.getDataBuffer()).getData();
else if (sampleModel.getDataType() == DataBuffer.TYPE_INT)
- idata = (int[])
- ((DataBufferInt)raster.getDataBuffer()).getData();
+ idata = ((DataBufferInt)raster.getDataBuffer()).getData();
}
// There should only be one tile.
diff --git a/jdk/src/share/classes/com/sun/imageio/plugins/bmp/BMPImageWriter.java b/jdk/src/share/classes/com/sun/imageio/plugins/bmp/BMPImageWriter.java
index 5d1241ec53f..4eeb01c52e7 100644
--- a/jdk/src/share/classes/com/sun/imageio/plugins/bmp/BMPImageWriter.java
+++ b/jdk/src/share/classes/com/sun/imageio/plugins/bmp/BMPImageWriter.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -574,7 +574,7 @@ public class BMPImageWriter extends ImageWriter implements BMPConstants {
imageSize = embedded_stream.size();
long endPos = stream.getStreamPosition();
- fileSize = (int)(offset + imageSize);
+ fileSize = offset + imageSize;
stream.seek(headPos);
writeSize(fileSize, 2);
stream.seek(headPos);
diff --git a/jdk/src/share/classes/com/sun/imageio/plugins/common/ImageUtil.java b/jdk/src/share/classes/com/sun/imageio/plugins/common/ImageUtil.java
index 2c27e56e637..d3a4ba4a6f9 100644
--- a/jdk/src/share/classes/com/sun/imageio/plugins/common/ImageUtil.java
+++ b/jdk/src/share/classes/com/sun/imageio/plugins/common/ImageUtil.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -593,16 +593,15 @@ public class ImageUtil {
int i = eltOffset;
while(xRemaining > 24) {
data[i++] =
- (int)(((binaryDataArray[b++] & 0xFF) << 24) |
- ((binaryDataArray[b++] & 0xFF) << 16) |
- ((binaryDataArray[b++] & 0xFF) << 8) |
- (binaryDataArray[b++] & 0xFF));
+ (((binaryDataArray[b++] & 0xFF) << 24) |
+ ((binaryDataArray[b++] & 0xFF) << 16) |
+ ((binaryDataArray[b++] & 0xFF) << 8) |
+ (binaryDataArray[b++] & 0xFF));
xRemaining -= 32;
}
int shift = 24;
while(xRemaining > 0) {
- data[i] |=
- (int)((binaryDataArray[b++] & 0xFF) << shift);
+ data[i] |= ((binaryDataArray[b++] & 0xFF) << shift);
shift -= 8;
xRemaining -= 8;
}
@@ -835,8 +834,7 @@ public class ImageUtil {
for(int x = 0; x < rectWidth; x++) {
if(bdata[k++] != (byte)0) {
data[bOffset/32] |=
- (int)(0x00000001 <<
- (31 - bOffset % 32));
+ (0x00000001 << (31 - bOffset % 32));
}
bOffset++;
}
diff --git a/jdk/src/share/classes/com/sun/imageio/plugins/common/LZWStringTable.java b/jdk/src/share/classes/com/sun/imageio/plugins/common/LZWStringTable.java
index cfed0f43c0d..7d1714630b9 100644
--- a/jdk/src/share/classes/com/sun/imageio/plugins/common/LZWStringTable.java
+++ b/jdk/src/share/classes/com/sun/imageio/plugins/common/LZWStringTable.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -143,7 +143,7 @@ public class LZWStringTable {
}
static public int hash(short index, byte lastbyte) {
- return ((int)((short)(lastbyte << 8) ^ index) & 0xFFFF) % HASHSIZE;
+ return (((short)(lastbyte << 8) ^ index) & 0xFFFF) % HASHSIZE;
}
/*
diff --git a/jdk/src/share/classes/com/sun/imageio/plugins/gif/GIFImageMetadata.java b/jdk/src/share/classes/com/sun/imageio/plugins/gif/GIFImageMetadata.java
index 87a45c3cac4..45db3e64acd 100644
--- a/jdk/src/share/classes/com/sun/imageio/plugins/gif/GIFImageMetadata.java
+++ b/jdk/src/share/classes/com/sun/imageio/plugins/gif/GIFImageMetadata.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -232,7 +232,7 @@ public class GIFImageMetadata extends GIFMetadata {
appExtNode.setAttribute("authenticationCode",
toISO8859(authenticationCode));
byte[] appData = (byte[])applicationData.get(i);
- appExtNode.setUserObject((byte[])appData.clone());
+ appExtNode.setUserObject(appData.clone());
node.appendChild(appExtNode);
}
diff --git a/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/DHTMarkerSegment.java b/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/DHTMarkerSegment.java
index f619bb1d4f0..20d18072a06 100644
--- a/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/DHTMarkerSegment.java
+++ b/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/DHTMarkerSegment.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -211,10 +211,10 @@ class DHTMarkerSegment extends MarkerSegment {
newGuy = (Htable) super.clone();
} catch (CloneNotSupportedException e) {} // won't happen
if (numCodes != null) {
- newGuy.numCodes = (short []) numCodes.clone();
+ newGuy.numCodes = numCodes.clone();
}
if (values != null) {
- newGuy.values = (short []) values.clone();
+ newGuy.values = values.clone();
}
return newGuy;
}
diff --git a/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/DQTMarkerSegment.java b/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/DQTMarkerSegment.java
index 34fe0d2a811..fb78bc3a015 100644
--- a/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/DQTMarkerSegment.java
+++ b/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/DQTMarkerSegment.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -274,7 +274,7 @@ class DQTMarkerSegment extends MarkerSegment {
newGuy = (Qtable) super.clone();
} catch (CloneNotSupportedException e) {} // won't happen
if (data != null) {
- newGuy.data = (int []) data.clone();
+ newGuy.data = data.clone();
}
return newGuy;
}
diff --git a/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JFIFMarkerSegment.java b/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JFIFMarkerSegment.java
index 5ae93b1b685..21e5a26ad8d 100644
--- a/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JFIFMarkerSegment.java
+++ b/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JFIFMarkerSegment.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -1448,7 +1448,7 @@ class JFIFMarkerSegment extends MarkerSegment {
protected Object clone () {
ICCMarkerSegment newGuy = (ICCMarkerSegment) super.clone();
if (profile != null) {
- newGuy.profile = (byte[]) profile.clone();
+ newGuy.profile = profile.clone();
}
return newGuy;
}
diff --git a/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java b/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java
index d9723e7ba20..7f190f679d0 100644
--- a/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java
+++ b/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGImageWriter.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -319,7 +319,7 @@ public class JPEGImageWriter extends ImageWriter {
IIOMetadata streamMetadata,
IIOMetadata imageMetadata) {
if (jfifOK(imageType, param, streamMetadata, imageMetadata)) {
- return (Dimension [])preferredThumbSizes.clone();
+ return preferredThumbSizes.clone();
}
return null;
}
diff --git a/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGMetadata.java b/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGMetadata.java
index c7b8fd3d0e5..cff4f89b649 100644
--- a/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGMetadata.java
+++ b/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGMetadata.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -724,7 +724,7 @@ public class JPEGMetadata extends IIOMetadata implements Cloneable {
newGuy = (JPEGMetadata) super.clone();
} catch (CloneNotSupportedException e) {} // won't happen
if (markerSequence != null) {
- newGuy.markerSequence = (List) cloneSequence();
+ newGuy.markerSequence = cloneSequence();
}
newGuy.resetSequence = null;
return newGuy;
@@ -2016,14 +2016,14 @@ public class JPEGMetadata extends IIOMetadata implements Cloneable {
// First approximation
int y = 1;
- int x = (int) Math.round(value);
+ int x = Math.round(value);
float ratio = (float) x;
float delta = Math.abs(value - ratio);
while (delta > epsilon) { // not close enough
// Increment y and compute a new x
y++;
- x = (int) Math.round(y*value);
+ x = Math.round(y*value);
ratio = (float)x/(float)y;
delta = Math.abs(value - ratio);
}
diff --git a/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/MarkerSegment.java b/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/MarkerSegment.java
index f38e30f3ae8..2952635b7f2 100644
--- a/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/MarkerSegment.java
+++ b/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/MarkerSegment.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -119,7 +119,7 @@ class MarkerSegment implements Cloneable {
newGuy = (MarkerSegment) super.clone();
} catch (CloneNotSupportedException e) {} // won't happen
if (this.data != null) {
- newGuy.data = (byte[]) data.clone();
+ newGuy.data = data.clone();
}
return newGuy;
}
diff --git a/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/SOFMarkerSegment.java b/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/SOFMarkerSegment.java
index 904fa73777c..ea625209cbd 100644
--- a/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/SOFMarkerSegment.java
+++ b/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/SOFMarkerSegment.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -98,7 +98,7 @@ class SOFMarkerSegment extends MarkerSegment {
protected Object clone() {
SOFMarkerSegment newGuy = (SOFMarkerSegment) super.clone();
if (componentSpecs != null) {
- newGuy.componentSpecs = (ComponentSpec []) componentSpecs.clone();
+ newGuy.componentSpecs = componentSpecs.clone();
for (int i = 0; i < componentSpecs.length; i++) {
newGuy.componentSpecs[i] =
(ComponentSpec) componentSpecs[i].clone();
diff --git a/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/SOSMarkerSegment.java b/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/SOSMarkerSegment.java
index afffa7bd74a..c8f223190fd 100644
--- a/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/SOSMarkerSegment.java
+++ b/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/SOSMarkerSegment.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2001, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -93,8 +93,7 @@ class SOSMarkerSegment extends MarkerSegment {
protected Object clone () {
SOSMarkerSegment newGuy = (SOSMarkerSegment) super.clone();
if (componentSpecs != null) {
- newGuy.componentSpecs =
- (ScanComponentSpec []) componentSpecs.clone();
+ newGuy.componentSpecs = componentSpecs.clone();
for (int i = 0; i < componentSpecs.length; i++) {
newGuy.componentSpecs[i] =
(ScanComponentSpec) componentSpecs[i].clone();
diff --git a/jdk/src/share/classes/com/sun/imageio/plugins/png/PNGMetadata.java b/jdk/src/share/classes/com/sun/imageio/plugins/png/PNGMetadata.java
index 41392c53a1e..3ad3a8b6420 100644
--- a/jdk/src/share/classes/com/sun/imageio/plugins/png/PNGMetadata.java
+++ b/jdk/src/share/classes/com/sun/imageio/plugins/png/PNGMetadata.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -344,9 +344,9 @@ public class PNGMetadata extends IIOMetadata implements Cloneable {
IHDR_colorType = PNGImageReader.PNG_COLOR_PALETTE;
PLTE_present = true;
PLTE_order = null;
- PLTE_red = (byte[])reds.clone();
- PLTE_green = (byte[])greens.clone();
- PLTE_blue = (byte[])blues.clone();
+ PLTE_red = reds.clone();
+ PLTE_green = greens.clone();
+ PLTE_blue = blues.clone();
if (hasAlpha) {
tRNS_present = true;
@@ -430,7 +430,7 @@ public class PNGMetadata extends IIOMetadata implements Cloneable {
} else {
ArrayList list = new ArrayList(in.size());
for (byte[] b: in) {
- list.add((b == null) ? null : (byte[])b.clone());
+ list.add((b == null) ? null : b.clone());
}
return list;
}
@@ -703,8 +703,8 @@ public class PNGMetadata extends IIOMetadata implements Cloneable {
IIOMetadataNode tEXt_parent = new IIOMetadataNode("tEXt");
for (int i = 0; i < tEXt_keyword.size(); i++) {
IIOMetadataNode tEXt_node = new IIOMetadataNode("tEXtEntry");
- tEXt_node.setAttribute("keyword" , (String)tEXt_keyword.get(i));
- tEXt_node.setAttribute("value" , (String)tEXt_text.get(i));
+ tEXt_node.setAttribute("keyword" , tEXt_keyword.get(i));
+ tEXt_node.setAttribute("value" , tEXt_text.get(i));
tEXt_parent.appendChild(tEXt_node);
}
@@ -759,13 +759,13 @@ public class PNGMetadata extends IIOMetadata implements Cloneable {
IIOMetadataNode zTXt_parent = new IIOMetadataNode("zTXt");
for (int i = 0; i < zTXt_keyword.size(); i++) {
IIOMetadataNode zTXt_node = new IIOMetadataNode("zTXtEntry");
- zTXt_node.setAttribute("keyword", (String)zTXt_keyword.get(i));
+ zTXt_node.setAttribute("keyword", zTXt_keyword.get(i));
- int cm = ((Integer)zTXt_compressionMethod.get(i)).intValue();
+ int cm = (zTXt_compressionMethod.get(i)).intValue();
zTXt_node.setAttribute("compressionMethod",
zTXt_compressionMethodNames[cm]);
- zTXt_node.setAttribute("text", (String)zTXt_text.get(i));
+ zTXt_node.setAttribute("text", zTXt_text.get(i));
zTXt_parent.appendChild(zTXt_node);
}
@@ -781,8 +781,8 @@ public class PNGMetadata extends IIOMetadata implements Cloneable {
IIOMetadataNode unknown_node =
new IIOMetadataNode("UnknownChunk");
unknown_node.setAttribute("type",
- (String)unknownChunkType.get(i));
- unknown_node.setUserObject((byte[])unknownChunkData.get(i));
+ unknownChunkType.get(i));
+ unknown_node.setUserObject(unknownChunkData.get(i));
unknown_parent.appendChild(unknown_node);
}
@@ -1016,8 +1016,8 @@ public class PNGMetadata extends IIOMetadata implements Cloneable {
for (int i = 0; i < tEXt_keyword.size(); i++) {
node = new IIOMetadataNode("TextEntry");
- node.setAttribute("keyword", (String)tEXt_keyword.get(i));
- node.setAttribute("value", (String)tEXt_text.get(i));
+ node.setAttribute("keyword", tEXt_keyword.get(i));
+ node.setAttribute("value", tEXt_text.get(i));
node.setAttribute("encoding", "ISO-8859-1");
node.setAttribute("compression", "none");
@@ -1041,8 +1041,8 @@ public class PNGMetadata extends IIOMetadata implements Cloneable {
for (int i = 0; i < zTXt_keyword.size(); i++) {
node = new IIOMetadataNode("TextEntry");
- node.setAttribute("keyword", (String)zTXt_keyword.get(i));
- node.setAttribute("value", (String)zTXt_text.get(i));
+ node.setAttribute("keyword", zTXt_keyword.get(i));
+ node.setAttribute("value", zTXt_text.get(i));
node.setAttribute("compression", "zip");
text_node.appendChild(node);
@@ -1400,8 +1400,7 @@ public class PNGMetadata extends IIOMetadata implements Cloneable {
fatal(node, "User object not a byte array!");
}
- iCCP_compressedProfile =
- (byte[])((byte[])compressedProfile).clone();
+ iCCP_compressedProfile = ((byte[])compressedProfile).clone();
iCCP_present = true;
} else if (name.equals("iTXt")) {
diff --git a/jdk/src/share/classes/com/sun/java/browser/dom/DOMService.java b/jdk/src/share/classes/com/sun/java/browser/dom/DOMService.java
index 88b5ba7a5d2..b30d618cd75 100644
--- a/jdk/src/share/classes/com/sun/java/browser/dom/DOMService.java
+++ b/jdk/src/share/classes/com/sun/java/browser/dom/DOMService.java
@@ -43,7 +43,7 @@ public abstract class DOMService
{
try
{
- String provider = (String) java.security.AccessController.doPrivileged(
+ String provider = java.security.AccessController.doPrivileged(
new sun.security.action.GetPropertyAction("com.sun.java.browser.dom.DOMServiceProvider"));
Class clazz = Class.forName("sun.plugin.dom.DOMService");
diff --git a/jdk/src/share/classes/com/sun/jmx/remote/security/MBeanServerFileAccessController.java b/jdk/src/share/classes/com/sun/jmx/remote/security/MBeanServerFileAccessController.java
index 96c70c7ff98..59a183b2582 100644
--- a/jdk/src/share/classes/com/sun/jmx/remote/security/MBeanServerFileAccessController.java
+++ b/jdk/src/share/classes/com/sun/jmx/remote/security/MBeanServerFileAccessController.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -283,7 +283,7 @@ public class MBeanServerFileAccessController
public synchronized void refresh() throws IOException {
Properties props;
if (accessFileName == null)
- props = (Properties) originalProps;
+ props = originalProps;
else
props = propertiesFromFile(accessFileName);
parseProperties(props);
diff --git a/jdk/src/share/classes/com/sun/media/sound/AbstractMidiDevice.java b/jdk/src/share/classes/com/sun/media/sound/AbstractMidiDevice.java
index 874be7ddb05..4323970cafa 100644
--- a/jdk/src/share/classes/com/sun/media/sound/AbstractMidiDevice.java
+++ b/jdk/src/share/classes/com/sun/media/sound/AbstractMidiDevice.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -667,7 +667,7 @@ abstract class AbstractMidiDevice implements MidiDevice, ReferenceCountingDevice
} else {
if (TRACE_TRANSMITTER) Printer.println("Sending packed message to "+size+" transmitter's receivers");
for (int i = 0; i < size; i++) {
- Receiver receiver = ((Transmitter)transmitters.get(i)).getReceiver();
+ Receiver receiver = transmitters.get(i).getReceiver();
if (receiver != null) {
if (optimizedReceiverCount > 0) {
if (receiver instanceof MidiOutDevice.MidiOutReceiver) {
@@ -693,7 +693,7 @@ abstract class AbstractMidiDevice implements MidiDevice, ReferenceCountingDevice
int size = transmitters.size();
if (TRACE_TRANSMITTER) Printer.println("Sending long message to "+size+" transmitter's receivers");
for (int i = 0; i < size; i++) {
- Receiver receiver = ((Transmitter)transmitters.get(i)).getReceiver();
+ Receiver receiver = transmitters.get(i).getReceiver();
if (receiver != null) {
//$$fb 2002-04-02: SysexMessages are mutable, so
// an application could change the contents of this object,
@@ -729,7 +729,7 @@ abstract class AbstractMidiDevice implements MidiDevice, ReferenceCountingDevice
} else {
if (TRACE_TRANSMITTER) Printer.println("Sending MIDI message to "+size+" transmitter's receivers");
for (int i = 0; i < size; i++) {
- Receiver receiver = ((Transmitter)transmitters.get(i)).getReceiver();
+ Receiver receiver = transmitters.get(i).getReceiver();
if (receiver != null) {
//$$fb 2002-04-02: ShortMessages are mutable, so
// an application could change the contents of this object,
diff --git a/jdk/src/share/classes/com/sun/media/sound/AiffFileReader.java b/jdk/src/share/classes/com/sun/media/sound/AiffFileReader.java
index 5a96effbbe8..6d91be4bf61 100644
--- a/jdk/src/share/classes/com/sun/media/sound/AiffFileReader.java
+++ b/jdk/src/share/classes/com/sun/media/sound/AiffFileReader.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -406,7 +406,7 @@ public final class AiffFileReader extends SunFileReader {
int expon = 0;
long hiMant = 0, loMant = 0;
long t1, t2;
- double HUGE = ((double)3.40282346638528860e+38);
+ double HUGE = 3.40282346638528860e+38;
expon = dis.readUnsignedShort();
diff --git a/jdk/src/share/classes/com/sun/media/sound/AiffFileWriter.java b/jdk/src/share/classes/com/sun/media/sound/AiffFileWriter.java
index 0f79728291e..b31871f3bb5 100644
--- a/jdk/src/share/classes/com/sun/media/sound/AiffFileWriter.java
+++ b/jdk/src/share/classes/com/sun/media/sound/AiffFileWriter.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -239,18 +239,18 @@ public final class AiffFileWriter extends SunFileWriter {
while( (bytesRead = fileStream.read( buffer )) >= 0 ) {
if (maxLength>0) {
if( bytesRead < maxLength ) {
- out.write( buffer, 0, (int)bytesRead );
+ out.write( buffer, 0, bytesRead );
bytesWritten += bytesRead;
maxLength -= bytesRead;
} else {
- out.write( buffer, 0, (int)maxLength );
+ out.write( buffer, 0, maxLength );
bytesWritten += maxLength;
maxLength = 0;
break;
}
} else {
- out.write( buffer, 0, (int)bytesRead );
+ out.write( buffer, 0, bytesRead );
bytesWritten += bytesRead;
}
}
diff --git a/jdk/src/share/classes/com/sun/media/sound/AlawCodec.java b/jdk/src/share/classes/com/sun/media/sound/AlawCodec.java
index dc868b0b2cb..367f318b06a 100644
--- a/jdk/src/share/classes/com/sun/media/sound/AlawCodec.java
+++ b/jdk/src/share/classes/com/sun/media/sound/AlawCodec.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -316,7 +316,7 @@ public final class AlawCodec extends SunCodec {
// set the AudioInputStream length in frames if we know it
if (stream instanceof AudioInputStream) {
- frameLength = ((AudioInputStream)stream).getFrameLength();
+ frameLength = stream.getFrameLength();
}
// set framePos to zero
@@ -346,7 +346,7 @@ public final class AlawCodec extends SunCodec {
public int read() throws IOException {
byte[] b = new byte[1];
- return (int)read(b, 0, b.length);
+ return read(b, 0, b.length);
}
@@ -432,8 +432,8 @@ public final class AlawCodec extends SunCodec {
int readCount = super.read(b, readOffset, readLen);
for (i = off; i < (off + (readCount*2)); i+=2) {
- b[i] = (byte)tabByte1[b[readOffset] & 0xFF];
- b[i+1] = (byte)tabByte2[b[readOffset] & 0xFF];
+ b[i] = tabByte1[b[readOffset] & 0xFF];
+ b[i+1] = tabByte2[b[readOffset] & 0xFF];
readOffset++;
}
diff --git a/jdk/src/share/classes/com/sun/media/sound/AuFileWriter.java b/jdk/src/share/classes/com/sun/media/sound/AuFileWriter.java
index 15a7a90decf..7a459158a30 100644
--- a/jdk/src/share/classes/com/sun/media/sound/AuFileWriter.java
+++ b/jdk/src/share/classes/com/sun/media/sound/AuFileWriter.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -308,17 +308,17 @@ public final class AuFileWriter extends SunFileWriter {
while( (bytesRead = fileStream.read( buffer )) >= 0 ) {
if (maxLength>0) {
if( bytesRead < maxLength ) {
- out.write( buffer, 0, (int)bytesRead );
+ out.write( buffer, 0, bytesRead );
bytesWritten += bytesRead;
maxLength -= bytesRead;
} else {
- out.write( buffer, 0, (int)maxLength );
+ out.write( buffer, 0, maxLength );
bytesWritten += maxLength;
maxLength = 0;
break;
}
} else {
- out.write( buffer, 0, (int)bytesRead );
+ out.write( buffer, 0, bytesRead );
bytesWritten += bytesRead;
}
}
diff --git a/jdk/src/share/classes/com/sun/media/sound/DLSSoundbank.java b/jdk/src/share/classes/com/sun/media/sound/DLSSoundbank.java
index 87247ba686a..376521338c2 100644
--- a/jdk/src/share/classes/com/sun/media/sound/DLSSoundbank.java
+++ b/jdk/src/share/classes/com/sun/media/sound/DLSSoundbank.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -531,7 +531,7 @@ public final class DLSSoundbank implements Soundbank {
chunk.read(); // Read Reserved byte
instrument.bank = bank;
- instrument.preset = (int) id;
+ instrument.preset = id;
instrument.druminstrument = (drumins & 128) > 0;
//System.out.println("bank="+bank+" drumkit="+drumkit
// +" id="+id);
diff --git a/jdk/src/share/classes/com/sun/media/sound/DirectAudioDevice.java b/jdk/src/share/classes/com/sun/media/sound/DirectAudioDevice.java
index 698bac9f766..7c938bbb1c4 100644
--- a/jdk/src/share/classes/com/sun/media/sound/DirectAudioDevice.java
+++ b/jdk/src/share/classes/com/sun/media/sound/DirectAudioDevice.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -495,7 +495,7 @@ final class DirectAudioDevice extends AbstractMixer {
}
// align buffer to full frames
- bufferSize = ((int) bufferSize / format.getFrameSize()) * format.getFrameSize();
+ bufferSize = ( bufferSize / format.getFrameSize()) * format.getFrameSize();
id = nOpen(mixerIndex, deviceID, isSource,
encoding,
@@ -1381,7 +1381,7 @@ final class DirectAudioDevice extends AbstractMixer {
if (toWriteBytes > getBufferSize()) {
toWriteBytes = Toolkit.align(getBufferSize(), frameSize);
}
- int written = write(audioData, (int) clipBytePosition, toWriteBytes); // increases bytePosition
+ int written = write(audioData, clipBytePosition, toWriteBytes); // increases bytePosition
clipBytePosition += written;
// make sure nobody called setFramePosition, or stop() during the write() call
if (doIO && newFramePosition < 0 && written >= 0) {
diff --git a/jdk/src/share/classes/com/sun/media/sound/PortMixer.java b/jdk/src/share/classes/com/sun/media/sound/PortMixer.java
index 2ef76cbf488..705648004ff 100644
--- a/jdk/src/share/classes/com/sun/media/sound/PortMixer.java
+++ b/jdk/src/share/classes/com/sun/media/sound/PortMixer.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -212,7 +212,7 @@ final class PortMixer extends AbstractMixer {
ports = new PortMixerPort[portInfos.length];
}
if (ports[index] == null) {
- ports[index] = new PortMixerPort((Port.Info)portInfos[index], this, index);
+ ports[index] = new PortMixerPort(portInfos[index], this, index);
return ports[index];
}
// $$fb TODO: return (Port) (ports[index].clone());
diff --git a/jdk/src/share/classes/com/sun/media/sound/RealTimeSequencer.java b/jdk/src/share/classes/com/sun/media/sound/RealTimeSequencer.java
index 168b1b3656d..6ea2ec4b3c6 100644
--- a/jdk/src/share/classes/com/sun/media/sound/RealTimeSequencer.java
+++ b/jdk/src/share/classes/com/sun/media/sound/RealTimeSequencer.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -386,7 +386,7 @@ final class RealTimeSequencer extends AbstractMidiDevice
// last resort: return a standard tempo: 120bpm
return (float) MidiUtils.DEFAULT_TEMPO_MPQ;
}
- return (float)getDataPump().getTempoMPQ();
+ return getDataPump().getTempoMPQ();
}
diff --git a/jdk/src/share/classes/com/sun/media/sound/SF2Soundbank.java b/jdk/src/share/classes/com/sun/media/sound/SF2Soundbank.java
index 688ba1dafaa..83c8848b4f9 100644
--- a/jdk/src/share/classes/com/sun/media/sound/SF2Soundbank.java
+++ b/jdk/src/share/classes/com/sun/media/sound/SF2Soundbank.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -617,8 +617,8 @@ public final class SF2Soundbank implements Soundbank {
private void writeGenerators(RIFFWriter writer, Map generators)
throws IOException {
- Short keyrange = (Short) generators.get(SF2Region.GENERATOR_KEYRANGE);
- Short velrange = (Short) generators.get(SF2Region.GENERATOR_VELRANGE);
+ Short keyrange = generators.get(SF2Region.GENERATOR_KEYRANGE);
+ Short velrange = generators.get(SF2Region.GENERATOR_VELRANGE);
if (keyrange != null) {
writer.writeUnsignedShort(SF2Region.GENERATOR_KEYRANGE);
writer.writeShort(keyrange);
@@ -706,7 +706,7 @@ public final class SF2Soundbank implements Soundbank {
}
for (SF2InstrumentRegion region : preset.getRegions()) {
writeGenerators(pgen_chunk, region.getGenerators());
- int ix = (int) layers.indexOf(region.layer);
+ int ix = layers.indexOf(region.layer);
if (ix != -1) {
pgen_chunk.writeUnsignedShort(SF2Region.GENERATOR_INSTRUMENT);
pgen_chunk.writeShort((short) ix);
diff --git a/jdk/src/share/classes/com/sun/media/sound/SoftInstrument.java b/jdk/src/share/classes/com/sun/media/sound/SoftInstrument.java
index 0423448743d..009867ca09b 100644
--- a/jdk/src/share/classes/com/sun/media/sound/SoftInstrument.java
+++ b/jdk/src/share/classes/com/sun/media/sound/SoftInstrument.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -44,7 +44,7 @@ public final class SoftInstrument extends Instrument {
ins.getDataClass());
data = ins.getData();
this.ins = ins;
- initPerformers(((ModelInstrument)ins).getPerformers());
+ initPerformers(ins.getPerformers());
}
public SoftInstrument(ModelInstrument ins,
diff --git a/jdk/src/share/classes/com/sun/media/sound/StandardMidiFileWriter.java b/jdk/src/share/classes/com/sun/media/sound/StandardMidiFileWriter.java
index 97e0dc2928a..365fd9c6c28 100644
--- a/jdk/src/share/classes/com/sun/media/sound/StandardMidiFileWriter.java
+++ b/jdk/src/share/classes/com/sun/media/sound/StandardMidiFileWriter.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -141,7 +141,7 @@ public final class StandardMidiFileWriter extends MidiFileWriter {
buffer = new byte[bufferSize];
while( (bytesRead = fileStream.read( buffer )) >= 0 ) {
- out.write( buffer, 0, (int)bytesRead );
+ out.write( buffer, 0, bytesRead );
bytesWritten += bytesRead;
}
// Done....return bytesWritten
diff --git a/jdk/src/share/classes/com/sun/media/sound/Toolkit.java b/jdk/src/share/classes/com/sun/media/sound/Toolkit.java
index 5d52b8fe791..f1d5addce91 100644
--- a/jdk/src/share/classes/com/sun/media/sound/Toolkit.java
+++ b/jdk/src/share/classes/com/sun/media/sound/Toolkit.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -74,7 +74,7 @@ public final class Toolkit {
*/
static float linearToDB(float linear) {
- float dB = (float) (Math.log((double)((linear==0.0)?0.0001:linear))/Math.log(10.0) * 20.0);
+ float dB = (float) (Math.log(((linear==0.0)?0.0001:linear))/Math.log(10.0) * 20.0);
return dB;
}
diff --git a/jdk/src/share/classes/com/sun/media/sound/UlawCodec.java b/jdk/src/share/classes/com/sun/media/sound/UlawCodec.java
index 04fa5197b14..7dda283a0da 100644
--- a/jdk/src/share/classes/com/sun/media/sound/UlawCodec.java
+++ b/jdk/src/share/classes/com/sun/media/sound/UlawCodec.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -301,7 +301,7 @@ public final class UlawCodec extends SunCodec {
// set the AudioInputStream length in frames if we know it
if (stream instanceof AudioInputStream) {
- frameLength = ((AudioInputStream)stream).getFrameLength();
+ frameLength = stream.getFrameLength();
}
// set framePos to zero
framePos = 0;
@@ -406,8 +406,8 @@ public final class UlawCodec extends SunCodec {
return readCount;
}
for (i = off; i < (off + (readCount*2)); i+=2) {
- b[i] = (byte)tabByte1[b[readOffset] & 0xFF];
- b[i+1] = (byte)tabByte2[b[readOffset] & 0xFF];
+ b[i] = tabByte1[b[readOffset] & 0xFF];
+ b[i+1] = tabByte2[b[readOffset] & 0xFF];
readOffset++;
}
return (i - off);
diff --git a/jdk/src/share/classes/com/sun/media/sound/WaveFileWriter.java b/jdk/src/share/classes/com/sun/media/sound/WaveFileWriter.java
index c5f17e1bc8d..b9becd23d5a 100644
--- a/jdk/src/share/classes/com/sun/media/sound/WaveFileWriter.java
+++ b/jdk/src/share/classes/com/sun/media/sound/WaveFileWriter.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -240,17 +240,17 @@ public final class WaveFileWriter extends SunFileWriter {
if (maxLength>0) {
if( bytesRead < maxLength ) {
- out.write( buffer, 0, (int)bytesRead );
+ out.write( buffer, 0, bytesRead );
bytesWritten += bytesRead;
maxLength -= bytesRead;
} else {
- out.write( buffer, 0, (int)maxLength );
+ out.write( buffer, 0, maxLength );
bytesWritten += maxLength;
maxLength = 0;
break;
}
} else {
- out.write( buffer, 0, (int)bytesRead );
+ out.write( buffer, 0, bytesRead );
bytesWritten += bytesRead;
}
}
@@ -272,7 +272,7 @@ public final class WaveFileWriter extends SunFileWriter {
short channels = (short) audioFormat.getChannels();
short sampleSizeInBits = (short) audioFormat.getSampleSizeInBits();
int sampleRate = (int) audioFormat.getSampleRate();
- int frameSizeInBytes = (int) audioFormat.getFrameSize();
+ int frameSizeInBytes = audioFormat.getFrameSize();
int frameRate = (int) audioFormat.getFrameRate();
int avgBytesPerSec = channels * sampleSizeInBits * sampleRate / 8;;
short blockAlign = (short) ((sampleSizeInBits / 8) * channels);
diff --git a/jdk/src/share/classes/com/sun/tools/example/debug/expr/ExpressionParserTokenManager.java b/jdk/src/share/classes/com/sun/tools/example/debug/expr/ExpressionParserTokenManager.java
index b2f16f03e57..98cae0f5a96 100644
--- a/jdk/src/share/classes/com/sun/tools/example/debug/expr/ExpressionParserTokenManager.java
+++ b/jdk/src/share/classes/com/sun/tools/example/debug/expr/ExpressionParserTokenManager.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -1282,7 +1282,7 @@ private int jjMoveNfa_0(int startState, int curPos)
}
else
{
- int hiByte = (int)(curChar >> 8);
+ int hiByte = (curChar >> 8);
int i1 = hiByte >> 6;
long l1 = 1L << (hiByte & 077);
int i2 = (curChar & 0xff) >> 6;
diff --git a/jdk/src/share/classes/java/awt/AWTKeyStroke.java b/jdk/src/share/classes/java/awt/AWTKeyStroke.java
index 2cf7a332774..c4e07b45530 100644
--- a/jdk/src/share/classes/java/awt/AWTKeyStroke.java
+++ b/jdk/src/share/classes/java/awt/AWTKeyStroke.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -243,7 +243,7 @@ public class AWTKeyStroke implements Serializable {
return null;
}
});
- return (Constructor)ctor;
+ return ctor;
}
private static synchronized AWTKeyStroke getCachedStroke
@@ -275,7 +275,7 @@ public class AWTKeyStroke implements Serializable {
cacheKey.modifiers = mapNewModifiers(mapOldModifiers(modifiers));
cacheKey.onKeyRelease = onKeyRelease;
- AWTKeyStroke stroke = (AWTKeyStroke)cache.get(cacheKey);
+ AWTKeyStroke stroke = cache.get(cacheKey);
if (stroke == null) {
stroke = cacheKey;
cache.put(stroke, stroke);
@@ -581,7 +581,7 @@ public class AWTKeyStroke implements Serializable {
continue;
}
- Integer tokenMask = (Integer)modifierKeywords.get(token);
+ Integer tokenMask = modifierKeywords.get(token);
if (tokenMask != null) {
mask |= tokenMask.intValue();
} else {
@@ -879,11 +879,11 @@ class VKCollection {
public synchronized Integer findCode(String name) {
assert(name != null);
- return (Integer)name2code.get(name);
+ return name2code.get(name);
}
public synchronized String findName(Integer code) {
assert(code != null);
- return (String)code2name.get(code);
+ return code2name.get(code);
}
}
diff --git a/jdk/src/share/classes/java/awt/BasicStroke.java b/jdk/src/share/classes/java/awt/BasicStroke.java
index 80b4a3d3eb3..21a4bba8f14 100644
--- a/jdk/src/share/classes/java/awt/BasicStroke.java
+++ b/jdk/src/share/classes/java/awt/BasicStroke.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -225,7 +225,7 @@ public class BasicStroke implements Stroke {
this.join = join;
this.miterlimit = miterlimit;
if (dash != null) {
- this.dash = (float []) dash.clone();
+ this.dash = dash.clone();
}
this.dash_phase = dash_phase;
}
@@ -359,7 +359,7 @@ public class BasicStroke implements Stroke {
return null;
}
- return (float[]) dash.clone();
+ return dash.clone();
}
/**
diff --git a/jdk/src/share/classes/java/awt/CardLayout.java b/jdk/src/share/classes/java/awt/CardLayout.java
index 35ee3379267..3ffb19fbee7 100644
--- a/jdk/src/share/classes/java/awt/CardLayout.java
+++ b/jdk/src/share/classes/java/awt/CardLayout.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1995, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -223,8 +223,8 @@ public class CardLayout implements LayoutManager2,
comp.setVisible(false);
}
for (int i=0; i < vector.size(); i++) {
- if (((Card)vector.get(i)).name.equals(name)) {
- ((Card)vector.get(i)).comp = comp;
+ if ((vector.get(i)).name.equals(name)) {
+ (vector.get(i)).comp = comp;
return;
}
}
@@ -242,7 +242,7 @@ public class CardLayout implements LayoutManager2,
public void removeLayoutComponent(Component comp) {
synchronized (comp.getTreeLock()) {
for (int i = 0; i < vector.size(); i++) {
- if (((Card)vector.get(i)).comp == comp) {
+ if ((vector.get(i)).comp == comp) {
// if we remove current component we should show next one
if (comp.isVisible() && (comp.getParent() != null)) {
next(comp.getParent());
@@ -527,7 +527,7 @@ public class CardLayout implements LayoutManager2,
Component next = null;
int ncomponents = vector.size();
for (int i = 0; i < ncomponents; i++) {
- Card card = (Card)vector.get(i);
+ Card card = vector.get(i);
if (card.name.equals(name)) {
next = card.comp;
currentCard = i;
@@ -574,8 +574,8 @@ public class CardLayout implements LayoutManager2,
vector = new Vector<>();
if (tab != null && !tab.isEmpty()) {
for (Enumeration e = tab.keys() ; e.hasMoreElements() ; ) {
- String key = (String)e.nextElement();
- Component comp = (Component)tab.get(key);
+ String key = e.nextElement();
+ Component comp = tab.get(key);
vector.add(new Card(key, comp));
if (comp.isVisible()) {
currentCard = vector.size() - 1;
@@ -597,7 +597,7 @@ public class CardLayout implements LayoutManager2,
Hashtable tab = new Hashtable<>();
int ncomponents = vector.size();
for (int i = 0; i < ncomponents; i++) {
- Card card = (Card)vector.get(i);
+ Card card = vector.get(i);
tab.put(card.name, card.comp);
}
diff --git a/jdk/src/share/classes/java/awt/DefaultKeyboardFocusManager.java b/jdk/src/share/classes/java/awt/DefaultKeyboardFocusManager.java
index 040e659289a..94ac5f8225d 100644
--- a/jdk/src/share/classes/java/awt/DefaultKeyboardFocusManager.java
+++ b/jdk/src/share/classes/java/awt/DefaultKeyboardFocusManager.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -578,7 +578,7 @@ public class DefaultKeyboardFocusManager extends KeyboardFocusManager {
// newFocusOwner is not focus traversable.
dequeueKeyEvents(-1, newFocusOwner);
if (KeyboardFocusManager.isAutoFocusTransferEnabled()) {
- restoreFocus(fe, (Window)newFocusedWindow);
+ restoreFocus(fe, newFocusedWindow);
}
break;
}
@@ -590,7 +590,7 @@ public class DefaultKeyboardFocusManager extends KeyboardFocusManager {
// Focus change was rejected. Unlikely, but possible.
dequeueKeyEvents(-1, newFocusOwner);
if (KeyboardFocusManager.isAutoFocusTransferEnabled()) {
- restoreFocus(fe, (Window)newFocusedWindow);
+ restoreFocus(fe, newFocusedWindow);
}
break;
}
diff --git a/jdk/src/share/classes/java/awt/GradientPaintContext.java b/jdk/src/share/classes/java/awt/GradientPaintContext.java
index 2536fa2cf04..12b86e8521a 100644
--- a/jdk/src/share/classes/java/awt/GradientPaintContext.java
+++ b/jdk/src/share/classes/java/awt/GradientPaintContext.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -46,7 +46,7 @@ class GradientPaintContext implements PaintContext {
static synchronized Raster getCachedRaster(ColorModel cm, int w, int h) {
if (cm == cachedModel) {
if (cached != null) {
- Raster ras = (Raster) cached.get();
+ Raster ras = cached.get();
if (ras != null &&
ras.getWidth() >= w &&
ras.getHeight() >= h)
@@ -61,7 +61,7 @@ class GradientPaintContext implements PaintContext {
static synchronized void putCachedRaster(ColorModel cm, Raster ras) {
if (cached != null) {
- Raster cras = (Raster) cached.get();
+ Raster cras = cached.get();
if (cras != null) {
int cw = cras.getWidth();
int ch = cras.getHeight();
diff --git a/jdk/src/share/classes/java/awt/KeyboardFocusManager.java b/jdk/src/share/classes/java/awt/KeyboardFocusManager.java
index 0184083ec5c..b02bb5b0dba 100644
--- a/jdk/src/share/classes/java/awt/KeyboardFocusManager.java
+++ b/jdk/src/share/classes/java/awt/KeyboardFocusManager.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -1909,7 +1909,7 @@ public abstract class KeyboardFocusManager
static synchronized Component getMostRecentFocusOwner(Window window) {
WeakReference weakValue =
(WeakReference)mostRecentFocusOwners.get(window);
- return weakValue == null ? null : (Component)weakValue.get();
+ return weakValue == null ? null : weakValue.get();
}
/**
@@ -2496,9 +2496,9 @@ public abstract class KeyboardFocusManager
HeavyweightFocusRequest.CLEAR_GLOBAL_FOCUS_OWNER)
{
int size = heavyweightRequests.size();
- hwFocusRequest = (HeavyweightFocusRequest)((size >= 2)
+ hwFocusRequest = (size >= 2)
? heavyweightRequests.get(size - 2)
- : null);
+ : null;
}
if (focusedWindowChanged(heavyweight,
(hwFocusRequest != null)
diff --git a/jdk/src/share/classes/java/awt/MultipleGradientPaintContext.java b/jdk/src/share/classes/java/awt/MultipleGradientPaintContext.java
index cdff1907d95..f9bfe04c094 100644
--- a/jdk/src/share/classes/java/awt/MultipleGradientPaintContext.java
+++ b/jdk/src/share/classes/java/awt/MultipleGradientPaintContext.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -665,7 +665,7 @@ abstract class MultipleGradientPaintContext implements PaintContext {
{
if (cm == cachedModel) {
if (cached != null) {
- Raster ras = (Raster) cached.get();
+ Raster ras = cached.get();
if (ras != null &&
ras.getWidth() >= w &&
ras.getHeight() >= h)
@@ -687,7 +687,7 @@ abstract class MultipleGradientPaintContext implements PaintContext {
Raster ras)
{
if (cached != null) {
- Raster cras = (Raster) cached.get();
+ Raster cras = cached.get();
if (cras != null) {
int cw = cras.getWidth();
int ch = cras.getHeight();
diff --git a/jdk/src/share/classes/java/awt/ScrollPaneAdjustable.java b/jdk/src/share/classes/java/awt/ScrollPaneAdjustable.java
index be3ad5fec6a..5f388960d8c 100644
--- a/jdk/src/share/classes/java/awt/ScrollPaneAdjustable.java
+++ b/jdk/src/share/classes/java/awt/ScrollPaneAdjustable.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -418,9 +418,8 @@ public class ScrollPaneAdjustable implements Adjustable, Serializable {
* @since 1.4
*/
public synchronized AdjustmentListener[] getAdjustmentListeners() {
- return (AdjustmentListener[])(AWTEventMulticaster.getListeners(
- adjustmentListener,
- AdjustmentListener.class));
+ return AWTEventMulticaster.getListeners(adjustmentListener,
+ AdjustmentListener.class);
}
/**
diff --git a/jdk/src/share/classes/java/awt/SequencedEvent.java b/jdk/src/share/classes/java/awt/SequencedEvent.java
index 0ae8dad64db..835c040c85c 100644
--- a/jdk/src/share/classes/java/awt/SequencedEvent.java
+++ b/jdk/src/share/classes/java/awt/SequencedEvent.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -160,7 +160,7 @@ class SequencedEvent extends AWTEvent implements ActiveEvent {
}
private final synchronized static SequencedEvent getFirst() {
- return (SequencedEvent)list.getFirst();
+ return list.getFirst();
}
/* Disposes all events from disposed AppContext
@@ -211,7 +211,7 @@ class SequencedEvent extends AWTEvent implements ActiveEvent {
list.removeFirst();
if (!list.isEmpty()) {
- next = (SequencedEvent)list.getFirst();
+ next = list.getFirst();
}
} else {
list.remove(this);
diff --git a/jdk/src/share/classes/java/awt/SystemTray.java b/jdk/src/share/classes/java/awt/SystemTray.java
index b8344eeee95..7f3a5c31893 100644
--- a/jdk/src/share/classes/java/awt/SystemTray.java
+++ b/jdk/src/share/classes/java/awt/SystemTray.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -337,7 +337,7 @@ public class SystemTray {
public TrayIcon[] getTrayIcons() {
Vector icons = (Vector)AppContext.getAppContext().get(TrayIcon.class);
if (icons != null) {
- return (TrayIcon[])icons.toArray(new TrayIcon[icons.size()]);
+ return icons.toArray(new TrayIcon[icons.size()]);
}
return EMPTY_TRAY_ARRAY;
}
diff --git a/jdk/src/share/classes/java/awt/datatransfer/DataFlavor.java b/jdk/src/share/classes/java/awt/datatransfer/DataFlavor.java
index cbf172ba05c..1fb29ddd3b7 100644
--- a/jdk/src/share/classes/java/awt/datatransfer/DataFlavor.java
+++ b/jdk/src/share/classes/java/awt/datatransfer/DataFlavor.java
@@ -730,9 +730,8 @@ public class DataFlavor implements Externalizable, Cloneable {
textFlavorComparator = new TextFlavorComparator();
}
- DataFlavor bestFlavor =
- (DataFlavor)Collections.max(Arrays.asList(availableFlavors),
- textFlavorComparator);
+ DataFlavor bestFlavor = Collections.max(Arrays.asList(availableFlavors),
+ textFlavorComparator);
if (!bestFlavor.isFlavorTextType()) {
return null;
diff --git a/jdk/src/share/classes/java/awt/datatransfer/StringSelection.java b/jdk/src/share/classes/java/awt/datatransfer/StringSelection.java
index c65f04fbaa7..dfeb3bdfe9a 100644
--- a/jdk/src/share/classes/java/awt/datatransfer/StringSelection.java
+++ b/jdk/src/share/classes/java/awt/datatransfer/StringSelection.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -76,7 +76,7 @@ public class StringSelection implements Transferable, ClipboardOwner {
public DataFlavor[] getTransferDataFlavors() {
// returning flavors itself would allow client code to modify
// our internal behavior
- return (DataFlavor[])flavors.clone();
+ return flavors.clone();
}
/**
diff --git a/jdk/src/share/classes/java/awt/image/ComponentColorModel.java b/jdk/src/share/classes/java/awt/image/ComponentColorModel.java
index 28e41a2bc27..e2fe5e13eb4 100644
--- a/jdk/src/share/classes/java/awt/image/ComponentColorModel.java
+++ b/jdk/src/share/classes/java/awt/image/ComponentColorModel.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -1514,13 +1514,13 @@ public class ComponentColorModel extends ColorModel {
intpixel[0] = (int) (red * factor * ((1<= 0");
@@ -211,8 +211,8 @@ public class ComponentSampleModel extends SampleModel
this.dataType = dataType;
this.pixelStride = pixelStride;
this.scanlineStride = scanlineStride;
- this.bandOffsets = (int[])bandOffsets.clone();
- this.bankIndices = (int[]) bankIndices.clone();
+ this.bandOffsets = bandOffsets.clone();
+ this.bankIndices = bankIndices.clone();
if (pixelStride < 0) {
throw new IllegalArgumentException("Pixel stride must be >= 0");
}
@@ -526,14 +526,14 @@ public class ComponentSampleModel extends SampleModel
* @return the bank indices for all bands.
*/
public final int [] getBankIndices() {
- return (int[]) bankIndices.clone();
+ return bankIndices.clone();
}
/** Returns the band offset for all bands.
* @return the band offsets for all bands.
*/
public final int [] getBandOffsets() {
- return (int[])bandOffsets.clone();
+ return bandOffsets.clone();
}
/** Returns the scanline stride of this ComponentSampleModel.
diff --git a/jdk/src/share/classes/java/awt/image/DataBuffer.java b/jdk/src/share/classes/java/awt/image/DataBuffer.java
index 5bf9652080c..b23813bab4f 100644
--- a/jdk/src/share/classes/java/awt/image/DataBuffer.java
+++ b/jdk/src/share/classes/java/awt/image/DataBuffer.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -279,7 +279,7 @@ public abstract class DataBuffer {
this.banks = numBanks;
this.size = size;
this.offset = offsets[0];
- this.offsets = (int[])offsets.clone();
+ this.offsets = offsets.clone();
}
/** Returns the data type of this DataBuffer.
@@ -307,7 +307,7 @@ public abstract class DataBuffer {
* @return the offsets of all banks.
*/
public int[] getOffsets() {
- return (int[])offsets.clone();
+ return offsets.clone();
}
/** Returns the number of banks in this DataBuffer.
diff --git a/jdk/src/share/classes/java/awt/image/DataBufferByte.java b/jdk/src/share/classes/java/awt/image/DataBufferByte.java
index 7d35b47e0a3..f4e40cbc3a9 100644
--- a/jdk/src/share/classes/java/awt/image/DataBufferByte.java
+++ b/jdk/src/share/classes/java/awt/image/DataBufferByte.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -156,7 +156,7 @@ public final class DataBufferByte extends DataBuffer
*/
public DataBufferByte(byte dataArray[][], int size) {
super(UNTRACKABLE, TYPE_BYTE, size, dataArray.length);
- bankdata = (byte[][]) dataArray.clone();
+ bankdata = dataArray.clone();
data = bankdata[0];
}
@@ -181,7 +181,7 @@ public final class DataBufferByte extends DataBuffer
*/
public DataBufferByte(byte dataArray[][], int size, int offsets[]) {
super(UNTRACKABLE, TYPE_BYTE, size, dataArray.length, offsets);
- bankdata = (byte[][]) dataArray.clone();
+ bankdata = dataArray.clone();
data = bankdata[0];
}
@@ -228,7 +228,7 @@ public final class DataBufferByte extends DataBuffer
*/
public byte[][] getBankData() {
theTrackable.setUntrackable();
- return (byte[][]) bankdata.clone();
+ return bankdata.clone();
}
/**
diff --git a/jdk/src/share/classes/java/awt/image/DataBufferDouble.java b/jdk/src/share/classes/java/awt/image/DataBufferDouble.java
index 92143fa78c4..85c5c37862a 100644
--- a/jdk/src/share/classes/java/awt/image/DataBufferDouble.java
+++ b/jdk/src/share/classes/java/awt/image/DataBufferDouble.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -154,7 +154,7 @@ public final class DataBufferDouble extends DataBuffer {
*/
public DataBufferDouble(double dataArray[][], int size) {
super(UNTRACKABLE, TYPE_DOUBLE, size, dataArray.length);
- bankdata = (double[][]) dataArray.clone();
+ bankdata = dataArray.clone();
data = bankdata[0];
}
@@ -178,7 +178,7 @@ public final class DataBufferDouble extends DataBuffer {
*/
public DataBufferDouble(double dataArray[][], int size, int offsets[]) {
super(UNTRACKABLE, TYPE_DOUBLE, size, dataArray.length, offsets);
- bankdata = (double[][]) dataArray.clone();
+ bankdata = dataArray.clone();
data = bankdata[0];
}
@@ -225,7 +225,7 @@ public final class DataBufferDouble extends DataBuffer {
*/
public double[][] getBankData() {
theTrackable.setUntrackable();
- return (double[][]) bankdata.clone();
+ return bankdata.clone();
}
/**
diff --git a/jdk/src/share/classes/java/awt/image/DataBufferFloat.java b/jdk/src/share/classes/java/awt/image/DataBufferFloat.java
index c3fa5b2e2aa..12daeafe200 100644
--- a/jdk/src/share/classes/java/awt/image/DataBufferFloat.java
+++ b/jdk/src/share/classes/java/awt/image/DataBufferFloat.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -156,7 +156,7 @@ public final class DataBufferFloat extends DataBuffer {
*/
public DataBufferFloat(float dataArray[][], int size) {
super(UNTRACKABLE, TYPE_FLOAT, size, dataArray.length);
- bankdata = (float[][]) dataArray.clone();
+ bankdata = dataArray.clone();
data = bankdata[0];
}
@@ -180,7 +180,7 @@ public final class DataBufferFloat extends DataBuffer {
*/
public DataBufferFloat(float dataArray[][], int size, int offsets[]) {
super(UNTRACKABLE, TYPE_FLOAT, size,dataArray.length, offsets);
- bankdata = (float[][]) dataArray.clone();
+ bankdata = dataArray.clone();
data = bankdata[0];
}
@@ -227,7 +227,7 @@ public final class DataBufferFloat extends DataBuffer {
*/
public float[][] getBankData() {
theTrackable.setUntrackable();
- return (float[][]) bankdata.clone();
+ return bankdata.clone();
}
/**
diff --git a/jdk/src/share/classes/java/awt/image/DataBufferInt.java b/jdk/src/share/classes/java/awt/image/DataBufferInt.java
index 2a3cf23a04b..afa60a11ee5 100644
--- a/jdk/src/share/classes/java/awt/image/DataBufferInt.java
+++ b/jdk/src/share/classes/java/awt/image/DataBufferInt.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -154,7 +154,7 @@ public final class DataBufferInt extends DataBuffer
*/
public DataBufferInt(int dataArray[][], int size) {
super(UNTRACKABLE, TYPE_INT, size, dataArray.length);
- bankdata = (int [][]) dataArray.clone();
+ bankdata = dataArray.clone();
data = bankdata[0];
}
@@ -179,7 +179,7 @@ public final class DataBufferInt extends DataBuffer
*/
public DataBufferInt(int dataArray[][], int size, int offsets[]) {
super(UNTRACKABLE, TYPE_INT, size, dataArray.length, offsets);
- bankdata = (int [][]) dataArray.clone();
+ bankdata = dataArray.clone();
data = bankdata[0];
}
@@ -226,7 +226,7 @@ public final class DataBufferInt extends DataBuffer
*/
public int[][] getBankData() {
theTrackable.setUntrackable();
- return (int [][]) bankdata.clone();
+ return bankdata.clone();
}
/**
@@ -278,7 +278,7 @@ public final class DataBufferInt extends DataBuffer
* @see #getElem(int, int)
*/
public void setElem(int bank, int i, int val) {
- bankdata[bank][i+offsets[bank]] = (int)val;
+ bankdata[bank][i+offsets[bank]] = val;
theTrackable.markDirty();
}
}
diff --git a/jdk/src/share/classes/java/awt/image/DataBufferShort.java b/jdk/src/share/classes/java/awt/image/DataBufferShort.java
index b95f6aae4a1..f8a9da2b3cb 100644
--- a/jdk/src/share/classes/java/awt/image/DataBufferShort.java
+++ b/jdk/src/share/classes/java/awt/image/DataBufferShort.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -153,7 +153,7 @@ public final class DataBufferShort extends DataBuffer
*/
public DataBufferShort(short dataArray[][], int size) {
super(UNTRACKABLE, TYPE_SHORT, size, dataArray.length);
- bankdata = (short[][]) dataArray.clone();
+ bankdata = dataArray.clone();
data = bankdata[0];
}
@@ -178,7 +178,7 @@ public final class DataBufferShort extends DataBuffer
*/
public DataBufferShort(short dataArray[][], int size, int offsets[]) {
super(UNTRACKABLE, TYPE_SHORT, size, dataArray.length, offsets);
- bankdata = (short[][]) dataArray.clone();
+ bankdata = dataArray.clone();
data = bankdata[0];
}
@@ -225,7 +225,7 @@ public final class DataBufferShort extends DataBuffer
*/
public short[][] getBankData() {
theTrackable.setUntrackable();
- return (short[][]) bankdata.clone();
+ return bankdata.clone();
}
/**
diff --git a/jdk/src/share/classes/java/awt/image/DataBufferUShort.java b/jdk/src/share/classes/java/awt/image/DataBufferUShort.java
index 65919a7f5d5..9020ba78e63 100644
--- a/jdk/src/share/classes/java/awt/image/DataBufferUShort.java
+++ b/jdk/src/share/classes/java/awt/image/DataBufferUShort.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -174,7 +174,7 @@ public final class DataBufferUShort extends DataBuffer
}
}
- bankdata = (short[][]) dataArray.clone();
+ bankdata = dataArray.clone();
data = bankdata[0];
}
@@ -213,7 +213,7 @@ public final class DataBufferUShort extends DataBuffer
}
}
- bankdata = (short[][]) dataArray.clone();
+ bankdata = dataArray.clone();
data = bankdata[0];
}
@@ -260,7 +260,7 @@ public final class DataBufferUShort extends DataBuffer
*/
public short[][] getBankData() {
theTrackable.setUntrackable();
- return (short[][]) bankdata.clone();
+ return bankdata.clone();
}
/**
@@ -272,7 +272,7 @@ public final class DataBufferUShort extends DataBuffer
* @see #setElem(int, int, int)
*/
public int getElem(int i) {
- return (int)(data[i+offset]&0xffff);
+ return data[i+offset]&0xffff;
}
/**
@@ -285,7 +285,7 @@ public final class DataBufferUShort extends DataBuffer
* @see #setElem(int, int, int)
*/
public int getElem(int bank, int i) {
- return (int)(bankdata[bank][i+offsets[bank]]&0xffff);
+ return bankdata[bank][i+offsets[bank]]&0xffff;
}
/**
diff --git a/jdk/src/share/classes/java/awt/image/IndexColorModel.java b/jdk/src/share/classes/java/awt/image/IndexColorModel.java
index 7e4317cd3ab..16431ebc8af 100644
--- a/jdk/src/share/classes/java/awt/image/IndexColorModel.java
+++ b/jdk/src/share/classes/java/awt/image/IndexColorModel.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1995, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -909,7 +909,7 @@ public class IndexColorModel extends ColorModel {
int minDist = 256;
int d;
- int gray = (int) (red*77 + green*150 + blue*29 + 128)/256;
+ int gray = (red*77 + green*150 + blue*29 + 128)/256;
for (int i = 0; i < map_size; i++) {
if (this.rgb[i] == 0x0) {
diff --git a/jdk/src/share/classes/java/awt/image/MultiPixelPackedSampleModel.java b/jdk/src/share/classes/java/awt/image/MultiPixelPackedSampleModel.java
index ebd41f61b25..c3c2b2a6c3d 100644
--- a/jdk/src/share/classes/java/awt/image/MultiPixelPackedSampleModel.java
+++ b/jdk/src/share/classes/java/awt/image/MultiPixelPackedSampleModel.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -198,7 +198,7 @@ public class MultiPixelPackedSampleModel extends SampleModel
public DataBuffer createDataBuffer() {
DataBuffer dataBuffer = null;
- int size = (int)scanlineStride*height;
+ int size = scanlineStride*height;
switch (dataType) {
case DataBuffer.TYPE_BYTE:
dataBuffer = new DataBufferByte(size+(dataBitOffset+7)/8);
diff --git a/jdk/src/share/classes/java/awt/image/PackedColorModel.java b/jdk/src/share/classes/java/awt/image/PackedColorModel.java
index 3c910255aab..1ff6ecd0b10 100644
--- a/jdk/src/share/classes/java/awt/image/PackedColorModel.java
+++ b/jdk/src/share/classes/java/awt/image/PackedColorModel.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -252,7 +252,7 @@ public abstract class PackedColorModel extends ColorModel {
* representation contain the color or alpha samples.
*/
final public int[] getMasks() {
- return (int[]) maskArray.clone();
+ return maskArray.clone();
}
/*
diff --git a/jdk/src/share/classes/java/awt/image/RescaleOp.java b/jdk/src/share/classes/java/awt/image/RescaleOp.java
index c48b98ebb77..e8fa30ee947 100644
--- a/jdk/src/share/classes/java/awt/image/RescaleOp.java
+++ b/jdk/src/share/classes/java/awt/image/RescaleOp.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2000, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -144,7 +144,7 @@ public class RescaleOp implements BufferedImageOp, RasterOp {
*/
final public float[] getScaleFactors (float scaleFactors[]) {
if (scaleFactors == null) {
- return (float[]) this.scaleFactors.clone();
+ return this.scaleFactors.clone();
}
System.arraycopy (this.scaleFactors, 0, scaleFactors, 0,
Math.min(this.scaleFactors.length,
@@ -162,7 +162,7 @@ public class RescaleOp implements BufferedImageOp, RasterOp {
*/
final public float[] getOffsets(float offsets[]) {
if (offsets == null) {
- return (float[]) this.offsets.clone();
+ return this.offsets.clone();
}
System.arraycopy (this.offsets, 0, offsets, 0,
diff --git a/jdk/src/share/classes/java/awt/image/SinglePixelPackedSampleModel.java b/jdk/src/share/classes/java/awt/image/SinglePixelPackedSampleModel.java
index 58c1db0b726..ab01aef2a2a 100644
--- a/jdk/src/share/classes/java/awt/image/SinglePixelPackedSampleModel.java
+++ b/jdk/src/share/classes/java/awt/image/SinglePixelPackedSampleModel.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -149,7 +149,7 @@ public class SinglePixelPackedSampleModel extends SampleModel
dataType);
}
this.dataType = dataType;
- this.bitMasks = (int[]) bitMasks.clone();
+ this.bitMasks = bitMasks.clone();
this.scanlineStride = scanlineStride;
this.bitOffsets = new int[numBands];
@@ -276,14 +276,14 @@ public class SinglePixelPackedSampleModel extends SampleModel
* @return the bit offsets representing a pixel for all bands.
*/
public int [] getBitOffsets() {
- return (int[])bitOffsets.clone();
+ return bitOffsets.clone();
}
/** Returns the bit masks for all bands.
* @return the bit masks for all bands.
*/
public int [] getBitMasks() {
- return (int[])bitMasks.clone();
+ return bitMasks.clone();
}
/** Returns the scanline stride of this SinglePixelPackedSampleModel.
@@ -746,7 +746,7 @@ public class SinglePixelPackedSampleModel extends SampleModel
int value = data.getElem(lineOffset+j);
value &= ~bitMasks[b];
int sample = iArray[srcOffset++];
- value |= ((int)sample << bitOffsets[b]) & bitMasks[b];
+ value |= (sample << bitOffsets[b]) & bitMasks[b];
data.setElem(lineOffset+j,value);
}
lineOffset += scanlineStride;
diff --git a/jdk/src/share/classes/javax/accessibility/AccessibleRelationSet.java b/jdk/src/share/classes/javax/accessibility/AccessibleRelationSet.java
index e1409089fb9..37f38aa8a40 100644
--- a/jdk/src/share/classes/javax/accessibility/AccessibleRelationSet.java
+++ b/jdk/src/share/classes/javax/accessibility/AccessibleRelationSet.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -195,8 +195,7 @@ public class AccessibleRelationSet {
} else {
int len = relations.size();
for (int i = 0; i < len; i++) {
- AccessibleRelation relation =
- (AccessibleRelation)relations.elementAt(i);
+ AccessibleRelation relation = relations.elementAt(i);
if (relation != null && relation.getKey().equals(key)) {
return relation;
}
@@ -216,7 +215,7 @@ public class AccessibleRelationSet {
AccessibleRelation[] relationArray
= new AccessibleRelation[relations.size()];
for (int i = 0; i < relationArray.length; i++) {
- relationArray[i] = (AccessibleRelation) relations.elementAt(i);
+ relationArray[i] = relations.elementAt(i);
}
return relationArray;
}
@@ -232,11 +231,10 @@ public class AccessibleRelationSet {
public String toString() {
String ret = "";
if ((relations != null) && (relations.size() > 0)) {
- ret = ((AccessibleRelation) (relations.elementAt(0))).toDisplayString();
+ ret = (relations.elementAt(0)).toDisplayString();
for (int i = 1; i < relations.size(); i++) {
ret = ret + ","
- + ((AccessibleRelation) (relations.elementAt(i))).
- toDisplayString();
+ + (relations.elementAt(i)).toDisplayString();
}
}
return ret;
diff --git a/jdk/src/share/classes/javax/accessibility/AccessibleStateSet.java b/jdk/src/share/classes/javax/accessibility/AccessibleStateSet.java
index 5d667b346e8..5eb4f05e3b9 100644
--- a/jdk/src/share/classes/javax/accessibility/AccessibleStateSet.java
+++ b/jdk/src/share/classes/javax/accessibility/AccessibleStateSet.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -171,7 +171,7 @@ public class AccessibleStateSet {
} else {
AccessibleState[] stateArray = new AccessibleState[states.size()];
for (int i = 0; i < stateArray.length; i++) {
- stateArray[i] = (AccessibleState) states.elementAt(i);
+ stateArray[i] = states.elementAt(i);
}
return stateArray;
}
@@ -187,11 +187,10 @@ public class AccessibleStateSet {
public String toString() {
String ret = null;
if ((states != null) && (states.size() > 0)) {
- ret = ((AccessibleState) (states.elementAt(0))).toDisplayString();
+ ret = states.elementAt(0).toDisplayString();
for (int i = 1; i < states.size(); i++) {
ret = ret + ","
- + ((AccessibleState) (states.elementAt(i))).
- toDisplayString();
+ + states.elementAt(i).toDisplayString();
}
}
return ret;
diff --git a/jdk/src/share/classes/javax/imageio/IIOParam.java b/jdk/src/share/classes/javax/imageio/IIOParam.java
index 33bede6cdb6..ca73f6acbd9 100644
--- a/jdk/src/share/classes/javax/imageio/IIOParam.java
+++ b/jdk/src/share/classes/javax/imageio/IIOParam.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -437,7 +437,7 @@ public abstract class IIOParam {
}
}
- this.sourceBands = (int[])(sourceBands.clone());
+ this.sourceBands = (sourceBands.clone());
}
}
@@ -460,7 +460,7 @@ public abstract class IIOParam {
if (sourceBands == null) {
return null;
}
- return (int[])(sourceBands.clone());
+ return (sourceBands.clone());
}
/**
diff --git a/jdk/src/share/classes/javax/imageio/ImageIO.java b/jdk/src/share/classes/javax/imageio/ImageIO.java
index e6345322301..1ad84b4a204 100644
--- a/jdk/src/share/classes/javax/imageio/ImageIO.java
+++ b/jdk/src/share/classes/javax/imageio/ImageIO.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -169,7 +169,7 @@ public final class ImageIO {
*/
private static String getTempDir() {
GetPropertyAction a = new GetPropertyAction("java.io.tmpdir");
- return (String)AccessController.doPrivileged(a);
+ return AccessController.doPrivileged(a);
}
/**
diff --git a/jdk/src/share/classes/javax/imageio/ImageReadParam.java b/jdk/src/share/classes/javax/imageio/ImageReadParam.java
index 6053348d100..4e9ac1e06a6 100644
--- a/jdk/src/share/classes/javax/imageio/ImageReadParam.java
+++ b/jdk/src/share/classes/javax/imageio/ImageReadParam.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -294,7 +294,7 @@ public class ImageReadParam extends IIOParam {
}
}
}
- this.destinationBands = (int[])destinationBands.clone();
+ this.destinationBands = destinationBands.clone();
}
}
@@ -312,7 +312,7 @@ public class ImageReadParam extends IIOParam {
if (destinationBands == null) {
return null;
} else {
- return (int[])(destinationBands.clone());
+ return destinationBands.clone();
}
}
diff --git a/jdk/src/share/classes/javax/imageio/ImageReader.java b/jdk/src/share/classes/javax/imageio/ImageReader.java
index b6b70216902..97dd57d3a13 100644
--- a/jdk/src/share/classes/javax/imageio/ImageReader.java
+++ b/jdk/src/share/classes/javax/imageio/ImageReader.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -457,7 +457,7 @@ public abstract class ImageReader {
if (availableLocales == null) {
return null;
} else {
- return (Locale[])availableLocales.clone();
+ return availableLocales.clone();
}
}
@@ -678,7 +678,7 @@ public abstract class ImageReader {
*/
public ImageTypeSpecifier getRawImageType(int imageIndex)
throws IOException {
- return (ImageTypeSpecifier)getImageTypes(imageIndex).next();
+ return getImageTypes(imageIndex).next();
}
/**
@@ -2012,7 +2012,7 @@ public abstract class ImageReader {
int numListeners = progressListeners.size();
for (int i = 0; i < numListeners; i++) {
IIOReadProgressListener listener =
- (IIOReadProgressListener)progressListeners.get(i);
+ progressListeners.get(i);
listener.sequenceStarted(this, minIndex);
}
}
@@ -2030,7 +2030,7 @@ public abstract class ImageReader {
int numListeners = progressListeners.size();
for (int i = 0; i < numListeners; i++) {
IIOReadProgressListener listener =
- (IIOReadProgressListener)progressListeners.get(i);
+ progressListeners.get(i);
listener.sequenceComplete(this);
}
}
@@ -2050,7 +2050,7 @@ public abstract class ImageReader {
int numListeners = progressListeners.size();
for (int i = 0; i < numListeners; i++) {
IIOReadProgressListener listener =
- (IIOReadProgressListener)progressListeners.get(i);
+ progressListeners.get(i);
listener.imageStarted(this, imageIndex);
}
}
@@ -2071,7 +2071,7 @@ public abstract class ImageReader {
int numListeners = progressListeners.size();
for (int i = 0; i < numListeners; i++) {
IIOReadProgressListener listener =
- (IIOReadProgressListener)progressListeners.get(i);
+ progressListeners.get(i);
listener.imageProgress(this, percentageDone);
}
}
@@ -2089,7 +2089,7 @@ public abstract class ImageReader {
int numListeners = progressListeners.size();
for (int i = 0; i < numListeners; i++) {
IIOReadProgressListener listener =
- (IIOReadProgressListener)progressListeners.get(i);
+ progressListeners.get(i);
listener.imageComplete(this);
}
}
@@ -2112,7 +2112,7 @@ public abstract class ImageReader {
int numListeners = progressListeners.size();
for (int i = 0; i < numListeners; i++) {
IIOReadProgressListener listener =
- (IIOReadProgressListener)progressListeners.get(i);
+ progressListeners.get(i);
listener.thumbnailStarted(this, imageIndex, thumbnailIndex);
}
}
@@ -2133,7 +2133,7 @@ public abstract class ImageReader {
int numListeners = progressListeners.size();
for (int i = 0; i < numListeners; i++) {
IIOReadProgressListener listener =
- (IIOReadProgressListener)progressListeners.get(i);
+ progressListeners.get(i);
listener.thumbnailProgress(this, percentageDone);
}
}
@@ -2151,7 +2151,7 @@ public abstract class ImageReader {
int numListeners = progressListeners.size();
for (int i = 0; i < numListeners; i++) {
IIOReadProgressListener listener =
- (IIOReadProgressListener)progressListeners.get(i);
+ progressListeners.get(i);
listener.thumbnailComplete(this);
}
}
@@ -2169,7 +2169,7 @@ public abstract class ImageReader {
int numListeners = progressListeners.size();
for (int i = 0; i < numListeners; i++) {
IIOReadProgressListener listener =
- (IIOReadProgressListener)progressListeners.get(i);
+ progressListeners.get(i);
listener.readAborted(this);
}
}
@@ -2205,7 +2205,7 @@ public abstract class ImageReader {
int numListeners = updateListeners.size();
for (int i = 0; i < numListeners; i++) {
IIOReadUpdateListener listener =
- (IIOReadUpdateListener)updateListeners.get(i);
+ updateListeners.get(i);
listener.passStarted(this, theImage, pass,
minPass,
maxPass,
@@ -2246,7 +2246,7 @@ public abstract class ImageReader {
int numListeners = updateListeners.size();
for (int i = 0; i < numListeners; i++) {
IIOReadUpdateListener listener =
- (IIOReadUpdateListener)updateListeners.get(i);
+ updateListeners.get(i);
listener.imageUpdate(this,
theImage,
minX, minY,
@@ -2271,7 +2271,7 @@ public abstract class ImageReader {
int numListeners = updateListeners.size();
for (int i = 0; i < numListeners; i++) {
IIOReadUpdateListener listener =
- (IIOReadUpdateListener)updateListeners.get(i);
+ updateListeners.get(i);
listener.passComplete(this, theImage);
}
}
@@ -2308,7 +2308,7 @@ public abstract class ImageReader {
int numListeners = updateListeners.size();
for (int i = 0; i < numListeners; i++) {
IIOReadUpdateListener listener =
- (IIOReadUpdateListener)updateListeners.get(i);
+ updateListeners.get(i);
listener.thumbnailPassStarted(this, theThumbnail, pass,
minPass,
maxPass,
@@ -2350,7 +2350,7 @@ public abstract class ImageReader {
int numListeners = updateListeners.size();
for (int i = 0; i < numListeners; i++) {
IIOReadUpdateListener listener =
- (IIOReadUpdateListener)updateListeners.get(i);
+ updateListeners.get(i);
listener.thumbnailUpdate(this,
theThumbnail,
minX, minY,
@@ -2376,7 +2376,7 @@ public abstract class ImageReader {
int numListeners = updateListeners.size();
for (int i = 0; i < numListeners; i++) {
IIOReadUpdateListener listener =
- (IIOReadUpdateListener)updateListeners.get(i);
+ updateListeners.get(i);
listener.thumbnailPassComplete(this, theThumbnail);
}
}
@@ -2402,7 +2402,7 @@ public abstract class ImageReader {
int numListeners = warningListeners.size();
for (int i = 0; i < numListeners; i++) {
IIOReadWarningListener listener =
- (IIOReadWarningListener)warningListeners.get(i);
+ warningListeners.get(i);
listener.warningOccurred(this, warning);
}
@@ -2447,8 +2447,8 @@ public abstract class ImageReader {
int numListeners = warningListeners.size();
for (int i = 0; i < numListeners; i++) {
IIOReadWarningListener listener =
- (IIOReadWarningListener)warningListeners.get(i);
- Locale locale = (Locale)warningLocales.get(i);
+ warningListeners.get(i);
+ Locale locale = warningLocales.get(i);
if (locale == null) {
locale = Locale.getDefault();
}
@@ -2864,7 +2864,7 @@ public abstract class ImageReader {
boolean foundIt = false;
while (imageTypes.hasNext()) {
ImageTypeSpecifier type =
- (ImageTypeSpecifier)imageTypes.next();
+ imageTypes.next();
if (type.equals(imageType)) {
foundIt = true;
break;
diff --git a/jdk/src/share/classes/javax/imageio/ImageTypeSpecifier.java b/jdk/src/share/classes/javax/imageio/ImageTypeSpecifier.java
index c9c17dfe4c1..4c3295b5a4c 100644
--- a/jdk/src/share/classes/javax/imageio/ImageTypeSpecifier.java
+++ b/jdk/src/share/classes/javax/imageio/ImageTypeSpecifier.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -296,7 +296,7 @@ public class ImageTypeSpecifier {
("Bad value for dataType!");
}
this.colorSpace = colorSpace;
- this.bandOffsets = (int[])bandOffsets.clone();
+ this.bandOffsets = bandOffsets.clone();
this.dataType = dataType;
this.hasAlpha = hasAlpha;
this.isAlphaPremultiplied = isAlphaPremultiplied;
@@ -449,8 +449,8 @@ public class ImageTypeSpecifier {
}
this.colorSpace = colorSpace;
- this.bankIndices = (int[])bankIndices.clone();
- this.bandOffsets = (int[])bandOffsets.clone();
+ this.bankIndices = bankIndices.clone();
+ this.bandOffsets = bandOffsets.clone();
this.dataType = dataType;
this.hasAlpha = hasAlpha;
this.isAlphaPremultiplied = isAlphaPremultiplied;
@@ -769,11 +769,11 @@ public class ImageTypeSpecifier {
(alphaLUT != null && alphaLUT.length != len)) {
throw new IllegalArgumentException("LUT has improper length!");
}
- this.redLUT = (byte[])redLUT.clone();
- this.greenLUT = (byte[])greenLUT.clone();
- this.blueLUT = (byte[])blueLUT.clone();
+ this.redLUT = redLUT.clone();
+ this.greenLUT = greenLUT.clone();
+ this.blueLUT = blueLUT.clone();
if (alphaLUT != null) {
- this.alphaLUT = (byte[])alphaLUT.clone();
+ this.alphaLUT = alphaLUT.clone();
}
this.bits = bits;
this.dataType = dataType;
diff --git a/jdk/src/share/classes/javax/imageio/ImageWriteParam.java b/jdk/src/share/classes/javax/imageio/ImageWriteParam.java
index f903dd6f917..1823b0eb672 100644
--- a/jdk/src/share/classes/javax/imageio/ImageWriteParam.java
+++ b/jdk/src/share/classes/javax/imageio/ImageWriteParam.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -976,7 +976,7 @@ public class ImageWriteParam extends IIOParam {
if (compressionTypes == null) {
return null;
}
- return (String[])compressionTypes.clone();
+ return compressionTypes.clone();
}
/**
diff --git a/jdk/src/share/classes/javax/imageio/ImageWriter.java b/jdk/src/share/classes/javax/imageio/ImageWriter.java
index acb328d4215..78761150507 100644
--- a/jdk/src/share/classes/javax/imageio/ImageWriter.java
+++ b/jdk/src/share/classes/javax/imageio/ImageWriter.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -257,7 +257,7 @@ public abstract class ImageWriter implements ImageTranscoder {
*/
public Locale[] getAvailableLocales() {
return (availableLocales == null) ?
- null : (Locale[])availableLocales.clone();
+ null : availableLocales.clone();
}
/**
@@ -1754,7 +1754,7 @@ public abstract class ImageWriter implements ImageTranscoder {
int numListeners = progressListeners.size();
for (int i = 0; i < numListeners; i++) {
IIOWriteProgressListener listener =
- (IIOWriteProgressListener)progressListeners.get(i);
+ progressListeners.get(i);
listener.imageStarted(this, imageIndex);
}
}
@@ -1775,7 +1775,7 @@ public abstract class ImageWriter implements ImageTranscoder {
int numListeners = progressListeners.size();
for (int i = 0; i < numListeners; i++) {
IIOWriteProgressListener listener =
- (IIOWriteProgressListener)progressListeners.get(i);
+ progressListeners.get(i);
listener.imageProgress(this, percentageDone);
}
}
@@ -1793,7 +1793,7 @@ public abstract class ImageWriter implements ImageTranscoder {
int numListeners = progressListeners.size();
for (int i = 0; i < numListeners; i++) {
IIOWriteProgressListener listener =
- (IIOWriteProgressListener)progressListeners.get(i);
+ progressListeners.get(i);
listener.imageComplete(this);
}
}
@@ -1816,7 +1816,7 @@ public abstract class ImageWriter implements ImageTranscoder {
int numListeners = progressListeners.size();
for (int i = 0; i < numListeners; i++) {
IIOWriteProgressListener listener =
- (IIOWriteProgressListener)progressListeners.get(i);
+ progressListeners.get(i);
listener.thumbnailStarted(this, imageIndex, thumbnailIndex);
}
}
@@ -1837,7 +1837,7 @@ public abstract class ImageWriter implements ImageTranscoder {
int numListeners = progressListeners.size();
for (int i = 0; i < numListeners; i++) {
IIOWriteProgressListener listener =
- (IIOWriteProgressListener)progressListeners.get(i);
+ progressListeners.get(i);
listener.thumbnailProgress(this, percentageDone);
}
}
@@ -1855,7 +1855,7 @@ public abstract class ImageWriter implements ImageTranscoder {
int numListeners = progressListeners.size();
for (int i = 0; i < numListeners; i++) {
IIOWriteProgressListener listener =
- (IIOWriteProgressListener)progressListeners.get(i);
+ progressListeners.get(i);
listener.thumbnailComplete(this);
}
}
@@ -1873,7 +1873,7 @@ public abstract class ImageWriter implements ImageTranscoder {
int numListeners = progressListeners.size();
for (int i = 0; i < numListeners; i++) {
IIOWriteProgressListener listener =
- (IIOWriteProgressListener)progressListeners.get(i);
+ progressListeners.get(i);
listener.writeAborted(this);
}
}
@@ -1902,7 +1902,7 @@ public abstract class ImageWriter implements ImageTranscoder {
int numListeners = warningListeners.size();
for (int i = 0; i < numListeners; i++) {
IIOWriteWarningListener listener =
- (IIOWriteWarningListener)warningListeners.get(i);
+ warningListeners.get(i);
listener.warningOccurred(this, imageIndex, warning);
}
@@ -1950,8 +1950,8 @@ public abstract class ImageWriter implements ImageTranscoder {
int numListeners = warningListeners.size();
for (int i = 0; i < numListeners; i++) {
IIOWriteWarningListener listener =
- (IIOWriteWarningListener)warningListeners.get(i);
- Locale locale = (Locale)warningLocales.get(i);
+ warningListeners.get(i);
+ Locale locale = warningLocales.get(i);
if (locale == null) {
locale = Locale.getDefault();
}
diff --git a/jdk/src/share/classes/javax/imageio/metadata/IIOMetadata.java b/jdk/src/share/classes/javax/imageio/metadata/IIOMetadata.java
index 3040d64f7bd..c5f21249df6 100644
--- a/jdk/src/share/classes/javax/imageio/metadata/IIOMetadata.java
+++ b/jdk/src/share/classes/javax/imageio/metadata/IIOMetadata.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -191,10 +191,8 @@ public abstract class IIOMetadata {
throw new IllegalArgumentException
("extraMetadataFormatClassNames.length != extraMetadataFormatNames.length!");
}
- this.extraMetadataFormatNames =
- (String[]) extraMetadataFormatNames.clone();
- this.extraMetadataFormatClassNames =
- (String[]) extraMetadataFormatClassNames.clone();
+ this.extraMetadataFormatNames = extraMetadataFormatNames.clone();
+ this.extraMetadataFormatClassNames = extraMetadataFormatClassNames.clone();
} else {
if (extraMetadataFormatClassNames != null) {
throw new IllegalArgumentException
@@ -285,7 +283,7 @@ public abstract class IIOMetadata {
if (extraMetadataFormatNames == null) {
return null;
}
- return (String[])extraMetadataFormatNames.clone();
+ return extraMetadataFormatNames.clone();
}
/**
diff --git a/jdk/src/share/classes/javax/imageio/metadata/IIOMetadataFormatImpl.java b/jdk/src/share/classes/javax/imageio/metadata/IIOMetadataFormatImpl.java
index ef7caf3313e..a10de18ee94 100644
--- a/jdk/src/share/classes/javax/imageio/metadata/IIOMetadataFormatImpl.java
+++ b/jdk/src/share/classes/javax/imageio/metadata/IIOMetadataFormatImpl.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -1181,7 +1181,7 @@ public abstract class IIOMetadataFormatImpl implements IIOMetadataFormat {
private ObjectValue getObjectValue(String elementName) {
Element element = getElement(elementName);
- ObjectValue objv = (ObjectValue)element.objectValue;
+ ObjectValue objv = element.objectValue;
if (objv == null) {
throw new IllegalArgumentException("No object within element " +
elementName + "!");
@@ -1191,7 +1191,7 @@ public abstract class IIOMetadataFormatImpl implements IIOMetadataFormat {
public int getObjectValueType(String elementName) {
Element element = getElement(elementName);
- ObjectValue objv = (ObjectValue)element.objectValue;
+ ObjectValue objv = element.objectValue;
if (objv == null) {
return VALUE_NONE;
}
diff --git a/jdk/src/share/classes/javax/imageio/plugins/jpeg/JPEGImageReadParam.java b/jdk/src/share/classes/javax/imageio/plugins/jpeg/JPEGImageReadParam.java
index 720aa600129..f12e1e6ec3e 100644
--- a/jdk/src/share/classes/javax/imageio/plugins/jpeg/JPEGImageReadParam.java
+++ b/jdk/src/share/classes/javax/imageio/plugins/jpeg/JPEGImageReadParam.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -132,9 +132,9 @@ public class JPEGImageReadParam extends ImageReadParam {
throw new IllegalArgumentException
("Invalid JPEG table arrays");
}
- this.qTables = (JPEGQTable[])qTables.clone();
- this.DCHuffmanTables = (JPEGHuffmanTable[])DCHuffmanTables.clone();
- this.ACHuffmanTables = (JPEGHuffmanTable[])ACHuffmanTables.clone();
+ this.qTables = qTables.clone();
+ this.DCHuffmanTables = DCHuffmanTables.clone();
+ this.ACHuffmanTables = ACHuffmanTables.clone();
}
/**
@@ -160,7 +160,7 @@ public class JPEGImageReadParam extends ImageReadParam {
* @see #setDecodeTables
*/
public JPEGQTable[] getQTables() {
- return (qTables != null) ? (JPEGQTable[])qTables.clone() : null;
+ return (qTables != null) ? qTables.clone() : null;
}
/**
@@ -175,7 +175,7 @@ public class JPEGImageReadParam extends ImageReadParam {
*/
public JPEGHuffmanTable[] getDCHuffmanTables() {
return (DCHuffmanTables != null)
- ? (JPEGHuffmanTable[])DCHuffmanTables.clone()
+ ? DCHuffmanTables.clone()
: null;
}
@@ -191,7 +191,7 @@ public class JPEGImageReadParam extends ImageReadParam {
*/
public JPEGHuffmanTable[] getACHuffmanTables() {
return (ACHuffmanTables != null)
- ? (JPEGHuffmanTable[])ACHuffmanTables.clone()
+ ? ACHuffmanTables.clone()
: null;
}
}
diff --git a/jdk/src/share/classes/javax/imageio/plugins/jpeg/JPEGImageWriteParam.java b/jdk/src/share/classes/javax/imageio/plugins/jpeg/JPEGImageWriteParam.java
index b4df14e99c6..a445bf20a8a 100644
--- a/jdk/src/share/classes/javax/imageio/plugins/jpeg/JPEGImageWriteParam.java
+++ b/jdk/src/share/classes/javax/imageio/plugins/jpeg/JPEGImageWriteParam.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -167,7 +167,7 @@ public class JPEGImageWriteParam extends ImageWriteParam {
(getCompressionType() == null)) {
throw new IllegalStateException("No compression type set!");
}
- return (String[])qualityDescs.clone();
+ return qualityDescs.clone();
}
public float[] getCompressionQualityValues() {
@@ -179,7 +179,7 @@ public class JPEGImageWriteParam extends ImageWriteParam {
(getCompressionType() == null)) {
throw new IllegalStateException("No compression type set!");
}
- return (float[])qualityVals.clone();
+ return qualityVals.clone();
}
/**
* Returns true
if tables are currently set.
@@ -222,9 +222,9 @@ public class JPEGImageWriteParam extends ImageWriteParam {
(DCHuffmanTables.length != ACHuffmanTables.length)) {
throw new IllegalArgumentException("Invalid JPEG table arrays");
}
- this.qTables = (JPEGQTable[])qTables.clone();
- this.DCHuffmanTables = (JPEGHuffmanTable[])DCHuffmanTables.clone();
- this.ACHuffmanTables = (JPEGHuffmanTable[])ACHuffmanTables.clone();
+ this.qTables = qTables.clone();
+ this.DCHuffmanTables = DCHuffmanTables.clone();
+ this.ACHuffmanTables = ACHuffmanTables.clone();
}
/**
@@ -250,7 +250,7 @@ public class JPEGImageWriteParam extends ImageWriteParam {
* @see #setEncodeTables
*/
public JPEGQTable[] getQTables() {
- return (qTables != null) ? (JPEGQTable[])qTables.clone() : null;
+ return (qTables != null) ? qTables.clone() : null;
}
/**
@@ -265,7 +265,7 @@ public class JPEGImageWriteParam extends ImageWriteParam {
*/
public JPEGHuffmanTable[] getDCHuffmanTables() {
return (DCHuffmanTables != null)
- ? (JPEGHuffmanTable[])DCHuffmanTables.clone()
+ ? DCHuffmanTables.clone()
: null;
}
@@ -281,7 +281,7 @@ public class JPEGImageWriteParam extends ImageWriteParam {
*/
public JPEGHuffmanTable[] getACHuffmanTables() {
return (ACHuffmanTables != null)
- ? (JPEGHuffmanTable[])ACHuffmanTables.clone()
+ ? ACHuffmanTables.clone()
: null;
}
diff --git a/jdk/src/share/classes/javax/imageio/spi/ImageReaderSpi.java b/jdk/src/share/classes/javax/imageio/spi/ImageReaderSpi.java
index 36d08e6cfdb..9ce6de36c66 100644
--- a/jdk/src/share/classes/javax/imageio/spi/ImageReaderSpi.java
+++ b/jdk/src/share/classes/javax/imageio/spi/ImageReaderSpi.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -237,7 +237,7 @@ public abstract class ImageReaderSpi extends ImageReaderWriterSpi {
// If length == 0, leave it null
if (writerSpiNames != null && writerSpiNames.length > 0) {
- this.writerSpiNames = (String[])writerSpiNames.clone();
+ this.writerSpiNames = writerSpiNames.clone();
}
}
@@ -255,7 +255,7 @@ public abstract class ImageReaderSpi extends ImageReaderWriterSpi {
* Class
objects of length at least 1.
*/
public Class[] getInputTypes() {
- return (Class[])inputTypes.clone();
+ return inputTypes.clone();
}
/**
@@ -408,6 +408,6 @@ public abstract class ImageReaderSpi extends ImageReaderWriterSpi {
*/
public String[] getImageWriterSpiNames() {
return writerSpiNames == null ?
- null : (String[])writerSpiNames.clone();
+ null : writerSpiNames.clone();
}
}
diff --git a/jdk/src/share/classes/javax/imageio/spi/ImageReaderWriterSpi.java b/jdk/src/share/classes/javax/imageio/spi/ImageReaderWriterSpi.java
index 60c049d1eb4..4a5dd1416f4 100644
--- a/jdk/src/share/classes/javax/imageio/spi/ImageReaderWriterSpi.java
+++ b/jdk/src/share/classes/javax/imageio/spi/ImageReaderWriterSpi.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -239,14 +239,14 @@ public abstract class ImageReaderWriterSpi extends IIOServiceProvider {
throw new IllegalArgumentException("pluginClassName == null!");
}
- this.names = (String[])names.clone();
+ this.names = names.clone();
// If length == 0, leave it null
if (suffixes != null && suffixes.length > 0) {
- this.suffixes = (String[])suffixes.clone();
+ this.suffixes = suffixes.clone();
}
// If length == 0, leave it null
if (MIMETypes != null && MIMETypes.length > 0) {
- this.MIMETypes = (String[])MIMETypes.clone();
+ this.MIMETypes = MIMETypes.clone();
}
this.pluginClassName = pluginClassName;
@@ -259,13 +259,13 @@ public abstract class ImageReaderWriterSpi extends IIOServiceProvider {
if (extraStreamMetadataFormatNames != null &&
extraStreamMetadataFormatNames.length > 0) {
this.extraStreamMetadataFormatNames =
- (String[])extraStreamMetadataFormatNames.clone();
+ extraStreamMetadataFormatNames.clone();
}
// If length == 0, leave it null
if (extraStreamMetadataFormatClassNames != null &&
extraStreamMetadataFormatClassNames.length > 0) {
this.extraStreamMetadataFormatClassNames =
- (String[])extraStreamMetadataFormatClassNames.clone();
+ extraStreamMetadataFormatClassNames.clone();
}
this.supportsStandardImageMetadataFormat =
supportsStandardImageMetadataFormat;
@@ -276,13 +276,13 @@ public abstract class ImageReaderWriterSpi extends IIOServiceProvider {
if (extraImageMetadataFormatNames != null &&
extraImageMetadataFormatNames.length > 0) {
this.extraImageMetadataFormatNames =
- (String[])extraImageMetadataFormatNames.clone();
+ extraImageMetadataFormatNames.clone();
}
// If length == 0, leave it null
if (extraImageMetadataFormatClassNames != null &&
extraImageMetadataFormatClassNames.length > 0) {
this.extraImageMetadataFormatClassNames =
- (String[])extraImageMetadataFormatClassNames.clone();
+ extraImageMetadataFormatClassNames.clone();
}
}
@@ -308,7 +308,7 @@ public abstract class ImageReaderWriterSpi extends IIOServiceProvider {
* associated with this reader or writer.
*/
public String[] getFormatNames() {
- return (String[])names.clone();
+ return names.clone();
}
/**
@@ -332,7 +332,7 @@ public abstract class ImageReaderWriterSpi extends IIOServiceProvider {
* writer, or null
.
*/
public String[] getFileSuffixes() {
- return suffixes == null ? null : (String[])suffixes.clone();
+ return suffixes == null ? null : suffixes.clone();
}
/**
@@ -367,7 +367,7 @@ public abstract class ImageReaderWriterSpi extends IIOServiceProvider {
* null
.
*/
public String[] getMIMETypes() {
- return MIMETypes == null ? null : (String[])MIMETypes.clone();
+ return MIMETypes == null ? null : MIMETypes.clone();
}
/**
@@ -443,7 +443,7 @@ public abstract class ImageReaderWriterSpi extends IIOServiceProvider {
*/
public String[] getExtraStreamMetadataFormatNames() {
return extraStreamMetadataFormatNames == null ?
- null : (String[])extraStreamMetadataFormatNames.clone();
+ null : extraStreamMetadataFormatNames.clone();
}
/**
@@ -507,7 +507,7 @@ public abstract class ImageReaderWriterSpi extends IIOServiceProvider {
*/
public String[] getExtraImageMetadataFormatNames() {
return extraImageMetadataFormatNames == null ?
- null : (String[])extraImageMetadataFormatNames.clone();
+ null : extraImageMetadataFormatNames.clone();
}
/**
diff --git a/jdk/src/share/classes/javax/imageio/spi/ImageWriterSpi.java b/jdk/src/share/classes/javax/imageio/spi/ImageWriterSpi.java
index 7fc1a334a9f..19d17145452 100644
--- a/jdk/src/share/classes/javax/imageio/spi/ImageWriterSpi.java
+++ b/jdk/src/share/classes/javax/imageio/spi/ImageWriterSpi.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -238,7 +238,7 @@ public abstract class ImageWriterSpi extends ImageReaderWriterSpi {
// If length == 0, leave it null
if (readerSpiNames != null && readerSpiNames.length > 0) {
- this.readerSpiNames = (String[])readerSpiNames.clone();
+ this.readerSpiNames = readerSpiNames.clone();
}
}
@@ -268,7 +268,7 @@ public abstract class ImageWriterSpi extends ImageReaderWriterSpi {
* Class
objects of length at least 1.
*/
public Class[] getOutputTypes() {
- return (Class[])outputTypes.clone();
+ return outputTypes.clone();
}
/**
@@ -435,6 +435,6 @@ public abstract class ImageWriterSpi extends ImageReaderWriterSpi {
*/
public String[] getImageReaderSpiNames() {
return readerSpiNames == null ?
- null : (String[])readerSpiNames.clone();
+ null : readerSpiNames.clone();
}
}
diff --git a/jdk/src/share/classes/javax/management/remote/JMXServiceURL.java b/jdk/src/share/classes/javax/management/remote/JMXServiceURL.java
index 4b1c376eda1..4f9c36e9509 100644
--- a/jdk/src/share/classes/javax/management/remote/JMXServiceURL.java
+++ b/jdk/src/share/classes/javax/management/remote/JMXServiceURL.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -344,7 +344,7 @@ public class JMXServiceURL implements Serializable {
private void readObject(ObjectInputStream inputStream) throws IOException, ClassNotFoundException {
ObjectInputStream.GetField gf = inputStream.readFields();
String h = (String)gf.get("host", null);
- int p = (int)gf.get("port", -1);
+ int p = gf.get("port", -1);
String proto = (String)gf.get("protocol", null);
String url = (String)gf.get("urlPath", null);
diff --git a/jdk/src/share/classes/javax/print/DocFlavor.java b/jdk/src/share/classes/javax/print/DocFlavor.java
index 1d5464edb10..3c94623c222 100644
--- a/jdk/src/share/classes/javax/print/DocFlavor.java
+++ b/jdk/src/share/classes/javax/print/DocFlavor.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -460,7 +460,7 @@ public class DocFlavor implements Serializable, Cloneable {
static {
hostEncoding =
- (String)java.security.AccessController.doPrivileged(
+ java.security.AccessController.doPrivileged(
new sun.security.action.GetPropertyAction("file.encoding"));
}
diff --git a/jdk/src/share/classes/javax/print/attribute/HashAttributeSet.java b/jdk/src/share/classes/javax/print/attribute/HashAttributeSet.java
index f8d9aa99298..a1995014525 100644
--- a/jdk/src/share/classes/javax/print/attribute/HashAttributeSet.java
+++ b/jdk/src/share/classes/javax/print/attribute/HashAttributeSet.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -382,7 +382,7 @@ public class HashAttributeSet implements AttributeSet, Serializable {
return
attribute != null &&
attribute instanceof Attribute &&
- attribute.equals(attrMap.get(((Attribute)attribute).getCategory()));
+ attribute.equals(attrMap.get(attribute.getCategory()));
}
/**
diff --git a/jdk/src/share/classes/javax/print/attribute/standard/Compression.java b/jdk/src/share/classes/javax/print/attribute/standard/Compression.java
index 5679a73f850..8dbbfaf8aa1 100644
--- a/jdk/src/share/classes/javax/print/attribute/standard/Compression.java
+++ b/jdk/src/share/classes/javax/print/attribute/standard/Compression.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -94,7 +94,7 @@ public class Compression extends EnumSyntax implements DocAttribute {
* Returns the string table for class Compression.
*/
protected String[] getStringTable() {
- return (String[])myStringTable.clone();
+ return myStringTable.clone();
}
/**
diff --git a/jdk/src/share/classes/javax/print/attribute/standard/Finishings.java b/jdk/src/share/classes/javax/print/attribute/standard/Finishings.java
index 413bc7d1f47..cc21389cbaf 100644
--- a/jdk/src/share/classes/javax/print/attribute/standard/Finishings.java
+++ b/jdk/src/share/classes/javax/print/attribute/standard/Finishings.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -430,7 +430,7 @@ public class Finishings extends EnumSyntax
* Returns the string table for class Finishings.
*/
protected String[] getStringTable() {
- return (String[])myStringTable.clone();
+ return myStringTable.clone();
}
/**
diff --git a/jdk/src/share/classes/javax/print/attribute/standard/JobSheets.java b/jdk/src/share/classes/javax/print/attribute/standard/JobSheets.java
index 7919000ad97..a9811135325 100644
--- a/jdk/src/share/classes/javax/print/attribute/standard/JobSheets.java
+++ b/jdk/src/share/classes/javax/print/attribute/standard/JobSheets.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -94,7 +94,7 @@ public class JobSheets extends EnumSyntax
* Returns the string table for class JobSheets.
*/
protected String[] getStringTable() {
- return (String[])myStringTable.clone();
+ return myStringTable.clone();
}
/**
diff --git a/jdk/src/share/classes/javax/print/attribute/standard/JobStateReason.java b/jdk/src/share/classes/javax/print/attribute/standard/JobStateReason.java
index f835666d884..a3de1c5c9ff 100644
--- a/jdk/src/share/classes/javax/print/attribute/standard/JobStateReason.java
+++ b/jdk/src/share/classes/javax/print/attribute/standard/JobStateReason.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -420,7 +420,7 @@ public class JobStateReason extends EnumSyntax implements Attribute {
* Returns the string table for class JobStateReason.
*/
protected String[] getStringTable() {
- return (String[])myStringTable.clone();
+ return myStringTable.clone();
}
/**
diff --git a/jdk/src/share/classes/javax/print/attribute/standard/JobStateReasons.java b/jdk/src/share/classes/javax/print/attribute/standard/JobStateReasons.java
index d9e225f621f..19ea46f2367 100644
--- a/jdk/src/share/classes/javax/print/attribute/standard/JobStateReasons.java
+++ b/jdk/src/share/classes/javax/print/attribute/standard/JobStateReasons.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -149,7 +149,7 @@ public final class JobStateReasons
if (o == null) {
throw new NullPointerException();
}
- return super.add ((JobStateReason) o);
+ return super.add(o);
}
/**
diff --git a/jdk/src/share/classes/javax/print/attribute/standard/MediaName.java b/jdk/src/share/classes/javax/print/attribute/standard/MediaName.java
index 78ae6a82d0a..28772c1ae83 100644
--- a/jdk/src/share/classes/javax/print/attribute/standard/MediaName.java
+++ b/jdk/src/share/classes/javax/print/attribute/standard/MediaName.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -98,7 +98,7 @@ public class MediaName extends Media implements Attribute {
*/
protected String[] getStringTable()
{
- return (String[])myStringTable.clone();
+ return myStringTable.clone();
}
/**
diff --git a/jdk/src/share/classes/javax/print/attribute/standard/MediaSizeName.java b/jdk/src/share/classes/javax/print/attribute/standard/MediaSizeName.java
index 8dae36f9783..bbb266ba891 100644
--- a/jdk/src/share/classes/javax/print/attribute/standard/MediaSizeName.java
+++ b/jdk/src/share/classes/javax/print/attribute/standard/MediaSizeName.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -550,7 +550,7 @@ public class MediaSizeName extends Media {
*/
protected String[] getStringTable()
{
- return (String[])myStringTable.clone();
+ return myStringTable.clone();
}
/**
diff --git a/jdk/src/share/classes/javax/print/attribute/standard/MediaTray.java b/jdk/src/share/classes/javax/print/attribute/standard/MediaTray.java
index 318a2e7c778..9a4da0a408e 100644
--- a/jdk/src/share/classes/javax/print/attribute/standard/MediaTray.java
+++ b/jdk/src/share/classes/javax/print/attribute/standard/MediaTray.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -124,7 +124,7 @@ public class MediaTray extends Media implements Attribute {
*/
protected String[] getStringTable()
{
- return (String[])myStringTable.clone();
+ return myStringTable.clone();
}
/**
diff --git a/jdk/src/share/classes/javax/print/attribute/standard/MultipleDocumentHandling.java b/jdk/src/share/classes/javax/print/attribute/standard/MultipleDocumentHandling.java
index 0ddbbe5d296..c7f5f5e7664 100644
--- a/jdk/src/share/classes/javax/print/attribute/standard/MultipleDocumentHandling.java
+++ b/jdk/src/share/classes/javax/print/attribute/standard/MultipleDocumentHandling.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -228,7 +228,7 @@ public class MultipleDocumentHandling extends EnumSyntax
* Returns the string table for class MultipleDocumentHandling.
*/
protected String[] getStringTable() {
- return (String[])myStringTable.clone();
+ return myStringTable.clone();
}
/**
diff --git a/jdk/src/share/classes/javax/print/attribute/standard/PDLOverrideSupported.java b/jdk/src/share/classes/javax/print/attribute/standard/PDLOverrideSupported.java
index a362da86656..8f1ce4eda9a 100644
--- a/jdk/src/share/classes/javax/print/attribute/standard/PDLOverrideSupported.java
+++ b/jdk/src/share/classes/javax/print/attribute/standard/PDLOverrideSupported.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -88,7 +88,7 @@ public class PDLOverrideSupported extends EnumSyntax
* Returns the string table for class PDLOverrideSupported.
*/
protected String[] getStringTable() {
- return (String[])myStringTable.clone();
+ return myStringTable.clone();
}
/**
diff --git a/jdk/src/share/classes/javax/print/attribute/standard/PrintQuality.java b/jdk/src/share/classes/javax/print/attribute/standard/PrintQuality.java
index 3a644cff6c9..1ed3caf8254 100644
--- a/jdk/src/share/classes/javax/print/attribute/standard/PrintQuality.java
+++ b/jdk/src/share/classes/javax/print/attribute/standard/PrintQuality.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -88,7 +88,7 @@ public class PrintQuality extends EnumSyntax
* Returns the string table for class PrintQuality.
*/
protected String[] getStringTable() {
- return (String[])myStringTable.clone();
+ return myStringTable.clone();
}
/**
diff --git a/jdk/src/share/classes/javax/print/attribute/standard/PrinterStateReason.java b/jdk/src/share/classes/javax/print/attribute/standard/PrinterStateReason.java
index b461a5d0dad..5c4f48f8853 100644
--- a/jdk/src/share/classes/javax/print/attribute/standard/PrinterStateReason.java
+++ b/jdk/src/share/classes/javax/print/attribute/standard/PrinterStateReason.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -403,7 +403,7 @@ public class PrinterStateReason extends EnumSyntax implements Attribute {
* Returns the string table for class PrinterStateReason.
*/
protected String[] getStringTable() {
- return (String[])myStringTable.clone();
+ return myStringTable.clone();
}
/**
diff --git a/jdk/src/share/classes/javax/sound/midi/MidiFileFormat.java b/jdk/src/share/classes/javax/sound/midi/MidiFileFormat.java
index 1d4669a2458..0d496490dd0 100644
--- a/jdk/src/share/classes/javax/sound/midi/MidiFileFormat.java
+++ b/jdk/src/share/classes/javax/sound/midi/MidiFileFormat.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -273,7 +273,7 @@ public class MidiFileFormat {
} else {
ret = (Map) (properties.clone());
}
- return (Map) Collections.unmodifiableMap(ret);
+ return Collections.unmodifiableMap(ret);
}
diff --git a/jdk/src/share/classes/javax/sound/midi/MidiSystem.java b/jdk/src/share/classes/javax/sound/midi/MidiSystem.java
index ac13aa58a86..d0eab92865e 100644
--- a/jdk/src/share/classes/javax/sound/midi/MidiSystem.java
+++ b/jdk/src/share/classes/javax/sound/midi/MidiSystem.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -472,7 +472,7 @@ public class MidiSystem {
} catch (MidiUnavailableException e) {
// something went wrong with synth
if (e instanceof MidiUnavailableException) {
- mue = (MidiUnavailableException) e;
+ mue = e;
}
}
if (rec == null) {
diff --git a/jdk/src/share/classes/javax/sound/midi/Sequence.java b/jdk/src/share/classes/javax/sound/midi/Sequence.java
index 7fb0778beda..14cb66110ed 100644
--- a/jdk/src/share/classes/javax/sound/midi/Sequence.java
+++ b/jdk/src/share/classes/javax/sound/midi/Sequence.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -284,7 +284,7 @@ public class Sequence {
*/
public Track[] getTracks() {
- return (Track[]) tracks.toArray(new Track[tracks.size()]);
+ return tracks.toArray(new Track[tracks.size()]);
}
@@ -312,7 +312,7 @@ public class Sequence {
synchronized(tracks) {
for(int i=0; ilength ) {
length = temp;
}
diff --git a/jdk/src/share/classes/javax/sound/sampled/AudioFileFormat.java b/jdk/src/share/classes/javax/sound/sampled/AudioFileFormat.java
index 659399e616f..63f43dcc160 100644
--- a/jdk/src/share/classes/javax/sound/sampled/AudioFileFormat.java
+++ b/jdk/src/share/classes/javax/sound/sampled/AudioFileFormat.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -251,7 +251,7 @@ public class AudioFileFormat {
} else {
ret = (Map) (properties.clone());
}
- return (Map) Collections.unmodifiableMap(ret);
+ return Collections.unmodifiableMap(ret);
}
diff --git a/jdk/src/share/classes/javax/sound/sampled/AudioFormat.java b/jdk/src/share/classes/javax/sound/sampled/AudioFormat.java
index 775331f6ba6..cd084fcd32d 100644
--- a/jdk/src/share/classes/javax/sound/sampled/AudioFormat.java
+++ b/jdk/src/share/classes/javax/sound/sampled/AudioFormat.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -403,7 +403,7 @@ public class AudioFormat {
} else {
ret = (Map) (properties.clone());
}
- return (Map) Collections.unmodifiableMap(ret);
+ return Collections.unmodifiableMap(ret);
}
diff --git a/jdk/src/share/classes/javax/sound/sampled/AudioSystem.java b/jdk/src/share/classes/javax/sound/sampled/AudioSystem.java
index 97e7af39c7e..17c0f26d6fb 100644
--- a/jdk/src/share/classes/javax/sound/sampled/AudioSystem.java
+++ b/jdk/src/share/classes/javax/sound/sampled/AudioSystem.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -1609,8 +1609,7 @@ public class AudioSystem {
Mixer.Info[] allInfos; // for all mixers
for(int i = 0; i < providers.size(); i++ ) {
- someInfos = (Mixer.Info[])
- ((MixerProvider)providers.get(i)).getMixerInfo();
+ someInfos = ((MixerProvider)providers.get(i)).getMixerInfo();
for (int j = 0; j < someInfos.length; j++) {
infos.add(someInfos[j]);
diff --git a/jdk/src/share/classes/javax/swing/MenuSelectionManager.java b/jdk/src/share/classes/javax/swing/MenuSelectionManager.java
index 4de2ac804ad..8bde555e018 100644
--- a/jdk/src/share/classes/javax/swing/MenuSelectionManager.java
+++ b/jdk/src/share/classes/javax/swing/MenuSelectionManager.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -246,7 +246,7 @@ public class MenuSelectionManager {
selectionSize = tmp.size();
boolean success = false;
for (i=selectionSize - 1;i >= 0 && success == false; i--) {
- menuElement = (MenuElement) tmp.elementAt(i);
+ menuElement = tmp.elementAt(i);
subElements = menuElement.getSubElements();
path = null;
@@ -277,7 +277,7 @@ public class MenuSelectionManager {
if(path == null) {
path = new MenuElement[i+2];
for(k=0;k<=i;k++)
- path[k] = (MenuElement)tmp.elementAt(k);
+ path[k] = tmp.elementAt(k);
}
path[i+1] = subElements[j];
MenuElement currentSelection[] = getSelectedPath();
@@ -388,7 +388,7 @@ public class MenuSelectionManager {
tmp = (Vector)selection.clone();
selectionSize = tmp.size();
for(i=selectionSize - 1 ; i >= 0 ; i--) {
- menuElement = (MenuElement) tmp.elementAt(i);
+ menuElement = tmp.elementAt(i);
subElements = menuElement.getSubElements();
for(j = 0, d = subElements.length ; j < d ; j++) {
diff --git a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMPGPData.java b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMPGPData.java
index d37cb62880c..bf3109c49d9 100644
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMPGPData.java
+++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMPGPData.java
@@ -85,7 +85,7 @@ public final class DOMPGPData extends DOMStructure implements PGPData {
}
}
}
- this.keyPacket = (byte[])keyPacket.clone();
+ this.keyPacket = keyPacket.clone();
checkKeyPacket(keyPacket);
this.keyId = null;
}
@@ -132,9 +132,9 @@ public final class DOMPGPData extends DOMStructure implements PGPData {
}
}
}
- this.keyId = (byte[])keyId.clone();
+ this.keyId = keyId.clone();
this.keyPacket = keyPacket == null ? null
- : (byte[])keyPacket.clone();
+ : keyPacket.clone();
if (keyPacket != null) {
checkKeyPacket(keyPacket);
}
@@ -177,11 +177,11 @@ public final class DOMPGPData extends DOMStructure implements PGPData {
}
public byte[] getKeyId() {
- return (keyId == null ? null : (byte[])keyId.clone());
+ return (keyId == null ? null : keyId.clone());
}
public byte[] getKeyPacket() {
- return (keyPacket == null ? null : (byte[])keyPacket.clone());
+ return (keyPacket == null ? null : keyPacket.clone());
}
public List getExternalElements() {
diff --git a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMReference.java b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMReference.java
index f80df4dac42..de4f9f833d1 100644
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMReference.java
+++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMReference.java
@@ -182,7 +182,7 @@ public final class DOMReference extends DOMStructure
this.type = type;
this.id = id;
if (digestValue != null) {
- this.digestValue = (byte[])digestValue.clone();
+ this.digestValue = digestValue.clone();
this.digested = true;
}
this.appliedTransformData = result;
@@ -298,12 +298,12 @@ public final class DOMReference extends DOMStructure
}
public byte[] getDigestValue() {
- return (digestValue == null ? null : (byte[])digestValue.clone());
+ return (digestValue == null ? null : digestValue.clone());
}
public byte[] getCalculatedDigestValue() {
return (calcDigestValue == null ? null
- : (byte[])calcDigestValue.clone());
+ : calcDigestValue.clone());
}
public void marshal(Node parent, String dsPrefix, DOMCryptoContext context)
diff --git a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMXMLSignature.java b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMXMLSignature.java
index 32c1dcf06c0..e2cbf656993 100644
--- a/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMXMLSignature.java
+++ b/jdk/src/share/classes/org/jcp/xml/dsig/internal/dom/DOMXMLSignature.java
@@ -535,7 +535,7 @@ public final class DOMXMLSignature extends DOMStructure
}
public byte[] getValue() {
- return (value == null) ? null : (byte[])value.clone();
+ return (value == null) ? null : value.clone();
}
public boolean validate(XMLValidateContext validateContext)
diff --git a/jdk/src/share/classes/sun/applet/AppletMessageHandler.java b/jdk/src/share/classes/sun/applet/AppletMessageHandler.java
index 44e208c626f..d05dc0bfc19 100644
--- a/jdk/src/share/classes/sun/applet/AppletMessageHandler.java
+++ b/jdk/src/share/classes/sun/applet/AppletMessageHandler.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1996, 1997, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -53,11 +53,11 @@ class AppletMessageHandler {
}
String getMessage(String key) {
- return (String)rb.getString(getQualifiedKey(key));
+ return rb.getString(getQualifiedKey(key));
}
String getMessage(String key, Object arg){
- String basemsgfmt = (String)rb.getString(getQualifiedKey(key));
+ String basemsgfmt = rb.getString(getQualifiedKey(key));
MessageFormat msgfmt = new MessageFormat(basemsgfmt);
Object msgobj[] = new Object[1];
if (arg == null) {
@@ -68,7 +68,7 @@ class AppletMessageHandler {
}
String getMessage(String key, Object arg1, Object arg2) {
- String basemsgfmt = (String)rb.getString(getQualifiedKey(key));
+ String basemsgfmt = rb.getString(getQualifiedKey(key));
MessageFormat msgfmt = new MessageFormat(basemsgfmt);
Object msgobj[] = new Object[2];
if (arg1 == null) {
@@ -83,7 +83,7 @@ class AppletMessageHandler {
}
String getMessage(String key, Object arg1, Object arg2, Object arg3) {
- String basemsgfmt = (String)rb.getString(getQualifiedKey(key));
+ String basemsgfmt = rb.getString(getQualifiedKey(key));
MessageFormat msgfmt = new MessageFormat(basemsgfmt);
Object msgobj[] = new Object[3];
if (arg1 == null) {
@@ -102,7 +102,7 @@ class AppletMessageHandler {
}
String getMessage(String key, Object arg[]) {
- String basemsgfmt = (String)rb.getString(getQualifiedKey(key));
+ String basemsgfmt = rb.getString(getQualifiedKey(key));
MessageFormat msgfmt = new MessageFormat(basemsgfmt);
return msgfmt.format(arg);
}
diff --git a/jdk/src/share/classes/sun/applet/AppletPanel.java b/jdk/src/share/classes/sun/applet/AppletPanel.java
index 2d1da2cdac0..52ddab9e5db 100644
--- a/jdk/src/share/classes/sun/applet/AppletPanel.java
+++ b/jdk/src/share/classes/sun/applet/AppletPanel.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1995, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -1215,8 +1215,8 @@ abstract class AppletPanel extends Panel implements AppletStub, Runnable {
synchronized(appletClass) {
// Determine if the JDK level of an applet has been
// checked before.
- Boolean jdk11Target = (Boolean) loader.isJDK11Target(appletClass);
- Boolean jdk12Target = (Boolean) loader.isJDK12Target(appletClass);
+ Boolean jdk11Target = loader.isJDK11Target(appletClass);
+ Boolean jdk12Target = loader.isJDK12Target(appletClass);
// if applet JDK level has been checked before, retrieve
// value and return.
diff --git a/jdk/src/share/classes/sun/applet/AppletProps.java b/jdk/src/share/classes/sun/applet/AppletProps.java
index 429afdcc41c..38a76a4afc2 100644
--- a/jdk/src/share/classes/sun/applet/AppletProps.java
+++ b/jdk/src/share/classes/sun/applet/AppletProps.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1995, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -75,12 +75,12 @@ class AppletProps extends Frame {
if (security != null)
security.reset();
- String proxyhost = (String) AccessController.doPrivileged(
+ String proxyhost = AccessController.doPrivileged(
new GetPropertyAction("http.proxyHost"));
- String proxyport = (String) AccessController.doPrivileged(
+ String proxyport = AccessController.doPrivileged(
new GetPropertyAction("http.proxyPort"));
- Boolean tmp = (Boolean) AccessController.doPrivileged(
+ Boolean tmp = AccessController.doPrivileged(
new GetBooleanAction("package.restrict.access.sun"));
boolean packageRestrict = tmp.booleanValue();
diff --git a/jdk/src/share/classes/sun/applet/Main.java b/jdk/src/share/classes/sun/applet/Main.java
index 23670743740..0ce2c129b75 100644
--- a/jdk/src/share/classes/sun/applet/Main.java
+++ b/jdk/src/share/classes/sun/applet/Main.java
@@ -369,7 +369,7 @@ public class Main {
Properties sysProps = System.getProperties();
for (Enumeration e = sysProps.propertyNames(); e.hasMoreElements(); ) {
String key = (String) e.nextElement();
- String val = (String) sysProps.getProperty(key);
+ String val = sysProps.getProperty(key);
String oldVal;
if ((oldVal = (String) avProps.setProperty(key, val)) != null)
System.err.println(lookup("main.warn.prop.overwrite", key,
diff --git a/jdk/src/share/classes/sun/audio/AudioStream.java b/jdk/src/share/classes/sun/audio/AudioStream.java
index 7fdf2559b97..266f5eb88ef 100644
--- a/jdk/src/share/classes/sun/audio/AudioStream.java
+++ b/jdk/src/share/classes/sun/audio/AudioStream.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -133,7 +133,7 @@ public final class AudioStream extends FilterInputStream {
ais.getFormat().getFrameSize() );
} else if ( midiformat != null ) {
- return (int) midiformat.getByteLength();
+ return midiformat.getByteLength();
} else {
return -1;
diff --git a/jdk/src/share/classes/sun/awt/FontConfiguration.java b/jdk/src/share/classes/sun/awt/FontConfiguration.java
index e779316cb91..5d8b35ebe39 100644
--- a/jdk/src/share/classes/sun/awt/FontConfiguration.java
+++ b/jdk/src/share/classes/sun/awt/FontConfiguration.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -1504,10 +1504,10 @@ public abstract class FontConfiguration {
printTable(table_elcIDs, 0);
System.out.println("\n----sequences-------------");
for (int ii = 0; ii< table_elcIDs.length; ii++) {
- System.out.println(" " + ii + "/" + getString((short)table_elcIDs[ii]));
+ System.out.println(" " + ii + "/" + getString(table_elcIDs[ii]));
short[] ss = getShortArray(table_sequences[ii * NUM_FONTS + 0]);
for (int jj = 0; jj < ss.length; jj++) {
- System.out.println(" " + getString((short)table_scriptIDs[ss[jj]]));
+ System.out.println(" " + getString(table_scriptIDs[ss[jj]]));
}
}
System.out.println("\n----fontfileNameIDs-------");
@@ -1533,9 +1533,9 @@ public abstract class FontConfiguration {
System.out.println("\n----proportionals--------");
for (int ii = 0; ii < table_proportionals.length; ii++) {
System.out.println(" "
- + getString((short)table_componentFontNameIDs[table_proportionals[ii++]])
+ + getString(table_componentFontNameIDs[table_proportionals[ii++]])
+ " -> "
- + getString((short)table_componentFontNameIDs[table_proportionals[ii]]));
+ + getString(table_componentFontNameIDs[table_proportionals[ii]]));
}
int i = 0;
System.out.println("\n----alphabeticSuffix----");
diff --git a/jdk/src/share/classes/sun/awt/FontDescriptor.java b/jdk/src/share/classes/sun/awt/FontDescriptor.java
index fc1df5a2a50..0a4f0045906 100644
--- a/jdk/src/share/classes/sun/awt/FontDescriptor.java
+++ b/jdk/src/share/classes/sun/awt/FontDescriptor.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1996, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -113,7 +113,7 @@ public class FontDescriptor implements Cloneable {
}
static boolean isLE;
static {
- String enc = (String) java.security.AccessController.doPrivileged(
+ String enc = java.security.AccessController.doPrivileged(
new sun.security.action.GetPropertyAction("sun.io.unicode.encoding",
"UnicodeBig"));
isLE = !"UnicodeBig".equals(enc);
diff --git a/jdk/src/share/classes/sun/awt/IconInfo.java b/jdk/src/share/classes/sun/awt/IconInfo.java
index 0ae1f733e05..8473fdee764 100644
--- a/jdk/src/share/classes/sun/awt/IconInfo.java
+++ b/jdk/src/share/classes/sun/awt/IconInfo.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -182,7 +182,7 @@ public class IconInfo {
private static long[] intArrayToLongArray(int[] intData) {
long[] longData = new long[intData.length];
for (int i = 0; i < intData.length; i++) {
- longData[i] = (int)intData[i];
+ longData[i] = intData[i];
}
return longData;
}
diff --git a/jdk/src/share/classes/sun/awt/PlatformFont.java b/jdk/src/share/classes/sun/awt/PlatformFont.java
index 8b34c5c443a..f88b192715f 100644
--- a/jdk/src/share/classes/sun/awt/PlatformFont.java
+++ b/jdk/src/share/classes/sun/awt/PlatformFont.java
@@ -270,7 +270,7 @@ public abstract class PlatformFont implements FontPeer {
currentDefaultChar = data[stringIndex];
// Note that cache sizes must be a power of two!
- cacheIndex = (int)(currentDefaultChar & PlatformFont.FONTCACHEMASK);
+ cacheIndex = (currentDefaultChar & PlatformFont.FONTCACHEMASK);
theChar = (PlatformFontCache)getFontCache()[cacheIndex];
@@ -280,7 +280,7 @@ public abstract class PlatformFont implements FontPeer {
/* find a converter that can convert the current character */
currentFontDescriptor = defaultFont;
currentDefaultChar = defaultChar;
- char ch = (char)data[stringIndex];
+ char ch = data[stringIndex];
int componentCount = componentFonts.length;
for (int j = 0; j < componentCount; j++) {
diff --git a/jdk/src/share/classes/sun/awt/datatransfer/ClipboardTransferable.java b/jdk/src/share/classes/sun/awt/datatransfer/ClipboardTransferable.java
index 4335a3567b6..110d7bd532f 100644
--- a/jdk/src/share/classes/sun/awt/datatransfer/ClipboardTransferable.java
+++ b/jdk/src/share/classes/sun/awt/datatransfer/ClipboardTransferable.java
@@ -144,7 +144,7 @@ public class ClipboardTransferable implements Transferable {
}
public DataFlavor[] getTransferDataFlavors() {
- return (DataFlavor[])flavors.clone();
+ return flavors.clone();
}
public boolean isDataFlavorSupported(DataFlavor flavor) {
diff --git a/jdk/src/share/classes/sun/awt/image/ByteBandedRaster.java b/jdk/src/share/classes/sun/awt/image/ByteBandedRaster.java
index e3277160b70..78903979d6f 100644
--- a/jdk/src/share/classes/sun/awt/image/ByteBandedRaster.java
+++ b/jdk/src/share/classes/sun/awt/image/ByteBandedRaster.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -169,7 +169,7 @@ public class ByteBandedRaster extends SunWritableRaster {
* of the band.
*/
public int[] getDataOffsets() {
- return (int[])dataOffsets.clone();
+ return dataOffsets.clone();
}
/**
diff --git a/jdk/src/share/classes/sun/awt/image/ByteComponentRaster.java b/jdk/src/share/classes/sun/awt/image/ByteComponentRaster.java
index 13954f3a364..9695d3a0df8 100644
--- a/jdk/src/share/classes/sun/awt/image/ByteComponentRaster.java
+++ b/jdk/src/share/classes/sun/awt/image/ByteComponentRaster.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -207,7 +207,7 @@ public class ByteComponentRaster extends SunWritableRaster {
* band.
*/
public int[] getDataOffsets() {
- return (int[]) dataOffsets.clone();
+ return dataOffsets.clone();
}
/**
diff --git a/jdk/src/share/classes/sun/awt/image/ByteInterleavedRaster.java b/jdk/src/share/classes/sun/awt/image/ByteInterleavedRaster.java
index 4279ce1f90a..ec0fef12623 100644
--- a/jdk/src/share/classes/sun/awt/image/ByteInterleavedRaster.java
+++ b/jdk/src/share/classes/sun/awt/image/ByteInterleavedRaster.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -259,7 +259,7 @@ public class ByteInterleavedRaster extends ByteComponentRaster {
* band.
*/
public int[] getDataOffsets() {
- return (int[]) dataOffsets.clone();
+ return dataOffsets.clone();
}
/**
diff --git a/jdk/src/share/classes/sun/awt/image/IntegerComponentRaster.java b/jdk/src/share/classes/sun/awt/image/IntegerComponentRaster.java
index 2f495971cf4..a95ce0d015d 100644
--- a/jdk/src/share/classes/sun/awt/image/IntegerComponentRaster.java
+++ b/jdk/src/share/classes/sun/awt/image/IntegerComponentRaster.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -218,7 +218,7 @@ public class IntegerComponentRaster extends SunWritableRaster {
* band.
*/
public int[] getDataOffsets() {
- return (int[]) dataOffsets.clone();
+ return dataOffsets.clone();
}
/**
diff --git a/jdk/src/share/classes/sun/awt/image/IntegerInterleavedRaster.java b/jdk/src/share/classes/sun/awt/image/IntegerInterleavedRaster.java
index 2d0d22ec59c..b226f07efcb 100644
--- a/jdk/src/share/classes/sun/awt/image/IntegerInterleavedRaster.java
+++ b/jdk/src/share/classes/sun/awt/image/IntegerInterleavedRaster.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -161,7 +161,7 @@ public class IntegerInterleavedRaster extends IntegerComponentRaster {
* band.
*/
public int[] getDataOffsets() {
- return (int[]) dataOffsets.clone();
+ return dataOffsets.clone();
}
/**
diff --git a/jdk/src/share/classes/sun/awt/image/ShortBandedRaster.java b/jdk/src/share/classes/sun/awt/image/ShortBandedRaster.java
index 058a2573c09..45ef9eb21f3 100644
--- a/jdk/src/share/classes/sun/awt/image/ShortBandedRaster.java
+++ b/jdk/src/share/classes/sun/awt/image/ShortBandedRaster.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -165,7 +165,7 @@ public class ShortBandedRaster extends SunWritableRaster {
* band.
*/
public int[] getDataOffsets() {
- return (int[]) dataOffsets.clone();
+ return dataOffsets.clone();
}
/**
diff --git a/jdk/src/share/classes/sun/awt/image/ShortComponentRaster.java b/jdk/src/share/classes/sun/awt/image/ShortComponentRaster.java
index a84da635599..53f3ff3e3e6 100644
--- a/jdk/src/share/classes/sun/awt/image/ShortComponentRaster.java
+++ b/jdk/src/share/classes/sun/awt/image/ShortComponentRaster.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -207,7 +207,7 @@ public class ShortComponentRaster extends SunWritableRaster {
* band.
*/
public int[] getDataOffsets() {
- return (int[]) dataOffsets.clone();
+ return dataOffsets.clone();
}
/**
@@ -470,7 +470,7 @@ public class ShortComponentRaster extends SunWritableRaster {
int off = (y-minY)*scanlineStride +
(x-minX)*pixelStride;
for (int i = 0; i < numDataElements; i++) {
- data[dataOffsets[i] + off] = (short) inData[i];
+ data[dataOffsets[i] + off] = inData[i];
}
markDirty();
@@ -576,7 +576,7 @@ public class ShortComponentRaster extends SunWritableRaster {
xoff = yoff;
for (xstart=0; xstart < w; xstart++, xoff += pixelStride) {
for (int c = 0; c < numDataElements; c++) {
- data[dataOffsets[c] + xoff] = (short) inData[off++];
+ data[dataOffsets[c] + xoff] = inData[off++];
}
}
}
diff --git a/jdk/src/share/classes/sun/awt/image/ShortInterleavedRaster.java b/jdk/src/share/classes/sun/awt/image/ShortInterleavedRaster.java
index c55d111d7fd..4602c19aab0 100644
--- a/jdk/src/share/classes/sun/awt/image/ShortInterleavedRaster.java
+++ b/jdk/src/share/classes/sun/awt/image/ShortInterleavedRaster.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -180,7 +180,7 @@ public class ShortInterleavedRaster extends ShortComponentRaster {
* band.
*/
public int[] getDataOffsets() {
- return (int[]) dataOffsets.clone();
+ return dataOffsets.clone();
}
/**
@@ -443,7 +443,7 @@ public class ShortInterleavedRaster extends ShortComponentRaster {
int off = (y-minY)*scanlineStride +
(x-minX)*pixelStride;
for (int i = 0; i < numDataElements; i++) {
- data[dataOffsets[i] + off] = (short) inData[i];
+ data[dataOffsets[i] + off] = inData[i];
}
markDirty();
}
@@ -548,7 +548,7 @@ public class ShortInterleavedRaster extends ShortComponentRaster {
xoff = yoff;
for (xstart=0; xstart < w; xstart++, xoff += pixelStride) {
for (int c = 0; c < numDataElements; c++) {
- data[dataOffsets[c] + xoff] = (short) inData[off++];
+ data[dataOffsets[c] + xoff] = inData[off++];
}
}
}
diff --git a/jdk/src/share/classes/sun/awt/image/VSyncedBSManager.java b/jdk/src/share/classes/sun/awt/image/VSyncedBSManager.java
index 91cb0684244..1445795abe7 100644
--- a/jdk/src/share/classes/sun/awt/image/VSyncedBSManager.java
+++ b/jdk/src/share/classes/sun/awt/image/VSyncedBSManager.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -36,7 +36,7 @@ public abstract class VSyncedBSManager {
private static VSyncedBSManager theInstance;
private static final boolean vSyncLimit =
- Boolean.valueOf((String)java.security.AccessController.doPrivileged(
+ Boolean.valueOf(java.security.AccessController.doPrivileged(
new sun.security.action.GetPropertyAction(
"sun.java2d.vsynclimit", "true")));
diff --git a/jdk/src/share/classes/sun/font/CompositeFont.java b/jdk/src/share/classes/sun/font/CompositeFont.java
index 43b392b5ff2..54329695d49 100644
--- a/jdk/src/share/classes/sun/font/CompositeFont.java
+++ b/jdk/src/share/classes/sun/font/CompositeFont.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -447,7 +447,7 @@ public final class CompositeFont extends Font2D {
}
public String toString() {
- String ls = (String)java.security.AccessController.doPrivileged(
+ String ls = java.security.AccessController.doPrivileged(
new sun.security.action.GetPropertyAction("line.separator"));
String componentsStr = "";
for (int i=0; i result.x) {
result.x += 1;
result.width -=1;
@@ -912,7 +912,7 @@ public class FileFontStrike extends PhysicalStrike {
if (outlineMapRef != null) {
outlineMap = outlineMapRef.get();
if (outlineMap != null) {
- gp = (GeneralPath)outlineMap.get(glyphCode);
+ gp = outlineMap.get(glyphCode);
}
}
diff --git a/jdk/src/share/classes/sun/font/FontLineMetrics.java b/jdk/src/share/classes/sun/font/FontLineMetrics.java
index 57e1ffa279b..9053ff07265 100644
--- a/jdk/src/share/classes/sun/font/FontLineMetrics.java
+++ b/jdk/src/share/classes/sun/font/FontLineMetrics.java
@@ -75,7 +75,7 @@ public final class FontLineMetrics extends LineMetrics implements Cloneable {
}
public final float[] getBaselineOffsets() {
- return (float[])cm.baselineOffsets.clone();
+ return cm.baselineOffsets.clone();
}
public final float getStrikethroughOffset() {
diff --git a/jdk/src/share/classes/sun/font/StandardGlyphVector.java b/jdk/src/share/classes/sun/font/StandardGlyphVector.java
index 66001682dff..75951ac451e 100644
--- a/jdk/src/share/classes/sun/font/StandardGlyphVector.java
+++ b/jdk/src/share/classes/sun/font/StandardGlyphVector.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -727,7 +727,7 @@ public class StandardGlyphVector extends GlyphVector {
result.clearCaches();
if (positions != null) {
- result.positions = (float[])positions.clone();
+ result.positions = positions.clone();
}
if (gti != null) {
@@ -775,7 +775,7 @@ public class StandardGlyphVector extends GlyphVector {
throw new IllegalArgumentException("srcPositions.length != " + requiredLength);
}
- positions = (float[])srcPositions.clone();
+ positions = srcPositions.clone();
clearCaches();
addFlags(FLAG_HAS_POSITION_ADJUSTMENTS);
@@ -1391,8 +1391,8 @@ public class StandardGlyphVector extends GlyphVector {
GlyphTransformInfo(StandardGlyphVector sgv, GlyphTransformInfo rhs) {
this.sgv = sgv;
- this.indices = rhs.indices == null ? null : (int[])rhs.indices.clone();
- this.transforms = rhs.transforms == null ? null : (double[])rhs.transforms.clone();
+ this.indices = rhs.indices == null ? null : rhs.indices.clone();
+ this.transforms = rhs.transforms == null ? null : rhs.transforms.clone();
this.strikesRef = null; // can't share cache, so rather than clone, we just null out
}
diff --git a/jdk/src/share/classes/sun/font/StrikeCache.java b/jdk/src/share/classes/sun/font/StrikeCache.java
index 3c927ebf8b0..eeda70c7132 100644
--- a/jdk/src/share/classes/sun/font/StrikeCache.java
+++ b/jdk/src/share/classes/sun/font/StrikeCache.java
@@ -351,7 +351,7 @@ public final class StrikeCache {
if (gids == null) {
gids = new ArrayList();
}
- gids.add((long) glyphPtrs[i]);
+ gids.add(glyphPtrs[i]);
}
}
diff --git a/jdk/src/share/classes/sun/font/SunFontManager.java b/jdk/src/share/classes/sun/font/SunFontManager.java
index d9f073345e9..cd366f0c96d 100644
--- a/jdk/src/share/classes/sun/font/SunFontManager.java
+++ b/jdk/src/share/classes/sun/font/SunFontManager.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2008, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -683,8 +683,7 @@ public abstract class SunFontManager implements FontSupport, FontManagerForSGE {
* no effect - this is typically the case only when using the Windows
* L&F where these APIs would conflict with that L&F anyway.
*/
- Font2D oldFont = (Font2D)
- altNameCache.get(compositeName.toLowerCase(Locale.ENGLISH));
+ Font2D oldFont =altNameCache.get(compositeName.toLowerCase(Locale.ENGLISH));
if (oldFont instanceof CompositeFont) {
oldFont.handle.font2D = cf;
}
@@ -1992,7 +1991,7 @@ public abstract class SunFontManager implements FontSupport, FontManagerForSGE {
if (family == null || familyName == null) {
return null;
}
- String [] fontList = (String[])family.toArray(STR_ARRAY);
+ String [] fontList = family.toArray(STR_ARRAY);
if (fontList.length == 0) {
return null;
}
@@ -2085,7 +2084,7 @@ public abstract class SunFontManager implements FontSupport, FontManagerForSGE {
(ConcurrentHashMap)
AppContext.getAppContext().get(CompositeFont.class);
if (altNameCache != null) {
- font = (Font2D)altNameCache.get(mapName);
+ font = altNameCache.get(mapName);
} else {
font = null;
}
@@ -2628,8 +2627,7 @@ public abstract class SunFontManager implements FontSupport, FontManagerForSGE {
fullNameToFont.remove(oldFont.fullName.toLowerCase(Locale.ENGLISH));
FontFamily.remove(oldFont);
if (localeFullNamesToFont != null) {
- Map.Entry[] mapEntries =
- (Map.Entry[])localeFullNamesToFont.entrySet().
+ Map.Entry[] mapEntries = localeFullNamesToFont.entrySet().
toArray(new Map.Entry[0]);
/* Should I be replacing these, or just I just remove
* the names from the map?
@@ -3100,7 +3098,7 @@ public abstract class SunFontManager implements FontSupport, FontManagerForSGE {
if (font == null) {
return;
}
- String[] keys = (String[])(fontNameCache.keySet().toArray(STR_ARRAY));
+ String[] keys = fontNameCache.keySet().toArray(STR_ARRAY);
for (int k=0; k MAX_PSSTR) {
psBytesPerRow /= 2;
}
diff --git a/jdk/src/share/classes/sun/print/RasterPrinterJob.java b/jdk/src/share/classes/sun/print/RasterPrinterJob.java
index 0f81a4ff13b..dae42e789d9 100644
--- a/jdk/src/share/classes/sun/print/RasterPrinterJob.java
+++ b/jdk/src/share/classes/sun/print/RasterPrinterJob.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -181,8 +181,7 @@ public abstract class RasterPrinterJob extends PrinterJob {
* use a particular pipeline. Either the raster
* pipeline or the pdl pipeline can be forced.
*/
- String forceStr =
- (String)java.security.AccessController.doPrivileged(
+ String forceStr = java.security.AccessController.doPrivileged(
new sun.security.action.GetPropertyAction(FORCE_PIPE_PROP));
if (forceStr != null) {
@@ -193,8 +192,7 @@ public abstract class RasterPrinterJob extends PrinterJob {
}
}
- String shapeTextStr =
- (String)java.security.AccessController.doPrivileged(
+ String shapeTextStr =java.security.AccessController.doPrivileged(
new sun.security.action.GetPropertyAction(SHAPE_TEXT_PROP));
if (shapeTextStr != null) {
@@ -512,12 +510,10 @@ public abstract class RasterPrinterJob extends PrinterJob {
} else {
// Check the list of services. This service may have been
// deleted already
- PrinterState prnState = (PrinterState)service.getAttribute(
- PrinterState.class);
+ PrinterState prnState = service.getAttribute(PrinterState.class);
if (prnState == PrinterState.STOPPED) {
PrinterStateReasons prnStateReasons =
- (PrinterStateReasons)service.getAttribute(
- PrinterStateReasons.class);
+ service.getAttribute(PrinterStateReasons.class);
if ((prnStateReasons != null) &&
(prnStateReasons.containsKey(PrinterStateReason.SHUTDOWN)))
{
@@ -1353,12 +1349,10 @@ public abstract class RasterPrinterJob extends PrinterJob {
// Check the list of services. This service may have been
// deleted already
- PrinterState prnState = (PrinterState)psvc.getAttribute(
- PrinterState.class);
+ PrinterState prnState = psvc.getAttribute(PrinterState.class);
if (prnState == PrinterState.STOPPED) {
PrinterStateReasons prnStateReasons =
- (PrinterStateReasons)psvc.getAttribute(
- PrinterStateReasons.class);
+ psvc.getAttribute(PrinterStateReasons.class);
if ((prnStateReasons != null) &&
(prnStateReasons.containsKey(PrinterStateReason.SHUTDOWN)))
{
@@ -1366,8 +1360,7 @@ public abstract class RasterPrinterJob extends PrinterJob {
}
}
- if ((PrinterIsAcceptingJobs)(psvc.getAttribute(
- PrinterIsAcceptingJobs.class)) ==
+ if ((psvc.getAttribute(PrinterIsAcceptingJobs.class)) ==
PrinterIsAcceptingJobs.NOT_ACCEPTING_JOBS) {
throw new PrinterException("Printer is not accepting job.");
}
@@ -2035,7 +2028,7 @@ public abstract class RasterPrinterJob extends PrinterJob {
* fact that we can only create 24 bit per pixel 3 byte BGR
* BufferedImages. FIX.
*/
- int bandHeight = (int)(MAX_BAND_SIZE / bandWidth / 3);
+ int bandHeight = (MAX_BAND_SIZE / bandWidth / 3);
int deviceLeft = (int)Math.rint(paper.getImageableX() * xScale);
int deviceTop = (int)Math.rint(paper.getImageableY() * yScale);
diff --git a/jdk/src/share/classes/sun/tools/javac/SourceClass.java b/jdk/src/share/classes/sun/tools/javac/SourceClass.java
index 0a1741d7b31..d1744baf3c6 100644
--- a/jdk/src/share/classes/sun/tools/javac/SourceClass.java
+++ b/jdk/src/share/classes/sun/tools/javac/SourceClass.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1994, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1994, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -154,7 +154,7 @@ class SourceClass extends ClassDefinition {
// maybe define an uplevel "A.this" current instance field
if (!isTopLevel() && !isLocal()) {
- LocalMember outerArg = ((SourceClass)outerClass).getThisArgument();
+ LocalMember outerArg = outerClass.getThisArgument();
UplevelReference r = getReference(outerArg);
setOuterMember(r.getLocalField(env));
}
diff --git a/jdk/src/share/classes/sun/tools/jconsole/ProxyClient.java b/jdk/src/share/classes/sun/tools/jconsole/ProxyClient.java
index 301eae167c9..05c827608d0 100644
--- a/jdk/src/share/classes/sun/tools/jconsole/ProxyClient.java
+++ b/jdk/src/share/classes/sun/tools/jconsole/ProxyClient.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -711,7 +711,7 @@ public class ProxyClient implements JConsoleContext {
memoryPoolProxies = new ArrayList();
Iterator iterator = mbeans.iterator();
while (iterator.hasNext()) {
- ObjectName objName = (ObjectName) iterator.next();
+ ObjectName objName = iterator.next();
MemoryPoolProxy p = new MemoryPoolProxy(this, objName);
memoryPoolProxies.add(p);
}
@@ -737,7 +737,7 @@ public class ProxyClient implements JConsoleContext {
garbageCollectorMBeans = new ArrayList();
Iterator iterator = mbeans.iterator();
while (iterator.hasNext()) {
- ObjectName on = (ObjectName) iterator.next();
+ ObjectName on = iterator.next();
String name = GARBAGE_COLLECTOR_MXBEAN_DOMAIN_TYPE +
",name=" + on.getKeyProperty("name");
diff --git a/jdk/src/share/classes/sun/tools/jconsole/ThreadTab.java b/jdk/src/share/classes/sun/tools/jconsole/ThreadTab.java
index b43a7c57edd..a38b9d68408 100644
--- a/jdk/src/share/classes/sun/tools/jconsole/ThreadTab.java
+++ b/jdk/src/share/classes/sun/tools/jconsole/ThreadTab.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -311,7 +311,7 @@ class ThreadTab extends Tab implements ActionListener, DocumentListener, ListSel
ThreadJList list = (ThreadJList)ev.getSource();
final JTextArea textArea = list.textArea;
- Long selected = (Long)list.getSelectedValue();
+ Long selected = list.getSelectedValue();
if (selected == null) {
if (lastSelected != -1) {
selected = lastSelected;
diff --git a/jdk/src/share/classes/sun/tools/jconsole/inspector/XOpenTypeViewer.java b/jdk/src/share/classes/sun/tools/jconsole/inspector/XOpenTypeViewer.java
index e5f0b11df14..456ffce1408 100644
--- a/jdk/src/share/classes/sun/tools/jconsole/inspector/XOpenTypeViewer.java
+++ b/jdk/src/share/classes/sun/tools/jconsole/inspector/XOpenTypeViewer.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -389,7 +389,7 @@ public class XOpenTypeViewer extends JPanel implements ActionListener {
Iterator it = keys.iterator();
Object[] rowData = new Object[2];
while (it.hasNext()) {
- String key = (String) it.next();
+ String key = it.next();
Object val = data.get(key);
rowData[0] = formatKey(key);
if (val == null) {
diff --git a/jdk/src/share/classes/sun/tools/jconsole/inspector/XPlottingViewer.java b/jdk/src/share/classes/sun/tools/jconsole/inspector/XPlottingViewer.java
index e6c2d17f411..10ec71e823b 100644
--- a/jdk/src/share/classes/sun/tools/jconsole/inspector/XPlottingViewer.java
+++ b/jdk/src/share/classes/sun/tools/jconsole/inspector/XPlottingViewer.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -76,7 +76,7 @@ public class XPlottingViewer extends PlotterPanel implements ActionListener {
//plotterCache.clear();
it = timerCache.keySet().iterator();
while(it.hasNext()) {
- String key = (String) it.next();
+ String key = it.next();
if(key.startsWith(String.valueOf(tab.hashCode()))) {
Timer t = timerCache.get(key);
t.cancel();
diff --git a/jdk/src/share/classes/sun/tools/tree/ConvertExpression.java b/jdk/src/share/classes/sun/tools/tree/ConvertExpression.java
index 760d78b4536..13fdb2f89bb 100644
--- a/jdk/src/share/classes/sun/tools/tree/ConvertExpression.java
+++ b/jdk/src/share/classes/sun/tools/tree/ConvertExpression.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1994, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1994, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -65,7 +65,7 @@ class ConvertExpression extends UnaryExpression {
case TC_BYTE: return new ByteExpression(right.where, (byte)value);
case TC_CHAR: return new CharExpression(right.where, (char)value);
case TC_SHORT: return new ShortExpression(right.where, (short)value);
- case TC_INT: return new IntExpression(right.where, (int)value);
+ case TC_INT: return new IntExpression(right.where, value);
case TC_LONG: return new LongExpression(right.where, (long)value);
case TC_FLOAT: return new FloatExpression(right.where, (float)value);
case TC_DOUBLE: return new DoubleExpression(right.where, (double)value);
diff --git a/jdk/src/solaris/classes/sun/awt/UNIXToolkit.java b/jdk/src/solaris/classes/sun/awt/UNIXToolkit.java
index 50a913c5438..2fad1b6b4a7 100644
--- a/jdk/src/solaris/classes/sun/awt/UNIXToolkit.java
+++ b/jdk/src/solaris/classes/sun/awt/UNIXToolkit.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -49,7 +49,7 @@ public abstract class UNIXToolkit extends SunToolkit
private BufferedImage tmpImage = null;
public static int getDatatransferTimeout() {
- Integer dt = (Integer)AccessController.doPrivileged(
+ Integer dt = AccessController.doPrivileged(
new GetIntegerAction("sun.awt.datatransfer.timeout"));
if (dt == null || dt <= 0) {
return DEFAULT_DATATRANSFER_TIMEOUT;
diff --git a/jdk/src/solaris/classes/sun/awt/X11/InfoWindow.java b/jdk/src/solaris/classes/sun/awt/X11/InfoWindow.java
index 20c6174c2ee..48a5b946c81 100644
--- a/jdk/src/solaris/classes/sun/awt/X11/InfoWindow.java
+++ b/jdk/src/solaris/classes/sun/awt/X11/InfoWindow.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -451,7 +451,7 @@ public abstract class InfoWindow extends Window {
while (true) {
Message msg = null;
try {
- msg = (Message)messageQueue.take();
+ msg = messageQueue.take();
} catch (InterruptedException e) {
return;
}
diff --git a/jdk/src/solaris/classes/sun/awt/X11/MotifDnDConstants.java b/jdk/src/solaris/classes/sun/awt/X11/MotifDnDConstants.java
index f35ba1c7e43..26e2cdbbba3 100644
--- a/jdk/src/solaris/classes/sun/awt/X11/MotifDnDConstants.java
+++ b/jdk/src/solaris/classes/sun/awt/X11/MotifDnDConstants.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -163,7 +163,7 @@ class MotifDnDConstants {
XlibWrapper.XGrabServer(newDisplay);
try {
- XlibWrapper.XSetCloseDownMode(newDisplay, (int)XConstants.RetainPermanent);
+ XlibWrapper.XSetCloseDownMode(newDisplay, XConstants.RetainPermanent);
XSetWindowAttributes xwa = new XSetWindowAttributes();
@@ -435,7 +435,7 @@ class MotifDnDConstants {
if (formats.length > 0) {
// Make a defensive copy.
- formats = (long[])formats.clone();
+ formats = formats.clone();
Arrays.sort(formats);
}
diff --git a/jdk/src/solaris/classes/sun/awt/X11/MotifDnDDragSourceProtocol.java b/jdk/src/solaris/classes/sun/awt/X11/MotifDnDDragSourceProtocol.java
index 85cd5448fd5..35109ebac70 100644
--- a/jdk/src/solaris/classes/sun/awt/X11/MotifDnDDragSourceProtocol.java
+++ b/jdk/src/solaris/classes/sun/awt/X11/MotifDnDDragSourceProtocol.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -201,7 +201,7 @@ class MotifDnDDragSourceProtocol extends XDragSourceProtocol
* CARD32 heap_offset B32;
* } xmDragReceiverInfoStruct;
*/
- if (status == (int)XConstants.Success && wpg.getData() != 0 &&
+ if (status == XConstants.Success && wpg.getData() != 0 &&
wpg.getActualType() != 0 && wpg.getActualFormat() == 8 &&
wpg.getNumberOfItems() >=
MotifDnDConstants.MOTIF_RECEIVER_INFO_SIZE) {
diff --git a/jdk/src/solaris/classes/sun/awt/X11/MotifDnDDropTargetProtocol.java b/jdk/src/solaris/classes/sun/awt/X11/MotifDnDDropTargetProtocol.java
index 652b9e9e3af..735bf144df2 100644
--- a/jdk/src/solaris/classes/sun/awt/X11/MotifDnDDropTargetProtocol.java
+++ b/jdk/src/solaris/classes/sun/awt/X11/MotifDnDDropTargetProtocol.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -118,7 +118,7 @@ class MotifDnDDropTargetProtocol extends XDropTargetProtocol {
* CARD32 heap_offset B32;
* } xmDragReceiverInfoStruct;
*/
- if (status == (int)XConstants.Success && wpg.getData() != 0 &&
+ if (status == XConstants.Success && wpg.getData() != 0 &&
wpg.getActualType() != 0 && wpg.getActualFormat() == 8 &&
wpg.getNumberOfItems() >=
MotifDnDConstants.MOTIF_RECEIVER_INFO_SIZE) {
@@ -220,7 +220,7 @@ class MotifDnDDropTargetProtocol extends XDropTargetProtocol {
* CARD32 heap_offset B32;
* } xmDragReceiverInfoStruct;
*/
- if (status == (int)XConstants.Success && wpg.getData() != 0 &&
+ if (status == XConstants.Success && wpg.getData() != 0 &&
wpg.getActualType() != 0 && wpg.getActualFormat() == 8 &&
wpg.getNumberOfItems() >=
MotifDnDConstants.MOTIF_RECEIVER_INFO_SIZE) {
@@ -292,7 +292,7 @@ class MotifDnDDropTargetProtocol extends XDropTargetProtocol {
* CARD32 heap_offset B32;
* } xmDragReceiverInfoStruct;
*/
- if (status == (int)XConstants.Success && wpg.getData() != 0 &&
+ if (status == XConstants.Success && wpg.getData() != 0 &&
wpg.getActualType() != 0 && wpg.getActualFormat() == 8 &&
wpg.getNumberOfItems() >=
MotifDnDConstants.MOTIF_RECEIVER_INFO_SIZE) {
@@ -327,7 +327,7 @@ class MotifDnDDropTargetProtocol extends XDropTargetProtocol {
try {
int status = wpg.execute(XErrorHandler.IgnoreBadWindowHandler.getInstance());
- if (status == (int)XConstants.Success && wpg.getData() != 0 &&
+ if (status == XConstants.Success && wpg.getData() != 0 &&
wpg.getActualType() != 0 && wpg.getActualFormat() == 8 &&
wpg.getNumberOfItems() >=
MotifDnDConstants.MOTIF_RECEIVER_INFO_SIZE) {
diff --git a/jdk/src/solaris/classes/sun/awt/X11/XAWTFormatter.java b/jdk/src/solaris/classes/sun/awt/X11/XAWTFormatter.java
index 20117bc47ad..a2145dcc3c2 100644
--- a/jdk/src/solaris/classes/sun/awt/X11/XAWTFormatter.java
+++ b/jdk/src/solaris/classes/sun/awt/X11/XAWTFormatter.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -43,7 +43,7 @@ public class XAWTFormatter extends java.util.logging.Formatter {
// Line separator string. This is the value of the line.separator
// property at the moment that the SimpleFormatter was created.
- private String lineSeparator = (String) java.security.AccessController.doPrivileged(
+ private String lineSeparator = java.security.AccessController.doPrivileged(
new sun.security.action.GetPropertyAction("line.separator"));
boolean displayFullRecord = false;
diff --git a/jdk/src/solaris/classes/sun/awt/X11/XAtom.java b/jdk/src/solaris/classes/sun/awt/X11/XAtom.java
index 56ebd11b5dd..2d37879e057 100644
--- a/jdk/src/solaris/classes/sun/awt/X11/XAtom.java
+++ b/jdk/src/solaris/classes/sun/awt/X11/XAtom.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -681,7 +681,7 @@ public final class XAtom {
return emptyList;
}
- int count = (int)getter.getNumberOfItems();
+ int count = getter.getNumberOfItems();
if (count == 0) {
return emptyList;
}
diff --git a/jdk/src/solaris/classes/sun/awt/X11/XBaseMenuWindow.java b/jdk/src/solaris/classes/sun/awt/X11/XBaseMenuWindow.java
index 2ccfcd083a5..1d82f04a78c 100644
--- a/jdk/src/solaris/classes/sun/awt/X11/XBaseMenuWindow.java
+++ b/jdk/src/solaris/classes/sun/awt/X11/XBaseMenuWindow.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -292,7 +292,7 @@ abstract public class XBaseMenuWindow extends XWindow {
*/
XMenuItemPeer[] copyItems() {
synchronized(getMenuTreeLock()) {
- return (XMenuItemPeer[])items.toArray(new XMenuItemPeer[] {});
+ return items.toArray(new XMenuItemPeer[] {});
}
}
diff --git a/jdk/src/solaris/classes/sun/awt/X11/XBaseWindow.java b/jdk/src/solaris/classes/sun/awt/X11/XBaseWindow.java
index 28db82f8a99..1d8804ec9c6 100644
--- a/jdk/src/solaris/classes/sun/awt/X11/XBaseWindow.java
+++ b/jdk/src/solaris/classes/sun/awt/X11/XBaseWindow.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -285,7 +285,7 @@ public class XBaseWindow {
params.putIfNull(BOUNDS, new Rectangle(DEF_LOCATION, DEF_LOCATION, MIN_SIZE, MIN_SIZE));
params.putIfNull(DEPTH, Integer.valueOf((int)XConstants.CopyFromParent));
params.putIfNull(VISUAL, Long.valueOf(XConstants.CopyFromParent));
- params.putIfNull(VISUAL_CLASS, Integer.valueOf((int)XConstants.InputOnly));
+ params.putIfNull(VISUAL_CLASS, Integer.valueOf(XConstants.InputOnly));
params.putIfNull(VALUE_MASK, Long.valueOf(XConstants.CWEventMask));
Rectangle bounds = (Rectangle)params.get(BOUNDS);
bounds.width = Math.max(MIN_SIZE, bounds.width);
@@ -544,7 +544,7 @@ public class XBaseWindow {
}
flags |= XUtilConstants.PWinGravity;
hints.set_flags(flags);
- hints.set_win_gravity((int)XConstants.NorthWestGravity);
+ hints.set_win_gravity(XConstants.NorthWestGravity);
if (insLog.isLoggable(PlatformLogger.Level.FINER)) {
insLog.finer("Setting hints, resulted flags " + XlibWrapper.hintsToString(flags) +
", values " + hints);
diff --git a/jdk/src/solaris/classes/sun/awt/X11/XComponentPeer.java b/jdk/src/solaris/classes/sun/awt/X11/XComponentPeer.java
index 54249bbe7d7..6bdff13fdc9 100644
--- a/jdk/src/solaris/classes/sun/awt/X11/XComponentPeer.java
+++ b/jdk/src/solaris/classes/sun/awt/X11/XComponentPeer.java
@@ -335,7 +335,7 @@ public class XComponentPeer extends XWindow implements ComponentPeer, DropTarget
return rejectFocusRequestHelper("Waiting for asynchronous processing of the request");
}
return XKeyboardFocusManagerPeer.deliverFocus(lightweightChild,
- (Component)target,
+ target,
temporary,
focusedWindowChangeAllowed,
time, cause);
diff --git a/jdk/src/solaris/classes/sun/awt/X11/XContentWindow.java b/jdk/src/solaris/classes/sun/awt/X11/XContentWindow.java
index fcdd6d09f6c..85e578b4052 100644
--- a/jdk/src/solaris/classes/sun/awt/X11/XContentWindow.java
+++ b/jdk/src/solaris/classes/sun/awt/X11/XContentWindow.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -137,7 +137,7 @@ public final class XContentWindow extends XWindow {
// NOTE: This method may be called by privileged threads.
// DO NOT INVOKE CLIENT CODE ON THIS THREAD!
public void handleResize(Rectangle bounds) {
- AWTAccessor.getComponentAccessor().setSize((Component)target, bounds.width, bounds.height);
+ AWTAccessor.getComponentAccessor().setSize(target, bounds.width, bounds.height);
postEvent(new ComponentEvent(target, ComponentEvent.COMPONENT_RESIZED));
}
diff --git a/jdk/src/solaris/classes/sun/awt/X11/XDecoratedPeer.java b/jdk/src/solaris/classes/sun/awt/X11/XDecoratedPeer.java
index fa5c884020a..f37cfbc22e9 100644
--- a/jdk/src/solaris/classes/sun/awt/X11/XDecoratedPeer.java
+++ b/jdk/src/solaris/classes/sun/awt/X11/XDecoratedPeer.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -318,7 +318,7 @@ abstract class XDecoratedPeer extends XWindowPeer {
insets_corrected = true;
return;
}
- Component t = (Component)target;
+ Component t = target;
if (getDecorations() == XWindowAttributesData.AWT_DECOR_NONE) {
setReparented(true);
insets_corrected = true;
@@ -428,7 +428,7 @@ abstract class XDecoratedPeer extends XWindowPeer {
public void handleMoved(WindowDimensions dims) {
Point loc = dims.getLocation();
- AWTAccessor.getComponentAccessor().setLocation((Component)target, loc.x, loc.y);
+ AWTAccessor.getComponentAccessor().setLocation(target, loc.x, loc.y);
postEvent(new ComponentEvent(target, ComponentEvent.COMPONENT_MOVED));
}
@@ -536,8 +536,8 @@ abstract class XDecoratedPeer extends XWindowPeer {
// its location changes.
Point oldLocation = getLocation();
- Point newLocation = new Point(AWTAccessor.getComponentAccessor().getX((Component)target),
- AWTAccessor.getComponentAccessor().getY((Component)target));
+ Point newLocation = new Point(AWTAccessor.getComponentAccessor().getX(target),
+ AWTAccessor.getComponentAccessor().getY(target));
if (!newLocation.equals(oldLocation)) {
handleMoved(newDimensions);
@@ -738,7 +738,7 @@ abstract class XDecoratedPeer extends XWindowPeer {
updateChildrenSizes();
// Bounds of the window
- Rectangle targetBounds = AWTAccessor.getComponentAccessor().getBounds((Component)target);
+ Rectangle targetBounds = AWTAccessor.getComponentAccessor().getBounds(target);
Point newLocation = getNewLocation(xe, currentInsets.left, currentInsets.top);
@@ -1052,10 +1052,10 @@ abstract class XDecoratedPeer extends XWindowPeer {
final void dumpTarget() {
AWTAccessor.ComponentAccessor compAccessor = AWTAccessor.getComponentAccessor();
- int getWidth = compAccessor.getWidth((Component)target);
- int getHeight = compAccessor.getHeight((Component)target);
- int getTargetX = compAccessor.getX((Component)target);
- int getTargetY = compAccessor.getY((Component)target);
+ int getWidth = compAccessor.getWidth(target);
+ int getHeight = compAccessor.getHeight(target);
+ int getTargetX = compAccessor.getX(target);
+ int getTargetY = compAccessor.getY(target);
System.err.println(">>> Target: " + getTargetX + ", " + getTargetY + ", " + getWidth + ", " + getHeight);
}
diff --git a/jdk/src/solaris/classes/sun/awt/X11/XDnDDragSourceProtocol.java b/jdk/src/solaris/classes/sun/awt/X11/XDnDDragSourceProtocol.java
index 8a22f65eba1..b1e6f2ad041 100644
--- a/jdk/src/solaris/classes/sun/awt/X11/XDnDDragSourceProtocol.java
+++ b/jdk/src/solaris/classes/sun/awt/X11/XDnDDragSourceProtocol.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -283,7 +283,7 @@ class XDnDDragSourceProtocol extends XDragSourceProtocol {
XClientMessageEvent msg = new XClientMessageEvent();
try {
- msg.set_type((int)XConstants.ClientMessage);
+ msg.set_type(XConstants.ClientMessage);
msg.set_window(getTargetWindow());
msg.set_format(32);
msg.set_message_type(XDnDConstants.XA_XdndEnter.getAtom());
@@ -311,7 +311,7 @@ class XDnDDragSourceProtocol extends XDragSourceProtocol {
XClientMessageEvent msg = new XClientMessageEvent();
try {
- msg.set_type((int)XConstants.ClientMessage);
+ msg.set_type(XConstants.ClientMessage);
msg.set_window(getTargetWindow());
msg.set_format(32);
msg.set_message_type(XDnDConstants.XA_XdndPosition.getAtom());
@@ -335,7 +335,7 @@ class XDnDDragSourceProtocol extends XDragSourceProtocol {
XClientMessageEvent msg = new XClientMessageEvent();
try {
- msg.set_type((int)XConstants.ClientMessage);
+ msg.set_type(XConstants.ClientMessage);
msg.set_window(getTargetWindow());
msg.set_format(32);
msg.set_message_type(XDnDConstants.XA_XdndLeave.getAtom());
@@ -361,7 +361,7 @@ class XDnDDragSourceProtocol extends XDragSourceProtocol {
XClientMessageEvent msg = new XClientMessageEvent();
try {
- msg.set_type((int)XConstants.ClientMessage);
+ msg.set_type(XConstants.ClientMessage);
msg.set_window(getTargetWindow());
msg.set_format(32);
msg.set_message_type(XDnDConstants.XA_XdndDrop.getAtom());
diff --git a/jdk/src/solaris/classes/sun/awt/X11/XDnDDropTargetProtocol.java b/jdk/src/solaris/classes/sun/awt/X11/XDnDDropTargetProtocol.java
index 2af8e66d730..074f37dd753 100644
--- a/jdk/src/solaris/classes/sun/awt/X11/XDnDDropTargetProtocol.java
+++ b/jdk/src/solaris/classes/sun/awt/X11/XDnDDropTargetProtocol.java
@@ -742,7 +742,7 @@ class XDnDDropTargetProtocol extends XDropTargetProtocol {
long data3, long data4) {
XClientMessageEvent enter = new XClientMessageEvent();
try {
- enter.set_type((int)XConstants.ClientMessage);
+ enter.set_type(XConstants.ClientMessage);
enter.set_window(toplevel);
enter.set_format(32);
enter.set_message_type(XDnDConstants.XA_XdndEnter.getAtom());
@@ -768,7 +768,7 @@ class XDnDDropTargetProtocol extends XDropTargetProtocol {
long sourceWindow) {
XClientMessageEvent leave = new XClientMessageEvent();
try {
- leave.set_type((int)XConstants.ClientMessage);
+ leave.set_type(XConstants.ClientMessage);
leave.set_window(toplevel);
leave.set_format(32);
leave.set_message_type(XDnDConstants.XA_XdndLeave.getAtom());
@@ -798,7 +798,7 @@ class XDnDDropTargetProtocol extends XDropTargetProtocol {
XClientMessageEvent msg = new XClientMessageEvent();
try {
- msg.set_type((int)XConstants.ClientMessage);
+ msg.set_type(XConstants.ClientMessage);
msg.set_window(xclient.get_data(0));
msg.set_format(32);
msg.set_message_type(XDnDConstants.XA_XdndStatus.getAtom());
@@ -886,7 +886,7 @@ class XDnDDropTargetProtocol extends XDropTargetProtocol {
XClientMessageEvent msg = new XClientMessageEvent();
try {
- msg.set_type((int)XConstants.ClientMessage);
+ msg.set_type(XConstants.ClientMessage);
msg.set_window(xclient.get_data(0));
msg.set_format(32);
msg.set_message_type(XDnDConstants.XA_XdndFinished.getAtom());
diff --git a/jdk/src/solaris/classes/sun/awt/X11/XDragSourceContextPeer.java b/jdk/src/solaris/classes/sun/awt/X11/XDragSourceContextPeer.java
index e762ae0118e..f376b395823 100644
--- a/jdk/src/solaris/classes/sun/awt/X11/XDragSourceContextPeer.java
+++ b/jdk/src/solaris/classes/sun/awt/X11/XDragSourceContextPeer.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -538,7 +538,7 @@ public final class XDragSourceContextPeer
return false;
}
- if (ev.get_type() != (int)XConstants.ClientMessage) {
+ if (ev.get_type() != XConstants.ClientMessage) {
return false;
}
@@ -612,7 +612,7 @@ public final class XDragSourceContextPeer
xkey.get_keycode(), 0);
switch ((int)keysym) {
case (int)XKeySymConstants.XK_Escape: {
- if (ev.get_type() == (int)XConstants.KeyRelease) {
+ if (ev.get_type() == XConstants.KeyRelease) {
cleanup(xkey.get_time());
}
break;
diff --git a/jdk/src/solaris/classes/sun/awt/X11/XDropTargetEventProcessor.java b/jdk/src/solaris/classes/sun/awt/X11/XDropTargetEventProcessor.java
index 65d0b11c6c4..26a4941788d 100644
--- a/jdk/src/solaris/classes/sun/awt/X11/XDropTargetEventProcessor.java
+++ b/jdk/src/solaris/classes/sun/awt/X11/XDropTargetEventProcessor.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -43,7 +43,7 @@ final class XDropTargetEventProcessor {
private XDropTargetEventProcessor() {}
private boolean doProcessEvent(XEvent ev) {
- if (ev.get_type() == (int)XConstants.DestroyNotify &&
+ if (ev.get_type() == XConstants.DestroyNotify &&
protocol != null &&
ev.get_xany().get_window() == protocol.getSourceWindow()) {
protocol.cleanup();
@@ -51,7 +51,7 @@ final class XDropTargetEventProcessor {
return false;
}
- if (ev.get_type() == (int)XConstants.PropertyNotify) {
+ if (ev.get_type() == XConstants.PropertyNotify) {
XPropertyEvent xproperty = ev.get_xproperty();
if (xproperty.get_atom() ==
MotifDnDConstants.XA_MOTIF_DRAG_RECEIVER_INFO.getAtom()) {
@@ -60,7 +60,7 @@ final class XDropTargetEventProcessor {
}
}
- if (ev.get_type() != (int)XConstants.ClientMessage) {
+ if (ev.get_type() != XConstants.ClientMessage) {
return false;
}
diff --git a/jdk/src/solaris/classes/sun/awt/X11/XDropTargetRegistry.java b/jdk/src/solaris/classes/sun/awt/X11/XDropTargetRegistry.java
index e983eccc807..b8a8441379e 100644
--- a/jdk/src/solaris/classes/sun/awt/X11/XDropTargetRegistry.java
+++ b/jdk/src/solaris/classes/sun/awt/X11/XDropTargetRegistry.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -328,8 +328,7 @@ final class XDropTargetRegistry {
Long lToplevel = Long.valueOf(embedder);
boolean isXEmbedServer = false;
synchronized (this) {
- EmbeddedDropSiteEntry entry =
- (EmbeddedDropSiteEntry)embeddedDropSiteRegistry.get(lToplevel);
+ EmbeddedDropSiteEntry entry = embeddedDropSiteRegistry.get(lToplevel);
if (entry == null) {
return;
}
@@ -430,8 +429,7 @@ final class XDropTargetRegistry {
Long lToplevel = Long.valueOf(toplevel);
EmbeddedDropSiteEntry entry = null;
synchronized (this) {
- entry =
- (EmbeddedDropSiteEntry)embeddedDropSiteRegistry.get(lToplevel);
+ entry = embeddedDropSiteRegistry.get(lToplevel);
if (entry == null) {
if (peer != null) {
// Toplevel is an XEmbed server within this VM.
@@ -495,8 +493,7 @@ final class XDropTargetRegistry {
Long lToplevel = Long.valueOf(toplevel);
EmbeddedDropSiteEntry entry = null;
synchronized (this) {
- entry =
- (EmbeddedDropSiteEntry)embeddedDropSiteRegistry.get(lToplevel);
+ entry = embeddedDropSiteRegistry.get(lToplevel);
if (entry == null) {
return;
}
@@ -526,8 +523,7 @@ final class XDropTargetRegistry {
*/
public long getEmbeddedDropSite(long embedder, int x, int y) {
Long lToplevel = Long.valueOf(embedder);
- EmbeddedDropSiteEntry entry =
- (EmbeddedDropSiteEntry)embeddedDropSiteRegistry.get(lToplevel);
+ EmbeddedDropSiteEntry entry = embeddedDropSiteRegistry.get(lToplevel);
if (entry == null) {
return 0;
}
diff --git a/jdk/src/solaris/classes/sun/awt/X11/XEmbedHelper.java b/jdk/src/solaris/classes/sun/awt/X11/XEmbedHelper.java
index 49c7a5dcf04..947a3cb543c 100644
--- a/jdk/src/solaris/classes/sun/awt/X11/XEmbedHelper.java
+++ b/jdk/src/solaris/classes/sun/awt/X11/XEmbedHelper.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -99,7 +99,7 @@ public class XEmbedHelper {
}
void sendMessage(long window, int message, long detail, long data1, long data2) {
XClientMessageEvent msg = new XClientMessageEvent();
- msg.set_type((int)XConstants.ClientMessage);
+ msg.set_type(XConstants.ClientMessage);
msg.set_window(window);
msg.set_message_type(XEmbed.getAtom());
msg.set_format(32);
diff --git a/jdk/src/solaris/classes/sun/awt/X11/XEmbedServerTester.java b/jdk/src/solaris/classes/sun/awt/X11/XEmbedServerTester.java
index fdc069e2757..9b37a429125 100644
--- a/jdk/src/solaris/classes/sun/awt/X11/XEmbedServerTester.java
+++ b/jdk/src/solaris/classes/sun/awt/X11/XEmbedServerTester.java
@@ -689,7 +689,7 @@ public class XEmbedServerTester implements XEventDispatcher {
}
} else {
synchronized(EVENT_LOCK) {
- int eventID = (int)ev.get_type() | SYSTEM_EVENT_MASK;
+ int eventID = ev.get_type() | SYSTEM_EVENT_MASK;
events.add(eventID);
if (xembedLog.isLoggable(PlatformLogger.Level.FINER)) {
diff --git a/jdk/src/solaris/classes/sun/awt/X11/XFileDialogPeer.java b/jdk/src/solaris/classes/sun/awt/X11/XFileDialogPeer.java
index b1c2b0ed845..5da53e88634 100644
--- a/jdk/src/solaris/classes/sun/awt/X11/XFileDialogPeer.java
+++ b/jdk/src/solaris/classes/sun/awt/X11/XFileDialogPeer.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -775,7 +775,7 @@ class XFileDialogPeer extends XDialogPeer implements FileDialogPeer, ActionListe
// 03/02/2005 b5097243 Pressing 'ESC' on a file dlg does not dispose the dlg on Xtoolkit
public void setVisible(boolean b){
if (fileDialog == null) {
- init((FileDialog)target);
+ init(target);
}
if (savedDir != null || userDir != null) {
diff --git a/jdk/src/solaris/classes/sun/awt/X11/XGlobalCursorManager.java b/jdk/src/solaris/classes/sun/awt/X11/XGlobalCursorManager.java
index c309d310e0a..bcef8c85315 100644
--- a/jdk/src/solaris/classes/sun/awt/X11/XGlobalCursorManager.java
+++ b/jdk/src/solaris/classes/sun/awt/X11/XGlobalCursorManager.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -133,8 +133,8 @@ public final class XGlobalCursorManager extends GlobalCursorManager {
XlibWrapper.larg6,
XlibWrapper.larg7);
- p.x = (int) XlibWrapper.unsafe.getInt(XlibWrapper.larg3);
- p.y = (int) XlibWrapper.unsafe.getInt(XlibWrapper.larg4);
+ p.x = XlibWrapper.unsafe.getInt(XlibWrapper.larg3);
+ p.y = XlibWrapper.unsafe.getInt(XlibWrapper.larg4);
} finally {
XToolkit.awtUnlock();
}
diff --git a/jdk/src/solaris/classes/sun/awt/X11/XIconWindow.java b/jdk/src/solaris/classes/sun/awt/X11/XIconWindow.java
index 7c6684bfddc..07899ef8de4 100644
--- a/jdk/src/solaris/classes/sun/awt/X11/XIconWindow.java
+++ b/jdk/src/solaris/classes/sun/awt/X11/XIconWindow.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -301,8 +301,8 @@ public class XIconWindow extends XBaseWindow {
}
long dst = XlibWrapper.XCreateImage(XToolkit.getDisplay(),
visInfo.get_visual(),
- (int)awtImage.get_Depth(),
- (int)XConstants.ZPixmap,
+ awtImage.get_Depth(),
+ XConstants.ZPixmap,
0,
bytes,
iconWidth,
@@ -483,7 +483,7 @@ public class XIconWindow extends XBaseWindow {
params.add(BACKGROUND_PIXMAP, iconPixmap);
params.add(COLORMAP, adata.get_awt_cmap());
params.add(DEPTH, awtImage.get_Depth());
- params.add(VISUAL_CLASS, (int)XConstants.InputOutput);
+ params.add(VISUAL_CLASS, XConstants.InputOutput);
params.add(VISUAL, visInfo.get_visual());
params.add(VALUE_MASK, XConstants.CWBorderPixel | XConstants.CWColormap | XConstants.CWBackPixmap);
params.add(PARENT_WINDOW, XlibWrapper.RootWindow(XToolkit.getDisplay(), visInfo.get_screen()));
diff --git a/jdk/src/solaris/classes/sun/awt/X11/XInputMethod.java b/jdk/src/solaris/classes/sun/awt/X11/XInputMethod.java
index 6392f2cbf8a..67e729b440c 100644
--- a/jdk/src/solaris/classes/sun/awt/X11/XInputMethod.java
+++ b/jdk/src/solaris/classes/sun/awt/X11/XInputMethod.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -138,7 +138,7 @@ public class XInputMethod extends X11InputMethod {
}
long getCurrentParentWindow() {
- return (long)((XWindow)clientComponentWindow.getPeer()).getContentWindow();
+ return ((XWindow)clientComponentWindow.getPeer()).getContentWindow();
}
/*
diff --git a/jdk/src/solaris/classes/sun/awt/X11/XMenuBarPeer.java b/jdk/src/solaris/classes/sun/awt/X11/XMenuBarPeer.java
index 7cf0cd73123..c1b568bc0fb 100644
--- a/jdk/src/solaris/classes/sun/awt/X11/XMenuBarPeer.java
+++ b/jdk/src/solaris/classes/sun/awt/X11/XMenuBarPeer.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -525,7 +525,7 @@ public class XMenuBarPeer extends XBaseMenuWindow implements MenuBarPeer {
if (isEventDisabled(xev)) {
return;
}
- final Component currentSource = (Component)getEventSource();
+ final Component currentSource = getEventSource();
//This is the only difference from XWindow.handleKeyPress
//Ancestor's function can invoke handleF10KeyPress here
handleKeyPress(xkey);
diff --git a/jdk/src/solaris/classes/sun/awt/X11/XMenuWindow.java b/jdk/src/solaris/classes/sun/awt/X11/XMenuWindow.java
index a524f0d6e38..9863c983873 100644
--- a/jdk/src/solaris/classes/sun/awt/X11/XMenuWindow.java
+++ b/jdk/src/solaris/classes/sun/awt/X11/XMenuWindow.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -250,7 +250,7 @@ public class XMenuWindow extends XBaseMenuWindow {
}
//Item rectangles
for (int i = 0; i < itemCnt; i++) {
- XMenuItemPeer item = (XMenuItemPeer)itemVector[i];
+ XMenuItemPeer item = itemVector[i];
XMenuItemPeer.TextMetrics metrics = itemMetrics[i];
Dimension dim = metrics.getTextDimension();
if (dim != null) {
diff --git a/jdk/src/solaris/classes/sun/awt/X11/XNETProtocol.java b/jdk/src/solaris/classes/sun/awt/X11/XNETProtocol.java
index dfd372edabf..722261113d1 100644
--- a/jdk/src/solaris/classes/sun/awt/X11/XNETProtocol.java
+++ b/jdk/src/solaris/classes/sun/awt/X11/XNETProtocol.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -108,7 +108,7 @@ final class XNETProtocol extends XProtocol implements XStateProtocol, XLayerProt
if (log.isLoggable(PlatformLogger.Level.FINE)) {
log.fine("Requesting state on " + window + " for " + state);
}
- req.set_type((int)XConstants.ClientMessage);
+ req.set_type(XConstants.ClientMessage);
req.set_window(window.getWindow());
req.set_message_type(XA_NET_WM_STATE.getAtom());
req.set_format(32);
@@ -181,7 +181,7 @@ final class XNETProtocol extends XProtocol implements XStateProtocol, XLayerProt
public void requestState(XWindow window, XAtom state, boolean isAdd) {
XClientMessageEvent req = new XClientMessageEvent();
try {
- req.set_type((int)XConstants.ClientMessage);
+ req.set_type(XConstants.ClientMessage);
req.set_window(window.getWindow());
req.set_message_type(XA_NET_WM_STATE.getAtom());
req.set_format(32);
diff --git a/jdk/src/solaris/classes/sun/awt/X11/XPopupMenuPeer.java b/jdk/src/solaris/classes/sun/awt/X11/XPopupMenuPeer.java
index cbb71925b50..81c60dd55b2 100644
--- a/jdk/src/solaris/classes/sun/awt/X11/XPopupMenuPeer.java
+++ b/jdk/src/solaris/classes/sun/awt/X11/XPopupMenuPeer.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -349,7 +349,7 @@ public class XPopupMenuPeer extends XMenuWindow implements PopupMenuPeer {
if (isEventDisabled(xev)) {
return;
}
- final Component currentSource = (Component)getEventSource();
+ final Component currentSource = getEventSource();
handleKeyPress(xkey);
}
diff --git a/jdk/src/solaris/classes/sun/awt/X11/XTextAreaPeer.java b/jdk/src/solaris/classes/sun/awt/X11/XTextAreaPeer.java
index 7c7b2d1936a..f4bf1ec2062 100644
--- a/jdk/src/solaris/classes/sun/awt/X11/XTextAreaPeer.java
+++ b/jdk/src/solaris/classes/sun/awt/X11/XTextAreaPeer.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -342,7 +342,7 @@ final class XTextAreaPeer extends XComponentPeer implements TextAreaPeer {
@Override
void handleJavaInputMethodEvent(InputMethodEvent e) {
if (jtext != null)
- jtext.processInputMethodEventPublic((InputMethodEvent)e);
+ jtext.processInputMethodEventPublic(e);
}
/**
diff --git a/jdk/src/solaris/classes/sun/awt/X11/XToolkit.java b/jdk/src/solaris/classes/sun/awt/X11/XToolkit.java
index 9970b2a8457..ba9ef8c77ab 100644
--- a/jdk/src/solaris/classes/sun/awt/X11/XToolkit.java
+++ b/jdk/src/solaris/classes/sun/awt/X11/XToolkit.java
@@ -655,8 +655,8 @@ public final class XToolkit extends UNIXToolkit implements Runnable {
XWindowAttributes pattr = new XWindowAttributes();
try {
XlibWrapper.XGetWindowAttributes(XToolkit.getDisplay(), XToolkit.getDefaultRootWindow(), pattr.pData);
- screenWidth = (int) pattr.get_width();
- screenHeight = (int) pattr.get_height();
+ screenWidth = pattr.get_width();
+ screenHeight = pattr.get_height();
} finally {
pattr.dispose();
}
@@ -2074,7 +2074,7 @@ public final class XToolkit extends UNIXToolkit implements Runnable {
}
private static void setBackingStoreType() {
- String prop = (String)AccessController.doPrivileged(
+ String prop = AccessController.doPrivileged(
new sun.security.action.GetPropertyAction("sun.awt.backingStore"));
if (prop == null) {
diff --git a/jdk/src/solaris/classes/sun/awt/X11/XWindow.java b/jdk/src/solaris/classes/sun/awt/X11/XWindow.java
index 6791ce78ae3..8df6e569bb7 100644
--- a/jdk/src/solaris/classes/sun/awt/X11/XWindow.java
+++ b/jdk/src/solaris/classes/sun/awt/X11/XWindow.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -200,7 +200,7 @@ public class XWindow extends XBaseWindow implements X11ComponentPeer {
getColorModel(); // fix 4948833: this call forces the color map to be initialized
params.putIfNull(COLORMAP, gData.get_awt_cmap());
params.putIfNull(DEPTH, gData.get_awt_depth());
- params.putIfNull(VISUAL_CLASS, Integer.valueOf((int)XConstants.InputOutput));
+ params.putIfNull(VISUAL_CLASS, Integer.valueOf(XConstants.InputOutput));
params.putIfNull(VISUAL, visInfo.get_visual());
params.putIfNull(VALUE_MASK, XConstants.CWBorderPixel | XConstants.CWEventMask | XConstants.CWColormap);
Long parentWindow = (Long)params.get(PARENT_WINDOW);
@@ -350,7 +350,7 @@ public class XWindow extends XBaseWindow implements X11ComponentPeer {
Graphics getGraphics(SurfaceData surfData, Color afore, Color aback, Font afont) {
if (surfData == null) return null;
- Component target = (Component) this.target;
+ Component target = this.target;
/* Fix for bug 4746122. Color and Font shouldn't be null */
Color bgColor = aback;
@@ -548,7 +548,7 @@ public class XWindow extends XBaseWindow implements X11ComponentPeer {
int w = xe.get_width();
int h = xe.get_height();
- Component target = (Component)getEventSource();
+ Component target = getEventSource();
AWTAccessor.ComponentAccessor compAccessor = AWTAccessor.getComponentAccessor();
if (!compAccessor.getIgnoreRepaint(target)
@@ -740,7 +740,7 @@ public class XWindow extends XBaseWindow implements X11ComponentPeer {
modifiers = getModifiers(xbe.get_state(),button,0, type, wheel_mouse);
if (!wheel_mouse) {
- MouseEvent me = new MouseEvent((Component)getEventSource(),
+ MouseEvent me = new MouseEvent(getEventSource(),
type == XConstants.ButtonPress ? MouseEvent.MOUSE_PRESSED : MouseEvent.MOUSE_RELEASED,
jWhen,modifiers, x, y,
xbe.get_x_root(),
@@ -752,7 +752,7 @@ public class XWindow extends XBaseWindow implements X11ComponentPeer {
if ((type == XConstants.ButtonRelease) &&
((mouseButtonClickAllowed & XlibUtil.getButtonMask(lbutton)) != 0) ) // No up-button in the drag-state
{
- postEventToEventQueue(me = new MouseEvent((Component)getEventSource(),
+ postEventToEventQueue(me = new MouseEvent(getEventSource(),
MouseEvent.MOUSE_CLICKED,
jWhen,
modifiers,
@@ -766,7 +766,7 @@ public class XWindow extends XBaseWindow implements X11ComponentPeer {
}
else {
if (xev.get_type() == XConstants.ButtonPress) {
- MouseWheelEvent mwe = new MouseWheelEvent((Component)getEventSource(),MouseEvent.MOUSE_WHEEL, jWhen,
+ MouseWheelEvent mwe = new MouseWheelEvent(getEventSource(),MouseEvent.MOUSE_WHEEL, jWhen,
modifiers,
x, y,
xbe.get_x_root(),
@@ -837,7 +837,7 @@ public class XWindow extends XBaseWindow implements X11ComponentPeer {
int modifiers = getModifiers(xme.get_state(), 0, 0);
boolean popupTrigger = false;
- Component source = (Component)getEventSource();
+ Component source = getEventSource();
if (xme.get_window() != window) {
Point localXY = toLocal(xme.get_x_root(), xme.get_y_root());
@@ -1111,7 +1111,7 @@ public class XWindow extends XBaseWindow implements X11ComponentPeer {
unicodeKey = keysymToUnicode( keysym[0], ev.get_state() );
if (keyEventLog.isLoggable(PlatformLogger.Level.FINE)) {
keyEventLog.fine("--XWindow.java XIM did NOT process event, hex keysym:"+Long.toHexString(keysym[0])+"\n"+
- " unicode key:"+Integer.toHexString((int)unicodeKey));
+ " unicode key:"+Integer.toHexString(unicodeKey));
}
}
}else {
@@ -1121,7 +1121,7 @@ public class XWindow extends XBaseWindow implements X11ComponentPeer {
unicodeKey = keysymToUnicode( keysym[0], ev.get_state() );
if (keyEventLog.isLoggable(PlatformLogger.Level.FINE)) {
keyEventLog.fine("--XWindow.java XIM is absent; hex keysym:"+Long.toHexString(keysym[0])+"\n"+
- " unicode key:"+Integer.toHexString((int)unicodeKey));
+ " unicode key:"+Integer.toHexString(unicodeKey));
}
}
// Keysym should be converted to Unicode, if possible and necessary,
@@ -1466,7 +1466,7 @@ public class XWindow extends XBaseWindow implements X11ComponentPeer {
long jWhen = XToolkit.nowMillisUTC_offset(when);
int modifiers = getModifiers(state, 0, keyCode);
- KeyEvent ke = new KeyEvent((Component)getEventSource(), id, jWhen,
+ KeyEvent ke = new KeyEvent(getEventSource(), id, jWhen,
modifiers, keyCode, (char)keyChar, keyLocation);
if (event != 0) {
byte[] data = Native.toBytes(event, eventSize);
diff --git a/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java b/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java
index 8dcd15bc975..521bbc145b3 100644
--- a/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java
+++ b/jdk/src/solaris/classes/sun/awt/X11/XWindowPeer.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -291,7 +291,7 @@ class XWindowPeer extends XPanelPeer implements WindowPeer,
public void updateIconImages() {
Window target = (Window)this.target;
- java.util.List iconImages = ((Window)target).getIconImages();
+ java.util.List iconImages = target.getIconImages();
XWindowPeer ownerPeer = getOwnerPeer();
winAttr.icons = new ArrayList();
if (iconImages.size() != 0) {
@@ -463,8 +463,8 @@ class XWindowPeer extends XPanelPeer implements WindowPeer,
public void updateMinimumSize() {
//This function only saves minimumSize value in XWindowPeer
//Setting WMSizeHints is implemented in XDecoratedPeer
- targetMinimumSize = (((Component)target).isMinimumSizeSet()) ?
- ((Component)target).getMinimumSize() : null;
+ targetMinimumSize = (target.isMinimumSizeSet()) ?
+ target.getMinimumSize() : null;
}
public Dimension getTargetMinimumSize() {
@@ -719,10 +719,10 @@ class XWindowPeer extends XPanelPeer implements WindowPeer,
Runnable dc = new Runnable() {
public void run() {
AWTAccessor.getComponentAccessor().
- setGraphicsConfiguration((Component)target, gc);
+ setGraphicsConfiguration(target, gc);
}
};
- SunToolkit.executeOnEventHandlerThread((Component)target, dc);
+ SunToolkit.executeOnEventHandlerThread(target, dc);
}
/**
@@ -750,7 +750,7 @@ class XWindowPeer extends XPanelPeer implements WindowPeer,
protected Point getNewLocation(XConfigureEvent xe, int leftInset, int topInset) {
// Bounds of the window
- Rectangle targetBounds = AWTAccessor.getComponentAccessor().getBounds((Component)target);
+ Rectangle targetBounds = AWTAccessor.getComponentAccessor().getBounds(target);
int runningWM = XWM.getWMID();
Point newLocation = targetBounds.getLocation();
@@ -1108,7 +1108,7 @@ class XWindowPeer extends XPanelPeer implements WindowPeer,
XUnmapEvent unmap = new XUnmapEvent();
unmap.set_window(window);
unmap.set_event(XToolkit.getDefaultRootWindow());
- unmap.set_type((int)XConstants.UnmapNotify);
+ unmap.set_type(XConstants.UnmapNotify);
unmap.set_from_configure(false);
XlibWrapper.XSendEvent(XToolkit.getDisplay(), XToolkit.getDefaultRootWindow(),
false, XConstants.SubstructureNotifyMask | XConstants.SubstructureRedirectMask,
diff --git a/jdk/src/solaris/classes/sun/awt/X11FontManager.java b/jdk/src/solaris/classes/sun/awt/X11FontManager.java
index 573d250acba..c9d2ebc9ba4 100644
--- a/jdk/src/solaris/classes/sun/awt/X11FontManager.java
+++ b/jdk/src/solaris/classes/sun/awt/X11FontManager.java
@@ -715,7 +715,7 @@ public class X11FontManager extends SunFontManager {
if (FontUtilities.isLinux) {
fontConfigDirs.add(jreLibDirName+File.separator+"oblique-fonts");
}
- fontdirs = (String[])fontConfigDirs.toArray(new String[0]);
+ fontdirs = fontConfigDirs.toArray(new String[0]);
}
// Implements SunGraphicsEnvironment.createFontConfiguration.
diff --git a/jdk/src/solaris/classes/sun/awt/X11GraphicsEnvironment.java b/jdk/src/solaris/classes/sun/awt/X11GraphicsEnvironment.java
index 60846b69c18..547af9c3bed 100644
--- a/jdk/src/solaris/classes/sun/awt/X11GraphicsEnvironment.java
+++ b/jdk/src/solaris/classes/sun/awt/X11GraphicsEnvironment.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -232,7 +232,7 @@ public class X11GraphicsEnvironment
return true;
}
- String isRemote = (String)java.security.AccessController.doPrivileged(
+ String isRemote = java.security.AccessController.doPrivileged(
new sun.security.action.GetPropertyAction("sun.java2d.remote"));
if (isRemote != null) {
return isRemote.equals("false");
diff --git a/jdk/src/solaris/classes/sun/font/NativeFont.java b/jdk/src/solaris/classes/sun/font/NativeFont.java
index 9fa469fce3c..bc39f743a91 100644
--- a/jdk/src/solaris/classes/sun/font/NativeFont.java
+++ b/jdk/src/solaris/classes/sun/font/NativeFont.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -331,6 +331,7 @@ public class NativeFont extends PhysicalFont {
* ie to request 12 pt Times New Roman italic font, use an XLFD like :
* -monotype-times new roman-regular-i---*-120-72-72-p-*-iso8859-1
*/
+ @SuppressWarnings("cast")
byte[] getPlatformNameBytes(int ptSize) {
int[] hPos = new int[14];
int hyphenCnt = 1;
diff --git a/jdk/src/solaris/classes/sun/font/XRGlyphCacheEntry.java b/jdk/src/solaris/classes/sun/font/XRGlyphCacheEntry.java
index 18ece2b813b..b1dd7c150fc 100644
--- a/jdk/src/solaris/classes/sun/font/XRGlyphCacheEntry.java
+++ b/jdk/src/solaris/classes/sun/font/XRGlyphCacheEntry.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -48,8 +48,8 @@ public class XRGlyphCacheEntry {
this.glyphInfoPtr = glyphInfoPtr;
/* TODO: Does it make sence to cache results? */
- xOff = (int) Math.round(getXAdvance());
- yOff = (int) Math.round(getYAdvance());
+ xOff = Math.round(getXAdvance());
+ yOff = Math.round(getYAdvance());
}
public int getXOff() {
diff --git a/jdk/src/solaris/classes/sun/java2d/x11/X11SurfaceData.java b/jdk/src/solaris/classes/sun/java2d/x11/X11SurfaceData.java
index d9d883a0e52..af65891495f 100644
--- a/jdk/src/solaris/classes/sun/java2d/x11/X11SurfaceData.java
+++ b/jdk/src/solaris/classes/sun/java2d/x11/X11SurfaceData.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -214,13 +214,13 @@ public abstract class X11SurfaceData extends XSurfaceData {
if (!isX11SurfaceDataInitialized() &&
!GraphicsEnvironment.isHeadless()) {
// If a screen magnifier is present, don't attempt to use DGA
- String magPresent = (String) java.security.AccessController.doPrivileged
+ String magPresent = java.security.AccessController.doPrivileged
(new sun.security.action.GetPropertyAction("javax.accessibility.screen_magnifier_present"));
boolean tryDGA = magPresent == null || !"true".equals(magPresent);
initIDs(XORComposite.class, tryDGA);
- String xtextpipe = (String) java.security.AccessController.doPrivileged
+ String xtextpipe = java.security.AccessController.doPrivileged
(new sun.security.action.GetPropertyAction("sun.java2d.xtextpipe"));
if (xtextpipe == null || "true".startsWith(xtextpipe)) {
if ("true".equals(xtextpipe)) {
@@ -264,8 +264,7 @@ public abstract class X11SurfaceData extends XSurfaceData {
if (GraphicsEnvironment.isHeadless()) {
accelerationEnabled = Boolean.FALSE;
} else {
- String prop =
- (String) java.security.AccessController.doPrivileged(
+ String prop = java.security.AccessController.doPrivileged(
new sun.security.action.GetPropertyAction("sun.java2d.pmoffscreen"));
if (prop != null) {
// true iff prop==true, false otherwise
diff --git a/jdk/src/solaris/classes/sun/java2d/xr/XRDrawLine.java b/jdk/src/solaris/classes/sun/java2d/xr/XRDrawLine.java
index 66b595e9455..a3c46ae26da 100644
--- a/jdk/src/solaris/classes/sun/java2d/xr/XRDrawLine.java
+++ b/jdk/src/solaris/classes/sun/java2d/xr/XRDrawLine.java
@@ -1,7 +1,5 @@
/*
- * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
-
-
+ * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -249,7 +247,7 @@ public class XRDrawLine {
if (dx < 0) {
xsteps = -xsteps;
}
- x1 = ucX1 + (int) xsteps;
+ x1 = ucX1 + xsteps;
} else if ((outcode1 & (OUTCODE_LEFT | OUTCODE_RIGHT)) != 0) {
if ((outcode1 & OUTCODE_LEFT) != 0) {
x1 = cxmin;
@@ -268,7 +266,7 @@ public class XRDrawLine {
if (dy < 0) {
ysteps = -ysteps;
}
- y1 = ucY1 + (int) ysteps;
+ y1 = ucY1 + ysteps;
}
outcode1 = outcode(x1, y1, cxmin, cymin, cxmax, cymax);
} else {
@@ -292,7 +290,7 @@ public class XRDrawLine {
if (dx > 0) {
xsteps = -xsteps;
}
- x2 = ucX2 + (int) xsteps;
+ x2 = ucX2 + xsteps;
} else if ((outcode2 & (OUTCODE_LEFT | OUTCODE_RIGHT)) != 0) {
if ((outcode2 & OUTCODE_LEFT) != 0) {
x2 = cxmin;
@@ -313,7 +311,7 @@ public class XRDrawLine {
if (dy > 0) {
ysteps = -ysteps;
}
- y2 = ucY2 + (int) ysteps;
+ y2 = ucY2 + ysteps;
}
outcode2 = outcode(x2, y2, cxmin, cymin, cxmax, cymax);
}
diff --git a/jdk/src/solaris/classes/sun/java2d/xr/XRPMBlitLoops.java b/jdk/src/solaris/classes/sun/java2d/xr/XRPMBlitLoops.java
index 981629d1e06..58ebf7193b7 100644
--- a/jdk/src/solaris/classes/sun/java2d/xr/XRPMBlitLoops.java
+++ b/jdk/src/solaris/classes/sun/java2d/xr/XRPMBlitLoops.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -178,6 +178,7 @@ class XRPMScaledBlit extends ScaledBlit {
super(srcType, CompositeType.AnyAlpha, dstType);
}
+ @SuppressWarnings("cast")
public void Scale(SurfaceData src, SurfaceData dst, Composite comp, Region clip, int sx1, int sy1, int sx2, int sy2, double dx1, double dy1,
double dx2, double dy2) {
try {
diff --git a/jdk/src/solaris/classes/sun/java2d/xr/XRPaints.java b/jdk/src/solaris/classes/sun/java2d/xr/XRPaints.java
index 05136dabaf2..07cba15ec3f 100644
--- a/jdk/src/solaris/classes/sun/java2d/xr/XRPaints.java
+++ b/jdk/src/solaris/classes/sun/java2d/xr/XRPaints.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2010, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -231,7 +231,7 @@ abstract class XRPaints {
Rectangle2D anchor = paint.getAnchorRect();
XRSurfaceData dstData = (XRSurfaceData) sg2d.surfaceData;
- XRSurfaceData srcData = (XRSurfaceData) getAccSrcSurface(dstData, bi);
+ XRSurfaceData srcData = getAccSrcSurface(dstData, bi);
AffineTransform at = new AffineTransform();
at.translate(anchor.getX(), anchor.getY());
@@ -259,7 +259,7 @@ abstract class XRPaints {
public int colorToIntArgbPixel(Color c) {
int rgb = c.getRGB();
- int a = (int) Math.round(xrCompMan.getExtraAlpha() * (rgb >>> 24));
+ int a = Math.round(xrCompMan.getExtraAlpha() * (rgb >>> 24));
return ((a << 24) | (rgb & 0x00FFFFFF));
}
}
diff --git a/jdk/src/solaris/classes/sun/print/AttributeClass.java b/jdk/src/solaris/classes/sun/print/AttributeClass.java
index f9018dce19f..76a652b2a93 100644
--- a/jdk/src/solaris/classes/sun/print/AttributeClass.java
+++ b/jdk/src/solaris/classes/sun/print/AttributeClass.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -274,7 +274,7 @@ public class AttributeClass {
}
private int unsignedByteToInt(byte b) {
- return (int) (b & 0xff);
+ return (b & 0xff);
}
private int convertToInt(byte[] buf) {
diff --git a/jdk/src/solaris/classes/sun/print/CUPSPrinter.java b/jdk/src/solaris/classes/sun/print/CUPSPrinter.java
index a4c1082e78c..ddfb6e1e742 100644
--- a/jdk/src/solaris/classes/sun/print/CUPSPrinter.java
+++ b/jdk/src/solaris/classes/sun/print/CUPSPrinter.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -298,7 +298,7 @@ public class CUPSPrinter {
printerInfo[0] = UnixPrintServiceLookup.
getDefaultPrinterNameSysV();
printerInfo[1] = null;
- return (String[])printerInfo.clone();
+ return printerInfo.clone();
} else {
return null;
}
@@ -318,7 +318,7 @@ public class CUPSPrinter {
}
os.close();
urlConnection.disconnect();
- return (String [])printerInfo.clone();
+ return printerInfo.clone();
}
}
os.close();
diff --git a/jdk/src/solaris/classes/sun/print/IPPPrintService.java b/jdk/src/solaris/classes/sun/print/IPPPrintService.java
index f48dd5ba38e..689288126b9 100644
--- a/jdk/src/solaris/classes/sun/print/IPPPrintService.java
+++ b/jdk/src/solaris/classes/sun/print/IPPPrintService.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -74,8 +74,7 @@ public class IPPPrintService implements PrintService, SunPrinterJobService {
private static final String FORCE_PIPE_PROP = "sun.print.ippdebug";
static {
- String debugStr =
- (String)java.security.AccessController.doPrivileged(
+ String debugStr = java.security.AccessController.doPrivileged(
new sun.security.action.GetPropertyAction(FORCE_PIPE_PROP));
debugPrint = "true".equalsIgnoreCase(debugStr);
@@ -424,7 +423,7 @@ public class IPPPrintService implements PrintService, SunPrinterJobService {
}
// use IPP to get all media,
- Media[] allMedia = (Media[])getSupportedMedia();
+ Media[] allMedia = getSupportedMedia();
ArrayList sizeList = new ArrayList();
ArrayList trayList = new ArrayList();
for (int i=0; i
Date: Tue, 28 Jan 2014 12:53:56 -0800
Subject: [PATCH 103/181] 8032711: Issue with Lambda in handling 8032704:
Issues with lib perm in Lambda
Reviewed-by: jrose, ahgross, briangoetz
---
.../AbstractValidatingLambdaMetafactory.java | 11 ++++
.../java/lang/invoke/lambda/T8032704.java | 62 +++++++++++++++++++
.../java/lang/invoke/lambda/T8032711.java | 62 +++++++++++++++++++
3 files changed, 135 insertions(+)
create mode 100644 jdk/test/java/lang/invoke/lambda/T8032704.java
create mode 100644 jdk/test/java/lang/invoke/lambda/T8032711.java
diff --git a/jdk/src/share/classes/java/lang/invoke/AbstractValidatingLambdaMetafactory.java b/jdk/src/share/classes/java/lang/invoke/AbstractValidatingLambdaMetafactory.java
index e1c82d8f559..ab0483490b8 100644
--- a/jdk/src/share/classes/java/lang/invoke/AbstractValidatingLambdaMetafactory.java
+++ b/jdk/src/share/classes/java/lang/invoke/AbstractValidatingLambdaMetafactory.java
@@ -114,6 +114,11 @@ import static sun.invoke.util.Wrapper.isWrapperType;
Class>[] markerInterfaces,
MethodType[] additionalBridges)
throws LambdaConversionException {
+ if ((caller.lookupModes() & MethodHandles.Lookup.PRIVATE) == 0) {
+ throw new LambdaConversionException(String.format(
+ "Invalid caller: %s",
+ caller.lookupClass().getName()));
+ }
this.targetClass = caller.lookupClass();
this.invokedType = invokedType;
@@ -256,11 +261,17 @@ import static sun.invoke.util.Wrapper.isWrapperType;
(implKind == MethodHandleInfo.REF_newInvokeSpecial)
? implDefiningClass
: implMethodType.returnType();
+ Class> samReturnType = samMethodType.returnType();
if (!isAdaptableToAsReturn(actualReturnType, expectedType)) {
throw new LambdaConversionException(
String.format("Type mismatch for lambda return: %s is not convertible to %s",
actualReturnType, expectedType));
}
+ if (!isAdaptableToAsReturn(expectedType, samReturnType)) {
+ throw new LambdaConversionException(
+ String.format("Type mismatch for lambda expected return: %s is not convertible to %s",
+ expectedType, samReturnType));
+ }
}
/**
diff --git a/jdk/test/java/lang/invoke/lambda/T8032704.java b/jdk/test/java/lang/invoke/lambda/T8032704.java
new file mode 100644
index 00000000000..9dfe3a0f108
--- /dev/null
+++ b/jdk/test/java/lang/invoke/lambda/T8032704.java
@@ -0,0 +1,62 @@
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8032704
+ * @summary Issues with lib perm in Lambda
+ */
+
+import java.io.Closeable;
+import java.lang.invoke.LambdaMetafactory;
+import java.lang.invoke.LambdaConversionException;
+import java.lang.invoke.MethodHandle;
+import java.lang.invoke.MethodHandles;
+import java.lang.invoke.MethodType;
+
+public class T8032704 {
+
+ public static void here() {}
+ static MethodHandle h;
+ private static MethodType mt(Class> k) { return MethodType.methodType(k); }
+ private static boolean mf(MethodHandles.Lookup l) {
+ try {
+ LambdaMetafactory.metafactory(l, "close",
+ mt(Closeable.class),mt(void.class),h,mt(void.class));
+ } catch(LambdaConversionException e) {
+ return true;
+ }
+ return false;
+ }
+
+ public static void main(String[] args) throws Throwable {
+ MethodHandles.Lookup ll = MethodHandles.lookup();
+ h = ll.findStatic(T8032704.class, "here", mt(void.class));
+ if (mf(ll)) throw new AssertionError("Error: Should work");
+ if (!mf(MethodHandles.publicLookup())) throw new AssertionError("Error: Should fail - public");
+ if (!mf(ll.in(T8032704other.class))) throw new AssertionError("Error: Should fail - other");
+ if (!mf(ll.in(Thread.class))) throw new AssertionError("Error: Should fail - Thread");
+ }
+}
+
+class T8032704other {}
diff --git a/jdk/test/java/lang/invoke/lambda/T8032711.java b/jdk/test/java/lang/invoke/lambda/T8032711.java
new file mode 100644
index 00000000000..b01009f8336
--- /dev/null
+++ b/jdk/test/java/lang/invoke/lambda/T8032711.java
@@ -0,0 +1,62 @@
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8032711
+ * @summary Issue with Lambda in handling
+ */
+
+import java.lang.invoke.LambdaMetafactory;
+import java.lang.invoke.LambdaConversionException;
+import java.lang.invoke.MethodHandle;
+import java.lang.invoke.MethodHandles;
+import java.lang.invoke.MethodType;
+
+public class T8032711 {
+
+ interface I {
+ void m();
+ }
+
+ static void here() {}
+ static MethodHandles.Lookup l;
+ static MethodHandle h;
+ private static MethodType mt(Class> k) { return MethodType.methodType(k); }
+ private static boolean mf(Class> k) {
+ try {
+ LambdaMetafactory.metafactory(l, "m",
+ mt(I.class),mt(k),h,mt(void.class));
+ } catch(LambdaConversionException e) {
+ return true;
+ }
+ return false;
+ }
+
+ public static void main(String[] args) throws Throwable {
+ l = MethodHandles.lookup();
+ h = l.findStatic(T8032711.class, "here", mt(void.class));
+ if (mf(void.class)) throw new AssertionError("Error: Should work");
+ if (!mf(String.class)) throw new AssertionError("Error: Should fail");
+ }
+}
From aa81fd4ead716a46c5e34fc057ad8fe6df9502a4 Mon Sep 17 00:00:00 2001
From: Daniel Smith
Date: Tue, 28 Jan 2014 17:22:07 -0800
Subject: [PATCH 104/181] 8032697: Issues with Lambda
Reviewed-by: ahgross, briangoetz, dlsmith, rfield
---
.../AbstractValidatingLambdaMetafactory.java | 7 ++
.../java/lang/invoke/lambda/T8032697.java | 69 +++++++++++++++++++
.../T8032697_anotherpkg/T8032697_A.java | 28 ++++++++
3 files changed, 104 insertions(+)
create mode 100644 jdk/test/java/lang/invoke/lambda/T8032697.java
create mode 100644 jdk/test/java/lang/invoke/lambda/T8032697_anotherpkg/T8032697_A.java
diff --git a/jdk/src/share/classes/java/lang/invoke/AbstractValidatingLambdaMetafactory.java b/jdk/src/share/classes/java/lang/invoke/AbstractValidatingLambdaMetafactory.java
index ab0483490b8..e8e36e1f323 100644
--- a/jdk/src/share/classes/java/lang/invoke/AbstractValidatingLambdaMetafactory.java
+++ b/jdk/src/share/classes/java/lang/invoke/AbstractValidatingLambdaMetafactory.java
@@ -226,6 +226,13 @@ import static sun.invoke.util.Wrapper.isWrapperType;
String.format("Invalid receiver type %s; not a subtype of implementation type %s",
receiverClass, implDefiningClass));
}
+
+ Class> implReceiverClass = implMethod.type().parameterType(0);
+ if (implReceiverClass != implDefiningClass && !implReceiverClass.isAssignableFrom(receiverClass)) {
+ throw new LambdaConversionException(
+ String.format("Invalid receiver type %s; not a subtype of implementation receiver type %s",
+ receiverClass, implReceiverClass));
+ }
} else {
// no receiver
capturedStart = 0;
diff --git a/jdk/test/java/lang/invoke/lambda/T8032697.java b/jdk/test/java/lang/invoke/lambda/T8032697.java
new file mode 100644
index 00000000000..be422a94b33
--- /dev/null
+++ b/jdk/test/java/lang/invoke/lambda/T8032697.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8032697
+ * @summary Issues with Lambda
+ */
+
+import java.lang.invoke.LambdaMetafactory;
+import java.lang.invoke.LambdaConversionException;
+import java.lang.invoke.MethodHandle;
+import java.lang.invoke.MethodHandles;
+import java.lang.invoke.MethodType;
+
+import T8032697_anotherpkg.T8032697_A;
+
+public class T8032697 extends T8032697_A {
+
+ interface I {
+ int m();
+ }
+
+ interface IA {
+ int m(T8032697_A x);
+ }
+
+ static MethodHandles.Lookup l;
+ static MethodHandle h;
+ private static MethodType mt(Class> k) { return MethodType.methodType(k); }
+ private static MethodType mt(Class> k, Class> k2) { return MethodType.methodType(k, k2); }
+ private static boolean mf(MethodType mti, MethodType mtf) {
+ try {
+ LambdaMetafactory.metafactory(l, "m", mti,mtf,h,mtf);
+ } catch(LambdaConversionException e) {
+ return true;
+ }
+ return false;
+ }
+
+ public static void main(String[] args) throws Throwable {
+ l = MethodHandles.lookup();
+ h = l.findVirtual(T8032697_A.class, "f", mt(int.class));
+ if (mf(mt(I.class, T8032697.class), mt(int.class))) throw new AssertionError("Error: Should work");
+ if (mf(mt(IA.class), mt(int.class, T8032697.class))) throw new AssertionError("Error: Should work");
+ if (!mf(mt(I.class, T8032697_A.class), mt(int.class))) throw new AssertionError("Error: Should fail");
+ if (!mf(mt(IA.class), mt(int.class, T8032697_A.class))) throw new AssertionError("Error: Should fail");
+ }
+}
diff --git a/jdk/test/java/lang/invoke/lambda/T8032697_anotherpkg/T8032697_A.java b/jdk/test/java/lang/invoke/lambda/T8032697_anotherpkg/T8032697_A.java
new file mode 100644
index 00000000000..d611e3fef6f
--- /dev/null
+++ b/jdk/test/java/lang/invoke/lambda/T8032697_anotherpkg/T8032697_A.java
@@ -0,0 +1,28 @@
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+package T8032697_anotherpkg;
+
+public class T8032697_A {
+ protected final int f() { return 2; }
+}
From 9d9bc9f86dda4ffe646e7f466482c5d39eca1f68 Mon Sep 17 00:00:00 2001
From: Sunny Chan
Date: Tue, 28 Jan 2014 09:33:39 -0500
Subject: [PATCH 105/181] 7142035: assert in j.l.instrument agents during
shutdown when daemon thread is running
Reviewed-by: sla
---
jdk/src/share/instrument/Reentrancy.c | 2 +
.../instrument/DaemonThread/DummyAgent.java | 46 ++++++++++++
.../instrument/DaemonThread/DummyClass.java | 27 +++++++
.../DaemonThread/TestDaemonThread.java | 72 +++++++++++++++++++
.../TestDaemonThreadLauncher.java | 44 ++++++++++++
5 files changed, 191 insertions(+)
create mode 100644 jdk/test/java/lang/instrument/DaemonThread/DummyAgent.java
create mode 100644 jdk/test/java/lang/instrument/DaemonThread/DummyClass.java
create mode 100644 jdk/test/java/lang/instrument/DaemonThread/TestDaemonThread.java
create mode 100644 jdk/test/java/lang/instrument/DaemonThread/TestDaemonThreadLauncher.java
diff --git a/jdk/src/share/instrument/Reentrancy.c b/jdk/src/share/instrument/Reentrancy.c
index 58cbfdd1b53..0b526c10a45 100644
--- a/jdk/src/share/instrument/Reentrancy.c
+++ b/jdk/src/share/instrument/Reentrancy.c
@@ -130,6 +130,7 @@ tryToAcquireReentrancyToken( jvmtiEnv * jvmtienv,
error = confirmingTLSSet ( jvmtienv,
thread,
JPLIS_CURRENTLY_INSIDE_TOKEN);
+ check_phase_ret_false(error);
jplis_assert(error == JVMTI_ERROR_NONE);
if ( error != JVMTI_ERROR_NONE ) {
result = JNI_FALSE;
@@ -158,6 +159,7 @@ releaseReentrancyToken( jvmtiEnv * jvmtienv,
error = confirmingTLSSet( jvmtienv,
thread,
JPLIS_CURRENTLY_OUTSIDE_TOKEN);
+ check_phase_ret(error);
jplis_assert(error == JVMTI_ERROR_NONE);
}
diff --git a/jdk/test/java/lang/instrument/DaemonThread/DummyAgent.java b/jdk/test/java/lang/instrument/DaemonThread/DummyAgent.java
new file mode 100644
index 00000000000..64b4d59cf18
--- /dev/null
+++ b/jdk/test/java/lang/instrument/DaemonThread/DummyAgent.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2014 Goldman Sachs.
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+import java.lang.instrument.ClassFileTransformer;
+import java.lang.instrument.IllegalClassFormatException;
+import java.lang.instrument.Instrumentation;
+import java.security.ProtectionDomain;
+
+public class DummyAgent implements ClassFileTransformer {
+ @Override
+ public byte[] transform(ClassLoader loader, String className,
+ Class> classBeingRedefined, ProtectionDomain protectionDomain,
+ byte[] classfileBuffer) throws IllegalClassFormatException {
+
+ /* The Daemon Thread bug is timing dependent and you want the transform method
+ * to return ASAP - so just return the buffer will be fine
+ */
+ return classfileBuffer;
+ }
+
+ public static void premain(String agentArgs, Instrumentation inst) {
+ inst.addTransformer(new DummyAgent(), false);
+ }
+
+}
diff --git a/jdk/test/java/lang/instrument/DaemonThread/DummyClass.java b/jdk/test/java/lang/instrument/DaemonThread/DummyClass.java
new file mode 100644
index 00000000000..18d671afc09
--- /dev/null
+++ b/jdk/test/java/lang/instrument/DaemonThread/DummyClass.java
@@ -0,0 +1,27 @@
+/*
+ * Copyright 2014 Goldman Sachs.
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/* Just a dummy class for loading */
+public class DummyClass {
+}
diff --git a/jdk/test/java/lang/instrument/DaemonThread/TestDaemonThread.java b/jdk/test/java/lang/instrument/DaemonThread/TestDaemonThread.java
new file mode 100644
index 00000000000..20c9077d02f
--- /dev/null
+++ b/jdk/test/java/lang/instrument/DaemonThread/TestDaemonThread.java
@@ -0,0 +1,72 @@
+/*
+ * Copyright 2014 Goldman Sachs.
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+/* @test
+ * @bug 7142035
+ * @summary Assert in java.lang.instrument agents during shutdown when classloading occurs after shutdown
+ * @library /lib/testlibrary
+ *
+ * @build DummyAgent DummyClass TestDaemonThreadLauncher TestDaemonThread
+ * @run shell ../MakeJAR3.sh DummyAgent
+ * @run main TestDaemonThreadLauncher /timeout=240
+ *
+ */
+import java.io.File;
+import java.net.URL;
+import java.net.URLClassLoader;
+
+public class TestDaemonThread implements Runnable{
+ File classpath;
+
+ public TestDaemonThread(File classpath) {
+ this.classpath = classpath;
+ }
+
+ @Override
+ public void run() {
+
+
+ try {
+ URL u = this.getClass().getClassLoader().getResource("DummyClass.class");
+ String path = u.getPath();
+ String parent = u.getPath().substring(0, path.lastIndexOf('/')+1);
+ URL parentURL = new URL(u, parent);
+ System.out.println(parentURL);
+ /* Load lots of class by creating multiple classloaders */
+ for(;;) {
+ ClassLoader cl = new URLClassLoader(new URL[] {parentURL}, null);
+ cl.loadClass("DummyClass");
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ public static void main(String[] args) throws Exception {
+ Thread t = new Thread(new TestDaemonThread(new File(args[0])));
+ /* The important part of the bug is that a Daemon thread can continue to load classes after shutdown */
+ t.setDaemon(true);
+ t.start();
+ Thread.sleep(200);
+ }
+}
diff --git a/jdk/test/java/lang/instrument/DaemonThread/TestDaemonThreadLauncher.java b/jdk/test/java/lang/instrument/DaemonThread/TestDaemonThreadLauncher.java
new file mode 100644
index 00000000000..9660bbfa9dc
--- /dev/null
+++ b/jdk/test/java/lang/instrument/DaemonThread/TestDaemonThreadLauncher.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2014 Goldman Sachs.
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+import jdk.testlibrary.JDKToolLauncher;
+import jdk.testlibrary.OutputAnalyzer;
+import jdk.testlibrary.ProcessTools;
+
+import java.io.IOException;
+import java.nio.file.Path;
+
+public class TestDaemonThreadLauncher {
+
+ private static ProcessBuilder processBuilder = new ProcessBuilder();
+
+ public static void main(String args[]) throws Exception {
+ for(int i=0; i<50; i++) {
+ ProcessBuilder pb = ProcessTools.createJavaProcessBuilder("-javaagent:DummyAgent.jar", "TestDaemonThread", ".");
+ OutputAnalyzer analyzer = new OutputAnalyzer(pb.start());
+ analyzer.shouldNotContain("ASSERTION FAILED");
+ }
+ }
+}
From 552e3383779c95d1f0591e7b0117fc05ae3ec034 Mon Sep 17 00:00:00 2001
From: Jonathan Gibbons
Date: Tue, 28 Jan 2014 14:31:29 -0800
Subject: [PATCH 106/181] 8032819: Extra empty line between field declarations
for the "-v -c" and "-v -l" combination of options
Reviewed-by: ksrini
---
.../com/sun/tools/javap/ClassWriter.java | 6 +-
langtools/test/tools/javap/T8032819.java | 95 +++++++++++++++++++
2 files changed, 99 insertions(+), 2 deletions(-)
create mode 100644 langtools/test/tools/javap/T8032819.java
diff --git a/langtools/src/share/classes/com/sun/tools/javap/ClassWriter.java b/langtools/src/share/classes/com/sun/tools/javap/ClassWriter.java
index 6057cd7b289..07e22dec757 100644
--- a/langtools/src/share/classes/com/sun/tools/javap/ClassWriter.java
+++ b/langtools/src/share/classes/com/sun/tools/javap/ClassWriter.java
@@ -385,6 +385,8 @@ public class ClassWriter extends BasicWriter {
indent(+1);
+ boolean showBlank = false;
+
if (options.showDescriptors)
println("descriptor: " + getValue(f.descriptor));
@@ -394,12 +396,12 @@ public class ClassWriter extends BasicWriter {
if (options.showAllAttrs) {
for (Attribute attr: f.attributes)
attrWriter.write(f, attr, constant_pool);
- println();
+ showBlank = true;
}
indent(-1);
- if (options.showDisassembled || options.showLineAndLocalVariableTables)
+ if (showBlank || options.showDisassembled || options.showLineAndLocalVariableTables)
println();
}
diff --git a/langtools/test/tools/javap/T8032819.java b/langtools/test/tools/javap/T8032819.java
new file mode 100644
index 00000000000..9c5eeb47381
--- /dev/null
+++ b/langtools/test/tools/javap/T8032819.java
@@ -0,0 +1,95 @@
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8032819
+ * @summary Extra empty line between field declarations for the "-v -c" and "-v -l" combination of options
+ * @compile -g T8032819.java
+ * @run main T8032819
+ */
+
+import java.io.*;
+import java.util.*;
+
+public class T8032819 {
+ static class Fields {
+ int f1;
+ int f2;
+ }
+
+ public static void main(String... args) throws Exception {
+ new T8032819().run();
+ }
+
+ void run() throws Exception {
+ Class> clazz = Fields.class;
+ test(clazz);
+ test(clazz, "-c");
+ test(clazz, "-l");
+ test(clazz, "-l", "-c");
+ test(clazz, "-v");
+ test(clazz, "-v", "-c");
+ test(clazz, "-v", "-l");
+ test(clazz, "-v", "-l", "-c");
+
+ if (errors > 0)
+ throw new Exception(errors + " errors occurred");
+ }
+
+ static final String sep = System.getProperty("line.separator");
+ static final String doubleBlankLine = sep + sep + sep;
+
+ void test(Class> clazz, String... opts) throws Exception {
+ System.err.println("test " + Arrays.asList(opts));
+ List args = new ArrayList();
+ args.addAll(Arrays.asList(opts));
+ args.addAll(Arrays.asList("-classpath", System.getProperty("test.classes")));
+ args.add(clazz.getName());
+ StringWriter sw = new StringWriter();
+ PrintWriter pw = new PrintWriter(sw);
+ int rc = com.sun.tools.javap.Main.run(args.toArray(new String[args.size()]), pw);
+ pw.close();
+ String out = sw.toString();
+ if (rc != 0)
+ throw new Exception("javap failed unexpectedly: rc=" + rc);
+
+ int count = 0;
+ int i = out.indexOf(doubleBlankLine, 0);
+ while (i != -1) {
+ count++;
+ i = out.indexOf(doubleBlankLine, i + doubleBlankLine.length());
+ }
+
+ if (count > 0)
+ error(count + " double blank lines found");
+ }
+
+ void error(String msg) {
+ System.err.println("Error: " + msg);
+ errors++;
+ }
+
+ int errors = 0;
+}
+
From 07998a63354ad9a3c935baebc900b7322e898877 Mon Sep 17 00:00:00 2001
From: Eric McCorkle
Date: Tue, 28 Jan 2014 17:51:28 -0500
Subject: [PATCH 107/181] 8032980: Silent failure in Attr.annotateType
Turn silent discard of annotations in Attr.annotateType if conversion to TypeCompound fails into an assertion failure.
Reviewed-by: jjg
---
.../src/share/classes/com/sun/tools/javac/comp/Attr.java | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/langtools/src/share/classes/com/sun/tools/javac/comp/Attr.java b/langtools/src/share/classes/com/sun/tools/javac/comp/Attr.java
index 0da5864fb9f..d8841c3be78 100644
--- a/langtools/src/share/classes/com/sun/tools/javac/comp/Attr.java
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Attr.java
@@ -4078,11 +4078,9 @@ public class Attr extends JCTree.Visitor {
@Override
public void run() {
List compounds = fromAnnotations(annotations);
- if (annotations.size() == compounds.size()) {
- // All annotations were successfully converted into compounds
+ Assert.check(annotations.size() == compounds.size());
tree.type = tree.type.unannotatedType().annotatedType(compounds);
}
- }
});
}
From 77feb9302c8cd0bad52f9aa78ff4d33be2620fa5 Mon Sep 17 00:00:00 2001
From: Eric McCorkle
Date: Tue, 28 Jan 2014 17:52:30 -0500
Subject: [PATCH 108/181] 8032932: Add assertion to fix silent failure in
Gen.getAndRemoveNonFieldTAs
Turn silent failure if type annotation position type is UNKNOWN into assertion failure.
Reviewed-by: jjg
---
.../src/share/classes/com/sun/tools/javac/jvm/Gen.java | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)
diff --git a/langtools/src/share/classes/com/sun/tools/javac/jvm/Gen.java b/langtools/src/share/classes/com/sun/tools/javac/jvm/Gen.java
index dbd23ade6cb..0f2cbcf1ed7 100644
--- a/langtools/src/share/classes/com/sun/tools/javac/jvm/Gen.java
+++ b/langtools/src/share/classes/com/sun/tools/javac/jvm/Gen.java
@@ -103,8 +103,6 @@ public class Gen extends JCTree.Visitor {
*/
private LVTRanges lvtRanges;
- private final boolean typeAnnoAsserts;
-
protected Gen(Context context) {
context.put(genKey, this);
@@ -141,7 +139,6 @@ public class Gen extends JCTree.Visitor {
debugCode = options.isSet("debugcode");
allowInvokedynamic = target.hasInvokedynamic() || options.isSet("invokedynamic");
pool = new Pool(types);
- typeAnnoAsserts = options.isSet("TypeAnnotationAsserts");
generateIproxies =
target.requiresIproxy() ||
@@ -564,13 +561,10 @@ public class Gen extends JCTree.Visitor {
ListBuffer fieldTAs = new ListBuffer<>();
ListBuffer nonfieldTAs = new ListBuffer<>();
for (TypeCompound ta : tas) {
+ Assert.check(ta.getPosition().type != TargetType.UNKNOWN);
if (ta.getPosition().type == TargetType.FIELD) {
fieldTAs.add(ta);
} else {
- if (typeAnnoAsserts) {
- Assert.error("Type annotation does not have a valid positior");
- }
-
nonfieldTAs.add(ta);
}
}
From ad5f12b1fcdf38a7c07bcc9072b0da7f33e01f08 Mon Sep 17 00:00:00 2001
From: Magnus Ihse Bursie
Date: Wed, 29 Jan 2014 11:04:37 +0100
Subject: [PATCH 109/181] 8027584: Disable ccache by default
Reviewed-by: mduigou, tbell
---
common/autoconf/basics.m4 | 8 --
common/autoconf/build-performance.m4 | 32 ++++--
common/autoconf/generated-configure.sh | 131 ++++++++++---------------
common/autoconf/help.m4 | 28 +-----
4 files changed, 78 insertions(+), 121 deletions(-)
diff --git a/common/autoconf/basics.m4 b/common/autoconf/basics.m4
index 9ef7b0400da..028f5539323 100644
--- a/common/autoconf/basics.m4
+++ b/common/autoconf/basics.m4
@@ -738,12 +738,4 @@ AC_DEFUN_ONCE([BASIC_TEST_USABILITY_ISSUES],
else
IS_RECONFIGURE=no
fi
-
- if test -e $SRC_ROOT/build/.hide-configure-performance-hints; then
- HIDE_PERFORMANCE_HINTS=yes
- else
- HIDE_PERFORMANCE_HINTS=no
- # Hide it the next time around...
- $TOUCH $SRC_ROOT/build/.hide-configure-performance-hints > /dev/null 2>&1
- fi
])
diff --git a/common/autoconf/build-performance.m4 b/common/autoconf/build-performance.m4
index 8fc671dc663..518457ac105 100644
--- a/common/autoconf/build-performance.m4
+++ b/common/autoconf/build-performance.m4
@@ -160,20 +160,28 @@ AC_DEFUN_ONCE([BPERF_SETUP_BUILD_JOBS],
AC_DEFUN([BPERF_SETUP_CCACHE],
[
AC_ARG_ENABLE([ccache],
- [AS_HELP_STRING([--disable-ccache],
- [disable using ccache to speed up recompilations @<:@enabled@:>@])],
- [ENABLE_CCACHE=${enable_ccache}], [ENABLE_CCACHE=yes])
- if test "x$ENABLE_CCACHE" = xyes; then
+ [AS_HELP_STRING([--enable-ccache],
+ [enable using ccache to speed up recompilations @<:@disabled@:>@])])
+
+ CCACHE=
+ AC_MSG_CHECKING([is ccache enabled])
+ ENABLE_CCACHE=$enable_ccache
+ if test "x$enable_ccache" = xyes; then
+ AC_MSG_RESULT([yes])
OLD_PATH="$PATH"
if test "x$TOOLS_DIR" != x; then
PATH=$TOOLS_DIR:$PATH
fi
- AC_PATH_PROG(CCACHE, ccache)
+ BASIC_REQUIRE_PROG(CCACHE, ccache)
+ CCACHE_STATUS="enabled"
PATH="$OLD_PATH"
+ elif test "x$enable_ccache" = xno; then
+ AC_MSG_RESULT([no, explicitly disabled])
+ elif test "x$enable_ccache" = x; then
+ AC_MSG_RESULT([no])
else
- AC_MSG_CHECKING([for ccache])
- AC_MSG_RESULT([explicitly disabled])
- CCACHE=
+ AC_MSG_RESULT([unknown])
+ AC_MSG_ERROR([--enable-ccache does not accept any parameters])
fi
AC_SUBST(CCACHE)
@@ -185,8 +193,11 @@ AC_DEFUN([BPERF_SETUP_CCACHE],
# When using a non home ccache directory, assume the use is to share ccache files
# with other users. Thus change the umask.
SET_CCACHE_DIR="CCACHE_DIR=$with_ccache_dir CCACHE_UMASK=002"
+ if test "x$CCACHE" = x; then
+ AC_MSG_WARN([--with-ccache-dir has no meaning when ccache is not enabled])
+ fi
fi
- CCACHE_FOUND=""
+
if test "x$CCACHE" != x; then
BPERF_SETUP_CCACHE_USAGE
fi
@@ -195,7 +206,6 @@ AC_DEFUN([BPERF_SETUP_CCACHE],
AC_DEFUN([BPERF_SETUP_CCACHE_USAGE],
[
if test "x$CCACHE" != x; then
- CCACHE_FOUND="true"
# Only use ccache if it is 3.1.4 or later, which supports
# precompiled headers.
AC_MSG_CHECKING([if ccache supports precompiled headers])
@@ -203,6 +213,7 @@ AC_DEFUN([BPERF_SETUP_CCACHE_USAGE],
if test "x$HAS_GOOD_CCACHE" = x; then
AC_MSG_RESULT([no, disabling ccache])
CCACHE=
+ CCACHE_STATUS="disabled"
else
AC_MSG_RESULT([yes])
AC_MSG_CHECKING([if C-compiler supports ccache precompiled headers])
@@ -215,6 +226,7 @@ AC_DEFUN([BPERF_SETUP_CCACHE_USAGE],
else
AC_MSG_RESULT([no, disabling ccaching of precompiled headers])
CCACHE=
+ CCACHE_STATUS="disabled"
fi
fi
fi
diff --git a/common/autoconf/generated-configure.sh b/common/autoconf/generated-configure.sh
index 6e425bf4178..80adc25efc2 100644
--- a/common/autoconf/generated-configure.sh
+++ b/common/autoconf/generated-configure.sh
@@ -1736,8 +1736,8 @@ Optional Features:
--disable-precompiled-headers
disable using precompiled headers when compiling C++
[enabled]
- --disable-ccache disable using ccache to speed up recompilations
- [enabled]
+ --enable-ccache enable using ccache to speed up recompilations
+ [disabled]
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
@@ -3868,7 +3868,7 @@ fi
#CUSTOM_AUTOCONF_INCLUDE
# Do not change or remove the following line, it is needed for consistency checks:
-DATE_WHEN_GENERATED=1390947033
+DATE_WHEN_GENERATED=1390989605
###############################################################################
#
@@ -36165,18 +36165,26 @@ $as_echo "yes" >&6; }
# Check whether --enable-ccache was given.
if test "${enable_ccache+set}" = set; then :
- enableval=$enable_ccache; ENABLE_CCACHE=${enable_ccache}
-else
- ENABLE_CCACHE=yes
+ enableval=$enable_ccache;
fi
- if test "x$ENABLE_CCACHE" = xyes; then
+
+ CCACHE=
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking is ccache enabled" >&5
+$as_echo_n "checking is ccache enabled... " >&6; }
+ ENABLE_CCACHE=$enable_ccache
+ if test "x$enable_ccache" = xyes; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
OLD_PATH="$PATH"
if test "x$TOOLS_DIR" != x; then
PATH=$TOOLS_DIR:$PATH
fi
- # Extract the first word of "ccache", so it can be a program name with args.
-set dummy ccache; ac_word=$2
+
+ for ac_prog in ccache
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_path_CCACHE+:} false; then :
@@ -36215,13 +36223,34 @@ $as_echo "no" >&6; }
fi
+ test -n "$CCACHE" && break
+done
+
+
+ if test "x$CCACHE" = x; then
+ if test "xccache" = x; then
+ PROG_NAME=ccache
+ else
+ PROG_NAME=ccache
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5
+$as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
+ as_fn_error $? "Cannot continue" "$LINENO" 5
+ fi
+
+
+ CCACHE_STATUS="enabled"
PATH="$OLD_PATH"
+ elif test "x$enable_ccache" = xno; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, explicitly disabled" >&5
+$as_echo "no, explicitly disabled" >&6; }
+ elif test "x$enable_ccache" = x; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ccache" >&5
-$as_echo_n "checking for ccache... " >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: explicitly disabled" >&5
-$as_echo "explicitly disabled" >&6; }
- CCACHE=
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: unknown" >&5
+$as_echo "unknown" >&6; }
+ as_fn_error $? "--enable-ccache does not accept any parameters" "$LINENO" 5
fi
@@ -36236,12 +36265,15 @@ fi
# When using a non home ccache directory, assume the use is to share ccache files
# with other users. Thus change the umask.
SET_CCACHE_DIR="CCACHE_DIR=$with_ccache_dir CCACHE_UMASK=002"
+ if test "x$CCACHE" = x; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: --with-ccache-dir has no meaning when ccache is not enabled" >&5
+$as_echo "$as_me: WARNING: --with-ccache-dir has no meaning when ccache is not enabled" >&2;}
+ fi
fi
- CCACHE_FOUND=""
+
if test "x$CCACHE" != x; then
if test "x$CCACHE" != x; then
- CCACHE_FOUND="true"
# Only use ccache if it is 3.1.4 or later, which supports
# precompiled headers.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if ccache supports precompiled headers" >&5
@@ -36251,6 +36283,7 @@ $as_echo_n "checking if ccache supports precompiled headers... " >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no, disabling ccache" >&5
$as_echo "no, disabling ccache" >&6; }
CCACHE=
+ CCACHE_STATUS="disabled"
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
@@ -36283,6 +36316,7 @@ $as_echo "yes" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no, disabling ccaching of precompiled headers" >&5
$as_echo "no, disabling ccaching of precompiled headers" >&6; }
CCACHE=
+ CCACHE_STATUS="disabled"
fi
fi
fi
@@ -36359,14 +36393,6 @@ $as_echo "$OUTPUT_DIR_IS_LOCAL" >&6; }
IS_RECONFIGURE=no
fi
- if test -e $SRC_ROOT/build/.hide-configure-performance-hints; then
- HIDE_PERFORMANCE_HINTS=yes
- else
- HIDE_PERFORMANCE_HINTS=no
- # Hide it the next time around...
- $TOUCH $SRC_ROOT/build/.hide-configure-performance-hints > /dev/null 2>&1
- fi
-
# At the end, call the custom hook. (Dummy macro if no custom sources available)
@@ -37668,22 +37694,6 @@ $CHMOD +x $OUTPUT_ROOT/compare.sh
# Finally output some useful information to the user
- if test "x$CCACHE_FOUND" != x; then
- if test "x$HAS_GOOD_CCACHE" = x; then
- CCACHE_STATUS="installed, but disabled (version older than 3.1.4)"
- CCACHE_HELP_MSG="You have ccache installed, but it is a version prior to 3.1.4. Try upgrading."
- else
- CCACHE_STATUS="installed and in use"
- fi
- else
- if test "x$GCC" = xyes; then
- CCACHE_STATUS="not installed (consider installing)"
- CCACHE_HELP_MSG="You do not have ccache installed. Try installing it."
- else
- CCACHE_STATUS="not available for your system"
- fi
- fi
-
printf "\n"
printf "====================================================\n"
printf "A new configuration has been successfully created in\n"
@@ -37714,46 +37724,11 @@ $CHMOD +x $OUTPUT_ROOT/compare.sh
printf "Build performance summary:\n"
printf "* Cores to use: $JOBS\n"
printf "* Memory limit: $MEMORY_SIZE MB\n"
- printf "* ccache status: $CCACHE_STATUS\n"
+ if test "x$CCACHE_STATUS" != "x"; then
+ printf "* ccache status: $CCACHE_STATUS\n"
+ fi
printf "\n"
- if test "x$CCACHE_HELP_MSG" != x && test "x$HIDE_PERFORMANCE_HINTS" = "xno"; then
- printf "Build performance tip: ccache gives a tremendous speedup for C++ recompilations.\n"
- printf "$CCACHE_HELP_MSG\n"
-
- # Print a helpful message on how to acquire the necessary build dependency.
- # ccache is the help tag: freetype, cups, pulse, alsa etc
- MISSING_DEPENDENCY=ccache
-
- if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
- cygwin_help $MISSING_DEPENDENCY
- elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
- msys_help $MISSING_DEPENDENCY
- else
- PKGHANDLER_COMMAND=
-
- case $PKGHANDLER in
- apt-get)
- apt_help $MISSING_DEPENDENCY ;;
- yum)
- yum_help $MISSING_DEPENDENCY ;;
- port)
- port_help $MISSING_DEPENDENCY ;;
- pkgutil)
- pkgutil_help $MISSING_DEPENDENCY ;;
- pkgadd)
- pkgadd_help $MISSING_DEPENDENCY ;;
- esac
-
- if test "x$PKGHANDLER_COMMAND" != x; then
- HELP_MSG="You might be able to fix this by running '$PKGHANDLER_COMMAND'."
- fi
- fi
-
- printf "$HELP_MSG\n"
- printf "\n"
- fi
-
if test "x$BUILDING_MULTIPLE_JVM_VARIANTS" = "xyes"; then
printf "NOTE: You have requested to build more than one version of the JVM, which\n"
printf "will result in longer build times.\n"
diff --git a/common/autoconf/help.m4 b/common/autoconf/help.m4
index 0b33e504c64..89ecfbef68c 100644
--- a/common/autoconf/help.m4
+++ b/common/autoconf/help.m4
@@ -155,22 +155,6 @@ AC_DEFUN_ONCE([HELP_PRINT_SUMMARY_AND_WARNINGS],
[
# Finally output some useful information to the user
- if test "x$CCACHE_FOUND" != x; then
- if test "x$HAS_GOOD_CCACHE" = x; then
- CCACHE_STATUS="installed, but disabled (version older than 3.1.4)"
- CCACHE_HELP_MSG="You have ccache installed, but it is a version prior to 3.1.4. Try upgrading."
- else
- CCACHE_STATUS="installed and in use"
- fi
- else
- if test "x$GCC" = xyes; then
- CCACHE_STATUS="not installed (consider installing)"
- CCACHE_HELP_MSG="You do not have ccache installed. Try installing it."
- else
- CCACHE_STATUS="not available for your system"
- fi
- fi
-
printf "\n"
printf "====================================================\n"
printf "A new configuration has been successfully created in\n"
@@ -201,16 +185,10 @@ AC_DEFUN_ONCE([HELP_PRINT_SUMMARY_AND_WARNINGS],
printf "Build performance summary:\n"
printf "* Cores to use: $JOBS\n"
printf "* Memory limit: $MEMORY_SIZE MB\n"
- printf "* ccache status: $CCACHE_STATUS\n"
- printf "\n"
-
- if test "x$CCACHE_HELP_MSG" != x && test "x$HIDE_PERFORMANCE_HINTS" = "xno"; then
- printf "Build performance tip: ccache gives a tremendous speedup for C++ recompilations.\n"
- printf "$CCACHE_HELP_MSG\n"
- HELP_MSG_MISSING_DEPENDENCY([ccache])
- printf "$HELP_MSG\n"
- printf "\n"
+ if test "x$CCACHE_STATUS" != "x"; then
+ printf "* ccache status: $CCACHE_STATUS\n"
fi
+ printf "\n"
if test "x$BUILDING_MULTIPLE_JVM_VARIANTS" = "xyes"; then
printf "NOTE: You have requested to build more than one version of the JVM, which\n"
From 57fe89a46b189b94b939e2795e0d5dead49b97aa Mon Sep 17 00:00:00 2001
From: Magnus Ihse Bursie
Date: Wed, 29 Jan 2014 11:21:54 +0100
Subject: [PATCH 110/181] 8031759: Improved tool overriding in configure
Reviewed-by: tbell, mduigou, erikj
---
common/autoconf/basics.m4 | 242 +-
common/autoconf/configure | 17 +-
common/autoconf/generated-configure.sh | 11627 +++++++++++++++++++++--
common/autoconf/toolchain.m4 | 30 +-
4 files changed, 11274 insertions(+), 642 deletions(-)
diff --git a/common/autoconf/basics.m4 b/common/autoconf/basics.m4
index 028f5539323..6bd29145e39 100644
--- a/common/autoconf/basics.m4
+++ b/common/autoconf/basics.m4
@@ -236,35 +236,119 @@ AC_DEFUN_ONCE([BASIC_INIT],
# Test that variable $1 denoting a program is not empty. If empty, exit with an error.
# $1: variable to check
-# $2: executable name to print in warning (optional)
AC_DEFUN([BASIC_CHECK_NONEMPTY],
[
if test "x[$]$1" = x; then
- if test "x$2" = x; then
- PROG_NAME=translit($1,A-Z,a-z)
- else
- PROG_NAME=$2
- fi
- AC_MSG_NOTICE([Could not find $PROG_NAME!])
- AC_MSG_ERROR([Cannot continue])
+ AC_MSG_ERROR([Could not find required tool for $1])
fi
])
-# Does AC_PATH_PROG followed by BASIC_CHECK_NONEMPTY.
-# Arguments as AC_PATH_PROG:
-# $1: variable to set
-# $2: executable name to look for
-AC_DEFUN([BASIC_REQUIRE_PROG],
+# Check that there are no unprocessed overridden variables left.
+# If so, they are an incorrect argument and we will exit with an error.
+AC_DEFUN([BASIC_CHECK_LEFTOVER_OVERRIDDEN],
[
- AC_PATH_PROGS($1, $2)
- BASIC_CHECK_NONEMPTY($1, $2)
+ if test "x$CONFIGURE_OVERRIDDEN_VARIABLES" != x; then
+ # Replace the separating ! with spaces before presenting for end user.
+ unknown_variables=${CONFIGURE_OVERRIDDEN_VARIABLES//!/ }
+ AC_MSG_ERROR([The following variables are unknown to configure: $unknown_variables])
+ fi
+])
+
+# Setup a tool for the given variable. If correctly specified by the user,
+# use that value, otherwise search for the tool using the supplied code snippet.
+# $1: variable to set
+# $2: code snippet to call to look for the tool
+AC_DEFUN([BASIC_SETUP_TOOL],
+[
+ # Publish this variable in the help.
+ AC_ARG_VAR($1, [Override default value for $1])
+
+ if test "x[$]$1" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ $2
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !$1! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!$1!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "x$1" != xBASH; then
+ AC_MSG_WARN([Ignoring value of $1 from the environment. Use command line variables instead.])
+ fi
+ # Try to locate tool using the code snippet
+ $2
+ else
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="[$]$1"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ AC_MSG_NOTICE([Will search for user supplied tool $1=$tool_basename])
+ AC_PATH_PROG($1, $tool_basename)
+ if test "x[$]$1" = x; then
+ AC_MSG_ERROR([User supplied tool $tool_basename could not be found])
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ AC_MSG_NOTICE([Will use user supplied tool $1=$tool_specified])
+ AC_MSG_CHECKING([for $1])
+ if test ! -x "$tool_specified"; then
+ AC_MSG_RESULT([not found])
+ AC_MSG_ERROR([User supplied tool $1=$tool_specified does not exist or is not executable])
+ fi
+ AC_MSG_RESULT([$tool_specified])
+ fi
+ fi
+ fi
+])
+
+# Call BASIC_SETUP_TOOL with AC_PATH_PROGS to locate the tool
+# $1: variable to set
+# $2: executable name (or list of names) to look for
+AC_DEFUN([BASIC_PATH_PROGS],
+[
+ BASIC_SETUP_TOOL($1, [AC_PATH_PROGS($1, $2)])
+])
+
+# Call BASIC_SETUP_TOOL with AC_CHECK_TOOLS to locate the tool
+# $1: variable to set
+# $2: executable name (or list of names) to look for
+AC_DEFUN([BASIC_CHECK_TOOLS],
+[
+ BASIC_SETUP_TOOL($1, [AC_CHECK_TOOLS($1, $2)])
+])
+
+# Like BASIC_PATH_PROGS but fails if no tool was found.
+# $1: variable to set
+# $2: executable name (or list of names) to look for
+AC_DEFUN([BASIC_REQUIRE_PROGS],
+[
+ BASIC_PATH_PROGS($1, $2)
+ BASIC_CHECK_NONEMPTY($1)
+])
+
+# Like BASIC_SETUP_TOOL but fails if no tool was found.
+# $1: variable to set
+# $2: autoconf macro to call to look for the special tool
+AC_DEFUN([BASIC_REQUIRE_SPECIAL],
+[
+ BASIC_SETUP_TOOL($1, [$2])
+ BASIC_CHECK_NONEMPTY($1)
])
# Setup the most fundamental tools that relies on not much else to set up,
# but is used by much of the early bootstrap code.
AC_DEFUN_ONCE([BASIC_SETUP_FUNDAMENTAL_TOOLS],
[
-
# Start with tools that do not need have cross compilation support
# and can be expected to be found in the default PATH. These tools are
# used by configure. Nor are these tools expected to be found in the
@@ -272,57 +356,50 @@ AC_DEFUN_ONCE([BASIC_SETUP_FUNDAMENTAL_TOOLS],
# needed to download the devkit.
# First are all the simple required tools.
- BASIC_REQUIRE_PROG(BASENAME, basename)
- BASIC_REQUIRE_PROG(BASH, bash)
- BASIC_REQUIRE_PROG(CAT, cat)
- BASIC_REQUIRE_PROG(CHMOD, chmod)
- BASIC_REQUIRE_PROG(CMP, cmp)
- BASIC_REQUIRE_PROG(COMM, comm)
- BASIC_REQUIRE_PROG(CP, cp)
- BASIC_REQUIRE_PROG(CPIO, cpio)
- BASIC_REQUIRE_PROG(CUT, cut)
- BASIC_REQUIRE_PROG(DATE, date)
- BASIC_REQUIRE_PROG(DIFF, [gdiff diff])
- BASIC_REQUIRE_PROG(DIRNAME, dirname)
- BASIC_REQUIRE_PROG(ECHO, echo)
- BASIC_REQUIRE_PROG(EXPR, expr)
- BASIC_REQUIRE_PROG(FILE, file)
- BASIC_REQUIRE_PROG(FIND, find)
- BASIC_REQUIRE_PROG(HEAD, head)
- BASIC_REQUIRE_PROG(LN, ln)
- BASIC_REQUIRE_PROG(LS, ls)
- BASIC_REQUIRE_PROG(MKDIR, mkdir)
- BASIC_REQUIRE_PROG(MKTEMP, mktemp)
- BASIC_REQUIRE_PROG(MV, mv)
- BASIC_REQUIRE_PROG(PRINTF, printf)
- BASIC_REQUIRE_PROG(RM, rm)
- BASIC_REQUIRE_PROG(SH, sh)
- BASIC_REQUIRE_PROG(SORT, sort)
- BASIC_REQUIRE_PROG(TAIL, tail)
- BASIC_REQUIRE_PROG(TAR, tar)
- BASIC_REQUIRE_PROG(TEE, tee)
- BASIC_REQUIRE_PROG(TOUCH, touch)
- BASIC_REQUIRE_PROG(TR, tr)
- BASIC_REQUIRE_PROG(UNAME, uname)
- BASIC_REQUIRE_PROG(UNIQ, uniq)
- BASIC_REQUIRE_PROG(WC, wc)
- BASIC_REQUIRE_PROG(WHICH, which)
- BASIC_REQUIRE_PROG(XARGS, xargs)
+ BASIC_REQUIRE_PROGS(BASENAME, basename)
+ BASIC_REQUIRE_PROGS(BASH, bash)
+ BASIC_REQUIRE_PROGS(CAT, cat)
+ BASIC_REQUIRE_PROGS(CHMOD, chmod)
+ BASIC_REQUIRE_PROGS(CMP, cmp)
+ BASIC_REQUIRE_PROGS(COMM, comm)
+ BASIC_REQUIRE_PROGS(CP, cp)
+ BASIC_REQUIRE_PROGS(CPIO, cpio)
+ BASIC_REQUIRE_PROGS(CUT, cut)
+ BASIC_REQUIRE_PROGS(DATE, date)
+ BASIC_REQUIRE_PROGS(DIFF, [gdiff diff])
+ BASIC_REQUIRE_PROGS(DIRNAME, dirname)
+ BASIC_REQUIRE_PROGS(ECHO, echo)
+ BASIC_REQUIRE_PROGS(EXPR, expr)
+ BASIC_REQUIRE_PROGS(FILE, file)
+ BASIC_REQUIRE_PROGS(FIND, find)
+ BASIC_REQUIRE_PROGS(HEAD, head)
+ BASIC_REQUIRE_PROGS(LN, ln)
+ BASIC_REQUIRE_PROGS(LS, ls)
+ BASIC_REQUIRE_PROGS(MKDIR, mkdir)
+ BASIC_REQUIRE_PROGS(MKTEMP, mktemp)
+ BASIC_REQUIRE_PROGS(MV, mv)
+ BASIC_REQUIRE_PROGS(NAWK, [nawk gawk awk])
+ BASIC_REQUIRE_PROGS(PRINTF, printf)
+ BASIC_REQUIRE_PROGS(RM, rm)
+ BASIC_REQUIRE_PROGS(SH, sh)
+ BASIC_REQUIRE_PROGS(SORT, sort)
+ BASIC_REQUIRE_PROGS(TAIL, tail)
+ BASIC_REQUIRE_PROGS(TAR, tar)
+ BASIC_REQUIRE_PROGS(TEE, tee)
+ BASIC_REQUIRE_PROGS(TOUCH, touch)
+ BASIC_REQUIRE_PROGS(TR, tr)
+ BASIC_REQUIRE_PROGS(UNAME, uname)
+ BASIC_REQUIRE_PROGS(UNIQ, uniq)
+ BASIC_REQUIRE_PROGS(WC, wc)
+ BASIC_REQUIRE_PROGS(WHICH, which)
+ BASIC_REQUIRE_PROGS(XARGS, xargs)
# Then required tools that require some special treatment.
- AC_PROG_AWK
- BASIC_CHECK_NONEMPTY(AWK)
- AC_PROG_GREP
- BASIC_CHECK_NONEMPTY(GREP)
- AC_PROG_EGREP
- BASIC_CHECK_NONEMPTY(EGREP)
- AC_PROG_FGREP
- BASIC_CHECK_NONEMPTY(FGREP)
- AC_PROG_SED
- BASIC_CHECK_NONEMPTY(SED)
-
- AC_PATH_PROGS(NAWK, [nawk gawk awk])
- BASIC_CHECK_NONEMPTY(NAWK)
+ BASIC_REQUIRE_SPECIAL(AWK, [AC_PROG_AWK])
+ BASIC_REQUIRE_SPECIAL(GREP, [AC_PROG_GREP])
+ BASIC_REQUIRE_SPECIAL(EGREP, [AC_PROG_EGREP])
+ BASIC_REQUIRE_SPECIAL(FGREP, [AC_PROG_FGREP])
+ BASIC_REQUIRE_SPECIAL(SED, [AC_PROG_SED])
# Always force rm.
RM="$RM -f"
@@ -332,10 +409,10 @@ AC_DEFUN_ONCE([BASIC_SETUP_FUNDAMENTAL_TOOLS],
THEPWDCMD=pwd
# These are not required on all platforms
- AC_PATH_PROG(CYGPATH, cygpath)
- AC_PATH_PROG(READLINK, readlink)
- AC_PATH_PROG(DF, df)
- AC_PATH_PROG(SETFILE, SetFile)
+ BASIC_PATH_PROGS(CYGPATH, cygpath)
+ BASIC_PATH_PROGS(READLINK, [greadlink readlink])
+ BASIC_PATH_PROGS(DF, df)
+ BASIC_PATH_PROGS(SETFILE, SetFile)
])
# Setup basic configuration paths, and platform-specific stuff related to PATHs.
@@ -622,26 +699,26 @@ AC_DEFUN_ONCE([BASIC_SETUP_COMPLEX_TOOLS],
# These tools might not be installed by default,
# need hint on how to install them.
- BASIC_REQUIRE_PROG(UNZIP, unzip)
- BASIC_REQUIRE_PROG(ZIP, zip)
+ BASIC_REQUIRE_PROGS(UNZIP, unzip)
+ BASIC_REQUIRE_PROGS(ZIP, zip)
# Non-required basic tools
- AC_PATH_PROG(LDD, ldd)
+ BASIC_PATH_PROGS(LDD, ldd)
if test "x$LDD" = "x"; then
# List shared lib dependencies is used for
# debug output and checking for forbidden dependencies.
# We can build without it.
LDD="true"
fi
- AC_PATH_PROG(OTOOL, otool)
+ BASIC_PATH_PROGS(OTOOL, otool)
if test "x$OTOOL" = "x"; then
OTOOL="true"
fi
- AC_PATH_PROGS(READELF, [readelf greadelf])
- AC_PATH_PROG(HG, hg)
- AC_PATH_PROG(STAT, stat)
- AC_PATH_PROG(TIME, time)
+ BASIC_PATH_PROGS(READELF, [greadelf readelf])
+ BASIC_PATH_PROGS(HG, hg)
+ BASIC_PATH_PROGS(STAT, stat)
+ BASIC_PATH_PROGS(TIME, time)
# Check if it's GNU time
IS_GNU_TIME=`$TIME --version 2>&1 | $GREP 'GNU time'`
if test "x$IS_GNU_TIME" != x; then
@@ -652,13 +729,13 @@ AC_DEFUN_ONCE([BASIC_SETUP_COMPLEX_TOOLS],
AC_SUBST(IS_GNU_TIME)
if test "x$OPENJDK_TARGET_OS" = "xwindows"; then
- BASIC_REQUIRE_PROG(COMM, comm)
+ BASIC_REQUIRE_PROGS(COMM, comm)
fi
if test "x$OPENJDK_TARGET_OS" = "xmacosx"; then
- BASIC_REQUIRE_PROG(DSYMUTIL, dsymutil)
- BASIC_REQUIRE_PROG(XATTR, xattr)
- AC_PATH_PROG(CODESIGN, codesign)
+ BASIC_REQUIRE_PROGS(DSYMUTIL, dsymutil)
+ BASIC_REQUIRE_PROGS(XATTR, xattr)
+ BASIC_PATH_PROGS(CODESIGN, codesign)
if test "x$CODESIGN" != "x"; then
# Verify that the openjdk_codesign certificate is present
AC_MSG_CHECKING([if openjdk_codesign certificate is present])
@@ -720,6 +797,9 @@ AC_DEFUN_ONCE([BASIC_CHECK_SRC_PERMS],
AC_DEFUN_ONCE([BASIC_TEST_USABILITY_ISSUES],
[
+ # Did user specify any unknown variables?
+ BASIC_CHECK_LEFTOVER_OVERRIDDEN
+
AC_MSG_CHECKING([if build directory is on local disk])
BASIC_CHECK_DIR_ON_LOCAL_DISK($OUTPUT_ROOT,
[OUTPUT_DIR_IS_LOCAL="yes"],
diff --git a/common/autoconf/configure b/common/autoconf/configure
index 00a07fccae1..b73609a1de2 100644
--- a/common/autoconf/configure
+++ b/common/autoconf/configure
@@ -121,15 +121,23 @@ do
case $conf_option in
--openjdk-target=*)
conf_openjdk_target=`expr "X$conf_option" : '[^=]*=\(.*\)'`
- continue ;;
+ ;;
--debug-configure)
if test "x$conf_debug_configure" != xrecursive; then
conf_debug_configure=true
export conf_debug_configure
fi
- continue ;;
+ ;;
+ [^-]*=*)
+ # Add name of variable to CONFIGURE_OVERRIDDEN_VARIABLES list inside !...!.
+ conf_env_var=`expr "x$conf_option" : 'x\([^=]*\)='`
+ CONFIGURE_OVERRIDDEN_VARIABLES="$CONFIGURE_OVERRIDDEN_VARIABLES!$conf_env_var!"
+ # ... and then process argument as usual
+ conf_processed_arguments=("${conf_processed_arguments[@]}" "$conf_option")
+ ;;
*)
- conf_processed_arguments=("${conf_processed_arguments[@]}" "$conf_option") ;;
+ conf_processed_arguments=("${conf_processed_arguments[@]}" "$conf_option")
+ ;;
esac
case $conf_option in
@@ -212,6 +220,9 @@ Additional (non-autoconf) OpenJDK Options:
Please be aware that, when cross-compiling, the OpenJDK configure script will
generally use 'target' where autoconf traditionally uses 'host'.
+
+Also note that variables must be passed on the command line. Variables in the
+environment will generally be ignored, unlike traditional autoconf scripts.
EOT
fi
else
diff --git a/common/autoconf/generated-configure.sh b/common/autoconf/generated-configure.sh
index 80adc25efc2..5c43987622b 100644
--- a/common/autoconf/generated-configure.sh
+++ b/common/autoconf/generated-configure.sh
@@ -716,6 +716,8 @@ ac_ct_OBJDUMP
OBJDUMP
ac_ct_OBJCOPY
OBJCOPY
+ac_ct_STRIP
+ac_ct_NM
MCS
STRIP
GNM
@@ -735,6 +737,7 @@ WINLD
HOTSPOT_LD
HOTSPOT_CXX
ARFLAGS
+ac_ct_AR
AR
LDEXECXX
LDCXX
@@ -914,7 +917,6 @@ SETFILE
DF
READLINK
CYGPATH
-NAWK
SED
FGREP
EGREP
@@ -934,6 +936,7 @@ SORT
SH
RM
PRINTF
+NAWK
MV
MKTEMP
MKDIR
@@ -1073,7 +1076,67 @@ with_ccache_dir
ac_precious_vars='build_alias
host_alias
target_alias
+BASENAME
+BASH
+CAT
+CHMOD
+CMP
+COMM
+CP
+CPIO
+CUT
+DATE
+DIFF
+DIRNAME
+ECHO
+EXPR
+FILE
+FIND
+HEAD
+LN
+LS
+MKDIR
+MKTEMP
+MV
+NAWK
+PRINTF
+RM
+SH
+SORT
+TAIL
+TAR
+TEE
+TOUCH
+TR
+UNAME
+UNIQ
+WC
+WHICH
+XARGS
+AWK
+GREP
+EGREP
+FGREP
+SED
+CYGPATH
+READLINK
+DF
+SETFILE
+UNZIP
+ZIP
+LDD
+OTOOL
+READELF
+HG
+STAT
+TIME
+DSYMUTIL
+XATTR
+CODESIGN
PKG_CONFIG
+BUILD_CC
+BUILD_CXX
+BUILD_LD
CC
CFLAGS
LDFLAGS
@@ -1084,8 +1147,18 @@ CXXFLAGS
CCC
OBJC
OBJCFLAGS
+AR
CPP
CXXCPP
+AS
+NM
+GNM
+STRIP
+MCS
+OBJCOPY
+OBJDUMP
+LIPO
+JTREGEXE
XMKMF
FREETYPE_CFLAGS
FREETYPE_LIBS
@@ -1848,7 +1921,67 @@ Optional Packages:
--with-ccache-dir where to store ccache files [~/.ccache]
Some influential environment variables:
+ BASENAME Override default value for BASENAME
+ BASH Override default value for BASH
+ CAT Override default value for CAT
+ CHMOD Override default value for CHMOD
+ CMP Override default value for CMP
+ COMM Override default value for COMM
+ CP Override default value for CP
+ CPIO Override default value for CPIO
+ CUT Override default value for CUT
+ DATE Override default value for DATE
+ DIFF Override default value for DIFF
+ DIRNAME Override default value for DIRNAME
+ ECHO Override default value for ECHO
+ EXPR Override default value for EXPR
+ FILE Override default value for FILE
+ FIND Override default value for FIND
+ HEAD Override default value for HEAD
+ LN Override default value for LN
+ LS Override default value for LS
+ MKDIR Override default value for MKDIR
+ MKTEMP Override default value for MKTEMP
+ MV Override default value for MV
+ NAWK Override default value for NAWK
+ PRINTF Override default value for PRINTF
+ RM Override default value for RM
+ SH Override default value for SH
+ SORT Override default value for SORT
+ TAIL Override default value for TAIL
+ TAR Override default value for TAR
+ TEE Override default value for TEE
+ TOUCH Override default value for TOUCH
+ TR Override default value for TR
+ UNAME Override default value for UNAME
+ UNIQ Override default value for UNIQ
+ WC Override default value for WC
+ WHICH Override default value for WHICH
+ XARGS Override default value for XARGS
+ AWK Override default value for AWK
+ GREP Override default value for GREP
+ EGREP Override default value for EGREP
+ FGREP Override default value for FGREP
+ SED Override default value for SED
+ CYGPATH Override default value for CYGPATH
+ READLINK Override default value for READLINK
+ DF Override default value for DF
+ SETFILE Override default value for SETFILE
+ UNZIP Override default value for UNZIP
+ ZIP Override default value for ZIP
+ LDD Override default value for LDD
+ OTOOL Override default value for OTOOL
+ READELF Override default value for READELF
+ HG Override default value for HG
+ STAT Override default value for STAT
+ TIME Override default value for TIME
+ DSYMUTIL Override default value for DSYMUTIL
+ XATTR Override default value for XATTR
+ CODESIGN Override default value for CODESIGN
PKG_CONFIG path to pkg-config utility
+ BUILD_CC Override default value for BUILD_CC
+ BUILD_CXX Override default value for BUILD_CXX
+ BUILD_LD Override default value for BUILD_LD
CC C compiler command
CFLAGS C compiler flags
LDFLAGS linker flags, e.g. -L if you have libraries in a
@@ -1860,8 +1993,18 @@ Some influential environment variables:
CXXFLAGS C++ compiler flags
OBJC Objective C compiler command
OBJCFLAGS Objective C compiler flags
+ AR Override default value for AR
CPP C preprocessor
CXXCPP C++ preprocessor
+ AS Override default value for AS
+ NM Override default value for NM
+ GNM Override default value for GNM
+ STRIP Override default value for STRIP
+ MCS Override default value for MCS
+ OBJCOPY Override default value for OBJCOPY
+ OBJDUMP Override default value for OBJDUMP
+ LIPO Override default value for LIPO
+ JTREGEXE Override default value for JTREGEXE
XMKMF Path to xmkmf, Makefile generator for X Window System
FREETYPE_CFLAGS
C compiler flags for FREETYPE, overriding pkg-config
@@ -3174,13 +3317,36 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
# Test that variable $1 denoting a program is not empty. If empty, exit with an error.
# $1: variable to check
-# $2: executable name to print in warning (optional)
-# Does AC_PATH_PROG followed by BASIC_CHECK_NONEMPTY.
-# Arguments as AC_PATH_PROG:
+# Check that there are no unprocessed overridden variables left.
+# If so, they are an incorrect argument and we will exit with an error.
+
+
+# Setup a tool for the given variable. If correctly specified by the user,
+# use that value, otherwise search for the tool using the supplied code snippet.
# $1: variable to set
-# $2: executable name to look for
+# $2: code snippet to call to look for the tool
+
+
+# Call BASIC_SETUP_TOOL with AC_PATH_PROGS to locate the tool
+# $1: variable to set
+# $2: executable name (or list of names) to look for
+
+
+# Call BASIC_SETUP_TOOL with AC_CHECK_TOOLS to locate the tool
+# $1: variable to set
+# $2: executable name (or list of names) to look for
+
+
+# Like BASIC_PATH_PROGS but fails if no tool was found.
+# $1: variable to set
+# $2: executable name (or list of names) to look for
+
+
+# Like BASIC_SETUP_TOOL but fails if no tool was found.
+# $1: variable to set
+# $2: autoconf macro to call to look for the special tool
# Setup the most fundamental tools that relies on not much else to set up,
@@ -3868,7 +4034,7 @@ fi
#CUSTOM_AUTOCONF_INCLUDE
# Do not change or remove the following line, it is needed for consistency checks:
-DATE_WHEN_GENERATED=1390989605
+DATE_WHEN_GENERATED=1390990903
###############################################################################
#
@@ -3891,7 +4057,6 @@ $as_echo "$as_me: Configuration created at $DATE_WHEN_CONFIGURED." >&6;}
$as_echo "$as_me: configure script generated at timestamp $DATE_WHEN_GENERATED." >&6;}
-
# Start with tools that do not need have cross compilation support
# and can be expected to be found in the default PATH. These tools are
# used by configure. Nor are these tools expected to be found in the
@@ -3900,7 +4065,14 @@ $as_echo "$as_me: configure script generated at timestamp $DATE_WHEN_GENERATED."
# First are all the simple required tools.
- for ac_prog in basename
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$BASENAME" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in basename
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -3945,21 +4117,155 @@ fi
test -n "$BASENAME" && break
done
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !BASENAME! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!BASENAME!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xBASENAME" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of BASENAME from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of BASENAME from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in basename
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_BASENAME+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $BASENAME in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_BASENAME="$BASENAME" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_BASENAME="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+BASENAME=$ac_cv_path_BASENAME
+if test -n "$BASENAME"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BASENAME" >&5
+$as_echo "$BASENAME" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$BASENAME" && break
+done
- if test "x$BASENAME" = x; then
- if test "xbasename" = x; then
- PROG_NAME=basename
else
- PROG_NAME=basename
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$BASENAME"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool BASENAME=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool BASENAME=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_BASENAME+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $BASENAME in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_BASENAME="$BASENAME" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_BASENAME="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+BASENAME=$ac_cv_path_BASENAME
+if test -n "$BASENAME"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BASENAME" >&5
+$as_echo "$BASENAME" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$BASENAME" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool BASENAME=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool BASENAME=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BASENAME" >&5
+$as_echo_n "checking for BASENAME... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool BASENAME=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5
-$as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
- as_fn_error $? "Cannot continue" "$LINENO" 5
fi
- for ac_prog in bash
+ if test "x$BASENAME" = x; then
+ as_fn_error $? "Could not find required tool for BASENAME" "$LINENO" 5
+ fi
+
+
+
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$BASH" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in bash
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -4004,21 +4310,155 @@ fi
test -n "$BASH" && break
done
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !BASH! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!BASH!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xBASH" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of BASH from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of BASH from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in bash
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_BASH+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $BASH in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_BASH="$BASH" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_BASH="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+BASH=$ac_cv_path_BASH
+if test -n "$BASH"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BASH" >&5
+$as_echo "$BASH" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$BASH" && break
+done
- if test "x$BASH" = x; then
- if test "xbash" = x; then
- PROG_NAME=bash
else
- PROG_NAME=bash
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$BASH"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool BASH=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool BASH=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_BASH+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $BASH in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_BASH="$BASH" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_BASH="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+BASH=$ac_cv_path_BASH
+if test -n "$BASH"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BASH" >&5
+$as_echo "$BASH" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$BASH" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool BASH=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool BASH=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BASH" >&5
+$as_echo_n "checking for BASH... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool BASH=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5
-$as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
- as_fn_error $? "Cannot continue" "$LINENO" 5
fi
- for ac_prog in cat
+ if test "x$BASH" = x; then
+ as_fn_error $? "Could not find required tool for BASH" "$LINENO" 5
+ fi
+
+
+
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$CAT" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in cat
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -4063,21 +4503,155 @@ fi
test -n "$CAT" && break
done
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !CAT! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!CAT!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xCAT" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of CAT from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of CAT from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in cat
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_CAT+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $CAT in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_CAT="$CAT" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_CAT="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+CAT=$ac_cv_path_CAT
+if test -n "$CAT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CAT" >&5
+$as_echo "$CAT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$CAT" && break
+done
- if test "x$CAT" = x; then
- if test "xcat" = x; then
- PROG_NAME=cat
else
- PROG_NAME=cat
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$CAT"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool CAT=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool CAT=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_CAT+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $CAT in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_CAT="$CAT" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_CAT="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+CAT=$ac_cv_path_CAT
+if test -n "$CAT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CAT" >&5
+$as_echo "$CAT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$CAT" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool CAT=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool CAT=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CAT" >&5
+$as_echo_n "checking for CAT... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool CAT=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5
-$as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
- as_fn_error $? "Cannot continue" "$LINENO" 5
fi
- for ac_prog in chmod
+ if test "x$CAT" = x; then
+ as_fn_error $? "Could not find required tool for CAT" "$LINENO" 5
+ fi
+
+
+
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$CHMOD" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in chmod
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -4122,21 +4696,155 @@ fi
test -n "$CHMOD" && break
done
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !CHMOD! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!CHMOD!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xCHMOD" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of CHMOD from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of CHMOD from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in chmod
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_CHMOD+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $CHMOD in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_CHMOD="$CHMOD" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_CHMOD="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+CHMOD=$ac_cv_path_CHMOD
+if test -n "$CHMOD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CHMOD" >&5
+$as_echo "$CHMOD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$CHMOD" && break
+done
- if test "x$CHMOD" = x; then
- if test "xchmod" = x; then
- PROG_NAME=chmod
else
- PROG_NAME=chmod
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$CHMOD"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool CHMOD=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool CHMOD=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_CHMOD+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $CHMOD in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_CHMOD="$CHMOD" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_CHMOD="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+CHMOD=$ac_cv_path_CHMOD
+if test -n "$CHMOD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CHMOD" >&5
+$as_echo "$CHMOD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$CHMOD" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool CHMOD=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool CHMOD=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CHMOD" >&5
+$as_echo_n "checking for CHMOD... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool CHMOD=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5
-$as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
- as_fn_error $? "Cannot continue" "$LINENO" 5
fi
- for ac_prog in cmp
+ if test "x$CHMOD" = x; then
+ as_fn_error $? "Could not find required tool for CHMOD" "$LINENO" 5
+ fi
+
+
+
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$CMP" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in cmp
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -4181,21 +4889,155 @@ fi
test -n "$CMP" && break
done
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !CMP! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!CMP!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xCMP" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of CMP from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of CMP from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in cmp
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_CMP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $CMP in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_CMP="$CMP" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_CMP="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+CMP=$ac_cv_path_CMP
+if test -n "$CMP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CMP" >&5
+$as_echo "$CMP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$CMP" && break
+done
- if test "x$CMP" = x; then
- if test "xcmp" = x; then
- PROG_NAME=cmp
else
- PROG_NAME=cmp
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$CMP"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool CMP=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool CMP=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_CMP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $CMP in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_CMP="$CMP" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_CMP="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+CMP=$ac_cv_path_CMP
+if test -n "$CMP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CMP" >&5
+$as_echo "$CMP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$CMP" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool CMP=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool CMP=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CMP" >&5
+$as_echo_n "checking for CMP... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool CMP=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5
-$as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
- as_fn_error $? "Cannot continue" "$LINENO" 5
fi
- for ac_prog in comm
+ if test "x$CMP" = x; then
+ as_fn_error $? "Could not find required tool for CMP" "$LINENO" 5
+ fi
+
+
+
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$COMM" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in comm
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -4240,21 +5082,155 @@ fi
test -n "$COMM" && break
done
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !COMM! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!COMM!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xCOMM" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of COMM from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of COMM from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in comm
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_COMM+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $COMM in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_COMM="$COMM" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_COMM="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+COMM=$ac_cv_path_COMM
+if test -n "$COMM"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $COMM" >&5
+$as_echo "$COMM" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$COMM" && break
+done
- if test "x$COMM" = x; then
- if test "xcomm" = x; then
- PROG_NAME=comm
else
- PROG_NAME=comm
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$COMM"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool COMM=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool COMM=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_COMM+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $COMM in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_COMM="$COMM" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_COMM="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+COMM=$ac_cv_path_COMM
+if test -n "$COMM"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $COMM" >&5
+$as_echo "$COMM" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$COMM" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool COMM=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool COMM=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for COMM" >&5
+$as_echo_n "checking for COMM... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool COMM=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5
-$as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
- as_fn_error $? "Cannot continue" "$LINENO" 5
fi
- for ac_prog in cp
+ if test "x$COMM" = x; then
+ as_fn_error $? "Could not find required tool for COMM" "$LINENO" 5
+ fi
+
+
+
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$CP" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in cp
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -4299,21 +5275,155 @@ fi
test -n "$CP" && break
done
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !CP! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!CP!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xCP" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of CP from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of CP from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in cp
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_CP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $CP in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_CP="$CP" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_CP="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+CP=$ac_cv_path_CP
+if test -n "$CP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CP" >&5
+$as_echo "$CP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$CP" && break
+done
- if test "x$CP" = x; then
- if test "xcp" = x; then
- PROG_NAME=cp
else
- PROG_NAME=cp
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$CP"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool CP=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool CP=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_CP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $CP in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_CP="$CP" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_CP="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+CP=$ac_cv_path_CP
+if test -n "$CP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CP" >&5
+$as_echo "$CP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$CP" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool CP=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool CP=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CP" >&5
+$as_echo_n "checking for CP... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool CP=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5
-$as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
- as_fn_error $? "Cannot continue" "$LINENO" 5
fi
- for ac_prog in cpio
+ if test "x$CP" = x; then
+ as_fn_error $? "Could not find required tool for CP" "$LINENO" 5
+ fi
+
+
+
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$CPIO" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in cpio
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -4358,21 +5468,155 @@ fi
test -n "$CPIO" && break
done
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !CPIO! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!CPIO!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xCPIO" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of CPIO from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of CPIO from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in cpio
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_CPIO+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $CPIO in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_CPIO="$CPIO" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_CPIO="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+CPIO=$ac_cv_path_CPIO
+if test -n "$CPIO"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPIO" >&5
+$as_echo "$CPIO" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$CPIO" && break
+done
- if test "x$CPIO" = x; then
- if test "xcpio" = x; then
- PROG_NAME=cpio
else
- PROG_NAME=cpio
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$CPIO"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool CPIO=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool CPIO=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_CPIO+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $CPIO in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_CPIO="$CPIO" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_CPIO="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+CPIO=$ac_cv_path_CPIO
+if test -n "$CPIO"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPIO" >&5
+$as_echo "$CPIO" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$CPIO" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool CPIO=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool CPIO=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CPIO" >&5
+$as_echo_n "checking for CPIO... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool CPIO=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5
-$as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
- as_fn_error $? "Cannot continue" "$LINENO" 5
fi
- for ac_prog in cut
+ if test "x$CPIO" = x; then
+ as_fn_error $? "Could not find required tool for CPIO" "$LINENO" 5
+ fi
+
+
+
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$CUT" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in cut
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -4417,21 +5661,155 @@ fi
test -n "$CUT" && break
done
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !CUT! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!CUT!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xCUT" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of CUT from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of CUT from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in cut
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_CUT+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $CUT in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_CUT="$CUT" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_CUT="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+CUT=$ac_cv_path_CUT
+if test -n "$CUT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CUT" >&5
+$as_echo "$CUT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$CUT" && break
+done
- if test "x$CUT" = x; then
- if test "xcut" = x; then
- PROG_NAME=cut
else
- PROG_NAME=cut
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$CUT"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool CUT=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool CUT=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_CUT+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $CUT in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_CUT="$CUT" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_CUT="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+CUT=$ac_cv_path_CUT
+if test -n "$CUT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CUT" >&5
+$as_echo "$CUT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$CUT" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool CUT=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool CUT=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CUT" >&5
+$as_echo_n "checking for CUT... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool CUT=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5
-$as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
- as_fn_error $? "Cannot continue" "$LINENO" 5
fi
- for ac_prog in date
+ if test "x$CUT" = x; then
+ as_fn_error $? "Could not find required tool for CUT" "$LINENO" 5
+ fi
+
+
+
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$DATE" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in date
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -4476,21 +5854,155 @@ fi
test -n "$DATE" && break
done
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !DATE! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!DATE!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xDATE" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of DATE from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of DATE from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in date
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_DATE+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $DATE in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_DATE="$DATE" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_DATE="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+DATE=$ac_cv_path_DATE
+if test -n "$DATE"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DATE" >&5
+$as_echo "$DATE" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$DATE" && break
+done
- if test "x$DATE" = x; then
- if test "xdate" = x; then
- PROG_NAME=date
else
- PROG_NAME=date
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$DATE"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool DATE=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool DATE=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_DATE+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $DATE in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_DATE="$DATE" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_DATE="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+DATE=$ac_cv_path_DATE
+if test -n "$DATE"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DATE" >&5
+$as_echo "$DATE" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$DATE" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool DATE=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool DATE=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for DATE" >&5
+$as_echo_n "checking for DATE... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool DATE=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5
-$as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
- as_fn_error $? "Cannot continue" "$LINENO" 5
fi
- for ac_prog in gdiff diff
+ if test "x$DATE" = x; then
+ as_fn_error $? "Could not find required tool for DATE" "$LINENO" 5
+ fi
+
+
+
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$DIFF" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in gdiff diff
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -4535,21 +6047,155 @@ fi
test -n "$DIFF" && break
done
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !DIFF! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!DIFF!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xDIFF" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of DIFF from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of DIFF from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in gdiff diff
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_DIFF+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $DIFF in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_DIFF="$DIFF" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_DIFF="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+DIFF=$ac_cv_path_DIFF
+if test -n "$DIFF"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DIFF" >&5
+$as_echo "$DIFF" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$DIFF" && break
+done
- if test "x$DIFF" = x; then
- if test "xgdiff diff" = x; then
- PROG_NAME=diff
else
- PROG_NAME=gdiff diff
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$DIFF"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool DIFF=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool DIFF=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_DIFF+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $DIFF in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_DIFF="$DIFF" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_DIFF="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+DIFF=$ac_cv_path_DIFF
+if test -n "$DIFF"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DIFF" >&5
+$as_echo "$DIFF" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$DIFF" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool DIFF=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool DIFF=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for DIFF" >&5
+$as_echo_n "checking for DIFF... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool DIFF=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5
-$as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
- as_fn_error $? "Cannot continue" "$LINENO" 5
fi
- for ac_prog in dirname
+ if test "x$DIFF" = x; then
+ as_fn_error $? "Could not find required tool for DIFF" "$LINENO" 5
+ fi
+
+
+
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$DIRNAME" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in dirname
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -4594,21 +6240,155 @@ fi
test -n "$DIRNAME" && break
done
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !DIRNAME! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!DIRNAME!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xDIRNAME" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of DIRNAME from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of DIRNAME from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in dirname
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_DIRNAME+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $DIRNAME in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_DIRNAME="$DIRNAME" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_DIRNAME="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+DIRNAME=$ac_cv_path_DIRNAME
+if test -n "$DIRNAME"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DIRNAME" >&5
+$as_echo "$DIRNAME" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$DIRNAME" && break
+done
- if test "x$DIRNAME" = x; then
- if test "xdirname" = x; then
- PROG_NAME=dirname
else
- PROG_NAME=dirname
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$DIRNAME"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool DIRNAME=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool DIRNAME=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_DIRNAME+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $DIRNAME in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_DIRNAME="$DIRNAME" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_DIRNAME="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+DIRNAME=$ac_cv_path_DIRNAME
+if test -n "$DIRNAME"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DIRNAME" >&5
+$as_echo "$DIRNAME" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$DIRNAME" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool DIRNAME=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool DIRNAME=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for DIRNAME" >&5
+$as_echo_n "checking for DIRNAME... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool DIRNAME=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5
-$as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
- as_fn_error $? "Cannot continue" "$LINENO" 5
fi
- for ac_prog in echo
+ if test "x$DIRNAME" = x; then
+ as_fn_error $? "Could not find required tool for DIRNAME" "$LINENO" 5
+ fi
+
+
+
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$ECHO" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in echo
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -4653,21 +6433,155 @@ fi
test -n "$ECHO" && break
done
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !ECHO! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!ECHO!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xECHO" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of ECHO from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of ECHO from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in echo
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_ECHO+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $ECHO in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_ECHO="$ECHO" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_ECHO="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+ECHO=$ac_cv_path_ECHO
+if test -n "$ECHO"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ECHO" >&5
+$as_echo "$ECHO" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ECHO" && break
+done
- if test "x$ECHO" = x; then
- if test "xecho" = x; then
- PROG_NAME=echo
else
- PROG_NAME=echo
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$ECHO"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool ECHO=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool ECHO=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_ECHO+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $ECHO in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_ECHO="$ECHO" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_ECHO="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+ECHO=$ac_cv_path_ECHO
+if test -n "$ECHO"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ECHO" >&5
+$as_echo "$ECHO" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$ECHO" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool ECHO=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool ECHO=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ECHO" >&5
+$as_echo_n "checking for ECHO... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool ECHO=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5
-$as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
- as_fn_error $? "Cannot continue" "$LINENO" 5
fi
- for ac_prog in expr
+ if test "x$ECHO" = x; then
+ as_fn_error $? "Could not find required tool for ECHO" "$LINENO" 5
+ fi
+
+
+
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$EXPR" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in expr
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -4712,21 +6626,155 @@ fi
test -n "$EXPR" && break
done
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !EXPR! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!EXPR!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xEXPR" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of EXPR from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of EXPR from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in expr
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_EXPR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $EXPR in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_EXPR="$EXPR" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_EXPR="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+EXPR=$ac_cv_path_EXPR
+if test -n "$EXPR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $EXPR" >&5
+$as_echo "$EXPR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$EXPR" && break
+done
- if test "x$EXPR" = x; then
- if test "xexpr" = x; then
- PROG_NAME=expr
else
- PROG_NAME=expr
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$EXPR"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool EXPR=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool EXPR=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_EXPR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $EXPR in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_EXPR="$EXPR" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_EXPR="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+EXPR=$ac_cv_path_EXPR
+if test -n "$EXPR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $EXPR" >&5
+$as_echo "$EXPR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$EXPR" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool EXPR=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool EXPR=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EXPR" >&5
+$as_echo_n "checking for EXPR... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool EXPR=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5
-$as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
- as_fn_error $? "Cannot continue" "$LINENO" 5
fi
- for ac_prog in file
+ if test "x$EXPR" = x; then
+ as_fn_error $? "Could not find required tool for EXPR" "$LINENO" 5
+ fi
+
+
+
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$FILE" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in file
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -4771,21 +6819,155 @@ fi
test -n "$FILE" && break
done
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !FILE! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!FILE!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xFILE" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of FILE from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of FILE from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in file
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_FILE+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $FILE in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_FILE="$FILE" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_FILE="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+FILE=$ac_cv_path_FILE
+if test -n "$FILE"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FILE" >&5
+$as_echo "$FILE" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$FILE" && break
+done
- if test "x$FILE" = x; then
- if test "xfile" = x; then
- PROG_NAME=file
else
- PROG_NAME=file
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$FILE"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool FILE=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool FILE=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_FILE+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $FILE in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_FILE="$FILE" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_FILE="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+FILE=$ac_cv_path_FILE
+if test -n "$FILE"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FILE" >&5
+$as_echo "$FILE" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$FILE" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool FILE=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool FILE=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for FILE" >&5
+$as_echo_n "checking for FILE... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool FILE=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5
-$as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
- as_fn_error $? "Cannot continue" "$LINENO" 5
fi
- for ac_prog in find
+ if test "x$FILE" = x; then
+ as_fn_error $? "Could not find required tool for FILE" "$LINENO" 5
+ fi
+
+
+
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$FIND" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in find
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -4830,21 +7012,155 @@ fi
test -n "$FIND" && break
done
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !FIND! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!FIND!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xFIND" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of FIND from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of FIND from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in find
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_FIND+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $FIND in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_FIND="$FIND" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_FIND="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+FIND=$ac_cv_path_FIND
+if test -n "$FIND"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FIND" >&5
+$as_echo "$FIND" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$FIND" && break
+done
- if test "x$FIND" = x; then
- if test "xfind" = x; then
- PROG_NAME=find
else
- PROG_NAME=find
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$FIND"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool FIND=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool FIND=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_FIND+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $FIND in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_FIND="$FIND" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_FIND="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+FIND=$ac_cv_path_FIND
+if test -n "$FIND"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FIND" >&5
+$as_echo "$FIND" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$FIND" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool FIND=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool FIND=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for FIND" >&5
+$as_echo_n "checking for FIND... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool FIND=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5
-$as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
- as_fn_error $? "Cannot continue" "$LINENO" 5
fi
- for ac_prog in head
+ if test "x$FIND" = x; then
+ as_fn_error $? "Could not find required tool for FIND" "$LINENO" 5
+ fi
+
+
+
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$HEAD" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in head
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -4889,21 +7205,155 @@ fi
test -n "$HEAD" && break
done
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !HEAD! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!HEAD!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xHEAD" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of HEAD from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of HEAD from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in head
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_HEAD+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $HEAD in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_HEAD="$HEAD" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_HEAD="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+HEAD=$ac_cv_path_HEAD
+if test -n "$HEAD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HEAD" >&5
+$as_echo "$HEAD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$HEAD" && break
+done
- if test "x$HEAD" = x; then
- if test "xhead" = x; then
- PROG_NAME=head
else
- PROG_NAME=head
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$HEAD"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool HEAD=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool HEAD=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_HEAD+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $HEAD in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_HEAD="$HEAD" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_HEAD="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+HEAD=$ac_cv_path_HEAD
+if test -n "$HEAD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HEAD" >&5
+$as_echo "$HEAD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$HEAD" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool HEAD=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool HEAD=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for HEAD" >&5
+$as_echo_n "checking for HEAD... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool HEAD=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5
-$as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
- as_fn_error $? "Cannot continue" "$LINENO" 5
fi
- for ac_prog in ln
+ if test "x$HEAD" = x; then
+ as_fn_error $? "Could not find required tool for HEAD" "$LINENO" 5
+ fi
+
+
+
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$LN" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in ln
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -4948,21 +7398,155 @@ fi
test -n "$LN" && break
done
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !LN! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!LN!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xLN" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of LN from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of LN from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in ln
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_LN+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $LN in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_LN="$LN" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_LN="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+LN=$ac_cv_path_LN
+if test -n "$LN"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LN" >&5
+$as_echo "$LN" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$LN" && break
+done
- if test "x$LN" = x; then
- if test "xln" = x; then
- PROG_NAME=ln
else
- PROG_NAME=ln
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$LN"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool LN=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool LN=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_LN+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $LN in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_LN="$LN" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_LN="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+LN=$ac_cv_path_LN
+if test -n "$LN"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LN" >&5
+$as_echo "$LN" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$LN" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool LN=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool LN=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LN" >&5
+$as_echo_n "checking for LN... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool LN=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5
-$as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
- as_fn_error $? "Cannot continue" "$LINENO" 5
fi
- for ac_prog in ls
+ if test "x$LN" = x; then
+ as_fn_error $? "Could not find required tool for LN" "$LINENO" 5
+ fi
+
+
+
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$LS" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in ls
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -5007,21 +7591,155 @@ fi
test -n "$LS" && break
done
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !LS! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!LS!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xLS" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of LS from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of LS from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in ls
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_LS+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $LS in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_LS="$LS" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_LS="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+LS=$ac_cv_path_LS
+if test -n "$LS"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LS" >&5
+$as_echo "$LS" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$LS" && break
+done
- if test "x$LS" = x; then
- if test "xls" = x; then
- PROG_NAME=ls
else
- PROG_NAME=ls
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$LS"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool LS=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool LS=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_LS+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $LS in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_LS="$LS" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_LS="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+LS=$ac_cv_path_LS
+if test -n "$LS"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LS" >&5
+$as_echo "$LS" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$LS" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool LS=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool LS=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LS" >&5
+$as_echo_n "checking for LS... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool LS=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5
-$as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
- as_fn_error $? "Cannot continue" "$LINENO" 5
fi
- for ac_prog in mkdir
+ if test "x$LS" = x; then
+ as_fn_error $? "Could not find required tool for LS" "$LINENO" 5
+ fi
+
+
+
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$MKDIR" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in mkdir
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -5066,21 +7784,155 @@ fi
test -n "$MKDIR" && break
done
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !MKDIR! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!MKDIR!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xMKDIR" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of MKDIR from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of MKDIR from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in mkdir
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_MKDIR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $MKDIR in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_MKDIR="$MKDIR" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_MKDIR="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+MKDIR=$ac_cv_path_MKDIR
+if test -n "$MKDIR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR" >&5
+$as_echo "$MKDIR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$MKDIR" && break
+done
- if test "x$MKDIR" = x; then
- if test "xmkdir" = x; then
- PROG_NAME=mkdir
else
- PROG_NAME=mkdir
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$MKDIR"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool MKDIR=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool MKDIR=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_MKDIR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $MKDIR in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_MKDIR="$MKDIR" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_MKDIR="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+MKDIR=$ac_cv_path_MKDIR
+if test -n "$MKDIR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR" >&5
+$as_echo "$MKDIR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$MKDIR" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool MKDIR=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool MKDIR=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MKDIR" >&5
+$as_echo_n "checking for MKDIR... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool MKDIR=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5
-$as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
- as_fn_error $? "Cannot continue" "$LINENO" 5
fi
- for ac_prog in mktemp
+ if test "x$MKDIR" = x; then
+ as_fn_error $? "Could not find required tool for MKDIR" "$LINENO" 5
+ fi
+
+
+
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$MKTEMP" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in mktemp
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -5125,21 +7977,155 @@ fi
test -n "$MKTEMP" && break
done
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !MKTEMP! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!MKTEMP!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xMKTEMP" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of MKTEMP from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of MKTEMP from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in mktemp
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_MKTEMP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $MKTEMP in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_MKTEMP="$MKTEMP" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_MKTEMP="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+MKTEMP=$ac_cv_path_MKTEMP
+if test -n "$MKTEMP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKTEMP" >&5
+$as_echo "$MKTEMP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$MKTEMP" && break
+done
- if test "x$MKTEMP" = x; then
- if test "xmktemp" = x; then
- PROG_NAME=mktemp
else
- PROG_NAME=mktemp
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$MKTEMP"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool MKTEMP=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool MKTEMP=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_MKTEMP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $MKTEMP in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_MKTEMP="$MKTEMP" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_MKTEMP="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+MKTEMP=$ac_cv_path_MKTEMP
+if test -n "$MKTEMP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKTEMP" >&5
+$as_echo "$MKTEMP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$MKTEMP" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool MKTEMP=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool MKTEMP=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MKTEMP" >&5
+$as_echo_n "checking for MKTEMP... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool MKTEMP=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5
-$as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
- as_fn_error $? "Cannot continue" "$LINENO" 5
fi
- for ac_prog in mv
+ if test "x$MKTEMP" = x; then
+ as_fn_error $? "Could not find required tool for MKTEMP" "$LINENO" 5
+ fi
+
+
+
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$MV" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in mv
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -5184,21 +8170,348 @@ fi
test -n "$MV" && break
done
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !MV! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!MV!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xMV" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of MV from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of MV from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in mv
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_MV+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $MV in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_MV="$MV" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_MV="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+MV=$ac_cv_path_MV
+if test -n "$MV"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MV" >&5
+$as_echo "$MV" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$MV" && break
+done
- if test "x$MV" = x; then
- if test "xmv" = x; then
- PROG_NAME=mv
else
- PROG_NAME=mv
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$MV"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool MV=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool MV=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_MV+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $MV in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_MV="$MV" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_MV="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+MV=$ac_cv_path_MV
+if test -n "$MV"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MV" >&5
+$as_echo "$MV" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$MV" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool MV=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool MV=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MV" >&5
+$as_echo_n "checking for MV... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool MV=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5
-$as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
- as_fn_error $? "Cannot continue" "$LINENO" 5
fi
- for ac_prog in printf
+ if test "x$MV" = x; then
+ as_fn_error $? "Could not find required tool for MV" "$LINENO" 5
+ fi
+
+
+
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$NAWK" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in nawk gawk awk
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_NAWK+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $NAWK in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_NAWK="$NAWK" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_NAWK="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+NAWK=$ac_cv_path_NAWK
+if test -n "$NAWK"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NAWK" >&5
+$as_echo "$NAWK" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$NAWK" && break
+done
+
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !NAWK! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!NAWK!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xNAWK" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of NAWK from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of NAWK from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in nawk gawk awk
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_NAWK+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $NAWK in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_NAWK="$NAWK" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_NAWK="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+NAWK=$ac_cv_path_NAWK
+if test -n "$NAWK"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NAWK" >&5
+$as_echo "$NAWK" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$NAWK" && break
+done
+
+ else
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$NAWK"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool NAWK=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool NAWK=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_NAWK+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $NAWK in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_NAWK="$NAWK" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_NAWK="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+NAWK=$ac_cv_path_NAWK
+if test -n "$NAWK"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NAWK" >&5
+$as_echo "$NAWK" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$NAWK" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool NAWK=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool NAWK=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for NAWK" >&5
+$as_echo_n "checking for NAWK... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool NAWK=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
+ fi
+ fi
+
+
+
+ if test "x$NAWK" = x; then
+ as_fn_error $? "Could not find required tool for NAWK" "$LINENO" 5
+ fi
+
+
+
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$PRINTF" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in printf
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -5243,21 +8556,155 @@ fi
test -n "$PRINTF" && break
done
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !PRINTF! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!PRINTF!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xPRINTF" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of PRINTF from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of PRINTF from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in printf
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_PRINTF+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $PRINTF in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PRINTF="$PRINTF" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_PRINTF="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+PRINTF=$ac_cv_path_PRINTF
+if test -n "$PRINTF"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PRINTF" >&5
+$as_echo "$PRINTF" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$PRINTF" && break
+done
- if test "x$PRINTF" = x; then
- if test "xprintf" = x; then
- PROG_NAME=printf
else
- PROG_NAME=printf
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$PRINTF"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool PRINTF=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool PRINTF=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_PRINTF+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $PRINTF in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PRINTF="$PRINTF" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_PRINTF="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+PRINTF=$ac_cv_path_PRINTF
+if test -n "$PRINTF"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PRINTF" >&5
+$as_echo "$PRINTF" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$PRINTF" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool PRINTF=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool PRINTF=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PRINTF" >&5
+$as_echo_n "checking for PRINTF... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool PRINTF=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5
-$as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
- as_fn_error $? "Cannot continue" "$LINENO" 5
fi
- for ac_prog in rm
+ if test "x$PRINTF" = x; then
+ as_fn_error $? "Could not find required tool for PRINTF" "$LINENO" 5
+ fi
+
+
+
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$RM" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in rm
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -5302,21 +8749,155 @@ fi
test -n "$RM" && break
done
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !RM! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!RM!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xRM" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of RM from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of RM from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in rm
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_RM+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $RM in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_RM="$RM" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_RM="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+RM=$ac_cv_path_RM
+if test -n "$RM"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RM" >&5
+$as_echo "$RM" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$RM" && break
+done
- if test "x$RM" = x; then
- if test "xrm" = x; then
- PROG_NAME=rm
else
- PROG_NAME=rm
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$RM"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool RM=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool RM=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_RM+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $RM in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_RM="$RM" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_RM="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+RM=$ac_cv_path_RM
+if test -n "$RM"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RM" >&5
+$as_echo "$RM" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$RM" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool RM=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool RM=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for RM" >&5
+$as_echo_n "checking for RM... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool RM=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5
-$as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
- as_fn_error $? "Cannot continue" "$LINENO" 5
fi
- for ac_prog in sh
+ if test "x$RM" = x; then
+ as_fn_error $? "Could not find required tool for RM" "$LINENO" 5
+ fi
+
+
+
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$SH" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in sh
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -5361,21 +8942,155 @@ fi
test -n "$SH" && break
done
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !SH! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!SH!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xSH" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of SH from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of SH from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in sh
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_SH+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $SH in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_SH="$SH" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_SH="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+SH=$ac_cv_path_SH
+if test -n "$SH"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SH" >&5
+$as_echo "$SH" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$SH" && break
+done
- if test "x$SH" = x; then
- if test "xsh" = x; then
- PROG_NAME=sh
else
- PROG_NAME=sh
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$SH"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool SH=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool SH=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_SH+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $SH in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_SH="$SH" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_SH="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+SH=$ac_cv_path_SH
+if test -n "$SH"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SH" >&5
+$as_echo "$SH" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$SH" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool SH=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool SH=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SH" >&5
+$as_echo_n "checking for SH... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool SH=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5
-$as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
- as_fn_error $? "Cannot continue" "$LINENO" 5
fi
- for ac_prog in sort
+ if test "x$SH" = x; then
+ as_fn_error $? "Could not find required tool for SH" "$LINENO" 5
+ fi
+
+
+
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$SORT" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in sort
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -5420,21 +9135,155 @@ fi
test -n "$SORT" && break
done
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !SORT! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!SORT!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xSORT" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of SORT from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of SORT from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in sort
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_SORT+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $SORT in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_SORT="$SORT" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_SORT="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+SORT=$ac_cv_path_SORT
+if test -n "$SORT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SORT" >&5
+$as_echo "$SORT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$SORT" && break
+done
- if test "x$SORT" = x; then
- if test "xsort" = x; then
- PROG_NAME=sort
else
- PROG_NAME=sort
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$SORT"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool SORT=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool SORT=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_SORT+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $SORT in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_SORT="$SORT" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_SORT="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+SORT=$ac_cv_path_SORT
+if test -n "$SORT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SORT" >&5
+$as_echo "$SORT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$SORT" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool SORT=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool SORT=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SORT" >&5
+$as_echo_n "checking for SORT... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool SORT=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5
-$as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
- as_fn_error $? "Cannot continue" "$LINENO" 5
fi
- for ac_prog in tail
+ if test "x$SORT" = x; then
+ as_fn_error $? "Could not find required tool for SORT" "$LINENO" 5
+ fi
+
+
+
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$TAIL" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in tail
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -5479,21 +9328,155 @@ fi
test -n "$TAIL" && break
done
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !TAIL! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!TAIL!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xTAIL" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of TAIL from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of TAIL from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in tail
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_TAIL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $TAIL in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_TAIL="$TAIL" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_TAIL="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+TAIL=$ac_cv_path_TAIL
+if test -n "$TAIL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TAIL" >&5
+$as_echo "$TAIL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$TAIL" && break
+done
- if test "x$TAIL" = x; then
- if test "xtail" = x; then
- PROG_NAME=tail
else
- PROG_NAME=tail
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$TAIL"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool TAIL=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool TAIL=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_TAIL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $TAIL in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_TAIL="$TAIL" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_TAIL="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+TAIL=$ac_cv_path_TAIL
+if test -n "$TAIL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TAIL" >&5
+$as_echo "$TAIL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$TAIL" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool TAIL=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool TAIL=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for TAIL" >&5
+$as_echo_n "checking for TAIL... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool TAIL=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5
-$as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
- as_fn_error $? "Cannot continue" "$LINENO" 5
fi
- for ac_prog in tar
+ if test "x$TAIL" = x; then
+ as_fn_error $? "Could not find required tool for TAIL" "$LINENO" 5
+ fi
+
+
+
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$TAR" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in tar
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -5538,21 +9521,155 @@ fi
test -n "$TAR" && break
done
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !TAR! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!TAR!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xTAR" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of TAR from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of TAR from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in tar
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_TAR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $TAR in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_TAR="$TAR" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_TAR="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+TAR=$ac_cv_path_TAR
+if test -n "$TAR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TAR" >&5
+$as_echo "$TAR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$TAR" && break
+done
- if test "x$TAR" = x; then
- if test "xtar" = x; then
- PROG_NAME=tar
else
- PROG_NAME=tar
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$TAR"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool TAR=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool TAR=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_TAR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $TAR in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_TAR="$TAR" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_TAR="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+TAR=$ac_cv_path_TAR
+if test -n "$TAR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TAR" >&5
+$as_echo "$TAR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$TAR" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool TAR=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool TAR=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for TAR" >&5
+$as_echo_n "checking for TAR... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool TAR=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5
-$as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
- as_fn_error $? "Cannot continue" "$LINENO" 5
fi
- for ac_prog in tee
+ if test "x$TAR" = x; then
+ as_fn_error $? "Could not find required tool for TAR" "$LINENO" 5
+ fi
+
+
+
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$TEE" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in tee
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -5597,21 +9714,155 @@ fi
test -n "$TEE" && break
done
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !TEE! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!TEE!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xTEE" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of TEE from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of TEE from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in tee
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_TEE+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $TEE in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_TEE="$TEE" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_TEE="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+TEE=$ac_cv_path_TEE
+if test -n "$TEE"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TEE" >&5
+$as_echo "$TEE" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$TEE" && break
+done
- if test "x$TEE" = x; then
- if test "xtee" = x; then
- PROG_NAME=tee
else
- PROG_NAME=tee
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$TEE"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool TEE=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool TEE=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_TEE+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $TEE in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_TEE="$TEE" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_TEE="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+TEE=$ac_cv_path_TEE
+if test -n "$TEE"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TEE" >&5
+$as_echo "$TEE" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$TEE" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool TEE=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool TEE=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for TEE" >&5
+$as_echo_n "checking for TEE... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool TEE=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5
-$as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
- as_fn_error $? "Cannot continue" "$LINENO" 5
fi
- for ac_prog in touch
+ if test "x$TEE" = x; then
+ as_fn_error $? "Could not find required tool for TEE" "$LINENO" 5
+ fi
+
+
+
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$TOUCH" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in touch
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -5656,21 +9907,155 @@ fi
test -n "$TOUCH" && break
done
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !TOUCH! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!TOUCH!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xTOUCH" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of TOUCH from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of TOUCH from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in touch
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_TOUCH+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $TOUCH in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_TOUCH="$TOUCH" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_TOUCH="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+TOUCH=$ac_cv_path_TOUCH
+if test -n "$TOUCH"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TOUCH" >&5
+$as_echo "$TOUCH" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$TOUCH" && break
+done
- if test "x$TOUCH" = x; then
- if test "xtouch" = x; then
- PROG_NAME=touch
else
- PROG_NAME=touch
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$TOUCH"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool TOUCH=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool TOUCH=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_TOUCH+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $TOUCH in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_TOUCH="$TOUCH" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_TOUCH="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+TOUCH=$ac_cv_path_TOUCH
+if test -n "$TOUCH"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TOUCH" >&5
+$as_echo "$TOUCH" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$TOUCH" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool TOUCH=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool TOUCH=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for TOUCH" >&5
+$as_echo_n "checking for TOUCH... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool TOUCH=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5
-$as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
- as_fn_error $? "Cannot continue" "$LINENO" 5
fi
- for ac_prog in tr
+ if test "x$TOUCH" = x; then
+ as_fn_error $? "Could not find required tool for TOUCH" "$LINENO" 5
+ fi
+
+
+
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$TR" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in tr
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -5715,21 +10100,155 @@ fi
test -n "$TR" && break
done
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !TR! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!TR!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xTR" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of TR from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of TR from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in tr
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_TR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $TR in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_TR="$TR" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_TR="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+TR=$ac_cv_path_TR
+if test -n "$TR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TR" >&5
+$as_echo "$TR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$TR" && break
+done
- if test "x$TR" = x; then
- if test "xtr" = x; then
- PROG_NAME=tr
else
- PROG_NAME=tr
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$TR"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool TR=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool TR=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_TR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $TR in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_TR="$TR" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_TR="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+TR=$ac_cv_path_TR
+if test -n "$TR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TR" >&5
+$as_echo "$TR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$TR" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool TR=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool TR=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for TR" >&5
+$as_echo_n "checking for TR... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool TR=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5
-$as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
- as_fn_error $? "Cannot continue" "$LINENO" 5
fi
- for ac_prog in uname
+ if test "x$TR" = x; then
+ as_fn_error $? "Could not find required tool for TR" "$LINENO" 5
+ fi
+
+
+
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$UNAME" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in uname
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -5774,21 +10293,155 @@ fi
test -n "$UNAME" && break
done
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !UNAME! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!UNAME!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xUNAME" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of UNAME from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of UNAME from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in uname
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_UNAME+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $UNAME in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_UNAME="$UNAME" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_UNAME="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+UNAME=$ac_cv_path_UNAME
+if test -n "$UNAME"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $UNAME" >&5
+$as_echo "$UNAME" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$UNAME" && break
+done
- if test "x$UNAME" = x; then
- if test "xuname" = x; then
- PROG_NAME=uname
else
- PROG_NAME=uname
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$UNAME"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool UNAME=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool UNAME=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_UNAME+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $UNAME in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_UNAME="$UNAME" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_UNAME="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+UNAME=$ac_cv_path_UNAME
+if test -n "$UNAME"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $UNAME" >&5
+$as_echo "$UNAME" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$UNAME" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool UNAME=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool UNAME=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for UNAME" >&5
+$as_echo_n "checking for UNAME... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool UNAME=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5
-$as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
- as_fn_error $? "Cannot continue" "$LINENO" 5
fi
- for ac_prog in uniq
+ if test "x$UNAME" = x; then
+ as_fn_error $? "Could not find required tool for UNAME" "$LINENO" 5
+ fi
+
+
+
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$UNIQ" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in uniq
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -5833,21 +10486,155 @@ fi
test -n "$UNIQ" && break
done
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !UNIQ! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!UNIQ!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xUNIQ" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of UNIQ from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of UNIQ from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in uniq
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_UNIQ+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $UNIQ in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_UNIQ="$UNIQ" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_UNIQ="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+UNIQ=$ac_cv_path_UNIQ
+if test -n "$UNIQ"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $UNIQ" >&5
+$as_echo "$UNIQ" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$UNIQ" && break
+done
- if test "x$UNIQ" = x; then
- if test "xuniq" = x; then
- PROG_NAME=uniq
else
- PROG_NAME=uniq
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$UNIQ"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool UNIQ=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool UNIQ=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_UNIQ+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $UNIQ in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_UNIQ="$UNIQ" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_UNIQ="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+UNIQ=$ac_cv_path_UNIQ
+if test -n "$UNIQ"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $UNIQ" >&5
+$as_echo "$UNIQ" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$UNIQ" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool UNIQ=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool UNIQ=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for UNIQ" >&5
+$as_echo_n "checking for UNIQ... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool UNIQ=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5
-$as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
- as_fn_error $? "Cannot continue" "$LINENO" 5
fi
- for ac_prog in wc
+ if test "x$UNIQ" = x; then
+ as_fn_error $? "Could not find required tool for UNIQ" "$LINENO" 5
+ fi
+
+
+
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$WC" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in wc
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -5892,21 +10679,155 @@ fi
test -n "$WC" && break
done
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !WC! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!WC!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xWC" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of WC from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of WC from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in wc
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_WC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $WC in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_WC="$WC" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_WC="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+WC=$ac_cv_path_WC
+if test -n "$WC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $WC" >&5
+$as_echo "$WC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$WC" && break
+done
- if test "x$WC" = x; then
- if test "xwc" = x; then
- PROG_NAME=wc
else
- PROG_NAME=wc
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$WC"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool WC=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool WC=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_WC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $WC in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_WC="$WC" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_WC="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+WC=$ac_cv_path_WC
+if test -n "$WC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $WC" >&5
+$as_echo "$WC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$WC" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool WC=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool WC=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for WC" >&5
+$as_echo_n "checking for WC... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool WC=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5
-$as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
- as_fn_error $? "Cannot continue" "$LINENO" 5
fi
- for ac_prog in which
+ if test "x$WC" = x; then
+ as_fn_error $? "Could not find required tool for WC" "$LINENO" 5
+ fi
+
+
+
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$WHICH" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in which
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -5951,21 +10872,155 @@ fi
test -n "$WHICH" && break
done
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !WHICH! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!WHICH!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xWHICH" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of WHICH from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of WHICH from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in which
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_WHICH+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $WHICH in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_WHICH="$WHICH" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_WHICH="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+WHICH=$ac_cv_path_WHICH
+if test -n "$WHICH"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $WHICH" >&5
+$as_echo "$WHICH" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$WHICH" && break
+done
- if test "x$WHICH" = x; then
- if test "xwhich" = x; then
- PROG_NAME=which
else
- PROG_NAME=which
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$WHICH"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool WHICH=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool WHICH=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_WHICH+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $WHICH in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_WHICH="$WHICH" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_WHICH="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+WHICH=$ac_cv_path_WHICH
+if test -n "$WHICH"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $WHICH" >&5
+$as_echo "$WHICH" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$WHICH" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool WHICH=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool WHICH=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for WHICH" >&5
+$as_echo_n "checking for WHICH... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool WHICH=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5
-$as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
- as_fn_error $? "Cannot continue" "$LINENO" 5
fi
- for ac_prog in xargs
+ if test "x$WHICH" = x; then
+ as_fn_error $? "Could not find required tool for WHICH" "$LINENO" 5
+ fi
+
+
+
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$XARGS" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in xargs
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -6010,22 +11065,156 @@ fi
test -n "$XARGS" && break
done
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !XARGS! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!XARGS!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xXARGS" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of XARGS from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of XARGS from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in xargs
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_XARGS+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $XARGS in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_XARGS="$XARGS" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_XARGS="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+XARGS=$ac_cv_path_XARGS
+if test -n "$XARGS"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XARGS" >&5
+$as_echo "$XARGS" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$XARGS" && break
+done
+
+ else
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$XARGS"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool XARGS=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool XARGS=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_XARGS+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $XARGS in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_XARGS="$XARGS" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_XARGS="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+XARGS=$ac_cv_path_XARGS
+if test -n "$XARGS"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XARGS" >&5
+$as_echo "$XARGS" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$XARGS" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool XARGS=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool XARGS=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XARGS" >&5
+$as_echo_n "checking for XARGS... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool XARGS=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
+ fi
+ fi
+
+
if test "x$XARGS" = x; then
- if test "xxargs" = x; then
- PROG_NAME=xargs
- else
- PROG_NAME=xargs
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5
-$as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
- as_fn_error $? "Cannot continue" "$LINENO" 5
+ as_fn_error $? "Could not find required tool for XARGS" "$LINENO" 5
fi
# Then required tools that require some special treatment.
- for ac_prog in gawk mawk nawk awk
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$AWK" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in gawk mawk nawk awk
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -6067,19 +11256,150 @@ fi
test -n "$AWK" && break
done
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !AWK! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!AWK!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xAWK" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of AWK from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of AWK from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in gawk mawk nawk awk
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AWK+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AWK"; then
+ ac_cv_prog_AWK="$AWK" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AWK="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AWK=$ac_cv_prog_AWK
+if test -n "$AWK"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
+$as_echo "$AWK" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$AWK" && break
+done
- if test "x$AWK" = x; then
- if test "x" = x; then
- PROG_NAME=awk
else
- PROG_NAME=
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$AWK"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool AWK=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool AWK=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_AWK+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $AWK in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_AWK="$AWK" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_AWK="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+AWK=$ac_cv_path_AWK
+if test -n "$AWK"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
+$as_echo "$AWK" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$AWK" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool AWK=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool AWK=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for AWK" >&5
+$as_echo_n "checking for AWK... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool AWK=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5
-$as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
- as_fn_error $? "Cannot continue" "$LINENO" 5
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+
+ if test "x$AWK" = x; then
+ as_fn_error $? "Could not find required tool for AWK" "$LINENO" 5
+ fi
+
+
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$GREP" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
if ${ac_cv_path_GREP+:} false; then :
$as_echo_n "(cached) " >&6
@@ -6142,19 +11462,171 @@ $as_echo "$ac_cv_path_GREP" >&6; }
GREP="$ac_cv_path_GREP"
+ else
+ # The variable is set, but is it from the command line or the environment?
- if test "x$GREP" = x; then
- if test "x" = x; then
- PROG_NAME=grep
- else
- PROG_NAME=
+ # Try to remove the string !GREP! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!GREP!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xGREP" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of GREP from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of GREP from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+if ${ac_cv_path_GREP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -z "$GREP"; then
+ ac_path_GREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in grep ggrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_GREP" || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+ # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'GREP' >> "conftest.nl"
+ "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_GREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_GREP="$ac_path_GREP"
+ ac_path_GREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_GREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_GREP"; then
+ as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_GREP=$GREP
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+ else
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$GREP"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool GREP=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool GREP=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_GREP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $GREP in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_GREP="$GREP" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_GREP="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+GREP=$ac_cv_path_GREP
+if test -n "$GREP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GREP" >&5
+$as_echo "$GREP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$GREP" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool GREP=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool GREP=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GREP" >&5
+$as_echo_n "checking for GREP... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool GREP=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5
-$as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
- as_fn_error $? "Cannot continue" "$LINENO" 5
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+
+ if test "x$GREP" = x; then
+ as_fn_error $? "Could not find required tool for GREP" "$LINENO" 5
+ fi
+
+
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$EGREP" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
$as_echo_n "checking for egrep... " >&6; }
if ${ac_cv_path_EGREP+:} false; then :
$as_echo_n "(cached) " >&6
@@ -6221,19 +11693,175 @@ $as_echo "$ac_cv_path_EGREP" >&6; }
EGREP="$ac_cv_path_EGREP"
+ else
+ # The variable is set, but is it from the command line or the environment?
- if test "x$EGREP" = x; then
- if test "x" = x; then
- PROG_NAME=egrep
- else
- PROG_NAME=
+ # Try to remove the string !EGREP! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!EGREP!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xEGREP" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of EGREP from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of EGREP from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
+if ${ac_cv_path_EGREP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+ then ac_cv_path_EGREP="$GREP -E"
+ else
+ if test -z "$EGREP"; then
+ ac_path_EGREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in egrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_EGREP" || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
+ # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'EGREP' >> "conftest.nl"
+ "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_EGREP="$ac_path_EGREP"
+ ac_path_EGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_EGREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_EGREP"; then
+ as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_EGREP=$EGREP
+fi
+
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
+
+
+ else
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$EGREP"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool EGREP=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool EGREP=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_EGREP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $EGREP in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_EGREP="$EGREP" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_EGREP="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+EGREP=$ac_cv_path_EGREP
+if test -n "$EGREP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $EGREP" >&5
+$as_echo "$EGREP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$EGREP" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool EGREP=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool EGREP=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EGREP" >&5
+$as_echo_n "checking for EGREP... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool EGREP=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5
-$as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
- as_fn_error $? "Cannot continue" "$LINENO" 5
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
+
+ if test "x$EGREP" = x; then
+ as_fn_error $? "Could not find required tool for EGREP" "$LINENO" 5
+ fi
+
+
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$FGREP" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
$as_echo_n "checking for fgrep... " >&6; }
if ${ac_cv_path_FGREP+:} false; then :
$as_echo_n "(cached) " >&6
@@ -6300,19 +11928,175 @@ $as_echo "$ac_cv_path_FGREP" >&6; }
FGREP="$ac_cv_path_FGREP"
+ else
+ # The variable is set, but is it from the command line or the environment?
- if test "x$FGREP" = x; then
- if test "x" = x; then
- PROG_NAME=fgrep
- else
- PROG_NAME=
+ # Try to remove the string !FGREP! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!FGREP!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xFGREP" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of FGREP from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of FGREP from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
+$as_echo_n "checking for fgrep... " >&6; }
+if ${ac_cv_path_FGREP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
+ then ac_cv_path_FGREP="$GREP -F"
+ else
+ if test -z "$FGREP"; then
+ ac_path_FGREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in fgrep; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_FGREP" || continue
+# Check for GNU ac_path_FGREP and select it if it is found.
+ # Check for GNU $ac_path_FGREP
+case `"$ac_path_FGREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo 'FGREP' >> "conftest.nl"
+ "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_FGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_FGREP="$ac_path_FGREP"
+ ac_path_FGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_FGREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_FGREP"; then
+ as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_FGREP=$FGREP
+fi
+
+ fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
+$as_echo "$ac_cv_path_FGREP" >&6; }
+ FGREP="$ac_cv_path_FGREP"
+
+
+ else
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$FGREP"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool FGREP=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool FGREP=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_FGREP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $FGREP in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_FGREP="$FGREP" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_FGREP="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+FGREP=$ac_cv_path_FGREP
+if test -n "$FGREP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FGREP" >&5
+$as_echo "$FGREP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$FGREP" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool FGREP=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool FGREP=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for FGREP" >&5
+$as_echo_n "checking for FGREP... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool FGREP=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5
-$as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
- as_fn_error $? "Cannot continue" "$LINENO" 5
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
+
+ if test "x$FGREP" = x; then
+ as_fn_error $? "Could not find required tool for FGREP" "$LINENO" 5
+ fi
+
+
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$SED" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
$as_echo_n "checking for a sed that does not truncate output... " >&6; }
if ${ac_cv_path_SED+:} false; then :
$as_echo_n "(cached) " >&6
@@ -6381,31 +12165,113 @@ $as_echo "$ac_cv_path_SED" >&6; }
SED="$ac_cv_path_SED"
rm -f conftest.sed
+ else
+ # The variable is set, but is it from the command line or the environment?
- if test "x$SED" = x; then
- if test "x" = x; then
- PROG_NAME=sed
- else
- PROG_NAME=
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5
-$as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
- as_fn_error $? "Cannot continue" "$LINENO" 5
- fi
-
-
- for ac_prog in nawk gawk awk
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_NAWK+:} false; then :
+ # Try to remove the string !SED! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!SED!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xSED" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of SED from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of SED from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
+$as_echo_n "checking for a sed that does not truncate output... " >&6; }
+if ${ac_cv_path_SED+:} false; then :
$as_echo_n "(cached) " >&6
else
- case $NAWK in
+ ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
+ for ac_i in 1 2 3 4 5 6 7; do
+ ac_script="$ac_script$as_nl$ac_script"
+ done
+ echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
+ { ac_script=; unset ac_script;}
+ if test -z "$SED"; then
+ ac_path_SED_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_prog in sed gsed; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_SED" || continue
+# Check for GNU ac_path_SED and select it if it is found.
+ # Check for GNU $ac_path_SED
+case `"$ac_path_SED" --version 2>&1` in
+*GNU*)
+ ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
+*)
+ ac_count=0
+ $as_echo_n 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ $as_echo '' >> "conftest.nl"
+ "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_SED_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_SED="$ac_path_SED"
+ ac_path_SED_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_SED_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_SED"; then
+ as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
+ fi
+else
+ ac_cv_path_SED=$SED
+fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
+$as_echo "$ac_cv_path_SED" >&6; }
+ SED="$ac_cv_path_SED"
+ rm -f conftest.sed
+
+ else
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$SED"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool SED=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool SED=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_SED+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $SED in
[\\/]* | ?:[\\/]*)
- ac_cv_path_NAWK="$NAWK" # Let the user override the test with a path.
+ ac_cv_path_SED="$SED" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -6415,7 +12281,7 @@ do
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_NAWK="$as_dir/$ac_word$ac_exec_ext"
+ ac_cv_path_SED="$as_dir/$ac_word$ac_exec_ext"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
@@ -6426,32 +12292,43 @@ IFS=$as_save_IFS
;;
esac
fi
-NAWK=$ac_cv_path_NAWK
-if test -n "$NAWK"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NAWK" >&5
-$as_echo "$NAWK" >&6; }
+SED=$ac_cv_path_SED
+if test -n "$SED"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SED" >&5
+$as_echo "$SED" >&6; }
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
fi
- test -n "$NAWK" && break
-done
-
-
- if test "x$NAWK" = x; then
- if test "x" = x; then
- PROG_NAME=nawk
- else
- PROG_NAME=
+ if test "x$SED" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool SED=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool SED=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SED" >&5
+$as_echo_n "checking for SED... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool SED=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5
-$as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
- as_fn_error $? "Cannot continue" "$LINENO" 5
fi
+ if test "x$SED" = x; then
+ as_fn_error $? "Could not find required tool for SED" "$LINENO" 5
+ fi
+
+
+
# Always force rm.
RM="$RM -f"
@@ -6460,8 +12337,17 @@ $as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
THEPWDCMD=pwd
# These are not required on all platforms
- # Extract the first word of "cygpath", so it can be a program name with args.
-set dummy cygpath; ac_word=$2
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$CYGPATH" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in cygpath
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_path_CYGPATH+:} false; then :
@@ -6500,8 +12386,154 @@ $as_echo "no" >&6; }
fi
- # Extract the first word of "readlink", so it can be a program name with args.
-set dummy readlink; ac_word=$2
+ test -n "$CYGPATH" && break
+done
+
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !CYGPATH! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!CYGPATH!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xCYGPATH" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of CYGPATH from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of CYGPATH from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in cygpath
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_CYGPATH+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $CYGPATH in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_CYGPATH="$CYGPATH" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_CYGPATH="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+CYGPATH=$ac_cv_path_CYGPATH
+if test -n "$CYGPATH"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CYGPATH" >&5
+$as_echo "$CYGPATH" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$CYGPATH" && break
+done
+
+ else
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$CYGPATH"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool CYGPATH=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool CYGPATH=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_CYGPATH+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $CYGPATH in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_CYGPATH="$CYGPATH" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_CYGPATH="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+CYGPATH=$ac_cv_path_CYGPATH
+if test -n "$CYGPATH"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CYGPATH" >&5
+$as_echo "$CYGPATH" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$CYGPATH" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool CYGPATH=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool CYGPATH=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CYGPATH" >&5
+$as_echo_n "checking for CYGPATH... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool CYGPATH=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
+ fi
+ fi
+
+
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$READLINK" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in greadlink readlink
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_path_READLINK+:} false; then :
@@ -6540,8 +12572,154 @@ $as_echo "no" >&6; }
fi
- # Extract the first word of "df", so it can be a program name with args.
-set dummy df; ac_word=$2
+ test -n "$READLINK" && break
+done
+
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !READLINK! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!READLINK!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xREADLINK" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of READLINK from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of READLINK from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in greadlink readlink
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_READLINK+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $READLINK in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_READLINK="$READLINK" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_READLINK="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+READLINK=$ac_cv_path_READLINK
+if test -n "$READLINK"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $READLINK" >&5
+$as_echo "$READLINK" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$READLINK" && break
+done
+
+ else
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$READLINK"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool READLINK=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool READLINK=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_READLINK+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $READLINK in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_READLINK="$READLINK" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_READLINK="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+READLINK=$ac_cv_path_READLINK
+if test -n "$READLINK"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $READLINK" >&5
+$as_echo "$READLINK" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$READLINK" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool READLINK=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool READLINK=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for READLINK" >&5
+$as_echo_n "checking for READLINK... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool READLINK=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
+ fi
+ fi
+
+
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$DF" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in df
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_path_DF+:} false; then :
@@ -6580,8 +12758,154 @@ $as_echo "no" >&6; }
fi
- # Extract the first word of "SetFile", so it can be a program name with args.
-set dummy SetFile; ac_word=$2
+ test -n "$DF" && break
+done
+
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !DF! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!DF!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xDF" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of DF from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of DF from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in df
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_DF+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $DF in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_DF="$DF" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_DF="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+DF=$ac_cv_path_DF
+if test -n "$DF"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DF" >&5
+$as_echo "$DF" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$DF" && break
+done
+
+ else
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$DF"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool DF=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool DF=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_DF+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $DF in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_DF="$DF" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_DF="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+DF=$ac_cv_path_DF
+if test -n "$DF"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DF" >&5
+$as_echo "$DF" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$DF" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool DF=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool DF=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for DF" >&5
+$as_echo_n "checking for DF... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool DF=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
+ fi
+ fi
+
+
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$SETFILE" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in SetFile
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_path_SETFILE+:} false; then :
@@ -6620,6 +12944,143 @@ $as_echo "no" >&6; }
fi
+ test -n "$SETFILE" && break
+done
+
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !SETFILE! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!SETFILE!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xSETFILE" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of SETFILE from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of SETFILE from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in SetFile
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_SETFILE+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $SETFILE in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_SETFILE="$SETFILE" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_SETFILE="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+SETFILE=$ac_cv_path_SETFILE
+if test -n "$SETFILE"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SETFILE" >&5
+$as_echo "$SETFILE" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$SETFILE" && break
+done
+
+ else
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$SETFILE"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool SETFILE=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool SETFILE=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_SETFILE+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $SETFILE in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_SETFILE="$SETFILE" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_SETFILE="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+SETFILE=$ac_cv_path_SETFILE
+if test -n "$SETFILE"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SETFILE" >&5
+$as_echo "$SETFILE" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$SETFILE" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool SETFILE=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool SETFILE=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SETFILE" >&5
+$as_echo_n "checking for SETFILE... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool SETFILE=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
+ fi
+ fi
+
+
# Now we can determine OpenJDK build and target platforms. This is required to
@@ -10139,7 +16600,14 @@ $as_echo "yes" >&6; }
# These tools might not be installed by default,
# need hint on how to install them.
- for ac_prog in unzip
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$UNZIP" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in unzip
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -10184,21 +16652,155 @@ fi
test -n "$UNZIP" && break
done
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !UNZIP! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!UNZIP!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xUNZIP" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of UNZIP from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of UNZIP from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in unzip
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_UNZIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $UNZIP in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_UNZIP="$UNZIP" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_UNZIP="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+UNZIP=$ac_cv_path_UNZIP
+if test -n "$UNZIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $UNZIP" >&5
+$as_echo "$UNZIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$UNZIP" && break
+done
- if test "x$UNZIP" = x; then
- if test "xunzip" = x; then
- PROG_NAME=unzip
else
- PROG_NAME=unzip
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$UNZIP"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool UNZIP=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool UNZIP=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_UNZIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $UNZIP in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_UNZIP="$UNZIP" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_UNZIP="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+UNZIP=$ac_cv_path_UNZIP
+if test -n "$UNZIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $UNZIP" >&5
+$as_echo "$UNZIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$UNZIP" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool UNZIP=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool UNZIP=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for UNZIP" >&5
+$as_echo_n "checking for UNZIP... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool UNZIP=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5
-$as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
- as_fn_error $? "Cannot continue" "$LINENO" 5
fi
- for ac_prog in zip
+ if test "x$UNZIP" = x; then
+ as_fn_error $? "Could not find required tool for UNZIP" "$LINENO" 5
+ fi
+
+
+
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$ZIP" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in zip
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -10243,24 +16845,160 @@ fi
test -n "$ZIP" && break
done
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !ZIP! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!ZIP!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xZIP" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of ZIP from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of ZIP from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in zip
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_ZIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $ZIP in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_ZIP="$ZIP" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_ZIP="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+ZIP=$ac_cv_path_ZIP
+if test -n "$ZIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ZIP" >&5
+$as_echo "$ZIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ZIP" && break
+done
+
+ else
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$ZIP"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool ZIP=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool ZIP=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_ZIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $ZIP in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_ZIP="$ZIP" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_ZIP="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+ZIP=$ac_cv_path_ZIP
+if test -n "$ZIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ZIP" >&5
+$as_echo "$ZIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$ZIP" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool ZIP=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool ZIP=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ZIP" >&5
+$as_echo_n "checking for ZIP... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool ZIP=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
+ fi
+ fi
+
+
if test "x$ZIP" = x; then
- if test "xzip" = x; then
- PROG_NAME=zip
- else
- PROG_NAME=zip
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5
-$as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
- as_fn_error $? "Cannot continue" "$LINENO" 5
+ as_fn_error $? "Could not find required tool for ZIP" "$LINENO" 5
fi
# Non-required basic tools
- # Extract the first word of "ldd", so it can be a program name with args.
-set dummy ldd; ac_word=$2
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$LDD" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in ldd
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_path_LDD+:} false; then :
@@ -10299,14 +17037,160 @@ $as_echo "no" >&6; }
fi
+ test -n "$LDD" && break
+done
+
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !LDD! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!LDD!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xLDD" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of LDD from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of LDD from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in ldd
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_LDD+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $LDD in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_LDD="$LDD" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_LDD="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+LDD=$ac_cv_path_LDD
+if test -n "$LDD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LDD" >&5
+$as_echo "$LDD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$LDD" && break
+done
+
+ else
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$LDD"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool LDD=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool LDD=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_LDD+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $LDD in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_LDD="$LDD" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_LDD="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+LDD=$ac_cv_path_LDD
+if test -n "$LDD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LDD" >&5
+$as_echo "$LDD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$LDD" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool LDD=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool LDD=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LDD" >&5
+$as_echo_n "checking for LDD... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool LDD=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
+ fi
+ fi
+
+
if test "x$LDD" = "x"; then
# List shared lib dependencies is used for
# debug output and checking for forbidden dependencies.
# We can build without it.
LDD="true"
fi
- # Extract the first word of "otool", so it can be a program name with args.
-set dummy otool; ac_word=$2
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$OTOOL" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in otool
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_path_OTOOL+:} false; then :
@@ -10345,10 +17229,154 @@ $as_echo "no" >&6; }
fi
+ test -n "$OTOOL" && break
+done
+
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !OTOOL! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!OTOOL!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xOTOOL" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of OTOOL from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of OTOOL from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in otool
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_OTOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $OTOOL in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_OTOOL="$OTOOL" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_OTOOL="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+OTOOL=$ac_cv_path_OTOOL
+if test -n "$OTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
+$as_echo "$OTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$OTOOL" && break
+done
+
+ else
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$OTOOL"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool OTOOL=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool OTOOL=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_OTOOL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $OTOOL in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_OTOOL="$OTOOL" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_OTOOL="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+OTOOL=$ac_cv_path_OTOOL
+if test -n "$OTOOL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
+$as_echo "$OTOOL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$OTOOL" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool OTOOL=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool OTOOL=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for OTOOL" >&5
+$as_echo_n "checking for OTOOL... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool OTOOL=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
+ fi
+ fi
+
+
if test "x$OTOOL" = "x"; then
OTOOL="true"
fi
- for ac_prog in readelf greadelf
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$READELF" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in greadelf readelf
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -10393,8 +17421,151 @@ fi
test -n "$READELF" && break
done
- # Extract the first word of "hg", so it can be a program name with args.
-set dummy hg; ac_word=$2
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !READELF! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!READELF!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xREADELF" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of READELF from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of READELF from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in greadelf readelf
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_READELF+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $READELF in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_READELF="$READELF" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_READELF="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+READELF=$ac_cv_path_READELF
+if test -n "$READELF"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $READELF" >&5
+$as_echo "$READELF" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$READELF" && break
+done
+
+ else
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$READELF"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool READELF=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool READELF=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_READELF+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $READELF in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_READELF="$READELF" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_READELF="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+READELF=$ac_cv_path_READELF
+if test -n "$READELF"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $READELF" >&5
+$as_echo "$READELF" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$READELF" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool READELF=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool READELF=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for READELF" >&5
+$as_echo_n "checking for READELF... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool READELF=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
+ fi
+ fi
+
+
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$HG" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in hg
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_path_HG+:} false; then :
@@ -10433,8 +17604,154 @@ $as_echo "no" >&6; }
fi
- # Extract the first word of "stat", so it can be a program name with args.
-set dummy stat; ac_word=$2
+ test -n "$HG" && break
+done
+
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !HG! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!HG!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xHG" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of HG from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of HG from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in hg
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_HG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $HG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_HG="$HG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_HG="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+HG=$ac_cv_path_HG
+if test -n "$HG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HG" >&5
+$as_echo "$HG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$HG" && break
+done
+
+ else
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$HG"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool HG=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool HG=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_HG+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $HG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_HG="$HG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_HG="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+HG=$ac_cv_path_HG
+if test -n "$HG"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HG" >&5
+$as_echo "$HG" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$HG" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool HG=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool HG=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for HG" >&5
+$as_echo_n "checking for HG... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool HG=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
+ fi
+ fi
+
+
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$STAT" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in stat
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_path_STAT+:} false; then :
@@ -10473,8 +17790,154 @@ $as_echo "no" >&6; }
fi
- # Extract the first word of "time", so it can be a program name with args.
-set dummy time; ac_word=$2
+ test -n "$STAT" && break
+done
+
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !STAT! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!STAT!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xSTAT" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of STAT from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of STAT from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in stat
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_STAT+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $STAT in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_STAT="$STAT" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_STAT="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+STAT=$ac_cv_path_STAT
+if test -n "$STAT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STAT" >&5
+$as_echo "$STAT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$STAT" && break
+done
+
+ else
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$STAT"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool STAT=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool STAT=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_STAT+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $STAT in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_STAT="$STAT" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_STAT="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+STAT=$ac_cv_path_STAT
+if test -n "$STAT"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STAT" >&5
+$as_echo "$STAT" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$STAT" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool STAT=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool STAT=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for STAT" >&5
+$as_echo_n "checking for STAT... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool STAT=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
+ fi
+ fi
+
+
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$TIME" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in time
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_path_TIME+:} false; then :
@@ -10513,6 +17976,143 @@ $as_echo "no" >&6; }
fi
+ test -n "$TIME" && break
+done
+
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !TIME! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!TIME!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xTIME" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of TIME from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of TIME from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in time
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_TIME+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $TIME in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_TIME="$TIME" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_TIME="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+TIME=$ac_cv_path_TIME
+if test -n "$TIME"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TIME" >&5
+$as_echo "$TIME" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$TIME" && break
+done
+
+ else
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$TIME"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool TIME=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool TIME=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_TIME+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $TIME in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_TIME="$TIME" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_TIME="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+TIME=$ac_cv_path_TIME
+if test -n "$TIME"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TIME" >&5
+$as_echo "$TIME" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$TIME" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool TIME=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool TIME=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for TIME" >&5
+$as_echo_n "checking for TIME... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool TIME=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
+ fi
+ fi
+
+
# Check if it's GNU time
IS_GNU_TIME=`$TIME --version 2>&1 | $GREP 'GNU time'`
if test "x$IS_GNU_TIME" != x; then
@@ -10524,7 +18124,14 @@ fi
if test "x$OPENJDK_TARGET_OS" = "xwindows"; then
- for ac_prog in comm
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$COMM" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in comm
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -10569,16 +18176,143 @@ fi
test -n "$COMM" && break
done
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !COMM! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!COMM!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xCOMM" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of COMM from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of COMM from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in comm
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_COMM+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $COMM in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_COMM="$COMM" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_COMM="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+COMM=$ac_cv_path_COMM
+if test -n "$COMM"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $COMM" >&5
+$as_echo "$COMM" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$COMM" && break
+done
+
+ else
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$COMM"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool COMM=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool COMM=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_COMM+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $COMM in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_COMM="$COMM" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_COMM="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+COMM=$ac_cv_path_COMM
+if test -n "$COMM"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $COMM" >&5
+$as_echo "$COMM" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$COMM" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool COMM=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool COMM=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for COMM" >&5
+$as_echo_n "checking for COMM... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool COMM=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
+ fi
+ fi
+
+
if test "x$COMM" = x; then
- if test "xcomm" = x; then
- PROG_NAME=comm
- else
- PROG_NAME=comm
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5
-$as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
- as_fn_error $? "Cannot continue" "$LINENO" 5
+ as_fn_error $? "Could not find required tool for COMM" "$LINENO" 5
fi
@@ -10586,7 +18320,14 @@ $as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
if test "x$OPENJDK_TARGET_OS" = "xmacosx"; then
- for ac_prog in dsymutil
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$DSYMUTIL" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in dsymutil
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -10631,21 +18372,155 @@ fi
test -n "$DSYMUTIL" && break
done
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !DSYMUTIL! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!DSYMUTIL!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xDSYMUTIL" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of DSYMUTIL from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of DSYMUTIL from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in dsymutil
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_DSYMUTIL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $DSYMUTIL in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_DSYMUTIL="$DSYMUTIL" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_DSYMUTIL="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+DSYMUTIL=$ac_cv_path_DSYMUTIL
+if test -n "$DSYMUTIL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
+$as_echo "$DSYMUTIL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$DSYMUTIL" && break
+done
- if test "x$DSYMUTIL" = x; then
- if test "xdsymutil" = x; then
- PROG_NAME=dsymutil
else
- PROG_NAME=dsymutil
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$DSYMUTIL"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool DSYMUTIL=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool DSYMUTIL=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_DSYMUTIL+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $DSYMUTIL in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_DSYMUTIL="$DSYMUTIL" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_DSYMUTIL="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+DSYMUTIL=$ac_cv_path_DSYMUTIL
+if test -n "$DSYMUTIL"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
+$as_echo "$DSYMUTIL" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$DSYMUTIL" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool DSYMUTIL=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool DSYMUTIL=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for DSYMUTIL" >&5
+$as_echo_n "checking for DSYMUTIL... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool DSYMUTIL=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5
-$as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
- as_fn_error $? "Cannot continue" "$LINENO" 5
fi
- for ac_prog in xattr
+ if test "x$DSYMUTIL" = x; then
+ as_fn_error $? "Could not find required tool for DSYMUTIL" "$LINENO" 5
+ fi
+
+
+
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$XATTR" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in xattr
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -10690,21 +18565,157 @@ fi
test -n "$XATTR" && break
done
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !XATTR! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!XATTR!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xXATTR" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of XATTR from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of XATTR from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in xattr
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_XATTR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $XATTR in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_XATTR="$XATTR" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_XATTR="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+XATTR=$ac_cv_path_XATTR
+if test -n "$XATTR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XATTR" >&5
+$as_echo "$XATTR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$XATTR" && break
+done
- if test "x$XATTR" = x; then
- if test "xxattr" = x; then
- PROG_NAME=xattr
else
- PROG_NAME=xattr
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$XATTR"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool XATTR=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool XATTR=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_XATTR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $XATTR in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_XATTR="$XATTR" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_XATTR="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+XATTR=$ac_cv_path_XATTR
+if test -n "$XATTR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XATTR" >&5
+$as_echo "$XATTR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$XATTR" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool XATTR=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool XATTR=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XATTR" >&5
+$as_echo_n "checking for XATTR... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool XATTR=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5
-$as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
- as_fn_error $? "Cannot continue" "$LINENO" 5
fi
- # Extract the first word of "codesign", so it can be a program name with args.
-set dummy codesign; ac_word=$2
+
+ if test "x$XATTR" = x; then
+ as_fn_error $? "Could not find required tool for XATTR" "$LINENO" 5
+ fi
+
+
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$CODESIGN" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in codesign
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_path_CODESIGN+:} false; then :
@@ -10743,6 +18754,143 @@ $as_echo "no" >&6; }
fi
+ test -n "$CODESIGN" && break
+done
+
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !CODESIGN! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!CODESIGN!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xCODESIGN" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of CODESIGN from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of CODESIGN from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in codesign
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_CODESIGN+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $CODESIGN in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_CODESIGN="$CODESIGN" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_CODESIGN="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+CODESIGN=$ac_cv_path_CODESIGN
+if test -n "$CODESIGN"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CODESIGN" >&5
+$as_echo "$CODESIGN" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$CODESIGN" && break
+done
+
+ else
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$CODESIGN"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool CODESIGN=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool CODESIGN=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_CODESIGN+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $CODESIGN in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_CODESIGN="$CODESIGN" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_CODESIGN="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+CODESIGN=$ac_cv_path_CODESIGN
+if test -n "$CODESIGN"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CODESIGN" >&5
+$as_echo "$CODESIGN" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$CODESIGN" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool CODESIGN=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool CODESIGN=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CODESIGN" >&5
+$as_echo_n "checking for CODESIGN... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool CODESIGN=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
+ fi
+ fi
+
+
if test "x$CODESIGN" != "x"; then
# Verify that the openjdk_codesign certificate is present
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if openjdk_codesign certificate is present" >&5
@@ -16673,7 +24821,14 @@ $as_echo "$JTREGEXE" >&6; }
else
# try to find jtreg on path
- for ac_prog in jtreg
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$JTREGEXE" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in jtreg
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -16718,16 +24873,143 @@ fi
test -n "$JTREGEXE" && break
done
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !JTREGEXE! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!JTREGEXE!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xJTREGEXE" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of JTREGEXE from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of JTREGEXE from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in jtreg
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_JTREGEXE+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $JTREGEXE in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_JTREGEXE="$JTREGEXE" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_JTREGEXE="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+JTREGEXE=$ac_cv_path_JTREGEXE
+if test -n "$JTREGEXE"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $JTREGEXE" >&5
+$as_echo "$JTREGEXE" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$JTREGEXE" && break
+done
+
+ else
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$JTREGEXE"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool JTREGEXE=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool JTREGEXE=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_JTREGEXE+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $JTREGEXE in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_JTREGEXE="$JTREGEXE" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_JTREGEXE="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+JTREGEXE=$ac_cv_path_JTREGEXE
+if test -n "$JTREGEXE"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $JTREGEXE" >&5
+$as_echo "$JTREGEXE" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$JTREGEXE" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool JTREGEXE=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool JTREGEXE=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for JTREGEXE" >&5
+$as_echo_n "checking for JTREGEXE... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool JTREGEXE=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
+ fi
+ fi
+
+
if test "x$JTREGEXE" = x; then
- if test "xjtreg" = x; then
- PROG_NAME=jtregexe
- else
- PROG_NAME=jtreg
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5
-$as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
- as_fn_error $? "Cannot continue" "$LINENO" 5
+ as_fn_error $? "Could not find required tool for JTREGEXE" "$LINENO" 5
fi
@@ -18016,6 +26298,13 @@ fi
# otherwise we might pick up cross-compilers which don't use standard naming.
# Otherwise, we'll set the BUILD_tools to the native tools, but that'll have
# to wait until they are properly discovered.
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$BUILD_CC" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
for ac_prog in cl cc gcc
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
@@ -18061,6 +26350,140 @@ fi
test -n "$BUILD_CC" && break
done
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !BUILD_CC! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!BUILD_CC!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xBUILD_CC" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of BUILD_CC from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of BUILD_CC from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in cl cc gcc
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_BUILD_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $BUILD_CC in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_BUILD_CC="$BUILD_CC" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_BUILD_CC="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+BUILD_CC=$ac_cv_path_BUILD_CC
+if test -n "$BUILD_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BUILD_CC" >&5
+$as_echo "$BUILD_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$BUILD_CC" && break
+done
+
+ else
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$BUILD_CC"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool BUILD_CC=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool BUILD_CC=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_BUILD_CC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $BUILD_CC in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_BUILD_CC="$BUILD_CC" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_BUILD_CC="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+BUILD_CC=$ac_cv_path_BUILD_CC
+if test -n "$BUILD_CC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BUILD_CC" >&5
+$as_echo "$BUILD_CC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$BUILD_CC" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool BUILD_CC=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool BUILD_CC=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BUILD_CC" >&5
+$as_echo_n "checking for BUILD_CC... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool BUILD_CC=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
+ fi
+ fi
+
+
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
@@ -18327,6 +26750,13 @@ $as_echo "$as_me: This might be caused by spaces in the path, which is not allow
$as_echo "$as_me: Rewriting BUILD_CC to \"$new_complete\"" >&6;}
fi
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$BUILD_CXX" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
for ac_prog in cl CC g++
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
@@ -18372,6 +26802,140 @@ fi
test -n "$BUILD_CXX" && break
done
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !BUILD_CXX! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!BUILD_CXX!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xBUILD_CXX" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of BUILD_CXX from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of BUILD_CXX from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in cl CC g++
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_BUILD_CXX+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $BUILD_CXX in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_BUILD_CXX="$BUILD_CXX" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_BUILD_CXX="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+BUILD_CXX=$ac_cv_path_BUILD_CXX
+if test -n "$BUILD_CXX"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BUILD_CXX" >&5
+$as_echo "$BUILD_CXX" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$BUILD_CXX" && break
+done
+
+ else
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$BUILD_CXX"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool BUILD_CXX=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool BUILD_CXX=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_BUILD_CXX+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $BUILD_CXX in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_BUILD_CXX="$BUILD_CXX" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_BUILD_CXX="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+BUILD_CXX=$ac_cv_path_BUILD_CXX
+if test -n "$BUILD_CXX"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BUILD_CXX" >&5
+$as_echo "$BUILD_CXX" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$BUILD_CXX" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool BUILD_CXX=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool BUILD_CXX=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BUILD_CXX" >&5
+$as_echo_n "checking for BUILD_CXX... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool BUILD_CXX=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
+ fi
+ fi
+
+
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
@@ -18638,8 +27202,17 @@ $as_echo "$as_me: This might be caused by spaces in the path, which is not allow
$as_echo "$as_me: Rewriting BUILD_CXX to \"$new_complete\"" >&6;}
fi
- # Extract the first word of "ld", so it can be a program name with args.
-set dummy ld; ac_word=$2
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$BUILD_LD" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in ld
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_path_BUILD_LD+:} false; then :
@@ -18678,6 +27251,143 @@ $as_echo "no" >&6; }
fi
+ test -n "$BUILD_LD" && break
+done
+
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !BUILD_LD! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!BUILD_LD!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xBUILD_LD" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of BUILD_LD from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of BUILD_LD from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in ld
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_BUILD_LD+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $BUILD_LD in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_BUILD_LD="$BUILD_LD" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_BUILD_LD="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+BUILD_LD=$ac_cv_path_BUILD_LD
+if test -n "$BUILD_LD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BUILD_LD" >&5
+$as_echo "$BUILD_LD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$BUILD_LD" && break
+done
+
+ else
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$BUILD_LD"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool BUILD_LD=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool BUILD_LD=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_BUILD_LD+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $BUILD_LD in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_BUILD_LD="$BUILD_LD" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_BUILD_LD="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+BUILD_LD=$ac_cv_path_BUILD_LD
+if test -n "$BUILD_LD"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BUILD_LD" >&5
+$as_echo "$BUILD_LD" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$BUILD_LD" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool BUILD_LD=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool BUILD_LD=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BUILD_LD" >&5
+$as_echo_n "checking for BUILD_LD... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool BUILD_LD=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
+ fi
+ fi
+
+
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
@@ -22654,9 +31364,18 @@ $as_echo "$as_me: Rewriting OBJC to \"$new_complete\"" >&6;}
if test "x$OPENJDK_TARGET_OS" != xwindows; then
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$AR" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ar; ac_word=$2
+ for ac_prog in ar
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_AR+:} false; then :
@@ -22672,7 +31391,7 @@ do
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_AR="${ac_tool_prefix}ar"
+ ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
@@ -22692,11 +31411,15 @@ $as_echo "no" >&6; }
fi
+ test -n "$AR" && break
+ done
fi
-if test -z "$ac_cv_prog_AR"; then
+if test -z "$AR"; then
ac_ct_AR=$AR
- # Extract the first word of "ar", so it can be a program name with args.
-set dummy ar; ac_word=$2
+ for ac_prog in ar
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_ac_ct_AR+:} false; then :
@@ -22712,7 +31435,7 @@ do
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_AR="ar"
+ ac_cv_prog_ac_ct_AR="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
@@ -22731,6 +31454,10 @@ else
$as_echo "no" >&6; }
fi
+
+ test -n "$ac_ct_AR" && break
+done
+
if test "x$ac_ct_AR" = x; then
AR=""
else
@@ -22742,10 +31469,197 @@ ac_tool_warned=yes ;;
esac
AR=$ac_ct_AR
fi
-else
- AR="$ac_cv_prog_AR"
fi
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !AR! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!AR!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xAR" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of AR from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of AR from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in ar
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$AR" && break
+ done
+fi
+if test -z "$AR"; then
+ ac_ct_AR=$AR
+ for ac_prog in ar
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_AR="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_AR" && break
+done
+
+ if test "x$ac_ct_AR" = x; then
+ AR=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AR=$ac_ct_AR
+ fi
+fi
+
+ else
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$AR"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool AR=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool AR=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_AR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $AR in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_AR="$AR" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_AR="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+AR=$ac_cv_path_AR
+if test -n "$AR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$AR" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool AR=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool AR=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for AR" >&5
+$as_echo_n "checking for AR... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool AR=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
+ fi
+ fi
+
+
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
@@ -25534,8 +34448,17 @@ $as_echo "$as_me: Rewriting CXXCPP to \"$new_complete\"" >&6;}
# Find the right assembler.
if test "x$OPENJDK_TARGET_OS" = xsolaris; then
- # Extract the first word of "as", so it can be a program name with args.
-set dummy as; ac_word=$2
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$AS" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in as
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_path_AS+:} false; then :
@@ -25574,6 +34497,143 @@ $as_echo "no" >&6; }
fi
+ test -n "$AS" && break
+done
+
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !AS! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!AS!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xAS" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of AS from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of AS from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in as
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_AS+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $AS in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_AS="$AS" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_AS="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+AS=$ac_cv_path_AS
+if test -n "$AS"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5
+$as_echo "$AS" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$AS" && break
+done
+
+ else
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$AS"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool AS=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool AS=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_AS+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $AS in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_AS="$AS" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_AS="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+AS=$ac_cv_path_AS
+if test -n "$AS"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5
+$as_echo "$AS" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$AS" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool AS=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool AS=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for AS" >&5
+$as_echo_n "checking for AS... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool AS=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
+ fi
+ fi
+
+
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
@@ -25846,8 +34906,17 @@ $as_echo "$as_me: Rewriting AS to \"$new_complete\"" >&6;}
if test "x$OPENJDK_TARGET_OS" = xsolaris; then
- # Extract the first word of "nm", so it can be a program name with args.
-set dummy nm; ac_word=$2
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$NM" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in nm
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_path_NM+:} false; then :
@@ -25886,6 +34955,143 @@ $as_echo "no" >&6; }
fi
+ test -n "$NM" && break
+done
+
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !NM! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!NM!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xNM" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of NM from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of NM from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in nm
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_NM+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $NM in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_NM="$NM" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_NM="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+NM=$ac_cv_path_NM
+if test -n "$NM"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NM" >&5
+$as_echo "$NM" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$NM" && break
+done
+
+ else
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$NM"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool NM=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool NM=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_NM+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $NM in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_NM="$NM" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_NM="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+NM=$ac_cv_path_NM
+if test -n "$NM"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NM" >&5
+$as_echo "$NM" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$NM" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool NM=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool NM=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for NM" >&5
+$as_echo_n "checking for NM... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool NM=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
+ fi
+ fi
+
+
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
@@ -26152,8 +35358,17 @@ $as_echo "$as_me: This might be caused by spaces in the path, which is not allow
$as_echo "$as_me: Rewriting NM to \"$new_complete\"" >&6;}
fi
- # Extract the first word of "gnm", so it can be a program name with args.
-set dummy gnm; ac_word=$2
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$GNM" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in gnm
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_path_GNM+:} false; then :
@@ -26192,6 +35407,143 @@ $as_echo "no" >&6; }
fi
+ test -n "$GNM" && break
+done
+
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !GNM! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!GNM!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xGNM" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of GNM from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of GNM from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in gnm
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_GNM+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $GNM in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_GNM="$GNM" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_GNM="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+GNM=$ac_cv_path_GNM
+if test -n "$GNM"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GNM" >&5
+$as_echo "$GNM" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$GNM" && break
+done
+
+ else
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$GNM"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool GNM=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool GNM=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_GNM+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $GNM in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_GNM="$GNM" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_GNM="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+GNM=$ac_cv_path_GNM
+if test -n "$GNM"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GNM" >&5
+$as_echo "$GNM" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$GNM" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool GNM=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool GNM=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNM" >&5
+$as_echo_n "checking for GNM... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool GNM=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
+ fi
+ fi
+
+
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
@@ -26458,8 +35810,17 @@ $as_echo "$as_me: This might be caused by spaces in the path, which is not allow
$as_echo "$as_me: Rewriting GNM to \"$new_complete\"" >&6;}
fi
- # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$STRIP" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in strip
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_path_STRIP+:} false; then :
@@ -26498,6 +35859,143 @@ $as_echo "no" >&6; }
fi
+ test -n "$STRIP" && break
+done
+
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !STRIP! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!STRIP!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xSTRIP" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of STRIP from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of STRIP from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in strip
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_STRIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $STRIP in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_STRIP="$STRIP" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_STRIP="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+STRIP=$ac_cv_path_STRIP
+if test -n "$STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$STRIP" && break
+done
+
+ else
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$STRIP"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool STRIP=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool STRIP=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_STRIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $STRIP in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_STRIP="$STRIP" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_STRIP="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+STRIP=$ac_cv_path_STRIP
+if test -n "$STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$STRIP" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool STRIP=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool STRIP=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for STRIP" >&5
+$as_echo_n "checking for STRIP... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool STRIP=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
+ fi
+ fi
+
+
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
@@ -26764,8 +36262,17 @@ $as_echo "$as_me: This might be caused by spaces in the path, which is not allow
$as_echo "$as_me: Rewriting STRIP to \"$new_complete\"" >&6;}
fi
- # Extract the first word of "mcs", so it can be a program name with args.
-set dummy mcs; ac_word=$2
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$MCS" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in mcs
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_path_MCS+:} false; then :
@@ -26804,6 +36311,143 @@ $as_echo "no" >&6; }
fi
+ test -n "$MCS" && break
+done
+
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !MCS! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!MCS!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xMCS" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of MCS from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of MCS from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in mcs
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_MCS+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $MCS in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_MCS="$MCS" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_MCS="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+MCS=$ac_cv_path_MCS
+if test -n "$MCS"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MCS" >&5
+$as_echo "$MCS" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$MCS" && break
+done
+
+ else
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$MCS"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool MCS=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool MCS=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_MCS+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $MCS in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_MCS="$MCS" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_MCS="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+MCS=$ac_cv_path_MCS
+if test -n "$MCS"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MCS" >&5
+$as_echo "$MCS" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$MCS" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool MCS=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool MCS=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for MCS" >&5
+$as_echo_n "checking for MCS... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool MCS=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
+ fi
+ fi
+
+
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
@@ -27071,9 +36715,18 @@ $as_echo "$as_me: Rewriting MCS to \"$new_complete\"" >&6;}
fi
elif test "x$OPENJDK_TARGET_OS" != xwindows; then
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$NM" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}nm", so it can be a program name with args.
-set dummy ${ac_tool_prefix}nm; ac_word=$2
+ for ac_prog in nm
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_NM+:} false; then :
@@ -27089,7 +36742,7 @@ do
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_NM="${ac_tool_prefix}nm"
+ ac_cv_prog_NM="$ac_tool_prefix$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
@@ -27109,11 +36762,15 @@ $as_echo "no" >&6; }
fi
+ test -n "$NM" && break
+ done
fi
-if test -z "$ac_cv_prog_NM"; then
+if test -z "$NM"; then
ac_ct_NM=$NM
- # Extract the first word of "nm", so it can be a program name with args.
-set dummy nm; ac_word=$2
+ for ac_prog in nm
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_ac_ct_NM+:} false; then :
@@ -27129,7 +36786,7 @@ do
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_NM="nm"
+ ac_cv_prog_ac_ct_NM="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
@@ -27148,6 +36805,10 @@ else
$as_echo "no" >&6; }
fi
+
+ test -n "$ac_ct_NM" && break
+done
+
if test "x$ac_ct_NM" = x; then
NM=""
else
@@ -27159,10 +36820,197 @@ ac_tool_warned=yes ;;
esac
NM=$ac_ct_NM
fi
-else
- NM="$ac_cv_prog_NM"
fi
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !NM! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!NM!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xNM" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of NM from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of NM from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in nm
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_NM+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$NM"; then
+ ac_cv_prog_NM="$NM" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_NM="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+NM=$ac_cv_prog_NM
+if test -n "$NM"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NM" >&5
+$as_echo "$NM" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$NM" && break
+ done
+fi
+if test -z "$NM"; then
+ ac_ct_NM=$NM
+ for ac_prog in nm
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_NM+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_NM"; then
+ ac_cv_prog_ac_ct_NM="$ac_ct_NM" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_NM="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_NM=$ac_cv_prog_ac_ct_NM
+if test -n "$ac_ct_NM"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NM" >&5
+$as_echo "$ac_ct_NM" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_NM" && break
+done
+
+ if test "x$ac_ct_NM" = x; then
+ NM=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ NM=$ac_ct_NM
+ fi
+fi
+
+ else
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$NM"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool NM=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool NM=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_NM+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $NM in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_NM="$NM" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_NM="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+NM=$ac_cv_path_NM
+if test -n "$NM"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NM" >&5
+$as_echo "$NM" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$NM" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool NM=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool NM=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for NM" >&5
+$as_echo_n "checking for NM... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool NM=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
+ fi
+ fi
+
+
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
@@ -27431,9 +37279,18 @@ $as_echo "$as_me: Rewriting NM to \"$new_complete\"" >&6;}
GNM="$NM"
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$STRIP" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
if test -n "$ac_tool_prefix"; then
- # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
+ for ac_prog in strip
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_STRIP+:} false; then :
@@ -27449,7 +37306,7 @@ do
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+ ac_cv_prog_STRIP="$ac_tool_prefix$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
@@ -27469,11 +37326,15 @@ $as_echo "no" >&6; }
fi
+ test -n "$STRIP" && break
+ done
fi
-if test -z "$ac_cv_prog_STRIP"; then
+if test -z "$STRIP"; then
ac_ct_STRIP=$STRIP
- # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
+ for ac_prog in strip
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
@@ -27489,7 +37350,7 @@ do
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_prog_ac_ct_STRIP="strip"
+ ac_cv_prog_ac_ct_STRIP="$ac_prog"
$as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
@@ -27508,6 +37369,10 @@ else
$as_echo "no" >&6; }
fi
+
+ test -n "$ac_ct_STRIP" && break
+done
+
if test "x$ac_ct_STRIP" = x; then
STRIP=""
else
@@ -27519,10 +37384,197 @@ ac_tool_warned=yes ;;
esac
STRIP=$ac_ct_STRIP
fi
-else
- STRIP="$ac_cv_prog_STRIP"
fi
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !STRIP! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!STRIP!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xSTRIP" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of STRIP from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of STRIP from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in strip
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_STRIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$STRIP"; then
+ ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_STRIP="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$STRIP" && break
+ done
+fi
+if test -z "$STRIP"; then
+ ac_ct_STRIP=$STRIP
+ for ac_prog in strip
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_STRIP"; then
+ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_STRIP="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_STRIP" && break
+done
+
+ if test "x$ac_ct_STRIP" = x; then
+ STRIP=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ STRIP=$ac_ct_STRIP
+ fi
+fi
+
+ else
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$STRIP"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool STRIP=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool STRIP=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_STRIP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $STRIP in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_STRIP="$STRIP" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_STRIP="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+STRIP=$ac_cv_path_STRIP
+if test -n "$STRIP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$STRIP" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool STRIP=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool STRIP=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for STRIP" >&5
+$as_echo_n "checking for STRIP... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool STRIP=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
+ fi
+ fi
+
+
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
@@ -27794,6 +37846,13 @@ $as_echo "$as_me: Rewriting STRIP to \"$new_complete\"" >&6;}
# objcopy is used for moving debug symbols to separate files when
# full debug symbols are enabled.
if test "x$OPENJDK_TARGET_OS" = xsolaris || test "x$OPENJDK_TARGET_OS" = xlinux; then
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$OBJCOPY" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
if test -n "$ac_tool_prefix"; then
for ac_prog in gobjcopy objcopy
do
@@ -27894,6 +37953,195 @@ esac
fi
fi
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !OBJCOPY! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!OBJCOPY!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xOBJCOPY" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of OBJCOPY from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of OBJCOPY from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in gobjcopy objcopy
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_OBJCOPY+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$OBJCOPY"; then
+ ac_cv_prog_OBJCOPY="$OBJCOPY" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_OBJCOPY="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+OBJCOPY=$ac_cv_prog_OBJCOPY
+if test -n "$OBJCOPY"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJCOPY" >&5
+$as_echo "$OBJCOPY" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$OBJCOPY" && break
+ done
+fi
+if test -z "$OBJCOPY"; then
+ ac_ct_OBJCOPY=$OBJCOPY
+ for ac_prog in gobjcopy objcopy
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_OBJCOPY+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_OBJCOPY"; then
+ ac_cv_prog_ac_ct_OBJCOPY="$ac_ct_OBJCOPY" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_OBJCOPY="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OBJCOPY=$ac_cv_prog_ac_ct_OBJCOPY
+if test -n "$ac_ct_OBJCOPY"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJCOPY" >&5
+$as_echo "$ac_ct_OBJCOPY" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_OBJCOPY" && break
+done
+
+ if test "x$ac_ct_OBJCOPY" = x; then
+ OBJCOPY=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ OBJCOPY=$ac_ct_OBJCOPY
+ fi
+fi
+
+ else
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$OBJCOPY"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool OBJCOPY=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool OBJCOPY=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_OBJCOPY+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $OBJCOPY in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_OBJCOPY="$OBJCOPY" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_OBJCOPY="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+OBJCOPY=$ac_cv_path_OBJCOPY
+if test -n "$OBJCOPY"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJCOPY" >&5
+$as_echo "$OBJCOPY" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$OBJCOPY" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool OBJCOPY=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool OBJCOPY=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for OBJCOPY" >&5
+$as_echo_n "checking for OBJCOPY... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool OBJCOPY=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
+ fi
+ fi
+
+
# Only call fixup if objcopy was found.
if test -n "$OBJCOPY"; then
@@ -28165,7 +38413,14 @@ $as_echo "$as_me: Rewriting OBJCOPY to \"$new_complete\"" >&6;}
fi
fi
- if test -n "$ac_tool_prefix"; then
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$OBJDUMP" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ if test -n "$ac_tool_prefix"; then
for ac_prog in gobjdump objdump
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
@@ -28265,6 +38520,195 @@ esac
fi
fi
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !OBJDUMP! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!OBJDUMP!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xOBJDUMP" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of OBJDUMP from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of OBJDUMP from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in gobjdump objdump
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_OBJDUMP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$OBJDUMP"; then
+ ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_OBJDUMP="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+OBJDUMP=$ac_cv_prog_OBJDUMP
+if test -n "$OBJDUMP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
+$as_echo "$OBJDUMP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$OBJDUMP" && break
+ done
+fi
+if test -z "$OBJDUMP"; then
+ ac_ct_OBJDUMP=$OBJDUMP
+ for ac_prog in gobjdump objdump
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_OBJDUMP"; then
+ ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_OBJDUMP="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
+if test -n "$ac_ct_OBJDUMP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
+$as_echo "$ac_ct_OBJDUMP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_OBJDUMP" && break
+done
+
+ if test "x$ac_ct_OBJDUMP" = x; then
+ OBJDUMP=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ OBJDUMP=$ac_ct_OBJDUMP
+ fi
+fi
+
+ else
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$OBJDUMP"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool OBJDUMP=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool OBJDUMP=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_OBJDUMP+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $OBJDUMP in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_OBJDUMP="$OBJDUMP" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_OBJDUMP="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+OBJDUMP=$ac_cv_path_OBJDUMP
+if test -n "$OBJDUMP"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
+$as_echo "$OBJDUMP" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$OBJDUMP" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool OBJDUMP=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool OBJDUMP=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for OBJDUMP" >&5
+$as_echo_n "checking for OBJDUMP... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool OBJDUMP=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
+ fi
+ fi
+
+
if test "x$OBJDUMP" != x; then
# Only used for compare.sh; we can live without it. BASIC_FIXUP_EXECUTABLE bails if argument is missing.
@@ -28536,8 +38980,17 @@ $as_echo "$as_me: Rewriting OBJDUMP to \"$new_complete\"" >&6;}
fi
if test "x$OPENJDK_TARGET_OS" = "xmacosx"; then
- # Extract the first word of "lipo", so it can be a program name with args.
-set dummy lipo; ac_word=$2
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$LIPO" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in lipo
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
$as_echo_n "checking for $ac_word... " >&6; }
if ${ac_cv_path_LIPO+:} false; then :
@@ -28576,6 +39029,143 @@ $as_echo "no" >&6; }
fi
+ test -n "$LIPO" && break
+done
+
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !LIPO! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!LIPO!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xLIPO" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of LIPO from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of LIPO from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in lipo
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_LIPO+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $LIPO in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_LIPO="$LIPO" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_LIPO="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+LIPO=$ac_cv_path_LIPO
+if test -n "$LIPO"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
+$as_echo "$LIPO" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$LIPO" && break
+done
+
+ else
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$LIPO"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool LIPO=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool LIPO=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_LIPO+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $LIPO in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_LIPO="$LIPO" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_LIPO="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+LIPO=$ac_cv_path_LIPO
+if test -n "$LIPO"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
+$as_echo "$LIPO" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$LIPO" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool LIPO=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool LIPO=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIPO" >&5
+$as_echo_n "checking for LIPO... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool LIPO=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
+ fi
+ fi
+
+
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
@@ -36180,65 +46770,7 @@ $as_echo "yes" >&6; }
if test "x$TOOLS_DIR" != x; then
PATH=$TOOLS_DIR:$PATH
fi
-
- for ac_prog in ccache
-do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_CCACHE+:} false; then :
- $as_echo_n "(cached) " >&6
-else
- case $CCACHE in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_CCACHE="$CCACHE" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_CCACHE="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
- done
-IFS=$as_save_IFS
-
- ;;
-esac
-fi
-CCACHE=$ac_cv_path_CCACHE
-if test -n "$CCACHE"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CCACHE" >&5
-$as_echo "$CCACHE" >&6; }
-else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- test -n "$CCACHE" && break
-done
-
-
- if test "x$CCACHE" = x; then
- if test "xccache" = x; then
- PROG_NAME=ccache
- else
- PROG_NAME=ccache
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: Could not find $PROG_NAME!" >&5
-$as_echo "$as_me: Could not find $PROG_NAME!" >&6;}
- as_fn_error $? "Cannot continue" "$LINENO" 5
- fi
-
-
+ BASIC_REQUIRE_PROG(CCACHE, ccache)
CCACHE_STATUS="enabled"
PATH="$OLD_PATH"
elif test "x$enable_ccache" = xno; then
@@ -36351,6 +46883,15 @@ $as_echo "no, disabling ccaching of precompiled headers" >&6; }
fi
+ # Did user specify any unknown variables?
+
+ if test "x$CONFIGURE_OVERRIDDEN_VARIABLES" != x; then
+ # Replace the separating ! with spaces before presenting for end user.
+ unknown_variables=${CONFIGURE_OVERRIDDEN_VARIABLES//!/ }
+ as_fn_error $? "The following variables are unknown to configure: $unknown_variables" "$LINENO" 5
+ fi
+
+
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if build directory is on local disk" >&5
$as_echo_n "checking if build directory is on local disk... " >&6; }
diff --git a/common/autoconf/toolchain.m4 b/common/autoconf/toolchain.m4
index 613881fddfe..f358daf3473 100644
--- a/common/autoconf/toolchain.m4
+++ b/common/autoconf/toolchain.m4
@@ -238,11 +238,11 @@ AC_DEFUN([TOOLCHAIN_SETUP_PATHS],
# otherwise we might pick up cross-compilers which don't use standard naming.
# Otherwise, we'll set the BUILD_tools to the native tools, but that'll have
# to wait until they are properly discovered.
- AC_PATH_PROGS(BUILD_CC, [cl cc gcc])
+ BASIC_PATH_PROGS(BUILD_CC, [cl cc gcc])
BASIC_FIXUP_EXECUTABLE(BUILD_CC)
- AC_PATH_PROGS(BUILD_CXX, [cl CC g++])
+ BASIC_PATH_PROGS(BUILD_CXX, [cl CC g++])
BASIC_FIXUP_EXECUTABLE(BUILD_CXX)
- AC_PATH_PROG(BUILD_LD, ld)
+ BASIC_PATH_PROGS(BUILD_LD, ld)
BASIC_FIXUP_EXECUTABLE(BUILD_LD)
fi
AC_SUBST(BUILD_CC)
@@ -353,7 +353,7 @@ AC_DEFUN([TOOLCHAIN_SETUP_PATHS],
AC_SUBST(LDEXECXX)
if test "x$OPENJDK_TARGET_OS" != xwindows; then
- AC_CHECK_TOOL(AR, ar)
+ BASIC_CHECK_TOOLS(AR, ar)
BASIC_FIXUP_EXECUTABLE(AR)
fi
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
@@ -480,7 +480,7 @@ AC_DEFUN([TOOLCHAIN_SETUP_PATHS],
# Find the right assembler.
if test "x$OPENJDK_TARGET_OS" = xsolaris; then
- AC_PATH_PROG(AS, as)
+ BASIC_PATH_PROGS(AS, as)
BASIC_FIXUP_EXECUTABLE(AS)
else
AS="$CC -c"
@@ -488,41 +488,41 @@ AC_DEFUN([TOOLCHAIN_SETUP_PATHS],
AC_SUBST(AS)
if test "x$OPENJDK_TARGET_OS" = xsolaris; then
- AC_PATH_PROG(NM, nm)
+ BASIC_PATH_PROGS(NM, nm)
BASIC_FIXUP_EXECUTABLE(NM)
- AC_PATH_PROG(GNM, gnm)
+ BASIC_PATH_PROGS(GNM, gnm)
BASIC_FIXUP_EXECUTABLE(GNM)
- AC_PATH_PROG(STRIP, strip)
+ BASIC_PATH_PROGS(STRIP, strip)
BASIC_FIXUP_EXECUTABLE(STRIP)
- AC_PATH_PROG(MCS, mcs)
+ BASIC_PATH_PROGS(MCS, mcs)
BASIC_FIXUP_EXECUTABLE(MCS)
elif test "x$OPENJDK_TARGET_OS" != xwindows; then
- AC_CHECK_TOOL(NM, nm)
+ BASIC_CHECK_TOOLS(NM, nm)
BASIC_FIXUP_EXECUTABLE(NM)
GNM="$NM"
AC_SUBST(GNM)
- AC_CHECK_TOOL(STRIP, strip)
+ BASIC_CHECK_TOOLS(STRIP, strip)
BASIC_FIXUP_EXECUTABLE(STRIP)
fi
# objcopy is used for moving debug symbols to separate files when
# full debug symbols are enabled.
if test "x$OPENJDK_TARGET_OS" = xsolaris || test "x$OPENJDK_TARGET_OS" = xlinux; then
- AC_CHECK_TOOLS(OBJCOPY, [gobjcopy objcopy])
+ BASIC_CHECK_TOOLS(OBJCOPY, [gobjcopy objcopy])
# Only call fixup if objcopy was found.
if test -n "$OBJCOPY"; then
BASIC_FIXUP_EXECUTABLE(OBJCOPY)
fi
fi
- AC_CHECK_TOOLS(OBJDUMP, [gobjdump objdump])
+ BASIC_CHECK_TOOLS(OBJDUMP, [gobjdump objdump])
if test "x$OBJDUMP" != x; then
# Only used for compare.sh; we can live without it. BASIC_FIXUP_EXECUTABLE bails if argument is missing.
BASIC_FIXUP_EXECUTABLE(OBJDUMP)
fi
if test "x$OPENJDK_TARGET_OS" = "xmacosx"; then
- AC_PATH_PROG(LIPO, lipo)
+ BASIC_PATH_PROGS(LIPO, lipo)
BASIC_FIXUP_EXECUTABLE(LIPO)
fi
@@ -1244,7 +1244,7 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_JTREG],
AC_MSG_RESULT($JTREGEXE)
else
# try to find jtreg on path
- BASIC_REQUIRE_PROG(JTREGEXE, jtreg)
+ BASIC_REQUIRE_PROGS(JTREGEXE, jtreg)
JT_HOME="`$DIRNAME $JTREGEXE`"
fi
fi
From fcd4a416467931cfc9777293485a1a192b96fd20 Mon Sep 17 00:00:00 2001
From: Magnus Ihse Bursie
Date: Wed, 29 Jan 2014 12:18:17 +0100
Subject: [PATCH 111/181] 8033115: Bad merge between 8027584 and 8031759
Reviewed-by: erikj, dsamersoff
---
common/autoconf/build-performance.m4 | 2 +-
common/autoconf/generated-configure.sh | 200 ++++++++++++++++++++++++-
2 files changed, 198 insertions(+), 4 deletions(-)
diff --git a/common/autoconf/build-performance.m4 b/common/autoconf/build-performance.m4
index 518457ac105..1bf5628485c 100644
--- a/common/autoconf/build-performance.m4
+++ b/common/autoconf/build-performance.m4
@@ -172,7 +172,7 @@ AC_DEFUN([BPERF_SETUP_CCACHE],
if test "x$TOOLS_DIR" != x; then
PATH=$TOOLS_DIR:$PATH
fi
- BASIC_REQUIRE_PROG(CCACHE, ccache)
+ BASIC_REQUIRE_PROGS(CCACHE, ccache)
CCACHE_STATUS="enabled"
PATH="$OLD_PATH"
elif test "x$enable_ccache" = xno; then
diff --git a/common/autoconf/generated-configure.sh b/common/autoconf/generated-configure.sh
index 5c43987622b..f7dc3f66d6d 100644
--- a/common/autoconf/generated-configure.sh
+++ b/common/autoconf/generated-configure.sh
@@ -1165,7 +1165,8 @@ FREETYPE_LIBS
ALSA_CFLAGS
ALSA_LIBS
LIBFFI_CFLAGS
-LIBFFI_LIBS'
+LIBFFI_LIBS
+CCACHE'
# Initialize some variables set by options.
@@ -2015,6 +2016,7 @@ Some influential environment variables:
LIBFFI_CFLAGS
C compiler flags for LIBFFI, overriding pkg-config
LIBFFI_LIBS linker flags for LIBFFI, overriding pkg-config
+ CCACHE Override default value for CCACHE
Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.
@@ -4034,7 +4036,7 @@ fi
#CUSTOM_AUTOCONF_INCLUDE
# Do not change or remove the following line, it is needed for consistency checks:
-DATE_WHEN_GENERATED=1390990903
+DATE_WHEN_GENERATED=1390994270
###############################################################################
#
@@ -46770,7 +46772,199 @@ $as_echo "yes" >&6; }
if test "x$TOOLS_DIR" != x; then
PATH=$TOOLS_DIR:$PATH
fi
- BASIC_REQUIRE_PROG(CCACHE, ccache)
+
+
+
+ # Publish this variable in the help.
+
+
+ if test "x$CCACHE" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+ for ac_prog in ccache
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_CCACHE+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $CCACHE in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_CCACHE="$CCACHE" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_CCACHE="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+CCACHE=$ac_cv_path_CCACHE
+if test -n "$CCACHE"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CCACHE" >&5
+$as_echo "$CCACHE" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$CCACHE" && break
+done
+
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !CCACHE! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!CCACHE!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xCCACHE" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of CCACHE from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of CCACHE from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+ for ac_prog in ccache
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_CCACHE+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $CCACHE in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_CCACHE="$CCACHE" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_CCACHE="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+CCACHE=$ac_cv_path_CCACHE
+if test -n "$CCACHE"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CCACHE" >&5
+$as_echo "$CCACHE" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$CCACHE" && break
+done
+
+ else
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$CCACHE"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool CCACHE=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool CCACHE=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_CCACHE+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $CCACHE in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_CCACHE="$CCACHE" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_CCACHE="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+CCACHE=$ac_cv_path_CCACHE
+if test -n "$CCACHE"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CCACHE" >&5
+$as_echo "$CCACHE" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$CCACHE" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool CCACHE=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool CCACHE=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CCACHE" >&5
+$as_echo_n "checking for CCACHE... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool CCACHE=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
+ fi
+ fi
+
+
+
+ if test "x$CCACHE" = x; then
+ as_fn_error $? "Could not find required tool for CCACHE" "$LINENO" 5
+ fi
+
+
CCACHE_STATUS="enabled"
PATH="$OLD_PATH"
elif test "x$enable_ccache" = xno; then
From da17ca59dba37b8df99176fba2fc34f19a497403 Mon Sep 17 00:00:00 2001
From: Magnus Ihse Bursie
Date: Wed, 29 Jan 2014 13:10:53 +0100
Subject: [PATCH 112/181] 8033111: Clean up left-over JObjC code in build
system
Reviewed-by: erikj
---
jdk/make/CompileJavaClasses.gmk | 2 +-
jdk/make/gensrc/GensrcJObjC.gmk | 112 --------------------------------
2 files changed, 1 insertion(+), 113 deletions(-)
delete mode 100644 jdk/make/gensrc/GensrcJObjC.gmk
diff --git a/jdk/make/CompileJavaClasses.gmk b/jdk/make/CompileJavaClasses.gmk
index d3e638e1109..5a725b502e6 100644
--- a/jdk/make/CompileJavaClasses.gmk
+++ b/jdk/make/CompileJavaClasses.gmk
@@ -409,7 +409,7 @@ endif
##########################################################################################
-all: $(BUILD_JDK) $(BUILD_SECURITY) $(BUILD_JOBJC) $(BUILD_JOBJC_HEADERS) $(COPY_EXTRA) \
+all: $(BUILD_JDK) $(BUILD_SECURITY) $(COPY_EXTRA) \
$(JDK_OUTPUTDIR)/classes/META-INF/services/com.sun.tools.xjc.Plugin \
$(BUILD_ACCESSBRIDGE_32) $(BUILD_ACCESSBRIDGE_64) \
$(BUILD_ACCESSBRIDGE_LEGACY)
diff --git a/jdk/make/gensrc/GensrcJObjC.gmk b/jdk/make/gensrc/GensrcJObjC.gmk
deleted file mode 100644
index 899ec25545f..00000000000
--- a/jdk/make/gensrc/GensrcJObjC.gmk
+++ /dev/null
@@ -1,112 +0,0 @@
-#
-# Copyright (c) 2011, 2012, 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.
-#
-
-GENSRC_JOBJC :=
-
-JOBJC_FRAMEWORKS := Foundation CoreFoundation AppKit
-FRAMEWORKS_DIR := /System/Library/Frameworks
-GBM := /usr/bin/gen_bridge_metadata
-
-JOBJC_SRC := $(JDK_TOPDIR)/src/macosx/native/jobjc
-JOBJC_TMP := $(JDK_OUTPUTDIR)/gensrc_jobjc
-JOBJC_DST := $(JDK_OUTPUTDIR)/gensrc_jobjc/src
-
-#
-# Build generator
-#
-$(eval $(call SetupJavaCompilation,BUILD_JOBJC_PRIMITIVE_CODER, \
- SETUP := GENERATE_OLDBYTECODE, \
- DISABLE_SJAVAC := true, \
- INCLUDES := core/java \
- com/apple, \
- SRC := $(JOBJC_SRC)/src \
- $(JOBJC_SRC)/src/generator/java, \
- BIN := $(JOBJC_TMP)/bin))
-
-GENSRC_JOBJC += $(BUILD_JOBJC_PRIMITIVE_CODER)
-
-#
-# Generate bridge support for select frameworks
-#
-BRIDGESUPPORT := $(addprefix $(JOBJC_TMP)/bridge/, $(addsuffix Full.bridgesupport, $(JOBJC_FRAMEWORKS)))
-
-#
-# Define macro for rules to create bridge support
-# Not sure why, but if the system has this framework bridge support,
-# we appear to copy that, otherwise we run GBM which can be very slow.
-#
-define CreateBridgeSupport # Framework
- $(RM) $@ $@.tmp
- $(MKDIR) -p $(@D)
- if [ -f $(FRAMEWORKS_DIR)/$1.framework/Resources/BridgeSupport/$(@F) ]; then \
- $(CP) $(FRAMEWORKS_DIR)/$1.framework/Resources/BridgeSupport/$(@F) $@.tmp ; \
- else \
- $(GBM) $(LOG_INFO) -F complete --framework $1 -o $@.tmp ; \
- fi
- $(MV) $@.tmp $@
-endef
-
-#
-# Currently 3 frameworks, avoid pattern rule due to the names being conflicting
-#
-$(JOBJC_TMP)/bridge/FoundationFull.bridgesupport: \
- $(wildcard $(FRAMEWORKS_DIR)/Foundation.framework/Headers/*.h)
- $(call CreateBridgeSupport,Foundation)
-$(JOBJC_TMP)/bridge/CoreFoundationFull.bridgesupport: \
- $(wildcard $(FRAMEWORKS_DIR)/CoreFoundation.framework/Headers/*.h)
- $(call CreateBridgeSupport,CoreFoundation)
-$(JOBJC_TMP)/bridge/AppKitFull.bridgesupport: \
- $(wildcard $(FRAMEWORKS_DIR)/AppKit.framework/Headers/*.h)
- $(call CreateBridgeSupport,AppKit)
-
-#
-# Find Xbootclasspath, for some reason, this involves firing up Java just
-# so we can get the boot classpath, so we can remove anything in that
-# classpath that ends with "JObjC.jar", and emit the new bootclasspath.
-#
-$(JOBJC_TMP)/_the.generator_bootclasspath: $(BUILD_JOBJC_PRIMITIVE_CODER)
- $(ECHO) Generating jobjc framework bridge
- $(RM) $@
- $(JAVA) $(LOG_INFO) -cp $(JOBJC_TMP)/bin com.apple.internal.jobjc.generator.BootClassPathMinus JObjC.jar > $@.tmp
- $(MV) $@.tmp $@
-
-#
-# Run generator
-# Now we use bootclasspath to run java again, with the bridge support to
-# generate more source.
-#
-$(JOBJC_TMP)/_the.generator: $(JOBJC_TMP)/_the.generator_bootclasspath $(BRIDGESUPPORT)
- $(RM) $@
- $(JAVA) $(LOG_INFO) -d64 -Xbootclasspath:`$(CAT) $(JOBJC_TMP)/_the.generator_bootclasspath` -cp $(JOBJC_TMP)/bin -ea com.apple.internal.jobjc.generator.Generator dst=$(JOBJC_DST) frameworks=$(JOBJC_TMP)/bridge
- $(TOUCH) $@
-
-# The generator delets all files in the target dir so it has to work in its
-# own dir and have the files copied over to gensrc aftewards.
-$(JDK_OUTPUTDIR)/gensrc/_the.jobjc.files: $(JOBJC_TMP)/_the.generator
- $(MKDIR) -p $(@D)
- $(CP) -rp $(JOBJC_DST)/* $(@D)
- $(TOUCH) $@
-
-GENSRC_JOBJC += $(JDK_OUTPUTDIR)/gensrc/_the.jobjc.files
From 9e782fae6d8f9743acf00186a137b0ffc33787d8 Mon Sep 17 00:00:00 2001
From: Jaroslav Bachorik
Date: Wed, 29 Jan 2014 17:37:40 +0100
Subject: [PATCH 113/181] 8031701:
java/lang/management/ThreadMXBean/Locks.java: Thread WaitingThread is
expected to wait on Object but got null Thread.State = RUNNABLE
Reviewed-by: mchung, dsamersoff
---
.../lang/management/ThreadMXBean/Locks.java | 204 ++++++++++--------
.../ThreadExecutionSynchronizer.java | 85 --------
2 files changed, 111 insertions(+), 178 deletions(-)
delete mode 100644 jdk/test/java/lang/management/ThreadMXBean/ThreadExecutionSynchronizer.java
diff --git a/jdk/test/java/lang/management/ThreadMXBean/Locks.java b/jdk/test/java/lang/management/ThreadMXBean/Locks.java
index c078dccd62d..e65d3637f67 100644
--- a/jdk/test/java/lang/management/ThreadMXBean/Locks.java
+++ b/jdk/test/java/lang/management/ThreadMXBean/Locks.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -27,18 +27,19 @@
* @summary Basic unit test of ThreadInfo.getLockName()
* and ThreadInfo.getLockOwnerName()
* @author Mandy Chung
+ * @author Jaroslav Bachorik
*
- * @build ThreadExecutionSynchronizer
* @run main/othervm Locks
*/
import java.lang.management.*;
+import java.util.concurrent.Phaser;
public class Locks {
- private static Object objA = new Object();
- private static Object objB = new Object();
- private static Object objC = new Object();
- private static ThreadMXBean tm = ManagementFactory.getThreadMXBean();
+ private static final Object objA = new Object();
+ private static final Object objB = new Object();
+ private static final Object objC = new Object();
+ private static final ThreadMXBean tm = ManagementFactory.getThreadMXBean();
private static boolean testFailed = false;
@@ -46,48 +47,62 @@ public class Locks {
if (lock == null) return null;
return lock.getClass().getName() + '@' +
- Integer.toHexString(System.identityHashCode(lock));
+ Integer.toHexString(System.identityHashCode(lock));
+ }
+
+ private static void assertNoLock(Thread t) {
+ long tid = t.getId();
+ ThreadInfo info = tm.getThreadInfo(tid);
+ String result = info.getLockName();
+
+ if (result != null) {
+ throw new RuntimeException("Thread " + t.getName() + " is not supposed to hold any lock. " +
+ "Currently owning lock: " + result);
+ }
}
private static void checkBlockedObject(Thread t, Object lock, Thread owner,
Thread.State expectedState) {
- ThreadInfo info = tm.getThreadInfo(t.getId());
+ long tid = t.getId();
+ ThreadInfo info = tm.getThreadInfo(tid);
String result = info.getLockName();
String expectedLock = (lock != null ? getLockName(lock) : null);
String expectedOwner = (owner != null ? owner.getName() : null);
if (lock != null) {
- if (expectedState ==Thread.State.BLOCKED) {
+ if (expectedState == Thread.State.BLOCKED) {
int retryCount=0;
while(info.getThreadState() != Thread.State.BLOCKED) {
if (retryCount++ > 500) {
throw new RuntimeException("Thread " + t.getName() +
- " is expected to block on " + expectedLock +
- " but got " + result +
- " Thread.State = " + info.getThreadState());
+ " is expected to block on " + expectedLock +
+ " but got " + result +
+ " Thread.State = " + info.getThreadState());
}
goSleep(100);
+ info = tm.getThreadInfo(tid);
+ result = info.getLockName();
}
}
if (expectedState == Thread.State.WAITING &&
- info.getThreadState() != Thread.State.WAITING) {
+ info.getThreadState() != Thread.State.WAITING) {
throw new RuntimeException("Thread " + t.getName() +
- " is expected to wait on " + expectedLock +
- " but got " + result +
- " Thread.State = " + info.getThreadState());
+ " is expected to wait on " + expectedLock +
+ " but got " + result +
+ " Thread.State = " + info.getThreadState());
}
}
if ((result != null && !result.equals(expectedLock)) ||
- (result == null && expectedLock != null)) {
+ (result == null && expectedLock != null)) {
throw new RuntimeException("Thread " + t.getName() + " is blocked on " +
- expectedLock + " but got " + result);
+ expectedLock + " but got " + result);
}
result = info.getLockOwnerName();
if ((result != null && !result.equals(expectedOwner)) ||
- (result == null && expectedOwner != null)) {
+ (result == null && expectedOwner != null)) {
throw new RuntimeException("Owner of " + lock + " should be " +
- expectedOwner + " but got " + result);
+ expectedOwner + " but got " + result);
}
}
@@ -100,53 +115,49 @@ public class Locks {
}
}
- static ThreadExecutionSynchronizer thrsync = new ThreadExecutionSynchronizer();
- static ThreadExecutionSynchronizer thrsync1 = new ThreadExecutionSynchronizer();
+ private static volatile int dummyCounter = 0;
static class LockAThread extends Thread {
- public LockAThread() {
+ private final Phaser p;
+ public LockAThread(Phaser p) {
super("LockAThread");
+ this.p = p;
}
public void run() {
synchronized(objA) {
- // stop here for LockBThread to hold objB
- thrsync.waitForSignal();
-
- System.out.println("LockAThread about to block on objB");
- synchronized(objB) {};
+ // stop here for LockBThread to hold objB
+ System.out.println("LockAThread about to block on objB");
+ p.arriveAndAwaitAdvance(); // Phase 1 (blocking)
+ synchronized(objB) {
+ dummyCounter++;
+ };
}
+ p.arriveAndAwaitAdvance(); // Phase 2 (blocking)
System.out.println("LockAThread about to exit");
- // The state could be anything. The expected state value
- // passed with this method is not verified.
- checkBlockedObject(this, null, null, Thread.State.TERMINATED);
+ // Make sure the current thread is not holding any lock
+ assertNoLock(this);
}
}
static class LockBThread extends Thread {
- public LockBThread() {
+ private final Phaser p;
+ public LockBThread(Phaser p) {
super("LockBThread");
+ this.p = p;
}
public void run() {
synchronized(objB) {
- // signal waiting LockAThread.
- thrsync.signal();
-
- System.out.println("LockBThread about to block on objC");
- // Signal main thread about to block on objC
- thrsync1.signal();
- synchronized(objC) {};
+ System.out.println("LockBThread about to block on objC");
+ p.arriveAndAwaitAdvance(); // Phase 1 (blocking)
+ // Signal main thread about to block on objC
+ synchronized(objC) {
+ dummyCounter++;
+ };
}
+ p.arriveAndAwaitAdvance(); // Phase 2 (blocking)
System.out.println("LockBThread about to exit");
- // The state could be anything. The expected state value
- // passed with this method is not verified.
- checkBlockedObject(this, null, null, Thread.State.TERMINATED);
- }
-
- public void aboutToLockC() {
- // Stop here till LockBThread about to blocked
- // for lock objC.
- thrsync1.waitForSignal();
- goSleep(500);
+ // Make sure the current thread is not holding any lock
+ assertNoLock(this);
}
}
@@ -154,32 +165,36 @@ public class Locks {
private static Object ready = new Object();
private static CheckerThread checker;
static class WaitingThread extends Thread {
- public WaitingThread() {
+ private final Phaser p;
+ public WaitingThread(Phaser p) {
super("WaitingThread");
+ this.p = p;
}
public void run() {
synchronized(objC) {
- System.out.println("WaitingThread about to wait on objC");
- try {
- // Signal checker thread, about to wait on objC.
- thrsync.signal();
- objC.wait();
- } catch (InterruptedException e) {
- e.printStackTrace();
- testFailed = true;
- }
+ System.out.println("WaitingThread about to wait on objC");
+ try {
+ // Signal checker thread, about to wait on objC.
+ p.arriveAndAwaitAdvance(); // Phase 1 (waiting)
+ objC.wait();
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ testFailed = true;
+ }
- // block until CheckerThread finishes checking
- System.out.println("WaitingThread about to block on ready");
- // signal checker thread that it is about acquire
- // object ready.
- thrsync.signal();
- synchronized(ready) {};
+ // block until CheckerThread finishes checking
+ System.out.println("WaitingThread about to block on ready");
+ // signal checker thread that it is about acquire
+ // object ready.
+ p.arriveAndAwaitAdvance(); // Phase 2 (waiting)
+ synchronized(ready) {
+ dummyCounter++;
+ };
}
synchronized(objC) {
try {
// signal checker thread, about to wait on objC
- thrsync.signal();
+ p.arriveAndAwaitAdvance(); // Phase 3 (waiting)
objC.wait();
} catch (InterruptedException e) {
e.printStackTrace();
@@ -190,21 +205,23 @@ public class Locks {
}
}
static class CheckerThread extends Thread {
- public CheckerThread() {
+ private final Phaser p;
+ public CheckerThread(Phaser p) {
super("CheckerThread");
+ this.p = p;
}
private void waitForState(Thread.State state) {
- thrsync.waitForSignal();
- while (waiter.getState() != state) {
- goSleep(10);
+ p.arriveAndAwaitAdvance();
+ while (!waiter.isInterrupted() && waiter.getState() != state) {
+ goSleep(10);
}
}
public void run() {
synchronized (ready) {
// wait until WaitingThread about to wait for objC
- waitForState(Thread.State.WAITING);
+ waitForState(Thread.State.WAITING); // Phase 1 (waiting)
checkBlockedObject(waiter, objC, null, Thread.State.WAITING);
synchronized (objC) {
@@ -213,13 +230,13 @@ public class Locks {
// wait for waiter thread to about to enter
// synchronized object ready.
- waitForState(Thread.State.BLOCKED);
+ waitForState(Thread.State.BLOCKED); // Phase 2 (waiting)
checkBlockedObject(waiter, ready, this, Thread.State.BLOCKED);
}
// wait for signal from waiting thread that it is about
// wait for objC.
- waitForState(Thread.State.WAITING);
+ waitForState(Thread.State.WAITING); // Phase 3 (waiting)
synchronized(objC) {
checkBlockedObject(waiter, objC, Thread.currentThread(), Thread.State.WAITING);
objC.notify();
@@ -235,24 +252,24 @@ public class Locks {
LockAThread t1;
LockBThread t2;
+ Phaser p = new Phaser(3);
synchronized(objC) {
- // The state could be anything. The expected state value
- // passed with this method is not verified.
- checkBlockedObject(mainThread, null, null, Thread.State.RUNNABLE);
+ // Make sure the main thread is not holding any lock
+ assertNoLock(mainThread);
// Test deadlock case
// t1 holds lockA and attempts to lock B
// t2 holds lockB and attempts to lock C
- t1 = new LockAThread();
+
+ t1 = new LockAThread(p);
t1.start();
- t2 = new LockBThread();
+ t2 = new LockBThread(p);
t2.start();
- t2.aboutToLockC();
-
- checkBlockedObject(t1, objB, t2, Thread.State.BLOCKED);
+ p.arriveAndAwaitAdvance(); // Phase 1 (blocking)
checkBlockedObject(t2, objC, mainThread, Thread.State.BLOCKED);
+ checkBlockedObject(t1, objB, t2, Thread.State.BLOCKED);
long[] expectedThreads = new long[3];
expectedThreads[0] = t1.getId(); // blocked on lockB
@@ -260,13 +277,14 @@ public class Locks {
expectedThreads[2] = mainThread.getId(); // owner of lockC
findThreadsBlockedOn(objB, expectedThreads);
}
- goSleep(100);
+ p.arriveAndAwaitAdvance(); // Phase 2 (blocking)
+ p = new Phaser(2);
// Test Object.wait() case
- waiter = new WaitingThread();
+ waiter = new WaitingThread(p);
waiter.start();
- checker = new CheckerThread();
+ checker = new CheckerThread(p);
checker.start();
try {
@@ -284,7 +302,7 @@ public class Locks {
}
private static ThreadInfo findOwnerInfo(ThreadInfo[] infos, String lock)
- throws Exception {
+ throws Exception {
ThreadInfo ownerInfo = null;
for (int i = 0; i < infos.length; i++) {
String blockedLock = infos[i].getLockName();
@@ -292,7 +310,7 @@ public class Locks {
long threadId = infos[i].getLockOwnerId();
if (threadId == -1) {
throw new RuntimeException("TEST FAILED: " +
- lock + " expected to have owner");
+ lock + " expected to have owner");
}
for (int j = 0; j < infos.length; j++) {
if (infos[j].getThreadId() == threadId) {
@@ -305,7 +323,7 @@ public class Locks {
return ownerInfo;
}
private static void findThreadsBlockedOn(Object o, long[] expectedThreads)
- throws Exception {
+ throws Exception {
String lock = getLockName(o);
// Check with ThreadInfo with no stack trace (i.e. no safepoint)
ThreadInfo[] infos = tm.getThreadInfo(tm.getAllThreadIds());
@@ -317,14 +335,14 @@ public class Locks {
}
private static void doCheck(ThreadInfo[] infos, String lock, long[] expectedThreads)
- throws Exception {
+ throws Exception {
ThreadInfo ownerInfo = null;
// Find the thread who is blocking on lock
for (int i = 0; i < infos.length; i++) {
String blockedLock = infos[i].getLockName();
if (lock.equals(blockedLock)) {
System.out.print(infos[i].getThreadName() +
- " blocked on " + blockedLock);
+ " blocked on " + blockedLock);
ownerInfo = infos[i];
}
}
@@ -336,7 +354,7 @@ public class Locks {
ownerInfo = findOwnerInfo(infos, lock);
threads[count++] = ownerInfo.getThreadId();
System.out.println(" Owner = " + ownerInfo.getThreadName() +
- " id = " + ownerInfo.getThreadId());
+ " id = " + ownerInfo.getThreadId());
lock = ownerInfo.getLockName();
System.out.print(ownerInfo.getThreadName() + " Id = " +
ownerInfo.getThreadId() +
@@ -346,13 +364,13 @@ public class Locks {
if (count != expectedThreads.length) {
throw new RuntimeException("TEST FAILED: " +
- "Expected chain of threads not matched; current count =" + count);
+ "Expected chain of threads not matched; current count =" + count);
}
for (int i = 0; i < count; i++) {
if (threads[i] != expectedThreads[i]) {
System.out.println("TEST FAILED: " +
- "Unexpected thread in the chain " + threads[i] +
- " expected to be " + expectedThreads[i]);
+ "Unexpected thread in the chain " + threads[i] +
+ " expected to be " + expectedThreads[i]);
}
}
}
diff --git a/jdk/test/java/lang/management/ThreadMXBean/ThreadExecutionSynchronizer.java b/jdk/test/java/lang/management/ThreadMXBean/ThreadExecutionSynchronizer.java
deleted file mode 100644
index 6cba7e73521..00000000000
--- a/jdk/test/java/lang/management/ThreadMXBean/ThreadExecutionSynchronizer.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Copyright (c) 2004, 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.
- */
-
-/*
- *
- * @summary This class is used to synchronize execution of two threads.
- * @author Swamy Venkataramanappa
- */
-
-import java.util.concurrent.Semaphore;
-
-public class ThreadExecutionSynchronizer {
-
- private volatile boolean waiting;
- private final Semaphore semaphore;
-
- public ThreadExecutionSynchronizer() {
- semaphore = new Semaphore(1);
- waiting = false;
- }
-
- // Synchronizes two threads execution points.
- // Basically any thread could get scheduled to run and
- // it is not possible to know which thread reaches expected
- // execution point. So whichever thread reaches a execution
- // point first wait for the second thread. When the second thread
- // reaches the expected execution point will wake up
- // the thread which is waiting here.
- void stopOrGo() {
- semaphore.acquireUninterruptibly(); // Thread can get blocked.
- if (!waiting) {
- waiting = true;
- // Wait for second thread to enter this method.
- while(!semaphore.hasQueuedThreads()) {
- try {
- Thread.sleep(20);
- } catch (InterruptedException xx) {}
- }
- semaphore.release();
- } else {
- waiting = false;
- semaphore.release();
- }
- }
-
- // Wrapper function just for code readability.
- void waitForSignal() {
- stopOrGo();
- goSleep(50);
- }
-
- void signal() {
- stopOrGo();
- goSleep(50);
- }
-
- private static void goSleep(long ms) {
- try {
- Thread.sleep(ms);
- } catch (InterruptedException e) {
- e.printStackTrace();
- System.out.println("Unexpected exception.");
- }
- }
-}
From 244ffdb7c24c6ab8cb9ace635af627e8542b853a Mon Sep 17 00:00:00 2001
From: Matherey Nunez
Date: Wed, 29 Jan 2014 14:33:07 -0800
Subject: [PATCH 114/181] 8027175: Existing regression tests in tl/langtools
and tl/jdk need to be updated for @bug keyword
Reviewed-by: jjg, ksrini
---
jdk/test/jdk/lambda/MethodReferenceTestCallerSensitive.java | 4 +++-
jdk/test/tools/launcher/VersionCheck.java | 4 ++--
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/jdk/test/jdk/lambda/MethodReferenceTestCallerSensitive.java b/jdk/test/jdk/lambda/MethodReferenceTestCallerSensitive.java
index 805a6a203cb..86c22a10627 100644
--- a/jdk/test/jdk/lambda/MethodReferenceTestCallerSensitive.java
+++ b/jdk/test/jdk/lambda/MethodReferenceTestCallerSensitive.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -28,6 +28,8 @@ import java.util.function.Function;
/**
+ * @test
+ * @bug 8020816
* @author Robert Field
*/
diff --git a/jdk/test/tools/launcher/VersionCheck.java b/jdk/test/tools/launcher/VersionCheck.java
index f43c210a9bf..a31ba57a4a4 100644
--- a/jdk/test/tools/launcher/VersionCheck.java
+++ b/jdk/test/tools/launcher/VersionCheck.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
/**
* @test
- * @bug 6545058 6611182
+ * @bug 6545058 6611182 8016209
* @summary validate and test -version, -fullversion, and internal, as well as
* sanity checks if a tool can be launched.
* @compile VersionCheck.java
From ba68b878a0b7c78153cd203803a10c0fe8c8b2ba Mon Sep 17 00:00:00 2001
From: Eric Wang
Date: Wed, 29 Jan 2014 22:18:46 -0800
Subject: [PATCH 115/181] 8031179: update RMI tests to declare othervm
explicitly
The /othervm declaration should be added to all the RMI tests and the RMI directories removed from the othervm.dirs property
Reviewed-by: smarks
---
jdk/test/TEST.ROOT | 2 +-
jdk/test/java/rmi/MarshalledObject/compare/Compare.java | 2 +-
jdk/test/java/rmi/MarshalledObject/compare/HashCode.java | 2 +-
jdk/test/java/rmi/Naming/DefaultRegistryPort.java | 2 +-
jdk/test/java/rmi/Naming/LookupIPv6.java | 9 ++++++---
jdk/test/java/rmi/Naming/LookupNameWithColon.java | 2 +-
.../Naming/legalRegistryNames/LegalRegistryNames.java | 2 +-
.../checkDefaultGroupName/CheckDefaultGroupName.java | 2 ++
.../UnicastRemoteObject/exportObject/GcDuringExport.java | 2 +-
jdk/test/sun/rmi/rmic/RMIGenerator/RmicDefault.java | 2 +-
10 files changed, 16 insertions(+), 11 deletions(-)
diff --git a/jdk/test/TEST.ROOT b/jdk/test/TEST.ROOT
index 0aba9d3bc72..e6cb16998ed 100644
--- a/jdk/test/TEST.ROOT
+++ b/jdk/test/TEST.ROOT
@@ -5,7 +5,7 @@
keys=2d dnd i18n
# Tests that must run in othervm mode
-othervm.dirs=java/awt java/beans java/rmi javax/accessibility javax/imageio javax/sound javax/print javax/management com/sun/awt sun/awt sun/java2d sun/pisces sun/rmi
+othervm.dirs=java/awt java/beans javax/accessibility javax/imageio javax/sound javax/print javax/management com/sun/awt sun/awt sun/java2d sun/pisces
# Tests that cannot run concurrently
exclusiveAccess.dirs=java/rmi/Naming java/util/Currency java/util/prefs sun/management/jmxremote sun/tools/jstatd sun/security/mscapi
diff --git a/jdk/test/java/rmi/MarshalledObject/compare/Compare.java b/jdk/test/java/rmi/MarshalledObject/compare/Compare.java
index 20322646920..94eff595092 100644
--- a/jdk/test/java/rmi/MarshalledObject/compare/Compare.java
+++ b/jdk/test/java/rmi/MarshalledObject/compare/Compare.java
@@ -29,7 +29,7 @@
* not involved in location should be compared.
* @author Ken Arnold
*
- * @run main Compare 11 annotatedRef
+ * @run main/othervm Compare 11 annotatedRef
*/
import java.rmi.MarshalledObject;
diff --git a/jdk/test/java/rmi/MarshalledObject/compare/HashCode.java b/jdk/test/java/rmi/MarshalledObject/compare/HashCode.java
index 768e418ae5b..86fc5ddfe23 100644
--- a/jdk/test/java/rmi/MarshalledObject/compare/HashCode.java
+++ b/jdk/test/java/rmi/MarshalledObject/compare/HashCode.java
@@ -27,7 +27,7 @@
* @summary MarshalledObject with null throws NullPointerException
* @author Ken Arnold
*
- * @run main HashCode 11 annotatedRef
+ * @run main/othervm HashCode 11 annotatedRef
*/
import java.rmi.MarshalledObject;
diff --git a/jdk/test/java/rmi/Naming/DefaultRegistryPort.java b/jdk/test/java/rmi/Naming/DefaultRegistryPort.java
index a4c49792536..be1cba70f15 100644
--- a/jdk/test/java/rmi/Naming/DefaultRegistryPort.java
+++ b/jdk/test/java/rmi/Naming/DefaultRegistryPort.java
@@ -28,7 +28,7 @@
* @author Dana Burns
* @library ../testlibrary
* @build TestLibrary
- * @run main DefaultRegistryPort
+ * @run main/othervm DefaultRegistryPort
*/
/*
diff --git a/jdk/test/java/rmi/Naming/LookupIPv6.java b/jdk/test/java/rmi/Naming/LookupIPv6.java
index da6c62cbc83..453ac166a3b 100644
--- a/jdk/test/java/rmi/Naming/LookupIPv6.java
+++ b/jdk/test/java/rmi/Naming/LookupIPv6.java
@@ -25,7 +25,8 @@
* @summary Ensure that java.rmi.Naming.lookup can handle URLs containing
* IPv6 addresses.
* @bug 4402708
- *
+ * @library ../testlibrary
+ * @build TestLibrary
* @run main/othervm -Djava.net.preferIPv6Addresses=true LookupIPv6
*/
@@ -62,17 +63,19 @@ public class LookupIPv6 {
* an Inet6Address since this test is run with
* -Djava.net.preferIPv6Addresses=true.
*/
+ int port = TestLibrary.getUnusedRandomPort();
InetAddress localAddr = InetAddress.getAllByName(null)[0];
if (localAddr instanceof Inet6Address) {
System.out.println("IPv6 detected");
Registry reg;
try {
- reg = LocateRegistry.createRegistry(Registry.REGISTRY_PORT);
+ reg = LocateRegistry.createRegistry(port);
} catch (Exception ex) {
reg = LocateRegistry.getRegistry();
}
reg.rebind("foo", reg);
- Naming.lookup("rmi://[" + localAddr.getHostAddress() + "]/foo");
+ Naming.lookup(String.format("rmi://[%s]:%d/foo",
+ localAddr.getHostAddress(), port));
}
}
}
diff --git a/jdk/test/java/rmi/Naming/LookupNameWithColon.java b/jdk/test/java/rmi/Naming/LookupNameWithColon.java
index e3865fd1239..4250b6b37c9 100644
--- a/jdk/test/java/rmi/Naming/LookupNameWithColon.java
+++ b/jdk/test/java/rmi/Naming/LookupNameWithColon.java
@@ -28,7 +28,7 @@
*
* @library ../testlibrary
* @build TestLibrary
- * @run main LookupNameWithColon
+ * @run main/othervm LookupNameWithColon
*/
import java.rmi.Naming;
diff --git a/jdk/test/java/rmi/Naming/legalRegistryNames/LegalRegistryNames.java b/jdk/test/java/rmi/Naming/legalRegistryNames/LegalRegistryNames.java
index 725d9ca6c7a..418c3726c2d 100644
--- a/jdk/test/java/rmi/Naming/legalRegistryNames/LegalRegistryNames.java
+++ b/jdk/test/java/rmi/Naming/legalRegistryNames/LegalRegistryNames.java
@@ -28,7 +28,7 @@
* @author Dana Burns
* @library ../../testlibrary
* @build TestLibrary Legal LegalRegistryNames_Stub
- * @run main LegalRegistryNames
+ * @run main/othervm LegalRegistryNames
*/
import java.net.InetAddress;
diff --git a/jdk/test/java/rmi/activation/ActivationGroupDesc/checkDefaultGroupName/CheckDefaultGroupName.java b/jdk/test/java/rmi/activation/ActivationGroupDesc/checkDefaultGroupName/CheckDefaultGroupName.java
index f37cbaeb79f..fac64b5691a 100644
--- a/jdk/test/java/rmi/activation/ActivationGroupDesc/checkDefaultGroupName/CheckDefaultGroupName.java
+++ b/jdk/test/java/rmi/activation/ActivationGroupDesc/checkDefaultGroupName/CheckDefaultGroupName.java
@@ -25,6 +25,8 @@
* @test
* @bug 4252236
* @summary ActivationGroupDesc should not do early binding of default classname
+ * This test doesn't need to run with othervm option as all it does is
+ * create an ActivationGroupDesc instance, which has no side effects
* @author Laird Dornin
*
* @library ../../../testlibrary
diff --git a/jdk/test/java/rmi/server/UnicastRemoteObject/exportObject/GcDuringExport.java b/jdk/test/java/rmi/server/UnicastRemoteObject/exportObject/GcDuringExport.java
index def2806964d..eeb96a14ace 100644
--- a/jdk/test/java/rmi/server/UnicastRemoteObject/exportObject/GcDuringExport.java
+++ b/jdk/test/java/rmi/server/UnicastRemoteObject/exportObject/GcDuringExport.java
@@ -30,7 +30,7 @@
* @bug 6597112
* @summary GC'ing objects whilst being exported to RMI should not cause exceptions
* @author Neil Richards ,
- * @run main GcDuringExport
+ * @run main/othervm GcDuringExport
*/
import java.rmi.Remote;
diff --git a/jdk/test/sun/rmi/rmic/RMIGenerator/RmicDefault.java b/jdk/test/sun/rmi/rmic/RMIGenerator/RmicDefault.java
index 5f4587ecdfb..ff203731664 100644
--- a/jdk/test/sun/rmi/rmic/RMIGenerator/RmicDefault.java
+++ b/jdk/test/sun/rmi/rmic/RMIGenerator/RmicDefault.java
@@ -28,7 +28,7 @@
* @library ../../../../java/rmi/testlibrary
*
* @build StreamPipe
- * @run main RmicDefault
+ * @run main/othervm RmicDefault
*/
/*
From 7e532727a088302a85acec1cca2813fd9323d136 Mon Sep 17 00:00:00 2001
From: Aleksei Efimov
Date: Thu, 30 Jan 2014 12:22:24 +0400
Subject: [PATCH 116/181] 8030822: (tz) Support tzdata2013i
Reviewed-by: coffeys, mfang, okutsu
---
jdk/make/data/tzdata/VERSION | 2 +-
jdk/make/data/tzdata/africa | 5 +-
jdk/make/data/tzdata/asia | 30 +-
jdk/make/data/tzdata/northamerica | 8 +-
.../sun/util/resources/TimeZoneNames.java | 4 +-
.../util/resources/de/TimeZoneNames_de.java | 4 +-
.../util/resources/es/TimeZoneNames_es.java | 4 +-
.../util/resources/fr/TimeZoneNames_fr.java | 4 +-
.../util/resources/it/TimeZoneNames_it.java | 4 +-
.../util/resources/ja/TimeZoneNames_ja.java | 4 +-
.../util/resources/ko/TimeZoneNames_ko.java | 4 +-
.../resources/pt/TimeZoneNames_pt_BR.java | 4 +-
.../util/resources/sv/TimeZoneNames_sv.java | 4 +-
.../resources/zh/TimeZoneNames_zh_CN.java | 4 +-
.../resources/zh/TimeZoneNames_zh_TW.java | 4 +-
jdk/test/sun/util/calendar/zi/tzdata/VERSION | 2 +-
jdk/test/sun/util/calendar/zi/tzdata/africa | 5 +-
jdk/test/sun/util/calendar/zi/tzdata/asia | 30 +-
.../sun/util/calendar/zi/tzdata/northamerica | 8 +-
.../TimeZoneNames/TimeZoneNames.properties | 651 ------
.../TimeZoneNames/TimeZoneNamesTest.java | 186 --
.../TimeZoneNames/TimeZoneNames_de.properties | 651 ------
.../TimeZoneNames_de_short.properties | 1743 -----------------
.../TimeZoneNames/TimeZoneNames_es.properties | 651 ------
.../TimeZoneNames_es_short.properties | 1743 -----------------
.../TimeZoneNames/TimeZoneNames_fr.properties | 651 ------
.../TimeZoneNames_fr_short.properties | 1743 -----------------
.../TimeZoneNames/TimeZoneNames_it.properties | 651 ------
.../TimeZoneNames_it_short.properties | 1743 -----------------
.../TimeZoneNames/TimeZoneNames_ja.properties | 651 ------
.../TimeZoneNames_ja_short.properties | 1743 -----------------
.../TimeZoneNames/TimeZoneNames_ko.properties | 651 ------
.../TimeZoneNames_ko_short.properties | 1743 -----------------
.../TimeZoneNames_pt_BR.properties | 651 ------
.../TimeZoneNames_pt_BR_short.properties | 1743 -----------------
.../TimeZoneNames_short.properties | 1743 -----------------
.../TimeZoneNames/TimeZoneNames_sv.properties | 651 ------
.../TimeZoneNames_sv_short.properties | 1743 -----------------
.../TimeZoneNames_zh_CN.properties | 651 ------
.../TimeZoneNames_zh_CN_short.properties | 1743 -----------------
.../TimeZoneNames_zh_TW.properties | 651 ------
.../TimeZoneNames_zh_TW_short.properties | 1743 -----------------
42 files changed, 84 insertions(+), 26570 deletions(-)
delete mode 100644 jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames.properties
delete mode 100644 jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNamesTest.java
delete mode 100644 jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_de.properties
delete mode 100644 jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_de_short.properties
delete mode 100644 jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_es.properties
delete mode 100644 jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_es_short.properties
delete mode 100644 jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_fr.properties
delete mode 100644 jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_fr_short.properties
delete mode 100644 jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_it.properties
delete mode 100644 jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_it_short.properties
delete mode 100644 jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_ja.properties
delete mode 100644 jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_ja_short.properties
delete mode 100644 jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_ko.properties
delete mode 100644 jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_ko_short.properties
delete mode 100644 jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_pt_BR.properties
delete mode 100644 jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_pt_BR_short.properties
delete mode 100644 jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_short.properties
delete mode 100644 jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_sv.properties
delete mode 100644 jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_sv_short.properties
delete mode 100644 jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_zh_CN.properties
delete mode 100644 jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_zh_CN_short.properties
delete mode 100644 jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_zh_TW.properties
delete mode 100644 jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_zh_TW_short.properties
diff --git a/jdk/make/data/tzdata/VERSION b/jdk/make/data/tzdata/VERSION
index 1d7698924aa..2f162e0638a 100644
--- a/jdk/make/data/tzdata/VERSION
+++ b/jdk/make/data/tzdata/VERSION
@@ -21,4 +21,4 @@
# or visit www.oracle.com if you need additional information or have any
# questions.
#
-tzdata2013h
+tzdata2013i
diff --git a/jdk/make/data/tzdata/africa b/jdk/make/data/tzdata/africa
index 0eed8b1a26a..82d14a4a14d 100644
--- a/jdk/make/data/tzdata/africa
+++ b/jdk/make/data/tzdata/africa
@@ -500,14 +500,13 @@ Rule Libya 1997 only - Apr 4 0:00 1:00 S
Rule Libya 1997 only - Oct 4 0:00 0 -
Rule Libya 2013 only - Mar lastFri 1:00 1:00 S
Rule Libya 2013 only - Oct lastFri 2:00 0 -
-
-# The 1996 and 1997 entries are from Shanks & Pottenger;
-# the IATA SSIM data contain some obvious errors.
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Africa/Tripoli 0:52:44 - LMT 1920
1:00 Libya CE%sT 1959
2:00 - EET 1982
1:00 Libya CE%sT 1990 May 4
+# The 1996 and 1997 entries are from Shanks & Pottenger;
+# the IATA SSIM data contain some obvious errors.
2:00 - EET 1996 Sep 30
1:00 Libya CE%sT 1997 Oct 4
2:00 - EET 2012 Nov 10 2:00
diff --git a/jdk/make/data/tzdata/asia b/jdk/make/data/tzdata/asia
index fd278e5c8a8..1a8f83d3a64 100644
--- a/jdk/make/data/tzdata/asia
+++ b/jdk/make/data/tzdata/asia
@@ -1403,12 +1403,22 @@ Zone Asia/Tokyo 9:18:59 - LMT 1887 Dec 31 15:00u
# switch back to standard time this winter, so the will stay on DST
# until about the same time next year (at least).
# http://www.petra.gov.jo/Public_News/Nws_NewsDetails.aspx?NewsID=88950
-#
-# From Paul Eggert (2013-09-21):
-# It's looking like this change will be permanent; see
-# Petra News Agency, Cancelling winter saved Jordan $7 million (2013-02-20)
-# .
-# So move Jordan to UTC+3 as of the abovementioned date.
+
+# From Steffen Thorsen (2013-12-11):
+# Jordan Times and other sources say that Jordan is going back to
+# UTC+2 on 2013-12-19 at midnight:
+# http://jordantimes.com/govt-decides-to-switch-back-to-wintertime
+# Official, in Arabic:
+# http://www.petra.gov.jo/public_news/Nws_NewsDetails.aspx?Menu_ID=&Site_Id=2&lang=1&NewsID=133230&CatID=14
+# ... Our background/permalink about it
+# http://www.timeanddate.com/news/time/jordan-reverses-dst-decision.html
+# ...
+# http://www.petra.gov.jo/Public_News/Nws_NewsDetails.aspx?lang=2&site_id=1&NewsID=133313&Type=P
+# ... says midnight for the coming one and 1:00 for the ones in the future
+# (and they will use DST again next year, using the normal schedule).
+
+# From Paul Eggert (2013-12-11):
+# As Steffen suggested, consider the past 21-month experiment to be DST.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Jordan 1973 only - Jun 6 0:00 1:00 S
@@ -1438,11 +1448,13 @@ Rule Jordan 2002 2012 - Mar lastThu 24:00 1:00 S
Rule Jordan 2003 only - Oct 24 0:00s 0 -
Rule Jordan 2004 only - Oct 15 0:00s 0 -
Rule Jordan 2005 only - Sep lastFri 0:00s 0 -
-Rule Jordan 2006 2012 - Oct lastFri 0:00s 0 -
+Rule Jordan 2006 2011 - Oct lastFri 0:00s 0 -
+Rule Jordan 2013 only - Dec 20 0:00 0 -
+Rule Jordan 2014 max - Mar lastThu 24:00 1:00 S
+Rule Jordan 2014 max - Oct lastFri 0:00s 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Amman 2:23:44 - LMT 1931
- 2:00 Jordan EE%sT 2012 Oct 26 0:00s
- 3:00 - AST
+ 2:00 Jordan EE%sT
# Kazakhstan
diff --git a/jdk/make/data/tzdata/northamerica b/jdk/make/data/tzdata/northamerica
index b8caf6d019b..9e551bb1c46 100644
--- a/jdk/make/data/tzdata/northamerica
+++ b/jdk/make/data/tzdata/northamerica
@@ -2688,6 +2688,11 @@ Zone America/Costa_Rica -5:36:13 - LMT 1890 # San Jose
# to DST--and one more hour on 1999-04-04--when the announcers will have
# returned to Baltimore, which switches on that date.)
+# From Steffen Thorsen (2013-11-11):
+# DST start in Cuba in 2004 ... does not follow the same rules as the
+# years before. The correct date should be Sunday 2004-03-28 00:00 ...
+# https://web.archive.org/web/20040402060750/http://www.granma.cu/espanol/2004/marzo/sab27/reloj.html
+
# From Evert van der Veer via Steffen Thorsen (2004-10-28):
# Cuba is not going back to standard time this year.
# From Paul Eggert (2006-03-22):
@@ -2877,7 +2882,8 @@ Rule Cuba 1996 only - Oct 6 0:00s 0 S
Rule Cuba 1997 only - Oct 12 0:00s 0 S
Rule Cuba 1998 1999 - Mar lastSun 0:00s 1:00 D
Rule Cuba 1998 2003 - Oct lastSun 0:00s 0 S
-Rule Cuba 2000 2004 - Apr Sun>=1 0:00s 1:00 D
+Rule Cuba 2000 2003 - Apr Sun>=1 0:00s 1:00 D
+Rule Cuba 2004 only - Mar lastSun 0:00s 1:00 D
Rule Cuba 2006 2010 - Oct lastSun 0:00s 0 S
Rule Cuba 2007 only - Mar Sun>=8 0:00s 1:00 D
Rule Cuba 2008 only - Mar Sun>=15 0:00s 1:00 D
diff --git a/jdk/src/share/classes/sun/util/resources/TimeZoneNames.java b/jdk/src/share/classes/sun/util/resources/TimeZoneNames.java
index f275a716b79..2aaa1e76dc4 100644
--- a/jdk/src/share/classes/sun/util/resources/TimeZoneNames.java
+++ b/jdk/src/share/classes/sun/util/resources/TimeZoneNames.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1996, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1996, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -578,7 +578,7 @@ public final class TimeZoneNames extends TimeZoneNamesBundle {
{"Asia/Almaty", new String[] {"Alma-Ata Time", "ALMT",
"Alma-Ata Summer Time", "ALMST",
"Alma-Ata Time", "ALMT"}},
- {"Asia/Amman", ARAST},
+ {"Asia/Amman", EET},
{"Asia/Anadyr", new String[] {"Anadyr Time", "ANAT",
"Anadyr Summer Time", "ANAST",
"Anadyr Time", "ANAT"}},
diff --git a/jdk/src/share/classes/sun/util/resources/de/TimeZoneNames_de.java b/jdk/src/share/classes/sun/util/resources/de/TimeZoneNames_de.java
index ef7dec8570f..4d25bce3586 100644
--- a/jdk/src/share/classes/sun/util/resources/de/TimeZoneNames_de.java
+++ b/jdk/src/share/classes/sun/util/resources/de/TimeZoneNames_de.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -578,7 +578,7 @@ public final class TimeZoneNames_de extends TimeZoneNamesBundle {
{"Asia/Almaty", new String[] {"Alma Ata Zeit", "ALMT",
"Alma-Ata Sommerzeit", "ALMST",
"Alma Ata Zeit", "ALMT"}},
- {"Asia/Amman", ARAST},
+ {"Asia/Amman", EET},
{"Asia/Anadyr", new String[] {"Anadyr Zeit", "ANAT",
"Anadyr Sommerzeit", "ANAST",
"Anadyr Zeit", "ANAT"}},
diff --git a/jdk/src/share/classes/sun/util/resources/es/TimeZoneNames_es.java b/jdk/src/share/classes/sun/util/resources/es/TimeZoneNames_es.java
index aa1a8903817..07d77325a47 100644
--- a/jdk/src/share/classes/sun/util/resources/es/TimeZoneNames_es.java
+++ b/jdk/src/share/classes/sun/util/resources/es/TimeZoneNames_es.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -578,7 +578,7 @@ public final class TimeZoneNames_es extends TimeZoneNamesBundle {
{"Asia/Almaty", new String[] {"Hora de Alma-Ata", "ALMT",
"Hora de verano de Alma-Ata", "ALMST",
"Hora de Alma-Ata", "ALMT"}},
- {"Asia/Amman", ARAST},
+ {"Asia/Amman", EET},
{"Asia/Anadyr", new String[] {"Hora de Anadyr", "ANAT",
"Hora de verano de Anadyr", "ANAST",
"Hora de Anadyr", "ANAT"}},
diff --git a/jdk/src/share/classes/sun/util/resources/fr/TimeZoneNames_fr.java b/jdk/src/share/classes/sun/util/resources/fr/TimeZoneNames_fr.java
index a28983b85db..d15b9056057 100644
--- a/jdk/src/share/classes/sun/util/resources/fr/TimeZoneNames_fr.java
+++ b/jdk/src/share/classes/sun/util/resources/fr/TimeZoneNames_fr.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -578,7 +578,7 @@ public final class TimeZoneNames_fr extends TimeZoneNamesBundle {
{"Asia/Almaty", new String[] {"Heure d'Alma-Ata", "ALMT",
"Heure d'\u00e9t\u00e9 d'Alma-Ata", "ALMST",
"Heure d'Alma-Ata", "ALMT"}},
- {"Asia/Amman", ARAST},
+ {"Asia/Amman", EET},
{"Asia/Anadyr", new String[] {"Heure d'Anadyr", "ANAT",
"Heure d'\u00e9t\u00e9 d'Anadyr", "ANAST",
"Heure d'Anadyr", "ANAT"}},
diff --git a/jdk/src/share/classes/sun/util/resources/it/TimeZoneNames_it.java b/jdk/src/share/classes/sun/util/resources/it/TimeZoneNames_it.java
index 4b2209d8e27..a07be9af4a6 100644
--- a/jdk/src/share/classes/sun/util/resources/it/TimeZoneNames_it.java
+++ b/jdk/src/share/classes/sun/util/resources/it/TimeZoneNames_it.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -578,7 +578,7 @@ public final class TimeZoneNames_it extends TimeZoneNamesBundle {
{"Asia/Almaty", new String[] {"Ora di Alma-Ata", "ALMT",
"Ora estiva di Alma-Ata", "ALMST",
"Ora di Alma-Ata", "ALMT"}},
- {"Asia/Amman", ARAST},
+ {"Asia/Amman", EET},
{"Asia/Anadyr", new String[] {"Ora di Anadyr", "ANAT",
"Ora estiva di Anadyr", "ANAST",
"Ora di Anadyr", "ANAT"}},
diff --git a/jdk/src/share/classes/sun/util/resources/ja/TimeZoneNames_ja.java b/jdk/src/share/classes/sun/util/resources/ja/TimeZoneNames_ja.java
index 4b655c0b0d8..5a0f5e7012a 100644
--- a/jdk/src/share/classes/sun/util/resources/ja/TimeZoneNames_ja.java
+++ b/jdk/src/share/classes/sun/util/resources/ja/TimeZoneNames_ja.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -578,7 +578,7 @@ public final class TimeZoneNames_ja extends TimeZoneNamesBundle {
{"Asia/Almaty", new String[] {"\u30a2\u30eb\u30de\u30a2\u30bf\u6642\u9593", "ALMT",
"\u30a2\u30eb\u30de\u30a2\u30bf\u590f\u6642\u9593", "ALMST",
"\u30A2\u30EB\u30DE\u30A2\u30BF\u6642\u9593", "ALMT"}},
- {"Asia/Amman", ARAST},
+ {"Asia/Amman", EET},
{"Asia/Anadyr", new String[] {"\u30a2\u30ca\u30c9\u30a5\u30a4\u30ea\u6642\u9593", "ANAT",
"\u30a2\u30ca\u30c9\u30a5\u30a4\u30ea\u590f\u6642\u9593", "ANAST",
"\u30A2\u30CA\u30C7\u30A3\u30EA\u6642\u9593", "ANAT"}},
diff --git a/jdk/src/share/classes/sun/util/resources/ko/TimeZoneNames_ko.java b/jdk/src/share/classes/sun/util/resources/ko/TimeZoneNames_ko.java
index b32bf1334ca..4d9f395fd55 100644
--- a/jdk/src/share/classes/sun/util/resources/ko/TimeZoneNames_ko.java
+++ b/jdk/src/share/classes/sun/util/resources/ko/TimeZoneNames_ko.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -578,7 +578,7 @@ public final class TimeZoneNames_ko extends TimeZoneNamesBundle {
{"Asia/Almaty", new String[] {"\uc54c\ub9c8\uc544\ud0c0 \uc2dc\uac04", "ALMT",
"\uc54c\ub9c8\uc544\ud0c0 \uc77c\uad11\uc808\uc57d\uc2dc\uac04", "ALMST",
"\uC54C\uB9C8\uC544\uD0C0 \uD45C\uC900\uC2DC", "ALMT"}},
- {"Asia/Amman", ARAST},
+ {"Asia/Amman", EET},
{"Asia/Anadyr", new String[] {"\uc544\ub098\ub514\ub974 \uc2dc\uac04", "ANAT",
"\uc544\ub098\ub514\ub974 \uc77c\uad11\uc808\uc57d\uc2dc\uac04", "ANAST",
"\uC544\uB098\uB514\uB9AC \uD45C\uC900\uC2DC", "ANAT"}},
diff --git a/jdk/src/share/classes/sun/util/resources/pt/TimeZoneNames_pt_BR.java b/jdk/src/share/classes/sun/util/resources/pt/TimeZoneNames_pt_BR.java
index 265fba0b813..07b13ae48ec 100644
--- a/jdk/src/share/classes/sun/util/resources/pt/TimeZoneNames_pt_BR.java
+++ b/jdk/src/share/classes/sun/util/resources/pt/TimeZoneNames_pt_BR.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -578,7 +578,7 @@ public final class TimeZoneNames_pt_BR extends TimeZoneNamesBundle {
{"Asia/Almaty", new String[] {"Fuso hor\u00e1rio de Alma-Ata", "ALMT",
"Fuso hor\u00e1rio de ver\u00e3o de Alma-Ata", "ALMST",
"Hor\u00E1rio de Alma-Ata", "ALMT"}},
- {"Asia/Amman", ARAST},
+ {"Asia/Amman", EET},
{"Asia/Anadyr", new String[] {"Fuso hor\u00e1rio de Anadyr", "ANAT",
"Fuso hor\u00e1rio de ver\u00e3o de Anadyr", "ANAST",
"Hor\u00E1rio de Anadyr", "ANAT"}},
diff --git a/jdk/src/share/classes/sun/util/resources/sv/TimeZoneNames_sv.java b/jdk/src/share/classes/sun/util/resources/sv/TimeZoneNames_sv.java
index c0ec6e9e1c7..5dfb716c627 100644
--- a/jdk/src/share/classes/sun/util/resources/sv/TimeZoneNames_sv.java
+++ b/jdk/src/share/classes/sun/util/resources/sv/TimeZoneNames_sv.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -578,7 +578,7 @@ public final class TimeZoneNames_sv extends TimeZoneNamesBundle {
{"Asia/Almaty", new String[] {"Alma-Ata, normaltid", "ALMT",
"Alma-Ata, sommartid", "ALMST",
"Alma-Ata-tid", "ALMT"}},
- {"Asia/Amman", ARAST},
+ {"Asia/Amman", EET},
{"Asia/Anadyr", new String[] {"Anadyr, normaltid", "ANAT",
"Anadyr, sommartid", "ANAST",
"Anadyr-tid", "ANAT"}},
diff --git a/jdk/src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_CN.java b/jdk/src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_CN.java
index 7f79e9612bd..62a946ba437 100644
--- a/jdk/src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_CN.java
+++ b/jdk/src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_CN.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -578,7 +578,7 @@ public final class TimeZoneNames_zh_CN extends TimeZoneNamesBundle {
{"Asia/Almaty", new String[] {"Alma-Ata \u65f6\u95f4", "ALMT",
"Alma-Ata \u590f\u4ee4\u65f6", "ALMST",
"Alma-Ata \u65F6\u95F4", "ALMT"}},
- {"Asia/Amman", ARAST},
+ {"Asia/Amman", EET},
{"Asia/Anadyr", new String[] {"\u963f\u90a3\u5e95\u6cb3\u65f6\u95f4", "ANAT",
"\u963f\u90a3\u5e95\u6cb3\u590f\u4ee4\u65f6", "ANAST",
"\u963F\u90A3\u5E95\u6CB3\u65F6\u95F4", "ANAT"}},
diff --git a/jdk/src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_TW.java b/jdk/src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_TW.java
index 8cccc2f01ba..f91da7afb3d 100644
--- a/jdk/src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_TW.java
+++ b/jdk/src/share/classes/sun/util/resources/zh/TimeZoneNames_zh_TW.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -578,7 +578,7 @@ public final class TimeZoneNames_zh_TW extends TimeZoneNamesBundle {
{"Asia/Almaty", new String[] {"Alma-Ata \u6642\u9593", "ALMT",
"Alma-Ata \u590f\u4ee4\u6642\u9593", "ALMST",
"\u963F\u62C9\u6728\u5716\u6642\u9593", "ALMT"}},
- {"Asia/Amman", ARAST},
+ {"Asia/Amman", EET},
{"Asia/Anadyr", new String[] {"\u963f\u90a3\u5e95\u6cb3\u6642\u9593", "ANAT",
"\u963f\u90a3\u5e95\u6cb3\u590f\u4ee4\u6642\u9593", "ANAST",
"\u963F\u90A3\u5E95\u6CB3\u6642\u9593", "ANAT"}},
diff --git a/jdk/test/sun/util/calendar/zi/tzdata/VERSION b/jdk/test/sun/util/calendar/zi/tzdata/VERSION
index 1d7698924aa..2f162e0638a 100644
--- a/jdk/test/sun/util/calendar/zi/tzdata/VERSION
+++ b/jdk/test/sun/util/calendar/zi/tzdata/VERSION
@@ -21,4 +21,4 @@
# or visit www.oracle.com if you need additional information or have any
# questions.
#
-tzdata2013h
+tzdata2013i
diff --git a/jdk/test/sun/util/calendar/zi/tzdata/africa b/jdk/test/sun/util/calendar/zi/tzdata/africa
index 0eed8b1a26a..82d14a4a14d 100644
--- a/jdk/test/sun/util/calendar/zi/tzdata/africa
+++ b/jdk/test/sun/util/calendar/zi/tzdata/africa
@@ -500,14 +500,13 @@ Rule Libya 1997 only - Apr 4 0:00 1:00 S
Rule Libya 1997 only - Oct 4 0:00 0 -
Rule Libya 2013 only - Mar lastFri 1:00 1:00 S
Rule Libya 2013 only - Oct lastFri 2:00 0 -
-
-# The 1996 and 1997 entries are from Shanks & Pottenger;
-# the IATA SSIM data contain some obvious errors.
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Africa/Tripoli 0:52:44 - LMT 1920
1:00 Libya CE%sT 1959
2:00 - EET 1982
1:00 Libya CE%sT 1990 May 4
+# The 1996 and 1997 entries are from Shanks & Pottenger;
+# the IATA SSIM data contain some obvious errors.
2:00 - EET 1996 Sep 30
1:00 Libya CE%sT 1997 Oct 4
2:00 - EET 2012 Nov 10 2:00
diff --git a/jdk/test/sun/util/calendar/zi/tzdata/asia b/jdk/test/sun/util/calendar/zi/tzdata/asia
index fd278e5c8a8..1a8f83d3a64 100644
--- a/jdk/test/sun/util/calendar/zi/tzdata/asia
+++ b/jdk/test/sun/util/calendar/zi/tzdata/asia
@@ -1403,12 +1403,22 @@ Zone Asia/Tokyo 9:18:59 - LMT 1887 Dec 31 15:00u
# switch back to standard time this winter, so the will stay on DST
# until about the same time next year (at least).
# http://www.petra.gov.jo/Public_News/Nws_NewsDetails.aspx?NewsID=88950
-#
-# From Paul Eggert (2013-09-21):
-# It's looking like this change will be permanent; see
-# Petra News Agency, Cancelling winter saved Jordan $7 million (2013-02-20)
-# .
-# So move Jordan to UTC+3 as of the abovementioned date.
+
+# From Steffen Thorsen (2013-12-11):
+# Jordan Times and other sources say that Jordan is going back to
+# UTC+2 on 2013-12-19 at midnight:
+# http://jordantimes.com/govt-decides-to-switch-back-to-wintertime
+# Official, in Arabic:
+# http://www.petra.gov.jo/public_news/Nws_NewsDetails.aspx?Menu_ID=&Site_Id=2&lang=1&NewsID=133230&CatID=14
+# ... Our background/permalink about it
+# http://www.timeanddate.com/news/time/jordan-reverses-dst-decision.html
+# ...
+# http://www.petra.gov.jo/Public_News/Nws_NewsDetails.aspx?lang=2&site_id=1&NewsID=133313&Type=P
+# ... says midnight for the coming one and 1:00 for the ones in the future
+# (and they will use DST again next year, using the normal schedule).
+
+# From Paul Eggert (2013-12-11):
+# As Steffen suggested, consider the past 21-month experiment to be DST.
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S
Rule Jordan 1973 only - Jun 6 0:00 1:00 S
@@ -1438,11 +1448,13 @@ Rule Jordan 2002 2012 - Mar lastThu 24:00 1:00 S
Rule Jordan 2003 only - Oct 24 0:00s 0 -
Rule Jordan 2004 only - Oct 15 0:00s 0 -
Rule Jordan 2005 only - Sep lastFri 0:00s 0 -
-Rule Jordan 2006 2012 - Oct lastFri 0:00s 0 -
+Rule Jordan 2006 2011 - Oct lastFri 0:00s 0 -
+Rule Jordan 2013 only - Dec 20 0:00 0 -
+Rule Jordan 2014 max - Mar lastThu 24:00 1:00 S
+Rule Jordan 2014 max - Oct lastFri 0:00s 0 -
# Zone NAME GMTOFF RULES FORMAT [UNTIL]
Zone Asia/Amman 2:23:44 - LMT 1931
- 2:00 Jordan EE%sT 2012 Oct 26 0:00s
- 3:00 - AST
+ 2:00 Jordan EE%sT
# Kazakhstan
diff --git a/jdk/test/sun/util/calendar/zi/tzdata/northamerica b/jdk/test/sun/util/calendar/zi/tzdata/northamerica
index b8caf6d019b..9e551bb1c46 100644
--- a/jdk/test/sun/util/calendar/zi/tzdata/northamerica
+++ b/jdk/test/sun/util/calendar/zi/tzdata/northamerica
@@ -2688,6 +2688,11 @@ Zone America/Costa_Rica -5:36:13 - LMT 1890 # San Jose
# to DST--and one more hour on 1999-04-04--when the announcers will have
# returned to Baltimore, which switches on that date.)
+# From Steffen Thorsen (2013-11-11):
+# DST start in Cuba in 2004 ... does not follow the same rules as the
+# years before. The correct date should be Sunday 2004-03-28 00:00 ...
+# https://web.archive.org/web/20040402060750/http://www.granma.cu/espanol/2004/marzo/sab27/reloj.html
+
# From Evert van der Veer via Steffen Thorsen (2004-10-28):
# Cuba is not going back to standard time this year.
# From Paul Eggert (2006-03-22):
@@ -2877,7 +2882,8 @@ Rule Cuba 1996 only - Oct 6 0:00s 0 S
Rule Cuba 1997 only - Oct 12 0:00s 0 S
Rule Cuba 1998 1999 - Mar lastSun 0:00s 1:00 D
Rule Cuba 1998 2003 - Oct lastSun 0:00s 0 S
-Rule Cuba 2000 2004 - Apr Sun>=1 0:00s 1:00 D
+Rule Cuba 2000 2003 - Apr Sun>=1 0:00s 1:00 D
+Rule Cuba 2004 only - Mar lastSun 0:00s 1:00 D
Rule Cuba 2006 2010 - Oct lastSun 0:00s 0 S
Rule Cuba 2007 only - Mar Sun>=8 0:00s 1:00 D
Rule Cuba 2008 only - Mar Sun>=15 0:00s 1:00 D
diff --git a/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames.properties b/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames.properties
deleted file mode 100644
index 594231f2ef3..00000000000
--- a/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames.properties
+++ /dev/null
@@ -1,651 +0,0 @@
-ACT.daylight.long=Central Summer Time (Northern Territory)
-ACT.generic.long=Central Time (Northern Territory)
-ACT.standard.long=Central Standard Time (Northern Territory)
-AET.daylight.long=Eastern Summer Time (New South Wales)
-AET.generic.long=Eastern Time (New South Wales)
-AET.standard.long=Eastern Standard Time (New South Wales)
-AGT.generic.long=Argentine Time
-ART.generic.long=Eastern European Time
-AST.generic.long=Alaska Time
-Africa/Abidjan.generic.long=Greenwich Mean Time
-Africa/Accra.generic.long=Ghana Mean Time
-Africa/Addis_Ababa.generic.long=Eastern Africa Time
-Africa/Algiers.generic.long=Central European Time
-Africa/Asmara.generic.long=Eastern Africa Time
-Africa/Asmera.generic.long=Eastern Africa Time
-Africa/Bamako.generic.long=Greenwich Mean Time
-Africa/Bangui.generic.long=Western African Time
-Africa/Banjul.generic.long=Greenwich Mean Time
-Africa/Bissau.generic.long=Greenwich Mean Time
-Africa/Blantyre.generic.long=Central Africa Time
-Africa/Brazzaville.generic.long=Western African Time
-Africa/Bujumbura.generic.long=Central Africa Time
-Africa/Cairo.generic.long=Eastern European Time
-Africa/Casablanca.generic.long=Western European Time
-Africa/Ceuta.generic.long=Central European Time
-Africa/Conakry.generic.long=Greenwich Mean Time
-Africa/Dakar.generic.long=Greenwich Mean Time
-Africa/Dar_es_Salaam.generic.long=Eastern Africa Time
-Africa/Djibouti.generic.long=Eastern Africa Time
-Africa/Douala.generic.long=Western African Time
-Africa/El_Aaiun.generic.long=Western European Time
-Africa/Freetown.generic.long=Sierra Leone Time
-Africa/Gaborone.generic.long=Central Africa Time
-Africa/Harare.generic.long=Central Africa Time
-Africa/Johannesburg.generic.long=South Africa Time
-Africa/Juba.generic.long=Eastern Africa Time
-Africa/Kampala.generic.long=Eastern Africa Time
-Africa/Khartoum.generic.long=Eastern Africa Time
-Africa/Kigali.generic.long=Central Africa Time
-Africa/Kinshasa.generic.long=Western African Time
-Africa/Lagos.generic.long=Western African Time
-Africa/Libreville.generic.long=Western African Time
-Africa/Lome.generic.long=Greenwich Mean Time
-Africa/Luanda.generic.long=Western African Time
-Africa/Lubumbashi.generic.long=Central Africa Time
-Africa/Lusaka.generic.long=Central Africa Time
-Africa/Malabo.generic.long=Western African Time
-Africa/Maputo.generic.long=Central Africa Time
-Africa/Maseru.generic.long=South Africa Time
-Africa/Mbabane.generic.long=South Africa Time
-Africa/Mogadishu.generic.long=Eastern Africa Time
-Africa/Monrovia.generic.long=Greenwich Mean Time
-Africa/Nairobi.generic.long=Eastern Africa Time
-Africa/Ndjamena.generic.long=Western African Time
-Africa/Niamey.generic.long=Western African Time
-Africa/Nouakchott.generic.long=Greenwich Mean Time
-Africa/Ouagadougou.generic.long=Greenwich Mean Time
-Africa/Porto-Novo.generic.long=Western African Time
-Africa/Sao_Tome.generic.long=Greenwich Mean Time
-Africa/Timbuktu.generic.long=Greenwich Mean Time
-Africa/Tripoli.generic.long=Eastern European Time
-Africa/Tunis.generic.long=Central European Time
-Africa/Windhoek.generic.long=Western African Time
-America/Adak.generic.long=Hawaii-Aleutian Time
-America/Anchorage.generic.long=Alaska Time
-America/Anguilla.generic.long=Atlantic Time
-America/Antigua.generic.long=Atlantic Time
-America/Araguaina.generic.long=Brasilia Time
-America/Argentina/Buenos_Aires.generic.long=Argentine Time
-America/Argentina/Catamarca.generic.long=Argentine Time
-America/Argentina/ComodRivadavia.generic.long=Argentine Time
-America/Argentina/Cordoba.generic.long=Argentine Time
-America/Argentina/Jujuy.generic.long=Argentine Time
-America/Argentina/La_Rioja.generic.long=Argentine Time
-America/Argentina/Mendoza.generic.long=Argentine Time
-America/Argentina/Rio_Gallegos.generic.long=Argentine Time
-America/Argentina/Salta.generic.long=Argentine Time
-America/Argentina/San_Juan.generic.long=Argentine Time
-America/Argentina/San_Luis.generic.long=Argentine Time
-America/Argentina/Tucuman.generic.long=Argentine Time
-America/Argentina/Ushuaia.generic.long=Argentine Time
-America/Aruba.generic.long=Atlantic Time
-America/Asuncion.generic.long=Paraguay Time
-America/Atikokan.generic.long=Eastern Time
-America/Atka.generic.long=Hawaii-Aleutian Time
-America/Bahia.generic.long=Brasilia Time
-America/Bahia_Banderas.generic.long=Central Time
-America/Barbados.generic.long=Atlantic Time
-America/Belem.generic.long=Brasilia Time
-America/Belize.generic.long=Central Time
-America/Blanc-Sablon.generic.long=Atlantic Time
-America/Boa_Vista.generic.long=Amazon Time
-America/Bogota.generic.long=Colombia Time
-America/Boise.generic.long=Mountain Time
-America/Buenos_Aires.generic.long=Argentine Time
-America/Cambridge_Bay.generic.long=Mountain Time
-America/Campo_Grande.generic.long=Amazon Time
-America/Cancun.generic.long=Central Time
-America/Caracas.generic.long=Venezuela Time
-America/Catamarca.generic.long=Argentine Time
-America/Cayenne.generic.long=French Guiana Time
-America/Cayman.generic.long=Eastern Time
-America/Chicago.generic.long=Central Time
-America/Chihuahua.generic.long=Mountain Time
-America/Coral_Harbour.generic.long=Eastern Time
-America/Cordoba.generic.long=Argentine Time
-America/Costa_Rica.generic.long=Central Time
-America/Creston.generic.long=Mountain Time
-America/Cuiaba.generic.long=Amazon Time
-America/Curacao.generic.long=Atlantic Time
-America/Danmarkshavn.generic.long=Greenwich Mean Time
-America/Dawson.generic.long=Pacific Time
-America/Dawson_Creek.generic.long=Mountain Time
-America/Denver.generic.long=Mountain Time
-America/Detroit.generic.long=Eastern Time
-America/Dominica.generic.long=Atlantic Time
-America/Edmonton.generic.long=Mountain Time
-America/Eirunepe.generic.long=Acre Time
-America/El_Salvador.generic.long=Central Time
-America/Ensenada.generic.long=Pacific Time
-America/Fort_Wayne.generic.long=Eastern Time
-America/Fortaleza.generic.long=Brasilia Time
-America/Glace_Bay.generic.long=Atlantic Time
-America/Godthab.generic.long=Western Greenland Time
-America/Goose_Bay.generic.long=Atlantic Time
-America/Grand_Turk.generic.long=Eastern Time
-America/Grenada.generic.long=Atlantic Time
-America/Guadeloupe.generic.long=Atlantic Time
-America/Guatemala.generic.long=Central Time
-America/Guayaquil.generic.long=Ecuador Time
-America/Guyana.generic.long=Guyana Time
-America/Halifax.generic.long=Atlantic Time
-America/Havana.generic.long=Cuba Time
-America/Hermosillo.generic.long=Mountain Time
-America/Indiana/Indianapolis.generic.long=Eastern Time
-America/Indiana/Knox.generic.long=Central Time
-America/Indiana/Marengo.generic.long=Eastern Time
-America/Indiana/Petersburg.generic.long=Eastern Time
-America/Indiana/Tell_City.generic.long=Central Time
-America/Indiana/Vevay.generic.long=Eastern Time
-America/Indiana/Vincennes.generic.long=Eastern Time
-America/Indiana/Winamac.generic.long=Eastern Time
-America/Indianapolis.generic.long=Eastern Time
-America/Inuvik.generic.long=Mountain Time
-America/Iqaluit.generic.long=Eastern Time
-America/Jamaica.generic.long=Eastern Time
-America/Jujuy.generic.long=Argentine Time
-America/Juneau.generic.long=Alaska Time
-America/Kentucky/Louisville.generic.long=Eastern Time
-America/Kentucky/Monticello.generic.long=Eastern Time
-America/Knox_IN.generic.long=Central Time
-America/Kralendijk.generic.long=Atlantic Time
-America/La_Paz.generic.long=Bolivia Time
-America/Lima.generic.long=Peru Time
-America/Los_Angeles.generic.long=Pacific Time
-America/Louisville.generic.long=Eastern Time
-America/Lower_Princes.generic.long=Atlantic Time
-America/Maceio.generic.long=Brasilia Time
-America/Managua.generic.long=Central Time
-America/Manaus.generic.long=Amazon Time
-America/Marigot.generic.long=Atlantic Time
-America/Martinique.generic.long=Atlantic Time
-America/Matamoros.generic.long=Central Time
-America/Mazatlan.generic.long=Mountain Time
-America/Mendoza.generic.long=Argentine Time
-America/Menominee.generic.long=Central Time
-America/Merida.generic.long=Central Time
-America/Metlakatla.daylight.long=Metlakatla Daylight Time
-America/Metlakatla.generic.long=Metlakatla Time
-America/Metlakatla.standard.long=Metlakatla Standard Time
-America/Mexico_City.generic.long=Central Time
-America/Miquelon.generic.long=Pierre & Miquelon Time
-America/Moncton.generic.long=Atlantic Time
-America/Monterrey.generic.long=Central Time
-America/Montevideo.generic.long=Uruguay Time
-America/Montreal.generic.long=Eastern Time
-America/Montserrat.generic.long=Atlantic Time
-America/Nassau.generic.long=Eastern Time
-America/New_York.generic.long=Eastern Time
-America/Nipigon.generic.long=Eastern Time
-America/Nome.generic.long=Alaska Time
-America/Noronha.generic.long=Fernando de Noronha Time
-America/North_Dakota/Beulah.generic.long=Central Time
-America/North_Dakota/Center.generic.long=Central Time
-America/North_Dakota/New_Salem.generic.long=Central Time
-America/Ojinaga.generic.long=Mountain Time
-America/Panama.generic.long=Eastern Time
-America/Pangnirtung.generic.long=Eastern Time
-America/Paramaribo.generic.long=Suriname Time
-America/Phoenix.generic.long=Mountain Time
-America/Port-au-Prince.generic.long=Eastern Time
-America/Port_of_Spain.generic.long=Atlantic Time
-America/Porto_Acre.generic.long=Acre Time
-America/Porto_Velho.generic.long=Amazon Time
-America/Puerto_Rico.generic.long=Atlantic Time
-America/Rainy_River.generic.long=Central Time
-America/Rankin_Inlet.generic.long=Central Time
-America/Recife.generic.long=Brasilia Time
-America/Regina.generic.long=Central Time
-America/Resolute.generic.long=Central Time
-America/Rio_Branco.generic.long=Acre Time
-America/Rosario.generic.long=Argentine Time
-America/Santa_Isabel.generic.long=Pacific Time
-America/Santarem.generic.long=Brasilia Time
-America/Santiago.generic.long=Chile Time
-America/Santo_Domingo.generic.long=Atlantic Time
-America/Sao_Paulo.generic.long=Brasilia Time
-America/Scoresbysund.generic.long=Eastern Greenland Time
-America/Shiprock.generic.long=Mountain Time
-America/Sitka.generic.long=Alaska Time
-America/St_Barthelemy.generic.long=Atlantic Time
-America/St_Johns.generic.long=Newfoundland Time
-America/St_Kitts.generic.long=Atlantic Time
-America/St_Lucia.generic.long=Atlantic Time
-America/St_Thomas.generic.long=Atlantic Time
-America/St_Vincent.generic.long=Atlantic Time
-America/Swift_Current.generic.long=Central Time
-America/Tegucigalpa.generic.long=Central Time
-America/Thule.generic.long=Atlantic Time
-America/Thunder_Bay.generic.long=Eastern Time
-America/Tijuana.generic.long=Pacific Time
-America/Toronto.generic.long=Eastern Time
-America/Tortola.generic.long=Atlantic Time
-America/Vancouver.generic.long=Pacific Time
-America/Virgin.generic.long=Atlantic Time
-America/Whitehorse.generic.long=Pacific Time
-America/Winnipeg.generic.long=Central Time
-America/Yakutat.generic.long=Alaska Time
-America/Yellowknife.generic.long=Mountain Time
-Antarctica/Casey.daylight.long=Western Summer Time (Australia)
-Antarctica/Casey.generic.long=Western Time (Australia)
-Antarctica/Casey.standard.long=Western Standard Time (Australia)
-Antarctica/Davis.generic.long=Davis Time
-Antarctica/DumontDUrville.generic.long=Dumont-d'Urville Time
-Antarctica/Macquarie.daylight.long=Macquarie Island Summer Time
-Antarctica/Macquarie.generic.long=Macquarie Island Time
-Antarctica/Macquarie.standard.long=Macquarie Island Time
-Antarctica/Mawson.generic.long=Mawson Time
-Antarctica/McMurdo.generic.long=New Zealand Time
-Antarctica/Palmer.generic.long=Chile Time
-Antarctica/Rothera.generic.long=Rothera Time
-Antarctica/South_Pole.generic.long=New Zealand Time
-Antarctica/Syowa.generic.long=Syowa Time
-Antarctica/Vostok.generic.long=Vostok Time
-Arctic/Longyearbyen.generic.long=Central European Time
-Asia/Aden.generic.long=Arabia Time
-Asia/Almaty.generic.long=Alma-Ata Time
-Asia/Amman.generic.long=Arabia Time
-Asia/Anadyr.generic.long=Anadyr Time
-Asia/Aqtau.generic.long=Aqtau Time
-Asia/Aqtobe.generic.long=Aqtobe Time
-Asia/Ashgabat.generic.long=Turkmenistan Time
-Asia/Ashkhabad.generic.long=Turkmenistan Time
-Asia/Baghdad.generic.long=Arabia Time
-Asia/Bahrain.generic.long=Arabia Time
-Asia/Baku.generic.long=Azerbaijan Time
-Asia/Bangkok.generic.long=Indochina Time
-Asia/Beirut.generic.long=Eastern European Time
-Asia/Bishkek.generic.long=Kirgizstan Time
-Asia/Brunei.generic.long=Brunei Time
-Asia/Calcutta.generic.long=India Time
-Asia/Choibalsan.generic.long=Choibalsan Time
-Asia/Chongqing.generic.long=China Time
-Asia/Chungking.generic.long=China Time
-Asia/Colombo.generic.long=India Time
-Asia/Dacca.generic.long=Bangladesh Time
-Asia/Damascus.generic.long=Eastern European Time
-Asia/Dhaka.generic.long=Bangladesh Time
-Asia/Dili.generic.long=Timor-Leste Time
-Asia/Dubai.generic.long=Gulf Time
-Asia/Dushanbe.generic.long=Tajikistan Time
-Asia/Gaza.generic.long=Eastern European Time
-Asia/Harbin.generic.long=China Time
-Asia/Hebron.generic.long=Eastern European Time
-Asia/Ho_Chi_Minh.generic.long=Indochina Time
-Asia/Hong_Kong.generic.long=Hong Kong Time
-Asia/Hovd.generic.long=Hovd Time
-Asia/Irkutsk.generic.long=Irkutsk Time
-Asia/Istanbul.generic.long=Eastern European Time
-Asia/Jakarta.generic.long=West Indonesia Time
-Asia/Jayapura.generic.long=East Indonesia Time
-Asia/Jerusalem.generic.long=Israel Time
-Asia/Kabul.generic.long=Afghanistan Time
-Asia/Kamchatka.generic.long=Petropavlovsk-Kamchatski Time
-Asia/Karachi.generic.long=Pakistan Time
-Asia/Kashgar.generic.long=China Time
-Asia/Kathmandu.generic.long=Nepal Time
-Asia/Katmandu.generic.long=Nepal Time
-Asia/Khandyga.daylight.long=Khandyga Summer Time
-Asia/Khandyga.generic.long=Khandyga Time
-Asia/Khandyga.standard.long=Khandyga Time
-Asia/Kolkata.generic.long=India Time
-Asia/Krasnoyarsk.generic.long=Krasnoyarsk Time
-Asia/Kuala_Lumpur.generic.long=Malaysia Time
-Asia/Kuching.generic.long=Malaysia Time
-Asia/Kuwait.generic.long=Arabia Time
-Asia/Macao.generic.long=China Time
-Asia/Macau.generic.long=China Time
-Asia/Magadan.generic.long=Magadan Time
-Asia/Makassar.generic.long=Central Indonesia Time
-Asia/Manila.generic.long=Philippines Time
-Asia/Muscat.generic.long=Gulf Time
-Asia/Nicosia.generic.long=Eastern European Time
-Asia/Novokuznetsk.generic.long=Novosibirsk Time
-Asia/Novosibirsk.generic.long=Novosibirsk Time
-Asia/Omsk.generic.long=Omsk Time
-Asia/Oral.generic.long=Oral Time
-Asia/Phnom_Penh.generic.long=Indochina Time
-Asia/Pontianak.generic.long=West Indonesia Time
-Asia/Pyongyang.generic.long=Korea Time
-Asia/Qatar.generic.long=Arabia Time
-Asia/Qyzylorda.generic.long=Qyzylorda Time
-Asia/Rangoon.generic.long=Myanmar Time
-Asia/Saigon.generic.long=Indochina Time
-Asia/Sakhalin.generic.long=Sakhalin Time
-Asia/Samarkand.generic.long=Uzbekistan Time
-Asia/Seoul.generic.long=Korea Time
-Asia/Shanghai.generic.long=China Time
-Asia/Singapore.generic.long=Singapore Time
-Asia/Taipei.generic.long=China Time
-Asia/Tashkent.generic.long=Uzbekistan Time
-Asia/Tbilisi.generic.long=Georgia Time
-Asia/Tehran.generic.long=Iran Time
-Asia/Tel_Aviv.generic.long=Israel Time
-Asia/Thimbu.generic.long=Bhutan Time
-Asia/Thimphu.generic.long=Bhutan Time
-Asia/Tokyo.generic.long=Japan Time
-Asia/Ujung_Pandang.generic.long=Central Indonesia Time
-Asia/Ulaanbaatar.generic.long=Ulaanbaatar Time
-Asia/Ulan_Bator.generic.long=Ulaanbaatar Time
-Asia/Urumqi.generic.long=China Time
-Asia/Ust-Nera.daylight.long=Ust-Nera Summer Time
-Asia/Ust-Nera.generic.long=Ust-Nera Time
-Asia/Ust-Nera.standard.long=Ust-Nera Time
-Asia/Vientiane.generic.long=Indochina Time
-Asia/Vladivostok.generic.long=Vladivostok Time
-Asia/Yakutsk.generic.long=Yakutsk Time
-Asia/Yekaterinburg.generic.long=Yekaterinburg Time
-Asia/Yerevan.generic.long=Armenia Time
-Atlantic/Azores.generic.long=Azores Time
-Atlantic/Bermuda.generic.long=Atlantic Time
-Atlantic/Canary.generic.long=Western European Time
-Atlantic/Cape_Verde.generic.long=Cape Verde Time
-Atlantic/Faeroe.generic.long=Western European Time
-Atlantic/Faroe.generic.long=Western European Time
-Atlantic/Jan_Mayen.generic.long=Central European Time
-Atlantic/Madeira.generic.long=Western European Time
-Atlantic/Reykjavik.generic.long=Greenwich Mean Time
-Atlantic/South_Georgia.generic.long=South Georgia Time
-Atlantic/St_Helena.generic.long=Greenwich Mean Time
-Atlantic/Stanley.generic.long=Falkland Is. Time
-Australia/ACT.daylight.long=Eastern Summer Time (New South Wales)
-Australia/ACT.generic.long=Eastern Time (New South Wales)
-Australia/ACT.standard.long=Eastern Standard Time (New South Wales)
-Australia/Adelaide.daylight.long=Central Summer Time (South Australia)
-Australia/Adelaide.generic.long=Central Time (South Australia)
-Australia/Adelaide.standard.long=Central Standard Time (South Australia)
-Australia/Brisbane.daylight.long=Eastern Summer Time (Queensland)
-Australia/Brisbane.generic.long=Eastern Time (Queensland)
-Australia/Brisbane.standard.long=Eastern Standard Time (Queensland)
-Australia/Broken_Hill.daylight.long=Central Summer Time (South Australia/New South Wales)
-Australia/Broken_Hill.generic.long=Central Time (South Australia/New South Wales)
-Australia/Broken_Hill.standard.long=Central Standard Time (South Australia/New South Wales)
-Australia/Canberra.daylight.long=Eastern Summer Time (New South Wales)
-Australia/Canberra.generic.long=Eastern Time (New South Wales)
-Australia/Canberra.standard.long=Eastern Standard Time (New South Wales)
-Australia/Currie.daylight.long=Eastern Summer Time (New South Wales)
-Australia/Currie.generic.long=Eastern Time (New South Wales)
-Australia/Currie.standard.long=Eastern Standard Time (New South Wales)
-Australia/Darwin.daylight.long=Central Summer Time (Northern Territory)
-Australia/Darwin.generic.long=Central Time (Northern Territory)
-Australia/Darwin.standard.long=Central Standard Time (Northern Territory)
-Australia/Eucla.daylight.long=Central Western Summer Time (Australia)
-Australia/Eucla.generic.long=Central Western Time (Australia)
-Australia/Eucla.standard.long=Central Western Standard Time (Australia)
-Australia/Hobart.daylight.long=Eastern Summer Time (Tasmania)
-Australia/Hobart.generic.long=Eastern Time (Tasmania)
-Australia/Hobart.standard.long=Eastern Standard Time (Tasmania)
-Australia/LHI.generic.long=Lord Howe Time
-Australia/Lindeman.daylight.long=Eastern Summer Time (Queensland)
-Australia/Lindeman.generic.long=Eastern Time (Queensland)
-Australia/Lindeman.standard.long=Eastern Standard Time (Queensland)
-Australia/Lord_Howe.generic.long=Lord Howe Time
-Australia/Melbourne.daylight.long=Eastern Summer Time (Victoria)
-Australia/Melbourne.generic.long=Eastern Time (Victoria)
-Australia/Melbourne.standard.long=Eastern Standard Time (Victoria)
-Australia/NSW.daylight.long=Eastern Summer Time (New South Wales)
-Australia/NSW.generic.long=Eastern Time (New South Wales)
-Australia/NSW.standard.long=Eastern Standard Time (New South Wales)
-Australia/North.daylight.long=Central Summer Time (Northern Territory)
-Australia/North.generic.long=Central Time (Northern Territory)
-Australia/North.standard.long=Central Standard Time (Northern Territory)
-Australia/Perth.daylight.long=Western Summer Time (Australia)
-Australia/Perth.generic.long=Western Time (Australia)
-Australia/Perth.standard.long=Western Standard Time (Australia)
-Australia/Queensland.daylight.long=Eastern Summer Time (Queensland)
-Australia/Queensland.generic.long=Eastern Time (Queensland)
-Australia/Queensland.standard.long=Eastern Standard Time (Queensland)
-Australia/South.daylight.long=Central Summer Time (South Australia)
-Australia/South.generic.long=Central Time (South Australia)
-Australia/South.standard.long=Central Standard Time (South Australia)
-Australia/Sydney.daylight.long=Eastern Summer Time (New South Wales)
-Australia/Sydney.generic.long=Eastern Time (New South Wales)
-Australia/Sydney.standard.long=Eastern Standard Time (New South Wales)
-Australia/Tasmania.daylight.long=Eastern Summer Time (Tasmania)
-Australia/Tasmania.generic.long=Eastern Time (Tasmania)
-Australia/Tasmania.standard.long=Eastern Standard Time (Tasmania)
-Australia/Victoria.daylight.long=Eastern Summer Time (Victoria)
-Australia/Victoria.generic.long=Eastern Time (Victoria)
-Australia/Victoria.standard.long=Eastern Standard Time (Victoria)
-Australia/West.daylight.long=Western Summer Time (Australia)
-Australia/West.generic.long=Western Time (Australia)
-Australia/West.standard.long=Western Standard Time (Australia)
-Australia/Yancowinna.daylight.long=Central Summer Time (South Australia/New South Wales)
-Australia/Yancowinna.generic.long=Central Time (South Australia/New South Wales)
-Australia/Yancowinna.standard.long=Central Standard Time (South Australia/New South Wales)
-BET.generic.long=Brasilia Time
-BST.generic.long=Bangladesh Time
-Brazil/Acre.generic.long=Acre Time
-Brazil/DeNoronha.generic.long=Fernando de Noronha Time
-Brazil/East.generic.long=Brasilia Time
-Brazil/West.generic.long=Amazon Time
-CAT.generic.long=Central Africa Time
-CET.generic.long=Central European Time
-CNT.generic.long=Newfoundland Time
-CST.generic.long=Central Time
-CST6CDT.generic.long=Central Time
-CTT.generic.long=China Time
-Canada/Atlantic.generic.long=Atlantic Time
-Canada/Central.generic.long=Central Time
-Canada/East-Saskatchewan.generic.long=Central Time
-Canada/Eastern.generic.long=Eastern Time
-Canada/Mountain.generic.long=Mountain Time
-Canada/Newfoundland.generic.long=Newfoundland Time
-Canada/Pacific.generic.long=Pacific Time
-Canada/Saskatchewan.generic.long=Central Time
-Canada/Yukon.generic.long=Pacific Time
-Chile/Continental.generic.long=Chile Time
-Chile/EasterIsland.generic.long=Easter Is. Time
-Cuba.generic.long=Cuba Time
-EAT.generic.long=Eastern Africa Time
-ECT.generic.long=Central European Time
-EET.generic.long=Eastern European Time
-EST.generic.long=Eastern Time
-EST5EDT.generic.long=Eastern Time
-Egypt.generic.long=Eastern European Time
-Eire.generic.long=Irish Time
-Etc/Greenwich.generic.long=Greenwich Mean Time
-Etc/UCT.generic.long=Coordinated Universal Time
-Etc/UTC.generic.long=Coordinated Universal Time
-Etc/Universal.generic.long=Coordinated Universal Time
-Etc/Zulu.generic.long=Coordinated Universal Time
-Europe/Amsterdam.generic.long=Central European Time
-Europe/Andorra.generic.long=Central European Time
-Europe/Athens.generic.long=Eastern European Time
-Europe/Belfast.generic.long=British Time
-Europe/Belgrade.generic.long=Central European Time
-Europe/Berlin.generic.long=Central European Time
-Europe/Bratislava.generic.long=Central European Time
-Europe/Brussels.generic.long=Central European Time
-Europe/Bucharest.generic.long=Eastern European Time
-Europe/Budapest.generic.long=Central European Time
-Europe/Busingen.generic.long=Central European Time
-Europe/Chisinau.generic.long=Eastern European Time
-Europe/Copenhagen.generic.long=Central European Time
-Europe/Dublin.generic.long=Irish Time
-Europe/Gibraltar.generic.long=Central European Time
-Europe/Guernsey.generic.long=British Time
-Europe/Helsinki.generic.long=Eastern European Time
-Europe/Isle_of_Man.generic.long=British Time
-Europe/Istanbul.generic.long=Eastern European Time
-Europe/Jersey.generic.long=British Time
-Europe/Kaliningrad.daylight.long=Further-eastern European Summer Time
-Europe/Kaliningrad.generic.long=Further-eastern European Time
-Europe/Kaliningrad.standard.long=Further-eastern European Time
-Europe/Kiev.generic.long=Eastern European Time
-Europe/Lisbon.generic.long=Western European Time
-Europe/Ljubljana.generic.long=Central European Time
-Europe/London.generic.long=British Time
-Europe/Luxembourg.generic.long=Central European Time
-Europe/Madrid.generic.long=Central European Time
-Europe/Malta.generic.long=Central European Time
-Europe/Mariehamn.generic.long=Eastern European Time
-Europe/Minsk.daylight.long=Further-eastern European Summer Time
-Europe/Minsk.generic.long=Further-eastern European Time
-Europe/Minsk.standard.long=Further-eastern European Time
-Europe/Monaco.generic.long=Central European Time
-Europe/Moscow.generic.long=Moscow Time
-Europe/Nicosia.generic.long=Eastern European Time
-Europe/Oslo.generic.long=Central European Time
-Europe/Paris.generic.long=Central European Time
-Europe/Podgorica.generic.long=Central European Time
-Europe/Prague.generic.long=Central European Time
-Europe/Riga.generic.long=Eastern European Time
-Europe/Rome.generic.long=Central European Time
-Europe/Samara.generic.long=Samara Time
-Europe/San_Marino.generic.long=Central European Time
-Europe/Sarajevo.generic.long=Central European Time
-Europe/Simferopol.generic.long=Eastern European Time
-Europe/Skopje.generic.long=Central European Time
-Europe/Sofia.generic.long=Eastern European Time
-Europe/Stockholm.generic.long=Central European Time
-Europe/Tallinn.generic.long=Eastern European Time
-Europe/Tirane.generic.long=Central European Time
-Europe/Tiraspol.generic.long=Eastern European Time
-Europe/Uzhgorod.generic.long=Eastern European Time
-Europe/Vaduz.generic.long=Central European Time
-Europe/Vatican.generic.long=Central European Time
-Europe/Vienna.generic.long=Central European Time
-Europe/Vilnius.generic.long=Eastern European Time
-Europe/Volgograd.generic.long=Volgograd Time
-Europe/Warsaw.generic.long=Central European Time
-Europe/Zagreb.generic.long=Central European Time
-Europe/Zaporozhye.generic.long=Eastern European Time
-Europe/Zurich.generic.long=Central European Time
-GB-Eire.generic.long=British Time
-GB.generic.long=British Time
-GMT.generic.long=Greenwich Mean Time
-Greenwich.generic.long=Greenwich Mean Time
-HST.generic.long=Hawaii Time
-Hongkong.generic.long=Hong Kong Time
-IET.generic.long=Eastern Time
-IST.generic.long=India Time
-Iceland.generic.long=Greenwich Mean Time
-Indian/Antananarivo.generic.long=Eastern Africa Time
-Indian/Chagos.generic.long=Indian Ocean Territory Time
-Indian/Christmas.generic.long=Christmas Island Time
-Indian/Cocos.generic.long=Cocos Islands Time
-Indian/Comoro.generic.long=Eastern Africa Time
-Indian/Kerguelen.generic.long=French Southern & Antarctic Lands Time
-Indian/Mahe.generic.long=Seychelles Time
-Indian/Maldives.generic.long=Maldives Time
-Indian/Mauritius.generic.long=Mauritius Time
-Indian/Mayotte.generic.long=Eastern Africa Time
-Indian/Reunion.generic.long=Reunion Time
-Iran.generic.long=Iran Time
-Israel.generic.long=Israel Time
-JST.generic.long=Japan Time
-Jamaica.generic.long=Eastern Time
-Japan.generic.long=Japan Time
-Kwajalein.generic.long=Marshall Islands Time
-Libya.generic.long=Eastern European Time
-MET.generic.long=Middle Europe Time
-MIT.generic.long=West Samoa Time
-MST.generic.long=Mountain Time
-MST7MDT.generic.long=Mountain Time
-Mexico/BajaNorte.generic.long=Pacific Time
-Mexico/BajaSur.generic.long=Mountain Time
-Mexico/General.generic.long=Central Time
-NET.generic.long=Armenia Time
-NST.generic.long=New Zealand Time
-NZ-CHAT.generic.long=Chatham Time
-NZ.generic.long=New Zealand Time
-Navajo.generic.long=Mountain Time
-PLT.generic.long=Pakistan Time
-PNT.generic.long=Mountain Time
-PRC.generic.long=China Time
-PRT.generic.long=Atlantic Time
-PST.generic.long=Pacific Time
-PST8PDT.generic.long=Pacific Time
-Pacific/Apia.generic.long=West Samoa Time
-Pacific/Auckland.generic.long=New Zealand Time
-Pacific/Chatham.generic.long=Chatham Time
-Pacific/Chuuk.daylight.long=Chuuk Summer Time
-Pacific/Chuuk.generic.long=Chuuk Time
-Pacific/Chuuk.standard.long=Chuuk Time
-Pacific/Easter.generic.long=Easter Is. Time
-Pacific/Efate.generic.long=Vanuatu Time
-Pacific/Enderbury.generic.long=Phoenix Is. Time
-Pacific/Fakaofo.generic.long=Tokelau Time
-Pacific/Fiji.generic.long=Fiji Time
-Pacific/Funafuti.generic.long=Tuvalu Time
-Pacific/Galapagos.generic.long=Galapagos Time
-Pacific/Gambier.generic.long=Gambier Time
-Pacific/Guadalcanal.generic.long=Solomon Is. Time
-Pacific/Guam.generic.long=Chamorro Time
-Pacific/Honolulu.generic.long=Hawaii Time
-Pacific/Johnston.generic.long=Hawaii Time
-Pacific/Kiritimati.generic.long=Line Is. Time
-Pacific/Kosrae.generic.long=Kosrae Time
-Pacific/Kwajalein.generic.long=Marshall Islands Time
-Pacific/Majuro.generic.long=Marshall Islands Time
-Pacific/Marquesas.generic.long=Marquesas Time
-Pacific/Midway.generic.long=Samoa Time
-Pacific/Nauru.generic.long=Nauru Time
-Pacific/Niue.generic.long=Niue Time
-Pacific/Norfolk.generic.long=Norfolk Time
-Pacific/Noumea.generic.long=New Caledonia Time
-Pacific/Pago_Pago.generic.long=Samoa Time
-Pacific/Palau.generic.long=Palau Time
-Pacific/Pitcairn.generic.long=Pitcairn Time
-Pacific/Pohnpei.daylight.long=Pohnpei Summer Time
-Pacific/Pohnpei.generic.long=Ponape Time
-Pacific/Pohnpei.standard.long=Pohnpei Time
-Pacific/Ponape.daylight.long=Pohnpei Summer Time
-Pacific/Ponape.generic.long=Ponape Time
-Pacific/Ponape.standard.long=Pohnpei Time
-Pacific/Port_Moresby.generic.long=Papua New Guinea Time
-Pacific/Rarotonga.generic.long=Cook Is. Time
-Pacific/Saipan.generic.long=Chamorro Time
-Pacific/Samoa.generic.long=Samoa Time
-Pacific/Tahiti.generic.long=Tahiti Time
-Pacific/Tarawa.generic.long=Gilbert Is. Time
-Pacific/Tongatapu.generic.long=Tonga Time
-Pacific/Truk.daylight.long=Chuuk Summer Time
-Pacific/Truk.generic.long=Chuuk Time
-Pacific/Truk.standard.long=Chuuk Time
-Pacific/Wake.generic.long=Wake Time
-Pacific/Wallis.generic.long=Wallis & Futuna Time
-Pacific/Yap.daylight.long=Chuuk Summer Time
-Pacific/Yap.generic.long=Chuuk Time
-Pacific/Yap.standard.long=Chuuk Time
-Poland.generic.long=Central European Time
-Portugal.generic.long=Western European Time
-ROK.generic.long=Korea Time
-SST.generic.long=Solomon Is. Time
-Singapore.generic.long=Singapore Time
-SystemV/AST4.generic.long=Atlantic Time
-SystemV/AST4ADT.generic.long=Atlantic Time
-SystemV/CST6.generic.long=Central Time
-SystemV/CST6CDT.generic.long=Central Time
-SystemV/EST5.generic.long=Eastern Time
-SystemV/EST5EDT.generic.long=Eastern Time
-SystemV/HST10.generic.long=Hawaii Time
-SystemV/MST7.generic.long=Mountain Time
-SystemV/MST7MDT.generic.long=Mountain Time
-SystemV/PST8.generic.long=Pacific Time
-SystemV/PST8PDT.generic.long=Pacific Time
-SystemV/YST9.generic.long=Alaska Time
-SystemV/YST9YDT.generic.long=Alaska Time
-Turkey.generic.long=Eastern European Time
-UCT.generic.long=Coordinated Universal Time
-US/Alaska.generic.long=Alaska Time
-US/Aleutian.generic.long=Hawaii-Aleutian Time
-US/Arizona.generic.long=Mountain Time
-US/Central.generic.long=Central Time
-US/East-Indiana.generic.long=Eastern Time
-US/Eastern.generic.long=Eastern Time
-US/Hawaii.generic.long=Hawaii Time
-US/Indiana-Starke.generic.long=Central Time
-US/Michigan.generic.long=Eastern Time
-US/Mountain.generic.long=Mountain Time
-US/Pacific-New.generic.long=Pacific Time
-US/Pacific.generic.long=Pacific Time
-US/Samoa.generic.long=Samoa Time
-UTC.generic.long=Coordinated Universal Time
-Universal.generic.long=Coordinated Universal Time
-VST.generic.long=Indochina Time
-W-SU.generic.long=Moscow Time
-WET.generic.long=Western European Time
-Zulu.generic.long=Coordinated Universal Time
diff --git a/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNamesTest.java b/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNamesTest.java
deleted file mode 100644
index e112e56f340..00000000000
--- a/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNamesTest.java
+++ /dev/null
@@ -1,186 +0,0 @@
-/*
- * Copyright (c) 2013 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 8025051
- * @summary Test time zone names across all locales
- * @run main TimeZoneNamesTest
- */
-
-import sun.util.locale.provider.TimeZoneNameUtility;
-import java.util.TimeZone;
-import java.util.Locale;
-import java.util.Properties;
-import java.io.IOException;
-import java.io.FileInputStream;
-
-public class TimeZoneNamesTest {
- // name type to test. Possible: long, short.
- static String requestedTestType = "long";
- // test Standard/DST (false) or Generic (true) TZ names
- static boolean testGeneric = false;
-
- public static void testGenericTZName( Locale locale, String timezoneName,
- int nameType, String expectedName ) throws RuntimeException {
- if (testGeneric) {
- String genericName = TimeZoneNameUtility.retrieveGenericDisplayName(timezoneName, nameType, locale);
- //Check for equality
- if (!genericName.equals(expectedName))
- throw new RuntimeException( "Time zone ("+timezoneName+") name is incorrect for locale \""+locale.getDisplayName()
- +"\" nameType: Generic"+"("+nameType+") Should be: " +expectedName+" Observed: "+genericName);
- }
- }
-
- public static void testTZName( Locale locale, String timezoneName, boolean isDaylight,
- int nameType, String expectedName ) throws RuntimeException {
- if (!testGeneric) {
- //Construct time zone objects
- TimeZone zone = TimeZone.getTimeZone(timezoneName);
- //Get name from JDK
- String name = zone.getDisplayName(isDaylight, nameType, locale);
- //Check for equality
- if (!name.equals(expectedName))
- throw new RuntimeException( "Time zone ("+timezoneName+") name is incorrect for locale: \""+locale.getDisplayName()
- +"\" nameType:"+requestedTestType+" DST:"+isDaylight+" Should be: " +expectedName+" Observed: "+name);
- }
- }
-
- public static boolean testPropertyEntry( Locale locale, String entry, String value ) {
- boolean result = true;
- String[] params = entry.split("\\.");
- if (params.length != 3) {
- System.out.println("Incorrect property file entry="+entry+" "+params.length);
- result = false;
- } else {
- boolean isDaylight = true;
- int nameType = TimeZone.LONG;
-
- if (params[2].equals("short"))
- nameType = TimeZone.SHORT;
-
- if (params[1].equals("standard"))
- isDaylight = false;
-
- // Names with non-requested tz name type are ignored
- if (requestedTestType.equals(params[2])) {
- try {
- if (params[1].equals("generic"))
- testGenericTZName( locale, params[0], nameType, value );
- else
- testTZName( locale, params[0], isDaylight, nameType, value );
- } catch (RuntimeException e) {
- System.out.println( "Test FAILED: "+e );
- result = false;
- }
- }
- }
- return result;
- }
-
- public static boolean testPropertyFile( String propFile, String shortName, Locale locale ) throws RuntimeException {
- boolean result = true;
- Properties property = new Properties();
- try {
- property.load( new FileInputStream(propFile) );
- } catch (IOException e) {
- throw new RuntimeException("Property file "+propFile+" is not found", e);
- }
- for (String key: property.stringPropertyNames()) {
- result &= testPropertyEntry(locale, key, property.getProperty(key) );
- }
- return result;
- }
-
- // Locale to test, file with names data, test long/short names, test generic names (true/false)
- static Object[][] testTargets = {
- { Locale.ROOT,"TimeZoneNames.properties","long",false},
- { Locale.ROOT,"TimeZoneNames_short.properties","short",false},
- { Locale.ROOT,"TimeZoneNames.properties","long",true},
- { Locale.ROOT,"TimeZoneNames_short.properties","short",true},
-
- { new Locale("de"),"TimeZoneNames_de.properties","long",false},
- { new Locale("de"),"TimeZoneNames_de_short.properties","short",false},
- { new Locale("de"),"TimeZoneNames_de.properties","long",true},
- { new Locale("de"),"TimeZoneNames_de_short.properties","short",true},
-
- { new Locale("es"),"TimeZoneNames_es.properties","long",false},
- { new Locale("es"),"TimeZoneNames_es_short.properties","short",false},
- { new Locale("es"),"TimeZoneNames_es.properties","long",true},
- { new Locale("es"),"TimeZoneNames_es_short.properties","short",true},
-
- { new Locale("fr"),"TimeZoneNames_fr.properties","long",false},
- { new Locale("fr"),"TimeZoneNames_fr_short.properties","short",false},
- { new Locale("fr"),"TimeZoneNames_fr.properties","long",true},
- { new Locale("fr"),"TimeZoneNames_fr_short.properties","short",true},
-
- { new Locale("it"),"TimeZoneNames_it.properties","long",false},
- { new Locale("it"),"TimeZoneNames_it_short.properties","short",false},
- { new Locale("it"),"TimeZoneNames_it.properties","long",true},
- { new Locale("it"),"TimeZoneNames_it_short.properties","short",true},
-
- { new Locale("ja"),"TimeZoneNames_ja.properties","long",false},
- { new Locale("ja"),"TimeZoneNames_ja_short.properties","short",false},
- { new Locale("ja"),"TimeZoneNames_ja.properties","long",true},
- { new Locale("ja"),"TimeZoneNames_ja_short.properties","short",true},
-
- { new Locale("ko"),"TimeZoneNames_ko.properties","long",false},
- { new Locale("ko"),"TimeZoneNames_ko_short.properties","short",false},
- { new Locale("ko"),"TimeZoneNames_ko.properties","long",true},
- { new Locale("ko"),"TimeZoneNames_ko_short.properties","short",true},
-
- { new Locale("pt","BR"),"TimeZoneNames_pt_BR.properties","long",false},
- { new Locale("pt","BR"),"TimeZoneNames_pt_BR_short.properties","short",false},
- { new Locale("pt","BR"),"TimeZoneNames_pt_BR.properties","long",true},
- { new Locale("pt","BR"),"TimeZoneNames_pt_BR_short.properties","short",true},
-
- { new Locale("sv"),"TimeZoneNames_sv.properties","long",false},
- { new Locale("sv"),"TimeZoneNames_sv_short.properties","short",false},
- { new Locale("sv"),"TimeZoneNames_sv.properties","long",true},
- { new Locale("sv"),"TimeZoneNames_sv_short.properties","short",true},
-
- { new Locale("zh","CN"),"TimeZoneNames_zh_CN.properties","long",false},
- { new Locale("zh","CN"),"TimeZoneNames_zh_CN_short.properties","short",false},
- { new Locale("zh","CN"),"TimeZoneNames_zh_CN.properties","long",true},
- { new Locale("zh","CN"),"TimeZoneNames_zh_CN_short.properties","short",true},
-
- { new Locale("zh","TW"),"TimeZoneNames_zh_TW.properties","long",false},
- { new Locale("zh","TW"),"TimeZoneNames_zh_TW_short.properties","short",false},
- { new Locale("zh","TW"),"TimeZoneNames_zh_TW.properties","long",true},
- { new Locale("zh","TW"),"TimeZoneNames_zh_TW_short.properties","short",true}
- };
-
- public static void main(String[] args) {
- boolean result = true;
-
- for (Object [] test: testTargets) {
- Locale testLocale = (Locale) test[0];
- String testFile = (String) test[1];
- requestedTestType = (String) test[2];
- testGeneric = (Boolean) test[3];
- result &= testPropertyFile( System.getProperty("test.src",".")+"/"+testFile, testFile, testLocale);
- }
- if (!result)
- throw new RuntimeException("Some time zones has unexpected names. Please, check test output.");
- }
-}
diff --git a/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_de.properties b/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_de.properties
deleted file mode 100644
index 432b127b2b9..00000000000
--- a/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_de.properties
+++ /dev/null
@@ -1,651 +0,0 @@
-ACT.daylight.long=Zentrale Sommerzeit (Northern Territory)
-ACT.generic.long=Zentrale Zeitzone (Northern Territory)
-ACT.standard.long=Zentrale Normalzeit (Northern Territory)
-AET.daylight.long=\u00D6stliche Sommerzeit (New South Wales)
-AET.generic.long=\u00D6stliche Zeitzone (New South Wales)
-AET.standard.long=\u00D6stliche Normalzeit (New South Wales)
-AGT.generic.long=Argentinische Zeit
-ART.generic.long=Osteurop\u00E4ische Zeit
-AST.generic.long=Zeitzone f\u00FCr Alaska
-Africa/Abidjan.generic.long=Greenwich Zeit
-Africa/Accra.generic.long=Ghanaische Normalzeit
-Africa/Addis_Ababa.generic.long=Ostafrikanische Zeit
-Africa/Algiers.generic.long=Mitteleurop\u00E4ische Zeit
-Africa/Asmara.generic.long=Ostafrikanische Zeit
-Africa/Asmera.generic.long=Ostafrikanische Zeit
-Africa/Bamako.generic.long=Greenwich Zeit
-Africa/Bangui.generic.long=Westafrikanische Zeit
-Africa/Banjul.generic.long=Greenwich Zeit
-Africa/Bissau.generic.long=Greenwich Zeit
-Africa/Blantyre.generic.long=Zentralafrikanische Zeit
-Africa/Brazzaville.generic.long=Westafrikanische Zeit
-Africa/Bujumbura.generic.long=Zentralafrikanische Zeit
-Africa/Cairo.generic.long=Osteurop\u00E4ische Zeit
-Africa/Casablanca.generic.long=Westeurop\u00E4ische Zeit
-Africa/Ceuta.generic.long=Mitteleurop\u00E4ische Zeit
-Africa/Conakry.generic.long=Greenwich Zeit
-Africa/Dakar.generic.long=Greenwich Zeit
-Africa/Dar_es_Salaam.generic.long=Ostafrikanische Zeit
-Africa/Djibouti.generic.long=Ostafrikanische Zeit
-Africa/Douala.generic.long=Westafrikanische Zeit
-Africa/El_Aaiun.generic.long=Westeurop\u00E4ische Zeit
-Africa/Freetown.generic.long=Sierra Leone Zeit
-Africa/Gaborone.generic.long=Zentralafrikanische Zeit
-Africa/Harare.generic.long=Zentralafrikanische Zeit
-Africa/Johannesburg.generic.long=Zeitzone f\u00FCr S\u00FCdafrika
-Africa/Juba.generic.long=Ostafrikanische Zeit
-Africa/Kampala.generic.long=Ostafrikanische Zeit
-Africa/Khartoum.generic.long=Ostafrikanische Zeit
-Africa/Kigali.generic.long=Zentralafrikanische Zeit
-Africa/Kinshasa.generic.long=Westafrikanische Zeit
-Africa/Lagos.generic.long=Westafrikanische Zeit
-Africa/Libreville.generic.long=Westafrikanische Zeit
-Africa/Lome.generic.long=Greenwich Zeit
-Africa/Luanda.generic.long=Westafrikanische Zeit
-Africa/Lubumbashi.generic.long=Zentralafrikanische Zeit
-Africa/Lusaka.generic.long=Zentralafrikanische Zeit
-Africa/Malabo.generic.long=Westafrikanische Zeit
-Africa/Maputo.generic.long=Zentralafrikanische Zeit
-Africa/Maseru.generic.long=Zeitzone f\u00FCr S\u00FCdafrika
-Africa/Mbabane.generic.long=Zeitzone f\u00FCr S\u00FCdafrika
-Africa/Mogadishu.generic.long=Ostafrikanische Zeit
-Africa/Monrovia.generic.long=Greenwich Zeit
-Africa/Nairobi.generic.long=Ostafrikanische Zeit
-Africa/Ndjamena.generic.long=Westafrikanische Zeit
-Africa/Niamey.generic.long=Westafrikanische Zeit
-Africa/Nouakchott.generic.long=Greenwich Zeit
-Africa/Ouagadougou.generic.long=Greenwich Zeit
-Africa/Porto-Novo.generic.long=Westafrikanische Zeit
-Africa/Sao_Tome.generic.long=Greenwich Zeit
-Africa/Timbuktu.generic.long=Greenwich Zeit
-Africa/Tripoli.generic.long=Osteurop\u00e4ische Zeit
-Africa/Tunis.generic.long=Mitteleurop\u00E4ische Zeit
-Africa/Windhoek.generic.long=Westafrikanische Zeit
-America/Adak.generic.long=Zeitzone f\u00FCr Hawaii und Al\u00EButen
-America/Anchorage.generic.long=Zeitzone f\u00FCr Alaska
-America/Anguilla.generic.long=Zeitzone Atlantik
-America/Antigua.generic.long=Zeitzone Atlantik
-America/Araguaina.generic.long=Brasilianische Zeit
-America/Argentina/Buenos_Aires.generic.long=Argentinische Zeit
-America/Argentina/Catamarca.generic.long=Argentinische Zeit
-America/Argentina/ComodRivadavia.generic.long=Argentinische Zeit
-America/Argentina/Cordoba.generic.long=Argentinische Zeit
-America/Argentina/Jujuy.generic.long=Argentinische Zeit
-America/Argentina/La_Rioja.generic.long=Argentinische Zeit
-America/Argentina/Mendoza.generic.long=Argentinische Zeit
-America/Argentina/Rio_Gallegos.generic.long=Argentinische Zeit
-America/Argentina/Salta.generic.long=Argentinische Zeit
-America/Argentina/San_Juan.generic.long=Argentinische Zeit
-America/Argentina/San_Luis.generic.long=Argentinische Zeit
-America/Argentina/Tucuman.generic.long=Argentinische Zeit
-America/Argentina/Ushuaia.generic.long=Argentinische Zeit
-America/Aruba.generic.long=Zeitzone Atlantik
-America/Asuncion.generic.long=Paraguay Zeit
-America/Atikokan.generic.long=\u00D6stliche Zeitzone
-America/Atka.generic.long=Zeitzone f\u00FCr Hawaii und Al\u00EButen
-America/Bahia.generic.long=Brasilianische Zeit
-America/Bahia_Banderas.generic.long=Zentrale Zeitzone
-America/Barbados.generic.long=Zeitzone Atlantik
-America/Belem.generic.long=Brasilianische Zeit
-America/Belize.generic.long=Zentrale Zeitzone
-America/Blanc-Sablon.generic.long=Zeitzone Atlantik
-America/Boa_Vista.generic.long=Amazonas Normalzeit
-America/Bogota.generic.long=Kolumbianische Zeit
-America/Boise.generic.long=Zeitzone Mountain
-America/Buenos_Aires.generic.long=Argentinische Zeit
-America/Cambridge_Bay.generic.long=Zeitzone Mountain
-America/Campo_Grande.generic.long=Amazonas Normalzeit
-America/Cancun.generic.long=Zentrale Zeitzone
-America/Caracas.generic.long=Venezuelanische Zeit
-America/Catamarca.generic.long=Argentinische Zeit
-America/Cayenne.generic.long=Franz\u00F6sisch-Guiana Zeit
-America/Cayman.generic.long=\u00D6stliche Zeitzone
-America/Chicago.generic.long=Zentrale Zeitzone
-America/Chihuahua.generic.long=Zeitzone Mountain
-America/Coral_Harbour.generic.long=\u00D6stliche Zeitzone
-America/Cordoba.generic.long=Argentinische Zeit
-America/Costa_Rica.generic.long=Zentrale Zeitzone
-America/Creston.generic.long=Zeitzone Mountain
-America/Cuiaba.generic.long=Amazonas Normalzeit
-America/Curacao.generic.long=Zeitzone Atlantik
-America/Danmarkshavn.generic.long=Greenwich Zeit
-America/Dawson.generic.long=Zeitzone Pazifik
-America/Dawson_Creek.generic.long=Zeitzone Mountain
-America/Denver.generic.long=Zeitzone Mountain
-America/Detroit.generic.long=\u00D6stliche Zeitzone
-America/Dominica.generic.long=Zeitzone Atlantik
-America/Edmonton.generic.long=Zeitzone Mountain
-America/Eirunepe.generic.long=Acre Normalzeit
-America/El_Salvador.generic.long=Zentrale Zeitzone
-America/Ensenada.generic.long=Zeitzone Pazifik
-America/Fort_Wayne.generic.long=\u00D6stliche Zeitzone
-America/Fortaleza.generic.long=Brasilianische Zeit
-America/Glace_Bay.generic.long=Zeitzone Atlantik
-America/Godthab.generic.long=Westgr\u00F6nl\u00E4ndische Zeit
-America/Goose_Bay.generic.long=Zeitzone Atlantik
-America/Grand_Turk.generic.long=\u00D6stliche Zeitzone
-America/Grenada.generic.long=Zeitzone Atlantik
-America/Guadeloupe.generic.long=Zeitzone Atlantik
-America/Guatemala.generic.long=Zentrale Zeitzone
-America/Guayaquil.generic.long=Ecuadorianische Zeit
-America/Guyana.generic.long=Guyanische Zeit
-America/Halifax.generic.long=Zeitzone Atlantik
-America/Havana.generic.long=Kubanische Normalzeit
-America/Hermosillo.generic.long=Zeitzone Mountain
-America/Indiana/Indianapolis.generic.long=\u00D6stliche Zeitzone
-America/Indiana/Knox.generic.long=Zentrale Zeitzone
-America/Indiana/Marengo.generic.long=\u00D6stliche Zeitzone
-America/Indiana/Petersburg.generic.long=\u00D6stliche Zeitzone
-America/Indiana/Tell_City.generic.long=Zentrale Zeitzone
-America/Indiana/Vevay.generic.long=\u00D6stliche Zeitzone
-America/Indiana/Vincennes.generic.long=\u00D6stliche Zeitzone
-America/Indiana/Winamac.generic.long=\u00D6stliche Zeitzone
-America/Indianapolis.generic.long=\u00D6stliche Zeitzone
-America/Inuvik.generic.long=Zeitzone Mountain
-America/Iqaluit.generic.long=\u00D6stliche Zeitzone
-America/Jamaica.generic.long=\u00D6stliche Zeitzone
-America/Jujuy.generic.long=Argentinische Zeit
-America/Juneau.generic.long=Zeitzone f\u00FCr Alaska
-America/Kentucky/Louisville.generic.long=\u00D6stliche Zeitzone
-America/Kentucky/Monticello.generic.long=\u00D6stliche Zeitzone
-America/Knox_IN.generic.long=Zentrale Zeitzone
-America/Kralendijk.generic.long=Zeitzone Atlantik
-America/La_Paz.generic.long=Bolivianische Zeit
-America/Lima.generic.long=Peruanische Zeit
-America/Los_Angeles.generic.long=Zeitzone Pazifik
-America/Louisville.generic.long=\u00D6stliche Zeitzone
-America/Lower_Princes.generic.long=Zeitzone Atlantik
-America/Maceio.generic.long=Brasilianische Zeit
-America/Managua.generic.long=Zentrale Zeitzone
-America/Manaus.generic.long=Amazonas Normalzeit
-America/Marigot.generic.long=Zeitzone Atlantik
-America/Martinique.generic.long=Zeitzone Atlantik
-America/Matamoros.generic.long=Zentrale Zeitzone
-America/Mazatlan.generic.long=Zeitzone Mountain
-America/Mendoza.generic.long=Argentinische Zeit
-America/Menominee.generic.long=Zentrale Zeitzone
-America/Merida.generic.long=Zentrale Zeitzone
-America/Metlakatla.daylight.long=Metlakatla Sommerzeit
-America/Metlakatla.generic.long=Metlakatla Normalzeit
-America/Metlakatla.standard.long=Metlakatla Normalzeit
-America/Mexico_City.generic.long=Zentrale Zeitzone
-America/Miquelon.generic.long=Zeitzone f\u00FCr St. Pierre und Miquelon
-America/Moncton.generic.long=Zeitzone Atlantik
-America/Monterrey.generic.long=Zentrale Zeitzone
-America/Montevideo.generic.long=Uruguayanische Zeit
-America/Montreal.generic.long=\u00D6stliche Zeitzone
-America/Montserrat.generic.long=Zeitzone Atlantik
-America/Nassau.generic.long=\u00D6stliche Zeitzone
-America/New_York.generic.long=\u00D6stliche Zeitzone
-America/Nipigon.generic.long=\u00D6stliche Zeitzone
-America/Nome.generic.long=Zeitzone f\u00FCr Alaska
-America/Noronha.generic.long=Fernando de Noronha Zeit
-America/North_Dakota/Beulah.generic.long=Zentrale Zeitzone
-America/North_Dakota/Center.generic.long=Zentrale Zeitzone
-America/North_Dakota/New_Salem.generic.long=Zentrale Zeitzone
-America/Ojinaga.generic.long=Zeitzone Mountain
-America/Panama.generic.long=\u00D6stliche Zeitzone
-America/Pangnirtung.generic.long=\u00D6stliche Zeitzone
-America/Paramaribo.generic.long=Suriname Zeit
-America/Phoenix.generic.long=Zeitzone Mountain
-America/Port-au-Prince.generic.long=\u00D6stliche Zeitzone
-America/Port_of_Spain.generic.long=Zeitzone Atlantik
-America/Porto_Acre.generic.long=Acre Normalzeit
-America/Porto_Velho.generic.long=Amazonas Normalzeit
-America/Puerto_Rico.generic.long=Zeitzone Atlantik
-America/Rainy_River.generic.long=Zentrale Zeitzone
-America/Rankin_Inlet.generic.long=Zentrale Zeitzone
-America/Recife.generic.long=Brasilianische Zeit
-America/Regina.generic.long=Zentrale Zeitzone
-America/Resolute.generic.long=Zentrale Zeitzone
-America/Rio_Branco.generic.long=Acre Normalzeit
-America/Rosario.generic.long=Argentinische Zeit
-America/Santa_Isabel.generic.long=Zeitzone Pazifik
-America/Santarem.generic.long=Brasilianische Zeit
-America/Santiago.generic.long=Chilenische Zeit
-America/Santo_Domingo.generic.long=Zeitzone Atlantik
-America/Sao_Paulo.generic.long=Brasilianische Zeit
-America/Scoresbysund.generic.long=Ostgr\u00F6nl\u00E4ndische Zeit
-America/Shiprock.generic.long=Zeitzone Mountain
-America/Sitka.generic.long=Zeitzone f\u00FCr Alaska
-America/St_Barthelemy.generic.long=Zeitzone Atlantik
-America/St_Johns.generic.long=Zeitzone f\u00FCr Neufundland
-America/St_Kitts.generic.long=Zeitzone Atlantik
-America/St_Lucia.generic.long=Zeitzone Atlantik
-America/St_Thomas.generic.long=Zeitzone Atlantik
-America/St_Vincent.generic.long=Zeitzone Atlantik
-America/Swift_Current.generic.long=Zentrale Zeitzone
-America/Tegucigalpa.generic.long=Zentrale Zeitzone
-America/Thule.generic.long=Zeitzone Atlantik
-America/Thunder_Bay.generic.long=\u00D6stliche Zeitzone
-America/Tijuana.generic.long=Zeitzone Pazifik
-America/Toronto.generic.long=\u00D6stliche Zeitzone
-America/Tortola.generic.long=Zeitzone Atlantik
-America/Vancouver.generic.long=Zeitzone Pazifik
-America/Virgin.generic.long=Zeitzone Atlantik
-America/Whitehorse.generic.long=Zeitzone Pazifik
-America/Winnipeg.generic.long=Zentrale Zeitzone
-America/Yakutat.generic.long=Zeitzone f\u00FCr Alaska
-America/Yellowknife.generic.long=Zeitzone Mountain
-Antarctica/Casey.daylight.long=Westliche Sommerzeit (Australien)
-Antarctica/Casey.generic.long=Westliche Zeitzone (Australien)
-Antarctica/Casey.standard.long=Westliche Normalzeit (Australien)
-Antarctica/Davis.generic.long=Davis Zeit
-Antarctica/DumontDUrville.generic.long=Dumont-d'Urville Zeit
-Antarctica/Macquarie.daylight.long=Macquarieinsel Sommerzeit
-Antarctica/Macquarie.generic.long=Macquarieinsel Zeit
-Antarctica/Macquarie.standard.long=Macquarieinsel Zeit
-Antarctica/Mawson.generic.long=Mawson Zeit
-Antarctica/McMurdo.generic.long=Zeitzone f\u00FCr Neuseeland
-Antarctica/Palmer.generic.long=Chilenische Zeit
-Antarctica/Rothera.generic.long=Rothera Zeit
-Antarctica/South_Pole.generic.long=Zeitzone f\u00FCr Neuseeland
-Antarctica/Syowa.generic.long=Syowa Zeit
-Antarctica/Vostok.generic.long=Vostok Zeit
-Arctic/Longyearbyen.generic.long=Mitteleurop\u00E4ische Zeit
-Asia/Aden.generic.long=Zeitzone f\u00FCr Arabische Halbinsel
-Asia/Almaty.generic.long=Alma Ata Zeit
-Asia/Amman.generic.long=Zeitzone f\u00fcr Arabische Halbinsel
-Asia/Anadyr.generic.long=Anadyr Zeit
-Asia/Aqtau.generic.long=Aqtau Zeit
-Asia/Aqtobe.generic.long=Aqtobe Zeit
-Asia/Ashgabat.generic.long=Turkmenische Zeit
-Asia/Ashkhabad.generic.long=Turkmenische Zeit
-Asia/Baghdad.generic.long=Zeitzone f\u00FCr Arabische Halbinsel
-Asia/Bahrain.generic.long=Zeitzone f\u00FCr Arabische Halbinsel
-Asia/Baku.generic.long=Aserbaidschanische Zeit
-Asia/Bangkok.generic.long=Indochina Zeit
-Asia/Beirut.generic.long=Osteurop\u00E4ische Zeit
-Asia/Bishkek.generic.long=Kirgisische Zeit
-Asia/Brunei.generic.long=Brunei Zeit
-Asia/Calcutta.generic.long=Zeitzone f\u00FCr Indien
-Asia/Choibalsan.generic.long=Choibalsan Zeit
-Asia/Chongqing.generic.long=Zeitzone f\u00FCr China
-Asia/Chungking.generic.long=Zeitzone f\u00FCr China
-Asia/Colombo.generic.long=Zeitzone f\u00FCr Indien
-Asia/Dacca.generic.long=Bangladesch Zeit
-Asia/Damascus.generic.long=Osteurop\u00E4ische Zeit
-Asia/Dhaka.generic.long=Bangladesch Zeit
-Asia/Dili.generic.long=Timor-Leste Normalzeit
-Asia/Dubai.generic.long=Zeitzone f\u00FCr Persischen Golf
-Asia/Dushanbe.generic.long=Tadschikische Zeit
-Asia/Gaza.generic.long=Osteurop\u00E4ische Zeit
-Asia/Harbin.generic.long=Zeitzone f\u00FCr China
-Asia/Hebron.generic.long=Osteurop\u00E4ische Zeit
-Asia/Ho_Chi_Minh.generic.long=Indochina Zeit
-Asia/Hong_Kong.generic.long=Hongkong Zeit
-Asia/Hovd.generic.long=Hovd Zeit
-Asia/Irkutsk.generic.long=Irkutsk Zeit
-Asia/Istanbul.generic.long=Osteurop\u00E4ische Zeit
-Asia/Jakarta.generic.long=Westindonesische Zeit
-Asia/Jayapura.generic.long=Ostindonesische Zeit
-Asia/Jerusalem.generic.long=Zeitzone f\u00FCr Israel
-Asia/Kabul.generic.long=Afghanistanische Zeit
-Asia/Kamchatka.generic.long=Petropawlowsk-Kamtschatkische Zeit
-Asia/Karachi.generic.long=Pakistanische Zeit
-Asia/Kashgar.generic.long=Zeitzone f\u00FCr China
-Asia/Kathmandu.generic.long=Nepalesische Zeit
-Asia/Katmandu.generic.long=Nepalesische Zeit
-Asia/Khandyga.daylight.long=Chandyga Sommerzeit
-Asia/Khandyga.generic.long=Chandyga Zeit
-Asia/Khandyga.standard.long=Chandyga Zeit
-Asia/Kolkata.generic.long=Zeitzone f\u00FCr Indien
-Asia/Krasnoyarsk.generic.long=Krasnojarsker Zeit
-Asia/Kuala_Lumpur.generic.long=Malaysische Zeit
-Asia/Kuching.generic.long=Malaysische Zeit
-Asia/Kuwait.generic.long=Zeitzone f\u00FCr Arabische Halbinsel
-Asia/Macao.generic.long=Zeitzone f\u00FCr China
-Asia/Macau.generic.long=Zeitzone f\u00FCr China
-Asia/Magadan.generic.long=Magadanische Zeit
-Asia/Makassar.generic.long=Zentralindonesische Zeit
-Asia/Manila.generic.long=Philippinische Zeit
-Asia/Muscat.generic.long=Zeitzone f\u00FCr Persischen Golf
-Asia/Nicosia.generic.long=Osteurop\u00E4ische Zeit
-Asia/Novokuznetsk.generic.long=Nowosibirsker Zeit
-Asia/Novosibirsk.generic.long=Nowosibirsker Zeit
-Asia/Omsk.generic.long=Omsk Zeit
-Asia/Oral.generic.long=Oral Zeit
-Asia/Phnom_Penh.generic.long=Indochina Zeit
-Asia/Pontianak.generic.long=Westindonesische Zeit
-Asia/Pyongyang.generic.long=Zeitzone f\u00FCr Korea
-Asia/Qatar.generic.long=Zeitzone f\u00FCr Arabische Halbinsel
-Asia/Qyzylorda.generic.long=Qyzylorda Zeit
-Asia/Rangoon.generic.long=Myanmar Zeit
-Asia/Saigon.generic.long=Indochina Zeit
-Asia/Sakhalin.generic.long=Sakhalin Zeit
-Asia/Samarkand.generic.long=Usbekistan Zeit
-Asia/Seoul.generic.long=Zeitzone f\u00FCr Korea
-Asia/Shanghai.generic.long=Zeitzone f\u00FCr China
-Asia/Singapore.generic.long=Singapur Zeit
-Asia/Taipei.generic.long=Zeitzone f\u00FCr China
-Asia/Tashkent.generic.long=Usbekistan Zeit
-Asia/Tbilisi.generic.long=Georgische Zeit
-Asia/Tehran.generic.long=Iranische Zeit
-Asia/Tel_Aviv.generic.long=Zeitzone f\u00FCr Israel
-Asia/Thimbu.generic.long=Bhutanische Zeit
-Asia/Thimphu.generic.long=Bhutanische Zeit
-Asia/Tokyo.generic.long=Zeitzone f\u00FCr Japan
-Asia/Ujung_Pandang.generic.long=Zentralindonesische Zeit
-Asia/Ulaanbaatar.generic.long=Ulaanbaatar Zeit
-Asia/Ulan_Bator.generic.long=Ulaanbaatar Zeit
-Asia/Urumqi.generic.long=Zeitzone f\u00FCr China
-Asia/Ust-Nera.daylight.long=Ust-Nera Sommerzeit
-Asia/Ust-Nera.generic.long=Ust-Nera Zeit
-Asia/Ust-Nera.standard.long=Ust-Nera Zeit
-Asia/Vientiane.generic.long=Indochina Zeit
-Asia/Vladivostok.generic.long=Wladiwostok Zeit
-Asia/Yakutsk.generic.long=Jakutsk Zeit
-Asia/Yekaterinburg.generic.long=Jekaterinburger Zeit
-Asia/Yerevan.generic.long=Armenische Zeit
-Atlantic/Azores.generic.long=Azoren Zeit
-Atlantic/Bermuda.generic.long=Zeitzone Atlantik
-Atlantic/Canary.generic.long=Westeurop\u00E4ische Zeit
-Atlantic/Cape_Verde.generic.long=Kap Verde Zeit
-Atlantic/Faeroe.generic.long=Westeurop\u00E4ische Zeit
-Atlantic/Faroe.generic.long=Westeurop\u00E4ische Zeit
-Atlantic/Jan_Mayen.generic.long=Mitteleurop\u00E4ische Zeit
-Atlantic/Madeira.generic.long=Westeurop\u00E4ische Zeit
-Atlantic/Reykjavik.generic.long=Greenwich Zeit
-Atlantic/South_Georgia.generic.long=Zeitzone f\u00FCr S\u00FCdgeorgien
-Atlantic/St_Helena.generic.long=Greenwich Zeit
-Atlantic/Stanley.generic.long=Falkland Inseln Zeit
-Australia/ACT.daylight.long=\u00D6stliche Sommerzeit (New South Wales)
-Australia/ACT.generic.long=\u00D6stliche Zeitzone (New South Wales)
-Australia/ACT.standard.long=\u00D6stliche Normalzeit (New South Wales)
-Australia/Adelaide.daylight.long=Zentrale Sommerzeit (S\u00FCdaustralien)
-Australia/Adelaide.generic.long=Zentrale Zeitzone (S\u00FCdaustralien)
-Australia/Adelaide.standard.long=Zentrale Normalzeit (S\u00FCdaustralien)
-Australia/Brisbane.daylight.long=\u00D6stliche Sommerzeit (Queensland)
-Australia/Brisbane.generic.long=\u00D6stliche Zeitzone (Queensland)
-Australia/Brisbane.standard.long=\u00D6stliche Normalzeit (Queensland)
-Australia/Broken_Hill.daylight.long=Zentrale Sommerzeit (S\u00FCdaustralien/New South Wales)
-Australia/Broken_Hill.generic.long=Zentrale Zeitzone (S\u00FCdaustralien/New South Wales)
-Australia/Broken_Hill.standard.long=Zentrale Normalzeit (S\u00FCdaustralien/New South Wales)
-Australia/Canberra.daylight.long=\u00D6stliche Sommerzeit (New South Wales)
-Australia/Canberra.generic.long=\u00D6stliche Zeitzone (New South Wales)
-Australia/Canberra.standard.long=\u00D6stliche Normalzeit (New South Wales)
-Australia/Currie.daylight.long=\u00D6stliche Sommerzeit (New South Wales)
-Australia/Currie.generic.long=\u00D6stliche Zeitzone (New South Wales)
-Australia/Currie.standard.long=\u00D6stliche Normalzeit (New South Wales)
-Australia/Darwin.daylight.long=Zentrale Sommerzeit (Northern Territory)
-Australia/Darwin.generic.long=Zentrale Zeitzone (Northern Territory)
-Australia/Darwin.standard.long=Zentrale Normalzeit (Northern Territory)
-Australia/Eucla.daylight.long=Zentral-Westliche Sommerzeit (Australien)
-Australia/Eucla.generic.long=Zentral-Westliche Normalzeit (Australien)
-Australia/Eucla.standard.long=Zentral-Westliche Normalzeit (Australien)
-Australia/Hobart.daylight.long=\u00D6stliche Sommerzeit (Tasmanien)
-Australia/Hobart.generic.long=\u00D6stliche Zeitzone (Tasmanien)
-Australia/Hobart.standard.long=\u00D6stliche Normalzeit (Tasmanien)
-Australia/LHI.generic.long=Lord-Howe Normalzeit
-Australia/Lindeman.daylight.long=\u00D6stliche Sommerzeit (Queensland)
-Australia/Lindeman.generic.long=\u00D6stliche Zeitzone (Queensland)
-Australia/Lindeman.standard.long=\u00D6stliche Normalzeit (Queensland)
-Australia/Lord_Howe.generic.long=Lord-Howe Normalzeit
-Australia/Melbourne.daylight.long=\u00D6stliche Sommerzeit (Victoria)
-Australia/Melbourne.generic.long=\u00D6stliche Zeitzone (Victoria)
-Australia/Melbourne.standard.long=\u00D6stliche Normalzeit (Victoria)
-Australia/NSW.daylight.long=\u00D6stliche Sommerzeit (New South Wales)
-Australia/NSW.generic.long=\u00D6stliche Zeitzone (New South Wales)
-Australia/NSW.standard.long=\u00D6stliche Normalzeit (New South Wales)
-Australia/North.daylight.long=Zentrale Sommerzeit (Northern Territory)
-Australia/North.generic.long=Zentrale Zeitzone (Northern Territory)
-Australia/North.standard.long=Zentrale Normalzeit (Northern Territory)
-Australia/Perth.daylight.long=Westliche Sommerzeit (Australien)
-Australia/Perth.generic.long=Westliche Zeitzone (Australien)
-Australia/Perth.standard.long=Westliche Normalzeit (Australien)
-Australia/Queensland.daylight.long=\u00D6stliche Sommerzeit (Queensland)
-Australia/Queensland.generic.long=\u00D6stliche Zeitzone (Queensland)
-Australia/Queensland.standard.long=\u00D6stliche Normalzeit (Queensland)
-Australia/South.daylight.long=Zentrale Sommerzeit (S\u00FCdaustralien)
-Australia/South.generic.long=Zentrale Zeitzone (S\u00FCdaustralien)
-Australia/South.standard.long=Zentrale Normalzeit (S\u00FCdaustralien)
-Australia/Sydney.daylight.long=\u00D6stliche Sommerzeit (New South Wales)
-Australia/Sydney.generic.long=\u00D6stliche Zeitzone (New South Wales)
-Australia/Sydney.standard.long=\u00D6stliche Normalzeit (New South Wales)
-Australia/Tasmania.daylight.long=\u00D6stliche Sommerzeit (Tasmanien)
-Australia/Tasmania.generic.long=\u00D6stliche Zeitzone (Tasmanien)
-Australia/Tasmania.standard.long=\u00D6stliche Normalzeit (Tasmanien)
-Australia/Victoria.daylight.long=\u00D6stliche Sommerzeit (Victoria)
-Australia/Victoria.generic.long=\u00D6stliche Zeitzone (Victoria)
-Australia/Victoria.standard.long=\u00D6stliche Normalzeit (Victoria)
-Australia/West.daylight.long=Westliche Sommerzeit (Australien)
-Australia/West.generic.long=Westliche Zeitzone (Australien)
-Australia/West.standard.long=Westliche Normalzeit (Australien)
-Australia/Yancowinna.daylight.long=Zentrale Sommerzeit (S\u00FCdaustralien/New South Wales)
-Australia/Yancowinna.generic.long=Zentrale Zeitzone (S\u00FCdaustralien/New South Wales)
-Australia/Yancowinna.standard.long=Zentrale Normalzeit (S\u00FCdaustralien/New South Wales)
-BET.generic.long=Brasilianische Zeit
-BST.generic.long=Bangladesch Zeit
-Brazil/Acre.generic.long=Acre Normalzeit
-Brazil/DeNoronha.generic.long=Fernando de Noronha Zeit
-Brazil/East.generic.long=Brasilianische Zeit
-Brazil/West.generic.long=Amazonas Normalzeit
-CAT.generic.long=Zentralafrikanische Zeit
-CET.generic.long=Mitteleurop\u00e4ische Zeit
-CNT.generic.long=Zeitzone f\u00FCr Neufundland
-CST.generic.long=Zentrale Zeitzone
-CST6CDT.generic.long=Zentrale Zeitzone
-CTT.generic.long=Zeitzone f\u00FCr China
-Canada/Atlantic.generic.long=Zeitzone Atlantik
-Canada/Central.generic.long=Zentrale Zeitzone
-Canada/East-Saskatchewan.generic.long=Zentrale Zeitzone
-Canada/Eastern.generic.long=\u00D6stliche Zeitzone
-Canada/Mountain.generic.long=Zeitzone Mountain
-Canada/Newfoundland.generic.long=Zeitzone f\u00FCr Neufundland
-Canada/Pacific.generic.long=Zeitzone Pazifik
-Canada/Saskatchewan.generic.long=Zentrale Zeitzone
-Canada/Yukon.generic.long=Zeitzone Pazifik
-Chile/Continental.generic.long=Chilenische Zeit
-Chile/EasterIsland.generic.long=Osterinseln Zeit
-Cuba.generic.long=Kubanische Normalzeit
-EAT.generic.long=Ostafrikanische Zeit
-ECT.generic.long=Mitteleurop\u00E4ische Zeit
-EET.generic.long=Osteurop\u00e4ische Zeit
-EST.generic.long=\u00d6stliche Zeitzone
-EST5EDT.generic.long=\u00d6stliche Zeitzone
-Egypt.generic.long=Osteurop\u00E4ische Zeit
-Eire.generic.long=Irische Zeit
-Etc/Greenwich.generic.long=Greenwich Zeit
-Etc/UCT.generic.long=Koordinierte Universalzeit
-Etc/UTC.generic.long=Koordinierte Universalzeit
-Etc/Universal.generic.long=Koordinierte Universalzeit
-Etc/Zulu.generic.long=Koordinierte Universalzeit
-Europe/Amsterdam.generic.long=Mitteleurop\u00E4ische Zeit
-Europe/Andorra.generic.long=Mitteleurop\u00E4ische Zeit
-Europe/Athens.generic.long=Osteurop\u00E4ische Zeit
-Europe/Belfast.generic.long=Britische Zeit
-Europe/Belgrade.generic.long=Mitteleurop\u00E4ische Zeit
-Europe/Berlin.generic.long=Mitteleurop\u00E4ische Zeit
-Europe/Bratislava.generic.long=Mitteleurop\u00E4ische Zeit
-Europe/Brussels.generic.long=Mitteleurop\u00E4ische Zeit
-Europe/Bucharest.generic.long=Osteurop\u00E4ische Zeit
-Europe/Budapest.generic.long=Mitteleurop\u00E4ische Zeit
-Europe/Busingen.generic.long=Mitteleurop\u00E4ische Zeit
-Europe/Chisinau.generic.long=Osteurop\u00E4ische Zeit
-Europe/Copenhagen.generic.long=Mitteleurop\u00E4ische Zeit
-Europe/Dublin.generic.long=Irische Zeit
-Europe/Gibraltar.generic.long=Mitteleurop\u00E4ische Zeit
-Europe/Guernsey.generic.long=Britische Zeit
-Europe/Helsinki.generic.long=Osteurop\u00E4ische Zeit
-Europe/Isle_of_Man.generic.long=Britische Zeit
-Europe/Istanbul.generic.long=Osteurop\u00E4ische Zeit
-Europe/Jersey.generic.long=Britische Zeit
-Europe/Kaliningrad.daylight.long=Kaliningrader Sommerzeit
-Europe/Kaliningrad.generic.long=Kaliningrader Zeit
-Europe/Kaliningrad.standard.long=Kaliningrader Zeit
-Europe/Kiev.generic.long=Osteurop\u00E4ische Zeit
-Europe/Lisbon.generic.long=Westeurop\u00E4ische Zeit
-Europe/Ljubljana.generic.long=Mitteleurop\u00E4ische Zeit
-Europe/London.generic.long=Britische Zeit
-Europe/Luxembourg.generic.long=Mitteleurop\u00E4ische Zeit
-Europe/Madrid.generic.long=Mitteleurop\u00E4ische Zeit
-Europe/Malta.generic.long=Mitteleurop\u00E4ische Zeit
-Europe/Mariehamn.generic.long=Osteurop\u00E4ische Zeit
-Europe/Minsk.daylight.long=Kaliningrader Sommerzeit
-Europe/Minsk.generic.long=Kaliningrader Zeit
-Europe/Minsk.standard.long=Kaliningrader Zeit
-Europe/Monaco.generic.long=Mitteleurop\u00E4ische Zeit
-Europe/Moscow.generic.long=Zeitzone f\u00FCr Moskau
-Europe/Nicosia.generic.long=Osteurop\u00E4ische Zeit
-Europe/Oslo.generic.long=Mitteleurop\u00E4ische Zeit
-Europe/Paris.generic.long=Mitteleurop\u00E4ische Zeit
-Europe/Podgorica.generic.long=Mitteleurop\u00E4ische Zeit
-Europe/Prague.generic.long=Mitteleurop\u00E4ische Zeit
-Europe/Riga.generic.long=Osteurop\u00E4ische Zeit
-Europe/Rome.generic.long=Mitteleurop\u00E4ische Zeit
-Europe/Samara.generic.long=Samarische Zeit
-Europe/San_Marino.generic.long=Mitteleurop\u00E4ische Zeit
-Europe/Sarajevo.generic.long=Mitteleurop\u00E4ische Zeit
-Europe/Simferopol.generic.long=Osteurop\u00E4ische Zeit
-Europe/Skopje.generic.long=Mitteleurop\u00E4ische Zeit
-Europe/Sofia.generic.long=Osteurop\u00E4ische Zeit
-Europe/Stockholm.generic.long=Mitteleurop\u00E4ische Zeit
-Europe/Tallinn.generic.long=Osteurop\u00E4ische Zeit
-Europe/Tirane.generic.long=Mitteleurop\u00E4ische Zeit
-Europe/Tiraspol.generic.long=Osteurop\u00E4ische Zeit
-Europe/Uzhgorod.generic.long=Osteurop\u00E4ische Zeit
-Europe/Vaduz.generic.long=Mitteleurop\u00E4ische Zeit
-Europe/Vatican.generic.long=Mitteleurop\u00E4ische Zeit
-Europe/Vienna.generic.long=Mitteleurop\u00E4ische Zeit
-Europe/Vilnius.generic.long=Osteurop\u00E4ische Zeit
-Europe/Volgograd.generic.long=Wolgograder Zeit
-Europe/Warsaw.generic.long=Mitteleurop\u00E4ische Zeit
-Europe/Zagreb.generic.long=Mitteleurop\u00E4ische Zeit
-Europe/Zaporozhye.generic.long=Osteurop\u00E4ische Zeit
-Europe/Zurich.generic.long=Mitteleurop\u00E4ische Zeit
-GB-Eire.generic.long=Britische Zeit
-GB.generic.long=Britische Zeit
-GMT.generic.long=Greenwich Zeit
-Greenwich.generic.long=Greenwich Zeit
-HST.generic.long=Zeitzone f\u00fcr Hawaii
-Hongkong.generic.long=Hongkong Zeit
-IET.generic.long=\u00D6stliche Zeitzone
-IST.generic.long=Zeitzone f\u00FCr Indien
-Iceland.generic.long=Greenwich Zeit
-Indian/Antananarivo.generic.long=Ostafrikanische Zeit
-Indian/Chagos.generic.long=Indischer Ozean Territorium Zeit
-Indian/Christmas.generic.long=Weihnachtsinseln Zeit
-Indian/Cocos.generic.long=Kokos-Inseln Zeit
-Indian/Comoro.generic.long=Ostafrikanische Zeit
-Indian/Kerguelen.generic.long=Franz\u00F6sisch S\u00FCd- u. Antarktische Landzeit
-Indian/Mahe.generic.long=Seychellen Zeit
-Indian/Maldives.generic.long=Maledivische Zeit
-Indian/Mauritius.generic.long=Mauritius Zeit
-Indian/Mayotte.generic.long=Ostafrikanische Zeit
-Indian/Reunion.generic.long=R\u00E9union Zeit
-Iran.generic.long=Iranische Zeit
-Israel.generic.long=Zeitzone f\u00FCr Israel
-JST.generic.long=Zeitzone f\u00FCr Japan
-Jamaica.generic.long=\u00D6stliche Zeitzone
-Japan.generic.long=Zeitzone f\u00FCr Japan
-Kwajalein.generic.long=Marshallinseln Zeit
-Libya.generic.long=Osteurop\u00e4ische Zeit
-MET.generic.long=MET
-MIT.generic.long=West Samoa Zeit
-MST.generic.long=Zeitzone Mountain
-MST7MDT.generic.long=Zeitzone Mountain
-Mexico/BajaNorte.generic.long=Zeitzone Pazifik
-Mexico/BajaSur.generic.long=Zeitzone Mountain
-Mexico/General.generic.long=Zentrale Zeitzone
-NET.generic.long=Armenische Zeit
-NST.generic.long=Zeitzone f\u00FCr Neuseeland
-NZ-CHAT.generic.long=Zeitzone f\u00FCr Chatham-Inseln
-NZ.generic.long=Zeitzone f\u00FCr Neuseeland
-Navajo.generic.long=Zeitzone Mountain
-PLT.generic.long=Pakistanische Zeit
-PNT.generic.long=Zeitzone Mountain
-PRC.generic.long=Zeitzone f\u00FCr China
-PRT.generic.long=Zeitzone Atlantik
-PST.generic.long=Zeitzone Pazifik
-PST8PDT.generic.long=Zeitzone Pazifik
-Pacific/Apia.generic.long=West Samoa Zeit
-Pacific/Auckland.generic.long=Zeitzone f\u00FCr Neuseeland
-Pacific/Chatham.generic.long=Zeitzone f\u00FCr Chatham-Inseln
-Pacific/Chuuk.daylight.long=Chuuk Sommerzeit
-Pacific/Chuuk.generic.long=Chuuk Zeit
-Pacific/Chuuk.standard.long=Chuuk Zeit
-Pacific/Easter.generic.long=Osterinseln Zeit
-Pacific/Efate.generic.long=Vanuatu Zeit
-Pacific/Enderbury.generic.long=Phoenix Inseln Zeit
-Pacific/Fakaofo.generic.long=Tokelau Zeit
-Pacific/Fiji.generic.long=Fidschi Zeit
-Pacific/Funafuti.generic.long=Tuvalu Zeit
-Pacific/Galapagos.generic.long=Galapagos Zeit
-Pacific/Gambier.generic.long=Gambier Zeit
-Pacific/Guadalcanal.generic.long=Salomoninseln Zeit
-Pacific/Guam.generic.long=Zeitzone f\u00FCr die Marianen
-Pacific/Honolulu.generic.long=Zeitzone f\u00FCr Hawaii
-Pacific/Johnston.generic.long=Zeitzone f\u00FCr Hawaii
-Pacific/Kiritimati.generic.long=Line Inseln Zeit
-Pacific/Kosrae.generic.long=Kosrae Zeit
-Pacific/Kwajalein.generic.long=Marshallinseln Zeit
-Pacific/Majuro.generic.long=Marshallinseln Zeit
-Pacific/Marquesas.generic.long=Marquesas Zeit
-Pacific/Midway.generic.long=Zeitzone f\u00FCr Samoa
-Pacific/Nauru.generic.long=Nauru Zeit
-Pacific/Niue.generic.long=Niue Zeit
-Pacific/Norfolk.generic.long=Norfolk Zeit
-Pacific/Noumea.generic.long=Neukaledonische Zeit
-Pacific/Pago_Pago.generic.long=Zeitzone f\u00FCr Samoa
-Pacific/Palau.generic.long=Palau Zeit
-Pacific/Pitcairn.generic.long=Zeitzone f\u00FCr Pitcairn
-Pacific/Pohnpei.daylight.long=Pohnpei Sommerzeit
-Pacific/Pohnpei.generic.long=Pohnpei-Inseln Zeit
-Pacific/Pohnpei.standard.long=Pohnpei Zeit
-Pacific/Ponape.daylight.long=Pohnpei Sommerzeit
-Pacific/Ponape.generic.long=Pohnpei-Inseln Zeit
-Pacific/Ponape.standard.long=Pohnpei Zeit
-Pacific/Port_Moresby.generic.long=Papua-Neuguinea Zeit
-Pacific/Rarotonga.generic.long=Cook-Inseln Zeit
-Pacific/Saipan.generic.long=Zeitzone f\u00FCr die Marianen
-Pacific/Samoa.generic.long=Zeitzone f\u00FCr Samoa
-Pacific/Tahiti.generic.long=Tahiti Zeit
-Pacific/Tarawa.generic.long=Gilbert-Inseln Zeit
-Pacific/Tongatapu.generic.long=Tonga Zeit
-Pacific/Truk.daylight.long=Chuuk Sommerzeit
-Pacific/Truk.generic.long=Chuuk Zeit
-Pacific/Truk.standard.long=Chuuk Zeit
-Pacific/Wake.generic.long=Wake Zeit
-Pacific/Wallis.generic.long=Wallis u. Futuna Zeit
-Pacific/Yap.daylight.long=Chuuk Sommerzeit
-Pacific/Yap.generic.long=Chuuk Zeit
-Pacific/Yap.standard.long=Chuuk Zeit
-Poland.generic.long=Mitteleurop\u00E4ische Zeit
-Portugal.generic.long=Westeurop\u00E4ische Zeit
-ROK.generic.long=Zeitzone f\u00FCr Korea
-SST.generic.long=Salomoninseln Zeit
-Singapore.generic.long=Singapur Zeit
-SystemV/AST4.generic.long=Zeitzone Atlantik
-SystemV/AST4ADT.generic.long=Zeitzone Atlantik
-SystemV/CST6.generic.long=Zentrale Zeitzone
-SystemV/CST6CDT.generic.long=Zentrale Zeitzone
-SystemV/EST5.generic.long=\u00D6stliche Zeitzone
-SystemV/EST5EDT.generic.long=\u00D6stliche Zeitzone
-SystemV/HST10.generic.long=Zeitzone f\u00FCr Hawaii
-SystemV/MST7.generic.long=Zeitzone Mountain
-SystemV/MST7MDT.generic.long=Zeitzone Mountain
-SystemV/PST8.generic.long=Zeitzone Pazifik
-SystemV/PST8PDT.generic.long=Zeitzone Pazifik
-SystemV/YST9.generic.long=Zeitzone f\u00FCr Alaska
-SystemV/YST9YDT.generic.long=Zeitzone f\u00FCr Alaska
-Turkey.generic.long=Osteurop\u00E4ische Zeit
-UCT.generic.long=Koordinierte Universalzeit
-US/Alaska.generic.long=Zeitzone f\u00FCr Alaska
-US/Aleutian.generic.long=Zeitzone f\u00FCr Hawaii und Al\u00EButen
-US/Arizona.generic.long=Zeitzone Mountain
-US/Central.generic.long=Zentrale Zeitzone
-US/East-Indiana.generic.long=\u00D6stliche Zeitzone
-US/Eastern.generic.long=\u00D6stliche Zeitzone
-US/Hawaii.generic.long=Zeitzone f\u00FCr Hawaii
-US/Indiana-Starke.generic.long=Zentrale Zeitzone
-US/Michigan.generic.long=\u00D6stliche Zeitzone
-US/Mountain.generic.long=Zeitzone Mountain
-US/Pacific-New.generic.long=Zeitzone Pazifik
-US/Pacific.generic.long=Zeitzone Pazifik
-US/Samoa.generic.long=Zeitzone f\u00FCr Samoa
-UTC.generic.long=Koordinierte Universalzeit
-Universal.generic.long=Koordinierte Universalzeit
-VST.generic.long=Indochina Zeit
-W-SU.generic.long=Zeitzone f\u00FCr Moskau
-WET.generic.long=Westeurop\u00e4ische Zeit
-Zulu.generic.long=Koordinierte Universalzeit
diff --git a/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_de_short.properties b/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_de_short.properties
deleted file mode 100644
index 8bbaeb45160..00000000000
--- a/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_de_short.properties
+++ /dev/null
@@ -1,1743 +0,0 @@
-ACT.daylight.short=CST
-ACT.generic.short=CT
-ACT.standard.short=CST
-AET.daylight.short=EST
-AET.generic.short=ET
-AET.standard.short=EST
-Africa/Abidjan.daylight.short=GMT
-Africa/Abidjan.generic.short=GMT
-Africa/Abidjan.standard.short=GMT
-Africa/Accra.daylight.short=GHST
-Africa/Accra.generic.short=GMT
-Africa/Accra.standard.short=GMT
-Africa/Addis_Ababa.daylight.short=EAST
-Africa/Addis_Ababa.generic.short=EAT
-Africa/Addis_Ababa.standard.short=EAT
-Africa/Algiers.daylight.short=MESZ
-Africa/Algiers.generic.short=MEZ
-Africa/Algiers.standard.short=MEZ
-Africa/Asmara.daylight.short=EAST
-Africa/Asmara.generic.short=EAT
-Africa/Asmara.standard.short=EAT
-Africa/Asmera.daylight.short=EAST
-Africa/Asmera.generic.short=EAT
-Africa/Asmera.standard.short=EAT
-Africa/Bamako.daylight.short=GMT
-Africa/Bamako.generic.short=GMT
-Africa/Bamako.standard.short=GMT
-Africa/Bangui.daylight.short=WAST
-Africa/Bangui.generic.short=WAT
-Africa/Bangui.standard.short=WAT
-Africa/Banjul.daylight.short=GMT
-Africa/Banjul.generic.short=GMT
-Africa/Banjul.standard.short=GMT
-Africa/Bissau.daylight.short=GMT
-Africa/Bissau.generic.short=GMT
-Africa/Bissau.standard.short=GMT
-Africa/Blantyre.daylight.short=CAST
-Africa/Blantyre.generic.short=CAT
-Africa/Blantyre.standard.short=CAT
-Africa/Brazzaville.daylight.short=WAST
-Africa/Brazzaville.generic.short=WAT
-Africa/Brazzaville.standard.short=WAT
-Africa/Bujumbura.daylight.short=CAST
-Africa/Bujumbura.generic.short=CAT
-Africa/Bujumbura.standard.short=CAT
-Africa/Cairo.daylight.short=OESZ
-Africa/Cairo.generic.short=OEZ
-Africa/Cairo.standard.short=OEZ
-Africa/Casablanca.daylight.short=WESZ
-Africa/Casablanca.generic.short=WEZ
-Africa/Casablanca.standard.short=WEZ
-Africa/Ceuta.daylight.short=MESZ
-Africa/Ceuta.generic.short=MEZ
-Africa/Ceuta.standard.short=MEZ
-Africa/Conakry.daylight.short=GMT
-Africa/Conakry.generic.short=GMT
-Africa/Conakry.standard.short=GMT
-Africa/Dakar.daylight.short=GMT
-Africa/Dakar.generic.short=GMT
-Africa/Dakar.standard.short=GMT
-Africa/Dar_es_Salaam.daylight.short=EAST
-Africa/Dar_es_Salaam.generic.short=EAT
-Africa/Dar_es_Salaam.standard.short=EAT
-Africa/Djibouti.daylight.short=EAST
-Africa/Djibouti.generic.short=EAT
-Africa/Djibouti.standard.short=EAT
-Africa/Douala.daylight.short=WAST
-Africa/Douala.generic.short=WAT
-Africa/Douala.standard.short=WAT
-Africa/El_Aaiun.daylight.short=WESZ
-Africa/El_Aaiun.generic.short=WEZ
-Africa/El_Aaiun.standard.short=WEZ
-Africa/Freetown.daylight.short=SLST
-Africa/Freetown.generic.short=SLT
-Africa/Freetown.standard.short=GMT
-Africa/Gaborone.daylight.short=CAST
-Africa/Gaborone.generic.short=CAT
-Africa/Gaborone.standard.short=CAT
-Africa/Harare.daylight.short=CAST
-Africa/Harare.generic.short=CAT
-Africa/Harare.standard.short=CAT
-Africa/Johannesburg.daylight.short=SAST
-Africa/Johannesburg.generic.short=SAT
-Africa/Johannesburg.standard.short=SAST
-Africa/Juba.daylight.short=EAST
-Africa/Juba.generic.short=EAT
-Africa/Juba.standard.short=EAT
-Africa/Kampala.daylight.short=EAST
-Africa/Kampala.generic.short=EAT
-Africa/Kampala.standard.short=EAT
-Africa/Khartoum.daylight.short=EAST
-Africa/Khartoum.generic.short=EAT
-Africa/Khartoum.standard.short=EAT
-Africa/Kigali.daylight.short=CAST
-Africa/Kigali.generic.short=CAT
-Africa/Kigali.standard.short=CAT
-Africa/Kinshasa.daylight.short=WAST
-Africa/Kinshasa.generic.short=WAT
-Africa/Kinshasa.standard.short=WAT
-Africa/Lagos.daylight.short=WAST
-Africa/Lagos.generic.short=WAT
-Africa/Lagos.standard.short=WAT
-Africa/Libreville.daylight.short=WAST
-Africa/Libreville.generic.short=WAT
-Africa/Libreville.standard.short=WAT
-Africa/Lome.daylight.short=GMT
-Africa/Lome.generic.short=GMT
-Africa/Lome.standard.short=GMT
-Africa/Luanda.daylight.short=WAST
-Africa/Luanda.generic.short=WAT
-Africa/Luanda.standard.short=WAT
-Africa/Lubumbashi.daylight.short=CAST
-Africa/Lubumbashi.generic.short=CAT
-Africa/Lubumbashi.standard.short=CAT
-Africa/Lusaka.daylight.short=CAST
-Africa/Lusaka.generic.short=CAT
-Africa/Lusaka.standard.short=CAT
-Africa/Malabo.daylight.short=WAST
-Africa/Malabo.generic.short=WAT
-Africa/Malabo.standard.short=WAT
-Africa/Maputo.daylight.short=CAST
-Africa/Maputo.generic.short=CAT
-Africa/Maputo.standard.short=CAT
-Africa/Maseru.daylight.short=SAST
-Africa/Maseru.generic.short=SAT
-Africa/Maseru.standard.short=SAST
-Africa/Mbabane.daylight.short=SAST
-Africa/Mbabane.generic.short=SAT
-Africa/Mbabane.standard.short=SAST
-Africa/Mogadishu.daylight.short=EAST
-Africa/Mogadishu.generic.short=EAT
-Africa/Mogadishu.standard.short=EAT
-Africa/Monrovia.daylight.short=GMT
-Africa/Monrovia.generic.short=GMT
-Africa/Monrovia.standard.short=GMT
-Africa/Nairobi.daylight.short=EAST
-Africa/Nairobi.generic.short=EAT
-Africa/Nairobi.standard.short=EAT
-Africa/Ndjamena.daylight.short=WAST
-Africa/Ndjamena.generic.short=WAT
-Africa/Ndjamena.standard.short=WAT
-Africa/Niamey.daylight.short=WAST
-Africa/Niamey.generic.short=WAT
-Africa/Niamey.standard.short=WAT
-Africa/Nouakchott.daylight.short=GMT
-Africa/Nouakchott.generic.short=GMT
-Africa/Nouakchott.standard.short=GMT
-Africa/Ouagadougou.daylight.short=GMT
-Africa/Ouagadougou.generic.short=GMT
-Africa/Ouagadougou.standard.short=GMT
-Africa/Porto-Novo.daylight.short=WAST
-Africa/Porto-Novo.generic.short=WAT
-Africa/Porto-Novo.standard.short=WAT
-Africa/Sao_Tome.daylight.short=GMT
-Africa/Sao_Tome.generic.short=GMT
-Africa/Sao_Tome.standard.short=GMT
-Africa/Timbuktu.daylight.short=GMT
-Africa/Timbuktu.generic.short=GMT
-Africa/Timbuktu.standard.short=GMT
-Africa/Tripoli.daylight.short=OESZ
-Africa/Tripoli.generic.short=OEZ
-Africa/Tripoli.standard.short=OEZ
-Africa/Tunis.daylight.short=MESZ
-Africa/Tunis.generic.short=MEZ
-Africa/Tunis.standard.short=MEZ
-Africa/Windhoek.daylight.short=WAST
-Africa/Windhoek.generic.short=WAT
-Africa/Windhoek.standard.short=WAT
-AGT.daylight.short=ARST
-AGT.generic.short=ART
-AGT.standard.short=ART
-America/Adak.daylight.short=HADT
-America/Adak.generic.short=HAT
-America/Adak.standard.short=HAST
-America/Anchorage.daylight.short=AKDT
-America/Anchorage.generic.short=AKT
-America/Anchorage.standard.short=AKST
-America/Anguilla.daylight.short=ADT
-America/Anguilla.generic.short=AT
-America/Anguilla.standard.short=AST
-America/Antigua.daylight.short=ADT
-America/Antigua.generic.short=AT
-America/Antigua.standard.short=AST
-America/Araguaina.daylight.short=BRST
-America/Araguaina.generic.short=BRT
-America/Araguaina.standard.short=BRT
-America/Argentina/Buenos_Aires.daylight.short=ARST
-America/Argentina/Buenos_Aires.generic.short=ART
-America/Argentina/Buenos_Aires.standard.short=ART
-America/Argentina/Catamarca.daylight.short=ARST
-America/Argentina/Catamarca.generic.short=ART
-America/Argentina/Catamarca.standard.short=ART
-America/Argentina/ComodRivadavia.daylight.short=ARST
-America/Argentina/ComodRivadavia.generic.short=ART
-America/Argentina/ComodRivadavia.standard.short=ART
-America/Argentina/Cordoba.daylight.short=ARST
-America/Argentina/Cordoba.generic.short=ART
-America/Argentina/Cordoba.standard.short=ART
-America/Argentina/Jujuy.daylight.short=ARST
-America/Argentina/Jujuy.generic.short=ART
-America/Argentina/Jujuy.standard.short=ART
-America/Argentina/La_Rioja.daylight.short=ARST
-America/Argentina/La_Rioja.generic.short=ART
-America/Argentina/La_Rioja.standard.short=ART
-America/Argentina/Mendoza.daylight.short=ARST
-America/Argentina/Mendoza.generic.short=ART
-America/Argentina/Mendoza.standard.short=ART
-America/Argentina/Rio_Gallegos.daylight.short=ARST
-America/Argentina/Rio_Gallegos.generic.short=ART
-America/Argentina/Rio_Gallegos.standard.short=ART
-America/Argentina/Salta.daylight.short=ARST
-America/Argentina/Salta.generic.short=ART
-America/Argentina/Salta.standard.short=ART
-America/Argentina/San_Juan.daylight.short=ARST
-America/Argentina/San_Juan.generic.short=ART
-America/Argentina/San_Juan.standard.short=ART
-America/Argentina/San_Luis.daylight.short=ARST
-America/Argentina/San_Luis.generic.short=ART
-America/Argentina/San_Luis.standard.short=ART
-America/Argentina/Tucuman.daylight.short=ARST
-America/Argentina/Tucuman.generic.short=ART
-America/Argentina/Tucuman.standard.short=ART
-America/Argentina/Ushuaia.daylight.short=ARST
-America/Argentina/Ushuaia.generic.short=ART
-America/Argentina/Ushuaia.standard.short=ART
-America/Aruba.daylight.short=ADT
-America/Aruba.generic.short=AT
-America/Aruba.standard.short=AST
-America/Asuncion.daylight.short=PYST
-America/Asuncion.generic.short=PYT
-America/Asuncion.standard.short=PYT
-America/Atikokan.daylight.short=EDT
-America/Atikokan.generic.short=ET
-America/Atikokan.standard.short=EST
-America/Atka.daylight.short=HADT
-America/Atka.generic.short=HAT
-America/Atka.standard.short=HAST
-America/Bahia_Banderas.daylight.short=CDT
-America/Bahia_Banderas.generic.short=CT
-America/Bahia_Banderas.standard.short=CST
-America/Bahia.daylight.short=BRST
-America/Bahia.generic.short=BRT
-America/Bahia.standard.short=BRT
-America/Barbados.daylight.short=ADT
-America/Barbados.generic.short=AT
-America/Barbados.standard.short=AST
-America/Belem.daylight.short=BRST
-America/Belem.generic.short=BRT
-America/Belem.standard.short=BRT
-America/Belize.daylight.short=CDT
-America/Belize.generic.short=CT
-America/Belize.standard.short=CST
-America/Blanc-Sablon.daylight.short=ADT
-America/Blanc-Sablon.generic.short=AT
-America/Blanc-Sablon.standard.short=AST
-America/Boa_Vista.daylight.short=AMST
-America/Boa_Vista.generic.short=AMT
-America/Boa_Vista.standard.short=AMT
-America/Bogota.daylight.short=COST
-America/Bogota.generic.short=COT
-America/Bogota.standard.short=COT
-America/Boise.daylight.short=MDT
-America/Boise.generic.short=MT
-America/Boise.standard.short=MST
-America/Buenos_Aires.daylight.short=ARST
-America/Buenos_Aires.generic.short=ART
-America/Buenos_Aires.standard.short=ART
-America/Cambridge_Bay.daylight.short=MDT
-America/Cambridge_Bay.generic.short=MT
-America/Cambridge_Bay.standard.short=MST
-America/Campo_Grande.daylight.short=AMST
-America/Campo_Grande.generic.short=AMT
-America/Campo_Grande.standard.short=AMT
-America/Cancun.daylight.short=CDT
-America/Cancun.generic.short=CT
-America/Cancun.standard.short=CST
-America/Caracas.daylight.short=VEST
-America/Caracas.generic.short=VET
-America/Caracas.standard.short=VET
-America/Catamarca.daylight.short=ARST
-America/Catamarca.generic.short=ART
-America/Catamarca.standard.short=ART
-America/Cayenne.daylight.short=GFST
-America/Cayenne.generic.short=GFT
-America/Cayenne.standard.short=GFT
-America/Cayman.daylight.short=EDT
-America/Cayman.generic.short=ET
-America/Cayman.standard.short=EST
-America/Chicago.daylight.short=CDT
-America/Chicago.generic.short=CT
-America/Chicago.standard.short=CST
-America/Chihuahua.daylight.short=MDT
-America/Chihuahua.generic.short=MT
-America/Chihuahua.standard.short=MST
-America/Coral_Harbour.daylight.short=EDT
-America/Coral_Harbour.generic.short=ET
-America/Coral_Harbour.standard.short=EST
-America/Cordoba.daylight.short=ARST
-America/Cordoba.generic.short=ART
-America/Cordoba.standard.short=ART
-America/Costa_Rica.daylight.short=CDT
-America/Costa_Rica.generic.short=CT
-America/Costa_Rica.standard.short=CST
-America/Creston.daylight.short=MDT
-America/Creston.generic.short=MT
-America/Creston.standard.short=MST
-America/Cuiaba.daylight.short=AMST
-America/Cuiaba.generic.short=AMT
-America/Cuiaba.standard.short=AMT
-America/Curacao.daylight.short=ADT
-America/Curacao.generic.short=AT
-America/Curacao.standard.short=AST
-America/Danmarkshavn.daylight.short=GMT
-America/Danmarkshavn.generic.short=GMT
-America/Danmarkshavn.standard.short=GMT
-America/Dawson_Creek.daylight.short=MDT
-America/Dawson_Creek.generic.short=MT
-America/Dawson_Creek.standard.short=MST
-America/Dawson.daylight.short=PDT
-America/Dawson.generic.short=PT
-America/Dawson.standard.short=PST
-America/Denver.daylight.short=MDT
-America/Denver.generic.short=MT
-America/Denver.standard.short=MST
-America/Detroit.daylight.short=EDT
-America/Detroit.generic.short=ET
-America/Detroit.standard.short=EST
-America/Dominica.daylight.short=ADT
-America/Dominica.generic.short=AT
-America/Dominica.standard.short=AST
-America/Edmonton.daylight.short=MDT
-America/Edmonton.generic.short=MT
-America/Edmonton.standard.short=MST
-America/Eirunepe.daylight.short=ACST
-America/Eirunepe.generic.short=ACT
-America/Eirunepe.standard.short=ACT
-America/El_Salvador.daylight.short=CDT
-America/El_Salvador.generic.short=CT
-America/El_Salvador.standard.short=CST
-America/Ensenada.daylight.short=PDT
-America/Ensenada.generic.short=PT
-America/Ensenada.standard.short=PST
-America/Fortaleza.daylight.short=BRST
-America/Fortaleza.generic.short=BRT
-America/Fortaleza.standard.short=BRT
-America/Fort_Wayne.daylight.short=EDT
-America/Fort_Wayne.generic.short=ET
-America/Fort_Wayne.standard.short=EST
-America/Glace_Bay.daylight.short=ADT
-America/Glace_Bay.generic.short=AT
-America/Glace_Bay.standard.short=AST
-America/Godthab.daylight.short=WGST
-America/Godthab.generic.short=WGT
-America/Godthab.standard.short=WGT
-America/Goose_Bay.daylight.short=ADT
-America/Goose_Bay.generic.short=AT
-America/Goose_Bay.standard.short=AST
-America/Grand_Turk.daylight.short=EDT
-America/Grand_Turk.generic.short=ET
-America/Grand_Turk.standard.short=EST
-America/Grenada.daylight.short=ADT
-America/Grenada.generic.short=AT
-America/Grenada.standard.short=AST
-America/Guadeloupe.daylight.short=ADT
-America/Guadeloupe.generic.short=AT
-America/Guadeloupe.standard.short=AST
-America/Guatemala.daylight.short=CDT
-America/Guatemala.generic.short=CT
-America/Guatemala.standard.short=CST
-America/Guayaquil.daylight.short=ECST
-America/Guayaquil.generic.short=ECT
-America/Guayaquil.standard.short=ECT
-America/Guyana.daylight.short=GYST
-America/Guyana.generic.short=GYT
-America/Guyana.standard.short=GYT
-America/Halifax.daylight.short=ADT
-America/Halifax.generic.short=AT
-America/Halifax.standard.short=AST
-America/Havana.daylight.short=CDT
-America/Havana.generic.short=CT
-America/Havana.standard.short=CST
-America/Hermosillo.daylight.short=MDT
-America/Hermosillo.generic.short=MT
-America/Hermosillo.standard.short=MST
-America/Indiana/Indianapolis.daylight.short=EDT
-America/Indiana/Indianapolis.generic.short=ET
-America/Indiana/Indianapolis.standard.short=EST
-America/Indiana/Knox.daylight.short=CDT
-America/Indiana/Knox.generic.short=CT
-America/Indiana/Knox.standard.short=CST
-America/Indiana/Marengo.daylight.short=EDT
-America/Indiana/Marengo.generic.short=ET
-America/Indiana/Marengo.standard.short=EST
-America/Indiana/Petersburg.daylight.short=EDT
-America/Indiana/Petersburg.generic.short=ET
-America/Indiana/Petersburg.standard.short=EST
-America/Indianapolis.daylight.short=EDT
-America/Indianapolis.generic.short=ET
-America/Indianapolis.standard.short=EST
-America/Indiana/Tell_City.daylight.short=CDT
-America/Indiana/Tell_City.generic.short=CT
-America/Indiana/Tell_City.standard.short=CST
-America/Indiana/Vevay.daylight.short=EDT
-America/Indiana/Vevay.generic.short=ET
-America/Indiana/Vevay.standard.short=EST
-America/Indiana/Vincennes.daylight.short=EDT
-America/Indiana/Vincennes.generic.short=ET
-America/Indiana/Vincennes.standard.short=EST
-America/Indiana/Winamac.daylight.short=EDT
-America/Indiana/Winamac.generic.short=ET
-America/Indiana/Winamac.standard.short=EST
-America/Inuvik.daylight.short=MDT
-America/Inuvik.generic.short=MT
-America/Inuvik.standard.short=MST
-America/Iqaluit.daylight.short=EDT
-America/Iqaluit.generic.short=ET
-America/Iqaluit.standard.short=EST
-America/Jamaica.daylight.short=EDT
-America/Jamaica.generic.short=ET
-America/Jamaica.standard.short=EST
-America/Jujuy.daylight.short=ARST
-America/Jujuy.generic.short=ART
-America/Jujuy.standard.short=ART
-America/Juneau.daylight.short=AKDT
-America/Juneau.generic.short=AKT
-America/Juneau.standard.short=AKST
-America/Kentucky/Louisville.daylight.short=EDT
-America/Kentucky/Louisville.generic.short=ET
-America/Kentucky/Louisville.standard.short=EST
-America/Kentucky/Monticello.daylight.short=EDT
-America/Kentucky/Monticello.generic.short=ET
-America/Kentucky/Monticello.standard.short=EST
-America/Knox_IN.daylight.short=CDT
-America/Knox_IN.generic.short=CT
-America/Knox_IN.standard.short=CST
-America/Kralendijk.daylight.short=ADT
-America/Kralendijk.generic.short=AT
-America/Kralendijk.standard.short=AST
-America/La_Paz.daylight.short=BOST
-America/La_Paz.generic.short=BOT
-America/La_Paz.standard.short=BOT
-America/Lima.daylight.short=PEST
-America/Lima.generic.short=PET
-America/Lima.standard.short=PET
-America/Los_Angeles.daylight.short=PDT
-America/Los_Angeles.generic.short=PT
-America/Los_Angeles.standard.short=PST
-America/Louisville.daylight.short=EDT
-America/Louisville.generic.short=ET
-America/Louisville.standard.short=EST
-America/Lower_Princes.daylight.short=ADT
-America/Lower_Princes.generic.short=AT
-America/Lower_Princes.standard.short=AST
-America/Maceio.daylight.short=BRST
-America/Maceio.generic.short=BRT
-America/Maceio.standard.short=BRT
-America/Managua.daylight.short=CDT
-America/Managua.generic.short=CT
-America/Managua.standard.short=CST
-America/Manaus.daylight.short=AMST
-America/Manaus.generic.short=AMT
-America/Manaus.standard.short=AMT
-America/Marigot.daylight.short=ADT
-America/Marigot.generic.short=AT
-America/Marigot.standard.short=AST
-America/Martinique.daylight.short=ADT
-America/Martinique.generic.short=AT
-America/Martinique.standard.short=AST
-America/Matamoros.daylight.short=CDT
-America/Matamoros.generic.short=CT
-America/Matamoros.standard.short=CST
-America/Mazatlan.daylight.short=MDT
-America/Mazatlan.generic.short=MT
-America/Mazatlan.standard.short=MST
-America/Mendoza.daylight.short=ARST
-America/Mendoza.generic.short=ART
-America/Mendoza.standard.short=ART
-America/Menominee.daylight.short=CDT
-America/Menominee.generic.short=CT
-America/Menominee.standard.short=CST
-America/Merida.daylight.short=CDT
-America/Merida.generic.short=CT
-America/Merida.standard.short=CST
-America/Metlakatla.daylight.short=MeDT
-America/Metlakatla.generic.short=MeT
-America/Metlakatla.standard.short=MeST
-America/Mexico_City.daylight.short=CDT
-America/Mexico_City.generic.short=CT
-America/Mexico_City.standard.short=CST
-America/Miquelon.daylight.short=PMDT
-America/Miquelon.generic.short=PMT
-America/Miquelon.standard.short=PMST
-America/Moncton.daylight.short=ADT
-America/Moncton.generic.short=AT
-America/Moncton.standard.short=AST
-America/Monterrey.daylight.short=CDT
-America/Monterrey.generic.short=CT
-America/Monterrey.standard.short=CST
-America/Montevideo.daylight.short=UYST
-America/Montevideo.generic.short=UYT
-America/Montevideo.standard.short=UYT
-America/Montreal.daylight.short=EDT
-America/Montreal.generic.short=ET
-America/Montreal.standard.short=EST
-America/Montserrat.daylight.short=ADT
-America/Montserrat.generic.short=AT
-America/Montserrat.standard.short=AST
-America/Nassau.daylight.short=EDT
-America/Nassau.generic.short=ET
-America/Nassau.standard.short=EST
-America/New_York.daylight.short=EDT
-America/New_York.generic.short=ET
-America/New_York.standard.short=EST
-America/Nipigon.daylight.short=EDT
-America/Nipigon.generic.short=ET
-America/Nipigon.standard.short=EST
-America/Nome.daylight.short=AKDT
-America/Nome.generic.short=AKT
-America/Nome.standard.short=AKST
-America/Noronha.daylight.short=FNST
-America/Noronha.generic.short=FNT
-America/Noronha.standard.short=FNT
-America/North_Dakota/Beulah.daylight.short=CDT
-America/North_Dakota/Beulah.generic.short=CT
-America/North_Dakota/Beulah.standard.short=CST
-America/North_Dakota/Center.daylight.short=CDT
-America/North_Dakota/Center.generic.short=CT
-America/North_Dakota/Center.standard.short=CST
-America/North_Dakota/New_Salem.daylight.short=CDT
-America/North_Dakota/New_Salem.generic.short=CT
-America/North_Dakota/New_Salem.standard.short=CST
-America/Ojinaga.daylight.short=MDT
-America/Ojinaga.generic.short=MT
-America/Ojinaga.standard.short=MST
-America/Panama.daylight.short=EDT
-America/Panama.generic.short=ET
-America/Panama.standard.short=EST
-America/Pangnirtung.daylight.short=EDT
-America/Pangnirtung.generic.short=ET
-America/Pangnirtung.standard.short=EST
-America/Paramaribo.daylight.short=SRST
-America/Paramaribo.generic.short=SRT
-America/Paramaribo.standard.short=SRT
-America/Phoenix.daylight.short=MDT
-America/Phoenix.generic.short=MT
-America/Phoenix.standard.short=MST
-America/Port-au-Prince.daylight.short=EDT
-America/Port-au-Prince.generic.short=ET
-America/Port-au-Prince.standard.short=EST
-America/Porto_Acre.daylight.short=ACST
-America/Porto_Acre.generic.short=ACT
-America/Porto_Acre.standard.short=ACT
-America/Port_of_Spain.daylight.short=ADT
-America/Port_of_Spain.generic.short=AT
-America/Port_of_Spain.standard.short=AST
-America/Porto_Velho.daylight.short=AMST
-America/Porto_Velho.generic.short=AMT
-America/Porto_Velho.standard.short=AMT
-America/Puerto_Rico.daylight.short=ADT
-America/Puerto_Rico.generic.short=AT
-America/Puerto_Rico.standard.short=AST
-America/Rainy_River.daylight.short=CDT
-America/Rainy_River.generic.short=CT
-America/Rainy_River.standard.short=CST
-America/Rankin_Inlet.daylight.short=CDT
-America/Rankin_Inlet.generic.short=CT
-America/Rankin_Inlet.standard.short=CST
-America/Recife.daylight.short=BRST
-America/Recife.generic.short=BRT
-America/Recife.standard.short=BRT
-America/Regina.daylight.short=CDT
-America/Regina.generic.short=CT
-America/Regina.standard.short=CST
-America/Resolute.daylight.short=CDT
-America/Resolute.generic.short=CT
-America/Resolute.standard.short=CST
-America/Rio_Branco.daylight.short=ACST
-America/Rio_Branco.generic.short=ACT
-America/Rio_Branco.standard.short=ACT
-America/Rosario.daylight.short=ARST
-America/Rosario.generic.short=ART
-America/Rosario.standard.short=ART
-America/Santa_Isabel.daylight.short=PDT
-America/Santa_Isabel.generic.short=PT
-America/Santa_Isabel.standard.short=PST
-America/Santarem.daylight.short=BRST
-America/Santarem.generic.short=BRT
-America/Santarem.standard.short=BRT
-America/Santiago.daylight.short=CLST
-America/Santiago.generic.short=CLT
-America/Santiago.standard.short=CLT
-America/Santo_Domingo.daylight.short=ADT
-America/Santo_Domingo.generic.short=AT
-America/Santo_Domingo.standard.short=AST
-America/Sao_Paulo.daylight.short=BRST
-America/Sao_Paulo.generic.short=BRT
-America/Sao_Paulo.standard.short=BRT
-America/Scoresbysund.daylight.short=EGST
-America/Scoresbysund.generic.short=EGT
-America/Scoresbysund.standard.short=EGT
-America/Shiprock.daylight.short=MDT
-America/Shiprock.generic.short=MT
-America/Shiprock.standard.short=MST
-America/Sitka.daylight.short=AKDT
-America/Sitka.generic.short=AKT
-America/Sitka.standard.short=AKST
-America/St_Barthelemy.daylight.short=ADT
-America/St_Barthelemy.generic.short=AT
-America/St_Barthelemy.standard.short=AST
-America/St_Johns.daylight.short=NDT
-America/St_Johns.generic.short=NT
-America/St_Johns.standard.short=NST
-America/St_Kitts.daylight.short=ADT
-America/St_Kitts.generic.short=AT
-America/St_Kitts.standard.short=AST
-America/St_Lucia.daylight.short=ADT
-America/St_Lucia.generic.short=AT
-America/St_Lucia.standard.short=AST
-America/St_Thomas.daylight.short=ADT
-America/St_Thomas.generic.short=AT
-America/St_Thomas.standard.short=AST
-America/St_Vincent.daylight.short=ADT
-America/St_Vincent.generic.short=AT
-America/St_Vincent.standard.short=AST
-America/Swift_Current.daylight.short=CDT
-America/Swift_Current.generic.short=CT
-America/Swift_Current.standard.short=CST
-America/Tegucigalpa.daylight.short=CDT
-America/Tegucigalpa.generic.short=CT
-America/Tegucigalpa.standard.short=CST
-America/Thule.daylight.short=ADT
-America/Thule.generic.short=AT
-America/Thule.standard.short=AST
-America/Thunder_Bay.daylight.short=EDT
-America/Thunder_Bay.generic.short=ET
-America/Thunder_Bay.standard.short=EST
-America/Tijuana.daylight.short=PDT
-America/Tijuana.generic.short=PT
-America/Tijuana.standard.short=PST
-America/Toronto.daylight.short=EDT
-America/Toronto.generic.short=ET
-America/Toronto.standard.short=EST
-America/Tortola.daylight.short=ADT
-America/Tortola.generic.short=AT
-America/Tortola.standard.short=AST
-America/Vancouver.daylight.short=PDT
-America/Vancouver.generic.short=PT
-America/Vancouver.standard.short=PST
-America/Virgin.daylight.short=ADT
-America/Virgin.generic.short=AT
-America/Virgin.standard.short=AST
-America/Whitehorse.daylight.short=PDT
-America/Whitehorse.generic.short=PT
-America/Whitehorse.standard.short=PST
-America/Winnipeg.daylight.short=CDT
-America/Winnipeg.generic.short=CT
-America/Winnipeg.standard.short=CST
-America/Yakutat.daylight.short=AKDT
-America/Yakutat.generic.short=AKT
-America/Yakutat.standard.short=AKST
-America/Yellowknife.daylight.short=MDT
-America/Yellowknife.generic.short=MT
-America/Yellowknife.standard.short=MST
-Antarctica/Casey.daylight.short=WST
-Antarctica/Casey.generic.short=WT
-Antarctica/Casey.standard.short=WST
-Antarctica/Davis.daylight.short=DAVST
-Antarctica/Davis.generic.short=DAVT
-Antarctica/Davis.standard.short=DAVT
-Antarctica/DumontDUrville.daylight.short=DDUST
-Antarctica/DumontDUrville.generic.short=DDUT
-Antarctica/DumontDUrville.standard.short=DDUT
-Antarctica/Macquarie.daylight.short=MIST
-Antarctica/Macquarie.generic.short=MIST
-Antarctica/Macquarie.standard.short=MIST
-Antarctica/Mawson.daylight.short=MAWST
-Antarctica/Mawson.generic.short=MAWT
-Antarctica/Mawson.standard.short=MAWT
-Antarctica/McMurdo.daylight.short=NZDT
-Antarctica/McMurdo.generic.short=NZT
-Antarctica/McMurdo.standard.short=NZST
-Antarctica/Palmer.daylight.short=CLST
-Antarctica/Palmer.generic.short=CLT
-Antarctica/Palmer.standard.short=CLT
-Antarctica/Rothera.daylight.short=ROTST
-Antarctica/Rothera.generic.short=ROTT
-Antarctica/Rothera.standard.short=ROTT
-Antarctica/South_Pole.daylight.short=NZDT
-Antarctica/South_Pole.generic.short=NZT
-Antarctica/South_Pole.standard.short=NZST
-Antarctica/Syowa.daylight.short=SYOST
-Antarctica/Syowa.generic.short=SYOT
-Antarctica/Syowa.standard.short=SYOT
-Antarctica/Vostok.daylight.short=VOSST
-Antarctica/Vostok.generic.short=VOST
-Antarctica/Vostok.standard.short=VOST
-Arctic/Longyearbyen.daylight.short=MESZ
-Arctic/Longyearbyen.generic.short=MEZ
-Arctic/Longyearbyen.standard.short=MEZ
-ART.daylight.short=OESZ
-ART.generic.short=OEZ
-ART.standard.short=OEZ
-Asia/Aden.daylight.short=ADT
-Asia/Aden.generic.short=AT
-Asia/Aden.standard.short=AST
-Asia/Almaty.daylight.short=ALMST
-Asia/Almaty.generic.short=ALMT
-Asia/Almaty.standard.short=ALMT
-Asia/Amman.daylight.short=ADT
-Asia/Amman.generic.short=AT
-Asia/Amman.standard.short=AST
-Asia/Anadyr.daylight.short=ANAST
-Asia/Anadyr.generic.short=ANAT
-Asia/Anadyr.standard.short=ANAT
-Asia/Aqtau.daylight.short=AQTST
-Asia/Aqtau.generic.short=AQTT
-Asia/Aqtau.standard.short=AQTT
-Asia/Aqtobe.daylight.short=AQTST
-Asia/Aqtobe.generic.short=AQTT
-Asia/Aqtobe.standard.short=AQTT
-Asia/Ashgabat.daylight.short=TMST
-Asia/Ashgabat.generic.short=TMT
-Asia/Ashgabat.standard.short=TMT
-Asia/Ashkhabad.daylight.short=TMST
-Asia/Ashkhabad.generic.short=TMT
-Asia/Ashkhabad.standard.short=TMT
-Asia/Baghdad.daylight.short=ADT
-Asia/Baghdad.generic.short=AT
-Asia/Baghdad.standard.short=AST
-Asia/Bahrain.daylight.short=ADT
-Asia/Bahrain.generic.short=AT
-Asia/Bahrain.standard.short=AST
-Asia/Baku.daylight.short=AZST
-Asia/Baku.generic.short=AZT
-Asia/Baku.standard.short=AZT
-Asia/Bangkok.daylight.short=ICST
-Asia/Bangkok.generic.short=ICT
-Asia/Bangkok.standard.short=ICT
-Asia/Beirut.daylight.short=OESZ
-Asia/Beirut.generic.short=OEZ
-Asia/Beirut.standard.short=OEZ
-Asia/Bishkek.daylight.short=KGST
-Asia/Bishkek.generic.short=KGT
-Asia/Bishkek.standard.short=KGT
-Asia/Brunei.daylight.short=BNST
-Asia/Brunei.generic.short=BNT
-Asia/Brunei.standard.short=BNT
-Asia/Calcutta.daylight.short=IDT
-Asia/Calcutta.generic.short=IT
-Asia/Calcutta.standard.short=IST
-Asia/Choibalsan.daylight.short=CHOST
-Asia/Choibalsan.generic.short=CHOT
-Asia/Choibalsan.standard.short=CHOT
-Asia/Chongqing.daylight.short=CDT
-Asia/Chongqing.generic.short=CT
-Asia/Chongqing.standard.short=CST
-Asia/Chungking.daylight.short=CDT
-Asia/Chungking.generic.short=CT
-Asia/Chungking.standard.short=CST
-Asia/Colombo.daylight.short=IDT
-Asia/Colombo.generic.short=IT
-Asia/Colombo.standard.short=IST
-Asia/Dacca.daylight.short=BDST
-Asia/Dacca.generic.short=BDT
-Asia/Dacca.standard.short=BDT
-Asia/Damascus.daylight.short=OESZ
-Asia/Damascus.generic.short=OEZ
-Asia/Damascus.standard.short=OEZ
-Asia/Dhaka.daylight.short=BDST
-Asia/Dhaka.generic.short=BDT
-Asia/Dhaka.standard.short=BDT
-Asia/Dili.daylight.short=TLST
-Asia/Dili.generic.short=TLT
-Asia/Dili.standard.short=TLT
-Asia/Dubai.daylight.short=GDT
-Asia/Dubai.generic.short=GT
-Asia/Dubai.standard.short=GST
-Asia/Dushanbe.daylight.short=TJST
-Asia/Dushanbe.generic.short=TJT
-Asia/Dushanbe.standard.short=TJT
-Asia/Gaza.daylight.short=OESZ
-Asia/Gaza.generic.short=OEZ
-Asia/Gaza.standard.short=OEZ
-Asia/Harbin.daylight.short=CDT
-Asia/Harbin.generic.short=CT
-Asia/Harbin.standard.short=CST
-Asia/Hebron.daylight.short=OESZ
-Asia/Hebron.generic.short=OEZ
-Asia/Hebron.standard.short=OEZ
-Asia/Ho_Chi_Minh.daylight.short=ICST
-Asia/Ho_Chi_Minh.generic.short=ICT
-Asia/Ho_Chi_Minh.standard.short=ICT
-Asia/Hong_Kong.daylight.short=HKST
-Asia/Hong_Kong.generic.short=HKT
-Asia/Hong_Kong.standard.short=HKT
-Asia/Hovd.daylight.short=HOVST
-Asia/Hovd.generic.short=HOVT
-Asia/Hovd.standard.short=HOVT
-Asia/Irkutsk.daylight.short=IRKST
-Asia/Irkutsk.generic.short=IRKT
-Asia/Irkutsk.standard.short=IRKT
-Asia/Istanbul.daylight.short=OESZ
-Asia/Istanbul.generic.short=OEZ
-Asia/Istanbul.standard.short=OEZ
-Asia/Jakarta.daylight.short=WIST
-Asia/Jakarta.generic.short=WIB
-Asia/Jakarta.standard.short=WIB
-Asia/Jayapura.daylight.short=EIST
-Asia/Jayapura.generic.short=WIT
-Asia/Jayapura.standard.short=WIT
-Asia/Jerusalem.daylight.short=IDT
-Asia/Jerusalem.generic.short=IT
-Asia/Jerusalem.standard.short=IST
-Asia/Kabul.daylight.short=AFST
-Asia/Kabul.generic.short=AFT
-Asia/Kabul.standard.short=AFT
-Asia/Kamchatka.daylight.short=PETST
-Asia/Kamchatka.generic.short=PETT
-Asia/Kamchatka.standard.short=PETT
-Asia/Karachi.daylight.short=PKST
-Asia/Karachi.generic.short=PKT
-Asia/Karachi.standard.short=PKT
-Asia/Kashgar.daylight.short=CDT
-Asia/Kashgar.generic.short=CT
-Asia/Kashgar.standard.short=CST
-Asia/Kathmandu.daylight.short=NPST
-Asia/Kathmandu.generic.short=NPT
-Asia/Kathmandu.standard.short=NPT
-Asia/Katmandu.daylight.short=NPST
-Asia/Katmandu.generic.short=NPT
-Asia/Katmandu.standard.short=NPT
-Asia/Khandyga.daylight.short=YAKST
-Asia/Khandyga.generic.short=YAKT
-Asia/Khandyga.standard.short=YAKT
-Asia/Kolkata.daylight.short=IDT
-Asia/Kolkata.generic.short=IT
-Asia/Kolkata.standard.short=IST
-Asia/Krasnoyarsk.daylight.short=KRAST
-Asia/Krasnoyarsk.generic.short=KRAT
-Asia/Krasnoyarsk.standard.short=KRAT
-Asia/Kuala_Lumpur.daylight.short=MYST
-Asia/Kuala_Lumpur.generic.short=MYT
-Asia/Kuala_Lumpur.standard.short=MYT
-Asia/Kuching.daylight.short=MYST
-Asia/Kuching.generic.short=MYT
-Asia/Kuching.standard.short=MYT
-Asia/Kuwait.daylight.short=ADT
-Asia/Kuwait.generic.short=AT
-Asia/Kuwait.standard.short=AST
-Asia/Macao.daylight.short=CDT
-Asia/Macao.generic.short=CT
-Asia/Macao.standard.short=CST
-Asia/Macau.daylight.short=CDT
-Asia/Macau.generic.short=CT
-Asia/Macau.standard.short=CST
-Asia/Magadan.daylight.short=MAGST
-Asia/Magadan.generic.short=MAGT
-Asia/Magadan.standard.short=MAGT
-Asia/Makassar.daylight.short=CIST
-Asia/Makassar.generic.short=WITA
-Asia/Makassar.standard.short=WITA
-Asia/Manila.daylight.short=PHST
-Asia/Manila.generic.short=PHT
-Asia/Manila.standard.short=PHT
-Asia/Muscat.daylight.short=GDT
-Asia/Muscat.generic.short=GT
-Asia/Muscat.standard.short=GST
-Asia/Nicosia.daylight.short=OESZ
-Asia/Nicosia.generic.short=OEZ
-Asia/Nicosia.standard.short=OEZ
-Asia/Novokuznetsk.daylight.short=NOVST
-Asia/Novokuznetsk.generic.short=NOVT
-Asia/Novokuznetsk.standard.short=NOVT
-Asia/Novosibirsk.daylight.short=NOVST
-Asia/Novosibirsk.generic.short=NOVT
-Asia/Novosibirsk.standard.short=NOVT
-Asia/Omsk.daylight.short=OMSST
-Asia/Omsk.generic.short=OMST
-Asia/Omsk.standard.short=OMST
-Asia/Oral.daylight.short=ORAST
-Asia/Oral.generic.short=ORAT
-Asia/Oral.standard.short=ORAT
-Asia/Phnom_Penh.daylight.short=ICST
-Asia/Phnom_Penh.generic.short=ICT
-Asia/Phnom_Penh.standard.short=ICT
-Asia/Pontianak.daylight.short=WIST
-Asia/Pontianak.generic.short=WIB
-Asia/Pontianak.standard.short=WIB
-Asia/Pyongyang.daylight.short=KDT
-Asia/Pyongyang.generic.short=KT
-Asia/Pyongyang.standard.short=KST
-Asia/Qatar.daylight.short=ADT
-Asia/Qatar.generic.short=AT
-Asia/Qatar.standard.short=AST
-Asia/Qyzylorda.daylight.short=QYZST
-Asia/Qyzylorda.generic.short=QYZT
-Asia/Qyzylorda.standard.short=QYZT
-Asia/Rangoon.daylight.short=MMST
-Asia/Rangoon.generic.short=MMT
-Asia/Rangoon.standard.short=MMT
-Asia/Saigon.daylight.short=ICST
-Asia/Saigon.generic.short=ICT
-Asia/Saigon.standard.short=ICT
-Asia/Sakhalin.daylight.short=SAKST
-Asia/Sakhalin.generic.short=SAKT
-Asia/Sakhalin.standard.short=SAKT
-Asia/Samarkand.daylight.short=UZST
-Asia/Samarkand.generic.short=UZT
-Asia/Samarkand.standard.short=UZT
-Asia/Seoul.daylight.short=KDT
-Asia/Seoul.generic.short=KT
-Asia/Seoul.standard.short=KST
-Asia/Shanghai.daylight.short=CDT
-Asia/Shanghai.generic.short=CT
-Asia/Shanghai.standard.short=CST
-Asia/Singapore.daylight.short=SGST
-Asia/Singapore.generic.short=SGT
-Asia/Singapore.standard.short=SGT
-Asia/Taipei.daylight.short=CDT
-Asia/Taipei.generic.short=CT
-Asia/Taipei.standard.short=CST
-Asia/Tashkent.daylight.short=UZST
-Asia/Tashkent.generic.short=UZT
-Asia/Tashkent.standard.short=UZT
-Asia/Tbilisi.daylight.short=GEST
-Asia/Tbilisi.generic.short=GET
-Asia/Tbilisi.standard.short=GET
-Asia/Tehran.daylight.short=IRDT
-Asia/Tehran.generic.short=IRT
-Asia/Tehran.standard.short=IRST
-Asia/Tel_Aviv.daylight.short=IDT
-Asia/Tel_Aviv.generic.short=IT
-Asia/Tel_Aviv.standard.short=IST
-Asia/Thimbu.daylight.short=BTST
-Asia/Thimbu.generic.short=BTT
-Asia/Thimbu.standard.short=BTT
-Asia/Thimphu.daylight.short=BTST
-Asia/Thimphu.generic.short=BTT
-Asia/Thimphu.standard.short=BTT
-Asia/Tokyo.daylight.short=JDT
-Asia/Tokyo.generic.short=JT
-Asia/Tokyo.standard.short=JST
-Asia/Ujung_Pandang.daylight.short=CIST
-Asia/Ujung_Pandang.generic.short=WITA
-Asia/Ujung_Pandang.standard.short=WITA
-Asia/Ulaanbaatar.daylight.short=ULAST
-Asia/Ulaanbaatar.generic.short=ULAT
-Asia/Ulaanbaatar.standard.short=ULAT
-Asia/Ulan_Bator.daylight.short=ULAST
-Asia/Ulan_Bator.generic.short=ULAT
-Asia/Ulan_Bator.standard.short=ULAT
-Asia/Urumqi.daylight.short=CDT
-Asia/Urumqi.generic.short=CT
-Asia/Urumqi.standard.short=CST
-Asia/Ust-Nera.daylight.short=VLAST
-Asia/Ust-Nera.generic.short=VLAT
-Asia/Ust-Nera.standard.short=VLAT
-Asia/Vientiane.daylight.short=ICST
-Asia/Vientiane.generic.short=ICT
-Asia/Vientiane.standard.short=ICT
-Asia/Vladivostok.daylight.short=VLAST
-Asia/Vladivostok.generic.short=VLAT
-Asia/Vladivostok.standard.short=VLAT
-Asia/Yakutsk.daylight.short=YAKST
-Asia/Yakutsk.generic.short=YAKT
-Asia/Yakutsk.standard.short=YAKT
-Asia/Yekaterinburg.daylight.short=YEKST
-Asia/Yekaterinburg.generic.short=YEKT
-Asia/Yekaterinburg.standard.short=YEKT
-Asia/Yerevan.daylight.short=AMST
-Asia/Yerevan.generic.short=AMT
-Asia/Yerevan.standard.short=AMT
-AST.daylight.short=AKDT
-AST.generic.short=AKT
-AST.standard.short=AKST
-Atlantic/Azores.daylight.short=AZOST
-Atlantic/Azores.generic.short=AZOT
-Atlantic/Azores.standard.short=AZOT
-Atlantic/Bermuda.daylight.short=ADT
-Atlantic/Bermuda.generic.short=AT
-Atlantic/Bermuda.standard.short=AST
-Atlantic/Canary.daylight.short=WESZ
-Atlantic/Canary.generic.short=WEZ
-Atlantic/Canary.standard.short=WEZ
-Atlantic/Cape_Verde.daylight.short=CVST
-Atlantic/Cape_Verde.generic.short=CVT
-Atlantic/Cape_Verde.standard.short=CVT
-Atlantic/Faeroe.daylight.short=WESZ
-Atlantic/Faeroe.generic.short=WEZ
-Atlantic/Faeroe.standard.short=WEZ
-Atlantic/Faroe.daylight.short=WESZ
-Atlantic/Faroe.generic.short=WEZ
-Atlantic/Faroe.standard.short=WEZ
-Atlantic/Jan_Mayen.daylight.short=MESZ
-Atlantic/Jan_Mayen.generic.short=MEZ
-Atlantic/Jan_Mayen.standard.short=MEZ
-Atlantic/Madeira.daylight.short=WESZ
-Atlantic/Madeira.generic.short=WEZ
-Atlantic/Madeira.standard.short=WEZ
-Atlantic/Reykjavik.daylight.short=GMT
-Atlantic/Reykjavik.generic.short=GMT
-Atlantic/Reykjavik.standard.short=GMT
-Atlantic/South_Georgia.daylight.short=GDT
-Atlantic/South_Georgia.generic.short=GT
-Atlantic/South_Georgia.standard.short=GST
-Atlantic/Stanley.daylight.short=FKST
-Atlantic/Stanley.generic.short=FKT
-Atlantic/Stanley.standard.short=FKT
-Atlantic/St_Helena.daylight.short=GMT
-Atlantic/St_Helena.generic.short=GMT
-Atlantic/St_Helena.standard.short=GMT
-Australia/ACT.daylight.short=EST
-Australia/ACT.generic.short=ET
-Australia/ACT.standard.short=EST
-Australia/Adelaide.daylight.short=CST
-Australia/Adelaide.generic.short=CT
-Australia/Adelaide.standard.short=CST
-Australia/Brisbane.daylight.short=EST
-Australia/Brisbane.generic.short=ET
-Australia/Brisbane.standard.short=EST
-Australia/Broken_Hill.daylight.short=CST
-Australia/Broken_Hill.generic.short=CT
-Australia/Broken_Hill.standard.short=CST
-Australia/Canberra.daylight.short=EST
-Australia/Canberra.generic.short=ET
-Australia/Canberra.standard.short=EST
-Australia/Currie.daylight.short=EST
-Australia/Currie.generic.short=ET
-Australia/Currie.standard.short=EST
-Australia/Darwin.daylight.short=CST
-Australia/Darwin.generic.short=CT
-Australia/Darwin.standard.short=CST
-Australia/Eucla.daylight.short=CWST
-Australia/Eucla.generic.short=CWT
-Australia/Eucla.standard.short=CWST
-Australia/Hobart.daylight.short=EST
-Australia/Hobart.generic.short=ET
-Australia/Hobart.standard.short=EST
-Australia/LHI.daylight.short=LHST
-Australia/LHI.generic.short=LHT
-Australia/LHI.standard.short=LHST
-Australia/Lindeman.daylight.short=EST
-Australia/Lindeman.generic.short=ET
-Australia/Lindeman.standard.short=EST
-Australia/Lord_Howe.daylight.short=LHST
-Australia/Lord_Howe.generic.short=LHT
-Australia/Lord_Howe.standard.short=LHST
-Australia/Melbourne.daylight.short=EST
-Australia/Melbourne.generic.short=ET
-Australia/Melbourne.standard.short=EST
-Australia/North.daylight.short=CST
-Australia/North.generic.short=CT
-Australia/North.standard.short=CST
-Australia/NSW.daylight.short=EST
-Australia/NSW.generic.short=ET
-Australia/NSW.standard.short=EST
-Australia/Perth.daylight.short=WST
-Australia/Perth.generic.short=WT
-Australia/Perth.standard.short=WST
-Australia/Queensland.daylight.short=EST
-Australia/Queensland.generic.short=ET
-Australia/Queensland.standard.short=EST
-Australia/South.daylight.short=CST
-Australia/South.generic.short=CT
-Australia/South.standard.short=CST
-Australia/Sydney.daylight.short=EST
-Australia/Sydney.generic.short=ET
-Australia/Sydney.standard.short=EST
-Australia/Tasmania.daylight.short=EST
-Australia/Tasmania.generic.short=ET
-Australia/Tasmania.standard.short=EST
-Australia/Victoria.daylight.short=EST
-Australia/Victoria.generic.short=ET
-Australia/Victoria.standard.short=EST
-Australia/West.daylight.short=WST
-Australia/West.generic.short=WT
-Australia/West.standard.short=WST
-Australia/Yancowinna.daylight.short=CST
-Australia/Yancowinna.generic.short=CT
-Australia/Yancowinna.standard.short=CST
-BET.daylight.short=BRST
-BET.generic.short=BRT
-BET.standard.short=BRT
-Brazil/Acre.daylight.short=ACST
-Brazil/Acre.generic.short=ACT
-Brazil/Acre.standard.short=ACT
-Brazil/DeNoronha.daylight.short=FNST
-Brazil/DeNoronha.generic.short=FNT
-Brazil/DeNoronha.standard.short=FNT
-Brazil/East.daylight.short=BRST
-Brazil/East.generic.short=BRT
-Brazil/East.standard.short=BRT
-Brazil/West.daylight.short=AMST
-Brazil/West.generic.short=AMT
-Brazil/West.standard.short=AMT
-BST.daylight.short=BDST
-BST.generic.short=BDT
-BST.standard.short=BDT
-Canada/Atlantic.daylight.short=ADT
-Canada/Atlantic.generic.short=AT
-Canada/Atlantic.standard.short=AST
-Canada/Central.daylight.short=CDT
-Canada/Central.generic.short=CT
-Canada/Central.standard.short=CST
-Canada/Eastern.daylight.short=EDT
-Canada/Eastern.generic.short=ET
-Canada/Eastern.standard.short=EST
-Canada/East-Saskatchewan.daylight.short=CDT
-Canada/East-Saskatchewan.generic.short=CT
-Canada/East-Saskatchewan.standard.short=CST
-Canada/Mountain.daylight.short=MDT
-Canada/Mountain.generic.short=MT
-Canada/Mountain.standard.short=MST
-Canada/Newfoundland.daylight.short=NDT
-Canada/Newfoundland.generic.short=NT
-Canada/Newfoundland.standard.short=NST
-Canada/Pacific.daylight.short=PDT
-Canada/Pacific.generic.short=PT
-Canada/Pacific.standard.short=PST
-Canada/Saskatchewan.daylight.short=CDT
-Canada/Saskatchewan.generic.short=CT
-Canada/Saskatchewan.standard.short=CST
-Canada/Yukon.daylight.short=PDT
-Canada/Yukon.generic.short=PT
-Canada/Yukon.standard.short=PST
-CAT.daylight.short=CAST
-CAT.generic.short=CAT
-CAT.standard.short=CAT
-CET.daylight.short=MESZ
-CET.generic.short=MEZ
-CET.standard.short=MEZ
-Chile/Continental.daylight.short=CLST
-Chile/Continental.generic.short=CLT
-Chile/Continental.standard.short=CLT
-Chile/EasterIsland.daylight.short=EASST
-Chile/EasterIsland.generic.short=EAST
-Chile/EasterIsland.standard.short=EAST
-CNT.daylight.short=NDT
-CNT.generic.short=NT
-CNT.standard.short=NST
-CST6CDT.daylight.short=CDT
-CST6CDT.generic.short=CT
-CST6CDT.standard.short=CST
-CST.daylight.short=CDT
-CST.generic.short=CT
-CST.standard.short=CST
-CTT.daylight.short=CDT
-CTT.generic.short=CT
-CTT.standard.short=CST
-Cuba.daylight.short=CDT
-Cuba.generic.short=CT
-Cuba.standard.short=CST
-EAT.daylight.short=EAST
-EAT.generic.short=EAT
-EAT.standard.short=EAT
-ECT.daylight.short=MESZ
-ECT.generic.short=MEZ
-ECT.standard.short=MEZ
-EET.daylight.short=OESZ
-EET.generic.short=OEZ
-EET.standard.short=OEZ
-Egypt.daylight.short=OESZ
-Egypt.generic.short=OEZ
-Egypt.standard.short=OEZ
-Eire.daylight.short=IST
-Eire.generic.short=IT
-Eire.standard.short=GMT
-EST5EDT.daylight.short=EDT
-EST5EDT.generic.short=ET
-EST5EDT.standard.short=EST
-EST.daylight.short=EDT
-EST.generic.short=ET
-EST.standard.short=EST
-Etc/Greenwich.daylight.short=GMT
-Etc/Greenwich.generic.short=GMT
-Etc/Greenwich.standard.short=GMT
-Etc/UCT.daylight.short=UTC
-Etc/UCT.generic.short=UTC
-Etc/UCT.standard.short=UTC
-Etc/Universal.daylight.short=UTC
-Etc/Universal.generic.short=UTC
-Etc/Universal.standard.short=UTC
-Etc/UTC.daylight.short=UTC
-Etc/UTC.generic.short=UTC
-Etc/UTC.standard.short=UTC
-Etc/Zulu.daylight.short=UTC
-Etc/Zulu.generic.short=UTC
-Etc/Zulu.standard.short=UTC
-Europe/Amsterdam.daylight.short=MESZ
-Europe/Amsterdam.generic.short=MEZ
-Europe/Amsterdam.standard.short=MEZ
-Europe/Andorra.daylight.short=MESZ
-Europe/Andorra.generic.short=MEZ
-Europe/Andorra.standard.short=MEZ
-Europe/Athens.daylight.short=OESZ
-Europe/Athens.generic.short=OEZ
-Europe/Athens.standard.short=OEZ
-Europe/Belfast.daylight.short=BST
-Europe/Belfast.generic.short=BT
-Europe/Belfast.standard.short=GMT
-Europe/Belgrade.daylight.short=MESZ
-Europe/Belgrade.generic.short=MEZ
-Europe/Belgrade.standard.short=MEZ
-Europe/Berlin.daylight.short=MESZ
-Europe/Berlin.generic.short=MEZ
-Europe/Berlin.standard.short=MEZ
-Europe/Bratislava.daylight.short=MESZ
-Europe/Bratislava.generic.short=MEZ
-Europe/Bratislava.standard.short=MEZ
-Europe/Brussels.daylight.short=MESZ
-Europe/Brussels.generic.short=MEZ
-Europe/Brussels.standard.short=MEZ
-Europe/Bucharest.daylight.short=OESZ
-Europe/Bucharest.generic.short=OEZ
-Europe/Bucharest.standard.short=OEZ
-Europe/Budapest.daylight.short=MESZ
-Europe/Budapest.generic.short=MEZ
-Europe/Budapest.standard.short=MEZ
-Europe/Busingen.daylight.short=MESZ
-Europe/Busingen.generic.short=MEZ
-Europe/Busingen.standard.short=MEZ
-Europe/Chisinau.daylight.short=OESZ
-Europe/Chisinau.generic.short=OEZ
-Europe/Chisinau.standard.short=OEZ
-Europe/Copenhagen.daylight.short=MESZ
-Europe/Copenhagen.generic.short=MEZ
-Europe/Copenhagen.standard.short=MEZ
-Europe/Dublin.daylight.short=IST
-Europe/Dublin.generic.short=IT
-Europe/Dublin.standard.short=GMT
-Europe/Gibraltar.daylight.short=MESZ
-Europe/Gibraltar.generic.short=MEZ
-Europe/Gibraltar.standard.short=MEZ
-Europe/Guernsey.daylight.short=BST
-Europe/Guernsey.generic.short=BT
-Europe/Guernsey.standard.short=GMT
-Europe/Helsinki.daylight.short=OESZ
-Europe/Helsinki.generic.short=OEZ
-Europe/Helsinki.standard.short=OEZ
-Europe/Isle_of_Man.daylight.short=BST
-Europe/Isle_of_Man.generic.short=BT
-Europe/Isle_of_Man.standard.short=GMT
-Europe/Istanbul.daylight.short=OESZ
-Europe/Istanbul.generic.short=OEZ
-Europe/Istanbul.standard.short=OEZ
-Europe/Jersey.daylight.short=BST
-Europe/Jersey.generic.short=BT
-Europe/Jersey.standard.short=GMT
-Europe/Kaliningrad.daylight.short=FEST
-Europe/Kaliningrad.generic.short=FET
-Europe/Kaliningrad.standard.short=FET
-Europe/Kiev.daylight.short=OESZ
-Europe/Kiev.generic.short=OEZ
-Europe/Kiev.standard.short=OEZ
-Europe/Lisbon.daylight.short=WESZ
-Europe/Lisbon.generic.short=WEZ
-Europe/Lisbon.standard.short=WEZ
-Europe/Ljubljana.daylight.short=MESZ
-Europe/Ljubljana.generic.short=MEZ
-Europe/Ljubljana.standard.short=MEZ
-Europe/London.daylight.short=BST
-Europe/London.generic.short=BT
-Europe/London.standard.short=GMT
-Europe/Luxembourg.daylight.short=MESZ
-Europe/Luxembourg.generic.short=MEZ
-Europe/Luxembourg.standard.short=MEZ
-Europe/Madrid.daylight.short=MESZ
-Europe/Madrid.generic.short=MEZ
-Europe/Madrid.standard.short=MEZ
-Europe/Malta.daylight.short=MESZ
-Europe/Malta.generic.short=MEZ
-Europe/Malta.standard.short=MEZ
-Europe/Mariehamn.daylight.short=OESZ
-Europe/Mariehamn.generic.short=OEZ
-Europe/Mariehamn.standard.short=OEZ
-Europe/Minsk.daylight.short=FEST
-Europe/Minsk.generic.short=FET
-Europe/Minsk.standard.short=FET
-Europe/Monaco.daylight.short=MESZ
-Europe/Monaco.generic.short=MEZ
-Europe/Monaco.standard.short=MEZ
-Europe/Moscow.daylight.short=MSD
-Europe/Moscow.generic.short=MT
-Europe/Moscow.standard.short=MSK
-Europe/Nicosia.daylight.short=OESZ
-Europe/Nicosia.generic.short=OEZ
-Europe/Nicosia.standard.short=OEZ
-Europe/Oslo.daylight.short=MESZ
-Europe/Oslo.generic.short=MEZ
-Europe/Oslo.standard.short=MEZ
-Europe/Paris.daylight.short=MESZ
-Europe/Paris.generic.short=MEZ
-Europe/Paris.standard.short=MEZ
-Europe/Podgorica.daylight.short=MESZ
-Europe/Podgorica.generic.short=MEZ
-Europe/Podgorica.standard.short=MEZ
-Europe/Prague.daylight.short=MESZ
-Europe/Prague.generic.short=MEZ
-Europe/Prague.standard.short=MEZ
-Europe/Riga.daylight.short=OESZ
-Europe/Riga.generic.short=OEZ
-Europe/Riga.standard.short=OEZ
-Europe/Rome.daylight.short=MESZ
-Europe/Rome.generic.short=MEZ
-Europe/Rome.standard.short=MEZ
-Europe/Samara.daylight.short=SAMST
-Europe/Samara.generic.short=SAMT
-Europe/Samara.standard.short=SAMT
-Europe/San_Marino.daylight.short=MESZ
-Europe/San_Marino.generic.short=MEZ
-Europe/San_Marino.standard.short=MEZ
-Europe/Sarajevo.daylight.short=MESZ
-Europe/Sarajevo.generic.short=MEZ
-Europe/Sarajevo.standard.short=MEZ
-Europe/Simferopol.daylight.short=OESZ
-Europe/Simferopol.generic.short=OEZ
-Europe/Simferopol.standard.short=OEZ
-Europe/Skopje.daylight.short=MESZ
-Europe/Skopje.generic.short=MEZ
-Europe/Skopje.standard.short=MEZ
-Europe/Sofia.daylight.short=OESZ
-Europe/Sofia.generic.short=OEZ
-Europe/Sofia.standard.short=OEZ
-Europe/Stockholm.daylight.short=MESZ
-Europe/Stockholm.generic.short=MEZ
-Europe/Stockholm.standard.short=MEZ
-Europe/Tallinn.daylight.short=OESZ
-Europe/Tallinn.generic.short=OEZ
-Europe/Tallinn.standard.short=OEZ
-Europe/Tirane.daylight.short=MESZ
-Europe/Tirane.generic.short=MEZ
-Europe/Tirane.standard.short=MEZ
-Europe/Tiraspol.daylight.short=OESZ
-Europe/Tiraspol.generic.short=OEZ
-Europe/Tiraspol.standard.short=OEZ
-Europe/Uzhgorod.daylight.short=OESZ
-Europe/Uzhgorod.generic.short=OEZ
-Europe/Uzhgorod.standard.short=OEZ
-Europe/Vaduz.daylight.short=MESZ
-Europe/Vaduz.generic.short=MEZ
-Europe/Vaduz.standard.short=MEZ
-Europe/Vatican.daylight.short=MESZ
-Europe/Vatican.generic.short=MEZ
-Europe/Vatican.standard.short=MEZ
-Europe/Vienna.daylight.short=MESZ
-Europe/Vienna.generic.short=MEZ
-Europe/Vienna.standard.short=MEZ
-Europe/Vilnius.daylight.short=OESZ
-Europe/Vilnius.generic.short=OEZ
-Europe/Vilnius.standard.short=OEZ
-Europe/Volgograd.daylight.short=VOLST
-Europe/Volgograd.generic.short=VOLT
-Europe/Volgograd.standard.short=VOLT
-Europe/Warsaw.daylight.short=MESZ
-Europe/Warsaw.generic.short=MEZ
-Europe/Warsaw.standard.short=MEZ
-Europe/Zagreb.daylight.short=MESZ
-Europe/Zagreb.generic.short=MEZ
-Europe/Zagreb.standard.short=MEZ
-Europe/Zaporozhye.daylight.short=OESZ
-Europe/Zaporozhye.generic.short=OEZ
-Europe/Zaporozhye.standard.short=OEZ
-Europe/Zurich.daylight.short=MESZ
-Europe/Zurich.generic.short=MEZ
-Europe/Zurich.standard.short=MEZ
-GB.daylight.short=BST
-GB-Eire.daylight.short=BST
-GB-Eire.generic.short=BT
-GB-Eire.standard.short=GMT
-GB.generic.short=BT
-GB.standard.short=GMT
-GMT.daylight.short=GMT
-GMT.generic.short=GMT
-GMT.standard.short=GMT
-Greenwich.daylight.short=GMT
-Greenwich.generic.short=GMT
-Greenwich.standard.short=GMT
-Hongkong.daylight.short=HKST
-Hongkong.generic.short=HKT
-Hongkong.standard.short=HKT
-HST.daylight.short=HDT
-HST.generic.short=HT
-HST.standard.short=HST
-Iceland.daylight.short=GMT
-Iceland.generic.short=GMT
-Iceland.standard.short=GMT
-IET.daylight.short=EDT
-IET.generic.short=ET
-IET.standard.short=EST
-Indian/Antananarivo.daylight.short=EAST
-Indian/Antananarivo.generic.short=EAT
-Indian/Antananarivo.standard.short=EAT
-Indian/Chagos.daylight.short=IOST
-Indian/Chagos.generic.short=IOT
-Indian/Chagos.standard.short=IOT
-Indian/Christmas.daylight.short=CXST
-Indian/Christmas.generic.short=CIT
-Indian/Christmas.standard.short=CXT
-Indian/Cocos.daylight.short=CCST
-Indian/Cocos.generic.short=CCT
-Indian/Cocos.standard.short=CCT
-Indian/Comoro.daylight.short=EAST
-Indian/Comoro.generic.short=EAT
-Indian/Comoro.standard.short=EAT
-Indian/Kerguelen.daylight.short=TFST
-Indian/Kerguelen.generic.short=TFT
-Indian/Kerguelen.standard.short=TFT
-Indian/Mahe.daylight.short=SCST
-Indian/Mahe.generic.short=SCT
-Indian/Mahe.standard.short=SCT
-Indian/Maldives.daylight.short=MVST
-Indian/Maldives.generic.short=MVT
-Indian/Maldives.standard.short=MVT
-Indian/Mauritius.daylight.short=MUST
-Indian/Mauritius.generic.short=MUT
-Indian/Mauritius.standard.short=MUT
-Indian/Mayotte.daylight.short=EAST
-Indian/Mayotte.generic.short=EAT
-Indian/Mayotte.standard.short=EAT
-Indian/Reunion.daylight.short=REST
-Indian/Reunion.generic.short=RET
-Indian/Reunion.standard.short=RET
-Iran.daylight.short=IRDT
-Iran.generic.short=IRT
-Iran.standard.short=IRST
-Israel.daylight.short=IDT
-Israel.generic.short=IT
-Israel.standard.short=IST
-IST.daylight.short=IDT
-IST.generic.short=IT
-IST.standard.short=IST
-Jamaica.daylight.short=EDT
-Jamaica.generic.short=ET
-Jamaica.standard.short=EST
-Japan.daylight.short=JDT
-Japan.generic.short=JT
-Japan.standard.short=JST
-JST.daylight.short=JDT
-JST.generic.short=JT
-JST.standard.short=JST
-Kwajalein.daylight.short=MHST
-Kwajalein.generic.short=MHT
-Kwajalein.standard.short=MHT
-Libya.daylight.short=OESZ
-Libya.generic.short=OEZ
-Libya.standard.short=OEZ
-MET.daylight.short=MEST
-MET.generic.short=MET
-MET.standard.short=MET
-Mexico/BajaNorte.daylight.short=PDT
-Mexico/BajaNorte.generic.short=PT
-Mexico/BajaNorte.standard.short=PST
-Mexico/BajaSur.daylight.short=MDT
-Mexico/BajaSur.generic.short=MT
-Mexico/BajaSur.standard.short=MST
-Mexico/General.daylight.short=CDT
-Mexico/General.generic.short=CT
-Mexico/General.standard.short=CST
-MIT.daylight.short=WSDT
-MIT.generic.short=WST
-MIT.standard.short=WST
-MST7MDT.daylight.short=MDT
-MST7MDT.generic.short=MT
-MST7MDT.standard.short=MST
-MST.daylight.short=MDT
-MST.generic.short=MT
-MST.standard.short=MST
-Navajo.daylight.short=MDT
-Navajo.generic.short=MT
-Navajo.standard.short=MST
-NET.daylight.short=AMST
-NET.generic.short=AMT
-NET.standard.short=AMT
-NST.daylight.short=NZDT
-NST.generic.short=NZT
-NST.standard.short=NZST
-NZ-CHAT.daylight.short=CHADT
-NZ-CHAT.generic.short=CHAT
-NZ-CHAT.standard.short=CHAST
-NZ.daylight.short=NZDT
-NZ.generic.short=NZT
-NZ.standard.short=NZST
-Pacific/Apia.daylight.short=WSDT
-Pacific/Apia.generic.short=WST
-Pacific/Apia.standard.short=WST
-Pacific/Auckland.daylight.short=NZDT
-Pacific/Auckland.generic.short=NZT
-Pacific/Auckland.standard.short=NZST
-Pacific/Chatham.daylight.short=CHADT
-Pacific/Chatham.generic.short=CHAT
-Pacific/Chatham.standard.short=CHAST
-Pacific/Chuuk.daylight.short=CHUST
-Pacific/Chuuk.generic.short=CHUT
-Pacific/Chuuk.standard.short=CHUT
-Pacific/Easter.daylight.short=EASST
-Pacific/Easter.generic.short=EAST
-Pacific/Easter.standard.short=EAST
-Pacific/Efate.daylight.short=VUST
-Pacific/Efate.generic.short=VUT
-Pacific/Efate.standard.short=VUT
-Pacific/Enderbury.daylight.short=PHOST
-Pacific/Enderbury.generic.short=PHOT
-Pacific/Enderbury.standard.short=PHOT
-Pacific/Fakaofo.daylight.short=TKST
-Pacific/Fakaofo.generic.short=TKT
-Pacific/Fakaofo.standard.short=TKT
-Pacific/Fiji.daylight.short=FJST
-Pacific/Fiji.generic.short=FJT
-Pacific/Fiji.standard.short=FJT
-Pacific/Funafuti.daylight.short=TVST
-Pacific/Funafuti.generic.short=TVT
-Pacific/Funafuti.standard.short=TVT
-Pacific/Galapagos.daylight.short=GALST
-Pacific/Galapagos.generic.short=GALT
-Pacific/Galapagos.standard.short=GALT
-Pacific/Gambier.daylight.short=GAMST
-Pacific/Gambier.generic.short=GAMT
-Pacific/Gambier.standard.short=GAMT
-Pacific/Guadalcanal.daylight.short=SBST
-Pacific/Guadalcanal.generic.short=SBT
-Pacific/Guadalcanal.standard.short=SBT
-Pacific/Guam.daylight.short=ChDT
-Pacific/Guam.generic.short=ChT
-Pacific/Guam.standard.short=ChST
-Pacific/Honolulu.daylight.short=HDT
-Pacific/Honolulu.generic.short=HT
-Pacific/Honolulu.standard.short=HST
-Pacific/Johnston.daylight.short=HDT
-Pacific/Johnston.generic.short=HT
-Pacific/Johnston.standard.short=HST
-Pacific/Kiritimati.daylight.short=LINST
-Pacific/Kiritimati.generic.short=LINT
-Pacific/Kiritimati.standard.short=LINT
-Pacific/Kosrae.daylight.short=KOSST
-Pacific/Kosrae.generic.short=KOST
-Pacific/Kosrae.standard.short=KOST
-Pacific/Kwajalein.daylight.short=MHST
-Pacific/Kwajalein.generic.short=MHT
-Pacific/Kwajalein.standard.short=MHT
-Pacific/Majuro.daylight.short=MHST
-Pacific/Majuro.generic.short=MHT
-Pacific/Majuro.standard.short=MHT
-Pacific/Marquesas.daylight.short=MARST
-Pacific/Marquesas.generic.short=MART
-Pacific/Marquesas.standard.short=MART
-Pacific/Midway.daylight.short=SDT
-Pacific/Midway.generic.short=ST
-Pacific/Midway.standard.short=SST
-Pacific/Nauru.daylight.short=NRST
-Pacific/Nauru.generic.short=NRT
-Pacific/Nauru.standard.short=NRT
-Pacific/Niue.daylight.short=NUST
-Pacific/Niue.generic.short=NUT
-Pacific/Niue.standard.short=NUT
-Pacific/Norfolk.daylight.short=NFST
-Pacific/Norfolk.generic.short=NFT
-Pacific/Norfolk.standard.short=NFT
-Pacific/Noumea.daylight.short=NCST
-Pacific/Noumea.generic.short=NCT
-Pacific/Noumea.standard.short=NCT
-Pacific/Pago_Pago.daylight.short=SDT
-Pacific/Pago_Pago.generic.short=ST
-Pacific/Pago_Pago.standard.short=SST
-Pacific/Palau.daylight.short=PWST
-Pacific/Palau.generic.short=PWT
-Pacific/Palau.standard.short=PWT
-Pacific/Pitcairn.daylight.short=PDT
-Pacific/Pitcairn.generic.short=PT
-Pacific/Pitcairn.standard.short=PST
-Pacific/Pohnpei.daylight.short=PONST
-Pacific/Pohnpei.generic.short=PONT
-Pacific/Pohnpei.standard.short=PONT
-Pacific/Ponape.daylight.short=PONST
-Pacific/Ponape.generic.short=PONT
-Pacific/Ponape.standard.short=PONT
-Pacific/Port_Moresby.daylight.short=PGST
-Pacific/Port_Moresby.generic.short=PGT
-Pacific/Port_Moresby.standard.short=PGT
-Pacific/Rarotonga.daylight.short=CKHST
-Pacific/Rarotonga.generic.short=CKT
-Pacific/Rarotonga.standard.short=CKT
-Pacific/Saipan.daylight.short=ChDT
-Pacific/Saipan.generic.short=ChT
-Pacific/Saipan.standard.short=ChST
-Pacific/Samoa.daylight.short=SDT
-Pacific/Samoa.generic.short=ST
-Pacific/Samoa.standard.short=SST
-Pacific/Tahiti.daylight.short=TAHST
-Pacific/Tahiti.generic.short=TAHT
-Pacific/Tahiti.standard.short=TAHT
-Pacific/Tarawa.daylight.short=GILST
-Pacific/Tarawa.generic.short=GILT
-Pacific/Tarawa.standard.short=GILT
-Pacific/Tongatapu.daylight.short=TOST
-Pacific/Tongatapu.generic.short=TOT
-Pacific/Tongatapu.standard.short=TOT
-Pacific/Truk.daylight.short=CHUST
-Pacific/Truk.generic.short=CHUT
-Pacific/Truk.standard.short=CHUT
-Pacific/Wake.daylight.short=WAKST
-Pacific/Wake.generic.short=WAKT
-Pacific/Wake.standard.short=WAKT
-Pacific/Wallis.daylight.short=WFST
-Pacific/Wallis.generic.short=WFT
-Pacific/Wallis.standard.short=WFT
-Pacific/Yap.daylight.short=CHUST
-Pacific/Yap.generic.short=CHUT
-Pacific/Yap.standard.short=CHUT
-PLT.daylight.short=PKST
-PLT.generic.short=PKT
-PLT.standard.short=PKT
-PNT.daylight.short=MDT
-PNT.generic.short=MT
-PNT.standard.short=MST
-Poland.daylight.short=MESZ
-Poland.generic.short=MEZ
-Poland.standard.short=MEZ
-Portugal.daylight.short=WESZ
-Portugal.generic.short=WEZ
-Portugal.standard.short=WEZ
-PRC.daylight.short=CDT
-PRC.generic.short=CT
-PRC.standard.short=CST
-PRT.daylight.short=ADT
-PRT.generic.short=AT
-PRT.standard.short=AST
-PST8PDT.daylight.short=PDT
-PST8PDT.generic.short=PT
-PST8PDT.standard.short=PST
-PST.daylight.short=PDT
-PST.generic.short=PT
-PST.standard.short=PST
-ROK.daylight.short=KDT
-ROK.generic.short=KT
-ROK.standard.short=KST
-Singapore.daylight.short=SGST
-Singapore.generic.short=SGT
-Singapore.standard.short=SGT
-SST.daylight.short=SBST
-SST.generic.short=SBT
-SST.standard.short=SBT
-SystemV/AST4ADT.daylight.short=ADT
-SystemV/AST4ADT.generic.short=AT
-SystemV/AST4ADT.standard.short=AST
-SystemV/AST4.daylight.short=ADT
-SystemV/AST4.generic.short=AT
-SystemV/AST4.standard.short=AST
-SystemV/CST6CDT.daylight.short=CDT
-SystemV/CST6CDT.generic.short=CT
-SystemV/CST6CDT.standard.short=CST
-SystemV/CST6.daylight.short=CDT
-SystemV/CST6.generic.short=CT
-SystemV/CST6.standard.short=CST
-SystemV/EST5.daylight.short=EDT
-SystemV/EST5EDT.daylight.short=EDT
-SystemV/EST5EDT.generic.short=ET
-SystemV/EST5EDT.standard.short=EST
-SystemV/EST5.generic.short=ET
-SystemV/EST5.standard.short=EST
-SystemV/HST10.daylight.short=HDT
-SystemV/HST10.generic.short=HT
-SystemV/HST10.standard.short=HST
-SystemV/MST7.daylight.short=MDT
-SystemV/MST7.generic.short=MT
-SystemV/MST7MDT.daylight.short=MDT
-SystemV/MST7MDT.generic.short=MT
-SystemV/MST7MDT.standard.short=MST
-SystemV/MST7.standard.short=MST
-SystemV/PST8.daylight.short=PDT
-SystemV/PST8.generic.short=PT
-SystemV/PST8PDT.daylight.short=PDT
-SystemV/PST8PDT.generic.short=PT
-SystemV/PST8PDT.standard.short=PST
-SystemV/PST8.standard.short=PST
-SystemV/YST9.daylight.short=AKDT
-SystemV/YST9.generic.short=AKT
-SystemV/YST9.standard.short=AKST
-SystemV/YST9YDT.daylight.short=AKDT
-SystemV/YST9YDT.generic.short=AKT
-SystemV/YST9YDT.standard.short=AKST
-Turkey.daylight.short=OESZ
-Turkey.generic.short=OEZ
-Turkey.standard.short=OEZ
-UCT.daylight.short=UTC
-UCT.generic.short=UTC
-UCT.standard.short=UTC
-Universal.daylight.short=UTC
-Universal.generic.short=UTC
-Universal.standard.short=UTC
-US/Alaska.daylight.short=AKDT
-US/Alaska.generic.short=AKT
-US/Alaska.standard.short=AKST
-US/Aleutian.daylight.short=HADT
-US/Aleutian.generic.short=HAT
-US/Aleutian.standard.short=HAST
-US/Arizona.daylight.short=MDT
-US/Arizona.generic.short=MT
-US/Arizona.standard.short=MST
-US/Central.daylight.short=CDT
-US/Central.generic.short=CT
-US/Central.standard.short=CST
-US/Eastern.daylight.short=EDT
-US/Eastern.generic.short=ET
-US/Eastern.standard.short=EST
-US/East-Indiana.daylight.short=EDT
-US/East-Indiana.generic.short=ET
-US/East-Indiana.standard.short=EST
-US/Hawaii.daylight.short=HDT
-US/Hawaii.generic.short=HT
-US/Hawaii.standard.short=HST
-US/Indiana-Starke.daylight.short=CDT
-US/Indiana-Starke.generic.short=CT
-US/Indiana-Starke.standard.short=CST
-US/Michigan.daylight.short=EDT
-US/Michigan.generic.short=ET
-US/Michigan.standard.short=EST
-US/Mountain.daylight.short=MDT
-US/Mountain.generic.short=MT
-US/Mountain.standard.short=MST
-US/Pacific.daylight.short=PDT
-US/Pacific.generic.short=PT
-US/Pacific-New.daylight.short=PDT
-US/Pacific-New.generic.short=PT
-US/Pacific-New.standard.short=PST
-US/Pacific.standard.short=PST
-US/Samoa.daylight.short=SDT
-US/Samoa.generic.short=ST
-US/Samoa.standard.short=SST
-UTC.daylight.short=UTC
-UTC.generic.short=UTC
-UTC.standard.short=UTC
-VST.daylight.short=ICST
-VST.generic.short=ICT
-VST.standard.short=ICT
-WET.daylight.short=WESZ
-WET.generic.short=WEZ
-WET.standard.short=WEZ
-W-SU.daylight.short=MSD
-W-SU.generic.short=MT
-W-SU.standard.short=MSK
-Zulu.daylight.short=UTC
-Zulu.generic.short=UTC
-Zulu.standard.short=UTC
diff --git a/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_es.properties b/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_es.properties
deleted file mode 100644
index 830f0d21e0d..00000000000
--- a/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_es.properties
+++ /dev/null
@@ -1,651 +0,0 @@
-ACT.daylight.long=Hora de verano Central (territorio del Norte)
-ACT.generic.long=Hora Central (Territorio Septentrional)
-ACT.standard.long=Hora est\u00E1ndar Central (territorio del Norte)
-AET.daylight.long=Hora de verano Oriental (Nueva Gales del Sur)
-AET.generic.long=Hora Oriental (Nueva Gales del Sur)
-AET.standard.long=Hora est\u00E1ndar Oriental (Nueva Gales del Sur)
-AGT.generic.long=Hora de Argentina
-ART.generic.long=Hora de Europa Oriental
-AST.generic.long=Hora de Alaska
-Africa/Abidjan.generic.long=Hora del Meridiano de Greenwich
-Africa/Accra.generic.long=Hora central de Ghana
-Africa/Addis_Ababa.generic.long=Hora de \u00C1frica Oriental
-Africa/Algiers.generic.long=Hora de Europa Central
-Africa/Asmara.generic.long=Hora de \u00C1frica Oriental
-Africa/Asmera.generic.long=Hora de \u00C1frica Oriental
-Africa/Bamako.generic.long=Hora del Meridiano de Greenwich
-Africa/Bangui.generic.long=Hora de \u00C1frica Occidental
-Africa/Banjul.generic.long=Hora del Meridiano de Greenwich
-Africa/Bissau.generic.long=Hora del Meridiano de Greenwich
-Africa/Blantyre.generic.long=Hora de \u00C1frica Central
-Africa/Brazzaville.generic.long=Hora de \u00C1frica Occidental
-Africa/Bujumbura.generic.long=Hora de \u00C1frica Central
-Africa/Cairo.generic.long=Hora de Europa Oriental
-Africa/Casablanca.generic.long=Hora de Europa Occidental
-Africa/Ceuta.generic.long=Hora de Europa Central
-Africa/Conakry.generic.long=Hora del Meridiano de Greenwich
-Africa/Dakar.generic.long=Hora del Meridiano de Greenwich
-Africa/Dar_es_Salaam.generic.long=Hora de \u00C1frica Oriental
-Africa/Djibouti.generic.long=Hora de \u00C1frica Oriental
-Africa/Douala.generic.long=Hora de \u00C1frica Occidental
-Africa/El_Aaiun.generic.long=Hora de Europa Occidental
-Africa/Freetown.generic.long=Horario de Sierra Leona
-Africa/Gaborone.generic.long=Hora de \u00C1frica Central
-Africa/Harare.generic.long=Hora de \u00C1frica Central
-Africa/Johannesburg.generic.long=Hora de Sud\u00E1frica
-Africa/Juba.generic.long=Hora de \u00C1frica Oriental
-Africa/Kampala.generic.long=Hora de \u00C1frica Oriental
-Africa/Khartoum.generic.long=Hora de \u00C1frica Oriental
-Africa/Kigali.generic.long=Hora de \u00C1frica Central
-Africa/Kinshasa.generic.long=Hora de \u00C1frica Occidental
-Africa/Lagos.generic.long=Hora de \u00C1frica Occidental
-Africa/Libreville.generic.long=Hora de \u00C1frica Occidental
-Africa/Lome.generic.long=Hora del Meridiano de Greenwich
-Africa/Luanda.generic.long=Hora de \u00C1frica Occidental
-Africa/Lubumbashi.generic.long=Hora de \u00C1frica Central
-Africa/Lusaka.generic.long=Hora de \u00C1frica Central
-Africa/Malabo.generic.long=Hora de \u00C1frica Occidental
-Africa/Maputo.generic.long=Hora de \u00C1frica Central
-Africa/Maseru.generic.long=Hora de Sud\u00E1frica
-Africa/Mbabane.generic.long=Hora de Sud\u00E1frica
-Africa/Mogadishu.generic.long=Hora de \u00C1frica Oriental
-Africa/Monrovia.generic.long=Hora del Meridiano de Greenwich
-Africa/Nairobi.generic.long=Hora de \u00C1frica Oriental
-Africa/Ndjamena.generic.long=Hora de \u00C1frica Occidental
-Africa/Niamey.generic.long=Hora de \u00C1frica Occidental
-Africa/Nouakchott.generic.long=Hora del Meridiano de Greenwich
-Africa/Ouagadougou.generic.long=Hora del Meridiano de Greenwich
-Africa/Porto-Novo.generic.long=Hora de \u00C1frica Occidental
-Africa/Sao_Tome.generic.long=Hora del Meridiano de Greenwich
-Africa/Timbuktu.generic.long=Hora del Meridiano de Greenwich
-Africa/Tripoli.generic.long=Hora de Europa Oriental
-Africa/Tunis.generic.long=Hora de Europa Central
-Africa/Windhoek.generic.long=Hora de \u00C1frica Occidental
-America/Adak.generic.long=Hora de Hawaii-Aleutian
-America/Anchorage.generic.long=Hora de Alaska
-America/Anguilla.generic.long=Hora del Atl\u00E1ntico
-America/Antigua.generic.long=Hora del Atl\u00E1ntico
-America/Araguaina.generic.long=Hora de Brasil
-America/Argentina/Buenos_Aires.generic.long=Hora de Argentina
-America/Argentina/Catamarca.generic.long=Hora de Argentina
-America/Argentina/ComodRivadavia.generic.long=Hora de Argentina
-America/Argentina/Cordoba.generic.long=Hora de Argentina
-America/Argentina/Jujuy.generic.long=Hora de Argentina
-America/Argentina/La_Rioja.generic.long=Hora de Argentina
-America/Argentina/Mendoza.generic.long=Hora de Argentina
-America/Argentina/Rio_Gallegos.generic.long=Hora de Argentina
-America/Argentina/Salta.generic.long=Hora de Argentina
-America/Argentina/San_Juan.generic.long=Hora de Argentina
-America/Argentina/San_Luis.generic.long=Hora de Argentina
-America/Argentina/Tucuman.generic.long=Hora de Argentina
-America/Argentina/Ushuaia.generic.long=Hora de Argentina
-America/Aruba.generic.long=Hora del Atl\u00E1ntico
-America/Asuncion.generic.long=Hora de Paraguay
-America/Atikokan.generic.long=Hora Oriental
-America/Atka.generic.long=Hora de Hawaii-Aleutian
-America/Bahia.generic.long=Hora de Brasil
-America/Bahia_Banderas.generic.long=Hora Central
-America/Barbados.generic.long=Hora del Atl\u00E1ntico
-America/Belem.generic.long=Hora de Brasil
-America/Belize.generic.long=Hora Central
-America/Blanc-Sablon.generic.long=Hora del Atl\u00E1ntico
-America/Boa_Vista.generic.long=Hora est\u00E1ndar de Amazonia
-America/Bogota.generic.long=Hora de Colombia
-America/Boise.generic.long=Hora de las Monta\u00F1as Rocosas
-America/Buenos_Aires.generic.long=Hora de Argentina
-America/Cambridge_Bay.generic.long=Hora de las Monta\u00F1as Rocosas
-America/Campo_Grande.generic.long=Hora est\u00E1ndar de Amazonia
-America/Cancun.generic.long=Hora Central
-America/Caracas.generic.long=Hora de Venezuela
-America/Catamarca.generic.long=Hora de Argentina
-America/Cayenne.generic.long=Hora de la Guayana Francesa
-America/Cayman.generic.long=Hora Oriental
-America/Chicago.generic.long=Hora Central
-America/Chihuahua.generic.long=Hora de las Monta\u00F1as Rocosas
-America/Coral_Harbour.generic.long=Hora Oriental
-America/Cordoba.generic.long=Hora de Argentina
-America/Costa_Rica.generic.long=Hora Central
-America/Creston.generic.long=Hora de las Monta\u00F1as Rocosas
-America/Cuiaba.generic.long=Hora est\u00E1ndar de Amazonia
-America/Curacao.generic.long=Hora del Atl\u00E1ntico
-America/Danmarkshavn.generic.long=Hora del Meridiano de Greenwich
-America/Dawson.generic.long=Hora del Pac\u00EDfico
-America/Dawson_Creek.generic.long=Hora de las Monta\u00F1as Rocosas
-America/Denver.generic.long=Hora de las Monta\u00F1as Rocosas
-America/Detroit.generic.long=Hora Oriental
-America/Dominica.generic.long=Hora del Atl\u00E1ntico
-America/Edmonton.generic.long=Hora de las Monta\u00F1as Rocosas
-America/Eirunepe.generic.long=Hora de Acre
-America/El_Salvador.generic.long=Hora Central
-America/Ensenada.generic.long=Hora del Pac\u00EDfico
-America/Fort_Wayne.generic.long=Hora Oriental
-America/Fortaleza.generic.long=Hora de Brasil
-America/Glace_Bay.generic.long=Hora del Atl\u00E1ntico
-America/Godthab.generic.long=Hora de Groenlandia Occidental
-America/Goose_Bay.generic.long=Hora del Atl\u00E1ntico
-America/Grand_Turk.generic.long=Hora Oriental
-America/Grenada.generic.long=Hora del Atl\u00E1ntico
-America/Guadeloupe.generic.long=Hora del Atl\u00E1ntico
-America/Guatemala.generic.long=Hora Central
-America/Guayaquil.generic.long=Hora de Ecuador
-America/Guyana.generic.long=Hora de Guyana
-America/Halifax.generic.long=Hora del Atl\u00E1ntico
-America/Havana.generic.long=Hora de Cuba
-America/Hermosillo.generic.long=Hora de las Monta\u00F1as Rocosas
-America/Indiana/Indianapolis.generic.long=Hora Oriental
-America/Indiana/Knox.generic.long=Hora Central
-America/Indiana/Marengo.generic.long=Hora Oriental
-America/Indiana/Petersburg.generic.long=Hora Oriental
-America/Indiana/Tell_City.generic.long=Hora Central
-America/Indiana/Vevay.generic.long=Hora Oriental
-America/Indiana/Vincennes.generic.long=Hora Oriental
-America/Indiana/Winamac.generic.long=Hora Oriental
-America/Indianapolis.generic.long=Hora Oriental
-America/Inuvik.generic.long=Hora de las Monta\u00F1as Rocosas
-America/Iqaluit.generic.long=Hora Oriental
-America/Jamaica.generic.long=Hora Oriental
-America/Jujuy.generic.long=Hora de Argentina
-America/Juneau.generic.long=Hora de Alaska
-America/Kentucky/Louisville.generic.long=Hora Oriental
-America/Kentucky/Monticello.generic.long=Hora Oriental
-America/Knox_IN.generic.long=Hora Central
-America/Kralendijk.generic.long=Hora del Atl\u00E1ntico
-America/La_Paz.generic.long=Hora de Bolivia
-America/Lima.generic.long=Hora de Per\u00FA
-America/Los_Angeles.generic.long=Hora del Pac\u00EDfico
-America/Louisville.generic.long=Hora Oriental
-America/Lower_Princes.generic.long=Hora del Atl\u00E1ntico
-America/Maceio.generic.long=Hora de Brasil
-America/Managua.generic.long=Hora Central
-America/Manaus.generic.long=Hora est\u00E1ndar de Amazonia
-America/Marigot.generic.long=Hora del Atl\u00E1ntico
-America/Martinique.generic.long=Hora del Atl\u00E1ntico
-America/Matamoros.generic.long=Hora Central
-America/Mazatlan.generic.long=Hora de las Monta\u00F1as Rocosas
-America/Mendoza.generic.long=Hora de Argentina
-America/Menominee.generic.long=Hora Central
-America/Merida.generic.long=Hora Central
-America/Metlakatla.daylight.long=Hora de verano de Metlakatla
-America/Metlakatla.generic.long=Metlakatla Time
-America/Metlakatla.standard.long=Hora de Metlakatla
-America/Mexico_City.generic.long=Hora Central
-America/Miquelon.generic.long=Hora de San Pedro y Miquel\u00F3n
-America/Moncton.generic.long=Hora del Atl\u00E1ntico
-America/Monterrey.generic.long=Hora Central
-America/Montevideo.generic.long=Hora de Uruguay
-America/Montreal.generic.long=Hora Oriental
-America/Montserrat.generic.long=Hora del Atl\u00E1ntico
-America/Nassau.generic.long=Hora Oriental
-America/New_York.generic.long=Hora Oriental
-America/Nipigon.generic.long=Hora Oriental
-America/Nome.generic.long=Hora de Alaska
-America/Noronha.generic.long=Hora de Fernando de Noronha
-America/North_Dakota/Beulah.generic.long=Hora Central
-America/North_Dakota/Center.generic.long=Hora Central
-America/North_Dakota/New_Salem.generic.long=Hora Central
-America/Ojinaga.generic.long=Hora de las Monta\u00F1as Rocosas
-America/Panama.generic.long=Hora Oriental
-America/Pangnirtung.generic.long=Hora Oriental
-America/Paramaribo.generic.long=Hora de Surinam
-America/Phoenix.generic.long=Hora de las Monta\u00F1as Rocosas
-America/Port-au-Prince.generic.long=Hora Oriental
-America/Port_of_Spain.generic.long=Hora del Atl\u00E1ntico
-America/Porto_Acre.generic.long=Hora de Acre
-America/Porto_Velho.generic.long=Hora est\u00E1ndar de Amazonia
-America/Puerto_Rico.generic.long=Hora del Atl\u00E1ntico
-America/Rainy_River.generic.long=Hora Central
-America/Rankin_Inlet.generic.long=Hora Central
-America/Recife.generic.long=Hora de Brasil
-America/Regina.generic.long=Hora Central
-America/Resolute.generic.long=Hora Central
-America/Rio_Branco.generic.long=Hora de Acre
-America/Rosario.generic.long=Hora de Argentina
-America/Santa_Isabel.generic.long=Hora del Pac\u00EDfico
-America/Santarem.generic.long=Hora de Brasil
-America/Santiago.generic.long=Hora de Chile
-America/Santo_Domingo.generic.long=Hora del Atl\u00E1ntico
-America/Sao_Paulo.generic.long=Hora de Brasil
-America/Scoresbysund.generic.long=Hora de Groenlandia Oriental
-America/Shiprock.generic.long=Hora de las Monta\u00F1as Rocosas
-America/Sitka.generic.long=Hora de Alaska
-America/St_Barthelemy.generic.long=Hora del Atl\u00E1ntico
-America/St_Johns.generic.long=Hora de Terranova
-America/St_Kitts.generic.long=Hora del Atl\u00E1ntico
-America/St_Lucia.generic.long=Hora del Atl\u00E1ntico
-America/St_Thomas.generic.long=Hora del Atl\u00E1ntico
-America/St_Vincent.generic.long=Hora del Atl\u00E1ntico
-America/Swift_Current.generic.long=Hora Central
-America/Tegucigalpa.generic.long=Hora Central
-America/Thule.generic.long=Hora del Atl\u00E1ntico
-America/Thunder_Bay.generic.long=Hora Oriental
-America/Tijuana.generic.long=Hora del Pac\u00EDfico
-America/Toronto.generic.long=Hora Oriental
-America/Tortola.generic.long=Hora del Atl\u00E1ntico
-America/Vancouver.generic.long=Hora del Pac\u00EDfico
-America/Virgin.generic.long=Hora del Atl\u00E1ntico
-America/Whitehorse.generic.long=Hora del Pac\u00EDfico
-America/Winnipeg.generic.long=Hora Central
-America/Yakutat.generic.long=Hora de Alaska
-America/Yellowknife.generic.long=Hora de las Monta\u00F1as Rocosas
-Antarctica/Casey.daylight.long=Hora de verano Occidental (Australia)
-Antarctica/Casey.generic.long=Hora Occidental (Australia)
-Antarctica/Casey.standard.long=Hora est\u00E1ndar Occidental (Australia)
-Antarctica/Davis.generic.long=Hora de Davis
-Antarctica/DumontDUrville.generic.long=Hora de Dumont-d'Urville
-Antarctica/Macquarie.daylight.long=Hora de verano de Isla Macquarie
-Antarctica/Macquarie.generic.long=Hora de Isla Macquarie
-Antarctica/Macquarie.standard.long=Hora de Isla Macquarie
-Antarctica/Mawson.generic.long=Hora de Mawson
-Antarctica/McMurdo.generic.long=Hora de Nueva Zelanda
-Antarctica/Palmer.generic.long=Hora de Chile
-Antarctica/Rothera.generic.long=Hora de Rothera
-Antarctica/South_Pole.generic.long=Hora de Nueva Zelanda
-Antarctica/Syowa.generic.long=Hora de Syowa
-Antarctica/Vostok.generic.long=Hora de Vostok
-Arctic/Longyearbyen.generic.long=Hora de Europa Central
-Asia/Aden.generic.long=Hora de Arabia
-Asia/Almaty.generic.long=Hora de Alma-Ata
-Asia/Amman.generic.long=Hora de Arabia
-Asia/Anadyr.generic.long=Hora de Anadyr
-Asia/Aqtau.generic.long=Hora de Aqtau
-Asia/Aqtobe.generic.long=Hora de Aqtobe
-Asia/Ashgabat.generic.long=Hora de Turkmenist\u00E1n
-Asia/Ashkhabad.generic.long=Hora de Turkmenist\u00E1n
-Asia/Baghdad.generic.long=Hora de Arabia
-Asia/Bahrain.generic.long=Hora de Arabia
-Asia/Baku.generic.long=Hora de Azerbaiy\u00E1n
-Asia/Bangkok.generic.long=Hora de Indochina
-Asia/Beirut.generic.long=Hora de Europa Oriental
-Asia/Bishkek.generic.long=Hora de Kirguizist\u00E1n
-Asia/Brunei.generic.long=Hora de Brunei
-Asia/Calcutta.generic.long=Hora de India
-Asia/Choibalsan.generic.long=Hora de Choibalsan
-Asia/Chongqing.generic.long=Hora de China
-Asia/Chungking.generic.long=Hora de China
-Asia/Colombo.generic.long=Hora de India
-Asia/Dacca.generic.long=Hora de Bangladesh
-Asia/Damascus.generic.long=Hora de Europa Oriental
-Asia/Dhaka.generic.long=Hora de Bangladesh
-Asia/Dili.generic.long=Hora de Timor Leste
-Asia/Dubai.generic.long=Hora del Golfo
-Asia/Dushanbe.generic.long=Hora de Tajikist\u00E1n
-Asia/Gaza.generic.long=Hora de Europa Oriental
-Asia/Harbin.generic.long=Hora de China
-Asia/Hebron.generic.long=Hora de Europa Oriental
-Asia/Ho_Chi_Minh.generic.long=Hora de Indochina
-Asia/Hong_Kong.generic.long=Hora de Hong Kong
-Asia/Hovd.generic.long=Hora de Hovd
-Asia/Irkutsk.generic.long=Hora de Irkutsk
-Asia/Istanbul.generic.long=Hora de Europa Oriental
-Asia/Jakarta.generic.long=Hora de Indonesia Occidental
-Asia/Jayapura.generic.long=Hora de Indonesia Oriental
-Asia/Jerusalem.generic.long=Hora de Israel
-Asia/Kabul.generic.long=Hora de Afganist\u00E1n
-Asia/Kamchatka.generic.long=Hora de Petropavlovsk-Kamchatski
-Asia/Karachi.generic.long=Hora de Pakist\u00E1n
-Asia/Kashgar.generic.long=Hora de China
-Asia/Kathmandu.generic.long=Hora de Nepal
-Asia/Katmandu.generic.long=Hora de Nepal
-Asia/Khandyga.daylight.long=Hora de verano de Khandyga
-Asia/Khandyga.generic.long=Hora de Khandyga
-Asia/Khandyga.standard.long=Hora de Khandyga
-Asia/Kolkata.generic.long=Hora de India
-Asia/Krasnoyarsk.generic.long=Hora de Krasnoyarsk
-Asia/Kuala_Lumpur.generic.long=Hora de Malasia
-Asia/Kuching.generic.long=Hora de Malasia
-Asia/Kuwait.generic.long=Hora de Arabia
-Asia/Macao.generic.long=Hora de China
-Asia/Macau.generic.long=Hora de China
-Asia/Magadan.generic.long=Hora de Magad\u00E1n
-Asia/Makassar.generic.long=Hora de Indonesia Central
-Asia/Manila.generic.long=Hora de Filipinas
-Asia/Muscat.generic.long=Hora del Golfo
-Asia/Nicosia.generic.long=Hora de Europa Oriental
-Asia/Novokuznetsk.generic.long=Hora de Novosibirsk
-Asia/Novosibirsk.generic.long=Hora de Novosibirsk
-Asia/Omsk.generic.long=Hora de Omsk
-Asia/Oral.generic.long=Hora de Uralsk
-Asia/Phnom_Penh.generic.long=Hora de Indochina
-Asia/Pontianak.generic.long=Hora de Indonesia Occidental
-Asia/Pyongyang.generic.long=Hora de Corea
-Asia/Qatar.generic.long=Hora de Arabia
-Asia/Qyzylorda.generic.long=Hora de Qyzylorda
-Asia/Rangoon.generic.long=Hora de Myanmar
-Asia/Saigon.generic.long=Hora de Indochina
-Asia/Sakhalin.generic.long=Hora de Sajalin
-Asia/Samarkand.generic.long=Hora de Uzbekist\u00E1n
-Asia/Seoul.generic.long=Hora de Corea
-Asia/Shanghai.generic.long=Hora de China
-Asia/Singapore.generic.long=Hora de Singapur
-Asia/Taipei.generic.long=Hora de China
-Asia/Tashkent.generic.long=Hora de Uzbekist\u00E1n
-Asia/Tbilisi.generic.long=Hora de Georgia
-Asia/Tehran.generic.long=Hora de Ir\u00E1n
-Asia/Tel_Aviv.generic.long=Hora de Israel
-Asia/Thimbu.generic.long=Hora de But\u00E1n
-Asia/Thimphu.generic.long=Hora de But\u00E1n
-Asia/Tokyo.generic.long=Hora de Jap\u00F3n
-Asia/Ujung_Pandang.generic.long=Hora de Indonesia Central
-Asia/Ulaanbaatar.generic.long=Hora de Ulan Bator
-Asia/Ulan_Bator.generic.long=Hora de Ulan Bator
-Asia/Urumqi.generic.long=Hora de China
-Asia/Ust-Nera.daylight.long=Hora de verano de Ust-Nera
-Asia/Ust-Nera.generic.long=Hora de Ust-Nera
-Asia/Ust-Nera.standard.long=Hora de Ust-Nera
-Asia/Vientiane.generic.long=Hora de Indochina
-Asia/Vladivostok.generic.long=Hora de Vladivostok
-Asia/Yakutsk.generic.long=Hora de Yakutsk
-Asia/Yekaterinburg.generic.long=Hora de Ekaterinburgo
-Asia/Yerevan.generic.long=Hora de Armenia
-Atlantic/Azores.generic.long=Hora de Azores
-Atlantic/Bermuda.generic.long=Hora del Atl\u00E1ntico
-Atlantic/Canary.generic.long=Hora de Europa Occidental
-Atlantic/Cape_Verde.generic.long=Hora de Cabo Verde
-Atlantic/Faeroe.generic.long=Hora de Europa Occidental
-Atlantic/Faroe.generic.long=Hora de Europa Occidental
-Atlantic/Jan_Mayen.generic.long=Hora de Europa Central
-Atlantic/Madeira.generic.long=Hora de Europa Occidental
-Atlantic/Reykjavik.generic.long=Hora del Meridiano de Greenwich
-Atlantic/South_Georgia.generic.long=Hora de Georgia del Sur
-Atlantic/St_Helena.generic.long=Hora del Meridiano de Greenwich
-Atlantic/Stanley.generic.long=Hora de las islas Malvinas
-Australia/ACT.daylight.long=Hora de verano Oriental (Nueva Gales del Sur)
-Australia/ACT.generic.long=Hora Oriental (Nueva Gales del Sur)
-Australia/ACT.standard.long=Hora est\u00E1ndar Oriental (Nueva Gales del Sur)
-Australia/Adelaide.daylight.long=Hora de verano Central (Sur de Australia)
-Australia/Adelaide.generic.long=Hora Central (Australia del Sur)
-Australia/Adelaide.standard.long=Hora est\u00E1ndar Central (Sur de Australia)
-Australia/Brisbane.daylight.long=Hora est\u00E1ndar de verano del Este (Queensland)
-Australia/Brisbane.generic.long=Hora Oriental (Queensland)
-Australia/Brisbane.standard.long=Hora est\u00E1ndar del Este (Queensland)
-Australia/Broken_Hill.daylight.long=Hora de verano Central (Sur de Australia/Nueva Gales del Sur)
-Australia/Broken_Hill.generic.long=Hora Central (Australia del Sur/Nueva Gales del Sur)
-Australia/Broken_Hill.standard.long=Hora est\u00E1ndar Central (Sur de Australia/Nueva Gales del Sur)
-Australia/Canberra.daylight.long=Hora de verano Oriental (Nueva Gales del Sur)
-Australia/Canberra.generic.long=Hora Oriental (Nueva Gales del Sur)
-Australia/Canberra.standard.long=Hora est\u00E1ndar Oriental (Nueva Gales del Sur)
-Australia/Currie.daylight.long=Hora de verano Oriental (Nueva Gales del Sur)
-Australia/Currie.generic.long=Hora Oriental (Nueva Gales del Sur)
-Australia/Currie.standard.long=Hora est\u00E1ndar Oriental (Nueva Gales del Sur)
-Australia/Darwin.daylight.long=Hora de verano Central (territorio del Norte)
-Australia/Darwin.generic.long=Hora Central (Territorio Septentrional)
-Australia/Darwin.standard.long=Hora est\u00E1ndar Central (territorio del Norte)
-Australia/Eucla.daylight.long=Hora est\u00E1ndar de verano de Australia Central y Occidental
-Australia/Eucla.generic.long=Hora de Australia Central y Occidental
-Australia/Eucla.standard.long=Hora est\u00E1ndar de Australia Central y Occidental
-Australia/Hobart.daylight.long=Hora de verano del Este (Tasmania)
-Australia/Hobart.generic.long=Hora Oriental (Tasmania)
-Australia/Hobart.standard.long=Hora est\u00E1ndar del Este (Tasmania)
-Australia/LHI.generic.long=Hora de Lord Howe
-Australia/Lindeman.daylight.long=Hora est\u00E1ndar de verano del Este (Queensland)
-Australia/Lindeman.generic.long=Hora Oriental (Queensland)
-Australia/Lindeman.standard.long=Hora est\u00E1ndar del Este (Queensland)
-Australia/Lord_Howe.generic.long=Hora de Lord Howe
-Australia/Melbourne.daylight.long=Hora de verano del Este (Victoria)
-Australia/Melbourne.generic.long=Hora Oriental (Victoria)
-Australia/Melbourne.standard.long=Hora est\u00E1ndar del Este (Victoria)
-Australia/NSW.daylight.long=Hora de verano Oriental (Nueva Gales del Sur)
-Australia/NSW.generic.long=Hora Oriental (Nueva Gales del Sur)
-Australia/NSW.standard.long=Hora est\u00E1ndar Oriental (Nueva Gales del Sur)
-Australia/North.daylight.long=Hora de verano Central (territorio del Norte)
-Australia/North.generic.long=Hora Central (Territorio Septentrional)
-Australia/North.standard.long=Hora est\u00E1ndar Central (territorio del Norte)
-Australia/Perth.daylight.long=Hora de verano Occidental (Australia)
-Australia/Perth.generic.long=Hora Occidental (Australia)
-Australia/Perth.standard.long=Hora est\u00E1ndar Occidental (Australia)
-Australia/Queensland.daylight.long=Hora est\u00E1ndar de verano del Este (Queensland)
-Australia/Queensland.generic.long=Hora Oriental (Queensland)
-Australia/Queensland.standard.long=Hora est\u00E1ndar del Este (Queensland)
-Australia/South.daylight.long=Hora de verano Central (Sur de Australia)
-Australia/South.generic.long=Hora Central (Australia del Sur)
-Australia/South.standard.long=Hora est\u00E1ndar Central (Sur de Australia)
-Australia/Sydney.daylight.long=Hora de verano Oriental (Nueva Gales del Sur)
-Australia/Sydney.generic.long=Hora Oriental (Nueva Gales del Sur)
-Australia/Sydney.standard.long=Hora est\u00E1ndar Oriental (Nueva Gales del Sur)
-Australia/Tasmania.daylight.long=Hora de verano del Este (Tasmania)
-Australia/Tasmania.generic.long=Hora Oriental (Tasmania)
-Australia/Tasmania.standard.long=Hora est\u00E1ndar del Este (Tasmania)
-Australia/Victoria.daylight.long=Hora de verano del Este (Victoria)
-Australia/Victoria.generic.long=Hora Oriental (Victoria)
-Australia/Victoria.standard.long=Hora est\u00E1ndar del Este (Victoria)
-Australia/West.daylight.long=Hora de verano Occidental (Australia)
-Australia/West.generic.long=Hora Occidental (Australia)
-Australia/West.standard.long=Hora est\u00E1ndar Occidental (Australia)
-Australia/Yancowinna.daylight.long=Hora de verano Central (Sur de Australia/Nueva Gales del Sur)
-Australia/Yancowinna.generic.long=Hora Central (Australia del Sur/Nueva Gales del Sur)
-Australia/Yancowinna.standard.long=Hora est\u00E1ndar Central (Sur de Australia/Nueva Gales del Sur)
-BET.generic.long=Hora de Brasil
-BST.generic.long=Hora de Bangladesh
-Brazil/Acre.generic.long=Hora de Acre
-Brazil/DeNoronha.generic.long=Hora de Fernando de Noronha
-Brazil/East.generic.long=Hora de Brasil
-Brazil/West.generic.long=Hora est\u00E1ndar de Amazonia
-CAT.generic.long=Hora de \u00C1frica Central
-CET.generic.long=Hora de Europa Central
-CNT.generic.long=Hora de Terranova
-CST.generic.long=Hora Central
-CST6CDT.generic.long=Hora Central
-CTT.generic.long=Hora de China
-Canada/Atlantic.generic.long=Hora del Atl\u00E1ntico
-Canada/Central.generic.long=Hora Central
-Canada/East-Saskatchewan.generic.long=Hora Central
-Canada/Eastern.generic.long=Hora Oriental
-Canada/Mountain.generic.long=Hora de las Monta\u00F1as Rocosas
-Canada/Newfoundland.generic.long=Hora de Terranova
-Canada/Pacific.generic.long=Hora del Pac\u00EDfico
-Canada/Saskatchewan.generic.long=Hora Central
-Canada/Yukon.generic.long=Hora del Pac\u00EDfico
-Chile/Continental.generic.long=Hora de Chile
-Chile/EasterIsland.generic.long=Hora de la Isla de Pascua
-Cuba.generic.long=Hora de Cuba
-EAT.generic.long=Hora de \u00C1frica Oriental
-ECT.generic.long=Hora de Europa Central
-EET.generic.long=Hora de Europa Oriental
-EST.generic.long=Hora Oriental
-EST5EDT.generic.long=Hora Oriental
-Egypt.generic.long=Hora de Europa Oriental
-Eire.generic.long=Hora de Irlanda
-Etc/Greenwich.generic.long=Hora del Meridiano de Greenwich
-Etc/UCT.generic.long=Hora Universal Coordinada
-Etc/UTC.generic.long=Hora Universal Coordinada
-Etc/Universal.generic.long=Hora Universal Coordinada
-Etc/Zulu.generic.long=Hora Universal Coordinada
-Europe/Amsterdam.generic.long=Hora de Europa Central
-Europe/Andorra.generic.long=Hora de Europa Central
-Europe/Athens.generic.long=Hora de Europa Oriental
-Europe/Belfast.generic.long=Hora de Gran Breta\u00F1a
-Europe/Belgrade.generic.long=Hora de Europa Central
-Europe/Berlin.generic.long=Hora de Europa Central
-Europe/Bratislava.generic.long=Hora de Europa Central
-Europe/Brussels.generic.long=Hora de Europa Central
-Europe/Bucharest.generic.long=Hora de Europa Oriental
-Europe/Budapest.generic.long=Hora de Europa Central
-Europe/Busingen.generic.long=Hora de Europa Central
-Europe/Chisinau.generic.long=Hora de Europa Oriental
-Europe/Copenhagen.generic.long=Hora de Europa Central
-Europe/Dublin.generic.long=Hora de Irlanda
-Europe/Gibraltar.generic.long=Hora de Europa Central
-Europe/Guernsey.generic.long=Hora de Gran Breta\u00F1a
-Europe/Helsinki.generic.long=Hora de Europa Oriental
-Europe/Isle_of_Man.generic.long=Hora de Gran Breta\u00F1a
-Europe/Istanbul.generic.long=Hora de Europa Oriental
-Europe/Jersey.generic.long=Hora de Gran Breta\u00F1a
-Europe/Kaliningrad.daylight.long=Hora de verano de Europa m\u00E1s Oriental
-Europe/Kaliningrad.generic.long=Hora de Europa m\u00E1s Oriental
-Europe/Kaliningrad.standard.long=Hora de Europa m\u00E1s Oriental
-Europe/Kiev.generic.long=Hora de Europa Oriental
-Europe/Lisbon.generic.long=Hora de Europa Occidental
-Europe/Ljubljana.generic.long=Hora de Europa Central
-Europe/London.generic.long=Hora de Gran Breta\u00F1a
-Europe/Luxembourg.generic.long=Hora de Europa Central
-Europe/Madrid.generic.long=Hora de Europa Central
-Europe/Malta.generic.long=Hora de Europa Central
-Europe/Mariehamn.generic.long=Hora de Europa Oriental
-Europe/Minsk.daylight.long=Hora de verano de Europa m\u00E1s Oriental
-Europe/Minsk.generic.long=Hora de Europa m\u00E1s Oriental
-Europe/Minsk.standard.long=Hora de Europa m\u00E1s Oriental
-Europe/Monaco.generic.long=Hora de Europa Central
-Europe/Moscow.generic.long=Hora de Mosc\u00FA
-Europe/Nicosia.generic.long=Hora de Europa Oriental
-Europe/Oslo.generic.long=Hora de Europa Central
-Europe/Paris.generic.long=Hora de Europa Central
-Europe/Podgorica.generic.long=Hora de Europa Central
-Europe/Prague.generic.long=Hora de Europa Central
-Europe/Riga.generic.long=Hora de Europa Oriental
-Europe/Rome.generic.long=Hora de Europa Central
-Europe/Samara.generic.long=Hora de Samara
-Europe/San_Marino.generic.long=Hora de Europa Central
-Europe/Sarajevo.generic.long=Hora de Europa Central
-Europe/Simferopol.generic.long=Hora de Europa Oriental
-Europe/Skopje.generic.long=Hora de Europa Central
-Europe/Sofia.generic.long=Hora de Europa Oriental
-Europe/Stockholm.generic.long=Hora de Europa Central
-Europe/Tallinn.generic.long=Hora de Europa Oriental
-Europe/Tirane.generic.long=Hora de Europa Central
-Europe/Tiraspol.generic.long=Hora de Europa Oriental
-Europe/Uzhgorod.generic.long=Hora de Europa Oriental
-Europe/Vaduz.generic.long=Hora de Europa Central
-Europe/Vatican.generic.long=Hora de Europa Central
-Europe/Vienna.generic.long=Hora de Europa Central
-Europe/Vilnius.generic.long=Hora de Europa Oriental
-Europe/Volgograd.generic.long=Hora de Volgogrado
-Europe/Warsaw.generic.long=Hora de Europa Central
-Europe/Zagreb.generic.long=Hora de Europa Central
-Europe/Zaporozhye.generic.long=Hora de Europa Oriental
-Europe/Zurich.generic.long=Hora de Europa Central
-GB-Eire.generic.long=Hora de Gran Breta\u00F1a
-GB.generic.long=Hora de Gran Breta\u00F1a
-GMT.generic.long=Hora del Meridiano de Greenwich
-Greenwich.generic.long=Hora del Meridiano de Greenwich
-HST.generic.long=Hora de Hawaii
-Hongkong.generic.long=Hora de Hong Kong
-IET.generic.long=Hora Oriental
-IST.generic.long=Hora de India
-Iceland.generic.long=Hora del Meridiano de Greenwich
-Indian/Antananarivo.generic.long=Hora de \u00C1frica Oriental
-Indian/Chagos.generic.long=Hora del Territorio del Oc\u00E9ano \u00CDndico
-Indian/Christmas.generic.long=Hora de la isla de Christmas
-Indian/Cocos.generic.long=Hora de las islas Cocos
-Indian/Comoro.generic.long=Hora de \u00C1frica Oriental
-Indian/Kerguelen.generic.long=Hora de los Territorios Franceses del Sur y de la Ant\u00E1rtida
-Indian/Mahe.generic.long=Hora de Seychelles
-Indian/Maldives.generic.long=Hora de Maldivas
-Indian/Mauritius.generic.long=Hora de Mauricio
-Indian/Mayotte.generic.long=Hora de \u00C1frica Oriental
-Indian/Reunion.generic.long=Hora de Reuni\u00F3n
-Iran.generic.long=Hora de Ir\u00E1n
-Israel.generic.long=Hora de Israel
-JST.generic.long=Hora de Jap\u00F3n
-Jamaica.generic.long=Hora Oriental
-Japan.generic.long=Hora de Jap\u00F3n
-Kwajalein.generic.long=Hora de Islas Marshall
-Libya.generic.long=Hora de Europa Oriental
-MET.generic.long=MET
-MIT.generic.long=Hora de Samoa Occidental
-MST.generic.long=Hora de las Monta\u00f1as Rocosas
-MST7MDT.generic.long=Hora de las Monta\u00f1as Rocosas
-Mexico/BajaNorte.generic.long=Hora del Pac\u00EDfico
-Mexico/BajaSur.generic.long=Hora de las Monta\u00F1as Rocosas
-Mexico/General.generic.long=Hora Central
-NET.generic.long=Hora de Armenia
-NST.generic.long=Hora de Nueva Zelanda
-NZ-CHAT.generic.long=Hora de Chatam
-NZ.generic.long=Hora de Nueva Zelanda
-Navajo.generic.long=Hora de las Monta\u00F1as Rocosas
-PLT.generic.long=Hora de Pakist\u00E1n
-PNT.generic.long=Hora de las Monta\u00F1as Rocosas
-PRC.generic.long=Hora de China
-PRT.generic.long=Hora del Atl\u00E1ntico
-PST.generic.long=Hora del Pac\u00EDfico
-PST8PDT.generic.long=Hora del Pac\u00edfico
-Pacific/Apia.generic.long=Hora de Samoa Occidental
-Pacific/Auckland.generic.long=Hora de Nueva Zelanda
-Pacific/Chatham.generic.long=Hora de Chatam
-Pacific/Chuuk.daylight.long=Hora de verano de Chuuk
-Pacific/Chuuk.generic.long=Hora de Chuuk
-Pacific/Chuuk.standard.long=Hora de Chuuk
-Pacific/Easter.generic.long=Hora de la Isla de Pascua
-Pacific/Efate.generic.long=Hora de Vanuatu
-Pacific/Enderbury.generic.long=Hora de la isla Phoenix
-Pacific/Fakaofo.generic.long=Hora de Tokelau
-Pacific/Fiji.generic.long=Hora de Fiji
-Pacific/Funafuti.generic.long=Hora de Tuvalu
-Pacific/Galapagos.generic.long=Hora de Gal\u00E1pagos
-Pacific/Gambier.generic.long=Hora de Gambier
-Pacific/Guadalcanal.generic.long=Hora de las Islas Solomon
-Pacific/Guam.generic.long=Hora de Chamorro
-Pacific/Honolulu.generic.long=Hora de Hawaii
-Pacific/Johnston.generic.long=Hora de Hawaii
-Pacific/Kiritimati.generic.long=Hora de las islas Line
-Pacific/Kosrae.generic.long=Hora de Kosrae
-Pacific/Kwajalein.generic.long=Hora de Islas Marshall
-Pacific/Majuro.generic.long=Hora de Islas Marshall
-Pacific/Marquesas.generic.long=Hora de Marquesas
-Pacific/Midway.generic.long=Hora de Samoa
-Pacific/Nauru.generic.long=Hora de Nauru
-Pacific/Niue.generic.long=Hora de Niue
-Pacific/Norfolk.generic.long=Hora de Norfolk
-Pacific/Noumea.generic.long=Hora de Nueva Caledonia
-Pacific/Pago_Pago.generic.long=Hora de Samoa
-Pacific/Palau.generic.long=Hora de Palau
-Pacific/Pitcairn.generic.long=Hora de Islas Pitcairn
-Pacific/Pohnpei.daylight.long=Hora de verano de Pohnpei
-Pacific/Pohnpei.generic.long=Hora de Pohnpei
-Pacific/Pohnpei.standard.long=Hora de Pohnpei
-Pacific/Ponape.daylight.long=Hora de verano de Pohnpei
-Pacific/Ponape.generic.long=Hora de Pohnpei
-Pacific/Ponape.standard.long=Hora de Pohnpei
-Pacific/Port_Moresby.generic.long=Hora de Pap\u00FAa-Nueva Guinea
-Pacific/Rarotonga.generic.long=Hora de las islas Cook
-Pacific/Saipan.generic.long=Hora de Chamorro
-Pacific/Samoa.generic.long=Hora de Samoa
-Pacific/Tahiti.generic.long=Hora de Tahit\u00ED
-Pacific/Tarawa.generic.long=Hora de las islas Gilbert
-Pacific/Tongatapu.generic.long=Hora de Tonga
-Pacific/Truk.daylight.long=Hora de verano de Chuuk
-Pacific/Truk.generic.long=Hora de Chuuk
-Pacific/Truk.standard.long=Hora de Chuuk
-Pacific/Wake.generic.long=Hora de Wake
-Pacific/Wallis.generic.long=Hora de Wallis y Futuna
-Pacific/Yap.daylight.long=Hora de verano de Chuuk
-Pacific/Yap.generic.long=Hora de Chuuk
-Pacific/Yap.standard.long=Hora de Chuuk
-Poland.generic.long=Hora de Europa Central
-Portugal.generic.long=Hora de Europa Occidental
-ROK.generic.long=Hora de Corea
-SST.generic.long=Hora de las Islas Solomon
-Singapore.generic.long=Hora de Singapur
-SystemV/AST4.generic.long=Hora del Atl\u00E1ntico
-SystemV/AST4ADT.generic.long=Hora del Atl\u00E1ntico
-SystemV/CST6.generic.long=Hora Central
-SystemV/CST6CDT.generic.long=Hora Central
-SystemV/EST5.generic.long=Hora Oriental
-SystemV/EST5EDT.generic.long=Hora Oriental
-SystemV/HST10.generic.long=Hora de Hawaii
-SystemV/MST7.generic.long=Hora de las Monta\u00F1as Rocosas
-SystemV/MST7MDT.generic.long=Hora de las Monta\u00F1as Rocosas
-SystemV/PST8.generic.long=Hora del Pac\u00EDfico
-SystemV/PST8PDT.generic.long=Hora del Pac\u00EDfico
-SystemV/YST9.generic.long=Hora de Alaska
-SystemV/YST9YDT.generic.long=Hora de Alaska
-Turkey.generic.long=Hora de Europa Oriental
-UCT.generic.long=Hora Universal Coordinada
-US/Alaska.generic.long=Hora de Alaska
-US/Aleutian.generic.long=Hora de Hawaii-Aleutian
-US/Arizona.generic.long=Hora de las Monta\u00F1as Rocosas
-US/Central.generic.long=Hora Central
-US/East-Indiana.generic.long=Hora Oriental
-US/Eastern.generic.long=Hora Oriental
-US/Hawaii.generic.long=Hora de Hawaii
-US/Indiana-Starke.generic.long=Hora Central
-US/Michigan.generic.long=Hora Oriental
-US/Mountain.generic.long=Hora de las Monta\u00F1as Rocosas
-US/Pacific-New.generic.long=Hora del Pac\u00EDfico
-US/Pacific.generic.long=Hora del Pac\u00EDfico
-US/Samoa.generic.long=Hora de Samoa
-UTC.generic.long=Hora Universal Coordinada
-Universal.generic.long=Hora Universal Coordinada
-VST.generic.long=Hora de Indochina
-W-SU.generic.long=Hora de Mosc\u00FA
-WET.generic.long=Hora de Europa Occidental
-Zulu.generic.long=Hora Universal Coordinada
diff --git a/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_es_short.properties b/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_es_short.properties
deleted file mode 100644
index 095522a68d1..00000000000
--- a/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_es_short.properties
+++ /dev/null
@@ -1,1743 +0,0 @@
-ACT.daylight.short=CST
-ACT.generic.short=CT
-ACT.standard.short=CST
-AET.daylight.short=EST
-AET.generic.short=ET
-AET.standard.short=EST
-Africa/Abidjan.daylight.short=GMT
-Africa/Abidjan.generic.short=GMT
-Africa/Abidjan.standard.short=GMT
-Africa/Accra.daylight.short=GHST
-Africa/Accra.generic.short=GMT
-Africa/Accra.standard.short=GMT
-Africa/Addis_Ababa.daylight.short=EAST
-Africa/Addis_Ababa.generic.short=EAT
-Africa/Addis_Ababa.standard.short=EAT
-Africa/Algiers.daylight.short=CEST
-Africa/Algiers.generic.short=CET
-Africa/Algiers.standard.short=CET
-Africa/Asmara.daylight.short=EAST
-Africa/Asmara.generic.short=EAT
-Africa/Asmara.standard.short=EAT
-Africa/Asmera.daylight.short=EAST
-Africa/Asmera.generic.short=EAT
-Africa/Asmera.standard.short=EAT
-Africa/Bamako.daylight.short=GMT
-Africa/Bamako.generic.short=GMT
-Africa/Bamako.standard.short=GMT
-Africa/Bangui.daylight.short=WAST
-Africa/Bangui.generic.short=WAT
-Africa/Bangui.standard.short=WAT
-Africa/Banjul.daylight.short=GMT
-Africa/Banjul.generic.short=GMT
-Africa/Banjul.standard.short=GMT
-Africa/Bissau.daylight.short=GMT
-Africa/Bissau.generic.short=GMT
-Africa/Bissau.standard.short=GMT
-Africa/Blantyre.daylight.short=CAST
-Africa/Blantyre.generic.short=CAT
-Africa/Blantyre.standard.short=CAT
-Africa/Brazzaville.daylight.short=WAST
-Africa/Brazzaville.generic.short=WAT
-Africa/Brazzaville.standard.short=WAT
-Africa/Bujumbura.daylight.short=CAST
-Africa/Bujumbura.generic.short=CAT
-Africa/Bujumbura.standard.short=CAT
-Africa/Cairo.daylight.short=EEST
-Africa/Cairo.generic.short=EET
-Africa/Cairo.standard.short=EET
-Africa/Casablanca.daylight.short=WEST
-Africa/Casablanca.generic.short=WET
-Africa/Casablanca.standard.short=WET
-Africa/Ceuta.daylight.short=CEST
-Africa/Ceuta.generic.short=CET
-Africa/Ceuta.standard.short=CET
-Africa/Conakry.daylight.short=GMT
-Africa/Conakry.generic.short=GMT
-Africa/Conakry.standard.short=GMT
-Africa/Dakar.daylight.short=GMT
-Africa/Dakar.generic.short=GMT
-Africa/Dakar.standard.short=GMT
-Africa/Dar_es_Salaam.daylight.short=EAST
-Africa/Dar_es_Salaam.generic.short=EAT
-Africa/Dar_es_Salaam.standard.short=EAT
-Africa/Djibouti.daylight.short=EAST
-Africa/Djibouti.generic.short=EAT
-Africa/Djibouti.standard.short=EAT
-Africa/Douala.daylight.short=WAST
-Africa/Douala.generic.short=WAT
-Africa/Douala.standard.short=WAT
-Africa/El_Aaiun.daylight.short=WEST
-Africa/El_Aaiun.generic.short=WET
-Africa/El_Aaiun.standard.short=WET
-Africa/Freetown.daylight.short=SLST
-Africa/Freetown.generic.short=SLT
-Africa/Freetown.standard.short=GMT
-Africa/Gaborone.daylight.short=CAST
-Africa/Gaborone.generic.short=CAT
-Africa/Gaborone.standard.short=CAT
-Africa/Harare.daylight.short=CAST
-Africa/Harare.generic.short=CAT
-Africa/Harare.standard.short=CAT
-Africa/Johannesburg.daylight.short=SAST
-Africa/Johannesburg.generic.short=SAT
-Africa/Johannesburg.standard.short=SAST
-Africa/Juba.daylight.short=EAST
-Africa/Juba.generic.short=EAT
-Africa/Juba.standard.short=EAT
-Africa/Kampala.daylight.short=EAST
-Africa/Kampala.generic.short=EAT
-Africa/Kampala.standard.short=EAT
-Africa/Khartoum.daylight.short=EAST
-Africa/Khartoum.generic.short=EAT
-Africa/Khartoum.standard.short=EAT
-Africa/Kigali.daylight.short=CAST
-Africa/Kigali.generic.short=CAT
-Africa/Kigali.standard.short=CAT
-Africa/Kinshasa.daylight.short=WAST
-Africa/Kinshasa.generic.short=WAT
-Africa/Kinshasa.standard.short=WAT
-Africa/Lagos.daylight.short=WAST
-Africa/Lagos.generic.short=WAT
-Africa/Lagos.standard.short=WAT
-Africa/Libreville.daylight.short=WAST
-Africa/Libreville.generic.short=WAT
-Africa/Libreville.standard.short=WAT
-Africa/Lome.daylight.short=GMT
-Africa/Lome.generic.short=GMT
-Africa/Lome.standard.short=GMT
-Africa/Luanda.daylight.short=WAST
-Africa/Luanda.generic.short=WAT
-Africa/Luanda.standard.short=WAT
-Africa/Lubumbashi.daylight.short=CAST
-Africa/Lubumbashi.generic.short=CAT
-Africa/Lubumbashi.standard.short=CAT
-Africa/Lusaka.daylight.short=CAST
-Africa/Lusaka.generic.short=CAT
-Africa/Lusaka.standard.short=CAT
-Africa/Malabo.daylight.short=WAST
-Africa/Malabo.generic.short=WAT
-Africa/Malabo.standard.short=WAT
-Africa/Maputo.daylight.short=CAST
-Africa/Maputo.generic.short=CAT
-Africa/Maputo.standard.short=CAT
-Africa/Maseru.daylight.short=SAST
-Africa/Maseru.generic.short=SAT
-Africa/Maseru.standard.short=SAST
-Africa/Mbabane.daylight.short=SAST
-Africa/Mbabane.generic.short=SAT
-Africa/Mbabane.standard.short=SAST
-Africa/Mogadishu.daylight.short=EAST
-Africa/Mogadishu.generic.short=EAT
-Africa/Mogadishu.standard.short=EAT
-Africa/Monrovia.daylight.short=GMT
-Africa/Monrovia.generic.short=GMT
-Africa/Monrovia.standard.short=GMT
-Africa/Nairobi.daylight.short=EAST
-Africa/Nairobi.generic.short=EAT
-Africa/Nairobi.standard.short=EAT
-Africa/Ndjamena.daylight.short=WAST
-Africa/Ndjamena.generic.short=WAT
-Africa/Ndjamena.standard.short=WAT
-Africa/Niamey.daylight.short=WAST
-Africa/Niamey.generic.short=WAT
-Africa/Niamey.standard.short=WAT
-Africa/Nouakchott.daylight.short=GMT
-Africa/Nouakchott.generic.short=GMT
-Africa/Nouakchott.standard.short=GMT
-Africa/Ouagadougou.daylight.short=GMT
-Africa/Ouagadougou.generic.short=GMT
-Africa/Ouagadougou.standard.short=GMT
-Africa/Porto-Novo.daylight.short=WAST
-Africa/Porto-Novo.generic.short=WAT
-Africa/Porto-Novo.standard.short=WAT
-Africa/Sao_Tome.daylight.short=GMT
-Africa/Sao_Tome.generic.short=GMT
-Africa/Sao_Tome.standard.short=GMT
-Africa/Timbuktu.daylight.short=GMT
-Africa/Timbuktu.generic.short=GMT
-Africa/Timbuktu.standard.short=GMT
-Africa/Tripoli.daylight.short=EEST
-Africa/Tripoli.generic.short=EET
-Africa/Tripoli.standard.short=EET
-Africa/Tunis.daylight.short=CEST
-Africa/Tunis.generic.short=CET
-Africa/Tunis.standard.short=CET
-Africa/Windhoek.daylight.short=WAST
-Africa/Windhoek.generic.short=WAT
-Africa/Windhoek.standard.short=WAT
-AGT.daylight.short=ARST
-AGT.generic.short=ART
-AGT.standard.short=ART
-America/Adak.daylight.short=HADT
-America/Adak.generic.short=HAT
-America/Adak.standard.short=HAST
-America/Anchorage.daylight.short=AKDT
-America/Anchorage.generic.short=AKT
-America/Anchorage.standard.short=AKST
-America/Anguilla.daylight.short=ADT
-America/Anguilla.generic.short=AT
-America/Anguilla.standard.short=AST
-America/Antigua.daylight.short=ADT
-America/Antigua.generic.short=AT
-America/Antigua.standard.short=AST
-America/Araguaina.daylight.short=BRST
-America/Araguaina.generic.short=BRT
-America/Araguaina.standard.short=BRT
-America/Argentina/Buenos_Aires.daylight.short=ARST
-America/Argentina/Buenos_Aires.generic.short=ART
-America/Argentina/Buenos_Aires.standard.short=ART
-America/Argentina/Catamarca.daylight.short=ARST
-America/Argentina/Catamarca.generic.short=ART
-America/Argentina/Catamarca.standard.short=ART
-America/Argentina/ComodRivadavia.daylight.short=ARST
-America/Argentina/ComodRivadavia.generic.short=ART
-America/Argentina/ComodRivadavia.standard.short=ART
-America/Argentina/Cordoba.daylight.short=ARST
-America/Argentina/Cordoba.generic.short=ART
-America/Argentina/Cordoba.standard.short=ART
-America/Argentina/Jujuy.daylight.short=ARST
-America/Argentina/Jujuy.generic.short=ART
-America/Argentina/Jujuy.standard.short=ART
-America/Argentina/La_Rioja.daylight.short=ARST
-America/Argentina/La_Rioja.generic.short=ART
-America/Argentina/La_Rioja.standard.short=ART
-America/Argentina/Mendoza.daylight.short=ARST
-America/Argentina/Mendoza.generic.short=ART
-America/Argentina/Mendoza.standard.short=ART
-America/Argentina/Rio_Gallegos.daylight.short=ARST
-America/Argentina/Rio_Gallegos.generic.short=ART
-America/Argentina/Rio_Gallegos.standard.short=ART
-America/Argentina/Salta.daylight.short=ARST
-America/Argentina/Salta.generic.short=ART
-America/Argentina/Salta.standard.short=ART
-America/Argentina/San_Juan.daylight.short=ARST
-America/Argentina/San_Juan.generic.short=ART
-America/Argentina/San_Juan.standard.short=ART
-America/Argentina/San_Luis.daylight.short=ARST
-America/Argentina/San_Luis.generic.short=ART
-America/Argentina/San_Luis.standard.short=ART
-America/Argentina/Tucuman.daylight.short=ARST
-America/Argentina/Tucuman.generic.short=ART
-America/Argentina/Tucuman.standard.short=ART
-America/Argentina/Ushuaia.daylight.short=ARST
-America/Argentina/Ushuaia.generic.short=ART
-America/Argentina/Ushuaia.standard.short=ART
-America/Aruba.daylight.short=ADT
-America/Aruba.generic.short=AT
-America/Aruba.standard.short=AST
-America/Asuncion.daylight.short=PYST
-America/Asuncion.generic.short=PYT
-America/Asuncion.standard.short=PYT
-America/Atikokan.daylight.short=EDT
-America/Atikokan.generic.short=ET
-America/Atikokan.standard.short=EST
-America/Atka.daylight.short=HADT
-America/Atka.generic.short=HAT
-America/Atka.standard.short=HAST
-America/Bahia_Banderas.daylight.short=CDT
-America/Bahia_Banderas.generic.short=CT
-America/Bahia_Banderas.standard.short=CST
-America/Bahia.daylight.short=BRST
-America/Bahia.generic.short=BRT
-America/Bahia.standard.short=BRT
-America/Barbados.daylight.short=ADT
-America/Barbados.generic.short=AT
-America/Barbados.standard.short=AST
-America/Belem.daylight.short=BRST
-America/Belem.generic.short=BRT
-America/Belem.standard.short=BRT
-America/Belize.daylight.short=CDT
-America/Belize.generic.short=CT
-America/Belize.standard.short=CST
-America/Blanc-Sablon.daylight.short=ADT
-America/Blanc-Sablon.generic.short=AT
-America/Blanc-Sablon.standard.short=AST
-America/Boa_Vista.daylight.short=AMST
-America/Boa_Vista.generic.short=AMT
-America/Boa_Vista.standard.short=AMT
-America/Bogota.daylight.short=COST
-America/Bogota.generic.short=COT
-America/Bogota.standard.short=COT
-America/Boise.daylight.short=MDT
-America/Boise.generic.short=MT
-America/Boise.standard.short=MST
-America/Buenos_Aires.daylight.short=ARST
-America/Buenos_Aires.generic.short=ART
-America/Buenos_Aires.standard.short=ART
-America/Cambridge_Bay.daylight.short=MDT
-America/Cambridge_Bay.generic.short=MT
-America/Cambridge_Bay.standard.short=MST
-America/Campo_Grande.daylight.short=AMST
-America/Campo_Grande.generic.short=AMT
-America/Campo_Grande.standard.short=AMT
-America/Cancun.daylight.short=CDT
-America/Cancun.generic.short=CT
-America/Cancun.standard.short=CST
-America/Caracas.daylight.short=VEST
-America/Caracas.generic.short=VET
-America/Caracas.standard.short=VET
-America/Catamarca.daylight.short=ARST
-America/Catamarca.generic.short=ART
-America/Catamarca.standard.short=ART
-America/Cayenne.daylight.short=GFST
-America/Cayenne.generic.short=GFT
-America/Cayenne.standard.short=GFT
-America/Cayman.daylight.short=EDT
-America/Cayman.generic.short=ET
-America/Cayman.standard.short=EST
-America/Chicago.daylight.short=CDT
-America/Chicago.generic.short=CT
-America/Chicago.standard.short=CST
-America/Chihuahua.daylight.short=MDT
-America/Chihuahua.generic.short=MT
-America/Chihuahua.standard.short=MST
-America/Coral_Harbour.daylight.short=EDT
-America/Coral_Harbour.generic.short=ET
-America/Coral_Harbour.standard.short=EST
-America/Cordoba.daylight.short=ARST
-America/Cordoba.generic.short=ART
-America/Cordoba.standard.short=ART
-America/Costa_Rica.daylight.short=CDT
-America/Costa_Rica.generic.short=CT
-America/Costa_Rica.standard.short=CST
-America/Creston.daylight.short=MDT
-America/Creston.generic.short=MT
-America/Creston.standard.short=MST
-America/Cuiaba.daylight.short=AMST
-America/Cuiaba.generic.short=AMT
-America/Cuiaba.standard.short=AMT
-America/Curacao.daylight.short=ADT
-America/Curacao.generic.short=AT
-America/Curacao.standard.short=AST
-America/Danmarkshavn.daylight.short=GMT
-America/Danmarkshavn.generic.short=GMT
-America/Danmarkshavn.standard.short=GMT
-America/Dawson_Creek.daylight.short=MDT
-America/Dawson_Creek.generic.short=MT
-America/Dawson_Creek.standard.short=MST
-America/Dawson.daylight.short=PDT
-America/Dawson.generic.short=PT
-America/Dawson.standard.short=PST
-America/Denver.daylight.short=MDT
-America/Denver.generic.short=MT
-America/Denver.standard.short=MST
-America/Detroit.daylight.short=EDT
-America/Detroit.generic.short=ET
-America/Detroit.standard.short=EST
-America/Dominica.daylight.short=ADT
-America/Dominica.generic.short=AT
-America/Dominica.standard.short=AST
-America/Edmonton.daylight.short=MDT
-America/Edmonton.generic.short=MT
-America/Edmonton.standard.short=MST
-America/Eirunepe.daylight.short=ACST
-America/Eirunepe.generic.short=ACT
-America/Eirunepe.standard.short=ACT
-America/El_Salvador.daylight.short=CDT
-America/El_Salvador.generic.short=CT
-America/El_Salvador.standard.short=CST
-America/Ensenada.daylight.short=PDT
-America/Ensenada.generic.short=PT
-America/Ensenada.standard.short=PST
-America/Fortaleza.daylight.short=BRST
-America/Fortaleza.generic.short=BRT
-America/Fortaleza.standard.short=BRT
-America/Fort_Wayne.daylight.short=EDT
-America/Fort_Wayne.generic.short=ET
-America/Fort_Wayne.standard.short=EST
-America/Glace_Bay.daylight.short=ADT
-America/Glace_Bay.generic.short=AT
-America/Glace_Bay.standard.short=AST
-America/Godthab.daylight.short=WGST
-America/Godthab.generic.short=WGT
-America/Godthab.standard.short=WGT
-America/Goose_Bay.daylight.short=ADT
-America/Goose_Bay.generic.short=AT
-America/Goose_Bay.standard.short=AST
-America/Grand_Turk.daylight.short=EDT
-America/Grand_Turk.generic.short=ET
-America/Grand_Turk.standard.short=EST
-America/Grenada.daylight.short=ADT
-America/Grenada.generic.short=AT
-America/Grenada.standard.short=AST
-America/Guadeloupe.daylight.short=ADT
-America/Guadeloupe.generic.short=AT
-America/Guadeloupe.standard.short=AST
-America/Guatemala.daylight.short=CDT
-America/Guatemala.generic.short=CT
-America/Guatemala.standard.short=CST
-America/Guayaquil.daylight.short=ECST
-America/Guayaquil.generic.short=ECT
-America/Guayaquil.standard.short=ECT
-America/Guyana.daylight.short=GYST
-America/Guyana.generic.short=GYT
-America/Guyana.standard.short=GYT
-America/Halifax.daylight.short=ADT
-America/Halifax.generic.short=AT
-America/Halifax.standard.short=AST
-America/Havana.daylight.short=CDT
-America/Havana.generic.short=CT
-America/Havana.standard.short=CST
-America/Hermosillo.daylight.short=MDT
-America/Hermosillo.generic.short=MT
-America/Hermosillo.standard.short=MST
-America/Indiana/Indianapolis.daylight.short=EDT
-America/Indiana/Indianapolis.generic.short=ET
-America/Indiana/Indianapolis.standard.short=EST
-America/Indiana/Knox.daylight.short=CDT
-America/Indiana/Knox.generic.short=CT
-America/Indiana/Knox.standard.short=CST
-America/Indiana/Marengo.daylight.short=EDT
-America/Indiana/Marengo.generic.short=ET
-America/Indiana/Marengo.standard.short=EST
-America/Indiana/Petersburg.daylight.short=EDT
-America/Indiana/Petersburg.generic.short=ET
-America/Indiana/Petersburg.standard.short=EST
-America/Indianapolis.daylight.short=EDT
-America/Indianapolis.generic.short=ET
-America/Indianapolis.standard.short=EST
-America/Indiana/Tell_City.daylight.short=CDT
-America/Indiana/Tell_City.generic.short=CT
-America/Indiana/Tell_City.standard.short=CST
-America/Indiana/Vevay.daylight.short=EDT
-America/Indiana/Vevay.generic.short=ET
-America/Indiana/Vevay.standard.short=EST
-America/Indiana/Vincennes.daylight.short=EDT
-America/Indiana/Vincennes.generic.short=ET
-America/Indiana/Vincennes.standard.short=EST
-America/Indiana/Winamac.daylight.short=EDT
-America/Indiana/Winamac.generic.short=ET
-America/Indiana/Winamac.standard.short=EST
-America/Inuvik.daylight.short=MDT
-America/Inuvik.generic.short=MT
-America/Inuvik.standard.short=MST
-America/Iqaluit.daylight.short=EDT
-America/Iqaluit.generic.short=ET
-America/Iqaluit.standard.short=EST
-America/Jamaica.daylight.short=EDT
-America/Jamaica.generic.short=ET
-America/Jamaica.standard.short=EST
-America/Jujuy.daylight.short=ARST
-America/Jujuy.generic.short=ART
-America/Jujuy.standard.short=ART
-America/Juneau.daylight.short=AKDT
-America/Juneau.generic.short=AKT
-America/Juneau.standard.short=AKST
-America/Kentucky/Louisville.daylight.short=EDT
-America/Kentucky/Louisville.generic.short=ET
-America/Kentucky/Louisville.standard.short=EST
-America/Kentucky/Monticello.daylight.short=EDT
-America/Kentucky/Monticello.generic.short=ET
-America/Kentucky/Monticello.standard.short=EST
-America/Knox_IN.daylight.short=CDT
-America/Knox_IN.generic.short=CT
-America/Knox_IN.standard.short=CST
-America/Kralendijk.daylight.short=ADT
-America/Kralendijk.generic.short=AT
-America/Kralendijk.standard.short=AST
-America/La_Paz.daylight.short=BOST
-America/La_Paz.generic.short=BOT
-America/La_Paz.standard.short=BOT
-America/Lima.daylight.short=PEST
-America/Lima.generic.short=PET
-America/Lima.standard.short=PET
-America/Los_Angeles.daylight.short=PDT
-America/Los_Angeles.generic.short=PT
-America/Los_Angeles.standard.short=PST
-America/Louisville.daylight.short=EDT
-America/Louisville.generic.short=ET
-America/Louisville.standard.short=EST
-America/Lower_Princes.daylight.short=ADT
-America/Lower_Princes.generic.short=AT
-America/Lower_Princes.standard.short=AST
-America/Maceio.daylight.short=BRST
-America/Maceio.generic.short=BRT
-America/Maceio.standard.short=BRT
-America/Managua.daylight.short=CDT
-America/Managua.generic.short=CT
-America/Managua.standard.short=CST
-America/Manaus.daylight.short=AMST
-America/Manaus.generic.short=AMT
-America/Manaus.standard.short=AMT
-America/Marigot.daylight.short=ADT
-America/Marigot.generic.short=AT
-America/Marigot.standard.short=AST
-America/Martinique.daylight.short=ADT
-America/Martinique.generic.short=AT
-America/Martinique.standard.short=AST
-America/Matamoros.daylight.short=CDT
-America/Matamoros.generic.short=CT
-America/Matamoros.standard.short=CST
-America/Mazatlan.daylight.short=MDT
-America/Mazatlan.generic.short=MT
-America/Mazatlan.standard.short=MST
-America/Mendoza.daylight.short=ARST
-America/Mendoza.generic.short=ART
-America/Mendoza.standard.short=ART
-America/Menominee.daylight.short=CDT
-America/Menominee.generic.short=CT
-America/Menominee.standard.short=CST
-America/Merida.daylight.short=CDT
-America/Merida.generic.short=CT
-America/Merida.standard.short=CST
-America/Metlakatla.daylight.short=MeDT
-America/Metlakatla.generic.short=MeT
-America/Metlakatla.standard.short=MeST
-America/Mexico_City.daylight.short=CDT
-America/Mexico_City.generic.short=CT
-America/Mexico_City.standard.short=CST
-America/Miquelon.daylight.short=PMDT
-America/Miquelon.generic.short=PMT
-America/Miquelon.standard.short=PMST
-America/Moncton.daylight.short=ADT
-America/Moncton.generic.short=AT
-America/Moncton.standard.short=AST
-America/Monterrey.daylight.short=CDT
-America/Monterrey.generic.short=CT
-America/Monterrey.standard.short=CST
-America/Montevideo.daylight.short=UYST
-America/Montevideo.generic.short=UYT
-America/Montevideo.standard.short=UYT
-America/Montreal.daylight.short=EDT
-America/Montreal.generic.short=ET
-America/Montreal.standard.short=EST
-America/Montserrat.daylight.short=ADT
-America/Montserrat.generic.short=AT
-America/Montserrat.standard.short=AST
-America/Nassau.daylight.short=EDT
-America/Nassau.generic.short=ET
-America/Nassau.standard.short=EST
-America/New_York.daylight.short=EDT
-America/New_York.generic.short=ET
-America/New_York.standard.short=EST
-America/Nipigon.daylight.short=EDT
-America/Nipigon.generic.short=ET
-America/Nipigon.standard.short=EST
-America/Nome.daylight.short=AKDT
-America/Nome.generic.short=AKT
-America/Nome.standard.short=AKST
-America/Noronha.daylight.short=FNST
-America/Noronha.generic.short=FNT
-America/Noronha.standard.short=FNT
-America/North_Dakota/Beulah.daylight.short=CDT
-America/North_Dakota/Beulah.generic.short=CT
-America/North_Dakota/Beulah.standard.short=CST
-America/North_Dakota/Center.daylight.short=CDT
-America/North_Dakota/Center.generic.short=CT
-America/North_Dakota/Center.standard.short=CST
-America/North_Dakota/New_Salem.daylight.short=CDT
-America/North_Dakota/New_Salem.generic.short=CT
-America/North_Dakota/New_Salem.standard.short=CST
-America/Ojinaga.daylight.short=MDT
-America/Ojinaga.generic.short=MT
-America/Ojinaga.standard.short=MST
-America/Panama.daylight.short=EDT
-America/Panama.generic.short=ET
-America/Panama.standard.short=EST
-America/Pangnirtung.daylight.short=EDT
-America/Pangnirtung.generic.short=ET
-America/Pangnirtung.standard.short=EST
-America/Paramaribo.daylight.short=SRST
-America/Paramaribo.generic.short=SRT
-America/Paramaribo.standard.short=SRT
-America/Phoenix.daylight.short=MDT
-America/Phoenix.generic.short=MT
-America/Phoenix.standard.short=MST
-America/Port-au-Prince.daylight.short=EDT
-America/Port-au-Prince.generic.short=ET
-America/Port-au-Prince.standard.short=EST
-America/Porto_Acre.daylight.short=ACST
-America/Porto_Acre.generic.short=ACT
-America/Porto_Acre.standard.short=ACT
-America/Port_of_Spain.daylight.short=ADT
-America/Port_of_Spain.generic.short=AT
-America/Port_of_Spain.standard.short=AST
-America/Porto_Velho.daylight.short=AMST
-America/Porto_Velho.generic.short=AMT
-America/Porto_Velho.standard.short=AMT
-America/Puerto_Rico.daylight.short=ADT
-America/Puerto_Rico.generic.short=AT
-America/Puerto_Rico.standard.short=AST
-America/Rainy_River.daylight.short=CDT
-America/Rainy_River.generic.short=CT
-America/Rainy_River.standard.short=CST
-America/Rankin_Inlet.daylight.short=CDT
-America/Rankin_Inlet.generic.short=CT
-America/Rankin_Inlet.standard.short=CST
-America/Recife.daylight.short=BRST
-America/Recife.generic.short=BRT
-America/Recife.standard.short=BRT
-America/Regina.daylight.short=CDT
-America/Regina.generic.short=CT
-America/Regina.standard.short=CST
-America/Resolute.daylight.short=CDT
-America/Resolute.generic.short=CT
-America/Resolute.standard.short=CST
-America/Rio_Branco.daylight.short=ACST
-America/Rio_Branco.generic.short=ACT
-America/Rio_Branco.standard.short=ACT
-America/Rosario.daylight.short=ARST
-America/Rosario.generic.short=ART
-America/Rosario.standard.short=ART
-America/Santa_Isabel.daylight.short=PDT
-America/Santa_Isabel.generic.short=PT
-America/Santa_Isabel.standard.short=PST
-America/Santarem.daylight.short=BRST
-America/Santarem.generic.short=BRT
-America/Santarem.standard.short=BRT
-America/Santiago.daylight.short=CLST
-America/Santiago.generic.short=CLT
-America/Santiago.standard.short=CLT
-America/Santo_Domingo.daylight.short=ADT
-America/Santo_Domingo.generic.short=AT
-America/Santo_Domingo.standard.short=AST
-America/Sao_Paulo.daylight.short=BRST
-America/Sao_Paulo.generic.short=BRT
-America/Sao_Paulo.standard.short=BRT
-America/Scoresbysund.daylight.short=EGST
-America/Scoresbysund.generic.short=EGT
-America/Scoresbysund.standard.short=EGT
-America/Shiprock.daylight.short=MDT
-America/Shiprock.generic.short=MT
-America/Shiprock.standard.short=MST
-America/Sitka.daylight.short=AKDT
-America/Sitka.generic.short=AKT
-America/Sitka.standard.short=AKST
-America/St_Barthelemy.daylight.short=ADT
-America/St_Barthelemy.generic.short=AT
-America/St_Barthelemy.standard.short=AST
-America/St_Johns.daylight.short=NDT
-America/St_Johns.generic.short=NT
-America/St_Johns.standard.short=NST
-America/St_Kitts.daylight.short=ADT
-America/St_Kitts.generic.short=AT
-America/St_Kitts.standard.short=AST
-America/St_Lucia.daylight.short=ADT
-America/St_Lucia.generic.short=AT
-America/St_Lucia.standard.short=AST
-America/St_Thomas.daylight.short=ADT
-America/St_Thomas.generic.short=AT
-America/St_Thomas.standard.short=AST
-America/St_Vincent.daylight.short=ADT
-America/St_Vincent.generic.short=AT
-America/St_Vincent.standard.short=AST
-America/Swift_Current.daylight.short=CDT
-America/Swift_Current.generic.short=CT
-America/Swift_Current.standard.short=CST
-America/Tegucigalpa.daylight.short=CDT
-America/Tegucigalpa.generic.short=CT
-America/Tegucigalpa.standard.short=CST
-America/Thule.daylight.short=ADT
-America/Thule.generic.short=AT
-America/Thule.standard.short=AST
-America/Thunder_Bay.daylight.short=EDT
-America/Thunder_Bay.generic.short=ET
-America/Thunder_Bay.standard.short=EST
-America/Tijuana.daylight.short=PDT
-America/Tijuana.generic.short=PT
-America/Tijuana.standard.short=PST
-America/Toronto.daylight.short=EDT
-America/Toronto.generic.short=ET
-America/Toronto.standard.short=EST
-America/Tortola.daylight.short=ADT
-America/Tortola.generic.short=AT
-America/Tortola.standard.short=AST
-America/Vancouver.daylight.short=PDT
-America/Vancouver.generic.short=PT
-America/Vancouver.standard.short=PST
-America/Virgin.daylight.short=ADT
-America/Virgin.generic.short=AT
-America/Virgin.standard.short=AST
-America/Whitehorse.daylight.short=PDT
-America/Whitehorse.generic.short=PT
-America/Whitehorse.standard.short=PST
-America/Winnipeg.daylight.short=CDT
-America/Winnipeg.generic.short=CT
-America/Winnipeg.standard.short=CST
-America/Yakutat.daylight.short=AKDT
-America/Yakutat.generic.short=AKT
-America/Yakutat.standard.short=AKST
-America/Yellowknife.daylight.short=MDT
-America/Yellowknife.generic.short=MT
-America/Yellowknife.standard.short=MST
-Antarctica/Casey.daylight.short=WST
-Antarctica/Casey.generic.short=WT
-Antarctica/Casey.standard.short=WST
-Antarctica/Davis.daylight.short=DAVST
-Antarctica/Davis.generic.short=DAVT
-Antarctica/Davis.standard.short=DAVT
-Antarctica/DumontDUrville.daylight.short=DDUST
-Antarctica/DumontDUrville.generic.short=DDUT
-Antarctica/DumontDUrville.standard.short=DDUT
-Antarctica/Macquarie.daylight.short=MIST
-Antarctica/Macquarie.generic.short=MIST
-Antarctica/Macquarie.standard.short=MIST
-Antarctica/Mawson.daylight.short=MAWST
-Antarctica/Mawson.generic.short=MAWT
-Antarctica/Mawson.standard.short=MAWT
-Antarctica/McMurdo.daylight.short=NZDT
-Antarctica/McMurdo.generic.short=NZT
-Antarctica/McMurdo.standard.short=NZST
-Antarctica/Palmer.daylight.short=CLST
-Antarctica/Palmer.generic.short=CLT
-Antarctica/Palmer.standard.short=CLT
-Antarctica/Rothera.daylight.short=ROTST
-Antarctica/Rothera.generic.short=ROTT
-Antarctica/Rothera.standard.short=ROTT
-Antarctica/South_Pole.daylight.short=NZDT
-Antarctica/South_Pole.generic.short=NZT
-Antarctica/South_Pole.standard.short=NZST
-Antarctica/Syowa.daylight.short=SYOST
-Antarctica/Syowa.generic.short=SYOT
-Antarctica/Syowa.standard.short=SYOT
-Antarctica/Vostok.daylight.short=VOSST
-Antarctica/Vostok.generic.short=VOST
-Antarctica/Vostok.standard.short=VOST
-Arctic/Longyearbyen.daylight.short=CEST
-Arctic/Longyearbyen.generic.short=CET
-Arctic/Longyearbyen.standard.short=CET
-ART.daylight.short=EEST
-ART.generic.short=EET
-ART.standard.short=EET
-Asia/Aden.daylight.short=ADT
-Asia/Aden.generic.short=AT
-Asia/Aden.standard.short=AST
-Asia/Almaty.daylight.short=ALMST
-Asia/Almaty.generic.short=ALMT
-Asia/Almaty.standard.short=ALMT
-Asia/Amman.daylight.short=ADT
-Asia/Amman.generic.short=AT
-Asia/Amman.standard.short=AST
-Asia/Anadyr.daylight.short=ANAST
-Asia/Anadyr.generic.short=ANAT
-Asia/Anadyr.standard.short=ANAT
-Asia/Aqtau.daylight.short=AQTST
-Asia/Aqtau.generic.short=AQTT
-Asia/Aqtau.standard.short=AQTT
-Asia/Aqtobe.daylight.short=AQTST
-Asia/Aqtobe.generic.short=AQTT
-Asia/Aqtobe.standard.short=AQTT
-Asia/Ashgabat.daylight.short=TMST
-Asia/Ashgabat.generic.short=TMT
-Asia/Ashgabat.standard.short=TMT
-Asia/Ashkhabad.daylight.short=TMST
-Asia/Ashkhabad.generic.short=TMT
-Asia/Ashkhabad.standard.short=TMT
-Asia/Baghdad.daylight.short=ADT
-Asia/Baghdad.generic.short=AT
-Asia/Baghdad.standard.short=AST
-Asia/Bahrain.daylight.short=ADT
-Asia/Bahrain.generic.short=AT
-Asia/Bahrain.standard.short=AST
-Asia/Baku.daylight.short=AZST
-Asia/Baku.generic.short=AZT
-Asia/Baku.standard.short=AZT
-Asia/Bangkok.daylight.short=ICST
-Asia/Bangkok.generic.short=ICT
-Asia/Bangkok.standard.short=ICT
-Asia/Beirut.daylight.short=EEST
-Asia/Beirut.generic.short=EET
-Asia/Beirut.standard.short=EET
-Asia/Bishkek.daylight.short=KGST
-Asia/Bishkek.generic.short=KGT
-Asia/Bishkek.standard.short=KGT
-Asia/Brunei.daylight.short=BNST
-Asia/Brunei.generic.short=BNT
-Asia/Brunei.standard.short=BNT
-Asia/Calcutta.daylight.short=IDT
-Asia/Calcutta.generic.short=IT
-Asia/Calcutta.standard.short=IST
-Asia/Choibalsan.daylight.short=CHOST
-Asia/Choibalsan.generic.short=CHOT
-Asia/Choibalsan.standard.short=CHOT
-Asia/Chongqing.daylight.short=CDT
-Asia/Chongqing.generic.short=CT
-Asia/Chongqing.standard.short=CST
-Asia/Chungking.daylight.short=CDT
-Asia/Chungking.generic.short=CT
-Asia/Chungking.standard.short=CST
-Asia/Colombo.daylight.short=IDT
-Asia/Colombo.generic.short=IT
-Asia/Colombo.standard.short=IST
-Asia/Dacca.daylight.short=BDST
-Asia/Dacca.generic.short=BDT
-Asia/Dacca.standard.short=BDT
-Asia/Damascus.daylight.short=EEST
-Asia/Damascus.generic.short=EET
-Asia/Damascus.standard.short=EET
-Asia/Dhaka.daylight.short=BDST
-Asia/Dhaka.generic.short=BDT
-Asia/Dhaka.standard.short=BDT
-Asia/Dili.daylight.short=TLST
-Asia/Dili.generic.short=TLT
-Asia/Dili.standard.short=TLT
-Asia/Dubai.daylight.short=GDT
-Asia/Dubai.generic.short=GT
-Asia/Dubai.standard.short=GST
-Asia/Dushanbe.daylight.short=TJST
-Asia/Dushanbe.generic.short=TJT
-Asia/Dushanbe.standard.short=TJT
-Asia/Gaza.daylight.short=EEST
-Asia/Gaza.generic.short=EET
-Asia/Gaza.standard.short=EET
-Asia/Harbin.daylight.short=CDT
-Asia/Harbin.generic.short=CT
-Asia/Harbin.standard.short=CST
-Asia/Hebron.daylight.short=EEST
-Asia/Hebron.generic.short=EET
-Asia/Hebron.standard.short=EET
-Asia/Ho_Chi_Minh.daylight.short=ICST
-Asia/Ho_Chi_Minh.generic.short=ICT
-Asia/Ho_Chi_Minh.standard.short=ICT
-Asia/Hong_Kong.daylight.short=HKST
-Asia/Hong_Kong.generic.short=HKT
-Asia/Hong_Kong.standard.short=HKT
-Asia/Hovd.daylight.short=HOVST
-Asia/Hovd.generic.short=HOVT
-Asia/Hovd.standard.short=HOVT
-Asia/Irkutsk.daylight.short=IRKST
-Asia/Irkutsk.generic.short=IRKT
-Asia/Irkutsk.standard.short=IRKT
-Asia/Istanbul.daylight.short=EEST
-Asia/Istanbul.generic.short=EET
-Asia/Istanbul.standard.short=EET
-Asia/Jakarta.daylight.short=WIST
-Asia/Jakarta.generic.short=WIB
-Asia/Jakarta.standard.short=WIB
-Asia/Jayapura.daylight.short=EIST
-Asia/Jayapura.generic.short=WIT
-Asia/Jayapura.standard.short=WIT
-Asia/Jerusalem.daylight.short=IDT
-Asia/Jerusalem.generic.short=IT
-Asia/Jerusalem.standard.short=IST
-Asia/Kabul.daylight.short=AFST
-Asia/Kabul.generic.short=AFT
-Asia/Kabul.standard.short=AFT
-Asia/Kamchatka.daylight.short=PETST
-Asia/Kamchatka.generic.short=PETT
-Asia/Kamchatka.standard.short=PETT
-Asia/Karachi.daylight.short=PKST
-Asia/Karachi.generic.short=PKT
-Asia/Karachi.standard.short=PKT
-Asia/Kashgar.daylight.short=CDT
-Asia/Kashgar.generic.short=CT
-Asia/Kashgar.standard.short=CST
-Asia/Kathmandu.daylight.short=NPST
-Asia/Kathmandu.generic.short=NPT
-Asia/Kathmandu.standard.short=NPT
-Asia/Katmandu.daylight.short=NPST
-Asia/Katmandu.generic.short=NPT
-Asia/Katmandu.standard.short=NPT
-Asia/Khandyga.daylight.short=YAKST
-Asia/Khandyga.generic.short=YAKT
-Asia/Khandyga.standard.short=YAKT
-Asia/Kolkata.daylight.short=IDT
-Asia/Kolkata.generic.short=IT
-Asia/Kolkata.standard.short=IST
-Asia/Krasnoyarsk.daylight.short=KRAST
-Asia/Krasnoyarsk.generic.short=KRAT
-Asia/Krasnoyarsk.standard.short=KRAT
-Asia/Kuala_Lumpur.daylight.short=MYST
-Asia/Kuala_Lumpur.generic.short=MYT
-Asia/Kuala_Lumpur.standard.short=MYT
-Asia/Kuching.daylight.short=MYST
-Asia/Kuching.generic.short=MYT
-Asia/Kuching.standard.short=MYT
-Asia/Kuwait.daylight.short=ADT
-Asia/Kuwait.generic.short=AT
-Asia/Kuwait.standard.short=AST
-Asia/Macao.daylight.short=CDT
-Asia/Macao.generic.short=CT
-Asia/Macao.standard.short=CST
-Asia/Macau.daylight.short=CDT
-Asia/Macau.generic.short=CT
-Asia/Macau.standard.short=CST
-Asia/Magadan.daylight.short=MAGST
-Asia/Magadan.generic.short=MAGT
-Asia/Magadan.standard.short=MAGT
-Asia/Makassar.daylight.short=CIST
-Asia/Makassar.generic.short=WITA
-Asia/Makassar.standard.short=WITA
-Asia/Manila.daylight.short=PHST
-Asia/Manila.generic.short=PHT
-Asia/Manila.standard.short=PHT
-Asia/Muscat.daylight.short=GDT
-Asia/Muscat.generic.short=GT
-Asia/Muscat.standard.short=GST
-Asia/Nicosia.daylight.short=EEST
-Asia/Nicosia.generic.short=EET
-Asia/Nicosia.standard.short=EET
-Asia/Novokuznetsk.daylight.short=NOVST
-Asia/Novokuznetsk.generic.short=NOVT
-Asia/Novokuznetsk.standard.short=NOVT
-Asia/Novosibirsk.daylight.short=NOVST
-Asia/Novosibirsk.generic.short=NOVT
-Asia/Novosibirsk.standard.short=NOVT
-Asia/Omsk.daylight.short=OMSST
-Asia/Omsk.generic.short=OMST
-Asia/Omsk.standard.short=OMST
-Asia/Oral.daylight.short=ORAST
-Asia/Oral.generic.short=ORAT
-Asia/Oral.standard.short=ORAT
-Asia/Phnom_Penh.daylight.short=ICST
-Asia/Phnom_Penh.generic.short=ICT
-Asia/Phnom_Penh.standard.short=ICT
-Asia/Pontianak.daylight.short=WIST
-Asia/Pontianak.generic.short=WIB
-Asia/Pontianak.standard.short=WIB
-Asia/Pyongyang.daylight.short=KDT
-Asia/Pyongyang.generic.short=KT
-Asia/Pyongyang.standard.short=KST
-Asia/Qatar.daylight.short=ADT
-Asia/Qatar.generic.short=AT
-Asia/Qatar.standard.short=AST
-Asia/Qyzylorda.daylight.short=QYZST
-Asia/Qyzylorda.generic.short=QYZT
-Asia/Qyzylorda.standard.short=QYZT
-Asia/Rangoon.daylight.short=MMST
-Asia/Rangoon.generic.short=MMT
-Asia/Rangoon.standard.short=MMT
-Asia/Saigon.daylight.short=ICST
-Asia/Saigon.generic.short=ICT
-Asia/Saigon.standard.short=ICT
-Asia/Sakhalin.daylight.short=SAKST
-Asia/Sakhalin.generic.short=SAKT
-Asia/Sakhalin.standard.short=SAKT
-Asia/Samarkand.daylight.short=UZST
-Asia/Samarkand.generic.short=UZT
-Asia/Samarkand.standard.short=UZT
-Asia/Seoul.daylight.short=KDT
-Asia/Seoul.generic.short=KT
-Asia/Seoul.standard.short=KST
-Asia/Shanghai.daylight.short=CDT
-Asia/Shanghai.generic.short=CT
-Asia/Shanghai.standard.short=CST
-Asia/Singapore.daylight.short=SGST
-Asia/Singapore.generic.short=SGT
-Asia/Singapore.standard.short=SGT
-Asia/Taipei.daylight.short=CDT
-Asia/Taipei.generic.short=CT
-Asia/Taipei.standard.short=CST
-Asia/Tashkent.daylight.short=UZST
-Asia/Tashkent.generic.short=UZT
-Asia/Tashkent.standard.short=UZT
-Asia/Tbilisi.daylight.short=GEST
-Asia/Tbilisi.generic.short=GET
-Asia/Tbilisi.standard.short=GET
-Asia/Tehran.daylight.short=IRDT
-Asia/Tehran.generic.short=IRT
-Asia/Tehran.standard.short=IRST
-Asia/Tel_Aviv.daylight.short=IDT
-Asia/Tel_Aviv.generic.short=IT
-Asia/Tel_Aviv.standard.short=IST
-Asia/Thimbu.daylight.short=BTST
-Asia/Thimbu.generic.short=BTT
-Asia/Thimbu.standard.short=BTT
-Asia/Thimphu.daylight.short=BTST
-Asia/Thimphu.generic.short=BTT
-Asia/Thimphu.standard.short=BTT
-Asia/Tokyo.daylight.short=JDT
-Asia/Tokyo.generic.short=JT
-Asia/Tokyo.standard.short=JST
-Asia/Ujung_Pandang.daylight.short=CIST
-Asia/Ujung_Pandang.generic.short=WITA
-Asia/Ujung_Pandang.standard.short=WITA
-Asia/Ulaanbaatar.daylight.short=ULAST
-Asia/Ulaanbaatar.generic.short=ULAT
-Asia/Ulaanbaatar.standard.short=ULAT
-Asia/Ulan_Bator.daylight.short=ULAST
-Asia/Ulan_Bator.generic.short=ULAT
-Asia/Ulan_Bator.standard.short=ULAT
-Asia/Urumqi.daylight.short=CDT
-Asia/Urumqi.generic.short=CT
-Asia/Urumqi.standard.short=CST
-Asia/Ust-Nera.daylight.short=VLAST
-Asia/Ust-Nera.generic.short=VLAT
-Asia/Ust-Nera.standard.short=VLAT
-Asia/Vientiane.daylight.short=ICST
-Asia/Vientiane.generic.short=ICT
-Asia/Vientiane.standard.short=ICT
-Asia/Vladivostok.daylight.short=VLAST
-Asia/Vladivostok.generic.short=VLAT
-Asia/Vladivostok.standard.short=VLAT
-Asia/Yakutsk.daylight.short=YAKST
-Asia/Yakutsk.generic.short=YAKT
-Asia/Yakutsk.standard.short=YAKT
-Asia/Yekaterinburg.daylight.short=YEKST
-Asia/Yekaterinburg.generic.short=YEKT
-Asia/Yekaterinburg.standard.short=YEKT
-Asia/Yerevan.daylight.short=AMST
-Asia/Yerevan.generic.short=AMT
-Asia/Yerevan.standard.short=AMT
-AST.daylight.short=AKDT
-AST.generic.short=AKT
-AST.standard.short=AKST
-Atlantic/Azores.daylight.short=AZOST
-Atlantic/Azores.generic.short=AZOT
-Atlantic/Azores.standard.short=AZOT
-Atlantic/Bermuda.daylight.short=ADT
-Atlantic/Bermuda.generic.short=AT
-Atlantic/Bermuda.standard.short=AST
-Atlantic/Canary.daylight.short=WEST
-Atlantic/Canary.generic.short=WET
-Atlantic/Canary.standard.short=WET
-Atlantic/Cape_Verde.daylight.short=CVST
-Atlantic/Cape_Verde.generic.short=CVT
-Atlantic/Cape_Verde.standard.short=CVT
-Atlantic/Faeroe.daylight.short=WEST
-Atlantic/Faeroe.generic.short=WET
-Atlantic/Faeroe.standard.short=WET
-Atlantic/Faroe.daylight.short=WEST
-Atlantic/Faroe.generic.short=WET
-Atlantic/Faroe.standard.short=WET
-Atlantic/Jan_Mayen.daylight.short=CEST
-Atlantic/Jan_Mayen.generic.short=CET
-Atlantic/Jan_Mayen.standard.short=CET
-Atlantic/Madeira.daylight.short=WEST
-Atlantic/Madeira.generic.short=WET
-Atlantic/Madeira.standard.short=WET
-Atlantic/Reykjavik.daylight.short=GMT
-Atlantic/Reykjavik.generic.short=GMT
-Atlantic/Reykjavik.standard.short=GMT
-Atlantic/South_Georgia.daylight.short=GDT
-Atlantic/South_Georgia.generic.short=GT
-Atlantic/South_Georgia.standard.short=GST
-Atlantic/Stanley.daylight.short=FKST
-Atlantic/Stanley.generic.short=FKT
-Atlantic/Stanley.standard.short=FKT
-Atlantic/St_Helena.daylight.short=GMT
-Atlantic/St_Helena.generic.short=GMT
-Atlantic/St_Helena.standard.short=GMT
-Australia/ACT.daylight.short=EST
-Australia/ACT.generic.short=ET
-Australia/ACT.standard.short=EST
-Australia/Adelaide.daylight.short=CST
-Australia/Adelaide.generic.short=CT
-Australia/Adelaide.standard.short=CST
-Australia/Brisbane.daylight.short=EST
-Australia/Brisbane.generic.short=ET
-Australia/Brisbane.standard.short=EST
-Australia/Broken_Hill.daylight.short=CST
-Australia/Broken_Hill.generic.short=CT
-Australia/Broken_Hill.standard.short=CST
-Australia/Canberra.daylight.short=EST
-Australia/Canberra.generic.short=ET
-Australia/Canberra.standard.short=EST
-Australia/Currie.daylight.short=EST
-Australia/Currie.generic.short=ET
-Australia/Currie.standard.short=EST
-Australia/Darwin.daylight.short=CST
-Australia/Darwin.generic.short=CT
-Australia/Darwin.standard.short=CST
-Australia/Eucla.daylight.short=CWST
-Australia/Eucla.generic.short=CWT
-Australia/Eucla.standard.short=CWST
-Australia/Hobart.daylight.short=EST
-Australia/Hobart.generic.short=ET
-Australia/Hobart.standard.short=EST
-Australia/LHI.daylight.short=LHST
-Australia/LHI.generic.short=LHT
-Australia/LHI.standard.short=LHST
-Australia/Lindeman.daylight.short=EST
-Australia/Lindeman.generic.short=ET
-Australia/Lindeman.standard.short=EST
-Australia/Lord_Howe.daylight.short=LHST
-Australia/Lord_Howe.generic.short=LHT
-Australia/Lord_Howe.standard.short=LHST
-Australia/Melbourne.daylight.short=EST
-Australia/Melbourne.generic.short=ET
-Australia/Melbourne.standard.short=EST
-Australia/North.daylight.short=CST
-Australia/North.generic.short=CT
-Australia/North.standard.short=CST
-Australia/NSW.daylight.short=EST
-Australia/NSW.generic.short=ET
-Australia/NSW.standard.short=EST
-Australia/Perth.daylight.short=WST
-Australia/Perth.generic.short=WT
-Australia/Perth.standard.short=WST
-Australia/Queensland.daylight.short=EST
-Australia/Queensland.generic.short=ET
-Australia/Queensland.standard.short=EST
-Australia/South.daylight.short=CST
-Australia/South.generic.short=CT
-Australia/South.standard.short=CST
-Australia/Sydney.daylight.short=EST
-Australia/Sydney.generic.short=ET
-Australia/Sydney.standard.short=EST
-Australia/Tasmania.daylight.short=EST
-Australia/Tasmania.generic.short=ET
-Australia/Tasmania.standard.short=EST
-Australia/Victoria.daylight.short=EST
-Australia/Victoria.generic.short=ET
-Australia/Victoria.standard.short=EST
-Australia/West.daylight.short=WST
-Australia/West.generic.short=WT
-Australia/West.standard.short=WST
-Australia/Yancowinna.daylight.short=CST
-Australia/Yancowinna.generic.short=CT
-Australia/Yancowinna.standard.short=CST
-BET.daylight.short=BRST
-BET.generic.short=BRT
-BET.standard.short=BRT
-Brazil/Acre.daylight.short=ACST
-Brazil/Acre.generic.short=ACT
-Brazil/Acre.standard.short=ACT
-Brazil/DeNoronha.daylight.short=FNST
-Brazil/DeNoronha.generic.short=FNT
-Brazil/DeNoronha.standard.short=FNT
-Brazil/East.daylight.short=BRST
-Brazil/East.generic.short=BRT
-Brazil/East.standard.short=BRT
-Brazil/West.daylight.short=AMST
-Brazil/West.generic.short=AMT
-Brazil/West.standard.short=AMT
-BST.daylight.short=BDST
-BST.generic.short=BDT
-BST.standard.short=BDT
-Canada/Atlantic.daylight.short=ADT
-Canada/Atlantic.generic.short=AT
-Canada/Atlantic.standard.short=AST
-Canada/Central.daylight.short=CDT
-Canada/Central.generic.short=CT
-Canada/Central.standard.short=CST
-Canada/Eastern.daylight.short=EDT
-Canada/Eastern.generic.short=ET
-Canada/Eastern.standard.short=EST
-Canada/East-Saskatchewan.daylight.short=CDT
-Canada/East-Saskatchewan.generic.short=CT
-Canada/East-Saskatchewan.standard.short=CST
-Canada/Mountain.daylight.short=MDT
-Canada/Mountain.generic.short=MT
-Canada/Mountain.standard.short=MST
-Canada/Newfoundland.daylight.short=NDT
-Canada/Newfoundland.generic.short=NT
-Canada/Newfoundland.standard.short=NST
-Canada/Pacific.daylight.short=PDT
-Canada/Pacific.generic.short=PT
-Canada/Pacific.standard.short=PST
-Canada/Saskatchewan.daylight.short=CDT
-Canada/Saskatchewan.generic.short=CT
-Canada/Saskatchewan.standard.short=CST
-Canada/Yukon.daylight.short=PDT
-Canada/Yukon.generic.short=PT
-Canada/Yukon.standard.short=PST
-CAT.daylight.short=CAST
-CAT.generic.short=CAT
-CAT.standard.short=CAT
-CET.daylight.short=CEST
-CET.generic.short=CET
-CET.standard.short=CET
-Chile/Continental.daylight.short=CLST
-Chile/Continental.generic.short=CLT
-Chile/Continental.standard.short=CLT
-Chile/EasterIsland.daylight.short=EASST
-Chile/EasterIsland.generic.short=EAST
-Chile/EasterIsland.standard.short=EAST
-CNT.daylight.short=NDT
-CNT.generic.short=NT
-CNT.standard.short=NST
-CST6CDT.daylight.short=CDT
-CST6CDT.generic.short=CT
-CST6CDT.standard.short=CST
-CST.daylight.short=CDT
-CST.generic.short=CT
-CST.standard.short=CST
-CTT.daylight.short=CDT
-CTT.generic.short=CT
-CTT.standard.short=CST
-Cuba.daylight.short=CDT
-Cuba.generic.short=CT
-Cuba.standard.short=CST
-EAT.daylight.short=EAST
-EAT.generic.short=EAT
-EAT.standard.short=EAT
-ECT.daylight.short=CEST
-ECT.generic.short=CET
-ECT.standard.short=CET
-EET.daylight.short=EEST
-EET.generic.short=EET
-EET.standard.short=EET
-Egypt.daylight.short=EEST
-Egypt.generic.short=EET
-Egypt.standard.short=EET
-Eire.daylight.short=IST
-Eire.generic.short=IT
-Eire.standard.short=GMT
-EST5EDT.daylight.short=EDT
-EST5EDT.generic.short=ET
-EST5EDT.standard.short=EST
-EST.daylight.short=EDT
-EST.generic.short=ET
-EST.standard.short=EST
-Etc/Greenwich.daylight.short=GMT
-Etc/Greenwich.generic.short=GMT
-Etc/Greenwich.standard.short=GMT
-Etc/UCT.daylight.short=UTC
-Etc/UCT.generic.short=UTC
-Etc/UCT.standard.short=UTC
-Etc/Universal.daylight.short=UTC
-Etc/Universal.generic.short=UTC
-Etc/Universal.standard.short=UTC
-Etc/UTC.daylight.short=UTC
-Etc/UTC.generic.short=UTC
-Etc/UTC.standard.short=UTC
-Etc/Zulu.daylight.short=UTC
-Etc/Zulu.generic.short=UTC
-Etc/Zulu.standard.short=UTC
-Europe/Amsterdam.daylight.short=CEST
-Europe/Amsterdam.generic.short=CET
-Europe/Amsterdam.standard.short=CET
-Europe/Andorra.daylight.short=CEST
-Europe/Andorra.generic.short=CET
-Europe/Andorra.standard.short=CET
-Europe/Athens.daylight.short=EEST
-Europe/Athens.generic.short=EET
-Europe/Athens.standard.short=EET
-Europe/Belfast.daylight.short=BST
-Europe/Belfast.generic.short=BT
-Europe/Belfast.standard.short=GMT
-Europe/Belgrade.daylight.short=CEST
-Europe/Belgrade.generic.short=CET
-Europe/Belgrade.standard.short=CET
-Europe/Berlin.daylight.short=CEST
-Europe/Berlin.generic.short=CET
-Europe/Berlin.standard.short=CET
-Europe/Bratislava.daylight.short=CEST
-Europe/Bratislava.generic.short=CET
-Europe/Bratislava.standard.short=CET
-Europe/Brussels.daylight.short=CEST
-Europe/Brussels.generic.short=CET
-Europe/Brussels.standard.short=CET
-Europe/Bucharest.daylight.short=EEST
-Europe/Bucharest.generic.short=EET
-Europe/Bucharest.standard.short=EET
-Europe/Budapest.daylight.short=CEST
-Europe/Budapest.generic.short=CET
-Europe/Budapest.standard.short=CET
-Europe/Busingen.daylight.short=CEST
-Europe/Busingen.generic.short=CET
-Europe/Busingen.standard.short=CET
-Europe/Chisinau.daylight.short=EEST
-Europe/Chisinau.generic.short=EET
-Europe/Chisinau.standard.short=EET
-Europe/Copenhagen.daylight.short=CEST
-Europe/Copenhagen.generic.short=CET
-Europe/Copenhagen.standard.short=CET
-Europe/Dublin.daylight.short=IST
-Europe/Dublin.generic.short=IT
-Europe/Dublin.standard.short=GMT
-Europe/Gibraltar.daylight.short=CEST
-Europe/Gibraltar.generic.short=CET
-Europe/Gibraltar.standard.short=CET
-Europe/Guernsey.daylight.short=BST
-Europe/Guernsey.generic.short=BT
-Europe/Guernsey.standard.short=GMT
-Europe/Helsinki.daylight.short=EEST
-Europe/Helsinki.generic.short=EET
-Europe/Helsinki.standard.short=EET
-Europe/Isle_of_Man.daylight.short=BST
-Europe/Isle_of_Man.generic.short=BT
-Europe/Isle_of_Man.standard.short=GMT
-Europe/Istanbul.daylight.short=EEST
-Europe/Istanbul.generic.short=EET
-Europe/Istanbul.standard.short=EET
-Europe/Jersey.daylight.short=BST
-Europe/Jersey.generic.short=BT
-Europe/Jersey.standard.short=GMT
-Europe/Kaliningrad.daylight.short=FEST
-Europe/Kaliningrad.generic.short=FET
-Europe/Kaliningrad.standard.short=FET
-Europe/Kiev.daylight.short=EEST
-Europe/Kiev.generic.short=EET
-Europe/Kiev.standard.short=EET
-Europe/Lisbon.daylight.short=WEST
-Europe/Lisbon.generic.short=WET
-Europe/Lisbon.standard.short=WET
-Europe/Ljubljana.daylight.short=CEST
-Europe/Ljubljana.generic.short=CET
-Europe/Ljubljana.standard.short=CET
-Europe/London.daylight.short=BST
-Europe/London.generic.short=BT
-Europe/London.standard.short=GMT
-Europe/Luxembourg.daylight.short=CEST
-Europe/Luxembourg.generic.short=CET
-Europe/Luxembourg.standard.short=CET
-Europe/Madrid.daylight.short=CEST
-Europe/Madrid.generic.short=CET
-Europe/Madrid.standard.short=CET
-Europe/Malta.daylight.short=CEST
-Europe/Malta.generic.short=CET
-Europe/Malta.standard.short=CET
-Europe/Mariehamn.daylight.short=EEST
-Europe/Mariehamn.generic.short=EET
-Europe/Mariehamn.standard.short=EET
-Europe/Minsk.daylight.short=FEST
-Europe/Minsk.generic.short=FET
-Europe/Minsk.standard.short=FET
-Europe/Monaco.daylight.short=CEST
-Europe/Monaco.generic.short=CET
-Europe/Monaco.standard.short=CET
-Europe/Moscow.daylight.short=MSD
-Europe/Moscow.generic.short=MT
-Europe/Moscow.standard.short=MSK
-Europe/Nicosia.daylight.short=EEST
-Europe/Nicosia.generic.short=EET
-Europe/Nicosia.standard.short=EET
-Europe/Oslo.daylight.short=CEST
-Europe/Oslo.generic.short=CET
-Europe/Oslo.standard.short=CET
-Europe/Paris.daylight.short=CEST
-Europe/Paris.generic.short=CET
-Europe/Paris.standard.short=CET
-Europe/Podgorica.daylight.short=CEST
-Europe/Podgorica.generic.short=CET
-Europe/Podgorica.standard.short=CET
-Europe/Prague.daylight.short=CEST
-Europe/Prague.generic.short=CET
-Europe/Prague.standard.short=CET
-Europe/Riga.daylight.short=EEST
-Europe/Riga.generic.short=EET
-Europe/Riga.standard.short=EET
-Europe/Rome.daylight.short=CEST
-Europe/Rome.generic.short=CET
-Europe/Rome.standard.short=CET
-Europe/Samara.daylight.short=SAMST
-Europe/Samara.generic.short=SAMT
-Europe/Samara.standard.short=SAMT
-Europe/San_Marino.daylight.short=CEST
-Europe/San_Marino.generic.short=CET
-Europe/San_Marino.standard.short=CET
-Europe/Sarajevo.daylight.short=CEST
-Europe/Sarajevo.generic.short=CET
-Europe/Sarajevo.standard.short=CET
-Europe/Simferopol.daylight.short=EEST
-Europe/Simferopol.generic.short=EET
-Europe/Simferopol.standard.short=EET
-Europe/Skopje.daylight.short=CEST
-Europe/Skopje.generic.short=CET
-Europe/Skopje.standard.short=CET
-Europe/Sofia.daylight.short=EEST
-Europe/Sofia.generic.short=EET
-Europe/Sofia.standard.short=EET
-Europe/Stockholm.daylight.short=CEST
-Europe/Stockholm.generic.short=CET
-Europe/Stockholm.standard.short=CET
-Europe/Tallinn.daylight.short=EEST
-Europe/Tallinn.generic.short=EET
-Europe/Tallinn.standard.short=EET
-Europe/Tirane.daylight.short=CEST
-Europe/Tirane.generic.short=CET
-Europe/Tirane.standard.short=CET
-Europe/Tiraspol.daylight.short=EEST
-Europe/Tiraspol.generic.short=EET
-Europe/Tiraspol.standard.short=EET
-Europe/Uzhgorod.daylight.short=EEST
-Europe/Uzhgorod.generic.short=EET
-Europe/Uzhgorod.standard.short=EET
-Europe/Vaduz.daylight.short=CEST
-Europe/Vaduz.generic.short=CET
-Europe/Vaduz.standard.short=CET
-Europe/Vatican.daylight.short=CEST
-Europe/Vatican.generic.short=CET
-Europe/Vatican.standard.short=CET
-Europe/Vienna.daylight.short=CEST
-Europe/Vienna.generic.short=CET
-Europe/Vienna.standard.short=CET
-Europe/Vilnius.daylight.short=EEST
-Europe/Vilnius.generic.short=EET
-Europe/Vilnius.standard.short=EET
-Europe/Volgograd.daylight.short=VOLST
-Europe/Volgograd.generic.short=VOLT
-Europe/Volgograd.standard.short=VOLT
-Europe/Warsaw.daylight.short=CEST
-Europe/Warsaw.generic.short=CET
-Europe/Warsaw.standard.short=CET
-Europe/Zagreb.daylight.short=CEST
-Europe/Zagreb.generic.short=CET
-Europe/Zagreb.standard.short=CET
-Europe/Zaporozhye.daylight.short=EEST
-Europe/Zaporozhye.generic.short=EET
-Europe/Zaporozhye.standard.short=EET
-Europe/Zurich.daylight.short=CEST
-Europe/Zurich.generic.short=CET
-Europe/Zurich.standard.short=CET
-GB.daylight.short=BST
-GB-Eire.daylight.short=BST
-GB-Eire.generic.short=BT
-GB-Eire.standard.short=GMT
-GB.generic.short=BT
-GB.standard.short=GMT
-GMT.daylight.short=GMT
-GMT.generic.short=GMT
-GMT.standard.short=GMT
-Greenwich.daylight.short=GMT
-Greenwich.generic.short=GMT
-Greenwich.standard.short=GMT
-Hongkong.daylight.short=HKST
-Hongkong.generic.short=HKT
-Hongkong.standard.short=HKT
-HST.daylight.short=HDT
-HST.generic.short=HT
-HST.standard.short=HST
-Iceland.daylight.short=GMT
-Iceland.generic.short=GMT
-Iceland.standard.short=GMT
-IET.daylight.short=EDT
-IET.generic.short=ET
-IET.standard.short=EST
-Indian/Antananarivo.daylight.short=EAST
-Indian/Antananarivo.generic.short=EAT
-Indian/Antananarivo.standard.short=EAT
-Indian/Chagos.daylight.short=IOST
-Indian/Chagos.generic.short=IOT
-Indian/Chagos.standard.short=IOT
-Indian/Christmas.daylight.short=CXST
-Indian/Christmas.generic.short=CIT
-Indian/Christmas.standard.short=CXT
-Indian/Cocos.daylight.short=CCST
-Indian/Cocos.generic.short=CCT
-Indian/Cocos.standard.short=CCT
-Indian/Comoro.daylight.short=EAST
-Indian/Comoro.generic.short=EAT
-Indian/Comoro.standard.short=EAT
-Indian/Kerguelen.daylight.short=TFST
-Indian/Kerguelen.generic.short=TFT
-Indian/Kerguelen.standard.short=TFT
-Indian/Mahe.daylight.short=SCST
-Indian/Mahe.generic.short=SCT
-Indian/Mahe.standard.short=SCT
-Indian/Maldives.daylight.short=MVST
-Indian/Maldives.generic.short=MVT
-Indian/Maldives.standard.short=MVT
-Indian/Mauritius.daylight.short=MUST
-Indian/Mauritius.generic.short=MUT
-Indian/Mauritius.standard.short=MUT
-Indian/Mayotte.daylight.short=EAST
-Indian/Mayotte.generic.short=EAT
-Indian/Mayotte.standard.short=EAT
-Indian/Reunion.daylight.short=REST
-Indian/Reunion.generic.short=RET
-Indian/Reunion.standard.short=RET
-Iran.daylight.short=IRDT
-Iran.generic.short=IRT
-Iran.standard.short=IRST
-Israel.daylight.short=IDT
-Israel.generic.short=IT
-Israel.standard.short=IST
-IST.daylight.short=IDT
-IST.generic.short=IT
-IST.standard.short=IST
-Jamaica.daylight.short=EDT
-Jamaica.generic.short=ET
-Jamaica.standard.short=EST
-Japan.daylight.short=JDT
-Japan.generic.short=JT
-Japan.standard.short=JST
-JST.daylight.short=JDT
-JST.generic.short=JT
-JST.standard.short=JST
-Kwajalein.daylight.short=MHST
-Kwajalein.generic.short=MHT
-Kwajalein.standard.short=MHT
-Libya.daylight.short=EEST
-Libya.generic.short=EET
-Libya.standard.short=EET
-MET.daylight.short=MEST
-MET.generic.short=MET
-MET.standard.short=MET
-Mexico/BajaNorte.daylight.short=PDT
-Mexico/BajaNorte.generic.short=PT
-Mexico/BajaNorte.standard.short=PST
-Mexico/BajaSur.daylight.short=MDT
-Mexico/BajaSur.generic.short=MT
-Mexico/BajaSur.standard.short=MST
-Mexico/General.daylight.short=CDT
-Mexico/General.generic.short=CT
-Mexico/General.standard.short=CST
-MIT.daylight.short=WSDT
-MIT.generic.short=WST
-MIT.standard.short=WST
-MST7MDT.daylight.short=MDT
-MST7MDT.generic.short=MT
-MST7MDT.standard.short=MST
-MST.daylight.short=MDT
-MST.generic.short=MT
-MST.standard.short=MST
-Navajo.daylight.short=MDT
-Navajo.generic.short=MT
-Navajo.standard.short=MST
-NET.daylight.short=AMST
-NET.generic.short=AMT
-NET.standard.short=AMT
-NST.daylight.short=NZDT
-NST.generic.short=NZT
-NST.standard.short=NZST
-NZ-CHAT.daylight.short=CHADT
-NZ-CHAT.generic.short=CHAT
-NZ-CHAT.standard.short=CHAST
-NZ.daylight.short=NZDT
-NZ.generic.short=NZT
-NZ.standard.short=NZST
-Pacific/Apia.daylight.short=WSDT
-Pacific/Apia.generic.short=WST
-Pacific/Apia.standard.short=WST
-Pacific/Auckland.daylight.short=NZDT
-Pacific/Auckland.generic.short=NZT
-Pacific/Auckland.standard.short=NZST
-Pacific/Chatham.daylight.short=CHADT
-Pacific/Chatham.generic.short=CHAT
-Pacific/Chatham.standard.short=CHAST
-Pacific/Chuuk.daylight.short=CHUST
-Pacific/Chuuk.generic.short=CHUT
-Pacific/Chuuk.standard.short=CHUT
-Pacific/Easter.daylight.short=EASST
-Pacific/Easter.generic.short=EAST
-Pacific/Easter.standard.short=EAST
-Pacific/Efate.daylight.short=VUST
-Pacific/Efate.generic.short=VUT
-Pacific/Efate.standard.short=VUT
-Pacific/Enderbury.daylight.short=PHOST
-Pacific/Enderbury.generic.short=PHOT
-Pacific/Enderbury.standard.short=PHOT
-Pacific/Fakaofo.daylight.short=TKST
-Pacific/Fakaofo.generic.short=TKT
-Pacific/Fakaofo.standard.short=TKT
-Pacific/Fiji.daylight.short=FJST
-Pacific/Fiji.generic.short=FJT
-Pacific/Fiji.standard.short=FJT
-Pacific/Funafuti.daylight.short=TVST
-Pacific/Funafuti.generic.short=TVT
-Pacific/Funafuti.standard.short=TVT
-Pacific/Galapagos.daylight.short=GALST
-Pacific/Galapagos.generic.short=GALT
-Pacific/Galapagos.standard.short=GALT
-Pacific/Gambier.daylight.short=GAMST
-Pacific/Gambier.generic.short=GAMT
-Pacific/Gambier.standard.short=GAMT
-Pacific/Guadalcanal.daylight.short=SBST
-Pacific/Guadalcanal.generic.short=SBT
-Pacific/Guadalcanal.standard.short=SBT
-Pacific/Guam.daylight.short=ChDT
-Pacific/Guam.generic.short=ChT
-Pacific/Guam.standard.short=ChST
-Pacific/Honolulu.daylight.short=HDT
-Pacific/Honolulu.generic.short=HT
-Pacific/Honolulu.standard.short=HST
-Pacific/Johnston.daylight.short=HDT
-Pacific/Johnston.generic.short=HT
-Pacific/Johnston.standard.short=HST
-Pacific/Kiritimati.daylight.short=LINST
-Pacific/Kiritimati.generic.short=LINT
-Pacific/Kiritimati.standard.short=LINT
-Pacific/Kosrae.daylight.short=KOSST
-Pacific/Kosrae.generic.short=KOST
-Pacific/Kosrae.standard.short=KOST
-Pacific/Kwajalein.daylight.short=MHST
-Pacific/Kwajalein.generic.short=MHT
-Pacific/Kwajalein.standard.short=MHT
-Pacific/Majuro.daylight.short=MHST
-Pacific/Majuro.generic.short=MHT
-Pacific/Majuro.standard.short=MHT
-Pacific/Marquesas.daylight.short=MARST
-Pacific/Marquesas.generic.short=MART
-Pacific/Marquesas.standard.short=MART
-Pacific/Midway.daylight.short=SDT
-Pacific/Midway.generic.short=ST
-Pacific/Midway.standard.short=SST
-Pacific/Nauru.daylight.short=NRST
-Pacific/Nauru.generic.short=NRT
-Pacific/Nauru.standard.short=NRT
-Pacific/Niue.daylight.short=NUST
-Pacific/Niue.generic.short=NUT
-Pacific/Niue.standard.short=NUT
-Pacific/Norfolk.daylight.short=NFST
-Pacific/Norfolk.generic.short=NFT
-Pacific/Norfolk.standard.short=NFT
-Pacific/Noumea.daylight.short=NCST
-Pacific/Noumea.generic.short=NCT
-Pacific/Noumea.standard.short=NCT
-Pacific/Pago_Pago.daylight.short=SDT
-Pacific/Pago_Pago.generic.short=ST
-Pacific/Pago_Pago.standard.short=SST
-Pacific/Palau.daylight.short=PWST
-Pacific/Palau.generic.short=PWT
-Pacific/Palau.standard.short=PWT
-Pacific/Pitcairn.daylight.short=PDT
-Pacific/Pitcairn.generic.short=PT
-Pacific/Pitcairn.standard.short=PST
-Pacific/Pohnpei.daylight.short=PONST
-Pacific/Pohnpei.generic.short=PONT
-Pacific/Pohnpei.standard.short=PONT
-Pacific/Ponape.daylight.short=PONST
-Pacific/Ponape.generic.short=PONT
-Pacific/Ponape.standard.short=PONT
-Pacific/Port_Moresby.daylight.short=PGST
-Pacific/Port_Moresby.generic.short=PGT
-Pacific/Port_Moresby.standard.short=PGT
-Pacific/Rarotonga.daylight.short=CKHST
-Pacific/Rarotonga.generic.short=CKT
-Pacific/Rarotonga.standard.short=CKT
-Pacific/Saipan.daylight.short=ChDT
-Pacific/Saipan.generic.short=ChT
-Pacific/Saipan.standard.short=ChST
-Pacific/Samoa.daylight.short=SDT
-Pacific/Samoa.generic.short=ST
-Pacific/Samoa.standard.short=SST
-Pacific/Tahiti.daylight.short=TAHST
-Pacific/Tahiti.generic.short=TAHT
-Pacific/Tahiti.standard.short=TAHT
-Pacific/Tarawa.daylight.short=GILST
-Pacific/Tarawa.generic.short=GILT
-Pacific/Tarawa.standard.short=GILT
-Pacific/Tongatapu.daylight.short=TOST
-Pacific/Tongatapu.generic.short=TOT
-Pacific/Tongatapu.standard.short=TOT
-Pacific/Truk.daylight.short=CHUST
-Pacific/Truk.generic.short=CHUT
-Pacific/Truk.standard.short=CHUT
-Pacific/Wake.daylight.short=WAKST
-Pacific/Wake.generic.short=WAKT
-Pacific/Wake.standard.short=WAKT
-Pacific/Wallis.daylight.short=WFST
-Pacific/Wallis.generic.short=WFT
-Pacific/Wallis.standard.short=WFT
-Pacific/Yap.daylight.short=CHUST
-Pacific/Yap.generic.short=CHUT
-Pacific/Yap.standard.short=CHUT
-PLT.daylight.short=PKST
-PLT.generic.short=PKT
-PLT.standard.short=PKT
-PNT.daylight.short=MDT
-PNT.generic.short=MT
-PNT.standard.short=MST
-Poland.daylight.short=CEST
-Poland.generic.short=CET
-Poland.standard.short=CET
-Portugal.daylight.short=WEST
-Portugal.generic.short=WET
-Portugal.standard.short=WET
-PRC.daylight.short=CDT
-PRC.generic.short=CT
-PRC.standard.short=CST
-PRT.daylight.short=ADT
-PRT.generic.short=AT
-PRT.standard.short=AST
-PST8PDT.daylight.short=PDT
-PST8PDT.generic.short=PT
-PST8PDT.standard.short=PST
-PST.daylight.short=PDT
-PST.generic.short=PT
-PST.standard.short=PST
-ROK.daylight.short=KDT
-ROK.generic.short=KT
-ROK.standard.short=KST
-Singapore.daylight.short=SGST
-Singapore.generic.short=SGT
-Singapore.standard.short=SGT
-SST.daylight.short=SBST
-SST.generic.short=SBT
-SST.standard.short=SBT
-SystemV/AST4ADT.daylight.short=ADT
-SystemV/AST4ADT.generic.short=AT
-SystemV/AST4ADT.standard.short=AST
-SystemV/AST4.daylight.short=ADT
-SystemV/AST4.generic.short=AT
-SystemV/AST4.standard.short=AST
-SystemV/CST6CDT.daylight.short=CDT
-SystemV/CST6CDT.generic.short=CT
-SystemV/CST6CDT.standard.short=CST
-SystemV/CST6.daylight.short=CDT
-SystemV/CST6.generic.short=CT
-SystemV/CST6.standard.short=CST
-SystemV/EST5.daylight.short=EDT
-SystemV/EST5EDT.daylight.short=EDT
-SystemV/EST5EDT.generic.short=ET
-SystemV/EST5EDT.standard.short=EST
-SystemV/EST5.generic.short=ET
-SystemV/EST5.standard.short=EST
-SystemV/HST10.daylight.short=HDT
-SystemV/HST10.generic.short=HT
-SystemV/HST10.standard.short=HST
-SystemV/MST7.daylight.short=MDT
-SystemV/MST7.generic.short=MT
-SystemV/MST7MDT.daylight.short=MDT
-SystemV/MST7MDT.generic.short=MT
-SystemV/MST7MDT.standard.short=MST
-SystemV/MST7.standard.short=MST
-SystemV/PST8.daylight.short=PDT
-SystemV/PST8.generic.short=PT
-SystemV/PST8PDT.daylight.short=PDT
-SystemV/PST8PDT.generic.short=PT
-SystemV/PST8PDT.standard.short=PST
-SystemV/PST8.standard.short=PST
-SystemV/YST9.daylight.short=AKDT
-SystemV/YST9.generic.short=AKT
-SystemV/YST9.standard.short=AKST
-SystemV/YST9YDT.daylight.short=AKDT
-SystemV/YST9YDT.generic.short=AKT
-SystemV/YST9YDT.standard.short=AKST
-Turkey.daylight.short=EEST
-Turkey.generic.short=EET
-Turkey.standard.short=EET
-UCT.daylight.short=UTC
-UCT.generic.short=UTC
-UCT.standard.short=UTC
-Universal.daylight.short=UTC
-Universal.generic.short=UTC
-Universal.standard.short=UTC
-US/Alaska.daylight.short=AKDT
-US/Alaska.generic.short=AKT
-US/Alaska.standard.short=AKST
-US/Aleutian.daylight.short=HADT
-US/Aleutian.generic.short=HAT
-US/Aleutian.standard.short=HAST
-US/Arizona.daylight.short=MDT
-US/Arizona.generic.short=MT
-US/Arizona.standard.short=MST
-US/Central.daylight.short=CDT
-US/Central.generic.short=CT
-US/Central.standard.short=CST
-US/Eastern.daylight.short=EDT
-US/Eastern.generic.short=ET
-US/Eastern.standard.short=EST
-US/East-Indiana.daylight.short=EDT
-US/East-Indiana.generic.short=ET
-US/East-Indiana.standard.short=EST
-US/Hawaii.daylight.short=HDT
-US/Hawaii.generic.short=HT
-US/Hawaii.standard.short=HST
-US/Indiana-Starke.daylight.short=CDT
-US/Indiana-Starke.generic.short=CT
-US/Indiana-Starke.standard.short=CST
-US/Michigan.daylight.short=EDT
-US/Michigan.generic.short=ET
-US/Michigan.standard.short=EST
-US/Mountain.daylight.short=MDT
-US/Mountain.generic.short=MT
-US/Mountain.standard.short=MST
-US/Pacific.daylight.short=PDT
-US/Pacific.generic.short=PT
-US/Pacific-New.daylight.short=PDT
-US/Pacific-New.generic.short=PT
-US/Pacific-New.standard.short=PST
-US/Pacific.standard.short=PST
-US/Samoa.daylight.short=SDT
-US/Samoa.generic.short=ST
-US/Samoa.standard.short=SST
-UTC.daylight.short=UTC
-UTC.generic.short=UTC
-UTC.standard.short=UTC
-VST.daylight.short=ICST
-VST.generic.short=ICT
-VST.standard.short=ICT
-WET.daylight.short=WEST
-WET.generic.short=WET
-WET.standard.short=WET
-W-SU.daylight.short=MSD
-W-SU.generic.short=MT
-W-SU.standard.short=MSK
-Zulu.daylight.short=UTC
-Zulu.generic.short=UTC
-Zulu.standard.short=UTC
diff --git a/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_fr.properties b/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_fr.properties
deleted file mode 100644
index 6389940bbab..00000000000
--- a/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_fr.properties
+++ /dev/null
@@ -1,651 +0,0 @@
-ACT.daylight.long=Heure d'\u00E9t\u00E9 d'Australie centrale (Territoire du Nord)
-ACT.generic.long=Centre (Territoire du Nord)
-ACT.standard.long=Heure standard d'Australie centrale (Territoire du Nord)
-AET.daylight.long=Heure d'\u00E9t\u00E9 de l'Est (Nouvelle-Galles du Sud)
-AET.generic.long=C\u00F4te Est (Nouvelle-Galles du Sud)
-AET.standard.long=Heure normale de l'Est (Nouvelle-Galles du Sud)
-AGT.generic.long=Heure d'Argentine
-ART.generic.long=Heure d'Europe de l'Est
-AST.generic.long=Alaska
-Africa/Abidjan.generic.long=Heure de Greenwich
-Africa/Accra.generic.long=Heure du Ghana
-Africa/Addis_Ababa.generic.long=Heure d'Afrique de l'Est
-Africa/Algiers.generic.long=Heure d'Europe centrale
-Africa/Asmara.generic.long=Heure d'Afrique de l'Est
-Africa/Asmera.generic.long=Heure d'Afrique de l'Est
-Africa/Bamako.generic.long=Heure de Greenwich
-Africa/Bangui.generic.long=Heure d'Afrique de l'Ouest
-Africa/Banjul.generic.long=Heure de Greenwich
-Africa/Bissau.generic.long=Heure de Greenwich
-Africa/Blantyre.generic.long=Heure d'Afrique centrale
-Africa/Brazzaville.generic.long=Heure d'Afrique de l'Ouest
-Africa/Bujumbura.generic.long=Heure d'Afrique centrale
-Africa/Cairo.generic.long=Heure d'Europe de l'Est
-Africa/Casablanca.generic.long=Heure d'Europe de l'Ouest
-Africa/Ceuta.generic.long=Heure d'Europe centrale
-Africa/Conakry.generic.long=Heure de Greenwich
-Africa/Dakar.generic.long=Heure de Greenwich
-Africa/Dar_es_Salaam.generic.long=Heure d'Afrique de l'Est
-Africa/Djibouti.generic.long=Heure d'Afrique de l'Est
-Africa/Douala.generic.long=Heure d'Afrique de l'Ouest
-Africa/El_Aaiun.generic.long=Heure d'Europe de l'Ouest
-Africa/Freetown.generic.long=Heure de Sierra Leone
-Africa/Gaborone.generic.long=Heure d'Afrique centrale
-Africa/Harare.generic.long=Heure d'Afrique centrale
-Africa/Johannesburg.generic.long=Afrique du Sud
-Africa/Juba.generic.long=Heure d'Afrique de l'Est
-Africa/Kampala.generic.long=Heure d'Afrique de l'Est
-Africa/Khartoum.generic.long=Heure d'Afrique de l'Est
-Africa/Kigali.generic.long=Heure d'Afrique centrale
-Africa/Kinshasa.generic.long=Heure d'Afrique de l'Ouest
-Africa/Lagos.generic.long=Heure d'Afrique de l'Ouest
-Africa/Libreville.generic.long=Heure d'Afrique de l'Ouest
-Africa/Lome.generic.long=Heure de Greenwich
-Africa/Luanda.generic.long=Heure d'Afrique de l'Ouest
-Africa/Lubumbashi.generic.long=Heure d'Afrique centrale
-Africa/Lusaka.generic.long=Heure d'Afrique centrale
-Africa/Malabo.generic.long=Heure d'Afrique de l'Ouest
-Africa/Maputo.generic.long=Heure d'Afrique centrale
-Africa/Maseru.generic.long=Afrique du Sud
-Africa/Mbabane.generic.long=Afrique du Sud
-Africa/Mogadishu.generic.long=Heure d'Afrique de l'Est
-Africa/Monrovia.generic.long=Heure de Greenwich
-Africa/Nairobi.generic.long=Heure d'Afrique de l'Est
-Africa/Ndjamena.generic.long=Heure d'Afrique de l'Ouest
-Africa/Niamey.generic.long=Heure d'Afrique de l'Ouest
-Africa/Nouakchott.generic.long=Heure de Greenwich
-Africa/Ouagadougou.generic.long=Heure de Greenwich
-Africa/Porto-Novo.generic.long=Heure d'Afrique de l'Ouest
-Africa/Sao_Tome.generic.long=Heure de Greenwich
-Africa/Timbuktu.generic.long=Heure de Greenwich
-Africa/Tripoli.generic.long=Heure d'Europe de l'Est
-Africa/Tunis.generic.long=Heure d'Europe centrale
-Africa/Windhoek.generic.long=Heure d'Afrique de l'Ouest
-America/Adak.generic.long=Hawa\u00EF-Iles Al\u00E9outiennes
-America/Anchorage.generic.long=Alaska
-America/Anguilla.generic.long=Atlantique
-America/Antigua.generic.long=Atlantique
-America/Araguaina.generic.long=Heure du Br\u00E9sil
-America/Argentina/Buenos_Aires.generic.long=Heure d'Argentine
-America/Argentina/Catamarca.generic.long=Heure d'Argentine
-America/Argentina/ComodRivadavia.generic.long=Heure d'Argentine
-America/Argentina/Cordoba.generic.long=Heure d'Argentine
-America/Argentina/Jujuy.generic.long=Heure d'Argentine
-America/Argentina/La_Rioja.generic.long=Heure d'Argentine
-America/Argentina/Mendoza.generic.long=Heure d'Argentine
-America/Argentina/Rio_Gallegos.generic.long=Heure d'Argentine
-America/Argentina/Salta.generic.long=Heure d'Argentine
-America/Argentina/San_Juan.generic.long=Heure d'Argentine
-America/Argentina/San_Luis.generic.long=Heure d'Argentine
-America/Argentina/Tucuman.generic.long=Heure d'Argentine
-America/Argentina/Ushuaia.generic.long=Heure d'Argentine
-America/Aruba.generic.long=Atlantique
-America/Asuncion.generic.long=Heure du Paraguay
-America/Atikokan.generic.long=C\u00F4te Est
-America/Atka.generic.long=Hawa\u00EF-Iles Al\u00E9outiennes
-America/Bahia.generic.long=Heure du Br\u00E9sil
-America/Bahia_Banderas.generic.long=Centre
-America/Barbados.generic.long=Atlantique
-America/Belem.generic.long=Heure du Br\u00E9sil
-America/Belize.generic.long=Centre
-America/Blanc-Sablon.generic.long=Atlantique
-America/Boa_Vista.generic.long=Heure d'Amazonie
-America/Bogota.generic.long=Heure de Colombie
-America/Boise.generic.long=Rocheuses
-America/Buenos_Aires.generic.long=Heure d'Argentine
-America/Cambridge_Bay.generic.long=Rocheuses
-America/Campo_Grande.generic.long=Heure d'Amazonie
-America/Cancun.generic.long=Centre
-America/Caracas.generic.long=Heure du Venezuela
-America/Catamarca.generic.long=Heure d'Argentine
-America/Cayenne.generic.long=Heure de Guyane fran\u00E7aise
-America/Cayman.generic.long=C\u00F4te Est
-America/Chicago.generic.long=Centre
-America/Chihuahua.generic.long=Rocheuses
-America/Coral_Harbour.generic.long=C\u00F4te Est
-America/Cordoba.generic.long=Heure d'Argentine
-America/Costa_Rica.generic.long=Centre
-America/Creston.generic.long=Rocheuses
-America/Cuiaba.generic.long=Heure d'Amazonie
-America/Curacao.generic.long=Atlantique
-America/Danmarkshavn.generic.long=Heure de Greenwich
-America/Dawson.generic.long=Pacifique
-America/Dawson_Creek.generic.long=Rocheuses
-America/Denver.generic.long=Rocheuses
-America/Detroit.generic.long=C\u00F4te Est
-America/Dominica.generic.long=Atlantique
-America/Edmonton.generic.long=Rocheuses
-America/Eirunepe.generic.long=Heure de l'Acre
-America/El_Salvador.generic.long=Centre
-America/Ensenada.generic.long=Pacifique
-America/Fort_Wayne.generic.long=C\u00F4te Est
-America/Fortaleza.generic.long=Heure du Br\u00E9sil
-America/Glace_Bay.generic.long=Atlantique
-America/Godthab.generic.long=Heure du Groenland de l'Ouest
-America/Goose_Bay.generic.long=Atlantique
-America/Grand_Turk.generic.long=C\u00F4te Est
-America/Grenada.generic.long=Atlantique
-America/Guadeloupe.generic.long=Atlantique
-America/Guatemala.generic.long=Centre
-America/Guayaquil.generic.long=Heure de l'Equateur
-America/Guyana.generic.long=Heure de Guyana
-America/Halifax.generic.long=Atlantique
-America/Havana.generic.long=Heure de Cuba
-America/Hermosillo.generic.long=Rocheuses
-America/Indiana/Indianapolis.generic.long=C\u00F4te Est
-America/Indiana/Knox.generic.long=Centre
-America/Indiana/Marengo.generic.long=C\u00F4te Est
-America/Indiana/Petersburg.generic.long=C\u00F4te Est
-America/Indiana/Tell_City.generic.long=Centre
-America/Indiana/Vevay.generic.long=C\u00F4te Est
-America/Indiana/Vincennes.generic.long=C\u00F4te Est
-America/Indiana/Winamac.generic.long=C\u00F4te Est
-America/Indianapolis.generic.long=C\u00F4te Est
-America/Inuvik.generic.long=Rocheuses
-America/Iqaluit.generic.long=C\u00F4te Est
-America/Jamaica.generic.long=C\u00F4te Est
-America/Jujuy.generic.long=Heure d'Argentine
-America/Juneau.generic.long=Alaska
-America/Kentucky/Louisville.generic.long=C\u00F4te Est
-America/Kentucky/Monticello.generic.long=C\u00F4te Est
-America/Knox_IN.generic.long=Centre
-America/Kralendijk.generic.long=Atlantique
-America/La_Paz.generic.long=Heure de Bolivie
-America/Lima.generic.long=Heure du P\u00E9rou
-America/Los_Angeles.generic.long=Pacifique
-America/Louisville.generic.long=C\u00F4te Est
-America/Lower_Princes.generic.long=Atlantique
-America/Maceio.generic.long=Heure du Br\u00E9sil
-America/Managua.generic.long=Centre
-America/Manaus.generic.long=Heure d'Amazonie
-America/Marigot.generic.long=Atlantique
-America/Martinique.generic.long=Atlantique
-America/Matamoros.generic.long=Centre
-America/Mazatlan.generic.long=Rocheuses
-America/Mendoza.generic.long=Heure d'Argentine
-America/Menominee.generic.long=Centre
-America/Merida.generic.long=Centre
-America/Metlakatla.daylight.long=Heure avanc\u00E9e de Metlakatla
-America/Metlakatla.generic.long=Heure de Metlakatla
-America/Metlakatla.standard.long=Heure normale de Metlakatla
-America/Mexico_City.generic.long=Centre
-America/Miquelon.generic.long=Saint-Pierre-et-Miquelon
-America/Moncton.generic.long=Atlantique
-America/Monterrey.generic.long=Centre
-America/Montevideo.generic.long=Heure de l'Uruguay
-America/Montreal.generic.long=C\u00F4te Est
-America/Montserrat.generic.long=Atlantique
-America/Nassau.generic.long=C\u00F4te Est
-America/New_York.generic.long=C\u00F4te Est
-America/Nipigon.generic.long=C\u00F4te Est
-America/Nome.generic.long=Alaska
-America/Noronha.generic.long=Heure de Fernando de Noronha
-America/North_Dakota/Beulah.generic.long=Centre
-America/North_Dakota/Center.generic.long=Centre
-America/North_Dakota/New_Salem.generic.long=Centre
-America/Ojinaga.generic.long=Rocheuses
-America/Panama.generic.long=C\u00F4te Est
-America/Pangnirtung.generic.long=C\u00F4te Est
-America/Paramaribo.generic.long=Heure du Surinam
-America/Phoenix.generic.long=Rocheuses
-America/Port-au-Prince.generic.long=C\u00F4te Est
-America/Port_of_Spain.generic.long=Atlantique
-America/Porto_Acre.generic.long=Heure de l'Acre
-America/Porto_Velho.generic.long=Heure d'Amazonie
-America/Puerto_Rico.generic.long=Atlantique
-America/Rainy_River.generic.long=Centre
-America/Rankin_Inlet.generic.long=Centre
-America/Recife.generic.long=Heure du Br\u00E9sil
-America/Regina.generic.long=Centre
-America/Resolute.generic.long=Centre
-America/Rio_Branco.generic.long=Heure de l'Acre
-America/Rosario.generic.long=Heure d'Argentine
-America/Santa_Isabel.generic.long=Pacifique
-America/Santarem.generic.long=Heure du Br\u00E9sil
-America/Santiago.generic.long=Heure du Chili
-America/Santo_Domingo.generic.long=Atlantique
-America/Sao_Paulo.generic.long=Heure du Br\u00E9sil
-America/Scoresbysund.generic.long=Heure du Groenland de l'Est
-America/Shiprock.generic.long=Rocheuses
-America/Sitka.generic.long=Alaska
-America/St_Barthelemy.generic.long=Atlantique
-America/St_Johns.generic.long=Terre-Neuve
-America/St_Kitts.generic.long=Atlantique
-America/St_Lucia.generic.long=Atlantique
-America/St_Thomas.generic.long=Atlantique
-America/St_Vincent.generic.long=Atlantique
-America/Swift_Current.generic.long=Centre
-America/Tegucigalpa.generic.long=Centre
-America/Thule.generic.long=Atlantique
-America/Thunder_Bay.generic.long=C\u00F4te Est
-America/Tijuana.generic.long=Pacifique
-America/Toronto.generic.long=C\u00F4te Est
-America/Tortola.generic.long=Atlantique
-America/Vancouver.generic.long=Pacifique
-America/Virgin.generic.long=Atlantique
-America/Whitehorse.generic.long=Pacifique
-America/Winnipeg.generic.long=Centre
-America/Yakutat.generic.long=Alaska
-America/Yellowknife.generic.long=Rocheuses
-Antarctica/Casey.daylight.long=Heure d'\u00E9t\u00E9 de l'Ouest (Australie)
-Antarctica/Casey.generic.long=Ouest (Australie)
-Antarctica/Casey.standard.long=Heure normale de l'Ouest (Australie)
-Antarctica/Davis.generic.long=Heure de Davis
-Antarctica/DumontDUrville.generic.long=Heure de Dumont-d'Urville
-Antarctica/Macquarie.daylight.long=Heure d'\u00E9t\u00E9 de l'Ile Macquarie
-Antarctica/Macquarie.generic.long=Heure de l'Ile Macquarie
-Antarctica/Macquarie.standard.long=Heure de l'Ile Macquarie
-Antarctica/Mawson.generic.long=Heure de Mawson
-Antarctica/McMurdo.generic.long=Nouvelle-Z\u00E9lande
-Antarctica/Palmer.generic.long=Heure du Chili
-Antarctica/Rothera.generic.long=Heure de Rothera
-Antarctica/South_Pole.generic.long=Nouvelle-Z\u00E9lande
-Antarctica/Syowa.generic.long=Heure de Syowa
-Antarctica/Vostok.generic.long=Heure de Vostok
-Arctic/Longyearbyen.generic.long=Heure d'Europe centrale
-Asia/Aden.generic.long=Arabie
-Asia/Almaty.generic.long=Heure d'Alma-Ata
-Asia/Amman.generic.long=Arabie
-Asia/Anadyr.generic.long=Heure d'Anadyr
-Asia/Aqtau.generic.long=Heure d'Aqtau
-Asia/Aqtobe.generic.long=Heure d'Aqtobe
-Asia/Ashgabat.generic.long=Heure du Turkm\u00E9nistan
-Asia/Ashkhabad.generic.long=Heure du Turkm\u00E9nistan
-Asia/Baghdad.generic.long=Arabie
-Asia/Bahrain.generic.long=Arabie
-Asia/Baku.generic.long=Heure d'Azerba\u00EFdjan
-Asia/Bangkok.generic.long=Heure d'Indochine
-Asia/Beirut.generic.long=Heure d'Europe de l'Est
-Asia/Bishkek.generic.long=Heure du Kirghizistan
-Asia/Brunei.generic.long=Heure du Brunei
-Asia/Calcutta.generic.long=Inde
-Asia/Choibalsan.generic.long=Heure de Choibalsan
-Asia/Chongqing.generic.long=Chine
-Asia/Chungking.generic.long=Chine
-Asia/Colombo.generic.long=Inde
-Asia/Dacca.generic.long=Heure du Bangladesh
-Asia/Damascus.generic.long=Heure d'Europe de l'Est
-Asia/Dhaka.generic.long=Heure du Bangladesh
-Asia/Dili.generic.long=Heure de Timor-Leste
-Asia/Dubai.generic.long=Golfe
-Asia/Dushanbe.generic.long=Heure du Tadjikistan
-Asia/Gaza.generic.long=Heure d'Europe de l'Est
-Asia/Harbin.generic.long=Chine
-Asia/Hebron.generic.long=Heure d'Europe de l'Est
-Asia/Ho_Chi_Minh.generic.long=Heure d'Indochine
-Asia/Hong_Kong.generic.long=Heure de Hong-Kong
-Asia/Hovd.generic.long=Heure de Hovd
-Asia/Irkutsk.generic.long=Heure d'Irkutsk
-Asia/Istanbul.generic.long=Heure d'Europe de l'Est
-Asia/Jakarta.generic.long=Heure de l'Indon\u00E9sie occidentale
-Asia/Jayapura.generic.long=Heure d'Indon\u00E9sie orientale
-Asia/Jerusalem.generic.long=Isra\u00EBl
-Asia/Kabul.generic.long=Heure d'Afghanistan
-Asia/Kamchatka.generic.long=Heure de Petropavlovsk-Kamchatski
-Asia/Karachi.generic.long=Heure du Pakistan
-Asia/Kashgar.generic.long=Chine
-Asia/Kathmandu.generic.long=Heure du N\u00E9pal
-Asia/Katmandu.generic.long=Heure du N\u00E9pal
-Asia/Khandyga.daylight.long=Heure d'\u00E9t\u00E9 de Khandyga
-Asia/Khandyga.generic.long=Heure de Khandyga
-Asia/Khandyga.standard.long=Heure de Khandyga
-Asia/Kolkata.generic.long=Inde
-Asia/Krasnoyarsk.generic.long=Heure de Krasno\u00EFarsk
-Asia/Kuala_Lumpur.generic.long=Heure de Malaisie
-Asia/Kuching.generic.long=Heure de Malaisie
-Asia/Kuwait.generic.long=Arabie
-Asia/Macao.generic.long=Chine
-Asia/Macau.generic.long=Chine
-Asia/Magadan.generic.long=Heure de Magadan
-Asia/Makassar.generic.long=Heure d'Indon\u00E9sie centrale
-Asia/Manila.generic.long=Heure des Philippines
-Asia/Muscat.generic.long=Golfe
-Asia/Nicosia.generic.long=Heure d'Europe de l'Est
-Asia/Novokuznetsk.generic.long=Heure de Novossibirsk
-Asia/Novosibirsk.generic.long=Heure de Novossibirsk
-Asia/Omsk.generic.long=Heure d'Omsk
-Asia/Oral.generic.long=Heure d'Oral
-Asia/Phnom_Penh.generic.long=Heure d'Indochine
-Asia/Pontianak.generic.long=Heure de l'Indon\u00E9sie occidentale
-Asia/Pyongyang.generic.long=Cor\u00E9e
-Asia/Qatar.generic.long=Arabie
-Asia/Qyzylorda.generic.long=Heure de Kyzylorda
-Asia/Rangoon.generic.long=Heure de Myanmar
-Asia/Saigon.generic.long=Heure d'Indochine
-Asia/Sakhalin.generic.long=Heure de Sakhalin
-Asia/Samarkand.generic.long=Heure de l'Ouzb\u00E9kistan
-Asia/Seoul.generic.long=Cor\u00E9e
-Asia/Shanghai.generic.long=Chine
-Asia/Singapore.generic.long=Heure de Singapour
-Asia/Taipei.generic.long=Chine
-Asia/Tashkent.generic.long=Heure de l'Ouzb\u00E9kistan
-Asia/Tbilisi.generic.long=Heure de G\u00E9orgie
-Asia/Tehran.generic.long=Heure d'Iran
-Asia/Tel_Aviv.generic.long=Isra\u00EBl
-Asia/Thimbu.generic.long=Heure du Bhoutan
-Asia/Thimphu.generic.long=Heure du Bhoutan
-Asia/Tokyo.generic.long=Japon
-Asia/Ujung_Pandang.generic.long=Heure d'Indon\u00E9sie centrale
-Asia/Ulaanbaatar.generic.long=Heure de l'Ulaanbaatar
-Asia/Ulan_Bator.generic.long=Heure de l'Ulaanbaatar
-Asia/Urumqi.generic.long=Chine
-Asia/Ust-Nera.daylight.long=Heure d'\u00E9t\u00E9 d'Ust-Nera
-Asia/Ust-Nera.generic.long=Heure d'Ust-Nera
-Asia/Ust-Nera.standard.long=Heure d'Ust-Nera
-Asia/Vientiane.generic.long=Heure d'Indochine
-Asia/Vladivostok.generic.long=Heure de Vladivostok
-Asia/Yakutsk.generic.long=Heure du Iakoutsk
-Asia/Yekaterinburg.generic.long=Heure de Yekaterinburg
-Asia/Yerevan.generic.long=Heure d'Arm\u00E9nie
-Atlantic/Azores.generic.long=Heure des A\u00E7ores
-Atlantic/Bermuda.generic.long=Atlantique
-Atlantic/Canary.generic.long=Heure d'Europe de l'Ouest
-Atlantic/Cape_Verde.generic.long=Heure de Cap-Vert
-Atlantic/Faeroe.generic.long=Heure d'Europe de l'Ouest
-Atlantic/Faroe.generic.long=Heure d'Europe de l'Ouest
-Atlantic/Jan_Mayen.generic.long=Heure d'Europe centrale
-Atlantic/Madeira.generic.long=Heure d'Europe de l'Ouest
-Atlantic/Reykjavik.generic.long=Heure de Greenwich
-Atlantic/South_Georgia.generic.long=G\u00E9orgie du Sud
-Atlantic/St_Helena.generic.long=Heure de Greenwich
-Atlantic/Stanley.generic.long=Heure des \u00EEles Falkland
-Australia/ACT.daylight.long=Heure d'\u00E9t\u00E9 de l'Est (Nouvelle-Galles du Sud)
-Australia/ACT.generic.long=C\u00F4te Est (Nouvelle-Galles du Sud)
-Australia/ACT.standard.long=Heure normale de l'Est (Nouvelle-Galles du Sud)
-Australia/Adelaide.daylight.long=Heure d'\u00E9t\u00E9 d'Australie centrale (Australie du sud)
-Australia/Adelaide.generic.long=Centre (Australie-M\u00E9ridionale)
-Australia/Adelaide.standard.long=Heure standard d'Australie centrale (Australie du sud)
-Australia/Brisbane.daylight.long=Heure d'\u00E9t\u00E9 d'Australie orientale (Queensland)
-Australia/Brisbane.generic.long=C\u00F4te Est (Queensland)
-Australia/Brisbane.standard.long=Heure standard d'Australie orientale (Queensland)
-Australia/Broken_Hill.daylight.long=Heure d'\u00E9t\u00E9 d'Australie centrale (Australie du sud/Nouvelle-Galles du sud)
-Australia/Broken_Hill.generic.long=Centre (Australie-M\u00E9ridionale/Nouvelle-Galles du Sud)
-Australia/Broken_Hill.standard.long=Heure standard d'Australie centrale (Australie du sud/Nouvelle-Galles du sud)
-Australia/Canberra.daylight.long=Heure d'\u00E9t\u00E9 de l'Est (Nouvelle-Galles du Sud)
-Australia/Canberra.generic.long=C\u00F4te Est (Nouvelle-Galles du Sud)
-Australia/Canberra.standard.long=Heure normale de l'Est (Nouvelle-Galles du Sud)
-Australia/Currie.daylight.long=Heure d'\u00E9t\u00E9 de l'Est (Nouvelle-Galles du Sud)
-Australia/Currie.generic.long=C\u00F4te Est (Nouvelle-Galles du Sud)
-Australia/Currie.standard.long=Heure normale de l'Est (Nouvelle-Galles du Sud)
-Australia/Darwin.daylight.long=Heure d'\u00E9t\u00E9 d'Australie centrale (Territoire du Nord)
-Australia/Darwin.generic.long=Centre (Territoire du Nord)
-Australia/Darwin.standard.long=Heure standard d'Australie centrale (Territoire du Nord)
-Australia/Eucla.daylight.long=Heure d'\u00E9t\u00E9 de l'Australie occidentale (centre)
-Australia/Eucla.generic.long=Heure de l'Australie occidentale (centre)
-Australia/Eucla.standard.long=Heure standard de l'Australie occidentale (centre)
-Australia/Hobart.daylight.long=Heure d'\u00E9t\u00E9 d'Australie orientale (Tasmanie)
-Australia/Hobart.generic.long=C\u00F4te Est (Tasmanie)
-Australia/Hobart.standard.long=Heure standard d'Australie orientale (Tasmanie)
-Australia/LHI.generic.long=Heure de Lord Howe
-Australia/Lindeman.daylight.long=Heure d'\u00E9t\u00E9 d'Australie orientale (Queensland)
-Australia/Lindeman.generic.long=C\u00F4te Est (Queensland)
-Australia/Lindeman.standard.long=Heure standard d'Australie orientale (Queensland)
-Australia/Lord_Howe.generic.long=Heure de Lord Howe
-Australia/Melbourne.daylight.long=Heure d'\u00E9t\u00E9 d'Australie orientale (Victoria)
-Australia/Melbourne.generic.long=C\u00F4te Est (Victoria)
-Australia/Melbourne.standard.long=Heure standard d'Australie orientale (Victoria)
-Australia/NSW.daylight.long=Heure d'\u00E9t\u00E9 de l'Est (Nouvelle-Galles du Sud)
-Australia/NSW.generic.long=C\u00F4te Est (Nouvelle-Galles du Sud)
-Australia/NSW.standard.long=Heure normale de l'Est (Nouvelle-Galles du Sud)
-Australia/North.daylight.long=Heure d'\u00E9t\u00E9 d'Australie centrale (Territoire du Nord)
-Australia/North.generic.long=Centre (Territoire du Nord)
-Australia/North.standard.long=Heure standard d'Australie centrale (Territoire du Nord)
-Australia/Perth.daylight.long=Heure d'\u00E9t\u00E9 de l'Ouest (Australie)
-Australia/Perth.generic.long=Ouest (Australie)
-Australia/Perth.standard.long=Heure normale de l'Ouest (Australie)
-Australia/Queensland.daylight.long=Heure d'\u00E9t\u00E9 d'Australie orientale (Queensland)
-Australia/Queensland.generic.long=C\u00F4te Est (Queensland)
-Australia/Queensland.standard.long=Heure standard d'Australie orientale (Queensland)
-Australia/South.daylight.long=Heure d'\u00E9t\u00E9 d'Australie centrale (Australie du sud)
-Australia/South.generic.long=Centre (Australie-M\u00E9ridionale)
-Australia/South.standard.long=Heure standard d'Australie centrale (Australie du sud)
-Australia/Sydney.daylight.long=Heure d'\u00E9t\u00E9 de l'Est (Nouvelle-Galles du Sud)
-Australia/Sydney.generic.long=C\u00F4te Est (Nouvelle-Galles du Sud)
-Australia/Sydney.standard.long=Heure normale de l'Est (Nouvelle-Galles du Sud)
-Australia/Tasmania.daylight.long=Heure d'\u00E9t\u00E9 d'Australie orientale (Tasmanie)
-Australia/Tasmania.generic.long=C\u00F4te Est (Tasmanie)
-Australia/Tasmania.standard.long=Heure standard d'Australie orientale (Tasmanie)
-Australia/Victoria.daylight.long=Heure d'\u00E9t\u00E9 d'Australie orientale (Victoria)
-Australia/Victoria.generic.long=C\u00F4te Est (Victoria)
-Australia/Victoria.standard.long=Heure standard d'Australie orientale (Victoria)
-Australia/West.daylight.long=Heure d'\u00E9t\u00E9 de l'Ouest (Australie)
-Australia/West.generic.long=Ouest (Australie)
-Australia/West.standard.long=Heure normale de l'Ouest (Australie)
-Australia/Yancowinna.daylight.long=Heure d'\u00E9t\u00E9 d'Australie centrale (Australie du sud/Nouvelle-Galles du sud)
-Australia/Yancowinna.generic.long=Centre (Australie-M\u00E9ridionale/Nouvelle-Galles du Sud)
-Australia/Yancowinna.standard.long=Heure standard d'Australie centrale (Australie du sud/Nouvelle-Galles du sud)
-BET.generic.long=Heure du Br\u00E9sil
-BST.generic.long=Heure du Bangladesh
-Brazil/Acre.generic.long=Heure de l'Acre
-Brazil/DeNoronha.generic.long=Heure de Fernando de Noronha
-Brazil/East.generic.long=Heure du Br\u00E9sil
-Brazil/West.generic.long=Heure d'Amazonie
-CAT.generic.long=Heure d'Afrique centrale
-CET.generic.long=Heure d'Europe centrale
-CNT.generic.long=Terre-Neuve
-CST.generic.long=Centre
-CST6CDT.generic.long=Centre
-CTT.generic.long=Chine
-Canada/Atlantic.generic.long=Atlantique
-Canada/Central.generic.long=Centre
-Canada/East-Saskatchewan.generic.long=Centre
-Canada/Eastern.generic.long=C\u00F4te Est
-Canada/Mountain.generic.long=Rocheuses
-Canada/Newfoundland.generic.long=Terre-Neuve
-Canada/Pacific.generic.long=Pacifique
-Canada/Saskatchewan.generic.long=Centre
-Canada/Yukon.generic.long=Pacifique
-Chile/Continental.generic.long=Heure du Chili
-Chile/EasterIsland.generic.long=Heure de l'Ile de P\u00E2ques
-Cuba.generic.long=Heure de Cuba
-EAT.generic.long=Heure d'Afrique de l'Est
-ECT.generic.long=Heure d'Europe centrale
-EET.generic.long=Heure d'Europe de l'Est
-EST.generic.long=C\u00f4te Est
-EST5EDT.generic.long=C\u00f4te Est
-Egypt.generic.long=Heure d'Europe de l'Est
-Eire.generic.long=Heure irlandaise
-Etc/Greenwich.generic.long=Heure de Greenwich
-Etc/UCT.generic.long=Temps universel coordonn\u00E9
-Etc/UTC.generic.long=Temps universel coordonn\u00E9
-Etc/Universal.generic.long=Temps universel coordonn\u00E9
-Etc/Zulu.generic.long=Temps universel coordonn\u00E9
-Europe/Amsterdam.generic.long=Heure d'Europe centrale
-Europe/Andorra.generic.long=Heure d'Europe centrale
-Europe/Athens.generic.long=Heure d'Europe de l'Est
-Europe/Belfast.generic.long=Heure britannique
-Europe/Belgrade.generic.long=Heure d'Europe centrale
-Europe/Berlin.generic.long=Heure d'Europe centrale
-Europe/Bratislava.generic.long=Heure d'Europe centrale
-Europe/Brussels.generic.long=Heure d'Europe centrale
-Europe/Bucharest.generic.long=Heure d'Europe de l'Est
-Europe/Budapest.generic.long=Heure d'Europe centrale
-Europe/Busingen.generic.long=Heure d'Europe centrale
-Europe/Chisinau.generic.long=Heure d'Europe de l'Est
-Europe/Copenhagen.generic.long=Heure d'Europe centrale
-Europe/Dublin.generic.long=Heure irlandaise
-Europe/Gibraltar.generic.long=Heure d'Europe centrale
-Europe/Guernsey.generic.long=Heure britannique
-Europe/Helsinki.generic.long=Heure d'Europe de l'Est
-Europe/Isle_of_Man.generic.long=Heure britannique
-Europe/Istanbul.generic.long=Heure d'Europe de l'Est
-Europe/Jersey.generic.long=Heure britannique
-Europe/Kaliningrad.daylight.long=Heure d'\u00E9t\u00E9 d'Europe de l'Est UTC+3
-Europe/Kaliningrad.generic.long=Heure d'Europe de l'Est UTC+3
-Europe/Kaliningrad.standard.long=Heure d'Europe de l'Est UTC+3
-Europe/Kiev.generic.long=Heure d'Europe de l'Est
-Europe/Lisbon.generic.long=Heure d'Europe de l'Ouest
-Europe/Ljubljana.generic.long=Heure d'Europe centrale
-Europe/London.generic.long=Heure britannique
-Europe/Luxembourg.generic.long=Heure d'Europe centrale
-Europe/Madrid.generic.long=Heure d'Europe centrale
-Europe/Malta.generic.long=Heure d'Europe centrale
-Europe/Mariehamn.generic.long=Heure d'Europe de l'Est
-Europe/Minsk.daylight.long=Heure d'\u00E9t\u00E9 d'Europe de l'Est UTC+3
-Europe/Minsk.generic.long=Heure d'Europe de l'Est UTC+3
-Europe/Minsk.standard.long=Heure d'Europe de l'Est UTC+3
-Europe/Monaco.generic.long=Heure d'Europe centrale
-Europe/Moscow.generic.long=Moscou
-Europe/Nicosia.generic.long=Heure d'Europe de l'Est
-Europe/Oslo.generic.long=Heure d'Europe centrale
-Europe/Paris.generic.long=Heure d'Europe centrale
-Europe/Podgorica.generic.long=Heure d'Europe centrale
-Europe/Prague.generic.long=Heure d'Europe centrale
-Europe/Riga.generic.long=Heure d'Europe de l'Est
-Europe/Rome.generic.long=Heure d'Europe centrale
-Europe/Samara.generic.long=Heure de Samara
-Europe/San_Marino.generic.long=Heure d'Europe centrale
-Europe/Sarajevo.generic.long=Heure d'Europe centrale
-Europe/Simferopol.generic.long=Heure d'Europe de l'Est
-Europe/Skopje.generic.long=Heure d'Europe centrale
-Europe/Sofia.generic.long=Heure d'Europe de l'Est
-Europe/Stockholm.generic.long=Heure d'Europe centrale
-Europe/Tallinn.generic.long=Heure d'Europe de l'Est
-Europe/Tirane.generic.long=Heure d'Europe centrale
-Europe/Tiraspol.generic.long=Heure d'Europe de l'Est
-Europe/Uzhgorod.generic.long=Heure d'Europe de l'Est
-Europe/Vaduz.generic.long=Heure d'Europe centrale
-Europe/Vatican.generic.long=Heure d'Europe centrale
-Europe/Vienna.generic.long=Heure d'Europe centrale
-Europe/Vilnius.generic.long=Heure d'Europe de l'Est
-Europe/Volgograd.generic.long=Heure de Volgograd
-Europe/Warsaw.generic.long=Heure d'Europe centrale
-Europe/Zagreb.generic.long=Heure d'Europe centrale
-Europe/Zaporozhye.generic.long=Heure d'Europe de l'Est
-Europe/Zurich.generic.long=Heure d'Europe centrale
-GB-Eire.generic.long=Heure britannique
-GB.generic.long=Heure britannique
-GMT.generic.long=Heure de Greenwich
-Greenwich.generic.long=Heure de Greenwich
-HST.generic.long=Hawa\u00ef
-Hongkong.generic.long=Heure de Hong-Kong
-IET.generic.long=C\u00F4te Est
-IST.generic.long=Inde
-Iceland.generic.long=Heure de Greenwich
-Indian/Antananarivo.generic.long=Heure d'Afrique de l'Est
-Indian/Chagos.generic.long=Heure de l'oc\u00E9an Indien
-Indian/Christmas.generic.long=Heure de l'Ile Christmas
-Indian/Cocos.generic.long=Heure des Iles Cocos
-Indian/Comoro.generic.long=Heure d'Afrique de l'Est
-Indian/Kerguelen.generic.long=Heure des Terres australes antarctiques fran\u00E7aises
-Indian/Mahe.generic.long=Heure des Seychelles
-Indian/Maldives.generic.long=Heure des Maldives
-Indian/Mauritius.generic.long=Heure de Maurice
-Indian/Mayotte.generic.long=Heure d'Afrique de l'Est
-Indian/Reunion.generic.long=Heure de la R\u00E9union
-Iran.generic.long=Heure d'Iran
-Israel.generic.long=Isra\u00EBl
-JST.generic.long=Japon
-Jamaica.generic.long=C\u00F4te Est
-Japan.generic.long=Japon
-Kwajalein.generic.long=Heure des Iles Marshall
-Libya.generic.long=Heure d'Europe de l'Est
-MET.generic.long=MET
-MIT.generic.long=Heure des Samoas occidentales
-MST.generic.long=Rocheuses
-MST7MDT.generic.long=Rocheuses
-Mexico/BajaNorte.generic.long=Pacifique
-Mexico/BajaSur.generic.long=Rocheuses
-Mexico/General.generic.long=Centre
-NET.generic.long=Heure d'Arm\u00E9nie
-NST.generic.long=Nouvelle-Z\u00E9lande
-NZ-CHAT.generic.long=Chatham
-NZ.generic.long=Nouvelle-Z\u00E9lande
-Navajo.generic.long=Rocheuses
-PLT.generic.long=Heure du Pakistan
-PNT.generic.long=Rocheuses
-PRC.generic.long=Chine
-PRT.generic.long=Atlantique
-PST.generic.long=Pacifique
-PST8PDT.generic.long=Pacifique
-Pacific/Apia.generic.long=Heure des Samoas occidentales
-Pacific/Auckland.generic.long=Nouvelle-Z\u00E9lande
-Pacific/Chatham.generic.long=Chatham
-Pacific/Chuuk.daylight.long=Heure d'\u00E9t\u00E9 de Chuuk
-Pacific/Chuuk.generic.long=Heure de Chuuk
-Pacific/Chuuk.standard.long=Heure de Chuuk
-Pacific/Easter.generic.long=Heure de l'Ile de P\u00E2ques
-Pacific/Efate.generic.long=Heure du Vanuatu
-Pacific/Enderbury.generic.long=Heure de l'Ile de Phoenix
-Pacific/Fakaofo.generic.long=Heure de Tokelau
-Pacific/Fiji.generic.long=Heure de Fidji
-Pacific/Funafuti.generic.long=Heure de Tuvalu
-Pacific/Galapagos.generic.long=Heure des Galapagos
-Pacific/Gambier.generic.long=Heure de Gambi
-Pacific/Guadalcanal.generic.long=Heure des Iles Salomon
-Pacific/Guam.generic.long=Chamorro
-Pacific/Honolulu.generic.long=Hawa\u00EF
-Pacific/Johnston.generic.long=Hawa\u00EF
-Pacific/Kiritimati.generic.long=Heure de l'Ile de Line
-Pacific/Kosrae.generic.long=Heure de Kusaie
-Pacific/Kwajalein.generic.long=Heure des Iles Marshall
-Pacific/Majuro.generic.long=Heure des Iles Marshall
-Pacific/Marquesas.generic.long=Heure des Marquises
-Pacific/Midway.generic.long=Samoa
-Pacific/Nauru.generic.long=Heure de Nauru
-Pacific/Niue.generic.long=Heure de Niue
-Pacific/Norfolk.generic.long=Heure de Norfolk
-Pacific/Noumea.generic.long=Heure de Nouvelle-Cal\u00E9donie
-Pacific/Pago_Pago.generic.long=Samoa
-Pacific/Palau.generic.long=Heure de Palaos
-Pacific/Pitcairn.generic.long=Pitcairn
-Pacific/Pohnpei.daylight.long=Heure d'\u00E9t\u00E9 de Pohnpei
-Pacific/Pohnpei.generic.long=Ponape
-Pacific/Pohnpei.standard.long=Heure de Pohnpei
-Pacific/Ponape.daylight.long=Heure d'\u00E9t\u00E9 de Pohnpei
-Pacific/Ponape.generic.long=Ponape
-Pacific/Ponape.standard.long=Heure de Pohnpei
-Pacific/Port_Moresby.generic.long=Heure de Papouasie-Nouvelle-Guin\u00E9e
-Pacific/Rarotonga.generic.long=Heure des Iles Cook
-Pacific/Saipan.generic.long=Chamorro
-Pacific/Samoa.generic.long=Samoa
-Pacific/Tahiti.generic.long=Heure de Tahiti
-Pacific/Tarawa.generic.long=Heure de Kiribati
-Pacific/Tongatapu.generic.long=Heure de Tonga
-Pacific/Truk.daylight.long=Heure d'\u00E9t\u00E9 de Chuuk
-Pacific/Truk.generic.long=Heure de Chuuk
-Pacific/Truk.standard.long=Heure de Chuuk
-Pacific/Wake.generic.long=Heure de Wake
-Pacific/Wallis.generic.long=Heure de Wallis-et-Futuna
-Pacific/Yap.daylight.long=Heure d'\u00E9t\u00E9 de Chuuk
-Pacific/Yap.generic.long=Heure de Chuuk
-Pacific/Yap.standard.long=Heure de Chuuk
-Poland.generic.long=Heure d'Europe centrale
-Portugal.generic.long=Heure d'Europe de l'Ouest
-ROK.generic.long=Cor\u00E9e
-SST.generic.long=Heure des Iles Salomon
-Singapore.generic.long=Heure de Singapour
-SystemV/AST4.generic.long=Atlantique
-SystemV/AST4ADT.generic.long=Atlantique
-SystemV/CST6.generic.long=Centre
-SystemV/CST6CDT.generic.long=Centre
-SystemV/EST5.generic.long=C\u00F4te Est
-SystemV/EST5EDT.generic.long=C\u00F4te Est
-SystemV/HST10.generic.long=Hawa\u00EF
-SystemV/MST7.generic.long=Rocheuses
-SystemV/MST7MDT.generic.long=Rocheuses
-SystemV/PST8.generic.long=Pacifique
-SystemV/PST8PDT.generic.long=Pacifique
-SystemV/YST9.generic.long=Alaska
-SystemV/YST9YDT.generic.long=Alaska
-Turkey.generic.long=Heure d'Europe de l'Est
-UCT.generic.long=Temps universel coordonn\u00E9
-US/Alaska.generic.long=Alaska
-US/Aleutian.generic.long=Hawa\u00EF-Iles Al\u00E9outiennes
-US/Arizona.generic.long=Rocheuses
-US/Central.generic.long=Centre
-US/East-Indiana.generic.long=C\u00F4te Est
-US/Eastern.generic.long=C\u00F4te Est
-US/Hawaii.generic.long=Hawa\u00EF
-US/Indiana-Starke.generic.long=Centre
-US/Michigan.generic.long=C\u00F4te Est
-US/Mountain.generic.long=Rocheuses
-US/Pacific-New.generic.long=Pacifique
-US/Pacific.generic.long=Pacifique
-US/Samoa.generic.long=Samoa
-UTC.generic.long=Temps universel coordonn\u00E9
-Universal.generic.long=Temps universel coordonn\u00E9
-VST.generic.long=Heure d'Indochine
-W-SU.generic.long=Moscou
-WET.generic.long=Heure d'Europe de l'Ouest
-Zulu.generic.long=Temps universel coordonn\u00E9
diff --git a/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_fr_short.properties b/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_fr_short.properties
deleted file mode 100644
index 095522a68d1..00000000000
--- a/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_fr_short.properties
+++ /dev/null
@@ -1,1743 +0,0 @@
-ACT.daylight.short=CST
-ACT.generic.short=CT
-ACT.standard.short=CST
-AET.daylight.short=EST
-AET.generic.short=ET
-AET.standard.short=EST
-Africa/Abidjan.daylight.short=GMT
-Africa/Abidjan.generic.short=GMT
-Africa/Abidjan.standard.short=GMT
-Africa/Accra.daylight.short=GHST
-Africa/Accra.generic.short=GMT
-Africa/Accra.standard.short=GMT
-Africa/Addis_Ababa.daylight.short=EAST
-Africa/Addis_Ababa.generic.short=EAT
-Africa/Addis_Ababa.standard.short=EAT
-Africa/Algiers.daylight.short=CEST
-Africa/Algiers.generic.short=CET
-Africa/Algiers.standard.short=CET
-Africa/Asmara.daylight.short=EAST
-Africa/Asmara.generic.short=EAT
-Africa/Asmara.standard.short=EAT
-Africa/Asmera.daylight.short=EAST
-Africa/Asmera.generic.short=EAT
-Africa/Asmera.standard.short=EAT
-Africa/Bamako.daylight.short=GMT
-Africa/Bamako.generic.short=GMT
-Africa/Bamako.standard.short=GMT
-Africa/Bangui.daylight.short=WAST
-Africa/Bangui.generic.short=WAT
-Africa/Bangui.standard.short=WAT
-Africa/Banjul.daylight.short=GMT
-Africa/Banjul.generic.short=GMT
-Africa/Banjul.standard.short=GMT
-Africa/Bissau.daylight.short=GMT
-Africa/Bissau.generic.short=GMT
-Africa/Bissau.standard.short=GMT
-Africa/Blantyre.daylight.short=CAST
-Africa/Blantyre.generic.short=CAT
-Africa/Blantyre.standard.short=CAT
-Africa/Brazzaville.daylight.short=WAST
-Africa/Brazzaville.generic.short=WAT
-Africa/Brazzaville.standard.short=WAT
-Africa/Bujumbura.daylight.short=CAST
-Africa/Bujumbura.generic.short=CAT
-Africa/Bujumbura.standard.short=CAT
-Africa/Cairo.daylight.short=EEST
-Africa/Cairo.generic.short=EET
-Africa/Cairo.standard.short=EET
-Africa/Casablanca.daylight.short=WEST
-Africa/Casablanca.generic.short=WET
-Africa/Casablanca.standard.short=WET
-Africa/Ceuta.daylight.short=CEST
-Africa/Ceuta.generic.short=CET
-Africa/Ceuta.standard.short=CET
-Africa/Conakry.daylight.short=GMT
-Africa/Conakry.generic.short=GMT
-Africa/Conakry.standard.short=GMT
-Africa/Dakar.daylight.short=GMT
-Africa/Dakar.generic.short=GMT
-Africa/Dakar.standard.short=GMT
-Africa/Dar_es_Salaam.daylight.short=EAST
-Africa/Dar_es_Salaam.generic.short=EAT
-Africa/Dar_es_Salaam.standard.short=EAT
-Africa/Djibouti.daylight.short=EAST
-Africa/Djibouti.generic.short=EAT
-Africa/Djibouti.standard.short=EAT
-Africa/Douala.daylight.short=WAST
-Africa/Douala.generic.short=WAT
-Africa/Douala.standard.short=WAT
-Africa/El_Aaiun.daylight.short=WEST
-Africa/El_Aaiun.generic.short=WET
-Africa/El_Aaiun.standard.short=WET
-Africa/Freetown.daylight.short=SLST
-Africa/Freetown.generic.short=SLT
-Africa/Freetown.standard.short=GMT
-Africa/Gaborone.daylight.short=CAST
-Africa/Gaborone.generic.short=CAT
-Africa/Gaborone.standard.short=CAT
-Africa/Harare.daylight.short=CAST
-Africa/Harare.generic.short=CAT
-Africa/Harare.standard.short=CAT
-Africa/Johannesburg.daylight.short=SAST
-Africa/Johannesburg.generic.short=SAT
-Africa/Johannesburg.standard.short=SAST
-Africa/Juba.daylight.short=EAST
-Africa/Juba.generic.short=EAT
-Africa/Juba.standard.short=EAT
-Africa/Kampala.daylight.short=EAST
-Africa/Kampala.generic.short=EAT
-Africa/Kampala.standard.short=EAT
-Africa/Khartoum.daylight.short=EAST
-Africa/Khartoum.generic.short=EAT
-Africa/Khartoum.standard.short=EAT
-Africa/Kigali.daylight.short=CAST
-Africa/Kigali.generic.short=CAT
-Africa/Kigali.standard.short=CAT
-Africa/Kinshasa.daylight.short=WAST
-Africa/Kinshasa.generic.short=WAT
-Africa/Kinshasa.standard.short=WAT
-Africa/Lagos.daylight.short=WAST
-Africa/Lagos.generic.short=WAT
-Africa/Lagos.standard.short=WAT
-Africa/Libreville.daylight.short=WAST
-Africa/Libreville.generic.short=WAT
-Africa/Libreville.standard.short=WAT
-Africa/Lome.daylight.short=GMT
-Africa/Lome.generic.short=GMT
-Africa/Lome.standard.short=GMT
-Africa/Luanda.daylight.short=WAST
-Africa/Luanda.generic.short=WAT
-Africa/Luanda.standard.short=WAT
-Africa/Lubumbashi.daylight.short=CAST
-Africa/Lubumbashi.generic.short=CAT
-Africa/Lubumbashi.standard.short=CAT
-Africa/Lusaka.daylight.short=CAST
-Africa/Lusaka.generic.short=CAT
-Africa/Lusaka.standard.short=CAT
-Africa/Malabo.daylight.short=WAST
-Africa/Malabo.generic.short=WAT
-Africa/Malabo.standard.short=WAT
-Africa/Maputo.daylight.short=CAST
-Africa/Maputo.generic.short=CAT
-Africa/Maputo.standard.short=CAT
-Africa/Maseru.daylight.short=SAST
-Africa/Maseru.generic.short=SAT
-Africa/Maseru.standard.short=SAST
-Africa/Mbabane.daylight.short=SAST
-Africa/Mbabane.generic.short=SAT
-Africa/Mbabane.standard.short=SAST
-Africa/Mogadishu.daylight.short=EAST
-Africa/Mogadishu.generic.short=EAT
-Africa/Mogadishu.standard.short=EAT
-Africa/Monrovia.daylight.short=GMT
-Africa/Monrovia.generic.short=GMT
-Africa/Monrovia.standard.short=GMT
-Africa/Nairobi.daylight.short=EAST
-Africa/Nairobi.generic.short=EAT
-Africa/Nairobi.standard.short=EAT
-Africa/Ndjamena.daylight.short=WAST
-Africa/Ndjamena.generic.short=WAT
-Africa/Ndjamena.standard.short=WAT
-Africa/Niamey.daylight.short=WAST
-Africa/Niamey.generic.short=WAT
-Africa/Niamey.standard.short=WAT
-Africa/Nouakchott.daylight.short=GMT
-Africa/Nouakchott.generic.short=GMT
-Africa/Nouakchott.standard.short=GMT
-Africa/Ouagadougou.daylight.short=GMT
-Africa/Ouagadougou.generic.short=GMT
-Africa/Ouagadougou.standard.short=GMT
-Africa/Porto-Novo.daylight.short=WAST
-Africa/Porto-Novo.generic.short=WAT
-Africa/Porto-Novo.standard.short=WAT
-Africa/Sao_Tome.daylight.short=GMT
-Africa/Sao_Tome.generic.short=GMT
-Africa/Sao_Tome.standard.short=GMT
-Africa/Timbuktu.daylight.short=GMT
-Africa/Timbuktu.generic.short=GMT
-Africa/Timbuktu.standard.short=GMT
-Africa/Tripoli.daylight.short=EEST
-Africa/Tripoli.generic.short=EET
-Africa/Tripoli.standard.short=EET
-Africa/Tunis.daylight.short=CEST
-Africa/Tunis.generic.short=CET
-Africa/Tunis.standard.short=CET
-Africa/Windhoek.daylight.short=WAST
-Africa/Windhoek.generic.short=WAT
-Africa/Windhoek.standard.short=WAT
-AGT.daylight.short=ARST
-AGT.generic.short=ART
-AGT.standard.short=ART
-America/Adak.daylight.short=HADT
-America/Adak.generic.short=HAT
-America/Adak.standard.short=HAST
-America/Anchorage.daylight.short=AKDT
-America/Anchorage.generic.short=AKT
-America/Anchorage.standard.short=AKST
-America/Anguilla.daylight.short=ADT
-America/Anguilla.generic.short=AT
-America/Anguilla.standard.short=AST
-America/Antigua.daylight.short=ADT
-America/Antigua.generic.short=AT
-America/Antigua.standard.short=AST
-America/Araguaina.daylight.short=BRST
-America/Araguaina.generic.short=BRT
-America/Araguaina.standard.short=BRT
-America/Argentina/Buenos_Aires.daylight.short=ARST
-America/Argentina/Buenos_Aires.generic.short=ART
-America/Argentina/Buenos_Aires.standard.short=ART
-America/Argentina/Catamarca.daylight.short=ARST
-America/Argentina/Catamarca.generic.short=ART
-America/Argentina/Catamarca.standard.short=ART
-America/Argentina/ComodRivadavia.daylight.short=ARST
-America/Argentina/ComodRivadavia.generic.short=ART
-America/Argentina/ComodRivadavia.standard.short=ART
-America/Argentina/Cordoba.daylight.short=ARST
-America/Argentina/Cordoba.generic.short=ART
-America/Argentina/Cordoba.standard.short=ART
-America/Argentina/Jujuy.daylight.short=ARST
-America/Argentina/Jujuy.generic.short=ART
-America/Argentina/Jujuy.standard.short=ART
-America/Argentina/La_Rioja.daylight.short=ARST
-America/Argentina/La_Rioja.generic.short=ART
-America/Argentina/La_Rioja.standard.short=ART
-America/Argentina/Mendoza.daylight.short=ARST
-America/Argentina/Mendoza.generic.short=ART
-America/Argentina/Mendoza.standard.short=ART
-America/Argentina/Rio_Gallegos.daylight.short=ARST
-America/Argentina/Rio_Gallegos.generic.short=ART
-America/Argentina/Rio_Gallegos.standard.short=ART
-America/Argentina/Salta.daylight.short=ARST
-America/Argentina/Salta.generic.short=ART
-America/Argentina/Salta.standard.short=ART
-America/Argentina/San_Juan.daylight.short=ARST
-America/Argentina/San_Juan.generic.short=ART
-America/Argentina/San_Juan.standard.short=ART
-America/Argentina/San_Luis.daylight.short=ARST
-America/Argentina/San_Luis.generic.short=ART
-America/Argentina/San_Luis.standard.short=ART
-America/Argentina/Tucuman.daylight.short=ARST
-America/Argentina/Tucuman.generic.short=ART
-America/Argentina/Tucuman.standard.short=ART
-America/Argentina/Ushuaia.daylight.short=ARST
-America/Argentina/Ushuaia.generic.short=ART
-America/Argentina/Ushuaia.standard.short=ART
-America/Aruba.daylight.short=ADT
-America/Aruba.generic.short=AT
-America/Aruba.standard.short=AST
-America/Asuncion.daylight.short=PYST
-America/Asuncion.generic.short=PYT
-America/Asuncion.standard.short=PYT
-America/Atikokan.daylight.short=EDT
-America/Atikokan.generic.short=ET
-America/Atikokan.standard.short=EST
-America/Atka.daylight.short=HADT
-America/Atka.generic.short=HAT
-America/Atka.standard.short=HAST
-America/Bahia_Banderas.daylight.short=CDT
-America/Bahia_Banderas.generic.short=CT
-America/Bahia_Banderas.standard.short=CST
-America/Bahia.daylight.short=BRST
-America/Bahia.generic.short=BRT
-America/Bahia.standard.short=BRT
-America/Barbados.daylight.short=ADT
-America/Barbados.generic.short=AT
-America/Barbados.standard.short=AST
-America/Belem.daylight.short=BRST
-America/Belem.generic.short=BRT
-America/Belem.standard.short=BRT
-America/Belize.daylight.short=CDT
-America/Belize.generic.short=CT
-America/Belize.standard.short=CST
-America/Blanc-Sablon.daylight.short=ADT
-America/Blanc-Sablon.generic.short=AT
-America/Blanc-Sablon.standard.short=AST
-America/Boa_Vista.daylight.short=AMST
-America/Boa_Vista.generic.short=AMT
-America/Boa_Vista.standard.short=AMT
-America/Bogota.daylight.short=COST
-America/Bogota.generic.short=COT
-America/Bogota.standard.short=COT
-America/Boise.daylight.short=MDT
-America/Boise.generic.short=MT
-America/Boise.standard.short=MST
-America/Buenos_Aires.daylight.short=ARST
-America/Buenos_Aires.generic.short=ART
-America/Buenos_Aires.standard.short=ART
-America/Cambridge_Bay.daylight.short=MDT
-America/Cambridge_Bay.generic.short=MT
-America/Cambridge_Bay.standard.short=MST
-America/Campo_Grande.daylight.short=AMST
-America/Campo_Grande.generic.short=AMT
-America/Campo_Grande.standard.short=AMT
-America/Cancun.daylight.short=CDT
-America/Cancun.generic.short=CT
-America/Cancun.standard.short=CST
-America/Caracas.daylight.short=VEST
-America/Caracas.generic.short=VET
-America/Caracas.standard.short=VET
-America/Catamarca.daylight.short=ARST
-America/Catamarca.generic.short=ART
-America/Catamarca.standard.short=ART
-America/Cayenne.daylight.short=GFST
-America/Cayenne.generic.short=GFT
-America/Cayenne.standard.short=GFT
-America/Cayman.daylight.short=EDT
-America/Cayman.generic.short=ET
-America/Cayman.standard.short=EST
-America/Chicago.daylight.short=CDT
-America/Chicago.generic.short=CT
-America/Chicago.standard.short=CST
-America/Chihuahua.daylight.short=MDT
-America/Chihuahua.generic.short=MT
-America/Chihuahua.standard.short=MST
-America/Coral_Harbour.daylight.short=EDT
-America/Coral_Harbour.generic.short=ET
-America/Coral_Harbour.standard.short=EST
-America/Cordoba.daylight.short=ARST
-America/Cordoba.generic.short=ART
-America/Cordoba.standard.short=ART
-America/Costa_Rica.daylight.short=CDT
-America/Costa_Rica.generic.short=CT
-America/Costa_Rica.standard.short=CST
-America/Creston.daylight.short=MDT
-America/Creston.generic.short=MT
-America/Creston.standard.short=MST
-America/Cuiaba.daylight.short=AMST
-America/Cuiaba.generic.short=AMT
-America/Cuiaba.standard.short=AMT
-America/Curacao.daylight.short=ADT
-America/Curacao.generic.short=AT
-America/Curacao.standard.short=AST
-America/Danmarkshavn.daylight.short=GMT
-America/Danmarkshavn.generic.short=GMT
-America/Danmarkshavn.standard.short=GMT
-America/Dawson_Creek.daylight.short=MDT
-America/Dawson_Creek.generic.short=MT
-America/Dawson_Creek.standard.short=MST
-America/Dawson.daylight.short=PDT
-America/Dawson.generic.short=PT
-America/Dawson.standard.short=PST
-America/Denver.daylight.short=MDT
-America/Denver.generic.short=MT
-America/Denver.standard.short=MST
-America/Detroit.daylight.short=EDT
-America/Detroit.generic.short=ET
-America/Detroit.standard.short=EST
-America/Dominica.daylight.short=ADT
-America/Dominica.generic.short=AT
-America/Dominica.standard.short=AST
-America/Edmonton.daylight.short=MDT
-America/Edmonton.generic.short=MT
-America/Edmonton.standard.short=MST
-America/Eirunepe.daylight.short=ACST
-America/Eirunepe.generic.short=ACT
-America/Eirunepe.standard.short=ACT
-America/El_Salvador.daylight.short=CDT
-America/El_Salvador.generic.short=CT
-America/El_Salvador.standard.short=CST
-America/Ensenada.daylight.short=PDT
-America/Ensenada.generic.short=PT
-America/Ensenada.standard.short=PST
-America/Fortaleza.daylight.short=BRST
-America/Fortaleza.generic.short=BRT
-America/Fortaleza.standard.short=BRT
-America/Fort_Wayne.daylight.short=EDT
-America/Fort_Wayne.generic.short=ET
-America/Fort_Wayne.standard.short=EST
-America/Glace_Bay.daylight.short=ADT
-America/Glace_Bay.generic.short=AT
-America/Glace_Bay.standard.short=AST
-America/Godthab.daylight.short=WGST
-America/Godthab.generic.short=WGT
-America/Godthab.standard.short=WGT
-America/Goose_Bay.daylight.short=ADT
-America/Goose_Bay.generic.short=AT
-America/Goose_Bay.standard.short=AST
-America/Grand_Turk.daylight.short=EDT
-America/Grand_Turk.generic.short=ET
-America/Grand_Turk.standard.short=EST
-America/Grenada.daylight.short=ADT
-America/Grenada.generic.short=AT
-America/Grenada.standard.short=AST
-America/Guadeloupe.daylight.short=ADT
-America/Guadeloupe.generic.short=AT
-America/Guadeloupe.standard.short=AST
-America/Guatemala.daylight.short=CDT
-America/Guatemala.generic.short=CT
-America/Guatemala.standard.short=CST
-America/Guayaquil.daylight.short=ECST
-America/Guayaquil.generic.short=ECT
-America/Guayaquil.standard.short=ECT
-America/Guyana.daylight.short=GYST
-America/Guyana.generic.short=GYT
-America/Guyana.standard.short=GYT
-America/Halifax.daylight.short=ADT
-America/Halifax.generic.short=AT
-America/Halifax.standard.short=AST
-America/Havana.daylight.short=CDT
-America/Havana.generic.short=CT
-America/Havana.standard.short=CST
-America/Hermosillo.daylight.short=MDT
-America/Hermosillo.generic.short=MT
-America/Hermosillo.standard.short=MST
-America/Indiana/Indianapolis.daylight.short=EDT
-America/Indiana/Indianapolis.generic.short=ET
-America/Indiana/Indianapolis.standard.short=EST
-America/Indiana/Knox.daylight.short=CDT
-America/Indiana/Knox.generic.short=CT
-America/Indiana/Knox.standard.short=CST
-America/Indiana/Marengo.daylight.short=EDT
-America/Indiana/Marengo.generic.short=ET
-America/Indiana/Marengo.standard.short=EST
-America/Indiana/Petersburg.daylight.short=EDT
-America/Indiana/Petersburg.generic.short=ET
-America/Indiana/Petersburg.standard.short=EST
-America/Indianapolis.daylight.short=EDT
-America/Indianapolis.generic.short=ET
-America/Indianapolis.standard.short=EST
-America/Indiana/Tell_City.daylight.short=CDT
-America/Indiana/Tell_City.generic.short=CT
-America/Indiana/Tell_City.standard.short=CST
-America/Indiana/Vevay.daylight.short=EDT
-America/Indiana/Vevay.generic.short=ET
-America/Indiana/Vevay.standard.short=EST
-America/Indiana/Vincennes.daylight.short=EDT
-America/Indiana/Vincennes.generic.short=ET
-America/Indiana/Vincennes.standard.short=EST
-America/Indiana/Winamac.daylight.short=EDT
-America/Indiana/Winamac.generic.short=ET
-America/Indiana/Winamac.standard.short=EST
-America/Inuvik.daylight.short=MDT
-America/Inuvik.generic.short=MT
-America/Inuvik.standard.short=MST
-America/Iqaluit.daylight.short=EDT
-America/Iqaluit.generic.short=ET
-America/Iqaluit.standard.short=EST
-America/Jamaica.daylight.short=EDT
-America/Jamaica.generic.short=ET
-America/Jamaica.standard.short=EST
-America/Jujuy.daylight.short=ARST
-America/Jujuy.generic.short=ART
-America/Jujuy.standard.short=ART
-America/Juneau.daylight.short=AKDT
-America/Juneau.generic.short=AKT
-America/Juneau.standard.short=AKST
-America/Kentucky/Louisville.daylight.short=EDT
-America/Kentucky/Louisville.generic.short=ET
-America/Kentucky/Louisville.standard.short=EST
-America/Kentucky/Monticello.daylight.short=EDT
-America/Kentucky/Monticello.generic.short=ET
-America/Kentucky/Monticello.standard.short=EST
-America/Knox_IN.daylight.short=CDT
-America/Knox_IN.generic.short=CT
-America/Knox_IN.standard.short=CST
-America/Kralendijk.daylight.short=ADT
-America/Kralendijk.generic.short=AT
-America/Kralendijk.standard.short=AST
-America/La_Paz.daylight.short=BOST
-America/La_Paz.generic.short=BOT
-America/La_Paz.standard.short=BOT
-America/Lima.daylight.short=PEST
-America/Lima.generic.short=PET
-America/Lima.standard.short=PET
-America/Los_Angeles.daylight.short=PDT
-America/Los_Angeles.generic.short=PT
-America/Los_Angeles.standard.short=PST
-America/Louisville.daylight.short=EDT
-America/Louisville.generic.short=ET
-America/Louisville.standard.short=EST
-America/Lower_Princes.daylight.short=ADT
-America/Lower_Princes.generic.short=AT
-America/Lower_Princes.standard.short=AST
-America/Maceio.daylight.short=BRST
-America/Maceio.generic.short=BRT
-America/Maceio.standard.short=BRT
-America/Managua.daylight.short=CDT
-America/Managua.generic.short=CT
-America/Managua.standard.short=CST
-America/Manaus.daylight.short=AMST
-America/Manaus.generic.short=AMT
-America/Manaus.standard.short=AMT
-America/Marigot.daylight.short=ADT
-America/Marigot.generic.short=AT
-America/Marigot.standard.short=AST
-America/Martinique.daylight.short=ADT
-America/Martinique.generic.short=AT
-America/Martinique.standard.short=AST
-America/Matamoros.daylight.short=CDT
-America/Matamoros.generic.short=CT
-America/Matamoros.standard.short=CST
-America/Mazatlan.daylight.short=MDT
-America/Mazatlan.generic.short=MT
-America/Mazatlan.standard.short=MST
-America/Mendoza.daylight.short=ARST
-America/Mendoza.generic.short=ART
-America/Mendoza.standard.short=ART
-America/Menominee.daylight.short=CDT
-America/Menominee.generic.short=CT
-America/Menominee.standard.short=CST
-America/Merida.daylight.short=CDT
-America/Merida.generic.short=CT
-America/Merida.standard.short=CST
-America/Metlakatla.daylight.short=MeDT
-America/Metlakatla.generic.short=MeT
-America/Metlakatla.standard.short=MeST
-America/Mexico_City.daylight.short=CDT
-America/Mexico_City.generic.short=CT
-America/Mexico_City.standard.short=CST
-America/Miquelon.daylight.short=PMDT
-America/Miquelon.generic.short=PMT
-America/Miquelon.standard.short=PMST
-America/Moncton.daylight.short=ADT
-America/Moncton.generic.short=AT
-America/Moncton.standard.short=AST
-America/Monterrey.daylight.short=CDT
-America/Monterrey.generic.short=CT
-America/Monterrey.standard.short=CST
-America/Montevideo.daylight.short=UYST
-America/Montevideo.generic.short=UYT
-America/Montevideo.standard.short=UYT
-America/Montreal.daylight.short=EDT
-America/Montreal.generic.short=ET
-America/Montreal.standard.short=EST
-America/Montserrat.daylight.short=ADT
-America/Montserrat.generic.short=AT
-America/Montserrat.standard.short=AST
-America/Nassau.daylight.short=EDT
-America/Nassau.generic.short=ET
-America/Nassau.standard.short=EST
-America/New_York.daylight.short=EDT
-America/New_York.generic.short=ET
-America/New_York.standard.short=EST
-America/Nipigon.daylight.short=EDT
-America/Nipigon.generic.short=ET
-America/Nipigon.standard.short=EST
-America/Nome.daylight.short=AKDT
-America/Nome.generic.short=AKT
-America/Nome.standard.short=AKST
-America/Noronha.daylight.short=FNST
-America/Noronha.generic.short=FNT
-America/Noronha.standard.short=FNT
-America/North_Dakota/Beulah.daylight.short=CDT
-America/North_Dakota/Beulah.generic.short=CT
-America/North_Dakota/Beulah.standard.short=CST
-America/North_Dakota/Center.daylight.short=CDT
-America/North_Dakota/Center.generic.short=CT
-America/North_Dakota/Center.standard.short=CST
-America/North_Dakota/New_Salem.daylight.short=CDT
-America/North_Dakota/New_Salem.generic.short=CT
-America/North_Dakota/New_Salem.standard.short=CST
-America/Ojinaga.daylight.short=MDT
-America/Ojinaga.generic.short=MT
-America/Ojinaga.standard.short=MST
-America/Panama.daylight.short=EDT
-America/Panama.generic.short=ET
-America/Panama.standard.short=EST
-America/Pangnirtung.daylight.short=EDT
-America/Pangnirtung.generic.short=ET
-America/Pangnirtung.standard.short=EST
-America/Paramaribo.daylight.short=SRST
-America/Paramaribo.generic.short=SRT
-America/Paramaribo.standard.short=SRT
-America/Phoenix.daylight.short=MDT
-America/Phoenix.generic.short=MT
-America/Phoenix.standard.short=MST
-America/Port-au-Prince.daylight.short=EDT
-America/Port-au-Prince.generic.short=ET
-America/Port-au-Prince.standard.short=EST
-America/Porto_Acre.daylight.short=ACST
-America/Porto_Acre.generic.short=ACT
-America/Porto_Acre.standard.short=ACT
-America/Port_of_Spain.daylight.short=ADT
-America/Port_of_Spain.generic.short=AT
-America/Port_of_Spain.standard.short=AST
-America/Porto_Velho.daylight.short=AMST
-America/Porto_Velho.generic.short=AMT
-America/Porto_Velho.standard.short=AMT
-America/Puerto_Rico.daylight.short=ADT
-America/Puerto_Rico.generic.short=AT
-America/Puerto_Rico.standard.short=AST
-America/Rainy_River.daylight.short=CDT
-America/Rainy_River.generic.short=CT
-America/Rainy_River.standard.short=CST
-America/Rankin_Inlet.daylight.short=CDT
-America/Rankin_Inlet.generic.short=CT
-America/Rankin_Inlet.standard.short=CST
-America/Recife.daylight.short=BRST
-America/Recife.generic.short=BRT
-America/Recife.standard.short=BRT
-America/Regina.daylight.short=CDT
-America/Regina.generic.short=CT
-America/Regina.standard.short=CST
-America/Resolute.daylight.short=CDT
-America/Resolute.generic.short=CT
-America/Resolute.standard.short=CST
-America/Rio_Branco.daylight.short=ACST
-America/Rio_Branco.generic.short=ACT
-America/Rio_Branco.standard.short=ACT
-America/Rosario.daylight.short=ARST
-America/Rosario.generic.short=ART
-America/Rosario.standard.short=ART
-America/Santa_Isabel.daylight.short=PDT
-America/Santa_Isabel.generic.short=PT
-America/Santa_Isabel.standard.short=PST
-America/Santarem.daylight.short=BRST
-America/Santarem.generic.short=BRT
-America/Santarem.standard.short=BRT
-America/Santiago.daylight.short=CLST
-America/Santiago.generic.short=CLT
-America/Santiago.standard.short=CLT
-America/Santo_Domingo.daylight.short=ADT
-America/Santo_Domingo.generic.short=AT
-America/Santo_Domingo.standard.short=AST
-America/Sao_Paulo.daylight.short=BRST
-America/Sao_Paulo.generic.short=BRT
-America/Sao_Paulo.standard.short=BRT
-America/Scoresbysund.daylight.short=EGST
-America/Scoresbysund.generic.short=EGT
-America/Scoresbysund.standard.short=EGT
-America/Shiprock.daylight.short=MDT
-America/Shiprock.generic.short=MT
-America/Shiprock.standard.short=MST
-America/Sitka.daylight.short=AKDT
-America/Sitka.generic.short=AKT
-America/Sitka.standard.short=AKST
-America/St_Barthelemy.daylight.short=ADT
-America/St_Barthelemy.generic.short=AT
-America/St_Barthelemy.standard.short=AST
-America/St_Johns.daylight.short=NDT
-America/St_Johns.generic.short=NT
-America/St_Johns.standard.short=NST
-America/St_Kitts.daylight.short=ADT
-America/St_Kitts.generic.short=AT
-America/St_Kitts.standard.short=AST
-America/St_Lucia.daylight.short=ADT
-America/St_Lucia.generic.short=AT
-America/St_Lucia.standard.short=AST
-America/St_Thomas.daylight.short=ADT
-America/St_Thomas.generic.short=AT
-America/St_Thomas.standard.short=AST
-America/St_Vincent.daylight.short=ADT
-America/St_Vincent.generic.short=AT
-America/St_Vincent.standard.short=AST
-America/Swift_Current.daylight.short=CDT
-America/Swift_Current.generic.short=CT
-America/Swift_Current.standard.short=CST
-America/Tegucigalpa.daylight.short=CDT
-America/Tegucigalpa.generic.short=CT
-America/Tegucigalpa.standard.short=CST
-America/Thule.daylight.short=ADT
-America/Thule.generic.short=AT
-America/Thule.standard.short=AST
-America/Thunder_Bay.daylight.short=EDT
-America/Thunder_Bay.generic.short=ET
-America/Thunder_Bay.standard.short=EST
-America/Tijuana.daylight.short=PDT
-America/Tijuana.generic.short=PT
-America/Tijuana.standard.short=PST
-America/Toronto.daylight.short=EDT
-America/Toronto.generic.short=ET
-America/Toronto.standard.short=EST
-America/Tortola.daylight.short=ADT
-America/Tortola.generic.short=AT
-America/Tortola.standard.short=AST
-America/Vancouver.daylight.short=PDT
-America/Vancouver.generic.short=PT
-America/Vancouver.standard.short=PST
-America/Virgin.daylight.short=ADT
-America/Virgin.generic.short=AT
-America/Virgin.standard.short=AST
-America/Whitehorse.daylight.short=PDT
-America/Whitehorse.generic.short=PT
-America/Whitehorse.standard.short=PST
-America/Winnipeg.daylight.short=CDT
-America/Winnipeg.generic.short=CT
-America/Winnipeg.standard.short=CST
-America/Yakutat.daylight.short=AKDT
-America/Yakutat.generic.short=AKT
-America/Yakutat.standard.short=AKST
-America/Yellowknife.daylight.short=MDT
-America/Yellowknife.generic.short=MT
-America/Yellowknife.standard.short=MST
-Antarctica/Casey.daylight.short=WST
-Antarctica/Casey.generic.short=WT
-Antarctica/Casey.standard.short=WST
-Antarctica/Davis.daylight.short=DAVST
-Antarctica/Davis.generic.short=DAVT
-Antarctica/Davis.standard.short=DAVT
-Antarctica/DumontDUrville.daylight.short=DDUST
-Antarctica/DumontDUrville.generic.short=DDUT
-Antarctica/DumontDUrville.standard.short=DDUT
-Antarctica/Macquarie.daylight.short=MIST
-Antarctica/Macquarie.generic.short=MIST
-Antarctica/Macquarie.standard.short=MIST
-Antarctica/Mawson.daylight.short=MAWST
-Antarctica/Mawson.generic.short=MAWT
-Antarctica/Mawson.standard.short=MAWT
-Antarctica/McMurdo.daylight.short=NZDT
-Antarctica/McMurdo.generic.short=NZT
-Antarctica/McMurdo.standard.short=NZST
-Antarctica/Palmer.daylight.short=CLST
-Antarctica/Palmer.generic.short=CLT
-Antarctica/Palmer.standard.short=CLT
-Antarctica/Rothera.daylight.short=ROTST
-Antarctica/Rothera.generic.short=ROTT
-Antarctica/Rothera.standard.short=ROTT
-Antarctica/South_Pole.daylight.short=NZDT
-Antarctica/South_Pole.generic.short=NZT
-Antarctica/South_Pole.standard.short=NZST
-Antarctica/Syowa.daylight.short=SYOST
-Antarctica/Syowa.generic.short=SYOT
-Antarctica/Syowa.standard.short=SYOT
-Antarctica/Vostok.daylight.short=VOSST
-Antarctica/Vostok.generic.short=VOST
-Antarctica/Vostok.standard.short=VOST
-Arctic/Longyearbyen.daylight.short=CEST
-Arctic/Longyearbyen.generic.short=CET
-Arctic/Longyearbyen.standard.short=CET
-ART.daylight.short=EEST
-ART.generic.short=EET
-ART.standard.short=EET
-Asia/Aden.daylight.short=ADT
-Asia/Aden.generic.short=AT
-Asia/Aden.standard.short=AST
-Asia/Almaty.daylight.short=ALMST
-Asia/Almaty.generic.short=ALMT
-Asia/Almaty.standard.short=ALMT
-Asia/Amman.daylight.short=ADT
-Asia/Amman.generic.short=AT
-Asia/Amman.standard.short=AST
-Asia/Anadyr.daylight.short=ANAST
-Asia/Anadyr.generic.short=ANAT
-Asia/Anadyr.standard.short=ANAT
-Asia/Aqtau.daylight.short=AQTST
-Asia/Aqtau.generic.short=AQTT
-Asia/Aqtau.standard.short=AQTT
-Asia/Aqtobe.daylight.short=AQTST
-Asia/Aqtobe.generic.short=AQTT
-Asia/Aqtobe.standard.short=AQTT
-Asia/Ashgabat.daylight.short=TMST
-Asia/Ashgabat.generic.short=TMT
-Asia/Ashgabat.standard.short=TMT
-Asia/Ashkhabad.daylight.short=TMST
-Asia/Ashkhabad.generic.short=TMT
-Asia/Ashkhabad.standard.short=TMT
-Asia/Baghdad.daylight.short=ADT
-Asia/Baghdad.generic.short=AT
-Asia/Baghdad.standard.short=AST
-Asia/Bahrain.daylight.short=ADT
-Asia/Bahrain.generic.short=AT
-Asia/Bahrain.standard.short=AST
-Asia/Baku.daylight.short=AZST
-Asia/Baku.generic.short=AZT
-Asia/Baku.standard.short=AZT
-Asia/Bangkok.daylight.short=ICST
-Asia/Bangkok.generic.short=ICT
-Asia/Bangkok.standard.short=ICT
-Asia/Beirut.daylight.short=EEST
-Asia/Beirut.generic.short=EET
-Asia/Beirut.standard.short=EET
-Asia/Bishkek.daylight.short=KGST
-Asia/Bishkek.generic.short=KGT
-Asia/Bishkek.standard.short=KGT
-Asia/Brunei.daylight.short=BNST
-Asia/Brunei.generic.short=BNT
-Asia/Brunei.standard.short=BNT
-Asia/Calcutta.daylight.short=IDT
-Asia/Calcutta.generic.short=IT
-Asia/Calcutta.standard.short=IST
-Asia/Choibalsan.daylight.short=CHOST
-Asia/Choibalsan.generic.short=CHOT
-Asia/Choibalsan.standard.short=CHOT
-Asia/Chongqing.daylight.short=CDT
-Asia/Chongqing.generic.short=CT
-Asia/Chongqing.standard.short=CST
-Asia/Chungking.daylight.short=CDT
-Asia/Chungking.generic.short=CT
-Asia/Chungking.standard.short=CST
-Asia/Colombo.daylight.short=IDT
-Asia/Colombo.generic.short=IT
-Asia/Colombo.standard.short=IST
-Asia/Dacca.daylight.short=BDST
-Asia/Dacca.generic.short=BDT
-Asia/Dacca.standard.short=BDT
-Asia/Damascus.daylight.short=EEST
-Asia/Damascus.generic.short=EET
-Asia/Damascus.standard.short=EET
-Asia/Dhaka.daylight.short=BDST
-Asia/Dhaka.generic.short=BDT
-Asia/Dhaka.standard.short=BDT
-Asia/Dili.daylight.short=TLST
-Asia/Dili.generic.short=TLT
-Asia/Dili.standard.short=TLT
-Asia/Dubai.daylight.short=GDT
-Asia/Dubai.generic.short=GT
-Asia/Dubai.standard.short=GST
-Asia/Dushanbe.daylight.short=TJST
-Asia/Dushanbe.generic.short=TJT
-Asia/Dushanbe.standard.short=TJT
-Asia/Gaza.daylight.short=EEST
-Asia/Gaza.generic.short=EET
-Asia/Gaza.standard.short=EET
-Asia/Harbin.daylight.short=CDT
-Asia/Harbin.generic.short=CT
-Asia/Harbin.standard.short=CST
-Asia/Hebron.daylight.short=EEST
-Asia/Hebron.generic.short=EET
-Asia/Hebron.standard.short=EET
-Asia/Ho_Chi_Minh.daylight.short=ICST
-Asia/Ho_Chi_Minh.generic.short=ICT
-Asia/Ho_Chi_Minh.standard.short=ICT
-Asia/Hong_Kong.daylight.short=HKST
-Asia/Hong_Kong.generic.short=HKT
-Asia/Hong_Kong.standard.short=HKT
-Asia/Hovd.daylight.short=HOVST
-Asia/Hovd.generic.short=HOVT
-Asia/Hovd.standard.short=HOVT
-Asia/Irkutsk.daylight.short=IRKST
-Asia/Irkutsk.generic.short=IRKT
-Asia/Irkutsk.standard.short=IRKT
-Asia/Istanbul.daylight.short=EEST
-Asia/Istanbul.generic.short=EET
-Asia/Istanbul.standard.short=EET
-Asia/Jakarta.daylight.short=WIST
-Asia/Jakarta.generic.short=WIB
-Asia/Jakarta.standard.short=WIB
-Asia/Jayapura.daylight.short=EIST
-Asia/Jayapura.generic.short=WIT
-Asia/Jayapura.standard.short=WIT
-Asia/Jerusalem.daylight.short=IDT
-Asia/Jerusalem.generic.short=IT
-Asia/Jerusalem.standard.short=IST
-Asia/Kabul.daylight.short=AFST
-Asia/Kabul.generic.short=AFT
-Asia/Kabul.standard.short=AFT
-Asia/Kamchatka.daylight.short=PETST
-Asia/Kamchatka.generic.short=PETT
-Asia/Kamchatka.standard.short=PETT
-Asia/Karachi.daylight.short=PKST
-Asia/Karachi.generic.short=PKT
-Asia/Karachi.standard.short=PKT
-Asia/Kashgar.daylight.short=CDT
-Asia/Kashgar.generic.short=CT
-Asia/Kashgar.standard.short=CST
-Asia/Kathmandu.daylight.short=NPST
-Asia/Kathmandu.generic.short=NPT
-Asia/Kathmandu.standard.short=NPT
-Asia/Katmandu.daylight.short=NPST
-Asia/Katmandu.generic.short=NPT
-Asia/Katmandu.standard.short=NPT
-Asia/Khandyga.daylight.short=YAKST
-Asia/Khandyga.generic.short=YAKT
-Asia/Khandyga.standard.short=YAKT
-Asia/Kolkata.daylight.short=IDT
-Asia/Kolkata.generic.short=IT
-Asia/Kolkata.standard.short=IST
-Asia/Krasnoyarsk.daylight.short=KRAST
-Asia/Krasnoyarsk.generic.short=KRAT
-Asia/Krasnoyarsk.standard.short=KRAT
-Asia/Kuala_Lumpur.daylight.short=MYST
-Asia/Kuala_Lumpur.generic.short=MYT
-Asia/Kuala_Lumpur.standard.short=MYT
-Asia/Kuching.daylight.short=MYST
-Asia/Kuching.generic.short=MYT
-Asia/Kuching.standard.short=MYT
-Asia/Kuwait.daylight.short=ADT
-Asia/Kuwait.generic.short=AT
-Asia/Kuwait.standard.short=AST
-Asia/Macao.daylight.short=CDT
-Asia/Macao.generic.short=CT
-Asia/Macao.standard.short=CST
-Asia/Macau.daylight.short=CDT
-Asia/Macau.generic.short=CT
-Asia/Macau.standard.short=CST
-Asia/Magadan.daylight.short=MAGST
-Asia/Magadan.generic.short=MAGT
-Asia/Magadan.standard.short=MAGT
-Asia/Makassar.daylight.short=CIST
-Asia/Makassar.generic.short=WITA
-Asia/Makassar.standard.short=WITA
-Asia/Manila.daylight.short=PHST
-Asia/Manila.generic.short=PHT
-Asia/Manila.standard.short=PHT
-Asia/Muscat.daylight.short=GDT
-Asia/Muscat.generic.short=GT
-Asia/Muscat.standard.short=GST
-Asia/Nicosia.daylight.short=EEST
-Asia/Nicosia.generic.short=EET
-Asia/Nicosia.standard.short=EET
-Asia/Novokuznetsk.daylight.short=NOVST
-Asia/Novokuznetsk.generic.short=NOVT
-Asia/Novokuznetsk.standard.short=NOVT
-Asia/Novosibirsk.daylight.short=NOVST
-Asia/Novosibirsk.generic.short=NOVT
-Asia/Novosibirsk.standard.short=NOVT
-Asia/Omsk.daylight.short=OMSST
-Asia/Omsk.generic.short=OMST
-Asia/Omsk.standard.short=OMST
-Asia/Oral.daylight.short=ORAST
-Asia/Oral.generic.short=ORAT
-Asia/Oral.standard.short=ORAT
-Asia/Phnom_Penh.daylight.short=ICST
-Asia/Phnom_Penh.generic.short=ICT
-Asia/Phnom_Penh.standard.short=ICT
-Asia/Pontianak.daylight.short=WIST
-Asia/Pontianak.generic.short=WIB
-Asia/Pontianak.standard.short=WIB
-Asia/Pyongyang.daylight.short=KDT
-Asia/Pyongyang.generic.short=KT
-Asia/Pyongyang.standard.short=KST
-Asia/Qatar.daylight.short=ADT
-Asia/Qatar.generic.short=AT
-Asia/Qatar.standard.short=AST
-Asia/Qyzylorda.daylight.short=QYZST
-Asia/Qyzylorda.generic.short=QYZT
-Asia/Qyzylorda.standard.short=QYZT
-Asia/Rangoon.daylight.short=MMST
-Asia/Rangoon.generic.short=MMT
-Asia/Rangoon.standard.short=MMT
-Asia/Saigon.daylight.short=ICST
-Asia/Saigon.generic.short=ICT
-Asia/Saigon.standard.short=ICT
-Asia/Sakhalin.daylight.short=SAKST
-Asia/Sakhalin.generic.short=SAKT
-Asia/Sakhalin.standard.short=SAKT
-Asia/Samarkand.daylight.short=UZST
-Asia/Samarkand.generic.short=UZT
-Asia/Samarkand.standard.short=UZT
-Asia/Seoul.daylight.short=KDT
-Asia/Seoul.generic.short=KT
-Asia/Seoul.standard.short=KST
-Asia/Shanghai.daylight.short=CDT
-Asia/Shanghai.generic.short=CT
-Asia/Shanghai.standard.short=CST
-Asia/Singapore.daylight.short=SGST
-Asia/Singapore.generic.short=SGT
-Asia/Singapore.standard.short=SGT
-Asia/Taipei.daylight.short=CDT
-Asia/Taipei.generic.short=CT
-Asia/Taipei.standard.short=CST
-Asia/Tashkent.daylight.short=UZST
-Asia/Tashkent.generic.short=UZT
-Asia/Tashkent.standard.short=UZT
-Asia/Tbilisi.daylight.short=GEST
-Asia/Tbilisi.generic.short=GET
-Asia/Tbilisi.standard.short=GET
-Asia/Tehran.daylight.short=IRDT
-Asia/Tehran.generic.short=IRT
-Asia/Tehran.standard.short=IRST
-Asia/Tel_Aviv.daylight.short=IDT
-Asia/Tel_Aviv.generic.short=IT
-Asia/Tel_Aviv.standard.short=IST
-Asia/Thimbu.daylight.short=BTST
-Asia/Thimbu.generic.short=BTT
-Asia/Thimbu.standard.short=BTT
-Asia/Thimphu.daylight.short=BTST
-Asia/Thimphu.generic.short=BTT
-Asia/Thimphu.standard.short=BTT
-Asia/Tokyo.daylight.short=JDT
-Asia/Tokyo.generic.short=JT
-Asia/Tokyo.standard.short=JST
-Asia/Ujung_Pandang.daylight.short=CIST
-Asia/Ujung_Pandang.generic.short=WITA
-Asia/Ujung_Pandang.standard.short=WITA
-Asia/Ulaanbaatar.daylight.short=ULAST
-Asia/Ulaanbaatar.generic.short=ULAT
-Asia/Ulaanbaatar.standard.short=ULAT
-Asia/Ulan_Bator.daylight.short=ULAST
-Asia/Ulan_Bator.generic.short=ULAT
-Asia/Ulan_Bator.standard.short=ULAT
-Asia/Urumqi.daylight.short=CDT
-Asia/Urumqi.generic.short=CT
-Asia/Urumqi.standard.short=CST
-Asia/Ust-Nera.daylight.short=VLAST
-Asia/Ust-Nera.generic.short=VLAT
-Asia/Ust-Nera.standard.short=VLAT
-Asia/Vientiane.daylight.short=ICST
-Asia/Vientiane.generic.short=ICT
-Asia/Vientiane.standard.short=ICT
-Asia/Vladivostok.daylight.short=VLAST
-Asia/Vladivostok.generic.short=VLAT
-Asia/Vladivostok.standard.short=VLAT
-Asia/Yakutsk.daylight.short=YAKST
-Asia/Yakutsk.generic.short=YAKT
-Asia/Yakutsk.standard.short=YAKT
-Asia/Yekaterinburg.daylight.short=YEKST
-Asia/Yekaterinburg.generic.short=YEKT
-Asia/Yekaterinburg.standard.short=YEKT
-Asia/Yerevan.daylight.short=AMST
-Asia/Yerevan.generic.short=AMT
-Asia/Yerevan.standard.short=AMT
-AST.daylight.short=AKDT
-AST.generic.short=AKT
-AST.standard.short=AKST
-Atlantic/Azores.daylight.short=AZOST
-Atlantic/Azores.generic.short=AZOT
-Atlantic/Azores.standard.short=AZOT
-Atlantic/Bermuda.daylight.short=ADT
-Atlantic/Bermuda.generic.short=AT
-Atlantic/Bermuda.standard.short=AST
-Atlantic/Canary.daylight.short=WEST
-Atlantic/Canary.generic.short=WET
-Atlantic/Canary.standard.short=WET
-Atlantic/Cape_Verde.daylight.short=CVST
-Atlantic/Cape_Verde.generic.short=CVT
-Atlantic/Cape_Verde.standard.short=CVT
-Atlantic/Faeroe.daylight.short=WEST
-Atlantic/Faeroe.generic.short=WET
-Atlantic/Faeroe.standard.short=WET
-Atlantic/Faroe.daylight.short=WEST
-Atlantic/Faroe.generic.short=WET
-Atlantic/Faroe.standard.short=WET
-Atlantic/Jan_Mayen.daylight.short=CEST
-Atlantic/Jan_Mayen.generic.short=CET
-Atlantic/Jan_Mayen.standard.short=CET
-Atlantic/Madeira.daylight.short=WEST
-Atlantic/Madeira.generic.short=WET
-Atlantic/Madeira.standard.short=WET
-Atlantic/Reykjavik.daylight.short=GMT
-Atlantic/Reykjavik.generic.short=GMT
-Atlantic/Reykjavik.standard.short=GMT
-Atlantic/South_Georgia.daylight.short=GDT
-Atlantic/South_Georgia.generic.short=GT
-Atlantic/South_Georgia.standard.short=GST
-Atlantic/Stanley.daylight.short=FKST
-Atlantic/Stanley.generic.short=FKT
-Atlantic/Stanley.standard.short=FKT
-Atlantic/St_Helena.daylight.short=GMT
-Atlantic/St_Helena.generic.short=GMT
-Atlantic/St_Helena.standard.short=GMT
-Australia/ACT.daylight.short=EST
-Australia/ACT.generic.short=ET
-Australia/ACT.standard.short=EST
-Australia/Adelaide.daylight.short=CST
-Australia/Adelaide.generic.short=CT
-Australia/Adelaide.standard.short=CST
-Australia/Brisbane.daylight.short=EST
-Australia/Brisbane.generic.short=ET
-Australia/Brisbane.standard.short=EST
-Australia/Broken_Hill.daylight.short=CST
-Australia/Broken_Hill.generic.short=CT
-Australia/Broken_Hill.standard.short=CST
-Australia/Canberra.daylight.short=EST
-Australia/Canberra.generic.short=ET
-Australia/Canberra.standard.short=EST
-Australia/Currie.daylight.short=EST
-Australia/Currie.generic.short=ET
-Australia/Currie.standard.short=EST
-Australia/Darwin.daylight.short=CST
-Australia/Darwin.generic.short=CT
-Australia/Darwin.standard.short=CST
-Australia/Eucla.daylight.short=CWST
-Australia/Eucla.generic.short=CWT
-Australia/Eucla.standard.short=CWST
-Australia/Hobart.daylight.short=EST
-Australia/Hobart.generic.short=ET
-Australia/Hobart.standard.short=EST
-Australia/LHI.daylight.short=LHST
-Australia/LHI.generic.short=LHT
-Australia/LHI.standard.short=LHST
-Australia/Lindeman.daylight.short=EST
-Australia/Lindeman.generic.short=ET
-Australia/Lindeman.standard.short=EST
-Australia/Lord_Howe.daylight.short=LHST
-Australia/Lord_Howe.generic.short=LHT
-Australia/Lord_Howe.standard.short=LHST
-Australia/Melbourne.daylight.short=EST
-Australia/Melbourne.generic.short=ET
-Australia/Melbourne.standard.short=EST
-Australia/North.daylight.short=CST
-Australia/North.generic.short=CT
-Australia/North.standard.short=CST
-Australia/NSW.daylight.short=EST
-Australia/NSW.generic.short=ET
-Australia/NSW.standard.short=EST
-Australia/Perth.daylight.short=WST
-Australia/Perth.generic.short=WT
-Australia/Perth.standard.short=WST
-Australia/Queensland.daylight.short=EST
-Australia/Queensland.generic.short=ET
-Australia/Queensland.standard.short=EST
-Australia/South.daylight.short=CST
-Australia/South.generic.short=CT
-Australia/South.standard.short=CST
-Australia/Sydney.daylight.short=EST
-Australia/Sydney.generic.short=ET
-Australia/Sydney.standard.short=EST
-Australia/Tasmania.daylight.short=EST
-Australia/Tasmania.generic.short=ET
-Australia/Tasmania.standard.short=EST
-Australia/Victoria.daylight.short=EST
-Australia/Victoria.generic.short=ET
-Australia/Victoria.standard.short=EST
-Australia/West.daylight.short=WST
-Australia/West.generic.short=WT
-Australia/West.standard.short=WST
-Australia/Yancowinna.daylight.short=CST
-Australia/Yancowinna.generic.short=CT
-Australia/Yancowinna.standard.short=CST
-BET.daylight.short=BRST
-BET.generic.short=BRT
-BET.standard.short=BRT
-Brazil/Acre.daylight.short=ACST
-Brazil/Acre.generic.short=ACT
-Brazil/Acre.standard.short=ACT
-Brazil/DeNoronha.daylight.short=FNST
-Brazil/DeNoronha.generic.short=FNT
-Brazil/DeNoronha.standard.short=FNT
-Brazil/East.daylight.short=BRST
-Brazil/East.generic.short=BRT
-Brazil/East.standard.short=BRT
-Brazil/West.daylight.short=AMST
-Brazil/West.generic.short=AMT
-Brazil/West.standard.short=AMT
-BST.daylight.short=BDST
-BST.generic.short=BDT
-BST.standard.short=BDT
-Canada/Atlantic.daylight.short=ADT
-Canada/Atlantic.generic.short=AT
-Canada/Atlantic.standard.short=AST
-Canada/Central.daylight.short=CDT
-Canada/Central.generic.short=CT
-Canada/Central.standard.short=CST
-Canada/Eastern.daylight.short=EDT
-Canada/Eastern.generic.short=ET
-Canada/Eastern.standard.short=EST
-Canada/East-Saskatchewan.daylight.short=CDT
-Canada/East-Saskatchewan.generic.short=CT
-Canada/East-Saskatchewan.standard.short=CST
-Canada/Mountain.daylight.short=MDT
-Canada/Mountain.generic.short=MT
-Canada/Mountain.standard.short=MST
-Canada/Newfoundland.daylight.short=NDT
-Canada/Newfoundland.generic.short=NT
-Canada/Newfoundland.standard.short=NST
-Canada/Pacific.daylight.short=PDT
-Canada/Pacific.generic.short=PT
-Canada/Pacific.standard.short=PST
-Canada/Saskatchewan.daylight.short=CDT
-Canada/Saskatchewan.generic.short=CT
-Canada/Saskatchewan.standard.short=CST
-Canada/Yukon.daylight.short=PDT
-Canada/Yukon.generic.short=PT
-Canada/Yukon.standard.short=PST
-CAT.daylight.short=CAST
-CAT.generic.short=CAT
-CAT.standard.short=CAT
-CET.daylight.short=CEST
-CET.generic.short=CET
-CET.standard.short=CET
-Chile/Continental.daylight.short=CLST
-Chile/Continental.generic.short=CLT
-Chile/Continental.standard.short=CLT
-Chile/EasterIsland.daylight.short=EASST
-Chile/EasterIsland.generic.short=EAST
-Chile/EasterIsland.standard.short=EAST
-CNT.daylight.short=NDT
-CNT.generic.short=NT
-CNT.standard.short=NST
-CST6CDT.daylight.short=CDT
-CST6CDT.generic.short=CT
-CST6CDT.standard.short=CST
-CST.daylight.short=CDT
-CST.generic.short=CT
-CST.standard.short=CST
-CTT.daylight.short=CDT
-CTT.generic.short=CT
-CTT.standard.short=CST
-Cuba.daylight.short=CDT
-Cuba.generic.short=CT
-Cuba.standard.short=CST
-EAT.daylight.short=EAST
-EAT.generic.short=EAT
-EAT.standard.short=EAT
-ECT.daylight.short=CEST
-ECT.generic.short=CET
-ECT.standard.short=CET
-EET.daylight.short=EEST
-EET.generic.short=EET
-EET.standard.short=EET
-Egypt.daylight.short=EEST
-Egypt.generic.short=EET
-Egypt.standard.short=EET
-Eire.daylight.short=IST
-Eire.generic.short=IT
-Eire.standard.short=GMT
-EST5EDT.daylight.short=EDT
-EST5EDT.generic.short=ET
-EST5EDT.standard.short=EST
-EST.daylight.short=EDT
-EST.generic.short=ET
-EST.standard.short=EST
-Etc/Greenwich.daylight.short=GMT
-Etc/Greenwich.generic.short=GMT
-Etc/Greenwich.standard.short=GMT
-Etc/UCT.daylight.short=UTC
-Etc/UCT.generic.short=UTC
-Etc/UCT.standard.short=UTC
-Etc/Universal.daylight.short=UTC
-Etc/Universal.generic.short=UTC
-Etc/Universal.standard.short=UTC
-Etc/UTC.daylight.short=UTC
-Etc/UTC.generic.short=UTC
-Etc/UTC.standard.short=UTC
-Etc/Zulu.daylight.short=UTC
-Etc/Zulu.generic.short=UTC
-Etc/Zulu.standard.short=UTC
-Europe/Amsterdam.daylight.short=CEST
-Europe/Amsterdam.generic.short=CET
-Europe/Amsterdam.standard.short=CET
-Europe/Andorra.daylight.short=CEST
-Europe/Andorra.generic.short=CET
-Europe/Andorra.standard.short=CET
-Europe/Athens.daylight.short=EEST
-Europe/Athens.generic.short=EET
-Europe/Athens.standard.short=EET
-Europe/Belfast.daylight.short=BST
-Europe/Belfast.generic.short=BT
-Europe/Belfast.standard.short=GMT
-Europe/Belgrade.daylight.short=CEST
-Europe/Belgrade.generic.short=CET
-Europe/Belgrade.standard.short=CET
-Europe/Berlin.daylight.short=CEST
-Europe/Berlin.generic.short=CET
-Europe/Berlin.standard.short=CET
-Europe/Bratislava.daylight.short=CEST
-Europe/Bratislava.generic.short=CET
-Europe/Bratislava.standard.short=CET
-Europe/Brussels.daylight.short=CEST
-Europe/Brussels.generic.short=CET
-Europe/Brussels.standard.short=CET
-Europe/Bucharest.daylight.short=EEST
-Europe/Bucharest.generic.short=EET
-Europe/Bucharest.standard.short=EET
-Europe/Budapest.daylight.short=CEST
-Europe/Budapest.generic.short=CET
-Europe/Budapest.standard.short=CET
-Europe/Busingen.daylight.short=CEST
-Europe/Busingen.generic.short=CET
-Europe/Busingen.standard.short=CET
-Europe/Chisinau.daylight.short=EEST
-Europe/Chisinau.generic.short=EET
-Europe/Chisinau.standard.short=EET
-Europe/Copenhagen.daylight.short=CEST
-Europe/Copenhagen.generic.short=CET
-Europe/Copenhagen.standard.short=CET
-Europe/Dublin.daylight.short=IST
-Europe/Dublin.generic.short=IT
-Europe/Dublin.standard.short=GMT
-Europe/Gibraltar.daylight.short=CEST
-Europe/Gibraltar.generic.short=CET
-Europe/Gibraltar.standard.short=CET
-Europe/Guernsey.daylight.short=BST
-Europe/Guernsey.generic.short=BT
-Europe/Guernsey.standard.short=GMT
-Europe/Helsinki.daylight.short=EEST
-Europe/Helsinki.generic.short=EET
-Europe/Helsinki.standard.short=EET
-Europe/Isle_of_Man.daylight.short=BST
-Europe/Isle_of_Man.generic.short=BT
-Europe/Isle_of_Man.standard.short=GMT
-Europe/Istanbul.daylight.short=EEST
-Europe/Istanbul.generic.short=EET
-Europe/Istanbul.standard.short=EET
-Europe/Jersey.daylight.short=BST
-Europe/Jersey.generic.short=BT
-Europe/Jersey.standard.short=GMT
-Europe/Kaliningrad.daylight.short=FEST
-Europe/Kaliningrad.generic.short=FET
-Europe/Kaliningrad.standard.short=FET
-Europe/Kiev.daylight.short=EEST
-Europe/Kiev.generic.short=EET
-Europe/Kiev.standard.short=EET
-Europe/Lisbon.daylight.short=WEST
-Europe/Lisbon.generic.short=WET
-Europe/Lisbon.standard.short=WET
-Europe/Ljubljana.daylight.short=CEST
-Europe/Ljubljana.generic.short=CET
-Europe/Ljubljana.standard.short=CET
-Europe/London.daylight.short=BST
-Europe/London.generic.short=BT
-Europe/London.standard.short=GMT
-Europe/Luxembourg.daylight.short=CEST
-Europe/Luxembourg.generic.short=CET
-Europe/Luxembourg.standard.short=CET
-Europe/Madrid.daylight.short=CEST
-Europe/Madrid.generic.short=CET
-Europe/Madrid.standard.short=CET
-Europe/Malta.daylight.short=CEST
-Europe/Malta.generic.short=CET
-Europe/Malta.standard.short=CET
-Europe/Mariehamn.daylight.short=EEST
-Europe/Mariehamn.generic.short=EET
-Europe/Mariehamn.standard.short=EET
-Europe/Minsk.daylight.short=FEST
-Europe/Minsk.generic.short=FET
-Europe/Minsk.standard.short=FET
-Europe/Monaco.daylight.short=CEST
-Europe/Monaco.generic.short=CET
-Europe/Monaco.standard.short=CET
-Europe/Moscow.daylight.short=MSD
-Europe/Moscow.generic.short=MT
-Europe/Moscow.standard.short=MSK
-Europe/Nicosia.daylight.short=EEST
-Europe/Nicosia.generic.short=EET
-Europe/Nicosia.standard.short=EET
-Europe/Oslo.daylight.short=CEST
-Europe/Oslo.generic.short=CET
-Europe/Oslo.standard.short=CET
-Europe/Paris.daylight.short=CEST
-Europe/Paris.generic.short=CET
-Europe/Paris.standard.short=CET
-Europe/Podgorica.daylight.short=CEST
-Europe/Podgorica.generic.short=CET
-Europe/Podgorica.standard.short=CET
-Europe/Prague.daylight.short=CEST
-Europe/Prague.generic.short=CET
-Europe/Prague.standard.short=CET
-Europe/Riga.daylight.short=EEST
-Europe/Riga.generic.short=EET
-Europe/Riga.standard.short=EET
-Europe/Rome.daylight.short=CEST
-Europe/Rome.generic.short=CET
-Europe/Rome.standard.short=CET
-Europe/Samara.daylight.short=SAMST
-Europe/Samara.generic.short=SAMT
-Europe/Samara.standard.short=SAMT
-Europe/San_Marino.daylight.short=CEST
-Europe/San_Marino.generic.short=CET
-Europe/San_Marino.standard.short=CET
-Europe/Sarajevo.daylight.short=CEST
-Europe/Sarajevo.generic.short=CET
-Europe/Sarajevo.standard.short=CET
-Europe/Simferopol.daylight.short=EEST
-Europe/Simferopol.generic.short=EET
-Europe/Simferopol.standard.short=EET
-Europe/Skopje.daylight.short=CEST
-Europe/Skopje.generic.short=CET
-Europe/Skopje.standard.short=CET
-Europe/Sofia.daylight.short=EEST
-Europe/Sofia.generic.short=EET
-Europe/Sofia.standard.short=EET
-Europe/Stockholm.daylight.short=CEST
-Europe/Stockholm.generic.short=CET
-Europe/Stockholm.standard.short=CET
-Europe/Tallinn.daylight.short=EEST
-Europe/Tallinn.generic.short=EET
-Europe/Tallinn.standard.short=EET
-Europe/Tirane.daylight.short=CEST
-Europe/Tirane.generic.short=CET
-Europe/Tirane.standard.short=CET
-Europe/Tiraspol.daylight.short=EEST
-Europe/Tiraspol.generic.short=EET
-Europe/Tiraspol.standard.short=EET
-Europe/Uzhgorod.daylight.short=EEST
-Europe/Uzhgorod.generic.short=EET
-Europe/Uzhgorod.standard.short=EET
-Europe/Vaduz.daylight.short=CEST
-Europe/Vaduz.generic.short=CET
-Europe/Vaduz.standard.short=CET
-Europe/Vatican.daylight.short=CEST
-Europe/Vatican.generic.short=CET
-Europe/Vatican.standard.short=CET
-Europe/Vienna.daylight.short=CEST
-Europe/Vienna.generic.short=CET
-Europe/Vienna.standard.short=CET
-Europe/Vilnius.daylight.short=EEST
-Europe/Vilnius.generic.short=EET
-Europe/Vilnius.standard.short=EET
-Europe/Volgograd.daylight.short=VOLST
-Europe/Volgograd.generic.short=VOLT
-Europe/Volgograd.standard.short=VOLT
-Europe/Warsaw.daylight.short=CEST
-Europe/Warsaw.generic.short=CET
-Europe/Warsaw.standard.short=CET
-Europe/Zagreb.daylight.short=CEST
-Europe/Zagreb.generic.short=CET
-Europe/Zagreb.standard.short=CET
-Europe/Zaporozhye.daylight.short=EEST
-Europe/Zaporozhye.generic.short=EET
-Europe/Zaporozhye.standard.short=EET
-Europe/Zurich.daylight.short=CEST
-Europe/Zurich.generic.short=CET
-Europe/Zurich.standard.short=CET
-GB.daylight.short=BST
-GB-Eire.daylight.short=BST
-GB-Eire.generic.short=BT
-GB-Eire.standard.short=GMT
-GB.generic.short=BT
-GB.standard.short=GMT
-GMT.daylight.short=GMT
-GMT.generic.short=GMT
-GMT.standard.short=GMT
-Greenwich.daylight.short=GMT
-Greenwich.generic.short=GMT
-Greenwich.standard.short=GMT
-Hongkong.daylight.short=HKST
-Hongkong.generic.short=HKT
-Hongkong.standard.short=HKT
-HST.daylight.short=HDT
-HST.generic.short=HT
-HST.standard.short=HST
-Iceland.daylight.short=GMT
-Iceland.generic.short=GMT
-Iceland.standard.short=GMT
-IET.daylight.short=EDT
-IET.generic.short=ET
-IET.standard.short=EST
-Indian/Antananarivo.daylight.short=EAST
-Indian/Antananarivo.generic.short=EAT
-Indian/Antananarivo.standard.short=EAT
-Indian/Chagos.daylight.short=IOST
-Indian/Chagos.generic.short=IOT
-Indian/Chagos.standard.short=IOT
-Indian/Christmas.daylight.short=CXST
-Indian/Christmas.generic.short=CIT
-Indian/Christmas.standard.short=CXT
-Indian/Cocos.daylight.short=CCST
-Indian/Cocos.generic.short=CCT
-Indian/Cocos.standard.short=CCT
-Indian/Comoro.daylight.short=EAST
-Indian/Comoro.generic.short=EAT
-Indian/Comoro.standard.short=EAT
-Indian/Kerguelen.daylight.short=TFST
-Indian/Kerguelen.generic.short=TFT
-Indian/Kerguelen.standard.short=TFT
-Indian/Mahe.daylight.short=SCST
-Indian/Mahe.generic.short=SCT
-Indian/Mahe.standard.short=SCT
-Indian/Maldives.daylight.short=MVST
-Indian/Maldives.generic.short=MVT
-Indian/Maldives.standard.short=MVT
-Indian/Mauritius.daylight.short=MUST
-Indian/Mauritius.generic.short=MUT
-Indian/Mauritius.standard.short=MUT
-Indian/Mayotte.daylight.short=EAST
-Indian/Mayotte.generic.short=EAT
-Indian/Mayotte.standard.short=EAT
-Indian/Reunion.daylight.short=REST
-Indian/Reunion.generic.short=RET
-Indian/Reunion.standard.short=RET
-Iran.daylight.short=IRDT
-Iran.generic.short=IRT
-Iran.standard.short=IRST
-Israel.daylight.short=IDT
-Israel.generic.short=IT
-Israel.standard.short=IST
-IST.daylight.short=IDT
-IST.generic.short=IT
-IST.standard.short=IST
-Jamaica.daylight.short=EDT
-Jamaica.generic.short=ET
-Jamaica.standard.short=EST
-Japan.daylight.short=JDT
-Japan.generic.short=JT
-Japan.standard.short=JST
-JST.daylight.short=JDT
-JST.generic.short=JT
-JST.standard.short=JST
-Kwajalein.daylight.short=MHST
-Kwajalein.generic.short=MHT
-Kwajalein.standard.short=MHT
-Libya.daylight.short=EEST
-Libya.generic.short=EET
-Libya.standard.short=EET
-MET.daylight.short=MEST
-MET.generic.short=MET
-MET.standard.short=MET
-Mexico/BajaNorte.daylight.short=PDT
-Mexico/BajaNorte.generic.short=PT
-Mexico/BajaNorte.standard.short=PST
-Mexico/BajaSur.daylight.short=MDT
-Mexico/BajaSur.generic.short=MT
-Mexico/BajaSur.standard.short=MST
-Mexico/General.daylight.short=CDT
-Mexico/General.generic.short=CT
-Mexico/General.standard.short=CST
-MIT.daylight.short=WSDT
-MIT.generic.short=WST
-MIT.standard.short=WST
-MST7MDT.daylight.short=MDT
-MST7MDT.generic.short=MT
-MST7MDT.standard.short=MST
-MST.daylight.short=MDT
-MST.generic.short=MT
-MST.standard.short=MST
-Navajo.daylight.short=MDT
-Navajo.generic.short=MT
-Navajo.standard.short=MST
-NET.daylight.short=AMST
-NET.generic.short=AMT
-NET.standard.short=AMT
-NST.daylight.short=NZDT
-NST.generic.short=NZT
-NST.standard.short=NZST
-NZ-CHAT.daylight.short=CHADT
-NZ-CHAT.generic.short=CHAT
-NZ-CHAT.standard.short=CHAST
-NZ.daylight.short=NZDT
-NZ.generic.short=NZT
-NZ.standard.short=NZST
-Pacific/Apia.daylight.short=WSDT
-Pacific/Apia.generic.short=WST
-Pacific/Apia.standard.short=WST
-Pacific/Auckland.daylight.short=NZDT
-Pacific/Auckland.generic.short=NZT
-Pacific/Auckland.standard.short=NZST
-Pacific/Chatham.daylight.short=CHADT
-Pacific/Chatham.generic.short=CHAT
-Pacific/Chatham.standard.short=CHAST
-Pacific/Chuuk.daylight.short=CHUST
-Pacific/Chuuk.generic.short=CHUT
-Pacific/Chuuk.standard.short=CHUT
-Pacific/Easter.daylight.short=EASST
-Pacific/Easter.generic.short=EAST
-Pacific/Easter.standard.short=EAST
-Pacific/Efate.daylight.short=VUST
-Pacific/Efate.generic.short=VUT
-Pacific/Efate.standard.short=VUT
-Pacific/Enderbury.daylight.short=PHOST
-Pacific/Enderbury.generic.short=PHOT
-Pacific/Enderbury.standard.short=PHOT
-Pacific/Fakaofo.daylight.short=TKST
-Pacific/Fakaofo.generic.short=TKT
-Pacific/Fakaofo.standard.short=TKT
-Pacific/Fiji.daylight.short=FJST
-Pacific/Fiji.generic.short=FJT
-Pacific/Fiji.standard.short=FJT
-Pacific/Funafuti.daylight.short=TVST
-Pacific/Funafuti.generic.short=TVT
-Pacific/Funafuti.standard.short=TVT
-Pacific/Galapagos.daylight.short=GALST
-Pacific/Galapagos.generic.short=GALT
-Pacific/Galapagos.standard.short=GALT
-Pacific/Gambier.daylight.short=GAMST
-Pacific/Gambier.generic.short=GAMT
-Pacific/Gambier.standard.short=GAMT
-Pacific/Guadalcanal.daylight.short=SBST
-Pacific/Guadalcanal.generic.short=SBT
-Pacific/Guadalcanal.standard.short=SBT
-Pacific/Guam.daylight.short=ChDT
-Pacific/Guam.generic.short=ChT
-Pacific/Guam.standard.short=ChST
-Pacific/Honolulu.daylight.short=HDT
-Pacific/Honolulu.generic.short=HT
-Pacific/Honolulu.standard.short=HST
-Pacific/Johnston.daylight.short=HDT
-Pacific/Johnston.generic.short=HT
-Pacific/Johnston.standard.short=HST
-Pacific/Kiritimati.daylight.short=LINST
-Pacific/Kiritimati.generic.short=LINT
-Pacific/Kiritimati.standard.short=LINT
-Pacific/Kosrae.daylight.short=KOSST
-Pacific/Kosrae.generic.short=KOST
-Pacific/Kosrae.standard.short=KOST
-Pacific/Kwajalein.daylight.short=MHST
-Pacific/Kwajalein.generic.short=MHT
-Pacific/Kwajalein.standard.short=MHT
-Pacific/Majuro.daylight.short=MHST
-Pacific/Majuro.generic.short=MHT
-Pacific/Majuro.standard.short=MHT
-Pacific/Marquesas.daylight.short=MARST
-Pacific/Marquesas.generic.short=MART
-Pacific/Marquesas.standard.short=MART
-Pacific/Midway.daylight.short=SDT
-Pacific/Midway.generic.short=ST
-Pacific/Midway.standard.short=SST
-Pacific/Nauru.daylight.short=NRST
-Pacific/Nauru.generic.short=NRT
-Pacific/Nauru.standard.short=NRT
-Pacific/Niue.daylight.short=NUST
-Pacific/Niue.generic.short=NUT
-Pacific/Niue.standard.short=NUT
-Pacific/Norfolk.daylight.short=NFST
-Pacific/Norfolk.generic.short=NFT
-Pacific/Norfolk.standard.short=NFT
-Pacific/Noumea.daylight.short=NCST
-Pacific/Noumea.generic.short=NCT
-Pacific/Noumea.standard.short=NCT
-Pacific/Pago_Pago.daylight.short=SDT
-Pacific/Pago_Pago.generic.short=ST
-Pacific/Pago_Pago.standard.short=SST
-Pacific/Palau.daylight.short=PWST
-Pacific/Palau.generic.short=PWT
-Pacific/Palau.standard.short=PWT
-Pacific/Pitcairn.daylight.short=PDT
-Pacific/Pitcairn.generic.short=PT
-Pacific/Pitcairn.standard.short=PST
-Pacific/Pohnpei.daylight.short=PONST
-Pacific/Pohnpei.generic.short=PONT
-Pacific/Pohnpei.standard.short=PONT
-Pacific/Ponape.daylight.short=PONST
-Pacific/Ponape.generic.short=PONT
-Pacific/Ponape.standard.short=PONT
-Pacific/Port_Moresby.daylight.short=PGST
-Pacific/Port_Moresby.generic.short=PGT
-Pacific/Port_Moresby.standard.short=PGT
-Pacific/Rarotonga.daylight.short=CKHST
-Pacific/Rarotonga.generic.short=CKT
-Pacific/Rarotonga.standard.short=CKT
-Pacific/Saipan.daylight.short=ChDT
-Pacific/Saipan.generic.short=ChT
-Pacific/Saipan.standard.short=ChST
-Pacific/Samoa.daylight.short=SDT
-Pacific/Samoa.generic.short=ST
-Pacific/Samoa.standard.short=SST
-Pacific/Tahiti.daylight.short=TAHST
-Pacific/Tahiti.generic.short=TAHT
-Pacific/Tahiti.standard.short=TAHT
-Pacific/Tarawa.daylight.short=GILST
-Pacific/Tarawa.generic.short=GILT
-Pacific/Tarawa.standard.short=GILT
-Pacific/Tongatapu.daylight.short=TOST
-Pacific/Tongatapu.generic.short=TOT
-Pacific/Tongatapu.standard.short=TOT
-Pacific/Truk.daylight.short=CHUST
-Pacific/Truk.generic.short=CHUT
-Pacific/Truk.standard.short=CHUT
-Pacific/Wake.daylight.short=WAKST
-Pacific/Wake.generic.short=WAKT
-Pacific/Wake.standard.short=WAKT
-Pacific/Wallis.daylight.short=WFST
-Pacific/Wallis.generic.short=WFT
-Pacific/Wallis.standard.short=WFT
-Pacific/Yap.daylight.short=CHUST
-Pacific/Yap.generic.short=CHUT
-Pacific/Yap.standard.short=CHUT
-PLT.daylight.short=PKST
-PLT.generic.short=PKT
-PLT.standard.short=PKT
-PNT.daylight.short=MDT
-PNT.generic.short=MT
-PNT.standard.short=MST
-Poland.daylight.short=CEST
-Poland.generic.short=CET
-Poland.standard.short=CET
-Portugal.daylight.short=WEST
-Portugal.generic.short=WET
-Portugal.standard.short=WET
-PRC.daylight.short=CDT
-PRC.generic.short=CT
-PRC.standard.short=CST
-PRT.daylight.short=ADT
-PRT.generic.short=AT
-PRT.standard.short=AST
-PST8PDT.daylight.short=PDT
-PST8PDT.generic.short=PT
-PST8PDT.standard.short=PST
-PST.daylight.short=PDT
-PST.generic.short=PT
-PST.standard.short=PST
-ROK.daylight.short=KDT
-ROK.generic.short=KT
-ROK.standard.short=KST
-Singapore.daylight.short=SGST
-Singapore.generic.short=SGT
-Singapore.standard.short=SGT
-SST.daylight.short=SBST
-SST.generic.short=SBT
-SST.standard.short=SBT
-SystemV/AST4ADT.daylight.short=ADT
-SystemV/AST4ADT.generic.short=AT
-SystemV/AST4ADT.standard.short=AST
-SystemV/AST4.daylight.short=ADT
-SystemV/AST4.generic.short=AT
-SystemV/AST4.standard.short=AST
-SystemV/CST6CDT.daylight.short=CDT
-SystemV/CST6CDT.generic.short=CT
-SystemV/CST6CDT.standard.short=CST
-SystemV/CST6.daylight.short=CDT
-SystemV/CST6.generic.short=CT
-SystemV/CST6.standard.short=CST
-SystemV/EST5.daylight.short=EDT
-SystemV/EST5EDT.daylight.short=EDT
-SystemV/EST5EDT.generic.short=ET
-SystemV/EST5EDT.standard.short=EST
-SystemV/EST5.generic.short=ET
-SystemV/EST5.standard.short=EST
-SystemV/HST10.daylight.short=HDT
-SystemV/HST10.generic.short=HT
-SystemV/HST10.standard.short=HST
-SystemV/MST7.daylight.short=MDT
-SystemV/MST7.generic.short=MT
-SystemV/MST7MDT.daylight.short=MDT
-SystemV/MST7MDT.generic.short=MT
-SystemV/MST7MDT.standard.short=MST
-SystemV/MST7.standard.short=MST
-SystemV/PST8.daylight.short=PDT
-SystemV/PST8.generic.short=PT
-SystemV/PST8PDT.daylight.short=PDT
-SystemV/PST8PDT.generic.short=PT
-SystemV/PST8PDT.standard.short=PST
-SystemV/PST8.standard.short=PST
-SystemV/YST9.daylight.short=AKDT
-SystemV/YST9.generic.short=AKT
-SystemV/YST9.standard.short=AKST
-SystemV/YST9YDT.daylight.short=AKDT
-SystemV/YST9YDT.generic.short=AKT
-SystemV/YST9YDT.standard.short=AKST
-Turkey.daylight.short=EEST
-Turkey.generic.short=EET
-Turkey.standard.short=EET
-UCT.daylight.short=UTC
-UCT.generic.short=UTC
-UCT.standard.short=UTC
-Universal.daylight.short=UTC
-Universal.generic.short=UTC
-Universal.standard.short=UTC
-US/Alaska.daylight.short=AKDT
-US/Alaska.generic.short=AKT
-US/Alaska.standard.short=AKST
-US/Aleutian.daylight.short=HADT
-US/Aleutian.generic.short=HAT
-US/Aleutian.standard.short=HAST
-US/Arizona.daylight.short=MDT
-US/Arizona.generic.short=MT
-US/Arizona.standard.short=MST
-US/Central.daylight.short=CDT
-US/Central.generic.short=CT
-US/Central.standard.short=CST
-US/Eastern.daylight.short=EDT
-US/Eastern.generic.short=ET
-US/Eastern.standard.short=EST
-US/East-Indiana.daylight.short=EDT
-US/East-Indiana.generic.short=ET
-US/East-Indiana.standard.short=EST
-US/Hawaii.daylight.short=HDT
-US/Hawaii.generic.short=HT
-US/Hawaii.standard.short=HST
-US/Indiana-Starke.daylight.short=CDT
-US/Indiana-Starke.generic.short=CT
-US/Indiana-Starke.standard.short=CST
-US/Michigan.daylight.short=EDT
-US/Michigan.generic.short=ET
-US/Michigan.standard.short=EST
-US/Mountain.daylight.short=MDT
-US/Mountain.generic.short=MT
-US/Mountain.standard.short=MST
-US/Pacific.daylight.short=PDT
-US/Pacific.generic.short=PT
-US/Pacific-New.daylight.short=PDT
-US/Pacific-New.generic.short=PT
-US/Pacific-New.standard.short=PST
-US/Pacific.standard.short=PST
-US/Samoa.daylight.short=SDT
-US/Samoa.generic.short=ST
-US/Samoa.standard.short=SST
-UTC.daylight.short=UTC
-UTC.generic.short=UTC
-UTC.standard.short=UTC
-VST.daylight.short=ICST
-VST.generic.short=ICT
-VST.standard.short=ICT
-WET.daylight.short=WEST
-WET.generic.short=WET
-WET.standard.short=WET
-W-SU.daylight.short=MSD
-W-SU.generic.short=MT
-W-SU.standard.short=MSK
-Zulu.daylight.short=UTC
-Zulu.generic.short=UTC
-Zulu.standard.short=UTC
diff --git a/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_it.properties b/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_it.properties
deleted file mode 100644
index 6a4c8280ced..00000000000
--- a/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_it.properties
+++ /dev/null
@@ -1,651 +0,0 @@
-ACT.daylight.long=Ora estiva centrale (Territori del Nord)
-ACT.generic.long=Ora fuso centrale (Territori del Nord)
-ACT.standard.long=Ora standard centrale (Territori del Nord)
-AET.daylight.long=Ora estiva dell'Australia orientale (Nuovo Galles del Sud)
-AET.generic.long=Ora fuso orientale (Nuovo Galles del Sud)
-AET.standard.long=Ora standard dell'Australia orientale (Nuovo Galles del Sud)
-AGT.generic.long=Ora dell'Argentina
-ART.generic.long=Ora dell'Europa orientale
-AST.generic.long=Ora Alaska
-Africa/Abidjan.generic.long=Ora media di Greenwich
-Africa/Accra.generic.long=Ora media del Ghana
-Africa/Addis_Ababa.generic.long=Ora dell'Africa orientale
-Africa/Algiers.generic.long=Ora dell'Europa centrale
-Africa/Asmara.generic.long=Ora dell'Africa orientale
-Africa/Asmera.generic.long=Ora dell'Africa orientale
-Africa/Bamako.generic.long=Ora media di Greenwich
-Africa/Bangui.generic.long=Ora dell'Africa occidentale
-Africa/Banjul.generic.long=Ora media di Greenwich
-Africa/Bissau.generic.long=Ora media di Greenwich
-Africa/Blantyre.generic.long=Ora dell'Africa centrale
-Africa/Brazzaville.generic.long=Ora dell'Africa occidentale
-Africa/Bujumbura.generic.long=Ora dell'Africa centrale
-Africa/Cairo.generic.long=Ora dell'Europa orientale
-Africa/Casablanca.generic.long=Ora dell'Europa occidentale
-Africa/Ceuta.generic.long=Ora dell'Europa centrale
-Africa/Conakry.generic.long=Ora media di Greenwich
-Africa/Dakar.generic.long=Ora media di Greenwich
-Africa/Dar_es_Salaam.generic.long=Ora dell'Africa orientale
-Africa/Djibouti.generic.long=Ora dell'Africa orientale
-Africa/Douala.generic.long=Ora dell'Africa occidentale
-Africa/El_Aaiun.generic.long=Ora dell'Europa occidentale
-Africa/Freetown.generic.long=Ora della Sierra Leone
-Africa/Gaborone.generic.long=Ora dell'Africa centrale
-Africa/Harare.generic.long=Ora dell'Africa centrale
-Africa/Johannesburg.generic.long=Ora Sudafrica
-Africa/Juba.generic.long=Ora dell'Africa orientale
-Africa/Kampala.generic.long=Ora dell'Africa orientale
-Africa/Khartoum.generic.long=Ora dell'Africa orientale
-Africa/Kigali.generic.long=Ora dell'Africa centrale
-Africa/Kinshasa.generic.long=Ora dell'Africa occidentale
-Africa/Lagos.generic.long=Ora dell'Africa occidentale
-Africa/Libreville.generic.long=Ora dell'Africa occidentale
-Africa/Lome.generic.long=Ora media di Greenwich
-Africa/Luanda.generic.long=Ora dell'Africa occidentale
-Africa/Lubumbashi.generic.long=Ora dell'Africa centrale
-Africa/Lusaka.generic.long=Ora dell'Africa centrale
-Africa/Malabo.generic.long=Ora dell'Africa occidentale
-Africa/Maputo.generic.long=Ora dell'Africa centrale
-Africa/Maseru.generic.long=Ora Sudafrica
-Africa/Mbabane.generic.long=Ora Sudafrica
-Africa/Mogadishu.generic.long=Ora dell'Africa orientale
-Africa/Monrovia.generic.long=Ora media di Greenwich
-Africa/Nairobi.generic.long=Ora dell'Africa orientale
-Africa/Ndjamena.generic.long=Ora dell'Africa occidentale
-Africa/Niamey.generic.long=Ora dell'Africa occidentale
-Africa/Nouakchott.generic.long=Ora media di Greenwich
-Africa/Ouagadougou.generic.long=Ora media di Greenwich
-Africa/Porto-Novo.generic.long=Ora dell'Africa occidentale
-Africa/Sao_Tome.generic.long=Ora media di Greenwich
-Africa/Timbuktu.generic.long=Ora media di Greenwich
-Africa/Tripoli.generic.long=Ora dell'Europa orientale
-Africa/Tunis.generic.long=Ora dell'Europa centrale
-Africa/Windhoek.generic.long=Ora dell'Africa occidentale
-America/Adak.generic.long=Ora Hawaii-Aleutine
-America/Anchorage.generic.long=Ora Alaska
-America/Anguilla.generic.long=Fuso dell'Atlantico
-America/Antigua.generic.long=Fuso dell'Atlantico
-America/Araguaina.generic.long=Ora di Brasilia
-America/Argentina/Buenos_Aires.generic.long=Ora dell'Argentina
-America/Argentina/Catamarca.generic.long=Ora dell'Argentina
-America/Argentina/ComodRivadavia.generic.long=Ora dell'Argentina
-America/Argentina/Cordoba.generic.long=Ora dell'Argentina
-America/Argentina/Jujuy.generic.long=Ora dell'Argentina
-America/Argentina/La_Rioja.generic.long=Ora dell'Argentina
-America/Argentina/Mendoza.generic.long=Ora dell'Argentina
-America/Argentina/Rio_Gallegos.generic.long=Ora dell'Argentina
-America/Argentina/Salta.generic.long=Ora dell'Argentina
-America/Argentina/San_Juan.generic.long=Ora dell'Argentina
-America/Argentina/San_Luis.generic.long=Ora dell'Argentina
-America/Argentina/Tucuman.generic.long=Ora dell'Argentina
-America/Argentina/Ushuaia.generic.long=Ora dell'Argentina
-America/Aruba.generic.long=Fuso dell'Atlantico
-America/Asuncion.generic.long=Ora del Paraguay
-America/Atikokan.generic.long=Fuso orientale
-America/Atka.generic.long=Ora Hawaii-Aleutine
-America/Bahia.generic.long=Ora di Brasilia
-America/Bahia_Banderas.generic.long=Ora fuso centrale
-America/Barbados.generic.long=Fuso dell'Atlantico
-America/Belem.generic.long=Ora di Brasilia
-America/Belize.generic.long=Ora fuso centrale
-America/Blanc-Sablon.generic.long=Fuso dell'Atlantico
-America/Boa_Vista.generic.long=Ora dell'Amazzonia
-America/Bogota.generic.long=Ora della Colombia
-America/Boise.generic.long=Ora fuso occidentale
-America/Buenos_Aires.generic.long=Ora dell'Argentina
-America/Cambridge_Bay.generic.long=Ora fuso occidentale
-America/Campo_Grande.generic.long=Ora dell'Amazzonia
-America/Cancun.generic.long=Ora fuso centrale
-America/Caracas.generic.long=Ora del Venezuela
-America/Catamarca.generic.long=Ora dell'Argentina
-America/Cayenne.generic.long=Ora della Guyana Francese
-America/Cayman.generic.long=Fuso orientale
-America/Chicago.generic.long=Ora fuso centrale
-America/Chihuahua.generic.long=Ora fuso occidentale
-America/Coral_Harbour.generic.long=Fuso orientale
-America/Cordoba.generic.long=Ora dell'Argentina
-America/Costa_Rica.generic.long=Ora fuso centrale
-America/Creston.generic.long=Ora fuso occidentale
-America/Cuiaba.generic.long=Ora dell'Amazzonia
-America/Curacao.generic.long=Fuso dell'Atlantico
-America/Danmarkshavn.generic.long=Ora media di Greenwich
-America/Dawson.generic.long=Fuso del Pacifico
-America/Dawson_Creek.generic.long=Ora fuso occidentale
-America/Denver.generic.long=Ora fuso occidentale
-America/Detroit.generic.long=Fuso orientale
-America/Dominica.generic.long=Fuso dell'Atlantico
-America/Edmonton.generic.long=Ora fuso occidentale
-America/Eirunepe.generic.long=Ora di Acre
-America/El_Salvador.generic.long=Ora fuso centrale
-America/Ensenada.generic.long=Fuso del Pacifico
-America/Fort_Wayne.generic.long=Fuso orientale
-America/Fortaleza.generic.long=Ora di Brasilia
-America/Glace_Bay.generic.long=Fuso dell'Atlantico
-America/Godthab.generic.long=Ora della Groenlandia occidentale
-America/Goose_Bay.generic.long=Fuso dell'Atlantico
-America/Grand_Turk.generic.long=Fuso orientale
-America/Grenada.generic.long=Fuso dell'Atlantico
-America/Guadeloupe.generic.long=Fuso dell'Atlantico
-America/Guatemala.generic.long=Ora fuso centrale
-America/Guayaquil.generic.long=Ora dell'Ecuador
-America/Guyana.generic.long=Ora della Guyana
-America/Halifax.generic.long=Fuso dell'Atlantico
-America/Havana.generic.long=Ora di Cuba
-America/Hermosillo.generic.long=Ora fuso occidentale
-America/Indiana/Indianapolis.generic.long=Fuso orientale
-America/Indiana/Knox.generic.long=Ora fuso centrale
-America/Indiana/Marengo.generic.long=Fuso orientale
-America/Indiana/Petersburg.generic.long=Fuso orientale
-America/Indiana/Tell_City.generic.long=Ora fuso centrale
-America/Indiana/Vevay.generic.long=Fuso orientale
-America/Indiana/Vincennes.generic.long=Fuso orientale
-America/Indiana/Winamac.generic.long=Fuso orientale
-America/Indianapolis.generic.long=Fuso orientale
-America/Inuvik.generic.long=Ora fuso occidentale
-America/Iqaluit.generic.long=Fuso orientale
-America/Jamaica.generic.long=Fuso orientale
-America/Jujuy.generic.long=Ora dell'Argentina
-America/Juneau.generic.long=Ora Alaska
-America/Kentucky/Louisville.generic.long=Fuso orientale
-America/Kentucky/Monticello.generic.long=Fuso orientale
-America/Knox_IN.generic.long=Ora fuso centrale
-America/Kralendijk.generic.long=Fuso dell'Atlantico
-America/La_Paz.generic.long=Ora della Bolivia
-America/Lima.generic.long=Ora del Per\u00F9
-America/Los_Angeles.generic.long=Fuso del Pacifico
-America/Louisville.generic.long=Fuso orientale
-America/Lower_Princes.generic.long=Fuso dell'Atlantico
-America/Maceio.generic.long=Ora di Brasilia
-America/Managua.generic.long=Ora fuso centrale
-America/Manaus.generic.long=Ora dell'Amazzonia
-America/Marigot.generic.long=Fuso dell'Atlantico
-America/Martinique.generic.long=Fuso dell'Atlantico
-America/Matamoros.generic.long=Ora fuso centrale
-America/Mazatlan.generic.long=Ora fuso occidentale
-America/Mendoza.generic.long=Ora dell'Argentina
-America/Menominee.generic.long=Ora fuso centrale
-America/Merida.generic.long=Ora fuso centrale
-America/Metlakatla.daylight.long=Ora legale di Metlakatla
-America/Metlakatla.generic.long=Ora di Metlakatla
-America/Metlakatla.standard.long=Ora standard di Metlakatla
-America/Mexico_City.generic.long=Ora fuso centrale
-America/Miquelon.generic.long=Ora Saint-Pierre e Miquelon
-America/Moncton.generic.long=Fuso dell'Atlantico
-America/Monterrey.generic.long=Ora fuso centrale
-America/Montevideo.generic.long=Ora dell'Uruguay
-America/Montreal.generic.long=Fuso orientale
-America/Montserrat.generic.long=Fuso dell'Atlantico
-America/Nassau.generic.long=Fuso orientale
-America/New_York.generic.long=Fuso orientale
-America/Nipigon.generic.long=Fuso orientale
-America/Nome.generic.long=Ora Alaska
-America/Noronha.generic.long=Ora di Fernando de Noronha
-America/North_Dakota/Beulah.generic.long=Ora fuso centrale
-America/North_Dakota/Center.generic.long=Ora fuso centrale
-America/North_Dakota/New_Salem.generic.long=Ora fuso centrale
-America/Ojinaga.generic.long=Ora fuso occidentale
-America/Panama.generic.long=Fuso orientale
-America/Pangnirtung.generic.long=Fuso orientale
-America/Paramaribo.generic.long=Ora di Suriname
-America/Phoenix.generic.long=Ora fuso occidentale
-America/Port-au-Prince.generic.long=Fuso orientale
-America/Port_of_Spain.generic.long=Fuso dell'Atlantico
-America/Porto_Acre.generic.long=Ora di Acre
-America/Porto_Velho.generic.long=Ora dell'Amazzonia
-America/Puerto_Rico.generic.long=Fuso dell'Atlantico
-America/Rainy_River.generic.long=Ora fuso centrale
-America/Rankin_Inlet.generic.long=Ora fuso centrale
-America/Recife.generic.long=Ora di Brasilia
-America/Regina.generic.long=Ora fuso centrale
-America/Resolute.generic.long=Ora fuso centrale
-America/Rio_Branco.generic.long=Ora di Acre
-America/Rosario.generic.long=Ora dell'Argentina
-America/Santa_Isabel.generic.long=Fuso del Pacifico
-America/Santarem.generic.long=Ora di Brasilia
-America/Santiago.generic.long=Ora del Cile
-America/Santo_Domingo.generic.long=Fuso dell'Atlantico
-America/Sao_Paulo.generic.long=Ora di Brasilia
-America/Scoresbysund.generic.long=Ora della Groenlandia orientale
-America/Shiprock.generic.long=Ora fuso occidentale
-America/Sitka.generic.long=Ora Alaska
-America/St_Barthelemy.generic.long=Fuso dell'Atlantico
-America/St_Johns.generic.long=Ora Terranova
-America/St_Kitts.generic.long=Fuso dell'Atlantico
-America/St_Lucia.generic.long=Fuso dell'Atlantico
-America/St_Thomas.generic.long=Fuso dell'Atlantico
-America/St_Vincent.generic.long=Fuso dell'Atlantico
-America/Swift_Current.generic.long=Ora fuso centrale
-America/Tegucigalpa.generic.long=Ora fuso centrale
-America/Thule.generic.long=Fuso dell'Atlantico
-America/Thunder_Bay.generic.long=Fuso orientale
-America/Tijuana.generic.long=Fuso del Pacifico
-America/Toronto.generic.long=Fuso orientale
-America/Tortola.generic.long=Fuso dell'Atlantico
-America/Vancouver.generic.long=Fuso del Pacifico
-America/Virgin.generic.long=Fuso dell'Atlantico
-America/Whitehorse.generic.long=Fuso del Pacifico
-America/Winnipeg.generic.long=Ora fuso centrale
-America/Yakutat.generic.long=Ora Alaska
-America/Yellowknife.generic.long=Ora fuso occidentale
-Antarctica/Casey.daylight.long=Ora estiva dell'Australia occidentale
-Antarctica/Casey.generic.long=Ora Australia occidentale
-Antarctica/Casey.standard.long=Ora standard dell'Australia occidentale
-Antarctica/Davis.generic.long=Ora di Davis
-Antarctica/DumontDUrville.generic.long=Ora di Dumont-d'Urville
-Antarctica/Macquarie.daylight.long=Ora estiva dell'Isola Macquarie
-Antarctica/Macquarie.generic.long=Ora dell'Isola Macquarie
-Antarctica/Macquarie.standard.long=Ora dell'Isola Macquarie
-Antarctica/Mawson.generic.long=Ora di Mawson
-Antarctica/McMurdo.generic.long=Ora Nuova Zelanda
-Antarctica/Palmer.generic.long=Ora del Cile
-Antarctica/Rothera.generic.long=Ora di Rothera
-Antarctica/South_Pole.generic.long=Ora Nuova Zelanda
-Antarctica/Syowa.generic.long=Ora di Syowa
-Antarctica/Vostok.generic.long=Ora di Vostok
-Arctic/Longyearbyen.generic.long=Ora dell'Europa centrale
-Asia/Aden.generic.long=Ora Arabia Saudita
-Asia/Almaty.generic.long=Ora di Alma-Ata
-Asia/Amman.generic.long=Ora Arabia Saudita
-Asia/Anadyr.generic.long=Ora di Anadyr
-Asia/Aqtau.generic.long=Ora di Aqtau
-Asia/Aqtobe.generic.long=Ora di Aqtobe
-Asia/Ashgabat.generic.long=Ora del Turkmenistan
-Asia/Ashkhabad.generic.long=Ora del Turkmenistan
-Asia/Baghdad.generic.long=Ora Arabia Saudita
-Asia/Bahrain.generic.long=Ora Arabia Saudita
-Asia/Baku.generic.long=Ora dell'Azerbaigian
-Asia/Bangkok.generic.long=Ora dell'Indocina
-Asia/Beirut.generic.long=Ora dell'Europa orientale
-Asia/Bishkek.generic.long=Ora del Kirghizistan
-Asia/Brunei.generic.long=Ora del Brunei
-Asia/Calcutta.generic.long=Ora India
-Asia/Choibalsan.generic.long=Ora di Choibalsan
-Asia/Chongqing.generic.long=Ora Cina
-Asia/Chungking.generic.long=Ora Cina
-Asia/Colombo.generic.long=Ora India
-Asia/Dacca.generic.long=Ora del Bangladesh
-Asia/Damascus.generic.long=Ora dell'Europa orientale
-Asia/Dhaka.generic.long=Ora del Bangladesh
-Asia/Dili.generic.long=Ora di Timor Est
-Asia/Dubai.generic.long=Ora del golfo
-Asia/Dushanbe.generic.long=Ora del Tagikistan
-Asia/Gaza.generic.long=Ora dell'Europa orientale
-Asia/Harbin.generic.long=Ora Cina
-Asia/Hebron.generic.long=Ora dell'Europa orientale
-Asia/Ho_Chi_Minh.generic.long=Ora dell'Indocina
-Asia/Hong_Kong.generic.long=Ora di Hong Kong
-Asia/Hovd.generic.long=Ora di Hovd
-Asia/Irkutsk.generic.long=Ora di Irkutsk
-Asia/Istanbul.generic.long=Ora dell'Europa orientale
-Asia/Jakarta.generic.long=Ora dell'Indonesia occidentale
-Asia/Jayapura.generic.long=Ora dell'Indonesia orientale
-Asia/Jerusalem.generic.long=Ora Israele
-Asia/Kabul.generic.long=Ora dell'Afghanistan
-Asia/Kamchatka.generic.long=Ora di Petropavlovsk-Kamchatski
-Asia/Karachi.generic.long=Ora del Pakistan
-Asia/Kashgar.generic.long=Ora Cina
-Asia/Kathmandu.generic.long=Ora del Nepal
-Asia/Katmandu.generic.long=Ora del Nepal
-Asia/Khandyga.daylight.long=Ora estiva di Khandyga
-Asia/Khandyga.generic.long=Ora di Khandyga
-Asia/Khandyga.standard.long=Ora di Khandyga
-Asia/Kolkata.generic.long=Ora India
-Asia/Krasnoyarsk.generic.long=Ora di Krasnojarsk
-Asia/Kuala_Lumpur.generic.long=Ora della Malaysia
-Asia/Kuching.generic.long=Ora della Malaysia
-Asia/Kuwait.generic.long=Ora Arabia Saudita
-Asia/Macao.generic.long=Ora Cina
-Asia/Macau.generic.long=Ora Cina
-Asia/Magadan.generic.long=Ora di Magadan
-Asia/Makassar.generic.long=Ora dell'Indonesia centrale
-Asia/Manila.generic.long=Ora delle Filippine
-Asia/Muscat.generic.long=Ora del golfo
-Asia/Nicosia.generic.long=Ora dell'Europa orientale
-Asia/Novokuznetsk.generic.long=Ora di Novosibirsk
-Asia/Novosibirsk.generic.long=Ora di Novosibirsk
-Asia/Omsk.generic.long=Ora di Omsk
-Asia/Oral.generic.long=Ora di Oral
-Asia/Phnom_Penh.generic.long=Ora dell'Indocina
-Asia/Pontianak.generic.long=Ora dell'Indonesia occidentale
-Asia/Pyongyang.generic.long=Ora Corea
-Asia/Qatar.generic.long=Ora Arabia Saudita
-Asia/Qyzylorda.generic.long=Ora di Qyzylorda
-Asia/Rangoon.generic.long=Ora della Birmania/Myanmar
-Asia/Saigon.generic.long=Ora dell'Indocina
-Asia/Sakhalin.generic.long=Ora di Sakhalin
-Asia/Samarkand.generic.long=Ora dell'Uzbekistan
-Asia/Seoul.generic.long=Ora Corea
-Asia/Shanghai.generic.long=Ora Cina
-Asia/Singapore.generic.long=Ora di Singapore
-Asia/Taipei.generic.long=Ora Cina
-Asia/Tashkent.generic.long=Ora dell'Uzbekistan
-Asia/Tbilisi.generic.long=Ora della Georgia
-Asia/Tehran.generic.long=Ora Iran
-Asia/Tel_Aviv.generic.long=Ora Israele
-Asia/Thimbu.generic.long=Ora del Bhutan
-Asia/Thimphu.generic.long=Ora del Bhutan
-Asia/Tokyo.generic.long=Ora Giappone
-Asia/Ujung_Pandang.generic.long=Ora dell'Indonesia centrale
-Asia/Ulaanbaatar.generic.long=Ora di Ulaanbaatar
-Asia/Ulan_Bator.generic.long=Ora di Ulaanbaatar
-Asia/Urumqi.generic.long=Ora Cina
-Asia/Ust-Nera.daylight.long=Ora estiva di Ust-Nera
-Asia/Ust-Nera.generic.long=Ora di Ust-Nera
-Asia/Ust-Nera.standard.long=Ora di Ust-Nera
-Asia/Vientiane.generic.long=Ora dell'Indocina
-Asia/Vladivostok.generic.long=Ora di Vladivostok
-Asia/Yakutsk.generic.long=Ora di Yakutsk
-Asia/Yekaterinburg.generic.long=Ora di Ekaterinburg
-Asia/Yerevan.generic.long=Ora dell'Armenia
-Atlantic/Azores.generic.long=Ora delle Azzorre
-Atlantic/Bermuda.generic.long=Fuso dell'Atlantico
-Atlantic/Canary.generic.long=Ora dell'Europa occidentale
-Atlantic/Cape_Verde.generic.long=Ora di Capo Verde
-Atlantic/Faeroe.generic.long=Ora dell'Europa occidentale
-Atlantic/Faroe.generic.long=Ora dell'Europa occidentale
-Atlantic/Jan_Mayen.generic.long=Ora dell'Europa centrale
-Atlantic/Madeira.generic.long=Ora dell'Europa occidentale
-Atlantic/Reykjavik.generic.long=Ora media di Greenwich
-Atlantic/South_Georgia.generic.long=Ora Georgia del Sud
-Atlantic/St_Helena.generic.long=Ora media di Greenwich
-Atlantic/Stanley.generic.long=Ora delle Falkland
-Australia/ACT.daylight.long=Ora estiva dell'Australia orientale (Nuovo Galles del Sud)
-Australia/ACT.generic.long=Ora fuso orientale (Nuovo Galles del Sud)
-Australia/ACT.standard.long=Ora standard dell'Australia orientale (Nuovo Galles del Sud)
-Australia/Adelaide.daylight.long=Ora estiva centrale (Australia del Sud)
-Australia/Adelaide.generic.long=Ora fuso centrale (Australia del Sud)
-Australia/Adelaide.standard.long=Ora standard centrale (Australia del Sud)
-Australia/Brisbane.daylight.long=Ora estiva orientale (Queensland)
-Australia/Brisbane.generic.long=Ora fuso orientale (Queensland)
-Australia/Brisbane.standard.long=Ora standard orientale (Queensland)
-Australia/Broken_Hill.daylight.long=Ora estiva centrale (Australia del Sud/Nuovo Galles del Sud)
-Australia/Broken_Hill.generic.long=Ora fuso centrale (Australia del Sud/Nuovo Galles del Sud)
-Australia/Broken_Hill.standard.long=Ora standard centrale (Australia del Sud/Nuovo Galles del Sud)
-Australia/Canberra.daylight.long=Ora estiva dell'Australia orientale (Nuovo Galles del Sud)
-Australia/Canberra.generic.long=Ora fuso orientale (Nuovo Galles del Sud)
-Australia/Canberra.standard.long=Ora standard dell'Australia orientale (Nuovo Galles del Sud)
-Australia/Currie.daylight.long=Ora estiva dell'Australia orientale (Nuovo Galles del Sud)
-Australia/Currie.generic.long=Ora fuso orientale (Nuovo Galles del Sud)
-Australia/Currie.standard.long=Ora standard dell'Australia orientale (Nuovo Galles del Sud)
-Australia/Darwin.daylight.long=Ora estiva centrale (Territori del Nord)
-Australia/Darwin.generic.long=Ora fuso centrale (Territori del Nord)
-Australia/Darwin.standard.long=Ora standard centrale (Territori del Nord)
-Australia/Eucla.daylight.long=Ora estiva Australia centro-occidentale
-Australia/Eucla.generic.long=Ora Australia centro-occidentale
-Australia/Eucla.standard.long=Ora standard Australia centro-occidentale
-Australia/Hobart.daylight.long=Ora estiva orientale (Tasmania)
-Australia/Hobart.generic.long=Ora fuso orientale (Tasmania)
-Australia/Hobart.standard.long=Ora standard orientale (Tasmania)
-Australia/LHI.generic.long=Ora di Lord Howe
-Australia/Lindeman.daylight.long=Ora estiva orientale (Queensland)
-Australia/Lindeman.generic.long=Ora fuso orientale (Queensland)
-Australia/Lindeman.standard.long=Ora standard orientale (Queensland)
-Australia/Lord_Howe.generic.long=Ora di Lord Howe
-Australia/Melbourne.daylight.long=Ora estiva orientale (Victoria)
-Australia/Melbourne.generic.long=Ora fuso orientale (Victoria)
-Australia/Melbourne.standard.long=Ora standard orientale (Victoria)
-Australia/NSW.daylight.long=Ora estiva dell'Australia orientale (Nuovo Galles del Sud)
-Australia/NSW.generic.long=Ora fuso orientale (Nuovo Galles del Sud)
-Australia/NSW.standard.long=Ora standard dell'Australia orientale (Nuovo Galles del Sud)
-Australia/North.daylight.long=Ora estiva centrale (Territori del Nord)
-Australia/North.generic.long=Ora fuso centrale (Territori del Nord)
-Australia/North.standard.long=Ora standard centrale (Territori del Nord)
-Australia/Perth.daylight.long=Ora estiva dell'Australia occidentale
-Australia/Perth.generic.long=Ora Australia occidentale
-Australia/Perth.standard.long=Ora standard dell'Australia occidentale
-Australia/Queensland.daylight.long=Ora estiva orientale (Queensland)
-Australia/Queensland.generic.long=Ora fuso orientale (Queensland)
-Australia/Queensland.standard.long=Ora standard orientale (Queensland)
-Australia/South.daylight.long=Ora estiva centrale (Australia del Sud)
-Australia/South.generic.long=Ora fuso centrale (Australia del Sud)
-Australia/South.standard.long=Ora standard centrale (Australia del Sud)
-Australia/Sydney.daylight.long=Ora estiva dell'Australia orientale (Nuovo Galles del Sud)
-Australia/Sydney.generic.long=Ora fuso orientale (Nuovo Galles del Sud)
-Australia/Sydney.standard.long=Ora standard dell'Australia orientale (Nuovo Galles del Sud)
-Australia/Tasmania.daylight.long=Ora estiva orientale (Tasmania)
-Australia/Tasmania.generic.long=Ora fuso orientale (Tasmania)
-Australia/Tasmania.standard.long=Ora standard orientale (Tasmania)
-Australia/Victoria.daylight.long=Ora estiva orientale (Victoria)
-Australia/Victoria.generic.long=Ora fuso orientale (Victoria)
-Australia/Victoria.standard.long=Ora standard orientale (Victoria)
-Australia/West.daylight.long=Ora estiva dell'Australia occidentale
-Australia/West.generic.long=Ora Australia occidentale
-Australia/West.standard.long=Ora standard dell'Australia occidentale
-Australia/Yancowinna.daylight.long=Ora estiva centrale (Australia del Sud/Nuovo Galles del Sud)
-Australia/Yancowinna.generic.long=Ora fuso centrale (Australia del Sud/Nuovo Galles del Sud)
-Australia/Yancowinna.standard.long=Ora standard centrale (Australia del Sud/Nuovo Galles del Sud)
-BET.generic.long=Ora di Brasilia
-BST.generic.long=Ora del Bangladesh
-Brazil/Acre.generic.long=Ora di Acre
-Brazil/DeNoronha.generic.long=Ora di Fernando de Noronha
-Brazil/East.generic.long=Ora di Brasilia
-Brazil/West.generic.long=Ora dell'Amazzonia
-CAT.generic.long=Ora dell'Africa centrale
-CET.generic.long=Ora dell'Europa centrale
-CNT.generic.long=Ora Terranova
-CST.generic.long=Ora fuso centrale
-CST6CDT.generic.long=Ora fuso centrale
-CTT.generic.long=Ora Cina
-Canada/Atlantic.generic.long=Fuso dell'Atlantico
-Canada/Central.generic.long=Ora fuso centrale
-Canada/East-Saskatchewan.generic.long=Ora fuso centrale
-Canada/Eastern.generic.long=Fuso orientale
-Canada/Mountain.generic.long=Ora fuso occidentale
-Canada/Newfoundland.generic.long=Ora Terranova
-Canada/Pacific.generic.long=Fuso del Pacifico
-Canada/Saskatchewan.generic.long=Ora fuso centrale
-Canada/Yukon.generic.long=Fuso del Pacifico
-Chile/Continental.generic.long=Ora del Cile
-Chile/EasterIsland.generic.long=Ora dell'Isola di Pasqua
-Cuba.generic.long=Ora di Cuba
-EAT.generic.long=Ora dell'Africa orientale
-ECT.generic.long=Ora dell'Europa centrale
-EET.generic.long=Ora dell'Europa orientale
-EST.generic.long=Fuso orientale
-EST5EDT.generic.long=Fuso orientale
-Egypt.generic.long=Ora dell'Europa orientale
-Eire.generic.long=Ora irlandese
-Etc/Greenwich.generic.long=Ora media di Greenwich
-Etc/UCT.generic.long=Tempo universale coordinato
-Etc/UTC.generic.long=Tempo universale coordinato
-Etc/Universal.generic.long=Tempo universale coordinato
-Etc/Zulu.generic.long=Tempo universale coordinato
-Europe/Amsterdam.generic.long=Ora dell'Europa centrale
-Europe/Andorra.generic.long=Ora dell'Europa centrale
-Europe/Athens.generic.long=Ora dell'Europa orientale
-Europe/Belfast.generic.long=Ora britannica
-Europe/Belgrade.generic.long=Ora dell'Europa centrale
-Europe/Berlin.generic.long=Ora dell'Europa centrale
-Europe/Bratislava.generic.long=Ora dell'Europa centrale
-Europe/Brussels.generic.long=Ora dell'Europa centrale
-Europe/Bucharest.generic.long=Ora dell'Europa orientale
-Europe/Budapest.generic.long=Ora dell'Europa centrale
-Europe/Busingen.generic.long=Ora dell'Europa centrale
-Europe/Chisinau.generic.long=Ora dell'Europa orientale
-Europe/Copenhagen.generic.long=Ora dell'Europa centrale
-Europe/Dublin.generic.long=Ora irlandese
-Europe/Gibraltar.generic.long=Ora dell'Europa centrale
-Europe/Guernsey.generic.long=Ora britannica
-Europe/Helsinki.generic.long=Ora dell'Europa orientale
-Europe/Isle_of_Man.generic.long=Ora britannica
-Europe/Istanbul.generic.long=Ora dell'Europa orientale
-Europe/Jersey.generic.long=Ora britannica
-Europe/Kaliningrad.daylight.long=Ora estiva dei paesi europei pi\u00F9 orientali
-Europe/Kaliningrad.generic.long=Ora dei paesi europei pi\u00F9 orientali
-Europe/Kaliningrad.standard.long=Ora dei paesi europei pi\u00F9 orientali
-Europe/Kiev.generic.long=Ora dell'Europa orientale
-Europe/Lisbon.generic.long=Ora dell'Europa occidentale
-Europe/Ljubljana.generic.long=Ora dell'Europa centrale
-Europe/London.generic.long=Ora britannica
-Europe/Luxembourg.generic.long=Ora dell'Europa centrale
-Europe/Madrid.generic.long=Ora dell'Europa centrale
-Europe/Malta.generic.long=Ora dell'Europa centrale
-Europe/Mariehamn.generic.long=Ora dell'Europa orientale
-Europe/Minsk.daylight.long=Ora estiva dei paesi europei pi\u00F9 orientali
-Europe/Minsk.generic.long=Ora dei paesi europei pi\u00F9 orientali
-Europe/Minsk.standard.long=Ora dei paesi europei pi\u00F9 orientali
-Europe/Monaco.generic.long=Ora dell'Europa centrale
-Europe/Moscow.generic.long=Ora Mosca
-Europe/Nicosia.generic.long=Ora dell'Europa orientale
-Europe/Oslo.generic.long=Ora dell'Europa centrale
-Europe/Paris.generic.long=Ora dell'Europa centrale
-Europe/Podgorica.generic.long=Ora dell'Europa centrale
-Europe/Prague.generic.long=Ora dell'Europa centrale
-Europe/Riga.generic.long=Ora dell'Europa orientale
-Europe/Rome.generic.long=Ora dell'Europa centrale
-Europe/Samara.generic.long=Ora di Samara
-Europe/San_Marino.generic.long=Ora dell'Europa centrale
-Europe/Sarajevo.generic.long=Ora dell'Europa centrale
-Europe/Simferopol.generic.long=Ora dell'Europa orientale
-Europe/Skopje.generic.long=Ora dell'Europa centrale
-Europe/Sofia.generic.long=Ora dell'Europa orientale
-Europe/Stockholm.generic.long=Ora dell'Europa centrale
-Europe/Tallinn.generic.long=Ora dell'Europa orientale
-Europe/Tirane.generic.long=Ora dell'Europa centrale
-Europe/Tiraspol.generic.long=Ora dell'Europa orientale
-Europe/Uzhgorod.generic.long=Ora dell'Europa orientale
-Europe/Vaduz.generic.long=Ora dell'Europa centrale
-Europe/Vatican.generic.long=Ora dell'Europa centrale
-Europe/Vienna.generic.long=Ora dell'Europa centrale
-Europe/Vilnius.generic.long=Ora dell'Europa orientale
-Europe/Volgograd.generic.long=Ora di Volgograd
-Europe/Warsaw.generic.long=Ora dell'Europa centrale
-Europe/Zagreb.generic.long=Ora dell'Europa centrale
-Europe/Zaporozhye.generic.long=Ora dell'Europa orientale
-Europe/Zurich.generic.long=Ora dell'Europa centrale
-GB-Eire.generic.long=Ora britannica
-GB.generic.long=Ora britannica
-GMT.generic.long=Ora media di Greenwich
-Greenwich.generic.long=Ora media di Greenwich
-HST.generic.long=Ora Hawaii
-Hongkong.generic.long=Ora di Hong Kong
-IET.generic.long=Fuso orientale
-IST.generic.long=Ora India
-Iceland.generic.long=Ora media di Greenwich
-Indian/Antananarivo.generic.long=Ora dell'Africa orientale
-Indian/Chagos.generic.long=Ora del Territorio Britannico dell'Oceano Indiano
-Indian/Christmas.generic.long=Ora dell'Isola Christmas
-Indian/Cocos.generic.long=Ora delle Isole Cocos
-Indian/Comoro.generic.long=Ora dell'Africa orientale
-Indian/Kerguelen.generic.long=Ora delle Terre Australi e Antartiche Francesi
-Indian/Mahe.generic.long=Ora delle Seychelles
-Indian/Maldives.generic.long=Ora delle Maldive
-Indian/Mauritius.generic.long=Ora di Mauritius
-Indian/Mayotte.generic.long=Ora dell'Africa orientale
-Indian/Reunion.generic.long=Ora di Reunion
-Iran.generic.long=Ora Iran
-Israel.generic.long=Ora Israele
-JST.generic.long=Ora Giappone
-Jamaica.generic.long=Fuso orientale
-Japan.generic.long=Ora Giappone
-Kwajalein.generic.long=Ora delle Isole Marshall
-Libya.generic.long=Ora dell'Europa orientale
-MET.generic.long=MET
-MIT.generic.long=Ora di Samoa occidentale
-MST.generic.long=Ora fuso occidentale
-MST7MDT.generic.long=Ora fuso occidentale
-Mexico/BajaNorte.generic.long=Fuso del Pacifico
-Mexico/BajaSur.generic.long=Ora fuso occidentale
-Mexico/General.generic.long=Ora fuso centrale
-NET.generic.long=Ora dell'Armenia
-NST.generic.long=Ora Nuova Zelanda
-NZ-CHAT.generic.long=Ora Chatham
-NZ.generic.long=Ora Nuova Zelanda
-Navajo.generic.long=Ora fuso occidentale
-PLT.generic.long=Ora del Pakistan
-PNT.generic.long=Ora fuso occidentale
-PRC.generic.long=Ora Cina
-PRT.generic.long=Fuso dell'Atlantico
-PST.generic.long=Fuso del Pacifico
-PST8PDT.generic.long=Fuso del Pacifico
-Pacific/Apia.generic.long=Ora di Samoa occidentale
-Pacific/Auckland.generic.long=Ora Nuova Zelanda
-Pacific/Chatham.generic.long=Ora Chatham
-Pacific/Chuuk.daylight.long=Ora estiva di Chuuk
-Pacific/Chuuk.generic.long=Ora di Chuuk
-Pacific/Chuuk.standard.long=Ora di Chuuk
-Pacific/Easter.generic.long=Ora dell'Isola di Pasqua
-Pacific/Efate.generic.long=Ora di Vanuatu
-Pacific/Enderbury.generic.long=Ora delle Isole Phoenix
-Pacific/Fakaofo.generic.long=Ora di Tokelau
-Pacific/Fiji.generic.long=Ora di Figi
-Pacific/Funafuti.generic.long=Ora di Tuvalu
-Pacific/Galapagos.generic.long=Ora delle Galapagos
-Pacific/Gambier.generic.long=Ora di Gambier
-Pacific/Guadalcanal.generic.long=Ora delle Isole Salomone
-Pacific/Guam.generic.long=Ora Chamorro
-Pacific/Honolulu.generic.long=Ora Hawaii
-Pacific/Johnston.generic.long=Ora Hawaii
-Pacific/Kiritimati.generic.long=Ora delle Line Islands
-Pacific/Kosrae.generic.long=Ora di Kosrae
-Pacific/Kwajalein.generic.long=Ora delle Isole Marshall
-Pacific/Majuro.generic.long=Ora delle Isole Marshall
-Pacific/Marquesas.generic.long=Ora delle Isole Marchesi
-Pacific/Midway.generic.long=Ora Samoa
-Pacific/Nauru.generic.long=Ora di Nauru
-Pacific/Niue.generic.long=Ora di Niue
-Pacific/Norfolk.generic.long=Ora di Norfolk
-Pacific/Noumea.generic.long=Ora della Nuova Caledonia
-Pacific/Pago_Pago.generic.long=Ora Samoa
-Pacific/Palau.generic.long=Ora di Palau
-Pacific/Pitcairn.generic.long=Ora Pitcairn
-Pacific/Pohnpei.daylight.long=Ora estiva di Pohnpei
-Pacific/Pohnpei.generic.long=Ora Ponape
-Pacific/Pohnpei.standard.long=Ora di Pohnpei
-Pacific/Ponape.daylight.long=Ora estiva di Pohnpei
-Pacific/Ponape.generic.long=Ora Ponape
-Pacific/Ponape.standard.long=Ora di Pohnpei
-Pacific/Port_Moresby.generic.long=Ora di Papua Nuova Guinea
-Pacific/Rarotonga.generic.long=Ora delle Isole Cook
-Pacific/Saipan.generic.long=Ora Chamorro
-Pacific/Samoa.generic.long=Ora Samoa
-Pacific/Tahiti.generic.long=Ora di Tahiti
-Pacific/Tarawa.generic.long=Ora delle Isole Gilbert
-Pacific/Tongatapu.generic.long=Ora di Tonga
-Pacific/Truk.daylight.long=Ora estiva di Chuuk
-Pacific/Truk.generic.long=Ora di Chuuk
-Pacific/Truk.standard.long=Ora di Chuuk
-Pacific/Wake.generic.long=Ora di Wake
-Pacific/Wallis.generic.long=Ora di Wallis e Futuna
-Pacific/Yap.daylight.long=Ora estiva di Chuuk
-Pacific/Yap.generic.long=Ora di Chuuk
-Pacific/Yap.standard.long=Ora di Chuuk
-Poland.generic.long=Ora dell'Europa centrale
-Portugal.generic.long=Ora dell'Europa occidentale
-ROK.generic.long=Ora Corea
-SST.generic.long=Ora delle Isole Salomone
-Singapore.generic.long=Ora di Singapore
-SystemV/AST4.generic.long=Fuso dell'Atlantico
-SystemV/AST4ADT.generic.long=Fuso dell'Atlantico
-SystemV/CST6.generic.long=Ora fuso centrale
-SystemV/CST6CDT.generic.long=Ora fuso centrale
-SystemV/EST5.generic.long=Fuso orientale
-SystemV/EST5EDT.generic.long=Fuso orientale
-SystemV/HST10.generic.long=Ora Hawaii
-SystemV/MST7.generic.long=Ora fuso occidentale
-SystemV/MST7MDT.generic.long=Ora fuso occidentale
-SystemV/PST8.generic.long=Fuso del Pacifico
-SystemV/PST8PDT.generic.long=Fuso del Pacifico
-SystemV/YST9.generic.long=Ora Alaska
-SystemV/YST9YDT.generic.long=Ora Alaska
-Turkey.generic.long=Ora dell'Europa orientale
-UCT.generic.long=Tempo universale coordinato
-US/Alaska.generic.long=Ora Alaska
-US/Aleutian.generic.long=Ora Hawaii-Aleutine
-US/Arizona.generic.long=Ora fuso occidentale
-US/Central.generic.long=Ora fuso centrale
-US/East-Indiana.generic.long=Fuso orientale
-US/Eastern.generic.long=Fuso orientale
-US/Hawaii.generic.long=Ora Hawaii
-US/Indiana-Starke.generic.long=Ora fuso centrale
-US/Michigan.generic.long=Fuso orientale
-US/Mountain.generic.long=Ora fuso occidentale
-US/Pacific-New.generic.long=Fuso del Pacifico
-US/Pacific.generic.long=Fuso del Pacifico
-US/Samoa.generic.long=Ora Samoa
-UTC.generic.long=Tempo universale coordinato
-Universal.generic.long=Tempo universale coordinato
-VST.generic.long=Ora dell'Indocina
-W-SU.generic.long=Ora Mosca
-WET.generic.long=Ora dell'Europa occidentale
-Zulu.generic.long=Tempo universale coordinato
diff --git a/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_it_short.properties b/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_it_short.properties
deleted file mode 100644
index 095522a68d1..00000000000
--- a/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_it_short.properties
+++ /dev/null
@@ -1,1743 +0,0 @@
-ACT.daylight.short=CST
-ACT.generic.short=CT
-ACT.standard.short=CST
-AET.daylight.short=EST
-AET.generic.short=ET
-AET.standard.short=EST
-Africa/Abidjan.daylight.short=GMT
-Africa/Abidjan.generic.short=GMT
-Africa/Abidjan.standard.short=GMT
-Africa/Accra.daylight.short=GHST
-Africa/Accra.generic.short=GMT
-Africa/Accra.standard.short=GMT
-Africa/Addis_Ababa.daylight.short=EAST
-Africa/Addis_Ababa.generic.short=EAT
-Africa/Addis_Ababa.standard.short=EAT
-Africa/Algiers.daylight.short=CEST
-Africa/Algiers.generic.short=CET
-Africa/Algiers.standard.short=CET
-Africa/Asmara.daylight.short=EAST
-Africa/Asmara.generic.short=EAT
-Africa/Asmara.standard.short=EAT
-Africa/Asmera.daylight.short=EAST
-Africa/Asmera.generic.short=EAT
-Africa/Asmera.standard.short=EAT
-Africa/Bamako.daylight.short=GMT
-Africa/Bamako.generic.short=GMT
-Africa/Bamako.standard.short=GMT
-Africa/Bangui.daylight.short=WAST
-Africa/Bangui.generic.short=WAT
-Africa/Bangui.standard.short=WAT
-Africa/Banjul.daylight.short=GMT
-Africa/Banjul.generic.short=GMT
-Africa/Banjul.standard.short=GMT
-Africa/Bissau.daylight.short=GMT
-Africa/Bissau.generic.short=GMT
-Africa/Bissau.standard.short=GMT
-Africa/Blantyre.daylight.short=CAST
-Africa/Blantyre.generic.short=CAT
-Africa/Blantyre.standard.short=CAT
-Africa/Brazzaville.daylight.short=WAST
-Africa/Brazzaville.generic.short=WAT
-Africa/Brazzaville.standard.short=WAT
-Africa/Bujumbura.daylight.short=CAST
-Africa/Bujumbura.generic.short=CAT
-Africa/Bujumbura.standard.short=CAT
-Africa/Cairo.daylight.short=EEST
-Africa/Cairo.generic.short=EET
-Africa/Cairo.standard.short=EET
-Africa/Casablanca.daylight.short=WEST
-Africa/Casablanca.generic.short=WET
-Africa/Casablanca.standard.short=WET
-Africa/Ceuta.daylight.short=CEST
-Africa/Ceuta.generic.short=CET
-Africa/Ceuta.standard.short=CET
-Africa/Conakry.daylight.short=GMT
-Africa/Conakry.generic.short=GMT
-Africa/Conakry.standard.short=GMT
-Africa/Dakar.daylight.short=GMT
-Africa/Dakar.generic.short=GMT
-Africa/Dakar.standard.short=GMT
-Africa/Dar_es_Salaam.daylight.short=EAST
-Africa/Dar_es_Salaam.generic.short=EAT
-Africa/Dar_es_Salaam.standard.short=EAT
-Africa/Djibouti.daylight.short=EAST
-Africa/Djibouti.generic.short=EAT
-Africa/Djibouti.standard.short=EAT
-Africa/Douala.daylight.short=WAST
-Africa/Douala.generic.short=WAT
-Africa/Douala.standard.short=WAT
-Africa/El_Aaiun.daylight.short=WEST
-Africa/El_Aaiun.generic.short=WET
-Africa/El_Aaiun.standard.short=WET
-Africa/Freetown.daylight.short=SLST
-Africa/Freetown.generic.short=SLT
-Africa/Freetown.standard.short=GMT
-Africa/Gaborone.daylight.short=CAST
-Africa/Gaborone.generic.short=CAT
-Africa/Gaborone.standard.short=CAT
-Africa/Harare.daylight.short=CAST
-Africa/Harare.generic.short=CAT
-Africa/Harare.standard.short=CAT
-Africa/Johannesburg.daylight.short=SAST
-Africa/Johannesburg.generic.short=SAT
-Africa/Johannesburg.standard.short=SAST
-Africa/Juba.daylight.short=EAST
-Africa/Juba.generic.short=EAT
-Africa/Juba.standard.short=EAT
-Africa/Kampala.daylight.short=EAST
-Africa/Kampala.generic.short=EAT
-Africa/Kampala.standard.short=EAT
-Africa/Khartoum.daylight.short=EAST
-Africa/Khartoum.generic.short=EAT
-Africa/Khartoum.standard.short=EAT
-Africa/Kigali.daylight.short=CAST
-Africa/Kigali.generic.short=CAT
-Africa/Kigali.standard.short=CAT
-Africa/Kinshasa.daylight.short=WAST
-Africa/Kinshasa.generic.short=WAT
-Africa/Kinshasa.standard.short=WAT
-Africa/Lagos.daylight.short=WAST
-Africa/Lagos.generic.short=WAT
-Africa/Lagos.standard.short=WAT
-Africa/Libreville.daylight.short=WAST
-Africa/Libreville.generic.short=WAT
-Africa/Libreville.standard.short=WAT
-Africa/Lome.daylight.short=GMT
-Africa/Lome.generic.short=GMT
-Africa/Lome.standard.short=GMT
-Africa/Luanda.daylight.short=WAST
-Africa/Luanda.generic.short=WAT
-Africa/Luanda.standard.short=WAT
-Africa/Lubumbashi.daylight.short=CAST
-Africa/Lubumbashi.generic.short=CAT
-Africa/Lubumbashi.standard.short=CAT
-Africa/Lusaka.daylight.short=CAST
-Africa/Lusaka.generic.short=CAT
-Africa/Lusaka.standard.short=CAT
-Africa/Malabo.daylight.short=WAST
-Africa/Malabo.generic.short=WAT
-Africa/Malabo.standard.short=WAT
-Africa/Maputo.daylight.short=CAST
-Africa/Maputo.generic.short=CAT
-Africa/Maputo.standard.short=CAT
-Africa/Maseru.daylight.short=SAST
-Africa/Maseru.generic.short=SAT
-Africa/Maseru.standard.short=SAST
-Africa/Mbabane.daylight.short=SAST
-Africa/Mbabane.generic.short=SAT
-Africa/Mbabane.standard.short=SAST
-Africa/Mogadishu.daylight.short=EAST
-Africa/Mogadishu.generic.short=EAT
-Africa/Mogadishu.standard.short=EAT
-Africa/Monrovia.daylight.short=GMT
-Africa/Monrovia.generic.short=GMT
-Africa/Monrovia.standard.short=GMT
-Africa/Nairobi.daylight.short=EAST
-Africa/Nairobi.generic.short=EAT
-Africa/Nairobi.standard.short=EAT
-Africa/Ndjamena.daylight.short=WAST
-Africa/Ndjamena.generic.short=WAT
-Africa/Ndjamena.standard.short=WAT
-Africa/Niamey.daylight.short=WAST
-Africa/Niamey.generic.short=WAT
-Africa/Niamey.standard.short=WAT
-Africa/Nouakchott.daylight.short=GMT
-Africa/Nouakchott.generic.short=GMT
-Africa/Nouakchott.standard.short=GMT
-Africa/Ouagadougou.daylight.short=GMT
-Africa/Ouagadougou.generic.short=GMT
-Africa/Ouagadougou.standard.short=GMT
-Africa/Porto-Novo.daylight.short=WAST
-Africa/Porto-Novo.generic.short=WAT
-Africa/Porto-Novo.standard.short=WAT
-Africa/Sao_Tome.daylight.short=GMT
-Africa/Sao_Tome.generic.short=GMT
-Africa/Sao_Tome.standard.short=GMT
-Africa/Timbuktu.daylight.short=GMT
-Africa/Timbuktu.generic.short=GMT
-Africa/Timbuktu.standard.short=GMT
-Africa/Tripoli.daylight.short=EEST
-Africa/Tripoli.generic.short=EET
-Africa/Tripoli.standard.short=EET
-Africa/Tunis.daylight.short=CEST
-Africa/Tunis.generic.short=CET
-Africa/Tunis.standard.short=CET
-Africa/Windhoek.daylight.short=WAST
-Africa/Windhoek.generic.short=WAT
-Africa/Windhoek.standard.short=WAT
-AGT.daylight.short=ARST
-AGT.generic.short=ART
-AGT.standard.short=ART
-America/Adak.daylight.short=HADT
-America/Adak.generic.short=HAT
-America/Adak.standard.short=HAST
-America/Anchorage.daylight.short=AKDT
-America/Anchorage.generic.short=AKT
-America/Anchorage.standard.short=AKST
-America/Anguilla.daylight.short=ADT
-America/Anguilla.generic.short=AT
-America/Anguilla.standard.short=AST
-America/Antigua.daylight.short=ADT
-America/Antigua.generic.short=AT
-America/Antigua.standard.short=AST
-America/Araguaina.daylight.short=BRST
-America/Araguaina.generic.short=BRT
-America/Araguaina.standard.short=BRT
-America/Argentina/Buenos_Aires.daylight.short=ARST
-America/Argentina/Buenos_Aires.generic.short=ART
-America/Argentina/Buenos_Aires.standard.short=ART
-America/Argentina/Catamarca.daylight.short=ARST
-America/Argentina/Catamarca.generic.short=ART
-America/Argentina/Catamarca.standard.short=ART
-America/Argentina/ComodRivadavia.daylight.short=ARST
-America/Argentina/ComodRivadavia.generic.short=ART
-America/Argentina/ComodRivadavia.standard.short=ART
-America/Argentina/Cordoba.daylight.short=ARST
-America/Argentina/Cordoba.generic.short=ART
-America/Argentina/Cordoba.standard.short=ART
-America/Argentina/Jujuy.daylight.short=ARST
-America/Argentina/Jujuy.generic.short=ART
-America/Argentina/Jujuy.standard.short=ART
-America/Argentina/La_Rioja.daylight.short=ARST
-America/Argentina/La_Rioja.generic.short=ART
-America/Argentina/La_Rioja.standard.short=ART
-America/Argentina/Mendoza.daylight.short=ARST
-America/Argentina/Mendoza.generic.short=ART
-America/Argentina/Mendoza.standard.short=ART
-America/Argentina/Rio_Gallegos.daylight.short=ARST
-America/Argentina/Rio_Gallegos.generic.short=ART
-America/Argentina/Rio_Gallegos.standard.short=ART
-America/Argentina/Salta.daylight.short=ARST
-America/Argentina/Salta.generic.short=ART
-America/Argentina/Salta.standard.short=ART
-America/Argentina/San_Juan.daylight.short=ARST
-America/Argentina/San_Juan.generic.short=ART
-America/Argentina/San_Juan.standard.short=ART
-America/Argentina/San_Luis.daylight.short=ARST
-America/Argentina/San_Luis.generic.short=ART
-America/Argentina/San_Luis.standard.short=ART
-America/Argentina/Tucuman.daylight.short=ARST
-America/Argentina/Tucuman.generic.short=ART
-America/Argentina/Tucuman.standard.short=ART
-America/Argentina/Ushuaia.daylight.short=ARST
-America/Argentina/Ushuaia.generic.short=ART
-America/Argentina/Ushuaia.standard.short=ART
-America/Aruba.daylight.short=ADT
-America/Aruba.generic.short=AT
-America/Aruba.standard.short=AST
-America/Asuncion.daylight.short=PYST
-America/Asuncion.generic.short=PYT
-America/Asuncion.standard.short=PYT
-America/Atikokan.daylight.short=EDT
-America/Atikokan.generic.short=ET
-America/Atikokan.standard.short=EST
-America/Atka.daylight.short=HADT
-America/Atka.generic.short=HAT
-America/Atka.standard.short=HAST
-America/Bahia_Banderas.daylight.short=CDT
-America/Bahia_Banderas.generic.short=CT
-America/Bahia_Banderas.standard.short=CST
-America/Bahia.daylight.short=BRST
-America/Bahia.generic.short=BRT
-America/Bahia.standard.short=BRT
-America/Barbados.daylight.short=ADT
-America/Barbados.generic.short=AT
-America/Barbados.standard.short=AST
-America/Belem.daylight.short=BRST
-America/Belem.generic.short=BRT
-America/Belem.standard.short=BRT
-America/Belize.daylight.short=CDT
-America/Belize.generic.short=CT
-America/Belize.standard.short=CST
-America/Blanc-Sablon.daylight.short=ADT
-America/Blanc-Sablon.generic.short=AT
-America/Blanc-Sablon.standard.short=AST
-America/Boa_Vista.daylight.short=AMST
-America/Boa_Vista.generic.short=AMT
-America/Boa_Vista.standard.short=AMT
-America/Bogota.daylight.short=COST
-America/Bogota.generic.short=COT
-America/Bogota.standard.short=COT
-America/Boise.daylight.short=MDT
-America/Boise.generic.short=MT
-America/Boise.standard.short=MST
-America/Buenos_Aires.daylight.short=ARST
-America/Buenos_Aires.generic.short=ART
-America/Buenos_Aires.standard.short=ART
-America/Cambridge_Bay.daylight.short=MDT
-America/Cambridge_Bay.generic.short=MT
-America/Cambridge_Bay.standard.short=MST
-America/Campo_Grande.daylight.short=AMST
-America/Campo_Grande.generic.short=AMT
-America/Campo_Grande.standard.short=AMT
-America/Cancun.daylight.short=CDT
-America/Cancun.generic.short=CT
-America/Cancun.standard.short=CST
-America/Caracas.daylight.short=VEST
-America/Caracas.generic.short=VET
-America/Caracas.standard.short=VET
-America/Catamarca.daylight.short=ARST
-America/Catamarca.generic.short=ART
-America/Catamarca.standard.short=ART
-America/Cayenne.daylight.short=GFST
-America/Cayenne.generic.short=GFT
-America/Cayenne.standard.short=GFT
-America/Cayman.daylight.short=EDT
-America/Cayman.generic.short=ET
-America/Cayman.standard.short=EST
-America/Chicago.daylight.short=CDT
-America/Chicago.generic.short=CT
-America/Chicago.standard.short=CST
-America/Chihuahua.daylight.short=MDT
-America/Chihuahua.generic.short=MT
-America/Chihuahua.standard.short=MST
-America/Coral_Harbour.daylight.short=EDT
-America/Coral_Harbour.generic.short=ET
-America/Coral_Harbour.standard.short=EST
-America/Cordoba.daylight.short=ARST
-America/Cordoba.generic.short=ART
-America/Cordoba.standard.short=ART
-America/Costa_Rica.daylight.short=CDT
-America/Costa_Rica.generic.short=CT
-America/Costa_Rica.standard.short=CST
-America/Creston.daylight.short=MDT
-America/Creston.generic.short=MT
-America/Creston.standard.short=MST
-America/Cuiaba.daylight.short=AMST
-America/Cuiaba.generic.short=AMT
-America/Cuiaba.standard.short=AMT
-America/Curacao.daylight.short=ADT
-America/Curacao.generic.short=AT
-America/Curacao.standard.short=AST
-America/Danmarkshavn.daylight.short=GMT
-America/Danmarkshavn.generic.short=GMT
-America/Danmarkshavn.standard.short=GMT
-America/Dawson_Creek.daylight.short=MDT
-America/Dawson_Creek.generic.short=MT
-America/Dawson_Creek.standard.short=MST
-America/Dawson.daylight.short=PDT
-America/Dawson.generic.short=PT
-America/Dawson.standard.short=PST
-America/Denver.daylight.short=MDT
-America/Denver.generic.short=MT
-America/Denver.standard.short=MST
-America/Detroit.daylight.short=EDT
-America/Detroit.generic.short=ET
-America/Detroit.standard.short=EST
-America/Dominica.daylight.short=ADT
-America/Dominica.generic.short=AT
-America/Dominica.standard.short=AST
-America/Edmonton.daylight.short=MDT
-America/Edmonton.generic.short=MT
-America/Edmonton.standard.short=MST
-America/Eirunepe.daylight.short=ACST
-America/Eirunepe.generic.short=ACT
-America/Eirunepe.standard.short=ACT
-America/El_Salvador.daylight.short=CDT
-America/El_Salvador.generic.short=CT
-America/El_Salvador.standard.short=CST
-America/Ensenada.daylight.short=PDT
-America/Ensenada.generic.short=PT
-America/Ensenada.standard.short=PST
-America/Fortaleza.daylight.short=BRST
-America/Fortaleza.generic.short=BRT
-America/Fortaleza.standard.short=BRT
-America/Fort_Wayne.daylight.short=EDT
-America/Fort_Wayne.generic.short=ET
-America/Fort_Wayne.standard.short=EST
-America/Glace_Bay.daylight.short=ADT
-America/Glace_Bay.generic.short=AT
-America/Glace_Bay.standard.short=AST
-America/Godthab.daylight.short=WGST
-America/Godthab.generic.short=WGT
-America/Godthab.standard.short=WGT
-America/Goose_Bay.daylight.short=ADT
-America/Goose_Bay.generic.short=AT
-America/Goose_Bay.standard.short=AST
-America/Grand_Turk.daylight.short=EDT
-America/Grand_Turk.generic.short=ET
-America/Grand_Turk.standard.short=EST
-America/Grenada.daylight.short=ADT
-America/Grenada.generic.short=AT
-America/Grenada.standard.short=AST
-America/Guadeloupe.daylight.short=ADT
-America/Guadeloupe.generic.short=AT
-America/Guadeloupe.standard.short=AST
-America/Guatemala.daylight.short=CDT
-America/Guatemala.generic.short=CT
-America/Guatemala.standard.short=CST
-America/Guayaquil.daylight.short=ECST
-America/Guayaquil.generic.short=ECT
-America/Guayaquil.standard.short=ECT
-America/Guyana.daylight.short=GYST
-America/Guyana.generic.short=GYT
-America/Guyana.standard.short=GYT
-America/Halifax.daylight.short=ADT
-America/Halifax.generic.short=AT
-America/Halifax.standard.short=AST
-America/Havana.daylight.short=CDT
-America/Havana.generic.short=CT
-America/Havana.standard.short=CST
-America/Hermosillo.daylight.short=MDT
-America/Hermosillo.generic.short=MT
-America/Hermosillo.standard.short=MST
-America/Indiana/Indianapolis.daylight.short=EDT
-America/Indiana/Indianapolis.generic.short=ET
-America/Indiana/Indianapolis.standard.short=EST
-America/Indiana/Knox.daylight.short=CDT
-America/Indiana/Knox.generic.short=CT
-America/Indiana/Knox.standard.short=CST
-America/Indiana/Marengo.daylight.short=EDT
-America/Indiana/Marengo.generic.short=ET
-America/Indiana/Marengo.standard.short=EST
-America/Indiana/Petersburg.daylight.short=EDT
-America/Indiana/Petersburg.generic.short=ET
-America/Indiana/Petersburg.standard.short=EST
-America/Indianapolis.daylight.short=EDT
-America/Indianapolis.generic.short=ET
-America/Indianapolis.standard.short=EST
-America/Indiana/Tell_City.daylight.short=CDT
-America/Indiana/Tell_City.generic.short=CT
-America/Indiana/Tell_City.standard.short=CST
-America/Indiana/Vevay.daylight.short=EDT
-America/Indiana/Vevay.generic.short=ET
-America/Indiana/Vevay.standard.short=EST
-America/Indiana/Vincennes.daylight.short=EDT
-America/Indiana/Vincennes.generic.short=ET
-America/Indiana/Vincennes.standard.short=EST
-America/Indiana/Winamac.daylight.short=EDT
-America/Indiana/Winamac.generic.short=ET
-America/Indiana/Winamac.standard.short=EST
-America/Inuvik.daylight.short=MDT
-America/Inuvik.generic.short=MT
-America/Inuvik.standard.short=MST
-America/Iqaluit.daylight.short=EDT
-America/Iqaluit.generic.short=ET
-America/Iqaluit.standard.short=EST
-America/Jamaica.daylight.short=EDT
-America/Jamaica.generic.short=ET
-America/Jamaica.standard.short=EST
-America/Jujuy.daylight.short=ARST
-America/Jujuy.generic.short=ART
-America/Jujuy.standard.short=ART
-America/Juneau.daylight.short=AKDT
-America/Juneau.generic.short=AKT
-America/Juneau.standard.short=AKST
-America/Kentucky/Louisville.daylight.short=EDT
-America/Kentucky/Louisville.generic.short=ET
-America/Kentucky/Louisville.standard.short=EST
-America/Kentucky/Monticello.daylight.short=EDT
-America/Kentucky/Monticello.generic.short=ET
-America/Kentucky/Monticello.standard.short=EST
-America/Knox_IN.daylight.short=CDT
-America/Knox_IN.generic.short=CT
-America/Knox_IN.standard.short=CST
-America/Kralendijk.daylight.short=ADT
-America/Kralendijk.generic.short=AT
-America/Kralendijk.standard.short=AST
-America/La_Paz.daylight.short=BOST
-America/La_Paz.generic.short=BOT
-America/La_Paz.standard.short=BOT
-America/Lima.daylight.short=PEST
-America/Lima.generic.short=PET
-America/Lima.standard.short=PET
-America/Los_Angeles.daylight.short=PDT
-America/Los_Angeles.generic.short=PT
-America/Los_Angeles.standard.short=PST
-America/Louisville.daylight.short=EDT
-America/Louisville.generic.short=ET
-America/Louisville.standard.short=EST
-America/Lower_Princes.daylight.short=ADT
-America/Lower_Princes.generic.short=AT
-America/Lower_Princes.standard.short=AST
-America/Maceio.daylight.short=BRST
-America/Maceio.generic.short=BRT
-America/Maceio.standard.short=BRT
-America/Managua.daylight.short=CDT
-America/Managua.generic.short=CT
-America/Managua.standard.short=CST
-America/Manaus.daylight.short=AMST
-America/Manaus.generic.short=AMT
-America/Manaus.standard.short=AMT
-America/Marigot.daylight.short=ADT
-America/Marigot.generic.short=AT
-America/Marigot.standard.short=AST
-America/Martinique.daylight.short=ADT
-America/Martinique.generic.short=AT
-America/Martinique.standard.short=AST
-America/Matamoros.daylight.short=CDT
-America/Matamoros.generic.short=CT
-America/Matamoros.standard.short=CST
-America/Mazatlan.daylight.short=MDT
-America/Mazatlan.generic.short=MT
-America/Mazatlan.standard.short=MST
-America/Mendoza.daylight.short=ARST
-America/Mendoza.generic.short=ART
-America/Mendoza.standard.short=ART
-America/Menominee.daylight.short=CDT
-America/Menominee.generic.short=CT
-America/Menominee.standard.short=CST
-America/Merida.daylight.short=CDT
-America/Merida.generic.short=CT
-America/Merida.standard.short=CST
-America/Metlakatla.daylight.short=MeDT
-America/Metlakatla.generic.short=MeT
-America/Metlakatla.standard.short=MeST
-America/Mexico_City.daylight.short=CDT
-America/Mexico_City.generic.short=CT
-America/Mexico_City.standard.short=CST
-America/Miquelon.daylight.short=PMDT
-America/Miquelon.generic.short=PMT
-America/Miquelon.standard.short=PMST
-America/Moncton.daylight.short=ADT
-America/Moncton.generic.short=AT
-America/Moncton.standard.short=AST
-America/Monterrey.daylight.short=CDT
-America/Monterrey.generic.short=CT
-America/Monterrey.standard.short=CST
-America/Montevideo.daylight.short=UYST
-America/Montevideo.generic.short=UYT
-America/Montevideo.standard.short=UYT
-America/Montreal.daylight.short=EDT
-America/Montreal.generic.short=ET
-America/Montreal.standard.short=EST
-America/Montserrat.daylight.short=ADT
-America/Montserrat.generic.short=AT
-America/Montserrat.standard.short=AST
-America/Nassau.daylight.short=EDT
-America/Nassau.generic.short=ET
-America/Nassau.standard.short=EST
-America/New_York.daylight.short=EDT
-America/New_York.generic.short=ET
-America/New_York.standard.short=EST
-America/Nipigon.daylight.short=EDT
-America/Nipigon.generic.short=ET
-America/Nipigon.standard.short=EST
-America/Nome.daylight.short=AKDT
-America/Nome.generic.short=AKT
-America/Nome.standard.short=AKST
-America/Noronha.daylight.short=FNST
-America/Noronha.generic.short=FNT
-America/Noronha.standard.short=FNT
-America/North_Dakota/Beulah.daylight.short=CDT
-America/North_Dakota/Beulah.generic.short=CT
-America/North_Dakota/Beulah.standard.short=CST
-America/North_Dakota/Center.daylight.short=CDT
-America/North_Dakota/Center.generic.short=CT
-America/North_Dakota/Center.standard.short=CST
-America/North_Dakota/New_Salem.daylight.short=CDT
-America/North_Dakota/New_Salem.generic.short=CT
-America/North_Dakota/New_Salem.standard.short=CST
-America/Ojinaga.daylight.short=MDT
-America/Ojinaga.generic.short=MT
-America/Ojinaga.standard.short=MST
-America/Panama.daylight.short=EDT
-America/Panama.generic.short=ET
-America/Panama.standard.short=EST
-America/Pangnirtung.daylight.short=EDT
-America/Pangnirtung.generic.short=ET
-America/Pangnirtung.standard.short=EST
-America/Paramaribo.daylight.short=SRST
-America/Paramaribo.generic.short=SRT
-America/Paramaribo.standard.short=SRT
-America/Phoenix.daylight.short=MDT
-America/Phoenix.generic.short=MT
-America/Phoenix.standard.short=MST
-America/Port-au-Prince.daylight.short=EDT
-America/Port-au-Prince.generic.short=ET
-America/Port-au-Prince.standard.short=EST
-America/Porto_Acre.daylight.short=ACST
-America/Porto_Acre.generic.short=ACT
-America/Porto_Acre.standard.short=ACT
-America/Port_of_Spain.daylight.short=ADT
-America/Port_of_Spain.generic.short=AT
-America/Port_of_Spain.standard.short=AST
-America/Porto_Velho.daylight.short=AMST
-America/Porto_Velho.generic.short=AMT
-America/Porto_Velho.standard.short=AMT
-America/Puerto_Rico.daylight.short=ADT
-America/Puerto_Rico.generic.short=AT
-America/Puerto_Rico.standard.short=AST
-America/Rainy_River.daylight.short=CDT
-America/Rainy_River.generic.short=CT
-America/Rainy_River.standard.short=CST
-America/Rankin_Inlet.daylight.short=CDT
-America/Rankin_Inlet.generic.short=CT
-America/Rankin_Inlet.standard.short=CST
-America/Recife.daylight.short=BRST
-America/Recife.generic.short=BRT
-America/Recife.standard.short=BRT
-America/Regina.daylight.short=CDT
-America/Regina.generic.short=CT
-America/Regina.standard.short=CST
-America/Resolute.daylight.short=CDT
-America/Resolute.generic.short=CT
-America/Resolute.standard.short=CST
-America/Rio_Branco.daylight.short=ACST
-America/Rio_Branco.generic.short=ACT
-America/Rio_Branco.standard.short=ACT
-America/Rosario.daylight.short=ARST
-America/Rosario.generic.short=ART
-America/Rosario.standard.short=ART
-America/Santa_Isabel.daylight.short=PDT
-America/Santa_Isabel.generic.short=PT
-America/Santa_Isabel.standard.short=PST
-America/Santarem.daylight.short=BRST
-America/Santarem.generic.short=BRT
-America/Santarem.standard.short=BRT
-America/Santiago.daylight.short=CLST
-America/Santiago.generic.short=CLT
-America/Santiago.standard.short=CLT
-America/Santo_Domingo.daylight.short=ADT
-America/Santo_Domingo.generic.short=AT
-America/Santo_Domingo.standard.short=AST
-America/Sao_Paulo.daylight.short=BRST
-America/Sao_Paulo.generic.short=BRT
-America/Sao_Paulo.standard.short=BRT
-America/Scoresbysund.daylight.short=EGST
-America/Scoresbysund.generic.short=EGT
-America/Scoresbysund.standard.short=EGT
-America/Shiprock.daylight.short=MDT
-America/Shiprock.generic.short=MT
-America/Shiprock.standard.short=MST
-America/Sitka.daylight.short=AKDT
-America/Sitka.generic.short=AKT
-America/Sitka.standard.short=AKST
-America/St_Barthelemy.daylight.short=ADT
-America/St_Barthelemy.generic.short=AT
-America/St_Barthelemy.standard.short=AST
-America/St_Johns.daylight.short=NDT
-America/St_Johns.generic.short=NT
-America/St_Johns.standard.short=NST
-America/St_Kitts.daylight.short=ADT
-America/St_Kitts.generic.short=AT
-America/St_Kitts.standard.short=AST
-America/St_Lucia.daylight.short=ADT
-America/St_Lucia.generic.short=AT
-America/St_Lucia.standard.short=AST
-America/St_Thomas.daylight.short=ADT
-America/St_Thomas.generic.short=AT
-America/St_Thomas.standard.short=AST
-America/St_Vincent.daylight.short=ADT
-America/St_Vincent.generic.short=AT
-America/St_Vincent.standard.short=AST
-America/Swift_Current.daylight.short=CDT
-America/Swift_Current.generic.short=CT
-America/Swift_Current.standard.short=CST
-America/Tegucigalpa.daylight.short=CDT
-America/Tegucigalpa.generic.short=CT
-America/Tegucigalpa.standard.short=CST
-America/Thule.daylight.short=ADT
-America/Thule.generic.short=AT
-America/Thule.standard.short=AST
-America/Thunder_Bay.daylight.short=EDT
-America/Thunder_Bay.generic.short=ET
-America/Thunder_Bay.standard.short=EST
-America/Tijuana.daylight.short=PDT
-America/Tijuana.generic.short=PT
-America/Tijuana.standard.short=PST
-America/Toronto.daylight.short=EDT
-America/Toronto.generic.short=ET
-America/Toronto.standard.short=EST
-America/Tortola.daylight.short=ADT
-America/Tortola.generic.short=AT
-America/Tortola.standard.short=AST
-America/Vancouver.daylight.short=PDT
-America/Vancouver.generic.short=PT
-America/Vancouver.standard.short=PST
-America/Virgin.daylight.short=ADT
-America/Virgin.generic.short=AT
-America/Virgin.standard.short=AST
-America/Whitehorse.daylight.short=PDT
-America/Whitehorse.generic.short=PT
-America/Whitehorse.standard.short=PST
-America/Winnipeg.daylight.short=CDT
-America/Winnipeg.generic.short=CT
-America/Winnipeg.standard.short=CST
-America/Yakutat.daylight.short=AKDT
-America/Yakutat.generic.short=AKT
-America/Yakutat.standard.short=AKST
-America/Yellowknife.daylight.short=MDT
-America/Yellowknife.generic.short=MT
-America/Yellowknife.standard.short=MST
-Antarctica/Casey.daylight.short=WST
-Antarctica/Casey.generic.short=WT
-Antarctica/Casey.standard.short=WST
-Antarctica/Davis.daylight.short=DAVST
-Antarctica/Davis.generic.short=DAVT
-Antarctica/Davis.standard.short=DAVT
-Antarctica/DumontDUrville.daylight.short=DDUST
-Antarctica/DumontDUrville.generic.short=DDUT
-Antarctica/DumontDUrville.standard.short=DDUT
-Antarctica/Macquarie.daylight.short=MIST
-Antarctica/Macquarie.generic.short=MIST
-Antarctica/Macquarie.standard.short=MIST
-Antarctica/Mawson.daylight.short=MAWST
-Antarctica/Mawson.generic.short=MAWT
-Antarctica/Mawson.standard.short=MAWT
-Antarctica/McMurdo.daylight.short=NZDT
-Antarctica/McMurdo.generic.short=NZT
-Antarctica/McMurdo.standard.short=NZST
-Antarctica/Palmer.daylight.short=CLST
-Antarctica/Palmer.generic.short=CLT
-Antarctica/Palmer.standard.short=CLT
-Antarctica/Rothera.daylight.short=ROTST
-Antarctica/Rothera.generic.short=ROTT
-Antarctica/Rothera.standard.short=ROTT
-Antarctica/South_Pole.daylight.short=NZDT
-Antarctica/South_Pole.generic.short=NZT
-Antarctica/South_Pole.standard.short=NZST
-Antarctica/Syowa.daylight.short=SYOST
-Antarctica/Syowa.generic.short=SYOT
-Antarctica/Syowa.standard.short=SYOT
-Antarctica/Vostok.daylight.short=VOSST
-Antarctica/Vostok.generic.short=VOST
-Antarctica/Vostok.standard.short=VOST
-Arctic/Longyearbyen.daylight.short=CEST
-Arctic/Longyearbyen.generic.short=CET
-Arctic/Longyearbyen.standard.short=CET
-ART.daylight.short=EEST
-ART.generic.short=EET
-ART.standard.short=EET
-Asia/Aden.daylight.short=ADT
-Asia/Aden.generic.short=AT
-Asia/Aden.standard.short=AST
-Asia/Almaty.daylight.short=ALMST
-Asia/Almaty.generic.short=ALMT
-Asia/Almaty.standard.short=ALMT
-Asia/Amman.daylight.short=ADT
-Asia/Amman.generic.short=AT
-Asia/Amman.standard.short=AST
-Asia/Anadyr.daylight.short=ANAST
-Asia/Anadyr.generic.short=ANAT
-Asia/Anadyr.standard.short=ANAT
-Asia/Aqtau.daylight.short=AQTST
-Asia/Aqtau.generic.short=AQTT
-Asia/Aqtau.standard.short=AQTT
-Asia/Aqtobe.daylight.short=AQTST
-Asia/Aqtobe.generic.short=AQTT
-Asia/Aqtobe.standard.short=AQTT
-Asia/Ashgabat.daylight.short=TMST
-Asia/Ashgabat.generic.short=TMT
-Asia/Ashgabat.standard.short=TMT
-Asia/Ashkhabad.daylight.short=TMST
-Asia/Ashkhabad.generic.short=TMT
-Asia/Ashkhabad.standard.short=TMT
-Asia/Baghdad.daylight.short=ADT
-Asia/Baghdad.generic.short=AT
-Asia/Baghdad.standard.short=AST
-Asia/Bahrain.daylight.short=ADT
-Asia/Bahrain.generic.short=AT
-Asia/Bahrain.standard.short=AST
-Asia/Baku.daylight.short=AZST
-Asia/Baku.generic.short=AZT
-Asia/Baku.standard.short=AZT
-Asia/Bangkok.daylight.short=ICST
-Asia/Bangkok.generic.short=ICT
-Asia/Bangkok.standard.short=ICT
-Asia/Beirut.daylight.short=EEST
-Asia/Beirut.generic.short=EET
-Asia/Beirut.standard.short=EET
-Asia/Bishkek.daylight.short=KGST
-Asia/Bishkek.generic.short=KGT
-Asia/Bishkek.standard.short=KGT
-Asia/Brunei.daylight.short=BNST
-Asia/Brunei.generic.short=BNT
-Asia/Brunei.standard.short=BNT
-Asia/Calcutta.daylight.short=IDT
-Asia/Calcutta.generic.short=IT
-Asia/Calcutta.standard.short=IST
-Asia/Choibalsan.daylight.short=CHOST
-Asia/Choibalsan.generic.short=CHOT
-Asia/Choibalsan.standard.short=CHOT
-Asia/Chongqing.daylight.short=CDT
-Asia/Chongqing.generic.short=CT
-Asia/Chongqing.standard.short=CST
-Asia/Chungking.daylight.short=CDT
-Asia/Chungking.generic.short=CT
-Asia/Chungking.standard.short=CST
-Asia/Colombo.daylight.short=IDT
-Asia/Colombo.generic.short=IT
-Asia/Colombo.standard.short=IST
-Asia/Dacca.daylight.short=BDST
-Asia/Dacca.generic.short=BDT
-Asia/Dacca.standard.short=BDT
-Asia/Damascus.daylight.short=EEST
-Asia/Damascus.generic.short=EET
-Asia/Damascus.standard.short=EET
-Asia/Dhaka.daylight.short=BDST
-Asia/Dhaka.generic.short=BDT
-Asia/Dhaka.standard.short=BDT
-Asia/Dili.daylight.short=TLST
-Asia/Dili.generic.short=TLT
-Asia/Dili.standard.short=TLT
-Asia/Dubai.daylight.short=GDT
-Asia/Dubai.generic.short=GT
-Asia/Dubai.standard.short=GST
-Asia/Dushanbe.daylight.short=TJST
-Asia/Dushanbe.generic.short=TJT
-Asia/Dushanbe.standard.short=TJT
-Asia/Gaza.daylight.short=EEST
-Asia/Gaza.generic.short=EET
-Asia/Gaza.standard.short=EET
-Asia/Harbin.daylight.short=CDT
-Asia/Harbin.generic.short=CT
-Asia/Harbin.standard.short=CST
-Asia/Hebron.daylight.short=EEST
-Asia/Hebron.generic.short=EET
-Asia/Hebron.standard.short=EET
-Asia/Ho_Chi_Minh.daylight.short=ICST
-Asia/Ho_Chi_Minh.generic.short=ICT
-Asia/Ho_Chi_Minh.standard.short=ICT
-Asia/Hong_Kong.daylight.short=HKST
-Asia/Hong_Kong.generic.short=HKT
-Asia/Hong_Kong.standard.short=HKT
-Asia/Hovd.daylight.short=HOVST
-Asia/Hovd.generic.short=HOVT
-Asia/Hovd.standard.short=HOVT
-Asia/Irkutsk.daylight.short=IRKST
-Asia/Irkutsk.generic.short=IRKT
-Asia/Irkutsk.standard.short=IRKT
-Asia/Istanbul.daylight.short=EEST
-Asia/Istanbul.generic.short=EET
-Asia/Istanbul.standard.short=EET
-Asia/Jakarta.daylight.short=WIST
-Asia/Jakarta.generic.short=WIB
-Asia/Jakarta.standard.short=WIB
-Asia/Jayapura.daylight.short=EIST
-Asia/Jayapura.generic.short=WIT
-Asia/Jayapura.standard.short=WIT
-Asia/Jerusalem.daylight.short=IDT
-Asia/Jerusalem.generic.short=IT
-Asia/Jerusalem.standard.short=IST
-Asia/Kabul.daylight.short=AFST
-Asia/Kabul.generic.short=AFT
-Asia/Kabul.standard.short=AFT
-Asia/Kamchatka.daylight.short=PETST
-Asia/Kamchatka.generic.short=PETT
-Asia/Kamchatka.standard.short=PETT
-Asia/Karachi.daylight.short=PKST
-Asia/Karachi.generic.short=PKT
-Asia/Karachi.standard.short=PKT
-Asia/Kashgar.daylight.short=CDT
-Asia/Kashgar.generic.short=CT
-Asia/Kashgar.standard.short=CST
-Asia/Kathmandu.daylight.short=NPST
-Asia/Kathmandu.generic.short=NPT
-Asia/Kathmandu.standard.short=NPT
-Asia/Katmandu.daylight.short=NPST
-Asia/Katmandu.generic.short=NPT
-Asia/Katmandu.standard.short=NPT
-Asia/Khandyga.daylight.short=YAKST
-Asia/Khandyga.generic.short=YAKT
-Asia/Khandyga.standard.short=YAKT
-Asia/Kolkata.daylight.short=IDT
-Asia/Kolkata.generic.short=IT
-Asia/Kolkata.standard.short=IST
-Asia/Krasnoyarsk.daylight.short=KRAST
-Asia/Krasnoyarsk.generic.short=KRAT
-Asia/Krasnoyarsk.standard.short=KRAT
-Asia/Kuala_Lumpur.daylight.short=MYST
-Asia/Kuala_Lumpur.generic.short=MYT
-Asia/Kuala_Lumpur.standard.short=MYT
-Asia/Kuching.daylight.short=MYST
-Asia/Kuching.generic.short=MYT
-Asia/Kuching.standard.short=MYT
-Asia/Kuwait.daylight.short=ADT
-Asia/Kuwait.generic.short=AT
-Asia/Kuwait.standard.short=AST
-Asia/Macao.daylight.short=CDT
-Asia/Macao.generic.short=CT
-Asia/Macao.standard.short=CST
-Asia/Macau.daylight.short=CDT
-Asia/Macau.generic.short=CT
-Asia/Macau.standard.short=CST
-Asia/Magadan.daylight.short=MAGST
-Asia/Magadan.generic.short=MAGT
-Asia/Magadan.standard.short=MAGT
-Asia/Makassar.daylight.short=CIST
-Asia/Makassar.generic.short=WITA
-Asia/Makassar.standard.short=WITA
-Asia/Manila.daylight.short=PHST
-Asia/Manila.generic.short=PHT
-Asia/Manila.standard.short=PHT
-Asia/Muscat.daylight.short=GDT
-Asia/Muscat.generic.short=GT
-Asia/Muscat.standard.short=GST
-Asia/Nicosia.daylight.short=EEST
-Asia/Nicosia.generic.short=EET
-Asia/Nicosia.standard.short=EET
-Asia/Novokuznetsk.daylight.short=NOVST
-Asia/Novokuznetsk.generic.short=NOVT
-Asia/Novokuznetsk.standard.short=NOVT
-Asia/Novosibirsk.daylight.short=NOVST
-Asia/Novosibirsk.generic.short=NOVT
-Asia/Novosibirsk.standard.short=NOVT
-Asia/Omsk.daylight.short=OMSST
-Asia/Omsk.generic.short=OMST
-Asia/Omsk.standard.short=OMST
-Asia/Oral.daylight.short=ORAST
-Asia/Oral.generic.short=ORAT
-Asia/Oral.standard.short=ORAT
-Asia/Phnom_Penh.daylight.short=ICST
-Asia/Phnom_Penh.generic.short=ICT
-Asia/Phnom_Penh.standard.short=ICT
-Asia/Pontianak.daylight.short=WIST
-Asia/Pontianak.generic.short=WIB
-Asia/Pontianak.standard.short=WIB
-Asia/Pyongyang.daylight.short=KDT
-Asia/Pyongyang.generic.short=KT
-Asia/Pyongyang.standard.short=KST
-Asia/Qatar.daylight.short=ADT
-Asia/Qatar.generic.short=AT
-Asia/Qatar.standard.short=AST
-Asia/Qyzylorda.daylight.short=QYZST
-Asia/Qyzylorda.generic.short=QYZT
-Asia/Qyzylorda.standard.short=QYZT
-Asia/Rangoon.daylight.short=MMST
-Asia/Rangoon.generic.short=MMT
-Asia/Rangoon.standard.short=MMT
-Asia/Saigon.daylight.short=ICST
-Asia/Saigon.generic.short=ICT
-Asia/Saigon.standard.short=ICT
-Asia/Sakhalin.daylight.short=SAKST
-Asia/Sakhalin.generic.short=SAKT
-Asia/Sakhalin.standard.short=SAKT
-Asia/Samarkand.daylight.short=UZST
-Asia/Samarkand.generic.short=UZT
-Asia/Samarkand.standard.short=UZT
-Asia/Seoul.daylight.short=KDT
-Asia/Seoul.generic.short=KT
-Asia/Seoul.standard.short=KST
-Asia/Shanghai.daylight.short=CDT
-Asia/Shanghai.generic.short=CT
-Asia/Shanghai.standard.short=CST
-Asia/Singapore.daylight.short=SGST
-Asia/Singapore.generic.short=SGT
-Asia/Singapore.standard.short=SGT
-Asia/Taipei.daylight.short=CDT
-Asia/Taipei.generic.short=CT
-Asia/Taipei.standard.short=CST
-Asia/Tashkent.daylight.short=UZST
-Asia/Tashkent.generic.short=UZT
-Asia/Tashkent.standard.short=UZT
-Asia/Tbilisi.daylight.short=GEST
-Asia/Tbilisi.generic.short=GET
-Asia/Tbilisi.standard.short=GET
-Asia/Tehran.daylight.short=IRDT
-Asia/Tehran.generic.short=IRT
-Asia/Tehran.standard.short=IRST
-Asia/Tel_Aviv.daylight.short=IDT
-Asia/Tel_Aviv.generic.short=IT
-Asia/Tel_Aviv.standard.short=IST
-Asia/Thimbu.daylight.short=BTST
-Asia/Thimbu.generic.short=BTT
-Asia/Thimbu.standard.short=BTT
-Asia/Thimphu.daylight.short=BTST
-Asia/Thimphu.generic.short=BTT
-Asia/Thimphu.standard.short=BTT
-Asia/Tokyo.daylight.short=JDT
-Asia/Tokyo.generic.short=JT
-Asia/Tokyo.standard.short=JST
-Asia/Ujung_Pandang.daylight.short=CIST
-Asia/Ujung_Pandang.generic.short=WITA
-Asia/Ujung_Pandang.standard.short=WITA
-Asia/Ulaanbaatar.daylight.short=ULAST
-Asia/Ulaanbaatar.generic.short=ULAT
-Asia/Ulaanbaatar.standard.short=ULAT
-Asia/Ulan_Bator.daylight.short=ULAST
-Asia/Ulan_Bator.generic.short=ULAT
-Asia/Ulan_Bator.standard.short=ULAT
-Asia/Urumqi.daylight.short=CDT
-Asia/Urumqi.generic.short=CT
-Asia/Urumqi.standard.short=CST
-Asia/Ust-Nera.daylight.short=VLAST
-Asia/Ust-Nera.generic.short=VLAT
-Asia/Ust-Nera.standard.short=VLAT
-Asia/Vientiane.daylight.short=ICST
-Asia/Vientiane.generic.short=ICT
-Asia/Vientiane.standard.short=ICT
-Asia/Vladivostok.daylight.short=VLAST
-Asia/Vladivostok.generic.short=VLAT
-Asia/Vladivostok.standard.short=VLAT
-Asia/Yakutsk.daylight.short=YAKST
-Asia/Yakutsk.generic.short=YAKT
-Asia/Yakutsk.standard.short=YAKT
-Asia/Yekaterinburg.daylight.short=YEKST
-Asia/Yekaterinburg.generic.short=YEKT
-Asia/Yekaterinburg.standard.short=YEKT
-Asia/Yerevan.daylight.short=AMST
-Asia/Yerevan.generic.short=AMT
-Asia/Yerevan.standard.short=AMT
-AST.daylight.short=AKDT
-AST.generic.short=AKT
-AST.standard.short=AKST
-Atlantic/Azores.daylight.short=AZOST
-Atlantic/Azores.generic.short=AZOT
-Atlantic/Azores.standard.short=AZOT
-Atlantic/Bermuda.daylight.short=ADT
-Atlantic/Bermuda.generic.short=AT
-Atlantic/Bermuda.standard.short=AST
-Atlantic/Canary.daylight.short=WEST
-Atlantic/Canary.generic.short=WET
-Atlantic/Canary.standard.short=WET
-Atlantic/Cape_Verde.daylight.short=CVST
-Atlantic/Cape_Verde.generic.short=CVT
-Atlantic/Cape_Verde.standard.short=CVT
-Atlantic/Faeroe.daylight.short=WEST
-Atlantic/Faeroe.generic.short=WET
-Atlantic/Faeroe.standard.short=WET
-Atlantic/Faroe.daylight.short=WEST
-Atlantic/Faroe.generic.short=WET
-Atlantic/Faroe.standard.short=WET
-Atlantic/Jan_Mayen.daylight.short=CEST
-Atlantic/Jan_Mayen.generic.short=CET
-Atlantic/Jan_Mayen.standard.short=CET
-Atlantic/Madeira.daylight.short=WEST
-Atlantic/Madeira.generic.short=WET
-Atlantic/Madeira.standard.short=WET
-Atlantic/Reykjavik.daylight.short=GMT
-Atlantic/Reykjavik.generic.short=GMT
-Atlantic/Reykjavik.standard.short=GMT
-Atlantic/South_Georgia.daylight.short=GDT
-Atlantic/South_Georgia.generic.short=GT
-Atlantic/South_Georgia.standard.short=GST
-Atlantic/Stanley.daylight.short=FKST
-Atlantic/Stanley.generic.short=FKT
-Atlantic/Stanley.standard.short=FKT
-Atlantic/St_Helena.daylight.short=GMT
-Atlantic/St_Helena.generic.short=GMT
-Atlantic/St_Helena.standard.short=GMT
-Australia/ACT.daylight.short=EST
-Australia/ACT.generic.short=ET
-Australia/ACT.standard.short=EST
-Australia/Adelaide.daylight.short=CST
-Australia/Adelaide.generic.short=CT
-Australia/Adelaide.standard.short=CST
-Australia/Brisbane.daylight.short=EST
-Australia/Brisbane.generic.short=ET
-Australia/Brisbane.standard.short=EST
-Australia/Broken_Hill.daylight.short=CST
-Australia/Broken_Hill.generic.short=CT
-Australia/Broken_Hill.standard.short=CST
-Australia/Canberra.daylight.short=EST
-Australia/Canberra.generic.short=ET
-Australia/Canberra.standard.short=EST
-Australia/Currie.daylight.short=EST
-Australia/Currie.generic.short=ET
-Australia/Currie.standard.short=EST
-Australia/Darwin.daylight.short=CST
-Australia/Darwin.generic.short=CT
-Australia/Darwin.standard.short=CST
-Australia/Eucla.daylight.short=CWST
-Australia/Eucla.generic.short=CWT
-Australia/Eucla.standard.short=CWST
-Australia/Hobart.daylight.short=EST
-Australia/Hobart.generic.short=ET
-Australia/Hobart.standard.short=EST
-Australia/LHI.daylight.short=LHST
-Australia/LHI.generic.short=LHT
-Australia/LHI.standard.short=LHST
-Australia/Lindeman.daylight.short=EST
-Australia/Lindeman.generic.short=ET
-Australia/Lindeman.standard.short=EST
-Australia/Lord_Howe.daylight.short=LHST
-Australia/Lord_Howe.generic.short=LHT
-Australia/Lord_Howe.standard.short=LHST
-Australia/Melbourne.daylight.short=EST
-Australia/Melbourne.generic.short=ET
-Australia/Melbourne.standard.short=EST
-Australia/North.daylight.short=CST
-Australia/North.generic.short=CT
-Australia/North.standard.short=CST
-Australia/NSW.daylight.short=EST
-Australia/NSW.generic.short=ET
-Australia/NSW.standard.short=EST
-Australia/Perth.daylight.short=WST
-Australia/Perth.generic.short=WT
-Australia/Perth.standard.short=WST
-Australia/Queensland.daylight.short=EST
-Australia/Queensland.generic.short=ET
-Australia/Queensland.standard.short=EST
-Australia/South.daylight.short=CST
-Australia/South.generic.short=CT
-Australia/South.standard.short=CST
-Australia/Sydney.daylight.short=EST
-Australia/Sydney.generic.short=ET
-Australia/Sydney.standard.short=EST
-Australia/Tasmania.daylight.short=EST
-Australia/Tasmania.generic.short=ET
-Australia/Tasmania.standard.short=EST
-Australia/Victoria.daylight.short=EST
-Australia/Victoria.generic.short=ET
-Australia/Victoria.standard.short=EST
-Australia/West.daylight.short=WST
-Australia/West.generic.short=WT
-Australia/West.standard.short=WST
-Australia/Yancowinna.daylight.short=CST
-Australia/Yancowinna.generic.short=CT
-Australia/Yancowinna.standard.short=CST
-BET.daylight.short=BRST
-BET.generic.short=BRT
-BET.standard.short=BRT
-Brazil/Acre.daylight.short=ACST
-Brazil/Acre.generic.short=ACT
-Brazil/Acre.standard.short=ACT
-Brazil/DeNoronha.daylight.short=FNST
-Brazil/DeNoronha.generic.short=FNT
-Brazil/DeNoronha.standard.short=FNT
-Brazil/East.daylight.short=BRST
-Brazil/East.generic.short=BRT
-Brazil/East.standard.short=BRT
-Brazil/West.daylight.short=AMST
-Brazil/West.generic.short=AMT
-Brazil/West.standard.short=AMT
-BST.daylight.short=BDST
-BST.generic.short=BDT
-BST.standard.short=BDT
-Canada/Atlantic.daylight.short=ADT
-Canada/Atlantic.generic.short=AT
-Canada/Atlantic.standard.short=AST
-Canada/Central.daylight.short=CDT
-Canada/Central.generic.short=CT
-Canada/Central.standard.short=CST
-Canada/Eastern.daylight.short=EDT
-Canada/Eastern.generic.short=ET
-Canada/Eastern.standard.short=EST
-Canada/East-Saskatchewan.daylight.short=CDT
-Canada/East-Saskatchewan.generic.short=CT
-Canada/East-Saskatchewan.standard.short=CST
-Canada/Mountain.daylight.short=MDT
-Canada/Mountain.generic.short=MT
-Canada/Mountain.standard.short=MST
-Canada/Newfoundland.daylight.short=NDT
-Canada/Newfoundland.generic.short=NT
-Canada/Newfoundland.standard.short=NST
-Canada/Pacific.daylight.short=PDT
-Canada/Pacific.generic.short=PT
-Canada/Pacific.standard.short=PST
-Canada/Saskatchewan.daylight.short=CDT
-Canada/Saskatchewan.generic.short=CT
-Canada/Saskatchewan.standard.short=CST
-Canada/Yukon.daylight.short=PDT
-Canada/Yukon.generic.short=PT
-Canada/Yukon.standard.short=PST
-CAT.daylight.short=CAST
-CAT.generic.short=CAT
-CAT.standard.short=CAT
-CET.daylight.short=CEST
-CET.generic.short=CET
-CET.standard.short=CET
-Chile/Continental.daylight.short=CLST
-Chile/Continental.generic.short=CLT
-Chile/Continental.standard.short=CLT
-Chile/EasterIsland.daylight.short=EASST
-Chile/EasterIsland.generic.short=EAST
-Chile/EasterIsland.standard.short=EAST
-CNT.daylight.short=NDT
-CNT.generic.short=NT
-CNT.standard.short=NST
-CST6CDT.daylight.short=CDT
-CST6CDT.generic.short=CT
-CST6CDT.standard.short=CST
-CST.daylight.short=CDT
-CST.generic.short=CT
-CST.standard.short=CST
-CTT.daylight.short=CDT
-CTT.generic.short=CT
-CTT.standard.short=CST
-Cuba.daylight.short=CDT
-Cuba.generic.short=CT
-Cuba.standard.short=CST
-EAT.daylight.short=EAST
-EAT.generic.short=EAT
-EAT.standard.short=EAT
-ECT.daylight.short=CEST
-ECT.generic.short=CET
-ECT.standard.short=CET
-EET.daylight.short=EEST
-EET.generic.short=EET
-EET.standard.short=EET
-Egypt.daylight.short=EEST
-Egypt.generic.short=EET
-Egypt.standard.short=EET
-Eire.daylight.short=IST
-Eire.generic.short=IT
-Eire.standard.short=GMT
-EST5EDT.daylight.short=EDT
-EST5EDT.generic.short=ET
-EST5EDT.standard.short=EST
-EST.daylight.short=EDT
-EST.generic.short=ET
-EST.standard.short=EST
-Etc/Greenwich.daylight.short=GMT
-Etc/Greenwich.generic.short=GMT
-Etc/Greenwich.standard.short=GMT
-Etc/UCT.daylight.short=UTC
-Etc/UCT.generic.short=UTC
-Etc/UCT.standard.short=UTC
-Etc/Universal.daylight.short=UTC
-Etc/Universal.generic.short=UTC
-Etc/Universal.standard.short=UTC
-Etc/UTC.daylight.short=UTC
-Etc/UTC.generic.short=UTC
-Etc/UTC.standard.short=UTC
-Etc/Zulu.daylight.short=UTC
-Etc/Zulu.generic.short=UTC
-Etc/Zulu.standard.short=UTC
-Europe/Amsterdam.daylight.short=CEST
-Europe/Amsterdam.generic.short=CET
-Europe/Amsterdam.standard.short=CET
-Europe/Andorra.daylight.short=CEST
-Europe/Andorra.generic.short=CET
-Europe/Andorra.standard.short=CET
-Europe/Athens.daylight.short=EEST
-Europe/Athens.generic.short=EET
-Europe/Athens.standard.short=EET
-Europe/Belfast.daylight.short=BST
-Europe/Belfast.generic.short=BT
-Europe/Belfast.standard.short=GMT
-Europe/Belgrade.daylight.short=CEST
-Europe/Belgrade.generic.short=CET
-Europe/Belgrade.standard.short=CET
-Europe/Berlin.daylight.short=CEST
-Europe/Berlin.generic.short=CET
-Europe/Berlin.standard.short=CET
-Europe/Bratislava.daylight.short=CEST
-Europe/Bratislava.generic.short=CET
-Europe/Bratislava.standard.short=CET
-Europe/Brussels.daylight.short=CEST
-Europe/Brussels.generic.short=CET
-Europe/Brussels.standard.short=CET
-Europe/Bucharest.daylight.short=EEST
-Europe/Bucharest.generic.short=EET
-Europe/Bucharest.standard.short=EET
-Europe/Budapest.daylight.short=CEST
-Europe/Budapest.generic.short=CET
-Europe/Budapest.standard.short=CET
-Europe/Busingen.daylight.short=CEST
-Europe/Busingen.generic.short=CET
-Europe/Busingen.standard.short=CET
-Europe/Chisinau.daylight.short=EEST
-Europe/Chisinau.generic.short=EET
-Europe/Chisinau.standard.short=EET
-Europe/Copenhagen.daylight.short=CEST
-Europe/Copenhagen.generic.short=CET
-Europe/Copenhagen.standard.short=CET
-Europe/Dublin.daylight.short=IST
-Europe/Dublin.generic.short=IT
-Europe/Dublin.standard.short=GMT
-Europe/Gibraltar.daylight.short=CEST
-Europe/Gibraltar.generic.short=CET
-Europe/Gibraltar.standard.short=CET
-Europe/Guernsey.daylight.short=BST
-Europe/Guernsey.generic.short=BT
-Europe/Guernsey.standard.short=GMT
-Europe/Helsinki.daylight.short=EEST
-Europe/Helsinki.generic.short=EET
-Europe/Helsinki.standard.short=EET
-Europe/Isle_of_Man.daylight.short=BST
-Europe/Isle_of_Man.generic.short=BT
-Europe/Isle_of_Man.standard.short=GMT
-Europe/Istanbul.daylight.short=EEST
-Europe/Istanbul.generic.short=EET
-Europe/Istanbul.standard.short=EET
-Europe/Jersey.daylight.short=BST
-Europe/Jersey.generic.short=BT
-Europe/Jersey.standard.short=GMT
-Europe/Kaliningrad.daylight.short=FEST
-Europe/Kaliningrad.generic.short=FET
-Europe/Kaliningrad.standard.short=FET
-Europe/Kiev.daylight.short=EEST
-Europe/Kiev.generic.short=EET
-Europe/Kiev.standard.short=EET
-Europe/Lisbon.daylight.short=WEST
-Europe/Lisbon.generic.short=WET
-Europe/Lisbon.standard.short=WET
-Europe/Ljubljana.daylight.short=CEST
-Europe/Ljubljana.generic.short=CET
-Europe/Ljubljana.standard.short=CET
-Europe/London.daylight.short=BST
-Europe/London.generic.short=BT
-Europe/London.standard.short=GMT
-Europe/Luxembourg.daylight.short=CEST
-Europe/Luxembourg.generic.short=CET
-Europe/Luxembourg.standard.short=CET
-Europe/Madrid.daylight.short=CEST
-Europe/Madrid.generic.short=CET
-Europe/Madrid.standard.short=CET
-Europe/Malta.daylight.short=CEST
-Europe/Malta.generic.short=CET
-Europe/Malta.standard.short=CET
-Europe/Mariehamn.daylight.short=EEST
-Europe/Mariehamn.generic.short=EET
-Europe/Mariehamn.standard.short=EET
-Europe/Minsk.daylight.short=FEST
-Europe/Minsk.generic.short=FET
-Europe/Minsk.standard.short=FET
-Europe/Monaco.daylight.short=CEST
-Europe/Monaco.generic.short=CET
-Europe/Monaco.standard.short=CET
-Europe/Moscow.daylight.short=MSD
-Europe/Moscow.generic.short=MT
-Europe/Moscow.standard.short=MSK
-Europe/Nicosia.daylight.short=EEST
-Europe/Nicosia.generic.short=EET
-Europe/Nicosia.standard.short=EET
-Europe/Oslo.daylight.short=CEST
-Europe/Oslo.generic.short=CET
-Europe/Oslo.standard.short=CET
-Europe/Paris.daylight.short=CEST
-Europe/Paris.generic.short=CET
-Europe/Paris.standard.short=CET
-Europe/Podgorica.daylight.short=CEST
-Europe/Podgorica.generic.short=CET
-Europe/Podgorica.standard.short=CET
-Europe/Prague.daylight.short=CEST
-Europe/Prague.generic.short=CET
-Europe/Prague.standard.short=CET
-Europe/Riga.daylight.short=EEST
-Europe/Riga.generic.short=EET
-Europe/Riga.standard.short=EET
-Europe/Rome.daylight.short=CEST
-Europe/Rome.generic.short=CET
-Europe/Rome.standard.short=CET
-Europe/Samara.daylight.short=SAMST
-Europe/Samara.generic.short=SAMT
-Europe/Samara.standard.short=SAMT
-Europe/San_Marino.daylight.short=CEST
-Europe/San_Marino.generic.short=CET
-Europe/San_Marino.standard.short=CET
-Europe/Sarajevo.daylight.short=CEST
-Europe/Sarajevo.generic.short=CET
-Europe/Sarajevo.standard.short=CET
-Europe/Simferopol.daylight.short=EEST
-Europe/Simferopol.generic.short=EET
-Europe/Simferopol.standard.short=EET
-Europe/Skopje.daylight.short=CEST
-Europe/Skopje.generic.short=CET
-Europe/Skopje.standard.short=CET
-Europe/Sofia.daylight.short=EEST
-Europe/Sofia.generic.short=EET
-Europe/Sofia.standard.short=EET
-Europe/Stockholm.daylight.short=CEST
-Europe/Stockholm.generic.short=CET
-Europe/Stockholm.standard.short=CET
-Europe/Tallinn.daylight.short=EEST
-Europe/Tallinn.generic.short=EET
-Europe/Tallinn.standard.short=EET
-Europe/Tirane.daylight.short=CEST
-Europe/Tirane.generic.short=CET
-Europe/Tirane.standard.short=CET
-Europe/Tiraspol.daylight.short=EEST
-Europe/Tiraspol.generic.short=EET
-Europe/Tiraspol.standard.short=EET
-Europe/Uzhgorod.daylight.short=EEST
-Europe/Uzhgorod.generic.short=EET
-Europe/Uzhgorod.standard.short=EET
-Europe/Vaduz.daylight.short=CEST
-Europe/Vaduz.generic.short=CET
-Europe/Vaduz.standard.short=CET
-Europe/Vatican.daylight.short=CEST
-Europe/Vatican.generic.short=CET
-Europe/Vatican.standard.short=CET
-Europe/Vienna.daylight.short=CEST
-Europe/Vienna.generic.short=CET
-Europe/Vienna.standard.short=CET
-Europe/Vilnius.daylight.short=EEST
-Europe/Vilnius.generic.short=EET
-Europe/Vilnius.standard.short=EET
-Europe/Volgograd.daylight.short=VOLST
-Europe/Volgograd.generic.short=VOLT
-Europe/Volgograd.standard.short=VOLT
-Europe/Warsaw.daylight.short=CEST
-Europe/Warsaw.generic.short=CET
-Europe/Warsaw.standard.short=CET
-Europe/Zagreb.daylight.short=CEST
-Europe/Zagreb.generic.short=CET
-Europe/Zagreb.standard.short=CET
-Europe/Zaporozhye.daylight.short=EEST
-Europe/Zaporozhye.generic.short=EET
-Europe/Zaporozhye.standard.short=EET
-Europe/Zurich.daylight.short=CEST
-Europe/Zurich.generic.short=CET
-Europe/Zurich.standard.short=CET
-GB.daylight.short=BST
-GB-Eire.daylight.short=BST
-GB-Eire.generic.short=BT
-GB-Eire.standard.short=GMT
-GB.generic.short=BT
-GB.standard.short=GMT
-GMT.daylight.short=GMT
-GMT.generic.short=GMT
-GMT.standard.short=GMT
-Greenwich.daylight.short=GMT
-Greenwich.generic.short=GMT
-Greenwich.standard.short=GMT
-Hongkong.daylight.short=HKST
-Hongkong.generic.short=HKT
-Hongkong.standard.short=HKT
-HST.daylight.short=HDT
-HST.generic.short=HT
-HST.standard.short=HST
-Iceland.daylight.short=GMT
-Iceland.generic.short=GMT
-Iceland.standard.short=GMT
-IET.daylight.short=EDT
-IET.generic.short=ET
-IET.standard.short=EST
-Indian/Antananarivo.daylight.short=EAST
-Indian/Antananarivo.generic.short=EAT
-Indian/Antananarivo.standard.short=EAT
-Indian/Chagos.daylight.short=IOST
-Indian/Chagos.generic.short=IOT
-Indian/Chagos.standard.short=IOT
-Indian/Christmas.daylight.short=CXST
-Indian/Christmas.generic.short=CIT
-Indian/Christmas.standard.short=CXT
-Indian/Cocos.daylight.short=CCST
-Indian/Cocos.generic.short=CCT
-Indian/Cocos.standard.short=CCT
-Indian/Comoro.daylight.short=EAST
-Indian/Comoro.generic.short=EAT
-Indian/Comoro.standard.short=EAT
-Indian/Kerguelen.daylight.short=TFST
-Indian/Kerguelen.generic.short=TFT
-Indian/Kerguelen.standard.short=TFT
-Indian/Mahe.daylight.short=SCST
-Indian/Mahe.generic.short=SCT
-Indian/Mahe.standard.short=SCT
-Indian/Maldives.daylight.short=MVST
-Indian/Maldives.generic.short=MVT
-Indian/Maldives.standard.short=MVT
-Indian/Mauritius.daylight.short=MUST
-Indian/Mauritius.generic.short=MUT
-Indian/Mauritius.standard.short=MUT
-Indian/Mayotte.daylight.short=EAST
-Indian/Mayotte.generic.short=EAT
-Indian/Mayotte.standard.short=EAT
-Indian/Reunion.daylight.short=REST
-Indian/Reunion.generic.short=RET
-Indian/Reunion.standard.short=RET
-Iran.daylight.short=IRDT
-Iran.generic.short=IRT
-Iran.standard.short=IRST
-Israel.daylight.short=IDT
-Israel.generic.short=IT
-Israel.standard.short=IST
-IST.daylight.short=IDT
-IST.generic.short=IT
-IST.standard.short=IST
-Jamaica.daylight.short=EDT
-Jamaica.generic.short=ET
-Jamaica.standard.short=EST
-Japan.daylight.short=JDT
-Japan.generic.short=JT
-Japan.standard.short=JST
-JST.daylight.short=JDT
-JST.generic.short=JT
-JST.standard.short=JST
-Kwajalein.daylight.short=MHST
-Kwajalein.generic.short=MHT
-Kwajalein.standard.short=MHT
-Libya.daylight.short=EEST
-Libya.generic.short=EET
-Libya.standard.short=EET
-MET.daylight.short=MEST
-MET.generic.short=MET
-MET.standard.short=MET
-Mexico/BajaNorte.daylight.short=PDT
-Mexico/BajaNorte.generic.short=PT
-Mexico/BajaNorte.standard.short=PST
-Mexico/BajaSur.daylight.short=MDT
-Mexico/BajaSur.generic.short=MT
-Mexico/BajaSur.standard.short=MST
-Mexico/General.daylight.short=CDT
-Mexico/General.generic.short=CT
-Mexico/General.standard.short=CST
-MIT.daylight.short=WSDT
-MIT.generic.short=WST
-MIT.standard.short=WST
-MST7MDT.daylight.short=MDT
-MST7MDT.generic.short=MT
-MST7MDT.standard.short=MST
-MST.daylight.short=MDT
-MST.generic.short=MT
-MST.standard.short=MST
-Navajo.daylight.short=MDT
-Navajo.generic.short=MT
-Navajo.standard.short=MST
-NET.daylight.short=AMST
-NET.generic.short=AMT
-NET.standard.short=AMT
-NST.daylight.short=NZDT
-NST.generic.short=NZT
-NST.standard.short=NZST
-NZ-CHAT.daylight.short=CHADT
-NZ-CHAT.generic.short=CHAT
-NZ-CHAT.standard.short=CHAST
-NZ.daylight.short=NZDT
-NZ.generic.short=NZT
-NZ.standard.short=NZST
-Pacific/Apia.daylight.short=WSDT
-Pacific/Apia.generic.short=WST
-Pacific/Apia.standard.short=WST
-Pacific/Auckland.daylight.short=NZDT
-Pacific/Auckland.generic.short=NZT
-Pacific/Auckland.standard.short=NZST
-Pacific/Chatham.daylight.short=CHADT
-Pacific/Chatham.generic.short=CHAT
-Pacific/Chatham.standard.short=CHAST
-Pacific/Chuuk.daylight.short=CHUST
-Pacific/Chuuk.generic.short=CHUT
-Pacific/Chuuk.standard.short=CHUT
-Pacific/Easter.daylight.short=EASST
-Pacific/Easter.generic.short=EAST
-Pacific/Easter.standard.short=EAST
-Pacific/Efate.daylight.short=VUST
-Pacific/Efate.generic.short=VUT
-Pacific/Efate.standard.short=VUT
-Pacific/Enderbury.daylight.short=PHOST
-Pacific/Enderbury.generic.short=PHOT
-Pacific/Enderbury.standard.short=PHOT
-Pacific/Fakaofo.daylight.short=TKST
-Pacific/Fakaofo.generic.short=TKT
-Pacific/Fakaofo.standard.short=TKT
-Pacific/Fiji.daylight.short=FJST
-Pacific/Fiji.generic.short=FJT
-Pacific/Fiji.standard.short=FJT
-Pacific/Funafuti.daylight.short=TVST
-Pacific/Funafuti.generic.short=TVT
-Pacific/Funafuti.standard.short=TVT
-Pacific/Galapagos.daylight.short=GALST
-Pacific/Galapagos.generic.short=GALT
-Pacific/Galapagos.standard.short=GALT
-Pacific/Gambier.daylight.short=GAMST
-Pacific/Gambier.generic.short=GAMT
-Pacific/Gambier.standard.short=GAMT
-Pacific/Guadalcanal.daylight.short=SBST
-Pacific/Guadalcanal.generic.short=SBT
-Pacific/Guadalcanal.standard.short=SBT
-Pacific/Guam.daylight.short=ChDT
-Pacific/Guam.generic.short=ChT
-Pacific/Guam.standard.short=ChST
-Pacific/Honolulu.daylight.short=HDT
-Pacific/Honolulu.generic.short=HT
-Pacific/Honolulu.standard.short=HST
-Pacific/Johnston.daylight.short=HDT
-Pacific/Johnston.generic.short=HT
-Pacific/Johnston.standard.short=HST
-Pacific/Kiritimati.daylight.short=LINST
-Pacific/Kiritimati.generic.short=LINT
-Pacific/Kiritimati.standard.short=LINT
-Pacific/Kosrae.daylight.short=KOSST
-Pacific/Kosrae.generic.short=KOST
-Pacific/Kosrae.standard.short=KOST
-Pacific/Kwajalein.daylight.short=MHST
-Pacific/Kwajalein.generic.short=MHT
-Pacific/Kwajalein.standard.short=MHT
-Pacific/Majuro.daylight.short=MHST
-Pacific/Majuro.generic.short=MHT
-Pacific/Majuro.standard.short=MHT
-Pacific/Marquesas.daylight.short=MARST
-Pacific/Marquesas.generic.short=MART
-Pacific/Marquesas.standard.short=MART
-Pacific/Midway.daylight.short=SDT
-Pacific/Midway.generic.short=ST
-Pacific/Midway.standard.short=SST
-Pacific/Nauru.daylight.short=NRST
-Pacific/Nauru.generic.short=NRT
-Pacific/Nauru.standard.short=NRT
-Pacific/Niue.daylight.short=NUST
-Pacific/Niue.generic.short=NUT
-Pacific/Niue.standard.short=NUT
-Pacific/Norfolk.daylight.short=NFST
-Pacific/Norfolk.generic.short=NFT
-Pacific/Norfolk.standard.short=NFT
-Pacific/Noumea.daylight.short=NCST
-Pacific/Noumea.generic.short=NCT
-Pacific/Noumea.standard.short=NCT
-Pacific/Pago_Pago.daylight.short=SDT
-Pacific/Pago_Pago.generic.short=ST
-Pacific/Pago_Pago.standard.short=SST
-Pacific/Palau.daylight.short=PWST
-Pacific/Palau.generic.short=PWT
-Pacific/Palau.standard.short=PWT
-Pacific/Pitcairn.daylight.short=PDT
-Pacific/Pitcairn.generic.short=PT
-Pacific/Pitcairn.standard.short=PST
-Pacific/Pohnpei.daylight.short=PONST
-Pacific/Pohnpei.generic.short=PONT
-Pacific/Pohnpei.standard.short=PONT
-Pacific/Ponape.daylight.short=PONST
-Pacific/Ponape.generic.short=PONT
-Pacific/Ponape.standard.short=PONT
-Pacific/Port_Moresby.daylight.short=PGST
-Pacific/Port_Moresby.generic.short=PGT
-Pacific/Port_Moresby.standard.short=PGT
-Pacific/Rarotonga.daylight.short=CKHST
-Pacific/Rarotonga.generic.short=CKT
-Pacific/Rarotonga.standard.short=CKT
-Pacific/Saipan.daylight.short=ChDT
-Pacific/Saipan.generic.short=ChT
-Pacific/Saipan.standard.short=ChST
-Pacific/Samoa.daylight.short=SDT
-Pacific/Samoa.generic.short=ST
-Pacific/Samoa.standard.short=SST
-Pacific/Tahiti.daylight.short=TAHST
-Pacific/Tahiti.generic.short=TAHT
-Pacific/Tahiti.standard.short=TAHT
-Pacific/Tarawa.daylight.short=GILST
-Pacific/Tarawa.generic.short=GILT
-Pacific/Tarawa.standard.short=GILT
-Pacific/Tongatapu.daylight.short=TOST
-Pacific/Tongatapu.generic.short=TOT
-Pacific/Tongatapu.standard.short=TOT
-Pacific/Truk.daylight.short=CHUST
-Pacific/Truk.generic.short=CHUT
-Pacific/Truk.standard.short=CHUT
-Pacific/Wake.daylight.short=WAKST
-Pacific/Wake.generic.short=WAKT
-Pacific/Wake.standard.short=WAKT
-Pacific/Wallis.daylight.short=WFST
-Pacific/Wallis.generic.short=WFT
-Pacific/Wallis.standard.short=WFT
-Pacific/Yap.daylight.short=CHUST
-Pacific/Yap.generic.short=CHUT
-Pacific/Yap.standard.short=CHUT
-PLT.daylight.short=PKST
-PLT.generic.short=PKT
-PLT.standard.short=PKT
-PNT.daylight.short=MDT
-PNT.generic.short=MT
-PNT.standard.short=MST
-Poland.daylight.short=CEST
-Poland.generic.short=CET
-Poland.standard.short=CET
-Portugal.daylight.short=WEST
-Portugal.generic.short=WET
-Portugal.standard.short=WET
-PRC.daylight.short=CDT
-PRC.generic.short=CT
-PRC.standard.short=CST
-PRT.daylight.short=ADT
-PRT.generic.short=AT
-PRT.standard.short=AST
-PST8PDT.daylight.short=PDT
-PST8PDT.generic.short=PT
-PST8PDT.standard.short=PST
-PST.daylight.short=PDT
-PST.generic.short=PT
-PST.standard.short=PST
-ROK.daylight.short=KDT
-ROK.generic.short=KT
-ROK.standard.short=KST
-Singapore.daylight.short=SGST
-Singapore.generic.short=SGT
-Singapore.standard.short=SGT
-SST.daylight.short=SBST
-SST.generic.short=SBT
-SST.standard.short=SBT
-SystemV/AST4ADT.daylight.short=ADT
-SystemV/AST4ADT.generic.short=AT
-SystemV/AST4ADT.standard.short=AST
-SystemV/AST4.daylight.short=ADT
-SystemV/AST4.generic.short=AT
-SystemV/AST4.standard.short=AST
-SystemV/CST6CDT.daylight.short=CDT
-SystemV/CST6CDT.generic.short=CT
-SystemV/CST6CDT.standard.short=CST
-SystemV/CST6.daylight.short=CDT
-SystemV/CST6.generic.short=CT
-SystemV/CST6.standard.short=CST
-SystemV/EST5.daylight.short=EDT
-SystemV/EST5EDT.daylight.short=EDT
-SystemV/EST5EDT.generic.short=ET
-SystemV/EST5EDT.standard.short=EST
-SystemV/EST5.generic.short=ET
-SystemV/EST5.standard.short=EST
-SystemV/HST10.daylight.short=HDT
-SystemV/HST10.generic.short=HT
-SystemV/HST10.standard.short=HST
-SystemV/MST7.daylight.short=MDT
-SystemV/MST7.generic.short=MT
-SystemV/MST7MDT.daylight.short=MDT
-SystemV/MST7MDT.generic.short=MT
-SystemV/MST7MDT.standard.short=MST
-SystemV/MST7.standard.short=MST
-SystemV/PST8.daylight.short=PDT
-SystemV/PST8.generic.short=PT
-SystemV/PST8PDT.daylight.short=PDT
-SystemV/PST8PDT.generic.short=PT
-SystemV/PST8PDT.standard.short=PST
-SystemV/PST8.standard.short=PST
-SystemV/YST9.daylight.short=AKDT
-SystemV/YST9.generic.short=AKT
-SystemV/YST9.standard.short=AKST
-SystemV/YST9YDT.daylight.short=AKDT
-SystemV/YST9YDT.generic.short=AKT
-SystemV/YST9YDT.standard.short=AKST
-Turkey.daylight.short=EEST
-Turkey.generic.short=EET
-Turkey.standard.short=EET
-UCT.daylight.short=UTC
-UCT.generic.short=UTC
-UCT.standard.short=UTC
-Universal.daylight.short=UTC
-Universal.generic.short=UTC
-Universal.standard.short=UTC
-US/Alaska.daylight.short=AKDT
-US/Alaska.generic.short=AKT
-US/Alaska.standard.short=AKST
-US/Aleutian.daylight.short=HADT
-US/Aleutian.generic.short=HAT
-US/Aleutian.standard.short=HAST
-US/Arizona.daylight.short=MDT
-US/Arizona.generic.short=MT
-US/Arizona.standard.short=MST
-US/Central.daylight.short=CDT
-US/Central.generic.short=CT
-US/Central.standard.short=CST
-US/Eastern.daylight.short=EDT
-US/Eastern.generic.short=ET
-US/Eastern.standard.short=EST
-US/East-Indiana.daylight.short=EDT
-US/East-Indiana.generic.short=ET
-US/East-Indiana.standard.short=EST
-US/Hawaii.daylight.short=HDT
-US/Hawaii.generic.short=HT
-US/Hawaii.standard.short=HST
-US/Indiana-Starke.daylight.short=CDT
-US/Indiana-Starke.generic.short=CT
-US/Indiana-Starke.standard.short=CST
-US/Michigan.daylight.short=EDT
-US/Michigan.generic.short=ET
-US/Michigan.standard.short=EST
-US/Mountain.daylight.short=MDT
-US/Mountain.generic.short=MT
-US/Mountain.standard.short=MST
-US/Pacific.daylight.short=PDT
-US/Pacific.generic.short=PT
-US/Pacific-New.daylight.short=PDT
-US/Pacific-New.generic.short=PT
-US/Pacific-New.standard.short=PST
-US/Pacific.standard.short=PST
-US/Samoa.daylight.short=SDT
-US/Samoa.generic.short=ST
-US/Samoa.standard.short=SST
-UTC.daylight.short=UTC
-UTC.generic.short=UTC
-UTC.standard.short=UTC
-VST.daylight.short=ICST
-VST.generic.short=ICT
-VST.standard.short=ICT
-WET.daylight.short=WEST
-WET.generic.short=WET
-WET.standard.short=WET
-W-SU.daylight.short=MSD
-W-SU.generic.short=MT
-W-SU.standard.short=MSK
-Zulu.daylight.short=UTC
-Zulu.generic.short=UTC
-Zulu.standard.short=UTC
diff --git a/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_ja.properties b/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_ja.properties
deleted file mode 100644
index ac5a86d36ba..00000000000
--- a/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_ja.properties
+++ /dev/null
@@ -1,651 +0,0 @@
-ACT.daylight.long=\u4E2D\u90E8\u590F\u6642\u9593(\u30CE\u30FC\u30B6\u30F3\u30C6\u30EA\u30C8\u30EA\u30FC)
-ACT.generic.long=\u4E2D\u90E8\u6A19\u6E96\u6642(\u30CE\u30FC\u30B6\u30F3\u30C6\u30EA\u30C8\u30EA\u30FC)
-ACT.standard.long=\u4E2D\u90E8\u6A19\u6E96\u6642(\u30CE\u30FC\u30B6\u30F3\u30C6\u30EA\u30C8\u30EA\u30FC)
-AET.daylight.long=\u6771\u90E8\u590F\u6642\u9593(\u30CB\u30E5\u30FC\u30B5\u30A6\u30B9\u30A6\u30A7\u30FC\u30EB\u30BA)
-AET.generic.long=\u6771\u90E8\u6A19\u6E96\u6642(\u30CB\u30E5\u30FC\u30B5\u30A6\u30B9\u30A6\u30A7\u30FC\u30EB\u30BA)
-AET.standard.long=\u6771\u90E8\u6A19\u6E96\u6642(\u30CB\u30E5\u30FC\u30B5\u30A6\u30B9\u30A6\u30A7\u30FC\u30EB\u30BA)
-AGT.generic.long=\u30A2\u30EB\u30BC\u30F3\u30C1\u30F3\u6642\u9593
-ART.generic.long=\u6771\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-AST.generic.long=\u30A2\u30E9\u30B9\u30AB\u6642\u9593
-Africa/Abidjan.generic.long=\u30B0\u30EA\u30CB\u30C3\u30B8\u6A19\u6E96\u6642
-Africa/Accra.generic.long=\u30AC\u30FC\u30CA\u6A19\u6E96\u6642
-Africa/Addis_Ababa.generic.long=\u6771\u90E8\u30A2\u30D5\u30EA\u30AB\u6642\u9593
-Africa/Algiers.generic.long=\u4E2D\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Africa/Asmara.generic.long=\u6771\u90E8\u30A2\u30D5\u30EA\u30AB\u6642\u9593
-Africa/Asmera.generic.long=\u6771\u90E8\u30A2\u30D5\u30EA\u30AB\u6642\u9593
-Africa/Bamako.generic.long=\u30B0\u30EA\u30CB\u30C3\u30B8\u6A19\u6E96\u6642
-Africa/Bangui.generic.long=\u897F\u90E8\u30A2\u30D5\u30EA\u30AB\u6642\u9593
-Africa/Banjul.generic.long=\u30B0\u30EA\u30CB\u30C3\u30B8\u6A19\u6E96\u6642
-Africa/Bissau.generic.long=\u30B0\u30EA\u30CB\u30C3\u30B8\u6A19\u6E96\u6642
-Africa/Blantyre.generic.long=\u4E2D\u90E8\u30A2\u30D5\u30EA\u30AB\u6642\u9593
-Africa/Brazzaville.generic.long=\u897F\u90E8\u30A2\u30D5\u30EA\u30AB\u6642\u9593
-Africa/Bujumbura.generic.long=\u4E2D\u90E8\u30A2\u30D5\u30EA\u30AB\u6642\u9593
-Africa/Cairo.generic.long=\u6771\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Africa/Casablanca.generic.long=\u897F\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Africa/Ceuta.generic.long=\u4E2D\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Africa/Conakry.generic.long=\u30B0\u30EA\u30CB\u30C3\u30B8\u6A19\u6E96\u6642
-Africa/Dakar.generic.long=\u30B0\u30EA\u30CB\u30C3\u30B8\u6A19\u6E96\u6642
-Africa/Dar_es_Salaam.generic.long=\u6771\u90E8\u30A2\u30D5\u30EA\u30AB\u6642\u9593
-Africa/Djibouti.generic.long=\u6771\u90E8\u30A2\u30D5\u30EA\u30AB\u6642\u9593
-Africa/Douala.generic.long=\u897F\u90E8\u30A2\u30D5\u30EA\u30AB\u6642\u9593
-Africa/El_Aaiun.generic.long=\u897F\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Africa/Freetown.generic.long=\u30B7\u30A8\u30E9\u30EC\u30AA\u30CD\u6642\u9593
-Africa/Gaborone.generic.long=\u4E2D\u90E8\u30A2\u30D5\u30EA\u30AB\u6642\u9593
-Africa/Harare.generic.long=\u4E2D\u90E8\u30A2\u30D5\u30EA\u30AB\u6642\u9593
-Africa/Johannesburg.generic.long=\u5357\u30A2\u30D5\u30EA\u30AB\u6642\u9593
-Africa/Juba.generic.long=\u6771\u90E8\u30A2\u30D5\u30EA\u30AB\u6642\u9593
-Africa/Kampala.generic.long=\u6771\u90E8\u30A2\u30D5\u30EA\u30AB\u6642\u9593
-Africa/Khartoum.generic.long=\u6771\u90E8\u30A2\u30D5\u30EA\u30AB\u6642\u9593
-Africa/Kigali.generic.long=\u4E2D\u90E8\u30A2\u30D5\u30EA\u30AB\u6642\u9593
-Africa/Kinshasa.generic.long=\u897F\u90E8\u30A2\u30D5\u30EA\u30AB\u6642\u9593
-Africa/Lagos.generic.long=\u897F\u90E8\u30A2\u30D5\u30EA\u30AB\u6642\u9593
-Africa/Libreville.generic.long=\u897F\u90E8\u30A2\u30D5\u30EA\u30AB\u6642\u9593
-Africa/Lome.generic.long=\u30B0\u30EA\u30CB\u30C3\u30B8\u6A19\u6E96\u6642
-Africa/Luanda.generic.long=\u897F\u90E8\u30A2\u30D5\u30EA\u30AB\u6642\u9593
-Africa/Lubumbashi.generic.long=\u4E2D\u90E8\u30A2\u30D5\u30EA\u30AB\u6642\u9593
-Africa/Lusaka.generic.long=\u4E2D\u90E8\u30A2\u30D5\u30EA\u30AB\u6642\u9593
-Africa/Malabo.generic.long=\u897F\u90E8\u30A2\u30D5\u30EA\u30AB\u6642\u9593
-Africa/Maputo.generic.long=\u4E2D\u90E8\u30A2\u30D5\u30EA\u30AB\u6642\u9593
-Africa/Maseru.generic.long=\u5357\u30A2\u30D5\u30EA\u30AB\u6642\u9593
-Africa/Mbabane.generic.long=\u5357\u30A2\u30D5\u30EA\u30AB\u6642\u9593
-Africa/Mogadishu.generic.long=\u6771\u90E8\u30A2\u30D5\u30EA\u30AB\u6642\u9593
-Africa/Monrovia.generic.long=\u30B0\u30EA\u30CB\u30C3\u30B8\u6A19\u6E96\u6642
-Africa/Nairobi.generic.long=\u6771\u90E8\u30A2\u30D5\u30EA\u30AB\u6642\u9593
-Africa/Ndjamena.generic.long=\u897F\u90E8\u30A2\u30D5\u30EA\u30AB\u6642\u9593
-Africa/Niamey.generic.long=\u897F\u90E8\u30A2\u30D5\u30EA\u30AB\u6642\u9593
-Africa/Nouakchott.generic.long=\u30B0\u30EA\u30CB\u30C3\u30B8\u6A19\u6E96\u6642
-Africa/Ouagadougou.generic.long=\u30B0\u30EA\u30CB\u30C3\u30B8\u6A19\u6E96\u6642
-Africa/Porto-Novo.generic.long=\u897F\u90E8\u30A2\u30D5\u30EA\u30AB\u6642\u9593
-Africa/Sao_Tome.generic.long=\u30B0\u30EA\u30CB\u30C3\u30B8\u6A19\u6E96\u6642
-Africa/Timbuktu.generic.long=\u30B0\u30EA\u30CB\u30C3\u30B8\u6A19\u6E96\u6642
-Africa/Tripoli.generic.long=\u6771\u90e8\u30e8\u30fc\u30ed\u30c3\u30d1\u6642\u9593
-Africa/Tunis.generic.long=\u4E2D\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Africa/Windhoek.generic.long=\u897F\u90E8\u30A2\u30D5\u30EA\u30AB\u6642\u9593
-America/Adak.generic.long=\u30CF\u30EF\u30A4\u30FB\u30A2\u30EA\u30E5\u30FC\u30B7\u30E3\u30F3\u6642\u9593
-America/Anchorage.generic.long=\u30A2\u30E9\u30B9\u30AB\u6642\u9593
-America/Anguilla.generic.long=\u5927\u897F\u6D0B\u6A19\u6E96\u6642
-America/Antigua.generic.long=\u5927\u897F\u6D0B\u6A19\u6E96\u6642
-America/Araguaina.generic.long=\u30D6\u30E9\u30B8\u30EA\u30A2\u6642\u9593
-America/Argentina/Buenos_Aires.generic.long=\u30A2\u30EB\u30BC\u30F3\u30C1\u30F3\u6642\u9593
-America/Argentina/Catamarca.generic.long=\u30A2\u30EB\u30BC\u30F3\u30C1\u30F3\u6642\u9593
-America/Argentina/ComodRivadavia.generic.long=\u30A2\u30EB\u30BC\u30F3\u30C1\u30F3\u6642\u9593
-America/Argentina/Cordoba.generic.long=\u30A2\u30EB\u30BC\u30F3\u30C1\u30F3\u6642\u9593
-America/Argentina/Jujuy.generic.long=\u30A2\u30EB\u30BC\u30F3\u30C1\u30F3\u6642\u9593
-America/Argentina/La_Rioja.generic.long=\u30A2\u30EB\u30BC\u30F3\u30C1\u30F3\u6642\u9593
-America/Argentina/Mendoza.generic.long=\u30A2\u30EB\u30BC\u30F3\u30C1\u30F3\u6642\u9593
-America/Argentina/Rio_Gallegos.generic.long=\u30A2\u30EB\u30BC\u30F3\u30C1\u30F3\u6642\u9593
-America/Argentina/Salta.generic.long=\u30A2\u30EB\u30BC\u30F3\u30C1\u30F3\u6642\u9593
-America/Argentina/San_Juan.generic.long=\u30A2\u30EB\u30BC\u30F3\u30C1\u30F3\u6642\u9593
-America/Argentina/San_Luis.generic.long=\u30a2\u30eb\u30bc\u30f3\u30c1\u30f3\u6642\u9593
-America/Argentina/Tucuman.generic.long=\u30A2\u30EB\u30BC\u30F3\u30C1\u30F3\u6642\u9593
-America/Argentina/Ushuaia.generic.long=\u30A2\u30EB\u30BC\u30F3\u30C1\u30F3\u6642\u9593
-America/Aruba.generic.long=\u5927\u897F\u6D0B\u6A19\u6E96\u6642
-America/Asuncion.generic.long=\u30D1\u30E9\u30B0\u30A2\u30A4\u6642\u9593
-America/Atikokan.generic.long=\u6771\u90E8\u6A19\u6E96\u6642
-America/Atka.generic.long=\u30CF\u30EF\u30A4\u30FB\u30A2\u30EA\u30E5\u30FC\u30B7\u30E3\u30F3\u6642\u9593
-America/Bahia.generic.long=\u30D6\u30E9\u30B8\u30EA\u30A2\u6642\u9593
-America/Bahia_Banderas.generic.long=\u4E2D\u90E8\u6A19\u6E96\u6642
-America/Barbados.generic.long=\u5927\u897F\u6D0B\u6A19\u6E96\u6642
-America/Belem.generic.long=\u30D6\u30E9\u30B8\u30EA\u30A2\u6642\u9593
-America/Belize.generic.long=\u4E2D\u90E8\u6A19\u6E96\u6642
-America/Blanc-Sablon.generic.long=\u5927\u897F\u6D0B\u6A19\u6E96\u6642
-America/Boa_Vista.generic.long=\u30A2\u30DE\u30BE\u30F3\u6642\u9593
-America/Bogota.generic.long=\u30B3\u30ED\u30F3\u30D3\u30A2\u6642\u9593
-America/Boise.generic.long=\u5C71\u5730\u6A19\u6E96\u6642
-America/Buenos_Aires.generic.long=\u30A2\u30EB\u30BC\u30F3\u30C1\u30F3\u6642\u9593
-America/Cambridge_Bay.generic.long=\u5C71\u5730\u6A19\u6E96\u6642
-America/Campo_Grande.generic.long=\u30A2\u30DE\u30BE\u30F3\u6642\u9593
-America/Cancun.generic.long=\u4E2D\u90E8\u6A19\u6E96\u6642
-America/Caracas.generic.long=\u30D9\u30CD\u30BA\u30A8\u30E9\u6642\u9593
-America/Catamarca.generic.long=\u30A2\u30EB\u30BC\u30F3\u30C1\u30F3\u6642\u9593
-America/Cayenne.generic.long=\u30D5\u30E9\u30F3\u30B9\u9818\u30AE\u30A2\u30CA\u6642\u9593
-America/Cayman.generic.long=\u6771\u90E8\u6A19\u6E96\u6642
-America/Chicago.generic.long=\u4E2D\u90E8\u6A19\u6E96\u6642
-America/Chihuahua.generic.long=\u5C71\u5730\u6A19\u6E96\u6642
-America/Coral_Harbour.generic.long=\u6771\u90E8\u6A19\u6E96\u6642
-America/Cordoba.generic.long=\u30A2\u30EB\u30BC\u30F3\u30C1\u30F3\u6642\u9593
-America/Costa_Rica.generic.long=\u4E2D\u90E8\u6A19\u6E96\u6642
-America/Creston.generic.long=\u5C71\u5730\u6A19\u6E96\u6642
-America/Cuiaba.generic.long=\u30A2\u30DE\u30BE\u30F3\u6642\u9593
-America/Curacao.generic.long=\u5927\u897F\u6D0B\u6A19\u6E96\u6642
-America/Danmarkshavn.generic.long=\u30B0\u30EA\u30CB\u30C3\u30B8\u6A19\u6E96\u6642
-America/Dawson.generic.long=\u592A\u5E73\u6D0B\u6A19\u6E96\u6642
-America/Dawson_Creek.generic.long=\u5C71\u5730\u6A19\u6E96\u6642
-America/Denver.generic.long=\u5C71\u5730\u6A19\u6E96\u6642
-America/Detroit.generic.long=\u6771\u90E8\u6A19\u6E96\u6642
-America/Dominica.generic.long=\u5927\u897F\u6D0B\u6A19\u6E96\u6642
-America/Edmonton.generic.long=\u5C71\u5730\u6A19\u6E96\u6642
-America/Eirunepe.generic.long=\u30a2\u30af\u30ec\u6642\u9593
-America/El_Salvador.generic.long=\u4E2D\u90E8\u6A19\u6E96\u6642
-America/Ensenada.generic.long=\u592A\u5E73\u6D0B\u6A19\u6E96\u6642
-America/Fort_Wayne.generic.long=\u6771\u90E8\u6A19\u6E96\u6642
-America/Fortaleza.generic.long=\u30D6\u30E9\u30B8\u30EA\u30A2\u6642\u9593
-America/Glace_Bay.generic.long=\u5927\u897F\u6D0B\u6A19\u6E96\u6642
-America/Godthab.generic.long=\u897F\u90E8\u30B0\u30EA\u30FC\u30F3\u30E9\u30F3\u30C9\u6642\u9593
-America/Goose_Bay.generic.long=\u5927\u897F\u6D0B\u6A19\u6E96\u6642
-America/Grand_Turk.generic.long=\u6771\u90E8\u6A19\u6E96\u6642
-America/Grenada.generic.long=\u5927\u897F\u6D0B\u6A19\u6E96\u6642
-America/Guadeloupe.generic.long=\u5927\u897F\u6D0B\u6A19\u6E96\u6642
-America/Guatemala.generic.long=\u4E2D\u90E8\u6A19\u6E96\u6642
-America/Guayaquil.generic.long=\u30A8\u30AF\u30A2\u30C9\u30EB\u6642\u9593
-America/Guyana.generic.long=\u30AC\u30A4\u30A2\u30CA\u6642\u9593
-America/Halifax.generic.long=\u5927\u897F\u6D0B\u6A19\u6E96\u6642
-America/Havana.generic.long=\u30AD\u30E5\u30FC\u30D0\u6642\u9593
-America/Hermosillo.generic.long=\u5C71\u5730\u6A19\u6E96\u6642
-America/Indiana/Indianapolis.generic.long=\u6771\u90E8\u6A19\u6E96\u6642
-America/Indiana/Knox.generic.long=\u4E2D\u90E8\u6A19\u6E96\u6642
-America/Indiana/Marengo.generic.long=\u6771\u90E8\u6A19\u6E96\u6642
-America/Indiana/Petersburg.generic.long=\u6771\u90E8\u6A19\u6E96\u6642
-America/Indiana/Tell_City.generic.long=\u4E2D\u90E8\u6A19\u6E96\u6642
-America/Indiana/Vevay.generic.long=\u6771\u90E8\u6A19\u6E96\u6642
-America/Indiana/Vincennes.generic.long=\u6771\u90E8\u6A19\u6E96\u6642
-America/Indiana/Winamac.generic.long=\u6771\u90E8\u6A19\u6E96\u6642
-America/Indianapolis.generic.long=\u6771\u90E8\u6A19\u6E96\u6642
-America/Inuvik.generic.long=\u5C71\u5730\u6A19\u6E96\u6642
-America/Iqaluit.generic.long=\u6771\u90E8\u6A19\u6E96\u6642
-America/Jamaica.generic.long=\u6771\u90E8\u6A19\u6E96\u6642
-America/Jujuy.generic.long=\u30A2\u30EB\u30BC\u30F3\u30C1\u30F3\u6642\u9593
-America/Juneau.generic.long=\u30A2\u30E9\u30B9\u30AB\u6642\u9593
-America/Kentucky/Louisville.generic.long=\u6771\u90E8\u6A19\u6E96\u6642
-America/Kentucky/Monticello.generic.long=\u6771\u90E8\u6A19\u6E96\u6642
-America/Knox_IN.generic.long=\u4E2D\u90E8\u6A19\u6E96\u6642
-America/Kralendijk.generic.long=\u5927\u897F\u6D0B\u6A19\u6E96\u6642
-America/La_Paz.generic.long=\u30DC\u30EA\u30D3\u30A2\u6642\u9593
-America/Lima.generic.long=\u30DA\u30EB\u30FC\u6642\u9593
-America/Los_Angeles.generic.long=\u592A\u5E73\u6D0B\u6A19\u6E96\u6642
-America/Louisville.generic.long=\u6771\u90E8\u6A19\u6E96\u6642
-America/Lower_Princes.generic.long=\u5927\u897F\u6D0B\u6A19\u6E96\u6642
-America/Maceio.generic.long=\u30D6\u30E9\u30B8\u30EA\u30A2\u6642\u9593
-America/Managua.generic.long=\u4E2D\u90E8\u6A19\u6E96\u6642
-America/Manaus.generic.long=\u30A2\u30DE\u30BE\u30F3\u6642\u9593
-America/Marigot.generic.long=\u5927\u897F\u6D0B\u6A19\u6E96\u6642
-America/Martinique.generic.long=\u5927\u897F\u6D0B\u6A19\u6E96\u6642
-America/Matamoros.generic.long=\u4E2D\u90E8\u6A19\u6E96\u6642
-America/Mazatlan.generic.long=\u5C71\u5730\u6A19\u6E96\u6642
-America/Mendoza.generic.long=\u30A2\u30EB\u30BC\u30F3\u30C1\u30F3\u6642\u9593
-America/Menominee.generic.long=\u4E2D\u90E8\u6A19\u6E96\u6642
-America/Merida.generic.long=\u4E2D\u90E8\u6A19\u6E96\u6642
-America/Metlakatla.daylight.long=\u30E1\u30C8\u30E9\u30AB\u30C8\u30E9\u590F\u6642\u9593
-America/Metlakatla.generic.long=\u30E1\u30C8\u30E9\u30AB\u30C8\u30E9\u6642\u9593
-America/Metlakatla.standard.long=\u30E1\u30C8\u30E9\u30AB\u30C8\u30E9\u6A19\u6E96\u6642\u9593
-America/Mexico_City.generic.long=\u4E2D\u90E8\u6A19\u6E96\u6642
-America/Miquelon.generic.long=\u30D4\u30A8\u30FC\u30EB\u30FB\u30DF\u30AF\u30ED\u30F3\u6642\u9593
-America/Moncton.generic.long=\u5927\u897F\u6D0B\u6A19\u6E96\u6642
-America/Monterrey.generic.long=\u4E2D\u90E8\u6A19\u6E96\u6642
-America/Montevideo.generic.long=\u30A6\u30EB\u30B0\u30A2\u30A4\u6642\u9593
-America/Montreal.generic.long=\u6771\u90E8\u6A19\u6E96\u6642
-America/Montserrat.generic.long=\u5927\u897F\u6D0B\u6A19\u6E96\u6642
-America/Nassau.generic.long=\u6771\u90E8\u6A19\u6E96\u6642
-America/New_York.generic.long=\u6771\u90E8\u6A19\u6E96\u6642
-America/Nipigon.generic.long=\u6771\u90E8\u6A19\u6E96\u6642
-America/Nome.generic.long=\u30A2\u30E9\u30B9\u30AB\u6642\u9593
-America/Noronha.generic.long=\u30D5\u30A7\u30EB\u30CA\u30F3\u30C9\u30FB\u30C7\u30FB\u30CE\u30ED\u30FC\u30CB\u30E3\u6642\u9593
-America/North_Dakota/Beulah.generic.long=\u4E2D\u90E8\u6A19\u6E96\u6642
-America/North_Dakota/Center.generic.long=\u4E2D\u90E8\u6A19\u6E96\u6642
-America/North_Dakota/New_Salem.generic.long=\u4E2D\u90E8\u6A19\u6E96\u6642
-America/Ojinaga.generic.long=\u5C71\u5730\u6A19\u6E96\u6642
-America/Panama.generic.long=\u6771\u90E8\u6A19\u6E96\u6642
-America/Pangnirtung.generic.long=\u6771\u90E8\u6A19\u6E96\u6642
-America/Paramaribo.generic.long=\u30B9\u30EA\u30CA\u30E0\u6642\u9593
-America/Phoenix.generic.long=\u5C71\u5730\u6A19\u6E96\u6642
-America/Port-au-Prince.generic.long=\u6771\u90E8\u6A19\u6E96\u6642
-America/Port_of_Spain.generic.long=\u5927\u897F\u6D0B\u6A19\u6E96\u6642
-America/Porto_Acre.generic.long=\u30a2\u30af\u30ec\u6642\u9593
-America/Porto_Velho.generic.long=\u30A2\u30DE\u30BE\u30F3\u6642\u9593
-America/Puerto_Rico.generic.long=\u5927\u897F\u6D0B\u6A19\u6E96\u6642
-America/Rainy_River.generic.long=\u4E2D\u90E8\u6A19\u6E96\u6642
-America/Rankin_Inlet.generic.long=\u4E2D\u90E8\u6A19\u6E96\u6642
-America/Recife.generic.long=\u30D6\u30E9\u30B8\u30EA\u30A2\u6642\u9593
-America/Regina.generic.long=\u4E2D\u90E8\u6A19\u6E96\u6642
-America/Resolute.generic.long=\u4E2D\u90E8\u6A19\u6E96\u6642
-America/Rio_Branco.generic.long=\u30a2\u30af\u30ec\u6642\u9593
-America/Rosario.generic.long=\u30A2\u30EB\u30BC\u30F3\u30C1\u30F3\u6642\u9593
-America/Santa_Isabel.generic.long=\u592A\u5E73\u6D0B\u6A19\u6E96\u6642
-America/Santarem.generic.long=\u30D6\u30E9\u30B8\u30EA\u30A2\u6642\u9593
-America/Santiago.generic.long=\u30C1\u30EA\u6642\u9593
-America/Santo_Domingo.generic.long=\u5927\u897F\u6D0B\u6A19\u6E96\u6642
-America/Sao_Paulo.generic.long=\u30D6\u30E9\u30B8\u30EA\u30A2\u6642\u9593
-America/Scoresbysund.generic.long=\u6771\u90E8\u30B0\u30EA\u30FC\u30F3\u30E9\u30F3\u30C9\u6642\u9593
-America/Shiprock.generic.long=\u5C71\u5730\u6A19\u6E96\u6642
-America/Sitka.generic.long=\u30A2\u30E9\u30B9\u30AB\u6642\u9593
-America/St_Barthelemy.generic.long=\u5927\u897F\u6D0B\u6A19\u6E96\u6642
-America/St_Johns.generic.long=\u30CB\u30E5\u30FC\u30D5\u30A1\u30F3\u30C9\u30E9\u30F3\u30C9\u6642\u9593
-America/St_Kitts.generic.long=\u5927\u897F\u6D0B\u6A19\u6E96\u6642
-America/St_Lucia.generic.long=\u5927\u897F\u6D0B\u6A19\u6E96\u6642
-America/St_Thomas.generic.long=\u5927\u897F\u6D0B\u6A19\u6E96\u6642
-America/St_Vincent.generic.long=\u5927\u897F\u6D0B\u6A19\u6E96\u6642
-America/Swift_Current.generic.long=\u4E2D\u90E8\u6A19\u6E96\u6642
-America/Tegucigalpa.generic.long=\u4E2D\u90E8\u6A19\u6E96\u6642
-America/Thule.generic.long=\u5927\u897F\u6D0B\u6A19\u6E96\u6642
-America/Thunder_Bay.generic.long=\u6771\u90E8\u6A19\u6E96\u6642
-America/Tijuana.generic.long=\u592A\u5E73\u6D0B\u6A19\u6E96\u6642
-America/Toronto.generic.long=\u6771\u90E8\u6A19\u6E96\u6642
-America/Tortola.generic.long=\u5927\u897F\u6D0B\u6A19\u6E96\u6642
-America/Vancouver.generic.long=\u592A\u5E73\u6D0B\u6A19\u6E96\u6642
-America/Virgin.generic.long=\u5927\u897F\u6D0B\u6A19\u6E96\u6642
-America/Whitehorse.generic.long=\u592A\u5E73\u6D0B\u6A19\u6E96\u6642
-America/Winnipeg.generic.long=\u4E2D\u90E8\u6A19\u6E96\u6642
-America/Yakutat.generic.long=\u30A2\u30E9\u30B9\u30AB\u6642\u9593
-America/Yellowknife.generic.long=\u5C71\u5730\u6A19\u6E96\u6642
-Antarctica/Casey.daylight.long=\u897F\u90E8\u590F\u6642\u9593(\u30AA\u30FC\u30B9\u30C8\u30E9\u30EA\u30A2)
-Antarctica/Casey.generic.long=\u897F\u90E8\u6642\u9593(\u30AA\u30FC\u30B9\u30C8\u30E9\u30EA\u30A2)
-Antarctica/Casey.standard.long=\u897F\u90E8\u6A19\u6E96\u6642(\u30AA\u30FC\u30B9\u30C8\u30E9\u30EA\u30A2)
-Antarctica/Davis.generic.long=\u30C7\u30FC\u30D3\u30B9\u6642\u9593
-Antarctica/DumontDUrville.generic.long=\u30C7\u30E5\u30E2\u30F3\u30FB\u30C7\u30E5\u30EB\u30D3\u30EB\u6642\u9593
-Antarctica/Macquarie.daylight.long=\u30DE\u30C3\u30B3\u30FC\u30EA\u30FC\u5CF6\u590F\u6642\u9593
-Antarctica/Macquarie.generic.long=\u30DE\u30C3\u30B3\u30FC\u30EA\u30FC\u5CF6\u6642\u9593
-Antarctica/Macquarie.standard.long=\u30DE\u30C3\u30B3\u30FC\u30EA\u30FC\u5CF6\u6642\u9593
-Antarctica/Mawson.generic.long=\u30E2\u30FC\u30BD\u30F3\u6642\u9593
-Antarctica/McMurdo.generic.long=\u30CB\u30E5\u30FC\u30B8\u30FC\u30E9\u30F3\u30C9\u6642\u9593
-Antarctica/Palmer.generic.long=\u30C1\u30EA\u6642\u9593
-Antarctica/Rothera.generic.long=\u30ED\u30BC\u30E9\u6642\u9593
-Antarctica/South_Pole.generic.long=\u30CB\u30E5\u30FC\u30B8\u30FC\u30E9\u30F3\u30C9\u6642\u9593
-Antarctica/Syowa.generic.long=\u662D\u548C\u57FA\u5730\u6642\u9593
-Antarctica/Vostok.generic.long=\u30DC\u30B9\u30C8\u30FC\u30AF\u6642\u9593
-Arctic/Longyearbyen.generic.long=\u4E2D\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Asia/Aden.generic.long=\u30A2\u30E9\u30D3\u30A2\u6642\u9593
-Asia/Almaty.generic.long=\u30A2\u30EB\u30DE\u30A2\u30BF\u6642\u9593
-Asia/Amman.generic.long=\u30a2\u30e9\u30d3\u30a2\u6642\u9593
-Asia/Anadyr.generic.long=\u30A2\u30CA\u30C7\u30A3\u30EA\u6642\u9593
-Asia/Aqtau.generic.long=\u30A2\u30AF\u30BF\u30A6\u6642\u9593
-Asia/Aqtobe.generic.long=\u30A2\u30AF\u30C8\u30D9\u6642\u9593
-Asia/Ashgabat.generic.long=\u30C8\u30EB\u30AF\u30E1\u30CB\u30B9\u30BF\u30F3\u6642\u9593
-Asia/Ashkhabad.generic.long=\u30C8\u30EB\u30AF\u30E1\u30CB\u30B9\u30BF\u30F3\u6642\u9593
-Asia/Baghdad.generic.long=\u30A2\u30E9\u30D3\u30A2\u6642\u9593
-Asia/Bahrain.generic.long=\u30A2\u30E9\u30D3\u30A2\u6642\u9593
-Asia/Baku.generic.long=\u30A2\u30BC\u30EB\u30D0\u30A4\u30B8\u30E3\u30F3\u6642\u9593
-Asia/Bangkok.generic.long=\u30A4\u30F3\u30C9\u30B7\u30CA\u6642\u9593
-Asia/Beirut.generic.long=\u6771\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Asia/Bishkek.generic.long=\u30AD\u30EB\u30AE\u30B9\u6642\u9593
-Asia/Brunei.generic.long=\u30D6\u30EB\u30CD\u30A4\u6642\u9593
-Asia/Calcutta.generic.long=\u30A4\u30F3\u30C9\u6642\u9593
-Asia/Choibalsan.generic.long=\u30C1\u30E7\u30A4\u30D0\u30EB\u30B5\u30F3\u6642\u9593
-Asia/Chongqing.generic.long=\u4E2D\u56FD\u6642\u9593
-Asia/Chungking.generic.long=\u4E2D\u56FD\u6642\u9593
-Asia/Colombo.generic.long=\u30A4\u30F3\u30C9\u6642\u9593
-Asia/Dacca.generic.long=\u30D0\u30F3\u30B0\u30E9\u30C7\u30B7\u30E5\u6642\u9593
-Asia/Damascus.generic.long=\u6771\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Asia/Dhaka.generic.long=\u30D0\u30F3\u30B0\u30E9\u30C7\u30B7\u30E5\u6642\u9593
-Asia/Dili.generic.long=\u6771\u30C6\u30A3\u30E2\u30FC\u30EB\u6642\u9593
-Asia/Dubai.generic.long=\u6E7E\u5CB8\u6642\u9593
-Asia/Dushanbe.generic.long=\u30BF\u30B8\u30AD\u30B9\u30BF\u30F3\u6642\u9593
-Asia/Gaza.generic.long=\u6771\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Asia/Harbin.generic.long=\u4E2D\u56FD\u6642\u9593
-Asia/Hebron.generic.long=\u6771\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Asia/Ho_Chi_Minh.generic.long=\u30A4\u30F3\u30C9\u30B7\u30CA\u6642\u9593
-Asia/Hong_Kong.generic.long=\u9999\u6E2F\u6642\u9593
-Asia/Hovd.generic.long=\u30DB\u30D6\u30C9\u6642\u9593
-Asia/Irkutsk.generic.long=\u30A4\u30EB\u30AF\u30FC\u30C4\u30AF\u6642\u9593
-Asia/Istanbul.generic.long=\u6771\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Asia/Jakarta.generic.long=\u897F\u90E8\u30A4\u30F3\u30C9\u30CD\u30B7\u30A2\u6642\u9593
-Asia/Jayapura.generic.long=\u6771\u90E8\u30A4\u30F3\u30C9\u30CD\u30B7\u30A2\u6642\u9593
-Asia/Jerusalem.generic.long=\u30A4\u30B9\u30E9\u30A8\u30EB\u6642\u9593
-Asia/Kabul.generic.long=\u30A2\u30D5\u30AC\u30CB\u30B9\u30BF\u30F3\u6642\u9593
-Asia/Kamchatka.generic.long=\u30DA\u30C8\u30ED\u30D1\u30D6\u30ED\u30D5\u30B9\u30AF\u30FB\u30AB\u30E0\u30C1\u30E3\u30C4\u30AD\u30FC\u6642\u9593
-Asia/Karachi.generic.long=\u30D1\u30AD\u30B9\u30BF\u30F3\u6642\u9593
-Asia/Kashgar.generic.long=\u4E2D\u56FD\u6642\u9593
-Asia/Kathmandu.generic.long=\u30CD\u30D1\u30FC\u30EB\u6642\u9593
-Asia/Katmandu.generic.long=\u30CD\u30D1\u30FC\u30EB\u6642\u9593
-Asia/Khandyga.daylight.long=\u30CF\u30F3\u30C9\u30A5\u30A4\u30AC\u590F\u6642\u9593
-Asia/Khandyga.generic.long=\u30CF\u30F3\u30C9\u30A5\u30A4\u30AC\u6642\u9593
-Asia/Khandyga.standard.long=\u30CF\u30F3\u30C9\u30A5\u30A4\u30AC\u6642\u9593
-Asia/Kolkata.generic.long=\u30A4\u30F3\u30C9\u6642\u9593
-Asia/Krasnoyarsk.generic.long=\u30AF\u30E9\u30B9\u30CE\u30E4\u30EB\u30B9\u30AF\u6642\u9593
-Asia/Kuala_Lumpur.generic.long=\u30DE\u30EC\u30FC\u30B7\u30A2\u6642\u9593
-Asia/Kuching.generic.long=\u30DE\u30EC\u30FC\u30B7\u30A2\u6642\u9593
-Asia/Kuwait.generic.long=\u30A2\u30E9\u30D3\u30A2\u6642\u9593
-Asia/Macao.generic.long=\u4E2D\u56FD\u6642\u9593
-Asia/Macau.generic.long=\u4E2D\u56FD\u6642\u9593
-Asia/Magadan.generic.long=\u30DE\u30AC\u30C0\u30F3\u6642\u9593
-Asia/Makassar.generic.long=\u4E2D\u90E8\u30A4\u30F3\u30C9\u30CD\u30B7\u30A2\u6642\u9593
-Asia/Manila.generic.long=\u30D5\u30A3\u30EA\u30D4\u30F3\u6642\u9593
-Asia/Muscat.generic.long=\u6E7E\u5CB8\u6642\u9593
-Asia/Nicosia.generic.long=\u6771\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Asia/Novokuznetsk.generic.long=\u30CE\u30F4\u30A9\u30B7\u30D3\u30EB\u30B9\u30AF\u6642\u9593
-Asia/Novosibirsk.generic.long=\u30CE\u30F4\u30A9\u30B7\u30D3\u30EB\u30B9\u30AF\u6642\u9593
-Asia/Omsk.generic.long=\u30AA\u30E0\u30B9\u30AF\u6642\u9593
-Asia/Oral.generic.long=\u30AA\u30E9\u30EB\u6642\u9593
-Asia/Phnom_Penh.generic.long=\u30A4\u30F3\u30C9\u30B7\u30CA\u6642\u9593
-Asia/Pontianak.generic.long=\u897F\u90E8\u30A4\u30F3\u30C9\u30CD\u30B7\u30A2\u6642\u9593
-Asia/Pyongyang.generic.long=\u97D3\u56FD\u6642\u9593
-Asia/Qatar.generic.long=\u30A2\u30E9\u30D3\u30A2\u6642\u9593
-Asia/Qyzylorda.generic.long=\u30AF\u30BA\u30ED\u30EB\u30C0\u6642\u9593
-Asia/Rangoon.generic.long=\u30DF\u30E3\u30F3\u30DE\u30FC\u6642\u9593
-Asia/Saigon.generic.long=\u30A4\u30F3\u30C9\u30B7\u30CA\u6642\u9593
-Asia/Sakhalin.generic.long=\u30B5\u30CF\u30EA\u30F3\u6642\u9593
-Asia/Samarkand.generic.long=\u30A6\u30BA\u30D9\u30AD\u30B9\u30BF\u30F3\u6642\u9593
-Asia/Seoul.generic.long=\u97D3\u56FD\u6642\u9593
-Asia/Shanghai.generic.long=\u4E2D\u56FD\u6642\u9593
-Asia/Singapore.generic.long=\u30B7\u30F3\u30AC\u30DD\u30FC\u30EB\u6642\u9593
-Asia/Taipei.generic.long=\u4E2D\u56FD\u6642\u9593
-Asia/Tashkent.generic.long=\u30A6\u30BA\u30D9\u30AD\u30B9\u30BF\u30F3\u6642\u9593
-Asia/Tbilisi.generic.long=\u30B0\u30EB\u30B8\u30A2\u6642\u9593
-Asia/Tehran.generic.long=\u30A4\u30E9\u30F3\u6642\u9593
-Asia/Tel_Aviv.generic.long=\u30A4\u30B9\u30E9\u30A8\u30EB\u6642\u9593
-Asia/Thimbu.generic.long=\u30D6\u30FC\u30BF\u30F3\u6642\u9593
-Asia/Thimphu.generic.long=\u30D6\u30FC\u30BF\u30F3\u6642\u9593
-Asia/Tokyo.generic.long=\u65E5\u672C\u6642\u9593
-Asia/Ujung_Pandang.generic.long=\u4E2D\u90E8\u30A4\u30F3\u30C9\u30CD\u30B7\u30A2\u6642\u9593
-Asia/Ulaanbaatar.generic.long=\u30A6\u30E9\u30F3\u30D0\u30FC\u30C8\u30EB\u6642\u9593
-Asia/Ulan_Bator.generic.long=\u30A6\u30E9\u30F3\u30D0\u30FC\u30C8\u30EB\u6642\u9593
-Asia/Urumqi.generic.long=\u4E2D\u56FD\u6642\u9593
-Asia/Ust-Nera.daylight.long=\u30A6\u30B9\u30C1\u30CD\u30E9\u590F\u6642\u9593
-Asia/Ust-Nera.generic.long=\u30A6\u30B9\u30C1\u30CD\u30E9\u6642\u9593
-Asia/Ust-Nera.standard.long=\u30A6\u30B9\u30C1\u30CD\u30E9\u6642\u9593
-Asia/Vientiane.generic.long=\u30A4\u30F3\u30C9\u30B7\u30CA\u6642\u9593
-Asia/Vladivostok.generic.long=\u30A6\u30E9\u30B8\u30AA\u30B9\u30C8\u30AF\u6642\u9593
-Asia/Yakutsk.generic.long=\u30E4\u30AF\u30FC\u30C4\u30AF\u6642\u9593
-Asia/Yekaterinburg.generic.long=\u30A8\u30AB\u30C6\u30EA\u30F3\u30D6\u30EB\u30AF\u6642\u9593
-Asia/Yerevan.generic.long=\u30A2\u30EB\u30E1\u30CB\u30A2\u6642\u9593
-Atlantic/Azores.generic.long=\u30A2\u30BE\u30EC\u30B9\u6642\u9593
-Atlantic/Bermuda.generic.long=\u5927\u897F\u6D0B\u6A19\u6E96\u6642
-Atlantic/Canary.generic.long=\u897F\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Atlantic/Cape_Verde.generic.long=\u30AB\u30FC\u30DC\u30D9\u30EB\u30C7\u6642\u9593
-Atlantic/Faeroe.generic.long=\u897F\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Atlantic/Faroe.generic.long=\u897F\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Atlantic/Jan_Mayen.generic.long=\u4E2D\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Atlantic/Madeira.generic.long=\u897F\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Atlantic/Reykjavik.generic.long=\u30B0\u30EA\u30CB\u30C3\u30B8\u6A19\u6E96\u6642
-Atlantic/South_Georgia.generic.long=\u5357\u30B8\u30E7\u30FC\u30B8\u30A2\u6642\u9593
-Atlantic/St_Helena.generic.long=\u30B0\u30EA\u30CB\u30C3\u30B8\u6A19\u6E96\u6642
-Atlantic/Stanley.generic.long=\u30D5\u30A9\u30FC\u30AF\u30E9\u30F3\u30C9\u8AF8\u5CF6\u6642\u9593
-Australia/ACT.daylight.long=\u6771\u90E8\u590F\u6642\u9593(\u30CB\u30E5\u30FC\u30B5\u30A6\u30B9\u30A6\u30A7\u30FC\u30EB\u30BA)
-Australia/ACT.generic.long=\u6771\u90E8\u6A19\u6E96\u6642(\u30CB\u30E5\u30FC\u30B5\u30A6\u30B9\u30A6\u30A7\u30FC\u30EB\u30BA)
-Australia/ACT.standard.long=\u6771\u90E8\u6A19\u6E96\u6642(\u30CB\u30E5\u30FC\u30B5\u30A6\u30B9\u30A6\u30A7\u30FC\u30EB\u30BA)
-Australia/Adelaide.daylight.long=\u4E2D\u90E8\u590F\u6642\u9593(\u5357\u30AA\u30FC\u30B9\u30C8\u30E9\u30EA\u30A2)
-Australia/Adelaide.generic.long=\u4E2D\u90E8\u6A19\u6E96\u6642(\u5357\u30AA\u30FC\u30B9\u30C8\u30E9\u30EA\u30A2)
-Australia/Adelaide.standard.long=\u4E2D\u90E8\u6A19\u6E96\u6642(\u5357\u30AA\u30FC\u30B9\u30C8\u30E9\u30EA\u30A2)
-Australia/Brisbane.daylight.long=\u6771\u90E8\u590F\u6642\u9593(\u30AF\u30A4\u30FC\u30F3\u30BA\u30E9\u30F3\u30C9)
-Australia/Brisbane.generic.long=\u6771\u90E8\u6A19\u6E96\u6642(\u30AF\u30A4\u30FC\u30F3\u30BA\u30E9\u30F3\u30C9)
-Australia/Brisbane.standard.long=\u6771\u90E8\u6A19\u6E96\u6642(\u30AF\u30A4\u30FC\u30F3\u30BA\u30E9\u30F3\u30C9)
-Australia/Broken_Hill.daylight.long=\u4E2D\u90E8\u590F\u6642\u9593(\u5357\u30AA\u30FC\u30B9\u30C8\u30E9\u30EA\u30A2/\u30CB\u30E5\u30FC\u30B5\u30A6\u30B9\u30A6\u30A7\u30FC\u30EB\u30BA)
-Australia/Broken_Hill.generic.long=\u4E2D\u90E8\u6A19\u6E96\u6642(\u5357\u30AA\u30FC\u30B9\u30C8\u30E9\u30EA\u30A2/\u30CB\u30E5\u30FC\u30B5\u30A6\u30B9\u30A6\u30A7\u30FC\u30EB\u30BA)
-Australia/Broken_Hill.standard.long=\u4E2D\u90E8\u6A19\u6E96\u6642(\u5357\u30AA\u30FC\u30B9\u30C8\u30E9\u30EA\u30A2/\u30CB\u30E5\u30FC\u30B5\u30A6\u30B9\u30A6\u30A7\u30FC\u30EB\u30BA)
-Australia/Canberra.daylight.long=\u6771\u90E8\u590F\u6642\u9593(\u30CB\u30E5\u30FC\u30B5\u30A6\u30B9\u30A6\u30A7\u30FC\u30EB\u30BA)
-Australia/Canberra.generic.long=\u6771\u90E8\u6A19\u6E96\u6642(\u30CB\u30E5\u30FC\u30B5\u30A6\u30B9\u30A6\u30A7\u30FC\u30EB\u30BA)
-Australia/Canberra.standard.long=\u6771\u90E8\u6A19\u6E96\u6642(\u30CB\u30E5\u30FC\u30B5\u30A6\u30B9\u30A6\u30A7\u30FC\u30EB\u30BA)
-Australia/Currie.daylight.long=\u6771\u90E8\u590F\u6642\u9593(\u30CB\u30E5\u30FC\u30B5\u30A6\u30B9\u30A6\u30A7\u30FC\u30EB\u30BA)
-Australia/Currie.generic.long=\u6771\u90E8\u6A19\u6E96\u6642(\u30CB\u30E5\u30FC\u30B5\u30A6\u30B9\u30A6\u30A7\u30FC\u30EB\u30BA)
-Australia/Currie.standard.long=\u6771\u90E8\u6A19\u6E96\u6642(\u30CB\u30E5\u30FC\u30B5\u30A6\u30B9\u30A6\u30A7\u30FC\u30EB\u30BA)
-Australia/Darwin.daylight.long=\u4E2D\u90E8\u590F\u6642\u9593(\u30CE\u30FC\u30B6\u30F3\u30C6\u30EA\u30C8\u30EA\u30FC)
-Australia/Darwin.generic.long=\u4E2D\u90E8\u6A19\u6E96\u6642(\u30CE\u30FC\u30B6\u30F3\u30C6\u30EA\u30C8\u30EA\u30FC)
-Australia/Darwin.standard.long=\u4E2D\u90E8\u6A19\u6E96\u6642(\u30CE\u30FC\u30B6\u30F3\u30C6\u30EA\u30C8\u30EA\u30FC)
-Australia/Eucla.daylight.long=\u4E2D\u897F\u90E8\u590F\u6642\u9593(\u30AA\u30FC\u30B9\u30C8\u30E9\u30EA\u30A2)
-Australia/Eucla.generic.long=\u4E2D\u897F\u90E8\u6642\u9593(\u30AA\u30FC\u30B9\u30C8\u30E9\u30EA\u30A2)
-Australia/Eucla.standard.long=\u4E2D\u897F\u90E8\u6A19\u6E96\u6642(\u30AA\u30FC\u30B9\u30C8\u30E9\u30EA\u30A2)
-Australia/Hobart.daylight.long=\u6771\u90E8\u590F\u6642\u9593(\u30BF\u30B9\u30DE\u30CB\u30A2)
-Australia/Hobart.generic.long=\u6771\u90E8\u6A19\u6E96\u6642(\u30BF\u30B9\u30DE\u30CB\u30A2)
-Australia/Hobart.standard.long=\u6771\u90E8\u6A19\u6E96\u6642(\u30BF\u30B9\u30DE\u30CB\u30A2)
-Australia/LHI.generic.long=\u30ED\u30FC\u30C9\u30CF\u30A6\u6642\u9593
-Australia/Lindeman.daylight.long=\u6771\u90E8\u590F\u6642\u9593(\u30AF\u30A4\u30FC\u30F3\u30BA\u30E9\u30F3\u30C9)
-Australia/Lindeman.generic.long=\u6771\u90E8\u6A19\u6E96\u6642(\u30AF\u30A4\u30FC\u30F3\u30BA\u30E9\u30F3\u30C9)
-Australia/Lindeman.standard.long=\u6771\u90E8\u6A19\u6E96\u6642(\u30AF\u30A4\u30FC\u30F3\u30BA\u30E9\u30F3\u30C9)
-Australia/Lord_Howe.generic.long=\u30ED\u30FC\u30C9\u30CF\u30A6\u6642\u9593
-Australia/Melbourne.daylight.long=\u6771\u90E8\u590F\u6642\u9593(\u30D3\u30AF\u30C8\u30EA\u30A2)
-Australia/Melbourne.generic.long=\u6771\u90E8\u6A19\u6E96\u6642(\u30D3\u30AF\u30C8\u30EA\u30A2)
-Australia/Melbourne.standard.long=\u6771\u90E8\u6A19\u6E96\u6642(\u30D3\u30AF\u30C8\u30EA\u30A2)
-Australia/NSW.daylight.long=\u6771\u90E8\u590F\u6642\u9593(\u30CB\u30E5\u30FC\u30B5\u30A6\u30B9\u30A6\u30A7\u30FC\u30EB\u30BA)
-Australia/NSW.generic.long=\u6771\u90E8\u6A19\u6E96\u6642(\u30CB\u30E5\u30FC\u30B5\u30A6\u30B9\u30A6\u30A7\u30FC\u30EB\u30BA)
-Australia/NSW.standard.long=\u6771\u90E8\u6A19\u6E96\u6642(\u30CB\u30E5\u30FC\u30B5\u30A6\u30B9\u30A6\u30A7\u30FC\u30EB\u30BA)
-Australia/North.daylight.long=\u4E2D\u90E8\u590F\u6642\u9593(\u30CE\u30FC\u30B6\u30F3\u30C6\u30EA\u30C8\u30EA\u30FC)
-Australia/North.generic.long=\u4E2D\u90E8\u6A19\u6E96\u6642(\u30CE\u30FC\u30B6\u30F3\u30C6\u30EA\u30C8\u30EA\u30FC)
-Australia/North.standard.long=\u4E2D\u90E8\u6A19\u6E96\u6642(\u30CE\u30FC\u30B6\u30F3\u30C6\u30EA\u30C8\u30EA\u30FC)
-Australia/Perth.daylight.long=\u897F\u90E8\u590F\u6642\u9593(\u30AA\u30FC\u30B9\u30C8\u30E9\u30EA\u30A2)
-Australia/Perth.generic.long=\u897F\u90E8\u6642\u9593(\u30AA\u30FC\u30B9\u30C8\u30E9\u30EA\u30A2)
-Australia/Perth.standard.long=\u897F\u90E8\u6A19\u6E96\u6642(\u30AA\u30FC\u30B9\u30C8\u30E9\u30EA\u30A2)
-Australia/Queensland.daylight.long=\u6771\u90E8\u590F\u6642\u9593(\u30AF\u30A4\u30FC\u30F3\u30BA\u30E9\u30F3\u30C9)
-Australia/Queensland.generic.long=\u6771\u90E8\u6A19\u6E96\u6642(\u30AF\u30A4\u30FC\u30F3\u30BA\u30E9\u30F3\u30C9)
-Australia/Queensland.standard.long=\u6771\u90E8\u6A19\u6E96\u6642(\u30AF\u30A4\u30FC\u30F3\u30BA\u30E9\u30F3\u30C9)
-Australia/South.daylight.long=\u4E2D\u90E8\u590F\u6642\u9593(\u5357\u30AA\u30FC\u30B9\u30C8\u30E9\u30EA\u30A2)
-Australia/South.generic.long=\u4E2D\u90E8\u6A19\u6E96\u6642(\u5357\u30AA\u30FC\u30B9\u30C8\u30E9\u30EA\u30A2)
-Australia/South.standard.long=\u4E2D\u90E8\u6A19\u6E96\u6642(\u5357\u30AA\u30FC\u30B9\u30C8\u30E9\u30EA\u30A2)
-Australia/Sydney.daylight.long=\u6771\u90E8\u590F\u6642\u9593(\u30CB\u30E5\u30FC\u30B5\u30A6\u30B9\u30A6\u30A7\u30FC\u30EB\u30BA)
-Australia/Sydney.generic.long=\u6771\u90E8\u6A19\u6E96\u6642(\u30CB\u30E5\u30FC\u30B5\u30A6\u30B9\u30A6\u30A7\u30FC\u30EB\u30BA)
-Australia/Sydney.standard.long=\u6771\u90E8\u6A19\u6E96\u6642(\u30CB\u30E5\u30FC\u30B5\u30A6\u30B9\u30A6\u30A7\u30FC\u30EB\u30BA)
-Australia/Tasmania.daylight.long=\u6771\u90E8\u590F\u6642\u9593(\u30BF\u30B9\u30DE\u30CB\u30A2)
-Australia/Tasmania.generic.long=\u6771\u90E8\u6A19\u6E96\u6642(\u30BF\u30B9\u30DE\u30CB\u30A2)
-Australia/Tasmania.standard.long=\u6771\u90E8\u6A19\u6E96\u6642(\u30BF\u30B9\u30DE\u30CB\u30A2)
-Australia/Victoria.daylight.long=\u6771\u90E8\u590F\u6642\u9593(\u30D3\u30AF\u30C8\u30EA\u30A2)
-Australia/Victoria.generic.long=\u6771\u90E8\u6A19\u6E96\u6642(\u30D3\u30AF\u30C8\u30EA\u30A2)
-Australia/Victoria.standard.long=\u6771\u90E8\u6A19\u6E96\u6642(\u30D3\u30AF\u30C8\u30EA\u30A2)
-Australia/West.daylight.long=\u897F\u90E8\u590F\u6642\u9593(\u30AA\u30FC\u30B9\u30C8\u30E9\u30EA\u30A2)
-Australia/West.generic.long=\u897F\u90E8\u6642\u9593(\u30AA\u30FC\u30B9\u30C8\u30E9\u30EA\u30A2)
-Australia/West.standard.long=\u897F\u90E8\u6A19\u6E96\u6642(\u30AA\u30FC\u30B9\u30C8\u30E9\u30EA\u30A2)
-Australia/Yancowinna.daylight.long=\u4E2D\u90E8\u590F\u6642\u9593(\u5357\u30AA\u30FC\u30B9\u30C8\u30E9\u30EA\u30A2/\u30CB\u30E5\u30FC\u30B5\u30A6\u30B9\u30A6\u30A7\u30FC\u30EB\u30BA)
-Australia/Yancowinna.generic.long=\u4E2D\u90E8\u6A19\u6E96\u6642(\u5357\u30AA\u30FC\u30B9\u30C8\u30E9\u30EA\u30A2/\u30CB\u30E5\u30FC\u30B5\u30A6\u30B9\u30A6\u30A7\u30FC\u30EB\u30BA)
-Australia/Yancowinna.standard.long=\u4E2D\u90E8\u6A19\u6E96\u6642(\u5357\u30AA\u30FC\u30B9\u30C8\u30E9\u30EA\u30A2/\u30CB\u30E5\u30FC\u30B5\u30A6\u30B9\u30A6\u30A7\u30FC\u30EB\u30BA)
-BET.generic.long=\u30D6\u30E9\u30B8\u30EA\u30A2\u6642\u9593
-BST.generic.long=\u30D0\u30F3\u30B0\u30E9\u30C7\u30B7\u30E5\u6642\u9593
-Brazil/Acre.generic.long=\u30a2\u30af\u30ec\u6642\u9593
-Brazil/DeNoronha.generic.long=\u30D5\u30A7\u30EB\u30CA\u30F3\u30C9\u30FB\u30C7\u30FB\u30CE\u30ED\u30FC\u30CB\u30E3\u6642\u9593
-Brazil/East.generic.long=\u30D6\u30E9\u30B8\u30EA\u30A2\u6642\u9593
-Brazil/West.generic.long=\u30A2\u30DE\u30BE\u30F3\u6642\u9593
-CAT.generic.long=\u4E2D\u90E8\u30A2\u30D5\u30EA\u30AB\u6642\u9593
-CET.generic.long=\u4e2d\u90e8\u30e8\u30fc\u30ed\u30c3\u30d1\u6642\u9593
-CNT.generic.long=\u30CB\u30E5\u30FC\u30D5\u30A1\u30F3\u30C9\u30E9\u30F3\u30C9\u6642\u9593
-CST.generic.long=\u4E2D\u90E8\u6A19\u6E96\u6642
-CST6CDT.generic.long=\u4e2d\u90e8\u6a19\u6e96\u6642
-CTT.generic.long=\u4E2D\u56FD\u6642\u9593
-Canada/Atlantic.generic.long=\u5927\u897F\u6D0B\u6A19\u6E96\u6642
-Canada/Central.generic.long=\u4E2D\u90E8\u6A19\u6E96\u6642
-Canada/East-Saskatchewan.generic.long=\u4E2D\u90E8\u6A19\u6E96\u6642
-Canada/Eastern.generic.long=\u6771\u90E8\u6A19\u6E96\u6642
-Canada/Mountain.generic.long=\u5C71\u5730\u6A19\u6E96\u6642
-Canada/Newfoundland.generic.long=\u30CB\u30E5\u30FC\u30D5\u30A1\u30F3\u30C9\u30E9\u30F3\u30C9\u6642\u9593
-Canada/Pacific.generic.long=\u592A\u5E73\u6D0B\u6A19\u6E96\u6642
-Canada/Saskatchewan.generic.long=\u4E2D\u90E8\u6A19\u6E96\u6642
-Canada/Yukon.generic.long=\u592A\u5E73\u6D0B\u6A19\u6E96\u6642
-Chile/Continental.generic.long=\u30C1\u30EA\u6642\u9593
-Chile/EasterIsland.generic.long=\u30A4\u30FC\u30B9\u30BF\u30FC\u5CF6\u6642\u9593
-Cuba.generic.long=\u30AD\u30E5\u30FC\u30D0\u6642\u9593
-EAT.generic.long=\u6771\u90E8\u30A2\u30D5\u30EA\u30AB\u6642\u9593
-ECT.generic.long=\u4E2D\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-EET.generic.long=\u6771\u90e8\u30e8\u30fc\u30ed\u30c3\u30d1\u6642\u9593
-EST.generic.long=\u6771\u90e8\u6a19\u6e96\u6642
-EST5EDT.generic.long=\u6771\u90e8\u6a19\u6e96\u6642
-Egypt.generic.long=\u6771\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Eire.generic.long=\u30A2\u30A4\u30EB\u30E9\u30F3\u30C9\u6642\u9593
-Etc/Greenwich.generic.long=\u30B0\u30EA\u30CB\u30C3\u30B8\u6A19\u6E96\u6642
-Etc/UCT.generic.long=\u5354\u5B9A\u4E16\u754C\u6642
-Etc/UTC.generic.long=\u5354\u5B9A\u4E16\u754C\u6642
-Etc/Universal.generic.long=\u5354\u5B9A\u4E16\u754C\u6642
-Etc/Zulu.generic.long=\u5354\u5B9A\u4E16\u754C\u6642
-Europe/Amsterdam.generic.long=\u4E2D\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Europe/Andorra.generic.long=\u4E2D\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Europe/Athens.generic.long=\u6771\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Europe/Belfast.generic.long=\u30A4\u30AE\u30EA\u30B9\u6642\u9593
-Europe/Belgrade.generic.long=\u4E2D\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Europe/Berlin.generic.long=\u4E2D\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Europe/Bratislava.generic.long=\u4E2D\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Europe/Brussels.generic.long=\u4E2D\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Europe/Bucharest.generic.long=\u6771\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Europe/Budapest.generic.long=\u4E2D\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Europe/Busingen.generic.long=\u4E2D\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Europe/Chisinau.generic.long=\u6771\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Europe/Copenhagen.generic.long=\u4E2D\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Europe/Dublin.generic.long=\u30A2\u30A4\u30EB\u30E9\u30F3\u30C9\u6642\u9593
-Europe/Gibraltar.generic.long=\u4E2D\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Europe/Guernsey.generic.long=\u30A4\u30AE\u30EA\u30B9\u6642\u9593
-Europe/Helsinki.generic.long=\u6771\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Europe/Isle_of_Man.generic.long=\u30A4\u30AE\u30EA\u30B9\u6642\u9593
-Europe/Istanbul.generic.long=\u6771\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Europe/Jersey.generic.long=\u30A4\u30AE\u30EA\u30B9\u6642\u9593
-Europe/Kaliningrad.daylight.long=\u6975\u6771\u30E8\u30FC\u30ED\u30C3\u30D1\u590F\u6642\u9593
-Europe/Kaliningrad.generic.long=\u6975\u6771\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Europe/Kaliningrad.standard.long=\u6975\u6771\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Europe/Kiev.generic.long=\u6771\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Europe/Lisbon.generic.long=\u897F\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Europe/Ljubljana.generic.long=\u4E2D\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Europe/London.generic.long=\u30A4\u30AE\u30EA\u30B9\u6642\u9593
-Europe/Luxembourg.generic.long=\u4E2D\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Europe/Madrid.generic.long=\u4E2D\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Europe/Malta.generic.long=\u4E2D\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Europe/Mariehamn.generic.long=\u6771\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Europe/Minsk.daylight.long=\u6975\u6771\u30E8\u30FC\u30ED\u30C3\u30D1\u590F\u6642\u9593
-Europe/Minsk.generic.long=\u6975\u6771\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Europe/Minsk.standard.long=\u6975\u6771\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Europe/Monaco.generic.long=\u4E2D\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Europe/Moscow.generic.long=\u30E2\u30B9\u30AF\u30EF\u6642\u9593
-Europe/Nicosia.generic.long=\u6771\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Europe/Oslo.generic.long=\u4E2D\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Europe/Paris.generic.long=\u4E2D\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Europe/Podgorica.generic.long=\u4E2D\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Europe/Prague.generic.long=\u4E2D\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Europe/Riga.generic.long=\u6771\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Europe/Rome.generic.long=\u4E2D\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Europe/Samara.generic.long=\u30B5\u30DE\u30E9\u6642\u9593
-Europe/San_Marino.generic.long=\u4E2D\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Europe/Sarajevo.generic.long=\u4E2D\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Europe/Simferopol.generic.long=\u6771\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Europe/Skopje.generic.long=\u4E2D\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Europe/Sofia.generic.long=\u6771\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Europe/Stockholm.generic.long=\u4E2D\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Europe/Tallinn.generic.long=\u6771\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Europe/Tirane.generic.long=\u4E2D\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Europe/Tiraspol.generic.long=\u6771\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Europe/Uzhgorod.generic.long=\u6771\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Europe/Vaduz.generic.long=\u4E2D\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Europe/Vatican.generic.long=\u4E2D\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Europe/Vienna.generic.long=\u4E2D\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Europe/Vilnius.generic.long=\u6771\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Europe/Volgograd.generic.long=\u30DC\u30EB\u30B4\u30B0\u30E9\u30FC\u30C9\u6642\u9593
-Europe/Warsaw.generic.long=\u4E2D\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Europe/Zagreb.generic.long=\u4E2D\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Europe/Zaporozhye.generic.long=\u6771\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Europe/Zurich.generic.long=\u4E2D\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-GB-Eire.generic.long=\u30A4\u30AE\u30EA\u30B9\u6642\u9593
-GB.generic.long=\u30A4\u30AE\u30EA\u30B9\u6642\u9593
-GMT.generic.long=\u30B0\u30EA\u30CB\u30C3\u30B8\u6A19\u6E96\u6642
-Greenwich.generic.long=\u30B0\u30EA\u30CB\u30C3\u30B8\u6A19\u6E96\u6642
-HST.generic.long=\u30cf\u30ef\u30a4\u6642\u9593
-Hongkong.generic.long=\u9999\u6E2F\u6642\u9593
-IET.generic.long=\u6771\u90E8\u6A19\u6E96\u6642
-IST.generic.long=\u30A4\u30F3\u30C9\u6642\u9593
-Iceland.generic.long=\u30B0\u30EA\u30CB\u30C3\u30B8\u6A19\u6E96\u6642
-Indian/Antananarivo.generic.long=\u6771\u90E8\u30A2\u30D5\u30EA\u30AB\u6642\u9593
-Indian/Chagos.generic.long=\u30A4\u30F3\u30C9\u6D0B\u5730\u57DF\u6642\u9593
-Indian/Christmas.generic.long=\u30AF\u30EA\u30B9\u30DE\u30B9\u5CF6\u6642\u9593
-Indian/Cocos.generic.long=\u30B3\u30B3\u30B9\u8AF8\u5CF6\u6642\u9593
-Indian/Comoro.generic.long=\u6771\u90E8\u30A2\u30D5\u30EA\u30AB\u6642\u9593
-Indian/Kerguelen.generic.long=\u30D5\u30E9\u30F3\u30B9\u9818\u5357\u65B9\u304A\u3088\u3073\u5357\u6975\u5927\u9678\u6642\u9593
-Indian/Mahe.generic.long=\u30BB\u30FC\u30B7\u30A7\u30EB\u6642\u9593
-Indian/Maldives.generic.long=\u30E2\u30EB\u30B8\u30D6\u6642\u9593
-Indian/Mauritius.generic.long=\u30E2\u30FC\u30EA\u30B7\u30E3\u30B9\u6642\u9593
-Indian/Mayotte.generic.long=\u6771\u90E8\u30A2\u30D5\u30EA\u30AB\u6642\u9593
-Indian/Reunion.generic.long=\u30EC\u30E6\u30CB\u30AA\u30F3\u6642\u9593
-Iran.generic.long=\u30A4\u30E9\u30F3\u6642\u9593
-Israel.generic.long=\u30A4\u30B9\u30E9\u30A8\u30EB\u6642\u9593
-JST.generic.long=\u65E5\u672C\u6642\u9593
-Jamaica.generic.long=\u6771\u90E8\u6A19\u6E96\u6642
-Japan.generic.long=\u65E5\u672C\u6642\u9593
-Kwajalein.generic.long=\u30DE\u30FC\u30B7\u30E3\u30EB\u8AF8\u5CF6\u6642\u9593
-Libya.generic.long=\u6771\u90e8\u30e8\u30fc\u30ed\u30c3\u30d1\u6642\u9593
-MET.generic.long=MET
-MIT.generic.long=\u897F\u30B5\u30E2\u30A2\u6642\u9593
-MST.generic.long=\u5c71\u5730\u6a19\u6e96\u6642
-MST7MDT.generic.long=\u5c71\u5730\u6a19\u6e96\u6642
-Mexico/BajaNorte.generic.long=\u592A\u5E73\u6D0B\u6A19\u6E96\u6642
-Mexico/BajaSur.generic.long=\u5C71\u5730\u6A19\u6E96\u6642
-Mexico/General.generic.long=\u4E2D\u90E8\u6A19\u6E96\u6642
-NET.generic.long=\u30A2\u30EB\u30E1\u30CB\u30A2\u6642\u9593
-NST.generic.long=\u30CB\u30E5\u30FC\u30B8\u30FC\u30E9\u30F3\u30C9\u6642\u9593
-NZ-CHAT.generic.long=\u30C1\u30E3\u30BF\u30E0\u6642\u9593
-NZ.generic.long=\u30CB\u30E5\u30FC\u30B8\u30FC\u30E9\u30F3\u30C9\u6642\u9593
-Navajo.generic.long=\u5C71\u5730\u6A19\u6E96\u6642
-PLT.generic.long=\u30D1\u30AD\u30B9\u30BF\u30F3\u6642\u9593
-PNT.generic.long=\u5C71\u5730\u6A19\u6E96\u6642
-PRC.generic.long=\u4E2D\u56FD\u6642\u9593
-PRT.generic.long=\u5927\u897F\u6D0B\u6A19\u6E96\u6642
-PST.generic.long=\u592A\u5E73\u6D0B\u6A19\u6E96\u6642
-PST8PDT.generic.long=\u592a\u5e73\u6d0b\u6a19\u6e96\u6642
-Pacific/Apia.generic.long=\u897F\u30B5\u30E2\u30A2\u6642\u9593
-Pacific/Auckland.generic.long=\u30CB\u30E5\u30FC\u30B8\u30FC\u30E9\u30F3\u30C9\u6642\u9593
-Pacific/Chatham.generic.long=\u30C1\u30E3\u30BF\u30E0\u6642\u9593
-Pacific/Chuuk.daylight.long=Chuuk Time
-Pacific/Chuuk.generic.long=\u30C1\u30E5\u30FC\u30AF\u6642\u9593
-Pacific/Chuuk.standard.long=\u30C1\u30E5\u30FC\u30AF\u6642\u9593
-Pacific/Easter.generic.long=\u30A4\u30FC\u30B9\u30BF\u30FC\u5CF6\u6642\u9593
-Pacific/Efate.generic.long=\u30D0\u30CC\u30A2\u30C4\u6642\u9593
-Pacific/Enderbury.generic.long=\u30D5\u30A7\u30CB\u30C3\u30AF\u30B9\u8AF8\u5CF6\u6642\u9593
-Pacific/Fakaofo.generic.long=\u30C8\u30B1\u30E9\u30A6\u6642\u9593
-Pacific/Fiji.generic.long=\u30D5\u30A3\u30B8\u30FC\u6642\u9593
-Pacific/Funafuti.generic.long=\u30C4\u30D0\u30EB\u6642\u9593
-Pacific/Galapagos.generic.long=\u30AC\u30E9\u30D1\u30B4\u30B9\u6642\u9593
-Pacific/Gambier.generic.long=\u30AC\u30F3\u30D3\u30A8\u6642\u9593
-Pacific/Guadalcanal.generic.long=\u30BD\u30ED\u30E2\u30F3\u8AF8\u5CF6\u6642\u9593
-Pacific/Guam.generic.long=\u30C1\u30E3\u30E2\u30ED\u6642\u9593
-Pacific/Honolulu.generic.long=\u30CF\u30EF\u30A4\u6642\u9593
-Pacific/Johnston.generic.long=\u30CF\u30EF\u30A4\u6642\u9593
-Pacific/Kiritimati.generic.long=\u30E9\u30A4\u30F3\u8AF8\u5CF6\u6642\u9593
-Pacific/Kosrae.generic.long=\u30B3\u30B9\u30E9\u30A8\u6642\u9593
-Pacific/Kwajalein.generic.long=\u30DE\u30FC\u30B7\u30E3\u30EB\u8AF8\u5CF6\u6642\u9593
-Pacific/Majuro.generic.long=\u30DE\u30FC\u30B7\u30E3\u30EB\u8AF8\u5CF6\u6642\u9593
-Pacific/Marquesas.generic.long=\u30DE\u30EB\u30AD\u30FC\u30BA\u6642\u9593
-Pacific/Midway.generic.long=\u30B5\u30E2\u30A2\u6642\u9593
-Pacific/Nauru.generic.long=\u30CA\u30A6\u30EB\u6642\u9593
-Pacific/Niue.generic.long=\u30CB\u30A6\u30A8\u6642\u9593
-Pacific/Norfolk.generic.long=\u30CE\u30FC\u30D5\u30A9\u30FC\u30AF\u6642\u9593
-Pacific/Noumea.generic.long=\u30CB\u30E5\u30FC\u30AB\u30EC\u30C9\u30CB\u30A2\u6642\u9593
-Pacific/Pago_Pago.generic.long=\u30B5\u30E2\u30A2\u6642\u9593
-Pacific/Palau.generic.long=\u30D1\u30E9\u30AA\u6642\u9593
-Pacific/Pitcairn.generic.long=\u30D4\u30C8\u30B1\u30A2\u30F3\u6642\u9593
-Pacific/Pohnpei.daylight.long=\u30DD\u30F3\u30DA\u30A4\u590F\u6642\u9593
-Pacific/Pohnpei.generic.long=\u30DD\u30CA\u30DA\u6642\u9593
-Pacific/Pohnpei.standard.long=\u30DD\u30F3\u30DA\u30A4\u6642\u9593
-Pacific/Ponape.daylight.long=\u30DD\u30F3\u30DA\u30A4\u590F\u6642\u9593
-Pacific/Ponape.generic.long=\u30DD\u30CA\u30DA\u6642\u9593
-Pacific/Ponape.standard.long=\u30DD\u30F3\u30DA\u30A4\u6642\u9593
-Pacific/Port_Moresby.generic.long=\u30D1\u30D7\u30A2\u30CB\u30E5\u30FC\u30AE\u30CB\u30A2\u6642\u9593
-Pacific/Rarotonga.generic.long=\u30AF\u30C3\u30AF\u8AF8\u5CF6\u6642\u9593
-Pacific/Saipan.generic.long=\u30C1\u30E3\u30E2\u30ED\u6642\u9593
-Pacific/Samoa.generic.long=\u30B5\u30E2\u30A2\u6642\u9593
-Pacific/Tahiti.generic.long=\u30BF\u30D2\u30C1\u6642\u9593
-Pacific/Tarawa.generic.long=\u30AE\u30EB\u30D0\u30FC\u30C8\u8AF8\u5CF6\u6642\u9593
-Pacific/Tongatapu.generic.long=\u30C8\u30F3\u30AC\u6642\u9593
-Pacific/Truk.daylight.long=Chuuk Time
-Pacific/Truk.generic.long=\u30C1\u30E5\u30FC\u30AF\u6642\u9593
-Pacific/Truk.standard.long=\u30C1\u30E5\u30FC\u30AF\u6642\u9593
-Pacific/Wake.generic.long=\u30A6\u30A7\u30FC\u30AF\u6642\u9593
-Pacific/Wallis.generic.long=\u30A6\u30A9\u30EA\u30B9\u30FB\u30D5\u30C4\u30CA\u6642\u9593
-Pacific/Yap.daylight.long=Chuuk Time
-Pacific/Yap.generic.long=\u30C1\u30E5\u30FC\u30AF\u6642\u9593
-Pacific/Yap.standard.long=\u30C1\u30E5\u30FC\u30AF\u6642\u9593
-Poland.generic.long=\u4E2D\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-Portugal.generic.long=\u897F\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-ROK.generic.long=\u97D3\u56FD\u6642\u9593
-SST.generic.long=\u30BD\u30ED\u30E2\u30F3\u8AF8\u5CF6\u6642\u9593
-Singapore.generic.long=\u30B7\u30F3\u30AC\u30DD\u30FC\u30EB\u6642\u9593
-SystemV/AST4.generic.long=\u5927\u897F\u6D0B\u6A19\u6E96\u6642
-SystemV/AST4ADT.generic.long=\u5927\u897F\u6D0B\u6A19\u6E96\u6642
-SystemV/CST6.generic.long=\u4E2D\u90E8\u6A19\u6E96\u6642
-SystemV/CST6CDT.generic.long=\u4E2D\u90E8\u6A19\u6E96\u6642
-SystemV/EST5.generic.long=\u6771\u90E8\u6A19\u6E96\u6642
-SystemV/EST5EDT.generic.long=\u6771\u90E8\u6A19\u6E96\u6642
-SystemV/HST10.generic.long=\u30CF\u30EF\u30A4\u6642\u9593
-SystemV/MST7.generic.long=\u5C71\u5730\u6A19\u6E96\u6642
-SystemV/MST7MDT.generic.long=\u5C71\u5730\u6A19\u6E96\u6642
-SystemV/PST8.generic.long=\u592A\u5E73\u6D0B\u6A19\u6E96\u6642
-SystemV/PST8PDT.generic.long=\u592A\u5E73\u6D0B\u6A19\u6E96\u6642
-SystemV/YST9.generic.long=\u30A2\u30E9\u30B9\u30AB\u6642\u9593
-SystemV/YST9YDT.generic.long=\u30A2\u30E9\u30B9\u30AB\u6642\u9593
-Turkey.generic.long=\u6771\u90E8\u30E8\u30FC\u30ED\u30C3\u30D1\u6642\u9593
-UCT.generic.long=\u5354\u5B9A\u4E16\u754C\u6642
-US/Alaska.generic.long=\u30A2\u30E9\u30B9\u30AB\u6642\u9593
-US/Aleutian.generic.long=\u30CF\u30EF\u30A4\u30FB\u30A2\u30EA\u30E5\u30FC\u30B7\u30E3\u30F3\u6642\u9593
-US/Arizona.generic.long=\u5C71\u5730\u6A19\u6E96\u6642
-US/Central.generic.long=\u4E2D\u90E8\u6A19\u6E96\u6642
-US/East-Indiana.generic.long=\u6771\u90E8\u6A19\u6E96\u6642
-US/Eastern.generic.long=\u6771\u90E8\u6A19\u6E96\u6642
-US/Hawaii.generic.long=\u30CF\u30EF\u30A4\u6642\u9593
-US/Indiana-Starke.generic.long=\u4E2D\u90E8\u6A19\u6E96\u6642
-US/Michigan.generic.long=\u6771\u90E8\u6A19\u6E96\u6642
-US/Mountain.generic.long=\u5C71\u5730\u6A19\u6E96\u6642
-US/Pacific-New.generic.long=\u592A\u5E73\u6D0B\u6A19\u6E96\u6642
-US/Pacific.generic.long=\u592A\u5E73\u6D0B\u6A19\u6E96\u6642
-US/Samoa.generic.long=\u30B5\u30E2\u30A2\u6642\u9593
-UTC.generic.long=\u5354\u5B9A\u4E16\u754C\u6642
-Universal.generic.long=\u5354\u5B9A\u4E16\u754C\u6642
-VST.generic.long=\u30A4\u30F3\u30C9\u30B7\u30CA\u6642\u9593
-W-SU.generic.long=\u30E2\u30B9\u30AF\u30EF\u6642\u9593
-WET.generic.long=\u897f\u90e8\u30e8\u30fc\u30ed\u30c3\u30d1\u6642\u9593
-Zulu.generic.long=\u5354\u5B9A\u4E16\u754C\u6642
diff --git a/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_ja_short.properties b/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_ja_short.properties
deleted file mode 100644
index 095522a68d1..00000000000
--- a/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_ja_short.properties
+++ /dev/null
@@ -1,1743 +0,0 @@
-ACT.daylight.short=CST
-ACT.generic.short=CT
-ACT.standard.short=CST
-AET.daylight.short=EST
-AET.generic.short=ET
-AET.standard.short=EST
-Africa/Abidjan.daylight.short=GMT
-Africa/Abidjan.generic.short=GMT
-Africa/Abidjan.standard.short=GMT
-Africa/Accra.daylight.short=GHST
-Africa/Accra.generic.short=GMT
-Africa/Accra.standard.short=GMT
-Africa/Addis_Ababa.daylight.short=EAST
-Africa/Addis_Ababa.generic.short=EAT
-Africa/Addis_Ababa.standard.short=EAT
-Africa/Algiers.daylight.short=CEST
-Africa/Algiers.generic.short=CET
-Africa/Algiers.standard.short=CET
-Africa/Asmara.daylight.short=EAST
-Africa/Asmara.generic.short=EAT
-Africa/Asmara.standard.short=EAT
-Africa/Asmera.daylight.short=EAST
-Africa/Asmera.generic.short=EAT
-Africa/Asmera.standard.short=EAT
-Africa/Bamako.daylight.short=GMT
-Africa/Bamako.generic.short=GMT
-Africa/Bamako.standard.short=GMT
-Africa/Bangui.daylight.short=WAST
-Africa/Bangui.generic.short=WAT
-Africa/Bangui.standard.short=WAT
-Africa/Banjul.daylight.short=GMT
-Africa/Banjul.generic.short=GMT
-Africa/Banjul.standard.short=GMT
-Africa/Bissau.daylight.short=GMT
-Africa/Bissau.generic.short=GMT
-Africa/Bissau.standard.short=GMT
-Africa/Blantyre.daylight.short=CAST
-Africa/Blantyre.generic.short=CAT
-Africa/Blantyre.standard.short=CAT
-Africa/Brazzaville.daylight.short=WAST
-Africa/Brazzaville.generic.short=WAT
-Africa/Brazzaville.standard.short=WAT
-Africa/Bujumbura.daylight.short=CAST
-Africa/Bujumbura.generic.short=CAT
-Africa/Bujumbura.standard.short=CAT
-Africa/Cairo.daylight.short=EEST
-Africa/Cairo.generic.short=EET
-Africa/Cairo.standard.short=EET
-Africa/Casablanca.daylight.short=WEST
-Africa/Casablanca.generic.short=WET
-Africa/Casablanca.standard.short=WET
-Africa/Ceuta.daylight.short=CEST
-Africa/Ceuta.generic.short=CET
-Africa/Ceuta.standard.short=CET
-Africa/Conakry.daylight.short=GMT
-Africa/Conakry.generic.short=GMT
-Africa/Conakry.standard.short=GMT
-Africa/Dakar.daylight.short=GMT
-Africa/Dakar.generic.short=GMT
-Africa/Dakar.standard.short=GMT
-Africa/Dar_es_Salaam.daylight.short=EAST
-Africa/Dar_es_Salaam.generic.short=EAT
-Africa/Dar_es_Salaam.standard.short=EAT
-Africa/Djibouti.daylight.short=EAST
-Africa/Djibouti.generic.short=EAT
-Africa/Djibouti.standard.short=EAT
-Africa/Douala.daylight.short=WAST
-Africa/Douala.generic.short=WAT
-Africa/Douala.standard.short=WAT
-Africa/El_Aaiun.daylight.short=WEST
-Africa/El_Aaiun.generic.short=WET
-Africa/El_Aaiun.standard.short=WET
-Africa/Freetown.daylight.short=SLST
-Africa/Freetown.generic.short=SLT
-Africa/Freetown.standard.short=GMT
-Africa/Gaborone.daylight.short=CAST
-Africa/Gaborone.generic.short=CAT
-Africa/Gaborone.standard.short=CAT
-Africa/Harare.daylight.short=CAST
-Africa/Harare.generic.short=CAT
-Africa/Harare.standard.short=CAT
-Africa/Johannesburg.daylight.short=SAST
-Africa/Johannesburg.generic.short=SAT
-Africa/Johannesburg.standard.short=SAST
-Africa/Juba.daylight.short=EAST
-Africa/Juba.generic.short=EAT
-Africa/Juba.standard.short=EAT
-Africa/Kampala.daylight.short=EAST
-Africa/Kampala.generic.short=EAT
-Africa/Kampala.standard.short=EAT
-Africa/Khartoum.daylight.short=EAST
-Africa/Khartoum.generic.short=EAT
-Africa/Khartoum.standard.short=EAT
-Africa/Kigali.daylight.short=CAST
-Africa/Kigali.generic.short=CAT
-Africa/Kigali.standard.short=CAT
-Africa/Kinshasa.daylight.short=WAST
-Africa/Kinshasa.generic.short=WAT
-Africa/Kinshasa.standard.short=WAT
-Africa/Lagos.daylight.short=WAST
-Africa/Lagos.generic.short=WAT
-Africa/Lagos.standard.short=WAT
-Africa/Libreville.daylight.short=WAST
-Africa/Libreville.generic.short=WAT
-Africa/Libreville.standard.short=WAT
-Africa/Lome.daylight.short=GMT
-Africa/Lome.generic.short=GMT
-Africa/Lome.standard.short=GMT
-Africa/Luanda.daylight.short=WAST
-Africa/Luanda.generic.short=WAT
-Africa/Luanda.standard.short=WAT
-Africa/Lubumbashi.daylight.short=CAST
-Africa/Lubumbashi.generic.short=CAT
-Africa/Lubumbashi.standard.short=CAT
-Africa/Lusaka.daylight.short=CAST
-Africa/Lusaka.generic.short=CAT
-Africa/Lusaka.standard.short=CAT
-Africa/Malabo.daylight.short=WAST
-Africa/Malabo.generic.short=WAT
-Africa/Malabo.standard.short=WAT
-Africa/Maputo.daylight.short=CAST
-Africa/Maputo.generic.short=CAT
-Africa/Maputo.standard.short=CAT
-Africa/Maseru.daylight.short=SAST
-Africa/Maseru.generic.short=SAT
-Africa/Maseru.standard.short=SAST
-Africa/Mbabane.daylight.short=SAST
-Africa/Mbabane.generic.short=SAT
-Africa/Mbabane.standard.short=SAST
-Africa/Mogadishu.daylight.short=EAST
-Africa/Mogadishu.generic.short=EAT
-Africa/Mogadishu.standard.short=EAT
-Africa/Monrovia.daylight.short=GMT
-Africa/Monrovia.generic.short=GMT
-Africa/Monrovia.standard.short=GMT
-Africa/Nairobi.daylight.short=EAST
-Africa/Nairobi.generic.short=EAT
-Africa/Nairobi.standard.short=EAT
-Africa/Ndjamena.daylight.short=WAST
-Africa/Ndjamena.generic.short=WAT
-Africa/Ndjamena.standard.short=WAT
-Africa/Niamey.daylight.short=WAST
-Africa/Niamey.generic.short=WAT
-Africa/Niamey.standard.short=WAT
-Africa/Nouakchott.daylight.short=GMT
-Africa/Nouakchott.generic.short=GMT
-Africa/Nouakchott.standard.short=GMT
-Africa/Ouagadougou.daylight.short=GMT
-Africa/Ouagadougou.generic.short=GMT
-Africa/Ouagadougou.standard.short=GMT
-Africa/Porto-Novo.daylight.short=WAST
-Africa/Porto-Novo.generic.short=WAT
-Africa/Porto-Novo.standard.short=WAT
-Africa/Sao_Tome.daylight.short=GMT
-Africa/Sao_Tome.generic.short=GMT
-Africa/Sao_Tome.standard.short=GMT
-Africa/Timbuktu.daylight.short=GMT
-Africa/Timbuktu.generic.short=GMT
-Africa/Timbuktu.standard.short=GMT
-Africa/Tripoli.daylight.short=EEST
-Africa/Tripoli.generic.short=EET
-Africa/Tripoli.standard.short=EET
-Africa/Tunis.daylight.short=CEST
-Africa/Tunis.generic.short=CET
-Africa/Tunis.standard.short=CET
-Africa/Windhoek.daylight.short=WAST
-Africa/Windhoek.generic.short=WAT
-Africa/Windhoek.standard.short=WAT
-AGT.daylight.short=ARST
-AGT.generic.short=ART
-AGT.standard.short=ART
-America/Adak.daylight.short=HADT
-America/Adak.generic.short=HAT
-America/Adak.standard.short=HAST
-America/Anchorage.daylight.short=AKDT
-America/Anchorage.generic.short=AKT
-America/Anchorage.standard.short=AKST
-America/Anguilla.daylight.short=ADT
-America/Anguilla.generic.short=AT
-America/Anguilla.standard.short=AST
-America/Antigua.daylight.short=ADT
-America/Antigua.generic.short=AT
-America/Antigua.standard.short=AST
-America/Araguaina.daylight.short=BRST
-America/Araguaina.generic.short=BRT
-America/Araguaina.standard.short=BRT
-America/Argentina/Buenos_Aires.daylight.short=ARST
-America/Argentina/Buenos_Aires.generic.short=ART
-America/Argentina/Buenos_Aires.standard.short=ART
-America/Argentina/Catamarca.daylight.short=ARST
-America/Argentina/Catamarca.generic.short=ART
-America/Argentina/Catamarca.standard.short=ART
-America/Argentina/ComodRivadavia.daylight.short=ARST
-America/Argentina/ComodRivadavia.generic.short=ART
-America/Argentina/ComodRivadavia.standard.short=ART
-America/Argentina/Cordoba.daylight.short=ARST
-America/Argentina/Cordoba.generic.short=ART
-America/Argentina/Cordoba.standard.short=ART
-America/Argentina/Jujuy.daylight.short=ARST
-America/Argentina/Jujuy.generic.short=ART
-America/Argentina/Jujuy.standard.short=ART
-America/Argentina/La_Rioja.daylight.short=ARST
-America/Argentina/La_Rioja.generic.short=ART
-America/Argentina/La_Rioja.standard.short=ART
-America/Argentina/Mendoza.daylight.short=ARST
-America/Argentina/Mendoza.generic.short=ART
-America/Argentina/Mendoza.standard.short=ART
-America/Argentina/Rio_Gallegos.daylight.short=ARST
-America/Argentina/Rio_Gallegos.generic.short=ART
-America/Argentina/Rio_Gallegos.standard.short=ART
-America/Argentina/Salta.daylight.short=ARST
-America/Argentina/Salta.generic.short=ART
-America/Argentina/Salta.standard.short=ART
-America/Argentina/San_Juan.daylight.short=ARST
-America/Argentina/San_Juan.generic.short=ART
-America/Argentina/San_Juan.standard.short=ART
-America/Argentina/San_Luis.daylight.short=ARST
-America/Argentina/San_Luis.generic.short=ART
-America/Argentina/San_Luis.standard.short=ART
-America/Argentina/Tucuman.daylight.short=ARST
-America/Argentina/Tucuman.generic.short=ART
-America/Argentina/Tucuman.standard.short=ART
-America/Argentina/Ushuaia.daylight.short=ARST
-America/Argentina/Ushuaia.generic.short=ART
-America/Argentina/Ushuaia.standard.short=ART
-America/Aruba.daylight.short=ADT
-America/Aruba.generic.short=AT
-America/Aruba.standard.short=AST
-America/Asuncion.daylight.short=PYST
-America/Asuncion.generic.short=PYT
-America/Asuncion.standard.short=PYT
-America/Atikokan.daylight.short=EDT
-America/Atikokan.generic.short=ET
-America/Atikokan.standard.short=EST
-America/Atka.daylight.short=HADT
-America/Atka.generic.short=HAT
-America/Atka.standard.short=HAST
-America/Bahia_Banderas.daylight.short=CDT
-America/Bahia_Banderas.generic.short=CT
-America/Bahia_Banderas.standard.short=CST
-America/Bahia.daylight.short=BRST
-America/Bahia.generic.short=BRT
-America/Bahia.standard.short=BRT
-America/Barbados.daylight.short=ADT
-America/Barbados.generic.short=AT
-America/Barbados.standard.short=AST
-America/Belem.daylight.short=BRST
-America/Belem.generic.short=BRT
-America/Belem.standard.short=BRT
-America/Belize.daylight.short=CDT
-America/Belize.generic.short=CT
-America/Belize.standard.short=CST
-America/Blanc-Sablon.daylight.short=ADT
-America/Blanc-Sablon.generic.short=AT
-America/Blanc-Sablon.standard.short=AST
-America/Boa_Vista.daylight.short=AMST
-America/Boa_Vista.generic.short=AMT
-America/Boa_Vista.standard.short=AMT
-America/Bogota.daylight.short=COST
-America/Bogota.generic.short=COT
-America/Bogota.standard.short=COT
-America/Boise.daylight.short=MDT
-America/Boise.generic.short=MT
-America/Boise.standard.short=MST
-America/Buenos_Aires.daylight.short=ARST
-America/Buenos_Aires.generic.short=ART
-America/Buenos_Aires.standard.short=ART
-America/Cambridge_Bay.daylight.short=MDT
-America/Cambridge_Bay.generic.short=MT
-America/Cambridge_Bay.standard.short=MST
-America/Campo_Grande.daylight.short=AMST
-America/Campo_Grande.generic.short=AMT
-America/Campo_Grande.standard.short=AMT
-America/Cancun.daylight.short=CDT
-America/Cancun.generic.short=CT
-America/Cancun.standard.short=CST
-America/Caracas.daylight.short=VEST
-America/Caracas.generic.short=VET
-America/Caracas.standard.short=VET
-America/Catamarca.daylight.short=ARST
-America/Catamarca.generic.short=ART
-America/Catamarca.standard.short=ART
-America/Cayenne.daylight.short=GFST
-America/Cayenne.generic.short=GFT
-America/Cayenne.standard.short=GFT
-America/Cayman.daylight.short=EDT
-America/Cayman.generic.short=ET
-America/Cayman.standard.short=EST
-America/Chicago.daylight.short=CDT
-America/Chicago.generic.short=CT
-America/Chicago.standard.short=CST
-America/Chihuahua.daylight.short=MDT
-America/Chihuahua.generic.short=MT
-America/Chihuahua.standard.short=MST
-America/Coral_Harbour.daylight.short=EDT
-America/Coral_Harbour.generic.short=ET
-America/Coral_Harbour.standard.short=EST
-America/Cordoba.daylight.short=ARST
-America/Cordoba.generic.short=ART
-America/Cordoba.standard.short=ART
-America/Costa_Rica.daylight.short=CDT
-America/Costa_Rica.generic.short=CT
-America/Costa_Rica.standard.short=CST
-America/Creston.daylight.short=MDT
-America/Creston.generic.short=MT
-America/Creston.standard.short=MST
-America/Cuiaba.daylight.short=AMST
-America/Cuiaba.generic.short=AMT
-America/Cuiaba.standard.short=AMT
-America/Curacao.daylight.short=ADT
-America/Curacao.generic.short=AT
-America/Curacao.standard.short=AST
-America/Danmarkshavn.daylight.short=GMT
-America/Danmarkshavn.generic.short=GMT
-America/Danmarkshavn.standard.short=GMT
-America/Dawson_Creek.daylight.short=MDT
-America/Dawson_Creek.generic.short=MT
-America/Dawson_Creek.standard.short=MST
-America/Dawson.daylight.short=PDT
-America/Dawson.generic.short=PT
-America/Dawson.standard.short=PST
-America/Denver.daylight.short=MDT
-America/Denver.generic.short=MT
-America/Denver.standard.short=MST
-America/Detroit.daylight.short=EDT
-America/Detroit.generic.short=ET
-America/Detroit.standard.short=EST
-America/Dominica.daylight.short=ADT
-America/Dominica.generic.short=AT
-America/Dominica.standard.short=AST
-America/Edmonton.daylight.short=MDT
-America/Edmonton.generic.short=MT
-America/Edmonton.standard.short=MST
-America/Eirunepe.daylight.short=ACST
-America/Eirunepe.generic.short=ACT
-America/Eirunepe.standard.short=ACT
-America/El_Salvador.daylight.short=CDT
-America/El_Salvador.generic.short=CT
-America/El_Salvador.standard.short=CST
-America/Ensenada.daylight.short=PDT
-America/Ensenada.generic.short=PT
-America/Ensenada.standard.short=PST
-America/Fortaleza.daylight.short=BRST
-America/Fortaleza.generic.short=BRT
-America/Fortaleza.standard.short=BRT
-America/Fort_Wayne.daylight.short=EDT
-America/Fort_Wayne.generic.short=ET
-America/Fort_Wayne.standard.short=EST
-America/Glace_Bay.daylight.short=ADT
-America/Glace_Bay.generic.short=AT
-America/Glace_Bay.standard.short=AST
-America/Godthab.daylight.short=WGST
-America/Godthab.generic.short=WGT
-America/Godthab.standard.short=WGT
-America/Goose_Bay.daylight.short=ADT
-America/Goose_Bay.generic.short=AT
-America/Goose_Bay.standard.short=AST
-America/Grand_Turk.daylight.short=EDT
-America/Grand_Turk.generic.short=ET
-America/Grand_Turk.standard.short=EST
-America/Grenada.daylight.short=ADT
-America/Grenada.generic.short=AT
-America/Grenada.standard.short=AST
-America/Guadeloupe.daylight.short=ADT
-America/Guadeloupe.generic.short=AT
-America/Guadeloupe.standard.short=AST
-America/Guatemala.daylight.short=CDT
-America/Guatemala.generic.short=CT
-America/Guatemala.standard.short=CST
-America/Guayaquil.daylight.short=ECST
-America/Guayaquil.generic.short=ECT
-America/Guayaquil.standard.short=ECT
-America/Guyana.daylight.short=GYST
-America/Guyana.generic.short=GYT
-America/Guyana.standard.short=GYT
-America/Halifax.daylight.short=ADT
-America/Halifax.generic.short=AT
-America/Halifax.standard.short=AST
-America/Havana.daylight.short=CDT
-America/Havana.generic.short=CT
-America/Havana.standard.short=CST
-America/Hermosillo.daylight.short=MDT
-America/Hermosillo.generic.short=MT
-America/Hermosillo.standard.short=MST
-America/Indiana/Indianapolis.daylight.short=EDT
-America/Indiana/Indianapolis.generic.short=ET
-America/Indiana/Indianapolis.standard.short=EST
-America/Indiana/Knox.daylight.short=CDT
-America/Indiana/Knox.generic.short=CT
-America/Indiana/Knox.standard.short=CST
-America/Indiana/Marengo.daylight.short=EDT
-America/Indiana/Marengo.generic.short=ET
-America/Indiana/Marengo.standard.short=EST
-America/Indiana/Petersburg.daylight.short=EDT
-America/Indiana/Petersburg.generic.short=ET
-America/Indiana/Petersburg.standard.short=EST
-America/Indianapolis.daylight.short=EDT
-America/Indianapolis.generic.short=ET
-America/Indianapolis.standard.short=EST
-America/Indiana/Tell_City.daylight.short=CDT
-America/Indiana/Tell_City.generic.short=CT
-America/Indiana/Tell_City.standard.short=CST
-America/Indiana/Vevay.daylight.short=EDT
-America/Indiana/Vevay.generic.short=ET
-America/Indiana/Vevay.standard.short=EST
-America/Indiana/Vincennes.daylight.short=EDT
-America/Indiana/Vincennes.generic.short=ET
-America/Indiana/Vincennes.standard.short=EST
-America/Indiana/Winamac.daylight.short=EDT
-America/Indiana/Winamac.generic.short=ET
-America/Indiana/Winamac.standard.short=EST
-America/Inuvik.daylight.short=MDT
-America/Inuvik.generic.short=MT
-America/Inuvik.standard.short=MST
-America/Iqaluit.daylight.short=EDT
-America/Iqaluit.generic.short=ET
-America/Iqaluit.standard.short=EST
-America/Jamaica.daylight.short=EDT
-America/Jamaica.generic.short=ET
-America/Jamaica.standard.short=EST
-America/Jujuy.daylight.short=ARST
-America/Jujuy.generic.short=ART
-America/Jujuy.standard.short=ART
-America/Juneau.daylight.short=AKDT
-America/Juneau.generic.short=AKT
-America/Juneau.standard.short=AKST
-America/Kentucky/Louisville.daylight.short=EDT
-America/Kentucky/Louisville.generic.short=ET
-America/Kentucky/Louisville.standard.short=EST
-America/Kentucky/Monticello.daylight.short=EDT
-America/Kentucky/Monticello.generic.short=ET
-America/Kentucky/Monticello.standard.short=EST
-America/Knox_IN.daylight.short=CDT
-America/Knox_IN.generic.short=CT
-America/Knox_IN.standard.short=CST
-America/Kralendijk.daylight.short=ADT
-America/Kralendijk.generic.short=AT
-America/Kralendijk.standard.short=AST
-America/La_Paz.daylight.short=BOST
-America/La_Paz.generic.short=BOT
-America/La_Paz.standard.short=BOT
-America/Lima.daylight.short=PEST
-America/Lima.generic.short=PET
-America/Lima.standard.short=PET
-America/Los_Angeles.daylight.short=PDT
-America/Los_Angeles.generic.short=PT
-America/Los_Angeles.standard.short=PST
-America/Louisville.daylight.short=EDT
-America/Louisville.generic.short=ET
-America/Louisville.standard.short=EST
-America/Lower_Princes.daylight.short=ADT
-America/Lower_Princes.generic.short=AT
-America/Lower_Princes.standard.short=AST
-America/Maceio.daylight.short=BRST
-America/Maceio.generic.short=BRT
-America/Maceio.standard.short=BRT
-America/Managua.daylight.short=CDT
-America/Managua.generic.short=CT
-America/Managua.standard.short=CST
-America/Manaus.daylight.short=AMST
-America/Manaus.generic.short=AMT
-America/Manaus.standard.short=AMT
-America/Marigot.daylight.short=ADT
-America/Marigot.generic.short=AT
-America/Marigot.standard.short=AST
-America/Martinique.daylight.short=ADT
-America/Martinique.generic.short=AT
-America/Martinique.standard.short=AST
-America/Matamoros.daylight.short=CDT
-America/Matamoros.generic.short=CT
-America/Matamoros.standard.short=CST
-America/Mazatlan.daylight.short=MDT
-America/Mazatlan.generic.short=MT
-America/Mazatlan.standard.short=MST
-America/Mendoza.daylight.short=ARST
-America/Mendoza.generic.short=ART
-America/Mendoza.standard.short=ART
-America/Menominee.daylight.short=CDT
-America/Menominee.generic.short=CT
-America/Menominee.standard.short=CST
-America/Merida.daylight.short=CDT
-America/Merida.generic.short=CT
-America/Merida.standard.short=CST
-America/Metlakatla.daylight.short=MeDT
-America/Metlakatla.generic.short=MeT
-America/Metlakatla.standard.short=MeST
-America/Mexico_City.daylight.short=CDT
-America/Mexico_City.generic.short=CT
-America/Mexico_City.standard.short=CST
-America/Miquelon.daylight.short=PMDT
-America/Miquelon.generic.short=PMT
-America/Miquelon.standard.short=PMST
-America/Moncton.daylight.short=ADT
-America/Moncton.generic.short=AT
-America/Moncton.standard.short=AST
-America/Monterrey.daylight.short=CDT
-America/Monterrey.generic.short=CT
-America/Monterrey.standard.short=CST
-America/Montevideo.daylight.short=UYST
-America/Montevideo.generic.short=UYT
-America/Montevideo.standard.short=UYT
-America/Montreal.daylight.short=EDT
-America/Montreal.generic.short=ET
-America/Montreal.standard.short=EST
-America/Montserrat.daylight.short=ADT
-America/Montserrat.generic.short=AT
-America/Montserrat.standard.short=AST
-America/Nassau.daylight.short=EDT
-America/Nassau.generic.short=ET
-America/Nassau.standard.short=EST
-America/New_York.daylight.short=EDT
-America/New_York.generic.short=ET
-America/New_York.standard.short=EST
-America/Nipigon.daylight.short=EDT
-America/Nipigon.generic.short=ET
-America/Nipigon.standard.short=EST
-America/Nome.daylight.short=AKDT
-America/Nome.generic.short=AKT
-America/Nome.standard.short=AKST
-America/Noronha.daylight.short=FNST
-America/Noronha.generic.short=FNT
-America/Noronha.standard.short=FNT
-America/North_Dakota/Beulah.daylight.short=CDT
-America/North_Dakota/Beulah.generic.short=CT
-America/North_Dakota/Beulah.standard.short=CST
-America/North_Dakota/Center.daylight.short=CDT
-America/North_Dakota/Center.generic.short=CT
-America/North_Dakota/Center.standard.short=CST
-America/North_Dakota/New_Salem.daylight.short=CDT
-America/North_Dakota/New_Salem.generic.short=CT
-America/North_Dakota/New_Salem.standard.short=CST
-America/Ojinaga.daylight.short=MDT
-America/Ojinaga.generic.short=MT
-America/Ojinaga.standard.short=MST
-America/Panama.daylight.short=EDT
-America/Panama.generic.short=ET
-America/Panama.standard.short=EST
-America/Pangnirtung.daylight.short=EDT
-America/Pangnirtung.generic.short=ET
-America/Pangnirtung.standard.short=EST
-America/Paramaribo.daylight.short=SRST
-America/Paramaribo.generic.short=SRT
-America/Paramaribo.standard.short=SRT
-America/Phoenix.daylight.short=MDT
-America/Phoenix.generic.short=MT
-America/Phoenix.standard.short=MST
-America/Port-au-Prince.daylight.short=EDT
-America/Port-au-Prince.generic.short=ET
-America/Port-au-Prince.standard.short=EST
-America/Porto_Acre.daylight.short=ACST
-America/Porto_Acre.generic.short=ACT
-America/Porto_Acre.standard.short=ACT
-America/Port_of_Spain.daylight.short=ADT
-America/Port_of_Spain.generic.short=AT
-America/Port_of_Spain.standard.short=AST
-America/Porto_Velho.daylight.short=AMST
-America/Porto_Velho.generic.short=AMT
-America/Porto_Velho.standard.short=AMT
-America/Puerto_Rico.daylight.short=ADT
-America/Puerto_Rico.generic.short=AT
-America/Puerto_Rico.standard.short=AST
-America/Rainy_River.daylight.short=CDT
-America/Rainy_River.generic.short=CT
-America/Rainy_River.standard.short=CST
-America/Rankin_Inlet.daylight.short=CDT
-America/Rankin_Inlet.generic.short=CT
-America/Rankin_Inlet.standard.short=CST
-America/Recife.daylight.short=BRST
-America/Recife.generic.short=BRT
-America/Recife.standard.short=BRT
-America/Regina.daylight.short=CDT
-America/Regina.generic.short=CT
-America/Regina.standard.short=CST
-America/Resolute.daylight.short=CDT
-America/Resolute.generic.short=CT
-America/Resolute.standard.short=CST
-America/Rio_Branco.daylight.short=ACST
-America/Rio_Branco.generic.short=ACT
-America/Rio_Branco.standard.short=ACT
-America/Rosario.daylight.short=ARST
-America/Rosario.generic.short=ART
-America/Rosario.standard.short=ART
-America/Santa_Isabel.daylight.short=PDT
-America/Santa_Isabel.generic.short=PT
-America/Santa_Isabel.standard.short=PST
-America/Santarem.daylight.short=BRST
-America/Santarem.generic.short=BRT
-America/Santarem.standard.short=BRT
-America/Santiago.daylight.short=CLST
-America/Santiago.generic.short=CLT
-America/Santiago.standard.short=CLT
-America/Santo_Domingo.daylight.short=ADT
-America/Santo_Domingo.generic.short=AT
-America/Santo_Domingo.standard.short=AST
-America/Sao_Paulo.daylight.short=BRST
-America/Sao_Paulo.generic.short=BRT
-America/Sao_Paulo.standard.short=BRT
-America/Scoresbysund.daylight.short=EGST
-America/Scoresbysund.generic.short=EGT
-America/Scoresbysund.standard.short=EGT
-America/Shiprock.daylight.short=MDT
-America/Shiprock.generic.short=MT
-America/Shiprock.standard.short=MST
-America/Sitka.daylight.short=AKDT
-America/Sitka.generic.short=AKT
-America/Sitka.standard.short=AKST
-America/St_Barthelemy.daylight.short=ADT
-America/St_Barthelemy.generic.short=AT
-America/St_Barthelemy.standard.short=AST
-America/St_Johns.daylight.short=NDT
-America/St_Johns.generic.short=NT
-America/St_Johns.standard.short=NST
-America/St_Kitts.daylight.short=ADT
-America/St_Kitts.generic.short=AT
-America/St_Kitts.standard.short=AST
-America/St_Lucia.daylight.short=ADT
-America/St_Lucia.generic.short=AT
-America/St_Lucia.standard.short=AST
-America/St_Thomas.daylight.short=ADT
-America/St_Thomas.generic.short=AT
-America/St_Thomas.standard.short=AST
-America/St_Vincent.daylight.short=ADT
-America/St_Vincent.generic.short=AT
-America/St_Vincent.standard.short=AST
-America/Swift_Current.daylight.short=CDT
-America/Swift_Current.generic.short=CT
-America/Swift_Current.standard.short=CST
-America/Tegucigalpa.daylight.short=CDT
-America/Tegucigalpa.generic.short=CT
-America/Tegucigalpa.standard.short=CST
-America/Thule.daylight.short=ADT
-America/Thule.generic.short=AT
-America/Thule.standard.short=AST
-America/Thunder_Bay.daylight.short=EDT
-America/Thunder_Bay.generic.short=ET
-America/Thunder_Bay.standard.short=EST
-America/Tijuana.daylight.short=PDT
-America/Tijuana.generic.short=PT
-America/Tijuana.standard.short=PST
-America/Toronto.daylight.short=EDT
-America/Toronto.generic.short=ET
-America/Toronto.standard.short=EST
-America/Tortola.daylight.short=ADT
-America/Tortola.generic.short=AT
-America/Tortola.standard.short=AST
-America/Vancouver.daylight.short=PDT
-America/Vancouver.generic.short=PT
-America/Vancouver.standard.short=PST
-America/Virgin.daylight.short=ADT
-America/Virgin.generic.short=AT
-America/Virgin.standard.short=AST
-America/Whitehorse.daylight.short=PDT
-America/Whitehorse.generic.short=PT
-America/Whitehorse.standard.short=PST
-America/Winnipeg.daylight.short=CDT
-America/Winnipeg.generic.short=CT
-America/Winnipeg.standard.short=CST
-America/Yakutat.daylight.short=AKDT
-America/Yakutat.generic.short=AKT
-America/Yakutat.standard.short=AKST
-America/Yellowknife.daylight.short=MDT
-America/Yellowknife.generic.short=MT
-America/Yellowknife.standard.short=MST
-Antarctica/Casey.daylight.short=WST
-Antarctica/Casey.generic.short=WT
-Antarctica/Casey.standard.short=WST
-Antarctica/Davis.daylight.short=DAVST
-Antarctica/Davis.generic.short=DAVT
-Antarctica/Davis.standard.short=DAVT
-Antarctica/DumontDUrville.daylight.short=DDUST
-Antarctica/DumontDUrville.generic.short=DDUT
-Antarctica/DumontDUrville.standard.short=DDUT
-Antarctica/Macquarie.daylight.short=MIST
-Antarctica/Macquarie.generic.short=MIST
-Antarctica/Macquarie.standard.short=MIST
-Antarctica/Mawson.daylight.short=MAWST
-Antarctica/Mawson.generic.short=MAWT
-Antarctica/Mawson.standard.short=MAWT
-Antarctica/McMurdo.daylight.short=NZDT
-Antarctica/McMurdo.generic.short=NZT
-Antarctica/McMurdo.standard.short=NZST
-Antarctica/Palmer.daylight.short=CLST
-Antarctica/Palmer.generic.short=CLT
-Antarctica/Palmer.standard.short=CLT
-Antarctica/Rothera.daylight.short=ROTST
-Antarctica/Rothera.generic.short=ROTT
-Antarctica/Rothera.standard.short=ROTT
-Antarctica/South_Pole.daylight.short=NZDT
-Antarctica/South_Pole.generic.short=NZT
-Antarctica/South_Pole.standard.short=NZST
-Antarctica/Syowa.daylight.short=SYOST
-Antarctica/Syowa.generic.short=SYOT
-Antarctica/Syowa.standard.short=SYOT
-Antarctica/Vostok.daylight.short=VOSST
-Antarctica/Vostok.generic.short=VOST
-Antarctica/Vostok.standard.short=VOST
-Arctic/Longyearbyen.daylight.short=CEST
-Arctic/Longyearbyen.generic.short=CET
-Arctic/Longyearbyen.standard.short=CET
-ART.daylight.short=EEST
-ART.generic.short=EET
-ART.standard.short=EET
-Asia/Aden.daylight.short=ADT
-Asia/Aden.generic.short=AT
-Asia/Aden.standard.short=AST
-Asia/Almaty.daylight.short=ALMST
-Asia/Almaty.generic.short=ALMT
-Asia/Almaty.standard.short=ALMT
-Asia/Amman.daylight.short=ADT
-Asia/Amman.generic.short=AT
-Asia/Amman.standard.short=AST
-Asia/Anadyr.daylight.short=ANAST
-Asia/Anadyr.generic.short=ANAT
-Asia/Anadyr.standard.short=ANAT
-Asia/Aqtau.daylight.short=AQTST
-Asia/Aqtau.generic.short=AQTT
-Asia/Aqtau.standard.short=AQTT
-Asia/Aqtobe.daylight.short=AQTST
-Asia/Aqtobe.generic.short=AQTT
-Asia/Aqtobe.standard.short=AQTT
-Asia/Ashgabat.daylight.short=TMST
-Asia/Ashgabat.generic.short=TMT
-Asia/Ashgabat.standard.short=TMT
-Asia/Ashkhabad.daylight.short=TMST
-Asia/Ashkhabad.generic.short=TMT
-Asia/Ashkhabad.standard.short=TMT
-Asia/Baghdad.daylight.short=ADT
-Asia/Baghdad.generic.short=AT
-Asia/Baghdad.standard.short=AST
-Asia/Bahrain.daylight.short=ADT
-Asia/Bahrain.generic.short=AT
-Asia/Bahrain.standard.short=AST
-Asia/Baku.daylight.short=AZST
-Asia/Baku.generic.short=AZT
-Asia/Baku.standard.short=AZT
-Asia/Bangkok.daylight.short=ICST
-Asia/Bangkok.generic.short=ICT
-Asia/Bangkok.standard.short=ICT
-Asia/Beirut.daylight.short=EEST
-Asia/Beirut.generic.short=EET
-Asia/Beirut.standard.short=EET
-Asia/Bishkek.daylight.short=KGST
-Asia/Bishkek.generic.short=KGT
-Asia/Bishkek.standard.short=KGT
-Asia/Brunei.daylight.short=BNST
-Asia/Brunei.generic.short=BNT
-Asia/Brunei.standard.short=BNT
-Asia/Calcutta.daylight.short=IDT
-Asia/Calcutta.generic.short=IT
-Asia/Calcutta.standard.short=IST
-Asia/Choibalsan.daylight.short=CHOST
-Asia/Choibalsan.generic.short=CHOT
-Asia/Choibalsan.standard.short=CHOT
-Asia/Chongqing.daylight.short=CDT
-Asia/Chongqing.generic.short=CT
-Asia/Chongqing.standard.short=CST
-Asia/Chungking.daylight.short=CDT
-Asia/Chungking.generic.short=CT
-Asia/Chungking.standard.short=CST
-Asia/Colombo.daylight.short=IDT
-Asia/Colombo.generic.short=IT
-Asia/Colombo.standard.short=IST
-Asia/Dacca.daylight.short=BDST
-Asia/Dacca.generic.short=BDT
-Asia/Dacca.standard.short=BDT
-Asia/Damascus.daylight.short=EEST
-Asia/Damascus.generic.short=EET
-Asia/Damascus.standard.short=EET
-Asia/Dhaka.daylight.short=BDST
-Asia/Dhaka.generic.short=BDT
-Asia/Dhaka.standard.short=BDT
-Asia/Dili.daylight.short=TLST
-Asia/Dili.generic.short=TLT
-Asia/Dili.standard.short=TLT
-Asia/Dubai.daylight.short=GDT
-Asia/Dubai.generic.short=GT
-Asia/Dubai.standard.short=GST
-Asia/Dushanbe.daylight.short=TJST
-Asia/Dushanbe.generic.short=TJT
-Asia/Dushanbe.standard.short=TJT
-Asia/Gaza.daylight.short=EEST
-Asia/Gaza.generic.short=EET
-Asia/Gaza.standard.short=EET
-Asia/Harbin.daylight.short=CDT
-Asia/Harbin.generic.short=CT
-Asia/Harbin.standard.short=CST
-Asia/Hebron.daylight.short=EEST
-Asia/Hebron.generic.short=EET
-Asia/Hebron.standard.short=EET
-Asia/Ho_Chi_Minh.daylight.short=ICST
-Asia/Ho_Chi_Minh.generic.short=ICT
-Asia/Ho_Chi_Minh.standard.short=ICT
-Asia/Hong_Kong.daylight.short=HKST
-Asia/Hong_Kong.generic.short=HKT
-Asia/Hong_Kong.standard.short=HKT
-Asia/Hovd.daylight.short=HOVST
-Asia/Hovd.generic.short=HOVT
-Asia/Hovd.standard.short=HOVT
-Asia/Irkutsk.daylight.short=IRKST
-Asia/Irkutsk.generic.short=IRKT
-Asia/Irkutsk.standard.short=IRKT
-Asia/Istanbul.daylight.short=EEST
-Asia/Istanbul.generic.short=EET
-Asia/Istanbul.standard.short=EET
-Asia/Jakarta.daylight.short=WIST
-Asia/Jakarta.generic.short=WIB
-Asia/Jakarta.standard.short=WIB
-Asia/Jayapura.daylight.short=EIST
-Asia/Jayapura.generic.short=WIT
-Asia/Jayapura.standard.short=WIT
-Asia/Jerusalem.daylight.short=IDT
-Asia/Jerusalem.generic.short=IT
-Asia/Jerusalem.standard.short=IST
-Asia/Kabul.daylight.short=AFST
-Asia/Kabul.generic.short=AFT
-Asia/Kabul.standard.short=AFT
-Asia/Kamchatka.daylight.short=PETST
-Asia/Kamchatka.generic.short=PETT
-Asia/Kamchatka.standard.short=PETT
-Asia/Karachi.daylight.short=PKST
-Asia/Karachi.generic.short=PKT
-Asia/Karachi.standard.short=PKT
-Asia/Kashgar.daylight.short=CDT
-Asia/Kashgar.generic.short=CT
-Asia/Kashgar.standard.short=CST
-Asia/Kathmandu.daylight.short=NPST
-Asia/Kathmandu.generic.short=NPT
-Asia/Kathmandu.standard.short=NPT
-Asia/Katmandu.daylight.short=NPST
-Asia/Katmandu.generic.short=NPT
-Asia/Katmandu.standard.short=NPT
-Asia/Khandyga.daylight.short=YAKST
-Asia/Khandyga.generic.short=YAKT
-Asia/Khandyga.standard.short=YAKT
-Asia/Kolkata.daylight.short=IDT
-Asia/Kolkata.generic.short=IT
-Asia/Kolkata.standard.short=IST
-Asia/Krasnoyarsk.daylight.short=KRAST
-Asia/Krasnoyarsk.generic.short=KRAT
-Asia/Krasnoyarsk.standard.short=KRAT
-Asia/Kuala_Lumpur.daylight.short=MYST
-Asia/Kuala_Lumpur.generic.short=MYT
-Asia/Kuala_Lumpur.standard.short=MYT
-Asia/Kuching.daylight.short=MYST
-Asia/Kuching.generic.short=MYT
-Asia/Kuching.standard.short=MYT
-Asia/Kuwait.daylight.short=ADT
-Asia/Kuwait.generic.short=AT
-Asia/Kuwait.standard.short=AST
-Asia/Macao.daylight.short=CDT
-Asia/Macao.generic.short=CT
-Asia/Macao.standard.short=CST
-Asia/Macau.daylight.short=CDT
-Asia/Macau.generic.short=CT
-Asia/Macau.standard.short=CST
-Asia/Magadan.daylight.short=MAGST
-Asia/Magadan.generic.short=MAGT
-Asia/Magadan.standard.short=MAGT
-Asia/Makassar.daylight.short=CIST
-Asia/Makassar.generic.short=WITA
-Asia/Makassar.standard.short=WITA
-Asia/Manila.daylight.short=PHST
-Asia/Manila.generic.short=PHT
-Asia/Manila.standard.short=PHT
-Asia/Muscat.daylight.short=GDT
-Asia/Muscat.generic.short=GT
-Asia/Muscat.standard.short=GST
-Asia/Nicosia.daylight.short=EEST
-Asia/Nicosia.generic.short=EET
-Asia/Nicosia.standard.short=EET
-Asia/Novokuznetsk.daylight.short=NOVST
-Asia/Novokuznetsk.generic.short=NOVT
-Asia/Novokuznetsk.standard.short=NOVT
-Asia/Novosibirsk.daylight.short=NOVST
-Asia/Novosibirsk.generic.short=NOVT
-Asia/Novosibirsk.standard.short=NOVT
-Asia/Omsk.daylight.short=OMSST
-Asia/Omsk.generic.short=OMST
-Asia/Omsk.standard.short=OMST
-Asia/Oral.daylight.short=ORAST
-Asia/Oral.generic.short=ORAT
-Asia/Oral.standard.short=ORAT
-Asia/Phnom_Penh.daylight.short=ICST
-Asia/Phnom_Penh.generic.short=ICT
-Asia/Phnom_Penh.standard.short=ICT
-Asia/Pontianak.daylight.short=WIST
-Asia/Pontianak.generic.short=WIB
-Asia/Pontianak.standard.short=WIB
-Asia/Pyongyang.daylight.short=KDT
-Asia/Pyongyang.generic.short=KT
-Asia/Pyongyang.standard.short=KST
-Asia/Qatar.daylight.short=ADT
-Asia/Qatar.generic.short=AT
-Asia/Qatar.standard.short=AST
-Asia/Qyzylorda.daylight.short=QYZST
-Asia/Qyzylorda.generic.short=QYZT
-Asia/Qyzylorda.standard.short=QYZT
-Asia/Rangoon.daylight.short=MMST
-Asia/Rangoon.generic.short=MMT
-Asia/Rangoon.standard.short=MMT
-Asia/Saigon.daylight.short=ICST
-Asia/Saigon.generic.short=ICT
-Asia/Saigon.standard.short=ICT
-Asia/Sakhalin.daylight.short=SAKST
-Asia/Sakhalin.generic.short=SAKT
-Asia/Sakhalin.standard.short=SAKT
-Asia/Samarkand.daylight.short=UZST
-Asia/Samarkand.generic.short=UZT
-Asia/Samarkand.standard.short=UZT
-Asia/Seoul.daylight.short=KDT
-Asia/Seoul.generic.short=KT
-Asia/Seoul.standard.short=KST
-Asia/Shanghai.daylight.short=CDT
-Asia/Shanghai.generic.short=CT
-Asia/Shanghai.standard.short=CST
-Asia/Singapore.daylight.short=SGST
-Asia/Singapore.generic.short=SGT
-Asia/Singapore.standard.short=SGT
-Asia/Taipei.daylight.short=CDT
-Asia/Taipei.generic.short=CT
-Asia/Taipei.standard.short=CST
-Asia/Tashkent.daylight.short=UZST
-Asia/Tashkent.generic.short=UZT
-Asia/Tashkent.standard.short=UZT
-Asia/Tbilisi.daylight.short=GEST
-Asia/Tbilisi.generic.short=GET
-Asia/Tbilisi.standard.short=GET
-Asia/Tehran.daylight.short=IRDT
-Asia/Tehran.generic.short=IRT
-Asia/Tehran.standard.short=IRST
-Asia/Tel_Aviv.daylight.short=IDT
-Asia/Tel_Aviv.generic.short=IT
-Asia/Tel_Aviv.standard.short=IST
-Asia/Thimbu.daylight.short=BTST
-Asia/Thimbu.generic.short=BTT
-Asia/Thimbu.standard.short=BTT
-Asia/Thimphu.daylight.short=BTST
-Asia/Thimphu.generic.short=BTT
-Asia/Thimphu.standard.short=BTT
-Asia/Tokyo.daylight.short=JDT
-Asia/Tokyo.generic.short=JT
-Asia/Tokyo.standard.short=JST
-Asia/Ujung_Pandang.daylight.short=CIST
-Asia/Ujung_Pandang.generic.short=WITA
-Asia/Ujung_Pandang.standard.short=WITA
-Asia/Ulaanbaatar.daylight.short=ULAST
-Asia/Ulaanbaatar.generic.short=ULAT
-Asia/Ulaanbaatar.standard.short=ULAT
-Asia/Ulan_Bator.daylight.short=ULAST
-Asia/Ulan_Bator.generic.short=ULAT
-Asia/Ulan_Bator.standard.short=ULAT
-Asia/Urumqi.daylight.short=CDT
-Asia/Urumqi.generic.short=CT
-Asia/Urumqi.standard.short=CST
-Asia/Ust-Nera.daylight.short=VLAST
-Asia/Ust-Nera.generic.short=VLAT
-Asia/Ust-Nera.standard.short=VLAT
-Asia/Vientiane.daylight.short=ICST
-Asia/Vientiane.generic.short=ICT
-Asia/Vientiane.standard.short=ICT
-Asia/Vladivostok.daylight.short=VLAST
-Asia/Vladivostok.generic.short=VLAT
-Asia/Vladivostok.standard.short=VLAT
-Asia/Yakutsk.daylight.short=YAKST
-Asia/Yakutsk.generic.short=YAKT
-Asia/Yakutsk.standard.short=YAKT
-Asia/Yekaterinburg.daylight.short=YEKST
-Asia/Yekaterinburg.generic.short=YEKT
-Asia/Yekaterinburg.standard.short=YEKT
-Asia/Yerevan.daylight.short=AMST
-Asia/Yerevan.generic.short=AMT
-Asia/Yerevan.standard.short=AMT
-AST.daylight.short=AKDT
-AST.generic.short=AKT
-AST.standard.short=AKST
-Atlantic/Azores.daylight.short=AZOST
-Atlantic/Azores.generic.short=AZOT
-Atlantic/Azores.standard.short=AZOT
-Atlantic/Bermuda.daylight.short=ADT
-Atlantic/Bermuda.generic.short=AT
-Atlantic/Bermuda.standard.short=AST
-Atlantic/Canary.daylight.short=WEST
-Atlantic/Canary.generic.short=WET
-Atlantic/Canary.standard.short=WET
-Atlantic/Cape_Verde.daylight.short=CVST
-Atlantic/Cape_Verde.generic.short=CVT
-Atlantic/Cape_Verde.standard.short=CVT
-Atlantic/Faeroe.daylight.short=WEST
-Atlantic/Faeroe.generic.short=WET
-Atlantic/Faeroe.standard.short=WET
-Atlantic/Faroe.daylight.short=WEST
-Atlantic/Faroe.generic.short=WET
-Atlantic/Faroe.standard.short=WET
-Atlantic/Jan_Mayen.daylight.short=CEST
-Atlantic/Jan_Mayen.generic.short=CET
-Atlantic/Jan_Mayen.standard.short=CET
-Atlantic/Madeira.daylight.short=WEST
-Atlantic/Madeira.generic.short=WET
-Atlantic/Madeira.standard.short=WET
-Atlantic/Reykjavik.daylight.short=GMT
-Atlantic/Reykjavik.generic.short=GMT
-Atlantic/Reykjavik.standard.short=GMT
-Atlantic/South_Georgia.daylight.short=GDT
-Atlantic/South_Georgia.generic.short=GT
-Atlantic/South_Georgia.standard.short=GST
-Atlantic/Stanley.daylight.short=FKST
-Atlantic/Stanley.generic.short=FKT
-Atlantic/Stanley.standard.short=FKT
-Atlantic/St_Helena.daylight.short=GMT
-Atlantic/St_Helena.generic.short=GMT
-Atlantic/St_Helena.standard.short=GMT
-Australia/ACT.daylight.short=EST
-Australia/ACT.generic.short=ET
-Australia/ACT.standard.short=EST
-Australia/Adelaide.daylight.short=CST
-Australia/Adelaide.generic.short=CT
-Australia/Adelaide.standard.short=CST
-Australia/Brisbane.daylight.short=EST
-Australia/Brisbane.generic.short=ET
-Australia/Brisbane.standard.short=EST
-Australia/Broken_Hill.daylight.short=CST
-Australia/Broken_Hill.generic.short=CT
-Australia/Broken_Hill.standard.short=CST
-Australia/Canberra.daylight.short=EST
-Australia/Canberra.generic.short=ET
-Australia/Canberra.standard.short=EST
-Australia/Currie.daylight.short=EST
-Australia/Currie.generic.short=ET
-Australia/Currie.standard.short=EST
-Australia/Darwin.daylight.short=CST
-Australia/Darwin.generic.short=CT
-Australia/Darwin.standard.short=CST
-Australia/Eucla.daylight.short=CWST
-Australia/Eucla.generic.short=CWT
-Australia/Eucla.standard.short=CWST
-Australia/Hobart.daylight.short=EST
-Australia/Hobart.generic.short=ET
-Australia/Hobart.standard.short=EST
-Australia/LHI.daylight.short=LHST
-Australia/LHI.generic.short=LHT
-Australia/LHI.standard.short=LHST
-Australia/Lindeman.daylight.short=EST
-Australia/Lindeman.generic.short=ET
-Australia/Lindeman.standard.short=EST
-Australia/Lord_Howe.daylight.short=LHST
-Australia/Lord_Howe.generic.short=LHT
-Australia/Lord_Howe.standard.short=LHST
-Australia/Melbourne.daylight.short=EST
-Australia/Melbourne.generic.short=ET
-Australia/Melbourne.standard.short=EST
-Australia/North.daylight.short=CST
-Australia/North.generic.short=CT
-Australia/North.standard.short=CST
-Australia/NSW.daylight.short=EST
-Australia/NSW.generic.short=ET
-Australia/NSW.standard.short=EST
-Australia/Perth.daylight.short=WST
-Australia/Perth.generic.short=WT
-Australia/Perth.standard.short=WST
-Australia/Queensland.daylight.short=EST
-Australia/Queensland.generic.short=ET
-Australia/Queensland.standard.short=EST
-Australia/South.daylight.short=CST
-Australia/South.generic.short=CT
-Australia/South.standard.short=CST
-Australia/Sydney.daylight.short=EST
-Australia/Sydney.generic.short=ET
-Australia/Sydney.standard.short=EST
-Australia/Tasmania.daylight.short=EST
-Australia/Tasmania.generic.short=ET
-Australia/Tasmania.standard.short=EST
-Australia/Victoria.daylight.short=EST
-Australia/Victoria.generic.short=ET
-Australia/Victoria.standard.short=EST
-Australia/West.daylight.short=WST
-Australia/West.generic.short=WT
-Australia/West.standard.short=WST
-Australia/Yancowinna.daylight.short=CST
-Australia/Yancowinna.generic.short=CT
-Australia/Yancowinna.standard.short=CST
-BET.daylight.short=BRST
-BET.generic.short=BRT
-BET.standard.short=BRT
-Brazil/Acre.daylight.short=ACST
-Brazil/Acre.generic.short=ACT
-Brazil/Acre.standard.short=ACT
-Brazil/DeNoronha.daylight.short=FNST
-Brazil/DeNoronha.generic.short=FNT
-Brazil/DeNoronha.standard.short=FNT
-Brazil/East.daylight.short=BRST
-Brazil/East.generic.short=BRT
-Brazil/East.standard.short=BRT
-Brazil/West.daylight.short=AMST
-Brazil/West.generic.short=AMT
-Brazil/West.standard.short=AMT
-BST.daylight.short=BDST
-BST.generic.short=BDT
-BST.standard.short=BDT
-Canada/Atlantic.daylight.short=ADT
-Canada/Atlantic.generic.short=AT
-Canada/Atlantic.standard.short=AST
-Canada/Central.daylight.short=CDT
-Canada/Central.generic.short=CT
-Canada/Central.standard.short=CST
-Canada/Eastern.daylight.short=EDT
-Canada/Eastern.generic.short=ET
-Canada/Eastern.standard.short=EST
-Canada/East-Saskatchewan.daylight.short=CDT
-Canada/East-Saskatchewan.generic.short=CT
-Canada/East-Saskatchewan.standard.short=CST
-Canada/Mountain.daylight.short=MDT
-Canada/Mountain.generic.short=MT
-Canada/Mountain.standard.short=MST
-Canada/Newfoundland.daylight.short=NDT
-Canada/Newfoundland.generic.short=NT
-Canada/Newfoundland.standard.short=NST
-Canada/Pacific.daylight.short=PDT
-Canada/Pacific.generic.short=PT
-Canada/Pacific.standard.short=PST
-Canada/Saskatchewan.daylight.short=CDT
-Canada/Saskatchewan.generic.short=CT
-Canada/Saskatchewan.standard.short=CST
-Canada/Yukon.daylight.short=PDT
-Canada/Yukon.generic.short=PT
-Canada/Yukon.standard.short=PST
-CAT.daylight.short=CAST
-CAT.generic.short=CAT
-CAT.standard.short=CAT
-CET.daylight.short=CEST
-CET.generic.short=CET
-CET.standard.short=CET
-Chile/Continental.daylight.short=CLST
-Chile/Continental.generic.short=CLT
-Chile/Continental.standard.short=CLT
-Chile/EasterIsland.daylight.short=EASST
-Chile/EasterIsland.generic.short=EAST
-Chile/EasterIsland.standard.short=EAST
-CNT.daylight.short=NDT
-CNT.generic.short=NT
-CNT.standard.short=NST
-CST6CDT.daylight.short=CDT
-CST6CDT.generic.short=CT
-CST6CDT.standard.short=CST
-CST.daylight.short=CDT
-CST.generic.short=CT
-CST.standard.short=CST
-CTT.daylight.short=CDT
-CTT.generic.short=CT
-CTT.standard.short=CST
-Cuba.daylight.short=CDT
-Cuba.generic.short=CT
-Cuba.standard.short=CST
-EAT.daylight.short=EAST
-EAT.generic.short=EAT
-EAT.standard.short=EAT
-ECT.daylight.short=CEST
-ECT.generic.short=CET
-ECT.standard.short=CET
-EET.daylight.short=EEST
-EET.generic.short=EET
-EET.standard.short=EET
-Egypt.daylight.short=EEST
-Egypt.generic.short=EET
-Egypt.standard.short=EET
-Eire.daylight.short=IST
-Eire.generic.short=IT
-Eire.standard.short=GMT
-EST5EDT.daylight.short=EDT
-EST5EDT.generic.short=ET
-EST5EDT.standard.short=EST
-EST.daylight.short=EDT
-EST.generic.short=ET
-EST.standard.short=EST
-Etc/Greenwich.daylight.short=GMT
-Etc/Greenwich.generic.short=GMT
-Etc/Greenwich.standard.short=GMT
-Etc/UCT.daylight.short=UTC
-Etc/UCT.generic.short=UTC
-Etc/UCT.standard.short=UTC
-Etc/Universal.daylight.short=UTC
-Etc/Universal.generic.short=UTC
-Etc/Universal.standard.short=UTC
-Etc/UTC.daylight.short=UTC
-Etc/UTC.generic.short=UTC
-Etc/UTC.standard.short=UTC
-Etc/Zulu.daylight.short=UTC
-Etc/Zulu.generic.short=UTC
-Etc/Zulu.standard.short=UTC
-Europe/Amsterdam.daylight.short=CEST
-Europe/Amsterdam.generic.short=CET
-Europe/Amsterdam.standard.short=CET
-Europe/Andorra.daylight.short=CEST
-Europe/Andorra.generic.short=CET
-Europe/Andorra.standard.short=CET
-Europe/Athens.daylight.short=EEST
-Europe/Athens.generic.short=EET
-Europe/Athens.standard.short=EET
-Europe/Belfast.daylight.short=BST
-Europe/Belfast.generic.short=BT
-Europe/Belfast.standard.short=GMT
-Europe/Belgrade.daylight.short=CEST
-Europe/Belgrade.generic.short=CET
-Europe/Belgrade.standard.short=CET
-Europe/Berlin.daylight.short=CEST
-Europe/Berlin.generic.short=CET
-Europe/Berlin.standard.short=CET
-Europe/Bratislava.daylight.short=CEST
-Europe/Bratislava.generic.short=CET
-Europe/Bratislava.standard.short=CET
-Europe/Brussels.daylight.short=CEST
-Europe/Brussels.generic.short=CET
-Europe/Brussels.standard.short=CET
-Europe/Bucharest.daylight.short=EEST
-Europe/Bucharest.generic.short=EET
-Europe/Bucharest.standard.short=EET
-Europe/Budapest.daylight.short=CEST
-Europe/Budapest.generic.short=CET
-Europe/Budapest.standard.short=CET
-Europe/Busingen.daylight.short=CEST
-Europe/Busingen.generic.short=CET
-Europe/Busingen.standard.short=CET
-Europe/Chisinau.daylight.short=EEST
-Europe/Chisinau.generic.short=EET
-Europe/Chisinau.standard.short=EET
-Europe/Copenhagen.daylight.short=CEST
-Europe/Copenhagen.generic.short=CET
-Europe/Copenhagen.standard.short=CET
-Europe/Dublin.daylight.short=IST
-Europe/Dublin.generic.short=IT
-Europe/Dublin.standard.short=GMT
-Europe/Gibraltar.daylight.short=CEST
-Europe/Gibraltar.generic.short=CET
-Europe/Gibraltar.standard.short=CET
-Europe/Guernsey.daylight.short=BST
-Europe/Guernsey.generic.short=BT
-Europe/Guernsey.standard.short=GMT
-Europe/Helsinki.daylight.short=EEST
-Europe/Helsinki.generic.short=EET
-Europe/Helsinki.standard.short=EET
-Europe/Isle_of_Man.daylight.short=BST
-Europe/Isle_of_Man.generic.short=BT
-Europe/Isle_of_Man.standard.short=GMT
-Europe/Istanbul.daylight.short=EEST
-Europe/Istanbul.generic.short=EET
-Europe/Istanbul.standard.short=EET
-Europe/Jersey.daylight.short=BST
-Europe/Jersey.generic.short=BT
-Europe/Jersey.standard.short=GMT
-Europe/Kaliningrad.daylight.short=FEST
-Europe/Kaliningrad.generic.short=FET
-Europe/Kaliningrad.standard.short=FET
-Europe/Kiev.daylight.short=EEST
-Europe/Kiev.generic.short=EET
-Europe/Kiev.standard.short=EET
-Europe/Lisbon.daylight.short=WEST
-Europe/Lisbon.generic.short=WET
-Europe/Lisbon.standard.short=WET
-Europe/Ljubljana.daylight.short=CEST
-Europe/Ljubljana.generic.short=CET
-Europe/Ljubljana.standard.short=CET
-Europe/London.daylight.short=BST
-Europe/London.generic.short=BT
-Europe/London.standard.short=GMT
-Europe/Luxembourg.daylight.short=CEST
-Europe/Luxembourg.generic.short=CET
-Europe/Luxembourg.standard.short=CET
-Europe/Madrid.daylight.short=CEST
-Europe/Madrid.generic.short=CET
-Europe/Madrid.standard.short=CET
-Europe/Malta.daylight.short=CEST
-Europe/Malta.generic.short=CET
-Europe/Malta.standard.short=CET
-Europe/Mariehamn.daylight.short=EEST
-Europe/Mariehamn.generic.short=EET
-Europe/Mariehamn.standard.short=EET
-Europe/Minsk.daylight.short=FEST
-Europe/Minsk.generic.short=FET
-Europe/Minsk.standard.short=FET
-Europe/Monaco.daylight.short=CEST
-Europe/Monaco.generic.short=CET
-Europe/Monaco.standard.short=CET
-Europe/Moscow.daylight.short=MSD
-Europe/Moscow.generic.short=MT
-Europe/Moscow.standard.short=MSK
-Europe/Nicosia.daylight.short=EEST
-Europe/Nicosia.generic.short=EET
-Europe/Nicosia.standard.short=EET
-Europe/Oslo.daylight.short=CEST
-Europe/Oslo.generic.short=CET
-Europe/Oslo.standard.short=CET
-Europe/Paris.daylight.short=CEST
-Europe/Paris.generic.short=CET
-Europe/Paris.standard.short=CET
-Europe/Podgorica.daylight.short=CEST
-Europe/Podgorica.generic.short=CET
-Europe/Podgorica.standard.short=CET
-Europe/Prague.daylight.short=CEST
-Europe/Prague.generic.short=CET
-Europe/Prague.standard.short=CET
-Europe/Riga.daylight.short=EEST
-Europe/Riga.generic.short=EET
-Europe/Riga.standard.short=EET
-Europe/Rome.daylight.short=CEST
-Europe/Rome.generic.short=CET
-Europe/Rome.standard.short=CET
-Europe/Samara.daylight.short=SAMST
-Europe/Samara.generic.short=SAMT
-Europe/Samara.standard.short=SAMT
-Europe/San_Marino.daylight.short=CEST
-Europe/San_Marino.generic.short=CET
-Europe/San_Marino.standard.short=CET
-Europe/Sarajevo.daylight.short=CEST
-Europe/Sarajevo.generic.short=CET
-Europe/Sarajevo.standard.short=CET
-Europe/Simferopol.daylight.short=EEST
-Europe/Simferopol.generic.short=EET
-Europe/Simferopol.standard.short=EET
-Europe/Skopje.daylight.short=CEST
-Europe/Skopje.generic.short=CET
-Europe/Skopje.standard.short=CET
-Europe/Sofia.daylight.short=EEST
-Europe/Sofia.generic.short=EET
-Europe/Sofia.standard.short=EET
-Europe/Stockholm.daylight.short=CEST
-Europe/Stockholm.generic.short=CET
-Europe/Stockholm.standard.short=CET
-Europe/Tallinn.daylight.short=EEST
-Europe/Tallinn.generic.short=EET
-Europe/Tallinn.standard.short=EET
-Europe/Tirane.daylight.short=CEST
-Europe/Tirane.generic.short=CET
-Europe/Tirane.standard.short=CET
-Europe/Tiraspol.daylight.short=EEST
-Europe/Tiraspol.generic.short=EET
-Europe/Tiraspol.standard.short=EET
-Europe/Uzhgorod.daylight.short=EEST
-Europe/Uzhgorod.generic.short=EET
-Europe/Uzhgorod.standard.short=EET
-Europe/Vaduz.daylight.short=CEST
-Europe/Vaduz.generic.short=CET
-Europe/Vaduz.standard.short=CET
-Europe/Vatican.daylight.short=CEST
-Europe/Vatican.generic.short=CET
-Europe/Vatican.standard.short=CET
-Europe/Vienna.daylight.short=CEST
-Europe/Vienna.generic.short=CET
-Europe/Vienna.standard.short=CET
-Europe/Vilnius.daylight.short=EEST
-Europe/Vilnius.generic.short=EET
-Europe/Vilnius.standard.short=EET
-Europe/Volgograd.daylight.short=VOLST
-Europe/Volgograd.generic.short=VOLT
-Europe/Volgograd.standard.short=VOLT
-Europe/Warsaw.daylight.short=CEST
-Europe/Warsaw.generic.short=CET
-Europe/Warsaw.standard.short=CET
-Europe/Zagreb.daylight.short=CEST
-Europe/Zagreb.generic.short=CET
-Europe/Zagreb.standard.short=CET
-Europe/Zaporozhye.daylight.short=EEST
-Europe/Zaporozhye.generic.short=EET
-Europe/Zaporozhye.standard.short=EET
-Europe/Zurich.daylight.short=CEST
-Europe/Zurich.generic.short=CET
-Europe/Zurich.standard.short=CET
-GB.daylight.short=BST
-GB-Eire.daylight.short=BST
-GB-Eire.generic.short=BT
-GB-Eire.standard.short=GMT
-GB.generic.short=BT
-GB.standard.short=GMT
-GMT.daylight.short=GMT
-GMT.generic.short=GMT
-GMT.standard.short=GMT
-Greenwich.daylight.short=GMT
-Greenwich.generic.short=GMT
-Greenwich.standard.short=GMT
-Hongkong.daylight.short=HKST
-Hongkong.generic.short=HKT
-Hongkong.standard.short=HKT
-HST.daylight.short=HDT
-HST.generic.short=HT
-HST.standard.short=HST
-Iceland.daylight.short=GMT
-Iceland.generic.short=GMT
-Iceland.standard.short=GMT
-IET.daylight.short=EDT
-IET.generic.short=ET
-IET.standard.short=EST
-Indian/Antananarivo.daylight.short=EAST
-Indian/Antananarivo.generic.short=EAT
-Indian/Antananarivo.standard.short=EAT
-Indian/Chagos.daylight.short=IOST
-Indian/Chagos.generic.short=IOT
-Indian/Chagos.standard.short=IOT
-Indian/Christmas.daylight.short=CXST
-Indian/Christmas.generic.short=CIT
-Indian/Christmas.standard.short=CXT
-Indian/Cocos.daylight.short=CCST
-Indian/Cocos.generic.short=CCT
-Indian/Cocos.standard.short=CCT
-Indian/Comoro.daylight.short=EAST
-Indian/Comoro.generic.short=EAT
-Indian/Comoro.standard.short=EAT
-Indian/Kerguelen.daylight.short=TFST
-Indian/Kerguelen.generic.short=TFT
-Indian/Kerguelen.standard.short=TFT
-Indian/Mahe.daylight.short=SCST
-Indian/Mahe.generic.short=SCT
-Indian/Mahe.standard.short=SCT
-Indian/Maldives.daylight.short=MVST
-Indian/Maldives.generic.short=MVT
-Indian/Maldives.standard.short=MVT
-Indian/Mauritius.daylight.short=MUST
-Indian/Mauritius.generic.short=MUT
-Indian/Mauritius.standard.short=MUT
-Indian/Mayotte.daylight.short=EAST
-Indian/Mayotte.generic.short=EAT
-Indian/Mayotte.standard.short=EAT
-Indian/Reunion.daylight.short=REST
-Indian/Reunion.generic.short=RET
-Indian/Reunion.standard.short=RET
-Iran.daylight.short=IRDT
-Iran.generic.short=IRT
-Iran.standard.short=IRST
-Israel.daylight.short=IDT
-Israel.generic.short=IT
-Israel.standard.short=IST
-IST.daylight.short=IDT
-IST.generic.short=IT
-IST.standard.short=IST
-Jamaica.daylight.short=EDT
-Jamaica.generic.short=ET
-Jamaica.standard.short=EST
-Japan.daylight.short=JDT
-Japan.generic.short=JT
-Japan.standard.short=JST
-JST.daylight.short=JDT
-JST.generic.short=JT
-JST.standard.short=JST
-Kwajalein.daylight.short=MHST
-Kwajalein.generic.short=MHT
-Kwajalein.standard.short=MHT
-Libya.daylight.short=EEST
-Libya.generic.short=EET
-Libya.standard.short=EET
-MET.daylight.short=MEST
-MET.generic.short=MET
-MET.standard.short=MET
-Mexico/BajaNorte.daylight.short=PDT
-Mexico/BajaNorte.generic.short=PT
-Mexico/BajaNorte.standard.short=PST
-Mexico/BajaSur.daylight.short=MDT
-Mexico/BajaSur.generic.short=MT
-Mexico/BajaSur.standard.short=MST
-Mexico/General.daylight.short=CDT
-Mexico/General.generic.short=CT
-Mexico/General.standard.short=CST
-MIT.daylight.short=WSDT
-MIT.generic.short=WST
-MIT.standard.short=WST
-MST7MDT.daylight.short=MDT
-MST7MDT.generic.short=MT
-MST7MDT.standard.short=MST
-MST.daylight.short=MDT
-MST.generic.short=MT
-MST.standard.short=MST
-Navajo.daylight.short=MDT
-Navajo.generic.short=MT
-Navajo.standard.short=MST
-NET.daylight.short=AMST
-NET.generic.short=AMT
-NET.standard.short=AMT
-NST.daylight.short=NZDT
-NST.generic.short=NZT
-NST.standard.short=NZST
-NZ-CHAT.daylight.short=CHADT
-NZ-CHAT.generic.short=CHAT
-NZ-CHAT.standard.short=CHAST
-NZ.daylight.short=NZDT
-NZ.generic.short=NZT
-NZ.standard.short=NZST
-Pacific/Apia.daylight.short=WSDT
-Pacific/Apia.generic.short=WST
-Pacific/Apia.standard.short=WST
-Pacific/Auckland.daylight.short=NZDT
-Pacific/Auckland.generic.short=NZT
-Pacific/Auckland.standard.short=NZST
-Pacific/Chatham.daylight.short=CHADT
-Pacific/Chatham.generic.short=CHAT
-Pacific/Chatham.standard.short=CHAST
-Pacific/Chuuk.daylight.short=CHUST
-Pacific/Chuuk.generic.short=CHUT
-Pacific/Chuuk.standard.short=CHUT
-Pacific/Easter.daylight.short=EASST
-Pacific/Easter.generic.short=EAST
-Pacific/Easter.standard.short=EAST
-Pacific/Efate.daylight.short=VUST
-Pacific/Efate.generic.short=VUT
-Pacific/Efate.standard.short=VUT
-Pacific/Enderbury.daylight.short=PHOST
-Pacific/Enderbury.generic.short=PHOT
-Pacific/Enderbury.standard.short=PHOT
-Pacific/Fakaofo.daylight.short=TKST
-Pacific/Fakaofo.generic.short=TKT
-Pacific/Fakaofo.standard.short=TKT
-Pacific/Fiji.daylight.short=FJST
-Pacific/Fiji.generic.short=FJT
-Pacific/Fiji.standard.short=FJT
-Pacific/Funafuti.daylight.short=TVST
-Pacific/Funafuti.generic.short=TVT
-Pacific/Funafuti.standard.short=TVT
-Pacific/Galapagos.daylight.short=GALST
-Pacific/Galapagos.generic.short=GALT
-Pacific/Galapagos.standard.short=GALT
-Pacific/Gambier.daylight.short=GAMST
-Pacific/Gambier.generic.short=GAMT
-Pacific/Gambier.standard.short=GAMT
-Pacific/Guadalcanal.daylight.short=SBST
-Pacific/Guadalcanal.generic.short=SBT
-Pacific/Guadalcanal.standard.short=SBT
-Pacific/Guam.daylight.short=ChDT
-Pacific/Guam.generic.short=ChT
-Pacific/Guam.standard.short=ChST
-Pacific/Honolulu.daylight.short=HDT
-Pacific/Honolulu.generic.short=HT
-Pacific/Honolulu.standard.short=HST
-Pacific/Johnston.daylight.short=HDT
-Pacific/Johnston.generic.short=HT
-Pacific/Johnston.standard.short=HST
-Pacific/Kiritimati.daylight.short=LINST
-Pacific/Kiritimati.generic.short=LINT
-Pacific/Kiritimati.standard.short=LINT
-Pacific/Kosrae.daylight.short=KOSST
-Pacific/Kosrae.generic.short=KOST
-Pacific/Kosrae.standard.short=KOST
-Pacific/Kwajalein.daylight.short=MHST
-Pacific/Kwajalein.generic.short=MHT
-Pacific/Kwajalein.standard.short=MHT
-Pacific/Majuro.daylight.short=MHST
-Pacific/Majuro.generic.short=MHT
-Pacific/Majuro.standard.short=MHT
-Pacific/Marquesas.daylight.short=MARST
-Pacific/Marquesas.generic.short=MART
-Pacific/Marquesas.standard.short=MART
-Pacific/Midway.daylight.short=SDT
-Pacific/Midway.generic.short=ST
-Pacific/Midway.standard.short=SST
-Pacific/Nauru.daylight.short=NRST
-Pacific/Nauru.generic.short=NRT
-Pacific/Nauru.standard.short=NRT
-Pacific/Niue.daylight.short=NUST
-Pacific/Niue.generic.short=NUT
-Pacific/Niue.standard.short=NUT
-Pacific/Norfolk.daylight.short=NFST
-Pacific/Norfolk.generic.short=NFT
-Pacific/Norfolk.standard.short=NFT
-Pacific/Noumea.daylight.short=NCST
-Pacific/Noumea.generic.short=NCT
-Pacific/Noumea.standard.short=NCT
-Pacific/Pago_Pago.daylight.short=SDT
-Pacific/Pago_Pago.generic.short=ST
-Pacific/Pago_Pago.standard.short=SST
-Pacific/Palau.daylight.short=PWST
-Pacific/Palau.generic.short=PWT
-Pacific/Palau.standard.short=PWT
-Pacific/Pitcairn.daylight.short=PDT
-Pacific/Pitcairn.generic.short=PT
-Pacific/Pitcairn.standard.short=PST
-Pacific/Pohnpei.daylight.short=PONST
-Pacific/Pohnpei.generic.short=PONT
-Pacific/Pohnpei.standard.short=PONT
-Pacific/Ponape.daylight.short=PONST
-Pacific/Ponape.generic.short=PONT
-Pacific/Ponape.standard.short=PONT
-Pacific/Port_Moresby.daylight.short=PGST
-Pacific/Port_Moresby.generic.short=PGT
-Pacific/Port_Moresby.standard.short=PGT
-Pacific/Rarotonga.daylight.short=CKHST
-Pacific/Rarotonga.generic.short=CKT
-Pacific/Rarotonga.standard.short=CKT
-Pacific/Saipan.daylight.short=ChDT
-Pacific/Saipan.generic.short=ChT
-Pacific/Saipan.standard.short=ChST
-Pacific/Samoa.daylight.short=SDT
-Pacific/Samoa.generic.short=ST
-Pacific/Samoa.standard.short=SST
-Pacific/Tahiti.daylight.short=TAHST
-Pacific/Tahiti.generic.short=TAHT
-Pacific/Tahiti.standard.short=TAHT
-Pacific/Tarawa.daylight.short=GILST
-Pacific/Tarawa.generic.short=GILT
-Pacific/Tarawa.standard.short=GILT
-Pacific/Tongatapu.daylight.short=TOST
-Pacific/Tongatapu.generic.short=TOT
-Pacific/Tongatapu.standard.short=TOT
-Pacific/Truk.daylight.short=CHUST
-Pacific/Truk.generic.short=CHUT
-Pacific/Truk.standard.short=CHUT
-Pacific/Wake.daylight.short=WAKST
-Pacific/Wake.generic.short=WAKT
-Pacific/Wake.standard.short=WAKT
-Pacific/Wallis.daylight.short=WFST
-Pacific/Wallis.generic.short=WFT
-Pacific/Wallis.standard.short=WFT
-Pacific/Yap.daylight.short=CHUST
-Pacific/Yap.generic.short=CHUT
-Pacific/Yap.standard.short=CHUT
-PLT.daylight.short=PKST
-PLT.generic.short=PKT
-PLT.standard.short=PKT
-PNT.daylight.short=MDT
-PNT.generic.short=MT
-PNT.standard.short=MST
-Poland.daylight.short=CEST
-Poland.generic.short=CET
-Poland.standard.short=CET
-Portugal.daylight.short=WEST
-Portugal.generic.short=WET
-Portugal.standard.short=WET
-PRC.daylight.short=CDT
-PRC.generic.short=CT
-PRC.standard.short=CST
-PRT.daylight.short=ADT
-PRT.generic.short=AT
-PRT.standard.short=AST
-PST8PDT.daylight.short=PDT
-PST8PDT.generic.short=PT
-PST8PDT.standard.short=PST
-PST.daylight.short=PDT
-PST.generic.short=PT
-PST.standard.short=PST
-ROK.daylight.short=KDT
-ROK.generic.short=KT
-ROK.standard.short=KST
-Singapore.daylight.short=SGST
-Singapore.generic.short=SGT
-Singapore.standard.short=SGT
-SST.daylight.short=SBST
-SST.generic.short=SBT
-SST.standard.short=SBT
-SystemV/AST4ADT.daylight.short=ADT
-SystemV/AST4ADT.generic.short=AT
-SystemV/AST4ADT.standard.short=AST
-SystemV/AST4.daylight.short=ADT
-SystemV/AST4.generic.short=AT
-SystemV/AST4.standard.short=AST
-SystemV/CST6CDT.daylight.short=CDT
-SystemV/CST6CDT.generic.short=CT
-SystemV/CST6CDT.standard.short=CST
-SystemV/CST6.daylight.short=CDT
-SystemV/CST6.generic.short=CT
-SystemV/CST6.standard.short=CST
-SystemV/EST5.daylight.short=EDT
-SystemV/EST5EDT.daylight.short=EDT
-SystemV/EST5EDT.generic.short=ET
-SystemV/EST5EDT.standard.short=EST
-SystemV/EST5.generic.short=ET
-SystemV/EST5.standard.short=EST
-SystemV/HST10.daylight.short=HDT
-SystemV/HST10.generic.short=HT
-SystemV/HST10.standard.short=HST
-SystemV/MST7.daylight.short=MDT
-SystemV/MST7.generic.short=MT
-SystemV/MST7MDT.daylight.short=MDT
-SystemV/MST7MDT.generic.short=MT
-SystemV/MST7MDT.standard.short=MST
-SystemV/MST7.standard.short=MST
-SystemV/PST8.daylight.short=PDT
-SystemV/PST8.generic.short=PT
-SystemV/PST8PDT.daylight.short=PDT
-SystemV/PST8PDT.generic.short=PT
-SystemV/PST8PDT.standard.short=PST
-SystemV/PST8.standard.short=PST
-SystemV/YST9.daylight.short=AKDT
-SystemV/YST9.generic.short=AKT
-SystemV/YST9.standard.short=AKST
-SystemV/YST9YDT.daylight.short=AKDT
-SystemV/YST9YDT.generic.short=AKT
-SystemV/YST9YDT.standard.short=AKST
-Turkey.daylight.short=EEST
-Turkey.generic.short=EET
-Turkey.standard.short=EET
-UCT.daylight.short=UTC
-UCT.generic.short=UTC
-UCT.standard.short=UTC
-Universal.daylight.short=UTC
-Universal.generic.short=UTC
-Universal.standard.short=UTC
-US/Alaska.daylight.short=AKDT
-US/Alaska.generic.short=AKT
-US/Alaska.standard.short=AKST
-US/Aleutian.daylight.short=HADT
-US/Aleutian.generic.short=HAT
-US/Aleutian.standard.short=HAST
-US/Arizona.daylight.short=MDT
-US/Arizona.generic.short=MT
-US/Arizona.standard.short=MST
-US/Central.daylight.short=CDT
-US/Central.generic.short=CT
-US/Central.standard.short=CST
-US/Eastern.daylight.short=EDT
-US/Eastern.generic.short=ET
-US/Eastern.standard.short=EST
-US/East-Indiana.daylight.short=EDT
-US/East-Indiana.generic.short=ET
-US/East-Indiana.standard.short=EST
-US/Hawaii.daylight.short=HDT
-US/Hawaii.generic.short=HT
-US/Hawaii.standard.short=HST
-US/Indiana-Starke.daylight.short=CDT
-US/Indiana-Starke.generic.short=CT
-US/Indiana-Starke.standard.short=CST
-US/Michigan.daylight.short=EDT
-US/Michigan.generic.short=ET
-US/Michigan.standard.short=EST
-US/Mountain.daylight.short=MDT
-US/Mountain.generic.short=MT
-US/Mountain.standard.short=MST
-US/Pacific.daylight.short=PDT
-US/Pacific.generic.short=PT
-US/Pacific-New.daylight.short=PDT
-US/Pacific-New.generic.short=PT
-US/Pacific-New.standard.short=PST
-US/Pacific.standard.short=PST
-US/Samoa.daylight.short=SDT
-US/Samoa.generic.short=ST
-US/Samoa.standard.short=SST
-UTC.daylight.short=UTC
-UTC.generic.short=UTC
-UTC.standard.short=UTC
-VST.daylight.short=ICST
-VST.generic.short=ICT
-VST.standard.short=ICT
-WET.daylight.short=WEST
-WET.generic.short=WET
-WET.standard.short=WET
-W-SU.daylight.short=MSD
-W-SU.generic.short=MT
-W-SU.standard.short=MSK
-Zulu.daylight.short=UTC
-Zulu.generic.short=UTC
-Zulu.standard.short=UTC
diff --git a/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_ko.properties b/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_ko.properties
deleted file mode 100644
index 52c2bc820ad..00000000000
--- a/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_ko.properties
+++ /dev/null
@@ -1,651 +0,0 @@
-ACT.daylight.long=\uC911\uBD80 \uC77C\uAD11 \uC808\uC57D \uC2DC\uAC04(\uBD81\uBD80 \uC9C0\uC5ED)
-ACT.generic.long=\uC911\uBD80 \uD45C\uC900\uC2DC(\uBD81\uBD80 \uC9C0\uC5ED)
-ACT.standard.long=\uC911\uBD80 \uD45C\uC900\uC2DC(\uBD81\uBD80 \uC9C0\uC5ED)
-AET.daylight.long=\uB3D9\uBD80 \uC77C\uAD11 \uC808\uC57D \uC2DC\uAC04(\uB274\uC0AC\uC6B0\uC2A4\uC6E8\uC77C\uC988)
-AET.generic.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC(\uB274\uC0AC\uC6B0\uC2A4\uC6E8\uC77C\uC988)
-AET.standard.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC(\uB274\uC0AC\uC6B0\uC2A4\uC6E8\uC77C\uC988)
-AGT.generic.long=\uC544\uB974\uD5E8\uD2F0\uB098 \uD45C\uC900\uC2DC
-ART.generic.long=\uB3D9\uBD80 \uC720\uB7FD \uD45C\uC900\uC2DC
-AST.generic.long=\uC54C\uB798\uC2A4\uCE74 \uD45C\uC900\uC2DC
-Africa/Abidjan.generic.long=\uADF8\uB9AC\uB2C8\uCE58 \uD45C\uC900\uC2DC
-Africa/Accra.generic.long=\uAC00\uB098 \uD45C\uC900\uC2DC
-Africa/Addis_Ababa.generic.long=\uB3D9\uBD80 \uC544\uD504\uB9AC\uCE74 \uD45C\uC900\uC2DC
-Africa/Algiers.generic.long=\uC911\uC559 \uC720\uB7FD \uD45C\uC900\uC2DC
-Africa/Asmara.generic.long=\uB3D9\uBD80 \uC544\uD504\uB9AC\uCE74 \uD45C\uC900\uC2DC
-Africa/Asmera.generic.long=\uB3D9\uBD80 \uC544\uD504\uB9AC\uCE74 \uD45C\uC900\uC2DC
-Africa/Bamako.generic.long=\uADF8\uB9AC\uB2C8\uCE58 \uD45C\uC900\uC2DC
-Africa/Bangui.generic.long=\uC11C\uBD80 \uC544\uD504\uB9AC\uCE74 \uD45C\uC900\uC2DC
-Africa/Banjul.generic.long=\uADF8\uB9AC\uB2C8\uCE58 \uD45C\uC900\uC2DC
-Africa/Bissau.generic.long=\uADF8\uB9AC\uB2C8\uCE58 \uD45C\uC900\uC2DC
-Africa/Blantyre.generic.long=\uC911\uC559 \uC544\uD504\uB9AC\uCE74 \uD45C\uC900\uC2DC
-Africa/Brazzaville.generic.long=\uC11C\uBD80 \uC544\uD504\uB9AC\uCE74 \uD45C\uC900\uC2DC
-Africa/Bujumbura.generic.long=\uC911\uC559 \uC544\uD504\uB9AC\uCE74 \uD45C\uC900\uC2DC
-Africa/Cairo.generic.long=\uB3D9\uBD80 \uC720\uB7FD \uD45C\uC900\uC2DC
-Africa/Casablanca.generic.long=\uC11C\uBD80 \uC720\uB7FD \uD45C\uC900\uC2DC
-Africa/Ceuta.generic.long=\uC911\uC559 \uC720\uB7FD \uD45C\uC900\uC2DC
-Africa/Conakry.generic.long=\uADF8\uB9AC\uB2C8\uCE58 \uD45C\uC900\uC2DC
-Africa/Dakar.generic.long=\uADF8\uB9AC\uB2C8\uCE58 \uD45C\uC900\uC2DC
-Africa/Dar_es_Salaam.generic.long=\uB3D9\uBD80 \uC544\uD504\uB9AC\uCE74 \uD45C\uC900\uC2DC
-Africa/Djibouti.generic.long=\uB3D9\uBD80 \uC544\uD504\uB9AC\uCE74 \uD45C\uC900\uC2DC
-Africa/Douala.generic.long=\uC11C\uBD80 \uC544\uD504\uB9AC\uCE74 \uD45C\uC900\uC2DC
-Africa/El_Aaiun.generic.long=\uC11C\uBD80 \uC720\uB7FD \uD45C\uC900\uC2DC
-Africa/Freetown.generic.long=\uC2DC\uC5D0\uB77C\uB9AC\uC628 \uD45C\uC900\uC2DC
-Africa/Gaborone.generic.long=\uC911\uC559 \uC544\uD504\uB9AC\uCE74 \uD45C\uC900\uC2DC
-Africa/Harare.generic.long=\uC911\uC559 \uC544\uD504\uB9AC\uCE74 \uD45C\uC900\uC2DC
-Africa/Johannesburg.generic.long=\uB0A8\uC544\uD504\uB9AC\uCE74 \uD45C\uC900\uC2DC
-Africa/Juba.generic.long=\uB3D9\uBD80 \uC544\uD504\uB9AC\uCE74 \uD45C\uC900\uC2DC
-Africa/Kampala.generic.long=\uB3D9\uBD80 \uC544\uD504\uB9AC\uCE74 \uD45C\uC900\uC2DC
-Africa/Khartoum.generic.long=\uB3D9\uBD80 \uC544\uD504\uB9AC\uCE74 \uD45C\uC900\uC2DC
-Africa/Kigali.generic.long=\uC911\uC559 \uC544\uD504\uB9AC\uCE74 \uD45C\uC900\uC2DC
-Africa/Kinshasa.generic.long=\uC11C\uBD80 \uC544\uD504\uB9AC\uCE74 \uD45C\uC900\uC2DC
-Africa/Lagos.generic.long=\uC11C\uBD80 \uC544\uD504\uB9AC\uCE74 \uD45C\uC900\uC2DC
-Africa/Libreville.generic.long=\uC11C\uBD80 \uC544\uD504\uB9AC\uCE74 \uD45C\uC900\uC2DC
-Africa/Lome.generic.long=\uADF8\uB9AC\uB2C8\uCE58 \uD45C\uC900\uC2DC
-Africa/Luanda.generic.long=\uC11C\uBD80 \uC544\uD504\uB9AC\uCE74 \uD45C\uC900\uC2DC
-Africa/Lubumbashi.generic.long=\uC911\uC559 \uC544\uD504\uB9AC\uCE74 \uD45C\uC900\uC2DC
-Africa/Lusaka.generic.long=\uC911\uC559 \uC544\uD504\uB9AC\uCE74 \uD45C\uC900\uC2DC
-Africa/Malabo.generic.long=\uC11C\uBD80 \uC544\uD504\uB9AC\uCE74 \uD45C\uC900\uC2DC
-Africa/Maputo.generic.long=\uC911\uC559 \uC544\uD504\uB9AC\uCE74 \uD45C\uC900\uC2DC
-Africa/Maseru.generic.long=\uB0A8\uC544\uD504\uB9AC\uCE74 \uD45C\uC900\uC2DC
-Africa/Mbabane.generic.long=\uB0A8\uC544\uD504\uB9AC\uCE74 \uD45C\uC900\uC2DC
-Africa/Mogadishu.generic.long=\uB3D9\uBD80 \uC544\uD504\uB9AC\uCE74 \uD45C\uC900\uC2DC
-Africa/Monrovia.generic.long=\uADF8\uB9AC\uB2C8\uCE58 \uD45C\uC900\uC2DC
-Africa/Nairobi.generic.long=\uB3D9\uBD80 \uC544\uD504\uB9AC\uCE74 \uD45C\uC900\uC2DC
-Africa/Ndjamena.generic.long=\uC11C\uBD80 \uC544\uD504\uB9AC\uCE74 \uD45C\uC900\uC2DC
-Africa/Niamey.generic.long=\uC11C\uBD80 \uC544\uD504\uB9AC\uCE74 \uD45C\uC900\uC2DC
-Africa/Nouakchott.generic.long=\uADF8\uB9AC\uB2C8\uCE58 \uD45C\uC900\uC2DC
-Africa/Ouagadougou.generic.long=\uADF8\uB9AC\uB2C8\uCE58 \uD45C\uC900\uC2DC
-Africa/Porto-Novo.generic.long=\uC11C\uBD80 \uC544\uD504\uB9AC\uCE74 \uD45C\uC900\uC2DC
-Africa/Sao_Tome.generic.long=\uADF8\uB9AC\uB2C8\uCE58 \uD45C\uC900\uC2DC
-Africa/Timbuktu.generic.long=\uADF8\uB9AC\uB2C8\uCE58 \uD45C\uC900\uC2DC
-Africa/Tripoli.generic.long=\ub3d9\ubd80 \uc720\ub7fd \ud45c\uc900\uc2dc
-Africa/Tunis.generic.long=\uC911\uC559 \uC720\uB7FD \uD45C\uC900\uC2DC
-Africa/Windhoek.generic.long=\uC11C\uBD80 \uC544\uD504\uB9AC\uCE74 \uD45C\uC900\uC2DC
-America/Adak.generic.long=\uD558\uC640\uC774-\uC54C\uB8E8\uC0E8 \uD45C\uC900\uC2DC
-America/Anchorage.generic.long=\uC54C\uB798\uC2A4\uCE74 \uD45C\uC900\uC2DC
-America/Anguilla.generic.long=\uB300\uC11C\uC591 \uD45C\uC900\uC2DC
-America/Antigua.generic.long=\uB300\uC11C\uC591 \uD45C\uC900\uC2DC
-America/Araguaina.generic.long=\uBE0C\uB77C\uC9C8\uB9AC\uC544 \uD45C\uC900\uC2DC
-America/Argentina/Buenos_Aires.generic.long=\uC544\uB974\uD5E8\uD2F0\uB098 \uD45C\uC900\uC2DC
-America/Argentina/Catamarca.generic.long=\uC544\uB974\uD5E8\uD2F0\uB098 \uD45C\uC900\uC2DC
-America/Argentina/ComodRivadavia.generic.long=\uC544\uB974\uD5E8\uD2F0\uB098 \uD45C\uC900\uC2DC
-America/Argentina/Cordoba.generic.long=\uC544\uB974\uD5E8\uD2F0\uB098 \uD45C\uC900\uC2DC
-America/Argentina/Jujuy.generic.long=\uC544\uB974\uD5E8\uD2F0\uB098 \uD45C\uC900\uC2DC
-America/Argentina/La_Rioja.generic.long=\uC544\uB974\uD5E8\uD2F0\uB098 \uD45C\uC900\uC2DC
-America/Argentina/Mendoza.generic.long=\uC544\uB974\uD5E8\uD2F0\uB098 \uD45C\uC900\uC2DC
-America/Argentina/Rio_Gallegos.generic.long=\uC544\uB974\uD5E8\uD2F0\uB098 \uD45C\uC900\uC2DC
-America/Argentina/Salta.generic.long=\uC544\uB974\uD5E8\uD2F0\uB098 \uD45C\uC900\uC2DC
-America/Argentina/San_Juan.generic.long=\uC544\uB974\uD5E8\uD2F0\uB098 \uD45C\uC900\uC2DC
-America/Argentina/San_Luis.generic.long=\uc544\ub974\ud5e8\ud2f0\ub098 \ud45c\uc900\uc2dc
-America/Argentina/Tucuman.generic.long=\uC544\uB974\uD5E8\uD2F0\uB098 \uD45C\uC900\uC2DC
-America/Argentina/Ushuaia.generic.long=\uC544\uB974\uD5E8\uD2F0\uB098 \uD45C\uC900\uC2DC
-America/Aruba.generic.long=\uB300\uC11C\uC591 \uD45C\uC900\uC2DC
-America/Asuncion.generic.long=\uD30C\uB77C\uACFC\uC774 \uD45C\uC900\uC2DC
-America/Atikokan.generic.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC
-America/Atka.generic.long=\uD558\uC640\uC774-\uC54C\uB8E8\uC0E8 \uD45C\uC900\uC2DC
-America/Bahia.generic.long=\uBE0C\uB77C\uC9C8\uB9AC\uC544 \uD45C\uC900\uC2DC
-America/Bahia_Banderas.generic.long=\uC911\uBD80 \uD45C\uC900\uC2DC
-America/Barbados.generic.long=\uB300\uC11C\uC591 \uD45C\uC900\uC2DC
-America/Belem.generic.long=\uBE0C\uB77C\uC9C8\uB9AC\uC544 \uD45C\uC900\uC2DC
-America/Belize.generic.long=\uC911\uBD80 \uD45C\uC900\uC2DC
-America/Blanc-Sablon.generic.long=\uB300\uC11C\uC591 \uD45C\uC900\uC2DC
-America/Boa_Vista.generic.long=\uC544\uB9C8\uC874 \uD45C\uC900\uC2DC
-America/Bogota.generic.long=\uCF5C\uB86C\uBE44\uC544 \uD45C\uC900\uC2DC
-America/Boise.generic.long=\uC0B0\uC9C0 \uD45C\uC900\uC2DC
-America/Buenos_Aires.generic.long=\uC544\uB974\uD5E8\uD2F0\uB098 \uD45C\uC900\uC2DC
-America/Cambridge_Bay.generic.long=\uC0B0\uC9C0 \uD45C\uC900\uC2DC
-America/Campo_Grande.generic.long=\uC544\uB9C8\uC874 \uD45C\uC900\uC2DC
-America/Cancun.generic.long=\uC911\uBD80 \uD45C\uC900\uC2DC
-America/Caracas.generic.long=\uBCA0\uB124\uC218\uC5D8\uB77C \uD45C\uC900\uC2DC
-America/Catamarca.generic.long=\uC544\uB974\uD5E8\uD2F0\uB098 \uD45C\uC900\uC2DC
-America/Cayenne.generic.long=\uD504\uB791\uC2A4\uB839 \uAE30\uC544\uB098 \uD45C\uC900\uC2DC
-America/Cayman.generic.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC
-America/Chicago.generic.long=\uC911\uBD80 \uD45C\uC900\uC2DC
-America/Chihuahua.generic.long=\uC0B0\uC9C0 \uD45C\uC900\uC2DC
-America/Coral_Harbour.generic.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC
-America/Cordoba.generic.long=\uC544\uB974\uD5E8\uD2F0\uB098 \uD45C\uC900\uC2DC
-America/Costa_Rica.generic.long=\uC911\uBD80 \uD45C\uC900\uC2DC
-America/Creston.generic.long=\uC0B0\uC9C0 \uD45C\uC900\uC2DC
-America/Cuiaba.generic.long=\uC544\uB9C8\uC874 \uD45C\uC900\uC2DC
-America/Curacao.generic.long=\uB300\uC11C\uC591 \uD45C\uC900\uC2DC
-America/Danmarkshavn.generic.long=\uADF8\uB9AC\uB2C8\uCE58 \uD45C\uC900\uC2DC
-America/Dawson.generic.long=\uD0DC\uD3C9\uC591 \uD45C\uC900\uC2DC
-America/Dawson_Creek.generic.long=\uC0B0\uC9C0 \uD45C\uC900\uC2DC
-America/Denver.generic.long=\uC0B0\uC9C0 \uD45C\uC900\uC2DC
-America/Detroit.generic.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC
-America/Dominica.generic.long=\uB300\uC11C\uC591 \uD45C\uC900\uC2DC
-America/Edmonton.generic.long=\uC0B0\uC9C0 \uD45C\uC900\uC2DC
-America/Eirunepe.generic.long=\uc5d0\uc774\ucee4 \uc2dc\uac04
-America/El_Salvador.generic.long=\uC911\uBD80 \uD45C\uC900\uC2DC
-America/Ensenada.generic.long=\uD0DC\uD3C9\uC591 \uD45C\uC900\uC2DC
-America/Fort_Wayne.generic.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC
-America/Fortaleza.generic.long=\uBE0C\uB77C\uC9C8\uB9AC\uC544 \uD45C\uC900\uC2DC
-America/Glace_Bay.generic.long=\uB300\uC11C\uC591 \uD45C\uC900\uC2DC
-America/Godthab.generic.long=\uC11C\uBD80 \uADF8\uB9B0\uB780\uB4DC \uD45C\uC900\uC2DC
-America/Goose_Bay.generic.long=\uB300\uC11C\uC591 \uD45C\uC900\uC2DC
-America/Grand_Turk.generic.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC
-America/Grenada.generic.long=\uB300\uC11C\uC591 \uD45C\uC900\uC2DC
-America/Guadeloupe.generic.long=\uB300\uC11C\uC591 \uD45C\uC900\uC2DC
-America/Guatemala.generic.long=\uC911\uBD80 \uD45C\uC900\uC2DC
-America/Guayaquil.generic.long=\uC5D0\uCF70\uB3C4\uB974 \uD45C\uC900\uC2DC
-America/Guyana.generic.long=\uAC00\uC774\uC544\uB098 \uD45C\uC900\uC2DC
-America/Halifax.generic.long=\uB300\uC11C\uC591 \uD45C\uC900\uC2DC
-America/Havana.generic.long=\uCFE0\uBC14 \uD45C\uC900\uC2DC
-America/Hermosillo.generic.long=\uC0B0\uC9C0 \uD45C\uC900\uC2DC
-America/Indiana/Indianapolis.generic.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC
-America/Indiana/Knox.generic.long=\uC911\uBD80 \uD45C\uC900\uC2DC
-America/Indiana/Marengo.generic.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC
-America/Indiana/Petersburg.generic.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC
-America/Indiana/Tell_City.generic.long=\uC911\uBD80 \uD45C\uC900\uC2DC
-America/Indiana/Vevay.generic.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC
-America/Indiana/Vincennes.generic.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC
-America/Indiana/Winamac.generic.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC
-America/Indianapolis.generic.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC
-America/Inuvik.generic.long=\uC0B0\uC9C0 \uD45C\uC900\uC2DC
-America/Iqaluit.generic.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC
-America/Jamaica.generic.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC
-America/Jujuy.generic.long=\uC544\uB974\uD5E8\uD2F0\uB098 \uD45C\uC900\uC2DC
-America/Juneau.generic.long=\uC54C\uB798\uC2A4\uCE74 \uD45C\uC900\uC2DC
-America/Kentucky/Louisville.generic.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC
-America/Kentucky/Monticello.generic.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC
-America/Knox_IN.generic.long=\uC911\uBD80 \uD45C\uC900\uC2DC
-America/Kralendijk.generic.long=\uB300\uC11C\uC591 \uD45C\uC900\uC2DC
-America/La_Paz.generic.long=\uBCFC\uB9AC\uBE44\uC544 \uD45C\uC900\uC2DC
-America/Lima.generic.long=\uD398\uB8E8 \uD45C\uC900\uC2DC
-America/Los_Angeles.generic.long=\uD0DC\uD3C9\uC591 \uD45C\uC900\uC2DC
-America/Louisville.generic.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC
-America/Lower_Princes.generic.long=\uB300\uC11C\uC591 \uD45C\uC900\uC2DC
-America/Maceio.generic.long=\uBE0C\uB77C\uC9C8\uB9AC\uC544 \uD45C\uC900\uC2DC
-America/Managua.generic.long=\uC911\uBD80 \uD45C\uC900\uC2DC
-America/Manaus.generic.long=\uC544\uB9C8\uC874 \uD45C\uC900\uC2DC
-America/Marigot.generic.long=\uB300\uC11C\uC591 \uD45C\uC900\uC2DC
-America/Martinique.generic.long=\uB300\uC11C\uC591 \uD45C\uC900\uC2DC
-America/Matamoros.generic.long=\uC911\uBD80 \uD45C\uC900\uC2DC
-America/Mazatlan.generic.long=\uC0B0\uC9C0 \uD45C\uC900\uC2DC
-America/Mendoza.generic.long=\uC544\uB974\uD5E8\uD2F0\uB098 \uD45C\uC900\uC2DC
-America/Menominee.generic.long=\uC911\uBD80 \uD45C\uC900\uC2DC
-America/Merida.generic.long=\uC911\uBD80 \uD45C\uC900\uC2DC
-America/Metlakatla.daylight.long=\uBA54\uD2B8\uB77C\uCE74\uD2B8\uB77C \uC77C\uAD11 \uC808\uC57D \uC2DC\uAC04
-America/Metlakatla.generic.long=\uBA54\uD2B8\uB77C\uCE74\uD2B8\uB77C \uD45C\uC900\uC2DC
-America/Metlakatla.standard.long=\uBA54\uD2B8\uB77C\uCE74\uD2B8\uB77C \uD45C\uC900\uC2DC
-America/Mexico_City.generic.long=\uC911\uBD80 \uD45C\uC900\uC2DC
-America/Miquelon.generic.long=\uD53C\uC5D0\uB974 \uBBF8\uD074\uB871 \uD45C\uC900\uC2DC
-America/Moncton.generic.long=\uB300\uC11C\uC591 \uD45C\uC900\uC2DC
-America/Monterrey.generic.long=\uC911\uBD80 \uD45C\uC900\uC2DC
-America/Montevideo.generic.long=\uC6B0\uB8E8\uACFC\uC774 \uD45C\uC900\uC2DC
-America/Montreal.generic.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC
-America/Montserrat.generic.long=\uB300\uC11C\uC591 \uD45C\uC900\uC2DC
-America/Nassau.generic.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC
-America/New_York.generic.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC
-America/Nipigon.generic.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC
-America/Nome.generic.long=\uC54C\uB798\uC2A4\uCE74 \uD45C\uC900\uC2DC
-America/Noronha.generic.long=\uD398\uB974\uB09C\uB3C4 \uB4DC \uB178\uB85C\uD558 \uD45C\uC900\uC2DC
-America/North_Dakota/Beulah.generic.long=\uC911\uBD80 \uD45C\uC900\uC2DC
-America/North_Dakota/Center.generic.long=\uC911\uBD80 \uD45C\uC900\uC2DC
-America/North_Dakota/New_Salem.generic.long=\uC911\uBD80 \uD45C\uC900\uC2DC
-America/Ojinaga.generic.long=\uC0B0\uC9C0 \uD45C\uC900\uC2DC
-America/Panama.generic.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC
-America/Pangnirtung.generic.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC
-America/Paramaribo.generic.long=\uC218\uB9AC\uB0A8 \uD45C\uC900\uC2DC
-America/Phoenix.generic.long=\uC0B0\uC9C0 \uD45C\uC900\uC2DC
-America/Port-au-Prince.generic.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC
-America/Port_of_Spain.generic.long=\uB300\uC11C\uC591 \uD45C\uC900\uC2DC
-America/Porto_Acre.generic.long=\uc5d0\uc774\ucee4 \uc2dc\uac04
-America/Porto_Velho.generic.long=\uC544\uB9C8\uC874 \uD45C\uC900\uC2DC
-America/Puerto_Rico.generic.long=\uB300\uC11C\uC591 \uD45C\uC900\uC2DC
-America/Rainy_River.generic.long=\uC911\uBD80 \uD45C\uC900\uC2DC
-America/Rankin_Inlet.generic.long=\uC911\uBD80 \uD45C\uC900\uC2DC
-America/Recife.generic.long=\uBE0C\uB77C\uC9C8\uB9AC\uC544 \uD45C\uC900\uC2DC
-America/Regina.generic.long=\uC911\uBD80 \uD45C\uC900\uC2DC
-America/Resolute.generic.long=\uC911\uBD80 \uD45C\uC900\uC2DC
-America/Rio_Branco.generic.long=\uc5d0\uc774\ucee4 \uc2dc\uac04
-America/Rosario.generic.long=\uC544\uB974\uD5E8\uD2F0\uB098 \uD45C\uC900\uC2DC
-America/Santa_Isabel.generic.long=\uD0DC\uD3C9\uC591 \uD45C\uC900\uC2DC
-America/Santarem.generic.long=\uBE0C\uB77C\uC9C8\uB9AC\uC544 \uD45C\uC900\uC2DC
-America/Santiago.generic.long=\uCE60\uB808 \uD45C\uC900\uC2DC
-America/Santo_Domingo.generic.long=\uB300\uC11C\uC591 \uD45C\uC900\uC2DC
-America/Sao_Paulo.generic.long=\uBE0C\uB77C\uC9C8\uB9AC\uC544 \uD45C\uC900\uC2DC
-America/Scoresbysund.generic.long=\uB3D9\uBD80 \uADF8\uB9B0\uB780\uB4DC \uD45C\uC900\uC2DC
-America/Shiprock.generic.long=\uC0B0\uC9C0 \uD45C\uC900\uC2DC
-America/Sitka.generic.long=\uC54C\uB798\uC2A4\uCE74 \uD45C\uC900\uC2DC
-America/St_Barthelemy.generic.long=\uB300\uC11C\uC591 \uD45C\uC900\uC2DC
-America/St_Johns.generic.long=\uB274\uD380\uB4E4\uB79C\uB4DC \uD45C\uC900\uC2DC
-America/St_Kitts.generic.long=\uB300\uC11C\uC591 \uD45C\uC900\uC2DC
-America/St_Lucia.generic.long=\uB300\uC11C\uC591 \uD45C\uC900\uC2DC
-America/St_Thomas.generic.long=\uB300\uC11C\uC591 \uD45C\uC900\uC2DC
-America/St_Vincent.generic.long=\uB300\uC11C\uC591 \uD45C\uC900\uC2DC
-America/Swift_Current.generic.long=\uC911\uBD80 \uD45C\uC900\uC2DC
-America/Tegucigalpa.generic.long=\uC911\uBD80 \uD45C\uC900\uC2DC
-America/Thule.generic.long=\uB300\uC11C\uC591 \uD45C\uC900\uC2DC
-America/Thunder_Bay.generic.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC
-America/Tijuana.generic.long=\uD0DC\uD3C9\uC591 \uD45C\uC900\uC2DC
-America/Toronto.generic.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC
-America/Tortola.generic.long=\uB300\uC11C\uC591 \uD45C\uC900\uC2DC
-America/Vancouver.generic.long=\uD0DC\uD3C9\uC591 \uD45C\uC900\uC2DC
-America/Virgin.generic.long=\uB300\uC11C\uC591 \uD45C\uC900\uC2DC
-America/Whitehorse.generic.long=\uD0DC\uD3C9\uC591 \uD45C\uC900\uC2DC
-America/Winnipeg.generic.long=\uC911\uBD80 \uD45C\uC900\uC2DC
-America/Yakutat.generic.long=\uC54C\uB798\uC2A4\uCE74 \uD45C\uC900\uC2DC
-America/Yellowknife.generic.long=\uC0B0\uC9C0 \uD45C\uC900\uC2DC
-Antarctica/Casey.daylight.long=\uC11C\uBD80 \uC77C\uAD11 \uC808\uC57D \uC2DC\uAC04(\uC624\uC2A4\uD2B8\uB808\uC77C\uB9AC\uC544)
-Antarctica/Casey.generic.long=\uC11C\uBD80 \uD45C\uC900\uC2DC(\uC624\uC2A4\uD2B8\uB808\uC77C\uB9AC\uC544)
-Antarctica/Casey.standard.long=\uC11C\uBD80 \uD45C\uC900\uC2DC(\uC624\uC2A4\uD2B8\uB808\uC77C\uB9AC\uC544)
-Antarctica/Davis.generic.long=\uB370\uC774\uBE44\uC2A4 \uD45C\uC900\uC2DC
-Antarctica/DumontDUrville.generic.long=\uB450\uBAAC\uD2B8\uC6B0\uB974\uBE4C \uD45C\uC900\uC2DC
-Antarctica/Macquarie.daylight.long=\uB9E4\uCF70\uB9AC \uC12C \uC77C\uAD11 \uC808\uC57D \uC2DC\uAC04
-Antarctica/Macquarie.generic.long=\uB9E4\uCF70\uB9AC \uC12C \uD45C\uC900\uC2DC
-Antarctica/Macquarie.standard.long=\uB9E4\uCF70\uB9AC \uC12C \uD45C\uC900\uC2DC
-Antarctica/Mawson.generic.long=\uB9C8\uC2A8 \uD45C\uC900\uC2DC
-Antarctica/McMurdo.generic.long=\uB274\uC9C8\uB79C\uB4DC \uD45C\uC900\uC2DC
-Antarctica/Palmer.generic.long=\uCE60\uB808 \uD45C\uC900\uC2DC
-Antarctica/Rothera.generic.long=\uB85C\uB354\uB77C \uD45C\uC900\uC2DC
-Antarctica/South_Pole.generic.long=\uB274\uC9C8\uB79C\uB4DC \uD45C\uC900\uC2DC
-Antarctica/Syowa.generic.long=\uC1FC\uC640 \uD45C\uC900\uC2DC
-Antarctica/Vostok.generic.long=\uBCF4\uC2A4\uD1A1 \uD45C\uC900\uC2DC
-Arctic/Longyearbyen.generic.long=\uC911\uC559 \uC720\uB7FD \uD45C\uC900\uC2DC
-Asia/Aden.generic.long=\uC544\uB77C\uBE44\uC544 \uD45C\uC900\uC2DC
-Asia/Almaty.generic.long=\uC54C\uB9C8\uC544\uD0C0 \uD45C\uC900\uC2DC
-Asia/Amman.generic.long=\uc544\ub77c\ube44\uc544 \ud45c\uc900\uc2dc
-Asia/Anadyr.generic.long=\uC544\uB098\uB514\uB9AC \uD45C\uC900\uC2DC
-Asia/Aqtau.generic.long=\uC544\uD06C\uD0C0\uC6B0 \uD45C\uC900\uC2DC
-Asia/Aqtobe.generic.long=\uC544\uD06C\uD1A0\uBCA0 \uD45C\uC900\uC2DC
-Asia/Ashgabat.generic.long=\uD22C\uB974\uD06C\uBA54\uB2C8\uC2A4\uD0C4 \uD45C\uC900\uC2DC
-Asia/Ashkhabad.generic.long=\uD22C\uB974\uD06C\uBA54\uB2C8\uC2A4\uD0C4 \uD45C\uC900\uC2DC
-Asia/Baghdad.generic.long=\uC544\uB77C\uBE44\uC544 \uD45C\uC900\uC2DC
-Asia/Bahrain.generic.long=\uC544\uB77C\uBE44\uC544 \uD45C\uC900\uC2DC
-Asia/Baku.generic.long=\uC544\uC81C\uB974\uBC14\uC774\uC794 \uD45C\uC900\uC2DC
-Asia/Bangkok.generic.long=\uC778\uB3C4\uCC28\uC774\uB098 \uBC18\uB3C4 \uD45C\uC900\uC2DC
-Asia/Beirut.generic.long=\uB3D9\uBD80 \uC720\uB7FD \uD45C\uC900\uC2DC
-Asia/Bishkek.generic.long=\uD0A4\uB974\uAE30\uC2A4\uC2A4\uD0C4 \uD45C\uC900\uC2DC
-Asia/Brunei.generic.long=\uBE0C\uB8E8\uB098\uC774 \uD45C\uC900\uC2DC
-Asia/Calcutta.generic.long=\uC778\uB3C4 \uD45C\uC900\uC2DC
-Asia/Choibalsan.generic.long=\uCD08\uC774\uBC1C\uC0B0 \uD45C\uC900\uC2DC
-Asia/Chongqing.generic.long=\uC911\uAD6D \uD45C\uC900\uC2DC
-Asia/Chungking.generic.long=\uC911\uAD6D \uD45C\uC900\uC2DC
-Asia/Colombo.generic.long=\uC778\uB3C4 \uD45C\uC900\uC2DC
-Asia/Dacca.generic.long=\uBC29\uAE00\uB77C\uB370\uC2DC \uD45C\uC900\uC2DC
-Asia/Damascus.generic.long=\uB3D9\uBD80 \uC720\uB7FD \uD45C\uC900\uC2DC
-Asia/Dhaka.generic.long=\uBC29\uAE00\uB77C\uB370\uC2DC \uD45C\uC900\uC2DC
-Asia/Dili.generic.long=\uB3D9\uD2F0\uBAA8\uB974 \uD45C\uC900\uC2DC
-Asia/Dubai.generic.long=\uAC78\uD504\uB9CC \uD45C\uC900\uC2DC
-Asia/Dushanbe.generic.long=\uD0C0\uC9C0\uD0A4\uC2A4\uD0C4 \uD45C\uC900\uC2DC
-Asia/Gaza.generic.long=\uB3D9\uBD80 \uC720\uB7FD \uD45C\uC900\uC2DC
-Asia/Harbin.generic.long=\uC911\uAD6D \uD45C\uC900\uC2DC
-Asia/Hebron.generic.long=\uB3D9\uBD80 \uC720\uB7FD \uD45C\uC900\uC2DC
-Asia/Ho_Chi_Minh.generic.long=\uC778\uB3C4\uCC28\uC774\uB098 \uBC18\uB3C4 \uD45C\uC900\uC2DC
-Asia/Hong_Kong.generic.long=\uD64D\uCF69 \uD45C\uC900\uC2DC
-Asia/Hovd.generic.long=\uD638\uBE0C\uB4DC \uD45C\uC900\uC2DC
-Asia/Irkutsk.generic.long=\uC774\uB974\uCFE0\uCE20\uD06C \uD45C\uC900\uC2DC
-Asia/Istanbul.generic.long=\uB3D9\uBD80 \uC720\uB7FD \uD45C\uC900\uC2DC
-Asia/Jakarta.generic.long=\uC11C\uBD80 \uC778\uB3C4\uB124\uC2DC\uC544 \uD45C\uC900\uC2DC
-Asia/Jayapura.generic.long=\uB3D9\uBD80 \uC778\uB3C4\uB124\uC2DC\uC544 \uD45C\uC900\uC2DC
-Asia/Jerusalem.generic.long=\uC544\uC2A4\uB77C\uC5D8 \uD45C\uC900\uC2DC
-Asia/Kabul.generic.long=\uC544\uD504\uAC00\uB2C8\uC2A4\uD0C4 \uD45C\uC900\uC2DC
-Asia/Kamchatka.generic.long=\uD398\uD2B8\uB85C\uD30C\uBE0C\uB85C\uD504\uC2A4\uD06C-\uCE84\uCC28\uCE20\uD0A4 \uD45C\uC900\uC2DC
-Asia/Karachi.generic.long=\uD30C\uD0A4\uC2A4\uD0C4 \uD45C\uC900\uC2DC
-Asia/Kashgar.generic.long=\uC911\uAD6D \uD45C\uC900\uC2DC
-Asia/Kathmandu.generic.long=\uB124\uD314 \uD45C\uC900\uC2DC
-Asia/Katmandu.generic.long=\uB124\uD314 \uD45C\uC900\uC2DC
-Asia/Khandyga.daylight.long=\uD55C\uB514\uAC00 \uC77C\uAD11 \uC808\uC57D \uC2DC\uAC04
-Asia/Khandyga.generic.long=\uD55C\uB514\uAC00 \uD45C\uC900\uC2DC
-Asia/Khandyga.standard.long=\uD55C\uB514\uAC00 \uD45C\uC900\uC2DC
-Asia/Kolkata.generic.long=\uC778\uB3C4 \uD45C\uC900\uC2DC
-Asia/Krasnoyarsk.generic.long=\uD06C\uB77C\uC2A4\uB178\uC57C\uB974\uC2A4\uD06C \uD45C\uC900\uC2DC
-Asia/Kuala_Lumpur.generic.long=\uB9D0\uB808\uC774\uC2DC\uC544 \uD45C\uC900\uC2DC
-Asia/Kuching.generic.long=\uB9D0\uB808\uC774\uC2DC\uC544 \uD45C\uC900\uC2DC
-Asia/Kuwait.generic.long=\uC544\uB77C\uBE44\uC544 \uD45C\uC900\uC2DC
-Asia/Macao.generic.long=\uC911\uAD6D \uD45C\uC900\uC2DC
-Asia/Macau.generic.long=\uC911\uAD6D \uD45C\uC900\uC2DC
-Asia/Magadan.generic.long=\uB9C8\uAC00\uB2E8 \uD45C\uC900\uC2DC
-Asia/Makassar.generic.long=\uC911\uBD80 \uC778\uB3C4\uB124\uC2DC\uC544 \uD45C\uC900\uC2DC
-Asia/Manila.generic.long=\uD544\uB9AC\uD540 \uD45C\uC900\uC2DC
-Asia/Muscat.generic.long=\uAC78\uD504\uB9CC \uD45C\uC900\uC2DC
-Asia/Nicosia.generic.long=\uB3D9\uBD80 \uC720\uB7FD \uD45C\uC900\uC2DC
-Asia/Novokuznetsk.generic.long=\uB178\uBCF4\uC2DC\uBE44\uB974\uC2A4\uD06C \uD45C\uC900\uC2DC
-Asia/Novosibirsk.generic.long=\uB178\uBCF4\uC2DC\uBE44\uB974\uC2A4\uD06C \uD45C\uC900\uC2DC
-Asia/Omsk.generic.long=\uC634\uC2A4\uD06C \uD45C\uC900\uC2DC
-Asia/Oral.generic.long=\uC624\uB7F4 \uD45C\uC900\uC2DC
-Asia/Phnom_Penh.generic.long=\uC778\uB3C4\uCC28\uC774\uB098 \uBC18\uB3C4 \uD45C\uC900\uC2DC
-Asia/Pontianak.generic.long=\uC11C\uBD80 \uC778\uB3C4\uB124\uC2DC\uC544 \uD45C\uC900\uC2DC
-Asia/Pyongyang.generic.long=\uB300\uD55C\uBBFC\uAD6D \uD45C\uC900\uC2DC
-Asia/Qatar.generic.long=\uC544\uB77C\uBE44\uC544 \uD45C\uC900\uC2DC
-Asia/Qyzylorda.generic.long=\uD0A4\uC9C8\uB85C\uB974\uB2E4 \uD45C\uC900\uC2DC
-Asia/Rangoon.generic.long=\uBBF8\uC580\uB9C8 \uD45C\uC900\uC2DC
-Asia/Saigon.generic.long=\uC778\uB3C4\uCC28\uC774\uB098 \uBC18\uB3C4 \uD45C\uC900\uC2DC
-Asia/Sakhalin.generic.long=\uC0AC\uD560\uB9B0 \uD45C\uC900\uC2DC
-Asia/Samarkand.generic.long=\uC6B0\uC988\uBCA0\uD0A4\uC2A4\uD0C4 \uD45C\uC900\uC2DC
-Asia/Seoul.generic.long=\uB300\uD55C\uBBFC\uAD6D \uD45C\uC900\uC2DC
-Asia/Shanghai.generic.long=\uC911\uAD6D \uD45C\uC900\uC2DC
-Asia/Singapore.generic.long=\uC2F1\uAC00\uD3EC\uB974 \uD45C\uC900\uC2DC
-Asia/Taipei.generic.long=\uC911\uAD6D \uD45C\uC900\uC2DC
-Asia/Tashkent.generic.long=\uC6B0\uC988\uBCA0\uD0A4\uC2A4\uD0C4 \uD45C\uC900\uC2DC
-Asia/Tbilisi.generic.long=\uADF8\uB8E8\uC9C0\uC57C \uD45C\uC900\uC2DC
-Asia/Tehran.generic.long=\uC774\uB780 \uD45C\uC900\uC2DC
-Asia/Tel_Aviv.generic.long=\uC544\uC2A4\uB77C\uC5D8 \uD45C\uC900\uC2DC
-Asia/Thimbu.generic.long=\uBD80\uD0C4 \uD45C\uC900\uC2DC
-Asia/Thimphu.generic.long=\uBD80\uD0C4 \uD45C\uC900\uC2DC
-Asia/Tokyo.generic.long=\uC77C\uBCF8 \uD45C\uC900\uC2DC
-Asia/Ujung_Pandang.generic.long=\uC911\uBD80 \uC778\uB3C4\uB124\uC2DC\uC544 \uD45C\uC900\uC2DC
-Asia/Ulaanbaatar.generic.long=\uC6B8\uB780\uBC14\uD1A0\uB974 \uD45C\uC900\uC2DC
-Asia/Ulan_Bator.generic.long=\uC6B8\uB780\uBC14\uD1A0\uB974 \uD45C\uC900\uC2DC
-Asia/Urumqi.generic.long=\uC911\uAD6D \uD45C\uC900\uC2DC
-Asia/Ust-Nera.daylight.long=\uC6B0\uC2A4\uD2F0\uB124\uB77C \uC77C\uAD11 \uC808\uC57D \uC2DC\uAC04
-Asia/Ust-Nera.generic.long=\uC6B0\uC2A4\uD2F0\uB124\uB77C \uD45C\uC900\uC2DC
-Asia/Ust-Nera.standard.long=\uC6B0\uC2A4\uD2F0\uB124\uB77C \uD45C\uC900\uC2DC
-Asia/Vientiane.generic.long=\uC778\uB3C4\uCC28\uC774\uB098 \uBC18\uB3C4 \uD45C\uC900\uC2DC
-Asia/Vladivostok.generic.long=\uBE14\uB77C\uB514\uBCF4\uC2A4\uD1A1 \uD45C\uC900\uC2DC
-Asia/Yakutsk.generic.long=\uC57C\uCFE0\uCE20\uD06C \uD45C\uC900\uC2DC
-Asia/Yekaterinburg.generic.long=\uC608\uCE74\uD14C\uB9B0\uBD80\uB974\uD06C \uD45C\uC900\uC2DC
-Asia/Yerevan.generic.long=\uC544\uB974\uBA54\uB2C8\uC544 \uD45C\uC900\uC2DC
-Atlantic/Azores.generic.long=\uC544\uC870\uB808\uC2A4 \uD45C\uC900\uC2DC
-Atlantic/Bermuda.generic.long=\uB300\uC11C\uC591 \uD45C\uC900\uC2DC
-Atlantic/Canary.generic.long=\uC11C\uBD80 \uC720\uB7FD \uD45C\uC900\uC2DC
-Atlantic/Cape_Verde.generic.long=\uCF00\uC774\uD504\uBCA0\uB974\uB370 \uD45C\uC900\uC2DC
-Atlantic/Faeroe.generic.long=\uC11C\uBD80 \uC720\uB7FD \uD45C\uC900\uC2DC
-Atlantic/Faroe.generic.long=\uC11C\uBD80 \uC720\uB7FD \uD45C\uC900\uC2DC
-Atlantic/Jan_Mayen.generic.long=\uC911\uC559 \uC720\uB7FD \uD45C\uC900\uC2DC
-Atlantic/Madeira.generic.long=\uC11C\uBD80 \uC720\uB7FD \uD45C\uC900\uC2DC
-Atlantic/Reykjavik.generic.long=\uADF8\uB9AC\uB2C8\uCE58 \uD45C\uC900\uC2DC
-Atlantic/South_Georgia.generic.long=\uC0AC\uC6B0\uC2A4\uC870\uC9C0\uC544 \uD45C\uC900\uC2DC
-Atlantic/St_Helena.generic.long=\uADF8\uB9AC\uB2C8\uCE58 \uD45C\uC900\uC2DC
-Atlantic/Stanley.generic.long=\uD3EC\uD074\uB79C\uB4DC \uC81C\uB3C4 \uD45C\uC900\uC2DC
-Australia/ACT.daylight.long=\uB3D9\uBD80 \uC77C\uAD11 \uC808\uC57D \uC2DC\uAC04(\uB274\uC0AC\uC6B0\uC2A4\uC6E8\uC77C\uC988)
-Australia/ACT.generic.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC(\uB274\uC0AC\uC6B0\uC2A4\uC6E8\uC77C\uC988)
-Australia/ACT.standard.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC(\uB274\uC0AC\uC6B0\uC2A4\uC6E8\uC77C\uC988)
-Australia/Adelaide.daylight.long=\uC911\uBD80 \uC77C\uAD11 \uC808\uC57D \uC2DC\uAC04(\uB0A8\uBD80 \uC624\uC2A4\uD2B8\uB808\uC77C\uB9AC\uC544)
-Australia/Adelaide.generic.long=\uC911\uBD80 \uD45C\uC900\uC2DC(\uB0A8\uBD80 \uC624\uC2A4\uD2B8\uB808\uC77C\uB9AC\uC544)
-Australia/Adelaide.standard.long=\uC911\uBD80 \uD45C\uC900\uC2DC(\uB0A8\uBD80 \uC624\uC2A4\uD2B8\uB808\uC77C\uB9AC\uC544)
-Australia/Brisbane.daylight.long=\uB3D9\uBD80 \uC77C\uAD11 \uC808\uC57D \uC2DC\uAC04(\uD038\uC990\uB79C\uB4DC)
-Australia/Brisbane.generic.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC(\uD038\uC990\uB79C\uB4DC)
-Australia/Brisbane.standard.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC(\uD038\uC990\uB79C\uB4DC)
-Australia/Broken_Hill.daylight.long=\uC911\uBD80 \uC77C\uAD11 \uC808\uC57D \uC2DC\uAC04(\uB0A8\uBD80 \uC624\uC2A4\uD2B8\uB808\uC77C\uB9AC\uC544/\uB274\uC0AC\uC6B0\uC2A4\uC6E8\uC77C\uC988)
-Australia/Broken_Hill.generic.long=\uC911\uBD80 \uD45C\uC900\uC2DC(\uB0A8\uBD80 \uC624\uC2A4\uD2B8\uB808\uC77C\uB9AC\uC544/\uB274\uC0AC\uC6B0\uC2A4\uC6E8\uC77C\uC988)
-Australia/Broken_Hill.standard.long=\uC911\uBD80 \uD45C\uC900\uC2DC(\uB0A8\uBD80 \uC624\uC2A4\uD2B8\uB808\uC77C\uB9AC\uC544/\uB274\uC0AC\uC6B0\uC2A4\uC6E8\uC77C\uC988)
-Australia/Canberra.daylight.long=\uB3D9\uBD80 \uC77C\uAD11 \uC808\uC57D \uC2DC\uAC04(\uB274\uC0AC\uC6B0\uC2A4\uC6E8\uC77C\uC988)
-Australia/Canberra.generic.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC(\uB274\uC0AC\uC6B0\uC2A4\uC6E8\uC77C\uC988)
-Australia/Canberra.standard.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC(\uB274\uC0AC\uC6B0\uC2A4\uC6E8\uC77C\uC988)
-Australia/Currie.daylight.long=\uB3D9\uBD80 \uC77C\uAD11 \uC808\uC57D \uC2DC\uAC04(\uB274\uC0AC\uC6B0\uC2A4\uC6E8\uC77C\uC988)
-Australia/Currie.generic.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC(\uB274\uC0AC\uC6B0\uC2A4\uC6E8\uC77C\uC988)
-Australia/Currie.standard.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC(\uB274\uC0AC\uC6B0\uC2A4\uC6E8\uC77C\uC988)
-Australia/Darwin.daylight.long=\uC911\uBD80 \uC77C\uAD11 \uC808\uC57D \uC2DC\uAC04(\uBD81\uBD80 \uC9C0\uC5ED)
-Australia/Darwin.generic.long=\uC911\uBD80 \uD45C\uC900\uC2DC(\uBD81\uBD80 \uC9C0\uC5ED)
-Australia/Darwin.standard.long=\uC911\uBD80 \uD45C\uC900\uC2DC(\uBD81\uBD80 \uC9C0\uC5ED)
-Australia/Eucla.daylight.long=\uC911\uC559 \uC11C\uBD80 \uC77C\uAD11 \uC808\uC57D \uC2DC\uAC04(\uC624\uC2A4\uD2B8\uB808\uC77C\uB9AC\uC544)
-Australia/Eucla.generic.long=\uC911\uC559 \uC11C\uBD80 \uD45C\uC900\uC2DC(\uC624\uC2A4\uD2B8\uB808\uC77C\uB9AC\uC544)
-Australia/Eucla.standard.long=\uC911\uC559 \uC11C\uBD80 \uD45C\uC900\uC2DC(\uC624\uC2A4\uD2B8\uB808\uC77C\uB9AC\uC544)
-Australia/Hobart.daylight.long=\uB3D9\uBD80 \uC77C\uAD11 \uC808\uC57D \uC2DC\uAC04(\uD0DC\uC988\uBA54\uC774\uB2C8\uC544)
-Australia/Hobart.generic.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC(\uD0DC\uC988\uBA54\uC774\uB2C8\uC544)
-Australia/Hobart.standard.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC(\uD0DC\uC988\uBA54\uC774\uB2C8\uC544)
-Australia/LHI.generic.long=\uB85C\uB4DC\uD558\uC6B0 \uD45C\uC900\uC2DC
-Australia/Lindeman.daylight.long=\uB3D9\uBD80 \uC77C\uAD11 \uC808\uC57D \uC2DC\uAC04(\uD038\uC990\uB79C\uB4DC)
-Australia/Lindeman.generic.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC(\uD038\uC990\uB79C\uB4DC)
-Australia/Lindeman.standard.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC(\uD038\uC990\uB79C\uB4DC)
-Australia/Lord_Howe.generic.long=\uB85C\uB4DC\uD558\uC6B0 \uD45C\uC900\uC2DC
-Australia/Melbourne.daylight.long=\uB3D9\uBD80 \uC77C\uAD11 \uC808\uC57D \uC2DC\uAC04(\uBE45\uD1A0\uB9AC\uC544)
-Australia/Melbourne.generic.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC(\uBE45\uD1A0\uB9AC\uC544)
-Australia/Melbourne.standard.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC(\uBE45\uD1A0\uB9AC\uC544)
-Australia/NSW.daylight.long=\uB3D9\uBD80 \uC77C\uAD11 \uC808\uC57D \uC2DC\uAC04(\uB274\uC0AC\uC6B0\uC2A4\uC6E8\uC77C\uC988)
-Australia/NSW.generic.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC(\uB274\uC0AC\uC6B0\uC2A4\uC6E8\uC77C\uC988)
-Australia/NSW.standard.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC(\uB274\uC0AC\uC6B0\uC2A4\uC6E8\uC77C\uC988)
-Australia/North.daylight.long=\uC911\uBD80 \uC77C\uAD11 \uC808\uC57D \uC2DC\uAC04(\uBD81\uBD80 \uC9C0\uC5ED)
-Australia/North.generic.long=\uC911\uBD80 \uD45C\uC900\uC2DC(\uBD81\uBD80 \uC9C0\uC5ED)
-Australia/North.standard.long=\uC911\uBD80 \uD45C\uC900\uC2DC(\uBD81\uBD80 \uC9C0\uC5ED)
-Australia/Perth.daylight.long=\uC11C\uBD80 \uC77C\uAD11 \uC808\uC57D \uC2DC\uAC04(\uC624\uC2A4\uD2B8\uB808\uC77C\uB9AC\uC544)
-Australia/Perth.generic.long=\uC11C\uBD80 \uD45C\uC900\uC2DC(\uC624\uC2A4\uD2B8\uB808\uC77C\uB9AC\uC544)
-Australia/Perth.standard.long=\uC11C\uBD80 \uD45C\uC900\uC2DC(\uC624\uC2A4\uD2B8\uB808\uC77C\uB9AC\uC544)
-Australia/Queensland.daylight.long=\uB3D9\uBD80 \uC77C\uAD11 \uC808\uC57D \uC2DC\uAC04(\uD038\uC990\uB79C\uB4DC)
-Australia/Queensland.generic.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC(\uD038\uC990\uB79C\uB4DC)
-Australia/Queensland.standard.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC(\uD038\uC990\uB79C\uB4DC)
-Australia/South.daylight.long=\uC911\uBD80 \uC77C\uAD11 \uC808\uC57D \uC2DC\uAC04(\uB0A8\uBD80 \uC624\uC2A4\uD2B8\uB808\uC77C\uB9AC\uC544)
-Australia/South.generic.long=\uC911\uBD80 \uD45C\uC900\uC2DC(\uB0A8\uBD80 \uC624\uC2A4\uD2B8\uB808\uC77C\uB9AC\uC544)
-Australia/South.standard.long=\uC911\uBD80 \uD45C\uC900\uC2DC(\uB0A8\uBD80 \uC624\uC2A4\uD2B8\uB808\uC77C\uB9AC\uC544)
-Australia/Sydney.daylight.long=\uB3D9\uBD80 \uC77C\uAD11 \uC808\uC57D \uC2DC\uAC04(\uB274\uC0AC\uC6B0\uC2A4\uC6E8\uC77C\uC988)
-Australia/Sydney.generic.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC(\uB274\uC0AC\uC6B0\uC2A4\uC6E8\uC77C\uC988)
-Australia/Sydney.standard.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC(\uB274\uC0AC\uC6B0\uC2A4\uC6E8\uC77C\uC988)
-Australia/Tasmania.daylight.long=\uB3D9\uBD80 \uC77C\uAD11 \uC808\uC57D \uC2DC\uAC04(\uD0DC\uC988\uBA54\uC774\uB2C8\uC544)
-Australia/Tasmania.generic.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC(\uD0DC\uC988\uBA54\uC774\uB2C8\uC544)
-Australia/Tasmania.standard.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC(\uD0DC\uC988\uBA54\uC774\uB2C8\uC544)
-Australia/Victoria.daylight.long=\uB3D9\uBD80 \uC77C\uAD11 \uC808\uC57D \uC2DC\uAC04(\uBE45\uD1A0\uB9AC\uC544)
-Australia/Victoria.generic.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC(\uBE45\uD1A0\uB9AC\uC544)
-Australia/Victoria.standard.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC(\uBE45\uD1A0\uB9AC\uC544)
-Australia/West.daylight.long=\uC11C\uBD80 \uC77C\uAD11 \uC808\uC57D \uC2DC\uAC04(\uC624\uC2A4\uD2B8\uB808\uC77C\uB9AC\uC544)
-Australia/West.generic.long=\uC11C\uBD80 \uD45C\uC900\uC2DC(\uC624\uC2A4\uD2B8\uB808\uC77C\uB9AC\uC544)
-Australia/West.standard.long=\uC11C\uBD80 \uD45C\uC900\uC2DC(\uC624\uC2A4\uD2B8\uB808\uC77C\uB9AC\uC544)
-Australia/Yancowinna.daylight.long=\uC911\uBD80 \uC77C\uAD11 \uC808\uC57D \uC2DC\uAC04(\uB0A8\uBD80 \uC624\uC2A4\uD2B8\uB808\uC77C\uB9AC\uC544/\uB274\uC0AC\uC6B0\uC2A4\uC6E8\uC77C\uC988)
-Australia/Yancowinna.generic.long=\uC911\uBD80 \uD45C\uC900\uC2DC(\uB0A8\uBD80 \uC624\uC2A4\uD2B8\uB808\uC77C\uB9AC\uC544/\uB274\uC0AC\uC6B0\uC2A4\uC6E8\uC77C\uC988)
-Australia/Yancowinna.standard.long=\uC911\uBD80 \uD45C\uC900\uC2DC(\uB0A8\uBD80 \uC624\uC2A4\uD2B8\uB808\uC77C\uB9AC\uC544/\uB274\uC0AC\uC6B0\uC2A4\uC6E8\uC77C\uC988)
-BET.generic.long=\uBE0C\uB77C\uC9C8\uB9AC\uC544 \uD45C\uC900\uC2DC
-BST.generic.long=\uBC29\uAE00\uB77C\uB370\uC2DC \uD45C\uC900\uC2DC
-Brazil/Acre.generic.long=\uc5d0\uc774\ucee4 \uc2dc\uac04
-Brazil/DeNoronha.generic.long=\uD398\uB974\uB09C\uB3C4 \uB4DC \uB178\uB85C\uD558 \uD45C\uC900\uC2DC
-Brazil/East.generic.long=\uBE0C\uB77C\uC9C8\uB9AC\uC544 \uD45C\uC900\uC2DC
-Brazil/West.generic.long=\uC544\uB9C8\uC874 \uD45C\uC900\uC2DC
-CAT.generic.long=\uC911\uC559 \uC544\uD504\uB9AC\uCE74 \uD45C\uC900\uC2DC
-CET.generic.long=\uc911\uc559 \uc720\ub7fd \ud45c\uc900\uc2dc
-CNT.generic.long=\uB274\uD380\uB4E4\uB79C\uB4DC \uD45C\uC900\uC2DC
-CST.generic.long=\uC911\uBD80 \uD45C\uC900\uC2DC
-CST6CDT.generic.long=\uc911\ubd80 \ud45c\uc900\uc2dc
-CTT.generic.long=\uC911\uAD6D \uD45C\uC900\uC2DC
-Canada/Atlantic.generic.long=\uB300\uC11C\uC591 \uD45C\uC900\uC2DC
-Canada/Central.generic.long=\uC911\uBD80 \uD45C\uC900\uC2DC
-Canada/East-Saskatchewan.generic.long=\uC911\uBD80 \uD45C\uC900\uC2DC
-Canada/Eastern.generic.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC
-Canada/Mountain.generic.long=\uC0B0\uC9C0 \uD45C\uC900\uC2DC
-Canada/Newfoundland.generic.long=\uB274\uD380\uB4E4\uB79C\uB4DC \uD45C\uC900\uC2DC
-Canada/Pacific.generic.long=\uD0DC\uD3C9\uC591 \uD45C\uC900\uC2DC
-Canada/Saskatchewan.generic.long=\uC911\uBD80 \uD45C\uC900\uC2DC
-Canada/Yukon.generic.long=\uD0DC\uD3C9\uC591 \uD45C\uC900\uC2DC
-Chile/Continental.generic.long=\uCE60\uB808 \uD45C\uC900\uC2DC
-Chile/EasterIsland.generic.long=\uC774\uC2A4\uD130 \uC12C \uD45C\uC900\uC2DC
-Cuba.generic.long=\uCFE0\uBC14 \uD45C\uC900\uC2DC
-EAT.generic.long=\uB3D9\uBD80 \uC544\uD504\uB9AC\uCE74 \uD45C\uC900\uC2DC
-ECT.generic.long=\uC911\uC559 \uC720\uB7FD \uD45C\uC900\uC2DC
-EET.generic.long=\ub3d9\ubd80 \uc720\ub7fd \ud45c\uc900\uc2dc
-EST.generic.long=\ub3d9\ubd80 \ud45c\uc900\uc2dc
-EST5EDT.generic.long=\ub3d9\ubd80 \ud45c\uc900\uc2dc
-Egypt.generic.long=\uB3D9\uBD80 \uC720\uB7FD \uD45C\uC900\uC2DC
-Eire.generic.long=\uC544\uC77C\uB79C\uB4DC \uD45C\uC900\uC2DC
-Etc/Greenwich.generic.long=\uADF8\uB9AC\uB2C8\uCE58 \uD45C\uC900\uC2DC
-Etc/UCT.generic.long=\uC9C0\uC5ED \uD45C\uC900\uC2DC
-Etc/UTC.generic.long=\uC9C0\uC5ED \uD45C\uC900\uC2DC
-Etc/Universal.generic.long=\uC9C0\uC5ED \uD45C\uC900\uC2DC
-Etc/Zulu.generic.long=\uC9C0\uC5ED \uD45C\uC900\uC2DC
-Europe/Amsterdam.generic.long=\uC911\uC559 \uC720\uB7FD \uD45C\uC900\uC2DC
-Europe/Andorra.generic.long=\uC911\uC559 \uC720\uB7FD \uD45C\uC900\uC2DC
-Europe/Athens.generic.long=\uB3D9\uBD80 \uC720\uB7FD \uD45C\uC900\uC2DC
-Europe/Belfast.generic.long=\uC601\uAD6D \uD45C\uC900\uC2DC
-Europe/Belgrade.generic.long=\uC911\uC559 \uC720\uB7FD \uD45C\uC900\uC2DC
-Europe/Berlin.generic.long=\uC911\uC559 \uC720\uB7FD \uD45C\uC900\uC2DC
-Europe/Bratislava.generic.long=\uC911\uC559 \uC720\uB7FD \uD45C\uC900\uC2DC
-Europe/Brussels.generic.long=\uC911\uC559 \uC720\uB7FD \uD45C\uC900\uC2DC
-Europe/Bucharest.generic.long=\uB3D9\uBD80 \uC720\uB7FD \uD45C\uC900\uC2DC
-Europe/Budapest.generic.long=\uC911\uC559 \uC720\uB7FD \uD45C\uC900\uC2DC
-Europe/Busingen.generic.long=\uC911\uC559 \uC720\uB7FD \uD45C\uC900\uC2DC
-Europe/Chisinau.generic.long=\uB3D9\uBD80 \uC720\uB7FD \uD45C\uC900\uC2DC
-Europe/Copenhagen.generic.long=\uC911\uC559 \uC720\uB7FD \uD45C\uC900\uC2DC
-Europe/Dublin.generic.long=\uC544\uC77C\uB79C\uB4DC \uD45C\uC900\uC2DC
-Europe/Gibraltar.generic.long=\uC911\uC559 \uC720\uB7FD \uD45C\uC900\uC2DC
-Europe/Guernsey.generic.long=\uC601\uAD6D \uD45C\uC900\uC2DC
-Europe/Helsinki.generic.long=\uB3D9\uBD80 \uC720\uB7FD \uD45C\uC900\uC2DC
-Europe/Isle_of_Man.generic.long=\uC601\uAD6D \uD45C\uC900\uC2DC
-Europe/Istanbul.generic.long=\uB3D9\uBD80 \uC720\uB7FD \uD45C\uC900\uC2DC
-Europe/Jersey.generic.long=\uC601\uAD6D \uD45C\uC900\uC2DC
-Europe/Kaliningrad.daylight.long=\uADF9\uB3D9 \uC720\uB7FD \uC77C\uAD11 \uC808\uC57D \uC2DC\uAC04
-Europe/Kaliningrad.generic.long=\uADF9\uB3D9 \uC720\uB7FD \uD45C\uC900\uC2DC
-Europe/Kaliningrad.standard.long=\uADF9\uB3D9 \uC720\uB7FD \uD45C\uC900\uC2DC
-Europe/Kiev.generic.long=\uB3D9\uBD80 \uC720\uB7FD \uD45C\uC900\uC2DC
-Europe/Lisbon.generic.long=\uC11C\uBD80 \uC720\uB7FD \uD45C\uC900\uC2DC
-Europe/Ljubljana.generic.long=\uC911\uC559 \uC720\uB7FD \uD45C\uC900\uC2DC
-Europe/London.generic.long=\uC601\uAD6D \uD45C\uC900\uC2DC
-Europe/Luxembourg.generic.long=\uC911\uC559 \uC720\uB7FD \uD45C\uC900\uC2DC
-Europe/Madrid.generic.long=\uC911\uC559 \uC720\uB7FD \uD45C\uC900\uC2DC
-Europe/Malta.generic.long=\uC911\uC559 \uC720\uB7FD \uD45C\uC900\uC2DC
-Europe/Mariehamn.generic.long=\uB3D9\uBD80 \uC720\uB7FD \uD45C\uC900\uC2DC
-Europe/Minsk.daylight.long=\uADF9\uB3D9 \uC720\uB7FD \uC77C\uAD11 \uC808\uC57D \uC2DC\uAC04
-Europe/Minsk.generic.long=\uADF9\uB3D9 \uC720\uB7FD \uD45C\uC900\uC2DC
-Europe/Minsk.standard.long=\uADF9\uB3D9 \uC720\uB7FD \uD45C\uC900\uC2DC
-Europe/Monaco.generic.long=\uC911\uC559 \uC720\uB7FD \uD45C\uC900\uC2DC
-Europe/Moscow.generic.long=\uBAA8\uC2A4\uD06C\uBC14 \uD45C\uC900\uC2DC
-Europe/Nicosia.generic.long=\uB3D9\uBD80 \uC720\uB7FD \uD45C\uC900\uC2DC
-Europe/Oslo.generic.long=\uC911\uC559 \uC720\uB7FD \uD45C\uC900\uC2DC
-Europe/Paris.generic.long=\uC911\uC559 \uC720\uB7FD \uD45C\uC900\uC2DC
-Europe/Podgorica.generic.long=\uC911\uC559 \uC720\uB7FD \uD45C\uC900\uC2DC
-Europe/Prague.generic.long=\uC911\uC559 \uC720\uB7FD \uD45C\uC900\uC2DC
-Europe/Riga.generic.long=\uB3D9\uBD80 \uC720\uB7FD \uD45C\uC900\uC2DC
-Europe/Rome.generic.long=\uC911\uC559 \uC720\uB7FD \uD45C\uC900\uC2DC
-Europe/Samara.generic.long=\uC0AC\uB9C8\uB77C \uD45C\uC900\uC2DC
-Europe/San_Marino.generic.long=\uC911\uC559 \uC720\uB7FD \uD45C\uC900\uC2DC
-Europe/Sarajevo.generic.long=\uC911\uC559 \uC720\uB7FD \uD45C\uC900\uC2DC
-Europe/Simferopol.generic.long=\uB3D9\uBD80 \uC720\uB7FD \uD45C\uC900\uC2DC
-Europe/Skopje.generic.long=\uC911\uC559 \uC720\uB7FD \uD45C\uC900\uC2DC
-Europe/Sofia.generic.long=\uB3D9\uBD80 \uC720\uB7FD \uD45C\uC900\uC2DC
-Europe/Stockholm.generic.long=\uC911\uC559 \uC720\uB7FD \uD45C\uC900\uC2DC
-Europe/Tallinn.generic.long=\uB3D9\uBD80 \uC720\uB7FD \uD45C\uC900\uC2DC
-Europe/Tirane.generic.long=\uC911\uC559 \uC720\uB7FD \uD45C\uC900\uC2DC
-Europe/Tiraspol.generic.long=\uB3D9\uBD80 \uC720\uB7FD \uD45C\uC900\uC2DC
-Europe/Uzhgorod.generic.long=\uB3D9\uBD80 \uC720\uB7FD \uD45C\uC900\uC2DC
-Europe/Vaduz.generic.long=\uC911\uC559 \uC720\uB7FD \uD45C\uC900\uC2DC
-Europe/Vatican.generic.long=\uC911\uC559 \uC720\uB7FD \uD45C\uC900\uC2DC
-Europe/Vienna.generic.long=\uC911\uC559 \uC720\uB7FD \uD45C\uC900\uC2DC
-Europe/Vilnius.generic.long=\uB3D9\uBD80 \uC720\uB7FD \uD45C\uC900\uC2DC
-Europe/Volgograd.generic.long=\uBCFC\uACE0\uADF8\uB77C\uB4DC \uD45C\uC900\uC2DC
-Europe/Warsaw.generic.long=\uC911\uC559 \uC720\uB7FD \uD45C\uC900\uC2DC
-Europe/Zagreb.generic.long=\uC911\uC559 \uC720\uB7FD \uD45C\uC900\uC2DC
-Europe/Zaporozhye.generic.long=\uB3D9\uBD80 \uC720\uB7FD \uD45C\uC900\uC2DC
-Europe/Zurich.generic.long=\uC911\uC559 \uC720\uB7FD \uD45C\uC900\uC2DC
-GB-Eire.generic.long=\uC601\uAD6D \uD45C\uC900\uC2DC
-GB.generic.long=\uC601\uAD6D \uD45C\uC900\uC2DC
-GMT.generic.long=\uADF8\uB9AC\uB2C8\uCE58 \uD45C\uC900\uC2DC
-Greenwich.generic.long=\uADF8\uB9AC\uB2C8\uCE58 \uD45C\uC900\uC2DC
-HST.generic.long=\ud558\uc640\uc774 \ud45c\uc900\uc2dc
-Hongkong.generic.long=\uD64D\uCF69 \uD45C\uC900\uC2DC
-IET.generic.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC
-IST.generic.long=\uC778\uB3C4 \uD45C\uC900\uC2DC
-Iceland.generic.long=\uADF8\uB9AC\uB2C8\uCE58 \uD45C\uC900\uC2DC
-Indian/Antananarivo.generic.long=\uB3D9\uBD80 \uC544\uD504\uB9AC\uCE74 \uD45C\uC900\uC2DC
-Indian/Chagos.generic.long=\uC778\uB3C4\uC591 \uC2DD\uBBFC\uC9C0 \uD45C\uC900\uC2DC
-Indian/Christmas.generic.long=\uD06C\uB9AC\uC2A4\uB9C8\uC2A4 \uC12C \uD45C\uC900\uC2DC
-Indian/Cocos.generic.long=\uCF54\uCF54\uC2A4 \uC81C\uB3C4 \uD45C\uC900\uC2DC
-Indian/Comoro.generic.long=\uB3D9\uBD80 \uC544\uD504\uB9AC\uCE74 \uD45C\uC900\uC2DC
-Indian/Kerguelen.generic.long=\uD504\uB791\uC2A4\uB839 \uB0A8\uBD80 \uBC0F \uB0A8\uADF9 \uB300\uB959 \uD45C\uC900\uC2DC
-Indian/Mahe.generic.long=\uC138\uC774\uC178 \uD45C\uC900\uC2DC
-Indian/Maldives.generic.long=\uBAB0\uB514\uBE0C \uD45C\uC900\uC2DC
-Indian/Mauritius.generic.long=\uBAA8\uB9AC\uC154\uC2A4 \uD45C\uC900\uC2DC
-Indian/Mayotte.generic.long=\uB3D9\uBD80 \uC544\uD504\uB9AC\uCE74 \uD45C\uC900\uC2DC
-Indian/Reunion.generic.long=\uB808\uC704\uB2C8\uC639 \uD45C\uC900\uC2DC
-Iran.generic.long=\uC774\uB780 \uD45C\uC900\uC2DC
-Israel.generic.long=\uC544\uC2A4\uB77C\uC5D8 \uD45C\uC900\uC2DC
-JST.generic.long=\uC77C\uBCF8 \uD45C\uC900\uC2DC
-Jamaica.generic.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC
-Japan.generic.long=\uC77C\uBCF8 \uD45C\uC900\uC2DC
-Kwajalein.generic.long=\uB9C8\uC15C \uC81C\uB3C4 \uD45C\uC900\uC2DC
-Libya.generic.long=\ub3d9\ubd80 \uc720\ub7fd \ud45c\uc900\uc2dc
-MET.generic.long=MET
-MIT.generic.long=\uC11C\uC0AC\uBAA8\uC544 \uD45C\uC900\uC2DC
-MST.generic.long=\uc0b0\uc9c0 \ud45c\uc900\uc2dc
-MST7MDT.generic.long=\uc0b0\uc9c0 \ud45c\uc900\uc2dc
-Mexico/BajaNorte.generic.long=\uD0DC\uD3C9\uC591 \uD45C\uC900\uC2DC
-Mexico/BajaSur.generic.long=\uC0B0\uC9C0 \uD45C\uC900\uC2DC
-Mexico/General.generic.long=\uC911\uBD80 \uD45C\uC900\uC2DC
-NET.generic.long=\uC544\uB974\uBA54\uB2C8\uC544 \uD45C\uC900\uC2DC
-NST.generic.long=\uB274\uC9C8\uB79C\uB4DC \uD45C\uC900\uC2DC
-NZ-CHAT.generic.long=\uCC44\uD140 \uD45C\uC900\uC2DC
-NZ.generic.long=\uB274\uC9C8\uB79C\uB4DC \uD45C\uC900\uC2DC
-Navajo.generic.long=\uC0B0\uC9C0 \uD45C\uC900\uC2DC
-PLT.generic.long=\uD30C\uD0A4\uC2A4\uD0C4 \uD45C\uC900\uC2DC
-PNT.generic.long=\uC0B0\uC9C0 \uD45C\uC900\uC2DC
-PRC.generic.long=\uC911\uAD6D \uD45C\uC900\uC2DC
-PRT.generic.long=\uB300\uC11C\uC591 \uD45C\uC900\uC2DC
-PST.generic.long=\uD0DC\uD3C9\uC591 \uD45C\uC900\uC2DC
-PST8PDT.generic.long=\ud0dc\ud3c9\uc591 \ud45c\uc900\uc2dc
-Pacific/Apia.generic.long=\uC11C\uC0AC\uBAA8\uC544 \uD45C\uC900\uC2DC
-Pacific/Auckland.generic.long=\uB274\uC9C8\uB79C\uB4DC \uD45C\uC900\uC2DC
-Pacific/Chatham.generic.long=\uCC44\uD140 \uD45C\uC900\uC2DC
-Pacific/Chuuk.daylight.long=\uCD94\uD06C \uC77C\uAD11 \uC808\uC57D \uC2DC\uAC04
-Pacific/Chuuk.generic.long=\uCD94\uD06C \uD45C\uC900\uC2DC
-Pacific/Chuuk.standard.long=\uCD94\uD06C \uD45C\uC900\uC2DC
-Pacific/Easter.generic.long=\uC774\uC2A4\uD130 \uC12C \uD45C\uC900\uC2DC
-Pacific/Efate.generic.long=\uBC14\uB204\uC544\uD22C \uD45C\uC900\uC2DC
-Pacific/Enderbury.generic.long=\uD53C\uB2C9\uC2A4 \uC81C\uB3C4 \uD45C\uC900\uC2DC
-Pacific/Fakaofo.generic.long=\uD1A0\uCF08\uB77C\uC6B0 \uD45C\uC900\uC2DC
-Pacific/Fiji.generic.long=\uD53C\uC9C0 \uD45C\uC900\uC2DC
-Pacific/Funafuti.generic.long=\uD22C\uBC1C\uB8E8 \uD45C\uC900\uC2DC
-Pacific/Galapagos.generic.long=\uAC08\uB77C\uD30C\uACE0\uC2A4 \uD45C\uC900\uC2DC
-Pacific/Gambier.generic.long=\uC7A0\uBE44\uC544 \uD45C\uC900\uC2DC
-Pacific/Guadalcanal.generic.long=\uC194\uB85C\uBAAC \uC81C\uB3C4 \uD45C\uC900\uC2DC
-Pacific/Guam.generic.long=\uCC28\uBAA8\uB974 \uD45C\uC900\uC2DC
-Pacific/Honolulu.generic.long=\uD558\uC640\uC774 \uD45C\uC900\uC2DC
-Pacific/Johnston.generic.long=\uD558\uC640\uC774 \uD45C\uC900\uC2DC
-Pacific/Kiritimati.generic.long=\uB77C\uC778 \uC81C\uB3C4 \uD45C\uC900\uC2DC
-Pacific/Kosrae.generic.long=\uCF54\uC2A4\uB808 \uD45C\uC900\uC2DC
-Pacific/Kwajalein.generic.long=\uB9C8\uC15C \uC81C\uB3C4 \uD45C\uC900\uC2DC
-Pacific/Majuro.generic.long=\uB9C8\uC15C \uC81C\uB3C4 \uD45C\uC900\uC2DC
-Pacific/Marquesas.generic.long=\uB9C8\uD0A4\uC800\uC2A4 \uD45C\uC900\uC2DC
-Pacific/Midway.generic.long=\uC0AC\uBAA8\uC544 \uD45C\uC900\uC2DC
-Pacific/Nauru.generic.long=\uB098\uC6B0\uB8E8 \uD45C\uC900\uC2DC
-Pacific/Niue.generic.long=\uB2C8\uC6B0\uC5D0 \uD45C\uC900\uC2DC
-Pacific/Norfolk.generic.long=\uB178\uD37D \uD45C\uC900\uC2DC
-Pacific/Noumea.generic.long=\uB274 \uCE7C\uB808\uB3C4\uB2C8\uC544 \uD45C\uC900\uC2DC
-Pacific/Pago_Pago.generic.long=\uC0AC\uBAA8\uC544 \uD45C\uC900\uC2DC
-Pacific/Palau.generic.long=\uD314\uB77C\uC6B0 \uD45C\uC900\uC2DC
-Pacific/Pitcairn.generic.long=\uD54F\uCF00\uC5B8 \uD45C\uC900\uC2DC
-Pacific/Pohnpei.daylight.long=\uD3F0\uD398\uC774 \uC77C\uAD11 \uC808\uC57D \uC2DC\uAC04
-Pacific/Pohnpei.generic.long=\uD3EC\uB098\uD398 \uD45C\uC900\uC2DC
-Pacific/Pohnpei.standard.long=\uD3F0\uD398\uC774 \uD45C\uC900\uC2DC
-Pacific/Ponape.daylight.long=\uD3F0\uD398\uC774 \uC77C\uAD11 \uC808\uC57D \uC2DC\uAC04
-Pacific/Ponape.generic.long=\uD3EC\uB098\uD398 \uD45C\uC900\uC2DC
-Pacific/Ponape.standard.long=\uD3F0\uD398\uC774 \uD45C\uC900\uC2DC
-Pacific/Port_Moresby.generic.long=\uD30C\uD478\uC544 \uB274\uAE30\uB2C8\uC544 \uD45C\uC900\uC2DC
-Pacific/Rarotonga.generic.long=\uCFE1 \uC81C\uB3C4 \uD45C\uC900\uC2DC
-Pacific/Saipan.generic.long=\uCC28\uBAA8\uB974 \uD45C\uC900\uC2DC
-Pacific/Samoa.generic.long=\uC0AC\uBAA8\uC544 \uD45C\uC900\uC2DC
-Pacific/Tahiti.generic.long=\uD0C0\uD788\uD2F0 \uD45C\uC900\uC2DC
-Pacific/Tarawa.generic.long=\uAE38\uBC84\uD2B8 \uC81C\uB3C4 \uD45C\uC900\uC2DC
-Pacific/Tongatapu.generic.long=\uD1B5\uAC00 \uD45C\uC900\uC2DC
-Pacific/Truk.daylight.long=\uCD94\uD06C \uC77C\uAD11 \uC808\uC57D \uC2DC\uAC04
-Pacific/Truk.generic.long=\uCD94\uD06C \uD45C\uC900\uC2DC
-Pacific/Truk.standard.long=\uCD94\uD06C \uD45C\uC900\uC2DC
-Pacific/Wake.generic.long=\uC6E8\uC774\uD06C \uD45C\uC900\uC2DC
-Pacific/Wallis.generic.long=\uC6D4\uB9AC\uC2A4 \uD478\uD22C\uB098 \uD45C\uC900\uC2DC
-Pacific/Yap.daylight.long=\uCD94\uD06C \uC77C\uAD11 \uC808\uC57D \uC2DC\uAC04
-Pacific/Yap.generic.long=\uCD94\uD06C \uD45C\uC900\uC2DC
-Pacific/Yap.standard.long=\uCD94\uD06C \uD45C\uC900\uC2DC
-Poland.generic.long=\uC911\uC559 \uC720\uB7FD \uD45C\uC900\uC2DC
-Portugal.generic.long=\uC11C\uBD80 \uC720\uB7FD \uD45C\uC900\uC2DC
-ROK.generic.long=\uB300\uD55C\uBBFC\uAD6D \uD45C\uC900\uC2DC
-SST.generic.long=\uC194\uB85C\uBAAC \uC81C\uB3C4 \uD45C\uC900\uC2DC
-Singapore.generic.long=\uC2F1\uAC00\uD3EC\uB974 \uD45C\uC900\uC2DC
-SystemV/AST4.generic.long=\uB300\uC11C\uC591 \uD45C\uC900\uC2DC
-SystemV/AST4ADT.generic.long=\uB300\uC11C\uC591 \uD45C\uC900\uC2DC
-SystemV/CST6.generic.long=\uC911\uBD80 \uD45C\uC900\uC2DC
-SystemV/CST6CDT.generic.long=\uC911\uBD80 \uD45C\uC900\uC2DC
-SystemV/EST5.generic.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC
-SystemV/EST5EDT.generic.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC
-SystemV/HST10.generic.long=\uD558\uC640\uC774 \uD45C\uC900\uC2DC
-SystemV/MST7.generic.long=\uC0B0\uC9C0 \uD45C\uC900\uC2DC
-SystemV/MST7MDT.generic.long=\uC0B0\uC9C0 \uD45C\uC900\uC2DC
-SystemV/PST8.generic.long=\uD0DC\uD3C9\uC591 \uD45C\uC900\uC2DC
-SystemV/PST8PDT.generic.long=\uD0DC\uD3C9\uC591 \uD45C\uC900\uC2DC
-SystemV/YST9.generic.long=\uC54C\uB798\uC2A4\uCE74 \uD45C\uC900\uC2DC
-SystemV/YST9YDT.generic.long=\uC54C\uB798\uC2A4\uCE74 \uD45C\uC900\uC2DC
-Turkey.generic.long=\uB3D9\uBD80 \uC720\uB7FD \uD45C\uC900\uC2DC
-UCT.generic.long=\uC9C0\uC5ED \uD45C\uC900\uC2DC
-US/Alaska.generic.long=\uC54C\uB798\uC2A4\uCE74 \uD45C\uC900\uC2DC
-US/Aleutian.generic.long=\uD558\uC640\uC774-\uC54C\uB8E8\uC0E8 \uD45C\uC900\uC2DC
-US/Arizona.generic.long=\uC0B0\uC9C0 \uD45C\uC900\uC2DC
-US/Central.generic.long=\uC911\uBD80 \uD45C\uC900\uC2DC
-US/East-Indiana.generic.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC
-US/Eastern.generic.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC
-US/Hawaii.generic.long=\uD558\uC640\uC774 \uD45C\uC900\uC2DC
-US/Indiana-Starke.generic.long=\uC911\uBD80 \uD45C\uC900\uC2DC
-US/Michigan.generic.long=\uB3D9\uBD80 \uD45C\uC900\uC2DC
-US/Mountain.generic.long=\uC0B0\uC9C0 \uD45C\uC900\uC2DC
-US/Pacific-New.generic.long=\uD0DC\uD3C9\uC591 \uD45C\uC900\uC2DC
-US/Pacific.generic.long=\uD0DC\uD3C9\uC591 \uD45C\uC900\uC2DC
-US/Samoa.generic.long=\uC0AC\uBAA8\uC544 \uD45C\uC900\uC2DC
-UTC.generic.long=\uC9C0\uC5ED \uD45C\uC900\uC2DC
-Universal.generic.long=\uC9C0\uC5ED \uD45C\uC900\uC2DC
-VST.generic.long=\uC778\uB3C4\uCC28\uC774\uB098 \uBC18\uB3C4 \uD45C\uC900\uC2DC
-W-SU.generic.long=\uBAA8\uC2A4\uD06C\uBC14 \uD45C\uC900\uC2DC
-WET.generic.long=\uc11c\ubd80 \uc720\ub7fd \ud45c\uc900\uc2dc
-Zulu.generic.long=\uC9C0\uC5ED \uD45C\uC900\uC2DC
diff --git a/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_ko_short.properties b/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_ko_short.properties
deleted file mode 100644
index 095522a68d1..00000000000
--- a/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_ko_short.properties
+++ /dev/null
@@ -1,1743 +0,0 @@
-ACT.daylight.short=CST
-ACT.generic.short=CT
-ACT.standard.short=CST
-AET.daylight.short=EST
-AET.generic.short=ET
-AET.standard.short=EST
-Africa/Abidjan.daylight.short=GMT
-Africa/Abidjan.generic.short=GMT
-Africa/Abidjan.standard.short=GMT
-Africa/Accra.daylight.short=GHST
-Africa/Accra.generic.short=GMT
-Africa/Accra.standard.short=GMT
-Africa/Addis_Ababa.daylight.short=EAST
-Africa/Addis_Ababa.generic.short=EAT
-Africa/Addis_Ababa.standard.short=EAT
-Africa/Algiers.daylight.short=CEST
-Africa/Algiers.generic.short=CET
-Africa/Algiers.standard.short=CET
-Africa/Asmara.daylight.short=EAST
-Africa/Asmara.generic.short=EAT
-Africa/Asmara.standard.short=EAT
-Africa/Asmera.daylight.short=EAST
-Africa/Asmera.generic.short=EAT
-Africa/Asmera.standard.short=EAT
-Africa/Bamako.daylight.short=GMT
-Africa/Bamako.generic.short=GMT
-Africa/Bamako.standard.short=GMT
-Africa/Bangui.daylight.short=WAST
-Africa/Bangui.generic.short=WAT
-Africa/Bangui.standard.short=WAT
-Africa/Banjul.daylight.short=GMT
-Africa/Banjul.generic.short=GMT
-Africa/Banjul.standard.short=GMT
-Africa/Bissau.daylight.short=GMT
-Africa/Bissau.generic.short=GMT
-Africa/Bissau.standard.short=GMT
-Africa/Blantyre.daylight.short=CAST
-Africa/Blantyre.generic.short=CAT
-Africa/Blantyre.standard.short=CAT
-Africa/Brazzaville.daylight.short=WAST
-Africa/Brazzaville.generic.short=WAT
-Africa/Brazzaville.standard.short=WAT
-Africa/Bujumbura.daylight.short=CAST
-Africa/Bujumbura.generic.short=CAT
-Africa/Bujumbura.standard.short=CAT
-Africa/Cairo.daylight.short=EEST
-Africa/Cairo.generic.short=EET
-Africa/Cairo.standard.short=EET
-Africa/Casablanca.daylight.short=WEST
-Africa/Casablanca.generic.short=WET
-Africa/Casablanca.standard.short=WET
-Africa/Ceuta.daylight.short=CEST
-Africa/Ceuta.generic.short=CET
-Africa/Ceuta.standard.short=CET
-Africa/Conakry.daylight.short=GMT
-Africa/Conakry.generic.short=GMT
-Africa/Conakry.standard.short=GMT
-Africa/Dakar.daylight.short=GMT
-Africa/Dakar.generic.short=GMT
-Africa/Dakar.standard.short=GMT
-Africa/Dar_es_Salaam.daylight.short=EAST
-Africa/Dar_es_Salaam.generic.short=EAT
-Africa/Dar_es_Salaam.standard.short=EAT
-Africa/Djibouti.daylight.short=EAST
-Africa/Djibouti.generic.short=EAT
-Africa/Djibouti.standard.short=EAT
-Africa/Douala.daylight.short=WAST
-Africa/Douala.generic.short=WAT
-Africa/Douala.standard.short=WAT
-Africa/El_Aaiun.daylight.short=WEST
-Africa/El_Aaiun.generic.short=WET
-Africa/El_Aaiun.standard.short=WET
-Africa/Freetown.daylight.short=SLST
-Africa/Freetown.generic.short=SLT
-Africa/Freetown.standard.short=GMT
-Africa/Gaborone.daylight.short=CAST
-Africa/Gaborone.generic.short=CAT
-Africa/Gaborone.standard.short=CAT
-Africa/Harare.daylight.short=CAST
-Africa/Harare.generic.short=CAT
-Africa/Harare.standard.short=CAT
-Africa/Johannesburg.daylight.short=SAST
-Africa/Johannesburg.generic.short=SAT
-Africa/Johannesburg.standard.short=SAST
-Africa/Juba.daylight.short=EAST
-Africa/Juba.generic.short=EAT
-Africa/Juba.standard.short=EAT
-Africa/Kampala.daylight.short=EAST
-Africa/Kampala.generic.short=EAT
-Africa/Kampala.standard.short=EAT
-Africa/Khartoum.daylight.short=EAST
-Africa/Khartoum.generic.short=EAT
-Africa/Khartoum.standard.short=EAT
-Africa/Kigali.daylight.short=CAST
-Africa/Kigali.generic.short=CAT
-Africa/Kigali.standard.short=CAT
-Africa/Kinshasa.daylight.short=WAST
-Africa/Kinshasa.generic.short=WAT
-Africa/Kinshasa.standard.short=WAT
-Africa/Lagos.daylight.short=WAST
-Africa/Lagos.generic.short=WAT
-Africa/Lagos.standard.short=WAT
-Africa/Libreville.daylight.short=WAST
-Africa/Libreville.generic.short=WAT
-Africa/Libreville.standard.short=WAT
-Africa/Lome.daylight.short=GMT
-Africa/Lome.generic.short=GMT
-Africa/Lome.standard.short=GMT
-Africa/Luanda.daylight.short=WAST
-Africa/Luanda.generic.short=WAT
-Africa/Luanda.standard.short=WAT
-Africa/Lubumbashi.daylight.short=CAST
-Africa/Lubumbashi.generic.short=CAT
-Africa/Lubumbashi.standard.short=CAT
-Africa/Lusaka.daylight.short=CAST
-Africa/Lusaka.generic.short=CAT
-Africa/Lusaka.standard.short=CAT
-Africa/Malabo.daylight.short=WAST
-Africa/Malabo.generic.short=WAT
-Africa/Malabo.standard.short=WAT
-Africa/Maputo.daylight.short=CAST
-Africa/Maputo.generic.short=CAT
-Africa/Maputo.standard.short=CAT
-Africa/Maseru.daylight.short=SAST
-Africa/Maseru.generic.short=SAT
-Africa/Maseru.standard.short=SAST
-Africa/Mbabane.daylight.short=SAST
-Africa/Mbabane.generic.short=SAT
-Africa/Mbabane.standard.short=SAST
-Africa/Mogadishu.daylight.short=EAST
-Africa/Mogadishu.generic.short=EAT
-Africa/Mogadishu.standard.short=EAT
-Africa/Monrovia.daylight.short=GMT
-Africa/Monrovia.generic.short=GMT
-Africa/Monrovia.standard.short=GMT
-Africa/Nairobi.daylight.short=EAST
-Africa/Nairobi.generic.short=EAT
-Africa/Nairobi.standard.short=EAT
-Africa/Ndjamena.daylight.short=WAST
-Africa/Ndjamena.generic.short=WAT
-Africa/Ndjamena.standard.short=WAT
-Africa/Niamey.daylight.short=WAST
-Africa/Niamey.generic.short=WAT
-Africa/Niamey.standard.short=WAT
-Africa/Nouakchott.daylight.short=GMT
-Africa/Nouakchott.generic.short=GMT
-Africa/Nouakchott.standard.short=GMT
-Africa/Ouagadougou.daylight.short=GMT
-Africa/Ouagadougou.generic.short=GMT
-Africa/Ouagadougou.standard.short=GMT
-Africa/Porto-Novo.daylight.short=WAST
-Africa/Porto-Novo.generic.short=WAT
-Africa/Porto-Novo.standard.short=WAT
-Africa/Sao_Tome.daylight.short=GMT
-Africa/Sao_Tome.generic.short=GMT
-Africa/Sao_Tome.standard.short=GMT
-Africa/Timbuktu.daylight.short=GMT
-Africa/Timbuktu.generic.short=GMT
-Africa/Timbuktu.standard.short=GMT
-Africa/Tripoli.daylight.short=EEST
-Africa/Tripoli.generic.short=EET
-Africa/Tripoli.standard.short=EET
-Africa/Tunis.daylight.short=CEST
-Africa/Tunis.generic.short=CET
-Africa/Tunis.standard.short=CET
-Africa/Windhoek.daylight.short=WAST
-Africa/Windhoek.generic.short=WAT
-Africa/Windhoek.standard.short=WAT
-AGT.daylight.short=ARST
-AGT.generic.short=ART
-AGT.standard.short=ART
-America/Adak.daylight.short=HADT
-America/Adak.generic.short=HAT
-America/Adak.standard.short=HAST
-America/Anchorage.daylight.short=AKDT
-America/Anchorage.generic.short=AKT
-America/Anchorage.standard.short=AKST
-America/Anguilla.daylight.short=ADT
-America/Anguilla.generic.short=AT
-America/Anguilla.standard.short=AST
-America/Antigua.daylight.short=ADT
-America/Antigua.generic.short=AT
-America/Antigua.standard.short=AST
-America/Araguaina.daylight.short=BRST
-America/Araguaina.generic.short=BRT
-America/Araguaina.standard.short=BRT
-America/Argentina/Buenos_Aires.daylight.short=ARST
-America/Argentina/Buenos_Aires.generic.short=ART
-America/Argentina/Buenos_Aires.standard.short=ART
-America/Argentina/Catamarca.daylight.short=ARST
-America/Argentina/Catamarca.generic.short=ART
-America/Argentina/Catamarca.standard.short=ART
-America/Argentina/ComodRivadavia.daylight.short=ARST
-America/Argentina/ComodRivadavia.generic.short=ART
-America/Argentina/ComodRivadavia.standard.short=ART
-America/Argentina/Cordoba.daylight.short=ARST
-America/Argentina/Cordoba.generic.short=ART
-America/Argentina/Cordoba.standard.short=ART
-America/Argentina/Jujuy.daylight.short=ARST
-America/Argentina/Jujuy.generic.short=ART
-America/Argentina/Jujuy.standard.short=ART
-America/Argentina/La_Rioja.daylight.short=ARST
-America/Argentina/La_Rioja.generic.short=ART
-America/Argentina/La_Rioja.standard.short=ART
-America/Argentina/Mendoza.daylight.short=ARST
-America/Argentina/Mendoza.generic.short=ART
-America/Argentina/Mendoza.standard.short=ART
-America/Argentina/Rio_Gallegos.daylight.short=ARST
-America/Argentina/Rio_Gallegos.generic.short=ART
-America/Argentina/Rio_Gallegos.standard.short=ART
-America/Argentina/Salta.daylight.short=ARST
-America/Argentina/Salta.generic.short=ART
-America/Argentina/Salta.standard.short=ART
-America/Argentina/San_Juan.daylight.short=ARST
-America/Argentina/San_Juan.generic.short=ART
-America/Argentina/San_Juan.standard.short=ART
-America/Argentina/San_Luis.daylight.short=ARST
-America/Argentina/San_Luis.generic.short=ART
-America/Argentina/San_Luis.standard.short=ART
-America/Argentina/Tucuman.daylight.short=ARST
-America/Argentina/Tucuman.generic.short=ART
-America/Argentina/Tucuman.standard.short=ART
-America/Argentina/Ushuaia.daylight.short=ARST
-America/Argentina/Ushuaia.generic.short=ART
-America/Argentina/Ushuaia.standard.short=ART
-America/Aruba.daylight.short=ADT
-America/Aruba.generic.short=AT
-America/Aruba.standard.short=AST
-America/Asuncion.daylight.short=PYST
-America/Asuncion.generic.short=PYT
-America/Asuncion.standard.short=PYT
-America/Atikokan.daylight.short=EDT
-America/Atikokan.generic.short=ET
-America/Atikokan.standard.short=EST
-America/Atka.daylight.short=HADT
-America/Atka.generic.short=HAT
-America/Atka.standard.short=HAST
-America/Bahia_Banderas.daylight.short=CDT
-America/Bahia_Banderas.generic.short=CT
-America/Bahia_Banderas.standard.short=CST
-America/Bahia.daylight.short=BRST
-America/Bahia.generic.short=BRT
-America/Bahia.standard.short=BRT
-America/Barbados.daylight.short=ADT
-America/Barbados.generic.short=AT
-America/Barbados.standard.short=AST
-America/Belem.daylight.short=BRST
-America/Belem.generic.short=BRT
-America/Belem.standard.short=BRT
-America/Belize.daylight.short=CDT
-America/Belize.generic.short=CT
-America/Belize.standard.short=CST
-America/Blanc-Sablon.daylight.short=ADT
-America/Blanc-Sablon.generic.short=AT
-America/Blanc-Sablon.standard.short=AST
-America/Boa_Vista.daylight.short=AMST
-America/Boa_Vista.generic.short=AMT
-America/Boa_Vista.standard.short=AMT
-America/Bogota.daylight.short=COST
-America/Bogota.generic.short=COT
-America/Bogota.standard.short=COT
-America/Boise.daylight.short=MDT
-America/Boise.generic.short=MT
-America/Boise.standard.short=MST
-America/Buenos_Aires.daylight.short=ARST
-America/Buenos_Aires.generic.short=ART
-America/Buenos_Aires.standard.short=ART
-America/Cambridge_Bay.daylight.short=MDT
-America/Cambridge_Bay.generic.short=MT
-America/Cambridge_Bay.standard.short=MST
-America/Campo_Grande.daylight.short=AMST
-America/Campo_Grande.generic.short=AMT
-America/Campo_Grande.standard.short=AMT
-America/Cancun.daylight.short=CDT
-America/Cancun.generic.short=CT
-America/Cancun.standard.short=CST
-America/Caracas.daylight.short=VEST
-America/Caracas.generic.short=VET
-America/Caracas.standard.short=VET
-America/Catamarca.daylight.short=ARST
-America/Catamarca.generic.short=ART
-America/Catamarca.standard.short=ART
-America/Cayenne.daylight.short=GFST
-America/Cayenne.generic.short=GFT
-America/Cayenne.standard.short=GFT
-America/Cayman.daylight.short=EDT
-America/Cayman.generic.short=ET
-America/Cayman.standard.short=EST
-America/Chicago.daylight.short=CDT
-America/Chicago.generic.short=CT
-America/Chicago.standard.short=CST
-America/Chihuahua.daylight.short=MDT
-America/Chihuahua.generic.short=MT
-America/Chihuahua.standard.short=MST
-America/Coral_Harbour.daylight.short=EDT
-America/Coral_Harbour.generic.short=ET
-America/Coral_Harbour.standard.short=EST
-America/Cordoba.daylight.short=ARST
-America/Cordoba.generic.short=ART
-America/Cordoba.standard.short=ART
-America/Costa_Rica.daylight.short=CDT
-America/Costa_Rica.generic.short=CT
-America/Costa_Rica.standard.short=CST
-America/Creston.daylight.short=MDT
-America/Creston.generic.short=MT
-America/Creston.standard.short=MST
-America/Cuiaba.daylight.short=AMST
-America/Cuiaba.generic.short=AMT
-America/Cuiaba.standard.short=AMT
-America/Curacao.daylight.short=ADT
-America/Curacao.generic.short=AT
-America/Curacao.standard.short=AST
-America/Danmarkshavn.daylight.short=GMT
-America/Danmarkshavn.generic.short=GMT
-America/Danmarkshavn.standard.short=GMT
-America/Dawson_Creek.daylight.short=MDT
-America/Dawson_Creek.generic.short=MT
-America/Dawson_Creek.standard.short=MST
-America/Dawson.daylight.short=PDT
-America/Dawson.generic.short=PT
-America/Dawson.standard.short=PST
-America/Denver.daylight.short=MDT
-America/Denver.generic.short=MT
-America/Denver.standard.short=MST
-America/Detroit.daylight.short=EDT
-America/Detroit.generic.short=ET
-America/Detroit.standard.short=EST
-America/Dominica.daylight.short=ADT
-America/Dominica.generic.short=AT
-America/Dominica.standard.short=AST
-America/Edmonton.daylight.short=MDT
-America/Edmonton.generic.short=MT
-America/Edmonton.standard.short=MST
-America/Eirunepe.daylight.short=ACST
-America/Eirunepe.generic.short=ACT
-America/Eirunepe.standard.short=ACT
-America/El_Salvador.daylight.short=CDT
-America/El_Salvador.generic.short=CT
-America/El_Salvador.standard.short=CST
-America/Ensenada.daylight.short=PDT
-America/Ensenada.generic.short=PT
-America/Ensenada.standard.short=PST
-America/Fortaleza.daylight.short=BRST
-America/Fortaleza.generic.short=BRT
-America/Fortaleza.standard.short=BRT
-America/Fort_Wayne.daylight.short=EDT
-America/Fort_Wayne.generic.short=ET
-America/Fort_Wayne.standard.short=EST
-America/Glace_Bay.daylight.short=ADT
-America/Glace_Bay.generic.short=AT
-America/Glace_Bay.standard.short=AST
-America/Godthab.daylight.short=WGST
-America/Godthab.generic.short=WGT
-America/Godthab.standard.short=WGT
-America/Goose_Bay.daylight.short=ADT
-America/Goose_Bay.generic.short=AT
-America/Goose_Bay.standard.short=AST
-America/Grand_Turk.daylight.short=EDT
-America/Grand_Turk.generic.short=ET
-America/Grand_Turk.standard.short=EST
-America/Grenada.daylight.short=ADT
-America/Grenada.generic.short=AT
-America/Grenada.standard.short=AST
-America/Guadeloupe.daylight.short=ADT
-America/Guadeloupe.generic.short=AT
-America/Guadeloupe.standard.short=AST
-America/Guatemala.daylight.short=CDT
-America/Guatemala.generic.short=CT
-America/Guatemala.standard.short=CST
-America/Guayaquil.daylight.short=ECST
-America/Guayaquil.generic.short=ECT
-America/Guayaquil.standard.short=ECT
-America/Guyana.daylight.short=GYST
-America/Guyana.generic.short=GYT
-America/Guyana.standard.short=GYT
-America/Halifax.daylight.short=ADT
-America/Halifax.generic.short=AT
-America/Halifax.standard.short=AST
-America/Havana.daylight.short=CDT
-America/Havana.generic.short=CT
-America/Havana.standard.short=CST
-America/Hermosillo.daylight.short=MDT
-America/Hermosillo.generic.short=MT
-America/Hermosillo.standard.short=MST
-America/Indiana/Indianapolis.daylight.short=EDT
-America/Indiana/Indianapolis.generic.short=ET
-America/Indiana/Indianapolis.standard.short=EST
-America/Indiana/Knox.daylight.short=CDT
-America/Indiana/Knox.generic.short=CT
-America/Indiana/Knox.standard.short=CST
-America/Indiana/Marengo.daylight.short=EDT
-America/Indiana/Marengo.generic.short=ET
-America/Indiana/Marengo.standard.short=EST
-America/Indiana/Petersburg.daylight.short=EDT
-America/Indiana/Petersburg.generic.short=ET
-America/Indiana/Petersburg.standard.short=EST
-America/Indianapolis.daylight.short=EDT
-America/Indianapolis.generic.short=ET
-America/Indianapolis.standard.short=EST
-America/Indiana/Tell_City.daylight.short=CDT
-America/Indiana/Tell_City.generic.short=CT
-America/Indiana/Tell_City.standard.short=CST
-America/Indiana/Vevay.daylight.short=EDT
-America/Indiana/Vevay.generic.short=ET
-America/Indiana/Vevay.standard.short=EST
-America/Indiana/Vincennes.daylight.short=EDT
-America/Indiana/Vincennes.generic.short=ET
-America/Indiana/Vincennes.standard.short=EST
-America/Indiana/Winamac.daylight.short=EDT
-America/Indiana/Winamac.generic.short=ET
-America/Indiana/Winamac.standard.short=EST
-America/Inuvik.daylight.short=MDT
-America/Inuvik.generic.short=MT
-America/Inuvik.standard.short=MST
-America/Iqaluit.daylight.short=EDT
-America/Iqaluit.generic.short=ET
-America/Iqaluit.standard.short=EST
-America/Jamaica.daylight.short=EDT
-America/Jamaica.generic.short=ET
-America/Jamaica.standard.short=EST
-America/Jujuy.daylight.short=ARST
-America/Jujuy.generic.short=ART
-America/Jujuy.standard.short=ART
-America/Juneau.daylight.short=AKDT
-America/Juneau.generic.short=AKT
-America/Juneau.standard.short=AKST
-America/Kentucky/Louisville.daylight.short=EDT
-America/Kentucky/Louisville.generic.short=ET
-America/Kentucky/Louisville.standard.short=EST
-America/Kentucky/Monticello.daylight.short=EDT
-America/Kentucky/Monticello.generic.short=ET
-America/Kentucky/Monticello.standard.short=EST
-America/Knox_IN.daylight.short=CDT
-America/Knox_IN.generic.short=CT
-America/Knox_IN.standard.short=CST
-America/Kralendijk.daylight.short=ADT
-America/Kralendijk.generic.short=AT
-America/Kralendijk.standard.short=AST
-America/La_Paz.daylight.short=BOST
-America/La_Paz.generic.short=BOT
-America/La_Paz.standard.short=BOT
-America/Lima.daylight.short=PEST
-America/Lima.generic.short=PET
-America/Lima.standard.short=PET
-America/Los_Angeles.daylight.short=PDT
-America/Los_Angeles.generic.short=PT
-America/Los_Angeles.standard.short=PST
-America/Louisville.daylight.short=EDT
-America/Louisville.generic.short=ET
-America/Louisville.standard.short=EST
-America/Lower_Princes.daylight.short=ADT
-America/Lower_Princes.generic.short=AT
-America/Lower_Princes.standard.short=AST
-America/Maceio.daylight.short=BRST
-America/Maceio.generic.short=BRT
-America/Maceio.standard.short=BRT
-America/Managua.daylight.short=CDT
-America/Managua.generic.short=CT
-America/Managua.standard.short=CST
-America/Manaus.daylight.short=AMST
-America/Manaus.generic.short=AMT
-America/Manaus.standard.short=AMT
-America/Marigot.daylight.short=ADT
-America/Marigot.generic.short=AT
-America/Marigot.standard.short=AST
-America/Martinique.daylight.short=ADT
-America/Martinique.generic.short=AT
-America/Martinique.standard.short=AST
-America/Matamoros.daylight.short=CDT
-America/Matamoros.generic.short=CT
-America/Matamoros.standard.short=CST
-America/Mazatlan.daylight.short=MDT
-America/Mazatlan.generic.short=MT
-America/Mazatlan.standard.short=MST
-America/Mendoza.daylight.short=ARST
-America/Mendoza.generic.short=ART
-America/Mendoza.standard.short=ART
-America/Menominee.daylight.short=CDT
-America/Menominee.generic.short=CT
-America/Menominee.standard.short=CST
-America/Merida.daylight.short=CDT
-America/Merida.generic.short=CT
-America/Merida.standard.short=CST
-America/Metlakatla.daylight.short=MeDT
-America/Metlakatla.generic.short=MeT
-America/Metlakatla.standard.short=MeST
-America/Mexico_City.daylight.short=CDT
-America/Mexico_City.generic.short=CT
-America/Mexico_City.standard.short=CST
-America/Miquelon.daylight.short=PMDT
-America/Miquelon.generic.short=PMT
-America/Miquelon.standard.short=PMST
-America/Moncton.daylight.short=ADT
-America/Moncton.generic.short=AT
-America/Moncton.standard.short=AST
-America/Monterrey.daylight.short=CDT
-America/Monterrey.generic.short=CT
-America/Monterrey.standard.short=CST
-America/Montevideo.daylight.short=UYST
-America/Montevideo.generic.short=UYT
-America/Montevideo.standard.short=UYT
-America/Montreal.daylight.short=EDT
-America/Montreal.generic.short=ET
-America/Montreal.standard.short=EST
-America/Montserrat.daylight.short=ADT
-America/Montserrat.generic.short=AT
-America/Montserrat.standard.short=AST
-America/Nassau.daylight.short=EDT
-America/Nassau.generic.short=ET
-America/Nassau.standard.short=EST
-America/New_York.daylight.short=EDT
-America/New_York.generic.short=ET
-America/New_York.standard.short=EST
-America/Nipigon.daylight.short=EDT
-America/Nipigon.generic.short=ET
-America/Nipigon.standard.short=EST
-America/Nome.daylight.short=AKDT
-America/Nome.generic.short=AKT
-America/Nome.standard.short=AKST
-America/Noronha.daylight.short=FNST
-America/Noronha.generic.short=FNT
-America/Noronha.standard.short=FNT
-America/North_Dakota/Beulah.daylight.short=CDT
-America/North_Dakota/Beulah.generic.short=CT
-America/North_Dakota/Beulah.standard.short=CST
-America/North_Dakota/Center.daylight.short=CDT
-America/North_Dakota/Center.generic.short=CT
-America/North_Dakota/Center.standard.short=CST
-America/North_Dakota/New_Salem.daylight.short=CDT
-America/North_Dakota/New_Salem.generic.short=CT
-America/North_Dakota/New_Salem.standard.short=CST
-America/Ojinaga.daylight.short=MDT
-America/Ojinaga.generic.short=MT
-America/Ojinaga.standard.short=MST
-America/Panama.daylight.short=EDT
-America/Panama.generic.short=ET
-America/Panama.standard.short=EST
-America/Pangnirtung.daylight.short=EDT
-America/Pangnirtung.generic.short=ET
-America/Pangnirtung.standard.short=EST
-America/Paramaribo.daylight.short=SRST
-America/Paramaribo.generic.short=SRT
-America/Paramaribo.standard.short=SRT
-America/Phoenix.daylight.short=MDT
-America/Phoenix.generic.short=MT
-America/Phoenix.standard.short=MST
-America/Port-au-Prince.daylight.short=EDT
-America/Port-au-Prince.generic.short=ET
-America/Port-au-Prince.standard.short=EST
-America/Porto_Acre.daylight.short=ACST
-America/Porto_Acre.generic.short=ACT
-America/Porto_Acre.standard.short=ACT
-America/Port_of_Spain.daylight.short=ADT
-America/Port_of_Spain.generic.short=AT
-America/Port_of_Spain.standard.short=AST
-America/Porto_Velho.daylight.short=AMST
-America/Porto_Velho.generic.short=AMT
-America/Porto_Velho.standard.short=AMT
-America/Puerto_Rico.daylight.short=ADT
-America/Puerto_Rico.generic.short=AT
-America/Puerto_Rico.standard.short=AST
-America/Rainy_River.daylight.short=CDT
-America/Rainy_River.generic.short=CT
-America/Rainy_River.standard.short=CST
-America/Rankin_Inlet.daylight.short=CDT
-America/Rankin_Inlet.generic.short=CT
-America/Rankin_Inlet.standard.short=CST
-America/Recife.daylight.short=BRST
-America/Recife.generic.short=BRT
-America/Recife.standard.short=BRT
-America/Regina.daylight.short=CDT
-America/Regina.generic.short=CT
-America/Regina.standard.short=CST
-America/Resolute.daylight.short=CDT
-America/Resolute.generic.short=CT
-America/Resolute.standard.short=CST
-America/Rio_Branco.daylight.short=ACST
-America/Rio_Branco.generic.short=ACT
-America/Rio_Branco.standard.short=ACT
-America/Rosario.daylight.short=ARST
-America/Rosario.generic.short=ART
-America/Rosario.standard.short=ART
-America/Santa_Isabel.daylight.short=PDT
-America/Santa_Isabel.generic.short=PT
-America/Santa_Isabel.standard.short=PST
-America/Santarem.daylight.short=BRST
-America/Santarem.generic.short=BRT
-America/Santarem.standard.short=BRT
-America/Santiago.daylight.short=CLST
-America/Santiago.generic.short=CLT
-America/Santiago.standard.short=CLT
-America/Santo_Domingo.daylight.short=ADT
-America/Santo_Domingo.generic.short=AT
-America/Santo_Domingo.standard.short=AST
-America/Sao_Paulo.daylight.short=BRST
-America/Sao_Paulo.generic.short=BRT
-America/Sao_Paulo.standard.short=BRT
-America/Scoresbysund.daylight.short=EGST
-America/Scoresbysund.generic.short=EGT
-America/Scoresbysund.standard.short=EGT
-America/Shiprock.daylight.short=MDT
-America/Shiprock.generic.short=MT
-America/Shiprock.standard.short=MST
-America/Sitka.daylight.short=AKDT
-America/Sitka.generic.short=AKT
-America/Sitka.standard.short=AKST
-America/St_Barthelemy.daylight.short=ADT
-America/St_Barthelemy.generic.short=AT
-America/St_Barthelemy.standard.short=AST
-America/St_Johns.daylight.short=NDT
-America/St_Johns.generic.short=NT
-America/St_Johns.standard.short=NST
-America/St_Kitts.daylight.short=ADT
-America/St_Kitts.generic.short=AT
-America/St_Kitts.standard.short=AST
-America/St_Lucia.daylight.short=ADT
-America/St_Lucia.generic.short=AT
-America/St_Lucia.standard.short=AST
-America/St_Thomas.daylight.short=ADT
-America/St_Thomas.generic.short=AT
-America/St_Thomas.standard.short=AST
-America/St_Vincent.daylight.short=ADT
-America/St_Vincent.generic.short=AT
-America/St_Vincent.standard.short=AST
-America/Swift_Current.daylight.short=CDT
-America/Swift_Current.generic.short=CT
-America/Swift_Current.standard.short=CST
-America/Tegucigalpa.daylight.short=CDT
-America/Tegucigalpa.generic.short=CT
-America/Tegucigalpa.standard.short=CST
-America/Thule.daylight.short=ADT
-America/Thule.generic.short=AT
-America/Thule.standard.short=AST
-America/Thunder_Bay.daylight.short=EDT
-America/Thunder_Bay.generic.short=ET
-America/Thunder_Bay.standard.short=EST
-America/Tijuana.daylight.short=PDT
-America/Tijuana.generic.short=PT
-America/Tijuana.standard.short=PST
-America/Toronto.daylight.short=EDT
-America/Toronto.generic.short=ET
-America/Toronto.standard.short=EST
-America/Tortola.daylight.short=ADT
-America/Tortola.generic.short=AT
-America/Tortola.standard.short=AST
-America/Vancouver.daylight.short=PDT
-America/Vancouver.generic.short=PT
-America/Vancouver.standard.short=PST
-America/Virgin.daylight.short=ADT
-America/Virgin.generic.short=AT
-America/Virgin.standard.short=AST
-America/Whitehorse.daylight.short=PDT
-America/Whitehorse.generic.short=PT
-America/Whitehorse.standard.short=PST
-America/Winnipeg.daylight.short=CDT
-America/Winnipeg.generic.short=CT
-America/Winnipeg.standard.short=CST
-America/Yakutat.daylight.short=AKDT
-America/Yakutat.generic.short=AKT
-America/Yakutat.standard.short=AKST
-America/Yellowknife.daylight.short=MDT
-America/Yellowknife.generic.short=MT
-America/Yellowknife.standard.short=MST
-Antarctica/Casey.daylight.short=WST
-Antarctica/Casey.generic.short=WT
-Antarctica/Casey.standard.short=WST
-Antarctica/Davis.daylight.short=DAVST
-Antarctica/Davis.generic.short=DAVT
-Antarctica/Davis.standard.short=DAVT
-Antarctica/DumontDUrville.daylight.short=DDUST
-Antarctica/DumontDUrville.generic.short=DDUT
-Antarctica/DumontDUrville.standard.short=DDUT
-Antarctica/Macquarie.daylight.short=MIST
-Antarctica/Macquarie.generic.short=MIST
-Antarctica/Macquarie.standard.short=MIST
-Antarctica/Mawson.daylight.short=MAWST
-Antarctica/Mawson.generic.short=MAWT
-Antarctica/Mawson.standard.short=MAWT
-Antarctica/McMurdo.daylight.short=NZDT
-Antarctica/McMurdo.generic.short=NZT
-Antarctica/McMurdo.standard.short=NZST
-Antarctica/Palmer.daylight.short=CLST
-Antarctica/Palmer.generic.short=CLT
-Antarctica/Palmer.standard.short=CLT
-Antarctica/Rothera.daylight.short=ROTST
-Antarctica/Rothera.generic.short=ROTT
-Antarctica/Rothera.standard.short=ROTT
-Antarctica/South_Pole.daylight.short=NZDT
-Antarctica/South_Pole.generic.short=NZT
-Antarctica/South_Pole.standard.short=NZST
-Antarctica/Syowa.daylight.short=SYOST
-Antarctica/Syowa.generic.short=SYOT
-Antarctica/Syowa.standard.short=SYOT
-Antarctica/Vostok.daylight.short=VOSST
-Antarctica/Vostok.generic.short=VOST
-Antarctica/Vostok.standard.short=VOST
-Arctic/Longyearbyen.daylight.short=CEST
-Arctic/Longyearbyen.generic.short=CET
-Arctic/Longyearbyen.standard.short=CET
-ART.daylight.short=EEST
-ART.generic.short=EET
-ART.standard.short=EET
-Asia/Aden.daylight.short=ADT
-Asia/Aden.generic.short=AT
-Asia/Aden.standard.short=AST
-Asia/Almaty.daylight.short=ALMST
-Asia/Almaty.generic.short=ALMT
-Asia/Almaty.standard.short=ALMT
-Asia/Amman.daylight.short=ADT
-Asia/Amman.generic.short=AT
-Asia/Amman.standard.short=AST
-Asia/Anadyr.daylight.short=ANAST
-Asia/Anadyr.generic.short=ANAT
-Asia/Anadyr.standard.short=ANAT
-Asia/Aqtau.daylight.short=AQTST
-Asia/Aqtau.generic.short=AQTT
-Asia/Aqtau.standard.short=AQTT
-Asia/Aqtobe.daylight.short=AQTST
-Asia/Aqtobe.generic.short=AQTT
-Asia/Aqtobe.standard.short=AQTT
-Asia/Ashgabat.daylight.short=TMST
-Asia/Ashgabat.generic.short=TMT
-Asia/Ashgabat.standard.short=TMT
-Asia/Ashkhabad.daylight.short=TMST
-Asia/Ashkhabad.generic.short=TMT
-Asia/Ashkhabad.standard.short=TMT
-Asia/Baghdad.daylight.short=ADT
-Asia/Baghdad.generic.short=AT
-Asia/Baghdad.standard.short=AST
-Asia/Bahrain.daylight.short=ADT
-Asia/Bahrain.generic.short=AT
-Asia/Bahrain.standard.short=AST
-Asia/Baku.daylight.short=AZST
-Asia/Baku.generic.short=AZT
-Asia/Baku.standard.short=AZT
-Asia/Bangkok.daylight.short=ICST
-Asia/Bangkok.generic.short=ICT
-Asia/Bangkok.standard.short=ICT
-Asia/Beirut.daylight.short=EEST
-Asia/Beirut.generic.short=EET
-Asia/Beirut.standard.short=EET
-Asia/Bishkek.daylight.short=KGST
-Asia/Bishkek.generic.short=KGT
-Asia/Bishkek.standard.short=KGT
-Asia/Brunei.daylight.short=BNST
-Asia/Brunei.generic.short=BNT
-Asia/Brunei.standard.short=BNT
-Asia/Calcutta.daylight.short=IDT
-Asia/Calcutta.generic.short=IT
-Asia/Calcutta.standard.short=IST
-Asia/Choibalsan.daylight.short=CHOST
-Asia/Choibalsan.generic.short=CHOT
-Asia/Choibalsan.standard.short=CHOT
-Asia/Chongqing.daylight.short=CDT
-Asia/Chongqing.generic.short=CT
-Asia/Chongqing.standard.short=CST
-Asia/Chungking.daylight.short=CDT
-Asia/Chungking.generic.short=CT
-Asia/Chungking.standard.short=CST
-Asia/Colombo.daylight.short=IDT
-Asia/Colombo.generic.short=IT
-Asia/Colombo.standard.short=IST
-Asia/Dacca.daylight.short=BDST
-Asia/Dacca.generic.short=BDT
-Asia/Dacca.standard.short=BDT
-Asia/Damascus.daylight.short=EEST
-Asia/Damascus.generic.short=EET
-Asia/Damascus.standard.short=EET
-Asia/Dhaka.daylight.short=BDST
-Asia/Dhaka.generic.short=BDT
-Asia/Dhaka.standard.short=BDT
-Asia/Dili.daylight.short=TLST
-Asia/Dili.generic.short=TLT
-Asia/Dili.standard.short=TLT
-Asia/Dubai.daylight.short=GDT
-Asia/Dubai.generic.short=GT
-Asia/Dubai.standard.short=GST
-Asia/Dushanbe.daylight.short=TJST
-Asia/Dushanbe.generic.short=TJT
-Asia/Dushanbe.standard.short=TJT
-Asia/Gaza.daylight.short=EEST
-Asia/Gaza.generic.short=EET
-Asia/Gaza.standard.short=EET
-Asia/Harbin.daylight.short=CDT
-Asia/Harbin.generic.short=CT
-Asia/Harbin.standard.short=CST
-Asia/Hebron.daylight.short=EEST
-Asia/Hebron.generic.short=EET
-Asia/Hebron.standard.short=EET
-Asia/Ho_Chi_Minh.daylight.short=ICST
-Asia/Ho_Chi_Minh.generic.short=ICT
-Asia/Ho_Chi_Minh.standard.short=ICT
-Asia/Hong_Kong.daylight.short=HKST
-Asia/Hong_Kong.generic.short=HKT
-Asia/Hong_Kong.standard.short=HKT
-Asia/Hovd.daylight.short=HOVST
-Asia/Hovd.generic.short=HOVT
-Asia/Hovd.standard.short=HOVT
-Asia/Irkutsk.daylight.short=IRKST
-Asia/Irkutsk.generic.short=IRKT
-Asia/Irkutsk.standard.short=IRKT
-Asia/Istanbul.daylight.short=EEST
-Asia/Istanbul.generic.short=EET
-Asia/Istanbul.standard.short=EET
-Asia/Jakarta.daylight.short=WIST
-Asia/Jakarta.generic.short=WIB
-Asia/Jakarta.standard.short=WIB
-Asia/Jayapura.daylight.short=EIST
-Asia/Jayapura.generic.short=WIT
-Asia/Jayapura.standard.short=WIT
-Asia/Jerusalem.daylight.short=IDT
-Asia/Jerusalem.generic.short=IT
-Asia/Jerusalem.standard.short=IST
-Asia/Kabul.daylight.short=AFST
-Asia/Kabul.generic.short=AFT
-Asia/Kabul.standard.short=AFT
-Asia/Kamchatka.daylight.short=PETST
-Asia/Kamchatka.generic.short=PETT
-Asia/Kamchatka.standard.short=PETT
-Asia/Karachi.daylight.short=PKST
-Asia/Karachi.generic.short=PKT
-Asia/Karachi.standard.short=PKT
-Asia/Kashgar.daylight.short=CDT
-Asia/Kashgar.generic.short=CT
-Asia/Kashgar.standard.short=CST
-Asia/Kathmandu.daylight.short=NPST
-Asia/Kathmandu.generic.short=NPT
-Asia/Kathmandu.standard.short=NPT
-Asia/Katmandu.daylight.short=NPST
-Asia/Katmandu.generic.short=NPT
-Asia/Katmandu.standard.short=NPT
-Asia/Khandyga.daylight.short=YAKST
-Asia/Khandyga.generic.short=YAKT
-Asia/Khandyga.standard.short=YAKT
-Asia/Kolkata.daylight.short=IDT
-Asia/Kolkata.generic.short=IT
-Asia/Kolkata.standard.short=IST
-Asia/Krasnoyarsk.daylight.short=KRAST
-Asia/Krasnoyarsk.generic.short=KRAT
-Asia/Krasnoyarsk.standard.short=KRAT
-Asia/Kuala_Lumpur.daylight.short=MYST
-Asia/Kuala_Lumpur.generic.short=MYT
-Asia/Kuala_Lumpur.standard.short=MYT
-Asia/Kuching.daylight.short=MYST
-Asia/Kuching.generic.short=MYT
-Asia/Kuching.standard.short=MYT
-Asia/Kuwait.daylight.short=ADT
-Asia/Kuwait.generic.short=AT
-Asia/Kuwait.standard.short=AST
-Asia/Macao.daylight.short=CDT
-Asia/Macao.generic.short=CT
-Asia/Macao.standard.short=CST
-Asia/Macau.daylight.short=CDT
-Asia/Macau.generic.short=CT
-Asia/Macau.standard.short=CST
-Asia/Magadan.daylight.short=MAGST
-Asia/Magadan.generic.short=MAGT
-Asia/Magadan.standard.short=MAGT
-Asia/Makassar.daylight.short=CIST
-Asia/Makassar.generic.short=WITA
-Asia/Makassar.standard.short=WITA
-Asia/Manila.daylight.short=PHST
-Asia/Manila.generic.short=PHT
-Asia/Manila.standard.short=PHT
-Asia/Muscat.daylight.short=GDT
-Asia/Muscat.generic.short=GT
-Asia/Muscat.standard.short=GST
-Asia/Nicosia.daylight.short=EEST
-Asia/Nicosia.generic.short=EET
-Asia/Nicosia.standard.short=EET
-Asia/Novokuznetsk.daylight.short=NOVST
-Asia/Novokuznetsk.generic.short=NOVT
-Asia/Novokuznetsk.standard.short=NOVT
-Asia/Novosibirsk.daylight.short=NOVST
-Asia/Novosibirsk.generic.short=NOVT
-Asia/Novosibirsk.standard.short=NOVT
-Asia/Omsk.daylight.short=OMSST
-Asia/Omsk.generic.short=OMST
-Asia/Omsk.standard.short=OMST
-Asia/Oral.daylight.short=ORAST
-Asia/Oral.generic.short=ORAT
-Asia/Oral.standard.short=ORAT
-Asia/Phnom_Penh.daylight.short=ICST
-Asia/Phnom_Penh.generic.short=ICT
-Asia/Phnom_Penh.standard.short=ICT
-Asia/Pontianak.daylight.short=WIST
-Asia/Pontianak.generic.short=WIB
-Asia/Pontianak.standard.short=WIB
-Asia/Pyongyang.daylight.short=KDT
-Asia/Pyongyang.generic.short=KT
-Asia/Pyongyang.standard.short=KST
-Asia/Qatar.daylight.short=ADT
-Asia/Qatar.generic.short=AT
-Asia/Qatar.standard.short=AST
-Asia/Qyzylorda.daylight.short=QYZST
-Asia/Qyzylorda.generic.short=QYZT
-Asia/Qyzylorda.standard.short=QYZT
-Asia/Rangoon.daylight.short=MMST
-Asia/Rangoon.generic.short=MMT
-Asia/Rangoon.standard.short=MMT
-Asia/Saigon.daylight.short=ICST
-Asia/Saigon.generic.short=ICT
-Asia/Saigon.standard.short=ICT
-Asia/Sakhalin.daylight.short=SAKST
-Asia/Sakhalin.generic.short=SAKT
-Asia/Sakhalin.standard.short=SAKT
-Asia/Samarkand.daylight.short=UZST
-Asia/Samarkand.generic.short=UZT
-Asia/Samarkand.standard.short=UZT
-Asia/Seoul.daylight.short=KDT
-Asia/Seoul.generic.short=KT
-Asia/Seoul.standard.short=KST
-Asia/Shanghai.daylight.short=CDT
-Asia/Shanghai.generic.short=CT
-Asia/Shanghai.standard.short=CST
-Asia/Singapore.daylight.short=SGST
-Asia/Singapore.generic.short=SGT
-Asia/Singapore.standard.short=SGT
-Asia/Taipei.daylight.short=CDT
-Asia/Taipei.generic.short=CT
-Asia/Taipei.standard.short=CST
-Asia/Tashkent.daylight.short=UZST
-Asia/Tashkent.generic.short=UZT
-Asia/Tashkent.standard.short=UZT
-Asia/Tbilisi.daylight.short=GEST
-Asia/Tbilisi.generic.short=GET
-Asia/Tbilisi.standard.short=GET
-Asia/Tehran.daylight.short=IRDT
-Asia/Tehran.generic.short=IRT
-Asia/Tehran.standard.short=IRST
-Asia/Tel_Aviv.daylight.short=IDT
-Asia/Tel_Aviv.generic.short=IT
-Asia/Tel_Aviv.standard.short=IST
-Asia/Thimbu.daylight.short=BTST
-Asia/Thimbu.generic.short=BTT
-Asia/Thimbu.standard.short=BTT
-Asia/Thimphu.daylight.short=BTST
-Asia/Thimphu.generic.short=BTT
-Asia/Thimphu.standard.short=BTT
-Asia/Tokyo.daylight.short=JDT
-Asia/Tokyo.generic.short=JT
-Asia/Tokyo.standard.short=JST
-Asia/Ujung_Pandang.daylight.short=CIST
-Asia/Ujung_Pandang.generic.short=WITA
-Asia/Ujung_Pandang.standard.short=WITA
-Asia/Ulaanbaatar.daylight.short=ULAST
-Asia/Ulaanbaatar.generic.short=ULAT
-Asia/Ulaanbaatar.standard.short=ULAT
-Asia/Ulan_Bator.daylight.short=ULAST
-Asia/Ulan_Bator.generic.short=ULAT
-Asia/Ulan_Bator.standard.short=ULAT
-Asia/Urumqi.daylight.short=CDT
-Asia/Urumqi.generic.short=CT
-Asia/Urumqi.standard.short=CST
-Asia/Ust-Nera.daylight.short=VLAST
-Asia/Ust-Nera.generic.short=VLAT
-Asia/Ust-Nera.standard.short=VLAT
-Asia/Vientiane.daylight.short=ICST
-Asia/Vientiane.generic.short=ICT
-Asia/Vientiane.standard.short=ICT
-Asia/Vladivostok.daylight.short=VLAST
-Asia/Vladivostok.generic.short=VLAT
-Asia/Vladivostok.standard.short=VLAT
-Asia/Yakutsk.daylight.short=YAKST
-Asia/Yakutsk.generic.short=YAKT
-Asia/Yakutsk.standard.short=YAKT
-Asia/Yekaterinburg.daylight.short=YEKST
-Asia/Yekaterinburg.generic.short=YEKT
-Asia/Yekaterinburg.standard.short=YEKT
-Asia/Yerevan.daylight.short=AMST
-Asia/Yerevan.generic.short=AMT
-Asia/Yerevan.standard.short=AMT
-AST.daylight.short=AKDT
-AST.generic.short=AKT
-AST.standard.short=AKST
-Atlantic/Azores.daylight.short=AZOST
-Atlantic/Azores.generic.short=AZOT
-Atlantic/Azores.standard.short=AZOT
-Atlantic/Bermuda.daylight.short=ADT
-Atlantic/Bermuda.generic.short=AT
-Atlantic/Bermuda.standard.short=AST
-Atlantic/Canary.daylight.short=WEST
-Atlantic/Canary.generic.short=WET
-Atlantic/Canary.standard.short=WET
-Atlantic/Cape_Verde.daylight.short=CVST
-Atlantic/Cape_Verde.generic.short=CVT
-Atlantic/Cape_Verde.standard.short=CVT
-Atlantic/Faeroe.daylight.short=WEST
-Atlantic/Faeroe.generic.short=WET
-Atlantic/Faeroe.standard.short=WET
-Atlantic/Faroe.daylight.short=WEST
-Atlantic/Faroe.generic.short=WET
-Atlantic/Faroe.standard.short=WET
-Atlantic/Jan_Mayen.daylight.short=CEST
-Atlantic/Jan_Mayen.generic.short=CET
-Atlantic/Jan_Mayen.standard.short=CET
-Atlantic/Madeira.daylight.short=WEST
-Atlantic/Madeira.generic.short=WET
-Atlantic/Madeira.standard.short=WET
-Atlantic/Reykjavik.daylight.short=GMT
-Atlantic/Reykjavik.generic.short=GMT
-Atlantic/Reykjavik.standard.short=GMT
-Atlantic/South_Georgia.daylight.short=GDT
-Atlantic/South_Georgia.generic.short=GT
-Atlantic/South_Georgia.standard.short=GST
-Atlantic/Stanley.daylight.short=FKST
-Atlantic/Stanley.generic.short=FKT
-Atlantic/Stanley.standard.short=FKT
-Atlantic/St_Helena.daylight.short=GMT
-Atlantic/St_Helena.generic.short=GMT
-Atlantic/St_Helena.standard.short=GMT
-Australia/ACT.daylight.short=EST
-Australia/ACT.generic.short=ET
-Australia/ACT.standard.short=EST
-Australia/Adelaide.daylight.short=CST
-Australia/Adelaide.generic.short=CT
-Australia/Adelaide.standard.short=CST
-Australia/Brisbane.daylight.short=EST
-Australia/Brisbane.generic.short=ET
-Australia/Brisbane.standard.short=EST
-Australia/Broken_Hill.daylight.short=CST
-Australia/Broken_Hill.generic.short=CT
-Australia/Broken_Hill.standard.short=CST
-Australia/Canberra.daylight.short=EST
-Australia/Canberra.generic.short=ET
-Australia/Canberra.standard.short=EST
-Australia/Currie.daylight.short=EST
-Australia/Currie.generic.short=ET
-Australia/Currie.standard.short=EST
-Australia/Darwin.daylight.short=CST
-Australia/Darwin.generic.short=CT
-Australia/Darwin.standard.short=CST
-Australia/Eucla.daylight.short=CWST
-Australia/Eucla.generic.short=CWT
-Australia/Eucla.standard.short=CWST
-Australia/Hobart.daylight.short=EST
-Australia/Hobart.generic.short=ET
-Australia/Hobart.standard.short=EST
-Australia/LHI.daylight.short=LHST
-Australia/LHI.generic.short=LHT
-Australia/LHI.standard.short=LHST
-Australia/Lindeman.daylight.short=EST
-Australia/Lindeman.generic.short=ET
-Australia/Lindeman.standard.short=EST
-Australia/Lord_Howe.daylight.short=LHST
-Australia/Lord_Howe.generic.short=LHT
-Australia/Lord_Howe.standard.short=LHST
-Australia/Melbourne.daylight.short=EST
-Australia/Melbourne.generic.short=ET
-Australia/Melbourne.standard.short=EST
-Australia/North.daylight.short=CST
-Australia/North.generic.short=CT
-Australia/North.standard.short=CST
-Australia/NSW.daylight.short=EST
-Australia/NSW.generic.short=ET
-Australia/NSW.standard.short=EST
-Australia/Perth.daylight.short=WST
-Australia/Perth.generic.short=WT
-Australia/Perth.standard.short=WST
-Australia/Queensland.daylight.short=EST
-Australia/Queensland.generic.short=ET
-Australia/Queensland.standard.short=EST
-Australia/South.daylight.short=CST
-Australia/South.generic.short=CT
-Australia/South.standard.short=CST
-Australia/Sydney.daylight.short=EST
-Australia/Sydney.generic.short=ET
-Australia/Sydney.standard.short=EST
-Australia/Tasmania.daylight.short=EST
-Australia/Tasmania.generic.short=ET
-Australia/Tasmania.standard.short=EST
-Australia/Victoria.daylight.short=EST
-Australia/Victoria.generic.short=ET
-Australia/Victoria.standard.short=EST
-Australia/West.daylight.short=WST
-Australia/West.generic.short=WT
-Australia/West.standard.short=WST
-Australia/Yancowinna.daylight.short=CST
-Australia/Yancowinna.generic.short=CT
-Australia/Yancowinna.standard.short=CST
-BET.daylight.short=BRST
-BET.generic.short=BRT
-BET.standard.short=BRT
-Brazil/Acre.daylight.short=ACST
-Brazil/Acre.generic.short=ACT
-Brazil/Acre.standard.short=ACT
-Brazil/DeNoronha.daylight.short=FNST
-Brazil/DeNoronha.generic.short=FNT
-Brazil/DeNoronha.standard.short=FNT
-Brazil/East.daylight.short=BRST
-Brazil/East.generic.short=BRT
-Brazil/East.standard.short=BRT
-Brazil/West.daylight.short=AMST
-Brazil/West.generic.short=AMT
-Brazil/West.standard.short=AMT
-BST.daylight.short=BDST
-BST.generic.short=BDT
-BST.standard.short=BDT
-Canada/Atlantic.daylight.short=ADT
-Canada/Atlantic.generic.short=AT
-Canada/Atlantic.standard.short=AST
-Canada/Central.daylight.short=CDT
-Canada/Central.generic.short=CT
-Canada/Central.standard.short=CST
-Canada/Eastern.daylight.short=EDT
-Canada/Eastern.generic.short=ET
-Canada/Eastern.standard.short=EST
-Canada/East-Saskatchewan.daylight.short=CDT
-Canada/East-Saskatchewan.generic.short=CT
-Canada/East-Saskatchewan.standard.short=CST
-Canada/Mountain.daylight.short=MDT
-Canada/Mountain.generic.short=MT
-Canada/Mountain.standard.short=MST
-Canada/Newfoundland.daylight.short=NDT
-Canada/Newfoundland.generic.short=NT
-Canada/Newfoundland.standard.short=NST
-Canada/Pacific.daylight.short=PDT
-Canada/Pacific.generic.short=PT
-Canada/Pacific.standard.short=PST
-Canada/Saskatchewan.daylight.short=CDT
-Canada/Saskatchewan.generic.short=CT
-Canada/Saskatchewan.standard.short=CST
-Canada/Yukon.daylight.short=PDT
-Canada/Yukon.generic.short=PT
-Canada/Yukon.standard.short=PST
-CAT.daylight.short=CAST
-CAT.generic.short=CAT
-CAT.standard.short=CAT
-CET.daylight.short=CEST
-CET.generic.short=CET
-CET.standard.short=CET
-Chile/Continental.daylight.short=CLST
-Chile/Continental.generic.short=CLT
-Chile/Continental.standard.short=CLT
-Chile/EasterIsland.daylight.short=EASST
-Chile/EasterIsland.generic.short=EAST
-Chile/EasterIsland.standard.short=EAST
-CNT.daylight.short=NDT
-CNT.generic.short=NT
-CNT.standard.short=NST
-CST6CDT.daylight.short=CDT
-CST6CDT.generic.short=CT
-CST6CDT.standard.short=CST
-CST.daylight.short=CDT
-CST.generic.short=CT
-CST.standard.short=CST
-CTT.daylight.short=CDT
-CTT.generic.short=CT
-CTT.standard.short=CST
-Cuba.daylight.short=CDT
-Cuba.generic.short=CT
-Cuba.standard.short=CST
-EAT.daylight.short=EAST
-EAT.generic.short=EAT
-EAT.standard.short=EAT
-ECT.daylight.short=CEST
-ECT.generic.short=CET
-ECT.standard.short=CET
-EET.daylight.short=EEST
-EET.generic.short=EET
-EET.standard.short=EET
-Egypt.daylight.short=EEST
-Egypt.generic.short=EET
-Egypt.standard.short=EET
-Eire.daylight.short=IST
-Eire.generic.short=IT
-Eire.standard.short=GMT
-EST5EDT.daylight.short=EDT
-EST5EDT.generic.short=ET
-EST5EDT.standard.short=EST
-EST.daylight.short=EDT
-EST.generic.short=ET
-EST.standard.short=EST
-Etc/Greenwich.daylight.short=GMT
-Etc/Greenwich.generic.short=GMT
-Etc/Greenwich.standard.short=GMT
-Etc/UCT.daylight.short=UTC
-Etc/UCT.generic.short=UTC
-Etc/UCT.standard.short=UTC
-Etc/Universal.daylight.short=UTC
-Etc/Universal.generic.short=UTC
-Etc/Universal.standard.short=UTC
-Etc/UTC.daylight.short=UTC
-Etc/UTC.generic.short=UTC
-Etc/UTC.standard.short=UTC
-Etc/Zulu.daylight.short=UTC
-Etc/Zulu.generic.short=UTC
-Etc/Zulu.standard.short=UTC
-Europe/Amsterdam.daylight.short=CEST
-Europe/Amsterdam.generic.short=CET
-Europe/Amsterdam.standard.short=CET
-Europe/Andorra.daylight.short=CEST
-Europe/Andorra.generic.short=CET
-Europe/Andorra.standard.short=CET
-Europe/Athens.daylight.short=EEST
-Europe/Athens.generic.short=EET
-Europe/Athens.standard.short=EET
-Europe/Belfast.daylight.short=BST
-Europe/Belfast.generic.short=BT
-Europe/Belfast.standard.short=GMT
-Europe/Belgrade.daylight.short=CEST
-Europe/Belgrade.generic.short=CET
-Europe/Belgrade.standard.short=CET
-Europe/Berlin.daylight.short=CEST
-Europe/Berlin.generic.short=CET
-Europe/Berlin.standard.short=CET
-Europe/Bratislava.daylight.short=CEST
-Europe/Bratislava.generic.short=CET
-Europe/Bratislava.standard.short=CET
-Europe/Brussels.daylight.short=CEST
-Europe/Brussels.generic.short=CET
-Europe/Brussels.standard.short=CET
-Europe/Bucharest.daylight.short=EEST
-Europe/Bucharest.generic.short=EET
-Europe/Bucharest.standard.short=EET
-Europe/Budapest.daylight.short=CEST
-Europe/Budapest.generic.short=CET
-Europe/Budapest.standard.short=CET
-Europe/Busingen.daylight.short=CEST
-Europe/Busingen.generic.short=CET
-Europe/Busingen.standard.short=CET
-Europe/Chisinau.daylight.short=EEST
-Europe/Chisinau.generic.short=EET
-Europe/Chisinau.standard.short=EET
-Europe/Copenhagen.daylight.short=CEST
-Europe/Copenhagen.generic.short=CET
-Europe/Copenhagen.standard.short=CET
-Europe/Dublin.daylight.short=IST
-Europe/Dublin.generic.short=IT
-Europe/Dublin.standard.short=GMT
-Europe/Gibraltar.daylight.short=CEST
-Europe/Gibraltar.generic.short=CET
-Europe/Gibraltar.standard.short=CET
-Europe/Guernsey.daylight.short=BST
-Europe/Guernsey.generic.short=BT
-Europe/Guernsey.standard.short=GMT
-Europe/Helsinki.daylight.short=EEST
-Europe/Helsinki.generic.short=EET
-Europe/Helsinki.standard.short=EET
-Europe/Isle_of_Man.daylight.short=BST
-Europe/Isle_of_Man.generic.short=BT
-Europe/Isle_of_Man.standard.short=GMT
-Europe/Istanbul.daylight.short=EEST
-Europe/Istanbul.generic.short=EET
-Europe/Istanbul.standard.short=EET
-Europe/Jersey.daylight.short=BST
-Europe/Jersey.generic.short=BT
-Europe/Jersey.standard.short=GMT
-Europe/Kaliningrad.daylight.short=FEST
-Europe/Kaliningrad.generic.short=FET
-Europe/Kaliningrad.standard.short=FET
-Europe/Kiev.daylight.short=EEST
-Europe/Kiev.generic.short=EET
-Europe/Kiev.standard.short=EET
-Europe/Lisbon.daylight.short=WEST
-Europe/Lisbon.generic.short=WET
-Europe/Lisbon.standard.short=WET
-Europe/Ljubljana.daylight.short=CEST
-Europe/Ljubljana.generic.short=CET
-Europe/Ljubljana.standard.short=CET
-Europe/London.daylight.short=BST
-Europe/London.generic.short=BT
-Europe/London.standard.short=GMT
-Europe/Luxembourg.daylight.short=CEST
-Europe/Luxembourg.generic.short=CET
-Europe/Luxembourg.standard.short=CET
-Europe/Madrid.daylight.short=CEST
-Europe/Madrid.generic.short=CET
-Europe/Madrid.standard.short=CET
-Europe/Malta.daylight.short=CEST
-Europe/Malta.generic.short=CET
-Europe/Malta.standard.short=CET
-Europe/Mariehamn.daylight.short=EEST
-Europe/Mariehamn.generic.short=EET
-Europe/Mariehamn.standard.short=EET
-Europe/Minsk.daylight.short=FEST
-Europe/Minsk.generic.short=FET
-Europe/Minsk.standard.short=FET
-Europe/Monaco.daylight.short=CEST
-Europe/Monaco.generic.short=CET
-Europe/Monaco.standard.short=CET
-Europe/Moscow.daylight.short=MSD
-Europe/Moscow.generic.short=MT
-Europe/Moscow.standard.short=MSK
-Europe/Nicosia.daylight.short=EEST
-Europe/Nicosia.generic.short=EET
-Europe/Nicosia.standard.short=EET
-Europe/Oslo.daylight.short=CEST
-Europe/Oslo.generic.short=CET
-Europe/Oslo.standard.short=CET
-Europe/Paris.daylight.short=CEST
-Europe/Paris.generic.short=CET
-Europe/Paris.standard.short=CET
-Europe/Podgorica.daylight.short=CEST
-Europe/Podgorica.generic.short=CET
-Europe/Podgorica.standard.short=CET
-Europe/Prague.daylight.short=CEST
-Europe/Prague.generic.short=CET
-Europe/Prague.standard.short=CET
-Europe/Riga.daylight.short=EEST
-Europe/Riga.generic.short=EET
-Europe/Riga.standard.short=EET
-Europe/Rome.daylight.short=CEST
-Europe/Rome.generic.short=CET
-Europe/Rome.standard.short=CET
-Europe/Samara.daylight.short=SAMST
-Europe/Samara.generic.short=SAMT
-Europe/Samara.standard.short=SAMT
-Europe/San_Marino.daylight.short=CEST
-Europe/San_Marino.generic.short=CET
-Europe/San_Marino.standard.short=CET
-Europe/Sarajevo.daylight.short=CEST
-Europe/Sarajevo.generic.short=CET
-Europe/Sarajevo.standard.short=CET
-Europe/Simferopol.daylight.short=EEST
-Europe/Simferopol.generic.short=EET
-Europe/Simferopol.standard.short=EET
-Europe/Skopje.daylight.short=CEST
-Europe/Skopje.generic.short=CET
-Europe/Skopje.standard.short=CET
-Europe/Sofia.daylight.short=EEST
-Europe/Sofia.generic.short=EET
-Europe/Sofia.standard.short=EET
-Europe/Stockholm.daylight.short=CEST
-Europe/Stockholm.generic.short=CET
-Europe/Stockholm.standard.short=CET
-Europe/Tallinn.daylight.short=EEST
-Europe/Tallinn.generic.short=EET
-Europe/Tallinn.standard.short=EET
-Europe/Tirane.daylight.short=CEST
-Europe/Tirane.generic.short=CET
-Europe/Tirane.standard.short=CET
-Europe/Tiraspol.daylight.short=EEST
-Europe/Tiraspol.generic.short=EET
-Europe/Tiraspol.standard.short=EET
-Europe/Uzhgorod.daylight.short=EEST
-Europe/Uzhgorod.generic.short=EET
-Europe/Uzhgorod.standard.short=EET
-Europe/Vaduz.daylight.short=CEST
-Europe/Vaduz.generic.short=CET
-Europe/Vaduz.standard.short=CET
-Europe/Vatican.daylight.short=CEST
-Europe/Vatican.generic.short=CET
-Europe/Vatican.standard.short=CET
-Europe/Vienna.daylight.short=CEST
-Europe/Vienna.generic.short=CET
-Europe/Vienna.standard.short=CET
-Europe/Vilnius.daylight.short=EEST
-Europe/Vilnius.generic.short=EET
-Europe/Vilnius.standard.short=EET
-Europe/Volgograd.daylight.short=VOLST
-Europe/Volgograd.generic.short=VOLT
-Europe/Volgograd.standard.short=VOLT
-Europe/Warsaw.daylight.short=CEST
-Europe/Warsaw.generic.short=CET
-Europe/Warsaw.standard.short=CET
-Europe/Zagreb.daylight.short=CEST
-Europe/Zagreb.generic.short=CET
-Europe/Zagreb.standard.short=CET
-Europe/Zaporozhye.daylight.short=EEST
-Europe/Zaporozhye.generic.short=EET
-Europe/Zaporozhye.standard.short=EET
-Europe/Zurich.daylight.short=CEST
-Europe/Zurich.generic.short=CET
-Europe/Zurich.standard.short=CET
-GB.daylight.short=BST
-GB-Eire.daylight.short=BST
-GB-Eire.generic.short=BT
-GB-Eire.standard.short=GMT
-GB.generic.short=BT
-GB.standard.short=GMT
-GMT.daylight.short=GMT
-GMT.generic.short=GMT
-GMT.standard.short=GMT
-Greenwich.daylight.short=GMT
-Greenwich.generic.short=GMT
-Greenwich.standard.short=GMT
-Hongkong.daylight.short=HKST
-Hongkong.generic.short=HKT
-Hongkong.standard.short=HKT
-HST.daylight.short=HDT
-HST.generic.short=HT
-HST.standard.short=HST
-Iceland.daylight.short=GMT
-Iceland.generic.short=GMT
-Iceland.standard.short=GMT
-IET.daylight.short=EDT
-IET.generic.short=ET
-IET.standard.short=EST
-Indian/Antananarivo.daylight.short=EAST
-Indian/Antananarivo.generic.short=EAT
-Indian/Antananarivo.standard.short=EAT
-Indian/Chagos.daylight.short=IOST
-Indian/Chagos.generic.short=IOT
-Indian/Chagos.standard.short=IOT
-Indian/Christmas.daylight.short=CXST
-Indian/Christmas.generic.short=CIT
-Indian/Christmas.standard.short=CXT
-Indian/Cocos.daylight.short=CCST
-Indian/Cocos.generic.short=CCT
-Indian/Cocos.standard.short=CCT
-Indian/Comoro.daylight.short=EAST
-Indian/Comoro.generic.short=EAT
-Indian/Comoro.standard.short=EAT
-Indian/Kerguelen.daylight.short=TFST
-Indian/Kerguelen.generic.short=TFT
-Indian/Kerguelen.standard.short=TFT
-Indian/Mahe.daylight.short=SCST
-Indian/Mahe.generic.short=SCT
-Indian/Mahe.standard.short=SCT
-Indian/Maldives.daylight.short=MVST
-Indian/Maldives.generic.short=MVT
-Indian/Maldives.standard.short=MVT
-Indian/Mauritius.daylight.short=MUST
-Indian/Mauritius.generic.short=MUT
-Indian/Mauritius.standard.short=MUT
-Indian/Mayotte.daylight.short=EAST
-Indian/Mayotte.generic.short=EAT
-Indian/Mayotte.standard.short=EAT
-Indian/Reunion.daylight.short=REST
-Indian/Reunion.generic.short=RET
-Indian/Reunion.standard.short=RET
-Iran.daylight.short=IRDT
-Iran.generic.short=IRT
-Iran.standard.short=IRST
-Israel.daylight.short=IDT
-Israel.generic.short=IT
-Israel.standard.short=IST
-IST.daylight.short=IDT
-IST.generic.short=IT
-IST.standard.short=IST
-Jamaica.daylight.short=EDT
-Jamaica.generic.short=ET
-Jamaica.standard.short=EST
-Japan.daylight.short=JDT
-Japan.generic.short=JT
-Japan.standard.short=JST
-JST.daylight.short=JDT
-JST.generic.short=JT
-JST.standard.short=JST
-Kwajalein.daylight.short=MHST
-Kwajalein.generic.short=MHT
-Kwajalein.standard.short=MHT
-Libya.daylight.short=EEST
-Libya.generic.short=EET
-Libya.standard.short=EET
-MET.daylight.short=MEST
-MET.generic.short=MET
-MET.standard.short=MET
-Mexico/BajaNorte.daylight.short=PDT
-Mexico/BajaNorte.generic.short=PT
-Mexico/BajaNorte.standard.short=PST
-Mexico/BajaSur.daylight.short=MDT
-Mexico/BajaSur.generic.short=MT
-Mexico/BajaSur.standard.short=MST
-Mexico/General.daylight.short=CDT
-Mexico/General.generic.short=CT
-Mexico/General.standard.short=CST
-MIT.daylight.short=WSDT
-MIT.generic.short=WST
-MIT.standard.short=WST
-MST7MDT.daylight.short=MDT
-MST7MDT.generic.short=MT
-MST7MDT.standard.short=MST
-MST.daylight.short=MDT
-MST.generic.short=MT
-MST.standard.short=MST
-Navajo.daylight.short=MDT
-Navajo.generic.short=MT
-Navajo.standard.short=MST
-NET.daylight.short=AMST
-NET.generic.short=AMT
-NET.standard.short=AMT
-NST.daylight.short=NZDT
-NST.generic.short=NZT
-NST.standard.short=NZST
-NZ-CHAT.daylight.short=CHADT
-NZ-CHAT.generic.short=CHAT
-NZ-CHAT.standard.short=CHAST
-NZ.daylight.short=NZDT
-NZ.generic.short=NZT
-NZ.standard.short=NZST
-Pacific/Apia.daylight.short=WSDT
-Pacific/Apia.generic.short=WST
-Pacific/Apia.standard.short=WST
-Pacific/Auckland.daylight.short=NZDT
-Pacific/Auckland.generic.short=NZT
-Pacific/Auckland.standard.short=NZST
-Pacific/Chatham.daylight.short=CHADT
-Pacific/Chatham.generic.short=CHAT
-Pacific/Chatham.standard.short=CHAST
-Pacific/Chuuk.daylight.short=CHUST
-Pacific/Chuuk.generic.short=CHUT
-Pacific/Chuuk.standard.short=CHUT
-Pacific/Easter.daylight.short=EASST
-Pacific/Easter.generic.short=EAST
-Pacific/Easter.standard.short=EAST
-Pacific/Efate.daylight.short=VUST
-Pacific/Efate.generic.short=VUT
-Pacific/Efate.standard.short=VUT
-Pacific/Enderbury.daylight.short=PHOST
-Pacific/Enderbury.generic.short=PHOT
-Pacific/Enderbury.standard.short=PHOT
-Pacific/Fakaofo.daylight.short=TKST
-Pacific/Fakaofo.generic.short=TKT
-Pacific/Fakaofo.standard.short=TKT
-Pacific/Fiji.daylight.short=FJST
-Pacific/Fiji.generic.short=FJT
-Pacific/Fiji.standard.short=FJT
-Pacific/Funafuti.daylight.short=TVST
-Pacific/Funafuti.generic.short=TVT
-Pacific/Funafuti.standard.short=TVT
-Pacific/Galapagos.daylight.short=GALST
-Pacific/Galapagos.generic.short=GALT
-Pacific/Galapagos.standard.short=GALT
-Pacific/Gambier.daylight.short=GAMST
-Pacific/Gambier.generic.short=GAMT
-Pacific/Gambier.standard.short=GAMT
-Pacific/Guadalcanal.daylight.short=SBST
-Pacific/Guadalcanal.generic.short=SBT
-Pacific/Guadalcanal.standard.short=SBT
-Pacific/Guam.daylight.short=ChDT
-Pacific/Guam.generic.short=ChT
-Pacific/Guam.standard.short=ChST
-Pacific/Honolulu.daylight.short=HDT
-Pacific/Honolulu.generic.short=HT
-Pacific/Honolulu.standard.short=HST
-Pacific/Johnston.daylight.short=HDT
-Pacific/Johnston.generic.short=HT
-Pacific/Johnston.standard.short=HST
-Pacific/Kiritimati.daylight.short=LINST
-Pacific/Kiritimati.generic.short=LINT
-Pacific/Kiritimati.standard.short=LINT
-Pacific/Kosrae.daylight.short=KOSST
-Pacific/Kosrae.generic.short=KOST
-Pacific/Kosrae.standard.short=KOST
-Pacific/Kwajalein.daylight.short=MHST
-Pacific/Kwajalein.generic.short=MHT
-Pacific/Kwajalein.standard.short=MHT
-Pacific/Majuro.daylight.short=MHST
-Pacific/Majuro.generic.short=MHT
-Pacific/Majuro.standard.short=MHT
-Pacific/Marquesas.daylight.short=MARST
-Pacific/Marquesas.generic.short=MART
-Pacific/Marquesas.standard.short=MART
-Pacific/Midway.daylight.short=SDT
-Pacific/Midway.generic.short=ST
-Pacific/Midway.standard.short=SST
-Pacific/Nauru.daylight.short=NRST
-Pacific/Nauru.generic.short=NRT
-Pacific/Nauru.standard.short=NRT
-Pacific/Niue.daylight.short=NUST
-Pacific/Niue.generic.short=NUT
-Pacific/Niue.standard.short=NUT
-Pacific/Norfolk.daylight.short=NFST
-Pacific/Norfolk.generic.short=NFT
-Pacific/Norfolk.standard.short=NFT
-Pacific/Noumea.daylight.short=NCST
-Pacific/Noumea.generic.short=NCT
-Pacific/Noumea.standard.short=NCT
-Pacific/Pago_Pago.daylight.short=SDT
-Pacific/Pago_Pago.generic.short=ST
-Pacific/Pago_Pago.standard.short=SST
-Pacific/Palau.daylight.short=PWST
-Pacific/Palau.generic.short=PWT
-Pacific/Palau.standard.short=PWT
-Pacific/Pitcairn.daylight.short=PDT
-Pacific/Pitcairn.generic.short=PT
-Pacific/Pitcairn.standard.short=PST
-Pacific/Pohnpei.daylight.short=PONST
-Pacific/Pohnpei.generic.short=PONT
-Pacific/Pohnpei.standard.short=PONT
-Pacific/Ponape.daylight.short=PONST
-Pacific/Ponape.generic.short=PONT
-Pacific/Ponape.standard.short=PONT
-Pacific/Port_Moresby.daylight.short=PGST
-Pacific/Port_Moresby.generic.short=PGT
-Pacific/Port_Moresby.standard.short=PGT
-Pacific/Rarotonga.daylight.short=CKHST
-Pacific/Rarotonga.generic.short=CKT
-Pacific/Rarotonga.standard.short=CKT
-Pacific/Saipan.daylight.short=ChDT
-Pacific/Saipan.generic.short=ChT
-Pacific/Saipan.standard.short=ChST
-Pacific/Samoa.daylight.short=SDT
-Pacific/Samoa.generic.short=ST
-Pacific/Samoa.standard.short=SST
-Pacific/Tahiti.daylight.short=TAHST
-Pacific/Tahiti.generic.short=TAHT
-Pacific/Tahiti.standard.short=TAHT
-Pacific/Tarawa.daylight.short=GILST
-Pacific/Tarawa.generic.short=GILT
-Pacific/Tarawa.standard.short=GILT
-Pacific/Tongatapu.daylight.short=TOST
-Pacific/Tongatapu.generic.short=TOT
-Pacific/Tongatapu.standard.short=TOT
-Pacific/Truk.daylight.short=CHUST
-Pacific/Truk.generic.short=CHUT
-Pacific/Truk.standard.short=CHUT
-Pacific/Wake.daylight.short=WAKST
-Pacific/Wake.generic.short=WAKT
-Pacific/Wake.standard.short=WAKT
-Pacific/Wallis.daylight.short=WFST
-Pacific/Wallis.generic.short=WFT
-Pacific/Wallis.standard.short=WFT
-Pacific/Yap.daylight.short=CHUST
-Pacific/Yap.generic.short=CHUT
-Pacific/Yap.standard.short=CHUT
-PLT.daylight.short=PKST
-PLT.generic.short=PKT
-PLT.standard.short=PKT
-PNT.daylight.short=MDT
-PNT.generic.short=MT
-PNT.standard.short=MST
-Poland.daylight.short=CEST
-Poland.generic.short=CET
-Poland.standard.short=CET
-Portugal.daylight.short=WEST
-Portugal.generic.short=WET
-Portugal.standard.short=WET
-PRC.daylight.short=CDT
-PRC.generic.short=CT
-PRC.standard.short=CST
-PRT.daylight.short=ADT
-PRT.generic.short=AT
-PRT.standard.short=AST
-PST8PDT.daylight.short=PDT
-PST8PDT.generic.short=PT
-PST8PDT.standard.short=PST
-PST.daylight.short=PDT
-PST.generic.short=PT
-PST.standard.short=PST
-ROK.daylight.short=KDT
-ROK.generic.short=KT
-ROK.standard.short=KST
-Singapore.daylight.short=SGST
-Singapore.generic.short=SGT
-Singapore.standard.short=SGT
-SST.daylight.short=SBST
-SST.generic.short=SBT
-SST.standard.short=SBT
-SystemV/AST4ADT.daylight.short=ADT
-SystemV/AST4ADT.generic.short=AT
-SystemV/AST4ADT.standard.short=AST
-SystemV/AST4.daylight.short=ADT
-SystemV/AST4.generic.short=AT
-SystemV/AST4.standard.short=AST
-SystemV/CST6CDT.daylight.short=CDT
-SystemV/CST6CDT.generic.short=CT
-SystemV/CST6CDT.standard.short=CST
-SystemV/CST6.daylight.short=CDT
-SystemV/CST6.generic.short=CT
-SystemV/CST6.standard.short=CST
-SystemV/EST5.daylight.short=EDT
-SystemV/EST5EDT.daylight.short=EDT
-SystemV/EST5EDT.generic.short=ET
-SystemV/EST5EDT.standard.short=EST
-SystemV/EST5.generic.short=ET
-SystemV/EST5.standard.short=EST
-SystemV/HST10.daylight.short=HDT
-SystemV/HST10.generic.short=HT
-SystemV/HST10.standard.short=HST
-SystemV/MST7.daylight.short=MDT
-SystemV/MST7.generic.short=MT
-SystemV/MST7MDT.daylight.short=MDT
-SystemV/MST7MDT.generic.short=MT
-SystemV/MST7MDT.standard.short=MST
-SystemV/MST7.standard.short=MST
-SystemV/PST8.daylight.short=PDT
-SystemV/PST8.generic.short=PT
-SystemV/PST8PDT.daylight.short=PDT
-SystemV/PST8PDT.generic.short=PT
-SystemV/PST8PDT.standard.short=PST
-SystemV/PST8.standard.short=PST
-SystemV/YST9.daylight.short=AKDT
-SystemV/YST9.generic.short=AKT
-SystemV/YST9.standard.short=AKST
-SystemV/YST9YDT.daylight.short=AKDT
-SystemV/YST9YDT.generic.short=AKT
-SystemV/YST9YDT.standard.short=AKST
-Turkey.daylight.short=EEST
-Turkey.generic.short=EET
-Turkey.standard.short=EET
-UCT.daylight.short=UTC
-UCT.generic.short=UTC
-UCT.standard.short=UTC
-Universal.daylight.short=UTC
-Universal.generic.short=UTC
-Universal.standard.short=UTC
-US/Alaska.daylight.short=AKDT
-US/Alaska.generic.short=AKT
-US/Alaska.standard.short=AKST
-US/Aleutian.daylight.short=HADT
-US/Aleutian.generic.short=HAT
-US/Aleutian.standard.short=HAST
-US/Arizona.daylight.short=MDT
-US/Arizona.generic.short=MT
-US/Arizona.standard.short=MST
-US/Central.daylight.short=CDT
-US/Central.generic.short=CT
-US/Central.standard.short=CST
-US/Eastern.daylight.short=EDT
-US/Eastern.generic.short=ET
-US/Eastern.standard.short=EST
-US/East-Indiana.daylight.short=EDT
-US/East-Indiana.generic.short=ET
-US/East-Indiana.standard.short=EST
-US/Hawaii.daylight.short=HDT
-US/Hawaii.generic.short=HT
-US/Hawaii.standard.short=HST
-US/Indiana-Starke.daylight.short=CDT
-US/Indiana-Starke.generic.short=CT
-US/Indiana-Starke.standard.short=CST
-US/Michigan.daylight.short=EDT
-US/Michigan.generic.short=ET
-US/Michigan.standard.short=EST
-US/Mountain.daylight.short=MDT
-US/Mountain.generic.short=MT
-US/Mountain.standard.short=MST
-US/Pacific.daylight.short=PDT
-US/Pacific.generic.short=PT
-US/Pacific-New.daylight.short=PDT
-US/Pacific-New.generic.short=PT
-US/Pacific-New.standard.short=PST
-US/Pacific.standard.short=PST
-US/Samoa.daylight.short=SDT
-US/Samoa.generic.short=ST
-US/Samoa.standard.short=SST
-UTC.daylight.short=UTC
-UTC.generic.short=UTC
-UTC.standard.short=UTC
-VST.daylight.short=ICST
-VST.generic.short=ICT
-VST.standard.short=ICT
-WET.daylight.short=WEST
-WET.generic.short=WET
-WET.standard.short=WET
-W-SU.daylight.short=MSD
-W-SU.generic.short=MT
-W-SU.standard.short=MSK
-Zulu.daylight.short=UTC
-Zulu.generic.short=UTC
-Zulu.standard.short=UTC
diff --git a/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_pt_BR.properties b/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_pt_BR.properties
deleted file mode 100644
index 763311b50ca..00000000000
--- a/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_pt_BR.properties
+++ /dev/null
@@ -1,651 +0,0 @@
-ACT.daylight.long=Fuso Hor\u00E1rio de Ver\u00E3o Central (Territ\u00F3rio do Norte)
-ACT.generic.long=Hor\u00E1rio Central (Territ\u00F3rio do Norte)
-ACT.standard.long=Hor\u00E1rio-Padr\u00E3o Central (Territ\u00F3rio do Norte)
-AET.daylight.long=Fuso Hor\u00E1rio de Ver\u00E3o Oriental (Nova Gales do Sul)
-AET.generic.long=Hor\u00E1rio Oriental (Nova Gales do Sul)
-AET.standard.long=Hor\u00E1rio-Padr\u00E3o Oriental (Nova Gales do Sul)
-AGT.generic.long=Hor\u00E1rio da Argentina
-ART.generic.long=Hor\u00E1rio da Europa Oriental
-AST.generic.long=Hor\u00E1rio do Alasca
-Africa/Abidjan.generic.long=Hor\u00E1rio M\u00E9dio de Greenwich
-Africa/Accra.generic.long=Fuso Hor\u00E1rio do Meridiano de Gana
-Africa/Addis_Ababa.generic.long=Hor\u00E1rio do Leste da \u00C1frica
-Africa/Algiers.generic.long=Hor\u00E1rio da Europa Central
-Africa/Asmara.generic.long=Hor\u00E1rio do Leste da \u00C1frica
-Africa/Asmera.generic.long=Hor\u00E1rio do Leste da \u00C1frica
-Africa/Bamako.generic.long=Hor\u00E1rio M\u00E9dio de Greenwich
-Africa/Bangui.generic.long=Hor\u00E1rio da \u00C1frica Ocidental
-Africa/Banjul.generic.long=Hor\u00E1rio M\u00E9dio de Greenwich
-Africa/Bissau.generic.long=Hor\u00E1rio M\u00E9dio de Greenwich
-Africa/Blantyre.generic.long=Hor\u00E1rio da \u00C1frica Central
-Africa/Brazzaville.generic.long=Hor\u00E1rio da \u00C1frica Ocidental
-Africa/Bujumbura.generic.long=Hor\u00E1rio da \u00C1frica Central
-Africa/Cairo.generic.long=Hor\u00E1rio da Europa Oriental
-Africa/Casablanca.generic.long=Hor\u00E1rio da Europa Ocidental
-Africa/Ceuta.generic.long=Hor\u00E1rio da Europa Central
-Africa/Conakry.generic.long=Hor\u00E1rio M\u00E9dio de Greenwich
-Africa/Dakar.generic.long=Hor\u00E1rio M\u00E9dio de Greenwich
-Africa/Dar_es_Salaam.generic.long=Hor\u00E1rio do Leste da \u00C1frica
-Africa/Djibouti.generic.long=Hor\u00E1rio do Leste da \u00C1frica
-Africa/Douala.generic.long=Hor\u00E1rio da \u00C1frica Ocidental
-Africa/El_Aaiun.generic.long=Hor\u00E1rio da Europa Ocidental
-Africa/Freetown.generic.long=Hor\u00E1rio de Serra Leoa
-Africa/Gaborone.generic.long=Hor\u00E1rio da \u00C1frica Central
-Africa/Harare.generic.long=Hor\u00E1rio da \u00C1frica Central
-Africa/Johannesburg.generic.long=Hor\u00E1rio da \u00C1frica do Sul
-Africa/Juba.generic.long=Hor\u00E1rio do Leste da \u00C1frica
-Africa/Kampala.generic.long=Hor\u00E1rio do Leste da \u00C1frica
-Africa/Khartoum.generic.long=Hor\u00E1rio do Leste da \u00C1frica
-Africa/Kigali.generic.long=Hor\u00E1rio da \u00C1frica Central
-Africa/Kinshasa.generic.long=Hor\u00E1rio da \u00C1frica Ocidental
-Africa/Lagos.generic.long=Hor\u00E1rio da \u00C1frica Ocidental
-Africa/Libreville.generic.long=Hor\u00E1rio da \u00C1frica Ocidental
-Africa/Lome.generic.long=Hor\u00E1rio M\u00E9dio de Greenwich
-Africa/Luanda.generic.long=Hor\u00E1rio da \u00C1frica Ocidental
-Africa/Lubumbashi.generic.long=Hor\u00E1rio da \u00C1frica Central
-Africa/Lusaka.generic.long=Hor\u00E1rio da \u00C1frica Central
-Africa/Malabo.generic.long=Hor\u00E1rio da \u00C1frica Ocidental
-Africa/Maputo.generic.long=Hor\u00E1rio da \u00C1frica Central
-Africa/Maseru.generic.long=Hor\u00E1rio da \u00C1frica do Sul
-Africa/Mbabane.generic.long=Hor\u00E1rio da \u00C1frica do Sul
-Africa/Mogadishu.generic.long=Hor\u00E1rio do Leste da \u00C1frica
-Africa/Monrovia.generic.long=Hor\u00E1rio M\u00E9dio de Greenwich
-Africa/Nairobi.generic.long=Hor\u00E1rio do Leste da \u00C1frica
-Africa/Ndjamena.generic.long=Hor\u00E1rio da \u00C1frica Ocidental
-Africa/Niamey.generic.long=Hor\u00E1rio da \u00C1frica Ocidental
-Africa/Nouakchott.generic.long=Hor\u00E1rio M\u00E9dio de Greenwich
-Africa/Ouagadougou.generic.long=Hor\u00E1rio M\u00E9dio de Greenwich
-Africa/Porto-Novo.generic.long=Hor\u00E1rio da \u00C1frica Ocidental
-Africa/Sao_Tome.generic.long=Hor\u00E1rio M\u00E9dio de Greenwich
-Africa/Timbuktu.generic.long=Hor\u00E1rio M\u00E9dio de Greenwich
-Africa/Tripoli.generic.long=Hor\u00e1rio da Europa Oriental
-Africa/Tunis.generic.long=Hor\u00E1rio da Europa Central
-Africa/Windhoek.generic.long=Hor\u00E1rio da \u00C1frica Ocidental
-America/Adak.generic.long=Hor\u00E1rio do Hava\u00ED-Aleutas
-America/Anchorage.generic.long=Hor\u00E1rio do Alasca
-America/Anguilla.generic.long=Hor\u00E1rio do Atl\u00E2ntico
-America/Antigua.generic.long=Hor\u00E1rio do Atl\u00E2ntico
-America/Araguaina.generic.long=Hor\u00E1rio de Bras\u00EDlia
-America/Argentina/Buenos_Aires.generic.long=Hor\u00E1rio da Argentina
-America/Argentina/Catamarca.generic.long=Hor\u00E1rio da Argentina
-America/Argentina/ComodRivadavia.generic.long=Hor\u00E1rio da Argentina
-America/Argentina/Cordoba.generic.long=Hor\u00E1rio da Argentina
-America/Argentina/Jujuy.generic.long=Hor\u00E1rio da Argentina
-America/Argentina/La_Rioja.generic.long=Hor\u00E1rio da Argentina
-America/Argentina/Mendoza.generic.long=Hor\u00E1rio da Argentina
-America/Argentina/Rio_Gallegos.generic.long=Hor\u00E1rio da Argentina
-America/Argentina/Salta.generic.long=Hor\u00E1rio da Argentina
-America/Argentina/San_Juan.generic.long=Hor\u00E1rio da Argentina
-America/Argentina/San_Luis.generic.long=Hor\u00e1rio da Argentina
-America/Argentina/Tucuman.generic.long=Hor\u00E1rio da Argentina
-America/Argentina/Ushuaia.generic.long=Hor\u00E1rio da Argentina
-America/Aruba.generic.long=Hor\u00E1rio do Atl\u00E2ntico
-America/Asuncion.generic.long=Hor\u00E1rio do Paraguai
-America/Atikokan.generic.long=Hor\u00E1rio do Leste
-America/Atka.generic.long=Hor\u00E1rio do Hava\u00ED-Aleutas
-America/Bahia.generic.long=Hor\u00E1rio de Bras\u00EDlia
-America/Bahia_Banderas.generic.long=Hor\u00E1rio Central
-America/Barbados.generic.long=Hor\u00E1rio do Atl\u00E2ntico
-America/Belem.generic.long=Hor\u00E1rio de Bras\u00EDlia
-America/Belize.generic.long=Hor\u00E1rio Central
-America/Blanc-Sablon.generic.long=Hor\u00E1rio do Atl\u00E2ntico
-America/Boa_Vista.generic.long=Hor\u00E1rio do Amazonas
-America/Bogota.generic.long=Hor\u00E1rio da Col\u00F4mbia
-America/Boise.generic.long=Hor\u00E1rio das Montanhas Rochosas
-America/Buenos_Aires.generic.long=Hor\u00E1rio da Argentina
-America/Cambridge_Bay.generic.long=Hor\u00E1rio das Montanhas Rochosas
-America/Campo_Grande.generic.long=Hor\u00E1rio do Amazonas
-America/Cancun.generic.long=Hor\u00E1rio Central
-America/Caracas.generic.long=Hor\u00E1rio da Venezuela
-America/Catamarca.generic.long=Hor\u00E1rio da Argentina
-America/Cayenne.generic.long=Hor\u00E1rio da Guiana Francesa
-America/Cayman.generic.long=Hor\u00E1rio do Leste
-America/Chicago.generic.long=Hor\u00E1rio Central
-America/Chihuahua.generic.long=Hor\u00E1rio das Montanhas Rochosas
-America/Coral_Harbour.generic.long=Hor\u00E1rio do Leste
-America/Cordoba.generic.long=Hor\u00E1rio da Argentina
-America/Costa_Rica.generic.long=Hor\u00E1rio Central
-America/Creston.generic.long=Hor\u00E1rio das Montanhas Rochosas
-America/Cuiaba.generic.long=Hor\u00E1rio do Amazonas
-America/Curacao.generic.long=Hor\u00E1rio do Atl\u00E2ntico
-America/Danmarkshavn.generic.long=Hor\u00E1rio M\u00E9dio de Greenwich
-America/Dawson.generic.long=Hor\u00E1rio do Pac\u00EDfico
-America/Dawson_Creek.generic.long=Hor\u00E1rio das Montanhas Rochosas
-America/Denver.generic.long=Hor\u00E1rio das Montanhas Rochosas
-America/Detroit.generic.long=Hor\u00E1rio do Leste
-America/Dominica.generic.long=Hor\u00E1rio do Atl\u00E2ntico
-America/Edmonton.generic.long=Hor\u00E1rio das Montanhas Rochosas
-America/Eirunepe.generic.long=Fuso hor\u00e1rio do Acre
-America/El_Salvador.generic.long=Hor\u00E1rio Central
-America/Ensenada.generic.long=Hor\u00E1rio do Pac\u00EDfico
-America/Fort_Wayne.generic.long=Hor\u00E1rio do Leste
-America/Fortaleza.generic.long=Hor\u00E1rio de Bras\u00EDlia
-America/Glace_Bay.generic.long=Hor\u00E1rio do Atl\u00E2ntico
-America/Godthab.generic.long=Hor\u00E1rio da Groenl\u00E2ndia Ocidental
-America/Goose_Bay.generic.long=Hor\u00E1rio do Atl\u00E2ntico
-America/Grand_Turk.generic.long=Hor\u00E1rio do Leste
-America/Grenada.generic.long=Hor\u00E1rio do Atl\u00E2ntico
-America/Guadeloupe.generic.long=Hor\u00E1rio do Atl\u00E2ntico
-America/Guatemala.generic.long=Hor\u00E1rio Central
-America/Guayaquil.generic.long=Hor\u00E1rio do Equador
-America/Guyana.generic.long=Hor\u00E1rios da Guiana
-America/Halifax.generic.long=Hor\u00E1rio do Atl\u00E2ntico
-America/Havana.generic.long=Hor\u00E1rio de Cuba
-America/Hermosillo.generic.long=Hor\u00E1rio das Montanhas Rochosas
-America/Indiana/Indianapolis.generic.long=Hor\u00E1rio do Leste
-America/Indiana/Knox.generic.long=Hor\u00E1rio Central
-America/Indiana/Marengo.generic.long=Hor\u00E1rio do Leste
-America/Indiana/Petersburg.generic.long=Hor\u00E1rio do Leste
-America/Indiana/Tell_City.generic.long=Hor\u00E1rio Central
-America/Indiana/Vevay.generic.long=Hor\u00E1rio do Leste
-America/Indiana/Vincennes.generic.long=Hor\u00E1rio do Leste
-America/Indiana/Winamac.generic.long=Hor\u00E1rio do Leste
-America/Indianapolis.generic.long=Hor\u00E1rio do Leste
-America/Inuvik.generic.long=Hor\u00E1rio das Montanhas Rochosas
-America/Iqaluit.generic.long=Hor\u00E1rio do Leste
-America/Jamaica.generic.long=Hor\u00E1rio do Leste
-America/Jujuy.generic.long=Hor\u00E1rio da Argentina
-America/Juneau.generic.long=Hor\u00E1rio do Alasca
-America/Kentucky/Louisville.generic.long=Hor\u00E1rio do Leste
-America/Kentucky/Monticello.generic.long=Hor\u00E1rio do Leste
-America/Knox_IN.generic.long=Hor\u00E1rio Central
-America/Kralendijk.generic.long=Hor\u00E1rio do Atl\u00E2ntico
-America/La_Paz.generic.long=Hor\u00E1rio da Bol\u00EDvia
-America/Lima.generic.long=Hor\u00E1rio do Peru
-America/Los_Angeles.generic.long=Hor\u00E1rio do Pac\u00EDfico
-America/Louisville.generic.long=Hor\u00E1rio do Leste
-America/Lower_Princes.generic.long=Hor\u00E1rio do Atl\u00E2ntico
-America/Maceio.generic.long=Hor\u00E1rio de Bras\u00EDlia
-America/Managua.generic.long=Hor\u00E1rio Central
-America/Manaus.generic.long=Hor\u00E1rio do Amazonas
-America/Marigot.generic.long=Hor\u00E1rio do Atl\u00E2ntico
-America/Martinique.generic.long=Hor\u00E1rio do Atl\u00E2ntico
-America/Matamoros.generic.long=Hor\u00E1rio Central
-America/Mazatlan.generic.long=Hor\u00E1rio das Montanhas Rochosas
-America/Mendoza.generic.long=Hor\u00E1rio da Argentina
-America/Menominee.generic.long=Hor\u00E1rio Central
-America/Merida.generic.long=Hor\u00E1rio Central
-America/Metlakatla.daylight.long=Hor\u00E1rio de Luz Natural de Metlakatla
-America/Metlakatla.generic.long=Hor\u00E1rio de Metlakatla
-America/Metlakatla.standard.long=Hor\u00E1rio Padr\u00E3o de Metlakatla
-America/Mexico_City.generic.long=Hor\u00E1rio Central
-America/Miquelon.generic.long=Hor\u00E1rio de Saint Pierre e Miquelon
-America/Moncton.generic.long=Hor\u00E1rio do Atl\u00E2ntico
-America/Monterrey.generic.long=Hor\u00E1rio Central
-America/Montevideo.generic.long=Hor\u00E1rio do Uruguai
-America/Montreal.generic.long=Hor\u00E1rio do Leste
-America/Montserrat.generic.long=Hor\u00E1rio do Atl\u00E2ntico
-America/Nassau.generic.long=Hor\u00E1rio do Leste
-America/New_York.generic.long=Hor\u00E1rio do Leste
-America/Nipigon.generic.long=Hor\u00E1rio do Leste
-America/Nome.generic.long=Hor\u00E1rio do Alasca
-America/Noronha.generic.long=Hor\u00E1rio de Fernando de Noronha
-America/North_Dakota/Beulah.generic.long=Hor\u00E1rio Central
-America/North_Dakota/Center.generic.long=Hor\u00E1rio Central
-America/North_Dakota/New_Salem.generic.long=Hor\u00E1rio Central
-America/Ojinaga.generic.long=Hor\u00E1rio das Montanhas Rochosas
-America/Panama.generic.long=Hor\u00E1rio do Leste
-America/Pangnirtung.generic.long=Hor\u00E1rio do Leste
-America/Paramaribo.generic.long=Hor\u00E1rio do Suriname
-America/Phoenix.generic.long=Hor\u00E1rio das Montanhas Rochosas
-America/Port-au-Prince.generic.long=Hor\u00E1rio do Leste
-America/Port_of_Spain.generic.long=Hor\u00E1rio do Atl\u00E2ntico
-America/Porto_Acre.generic.long=Fuso hor\u00e1rio do Acre
-America/Porto_Velho.generic.long=Hor\u00E1rio do Amazonas
-America/Puerto_Rico.generic.long=Hor\u00E1rio do Atl\u00E2ntico
-America/Rainy_River.generic.long=Hor\u00E1rio Central
-America/Rankin_Inlet.generic.long=Hor\u00E1rio Central
-America/Recife.generic.long=Hor\u00E1rio de Bras\u00EDlia
-America/Regina.generic.long=Hor\u00E1rio Central
-America/Resolute.generic.long=Hor\u00E1rio Central
-America/Rio_Branco.generic.long=Fuso hor\u00e1rio do Acre
-America/Rosario.generic.long=Hor\u00E1rio da Argentina
-America/Santa_Isabel.generic.long=Hor\u00E1rio do Pac\u00EDfico
-America/Santarem.generic.long=Hor\u00E1rio de Bras\u00EDlia
-America/Santiago.generic.long=Hor\u00E1rio do Chile
-America/Santo_Domingo.generic.long=Hor\u00E1rio do Atl\u00E2ntico
-America/Sao_Paulo.generic.long=Hor\u00E1rio de Bras\u00EDlia
-America/Scoresbysund.generic.long=Hor\u00E1rio da Groenl\u00E2ndia Oriental
-America/Shiprock.generic.long=Hor\u00E1rio das Montanhas Rochosas
-America/Sitka.generic.long=Hor\u00E1rio do Alasca
-America/St_Barthelemy.generic.long=Hor\u00E1rio do Atl\u00E2ntico
-America/St_Johns.generic.long=Hor\u00E1rio de Terra Nova
-America/St_Kitts.generic.long=Hor\u00E1rio do Atl\u00E2ntico
-America/St_Lucia.generic.long=Hor\u00E1rio do Atl\u00E2ntico
-America/St_Thomas.generic.long=Hor\u00E1rio do Atl\u00E2ntico
-America/St_Vincent.generic.long=Hor\u00E1rio do Atl\u00E2ntico
-America/Swift_Current.generic.long=Hor\u00E1rio Central
-America/Tegucigalpa.generic.long=Hor\u00E1rio Central
-America/Thule.generic.long=Hor\u00E1rio do Atl\u00E2ntico
-America/Thunder_Bay.generic.long=Hor\u00E1rio do Leste
-America/Tijuana.generic.long=Hor\u00E1rio do Pac\u00EDfico
-America/Toronto.generic.long=Hor\u00E1rio do Leste
-America/Tortola.generic.long=Hor\u00E1rio do Atl\u00E2ntico
-America/Vancouver.generic.long=Hor\u00E1rio do Pac\u00EDfico
-America/Virgin.generic.long=Hor\u00E1rio do Atl\u00E2ntico
-America/Whitehorse.generic.long=Hor\u00E1rio do Pac\u00EDfico
-America/Winnipeg.generic.long=Hor\u00E1rio Central
-America/Yakutat.generic.long=Hor\u00E1rio do Alasca
-America/Yellowknife.generic.long=Hor\u00E1rio das Montanhas Rochosas
-Antarctica/Casey.daylight.long=Fuso Hor\u00E1rio de Ver\u00E3o Ocidental (Austr\u00E1lia)
-Antarctica/Casey.generic.long=Hor\u00E1rio Ocidental (Austr\u00E1lia)
-Antarctica/Casey.standard.long=Hor\u00E1rio-Padr\u00E3o Ocidental (Austr\u00E1lia)
-Antarctica/Davis.generic.long=Hor\u00E1rio de Davis
-Antarctica/DumontDUrville.generic.long=Fuso Hor\u00E1rio de Dumont-d'Urville
-Antarctica/Macquarie.daylight.long=Fuso Hor\u00E1rio de Ver\u00E3o da Ilha de Macquarie
-Antarctica/Macquarie.generic.long=Fuso Hor\u00E1rio da Ilha de Macquarie
-Antarctica/Macquarie.standard.long=Fuso Hor\u00E1rio da Ilha de Macquarie
-Antarctica/Mawson.generic.long=Hor\u00E1rio de Mawson
-Antarctica/McMurdo.generic.long=Hor\u00E1rio da Nova Zel\u00E2ndia
-Antarctica/Palmer.generic.long=Hor\u00E1rio do Chile
-Antarctica/Rothera.generic.long=Hor\u00E1rio de Rothera
-Antarctica/South_Pole.generic.long=Hor\u00E1rio da Nova Zel\u00E2ndia
-Antarctica/Syowa.generic.long=Hor\u00E1rio de Syowa
-Antarctica/Vostok.generic.long=Hor\u00E1rio de Vostok
-Arctic/Longyearbyen.generic.long=Hor\u00E1rio da Europa Central
-Asia/Aden.generic.long=Hor\u00E1rio da Ar\u00E1bia
-Asia/Almaty.generic.long=Hor\u00E1rio de Alma-Ata
-Asia/Amman.generic.long=Hor\u00e1rio da Ar\u00e1bia
-Asia/Anadyr.generic.long=Hor\u00E1rio de Anadyr
-Asia/Aqtau.generic.long=Hor\u00E1rio de Aqtau
-Asia/Aqtobe.generic.long=Hor\u00E1rio de Aqtobe
-Asia/Ashgabat.generic.long=Hor\u00E1rio do Turcomenist\u00E3o
-Asia/Ashkhabad.generic.long=Hor\u00E1rio do Turcomenist\u00E3o
-Asia/Baghdad.generic.long=Hor\u00E1rio da Ar\u00E1bia
-Asia/Bahrain.generic.long=Hor\u00E1rio da Ar\u00E1bia
-Asia/Baku.generic.long=Hor\u00E1rio do Azerbaij\u00E3o
-Asia/Bangkok.generic.long=Hor\u00E1rio da Indochina
-Asia/Beirut.generic.long=Hor\u00E1rio da Europa Oriental
-Asia/Bishkek.generic.long=Hor\u00E1rio do Quirguist\u00E3o
-Asia/Brunei.generic.long=Hor\u00E1rio de Brunei
-Asia/Calcutta.generic.long=Hor\u00E1rio da \u00CDndia
-Asia/Choibalsan.generic.long=Hor\u00E1rio de Choibalsan
-Asia/Chongqing.generic.long=Hor\u00E1rio da China
-Asia/Chungking.generic.long=Hor\u00E1rio da China
-Asia/Colombo.generic.long=Hor\u00E1rio da \u00CDndia
-Asia/Dacca.generic.long=Hor\u00E1rio de Bangladesh
-Asia/Damascus.generic.long=Hor\u00E1rio da Europa Oriental
-Asia/Dhaka.generic.long=Hor\u00E1rio de Bangladesh
-Asia/Dili.generic.long=Hor\u00E1rio do Timor-Leste
-Asia/Dubai.generic.long=Hor\u00E1rio do Golfo
-Asia/Dushanbe.generic.long=Hor\u00E1rio do Tadjiquist\u00E3o
-Asia/Gaza.generic.long=Hor\u00E1rio da Europa Oriental
-Asia/Harbin.generic.long=Hor\u00E1rio da China
-Asia/Hebron.generic.long=Hor\u00E1rio da Europa Oriental
-Asia/Ho_Chi_Minh.generic.long=Hor\u00E1rio da Indochina
-Asia/Hong_Kong.generic.long=Hor\u00E1rio de Hong Kong
-Asia/Hovd.generic.long=Hor\u00E1rio de Hovd
-Asia/Irkutsk.generic.long=Hor\u00E1rio de Irkutsk
-Asia/Istanbul.generic.long=Hor\u00E1rio da Europa Oriental
-Asia/Jakarta.generic.long=Hor\u00E1rio da Indon\u00E9sia Ocidental
-Asia/Jayapura.generic.long=Hor\u00E1rio da Indon\u00E9sia Oriental
-Asia/Jerusalem.generic.long=Hor\u00E1rio de Israel
-Asia/Kabul.generic.long=Hor\u00E1rio do Afeganist\u00E3o
-Asia/Kamchatka.generic.long=Hor\u00E1rio de Petropavlovsk-Kamchatski
-Asia/Karachi.generic.long=Hor\u00E1rio do Paquist\u00E3o
-Asia/Kashgar.generic.long=Hor\u00E1rio da China
-Asia/Kathmandu.generic.long=Hor\u00E1rio do Nepal
-Asia/Katmandu.generic.long=Hor\u00E1rio do Nepal
-Asia/Khandyga.daylight.long=Hor\u00E1rio de Ver\u00E3o de Khandyga
-Asia/Khandyga.generic.long=Hor\u00E1rio de Khandyga
-Asia/Khandyga.standard.long=Hor\u00E1rio de Khandyga
-Asia/Kolkata.generic.long=Hor\u00E1rio da \u00CDndia
-Asia/Krasnoyarsk.generic.long=Hor\u00E1rio de Krasnoyarsk
-Asia/Kuala_Lumpur.generic.long=Hor\u00E1rio da Mal\u00E1sia
-Asia/Kuching.generic.long=Hor\u00E1rio da Mal\u00E1sia
-Asia/Kuwait.generic.long=Hor\u00E1rio da Ar\u00E1bia
-Asia/Macao.generic.long=Hor\u00E1rio da China
-Asia/Macau.generic.long=Hor\u00E1rio da China
-Asia/Magadan.generic.long=Hor\u00E1rio de Magadan
-Asia/Makassar.generic.long=Hor\u00E1rio da Indon\u00E9sia Central
-Asia/Manila.generic.long=Hor\u00E1rio das Filipinas
-Asia/Muscat.generic.long=Hor\u00E1rio do Golfo
-Asia/Nicosia.generic.long=Hor\u00E1rio da Europa Oriental
-Asia/Novokuznetsk.generic.long=Hor\u00E1rio de Novosibirsk
-Asia/Novosibirsk.generic.long=Hor\u00E1rio de Novosibirsk
-Asia/Omsk.generic.long=Hor\u00E1rio de Omsk
-Asia/Oral.generic.long=Hor\u00E1rio de Uralsk
-Asia/Phnom_Penh.generic.long=Hor\u00E1rio da Indochina
-Asia/Pontianak.generic.long=Hor\u00E1rio da Indon\u00E9sia Ocidental
-Asia/Pyongyang.generic.long=Hor\u00E1rio da Coreia
-Asia/Qatar.generic.long=Hor\u00E1rio da Ar\u00E1bia
-Asia/Qyzylorda.generic.long=Hor\u00E1rio de Qyzylorda
-Asia/Rangoon.generic.long=Hor\u00E1rio de Mianmar
-Asia/Saigon.generic.long=Hor\u00E1rio da Indochina
-Asia/Sakhalin.generic.long=Hor\u00E1rio de Sakhalin
-Asia/Samarkand.generic.long=Hor\u00E1rio do Uzbequist\u00E3o
-Asia/Seoul.generic.long=Hor\u00E1rio da Coreia
-Asia/Shanghai.generic.long=Hor\u00E1rio da China
-Asia/Singapore.generic.long=Hor\u00E1rio de Cingapura
-Asia/Taipei.generic.long=Hor\u00E1rio da China
-Asia/Tashkent.generic.long=Hor\u00E1rio do Uzbequist\u00E3o
-Asia/Tbilisi.generic.long=Hor\u00E1rio da Ge\u00F3rgia
-Asia/Tehran.generic.long=Hor\u00E1rio do Ir\u00E3
-Asia/Tel_Aviv.generic.long=Hor\u00E1rio de Israel
-Asia/Thimbu.generic.long=Hor\u00E1rio do But\u00E3o
-Asia/Thimphu.generic.long=Hor\u00E1rio do But\u00E3o
-Asia/Tokyo.generic.long=Hor\u00E1rio do Jap\u00E3o
-Asia/Ujung_Pandang.generic.long=Hor\u00E1rio da Indon\u00E9sia Central
-Asia/Ulaanbaatar.generic.long=Hor\u00E1rio de Ulaanbaatar
-Asia/Ulan_Bator.generic.long=Hor\u00E1rio de Ulaanbaatar
-Asia/Urumqi.generic.long=Hor\u00E1rio da China
-Asia/Ust-Nera.daylight.long=Hor\u00E1rio de Ver\u00E3o de Ust-Nera
-Asia/Ust-Nera.generic.long=Hor\u00E1rio de Ust-Nera
-Asia/Ust-Nera.standard.long=Hor\u00E1rio de Ust-Nera
-Asia/Vientiane.generic.long=Hor\u00E1rio da Indochina
-Asia/Vladivostok.generic.long=Hor\u00E1rio de Vladivostok
-Asia/Yakutsk.generic.long=Hor\u00E1rio de Yakutsk
-Asia/Yekaterinburg.generic.long=Hor\u00E1rio de Yekaterinburg
-Asia/Yerevan.generic.long=Hor\u00E1rio da Arm\u00EAnia
-Atlantic/Azores.generic.long=Hor\u00E1rio de A\u00E7ores
-Atlantic/Bermuda.generic.long=Hor\u00E1rio do Atl\u00E2ntico
-Atlantic/Canary.generic.long=Hor\u00E1rio da Europa Ocidental
-Atlantic/Cape_Verde.generic.long=Hor\u00E1rio de Cabo Verde
-Atlantic/Faeroe.generic.long=Hor\u00E1rio da Europa Ocidental
-Atlantic/Faroe.generic.long=Hor\u00E1rio da Europa Ocidental
-Atlantic/Jan_Mayen.generic.long=Hor\u00E1rio da Europa Central
-Atlantic/Madeira.generic.long=Hor\u00E1rio da Europa Ocidental
-Atlantic/Reykjavik.generic.long=Hor\u00E1rio M\u00E9dio de Greenwich
-Atlantic/South_Georgia.generic.long=Hor\u00E1rio da Ge\u00F3rgia do Sul
-Atlantic/St_Helena.generic.long=Hor\u00E1rio M\u00E9dio de Greenwich
-Atlantic/Stanley.generic.long=Hor\u00E1rio das Ilhas Malvinas
-Australia/ACT.daylight.long=Fuso Hor\u00E1rio de Ver\u00E3o Oriental (Nova Gales do Sul)
-Australia/ACT.generic.long=Hor\u00E1rio Oriental (Nova Gales do Sul)
-Australia/ACT.standard.long=Hor\u00E1rio-Padr\u00E3o Oriental (Nova Gales do Sul)
-Australia/Adelaide.daylight.long=Fuso Hor\u00E1rio de Ver\u00E3o Central (Austr\u00E1lia do Sul)
-Australia/Adelaide.generic.long=Hor\u00E1rio Central (Austr\u00E1lia do Sul)
-Australia/Adelaide.standard.long=Hor\u00E1rio-Padr\u00E3o Central (Austr\u00E1lia do Sul)
-Australia/Brisbane.daylight.long=Fuso Hor\u00E1rio de Ver\u00E3o Oriental (Queensland)
-Australia/Brisbane.generic.long=Hor\u00E1rio do Leste (Queensland)
-Australia/Brisbane.standard.long=Hor\u00E1rio-Padr\u00E3o do Leste (Queensland)
-Australia/Broken_Hill.daylight.long=Fuso Hor\u00E1rio de Ver\u00E3o Central (Austr\u00E1lia do Sul/Nova Gales do Sul)
-Australia/Broken_Hill.generic.long=Hor\u00E1rio Central (Austr\u00E1lia do Sul/Nova Gales do Sul)
-Australia/Broken_Hill.standard.long=Hor\u00E1rio-Padr\u00E3o Central (Austr\u00E1lia do Sul/Nova Gales do Sul)
-Australia/Canberra.daylight.long=Fuso Hor\u00E1rio de Ver\u00E3o Oriental (Nova Gales do Sul)
-Australia/Canberra.generic.long=Hor\u00E1rio Oriental (Nova Gales do Sul)
-Australia/Canberra.standard.long=Hor\u00E1rio-Padr\u00E3o Oriental (Nova Gales do Sul)
-Australia/Currie.daylight.long=Fuso Hor\u00E1rio de Ver\u00E3o Oriental (Nova Gales do Sul)
-Australia/Currie.generic.long=Hor\u00E1rio Oriental (Nova Gales do Sul)
-Australia/Currie.standard.long=Hor\u00E1rio-Padr\u00E3o Oriental (Nova Gales do Sul)
-Australia/Darwin.daylight.long=Fuso Hor\u00E1rio de Ver\u00E3o Central (Territ\u00F3rio do Norte)
-Australia/Darwin.generic.long=Hor\u00E1rio Central (Territ\u00F3rio do Norte)
-Australia/Darwin.standard.long=Hor\u00E1rio-Padr\u00E3o Central (Territ\u00F3rio do Norte)
-Australia/Eucla.daylight.long=Fuso Hor\u00E1rio de Ver\u00E3o Ocidental Central (Austr\u00E1lia)
-Australia/Eucla.generic.long=Hor\u00E1rio Ocidental Central (Austr\u00E1lia)
-Australia/Eucla.standard.long=Fuso Hor\u00E1rio Ocidental Central (Austr\u00E1lia)
-Australia/Hobart.daylight.long=Fuso Hor\u00E1rio de Ver\u00E3o Oriental (Tasm\u00E2nia)
-Australia/Hobart.generic.long=Hor\u00E1rio do Leste (Tasm\u00E2nia)
-Australia/Hobart.standard.long=Hor\u00E1rio-Padr\u00E3o do Leste (Tasm\u00E2nia)
-Australia/LHI.generic.long=Hor\u00E1rio de Lord Howe
-Australia/Lindeman.daylight.long=Fuso Hor\u00E1rio de Ver\u00E3o Oriental (Queensland)
-Australia/Lindeman.generic.long=Hor\u00E1rio do Leste (Queensland)
-Australia/Lindeman.standard.long=Hor\u00E1rio-Padr\u00E3o do Leste (Queensland)
-Australia/Lord_Howe.generic.long=Hor\u00E1rio de Lord Howe
-Australia/Melbourne.daylight.long=Fuso Hor\u00E1rio de Ver\u00E3o Oriental (Victoria)
-Australia/Melbourne.generic.long=Hor\u00E1rio do Leste (Victoria)
-Australia/Melbourne.standard.long=Hor\u00E1rio-Padr\u00E3o do Leste (Victoria)
-Australia/NSW.daylight.long=Fuso Hor\u00E1rio de Ver\u00E3o Oriental (Nova Gales do Sul)
-Australia/NSW.generic.long=Hor\u00E1rio Oriental (Nova Gales do Sul)
-Australia/NSW.standard.long=Hor\u00E1rio-Padr\u00E3o Oriental (Nova Gales do Sul)
-Australia/North.daylight.long=Fuso Hor\u00E1rio de Ver\u00E3o Central (Territ\u00F3rio do Norte)
-Australia/North.generic.long=Hor\u00E1rio Central (Territ\u00F3rio do Norte)
-Australia/North.standard.long=Hor\u00E1rio-Padr\u00E3o Central (Territ\u00F3rio do Norte)
-Australia/Perth.daylight.long=Fuso Hor\u00E1rio de Ver\u00E3o Ocidental (Austr\u00E1lia)
-Australia/Perth.generic.long=Hor\u00E1rio Ocidental (Austr\u00E1lia)
-Australia/Perth.standard.long=Hor\u00E1rio-Padr\u00E3o Ocidental (Austr\u00E1lia)
-Australia/Queensland.daylight.long=Fuso Hor\u00E1rio de Ver\u00E3o Oriental (Queensland)
-Australia/Queensland.generic.long=Hor\u00E1rio do Leste (Queensland)
-Australia/Queensland.standard.long=Hor\u00E1rio-Padr\u00E3o do Leste (Queensland)
-Australia/South.daylight.long=Fuso Hor\u00E1rio de Ver\u00E3o Central (Austr\u00E1lia do Sul)
-Australia/South.generic.long=Hor\u00E1rio Central (Austr\u00E1lia do Sul)
-Australia/South.standard.long=Hor\u00E1rio-Padr\u00E3o Central (Austr\u00E1lia do Sul)
-Australia/Sydney.daylight.long=Fuso Hor\u00E1rio de Ver\u00E3o Oriental (Nova Gales do Sul)
-Australia/Sydney.generic.long=Hor\u00E1rio Oriental (Nova Gales do Sul)
-Australia/Sydney.standard.long=Hor\u00E1rio-Padr\u00E3o Oriental (Nova Gales do Sul)
-Australia/Tasmania.daylight.long=Fuso Hor\u00E1rio de Ver\u00E3o Oriental (Tasm\u00E2nia)
-Australia/Tasmania.generic.long=Hor\u00E1rio do Leste (Tasm\u00E2nia)
-Australia/Tasmania.standard.long=Hor\u00E1rio-Padr\u00E3o do Leste (Tasm\u00E2nia)
-Australia/Victoria.daylight.long=Fuso Hor\u00E1rio de Ver\u00E3o Oriental (Victoria)
-Australia/Victoria.generic.long=Hor\u00E1rio do Leste (Victoria)
-Australia/Victoria.standard.long=Hor\u00E1rio-Padr\u00E3o do Leste (Victoria)
-Australia/West.daylight.long=Fuso Hor\u00E1rio de Ver\u00E3o Ocidental (Austr\u00E1lia)
-Australia/West.generic.long=Hor\u00E1rio Ocidental (Austr\u00E1lia)
-Australia/West.standard.long=Hor\u00E1rio-Padr\u00E3o Ocidental (Austr\u00E1lia)
-Australia/Yancowinna.daylight.long=Fuso Hor\u00E1rio de Ver\u00E3o Central (Austr\u00E1lia do Sul/Nova Gales do Sul)
-Australia/Yancowinna.generic.long=Hor\u00E1rio Central (Austr\u00E1lia do Sul/Nova Gales do Sul)
-Australia/Yancowinna.standard.long=Hor\u00E1rio-Padr\u00E3o Central (Austr\u00E1lia do Sul/Nova Gales do Sul)
-BET.generic.long=Hor\u00E1rio de Bras\u00EDlia
-BST.generic.long=Hor\u00E1rio de Bangladesh
-Brazil/Acre.generic.long=Fuso hor\u00e1rio do Acre
-Brazil/DeNoronha.generic.long=Hor\u00E1rio de Fernando de Noronha
-Brazil/East.generic.long=Hor\u00E1rio de Bras\u00EDlia
-Brazil/West.generic.long=Hor\u00E1rio do Amazonas
-CAT.generic.long=Hor\u00E1rio da \u00C1frica Central
-CET.generic.long=Hor\u00e1rio da Europa Central
-CNT.generic.long=Hor\u00E1rio de Terra Nova
-CST.generic.long=Hor\u00E1rio Central
-CST6CDT.generic.long=Hor\u00e1rio Central
-CTT.generic.long=Hor\u00E1rio da China
-Canada/Atlantic.generic.long=Hor\u00E1rio do Atl\u00E2ntico
-Canada/Central.generic.long=Hor\u00E1rio Central
-Canada/East-Saskatchewan.generic.long=Hor\u00E1rio Central
-Canada/Eastern.generic.long=Hor\u00E1rio do Leste
-Canada/Mountain.generic.long=Hor\u00E1rio das Montanhas Rochosas
-Canada/Newfoundland.generic.long=Hor\u00E1rio de Terra Nova
-Canada/Pacific.generic.long=Hor\u00E1rio do Pac\u00EDfico
-Canada/Saskatchewan.generic.long=Hor\u00E1rio Central
-Canada/Yukon.generic.long=Hor\u00E1rio do Pac\u00EDfico
-Chile/Continental.generic.long=Hor\u00E1rio do Chile
-Chile/EasterIsland.generic.long=Hor\u00E1rio da Ilha de P\u00E1scoa
-Cuba.generic.long=Hor\u00E1rio de Cuba
-EAT.generic.long=Hor\u00E1rio do Leste da \u00C1frica
-ECT.generic.long=Hor\u00E1rio da Europa Central
-EET.generic.long=Hor\u00e1rio da Europa Oriental
-EST.generic.long=Hor\u00e1rio do Leste
-EST5EDT.generic.long=Hor\u00e1rio do Leste
-Egypt.generic.long=Hor\u00E1rio da Europa Oriental
-Eire.generic.long=Hor\u00E1rio da Rep\u00FAblica da Irlanda
-Etc/Greenwich.generic.long=Hor\u00E1rio M\u00E9dio de Greenwich
-Etc/UCT.generic.long=Hor\u00E1rio Universal Coordenado
-Etc/UTC.generic.long=Hor\u00E1rio Universal Coordenado
-Etc/Universal.generic.long=Hor\u00E1rio Universal Coordenado
-Etc/Zulu.generic.long=Hor\u00E1rio Universal Coordenado
-Europe/Amsterdam.generic.long=Hor\u00E1rio da Europa Central
-Europe/Andorra.generic.long=Hor\u00E1rio da Europa Central
-Europe/Athens.generic.long=Hor\u00E1rio da Europa Oriental
-Europe/Belfast.generic.long=Hor\u00E1rio do Reino Unido
-Europe/Belgrade.generic.long=Hor\u00E1rio da Europa Central
-Europe/Berlin.generic.long=Hor\u00E1rio da Europa Central
-Europe/Bratislava.generic.long=Hor\u00E1rio da Europa Central
-Europe/Brussels.generic.long=Hor\u00E1rio da Europa Central
-Europe/Bucharest.generic.long=Hor\u00E1rio da Europa Oriental
-Europe/Budapest.generic.long=Hor\u00E1rio da Europa Central
-Europe/Busingen.generic.long=Hor\u00E1rio da Europa Central
-Europe/Chisinau.generic.long=Hor\u00E1rio da Europa Oriental
-Europe/Copenhagen.generic.long=Hor\u00E1rio da Europa Central
-Europe/Dublin.generic.long=Hor\u00E1rio da Rep\u00FAblica da Irlanda
-Europe/Gibraltar.generic.long=Hor\u00E1rio da Europa Central
-Europe/Guernsey.generic.long=Hor\u00E1rio do Reino Unido
-Europe/Helsinki.generic.long=Hor\u00E1rio da Europa Oriental
-Europe/Isle_of_Man.generic.long=Hor\u00E1rio do Reino Unido
-Europe/Istanbul.generic.long=Hor\u00E1rio da Europa Oriental
-Europe/Jersey.generic.long=Hor\u00E1rio do Reino Unido
-Europe/Kaliningrad.daylight.long=Fuso Hor\u00E1rio de Ver\u00E3o do Extremo Leste Europeu
-Europe/Kaliningrad.generic.long=Hor\u00E1rio do Extremo Leste Europeu (FET)
-Europe/Kaliningrad.standard.long=Hor\u00E1rio do Extremo Leste Europeu (FET)
-Europe/Kiev.generic.long=Hor\u00E1rio da Europa Oriental
-Europe/Lisbon.generic.long=Hor\u00E1rio da Europa Ocidental
-Europe/Ljubljana.generic.long=Hor\u00E1rio da Europa Central
-Europe/London.generic.long=Hor\u00E1rio do Reino Unido
-Europe/Luxembourg.generic.long=Hor\u00E1rio da Europa Central
-Europe/Madrid.generic.long=Hor\u00E1rio da Europa Central
-Europe/Malta.generic.long=Hor\u00E1rio da Europa Central
-Europe/Mariehamn.generic.long=Hor\u00E1rio da Europa Oriental
-Europe/Minsk.daylight.long=Fuso Hor\u00E1rio de Ver\u00E3o do Extremo Leste Europeu
-Europe/Minsk.generic.long=Hor\u00E1rio do Extremo Leste Europeu (FET)
-Europe/Minsk.standard.long=Hor\u00E1rio do Extremo Leste Europeu (FET)
-Europe/Monaco.generic.long=Hor\u00E1rio da Europa Central
-Europe/Moscow.generic.long=Hor\u00E1rio de Moscou
-Europe/Nicosia.generic.long=Hor\u00E1rio da Europa Oriental
-Europe/Oslo.generic.long=Hor\u00E1rio da Europa Central
-Europe/Paris.generic.long=Hor\u00E1rio da Europa Central
-Europe/Podgorica.generic.long=Hor\u00E1rio da Europa Central
-Europe/Prague.generic.long=Hor\u00E1rio da Europa Central
-Europe/Riga.generic.long=Hor\u00E1rio da Europa Oriental
-Europe/Rome.generic.long=Hor\u00E1rio da Europa Central
-Europe/Samara.generic.long=Hor\u00E1rio de Samara
-Europe/San_Marino.generic.long=Hor\u00E1rio da Europa Central
-Europe/Sarajevo.generic.long=Hor\u00E1rio da Europa Central
-Europe/Simferopol.generic.long=Hor\u00E1rio da Europa Oriental
-Europe/Skopje.generic.long=Hor\u00E1rio da Europa Central
-Europe/Sofia.generic.long=Hor\u00E1rio da Europa Oriental
-Europe/Stockholm.generic.long=Hor\u00E1rio da Europa Central
-Europe/Tallinn.generic.long=Hor\u00E1rio da Europa Oriental
-Europe/Tirane.generic.long=Hor\u00E1rio da Europa Central
-Europe/Tiraspol.generic.long=Hor\u00E1rio da Europa Oriental
-Europe/Uzhgorod.generic.long=Hor\u00E1rio da Europa Oriental
-Europe/Vaduz.generic.long=Hor\u00E1rio da Europa Central
-Europe/Vatican.generic.long=Hor\u00E1rio da Europa Central
-Europe/Vienna.generic.long=Hor\u00E1rio da Europa Central
-Europe/Vilnius.generic.long=Hor\u00E1rio da Europa Oriental
-Europe/Volgograd.generic.long=Hor\u00E1rio de Volgogrado
-Europe/Warsaw.generic.long=Hor\u00E1rio da Europa Central
-Europe/Zagreb.generic.long=Hor\u00E1rio da Europa Central
-Europe/Zaporozhye.generic.long=Hor\u00E1rio da Europa Oriental
-Europe/Zurich.generic.long=Hor\u00E1rio da Europa Central
-GB-Eire.generic.long=Hor\u00E1rio do Reino Unido
-GB.generic.long=Hor\u00E1rio do Reino Unido
-GMT.generic.long=Hor\u00E1rio M\u00E9dio de Greenwich
-Greenwich.generic.long=Hor\u00E1rio M\u00E9dio de Greenwich
-HST.generic.long=Hor\u00e1rio do Hava\u00ed
-Hongkong.generic.long=Hor\u00E1rio de Hong Kong
-IET.generic.long=Hor\u00E1rio do Leste
-IST.generic.long=Hor\u00E1rio da \u00CDndia
-Iceland.generic.long=Hor\u00E1rio M\u00E9dio de Greenwich
-Indian/Antananarivo.generic.long=Hor\u00E1rio do Leste da \u00C1frica
-Indian/Chagos.generic.long=Hor\u00E1rio do Territ\u00F3rio do Oceano \u00CDndico
-Indian/Christmas.generic.long=Hor\u00E1rio da Ilha Christmas
-Indian/Cocos.generic.long=Hor\u00E1rio das Ilhas Cocos
-Indian/Comoro.generic.long=Hor\u00E1rio do Leste da \u00C1frica
-Indian/Kerguelen.generic.long=Hor\u00E1rio do Territ\u00F3rio Franc\u00EAs no Sul da Ant\u00E1rtica
-Indian/Mahe.generic.long=Hor\u00E1rio de Seychelles
-Indian/Maldives.generic.long=Hor\u00E1rio das Maldivas
-Indian/Mauritius.generic.long=Hor\u00E1rio de Maur\u00EDcio
-Indian/Mayotte.generic.long=Hor\u00E1rio do Leste da \u00C1frica
-Indian/Reunion.generic.long=Hor\u00E1rio das Ilhas Reuni\u00E3o
-Iran.generic.long=Hor\u00E1rio do Ir\u00E3
-Israel.generic.long=Hor\u00E1rio de Israel
-JST.generic.long=Hor\u00E1rio do Jap\u00E3o
-Jamaica.generic.long=Hor\u00E1rio do Leste
-Japan.generic.long=Hor\u00E1rio do Jap\u00E3o
-Kwajalein.generic.long=Hor\u00E1rio das Ilhas Marshall
-Libya.generic.long=Hor\u00e1rio da Europa Oriental
-MET.generic.long=MET
-MIT.generic.long=Fuso Hor\u00E1rio de Samoa Ocidental
-MST.generic.long=Hor\u00e1rio das Montanhas Rochosas
-MST7MDT.generic.long=Hor\u00e1rio das Montanhas Rochosas
-Mexico/BajaNorte.generic.long=Hor\u00E1rio do Pac\u00EDfico
-Mexico/BajaSur.generic.long=Hor\u00E1rio das Montanhas Rochosas
-Mexico/General.generic.long=Hor\u00E1rio Central
-NET.generic.long=Hor\u00E1rio da Arm\u00EAnia
-NST.generic.long=Hor\u00E1rio da Nova Zel\u00E2ndia
-NZ-CHAT.generic.long=Hor\u00E1rio de Chatham
-NZ.generic.long=Hor\u00E1rio da Nova Zel\u00E2ndia
-Navajo.generic.long=Hor\u00E1rio das Montanhas Rochosas
-PLT.generic.long=Hor\u00E1rio do Paquist\u00E3o
-PNT.generic.long=Hor\u00E1rio das Montanhas Rochosas
-PRC.generic.long=Hor\u00E1rio da China
-PRT.generic.long=Hor\u00E1rio do Atl\u00E2ntico
-PST.generic.long=Hor\u00E1rio do Pac\u00EDfico
-PST8PDT.generic.long=Hor\u00e1rio do Pac\u00edfico
-Pacific/Apia.generic.long=Fuso Hor\u00E1rio de Samoa Ocidental
-Pacific/Auckland.generic.long=Hor\u00E1rio da Nova Zel\u00E2ndia
-Pacific/Chatham.generic.long=Hor\u00E1rio de Chatham
-Pacific/Chuuk.daylight.long=Fuso Hor\u00E1rio de Ver\u00E3o de Chuuk
-Pacific/Chuuk.generic.long=Fuso Hor\u00E1rio de Chuuk
-Pacific/Chuuk.standard.long=Fuso Hor\u00E1rio de Chuuk
-Pacific/Easter.generic.long=Hor\u00E1rio da Ilha de P\u00E1scoa
-Pacific/Efate.generic.long=Hor\u00E1rio de Vanuatu
-Pacific/Enderbury.generic.long=Hor\u00E1rio da Ilha Phoenix
-Pacific/Fakaofo.generic.long=Hor\u00E1rio de Toquelau
-Pacific/Fiji.generic.long=Hor\u00E1rio de Fiji
-Pacific/Funafuti.generic.long=Hor\u00E1rio de Tuvalu
-Pacific/Galapagos.generic.long=Hor\u00E1rio de Gal\u00E1pagos
-Pacific/Gambier.generic.long=Hor\u00E1rio de Gambier
-Pacific/Guadalcanal.generic.long=Hor\u00E1rio das Ilhas Salom\u00E3o
-Pacific/Guam.generic.long=Hor\u00E1rio de Chamorro
-Pacific/Honolulu.generic.long=Hor\u00E1rio do Hava\u00ED
-Pacific/Johnston.generic.long=Hor\u00E1rio do Hava\u00ED
-Pacific/Kiritimati.generic.long=Hor\u00E1rio das Ilhas Line
-Pacific/Kosrae.generic.long=Hor\u00E1rio de Kosrae
-Pacific/Kwajalein.generic.long=Hor\u00E1rio das Ilhas Marshall
-Pacific/Majuro.generic.long=Hor\u00E1rio das Ilhas Marshall
-Pacific/Marquesas.generic.long=Hor\u00E1rio das Ilhas Marquesas
-Pacific/Midway.generic.long=Hor\u00E1rio da Samoa
-Pacific/Nauru.generic.long=Hor\u00E1rio de Nauru
-Pacific/Niue.generic.long=Hor\u00E1rio de Niue
-Pacific/Norfolk.generic.long=Hor\u00E1rio de Norfolk
-Pacific/Noumea.generic.long=Hor\u00E1rio da Nova Caled\u00F4nia
-Pacific/Pago_Pago.generic.long=Hor\u00E1rio da Samoa
-Pacific/Palau.generic.long=Hor\u00E1rio de Palau
-Pacific/Pitcairn.generic.long=Hor\u00E1rio de Pitcairn
-Pacific/Pohnpei.daylight.long=Fuso Hor\u00E1rio de Ver\u00E3o de Pohnpei
-Pacific/Pohnpei.generic.long=Hor\u00E1rio de Ponape
-Pacific/Pohnpei.standard.long=Fuso Hor\u00E1rio de Pohnpei
-Pacific/Ponape.daylight.long=Fuso Hor\u00E1rio de Ver\u00E3o de Pohnpei
-Pacific/Ponape.generic.long=Hor\u00E1rio de Ponape
-Pacific/Ponape.standard.long=Fuso Hor\u00E1rio de Pohnpei
-Pacific/Port_Moresby.generic.long=Hor\u00E1rio de Papua-Nova Guin\u00E9
-Pacific/Rarotonga.generic.long=Hor\u00E1rio das Ilhas Cook
-Pacific/Saipan.generic.long=Hor\u00E1rio de Chamorro
-Pacific/Samoa.generic.long=Hor\u00E1rio da Samoa
-Pacific/Tahiti.generic.long=Hor\u00E1rio do Tahiti
-Pacific/Tarawa.generic.long=Hor\u00E1rio das Ilhas Gilbert
-Pacific/Tongatapu.generic.long=Hor\u00E1rio de Tonga
-Pacific/Truk.daylight.long=Fuso Hor\u00E1rio de Ver\u00E3o de Chuuk
-Pacific/Truk.generic.long=Fuso Hor\u00E1rio de Chuuk
-Pacific/Truk.standard.long=Fuso Hor\u00E1rio de Chuuk
-Pacific/Wake.generic.long=Hor\u00E1rio de Wake
-Pacific/Wallis.generic.long=Hor\u00E1rio das Ilhas Wallis e Futuna
-Pacific/Yap.daylight.long=Fuso Hor\u00E1rio de Ver\u00E3o de Chuuk
-Pacific/Yap.generic.long=Fuso Hor\u00E1rio de Chuuk
-Pacific/Yap.standard.long=Fuso Hor\u00E1rio de Chuuk
-Poland.generic.long=Hor\u00E1rio da Europa Central
-Portugal.generic.long=Hor\u00E1rio da Europa Ocidental
-ROK.generic.long=Hor\u00E1rio da Coreia
-SST.generic.long=Hor\u00E1rio das Ilhas Salom\u00E3o
-Singapore.generic.long=Hor\u00E1rio de Cingapura
-SystemV/AST4.generic.long=Hor\u00E1rio do Atl\u00E2ntico
-SystemV/AST4ADT.generic.long=Hor\u00E1rio do Atl\u00E2ntico
-SystemV/CST6.generic.long=Hor\u00E1rio Central
-SystemV/CST6CDT.generic.long=Hor\u00E1rio Central
-SystemV/EST5.generic.long=Hor\u00E1rio do Leste
-SystemV/EST5EDT.generic.long=Hor\u00E1rio do Leste
-SystemV/HST10.generic.long=Hor\u00E1rio do Hava\u00ED
-SystemV/MST7.generic.long=Hor\u00E1rio das Montanhas Rochosas
-SystemV/MST7MDT.generic.long=Hor\u00E1rio das Montanhas Rochosas
-SystemV/PST8.generic.long=Hor\u00E1rio do Pac\u00EDfico
-SystemV/PST8PDT.generic.long=Hor\u00E1rio do Pac\u00EDfico
-SystemV/YST9.generic.long=Hor\u00E1rio do Alasca
-SystemV/YST9YDT.generic.long=Hor\u00E1rio do Alasca
-Turkey.generic.long=Hor\u00E1rio da Europa Oriental
-UCT.generic.long=Hor\u00E1rio Universal Coordenado
-US/Alaska.generic.long=Hor\u00E1rio do Alasca
-US/Aleutian.generic.long=Hor\u00E1rio do Hava\u00ED-Aleutas
-US/Arizona.generic.long=Hor\u00E1rio das Montanhas Rochosas
-US/Central.generic.long=Hor\u00E1rio Central
-US/East-Indiana.generic.long=Hor\u00E1rio do Leste
-US/Eastern.generic.long=Hor\u00E1rio do Leste
-US/Hawaii.generic.long=Hor\u00E1rio do Hava\u00ED
-US/Indiana-Starke.generic.long=Hor\u00E1rio Central
-US/Michigan.generic.long=Hor\u00E1rio do Leste
-US/Mountain.generic.long=Hor\u00E1rio das Montanhas Rochosas
-US/Pacific-New.generic.long=Hor\u00E1rio do Pac\u00EDfico
-US/Pacific.generic.long=Hor\u00E1rio do Pac\u00EDfico
-US/Samoa.generic.long=Hor\u00E1rio da Samoa
-UTC.generic.long=Hor\u00E1rio Universal Coordenado
-Universal.generic.long=Hor\u00E1rio Universal Coordenado
-VST.generic.long=Hor\u00E1rio da Indochina
-W-SU.generic.long=Hor\u00E1rio de Moscou
-WET.generic.long=Hor\u00e1rio da Europa Ocidental
-Zulu.generic.long=Hor\u00E1rio Universal Coordenado
diff --git a/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_pt_BR_short.properties b/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_pt_BR_short.properties
deleted file mode 100644
index 095522a68d1..00000000000
--- a/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_pt_BR_short.properties
+++ /dev/null
@@ -1,1743 +0,0 @@
-ACT.daylight.short=CST
-ACT.generic.short=CT
-ACT.standard.short=CST
-AET.daylight.short=EST
-AET.generic.short=ET
-AET.standard.short=EST
-Africa/Abidjan.daylight.short=GMT
-Africa/Abidjan.generic.short=GMT
-Africa/Abidjan.standard.short=GMT
-Africa/Accra.daylight.short=GHST
-Africa/Accra.generic.short=GMT
-Africa/Accra.standard.short=GMT
-Africa/Addis_Ababa.daylight.short=EAST
-Africa/Addis_Ababa.generic.short=EAT
-Africa/Addis_Ababa.standard.short=EAT
-Africa/Algiers.daylight.short=CEST
-Africa/Algiers.generic.short=CET
-Africa/Algiers.standard.short=CET
-Africa/Asmara.daylight.short=EAST
-Africa/Asmara.generic.short=EAT
-Africa/Asmara.standard.short=EAT
-Africa/Asmera.daylight.short=EAST
-Africa/Asmera.generic.short=EAT
-Africa/Asmera.standard.short=EAT
-Africa/Bamako.daylight.short=GMT
-Africa/Bamako.generic.short=GMT
-Africa/Bamako.standard.short=GMT
-Africa/Bangui.daylight.short=WAST
-Africa/Bangui.generic.short=WAT
-Africa/Bangui.standard.short=WAT
-Africa/Banjul.daylight.short=GMT
-Africa/Banjul.generic.short=GMT
-Africa/Banjul.standard.short=GMT
-Africa/Bissau.daylight.short=GMT
-Africa/Bissau.generic.short=GMT
-Africa/Bissau.standard.short=GMT
-Africa/Blantyre.daylight.short=CAST
-Africa/Blantyre.generic.short=CAT
-Africa/Blantyre.standard.short=CAT
-Africa/Brazzaville.daylight.short=WAST
-Africa/Brazzaville.generic.short=WAT
-Africa/Brazzaville.standard.short=WAT
-Africa/Bujumbura.daylight.short=CAST
-Africa/Bujumbura.generic.short=CAT
-Africa/Bujumbura.standard.short=CAT
-Africa/Cairo.daylight.short=EEST
-Africa/Cairo.generic.short=EET
-Africa/Cairo.standard.short=EET
-Africa/Casablanca.daylight.short=WEST
-Africa/Casablanca.generic.short=WET
-Africa/Casablanca.standard.short=WET
-Africa/Ceuta.daylight.short=CEST
-Africa/Ceuta.generic.short=CET
-Africa/Ceuta.standard.short=CET
-Africa/Conakry.daylight.short=GMT
-Africa/Conakry.generic.short=GMT
-Africa/Conakry.standard.short=GMT
-Africa/Dakar.daylight.short=GMT
-Africa/Dakar.generic.short=GMT
-Africa/Dakar.standard.short=GMT
-Africa/Dar_es_Salaam.daylight.short=EAST
-Africa/Dar_es_Salaam.generic.short=EAT
-Africa/Dar_es_Salaam.standard.short=EAT
-Africa/Djibouti.daylight.short=EAST
-Africa/Djibouti.generic.short=EAT
-Africa/Djibouti.standard.short=EAT
-Africa/Douala.daylight.short=WAST
-Africa/Douala.generic.short=WAT
-Africa/Douala.standard.short=WAT
-Africa/El_Aaiun.daylight.short=WEST
-Africa/El_Aaiun.generic.short=WET
-Africa/El_Aaiun.standard.short=WET
-Africa/Freetown.daylight.short=SLST
-Africa/Freetown.generic.short=SLT
-Africa/Freetown.standard.short=GMT
-Africa/Gaborone.daylight.short=CAST
-Africa/Gaborone.generic.short=CAT
-Africa/Gaborone.standard.short=CAT
-Africa/Harare.daylight.short=CAST
-Africa/Harare.generic.short=CAT
-Africa/Harare.standard.short=CAT
-Africa/Johannesburg.daylight.short=SAST
-Africa/Johannesburg.generic.short=SAT
-Africa/Johannesburg.standard.short=SAST
-Africa/Juba.daylight.short=EAST
-Africa/Juba.generic.short=EAT
-Africa/Juba.standard.short=EAT
-Africa/Kampala.daylight.short=EAST
-Africa/Kampala.generic.short=EAT
-Africa/Kampala.standard.short=EAT
-Africa/Khartoum.daylight.short=EAST
-Africa/Khartoum.generic.short=EAT
-Africa/Khartoum.standard.short=EAT
-Africa/Kigali.daylight.short=CAST
-Africa/Kigali.generic.short=CAT
-Africa/Kigali.standard.short=CAT
-Africa/Kinshasa.daylight.short=WAST
-Africa/Kinshasa.generic.short=WAT
-Africa/Kinshasa.standard.short=WAT
-Africa/Lagos.daylight.short=WAST
-Africa/Lagos.generic.short=WAT
-Africa/Lagos.standard.short=WAT
-Africa/Libreville.daylight.short=WAST
-Africa/Libreville.generic.short=WAT
-Africa/Libreville.standard.short=WAT
-Africa/Lome.daylight.short=GMT
-Africa/Lome.generic.short=GMT
-Africa/Lome.standard.short=GMT
-Africa/Luanda.daylight.short=WAST
-Africa/Luanda.generic.short=WAT
-Africa/Luanda.standard.short=WAT
-Africa/Lubumbashi.daylight.short=CAST
-Africa/Lubumbashi.generic.short=CAT
-Africa/Lubumbashi.standard.short=CAT
-Africa/Lusaka.daylight.short=CAST
-Africa/Lusaka.generic.short=CAT
-Africa/Lusaka.standard.short=CAT
-Africa/Malabo.daylight.short=WAST
-Africa/Malabo.generic.short=WAT
-Africa/Malabo.standard.short=WAT
-Africa/Maputo.daylight.short=CAST
-Africa/Maputo.generic.short=CAT
-Africa/Maputo.standard.short=CAT
-Africa/Maseru.daylight.short=SAST
-Africa/Maseru.generic.short=SAT
-Africa/Maseru.standard.short=SAST
-Africa/Mbabane.daylight.short=SAST
-Africa/Mbabane.generic.short=SAT
-Africa/Mbabane.standard.short=SAST
-Africa/Mogadishu.daylight.short=EAST
-Africa/Mogadishu.generic.short=EAT
-Africa/Mogadishu.standard.short=EAT
-Africa/Monrovia.daylight.short=GMT
-Africa/Monrovia.generic.short=GMT
-Africa/Monrovia.standard.short=GMT
-Africa/Nairobi.daylight.short=EAST
-Africa/Nairobi.generic.short=EAT
-Africa/Nairobi.standard.short=EAT
-Africa/Ndjamena.daylight.short=WAST
-Africa/Ndjamena.generic.short=WAT
-Africa/Ndjamena.standard.short=WAT
-Africa/Niamey.daylight.short=WAST
-Africa/Niamey.generic.short=WAT
-Africa/Niamey.standard.short=WAT
-Africa/Nouakchott.daylight.short=GMT
-Africa/Nouakchott.generic.short=GMT
-Africa/Nouakchott.standard.short=GMT
-Africa/Ouagadougou.daylight.short=GMT
-Africa/Ouagadougou.generic.short=GMT
-Africa/Ouagadougou.standard.short=GMT
-Africa/Porto-Novo.daylight.short=WAST
-Africa/Porto-Novo.generic.short=WAT
-Africa/Porto-Novo.standard.short=WAT
-Africa/Sao_Tome.daylight.short=GMT
-Africa/Sao_Tome.generic.short=GMT
-Africa/Sao_Tome.standard.short=GMT
-Africa/Timbuktu.daylight.short=GMT
-Africa/Timbuktu.generic.short=GMT
-Africa/Timbuktu.standard.short=GMT
-Africa/Tripoli.daylight.short=EEST
-Africa/Tripoli.generic.short=EET
-Africa/Tripoli.standard.short=EET
-Africa/Tunis.daylight.short=CEST
-Africa/Tunis.generic.short=CET
-Africa/Tunis.standard.short=CET
-Africa/Windhoek.daylight.short=WAST
-Africa/Windhoek.generic.short=WAT
-Africa/Windhoek.standard.short=WAT
-AGT.daylight.short=ARST
-AGT.generic.short=ART
-AGT.standard.short=ART
-America/Adak.daylight.short=HADT
-America/Adak.generic.short=HAT
-America/Adak.standard.short=HAST
-America/Anchorage.daylight.short=AKDT
-America/Anchorage.generic.short=AKT
-America/Anchorage.standard.short=AKST
-America/Anguilla.daylight.short=ADT
-America/Anguilla.generic.short=AT
-America/Anguilla.standard.short=AST
-America/Antigua.daylight.short=ADT
-America/Antigua.generic.short=AT
-America/Antigua.standard.short=AST
-America/Araguaina.daylight.short=BRST
-America/Araguaina.generic.short=BRT
-America/Araguaina.standard.short=BRT
-America/Argentina/Buenos_Aires.daylight.short=ARST
-America/Argentina/Buenos_Aires.generic.short=ART
-America/Argentina/Buenos_Aires.standard.short=ART
-America/Argentina/Catamarca.daylight.short=ARST
-America/Argentina/Catamarca.generic.short=ART
-America/Argentina/Catamarca.standard.short=ART
-America/Argentina/ComodRivadavia.daylight.short=ARST
-America/Argentina/ComodRivadavia.generic.short=ART
-America/Argentina/ComodRivadavia.standard.short=ART
-America/Argentina/Cordoba.daylight.short=ARST
-America/Argentina/Cordoba.generic.short=ART
-America/Argentina/Cordoba.standard.short=ART
-America/Argentina/Jujuy.daylight.short=ARST
-America/Argentina/Jujuy.generic.short=ART
-America/Argentina/Jujuy.standard.short=ART
-America/Argentina/La_Rioja.daylight.short=ARST
-America/Argentina/La_Rioja.generic.short=ART
-America/Argentina/La_Rioja.standard.short=ART
-America/Argentina/Mendoza.daylight.short=ARST
-America/Argentina/Mendoza.generic.short=ART
-America/Argentina/Mendoza.standard.short=ART
-America/Argentina/Rio_Gallegos.daylight.short=ARST
-America/Argentina/Rio_Gallegos.generic.short=ART
-America/Argentina/Rio_Gallegos.standard.short=ART
-America/Argentina/Salta.daylight.short=ARST
-America/Argentina/Salta.generic.short=ART
-America/Argentina/Salta.standard.short=ART
-America/Argentina/San_Juan.daylight.short=ARST
-America/Argentina/San_Juan.generic.short=ART
-America/Argentina/San_Juan.standard.short=ART
-America/Argentina/San_Luis.daylight.short=ARST
-America/Argentina/San_Luis.generic.short=ART
-America/Argentina/San_Luis.standard.short=ART
-America/Argentina/Tucuman.daylight.short=ARST
-America/Argentina/Tucuman.generic.short=ART
-America/Argentina/Tucuman.standard.short=ART
-America/Argentina/Ushuaia.daylight.short=ARST
-America/Argentina/Ushuaia.generic.short=ART
-America/Argentina/Ushuaia.standard.short=ART
-America/Aruba.daylight.short=ADT
-America/Aruba.generic.short=AT
-America/Aruba.standard.short=AST
-America/Asuncion.daylight.short=PYST
-America/Asuncion.generic.short=PYT
-America/Asuncion.standard.short=PYT
-America/Atikokan.daylight.short=EDT
-America/Atikokan.generic.short=ET
-America/Atikokan.standard.short=EST
-America/Atka.daylight.short=HADT
-America/Atka.generic.short=HAT
-America/Atka.standard.short=HAST
-America/Bahia_Banderas.daylight.short=CDT
-America/Bahia_Banderas.generic.short=CT
-America/Bahia_Banderas.standard.short=CST
-America/Bahia.daylight.short=BRST
-America/Bahia.generic.short=BRT
-America/Bahia.standard.short=BRT
-America/Barbados.daylight.short=ADT
-America/Barbados.generic.short=AT
-America/Barbados.standard.short=AST
-America/Belem.daylight.short=BRST
-America/Belem.generic.short=BRT
-America/Belem.standard.short=BRT
-America/Belize.daylight.short=CDT
-America/Belize.generic.short=CT
-America/Belize.standard.short=CST
-America/Blanc-Sablon.daylight.short=ADT
-America/Blanc-Sablon.generic.short=AT
-America/Blanc-Sablon.standard.short=AST
-America/Boa_Vista.daylight.short=AMST
-America/Boa_Vista.generic.short=AMT
-America/Boa_Vista.standard.short=AMT
-America/Bogota.daylight.short=COST
-America/Bogota.generic.short=COT
-America/Bogota.standard.short=COT
-America/Boise.daylight.short=MDT
-America/Boise.generic.short=MT
-America/Boise.standard.short=MST
-America/Buenos_Aires.daylight.short=ARST
-America/Buenos_Aires.generic.short=ART
-America/Buenos_Aires.standard.short=ART
-America/Cambridge_Bay.daylight.short=MDT
-America/Cambridge_Bay.generic.short=MT
-America/Cambridge_Bay.standard.short=MST
-America/Campo_Grande.daylight.short=AMST
-America/Campo_Grande.generic.short=AMT
-America/Campo_Grande.standard.short=AMT
-America/Cancun.daylight.short=CDT
-America/Cancun.generic.short=CT
-America/Cancun.standard.short=CST
-America/Caracas.daylight.short=VEST
-America/Caracas.generic.short=VET
-America/Caracas.standard.short=VET
-America/Catamarca.daylight.short=ARST
-America/Catamarca.generic.short=ART
-America/Catamarca.standard.short=ART
-America/Cayenne.daylight.short=GFST
-America/Cayenne.generic.short=GFT
-America/Cayenne.standard.short=GFT
-America/Cayman.daylight.short=EDT
-America/Cayman.generic.short=ET
-America/Cayman.standard.short=EST
-America/Chicago.daylight.short=CDT
-America/Chicago.generic.short=CT
-America/Chicago.standard.short=CST
-America/Chihuahua.daylight.short=MDT
-America/Chihuahua.generic.short=MT
-America/Chihuahua.standard.short=MST
-America/Coral_Harbour.daylight.short=EDT
-America/Coral_Harbour.generic.short=ET
-America/Coral_Harbour.standard.short=EST
-America/Cordoba.daylight.short=ARST
-America/Cordoba.generic.short=ART
-America/Cordoba.standard.short=ART
-America/Costa_Rica.daylight.short=CDT
-America/Costa_Rica.generic.short=CT
-America/Costa_Rica.standard.short=CST
-America/Creston.daylight.short=MDT
-America/Creston.generic.short=MT
-America/Creston.standard.short=MST
-America/Cuiaba.daylight.short=AMST
-America/Cuiaba.generic.short=AMT
-America/Cuiaba.standard.short=AMT
-America/Curacao.daylight.short=ADT
-America/Curacao.generic.short=AT
-America/Curacao.standard.short=AST
-America/Danmarkshavn.daylight.short=GMT
-America/Danmarkshavn.generic.short=GMT
-America/Danmarkshavn.standard.short=GMT
-America/Dawson_Creek.daylight.short=MDT
-America/Dawson_Creek.generic.short=MT
-America/Dawson_Creek.standard.short=MST
-America/Dawson.daylight.short=PDT
-America/Dawson.generic.short=PT
-America/Dawson.standard.short=PST
-America/Denver.daylight.short=MDT
-America/Denver.generic.short=MT
-America/Denver.standard.short=MST
-America/Detroit.daylight.short=EDT
-America/Detroit.generic.short=ET
-America/Detroit.standard.short=EST
-America/Dominica.daylight.short=ADT
-America/Dominica.generic.short=AT
-America/Dominica.standard.short=AST
-America/Edmonton.daylight.short=MDT
-America/Edmonton.generic.short=MT
-America/Edmonton.standard.short=MST
-America/Eirunepe.daylight.short=ACST
-America/Eirunepe.generic.short=ACT
-America/Eirunepe.standard.short=ACT
-America/El_Salvador.daylight.short=CDT
-America/El_Salvador.generic.short=CT
-America/El_Salvador.standard.short=CST
-America/Ensenada.daylight.short=PDT
-America/Ensenada.generic.short=PT
-America/Ensenada.standard.short=PST
-America/Fortaleza.daylight.short=BRST
-America/Fortaleza.generic.short=BRT
-America/Fortaleza.standard.short=BRT
-America/Fort_Wayne.daylight.short=EDT
-America/Fort_Wayne.generic.short=ET
-America/Fort_Wayne.standard.short=EST
-America/Glace_Bay.daylight.short=ADT
-America/Glace_Bay.generic.short=AT
-America/Glace_Bay.standard.short=AST
-America/Godthab.daylight.short=WGST
-America/Godthab.generic.short=WGT
-America/Godthab.standard.short=WGT
-America/Goose_Bay.daylight.short=ADT
-America/Goose_Bay.generic.short=AT
-America/Goose_Bay.standard.short=AST
-America/Grand_Turk.daylight.short=EDT
-America/Grand_Turk.generic.short=ET
-America/Grand_Turk.standard.short=EST
-America/Grenada.daylight.short=ADT
-America/Grenada.generic.short=AT
-America/Grenada.standard.short=AST
-America/Guadeloupe.daylight.short=ADT
-America/Guadeloupe.generic.short=AT
-America/Guadeloupe.standard.short=AST
-America/Guatemala.daylight.short=CDT
-America/Guatemala.generic.short=CT
-America/Guatemala.standard.short=CST
-America/Guayaquil.daylight.short=ECST
-America/Guayaquil.generic.short=ECT
-America/Guayaquil.standard.short=ECT
-America/Guyana.daylight.short=GYST
-America/Guyana.generic.short=GYT
-America/Guyana.standard.short=GYT
-America/Halifax.daylight.short=ADT
-America/Halifax.generic.short=AT
-America/Halifax.standard.short=AST
-America/Havana.daylight.short=CDT
-America/Havana.generic.short=CT
-America/Havana.standard.short=CST
-America/Hermosillo.daylight.short=MDT
-America/Hermosillo.generic.short=MT
-America/Hermosillo.standard.short=MST
-America/Indiana/Indianapolis.daylight.short=EDT
-America/Indiana/Indianapolis.generic.short=ET
-America/Indiana/Indianapolis.standard.short=EST
-America/Indiana/Knox.daylight.short=CDT
-America/Indiana/Knox.generic.short=CT
-America/Indiana/Knox.standard.short=CST
-America/Indiana/Marengo.daylight.short=EDT
-America/Indiana/Marengo.generic.short=ET
-America/Indiana/Marengo.standard.short=EST
-America/Indiana/Petersburg.daylight.short=EDT
-America/Indiana/Petersburg.generic.short=ET
-America/Indiana/Petersburg.standard.short=EST
-America/Indianapolis.daylight.short=EDT
-America/Indianapolis.generic.short=ET
-America/Indianapolis.standard.short=EST
-America/Indiana/Tell_City.daylight.short=CDT
-America/Indiana/Tell_City.generic.short=CT
-America/Indiana/Tell_City.standard.short=CST
-America/Indiana/Vevay.daylight.short=EDT
-America/Indiana/Vevay.generic.short=ET
-America/Indiana/Vevay.standard.short=EST
-America/Indiana/Vincennes.daylight.short=EDT
-America/Indiana/Vincennes.generic.short=ET
-America/Indiana/Vincennes.standard.short=EST
-America/Indiana/Winamac.daylight.short=EDT
-America/Indiana/Winamac.generic.short=ET
-America/Indiana/Winamac.standard.short=EST
-America/Inuvik.daylight.short=MDT
-America/Inuvik.generic.short=MT
-America/Inuvik.standard.short=MST
-America/Iqaluit.daylight.short=EDT
-America/Iqaluit.generic.short=ET
-America/Iqaluit.standard.short=EST
-America/Jamaica.daylight.short=EDT
-America/Jamaica.generic.short=ET
-America/Jamaica.standard.short=EST
-America/Jujuy.daylight.short=ARST
-America/Jujuy.generic.short=ART
-America/Jujuy.standard.short=ART
-America/Juneau.daylight.short=AKDT
-America/Juneau.generic.short=AKT
-America/Juneau.standard.short=AKST
-America/Kentucky/Louisville.daylight.short=EDT
-America/Kentucky/Louisville.generic.short=ET
-America/Kentucky/Louisville.standard.short=EST
-America/Kentucky/Monticello.daylight.short=EDT
-America/Kentucky/Monticello.generic.short=ET
-America/Kentucky/Monticello.standard.short=EST
-America/Knox_IN.daylight.short=CDT
-America/Knox_IN.generic.short=CT
-America/Knox_IN.standard.short=CST
-America/Kralendijk.daylight.short=ADT
-America/Kralendijk.generic.short=AT
-America/Kralendijk.standard.short=AST
-America/La_Paz.daylight.short=BOST
-America/La_Paz.generic.short=BOT
-America/La_Paz.standard.short=BOT
-America/Lima.daylight.short=PEST
-America/Lima.generic.short=PET
-America/Lima.standard.short=PET
-America/Los_Angeles.daylight.short=PDT
-America/Los_Angeles.generic.short=PT
-America/Los_Angeles.standard.short=PST
-America/Louisville.daylight.short=EDT
-America/Louisville.generic.short=ET
-America/Louisville.standard.short=EST
-America/Lower_Princes.daylight.short=ADT
-America/Lower_Princes.generic.short=AT
-America/Lower_Princes.standard.short=AST
-America/Maceio.daylight.short=BRST
-America/Maceio.generic.short=BRT
-America/Maceio.standard.short=BRT
-America/Managua.daylight.short=CDT
-America/Managua.generic.short=CT
-America/Managua.standard.short=CST
-America/Manaus.daylight.short=AMST
-America/Manaus.generic.short=AMT
-America/Manaus.standard.short=AMT
-America/Marigot.daylight.short=ADT
-America/Marigot.generic.short=AT
-America/Marigot.standard.short=AST
-America/Martinique.daylight.short=ADT
-America/Martinique.generic.short=AT
-America/Martinique.standard.short=AST
-America/Matamoros.daylight.short=CDT
-America/Matamoros.generic.short=CT
-America/Matamoros.standard.short=CST
-America/Mazatlan.daylight.short=MDT
-America/Mazatlan.generic.short=MT
-America/Mazatlan.standard.short=MST
-America/Mendoza.daylight.short=ARST
-America/Mendoza.generic.short=ART
-America/Mendoza.standard.short=ART
-America/Menominee.daylight.short=CDT
-America/Menominee.generic.short=CT
-America/Menominee.standard.short=CST
-America/Merida.daylight.short=CDT
-America/Merida.generic.short=CT
-America/Merida.standard.short=CST
-America/Metlakatla.daylight.short=MeDT
-America/Metlakatla.generic.short=MeT
-America/Metlakatla.standard.short=MeST
-America/Mexico_City.daylight.short=CDT
-America/Mexico_City.generic.short=CT
-America/Mexico_City.standard.short=CST
-America/Miquelon.daylight.short=PMDT
-America/Miquelon.generic.short=PMT
-America/Miquelon.standard.short=PMST
-America/Moncton.daylight.short=ADT
-America/Moncton.generic.short=AT
-America/Moncton.standard.short=AST
-America/Monterrey.daylight.short=CDT
-America/Monterrey.generic.short=CT
-America/Monterrey.standard.short=CST
-America/Montevideo.daylight.short=UYST
-America/Montevideo.generic.short=UYT
-America/Montevideo.standard.short=UYT
-America/Montreal.daylight.short=EDT
-America/Montreal.generic.short=ET
-America/Montreal.standard.short=EST
-America/Montserrat.daylight.short=ADT
-America/Montserrat.generic.short=AT
-America/Montserrat.standard.short=AST
-America/Nassau.daylight.short=EDT
-America/Nassau.generic.short=ET
-America/Nassau.standard.short=EST
-America/New_York.daylight.short=EDT
-America/New_York.generic.short=ET
-America/New_York.standard.short=EST
-America/Nipigon.daylight.short=EDT
-America/Nipigon.generic.short=ET
-America/Nipigon.standard.short=EST
-America/Nome.daylight.short=AKDT
-America/Nome.generic.short=AKT
-America/Nome.standard.short=AKST
-America/Noronha.daylight.short=FNST
-America/Noronha.generic.short=FNT
-America/Noronha.standard.short=FNT
-America/North_Dakota/Beulah.daylight.short=CDT
-America/North_Dakota/Beulah.generic.short=CT
-America/North_Dakota/Beulah.standard.short=CST
-America/North_Dakota/Center.daylight.short=CDT
-America/North_Dakota/Center.generic.short=CT
-America/North_Dakota/Center.standard.short=CST
-America/North_Dakota/New_Salem.daylight.short=CDT
-America/North_Dakota/New_Salem.generic.short=CT
-America/North_Dakota/New_Salem.standard.short=CST
-America/Ojinaga.daylight.short=MDT
-America/Ojinaga.generic.short=MT
-America/Ojinaga.standard.short=MST
-America/Panama.daylight.short=EDT
-America/Panama.generic.short=ET
-America/Panama.standard.short=EST
-America/Pangnirtung.daylight.short=EDT
-America/Pangnirtung.generic.short=ET
-America/Pangnirtung.standard.short=EST
-America/Paramaribo.daylight.short=SRST
-America/Paramaribo.generic.short=SRT
-America/Paramaribo.standard.short=SRT
-America/Phoenix.daylight.short=MDT
-America/Phoenix.generic.short=MT
-America/Phoenix.standard.short=MST
-America/Port-au-Prince.daylight.short=EDT
-America/Port-au-Prince.generic.short=ET
-America/Port-au-Prince.standard.short=EST
-America/Porto_Acre.daylight.short=ACST
-America/Porto_Acre.generic.short=ACT
-America/Porto_Acre.standard.short=ACT
-America/Port_of_Spain.daylight.short=ADT
-America/Port_of_Spain.generic.short=AT
-America/Port_of_Spain.standard.short=AST
-America/Porto_Velho.daylight.short=AMST
-America/Porto_Velho.generic.short=AMT
-America/Porto_Velho.standard.short=AMT
-America/Puerto_Rico.daylight.short=ADT
-America/Puerto_Rico.generic.short=AT
-America/Puerto_Rico.standard.short=AST
-America/Rainy_River.daylight.short=CDT
-America/Rainy_River.generic.short=CT
-America/Rainy_River.standard.short=CST
-America/Rankin_Inlet.daylight.short=CDT
-America/Rankin_Inlet.generic.short=CT
-America/Rankin_Inlet.standard.short=CST
-America/Recife.daylight.short=BRST
-America/Recife.generic.short=BRT
-America/Recife.standard.short=BRT
-America/Regina.daylight.short=CDT
-America/Regina.generic.short=CT
-America/Regina.standard.short=CST
-America/Resolute.daylight.short=CDT
-America/Resolute.generic.short=CT
-America/Resolute.standard.short=CST
-America/Rio_Branco.daylight.short=ACST
-America/Rio_Branco.generic.short=ACT
-America/Rio_Branco.standard.short=ACT
-America/Rosario.daylight.short=ARST
-America/Rosario.generic.short=ART
-America/Rosario.standard.short=ART
-America/Santa_Isabel.daylight.short=PDT
-America/Santa_Isabel.generic.short=PT
-America/Santa_Isabel.standard.short=PST
-America/Santarem.daylight.short=BRST
-America/Santarem.generic.short=BRT
-America/Santarem.standard.short=BRT
-America/Santiago.daylight.short=CLST
-America/Santiago.generic.short=CLT
-America/Santiago.standard.short=CLT
-America/Santo_Domingo.daylight.short=ADT
-America/Santo_Domingo.generic.short=AT
-America/Santo_Domingo.standard.short=AST
-America/Sao_Paulo.daylight.short=BRST
-America/Sao_Paulo.generic.short=BRT
-America/Sao_Paulo.standard.short=BRT
-America/Scoresbysund.daylight.short=EGST
-America/Scoresbysund.generic.short=EGT
-America/Scoresbysund.standard.short=EGT
-America/Shiprock.daylight.short=MDT
-America/Shiprock.generic.short=MT
-America/Shiprock.standard.short=MST
-America/Sitka.daylight.short=AKDT
-America/Sitka.generic.short=AKT
-America/Sitka.standard.short=AKST
-America/St_Barthelemy.daylight.short=ADT
-America/St_Barthelemy.generic.short=AT
-America/St_Barthelemy.standard.short=AST
-America/St_Johns.daylight.short=NDT
-America/St_Johns.generic.short=NT
-America/St_Johns.standard.short=NST
-America/St_Kitts.daylight.short=ADT
-America/St_Kitts.generic.short=AT
-America/St_Kitts.standard.short=AST
-America/St_Lucia.daylight.short=ADT
-America/St_Lucia.generic.short=AT
-America/St_Lucia.standard.short=AST
-America/St_Thomas.daylight.short=ADT
-America/St_Thomas.generic.short=AT
-America/St_Thomas.standard.short=AST
-America/St_Vincent.daylight.short=ADT
-America/St_Vincent.generic.short=AT
-America/St_Vincent.standard.short=AST
-America/Swift_Current.daylight.short=CDT
-America/Swift_Current.generic.short=CT
-America/Swift_Current.standard.short=CST
-America/Tegucigalpa.daylight.short=CDT
-America/Tegucigalpa.generic.short=CT
-America/Tegucigalpa.standard.short=CST
-America/Thule.daylight.short=ADT
-America/Thule.generic.short=AT
-America/Thule.standard.short=AST
-America/Thunder_Bay.daylight.short=EDT
-America/Thunder_Bay.generic.short=ET
-America/Thunder_Bay.standard.short=EST
-America/Tijuana.daylight.short=PDT
-America/Tijuana.generic.short=PT
-America/Tijuana.standard.short=PST
-America/Toronto.daylight.short=EDT
-America/Toronto.generic.short=ET
-America/Toronto.standard.short=EST
-America/Tortola.daylight.short=ADT
-America/Tortola.generic.short=AT
-America/Tortola.standard.short=AST
-America/Vancouver.daylight.short=PDT
-America/Vancouver.generic.short=PT
-America/Vancouver.standard.short=PST
-America/Virgin.daylight.short=ADT
-America/Virgin.generic.short=AT
-America/Virgin.standard.short=AST
-America/Whitehorse.daylight.short=PDT
-America/Whitehorse.generic.short=PT
-America/Whitehorse.standard.short=PST
-America/Winnipeg.daylight.short=CDT
-America/Winnipeg.generic.short=CT
-America/Winnipeg.standard.short=CST
-America/Yakutat.daylight.short=AKDT
-America/Yakutat.generic.short=AKT
-America/Yakutat.standard.short=AKST
-America/Yellowknife.daylight.short=MDT
-America/Yellowknife.generic.short=MT
-America/Yellowknife.standard.short=MST
-Antarctica/Casey.daylight.short=WST
-Antarctica/Casey.generic.short=WT
-Antarctica/Casey.standard.short=WST
-Antarctica/Davis.daylight.short=DAVST
-Antarctica/Davis.generic.short=DAVT
-Antarctica/Davis.standard.short=DAVT
-Antarctica/DumontDUrville.daylight.short=DDUST
-Antarctica/DumontDUrville.generic.short=DDUT
-Antarctica/DumontDUrville.standard.short=DDUT
-Antarctica/Macquarie.daylight.short=MIST
-Antarctica/Macquarie.generic.short=MIST
-Antarctica/Macquarie.standard.short=MIST
-Antarctica/Mawson.daylight.short=MAWST
-Antarctica/Mawson.generic.short=MAWT
-Antarctica/Mawson.standard.short=MAWT
-Antarctica/McMurdo.daylight.short=NZDT
-Antarctica/McMurdo.generic.short=NZT
-Antarctica/McMurdo.standard.short=NZST
-Antarctica/Palmer.daylight.short=CLST
-Antarctica/Palmer.generic.short=CLT
-Antarctica/Palmer.standard.short=CLT
-Antarctica/Rothera.daylight.short=ROTST
-Antarctica/Rothera.generic.short=ROTT
-Antarctica/Rothera.standard.short=ROTT
-Antarctica/South_Pole.daylight.short=NZDT
-Antarctica/South_Pole.generic.short=NZT
-Antarctica/South_Pole.standard.short=NZST
-Antarctica/Syowa.daylight.short=SYOST
-Antarctica/Syowa.generic.short=SYOT
-Antarctica/Syowa.standard.short=SYOT
-Antarctica/Vostok.daylight.short=VOSST
-Antarctica/Vostok.generic.short=VOST
-Antarctica/Vostok.standard.short=VOST
-Arctic/Longyearbyen.daylight.short=CEST
-Arctic/Longyearbyen.generic.short=CET
-Arctic/Longyearbyen.standard.short=CET
-ART.daylight.short=EEST
-ART.generic.short=EET
-ART.standard.short=EET
-Asia/Aden.daylight.short=ADT
-Asia/Aden.generic.short=AT
-Asia/Aden.standard.short=AST
-Asia/Almaty.daylight.short=ALMST
-Asia/Almaty.generic.short=ALMT
-Asia/Almaty.standard.short=ALMT
-Asia/Amman.daylight.short=ADT
-Asia/Amman.generic.short=AT
-Asia/Amman.standard.short=AST
-Asia/Anadyr.daylight.short=ANAST
-Asia/Anadyr.generic.short=ANAT
-Asia/Anadyr.standard.short=ANAT
-Asia/Aqtau.daylight.short=AQTST
-Asia/Aqtau.generic.short=AQTT
-Asia/Aqtau.standard.short=AQTT
-Asia/Aqtobe.daylight.short=AQTST
-Asia/Aqtobe.generic.short=AQTT
-Asia/Aqtobe.standard.short=AQTT
-Asia/Ashgabat.daylight.short=TMST
-Asia/Ashgabat.generic.short=TMT
-Asia/Ashgabat.standard.short=TMT
-Asia/Ashkhabad.daylight.short=TMST
-Asia/Ashkhabad.generic.short=TMT
-Asia/Ashkhabad.standard.short=TMT
-Asia/Baghdad.daylight.short=ADT
-Asia/Baghdad.generic.short=AT
-Asia/Baghdad.standard.short=AST
-Asia/Bahrain.daylight.short=ADT
-Asia/Bahrain.generic.short=AT
-Asia/Bahrain.standard.short=AST
-Asia/Baku.daylight.short=AZST
-Asia/Baku.generic.short=AZT
-Asia/Baku.standard.short=AZT
-Asia/Bangkok.daylight.short=ICST
-Asia/Bangkok.generic.short=ICT
-Asia/Bangkok.standard.short=ICT
-Asia/Beirut.daylight.short=EEST
-Asia/Beirut.generic.short=EET
-Asia/Beirut.standard.short=EET
-Asia/Bishkek.daylight.short=KGST
-Asia/Bishkek.generic.short=KGT
-Asia/Bishkek.standard.short=KGT
-Asia/Brunei.daylight.short=BNST
-Asia/Brunei.generic.short=BNT
-Asia/Brunei.standard.short=BNT
-Asia/Calcutta.daylight.short=IDT
-Asia/Calcutta.generic.short=IT
-Asia/Calcutta.standard.short=IST
-Asia/Choibalsan.daylight.short=CHOST
-Asia/Choibalsan.generic.short=CHOT
-Asia/Choibalsan.standard.short=CHOT
-Asia/Chongqing.daylight.short=CDT
-Asia/Chongqing.generic.short=CT
-Asia/Chongqing.standard.short=CST
-Asia/Chungking.daylight.short=CDT
-Asia/Chungking.generic.short=CT
-Asia/Chungking.standard.short=CST
-Asia/Colombo.daylight.short=IDT
-Asia/Colombo.generic.short=IT
-Asia/Colombo.standard.short=IST
-Asia/Dacca.daylight.short=BDST
-Asia/Dacca.generic.short=BDT
-Asia/Dacca.standard.short=BDT
-Asia/Damascus.daylight.short=EEST
-Asia/Damascus.generic.short=EET
-Asia/Damascus.standard.short=EET
-Asia/Dhaka.daylight.short=BDST
-Asia/Dhaka.generic.short=BDT
-Asia/Dhaka.standard.short=BDT
-Asia/Dili.daylight.short=TLST
-Asia/Dili.generic.short=TLT
-Asia/Dili.standard.short=TLT
-Asia/Dubai.daylight.short=GDT
-Asia/Dubai.generic.short=GT
-Asia/Dubai.standard.short=GST
-Asia/Dushanbe.daylight.short=TJST
-Asia/Dushanbe.generic.short=TJT
-Asia/Dushanbe.standard.short=TJT
-Asia/Gaza.daylight.short=EEST
-Asia/Gaza.generic.short=EET
-Asia/Gaza.standard.short=EET
-Asia/Harbin.daylight.short=CDT
-Asia/Harbin.generic.short=CT
-Asia/Harbin.standard.short=CST
-Asia/Hebron.daylight.short=EEST
-Asia/Hebron.generic.short=EET
-Asia/Hebron.standard.short=EET
-Asia/Ho_Chi_Minh.daylight.short=ICST
-Asia/Ho_Chi_Minh.generic.short=ICT
-Asia/Ho_Chi_Minh.standard.short=ICT
-Asia/Hong_Kong.daylight.short=HKST
-Asia/Hong_Kong.generic.short=HKT
-Asia/Hong_Kong.standard.short=HKT
-Asia/Hovd.daylight.short=HOVST
-Asia/Hovd.generic.short=HOVT
-Asia/Hovd.standard.short=HOVT
-Asia/Irkutsk.daylight.short=IRKST
-Asia/Irkutsk.generic.short=IRKT
-Asia/Irkutsk.standard.short=IRKT
-Asia/Istanbul.daylight.short=EEST
-Asia/Istanbul.generic.short=EET
-Asia/Istanbul.standard.short=EET
-Asia/Jakarta.daylight.short=WIST
-Asia/Jakarta.generic.short=WIB
-Asia/Jakarta.standard.short=WIB
-Asia/Jayapura.daylight.short=EIST
-Asia/Jayapura.generic.short=WIT
-Asia/Jayapura.standard.short=WIT
-Asia/Jerusalem.daylight.short=IDT
-Asia/Jerusalem.generic.short=IT
-Asia/Jerusalem.standard.short=IST
-Asia/Kabul.daylight.short=AFST
-Asia/Kabul.generic.short=AFT
-Asia/Kabul.standard.short=AFT
-Asia/Kamchatka.daylight.short=PETST
-Asia/Kamchatka.generic.short=PETT
-Asia/Kamchatka.standard.short=PETT
-Asia/Karachi.daylight.short=PKST
-Asia/Karachi.generic.short=PKT
-Asia/Karachi.standard.short=PKT
-Asia/Kashgar.daylight.short=CDT
-Asia/Kashgar.generic.short=CT
-Asia/Kashgar.standard.short=CST
-Asia/Kathmandu.daylight.short=NPST
-Asia/Kathmandu.generic.short=NPT
-Asia/Kathmandu.standard.short=NPT
-Asia/Katmandu.daylight.short=NPST
-Asia/Katmandu.generic.short=NPT
-Asia/Katmandu.standard.short=NPT
-Asia/Khandyga.daylight.short=YAKST
-Asia/Khandyga.generic.short=YAKT
-Asia/Khandyga.standard.short=YAKT
-Asia/Kolkata.daylight.short=IDT
-Asia/Kolkata.generic.short=IT
-Asia/Kolkata.standard.short=IST
-Asia/Krasnoyarsk.daylight.short=KRAST
-Asia/Krasnoyarsk.generic.short=KRAT
-Asia/Krasnoyarsk.standard.short=KRAT
-Asia/Kuala_Lumpur.daylight.short=MYST
-Asia/Kuala_Lumpur.generic.short=MYT
-Asia/Kuala_Lumpur.standard.short=MYT
-Asia/Kuching.daylight.short=MYST
-Asia/Kuching.generic.short=MYT
-Asia/Kuching.standard.short=MYT
-Asia/Kuwait.daylight.short=ADT
-Asia/Kuwait.generic.short=AT
-Asia/Kuwait.standard.short=AST
-Asia/Macao.daylight.short=CDT
-Asia/Macao.generic.short=CT
-Asia/Macao.standard.short=CST
-Asia/Macau.daylight.short=CDT
-Asia/Macau.generic.short=CT
-Asia/Macau.standard.short=CST
-Asia/Magadan.daylight.short=MAGST
-Asia/Magadan.generic.short=MAGT
-Asia/Magadan.standard.short=MAGT
-Asia/Makassar.daylight.short=CIST
-Asia/Makassar.generic.short=WITA
-Asia/Makassar.standard.short=WITA
-Asia/Manila.daylight.short=PHST
-Asia/Manila.generic.short=PHT
-Asia/Manila.standard.short=PHT
-Asia/Muscat.daylight.short=GDT
-Asia/Muscat.generic.short=GT
-Asia/Muscat.standard.short=GST
-Asia/Nicosia.daylight.short=EEST
-Asia/Nicosia.generic.short=EET
-Asia/Nicosia.standard.short=EET
-Asia/Novokuznetsk.daylight.short=NOVST
-Asia/Novokuznetsk.generic.short=NOVT
-Asia/Novokuznetsk.standard.short=NOVT
-Asia/Novosibirsk.daylight.short=NOVST
-Asia/Novosibirsk.generic.short=NOVT
-Asia/Novosibirsk.standard.short=NOVT
-Asia/Omsk.daylight.short=OMSST
-Asia/Omsk.generic.short=OMST
-Asia/Omsk.standard.short=OMST
-Asia/Oral.daylight.short=ORAST
-Asia/Oral.generic.short=ORAT
-Asia/Oral.standard.short=ORAT
-Asia/Phnom_Penh.daylight.short=ICST
-Asia/Phnom_Penh.generic.short=ICT
-Asia/Phnom_Penh.standard.short=ICT
-Asia/Pontianak.daylight.short=WIST
-Asia/Pontianak.generic.short=WIB
-Asia/Pontianak.standard.short=WIB
-Asia/Pyongyang.daylight.short=KDT
-Asia/Pyongyang.generic.short=KT
-Asia/Pyongyang.standard.short=KST
-Asia/Qatar.daylight.short=ADT
-Asia/Qatar.generic.short=AT
-Asia/Qatar.standard.short=AST
-Asia/Qyzylorda.daylight.short=QYZST
-Asia/Qyzylorda.generic.short=QYZT
-Asia/Qyzylorda.standard.short=QYZT
-Asia/Rangoon.daylight.short=MMST
-Asia/Rangoon.generic.short=MMT
-Asia/Rangoon.standard.short=MMT
-Asia/Saigon.daylight.short=ICST
-Asia/Saigon.generic.short=ICT
-Asia/Saigon.standard.short=ICT
-Asia/Sakhalin.daylight.short=SAKST
-Asia/Sakhalin.generic.short=SAKT
-Asia/Sakhalin.standard.short=SAKT
-Asia/Samarkand.daylight.short=UZST
-Asia/Samarkand.generic.short=UZT
-Asia/Samarkand.standard.short=UZT
-Asia/Seoul.daylight.short=KDT
-Asia/Seoul.generic.short=KT
-Asia/Seoul.standard.short=KST
-Asia/Shanghai.daylight.short=CDT
-Asia/Shanghai.generic.short=CT
-Asia/Shanghai.standard.short=CST
-Asia/Singapore.daylight.short=SGST
-Asia/Singapore.generic.short=SGT
-Asia/Singapore.standard.short=SGT
-Asia/Taipei.daylight.short=CDT
-Asia/Taipei.generic.short=CT
-Asia/Taipei.standard.short=CST
-Asia/Tashkent.daylight.short=UZST
-Asia/Tashkent.generic.short=UZT
-Asia/Tashkent.standard.short=UZT
-Asia/Tbilisi.daylight.short=GEST
-Asia/Tbilisi.generic.short=GET
-Asia/Tbilisi.standard.short=GET
-Asia/Tehran.daylight.short=IRDT
-Asia/Tehran.generic.short=IRT
-Asia/Tehran.standard.short=IRST
-Asia/Tel_Aviv.daylight.short=IDT
-Asia/Tel_Aviv.generic.short=IT
-Asia/Tel_Aviv.standard.short=IST
-Asia/Thimbu.daylight.short=BTST
-Asia/Thimbu.generic.short=BTT
-Asia/Thimbu.standard.short=BTT
-Asia/Thimphu.daylight.short=BTST
-Asia/Thimphu.generic.short=BTT
-Asia/Thimphu.standard.short=BTT
-Asia/Tokyo.daylight.short=JDT
-Asia/Tokyo.generic.short=JT
-Asia/Tokyo.standard.short=JST
-Asia/Ujung_Pandang.daylight.short=CIST
-Asia/Ujung_Pandang.generic.short=WITA
-Asia/Ujung_Pandang.standard.short=WITA
-Asia/Ulaanbaatar.daylight.short=ULAST
-Asia/Ulaanbaatar.generic.short=ULAT
-Asia/Ulaanbaatar.standard.short=ULAT
-Asia/Ulan_Bator.daylight.short=ULAST
-Asia/Ulan_Bator.generic.short=ULAT
-Asia/Ulan_Bator.standard.short=ULAT
-Asia/Urumqi.daylight.short=CDT
-Asia/Urumqi.generic.short=CT
-Asia/Urumqi.standard.short=CST
-Asia/Ust-Nera.daylight.short=VLAST
-Asia/Ust-Nera.generic.short=VLAT
-Asia/Ust-Nera.standard.short=VLAT
-Asia/Vientiane.daylight.short=ICST
-Asia/Vientiane.generic.short=ICT
-Asia/Vientiane.standard.short=ICT
-Asia/Vladivostok.daylight.short=VLAST
-Asia/Vladivostok.generic.short=VLAT
-Asia/Vladivostok.standard.short=VLAT
-Asia/Yakutsk.daylight.short=YAKST
-Asia/Yakutsk.generic.short=YAKT
-Asia/Yakutsk.standard.short=YAKT
-Asia/Yekaterinburg.daylight.short=YEKST
-Asia/Yekaterinburg.generic.short=YEKT
-Asia/Yekaterinburg.standard.short=YEKT
-Asia/Yerevan.daylight.short=AMST
-Asia/Yerevan.generic.short=AMT
-Asia/Yerevan.standard.short=AMT
-AST.daylight.short=AKDT
-AST.generic.short=AKT
-AST.standard.short=AKST
-Atlantic/Azores.daylight.short=AZOST
-Atlantic/Azores.generic.short=AZOT
-Atlantic/Azores.standard.short=AZOT
-Atlantic/Bermuda.daylight.short=ADT
-Atlantic/Bermuda.generic.short=AT
-Atlantic/Bermuda.standard.short=AST
-Atlantic/Canary.daylight.short=WEST
-Atlantic/Canary.generic.short=WET
-Atlantic/Canary.standard.short=WET
-Atlantic/Cape_Verde.daylight.short=CVST
-Atlantic/Cape_Verde.generic.short=CVT
-Atlantic/Cape_Verde.standard.short=CVT
-Atlantic/Faeroe.daylight.short=WEST
-Atlantic/Faeroe.generic.short=WET
-Atlantic/Faeroe.standard.short=WET
-Atlantic/Faroe.daylight.short=WEST
-Atlantic/Faroe.generic.short=WET
-Atlantic/Faroe.standard.short=WET
-Atlantic/Jan_Mayen.daylight.short=CEST
-Atlantic/Jan_Mayen.generic.short=CET
-Atlantic/Jan_Mayen.standard.short=CET
-Atlantic/Madeira.daylight.short=WEST
-Atlantic/Madeira.generic.short=WET
-Atlantic/Madeira.standard.short=WET
-Atlantic/Reykjavik.daylight.short=GMT
-Atlantic/Reykjavik.generic.short=GMT
-Atlantic/Reykjavik.standard.short=GMT
-Atlantic/South_Georgia.daylight.short=GDT
-Atlantic/South_Georgia.generic.short=GT
-Atlantic/South_Georgia.standard.short=GST
-Atlantic/Stanley.daylight.short=FKST
-Atlantic/Stanley.generic.short=FKT
-Atlantic/Stanley.standard.short=FKT
-Atlantic/St_Helena.daylight.short=GMT
-Atlantic/St_Helena.generic.short=GMT
-Atlantic/St_Helena.standard.short=GMT
-Australia/ACT.daylight.short=EST
-Australia/ACT.generic.short=ET
-Australia/ACT.standard.short=EST
-Australia/Adelaide.daylight.short=CST
-Australia/Adelaide.generic.short=CT
-Australia/Adelaide.standard.short=CST
-Australia/Brisbane.daylight.short=EST
-Australia/Brisbane.generic.short=ET
-Australia/Brisbane.standard.short=EST
-Australia/Broken_Hill.daylight.short=CST
-Australia/Broken_Hill.generic.short=CT
-Australia/Broken_Hill.standard.short=CST
-Australia/Canberra.daylight.short=EST
-Australia/Canberra.generic.short=ET
-Australia/Canberra.standard.short=EST
-Australia/Currie.daylight.short=EST
-Australia/Currie.generic.short=ET
-Australia/Currie.standard.short=EST
-Australia/Darwin.daylight.short=CST
-Australia/Darwin.generic.short=CT
-Australia/Darwin.standard.short=CST
-Australia/Eucla.daylight.short=CWST
-Australia/Eucla.generic.short=CWT
-Australia/Eucla.standard.short=CWST
-Australia/Hobart.daylight.short=EST
-Australia/Hobart.generic.short=ET
-Australia/Hobart.standard.short=EST
-Australia/LHI.daylight.short=LHST
-Australia/LHI.generic.short=LHT
-Australia/LHI.standard.short=LHST
-Australia/Lindeman.daylight.short=EST
-Australia/Lindeman.generic.short=ET
-Australia/Lindeman.standard.short=EST
-Australia/Lord_Howe.daylight.short=LHST
-Australia/Lord_Howe.generic.short=LHT
-Australia/Lord_Howe.standard.short=LHST
-Australia/Melbourne.daylight.short=EST
-Australia/Melbourne.generic.short=ET
-Australia/Melbourne.standard.short=EST
-Australia/North.daylight.short=CST
-Australia/North.generic.short=CT
-Australia/North.standard.short=CST
-Australia/NSW.daylight.short=EST
-Australia/NSW.generic.short=ET
-Australia/NSW.standard.short=EST
-Australia/Perth.daylight.short=WST
-Australia/Perth.generic.short=WT
-Australia/Perth.standard.short=WST
-Australia/Queensland.daylight.short=EST
-Australia/Queensland.generic.short=ET
-Australia/Queensland.standard.short=EST
-Australia/South.daylight.short=CST
-Australia/South.generic.short=CT
-Australia/South.standard.short=CST
-Australia/Sydney.daylight.short=EST
-Australia/Sydney.generic.short=ET
-Australia/Sydney.standard.short=EST
-Australia/Tasmania.daylight.short=EST
-Australia/Tasmania.generic.short=ET
-Australia/Tasmania.standard.short=EST
-Australia/Victoria.daylight.short=EST
-Australia/Victoria.generic.short=ET
-Australia/Victoria.standard.short=EST
-Australia/West.daylight.short=WST
-Australia/West.generic.short=WT
-Australia/West.standard.short=WST
-Australia/Yancowinna.daylight.short=CST
-Australia/Yancowinna.generic.short=CT
-Australia/Yancowinna.standard.short=CST
-BET.daylight.short=BRST
-BET.generic.short=BRT
-BET.standard.short=BRT
-Brazil/Acre.daylight.short=ACST
-Brazil/Acre.generic.short=ACT
-Brazil/Acre.standard.short=ACT
-Brazil/DeNoronha.daylight.short=FNST
-Brazil/DeNoronha.generic.short=FNT
-Brazil/DeNoronha.standard.short=FNT
-Brazil/East.daylight.short=BRST
-Brazil/East.generic.short=BRT
-Brazil/East.standard.short=BRT
-Brazil/West.daylight.short=AMST
-Brazil/West.generic.short=AMT
-Brazil/West.standard.short=AMT
-BST.daylight.short=BDST
-BST.generic.short=BDT
-BST.standard.short=BDT
-Canada/Atlantic.daylight.short=ADT
-Canada/Atlantic.generic.short=AT
-Canada/Atlantic.standard.short=AST
-Canada/Central.daylight.short=CDT
-Canada/Central.generic.short=CT
-Canada/Central.standard.short=CST
-Canada/Eastern.daylight.short=EDT
-Canada/Eastern.generic.short=ET
-Canada/Eastern.standard.short=EST
-Canada/East-Saskatchewan.daylight.short=CDT
-Canada/East-Saskatchewan.generic.short=CT
-Canada/East-Saskatchewan.standard.short=CST
-Canada/Mountain.daylight.short=MDT
-Canada/Mountain.generic.short=MT
-Canada/Mountain.standard.short=MST
-Canada/Newfoundland.daylight.short=NDT
-Canada/Newfoundland.generic.short=NT
-Canada/Newfoundland.standard.short=NST
-Canada/Pacific.daylight.short=PDT
-Canada/Pacific.generic.short=PT
-Canada/Pacific.standard.short=PST
-Canada/Saskatchewan.daylight.short=CDT
-Canada/Saskatchewan.generic.short=CT
-Canada/Saskatchewan.standard.short=CST
-Canada/Yukon.daylight.short=PDT
-Canada/Yukon.generic.short=PT
-Canada/Yukon.standard.short=PST
-CAT.daylight.short=CAST
-CAT.generic.short=CAT
-CAT.standard.short=CAT
-CET.daylight.short=CEST
-CET.generic.short=CET
-CET.standard.short=CET
-Chile/Continental.daylight.short=CLST
-Chile/Continental.generic.short=CLT
-Chile/Continental.standard.short=CLT
-Chile/EasterIsland.daylight.short=EASST
-Chile/EasterIsland.generic.short=EAST
-Chile/EasterIsland.standard.short=EAST
-CNT.daylight.short=NDT
-CNT.generic.short=NT
-CNT.standard.short=NST
-CST6CDT.daylight.short=CDT
-CST6CDT.generic.short=CT
-CST6CDT.standard.short=CST
-CST.daylight.short=CDT
-CST.generic.short=CT
-CST.standard.short=CST
-CTT.daylight.short=CDT
-CTT.generic.short=CT
-CTT.standard.short=CST
-Cuba.daylight.short=CDT
-Cuba.generic.short=CT
-Cuba.standard.short=CST
-EAT.daylight.short=EAST
-EAT.generic.short=EAT
-EAT.standard.short=EAT
-ECT.daylight.short=CEST
-ECT.generic.short=CET
-ECT.standard.short=CET
-EET.daylight.short=EEST
-EET.generic.short=EET
-EET.standard.short=EET
-Egypt.daylight.short=EEST
-Egypt.generic.short=EET
-Egypt.standard.short=EET
-Eire.daylight.short=IST
-Eire.generic.short=IT
-Eire.standard.short=GMT
-EST5EDT.daylight.short=EDT
-EST5EDT.generic.short=ET
-EST5EDT.standard.short=EST
-EST.daylight.short=EDT
-EST.generic.short=ET
-EST.standard.short=EST
-Etc/Greenwich.daylight.short=GMT
-Etc/Greenwich.generic.short=GMT
-Etc/Greenwich.standard.short=GMT
-Etc/UCT.daylight.short=UTC
-Etc/UCT.generic.short=UTC
-Etc/UCT.standard.short=UTC
-Etc/Universal.daylight.short=UTC
-Etc/Universal.generic.short=UTC
-Etc/Universal.standard.short=UTC
-Etc/UTC.daylight.short=UTC
-Etc/UTC.generic.short=UTC
-Etc/UTC.standard.short=UTC
-Etc/Zulu.daylight.short=UTC
-Etc/Zulu.generic.short=UTC
-Etc/Zulu.standard.short=UTC
-Europe/Amsterdam.daylight.short=CEST
-Europe/Amsterdam.generic.short=CET
-Europe/Amsterdam.standard.short=CET
-Europe/Andorra.daylight.short=CEST
-Europe/Andorra.generic.short=CET
-Europe/Andorra.standard.short=CET
-Europe/Athens.daylight.short=EEST
-Europe/Athens.generic.short=EET
-Europe/Athens.standard.short=EET
-Europe/Belfast.daylight.short=BST
-Europe/Belfast.generic.short=BT
-Europe/Belfast.standard.short=GMT
-Europe/Belgrade.daylight.short=CEST
-Europe/Belgrade.generic.short=CET
-Europe/Belgrade.standard.short=CET
-Europe/Berlin.daylight.short=CEST
-Europe/Berlin.generic.short=CET
-Europe/Berlin.standard.short=CET
-Europe/Bratislava.daylight.short=CEST
-Europe/Bratislava.generic.short=CET
-Europe/Bratislava.standard.short=CET
-Europe/Brussels.daylight.short=CEST
-Europe/Brussels.generic.short=CET
-Europe/Brussels.standard.short=CET
-Europe/Bucharest.daylight.short=EEST
-Europe/Bucharest.generic.short=EET
-Europe/Bucharest.standard.short=EET
-Europe/Budapest.daylight.short=CEST
-Europe/Budapest.generic.short=CET
-Europe/Budapest.standard.short=CET
-Europe/Busingen.daylight.short=CEST
-Europe/Busingen.generic.short=CET
-Europe/Busingen.standard.short=CET
-Europe/Chisinau.daylight.short=EEST
-Europe/Chisinau.generic.short=EET
-Europe/Chisinau.standard.short=EET
-Europe/Copenhagen.daylight.short=CEST
-Europe/Copenhagen.generic.short=CET
-Europe/Copenhagen.standard.short=CET
-Europe/Dublin.daylight.short=IST
-Europe/Dublin.generic.short=IT
-Europe/Dublin.standard.short=GMT
-Europe/Gibraltar.daylight.short=CEST
-Europe/Gibraltar.generic.short=CET
-Europe/Gibraltar.standard.short=CET
-Europe/Guernsey.daylight.short=BST
-Europe/Guernsey.generic.short=BT
-Europe/Guernsey.standard.short=GMT
-Europe/Helsinki.daylight.short=EEST
-Europe/Helsinki.generic.short=EET
-Europe/Helsinki.standard.short=EET
-Europe/Isle_of_Man.daylight.short=BST
-Europe/Isle_of_Man.generic.short=BT
-Europe/Isle_of_Man.standard.short=GMT
-Europe/Istanbul.daylight.short=EEST
-Europe/Istanbul.generic.short=EET
-Europe/Istanbul.standard.short=EET
-Europe/Jersey.daylight.short=BST
-Europe/Jersey.generic.short=BT
-Europe/Jersey.standard.short=GMT
-Europe/Kaliningrad.daylight.short=FEST
-Europe/Kaliningrad.generic.short=FET
-Europe/Kaliningrad.standard.short=FET
-Europe/Kiev.daylight.short=EEST
-Europe/Kiev.generic.short=EET
-Europe/Kiev.standard.short=EET
-Europe/Lisbon.daylight.short=WEST
-Europe/Lisbon.generic.short=WET
-Europe/Lisbon.standard.short=WET
-Europe/Ljubljana.daylight.short=CEST
-Europe/Ljubljana.generic.short=CET
-Europe/Ljubljana.standard.short=CET
-Europe/London.daylight.short=BST
-Europe/London.generic.short=BT
-Europe/London.standard.short=GMT
-Europe/Luxembourg.daylight.short=CEST
-Europe/Luxembourg.generic.short=CET
-Europe/Luxembourg.standard.short=CET
-Europe/Madrid.daylight.short=CEST
-Europe/Madrid.generic.short=CET
-Europe/Madrid.standard.short=CET
-Europe/Malta.daylight.short=CEST
-Europe/Malta.generic.short=CET
-Europe/Malta.standard.short=CET
-Europe/Mariehamn.daylight.short=EEST
-Europe/Mariehamn.generic.short=EET
-Europe/Mariehamn.standard.short=EET
-Europe/Minsk.daylight.short=FEST
-Europe/Minsk.generic.short=FET
-Europe/Minsk.standard.short=FET
-Europe/Monaco.daylight.short=CEST
-Europe/Monaco.generic.short=CET
-Europe/Monaco.standard.short=CET
-Europe/Moscow.daylight.short=MSD
-Europe/Moscow.generic.short=MT
-Europe/Moscow.standard.short=MSK
-Europe/Nicosia.daylight.short=EEST
-Europe/Nicosia.generic.short=EET
-Europe/Nicosia.standard.short=EET
-Europe/Oslo.daylight.short=CEST
-Europe/Oslo.generic.short=CET
-Europe/Oslo.standard.short=CET
-Europe/Paris.daylight.short=CEST
-Europe/Paris.generic.short=CET
-Europe/Paris.standard.short=CET
-Europe/Podgorica.daylight.short=CEST
-Europe/Podgorica.generic.short=CET
-Europe/Podgorica.standard.short=CET
-Europe/Prague.daylight.short=CEST
-Europe/Prague.generic.short=CET
-Europe/Prague.standard.short=CET
-Europe/Riga.daylight.short=EEST
-Europe/Riga.generic.short=EET
-Europe/Riga.standard.short=EET
-Europe/Rome.daylight.short=CEST
-Europe/Rome.generic.short=CET
-Europe/Rome.standard.short=CET
-Europe/Samara.daylight.short=SAMST
-Europe/Samara.generic.short=SAMT
-Europe/Samara.standard.short=SAMT
-Europe/San_Marino.daylight.short=CEST
-Europe/San_Marino.generic.short=CET
-Europe/San_Marino.standard.short=CET
-Europe/Sarajevo.daylight.short=CEST
-Europe/Sarajevo.generic.short=CET
-Europe/Sarajevo.standard.short=CET
-Europe/Simferopol.daylight.short=EEST
-Europe/Simferopol.generic.short=EET
-Europe/Simferopol.standard.short=EET
-Europe/Skopje.daylight.short=CEST
-Europe/Skopje.generic.short=CET
-Europe/Skopje.standard.short=CET
-Europe/Sofia.daylight.short=EEST
-Europe/Sofia.generic.short=EET
-Europe/Sofia.standard.short=EET
-Europe/Stockholm.daylight.short=CEST
-Europe/Stockholm.generic.short=CET
-Europe/Stockholm.standard.short=CET
-Europe/Tallinn.daylight.short=EEST
-Europe/Tallinn.generic.short=EET
-Europe/Tallinn.standard.short=EET
-Europe/Tirane.daylight.short=CEST
-Europe/Tirane.generic.short=CET
-Europe/Tirane.standard.short=CET
-Europe/Tiraspol.daylight.short=EEST
-Europe/Tiraspol.generic.short=EET
-Europe/Tiraspol.standard.short=EET
-Europe/Uzhgorod.daylight.short=EEST
-Europe/Uzhgorod.generic.short=EET
-Europe/Uzhgorod.standard.short=EET
-Europe/Vaduz.daylight.short=CEST
-Europe/Vaduz.generic.short=CET
-Europe/Vaduz.standard.short=CET
-Europe/Vatican.daylight.short=CEST
-Europe/Vatican.generic.short=CET
-Europe/Vatican.standard.short=CET
-Europe/Vienna.daylight.short=CEST
-Europe/Vienna.generic.short=CET
-Europe/Vienna.standard.short=CET
-Europe/Vilnius.daylight.short=EEST
-Europe/Vilnius.generic.short=EET
-Europe/Vilnius.standard.short=EET
-Europe/Volgograd.daylight.short=VOLST
-Europe/Volgograd.generic.short=VOLT
-Europe/Volgograd.standard.short=VOLT
-Europe/Warsaw.daylight.short=CEST
-Europe/Warsaw.generic.short=CET
-Europe/Warsaw.standard.short=CET
-Europe/Zagreb.daylight.short=CEST
-Europe/Zagreb.generic.short=CET
-Europe/Zagreb.standard.short=CET
-Europe/Zaporozhye.daylight.short=EEST
-Europe/Zaporozhye.generic.short=EET
-Europe/Zaporozhye.standard.short=EET
-Europe/Zurich.daylight.short=CEST
-Europe/Zurich.generic.short=CET
-Europe/Zurich.standard.short=CET
-GB.daylight.short=BST
-GB-Eire.daylight.short=BST
-GB-Eire.generic.short=BT
-GB-Eire.standard.short=GMT
-GB.generic.short=BT
-GB.standard.short=GMT
-GMT.daylight.short=GMT
-GMT.generic.short=GMT
-GMT.standard.short=GMT
-Greenwich.daylight.short=GMT
-Greenwich.generic.short=GMT
-Greenwich.standard.short=GMT
-Hongkong.daylight.short=HKST
-Hongkong.generic.short=HKT
-Hongkong.standard.short=HKT
-HST.daylight.short=HDT
-HST.generic.short=HT
-HST.standard.short=HST
-Iceland.daylight.short=GMT
-Iceland.generic.short=GMT
-Iceland.standard.short=GMT
-IET.daylight.short=EDT
-IET.generic.short=ET
-IET.standard.short=EST
-Indian/Antananarivo.daylight.short=EAST
-Indian/Antananarivo.generic.short=EAT
-Indian/Antananarivo.standard.short=EAT
-Indian/Chagos.daylight.short=IOST
-Indian/Chagos.generic.short=IOT
-Indian/Chagos.standard.short=IOT
-Indian/Christmas.daylight.short=CXST
-Indian/Christmas.generic.short=CIT
-Indian/Christmas.standard.short=CXT
-Indian/Cocos.daylight.short=CCST
-Indian/Cocos.generic.short=CCT
-Indian/Cocos.standard.short=CCT
-Indian/Comoro.daylight.short=EAST
-Indian/Comoro.generic.short=EAT
-Indian/Comoro.standard.short=EAT
-Indian/Kerguelen.daylight.short=TFST
-Indian/Kerguelen.generic.short=TFT
-Indian/Kerguelen.standard.short=TFT
-Indian/Mahe.daylight.short=SCST
-Indian/Mahe.generic.short=SCT
-Indian/Mahe.standard.short=SCT
-Indian/Maldives.daylight.short=MVST
-Indian/Maldives.generic.short=MVT
-Indian/Maldives.standard.short=MVT
-Indian/Mauritius.daylight.short=MUST
-Indian/Mauritius.generic.short=MUT
-Indian/Mauritius.standard.short=MUT
-Indian/Mayotte.daylight.short=EAST
-Indian/Mayotte.generic.short=EAT
-Indian/Mayotte.standard.short=EAT
-Indian/Reunion.daylight.short=REST
-Indian/Reunion.generic.short=RET
-Indian/Reunion.standard.short=RET
-Iran.daylight.short=IRDT
-Iran.generic.short=IRT
-Iran.standard.short=IRST
-Israel.daylight.short=IDT
-Israel.generic.short=IT
-Israel.standard.short=IST
-IST.daylight.short=IDT
-IST.generic.short=IT
-IST.standard.short=IST
-Jamaica.daylight.short=EDT
-Jamaica.generic.short=ET
-Jamaica.standard.short=EST
-Japan.daylight.short=JDT
-Japan.generic.short=JT
-Japan.standard.short=JST
-JST.daylight.short=JDT
-JST.generic.short=JT
-JST.standard.short=JST
-Kwajalein.daylight.short=MHST
-Kwajalein.generic.short=MHT
-Kwajalein.standard.short=MHT
-Libya.daylight.short=EEST
-Libya.generic.short=EET
-Libya.standard.short=EET
-MET.daylight.short=MEST
-MET.generic.short=MET
-MET.standard.short=MET
-Mexico/BajaNorte.daylight.short=PDT
-Mexico/BajaNorte.generic.short=PT
-Mexico/BajaNorte.standard.short=PST
-Mexico/BajaSur.daylight.short=MDT
-Mexico/BajaSur.generic.short=MT
-Mexico/BajaSur.standard.short=MST
-Mexico/General.daylight.short=CDT
-Mexico/General.generic.short=CT
-Mexico/General.standard.short=CST
-MIT.daylight.short=WSDT
-MIT.generic.short=WST
-MIT.standard.short=WST
-MST7MDT.daylight.short=MDT
-MST7MDT.generic.short=MT
-MST7MDT.standard.short=MST
-MST.daylight.short=MDT
-MST.generic.short=MT
-MST.standard.short=MST
-Navajo.daylight.short=MDT
-Navajo.generic.short=MT
-Navajo.standard.short=MST
-NET.daylight.short=AMST
-NET.generic.short=AMT
-NET.standard.short=AMT
-NST.daylight.short=NZDT
-NST.generic.short=NZT
-NST.standard.short=NZST
-NZ-CHAT.daylight.short=CHADT
-NZ-CHAT.generic.short=CHAT
-NZ-CHAT.standard.short=CHAST
-NZ.daylight.short=NZDT
-NZ.generic.short=NZT
-NZ.standard.short=NZST
-Pacific/Apia.daylight.short=WSDT
-Pacific/Apia.generic.short=WST
-Pacific/Apia.standard.short=WST
-Pacific/Auckland.daylight.short=NZDT
-Pacific/Auckland.generic.short=NZT
-Pacific/Auckland.standard.short=NZST
-Pacific/Chatham.daylight.short=CHADT
-Pacific/Chatham.generic.short=CHAT
-Pacific/Chatham.standard.short=CHAST
-Pacific/Chuuk.daylight.short=CHUST
-Pacific/Chuuk.generic.short=CHUT
-Pacific/Chuuk.standard.short=CHUT
-Pacific/Easter.daylight.short=EASST
-Pacific/Easter.generic.short=EAST
-Pacific/Easter.standard.short=EAST
-Pacific/Efate.daylight.short=VUST
-Pacific/Efate.generic.short=VUT
-Pacific/Efate.standard.short=VUT
-Pacific/Enderbury.daylight.short=PHOST
-Pacific/Enderbury.generic.short=PHOT
-Pacific/Enderbury.standard.short=PHOT
-Pacific/Fakaofo.daylight.short=TKST
-Pacific/Fakaofo.generic.short=TKT
-Pacific/Fakaofo.standard.short=TKT
-Pacific/Fiji.daylight.short=FJST
-Pacific/Fiji.generic.short=FJT
-Pacific/Fiji.standard.short=FJT
-Pacific/Funafuti.daylight.short=TVST
-Pacific/Funafuti.generic.short=TVT
-Pacific/Funafuti.standard.short=TVT
-Pacific/Galapagos.daylight.short=GALST
-Pacific/Galapagos.generic.short=GALT
-Pacific/Galapagos.standard.short=GALT
-Pacific/Gambier.daylight.short=GAMST
-Pacific/Gambier.generic.short=GAMT
-Pacific/Gambier.standard.short=GAMT
-Pacific/Guadalcanal.daylight.short=SBST
-Pacific/Guadalcanal.generic.short=SBT
-Pacific/Guadalcanal.standard.short=SBT
-Pacific/Guam.daylight.short=ChDT
-Pacific/Guam.generic.short=ChT
-Pacific/Guam.standard.short=ChST
-Pacific/Honolulu.daylight.short=HDT
-Pacific/Honolulu.generic.short=HT
-Pacific/Honolulu.standard.short=HST
-Pacific/Johnston.daylight.short=HDT
-Pacific/Johnston.generic.short=HT
-Pacific/Johnston.standard.short=HST
-Pacific/Kiritimati.daylight.short=LINST
-Pacific/Kiritimati.generic.short=LINT
-Pacific/Kiritimati.standard.short=LINT
-Pacific/Kosrae.daylight.short=KOSST
-Pacific/Kosrae.generic.short=KOST
-Pacific/Kosrae.standard.short=KOST
-Pacific/Kwajalein.daylight.short=MHST
-Pacific/Kwajalein.generic.short=MHT
-Pacific/Kwajalein.standard.short=MHT
-Pacific/Majuro.daylight.short=MHST
-Pacific/Majuro.generic.short=MHT
-Pacific/Majuro.standard.short=MHT
-Pacific/Marquesas.daylight.short=MARST
-Pacific/Marquesas.generic.short=MART
-Pacific/Marquesas.standard.short=MART
-Pacific/Midway.daylight.short=SDT
-Pacific/Midway.generic.short=ST
-Pacific/Midway.standard.short=SST
-Pacific/Nauru.daylight.short=NRST
-Pacific/Nauru.generic.short=NRT
-Pacific/Nauru.standard.short=NRT
-Pacific/Niue.daylight.short=NUST
-Pacific/Niue.generic.short=NUT
-Pacific/Niue.standard.short=NUT
-Pacific/Norfolk.daylight.short=NFST
-Pacific/Norfolk.generic.short=NFT
-Pacific/Norfolk.standard.short=NFT
-Pacific/Noumea.daylight.short=NCST
-Pacific/Noumea.generic.short=NCT
-Pacific/Noumea.standard.short=NCT
-Pacific/Pago_Pago.daylight.short=SDT
-Pacific/Pago_Pago.generic.short=ST
-Pacific/Pago_Pago.standard.short=SST
-Pacific/Palau.daylight.short=PWST
-Pacific/Palau.generic.short=PWT
-Pacific/Palau.standard.short=PWT
-Pacific/Pitcairn.daylight.short=PDT
-Pacific/Pitcairn.generic.short=PT
-Pacific/Pitcairn.standard.short=PST
-Pacific/Pohnpei.daylight.short=PONST
-Pacific/Pohnpei.generic.short=PONT
-Pacific/Pohnpei.standard.short=PONT
-Pacific/Ponape.daylight.short=PONST
-Pacific/Ponape.generic.short=PONT
-Pacific/Ponape.standard.short=PONT
-Pacific/Port_Moresby.daylight.short=PGST
-Pacific/Port_Moresby.generic.short=PGT
-Pacific/Port_Moresby.standard.short=PGT
-Pacific/Rarotonga.daylight.short=CKHST
-Pacific/Rarotonga.generic.short=CKT
-Pacific/Rarotonga.standard.short=CKT
-Pacific/Saipan.daylight.short=ChDT
-Pacific/Saipan.generic.short=ChT
-Pacific/Saipan.standard.short=ChST
-Pacific/Samoa.daylight.short=SDT
-Pacific/Samoa.generic.short=ST
-Pacific/Samoa.standard.short=SST
-Pacific/Tahiti.daylight.short=TAHST
-Pacific/Tahiti.generic.short=TAHT
-Pacific/Tahiti.standard.short=TAHT
-Pacific/Tarawa.daylight.short=GILST
-Pacific/Tarawa.generic.short=GILT
-Pacific/Tarawa.standard.short=GILT
-Pacific/Tongatapu.daylight.short=TOST
-Pacific/Tongatapu.generic.short=TOT
-Pacific/Tongatapu.standard.short=TOT
-Pacific/Truk.daylight.short=CHUST
-Pacific/Truk.generic.short=CHUT
-Pacific/Truk.standard.short=CHUT
-Pacific/Wake.daylight.short=WAKST
-Pacific/Wake.generic.short=WAKT
-Pacific/Wake.standard.short=WAKT
-Pacific/Wallis.daylight.short=WFST
-Pacific/Wallis.generic.short=WFT
-Pacific/Wallis.standard.short=WFT
-Pacific/Yap.daylight.short=CHUST
-Pacific/Yap.generic.short=CHUT
-Pacific/Yap.standard.short=CHUT
-PLT.daylight.short=PKST
-PLT.generic.short=PKT
-PLT.standard.short=PKT
-PNT.daylight.short=MDT
-PNT.generic.short=MT
-PNT.standard.short=MST
-Poland.daylight.short=CEST
-Poland.generic.short=CET
-Poland.standard.short=CET
-Portugal.daylight.short=WEST
-Portugal.generic.short=WET
-Portugal.standard.short=WET
-PRC.daylight.short=CDT
-PRC.generic.short=CT
-PRC.standard.short=CST
-PRT.daylight.short=ADT
-PRT.generic.short=AT
-PRT.standard.short=AST
-PST8PDT.daylight.short=PDT
-PST8PDT.generic.short=PT
-PST8PDT.standard.short=PST
-PST.daylight.short=PDT
-PST.generic.short=PT
-PST.standard.short=PST
-ROK.daylight.short=KDT
-ROK.generic.short=KT
-ROK.standard.short=KST
-Singapore.daylight.short=SGST
-Singapore.generic.short=SGT
-Singapore.standard.short=SGT
-SST.daylight.short=SBST
-SST.generic.short=SBT
-SST.standard.short=SBT
-SystemV/AST4ADT.daylight.short=ADT
-SystemV/AST4ADT.generic.short=AT
-SystemV/AST4ADT.standard.short=AST
-SystemV/AST4.daylight.short=ADT
-SystemV/AST4.generic.short=AT
-SystemV/AST4.standard.short=AST
-SystemV/CST6CDT.daylight.short=CDT
-SystemV/CST6CDT.generic.short=CT
-SystemV/CST6CDT.standard.short=CST
-SystemV/CST6.daylight.short=CDT
-SystemV/CST6.generic.short=CT
-SystemV/CST6.standard.short=CST
-SystemV/EST5.daylight.short=EDT
-SystemV/EST5EDT.daylight.short=EDT
-SystemV/EST5EDT.generic.short=ET
-SystemV/EST5EDT.standard.short=EST
-SystemV/EST5.generic.short=ET
-SystemV/EST5.standard.short=EST
-SystemV/HST10.daylight.short=HDT
-SystemV/HST10.generic.short=HT
-SystemV/HST10.standard.short=HST
-SystemV/MST7.daylight.short=MDT
-SystemV/MST7.generic.short=MT
-SystemV/MST7MDT.daylight.short=MDT
-SystemV/MST7MDT.generic.short=MT
-SystemV/MST7MDT.standard.short=MST
-SystemV/MST7.standard.short=MST
-SystemV/PST8.daylight.short=PDT
-SystemV/PST8.generic.short=PT
-SystemV/PST8PDT.daylight.short=PDT
-SystemV/PST8PDT.generic.short=PT
-SystemV/PST8PDT.standard.short=PST
-SystemV/PST8.standard.short=PST
-SystemV/YST9.daylight.short=AKDT
-SystemV/YST9.generic.short=AKT
-SystemV/YST9.standard.short=AKST
-SystemV/YST9YDT.daylight.short=AKDT
-SystemV/YST9YDT.generic.short=AKT
-SystemV/YST9YDT.standard.short=AKST
-Turkey.daylight.short=EEST
-Turkey.generic.short=EET
-Turkey.standard.short=EET
-UCT.daylight.short=UTC
-UCT.generic.short=UTC
-UCT.standard.short=UTC
-Universal.daylight.short=UTC
-Universal.generic.short=UTC
-Universal.standard.short=UTC
-US/Alaska.daylight.short=AKDT
-US/Alaska.generic.short=AKT
-US/Alaska.standard.short=AKST
-US/Aleutian.daylight.short=HADT
-US/Aleutian.generic.short=HAT
-US/Aleutian.standard.short=HAST
-US/Arizona.daylight.short=MDT
-US/Arizona.generic.short=MT
-US/Arizona.standard.short=MST
-US/Central.daylight.short=CDT
-US/Central.generic.short=CT
-US/Central.standard.short=CST
-US/Eastern.daylight.short=EDT
-US/Eastern.generic.short=ET
-US/Eastern.standard.short=EST
-US/East-Indiana.daylight.short=EDT
-US/East-Indiana.generic.short=ET
-US/East-Indiana.standard.short=EST
-US/Hawaii.daylight.short=HDT
-US/Hawaii.generic.short=HT
-US/Hawaii.standard.short=HST
-US/Indiana-Starke.daylight.short=CDT
-US/Indiana-Starke.generic.short=CT
-US/Indiana-Starke.standard.short=CST
-US/Michigan.daylight.short=EDT
-US/Michigan.generic.short=ET
-US/Michigan.standard.short=EST
-US/Mountain.daylight.short=MDT
-US/Mountain.generic.short=MT
-US/Mountain.standard.short=MST
-US/Pacific.daylight.short=PDT
-US/Pacific.generic.short=PT
-US/Pacific-New.daylight.short=PDT
-US/Pacific-New.generic.short=PT
-US/Pacific-New.standard.short=PST
-US/Pacific.standard.short=PST
-US/Samoa.daylight.short=SDT
-US/Samoa.generic.short=ST
-US/Samoa.standard.short=SST
-UTC.daylight.short=UTC
-UTC.generic.short=UTC
-UTC.standard.short=UTC
-VST.daylight.short=ICST
-VST.generic.short=ICT
-VST.standard.short=ICT
-WET.daylight.short=WEST
-WET.generic.short=WET
-WET.standard.short=WET
-W-SU.daylight.short=MSD
-W-SU.generic.short=MT
-W-SU.standard.short=MSK
-Zulu.daylight.short=UTC
-Zulu.generic.short=UTC
-Zulu.standard.short=UTC
diff --git a/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_short.properties b/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_short.properties
deleted file mode 100644
index 095522a68d1..00000000000
--- a/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_short.properties
+++ /dev/null
@@ -1,1743 +0,0 @@
-ACT.daylight.short=CST
-ACT.generic.short=CT
-ACT.standard.short=CST
-AET.daylight.short=EST
-AET.generic.short=ET
-AET.standard.short=EST
-Africa/Abidjan.daylight.short=GMT
-Africa/Abidjan.generic.short=GMT
-Africa/Abidjan.standard.short=GMT
-Africa/Accra.daylight.short=GHST
-Africa/Accra.generic.short=GMT
-Africa/Accra.standard.short=GMT
-Africa/Addis_Ababa.daylight.short=EAST
-Africa/Addis_Ababa.generic.short=EAT
-Africa/Addis_Ababa.standard.short=EAT
-Africa/Algiers.daylight.short=CEST
-Africa/Algiers.generic.short=CET
-Africa/Algiers.standard.short=CET
-Africa/Asmara.daylight.short=EAST
-Africa/Asmara.generic.short=EAT
-Africa/Asmara.standard.short=EAT
-Africa/Asmera.daylight.short=EAST
-Africa/Asmera.generic.short=EAT
-Africa/Asmera.standard.short=EAT
-Africa/Bamako.daylight.short=GMT
-Africa/Bamako.generic.short=GMT
-Africa/Bamako.standard.short=GMT
-Africa/Bangui.daylight.short=WAST
-Africa/Bangui.generic.short=WAT
-Africa/Bangui.standard.short=WAT
-Africa/Banjul.daylight.short=GMT
-Africa/Banjul.generic.short=GMT
-Africa/Banjul.standard.short=GMT
-Africa/Bissau.daylight.short=GMT
-Africa/Bissau.generic.short=GMT
-Africa/Bissau.standard.short=GMT
-Africa/Blantyre.daylight.short=CAST
-Africa/Blantyre.generic.short=CAT
-Africa/Blantyre.standard.short=CAT
-Africa/Brazzaville.daylight.short=WAST
-Africa/Brazzaville.generic.short=WAT
-Africa/Brazzaville.standard.short=WAT
-Africa/Bujumbura.daylight.short=CAST
-Africa/Bujumbura.generic.short=CAT
-Africa/Bujumbura.standard.short=CAT
-Africa/Cairo.daylight.short=EEST
-Africa/Cairo.generic.short=EET
-Africa/Cairo.standard.short=EET
-Africa/Casablanca.daylight.short=WEST
-Africa/Casablanca.generic.short=WET
-Africa/Casablanca.standard.short=WET
-Africa/Ceuta.daylight.short=CEST
-Africa/Ceuta.generic.short=CET
-Africa/Ceuta.standard.short=CET
-Africa/Conakry.daylight.short=GMT
-Africa/Conakry.generic.short=GMT
-Africa/Conakry.standard.short=GMT
-Africa/Dakar.daylight.short=GMT
-Africa/Dakar.generic.short=GMT
-Africa/Dakar.standard.short=GMT
-Africa/Dar_es_Salaam.daylight.short=EAST
-Africa/Dar_es_Salaam.generic.short=EAT
-Africa/Dar_es_Salaam.standard.short=EAT
-Africa/Djibouti.daylight.short=EAST
-Africa/Djibouti.generic.short=EAT
-Africa/Djibouti.standard.short=EAT
-Africa/Douala.daylight.short=WAST
-Africa/Douala.generic.short=WAT
-Africa/Douala.standard.short=WAT
-Africa/El_Aaiun.daylight.short=WEST
-Africa/El_Aaiun.generic.short=WET
-Africa/El_Aaiun.standard.short=WET
-Africa/Freetown.daylight.short=SLST
-Africa/Freetown.generic.short=SLT
-Africa/Freetown.standard.short=GMT
-Africa/Gaborone.daylight.short=CAST
-Africa/Gaborone.generic.short=CAT
-Africa/Gaborone.standard.short=CAT
-Africa/Harare.daylight.short=CAST
-Africa/Harare.generic.short=CAT
-Africa/Harare.standard.short=CAT
-Africa/Johannesburg.daylight.short=SAST
-Africa/Johannesburg.generic.short=SAT
-Africa/Johannesburg.standard.short=SAST
-Africa/Juba.daylight.short=EAST
-Africa/Juba.generic.short=EAT
-Africa/Juba.standard.short=EAT
-Africa/Kampala.daylight.short=EAST
-Africa/Kampala.generic.short=EAT
-Africa/Kampala.standard.short=EAT
-Africa/Khartoum.daylight.short=EAST
-Africa/Khartoum.generic.short=EAT
-Africa/Khartoum.standard.short=EAT
-Africa/Kigali.daylight.short=CAST
-Africa/Kigali.generic.short=CAT
-Africa/Kigali.standard.short=CAT
-Africa/Kinshasa.daylight.short=WAST
-Africa/Kinshasa.generic.short=WAT
-Africa/Kinshasa.standard.short=WAT
-Africa/Lagos.daylight.short=WAST
-Africa/Lagos.generic.short=WAT
-Africa/Lagos.standard.short=WAT
-Africa/Libreville.daylight.short=WAST
-Africa/Libreville.generic.short=WAT
-Africa/Libreville.standard.short=WAT
-Africa/Lome.daylight.short=GMT
-Africa/Lome.generic.short=GMT
-Africa/Lome.standard.short=GMT
-Africa/Luanda.daylight.short=WAST
-Africa/Luanda.generic.short=WAT
-Africa/Luanda.standard.short=WAT
-Africa/Lubumbashi.daylight.short=CAST
-Africa/Lubumbashi.generic.short=CAT
-Africa/Lubumbashi.standard.short=CAT
-Africa/Lusaka.daylight.short=CAST
-Africa/Lusaka.generic.short=CAT
-Africa/Lusaka.standard.short=CAT
-Africa/Malabo.daylight.short=WAST
-Africa/Malabo.generic.short=WAT
-Africa/Malabo.standard.short=WAT
-Africa/Maputo.daylight.short=CAST
-Africa/Maputo.generic.short=CAT
-Africa/Maputo.standard.short=CAT
-Africa/Maseru.daylight.short=SAST
-Africa/Maseru.generic.short=SAT
-Africa/Maseru.standard.short=SAST
-Africa/Mbabane.daylight.short=SAST
-Africa/Mbabane.generic.short=SAT
-Africa/Mbabane.standard.short=SAST
-Africa/Mogadishu.daylight.short=EAST
-Africa/Mogadishu.generic.short=EAT
-Africa/Mogadishu.standard.short=EAT
-Africa/Monrovia.daylight.short=GMT
-Africa/Monrovia.generic.short=GMT
-Africa/Monrovia.standard.short=GMT
-Africa/Nairobi.daylight.short=EAST
-Africa/Nairobi.generic.short=EAT
-Africa/Nairobi.standard.short=EAT
-Africa/Ndjamena.daylight.short=WAST
-Africa/Ndjamena.generic.short=WAT
-Africa/Ndjamena.standard.short=WAT
-Africa/Niamey.daylight.short=WAST
-Africa/Niamey.generic.short=WAT
-Africa/Niamey.standard.short=WAT
-Africa/Nouakchott.daylight.short=GMT
-Africa/Nouakchott.generic.short=GMT
-Africa/Nouakchott.standard.short=GMT
-Africa/Ouagadougou.daylight.short=GMT
-Africa/Ouagadougou.generic.short=GMT
-Africa/Ouagadougou.standard.short=GMT
-Africa/Porto-Novo.daylight.short=WAST
-Africa/Porto-Novo.generic.short=WAT
-Africa/Porto-Novo.standard.short=WAT
-Africa/Sao_Tome.daylight.short=GMT
-Africa/Sao_Tome.generic.short=GMT
-Africa/Sao_Tome.standard.short=GMT
-Africa/Timbuktu.daylight.short=GMT
-Africa/Timbuktu.generic.short=GMT
-Africa/Timbuktu.standard.short=GMT
-Africa/Tripoli.daylight.short=EEST
-Africa/Tripoli.generic.short=EET
-Africa/Tripoli.standard.short=EET
-Africa/Tunis.daylight.short=CEST
-Africa/Tunis.generic.short=CET
-Africa/Tunis.standard.short=CET
-Africa/Windhoek.daylight.short=WAST
-Africa/Windhoek.generic.short=WAT
-Africa/Windhoek.standard.short=WAT
-AGT.daylight.short=ARST
-AGT.generic.short=ART
-AGT.standard.short=ART
-America/Adak.daylight.short=HADT
-America/Adak.generic.short=HAT
-America/Adak.standard.short=HAST
-America/Anchorage.daylight.short=AKDT
-America/Anchorage.generic.short=AKT
-America/Anchorage.standard.short=AKST
-America/Anguilla.daylight.short=ADT
-America/Anguilla.generic.short=AT
-America/Anguilla.standard.short=AST
-America/Antigua.daylight.short=ADT
-America/Antigua.generic.short=AT
-America/Antigua.standard.short=AST
-America/Araguaina.daylight.short=BRST
-America/Araguaina.generic.short=BRT
-America/Araguaina.standard.short=BRT
-America/Argentina/Buenos_Aires.daylight.short=ARST
-America/Argentina/Buenos_Aires.generic.short=ART
-America/Argentina/Buenos_Aires.standard.short=ART
-America/Argentina/Catamarca.daylight.short=ARST
-America/Argentina/Catamarca.generic.short=ART
-America/Argentina/Catamarca.standard.short=ART
-America/Argentina/ComodRivadavia.daylight.short=ARST
-America/Argentina/ComodRivadavia.generic.short=ART
-America/Argentina/ComodRivadavia.standard.short=ART
-America/Argentina/Cordoba.daylight.short=ARST
-America/Argentina/Cordoba.generic.short=ART
-America/Argentina/Cordoba.standard.short=ART
-America/Argentina/Jujuy.daylight.short=ARST
-America/Argentina/Jujuy.generic.short=ART
-America/Argentina/Jujuy.standard.short=ART
-America/Argentina/La_Rioja.daylight.short=ARST
-America/Argentina/La_Rioja.generic.short=ART
-America/Argentina/La_Rioja.standard.short=ART
-America/Argentina/Mendoza.daylight.short=ARST
-America/Argentina/Mendoza.generic.short=ART
-America/Argentina/Mendoza.standard.short=ART
-America/Argentina/Rio_Gallegos.daylight.short=ARST
-America/Argentina/Rio_Gallegos.generic.short=ART
-America/Argentina/Rio_Gallegos.standard.short=ART
-America/Argentina/Salta.daylight.short=ARST
-America/Argentina/Salta.generic.short=ART
-America/Argentina/Salta.standard.short=ART
-America/Argentina/San_Juan.daylight.short=ARST
-America/Argentina/San_Juan.generic.short=ART
-America/Argentina/San_Juan.standard.short=ART
-America/Argentina/San_Luis.daylight.short=ARST
-America/Argentina/San_Luis.generic.short=ART
-America/Argentina/San_Luis.standard.short=ART
-America/Argentina/Tucuman.daylight.short=ARST
-America/Argentina/Tucuman.generic.short=ART
-America/Argentina/Tucuman.standard.short=ART
-America/Argentina/Ushuaia.daylight.short=ARST
-America/Argentina/Ushuaia.generic.short=ART
-America/Argentina/Ushuaia.standard.short=ART
-America/Aruba.daylight.short=ADT
-America/Aruba.generic.short=AT
-America/Aruba.standard.short=AST
-America/Asuncion.daylight.short=PYST
-America/Asuncion.generic.short=PYT
-America/Asuncion.standard.short=PYT
-America/Atikokan.daylight.short=EDT
-America/Atikokan.generic.short=ET
-America/Atikokan.standard.short=EST
-America/Atka.daylight.short=HADT
-America/Atka.generic.short=HAT
-America/Atka.standard.short=HAST
-America/Bahia_Banderas.daylight.short=CDT
-America/Bahia_Banderas.generic.short=CT
-America/Bahia_Banderas.standard.short=CST
-America/Bahia.daylight.short=BRST
-America/Bahia.generic.short=BRT
-America/Bahia.standard.short=BRT
-America/Barbados.daylight.short=ADT
-America/Barbados.generic.short=AT
-America/Barbados.standard.short=AST
-America/Belem.daylight.short=BRST
-America/Belem.generic.short=BRT
-America/Belem.standard.short=BRT
-America/Belize.daylight.short=CDT
-America/Belize.generic.short=CT
-America/Belize.standard.short=CST
-America/Blanc-Sablon.daylight.short=ADT
-America/Blanc-Sablon.generic.short=AT
-America/Blanc-Sablon.standard.short=AST
-America/Boa_Vista.daylight.short=AMST
-America/Boa_Vista.generic.short=AMT
-America/Boa_Vista.standard.short=AMT
-America/Bogota.daylight.short=COST
-America/Bogota.generic.short=COT
-America/Bogota.standard.short=COT
-America/Boise.daylight.short=MDT
-America/Boise.generic.short=MT
-America/Boise.standard.short=MST
-America/Buenos_Aires.daylight.short=ARST
-America/Buenos_Aires.generic.short=ART
-America/Buenos_Aires.standard.short=ART
-America/Cambridge_Bay.daylight.short=MDT
-America/Cambridge_Bay.generic.short=MT
-America/Cambridge_Bay.standard.short=MST
-America/Campo_Grande.daylight.short=AMST
-America/Campo_Grande.generic.short=AMT
-America/Campo_Grande.standard.short=AMT
-America/Cancun.daylight.short=CDT
-America/Cancun.generic.short=CT
-America/Cancun.standard.short=CST
-America/Caracas.daylight.short=VEST
-America/Caracas.generic.short=VET
-America/Caracas.standard.short=VET
-America/Catamarca.daylight.short=ARST
-America/Catamarca.generic.short=ART
-America/Catamarca.standard.short=ART
-America/Cayenne.daylight.short=GFST
-America/Cayenne.generic.short=GFT
-America/Cayenne.standard.short=GFT
-America/Cayman.daylight.short=EDT
-America/Cayman.generic.short=ET
-America/Cayman.standard.short=EST
-America/Chicago.daylight.short=CDT
-America/Chicago.generic.short=CT
-America/Chicago.standard.short=CST
-America/Chihuahua.daylight.short=MDT
-America/Chihuahua.generic.short=MT
-America/Chihuahua.standard.short=MST
-America/Coral_Harbour.daylight.short=EDT
-America/Coral_Harbour.generic.short=ET
-America/Coral_Harbour.standard.short=EST
-America/Cordoba.daylight.short=ARST
-America/Cordoba.generic.short=ART
-America/Cordoba.standard.short=ART
-America/Costa_Rica.daylight.short=CDT
-America/Costa_Rica.generic.short=CT
-America/Costa_Rica.standard.short=CST
-America/Creston.daylight.short=MDT
-America/Creston.generic.short=MT
-America/Creston.standard.short=MST
-America/Cuiaba.daylight.short=AMST
-America/Cuiaba.generic.short=AMT
-America/Cuiaba.standard.short=AMT
-America/Curacao.daylight.short=ADT
-America/Curacao.generic.short=AT
-America/Curacao.standard.short=AST
-America/Danmarkshavn.daylight.short=GMT
-America/Danmarkshavn.generic.short=GMT
-America/Danmarkshavn.standard.short=GMT
-America/Dawson_Creek.daylight.short=MDT
-America/Dawson_Creek.generic.short=MT
-America/Dawson_Creek.standard.short=MST
-America/Dawson.daylight.short=PDT
-America/Dawson.generic.short=PT
-America/Dawson.standard.short=PST
-America/Denver.daylight.short=MDT
-America/Denver.generic.short=MT
-America/Denver.standard.short=MST
-America/Detroit.daylight.short=EDT
-America/Detroit.generic.short=ET
-America/Detroit.standard.short=EST
-America/Dominica.daylight.short=ADT
-America/Dominica.generic.short=AT
-America/Dominica.standard.short=AST
-America/Edmonton.daylight.short=MDT
-America/Edmonton.generic.short=MT
-America/Edmonton.standard.short=MST
-America/Eirunepe.daylight.short=ACST
-America/Eirunepe.generic.short=ACT
-America/Eirunepe.standard.short=ACT
-America/El_Salvador.daylight.short=CDT
-America/El_Salvador.generic.short=CT
-America/El_Salvador.standard.short=CST
-America/Ensenada.daylight.short=PDT
-America/Ensenada.generic.short=PT
-America/Ensenada.standard.short=PST
-America/Fortaleza.daylight.short=BRST
-America/Fortaleza.generic.short=BRT
-America/Fortaleza.standard.short=BRT
-America/Fort_Wayne.daylight.short=EDT
-America/Fort_Wayne.generic.short=ET
-America/Fort_Wayne.standard.short=EST
-America/Glace_Bay.daylight.short=ADT
-America/Glace_Bay.generic.short=AT
-America/Glace_Bay.standard.short=AST
-America/Godthab.daylight.short=WGST
-America/Godthab.generic.short=WGT
-America/Godthab.standard.short=WGT
-America/Goose_Bay.daylight.short=ADT
-America/Goose_Bay.generic.short=AT
-America/Goose_Bay.standard.short=AST
-America/Grand_Turk.daylight.short=EDT
-America/Grand_Turk.generic.short=ET
-America/Grand_Turk.standard.short=EST
-America/Grenada.daylight.short=ADT
-America/Grenada.generic.short=AT
-America/Grenada.standard.short=AST
-America/Guadeloupe.daylight.short=ADT
-America/Guadeloupe.generic.short=AT
-America/Guadeloupe.standard.short=AST
-America/Guatemala.daylight.short=CDT
-America/Guatemala.generic.short=CT
-America/Guatemala.standard.short=CST
-America/Guayaquil.daylight.short=ECST
-America/Guayaquil.generic.short=ECT
-America/Guayaquil.standard.short=ECT
-America/Guyana.daylight.short=GYST
-America/Guyana.generic.short=GYT
-America/Guyana.standard.short=GYT
-America/Halifax.daylight.short=ADT
-America/Halifax.generic.short=AT
-America/Halifax.standard.short=AST
-America/Havana.daylight.short=CDT
-America/Havana.generic.short=CT
-America/Havana.standard.short=CST
-America/Hermosillo.daylight.short=MDT
-America/Hermosillo.generic.short=MT
-America/Hermosillo.standard.short=MST
-America/Indiana/Indianapolis.daylight.short=EDT
-America/Indiana/Indianapolis.generic.short=ET
-America/Indiana/Indianapolis.standard.short=EST
-America/Indiana/Knox.daylight.short=CDT
-America/Indiana/Knox.generic.short=CT
-America/Indiana/Knox.standard.short=CST
-America/Indiana/Marengo.daylight.short=EDT
-America/Indiana/Marengo.generic.short=ET
-America/Indiana/Marengo.standard.short=EST
-America/Indiana/Petersburg.daylight.short=EDT
-America/Indiana/Petersburg.generic.short=ET
-America/Indiana/Petersburg.standard.short=EST
-America/Indianapolis.daylight.short=EDT
-America/Indianapolis.generic.short=ET
-America/Indianapolis.standard.short=EST
-America/Indiana/Tell_City.daylight.short=CDT
-America/Indiana/Tell_City.generic.short=CT
-America/Indiana/Tell_City.standard.short=CST
-America/Indiana/Vevay.daylight.short=EDT
-America/Indiana/Vevay.generic.short=ET
-America/Indiana/Vevay.standard.short=EST
-America/Indiana/Vincennes.daylight.short=EDT
-America/Indiana/Vincennes.generic.short=ET
-America/Indiana/Vincennes.standard.short=EST
-America/Indiana/Winamac.daylight.short=EDT
-America/Indiana/Winamac.generic.short=ET
-America/Indiana/Winamac.standard.short=EST
-America/Inuvik.daylight.short=MDT
-America/Inuvik.generic.short=MT
-America/Inuvik.standard.short=MST
-America/Iqaluit.daylight.short=EDT
-America/Iqaluit.generic.short=ET
-America/Iqaluit.standard.short=EST
-America/Jamaica.daylight.short=EDT
-America/Jamaica.generic.short=ET
-America/Jamaica.standard.short=EST
-America/Jujuy.daylight.short=ARST
-America/Jujuy.generic.short=ART
-America/Jujuy.standard.short=ART
-America/Juneau.daylight.short=AKDT
-America/Juneau.generic.short=AKT
-America/Juneau.standard.short=AKST
-America/Kentucky/Louisville.daylight.short=EDT
-America/Kentucky/Louisville.generic.short=ET
-America/Kentucky/Louisville.standard.short=EST
-America/Kentucky/Monticello.daylight.short=EDT
-America/Kentucky/Monticello.generic.short=ET
-America/Kentucky/Monticello.standard.short=EST
-America/Knox_IN.daylight.short=CDT
-America/Knox_IN.generic.short=CT
-America/Knox_IN.standard.short=CST
-America/Kralendijk.daylight.short=ADT
-America/Kralendijk.generic.short=AT
-America/Kralendijk.standard.short=AST
-America/La_Paz.daylight.short=BOST
-America/La_Paz.generic.short=BOT
-America/La_Paz.standard.short=BOT
-America/Lima.daylight.short=PEST
-America/Lima.generic.short=PET
-America/Lima.standard.short=PET
-America/Los_Angeles.daylight.short=PDT
-America/Los_Angeles.generic.short=PT
-America/Los_Angeles.standard.short=PST
-America/Louisville.daylight.short=EDT
-America/Louisville.generic.short=ET
-America/Louisville.standard.short=EST
-America/Lower_Princes.daylight.short=ADT
-America/Lower_Princes.generic.short=AT
-America/Lower_Princes.standard.short=AST
-America/Maceio.daylight.short=BRST
-America/Maceio.generic.short=BRT
-America/Maceio.standard.short=BRT
-America/Managua.daylight.short=CDT
-America/Managua.generic.short=CT
-America/Managua.standard.short=CST
-America/Manaus.daylight.short=AMST
-America/Manaus.generic.short=AMT
-America/Manaus.standard.short=AMT
-America/Marigot.daylight.short=ADT
-America/Marigot.generic.short=AT
-America/Marigot.standard.short=AST
-America/Martinique.daylight.short=ADT
-America/Martinique.generic.short=AT
-America/Martinique.standard.short=AST
-America/Matamoros.daylight.short=CDT
-America/Matamoros.generic.short=CT
-America/Matamoros.standard.short=CST
-America/Mazatlan.daylight.short=MDT
-America/Mazatlan.generic.short=MT
-America/Mazatlan.standard.short=MST
-America/Mendoza.daylight.short=ARST
-America/Mendoza.generic.short=ART
-America/Mendoza.standard.short=ART
-America/Menominee.daylight.short=CDT
-America/Menominee.generic.short=CT
-America/Menominee.standard.short=CST
-America/Merida.daylight.short=CDT
-America/Merida.generic.short=CT
-America/Merida.standard.short=CST
-America/Metlakatla.daylight.short=MeDT
-America/Metlakatla.generic.short=MeT
-America/Metlakatla.standard.short=MeST
-America/Mexico_City.daylight.short=CDT
-America/Mexico_City.generic.short=CT
-America/Mexico_City.standard.short=CST
-America/Miquelon.daylight.short=PMDT
-America/Miquelon.generic.short=PMT
-America/Miquelon.standard.short=PMST
-America/Moncton.daylight.short=ADT
-America/Moncton.generic.short=AT
-America/Moncton.standard.short=AST
-America/Monterrey.daylight.short=CDT
-America/Monterrey.generic.short=CT
-America/Monterrey.standard.short=CST
-America/Montevideo.daylight.short=UYST
-America/Montevideo.generic.short=UYT
-America/Montevideo.standard.short=UYT
-America/Montreal.daylight.short=EDT
-America/Montreal.generic.short=ET
-America/Montreal.standard.short=EST
-America/Montserrat.daylight.short=ADT
-America/Montserrat.generic.short=AT
-America/Montserrat.standard.short=AST
-America/Nassau.daylight.short=EDT
-America/Nassau.generic.short=ET
-America/Nassau.standard.short=EST
-America/New_York.daylight.short=EDT
-America/New_York.generic.short=ET
-America/New_York.standard.short=EST
-America/Nipigon.daylight.short=EDT
-America/Nipigon.generic.short=ET
-America/Nipigon.standard.short=EST
-America/Nome.daylight.short=AKDT
-America/Nome.generic.short=AKT
-America/Nome.standard.short=AKST
-America/Noronha.daylight.short=FNST
-America/Noronha.generic.short=FNT
-America/Noronha.standard.short=FNT
-America/North_Dakota/Beulah.daylight.short=CDT
-America/North_Dakota/Beulah.generic.short=CT
-America/North_Dakota/Beulah.standard.short=CST
-America/North_Dakota/Center.daylight.short=CDT
-America/North_Dakota/Center.generic.short=CT
-America/North_Dakota/Center.standard.short=CST
-America/North_Dakota/New_Salem.daylight.short=CDT
-America/North_Dakota/New_Salem.generic.short=CT
-America/North_Dakota/New_Salem.standard.short=CST
-America/Ojinaga.daylight.short=MDT
-America/Ojinaga.generic.short=MT
-America/Ojinaga.standard.short=MST
-America/Panama.daylight.short=EDT
-America/Panama.generic.short=ET
-America/Panama.standard.short=EST
-America/Pangnirtung.daylight.short=EDT
-America/Pangnirtung.generic.short=ET
-America/Pangnirtung.standard.short=EST
-America/Paramaribo.daylight.short=SRST
-America/Paramaribo.generic.short=SRT
-America/Paramaribo.standard.short=SRT
-America/Phoenix.daylight.short=MDT
-America/Phoenix.generic.short=MT
-America/Phoenix.standard.short=MST
-America/Port-au-Prince.daylight.short=EDT
-America/Port-au-Prince.generic.short=ET
-America/Port-au-Prince.standard.short=EST
-America/Porto_Acre.daylight.short=ACST
-America/Porto_Acre.generic.short=ACT
-America/Porto_Acre.standard.short=ACT
-America/Port_of_Spain.daylight.short=ADT
-America/Port_of_Spain.generic.short=AT
-America/Port_of_Spain.standard.short=AST
-America/Porto_Velho.daylight.short=AMST
-America/Porto_Velho.generic.short=AMT
-America/Porto_Velho.standard.short=AMT
-America/Puerto_Rico.daylight.short=ADT
-America/Puerto_Rico.generic.short=AT
-America/Puerto_Rico.standard.short=AST
-America/Rainy_River.daylight.short=CDT
-America/Rainy_River.generic.short=CT
-America/Rainy_River.standard.short=CST
-America/Rankin_Inlet.daylight.short=CDT
-America/Rankin_Inlet.generic.short=CT
-America/Rankin_Inlet.standard.short=CST
-America/Recife.daylight.short=BRST
-America/Recife.generic.short=BRT
-America/Recife.standard.short=BRT
-America/Regina.daylight.short=CDT
-America/Regina.generic.short=CT
-America/Regina.standard.short=CST
-America/Resolute.daylight.short=CDT
-America/Resolute.generic.short=CT
-America/Resolute.standard.short=CST
-America/Rio_Branco.daylight.short=ACST
-America/Rio_Branco.generic.short=ACT
-America/Rio_Branco.standard.short=ACT
-America/Rosario.daylight.short=ARST
-America/Rosario.generic.short=ART
-America/Rosario.standard.short=ART
-America/Santa_Isabel.daylight.short=PDT
-America/Santa_Isabel.generic.short=PT
-America/Santa_Isabel.standard.short=PST
-America/Santarem.daylight.short=BRST
-America/Santarem.generic.short=BRT
-America/Santarem.standard.short=BRT
-America/Santiago.daylight.short=CLST
-America/Santiago.generic.short=CLT
-America/Santiago.standard.short=CLT
-America/Santo_Domingo.daylight.short=ADT
-America/Santo_Domingo.generic.short=AT
-America/Santo_Domingo.standard.short=AST
-America/Sao_Paulo.daylight.short=BRST
-America/Sao_Paulo.generic.short=BRT
-America/Sao_Paulo.standard.short=BRT
-America/Scoresbysund.daylight.short=EGST
-America/Scoresbysund.generic.short=EGT
-America/Scoresbysund.standard.short=EGT
-America/Shiprock.daylight.short=MDT
-America/Shiprock.generic.short=MT
-America/Shiprock.standard.short=MST
-America/Sitka.daylight.short=AKDT
-America/Sitka.generic.short=AKT
-America/Sitka.standard.short=AKST
-America/St_Barthelemy.daylight.short=ADT
-America/St_Barthelemy.generic.short=AT
-America/St_Barthelemy.standard.short=AST
-America/St_Johns.daylight.short=NDT
-America/St_Johns.generic.short=NT
-America/St_Johns.standard.short=NST
-America/St_Kitts.daylight.short=ADT
-America/St_Kitts.generic.short=AT
-America/St_Kitts.standard.short=AST
-America/St_Lucia.daylight.short=ADT
-America/St_Lucia.generic.short=AT
-America/St_Lucia.standard.short=AST
-America/St_Thomas.daylight.short=ADT
-America/St_Thomas.generic.short=AT
-America/St_Thomas.standard.short=AST
-America/St_Vincent.daylight.short=ADT
-America/St_Vincent.generic.short=AT
-America/St_Vincent.standard.short=AST
-America/Swift_Current.daylight.short=CDT
-America/Swift_Current.generic.short=CT
-America/Swift_Current.standard.short=CST
-America/Tegucigalpa.daylight.short=CDT
-America/Tegucigalpa.generic.short=CT
-America/Tegucigalpa.standard.short=CST
-America/Thule.daylight.short=ADT
-America/Thule.generic.short=AT
-America/Thule.standard.short=AST
-America/Thunder_Bay.daylight.short=EDT
-America/Thunder_Bay.generic.short=ET
-America/Thunder_Bay.standard.short=EST
-America/Tijuana.daylight.short=PDT
-America/Tijuana.generic.short=PT
-America/Tijuana.standard.short=PST
-America/Toronto.daylight.short=EDT
-America/Toronto.generic.short=ET
-America/Toronto.standard.short=EST
-America/Tortola.daylight.short=ADT
-America/Tortola.generic.short=AT
-America/Tortola.standard.short=AST
-America/Vancouver.daylight.short=PDT
-America/Vancouver.generic.short=PT
-America/Vancouver.standard.short=PST
-America/Virgin.daylight.short=ADT
-America/Virgin.generic.short=AT
-America/Virgin.standard.short=AST
-America/Whitehorse.daylight.short=PDT
-America/Whitehorse.generic.short=PT
-America/Whitehorse.standard.short=PST
-America/Winnipeg.daylight.short=CDT
-America/Winnipeg.generic.short=CT
-America/Winnipeg.standard.short=CST
-America/Yakutat.daylight.short=AKDT
-America/Yakutat.generic.short=AKT
-America/Yakutat.standard.short=AKST
-America/Yellowknife.daylight.short=MDT
-America/Yellowknife.generic.short=MT
-America/Yellowknife.standard.short=MST
-Antarctica/Casey.daylight.short=WST
-Antarctica/Casey.generic.short=WT
-Antarctica/Casey.standard.short=WST
-Antarctica/Davis.daylight.short=DAVST
-Antarctica/Davis.generic.short=DAVT
-Antarctica/Davis.standard.short=DAVT
-Antarctica/DumontDUrville.daylight.short=DDUST
-Antarctica/DumontDUrville.generic.short=DDUT
-Antarctica/DumontDUrville.standard.short=DDUT
-Antarctica/Macquarie.daylight.short=MIST
-Antarctica/Macquarie.generic.short=MIST
-Antarctica/Macquarie.standard.short=MIST
-Antarctica/Mawson.daylight.short=MAWST
-Antarctica/Mawson.generic.short=MAWT
-Antarctica/Mawson.standard.short=MAWT
-Antarctica/McMurdo.daylight.short=NZDT
-Antarctica/McMurdo.generic.short=NZT
-Antarctica/McMurdo.standard.short=NZST
-Antarctica/Palmer.daylight.short=CLST
-Antarctica/Palmer.generic.short=CLT
-Antarctica/Palmer.standard.short=CLT
-Antarctica/Rothera.daylight.short=ROTST
-Antarctica/Rothera.generic.short=ROTT
-Antarctica/Rothera.standard.short=ROTT
-Antarctica/South_Pole.daylight.short=NZDT
-Antarctica/South_Pole.generic.short=NZT
-Antarctica/South_Pole.standard.short=NZST
-Antarctica/Syowa.daylight.short=SYOST
-Antarctica/Syowa.generic.short=SYOT
-Antarctica/Syowa.standard.short=SYOT
-Antarctica/Vostok.daylight.short=VOSST
-Antarctica/Vostok.generic.short=VOST
-Antarctica/Vostok.standard.short=VOST
-Arctic/Longyearbyen.daylight.short=CEST
-Arctic/Longyearbyen.generic.short=CET
-Arctic/Longyearbyen.standard.short=CET
-ART.daylight.short=EEST
-ART.generic.short=EET
-ART.standard.short=EET
-Asia/Aden.daylight.short=ADT
-Asia/Aden.generic.short=AT
-Asia/Aden.standard.short=AST
-Asia/Almaty.daylight.short=ALMST
-Asia/Almaty.generic.short=ALMT
-Asia/Almaty.standard.short=ALMT
-Asia/Amman.daylight.short=ADT
-Asia/Amman.generic.short=AT
-Asia/Amman.standard.short=AST
-Asia/Anadyr.daylight.short=ANAST
-Asia/Anadyr.generic.short=ANAT
-Asia/Anadyr.standard.short=ANAT
-Asia/Aqtau.daylight.short=AQTST
-Asia/Aqtau.generic.short=AQTT
-Asia/Aqtau.standard.short=AQTT
-Asia/Aqtobe.daylight.short=AQTST
-Asia/Aqtobe.generic.short=AQTT
-Asia/Aqtobe.standard.short=AQTT
-Asia/Ashgabat.daylight.short=TMST
-Asia/Ashgabat.generic.short=TMT
-Asia/Ashgabat.standard.short=TMT
-Asia/Ashkhabad.daylight.short=TMST
-Asia/Ashkhabad.generic.short=TMT
-Asia/Ashkhabad.standard.short=TMT
-Asia/Baghdad.daylight.short=ADT
-Asia/Baghdad.generic.short=AT
-Asia/Baghdad.standard.short=AST
-Asia/Bahrain.daylight.short=ADT
-Asia/Bahrain.generic.short=AT
-Asia/Bahrain.standard.short=AST
-Asia/Baku.daylight.short=AZST
-Asia/Baku.generic.short=AZT
-Asia/Baku.standard.short=AZT
-Asia/Bangkok.daylight.short=ICST
-Asia/Bangkok.generic.short=ICT
-Asia/Bangkok.standard.short=ICT
-Asia/Beirut.daylight.short=EEST
-Asia/Beirut.generic.short=EET
-Asia/Beirut.standard.short=EET
-Asia/Bishkek.daylight.short=KGST
-Asia/Bishkek.generic.short=KGT
-Asia/Bishkek.standard.short=KGT
-Asia/Brunei.daylight.short=BNST
-Asia/Brunei.generic.short=BNT
-Asia/Brunei.standard.short=BNT
-Asia/Calcutta.daylight.short=IDT
-Asia/Calcutta.generic.short=IT
-Asia/Calcutta.standard.short=IST
-Asia/Choibalsan.daylight.short=CHOST
-Asia/Choibalsan.generic.short=CHOT
-Asia/Choibalsan.standard.short=CHOT
-Asia/Chongqing.daylight.short=CDT
-Asia/Chongqing.generic.short=CT
-Asia/Chongqing.standard.short=CST
-Asia/Chungking.daylight.short=CDT
-Asia/Chungking.generic.short=CT
-Asia/Chungking.standard.short=CST
-Asia/Colombo.daylight.short=IDT
-Asia/Colombo.generic.short=IT
-Asia/Colombo.standard.short=IST
-Asia/Dacca.daylight.short=BDST
-Asia/Dacca.generic.short=BDT
-Asia/Dacca.standard.short=BDT
-Asia/Damascus.daylight.short=EEST
-Asia/Damascus.generic.short=EET
-Asia/Damascus.standard.short=EET
-Asia/Dhaka.daylight.short=BDST
-Asia/Dhaka.generic.short=BDT
-Asia/Dhaka.standard.short=BDT
-Asia/Dili.daylight.short=TLST
-Asia/Dili.generic.short=TLT
-Asia/Dili.standard.short=TLT
-Asia/Dubai.daylight.short=GDT
-Asia/Dubai.generic.short=GT
-Asia/Dubai.standard.short=GST
-Asia/Dushanbe.daylight.short=TJST
-Asia/Dushanbe.generic.short=TJT
-Asia/Dushanbe.standard.short=TJT
-Asia/Gaza.daylight.short=EEST
-Asia/Gaza.generic.short=EET
-Asia/Gaza.standard.short=EET
-Asia/Harbin.daylight.short=CDT
-Asia/Harbin.generic.short=CT
-Asia/Harbin.standard.short=CST
-Asia/Hebron.daylight.short=EEST
-Asia/Hebron.generic.short=EET
-Asia/Hebron.standard.short=EET
-Asia/Ho_Chi_Minh.daylight.short=ICST
-Asia/Ho_Chi_Minh.generic.short=ICT
-Asia/Ho_Chi_Minh.standard.short=ICT
-Asia/Hong_Kong.daylight.short=HKST
-Asia/Hong_Kong.generic.short=HKT
-Asia/Hong_Kong.standard.short=HKT
-Asia/Hovd.daylight.short=HOVST
-Asia/Hovd.generic.short=HOVT
-Asia/Hovd.standard.short=HOVT
-Asia/Irkutsk.daylight.short=IRKST
-Asia/Irkutsk.generic.short=IRKT
-Asia/Irkutsk.standard.short=IRKT
-Asia/Istanbul.daylight.short=EEST
-Asia/Istanbul.generic.short=EET
-Asia/Istanbul.standard.short=EET
-Asia/Jakarta.daylight.short=WIST
-Asia/Jakarta.generic.short=WIB
-Asia/Jakarta.standard.short=WIB
-Asia/Jayapura.daylight.short=EIST
-Asia/Jayapura.generic.short=WIT
-Asia/Jayapura.standard.short=WIT
-Asia/Jerusalem.daylight.short=IDT
-Asia/Jerusalem.generic.short=IT
-Asia/Jerusalem.standard.short=IST
-Asia/Kabul.daylight.short=AFST
-Asia/Kabul.generic.short=AFT
-Asia/Kabul.standard.short=AFT
-Asia/Kamchatka.daylight.short=PETST
-Asia/Kamchatka.generic.short=PETT
-Asia/Kamchatka.standard.short=PETT
-Asia/Karachi.daylight.short=PKST
-Asia/Karachi.generic.short=PKT
-Asia/Karachi.standard.short=PKT
-Asia/Kashgar.daylight.short=CDT
-Asia/Kashgar.generic.short=CT
-Asia/Kashgar.standard.short=CST
-Asia/Kathmandu.daylight.short=NPST
-Asia/Kathmandu.generic.short=NPT
-Asia/Kathmandu.standard.short=NPT
-Asia/Katmandu.daylight.short=NPST
-Asia/Katmandu.generic.short=NPT
-Asia/Katmandu.standard.short=NPT
-Asia/Khandyga.daylight.short=YAKST
-Asia/Khandyga.generic.short=YAKT
-Asia/Khandyga.standard.short=YAKT
-Asia/Kolkata.daylight.short=IDT
-Asia/Kolkata.generic.short=IT
-Asia/Kolkata.standard.short=IST
-Asia/Krasnoyarsk.daylight.short=KRAST
-Asia/Krasnoyarsk.generic.short=KRAT
-Asia/Krasnoyarsk.standard.short=KRAT
-Asia/Kuala_Lumpur.daylight.short=MYST
-Asia/Kuala_Lumpur.generic.short=MYT
-Asia/Kuala_Lumpur.standard.short=MYT
-Asia/Kuching.daylight.short=MYST
-Asia/Kuching.generic.short=MYT
-Asia/Kuching.standard.short=MYT
-Asia/Kuwait.daylight.short=ADT
-Asia/Kuwait.generic.short=AT
-Asia/Kuwait.standard.short=AST
-Asia/Macao.daylight.short=CDT
-Asia/Macao.generic.short=CT
-Asia/Macao.standard.short=CST
-Asia/Macau.daylight.short=CDT
-Asia/Macau.generic.short=CT
-Asia/Macau.standard.short=CST
-Asia/Magadan.daylight.short=MAGST
-Asia/Magadan.generic.short=MAGT
-Asia/Magadan.standard.short=MAGT
-Asia/Makassar.daylight.short=CIST
-Asia/Makassar.generic.short=WITA
-Asia/Makassar.standard.short=WITA
-Asia/Manila.daylight.short=PHST
-Asia/Manila.generic.short=PHT
-Asia/Manila.standard.short=PHT
-Asia/Muscat.daylight.short=GDT
-Asia/Muscat.generic.short=GT
-Asia/Muscat.standard.short=GST
-Asia/Nicosia.daylight.short=EEST
-Asia/Nicosia.generic.short=EET
-Asia/Nicosia.standard.short=EET
-Asia/Novokuznetsk.daylight.short=NOVST
-Asia/Novokuznetsk.generic.short=NOVT
-Asia/Novokuznetsk.standard.short=NOVT
-Asia/Novosibirsk.daylight.short=NOVST
-Asia/Novosibirsk.generic.short=NOVT
-Asia/Novosibirsk.standard.short=NOVT
-Asia/Omsk.daylight.short=OMSST
-Asia/Omsk.generic.short=OMST
-Asia/Omsk.standard.short=OMST
-Asia/Oral.daylight.short=ORAST
-Asia/Oral.generic.short=ORAT
-Asia/Oral.standard.short=ORAT
-Asia/Phnom_Penh.daylight.short=ICST
-Asia/Phnom_Penh.generic.short=ICT
-Asia/Phnom_Penh.standard.short=ICT
-Asia/Pontianak.daylight.short=WIST
-Asia/Pontianak.generic.short=WIB
-Asia/Pontianak.standard.short=WIB
-Asia/Pyongyang.daylight.short=KDT
-Asia/Pyongyang.generic.short=KT
-Asia/Pyongyang.standard.short=KST
-Asia/Qatar.daylight.short=ADT
-Asia/Qatar.generic.short=AT
-Asia/Qatar.standard.short=AST
-Asia/Qyzylorda.daylight.short=QYZST
-Asia/Qyzylorda.generic.short=QYZT
-Asia/Qyzylorda.standard.short=QYZT
-Asia/Rangoon.daylight.short=MMST
-Asia/Rangoon.generic.short=MMT
-Asia/Rangoon.standard.short=MMT
-Asia/Saigon.daylight.short=ICST
-Asia/Saigon.generic.short=ICT
-Asia/Saigon.standard.short=ICT
-Asia/Sakhalin.daylight.short=SAKST
-Asia/Sakhalin.generic.short=SAKT
-Asia/Sakhalin.standard.short=SAKT
-Asia/Samarkand.daylight.short=UZST
-Asia/Samarkand.generic.short=UZT
-Asia/Samarkand.standard.short=UZT
-Asia/Seoul.daylight.short=KDT
-Asia/Seoul.generic.short=KT
-Asia/Seoul.standard.short=KST
-Asia/Shanghai.daylight.short=CDT
-Asia/Shanghai.generic.short=CT
-Asia/Shanghai.standard.short=CST
-Asia/Singapore.daylight.short=SGST
-Asia/Singapore.generic.short=SGT
-Asia/Singapore.standard.short=SGT
-Asia/Taipei.daylight.short=CDT
-Asia/Taipei.generic.short=CT
-Asia/Taipei.standard.short=CST
-Asia/Tashkent.daylight.short=UZST
-Asia/Tashkent.generic.short=UZT
-Asia/Tashkent.standard.short=UZT
-Asia/Tbilisi.daylight.short=GEST
-Asia/Tbilisi.generic.short=GET
-Asia/Tbilisi.standard.short=GET
-Asia/Tehran.daylight.short=IRDT
-Asia/Tehran.generic.short=IRT
-Asia/Tehran.standard.short=IRST
-Asia/Tel_Aviv.daylight.short=IDT
-Asia/Tel_Aviv.generic.short=IT
-Asia/Tel_Aviv.standard.short=IST
-Asia/Thimbu.daylight.short=BTST
-Asia/Thimbu.generic.short=BTT
-Asia/Thimbu.standard.short=BTT
-Asia/Thimphu.daylight.short=BTST
-Asia/Thimphu.generic.short=BTT
-Asia/Thimphu.standard.short=BTT
-Asia/Tokyo.daylight.short=JDT
-Asia/Tokyo.generic.short=JT
-Asia/Tokyo.standard.short=JST
-Asia/Ujung_Pandang.daylight.short=CIST
-Asia/Ujung_Pandang.generic.short=WITA
-Asia/Ujung_Pandang.standard.short=WITA
-Asia/Ulaanbaatar.daylight.short=ULAST
-Asia/Ulaanbaatar.generic.short=ULAT
-Asia/Ulaanbaatar.standard.short=ULAT
-Asia/Ulan_Bator.daylight.short=ULAST
-Asia/Ulan_Bator.generic.short=ULAT
-Asia/Ulan_Bator.standard.short=ULAT
-Asia/Urumqi.daylight.short=CDT
-Asia/Urumqi.generic.short=CT
-Asia/Urumqi.standard.short=CST
-Asia/Ust-Nera.daylight.short=VLAST
-Asia/Ust-Nera.generic.short=VLAT
-Asia/Ust-Nera.standard.short=VLAT
-Asia/Vientiane.daylight.short=ICST
-Asia/Vientiane.generic.short=ICT
-Asia/Vientiane.standard.short=ICT
-Asia/Vladivostok.daylight.short=VLAST
-Asia/Vladivostok.generic.short=VLAT
-Asia/Vladivostok.standard.short=VLAT
-Asia/Yakutsk.daylight.short=YAKST
-Asia/Yakutsk.generic.short=YAKT
-Asia/Yakutsk.standard.short=YAKT
-Asia/Yekaterinburg.daylight.short=YEKST
-Asia/Yekaterinburg.generic.short=YEKT
-Asia/Yekaterinburg.standard.short=YEKT
-Asia/Yerevan.daylight.short=AMST
-Asia/Yerevan.generic.short=AMT
-Asia/Yerevan.standard.short=AMT
-AST.daylight.short=AKDT
-AST.generic.short=AKT
-AST.standard.short=AKST
-Atlantic/Azores.daylight.short=AZOST
-Atlantic/Azores.generic.short=AZOT
-Atlantic/Azores.standard.short=AZOT
-Atlantic/Bermuda.daylight.short=ADT
-Atlantic/Bermuda.generic.short=AT
-Atlantic/Bermuda.standard.short=AST
-Atlantic/Canary.daylight.short=WEST
-Atlantic/Canary.generic.short=WET
-Atlantic/Canary.standard.short=WET
-Atlantic/Cape_Verde.daylight.short=CVST
-Atlantic/Cape_Verde.generic.short=CVT
-Atlantic/Cape_Verde.standard.short=CVT
-Atlantic/Faeroe.daylight.short=WEST
-Atlantic/Faeroe.generic.short=WET
-Atlantic/Faeroe.standard.short=WET
-Atlantic/Faroe.daylight.short=WEST
-Atlantic/Faroe.generic.short=WET
-Atlantic/Faroe.standard.short=WET
-Atlantic/Jan_Mayen.daylight.short=CEST
-Atlantic/Jan_Mayen.generic.short=CET
-Atlantic/Jan_Mayen.standard.short=CET
-Atlantic/Madeira.daylight.short=WEST
-Atlantic/Madeira.generic.short=WET
-Atlantic/Madeira.standard.short=WET
-Atlantic/Reykjavik.daylight.short=GMT
-Atlantic/Reykjavik.generic.short=GMT
-Atlantic/Reykjavik.standard.short=GMT
-Atlantic/South_Georgia.daylight.short=GDT
-Atlantic/South_Georgia.generic.short=GT
-Atlantic/South_Georgia.standard.short=GST
-Atlantic/Stanley.daylight.short=FKST
-Atlantic/Stanley.generic.short=FKT
-Atlantic/Stanley.standard.short=FKT
-Atlantic/St_Helena.daylight.short=GMT
-Atlantic/St_Helena.generic.short=GMT
-Atlantic/St_Helena.standard.short=GMT
-Australia/ACT.daylight.short=EST
-Australia/ACT.generic.short=ET
-Australia/ACT.standard.short=EST
-Australia/Adelaide.daylight.short=CST
-Australia/Adelaide.generic.short=CT
-Australia/Adelaide.standard.short=CST
-Australia/Brisbane.daylight.short=EST
-Australia/Brisbane.generic.short=ET
-Australia/Brisbane.standard.short=EST
-Australia/Broken_Hill.daylight.short=CST
-Australia/Broken_Hill.generic.short=CT
-Australia/Broken_Hill.standard.short=CST
-Australia/Canberra.daylight.short=EST
-Australia/Canberra.generic.short=ET
-Australia/Canberra.standard.short=EST
-Australia/Currie.daylight.short=EST
-Australia/Currie.generic.short=ET
-Australia/Currie.standard.short=EST
-Australia/Darwin.daylight.short=CST
-Australia/Darwin.generic.short=CT
-Australia/Darwin.standard.short=CST
-Australia/Eucla.daylight.short=CWST
-Australia/Eucla.generic.short=CWT
-Australia/Eucla.standard.short=CWST
-Australia/Hobart.daylight.short=EST
-Australia/Hobart.generic.short=ET
-Australia/Hobart.standard.short=EST
-Australia/LHI.daylight.short=LHST
-Australia/LHI.generic.short=LHT
-Australia/LHI.standard.short=LHST
-Australia/Lindeman.daylight.short=EST
-Australia/Lindeman.generic.short=ET
-Australia/Lindeman.standard.short=EST
-Australia/Lord_Howe.daylight.short=LHST
-Australia/Lord_Howe.generic.short=LHT
-Australia/Lord_Howe.standard.short=LHST
-Australia/Melbourne.daylight.short=EST
-Australia/Melbourne.generic.short=ET
-Australia/Melbourne.standard.short=EST
-Australia/North.daylight.short=CST
-Australia/North.generic.short=CT
-Australia/North.standard.short=CST
-Australia/NSW.daylight.short=EST
-Australia/NSW.generic.short=ET
-Australia/NSW.standard.short=EST
-Australia/Perth.daylight.short=WST
-Australia/Perth.generic.short=WT
-Australia/Perth.standard.short=WST
-Australia/Queensland.daylight.short=EST
-Australia/Queensland.generic.short=ET
-Australia/Queensland.standard.short=EST
-Australia/South.daylight.short=CST
-Australia/South.generic.short=CT
-Australia/South.standard.short=CST
-Australia/Sydney.daylight.short=EST
-Australia/Sydney.generic.short=ET
-Australia/Sydney.standard.short=EST
-Australia/Tasmania.daylight.short=EST
-Australia/Tasmania.generic.short=ET
-Australia/Tasmania.standard.short=EST
-Australia/Victoria.daylight.short=EST
-Australia/Victoria.generic.short=ET
-Australia/Victoria.standard.short=EST
-Australia/West.daylight.short=WST
-Australia/West.generic.short=WT
-Australia/West.standard.short=WST
-Australia/Yancowinna.daylight.short=CST
-Australia/Yancowinna.generic.short=CT
-Australia/Yancowinna.standard.short=CST
-BET.daylight.short=BRST
-BET.generic.short=BRT
-BET.standard.short=BRT
-Brazil/Acre.daylight.short=ACST
-Brazil/Acre.generic.short=ACT
-Brazil/Acre.standard.short=ACT
-Brazil/DeNoronha.daylight.short=FNST
-Brazil/DeNoronha.generic.short=FNT
-Brazil/DeNoronha.standard.short=FNT
-Brazil/East.daylight.short=BRST
-Brazil/East.generic.short=BRT
-Brazil/East.standard.short=BRT
-Brazil/West.daylight.short=AMST
-Brazil/West.generic.short=AMT
-Brazil/West.standard.short=AMT
-BST.daylight.short=BDST
-BST.generic.short=BDT
-BST.standard.short=BDT
-Canada/Atlantic.daylight.short=ADT
-Canada/Atlantic.generic.short=AT
-Canada/Atlantic.standard.short=AST
-Canada/Central.daylight.short=CDT
-Canada/Central.generic.short=CT
-Canada/Central.standard.short=CST
-Canada/Eastern.daylight.short=EDT
-Canada/Eastern.generic.short=ET
-Canada/Eastern.standard.short=EST
-Canada/East-Saskatchewan.daylight.short=CDT
-Canada/East-Saskatchewan.generic.short=CT
-Canada/East-Saskatchewan.standard.short=CST
-Canada/Mountain.daylight.short=MDT
-Canada/Mountain.generic.short=MT
-Canada/Mountain.standard.short=MST
-Canada/Newfoundland.daylight.short=NDT
-Canada/Newfoundland.generic.short=NT
-Canada/Newfoundland.standard.short=NST
-Canada/Pacific.daylight.short=PDT
-Canada/Pacific.generic.short=PT
-Canada/Pacific.standard.short=PST
-Canada/Saskatchewan.daylight.short=CDT
-Canada/Saskatchewan.generic.short=CT
-Canada/Saskatchewan.standard.short=CST
-Canada/Yukon.daylight.short=PDT
-Canada/Yukon.generic.short=PT
-Canada/Yukon.standard.short=PST
-CAT.daylight.short=CAST
-CAT.generic.short=CAT
-CAT.standard.short=CAT
-CET.daylight.short=CEST
-CET.generic.short=CET
-CET.standard.short=CET
-Chile/Continental.daylight.short=CLST
-Chile/Continental.generic.short=CLT
-Chile/Continental.standard.short=CLT
-Chile/EasterIsland.daylight.short=EASST
-Chile/EasterIsland.generic.short=EAST
-Chile/EasterIsland.standard.short=EAST
-CNT.daylight.short=NDT
-CNT.generic.short=NT
-CNT.standard.short=NST
-CST6CDT.daylight.short=CDT
-CST6CDT.generic.short=CT
-CST6CDT.standard.short=CST
-CST.daylight.short=CDT
-CST.generic.short=CT
-CST.standard.short=CST
-CTT.daylight.short=CDT
-CTT.generic.short=CT
-CTT.standard.short=CST
-Cuba.daylight.short=CDT
-Cuba.generic.short=CT
-Cuba.standard.short=CST
-EAT.daylight.short=EAST
-EAT.generic.short=EAT
-EAT.standard.short=EAT
-ECT.daylight.short=CEST
-ECT.generic.short=CET
-ECT.standard.short=CET
-EET.daylight.short=EEST
-EET.generic.short=EET
-EET.standard.short=EET
-Egypt.daylight.short=EEST
-Egypt.generic.short=EET
-Egypt.standard.short=EET
-Eire.daylight.short=IST
-Eire.generic.short=IT
-Eire.standard.short=GMT
-EST5EDT.daylight.short=EDT
-EST5EDT.generic.short=ET
-EST5EDT.standard.short=EST
-EST.daylight.short=EDT
-EST.generic.short=ET
-EST.standard.short=EST
-Etc/Greenwich.daylight.short=GMT
-Etc/Greenwich.generic.short=GMT
-Etc/Greenwich.standard.short=GMT
-Etc/UCT.daylight.short=UTC
-Etc/UCT.generic.short=UTC
-Etc/UCT.standard.short=UTC
-Etc/Universal.daylight.short=UTC
-Etc/Universal.generic.short=UTC
-Etc/Universal.standard.short=UTC
-Etc/UTC.daylight.short=UTC
-Etc/UTC.generic.short=UTC
-Etc/UTC.standard.short=UTC
-Etc/Zulu.daylight.short=UTC
-Etc/Zulu.generic.short=UTC
-Etc/Zulu.standard.short=UTC
-Europe/Amsterdam.daylight.short=CEST
-Europe/Amsterdam.generic.short=CET
-Europe/Amsterdam.standard.short=CET
-Europe/Andorra.daylight.short=CEST
-Europe/Andorra.generic.short=CET
-Europe/Andorra.standard.short=CET
-Europe/Athens.daylight.short=EEST
-Europe/Athens.generic.short=EET
-Europe/Athens.standard.short=EET
-Europe/Belfast.daylight.short=BST
-Europe/Belfast.generic.short=BT
-Europe/Belfast.standard.short=GMT
-Europe/Belgrade.daylight.short=CEST
-Europe/Belgrade.generic.short=CET
-Europe/Belgrade.standard.short=CET
-Europe/Berlin.daylight.short=CEST
-Europe/Berlin.generic.short=CET
-Europe/Berlin.standard.short=CET
-Europe/Bratislava.daylight.short=CEST
-Europe/Bratislava.generic.short=CET
-Europe/Bratislava.standard.short=CET
-Europe/Brussels.daylight.short=CEST
-Europe/Brussels.generic.short=CET
-Europe/Brussels.standard.short=CET
-Europe/Bucharest.daylight.short=EEST
-Europe/Bucharest.generic.short=EET
-Europe/Bucharest.standard.short=EET
-Europe/Budapest.daylight.short=CEST
-Europe/Budapest.generic.short=CET
-Europe/Budapest.standard.short=CET
-Europe/Busingen.daylight.short=CEST
-Europe/Busingen.generic.short=CET
-Europe/Busingen.standard.short=CET
-Europe/Chisinau.daylight.short=EEST
-Europe/Chisinau.generic.short=EET
-Europe/Chisinau.standard.short=EET
-Europe/Copenhagen.daylight.short=CEST
-Europe/Copenhagen.generic.short=CET
-Europe/Copenhagen.standard.short=CET
-Europe/Dublin.daylight.short=IST
-Europe/Dublin.generic.short=IT
-Europe/Dublin.standard.short=GMT
-Europe/Gibraltar.daylight.short=CEST
-Europe/Gibraltar.generic.short=CET
-Europe/Gibraltar.standard.short=CET
-Europe/Guernsey.daylight.short=BST
-Europe/Guernsey.generic.short=BT
-Europe/Guernsey.standard.short=GMT
-Europe/Helsinki.daylight.short=EEST
-Europe/Helsinki.generic.short=EET
-Europe/Helsinki.standard.short=EET
-Europe/Isle_of_Man.daylight.short=BST
-Europe/Isle_of_Man.generic.short=BT
-Europe/Isle_of_Man.standard.short=GMT
-Europe/Istanbul.daylight.short=EEST
-Europe/Istanbul.generic.short=EET
-Europe/Istanbul.standard.short=EET
-Europe/Jersey.daylight.short=BST
-Europe/Jersey.generic.short=BT
-Europe/Jersey.standard.short=GMT
-Europe/Kaliningrad.daylight.short=FEST
-Europe/Kaliningrad.generic.short=FET
-Europe/Kaliningrad.standard.short=FET
-Europe/Kiev.daylight.short=EEST
-Europe/Kiev.generic.short=EET
-Europe/Kiev.standard.short=EET
-Europe/Lisbon.daylight.short=WEST
-Europe/Lisbon.generic.short=WET
-Europe/Lisbon.standard.short=WET
-Europe/Ljubljana.daylight.short=CEST
-Europe/Ljubljana.generic.short=CET
-Europe/Ljubljana.standard.short=CET
-Europe/London.daylight.short=BST
-Europe/London.generic.short=BT
-Europe/London.standard.short=GMT
-Europe/Luxembourg.daylight.short=CEST
-Europe/Luxembourg.generic.short=CET
-Europe/Luxembourg.standard.short=CET
-Europe/Madrid.daylight.short=CEST
-Europe/Madrid.generic.short=CET
-Europe/Madrid.standard.short=CET
-Europe/Malta.daylight.short=CEST
-Europe/Malta.generic.short=CET
-Europe/Malta.standard.short=CET
-Europe/Mariehamn.daylight.short=EEST
-Europe/Mariehamn.generic.short=EET
-Europe/Mariehamn.standard.short=EET
-Europe/Minsk.daylight.short=FEST
-Europe/Minsk.generic.short=FET
-Europe/Minsk.standard.short=FET
-Europe/Monaco.daylight.short=CEST
-Europe/Monaco.generic.short=CET
-Europe/Monaco.standard.short=CET
-Europe/Moscow.daylight.short=MSD
-Europe/Moscow.generic.short=MT
-Europe/Moscow.standard.short=MSK
-Europe/Nicosia.daylight.short=EEST
-Europe/Nicosia.generic.short=EET
-Europe/Nicosia.standard.short=EET
-Europe/Oslo.daylight.short=CEST
-Europe/Oslo.generic.short=CET
-Europe/Oslo.standard.short=CET
-Europe/Paris.daylight.short=CEST
-Europe/Paris.generic.short=CET
-Europe/Paris.standard.short=CET
-Europe/Podgorica.daylight.short=CEST
-Europe/Podgorica.generic.short=CET
-Europe/Podgorica.standard.short=CET
-Europe/Prague.daylight.short=CEST
-Europe/Prague.generic.short=CET
-Europe/Prague.standard.short=CET
-Europe/Riga.daylight.short=EEST
-Europe/Riga.generic.short=EET
-Europe/Riga.standard.short=EET
-Europe/Rome.daylight.short=CEST
-Europe/Rome.generic.short=CET
-Europe/Rome.standard.short=CET
-Europe/Samara.daylight.short=SAMST
-Europe/Samara.generic.short=SAMT
-Europe/Samara.standard.short=SAMT
-Europe/San_Marino.daylight.short=CEST
-Europe/San_Marino.generic.short=CET
-Europe/San_Marino.standard.short=CET
-Europe/Sarajevo.daylight.short=CEST
-Europe/Sarajevo.generic.short=CET
-Europe/Sarajevo.standard.short=CET
-Europe/Simferopol.daylight.short=EEST
-Europe/Simferopol.generic.short=EET
-Europe/Simferopol.standard.short=EET
-Europe/Skopje.daylight.short=CEST
-Europe/Skopje.generic.short=CET
-Europe/Skopje.standard.short=CET
-Europe/Sofia.daylight.short=EEST
-Europe/Sofia.generic.short=EET
-Europe/Sofia.standard.short=EET
-Europe/Stockholm.daylight.short=CEST
-Europe/Stockholm.generic.short=CET
-Europe/Stockholm.standard.short=CET
-Europe/Tallinn.daylight.short=EEST
-Europe/Tallinn.generic.short=EET
-Europe/Tallinn.standard.short=EET
-Europe/Tirane.daylight.short=CEST
-Europe/Tirane.generic.short=CET
-Europe/Tirane.standard.short=CET
-Europe/Tiraspol.daylight.short=EEST
-Europe/Tiraspol.generic.short=EET
-Europe/Tiraspol.standard.short=EET
-Europe/Uzhgorod.daylight.short=EEST
-Europe/Uzhgorod.generic.short=EET
-Europe/Uzhgorod.standard.short=EET
-Europe/Vaduz.daylight.short=CEST
-Europe/Vaduz.generic.short=CET
-Europe/Vaduz.standard.short=CET
-Europe/Vatican.daylight.short=CEST
-Europe/Vatican.generic.short=CET
-Europe/Vatican.standard.short=CET
-Europe/Vienna.daylight.short=CEST
-Europe/Vienna.generic.short=CET
-Europe/Vienna.standard.short=CET
-Europe/Vilnius.daylight.short=EEST
-Europe/Vilnius.generic.short=EET
-Europe/Vilnius.standard.short=EET
-Europe/Volgograd.daylight.short=VOLST
-Europe/Volgograd.generic.short=VOLT
-Europe/Volgograd.standard.short=VOLT
-Europe/Warsaw.daylight.short=CEST
-Europe/Warsaw.generic.short=CET
-Europe/Warsaw.standard.short=CET
-Europe/Zagreb.daylight.short=CEST
-Europe/Zagreb.generic.short=CET
-Europe/Zagreb.standard.short=CET
-Europe/Zaporozhye.daylight.short=EEST
-Europe/Zaporozhye.generic.short=EET
-Europe/Zaporozhye.standard.short=EET
-Europe/Zurich.daylight.short=CEST
-Europe/Zurich.generic.short=CET
-Europe/Zurich.standard.short=CET
-GB.daylight.short=BST
-GB-Eire.daylight.short=BST
-GB-Eire.generic.short=BT
-GB-Eire.standard.short=GMT
-GB.generic.short=BT
-GB.standard.short=GMT
-GMT.daylight.short=GMT
-GMT.generic.short=GMT
-GMT.standard.short=GMT
-Greenwich.daylight.short=GMT
-Greenwich.generic.short=GMT
-Greenwich.standard.short=GMT
-Hongkong.daylight.short=HKST
-Hongkong.generic.short=HKT
-Hongkong.standard.short=HKT
-HST.daylight.short=HDT
-HST.generic.short=HT
-HST.standard.short=HST
-Iceland.daylight.short=GMT
-Iceland.generic.short=GMT
-Iceland.standard.short=GMT
-IET.daylight.short=EDT
-IET.generic.short=ET
-IET.standard.short=EST
-Indian/Antananarivo.daylight.short=EAST
-Indian/Antananarivo.generic.short=EAT
-Indian/Antananarivo.standard.short=EAT
-Indian/Chagos.daylight.short=IOST
-Indian/Chagos.generic.short=IOT
-Indian/Chagos.standard.short=IOT
-Indian/Christmas.daylight.short=CXST
-Indian/Christmas.generic.short=CIT
-Indian/Christmas.standard.short=CXT
-Indian/Cocos.daylight.short=CCST
-Indian/Cocos.generic.short=CCT
-Indian/Cocos.standard.short=CCT
-Indian/Comoro.daylight.short=EAST
-Indian/Comoro.generic.short=EAT
-Indian/Comoro.standard.short=EAT
-Indian/Kerguelen.daylight.short=TFST
-Indian/Kerguelen.generic.short=TFT
-Indian/Kerguelen.standard.short=TFT
-Indian/Mahe.daylight.short=SCST
-Indian/Mahe.generic.short=SCT
-Indian/Mahe.standard.short=SCT
-Indian/Maldives.daylight.short=MVST
-Indian/Maldives.generic.short=MVT
-Indian/Maldives.standard.short=MVT
-Indian/Mauritius.daylight.short=MUST
-Indian/Mauritius.generic.short=MUT
-Indian/Mauritius.standard.short=MUT
-Indian/Mayotte.daylight.short=EAST
-Indian/Mayotte.generic.short=EAT
-Indian/Mayotte.standard.short=EAT
-Indian/Reunion.daylight.short=REST
-Indian/Reunion.generic.short=RET
-Indian/Reunion.standard.short=RET
-Iran.daylight.short=IRDT
-Iran.generic.short=IRT
-Iran.standard.short=IRST
-Israel.daylight.short=IDT
-Israel.generic.short=IT
-Israel.standard.short=IST
-IST.daylight.short=IDT
-IST.generic.short=IT
-IST.standard.short=IST
-Jamaica.daylight.short=EDT
-Jamaica.generic.short=ET
-Jamaica.standard.short=EST
-Japan.daylight.short=JDT
-Japan.generic.short=JT
-Japan.standard.short=JST
-JST.daylight.short=JDT
-JST.generic.short=JT
-JST.standard.short=JST
-Kwajalein.daylight.short=MHST
-Kwajalein.generic.short=MHT
-Kwajalein.standard.short=MHT
-Libya.daylight.short=EEST
-Libya.generic.short=EET
-Libya.standard.short=EET
-MET.daylight.short=MEST
-MET.generic.short=MET
-MET.standard.short=MET
-Mexico/BajaNorte.daylight.short=PDT
-Mexico/BajaNorte.generic.short=PT
-Mexico/BajaNorte.standard.short=PST
-Mexico/BajaSur.daylight.short=MDT
-Mexico/BajaSur.generic.short=MT
-Mexico/BajaSur.standard.short=MST
-Mexico/General.daylight.short=CDT
-Mexico/General.generic.short=CT
-Mexico/General.standard.short=CST
-MIT.daylight.short=WSDT
-MIT.generic.short=WST
-MIT.standard.short=WST
-MST7MDT.daylight.short=MDT
-MST7MDT.generic.short=MT
-MST7MDT.standard.short=MST
-MST.daylight.short=MDT
-MST.generic.short=MT
-MST.standard.short=MST
-Navajo.daylight.short=MDT
-Navajo.generic.short=MT
-Navajo.standard.short=MST
-NET.daylight.short=AMST
-NET.generic.short=AMT
-NET.standard.short=AMT
-NST.daylight.short=NZDT
-NST.generic.short=NZT
-NST.standard.short=NZST
-NZ-CHAT.daylight.short=CHADT
-NZ-CHAT.generic.short=CHAT
-NZ-CHAT.standard.short=CHAST
-NZ.daylight.short=NZDT
-NZ.generic.short=NZT
-NZ.standard.short=NZST
-Pacific/Apia.daylight.short=WSDT
-Pacific/Apia.generic.short=WST
-Pacific/Apia.standard.short=WST
-Pacific/Auckland.daylight.short=NZDT
-Pacific/Auckland.generic.short=NZT
-Pacific/Auckland.standard.short=NZST
-Pacific/Chatham.daylight.short=CHADT
-Pacific/Chatham.generic.short=CHAT
-Pacific/Chatham.standard.short=CHAST
-Pacific/Chuuk.daylight.short=CHUST
-Pacific/Chuuk.generic.short=CHUT
-Pacific/Chuuk.standard.short=CHUT
-Pacific/Easter.daylight.short=EASST
-Pacific/Easter.generic.short=EAST
-Pacific/Easter.standard.short=EAST
-Pacific/Efate.daylight.short=VUST
-Pacific/Efate.generic.short=VUT
-Pacific/Efate.standard.short=VUT
-Pacific/Enderbury.daylight.short=PHOST
-Pacific/Enderbury.generic.short=PHOT
-Pacific/Enderbury.standard.short=PHOT
-Pacific/Fakaofo.daylight.short=TKST
-Pacific/Fakaofo.generic.short=TKT
-Pacific/Fakaofo.standard.short=TKT
-Pacific/Fiji.daylight.short=FJST
-Pacific/Fiji.generic.short=FJT
-Pacific/Fiji.standard.short=FJT
-Pacific/Funafuti.daylight.short=TVST
-Pacific/Funafuti.generic.short=TVT
-Pacific/Funafuti.standard.short=TVT
-Pacific/Galapagos.daylight.short=GALST
-Pacific/Galapagos.generic.short=GALT
-Pacific/Galapagos.standard.short=GALT
-Pacific/Gambier.daylight.short=GAMST
-Pacific/Gambier.generic.short=GAMT
-Pacific/Gambier.standard.short=GAMT
-Pacific/Guadalcanal.daylight.short=SBST
-Pacific/Guadalcanal.generic.short=SBT
-Pacific/Guadalcanal.standard.short=SBT
-Pacific/Guam.daylight.short=ChDT
-Pacific/Guam.generic.short=ChT
-Pacific/Guam.standard.short=ChST
-Pacific/Honolulu.daylight.short=HDT
-Pacific/Honolulu.generic.short=HT
-Pacific/Honolulu.standard.short=HST
-Pacific/Johnston.daylight.short=HDT
-Pacific/Johnston.generic.short=HT
-Pacific/Johnston.standard.short=HST
-Pacific/Kiritimati.daylight.short=LINST
-Pacific/Kiritimati.generic.short=LINT
-Pacific/Kiritimati.standard.short=LINT
-Pacific/Kosrae.daylight.short=KOSST
-Pacific/Kosrae.generic.short=KOST
-Pacific/Kosrae.standard.short=KOST
-Pacific/Kwajalein.daylight.short=MHST
-Pacific/Kwajalein.generic.short=MHT
-Pacific/Kwajalein.standard.short=MHT
-Pacific/Majuro.daylight.short=MHST
-Pacific/Majuro.generic.short=MHT
-Pacific/Majuro.standard.short=MHT
-Pacific/Marquesas.daylight.short=MARST
-Pacific/Marquesas.generic.short=MART
-Pacific/Marquesas.standard.short=MART
-Pacific/Midway.daylight.short=SDT
-Pacific/Midway.generic.short=ST
-Pacific/Midway.standard.short=SST
-Pacific/Nauru.daylight.short=NRST
-Pacific/Nauru.generic.short=NRT
-Pacific/Nauru.standard.short=NRT
-Pacific/Niue.daylight.short=NUST
-Pacific/Niue.generic.short=NUT
-Pacific/Niue.standard.short=NUT
-Pacific/Norfolk.daylight.short=NFST
-Pacific/Norfolk.generic.short=NFT
-Pacific/Norfolk.standard.short=NFT
-Pacific/Noumea.daylight.short=NCST
-Pacific/Noumea.generic.short=NCT
-Pacific/Noumea.standard.short=NCT
-Pacific/Pago_Pago.daylight.short=SDT
-Pacific/Pago_Pago.generic.short=ST
-Pacific/Pago_Pago.standard.short=SST
-Pacific/Palau.daylight.short=PWST
-Pacific/Palau.generic.short=PWT
-Pacific/Palau.standard.short=PWT
-Pacific/Pitcairn.daylight.short=PDT
-Pacific/Pitcairn.generic.short=PT
-Pacific/Pitcairn.standard.short=PST
-Pacific/Pohnpei.daylight.short=PONST
-Pacific/Pohnpei.generic.short=PONT
-Pacific/Pohnpei.standard.short=PONT
-Pacific/Ponape.daylight.short=PONST
-Pacific/Ponape.generic.short=PONT
-Pacific/Ponape.standard.short=PONT
-Pacific/Port_Moresby.daylight.short=PGST
-Pacific/Port_Moresby.generic.short=PGT
-Pacific/Port_Moresby.standard.short=PGT
-Pacific/Rarotonga.daylight.short=CKHST
-Pacific/Rarotonga.generic.short=CKT
-Pacific/Rarotonga.standard.short=CKT
-Pacific/Saipan.daylight.short=ChDT
-Pacific/Saipan.generic.short=ChT
-Pacific/Saipan.standard.short=ChST
-Pacific/Samoa.daylight.short=SDT
-Pacific/Samoa.generic.short=ST
-Pacific/Samoa.standard.short=SST
-Pacific/Tahiti.daylight.short=TAHST
-Pacific/Tahiti.generic.short=TAHT
-Pacific/Tahiti.standard.short=TAHT
-Pacific/Tarawa.daylight.short=GILST
-Pacific/Tarawa.generic.short=GILT
-Pacific/Tarawa.standard.short=GILT
-Pacific/Tongatapu.daylight.short=TOST
-Pacific/Tongatapu.generic.short=TOT
-Pacific/Tongatapu.standard.short=TOT
-Pacific/Truk.daylight.short=CHUST
-Pacific/Truk.generic.short=CHUT
-Pacific/Truk.standard.short=CHUT
-Pacific/Wake.daylight.short=WAKST
-Pacific/Wake.generic.short=WAKT
-Pacific/Wake.standard.short=WAKT
-Pacific/Wallis.daylight.short=WFST
-Pacific/Wallis.generic.short=WFT
-Pacific/Wallis.standard.short=WFT
-Pacific/Yap.daylight.short=CHUST
-Pacific/Yap.generic.short=CHUT
-Pacific/Yap.standard.short=CHUT
-PLT.daylight.short=PKST
-PLT.generic.short=PKT
-PLT.standard.short=PKT
-PNT.daylight.short=MDT
-PNT.generic.short=MT
-PNT.standard.short=MST
-Poland.daylight.short=CEST
-Poland.generic.short=CET
-Poland.standard.short=CET
-Portugal.daylight.short=WEST
-Portugal.generic.short=WET
-Portugal.standard.short=WET
-PRC.daylight.short=CDT
-PRC.generic.short=CT
-PRC.standard.short=CST
-PRT.daylight.short=ADT
-PRT.generic.short=AT
-PRT.standard.short=AST
-PST8PDT.daylight.short=PDT
-PST8PDT.generic.short=PT
-PST8PDT.standard.short=PST
-PST.daylight.short=PDT
-PST.generic.short=PT
-PST.standard.short=PST
-ROK.daylight.short=KDT
-ROK.generic.short=KT
-ROK.standard.short=KST
-Singapore.daylight.short=SGST
-Singapore.generic.short=SGT
-Singapore.standard.short=SGT
-SST.daylight.short=SBST
-SST.generic.short=SBT
-SST.standard.short=SBT
-SystemV/AST4ADT.daylight.short=ADT
-SystemV/AST4ADT.generic.short=AT
-SystemV/AST4ADT.standard.short=AST
-SystemV/AST4.daylight.short=ADT
-SystemV/AST4.generic.short=AT
-SystemV/AST4.standard.short=AST
-SystemV/CST6CDT.daylight.short=CDT
-SystemV/CST6CDT.generic.short=CT
-SystemV/CST6CDT.standard.short=CST
-SystemV/CST6.daylight.short=CDT
-SystemV/CST6.generic.short=CT
-SystemV/CST6.standard.short=CST
-SystemV/EST5.daylight.short=EDT
-SystemV/EST5EDT.daylight.short=EDT
-SystemV/EST5EDT.generic.short=ET
-SystemV/EST5EDT.standard.short=EST
-SystemV/EST5.generic.short=ET
-SystemV/EST5.standard.short=EST
-SystemV/HST10.daylight.short=HDT
-SystemV/HST10.generic.short=HT
-SystemV/HST10.standard.short=HST
-SystemV/MST7.daylight.short=MDT
-SystemV/MST7.generic.short=MT
-SystemV/MST7MDT.daylight.short=MDT
-SystemV/MST7MDT.generic.short=MT
-SystemV/MST7MDT.standard.short=MST
-SystemV/MST7.standard.short=MST
-SystemV/PST8.daylight.short=PDT
-SystemV/PST8.generic.short=PT
-SystemV/PST8PDT.daylight.short=PDT
-SystemV/PST8PDT.generic.short=PT
-SystemV/PST8PDT.standard.short=PST
-SystemV/PST8.standard.short=PST
-SystemV/YST9.daylight.short=AKDT
-SystemV/YST9.generic.short=AKT
-SystemV/YST9.standard.short=AKST
-SystemV/YST9YDT.daylight.short=AKDT
-SystemV/YST9YDT.generic.short=AKT
-SystemV/YST9YDT.standard.short=AKST
-Turkey.daylight.short=EEST
-Turkey.generic.short=EET
-Turkey.standard.short=EET
-UCT.daylight.short=UTC
-UCT.generic.short=UTC
-UCT.standard.short=UTC
-Universal.daylight.short=UTC
-Universal.generic.short=UTC
-Universal.standard.short=UTC
-US/Alaska.daylight.short=AKDT
-US/Alaska.generic.short=AKT
-US/Alaska.standard.short=AKST
-US/Aleutian.daylight.short=HADT
-US/Aleutian.generic.short=HAT
-US/Aleutian.standard.short=HAST
-US/Arizona.daylight.short=MDT
-US/Arizona.generic.short=MT
-US/Arizona.standard.short=MST
-US/Central.daylight.short=CDT
-US/Central.generic.short=CT
-US/Central.standard.short=CST
-US/Eastern.daylight.short=EDT
-US/Eastern.generic.short=ET
-US/Eastern.standard.short=EST
-US/East-Indiana.daylight.short=EDT
-US/East-Indiana.generic.short=ET
-US/East-Indiana.standard.short=EST
-US/Hawaii.daylight.short=HDT
-US/Hawaii.generic.short=HT
-US/Hawaii.standard.short=HST
-US/Indiana-Starke.daylight.short=CDT
-US/Indiana-Starke.generic.short=CT
-US/Indiana-Starke.standard.short=CST
-US/Michigan.daylight.short=EDT
-US/Michigan.generic.short=ET
-US/Michigan.standard.short=EST
-US/Mountain.daylight.short=MDT
-US/Mountain.generic.short=MT
-US/Mountain.standard.short=MST
-US/Pacific.daylight.short=PDT
-US/Pacific.generic.short=PT
-US/Pacific-New.daylight.short=PDT
-US/Pacific-New.generic.short=PT
-US/Pacific-New.standard.short=PST
-US/Pacific.standard.short=PST
-US/Samoa.daylight.short=SDT
-US/Samoa.generic.short=ST
-US/Samoa.standard.short=SST
-UTC.daylight.short=UTC
-UTC.generic.short=UTC
-UTC.standard.short=UTC
-VST.daylight.short=ICST
-VST.generic.short=ICT
-VST.standard.short=ICT
-WET.daylight.short=WEST
-WET.generic.short=WET
-WET.standard.short=WET
-W-SU.daylight.short=MSD
-W-SU.generic.short=MT
-W-SU.standard.short=MSK
-Zulu.daylight.short=UTC
-Zulu.generic.short=UTC
-Zulu.standard.short=UTC
diff --git a/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_sv.properties b/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_sv.properties
deleted file mode 100644
index e1db445c4a4..00000000000
--- a/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_sv.properties
+++ /dev/null
@@ -1,651 +0,0 @@
-ACT.daylight.long=Central sommartid (Nordterritoriet)
-ACT.generic.long=Central tid (Nordterritoriet)
-ACT.standard.long=Central standardtid (Nordterritoriet)
-AET.daylight.long=\u00D6stlig sommartid (New South Wales)
-AET.generic.long=\u00D6stlig tid (New South Wales)
-AET.standard.long=\u00D6stlig standardtid (New South Wales)
-AGT.generic.long=Argentinsk tid
-ART.generic.long=\u00D6steuropeisk tid
-AST.generic.long=Alaskisk tid
-Africa/Abidjan.generic.long=Greenwichtid
-Africa/Accra.generic.long=Ghana, normaltid
-Africa/Addis_Ababa.generic.long=\u00D6stafrikansk tid
-Africa/Algiers.generic.long=Centraleuropeisk tid
-Africa/Asmara.generic.long=\u00D6stafrikansk tid
-Africa/Asmera.generic.long=\u00D6stafrikansk tid
-Africa/Bamako.generic.long=Greenwichtid
-Africa/Bangui.generic.long=V\u00E4stafrikansk tid
-Africa/Banjul.generic.long=Greenwichtid
-Africa/Bissau.generic.long=Greenwichtid
-Africa/Blantyre.generic.long=Centralafrikansk tid
-Africa/Brazzaville.generic.long=V\u00E4stafrikansk tid
-Africa/Bujumbura.generic.long=Centralafrikansk tid
-Africa/Cairo.generic.long=\u00D6steuropeisk tid
-Africa/Casablanca.generic.long=V\u00E4steuropeisk tid
-Africa/Ceuta.generic.long=Centraleuropeisk tid
-Africa/Conakry.generic.long=Greenwichtid
-Africa/Dakar.generic.long=Greenwichtid
-Africa/Dar_es_Salaam.generic.long=\u00D6stafrikansk tid
-Africa/Djibouti.generic.long=\u00D6stafrikansk tid
-Africa/Douala.generic.long=V\u00E4stafrikansk tid
-Africa/El_Aaiun.generic.long=V\u00E4steuropeisk tid
-Africa/Freetown.generic.long=Sierra Leone-tid
-Africa/Gaborone.generic.long=Centralafrikansk tid
-Africa/Harare.generic.long=Centralafrikansk tid
-Africa/Johannesburg.generic.long=Sydafrikansk tid
-Africa/Juba.generic.long=\u00D6stafrikansk tid
-Africa/Kampala.generic.long=\u00D6stafrikansk tid
-Africa/Khartoum.generic.long=\u00D6stafrikansk tid
-Africa/Kigali.generic.long=Centralafrikansk tid
-Africa/Kinshasa.generic.long=V\u00E4stafrikansk tid
-Africa/Lagos.generic.long=V\u00E4stafrikansk tid
-Africa/Libreville.generic.long=V\u00E4stafrikansk tid
-Africa/Lome.generic.long=Greenwichtid
-Africa/Luanda.generic.long=V\u00E4stafrikansk tid
-Africa/Lubumbashi.generic.long=Centralafrikansk tid
-Africa/Lusaka.generic.long=Centralafrikansk tid
-Africa/Malabo.generic.long=V\u00E4stafrikansk tid
-Africa/Maputo.generic.long=Centralafrikansk tid
-Africa/Maseru.generic.long=Sydafrikansk tid
-Africa/Mbabane.generic.long=Sydafrikansk tid
-Africa/Mogadishu.generic.long=\u00D6stafrikansk tid
-Africa/Monrovia.generic.long=Greenwichtid
-Africa/Nairobi.generic.long=\u00D6stafrikansk tid
-Africa/Ndjamena.generic.long=V\u00E4stafrikansk tid
-Africa/Niamey.generic.long=V\u00E4stafrikansk tid
-Africa/Nouakchott.generic.long=Greenwichtid
-Africa/Ouagadougou.generic.long=Greenwichtid
-Africa/Porto-Novo.generic.long=V\u00E4stafrikansk tid
-Africa/Sao_Tome.generic.long=Greenwichtid
-Africa/Timbuktu.generic.long=Greenwichtid
-Africa/Tripoli.generic.long=\u00d6steuropeisk tid
-Africa/Tunis.generic.long=Centraleuropeisk tid
-Africa/Windhoek.generic.long=V\u00E4stafrikansk tid
-America/Adak.generic.long=Hawaiiansk-aleutisk tid
-America/Anchorage.generic.long=Alaskisk tid
-America/Anguilla.generic.long=Atlantisk tid
-America/Antigua.generic.long=Atlantisk tid
-America/Araguaina.generic.long=Brasiliansk tid
-America/Argentina/Buenos_Aires.generic.long=Argentinsk tid
-America/Argentina/Catamarca.generic.long=Argentinsk tid
-America/Argentina/ComodRivadavia.generic.long=Argentinsk tid
-America/Argentina/Cordoba.generic.long=Argentinsk tid
-America/Argentina/Jujuy.generic.long=Argentinsk tid
-America/Argentina/La_Rioja.generic.long=Argentinsk tid
-America/Argentina/Mendoza.generic.long=Argentinsk tid
-America/Argentina/Rio_Gallegos.generic.long=Argentinsk tid
-America/Argentina/Salta.generic.long=Argentinsk tid
-America/Argentina/San_Juan.generic.long=Argentinsk tid
-America/Argentina/San_Luis.generic.long=Argentinsk tid
-America/Argentina/Tucuman.generic.long=Argentinsk tid
-America/Argentina/Ushuaia.generic.long=Argentinsk tid
-America/Aruba.generic.long=Atlantisk tid
-America/Asuncion.generic.long=Paraguayansk tid
-America/Atikokan.generic.long=\u00D6stlig tid
-America/Atka.generic.long=Hawaiiansk-aleutisk tid
-America/Bahia.generic.long=Brasiliansk tid
-America/Bahia_Banderas.generic.long=Central tid
-America/Barbados.generic.long=Atlantisk tid
-America/Belem.generic.long=Brasiliansk tid
-America/Belize.generic.long=Central tid
-America/Blanc-Sablon.generic.long=Atlantisk tid
-America/Boa_Vista.generic.long=Amazonas-tid
-America/Bogota.generic.long=Kolombiansk tid
-America/Boise.generic.long=Mountain-tid
-America/Buenos_Aires.generic.long=Argentinsk tid
-America/Cambridge_Bay.generic.long=Mountain-tid
-America/Campo_Grande.generic.long=Amazonas-tid
-America/Cancun.generic.long=Central tid
-America/Caracas.generic.long=Venezuelansk tid
-America/Catamarca.generic.long=Argentinsk tid
-America/Cayenne.generic.long=Franska Guyana-tid
-America/Cayman.generic.long=\u00D6stlig tid
-America/Chicago.generic.long=Central tid
-America/Chihuahua.generic.long=Mountain-tid
-America/Coral_Harbour.generic.long=\u00D6stlig tid
-America/Cordoba.generic.long=Argentinsk tid
-America/Costa_Rica.generic.long=Central tid
-America/Creston.generic.long=Mountain-tid
-America/Cuiaba.generic.long=Amazonas-tid
-America/Curacao.generic.long=Atlantisk tid
-America/Danmarkshavn.generic.long=Greenwichtid
-America/Dawson.generic.long=Stillahavet
-America/Dawson_Creek.generic.long=Mountain-tid
-America/Denver.generic.long=Mountain-tid
-America/Detroit.generic.long=\u00D6stlig tid
-America/Dominica.generic.long=Atlantisk tid
-America/Edmonton.generic.long=Mountain-tid
-America/Eirunepe.generic.long=Acre, normaltid
-America/El_Salvador.generic.long=Central tid
-America/Ensenada.generic.long=Stillahavet
-America/Fort_Wayne.generic.long=\u00D6stlig tid
-America/Fortaleza.generic.long=Brasiliansk tid
-America/Glace_Bay.generic.long=Atlantisk tid
-America/Godthab.generic.long=V\u00E4stgr\u00F6nl\u00E4ndsk tid
-America/Goose_Bay.generic.long=Atlantisk tid
-America/Grand_Turk.generic.long=\u00D6stlig tid
-America/Grenada.generic.long=Atlantisk tid
-America/Guadeloupe.generic.long=Atlantisk tid
-America/Guatemala.generic.long=Central tid
-America/Guayaquil.generic.long=Ecuadoriansk tid
-America/Guyana.generic.long=Guyansk tid
-America/Halifax.generic.long=Atlantisk tid
-America/Havana.generic.long=Kubansk tid
-America/Hermosillo.generic.long=Mountain-tid
-America/Indiana/Indianapolis.generic.long=\u00D6stlig tid
-America/Indiana/Knox.generic.long=Central tid
-America/Indiana/Marengo.generic.long=\u00D6stlig tid
-America/Indiana/Petersburg.generic.long=\u00D6stlig tid
-America/Indiana/Tell_City.generic.long=Central tid
-America/Indiana/Vevay.generic.long=\u00D6stlig tid
-America/Indiana/Vincennes.generic.long=\u00D6stlig tid
-America/Indiana/Winamac.generic.long=\u00D6stlig tid
-America/Indianapolis.generic.long=\u00D6stlig tid
-America/Inuvik.generic.long=Mountain-tid
-America/Iqaluit.generic.long=\u00D6stlig tid
-America/Jamaica.generic.long=\u00D6stlig tid
-America/Jujuy.generic.long=Argentinsk tid
-America/Juneau.generic.long=Alaskisk tid
-America/Kentucky/Louisville.generic.long=\u00D6stlig tid
-America/Kentucky/Monticello.generic.long=\u00D6stlig tid
-America/Knox_IN.generic.long=Central tid
-America/Kralendijk.generic.long=Atlantisk tid
-America/La_Paz.generic.long=Boliviansk tid
-America/Lima.generic.long=Peruansk tid
-America/Los_Angeles.generic.long=Stillahavet
-America/Louisville.generic.long=\u00D6stlig tid
-America/Lower_Princes.generic.long=Atlantisk tid
-America/Maceio.generic.long=Brasiliansk tid
-America/Managua.generic.long=Central tid
-America/Manaus.generic.long=Amazonas-tid
-America/Marigot.generic.long=Atlantisk tid
-America/Martinique.generic.long=Atlantisk tid
-America/Matamoros.generic.long=Central tid
-America/Mazatlan.generic.long=Mountain-tid
-America/Mendoza.generic.long=Argentinsk tid
-America/Menominee.generic.long=Central tid
-America/Merida.generic.long=Central tid
-America/Metlakatla.daylight.long=Metlakatla, sommartid
-America/Metlakatla.generic.long=Metlakatla-tid
-America/Metlakatla.standard.long=Metlakatla, normaltid
-America/Mexico_City.generic.long=Central tid
-America/Miquelon.generic.long=Saint-Pierre och Miquelons tid
-America/Moncton.generic.long=Atlantisk tid
-America/Monterrey.generic.long=Central tid
-America/Montevideo.generic.long=Uruguayansk tid
-America/Montreal.generic.long=\u00D6stlig tid
-America/Montserrat.generic.long=Atlantisk tid
-America/Nassau.generic.long=\u00D6stlig tid
-America/New_York.generic.long=\u00D6stlig tid
-America/Nipigon.generic.long=\u00D6stlig tid
-America/Nome.generic.long=Alaskisk tid
-America/Noronha.generic.long=Fernando de Noronha-tid
-America/North_Dakota/Beulah.generic.long=Central tid
-America/North_Dakota/Center.generic.long=Central tid
-America/North_Dakota/New_Salem.generic.long=Central tid
-America/Ojinaga.generic.long=Mountain-tid
-America/Panama.generic.long=\u00D6stlig tid
-America/Pangnirtung.generic.long=\u00D6stlig tid
-America/Paramaribo.generic.long=Surinamsk tid
-America/Phoenix.generic.long=Mountain-tid
-America/Port-au-Prince.generic.long=\u00D6stlig tid
-America/Port_of_Spain.generic.long=Atlantisk tid
-America/Porto_Acre.generic.long=Acre, normaltid
-America/Porto_Velho.generic.long=Amazonas-tid
-America/Puerto_Rico.generic.long=Atlantisk tid
-America/Rainy_River.generic.long=Central tid
-America/Rankin_Inlet.generic.long=Central tid
-America/Recife.generic.long=Brasiliansk tid
-America/Regina.generic.long=Central tid
-America/Resolute.generic.long=Central tid
-America/Rio_Branco.generic.long=Acre, normaltid
-America/Rosario.generic.long=Argentinsk tid
-America/Santa_Isabel.generic.long=Stillahavet
-America/Santarem.generic.long=Brasiliansk tid
-America/Santiago.generic.long=Chilensk tid
-America/Santo_Domingo.generic.long=Atlantisk tid
-America/Sao_Paulo.generic.long=Brasiliansk tid
-America/Scoresbysund.generic.long=\u00D6stgr\u00F6nl\u00E4ndsk tid
-America/Shiprock.generic.long=Mountain-tid
-America/Sitka.generic.long=Alaskisk tid
-America/St_Barthelemy.generic.long=Atlantisk tid
-America/St_Johns.generic.long=Newfoundl\u00E4ndsk tid
-America/St_Kitts.generic.long=Atlantisk tid
-America/St_Lucia.generic.long=Atlantisk tid
-America/St_Thomas.generic.long=Atlantisk tid
-America/St_Vincent.generic.long=Atlantisk tid
-America/Swift_Current.generic.long=Central tid
-America/Tegucigalpa.generic.long=Central tid
-America/Thule.generic.long=Atlantisk tid
-America/Thunder_Bay.generic.long=\u00D6stlig tid
-America/Tijuana.generic.long=Stillahavet
-America/Toronto.generic.long=\u00D6stlig tid
-America/Tortola.generic.long=Atlantisk tid
-America/Vancouver.generic.long=Stillahavet
-America/Virgin.generic.long=Atlantisk tid
-America/Whitehorse.generic.long=Stillahavet
-America/Winnipeg.generic.long=Central tid
-America/Yakutat.generic.long=Alaskisk tid
-America/Yellowknife.generic.long=Mountain-tid
-Antarctica/Casey.daylight.long=V\u00E4stlig sommartid (Australien)
-Antarctica/Casey.generic.long=V\u00E4stlig tid (Australien)
-Antarctica/Casey.standard.long=Western Standard Time (Australien)
-Antarctica/Davis.generic.long=Davis-tid
-Antarctica/DumontDUrville.generic.long=Dumont-d'Urville-tid
-Antarctica/Macquarie.daylight.long=Macquarie\u00F6n, sommartid
-Antarctica/Macquarie.generic.long=Macquarie\u00F6n, normaltid
-Antarctica/Macquarie.standard.long=Macquarie\u00F6n, normaltid
-Antarctica/Mawson.generic.long=Mawson-tid
-Antarctica/McMurdo.generic.long=Nyzeel\u00E4ndsk tid
-Antarctica/Palmer.generic.long=Chilensk tid
-Antarctica/Rothera.generic.long=Rothera-tid
-Antarctica/South_Pole.generic.long=Nyzeel\u00E4ndsk tid
-Antarctica/Syowa.generic.long=Syowa-tid
-Antarctica/Vostok.generic.long=Vostok-tid
-Arctic/Longyearbyen.generic.long=Centraleuropeisk tid
-Asia/Aden.generic.long=Arabisk tid
-Asia/Almaty.generic.long=Alma-Ata-tid
-Asia/Amman.generic.long=Arabisk tid
-Asia/Anadyr.generic.long=Anadyr-tid
-Asia/Aqtau.generic.long=Aqtau-tid
-Asia/Aqtobe.generic.long=Aqtobe-tid
-Asia/Ashgabat.generic.long=Turkmensk tid
-Asia/Ashkhabad.generic.long=Turkmensk tid
-Asia/Baghdad.generic.long=Arabisk tid
-Asia/Bahrain.generic.long=Arabisk tid
-Asia/Baku.generic.long=Azerbajdzjansk tid
-Asia/Bangkok.generic.long=Indokinesisk tid
-Asia/Beirut.generic.long=\u00D6steuropeisk tid
-Asia/Bishkek.generic.long=Kirgizisk tid
-Asia/Brunei.generic.long=Bruneisk tid
-Asia/Calcutta.generic.long=Indisk tid
-Asia/Choibalsan.generic.long=Choibalsan-tid
-Asia/Chongqing.generic.long=Kinesisk tid
-Asia/Chungking.generic.long=Kinesisk tid
-Asia/Colombo.generic.long=Indisk tid
-Asia/Dacca.generic.long=Bangladeshisk tid
-Asia/Damascus.generic.long=\u00D6steuropeisk tid
-Asia/Dhaka.generic.long=Bangladeshisk tid
-Asia/Dili.generic.long=\u00D6sttimor, normaltid
-Asia/Dubai.generic.long=Golfens tid
-Asia/Dushanbe.generic.long=Tadzjikisk tid
-Asia/Gaza.generic.long=\u00D6steuropeisk tid
-Asia/Harbin.generic.long=Kinesisk tid
-Asia/Hebron.generic.long=\u00D6steuropeisk tid
-Asia/Ho_Chi_Minh.generic.long=Indokinesisk tid
-Asia/Hong_Kong.generic.long=Hongkong-tid
-Asia/Hovd.generic.long=Hovd-tid
-Asia/Irkutsk.generic.long=Irkutsk-tid
-Asia/Istanbul.generic.long=\u00D6steuropeisk tid
-Asia/Jakarta.generic.long=V\u00E4stindonesisk tid
-Asia/Jayapura.generic.long=\u00D6stindonesisk tid
-Asia/Jerusalem.generic.long=Israelisk tid
-Asia/Kabul.generic.long=Afghansk tid
-Asia/Kamchatka.generic.long=Petropavlovsk-Kamtjatskij-tid
-Asia/Karachi.generic.long=Pakistansk tid
-Asia/Kashgar.generic.long=Kinesisk tid
-Asia/Kathmandu.generic.long=Nepalesisk tid
-Asia/Katmandu.generic.long=Nepalesisk tid
-Asia/Khandyga.daylight.long=Khandyga, sommartid
-Asia/Khandyga.generic.long=Khandyga, normaltid
-Asia/Khandyga.standard.long=Khandyga, normaltid
-Asia/Kolkata.generic.long=Indisk tid
-Asia/Krasnoyarsk.generic.long=Krasnojarsk-tid
-Asia/Kuala_Lumpur.generic.long=Malaysisk tid
-Asia/Kuching.generic.long=Malaysisk tid
-Asia/Kuwait.generic.long=Arabisk tid
-Asia/Macao.generic.long=Kinesisk tid
-Asia/Macau.generic.long=Kinesisk tid
-Asia/Magadan.generic.long=Magadan-tid
-Asia/Makassar.generic.long=Centralindonesisk tid
-Asia/Manila.generic.long=Filippinsk tid
-Asia/Muscat.generic.long=Golfens tid
-Asia/Nicosia.generic.long=\u00D6steuropeisk tid
-Asia/Novokuznetsk.generic.long=Sibirisk tid
-Asia/Novosibirsk.generic.long=Sibirisk tid
-Asia/Omsk.generic.long=Omsk-tid
-Asia/Oral.generic.long=Oral-tid
-Asia/Phnom_Penh.generic.long=Indokinesisk tid
-Asia/Pontianak.generic.long=V\u00E4stindonesisk tid
-Asia/Pyongyang.generic.long=Koreansk tid
-Asia/Qatar.generic.long=Arabisk tid
-Asia/Qyzylorda.generic.long=Qyzylorda-tid
-Asia/Rangoon.generic.long=Myanmar-tid
-Asia/Saigon.generic.long=Indokinesisk tid
-Asia/Sakhalin.generic.long=Sakhalin-tid
-Asia/Samarkand.generic.long=Uzbekisk tid
-Asia/Seoul.generic.long=Koreansk tid
-Asia/Shanghai.generic.long=Kinesisk tid
-Asia/Singapore.generic.long=Singapore-tid
-Asia/Taipei.generic.long=Kinesisk tid
-Asia/Tashkent.generic.long=Uzbekisk tid
-Asia/Tbilisi.generic.long=Georgisk tid
-Asia/Tehran.generic.long=Iransk tid
-Asia/Tel_Aviv.generic.long=Israelisk tid
-Asia/Thimbu.generic.long=Bhutanesisk tid
-Asia/Thimphu.generic.long=Bhutanesisk tid
-Asia/Tokyo.generic.long=Japansk tid
-Asia/Ujung_Pandang.generic.long=Centralindonesisk tid
-Asia/Ulaanbaatar.generic.long=Ulaanbaatar-tid
-Asia/Ulan_Bator.generic.long=Ulaanbaatar-tid
-Asia/Urumqi.generic.long=Kinesisk tid
-Asia/Ust-Nera.daylight.long=Ust-Nera, sommartid
-Asia/Ust-Nera.generic.long=Ust-Nera, normaltid
-Asia/Ust-Nera.standard.long=Ust-Nera, normaltid
-Asia/Vientiane.generic.long=Indokinesisk tid
-Asia/Vladivostok.generic.long=Vladivostok-tid
-Asia/Yakutsk.generic.long=Jakutsk-tid
-Asia/Yekaterinburg.generic.long=Jekaterinburg-tid
-Asia/Yerevan.generic.long=Armenisk tid
-Atlantic/Azores.generic.long=Azorerna-tid
-Atlantic/Bermuda.generic.long=Atlantisk tid
-Atlantic/Canary.generic.long=V\u00E4steuropeisk tid
-Atlantic/Cape_Verde.generic.long=Kap Verde-tid
-Atlantic/Faeroe.generic.long=V\u00E4steuropeisk tid
-Atlantic/Faroe.generic.long=V\u00E4steuropeisk tid
-Atlantic/Jan_Mayen.generic.long=Centraleuropeisk tid
-Atlantic/Madeira.generic.long=V\u00E4steuropeisk tid
-Atlantic/Reykjavik.generic.long=Greenwichtid
-Atlantic/South_Georgia.generic.long=Sydgeorgisk tid
-Atlantic/St_Helena.generic.long=Greenwichtid
-Atlantic/Stanley.generic.long=Falklands\u00F6arna-tid
-Australia/ACT.daylight.long=\u00D6stlig sommartid (New South Wales)
-Australia/ACT.generic.long=\u00D6stlig tid (New South Wales)
-Australia/ACT.standard.long=\u00D6stlig standardtid (New South Wales)
-Australia/Adelaide.daylight.long=Central sommartid (South Australia)
-Australia/Adelaide.generic.long=Central tid (Sydaustralien)
-Australia/Adelaide.standard.long=Central standardtid (Sydaustralien)
-Australia/Brisbane.daylight.long=\u00D6stlig sommartid (Queensland)
-Australia/Brisbane.generic.long=\u00D6stlig tid (Queensland)
-Australia/Brisbane.standard.long=\u00D6stlig standardtid (Queensland)
-Australia/Broken_Hill.daylight.long=Central sommartid (South Australia/New South Wales)
-Australia/Broken_Hill.generic.long=Central tid (Sydaustralien/New South Wales)
-Australia/Broken_Hill.standard.long=Central standardtid (Sydaustralien/New South Wales)
-Australia/Canberra.daylight.long=\u00D6stlig sommartid (New South Wales)
-Australia/Canberra.generic.long=\u00D6stlig tid (New South Wales)
-Australia/Canberra.standard.long=\u00D6stlig standardtid (New South Wales)
-Australia/Currie.daylight.long=\u00D6stlig sommartid (New South Wales)
-Australia/Currie.generic.long=\u00D6stlig tid (New South Wales)
-Australia/Currie.standard.long=\u00D6stlig standardtid (New South Wales)
-Australia/Darwin.daylight.long=Central sommartid (Nordterritoriet)
-Australia/Darwin.generic.long=Central tid (Nordterritoriet)
-Australia/Darwin.standard.long=Central standardtid (Nordterritoriet)
-Australia/Eucla.daylight.long=Central v\u00E4stlig sommartid (Australien)
-Australia/Eucla.generic.long=Central v\u00E4stlig tid (Australien)
-Australia/Eucla.standard.long=Central v\u00E4stlig normaltid (Australien)
-Australia/Hobart.daylight.long=\u00D6stlig sommartid (Tasmanien)
-Australia/Hobart.generic.long=\u00D6stlig tid (Tasmania)
-Australia/Hobart.standard.long=\u00D6stlig standardtid (Tasmania)
-Australia/LHI.generic.long=Lord Howe-tid
-Australia/Lindeman.daylight.long=\u00D6stlig sommartid (Queensland)
-Australia/Lindeman.generic.long=\u00D6stlig tid (Queensland)
-Australia/Lindeman.standard.long=\u00D6stlig standardtid (Queensland)
-Australia/Lord_Howe.generic.long=Lord Howe-tid
-Australia/Melbourne.daylight.long=\u00D6stlig sommartid (Victoria)
-Australia/Melbourne.generic.long=\u00D6stlig tid (Victoria)
-Australia/Melbourne.standard.long=\u00D6stlig standardtid (Victoria)
-Australia/NSW.daylight.long=\u00D6stlig sommartid (New South Wales)
-Australia/NSW.generic.long=\u00D6stlig tid (New South Wales)
-Australia/NSW.standard.long=\u00D6stlig standardtid (New South Wales)
-Australia/North.daylight.long=Central sommartid (Nordterritoriet)
-Australia/North.generic.long=Central tid (Nordterritoriet)
-Australia/North.standard.long=Central standardtid (Nordterritoriet)
-Australia/Perth.daylight.long=V\u00E4stlig sommartid (Australien)
-Australia/Perth.generic.long=V\u00E4stlig tid (Australien)
-Australia/Perth.standard.long=Western Standard Time (Australien)
-Australia/Queensland.daylight.long=\u00D6stlig sommartid (Queensland)
-Australia/Queensland.generic.long=\u00D6stlig tid (Queensland)
-Australia/Queensland.standard.long=\u00D6stlig standardtid (Queensland)
-Australia/South.daylight.long=Central sommartid (South Australia)
-Australia/South.generic.long=Central tid (Sydaustralien)
-Australia/South.standard.long=Central standardtid (Sydaustralien)
-Australia/Sydney.daylight.long=\u00D6stlig sommartid (New South Wales)
-Australia/Sydney.generic.long=\u00D6stlig tid (New South Wales)
-Australia/Sydney.standard.long=\u00D6stlig standardtid (New South Wales)
-Australia/Tasmania.daylight.long=\u00D6stlig sommartid (Tasmanien)
-Australia/Tasmania.generic.long=\u00D6stlig tid (Tasmania)
-Australia/Tasmania.standard.long=\u00D6stlig standardtid (Tasmania)
-Australia/Victoria.daylight.long=\u00D6stlig sommartid (Victoria)
-Australia/Victoria.generic.long=\u00D6stlig tid (Victoria)
-Australia/Victoria.standard.long=\u00D6stlig standardtid (Victoria)
-Australia/West.daylight.long=V\u00E4stlig sommartid (Australien)
-Australia/West.generic.long=V\u00E4stlig tid (Australien)
-Australia/West.standard.long=Western Standard Time (Australien)
-Australia/Yancowinna.daylight.long=Central sommartid (South Australia/New South Wales)
-Australia/Yancowinna.generic.long=Central tid (Sydaustralien/New South Wales)
-Australia/Yancowinna.standard.long=Central standardtid (Sydaustralien/New South Wales)
-BET.generic.long=Brasiliansk tid
-BST.generic.long=Bangladeshisk tid
-Brazil/Acre.generic.long=Acre, normaltid
-Brazil/DeNoronha.generic.long=Fernando de Noronha-tid
-Brazil/East.generic.long=Brasiliansk tid
-Brazil/West.generic.long=Amazonas-tid
-CAT.generic.long=Centralafrikansk tid
-CET.generic.long=Centraleuropeisk tid
-CNT.generic.long=Newfoundl\u00E4ndsk tid
-CST.generic.long=Central tid
-CST6CDT.generic.long=Central tid
-CTT.generic.long=Kinesisk tid
-Canada/Atlantic.generic.long=Atlantisk tid
-Canada/Central.generic.long=Central tid
-Canada/East-Saskatchewan.generic.long=Central tid
-Canada/Eastern.generic.long=\u00D6stlig tid
-Canada/Mountain.generic.long=Mountain-tid
-Canada/Newfoundland.generic.long=Newfoundl\u00E4ndsk tid
-Canada/Pacific.generic.long=Stillahavet
-Canada/Saskatchewan.generic.long=Central tid
-Canada/Yukon.generic.long=Stillahavet
-Chile/Continental.generic.long=Chilensk tid
-Chile/EasterIsland.generic.long=P\u00E5sk\u00F6n-tid
-Cuba.generic.long=Kubansk tid
-EAT.generic.long=\u00D6stafrikansk tid
-ECT.generic.long=Centraleuropeisk tid
-EET.generic.long=\u00d6steuropeisk tid
-EST.generic.long=\u00d6stlig tid
-EST5EDT.generic.long=\u00d6stlig tid
-Egypt.generic.long=\u00D6steuropeisk tid
-Eire.generic.long=Irl\u00E4ndsk tid
-Etc/Greenwich.generic.long=Greenwichtid
-Etc/UCT.generic.long=UTC (koordinerad v\u00E4rldstid)
-Etc/UTC.generic.long=UTC (koordinerad v\u00E4rldstid)
-Etc/Universal.generic.long=UTC (koordinerad v\u00E4rldstid)
-Etc/Zulu.generic.long=UTC (koordinerad v\u00E4rldstid)
-Europe/Amsterdam.generic.long=Centraleuropeisk tid
-Europe/Andorra.generic.long=Centraleuropeisk tid
-Europe/Athens.generic.long=\u00D6steuropeisk tid
-Europe/Belfast.generic.long=Brittisk tid
-Europe/Belgrade.generic.long=Centraleuropeisk tid
-Europe/Berlin.generic.long=Centraleuropeisk tid
-Europe/Bratislava.generic.long=Centraleuropeisk tid
-Europe/Brussels.generic.long=Centraleuropeisk tid
-Europe/Bucharest.generic.long=\u00D6steuropeisk tid
-Europe/Budapest.generic.long=Centraleuropeisk tid
-Europe/Busingen.generic.long=Centraleuropeisk tid
-Europe/Chisinau.generic.long=\u00D6steuropeisk tid
-Europe/Copenhagen.generic.long=Centraleuropeisk tid
-Europe/Dublin.generic.long=Irl\u00E4ndsk tid
-Europe/Gibraltar.generic.long=Centraleuropeisk tid
-Europe/Guernsey.generic.long=Brittisk tid
-Europe/Helsinki.generic.long=\u00D6steuropeisk tid
-Europe/Isle_of_Man.generic.long=Brittisk tid
-Europe/Istanbul.generic.long=\u00D6steuropeisk tid
-Europe/Jersey.generic.long=Brittisk tid
-Europe/Kaliningrad.daylight.long=\u00D6steuropeisk sommartid
-Europe/Kaliningrad.generic.long=Kaliningradtid
-Europe/Kaliningrad.standard.long=Kaliningradtid
-Europe/Kiev.generic.long=\u00D6steuropeisk tid
-Europe/Lisbon.generic.long=V\u00E4steuropeisk tid
-Europe/Ljubljana.generic.long=Centraleuropeisk tid
-Europe/London.generic.long=Brittisk tid
-Europe/Luxembourg.generic.long=Centraleuropeisk tid
-Europe/Madrid.generic.long=Centraleuropeisk tid
-Europe/Malta.generic.long=Centraleuropeisk tid
-Europe/Mariehamn.generic.long=\u00D6steuropeisk tid
-Europe/Minsk.daylight.long=\u00D6steuropeisk sommartid
-Europe/Minsk.generic.long=Kaliningradtid
-Europe/Minsk.standard.long=Kaliningradtid
-Europe/Monaco.generic.long=Centraleuropeisk tid
-Europe/Moscow.generic.long=Moskvas tid
-Europe/Nicosia.generic.long=\u00D6steuropeisk tid
-Europe/Oslo.generic.long=Centraleuropeisk tid
-Europe/Paris.generic.long=Centraleuropeisk tid
-Europe/Podgorica.generic.long=Centraleuropeisk tid
-Europe/Prague.generic.long=Centraleuropeisk tid
-Europe/Riga.generic.long=\u00D6steuropeisk tid
-Europe/Rome.generic.long=Centraleuropeisk tid
-Europe/Samara.generic.long=Samara-tid
-Europe/San_Marino.generic.long=Centraleuropeisk tid
-Europe/Sarajevo.generic.long=Centraleuropeisk tid
-Europe/Simferopol.generic.long=\u00D6steuropeisk tid
-Europe/Skopje.generic.long=Centraleuropeisk tid
-Europe/Sofia.generic.long=\u00D6steuropeisk tid
-Europe/Stockholm.generic.long=Centraleuropeisk tid
-Europe/Tallinn.generic.long=\u00D6steuropeisk tid
-Europe/Tirane.generic.long=Centraleuropeisk tid
-Europe/Tiraspol.generic.long=\u00D6steuropeisk tid
-Europe/Uzhgorod.generic.long=\u00D6steuropeisk tid
-Europe/Vaduz.generic.long=Centraleuropeisk tid
-Europe/Vatican.generic.long=Centraleuropeisk tid
-Europe/Vienna.generic.long=Centraleuropeisk tid
-Europe/Vilnius.generic.long=\u00D6steuropeisk tid
-Europe/Volgograd.generic.long=Volgograd, normaltid
-Europe/Warsaw.generic.long=Centraleuropeisk tid
-Europe/Zagreb.generic.long=Centraleuropeisk tid
-Europe/Zaporozhye.generic.long=\u00D6steuropeisk tid
-Europe/Zurich.generic.long=Centraleuropeisk tid
-GB-Eire.generic.long=Brittisk tid
-GB.generic.long=Brittisk tid
-GMT.generic.long=Greenwichtid
-Greenwich.generic.long=Greenwichtid
-HST.generic.long=Hawaiiansk tid
-Hongkong.generic.long=Hongkong-tid
-IET.generic.long=\u00D6stlig tid
-IST.generic.long=Indisk tid
-Iceland.generic.long=Greenwichtid
-Indian/Antananarivo.generic.long=\u00D6stafrikansk tid
-Indian/Chagos.generic.long=Indiska Ocean\u00F6arna-tid
-Indian/Christmas.generic.long=Jul\u00F6n-tid
-Indian/Cocos.generic.long=Kokos\u00F6arna-tid
-Indian/Comoro.generic.long=\u00D6stafrikansk tid
-Indian/Kerguelen.generic.long=Franska s\u00F6dra och antarktiska \u00F6arna-tid
-Indian/Mahe.generic.long=Seychellisk tid
-Indian/Maldives.generic.long=Maldivisk tid
-Indian/Mauritius.generic.long=Mauritiansk tid
-Indian/Mayotte.generic.long=\u00D6stafrikansk tid
-Indian/Reunion.generic.long=Reunion-tid
-Iran.generic.long=Iransk tid
-Israel.generic.long=Israelisk tid
-JST.generic.long=Japansk tid
-Jamaica.generic.long=\u00D6stlig tid
-Japan.generic.long=Japansk tid
-Kwajalein.generic.long=Marshall\u00F6arna-tid
-Libya.generic.long=\u00d6steuropeisk tid
-MET.generic.long=MET
-MIT.generic.long=V\u00E4stsamoansk tid
-MST.generic.long=Mountain-tid
-MST7MDT.generic.long=Mountain-tid
-Mexico/BajaNorte.generic.long=Stillahavet
-Mexico/BajaSur.generic.long=Mountain-tid
-Mexico/General.generic.long=Central tid
-NET.generic.long=Armenisk tid
-NST.generic.long=Nyzeel\u00E4ndsk tid
-NZ-CHAT.generic.long=Chathams tid
-NZ.generic.long=Nyzeel\u00E4ndsk tid
-Navajo.generic.long=Mountain-tid
-PLT.generic.long=Pakistansk tid
-PNT.generic.long=Mountain-tid
-PRC.generic.long=Kinesisk tid
-PRT.generic.long=Atlantisk tid
-PST.generic.long=Stillahavet
-PST8PDT.generic.long=Stillahavet
-Pacific/Apia.generic.long=V\u00E4stsamoansk tid
-Pacific/Auckland.generic.long=Nyzeel\u00E4ndsk tid
-Pacific/Chatham.generic.long=Chathams tid
-Pacific/Chuuk.daylight.long=Chuuk, sommartid
-Pacific/Chuuk.generic.long=Chuuk, normaltid
-Pacific/Chuuk.standard.long=Chuuk, normaltid
-Pacific/Easter.generic.long=P\u00E5sk\u00F6n-tid
-Pacific/Efate.generic.long=Vanuatu-tid
-Pacific/Enderbury.generic.long=Phoenix\u00F6arna-tid
-Pacific/Fakaofo.generic.long=Tokelau-tid
-Pacific/Fiji.generic.long=Fijiansk tid
-Pacific/Funafuti.generic.long=Tuvalu-tid
-Pacific/Galapagos.generic.long=Galapagos-tid
-Pacific/Gambier.generic.long=Gambier\u00F6arna-tid
-Pacific/Guadalcanal.generic.long=Salomon\u00F6arna-tid
-Pacific/Guam.generic.long=Chamorros tid
-Pacific/Honolulu.generic.long=Hawaiiansk tid
-Pacific/Johnston.generic.long=Hawaiiansk tid
-Pacific/Kiritimati.generic.long=Line Islands-tid
-Pacific/Kosrae.generic.long=Kosrae-tid
-Pacific/Kwajalein.generic.long=Marshall\u00F6arna-tid
-Pacific/Majuro.generic.long=Marshall\u00F6arna-tid
-Pacific/Marquesas.generic.long=Marquesas\u00F6arna-tid
-Pacific/Midway.generic.long=Samoansk tid
-Pacific/Nauru.generic.long=Nauruansk tid
-Pacific/Niue.generic.long=Niue-tid
-Pacific/Norfolk.generic.long=Norfolk-tid
-Pacific/Noumea.generic.long=Nya Kaledonien-tid
-Pacific/Pago_Pago.generic.long=Samoansk tid
-Pacific/Palau.generic.long=Palau-tid
-Pacific/Pitcairn.generic.long=Pitcairn-tid
-Pacific/Pohnpei.daylight.long=Pohnpei, sommartid
-Pacific/Pohnpei.generic.long=Ponape-tid
-Pacific/Pohnpei.standard.long=Pohnpei, normaltid
-Pacific/Ponape.daylight.long=Pohnpei, sommartid
-Pacific/Ponape.generic.long=Ponape-tid
-Pacific/Ponape.standard.long=Pohnpei, normaltid
-Pacific/Port_Moresby.generic.long=Papua Nya Guinea-tid
-Pacific/Rarotonga.generic.long=Cook\u00F6arna-tid
-Pacific/Saipan.generic.long=Chamorros tid
-Pacific/Samoa.generic.long=Samoansk tid
-Pacific/Tahiti.generic.long=Tahiti-tid
-Pacific/Tarawa.generic.long=Gilbert\u00F6arna-tid
-Pacific/Tongatapu.generic.long=Tonga-tid
-Pacific/Truk.daylight.long=Chuuk, sommartid
-Pacific/Truk.generic.long=Chuuk, normaltid
-Pacific/Truk.standard.long=Chuuk, normaltid
-Pacific/Wake.generic.long=Wake-tid
-Pacific/Wallis.generic.long=Wallis- och Futuna\u00F6arna-tid
-Pacific/Yap.daylight.long=Chuuk, sommartid
-Pacific/Yap.generic.long=Chuuk, normaltid
-Pacific/Yap.standard.long=Chuuk, normaltid
-Poland.generic.long=Centraleuropeisk tid
-Portugal.generic.long=V\u00E4steuropeisk tid
-ROK.generic.long=Koreansk tid
-SST.generic.long=Salomon\u00F6arna-tid
-Singapore.generic.long=Singapore-tid
-SystemV/AST4.generic.long=Atlantisk tid
-SystemV/AST4ADT.generic.long=Atlantisk tid
-SystemV/CST6.generic.long=Central tid
-SystemV/CST6CDT.generic.long=Central tid
-SystemV/EST5.generic.long=\u00D6stlig tid
-SystemV/EST5EDT.generic.long=\u00D6stlig tid
-SystemV/HST10.generic.long=Hawaiiansk tid
-SystemV/MST7.generic.long=Mountain-tid
-SystemV/MST7MDT.generic.long=Mountain-tid
-SystemV/PST8.generic.long=Stillahavet
-SystemV/PST8PDT.generic.long=Stillahavet
-SystemV/YST9.generic.long=Alaskisk tid
-SystemV/YST9YDT.generic.long=Alaskisk tid
-Turkey.generic.long=\u00D6steuropeisk tid
-UCT.generic.long=UTC (koordinerad v\u00E4rldstid)
-US/Alaska.generic.long=Alaskisk tid
-US/Aleutian.generic.long=Hawaiiansk-aleutisk tid
-US/Arizona.generic.long=Mountain-tid
-US/Central.generic.long=Central tid
-US/East-Indiana.generic.long=\u00D6stlig tid
-US/Eastern.generic.long=\u00D6stlig tid
-US/Hawaii.generic.long=Hawaiiansk tid
-US/Indiana-Starke.generic.long=Central tid
-US/Michigan.generic.long=\u00D6stlig tid
-US/Mountain.generic.long=Mountain-tid
-US/Pacific-New.generic.long=Stillahavet
-US/Pacific.generic.long=Stillahavet
-US/Samoa.generic.long=Samoansk tid
-UTC.generic.long=UTC (koordinerad v\u00E4rldstid)
-Universal.generic.long=UTC (koordinerad v\u00E4rldstid)
-VST.generic.long=Indokinesisk tid
-W-SU.generic.long=Moskvas tid
-WET.generic.long=V\u00e4steuropeisk tid
-Zulu.generic.long=UTC (koordinerad v\u00E4rldstid)
diff --git a/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_sv_short.properties b/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_sv_short.properties
deleted file mode 100644
index 095522a68d1..00000000000
--- a/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_sv_short.properties
+++ /dev/null
@@ -1,1743 +0,0 @@
-ACT.daylight.short=CST
-ACT.generic.short=CT
-ACT.standard.short=CST
-AET.daylight.short=EST
-AET.generic.short=ET
-AET.standard.short=EST
-Africa/Abidjan.daylight.short=GMT
-Africa/Abidjan.generic.short=GMT
-Africa/Abidjan.standard.short=GMT
-Africa/Accra.daylight.short=GHST
-Africa/Accra.generic.short=GMT
-Africa/Accra.standard.short=GMT
-Africa/Addis_Ababa.daylight.short=EAST
-Africa/Addis_Ababa.generic.short=EAT
-Africa/Addis_Ababa.standard.short=EAT
-Africa/Algiers.daylight.short=CEST
-Africa/Algiers.generic.short=CET
-Africa/Algiers.standard.short=CET
-Africa/Asmara.daylight.short=EAST
-Africa/Asmara.generic.short=EAT
-Africa/Asmara.standard.short=EAT
-Africa/Asmera.daylight.short=EAST
-Africa/Asmera.generic.short=EAT
-Africa/Asmera.standard.short=EAT
-Africa/Bamako.daylight.short=GMT
-Africa/Bamako.generic.short=GMT
-Africa/Bamako.standard.short=GMT
-Africa/Bangui.daylight.short=WAST
-Africa/Bangui.generic.short=WAT
-Africa/Bangui.standard.short=WAT
-Africa/Banjul.daylight.short=GMT
-Africa/Banjul.generic.short=GMT
-Africa/Banjul.standard.short=GMT
-Africa/Bissau.daylight.short=GMT
-Africa/Bissau.generic.short=GMT
-Africa/Bissau.standard.short=GMT
-Africa/Blantyre.daylight.short=CAST
-Africa/Blantyre.generic.short=CAT
-Africa/Blantyre.standard.short=CAT
-Africa/Brazzaville.daylight.short=WAST
-Africa/Brazzaville.generic.short=WAT
-Africa/Brazzaville.standard.short=WAT
-Africa/Bujumbura.daylight.short=CAST
-Africa/Bujumbura.generic.short=CAT
-Africa/Bujumbura.standard.short=CAT
-Africa/Cairo.daylight.short=EEST
-Africa/Cairo.generic.short=EET
-Africa/Cairo.standard.short=EET
-Africa/Casablanca.daylight.short=WEST
-Africa/Casablanca.generic.short=WET
-Africa/Casablanca.standard.short=WET
-Africa/Ceuta.daylight.short=CEST
-Africa/Ceuta.generic.short=CET
-Africa/Ceuta.standard.short=CET
-Africa/Conakry.daylight.short=GMT
-Africa/Conakry.generic.short=GMT
-Africa/Conakry.standard.short=GMT
-Africa/Dakar.daylight.short=GMT
-Africa/Dakar.generic.short=GMT
-Africa/Dakar.standard.short=GMT
-Africa/Dar_es_Salaam.daylight.short=EAST
-Africa/Dar_es_Salaam.generic.short=EAT
-Africa/Dar_es_Salaam.standard.short=EAT
-Africa/Djibouti.daylight.short=EAST
-Africa/Djibouti.generic.short=EAT
-Africa/Djibouti.standard.short=EAT
-Africa/Douala.daylight.short=WAST
-Africa/Douala.generic.short=WAT
-Africa/Douala.standard.short=WAT
-Africa/El_Aaiun.daylight.short=WEST
-Africa/El_Aaiun.generic.short=WET
-Africa/El_Aaiun.standard.short=WET
-Africa/Freetown.daylight.short=SLST
-Africa/Freetown.generic.short=SLT
-Africa/Freetown.standard.short=GMT
-Africa/Gaborone.daylight.short=CAST
-Africa/Gaborone.generic.short=CAT
-Africa/Gaborone.standard.short=CAT
-Africa/Harare.daylight.short=CAST
-Africa/Harare.generic.short=CAT
-Africa/Harare.standard.short=CAT
-Africa/Johannesburg.daylight.short=SAST
-Africa/Johannesburg.generic.short=SAT
-Africa/Johannesburg.standard.short=SAST
-Africa/Juba.daylight.short=EAST
-Africa/Juba.generic.short=EAT
-Africa/Juba.standard.short=EAT
-Africa/Kampala.daylight.short=EAST
-Africa/Kampala.generic.short=EAT
-Africa/Kampala.standard.short=EAT
-Africa/Khartoum.daylight.short=EAST
-Africa/Khartoum.generic.short=EAT
-Africa/Khartoum.standard.short=EAT
-Africa/Kigali.daylight.short=CAST
-Africa/Kigali.generic.short=CAT
-Africa/Kigali.standard.short=CAT
-Africa/Kinshasa.daylight.short=WAST
-Africa/Kinshasa.generic.short=WAT
-Africa/Kinshasa.standard.short=WAT
-Africa/Lagos.daylight.short=WAST
-Africa/Lagos.generic.short=WAT
-Africa/Lagos.standard.short=WAT
-Africa/Libreville.daylight.short=WAST
-Africa/Libreville.generic.short=WAT
-Africa/Libreville.standard.short=WAT
-Africa/Lome.daylight.short=GMT
-Africa/Lome.generic.short=GMT
-Africa/Lome.standard.short=GMT
-Africa/Luanda.daylight.short=WAST
-Africa/Luanda.generic.short=WAT
-Africa/Luanda.standard.short=WAT
-Africa/Lubumbashi.daylight.short=CAST
-Africa/Lubumbashi.generic.short=CAT
-Africa/Lubumbashi.standard.short=CAT
-Africa/Lusaka.daylight.short=CAST
-Africa/Lusaka.generic.short=CAT
-Africa/Lusaka.standard.short=CAT
-Africa/Malabo.daylight.short=WAST
-Africa/Malabo.generic.short=WAT
-Africa/Malabo.standard.short=WAT
-Africa/Maputo.daylight.short=CAST
-Africa/Maputo.generic.short=CAT
-Africa/Maputo.standard.short=CAT
-Africa/Maseru.daylight.short=SAST
-Africa/Maseru.generic.short=SAT
-Africa/Maseru.standard.short=SAST
-Africa/Mbabane.daylight.short=SAST
-Africa/Mbabane.generic.short=SAT
-Africa/Mbabane.standard.short=SAST
-Africa/Mogadishu.daylight.short=EAST
-Africa/Mogadishu.generic.short=EAT
-Africa/Mogadishu.standard.short=EAT
-Africa/Monrovia.daylight.short=GMT
-Africa/Monrovia.generic.short=GMT
-Africa/Monrovia.standard.short=GMT
-Africa/Nairobi.daylight.short=EAST
-Africa/Nairobi.generic.short=EAT
-Africa/Nairobi.standard.short=EAT
-Africa/Ndjamena.daylight.short=WAST
-Africa/Ndjamena.generic.short=WAT
-Africa/Ndjamena.standard.short=WAT
-Africa/Niamey.daylight.short=WAST
-Africa/Niamey.generic.short=WAT
-Africa/Niamey.standard.short=WAT
-Africa/Nouakchott.daylight.short=GMT
-Africa/Nouakchott.generic.short=GMT
-Africa/Nouakchott.standard.short=GMT
-Africa/Ouagadougou.daylight.short=GMT
-Africa/Ouagadougou.generic.short=GMT
-Africa/Ouagadougou.standard.short=GMT
-Africa/Porto-Novo.daylight.short=WAST
-Africa/Porto-Novo.generic.short=WAT
-Africa/Porto-Novo.standard.short=WAT
-Africa/Sao_Tome.daylight.short=GMT
-Africa/Sao_Tome.generic.short=GMT
-Africa/Sao_Tome.standard.short=GMT
-Africa/Timbuktu.daylight.short=GMT
-Africa/Timbuktu.generic.short=GMT
-Africa/Timbuktu.standard.short=GMT
-Africa/Tripoli.daylight.short=EEST
-Africa/Tripoli.generic.short=EET
-Africa/Tripoli.standard.short=EET
-Africa/Tunis.daylight.short=CEST
-Africa/Tunis.generic.short=CET
-Africa/Tunis.standard.short=CET
-Africa/Windhoek.daylight.short=WAST
-Africa/Windhoek.generic.short=WAT
-Africa/Windhoek.standard.short=WAT
-AGT.daylight.short=ARST
-AGT.generic.short=ART
-AGT.standard.short=ART
-America/Adak.daylight.short=HADT
-America/Adak.generic.short=HAT
-America/Adak.standard.short=HAST
-America/Anchorage.daylight.short=AKDT
-America/Anchorage.generic.short=AKT
-America/Anchorage.standard.short=AKST
-America/Anguilla.daylight.short=ADT
-America/Anguilla.generic.short=AT
-America/Anguilla.standard.short=AST
-America/Antigua.daylight.short=ADT
-America/Antigua.generic.short=AT
-America/Antigua.standard.short=AST
-America/Araguaina.daylight.short=BRST
-America/Araguaina.generic.short=BRT
-America/Araguaina.standard.short=BRT
-America/Argentina/Buenos_Aires.daylight.short=ARST
-America/Argentina/Buenos_Aires.generic.short=ART
-America/Argentina/Buenos_Aires.standard.short=ART
-America/Argentina/Catamarca.daylight.short=ARST
-America/Argentina/Catamarca.generic.short=ART
-America/Argentina/Catamarca.standard.short=ART
-America/Argentina/ComodRivadavia.daylight.short=ARST
-America/Argentina/ComodRivadavia.generic.short=ART
-America/Argentina/ComodRivadavia.standard.short=ART
-America/Argentina/Cordoba.daylight.short=ARST
-America/Argentina/Cordoba.generic.short=ART
-America/Argentina/Cordoba.standard.short=ART
-America/Argentina/Jujuy.daylight.short=ARST
-America/Argentina/Jujuy.generic.short=ART
-America/Argentina/Jujuy.standard.short=ART
-America/Argentina/La_Rioja.daylight.short=ARST
-America/Argentina/La_Rioja.generic.short=ART
-America/Argentina/La_Rioja.standard.short=ART
-America/Argentina/Mendoza.daylight.short=ARST
-America/Argentina/Mendoza.generic.short=ART
-America/Argentina/Mendoza.standard.short=ART
-America/Argentina/Rio_Gallegos.daylight.short=ARST
-America/Argentina/Rio_Gallegos.generic.short=ART
-America/Argentina/Rio_Gallegos.standard.short=ART
-America/Argentina/Salta.daylight.short=ARST
-America/Argentina/Salta.generic.short=ART
-America/Argentina/Salta.standard.short=ART
-America/Argentina/San_Juan.daylight.short=ARST
-America/Argentina/San_Juan.generic.short=ART
-America/Argentina/San_Juan.standard.short=ART
-America/Argentina/San_Luis.daylight.short=ARST
-America/Argentina/San_Luis.generic.short=ART
-America/Argentina/San_Luis.standard.short=ART
-America/Argentina/Tucuman.daylight.short=ARST
-America/Argentina/Tucuman.generic.short=ART
-America/Argentina/Tucuman.standard.short=ART
-America/Argentina/Ushuaia.daylight.short=ARST
-America/Argentina/Ushuaia.generic.short=ART
-America/Argentina/Ushuaia.standard.short=ART
-America/Aruba.daylight.short=ADT
-America/Aruba.generic.short=AT
-America/Aruba.standard.short=AST
-America/Asuncion.daylight.short=PYST
-America/Asuncion.generic.short=PYT
-America/Asuncion.standard.short=PYT
-America/Atikokan.daylight.short=EDT
-America/Atikokan.generic.short=ET
-America/Atikokan.standard.short=EST
-America/Atka.daylight.short=HADT
-America/Atka.generic.short=HAT
-America/Atka.standard.short=HAST
-America/Bahia_Banderas.daylight.short=CDT
-America/Bahia_Banderas.generic.short=CT
-America/Bahia_Banderas.standard.short=CST
-America/Bahia.daylight.short=BRST
-America/Bahia.generic.short=BRT
-America/Bahia.standard.short=BRT
-America/Barbados.daylight.short=ADT
-America/Barbados.generic.short=AT
-America/Barbados.standard.short=AST
-America/Belem.daylight.short=BRST
-America/Belem.generic.short=BRT
-America/Belem.standard.short=BRT
-America/Belize.daylight.short=CDT
-America/Belize.generic.short=CT
-America/Belize.standard.short=CST
-America/Blanc-Sablon.daylight.short=ADT
-America/Blanc-Sablon.generic.short=AT
-America/Blanc-Sablon.standard.short=AST
-America/Boa_Vista.daylight.short=AMST
-America/Boa_Vista.generic.short=AMT
-America/Boa_Vista.standard.short=AMT
-America/Bogota.daylight.short=COST
-America/Bogota.generic.short=COT
-America/Bogota.standard.short=COT
-America/Boise.daylight.short=MDT
-America/Boise.generic.short=MT
-America/Boise.standard.short=MST
-America/Buenos_Aires.daylight.short=ARST
-America/Buenos_Aires.generic.short=ART
-America/Buenos_Aires.standard.short=ART
-America/Cambridge_Bay.daylight.short=MDT
-America/Cambridge_Bay.generic.short=MT
-America/Cambridge_Bay.standard.short=MST
-America/Campo_Grande.daylight.short=AMST
-America/Campo_Grande.generic.short=AMT
-America/Campo_Grande.standard.short=AMT
-America/Cancun.daylight.short=CDT
-America/Cancun.generic.short=CT
-America/Cancun.standard.short=CST
-America/Caracas.daylight.short=VEST
-America/Caracas.generic.short=VET
-America/Caracas.standard.short=VET
-America/Catamarca.daylight.short=ARST
-America/Catamarca.generic.short=ART
-America/Catamarca.standard.short=ART
-America/Cayenne.daylight.short=GFST
-America/Cayenne.generic.short=GFT
-America/Cayenne.standard.short=GFT
-America/Cayman.daylight.short=EDT
-America/Cayman.generic.short=ET
-America/Cayman.standard.short=EST
-America/Chicago.daylight.short=CDT
-America/Chicago.generic.short=CT
-America/Chicago.standard.short=CST
-America/Chihuahua.daylight.short=MDT
-America/Chihuahua.generic.short=MT
-America/Chihuahua.standard.short=MST
-America/Coral_Harbour.daylight.short=EDT
-America/Coral_Harbour.generic.short=ET
-America/Coral_Harbour.standard.short=EST
-America/Cordoba.daylight.short=ARST
-America/Cordoba.generic.short=ART
-America/Cordoba.standard.short=ART
-America/Costa_Rica.daylight.short=CDT
-America/Costa_Rica.generic.short=CT
-America/Costa_Rica.standard.short=CST
-America/Creston.daylight.short=MDT
-America/Creston.generic.short=MT
-America/Creston.standard.short=MST
-America/Cuiaba.daylight.short=AMST
-America/Cuiaba.generic.short=AMT
-America/Cuiaba.standard.short=AMT
-America/Curacao.daylight.short=ADT
-America/Curacao.generic.short=AT
-America/Curacao.standard.short=AST
-America/Danmarkshavn.daylight.short=GMT
-America/Danmarkshavn.generic.short=GMT
-America/Danmarkshavn.standard.short=GMT
-America/Dawson_Creek.daylight.short=MDT
-America/Dawson_Creek.generic.short=MT
-America/Dawson_Creek.standard.short=MST
-America/Dawson.daylight.short=PDT
-America/Dawson.generic.short=PT
-America/Dawson.standard.short=PST
-America/Denver.daylight.short=MDT
-America/Denver.generic.short=MT
-America/Denver.standard.short=MST
-America/Detroit.daylight.short=EDT
-America/Detroit.generic.short=ET
-America/Detroit.standard.short=EST
-America/Dominica.daylight.short=ADT
-America/Dominica.generic.short=AT
-America/Dominica.standard.short=AST
-America/Edmonton.daylight.short=MDT
-America/Edmonton.generic.short=MT
-America/Edmonton.standard.short=MST
-America/Eirunepe.daylight.short=ACST
-America/Eirunepe.generic.short=ACT
-America/Eirunepe.standard.short=ACT
-America/El_Salvador.daylight.short=CDT
-America/El_Salvador.generic.short=CT
-America/El_Salvador.standard.short=CST
-America/Ensenada.daylight.short=PDT
-America/Ensenada.generic.short=PT
-America/Ensenada.standard.short=PST
-America/Fortaleza.daylight.short=BRST
-America/Fortaleza.generic.short=BRT
-America/Fortaleza.standard.short=BRT
-America/Fort_Wayne.daylight.short=EDT
-America/Fort_Wayne.generic.short=ET
-America/Fort_Wayne.standard.short=EST
-America/Glace_Bay.daylight.short=ADT
-America/Glace_Bay.generic.short=AT
-America/Glace_Bay.standard.short=AST
-America/Godthab.daylight.short=WGST
-America/Godthab.generic.short=WGT
-America/Godthab.standard.short=WGT
-America/Goose_Bay.daylight.short=ADT
-America/Goose_Bay.generic.short=AT
-America/Goose_Bay.standard.short=AST
-America/Grand_Turk.daylight.short=EDT
-America/Grand_Turk.generic.short=ET
-America/Grand_Turk.standard.short=EST
-America/Grenada.daylight.short=ADT
-America/Grenada.generic.short=AT
-America/Grenada.standard.short=AST
-America/Guadeloupe.daylight.short=ADT
-America/Guadeloupe.generic.short=AT
-America/Guadeloupe.standard.short=AST
-America/Guatemala.daylight.short=CDT
-America/Guatemala.generic.short=CT
-America/Guatemala.standard.short=CST
-America/Guayaquil.daylight.short=ECST
-America/Guayaquil.generic.short=ECT
-America/Guayaquil.standard.short=ECT
-America/Guyana.daylight.short=GYST
-America/Guyana.generic.short=GYT
-America/Guyana.standard.short=GYT
-America/Halifax.daylight.short=ADT
-America/Halifax.generic.short=AT
-America/Halifax.standard.short=AST
-America/Havana.daylight.short=CDT
-America/Havana.generic.short=CT
-America/Havana.standard.short=CST
-America/Hermosillo.daylight.short=MDT
-America/Hermosillo.generic.short=MT
-America/Hermosillo.standard.short=MST
-America/Indiana/Indianapolis.daylight.short=EDT
-America/Indiana/Indianapolis.generic.short=ET
-America/Indiana/Indianapolis.standard.short=EST
-America/Indiana/Knox.daylight.short=CDT
-America/Indiana/Knox.generic.short=CT
-America/Indiana/Knox.standard.short=CST
-America/Indiana/Marengo.daylight.short=EDT
-America/Indiana/Marengo.generic.short=ET
-America/Indiana/Marengo.standard.short=EST
-America/Indiana/Petersburg.daylight.short=EDT
-America/Indiana/Petersburg.generic.short=ET
-America/Indiana/Petersburg.standard.short=EST
-America/Indianapolis.daylight.short=EDT
-America/Indianapolis.generic.short=ET
-America/Indianapolis.standard.short=EST
-America/Indiana/Tell_City.daylight.short=CDT
-America/Indiana/Tell_City.generic.short=CT
-America/Indiana/Tell_City.standard.short=CST
-America/Indiana/Vevay.daylight.short=EDT
-America/Indiana/Vevay.generic.short=ET
-America/Indiana/Vevay.standard.short=EST
-America/Indiana/Vincennes.daylight.short=EDT
-America/Indiana/Vincennes.generic.short=ET
-America/Indiana/Vincennes.standard.short=EST
-America/Indiana/Winamac.daylight.short=EDT
-America/Indiana/Winamac.generic.short=ET
-America/Indiana/Winamac.standard.short=EST
-America/Inuvik.daylight.short=MDT
-America/Inuvik.generic.short=MT
-America/Inuvik.standard.short=MST
-America/Iqaluit.daylight.short=EDT
-America/Iqaluit.generic.short=ET
-America/Iqaluit.standard.short=EST
-America/Jamaica.daylight.short=EDT
-America/Jamaica.generic.short=ET
-America/Jamaica.standard.short=EST
-America/Jujuy.daylight.short=ARST
-America/Jujuy.generic.short=ART
-America/Jujuy.standard.short=ART
-America/Juneau.daylight.short=AKDT
-America/Juneau.generic.short=AKT
-America/Juneau.standard.short=AKST
-America/Kentucky/Louisville.daylight.short=EDT
-America/Kentucky/Louisville.generic.short=ET
-America/Kentucky/Louisville.standard.short=EST
-America/Kentucky/Monticello.daylight.short=EDT
-America/Kentucky/Monticello.generic.short=ET
-America/Kentucky/Monticello.standard.short=EST
-America/Knox_IN.daylight.short=CDT
-America/Knox_IN.generic.short=CT
-America/Knox_IN.standard.short=CST
-America/Kralendijk.daylight.short=ADT
-America/Kralendijk.generic.short=AT
-America/Kralendijk.standard.short=AST
-America/La_Paz.daylight.short=BOST
-America/La_Paz.generic.short=BOT
-America/La_Paz.standard.short=BOT
-America/Lima.daylight.short=PEST
-America/Lima.generic.short=PET
-America/Lima.standard.short=PET
-America/Los_Angeles.daylight.short=PDT
-America/Los_Angeles.generic.short=PT
-America/Los_Angeles.standard.short=PST
-America/Louisville.daylight.short=EDT
-America/Louisville.generic.short=ET
-America/Louisville.standard.short=EST
-America/Lower_Princes.daylight.short=ADT
-America/Lower_Princes.generic.short=AT
-America/Lower_Princes.standard.short=AST
-America/Maceio.daylight.short=BRST
-America/Maceio.generic.short=BRT
-America/Maceio.standard.short=BRT
-America/Managua.daylight.short=CDT
-America/Managua.generic.short=CT
-America/Managua.standard.short=CST
-America/Manaus.daylight.short=AMST
-America/Manaus.generic.short=AMT
-America/Manaus.standard.short=AMT
-America/Marigot.daylight.short=ADT
-America/Marigot.generic.short=AT
-America/Marigot.standard.short=AST
-America/Martinique.daylight.short=ADT
-America/Martinique.generic.short=AT
-America/Martinique.standard.short=AST
-America/Matamoros.daylight.short=CDT
-America/Matamoros.generic.short=CT
-America/Matamoros.standard.short=CST
-America/Mazatlan.daylight.short=MDT
-America/Mazatlan.generic.short=MT
-America/Mazatlan.standard.short=MST
-America/Mendoza.daylight.short=ARST
-America/Mendoza.generic.short=ART
-America/Mendoza.standard.short=ART
-America/Menominee.daylight.short=CDT
-America/Menominee.generic.short=CT
-America/Menominee.standard.short=CST
-America/Merida.daylight.short=CDT
-America/Merida.generic.short=CT
-America/Merida.standard.short=CST
-America/Metlakatla.daylight.short=MeDT
-America/Metlakatla.generic.short=MeT
-America/Metlakatla.standard.short=MeST
-America/Mexico_City.daylight.short=CDT
-America/Mexico_City.generic.short=CT
-America/Mexico_City.standard.short=CST
-America/Miquelon.daylight.short=PMDT
-America/Miquelon.generic.short=PMT
-America/Miquelon.standard.short=PMST
-America/Moncton.daylight.short=ADT
-America/Moncton.generic.short=AT
-America/Moncton.standard.short=AST
-America/Monterrey.daylight.short=CDT
-America/Monterrey.generic.short=CT
-America/Monterrey.standard.short=CST
-America/Montevideo.daylight.short=UYST
-America/Montevideo.generic.short=UYT
-America/Montevideo.standard.short=UYT
-America/Montreal.daylight.short=EDT
-America/Montreal.generic.short=ET
-America/Montreal.standard.short=EST
-America/Montserrat.daylight.short=ADT
-America/Montserrat.generic.short=AT
-America/Montserrat.standard.short=AST
-America/Nassau.daylight.short=EDT
-America/Nassau.generic.short=ET
-America/Nassau.standard.short=EST
-America/New_York.daylight.short=EDT
-America/New_York.generic.short=ET
-America/New_York.standard.short=EST
-America/Nipigon.daylight.short=EDT
-America/Nipigon.generic.short=ET
-America/Nipigon.standard.short=EST
-America/Nome.daylight.short=AKDT
-America/Nome.generic.short=AKT
-America/Nome.standard.short=AKST
-America/Noronha.daylight.short=FNST
-America/Noronha.generic.short=FNT
-America/Noronha.standard.short=FNT
-America/North_Dakota/Beulah.daylight.short=CDT
-America/North_Dakota/Beulah.generic.short=CT
-America/North_Dakota/Beulah.standard.short=CST
-America/North_Dakota/Center.daylight.short=CDT
-America/North_Dakota/Center.generic.short=CT
-America/North_Dakota/Center.standard.short=CST
-America/North_Dakota/New_Salem.daylight.short=CDT
-America/North_Dakota/New_Salem.generic.short=CT
-America/North_Dakota/New_Salem.standard.short=CST
-America/Ojinaga.daylight.short=MDT
-America/Ojinaga.generic.short=MT
-America/Ojinaga.standard.short=MST
-America/Panama.daylight.short=EDT
-America/Panama.generic.short=ET
-America/Panama.standard.short=EST
-America/Pangnirtung.daylight.short=EDT
-America/Pangnirtung.generic.short=ET
-America/Pangnirtung.standard.short=EST
-America/Paramaribo.daylight.short=SRST
-America/Paramaribo.generic.short=SRT
-America/Paramaribo.standard.short=SRT
-America/Phoenix.daylight.short=MDT
-America/Phoenix.generic.short=MT
-America/Phoenix.standard.short=MST
-America/Port-au-Prince.daylight.short=EDT
-America/Port-au-Prince.generic.short=ET
-America/Port-au-Prince.standard.short=EST
-America/Porto_Acre.daylight.short=ACST
-America/Porto_Acre.generic.short=ACT
-America/Porto_Acre.standard.short=ACT
-America/Port_of_Spain.daylight.short=ADT
-America/Port_of_Spain.generic.short=AT
-America/Port_of_Spain.standard.short=AST
-America/Porto_Velho.daylight.short=AMST
-America/Porto_Velho.generic.short=AMT
-America/Porto_Velho.standard.short=AMT
-America/Puerto_Rico.daylight.short=ADT
-America/Puerto_Rico.generic.short=AT
-America/Puerto_Rico.standard.short=AST
-America/Rainy_River.daylight.short=CDT
-America/Rainy_River.generic.short=CT
-America/Rainy_River.standard.short=CST
-America/Rankin_Inlet.daylight.short=CDT
-America/Rankin_Inlet.generic.short=CT
-America/Rankin_Inlet.standard.short=CST
-America/Recife.daylight.short=BRST
-America/Recife.generic.short=BRT
-America/Recife.standard.short=BRT
-America/Regina.daylight.short=CDT
-America/Regina.generic.short=CT
-America/Regina.standard.short=CST
-America/Resolute.daylight.short=CDT
-America/Resolute.generic.short=CT
-America/Resolute.standard.short=CST
-America/Rio_Branco.daylight.short=ACST
-America/Rio_Branco.generic.short=ACT
-America/Rio_Branco.standard.short=ACT
-America/Rosario.daylight.short=ARST
-America/Rosario.generic.short=ART
-America/Rosario.standard.short=ART
-America/Santa_Isabel.daylight.short=PDT
-America/Santa_Isabel.generic.short=PT
-America/Santa_Isabel.standard.short=PST
-America/Santarem.daylight.short=BRST
-America/Santarem.generic.short=BRT
-America/Santarem.standard.short=BRT
-America/Santiago.daylight.short=CLST
-America/Santiago.generic.short=CLT
-America/Santiago.standard.short=CLT
-America/Santo_Domingo.daylight.short=ADT
-America/Santo_Domingo.generic.short=AT
-America/Santo_Domingo.standard.short=AST
-America/Sao_Paulo.daylight.short=BRST
-America/Sao_Paulo.generic.short=BRT
-America/Sao_Paulo.standard.short=BRT
-America/Scoresbysund.daylight.short=EGST
-America/Scoresbysund.generic.short=EGT
-America/Scoresbysund.standard.short=EGT
-America/Shiprock.daylight.short=MDT
-America/Shiprock.generic.short=MT
-America/Shiprock.standard.short=MST
-America/Sitka.daylight.short=AKDT
-America/Sitka.generic.short=AKT
-America/Sitka.standard.short=AKST
-America/St_Barthelemy.daylight.short=ADT
-America/St_Barthelemy.generic.short=AT
-America/St_Barthelemy.standard.short=AST
-America/St_Johns.daylight.short=NDT
-America/St_Johns.generic.short=NT
-America/St_Johns.standard.short=NST
-America/St_Kitts.daylight.short=ADT
-America/St_Kitts.generic.short=AT
-America/St_Kitts.standard.short=AST
-America/St_Lucia.daylight.short=ADT
-America/St_Lucia.generic.short=AT
-America/St_Lucia.standard.short=AST
-America/St_Thomas.daylight.short=ADT
-America/St_Thomas.generic.short=AT
-America/St_Thomas.standard.short=AST
-America/St_Vincent.daylight.short=ADT
-America/St_Vincent.generic.short=AT
-America/St_Vincent.standard.short=AST
-America/Swift_Current.daylight.short=CDT
-America/Swift_Current.generic.short=CT
-America/Swift_Current.standard.short=CST
-America/Tegucigalpa.daylight.short=CDT
-America/Tegucigalpa.generic.short=CT
-America/Tegucigalpa.standard.short=CST
-America/Thule.daylight.short=ADT
-America/Thule.generic.short=AT
-America/Thule.standard.short=AST
-America/Thunder_Bay.daylight.short=EDT
-America/Thunder_Bay.generic.short=ET
-America/Thunder_Bay.standard.short=EST
-America/Tijuana.daylight.short=PDT
-America/Tijuana.generic.short=PT
-America/Tijuana.standard.short=PST
-America/Toronto.daylight.short=EDT
-America/Toronto.generic.short=ET
-America/Toronto.standard.short=EST
-America/Tortola.daylight.short=ADT
-America/Tortola.generic.short=AT
-America/Tortola.standard.short=AST
-America/Vancouver.daylight.short=PDT
-America/Vancouver.generic.short=PT
-America/Vancouver.standard.short=PST
-America/Virgin.daylight.short=ADT
-America/Virgin.generic.short=AT
-America/Virgin.standard.short=AST
-America/Whitehorse.daylight.short=PDT
-America/Whitehorse.generic.short=PT
-America/Whitehorse.standard.short=PST
-America/Winnipeg.daylight.short=CDT
-America/Winnipeg.generic.short=CT
-America/Winnipeg.standard.short=CST
-America/Yakutat.daylight.short=AKDT
-America/Yakutat.generic.short=AKT
-America/Yakutat.standard.short=AKST
-America/Yellowknife.daylight.short=MDT
-America/Yellowknife.generic.short=MT
-America/Yellowknife.standard.short=MST
-Antarctica/Casey.daylight.short=WST
-Antarctica/Casey.generic.short=WT
-Antarctica/Casey.standard.short=WST
-Antarctica/Davis.daylight.short=DAVST
-Antarctica/Davis.generic.short=DAVT
-Antarctica/Davis.standard.short=DAVT
-Antarctica/DumontDUrville.daylight.short=DDUST
-Antarctica/DumontDUrville.generic.short=DDUT
-Antarctica/DumontDUrville.standard.short=DDUT
-Antarctica/Macquarie.daylight.short=MIST
-Antarctica/Macquarie.generic.short=MIST
-Antarctica/Macquarie.standard.short=MIST
-Antarctica/Mawson.daylight.short=MAWST
-Antarctica/Mawson.generic.short=MAWT
-Antarctica/Mawson.standard.short=MAWT
-Antarctica/McMurdo.daylight.short=NZDT
-Antarctica/McMurdo.generic.short=NZT
-Antarctica/McMurdo.standard.short=NZST
-Antarctica/Palmer.daylight.short=CLST
-Antarctica/Palmer.generic.short=CLT
-Antarctica/Palmer.standard.short=CLT
-Antarctica/Rothera.daylight.short=ROTST
-Antarctica/Rothera.generic.short=ROTT
-Antarctica/Rothera.standard.short=ROTT
-Antarctica/South_Pole.daylight.short=NZDT
-Antarctica/South_Pole.generic.short=NZT
-Antarctica/South_Pole.standard.short=NZST
-Antarctica/Syowa.daylight.short=SYOST
-Antarctica/Syowa.generic.short=SYOT
-Antarctica/Syowa.standard.short=SYOT
-Antarctica/Vostok.daylight.short=VOSST
-Antarctica/Vostok.generic.short=VOST
-Antarctica/Vostok.standard.short=VOST
-Arctic/Longyearbyen.daylight.short=CEST
-Arctic/Longyearbyen.generic.short=CET
-Arctic/Longyearbyen.standard.short=CET
-ART.daylight.short=EEST
-ART.generic.short=EET
-ART.standard.short=EET
-Asia/Aden.daylight.short=ADT
-Asia/Aden.generic.short=AT
-Asia/Aden.standard.short=AST
-Asia/Almaty.daylight.short=ALMST
-Asia/Almaty.generic.short=ALMT
-Asia/Almaty.standard.short=ALMT
-Asia/Amman.daylight.short=ADT
-Asia/Amman.generic.short=AT
-Asia/Amman.standard.short=AST
-Asia/Anadyr.daylight.short=ANAST
-Asia/Anadyr.generic.short=ANAT
-Asia/Anadyr.standard.short=ANAT
-Asia/Aqtau.daylight.short=AQTST
-Asia/Aqtau.generic.short=AQTT
-Asia/Aqtau.standard.short=AQTT
-Asia/Aqtobe.daylight.short=AQTST
-Asia/Aqtobe.generic.short=AQTT
-Asia/Aqtobe.standard.short=AQTT
-Asia/Ashgabat.daylight.short=TMST
-Asia/Ashgabat.generic.short=TMT
-Asia/Ashgabat.standard.short=TMT
-Asia/Ashkhabad.daylight.short=TMST
-Asia/Ashkhabad.generic.short=TMT
-Asia/Ashkhabad.standard.short=TMT
-Asia/Baghdad.daylight.short=ADT
-Asia/Baghdad.generic.short=AT
-Asia/Baghdad.standard.short=AST
-Asia/Bahrain.daylight.short=ADT
-Asia/Bahrain.generic.short=AT
-Asia/Bahrain.standard.short=AST
-Asia/Baku.daylight.short=AZST
-Asia/Baku.generic.short=AZT
-Asia/Baku.standard.short=AZT
-Asia/Bangkok.daylight.short=ICST
-Asia/Bangkok.generic.short=ICT
-Asia/Bangkok.standard.short=ICT
-Asia/Beirut.daylight.short=EEST
-Asia/Beirut.generic.short=EET
-Asia/Beirut.standard.short=EET
-Asia/Bishkek.daylight.short=KGST
-Asia/Bishkek.generic.short=KGT
-Asia/Bishkek.standard.short=KGT
-Asia/Brunei.daylight.short=BNST
-Asia/Brunei.generic.short=BNT
-Asia/Brunei.standard.short=BNT
-Asia/Calcutta.daylight.short=IDT
-Asia/Calcutta.generic.short=IT
-Asia/Calcutta.standard.short=IST
-Asia/Choibalsan.daylight.short=CHOST
-Asia/Choibalsan.generic.short=CHOT
-Asia/Choibalsan.standard.short=CHOT
-Asia/Chongqing.daylight.short=CDT
-Asia/Chongqing.generic.short=CT
-Asia/Chongqing.standard.short=CST
-Asia/Chungking.daylight.short=CDT
-Asia/Chungking.generic.short=CT
-Asia/Chungking.standard.short=CST
-Asia/Colombo.daylight.short=IDT
-Asia/Colombo.generic.short=IT
-Asia/Colombo.standard.short=IST
-Asia/Dacca.daylight.short=BDST
-Asia/Dacca.generic.short=BDT
-Asia/Dacca.standard.short=BDT
-Asia/Damascus.daylight.short=EEST
-Asia/Damascus.generic.short=EET
-Asia/Damascus.standard.short=EET
-Asia/Dhaka.daylight.short=BDST
-Asia/Dhaka.generic.short=BDT
-Asia/Dhaka.standard.short=BDT
-Asia/Dili.daylight.short=TLST
-Asia/Dili.generic.short=TLT
-Asia/Dili.standard.short=TLT
-Asia/Dubai.daylight.short=GDT
-Asia/Dubai.generic.short=GT
-Asia/Dubai.standard.short=GST
-Asia/Dushanbe.daylight.short=TJST
-Asia/Dushanbe.generic.short=TJT
-Asia/Dushanbe.standard.short=TJT
-Asia/Gaza.daylight.short=EEST
-Asia/Gaza.generic.short=EET
-Asia/Gaza.standard.short=EET
-Asia/Harbin.daylight.short=CDT
-Asia/Harbin.generic.short=CT
-Asia/Harbin.standard.short=CST
-Asia/Hebron.daylight.short=EEST
-Asia/Hebron.generic.short=EET
-Asia/Hebron.standard.short=EET
-Asia/Ho_Chi_Minh.daylight.short=ICST
-Asia/Ho_Chi_Minh.generic.short=ICT
-Asia/Ho_Chi_Minh.standard.short=ICT
-Asia/Hong_Kong.daylight.short=HKST
-Asia/Hong_Kong.generic.short=HKT
-Asia/Hong_Kong.standard.short=HKT
-Asia/Hovd.daylight.short=HOVST
-Asia/Hovd.generic.short=HOVT
-Asia/Hovd.standard.short=HOVT
-Asia/Irkutsk.daylight.short=IRKST
-Asia/Irkutsk.generic.short=IRKT
-Asia/Irkutsk.standard.short=IRKT
-Asia/Istanbul.daylight.short=EEST
-Asia/Istanbul.generic.short=EET
-Asia/Istanbul.standard.short=EET
-Asia/Jakarta.daylight.short=WIST
-Asia/Jakarta.generic.short=WIB
-Asia/Jakarta.standard.short=WIB
-Asia/Jayapura.daylight.short=EIST
-Asia/Jayapura.generic.short=WIT
-Asia/Jayapura.standard.short=WIT
-Asia/Jerusalem.daylight.short=IDT
-Asia/Jerusalem.generic.short=IT
-Asia/Jerusalem.standard.short=IST
-Asia/Kabul.daylight.short=AFST
-Asia/Kabul.generic.short=AFT
-Asia/Kabul.standard.short=AFT
-Asia/Kamchatka.daylight.short=PETST
-Asia/Kamchatka.generic.short=PETT
-Asia/Kamchatka.standard.short=PETT
-Asia/Karachi.daylight.short=PKST
-Asia/Karachi.generic.short=PKT
-Asia/Karachi.standard.short=PKT
-Asia/Kashgar.daylight.short=CDT
-Asia/Kashgar.generic.short=CT
-Asia/Kashgar.standard.short=CST
-Asia/Kathmandu.daylight.short=NPST
-Asia/Kathmandu.generic.short=NPT
-Asia/Kathmandu.standard.short=NPT
-Asia/Katmandu.daylight.short=NPST
-Asia/Katmandu.generic.short=NPT
-Asia/Katmandu.standard.short=NPT
-Asia/Khandyga.daylight.short=YAKST
-Asia/Khandyga.generic.short=YAKT
-Asia/Khandyga.standard.short=YAKT
-Asia/Kolkata.daylight.short=IDT
-Asia/Kolkata.generic.short=IT
-Asia/Kolkata.standard.short=IST
-Asia/Krasnoyarsk.daylight.short=KRAST
-Asia/Krasnoyarsk.generic.short=KRAT
-Asia/Krasnoyarsk.standard.short=KRAT
-Asia/Kuala_Lumpur.daylight.short=MYST
-Asia/Kuala_Lumpur.generic.short=MYT
-Asia/Kuala_Lumpur.standard.short=MYT
-Asia/Kuching.daylight.short=MYST
-Asia/Kuching.generic.short=MYT
-Asia/Kuching.standard.short=MYT
-Asia/Kuwait.daylight.short=ADT
-Asia/Kuwait.generic.short=AT
-Asia/Kuwait.standard.short=AST
-Asia/Macao.daylight.short=CDT
-Asia/Macao.generic.short=CT
-Asia/Macao.standard.short=CST
-Asia/Macau.daylight.short=CDT
-Asia/Macau.generic.short=CT
-Asia/Macau.standard.short=CST
-Asia/Magadan.daylight.short=MAGST
-Asia/Magadan.generic.short=MAGT
-Asia/Magadan.standard.short=MAGT
-Asia/Makassar.daylight.short=CIST
-Asia/Makassar.generic.short=WITA
-Asia/Makassar.standard.short=WITA
-Asia/Manila.daylight.short=PHST
-Asia/Manila.generic.short=PHT
-Asia/Manila.standard.short=PHT
-Asia/Muscat.daylight.short=GDT
-Asia/Muscat.generic.short=GT
-Asia/Muscat.standard.short=GST
-Asia/Nicosia.daylight.short=EEST
-Asia/Nicosia.generic.short=EET
-Asia/Nicosia.standard.short=EET
-Asia/Novokuznetsk.daylight.short=NOVST
-Asia/Novokuznetsk.generic.short=NOVT
-Asia/Novokuznetsk.standard.short=NOVT
-Asia/Novosibirsk.daylight.short=NOVST
-Asia/Novosibirsk.generic.short=NOVT
-Asia/Novosibirsk.standard.short=NOVT
-Asia/Omsk.daylight.short=OMSST
-Asia/Omsk.generic.short=OMST
-Asia/Omsk.standard.short=OMST
-Asia/Oral.daylight.short=ORAST
-Asia/Oral.generic.short=ORAT
-Asia/Oral.standard.short=ORAT
-Asia/Phnom_Penh.daylight.short=ICST
-Asia/Phnom_Penh.generic.short=ICT
-Asia/Phnom_Penh.standard.short=ICT
-Asia/Pontianak.daylight.short=WIST
-Asia/Pontianak.generic.short=WIB
-Asia/Pontianak.standard.short=WIB
-Asia/Pyongyang.daylight.short=KDT
-Asia/Pyongyang.generic.short=KT
-Asia/Pyongyang.standard.short=KST
-Asia/Qatar.daylight.short=ADT
-Asia/Qatar.generic.short=AT
-Asia/Qatar.standard.short=AST
-Asia/Qyzylorda.daylight.short=QYZST
-Asia/Qyzylorda.generic.short=QYZT
-Asia/Qyzylorda.standard.short=QYZT
-Asia/Rangoon.daylight.short=MMST
-Asia/Rangoon.generic.short=MMT
-Asia/Rangoon.standard.short=MMT
-Asia/Saigon.daylight.short=ICST
-Asia/Saigon.generic.short=ICT
-Asia/Saigon.standard.short=ICT
-Asia/Sakhalin.daylight.short=SAKST
-Asia/Sakhalin.generic.short=SAKT
-Asia/Sakhalin.standard.short=SAKT
-Asia/Samarkand.daylight.short=UZST
-Asia/Samarkand.generic.short=UZT
-Asia/Samarkand.standard.short=UZT
-Asia/Seoul.daylight.short=KDT
-Asia/Seoul.generic.short=KT
-Asia/Seoul.standard.short=KST
-Asia/Shanghai.daylight.short=CDT
-Asia/Shanghai.generic.short=CT
-Asia/Shanghai.standard.short=CST
-Asia/Singapore.daylight.short=SGST
-Asia/Singapore.generic.short=SGT
-Asia/Singapore.standard.short=SGT
-Asia/Taipei.daylight.short=CDT
-Asia/Taipei.generic.short=CT
-Asia/Taipei.standard.short=CST
-Asia/Tashkent.daylight.short=UZST
-Asia/Tashkent.generic.short=UZT
-Asia/Tashkent.standard.short=UZT
-Asia/Tbilisi.daylight.short=GEST
-Asia/Tbilisi.generic.short=GET
-Asia/Tbilisi.standard.short=GET
-Asia/Tehran.daylight.short=IRDT
-Asia/Tehran.generic.short=IRT
-Asia/Tehran.standard.short=IRST
-Asia/Tel_Aviv.daylight.short=IDT
-Asia/Tel_Aviv.generic.short=IT
-Asia/Tel_Aviv.standard.short=IST
-Asia/Thimbu.daylight.short=BTST
-Asia/Thimbu.generic.short=BTT
-Asia/Thimbu.standard.short=BTT
-Asia/Thimphu.daylight.short=BTST
-Asia/Thimphu.generic.short=BTT
-Asia/Thimphu.standard.short=BTT
-Asia/Tokyo.daylight.short=JDT
-Asia/Tokyo.generic.short=JT
-Asia/Tokyo.standard.short=JST
-Asia/Ujung_Pandang.daylight.short=CIST
-Asia/Ujung_Pandang.generic.short=WITA
-Asia/Ujung_Pandang.standard.short=WITA
-Asia/Ulaanbaatar.daylight.short=ULAST
-Asia/Ulaanbaatar.generic.short=ULAT
-Asia/Ulaanbaatar.standard.short=ULAT
-Asia/Ulan_Bator.daylight.short=ULAST
-Asia/Ulan_Bator.generic.short=ULAT
-Asia/Ulan_Bator.standard.short=ULAT
-Asia/Urumqi.daylight.short=CDT
-Asia/Urumqi.generic.short=CT
-Asia/Urumqi.standard.short=CST
-Asia/Ust-Nera.daylight.short=VLAST
-Asia/Ust-Nera.generic.short=VLAT
-Asia/Ust-Nera.standard.short=VLAT
-Asia/Vientiane.daylight.short=ICST
-Asia/Vientiane.generic.short=ICT
-Asia/Vientiane.standard.short=ICT
-Asia/Vladivostok.daylight.short=VLAST
-Asia/Vladivostok.generic.short=VLAT
-Asia/Vladivostok.standard.short=VLAT
-Asia/Yakutsk.daylight.short=YAKST
-Asia/Yakutsk.generic.short=YAKT
-Asia/Yakutsk.standard.short=YAKT
-Asia/Yekaterinburg.daylight.short=YEKST
-Asia/Yekaterinburg.generic.short=YEKT
-Asia/Yekaterinburg.standard.short=YEKT
-Asia/Yerevan.daylight.short=AMST
-Asia/Yerevan.generic.short=AMT
-Asia/Yerevan.standard.short=AMT
-AST.daylight.short=AKDT
-AST.generic.short=AKT
-AST.standard.short=AKST
-Atlantic/Azores.daylight.short=AZOST
-Atlantic/Azores.generic.short=AZOT
-Atlantic/Azores.standard.short=AZOT
-Atlantic/Bermuda.daylight.short=ADT
-Atlantic/Bermuda.generic.short=AT
-Atlantic/Bermuda.standard.short=AST
-Atlantic/Canary.daylight.short=WEST
-Atlantic/Canary.generic.short=WET
-Atlantic/Canary.standard.short=WET
-Atlantic/Cape_Verde.daylight.short=CVST
-Atlantic/Cape_Verde.generic.short=CVT
-Atlantic/Cape_Verde.standard.short=CVT
-Atlantic/Faeroe.daylight.short=WEST
-Atlantic/Faeroe.generic.short=WET
-Atlantic/Faeroe.standard.short=WET
-Atlantic/Faroe.daylight.short=WEST
-Atlantic/Faroe.generic.short=WET
-Atlantic/Faroe.standard.short=WET
-Atlantic/Jan_Mayen.daylight.short=CEST
-Atlantic/Jan_Mayen.generic.short=CET
-Atlantic/Jan_Mayen.standard.short=CET
-Atlantic/Madeira.daylight.short=WEST
-Atlantic/Madeira.generic.short=WET
-Atlantic/Madeira.standard.short=WET
-Atlantic/Reykjavik.daylight.short=GMT
-Atlantic/Reykjavik.generic.short=GMT
-Atlantic/Reykjavik.standard.short=GMT
-Atlantic/South_Georgia.daylight.short=GDT
-Atlantic/South_Georgia.generic.short=GT
-Atlantic/South_Georgia.standard.short=GST
-Atlantic/Stanley.daylight.short=FKST
-Atlantic/Stanley.generic.short=FKT
-Atlantic/Stanley.standard.short=FKT
-Atlantic/St_Helena.daylight.short=GMT
-Atlantic/St_Helena.generic.short=GMT
-Atlantic/St_Helena.standard.short=GMT
-Australia/ACT.daylight.short=EST
-Australia/ACT.generic.short=ET
-Australia/ACT.standard.short=EST
-Australia/Adelaide.daylight.short=CST
-Australia/Adelaide.generic.short=CT
-Australia/Adelaide.standard.short=CST
-Australia/Brisbane.daylight.short=EST
-Australia/Brisbane.generic.short=ET
-Australia/Brisbane.standard.short=EST
-Australia/Broken_Hill.daylight.short=CST
-Australia/Broken_Hill.generic.short=CT
-Australia/Broken_Hill.standard.short=CST
-Australia/Canberra.daylight.short=EST
-Australia/Canberra.generic.short=ET
-Australia/Canberra.standard.short=EST
-Australia/Currie.daylight.short=EST
-Australia/Currie.generic.short=ET
-Australia/Currie.standard.short=EST
-Australia/Darwin.daylight.short=CST
-Australia/Darwin.generic.short=CT
-Australia/Darwin.standard.short=CST
-Australia/Eucla.daylight.short=CWST
-Australia/Eucla.generic.short=CWT
-Australia/Eucla.standard.short=CWST
-Australia/Hobart.daylight.short=EST
-Australia/Hobart.generic.short=ET
-Australia/Hobart.standard.short=EST
-Australia/LHI.daylight.short=LHST
-Australia/LHI.generic.short=LHT
-Australia/LHI.standard.short=LHST
-Australia/Lindeman.daylight.short=EST
-Australia/Lindeman.generic.short=ET
-Australia/Lindeman.standard.short=EST
-Australia/Lord_Howe.daylight.short=LHST
-Australia/Lord_Howe.generic.short=LHT
-Australia/Lord_Howe.standard.short=LHST
-Australia/Melbourne.daylight.short=EST
-Australia/Melbourne.generic.short=ET
-Australia/Melbourne.standard.short=EST
-Australia/North.daylight.short=CST
-Australia/North.generic.short=CT
-Australia/North.standard.short=CST
-Australia/NSW.daylight.short=EST
-Australia/NSW.generic.short=ET
-Australia/NSW.standard.short=EST
-Australia/Perth.daylight.short=WST
-Australia/Perth.generic.short=WT
-Australia/Perth.standard.short=WST
-Australia/Queensland.daylight.short=EST
-Australia/Queensland.generic.short=ET
-Australia/Queensland.standard.short=EST
-Australia/South.daylight.short=CST
-Australia/South.generic.short=CT
-Australia/South.standard.short=CST
-Australia/Sydney.daylight.short=EST
-Australia/Sydney.generic.short=ET
-Australia/Sydney.standard.short=EST
-Australia/Tasmania.daylight.short=EST
-Australia/Tasmania.generic.short=ET
-Australia/Tasmania.standard.short=EST
-Australia/Victoria.daylight.short=EST
-Australia/Victoria.generic.short=ET
-Australia/Victoria.standard.short=EST
-Australia/West.daylight.short=WST
-Australia/West.generic.short=WT
-Australia/West.standard.short=WST
-Australia/Yancowinna.daylight.short=CST
-Australia/Yancowinna.generic.short=CT
-Australia/Yancowinna.standard.short=CST
-BET.daylight.short=BRST
-BET.generic.short=BRT
-BET.standard.short=BRT
-Brazil/Acre.daylight.short=ACST
-Brazil/Acre.generic.short=ACT
-Brazil/Acre.standard.short=ACT
-Brazil/DeNoronha.daylight.short=FNST
-Brazil/DeNoronha.generic.short=FNT
-Brazil/DeNoronha.standard.short=FNT
-Brazil/East.daylight.short=BRST
-Brazil/East.generic.short=BRT
-Brazil/East.standard.short=BRT
-Brazil/West.daylight.short=AMST
-Brazil/West.generic.short=AMT
-Brazil/West.standard.short=AMT
-BST.daylight.short=BDST
-BST.generic.short=BDT
-BST.standard.short=BDT
-Canada/Atlantic.daylight.short=ADT
-Canada/Atlantic.generic.short=AT
-Canada/Atlantic.standard.short=AST
-Canada/Central.daylight.short=CDT
-Canada/Central.generic.short=CT
-Canada/Central.standard.short=CST
-Canada/Eastern.daylight.short=EDT
-Canada/Eastern.generic.short=ET
-Canada/Eastern.standard.short=EST
-Canada/East-Saskatchewan.daylight.short=CDT
-Canada/East-Saskatchewan.generic.short=CT
-Canada/East-Saskatchewan.standard.short=CST
-Canada/Mountain.daylight.short=MDT
-Canada/Mountain.generic.short=MT
-Canada/Mountain.standard.short=MST
-Canada/Newfoundland.daylight.short=NDT
-Canada/Newfoundland.generic.short=NT
-Canada/Newfoundland.standard.short=NST
-Canada/Pacific.daylight.short=PDT
-Canada/Pacific.generic.short=PT
-Canada/Pacific.standard.short=PST
-Canada/Saskatchewan.daylight.short=CDT
-Canada/Saskatchewan.generic.short=CT
-Canada/Saskatchewan.standard.short=CST
-Canada/Yukon.daylight.short=PDT
-Canada/Yukon.generic.short=PT
-Canada/Yukon.standard.short=PST
-CAT.daylight.short=CAST
-CAT.generic.short=CAT
-CAT.standard.short=CAT
-CET.daylight.short=CEST
-CET.generic.short=CET
-CET.standard.short=CET
-Chile/Continental.daylight.short=CLST
-Chile/Continental.generic.short=CLT
-Chile/Continental.standard.short=CLT
-Chile/EasterIsland.daylight.short=EASST
-Chile/EasterIsland.generic.short=EAST
-Chile/EasterIsland.standard.short=EAST
-CNT.daylight.short=NDT
-CNT.generic.short=NT
-CNT.standard.short=NST
-CST6CDT.daylight.short=CDT
-CST6CDT.generic.short=CT
-CST6CDT.standard.short=CST
-CST.daylight.short=CDT
-CST.generic.short=CT
-CST.standard.short=CST
-CTT.daylight.short=CDT
-CTT.generic.short=CT
-CTT.standard.short=CST
-Cuba.daylight.short=CDT
-Cuba.generic.short=CT
-Cuba.standard.short=CST
-EAT.daylight.short=EAST
-EAT.generic.short=EAT
-EAT.standard.short=EAT
-ECT.daylight.short=CEST
-ECT.generic.short=CET
-ECT.standard.short=CET
-EET.daylight.short=EEST
-EET.generic.short=EET
-EET.standard.short=EET
-Egypt.daylight.short=EEST
-Egypt.generic.short=EET
-Egypt.standard.short=EET
-Eire.daylight.short=IST
-Eire.generic.short=IT
-Eire.standard.short=GMT
-EST5EDT.daylight.short=EDT
-EST5EDT.generic.short=ET
-EST5EDT.standard.short=EST
-EST.daylight.short=EDT
-EST.generic.short=ET
-EST.standard.short=EST
-Etc/Greenwich.daylight.short=GMT
-Etc/Greenwich.generic.short=GMT
-Etc/Greenwich.standard.short=GMT
-Etc/UCT.daylight.short=UTC
-Etc/UCT.generic.short=UTC
-Etc/UCT.standard.short=UTC
-Etc/Universal.daylight.short=UTC
-Etc/Universal.generic.short=UTC
-Etc/Universal.standard.short=UTC
-Etc/UTC.daylight.short=UTC
-Etc/UTC.generic.short=UTC
-Etc/UTC.standard.short=UTC
-Etc/Zulu.daylight.short=UTC
-Etc/Zulu.generic.short=UTC
-Etc/Zulu.standard.short=UTC
-Europe/Amsterdam.daylight.short=CEST
-Europe/Amsterdam.generic.short=CET
-Europe/Amsterdam.standard.short=CET
-Europe/Andorra.daylight.short=CEST
-Europe/Andorra.generic.short=CET
-Europe/Andorra.standard.short=CET
-Europe/Athens.daylight.short=EEST
-Europe/Athens.generic.short=EET
-Europe/Athens.standard.short=EET
-Europe/Belfast.daylight.short=BST
-Europe/Belfast.generic.short=BT
-Europe/Belfast.standard.short=GMT
-Europe/Belgrade.daylight.short=CEST
-Europe/Belgrade.generic.short=CET
-Europe/Belgrade.standard.short=CET
-Europe/Berlin.daylight.short=CEST
-Europe/Berlin.generic.short=CET
-Europe/Berlin.standard.short=CET
-Europe/Bratislava.daylight.short=CEST
-Europe/Bratislava.generic.short=CET
-Europe/Bratislava.standard.short=CET
-Europe/Brussels.daylight.short=CEST
-Europe/Brussels.generic.short=CET
-Europe/Brussels.standard.short=CET
-Europe/Bucharest.daylight.short=EEST
-Europe/Bucharest.generic.short=EET
-Europe/Bucharest.standard.short=EET
-Europe/Budapest.daylight.short=CEST
-Europe/Budapest.generic.short=CET
-Europe/Budapest.standard.short=CET
-Europe/Busingen.daylight.short=CEST
-Europe/Busingen.generic.short=CET
-Europe/Busingen.standard.short=CET
-Europe/Chisinau.daylight.short=EEST
-Europe/Chisinau.generic.short=EET
-Europe/Chisinau.standard.short=EET
-Europe/Copenhagen.daylight.short=CEST
-Europe/Copenhagen.generic.short=CET
-Europe/Copenhagen.standard.short=CET
-Europe/Dublin.daylight.short=IST
-Europe/Dublin.generic.short=IT
-Europe/Dublin.standard.short=GMT
-Europe/Gibraltar.daylight.short=CEST
-Europe/Gibraltar.generic.short=CET
-Europe/Gibraltar.standard.short=CET
-Europe/Guernsey.daylight.short=BST
-Europe/Guernsey.generic.short=BT
-Europe/Guernsey.standard.short=GMT
-Europe/Helsinki.daylight.short=EEST
-Europe/Helsinki.generic.short=EET
-Europe/Helsinki.standard.short=EET
-Europe/Isle_of_Man.daylight.short=BST
-Europe/Isle_of_Man.generic.short=BT
-Europe/Isle_of_Man.standard.short=GMT
-Europe/Istanbul.daylight.short=EEST
-Europe/Istanbul.generic.short=EET
-Europe/Istanbul.standard.short=EET
-Europe/Jersey.daylight.short=BST
-Europe/Jersey.generic.short=BT
-Europe/Jersey.standard.short=GMT
-Europe/Kaliningrad.daylight.short=FEST
-Europe/Kaliningrad.generic.short=FET
-Europe/Kaliningrad.standard.short=FET
-Europe/Kiev.daylight.short=EEST
-Europe/Kiev.generic.short=EET
-Europe/Kiev.standard.short=EET
-Europe/Lisbon.daylight.short=WEST
-Europe/Lisbon.generic.short=WET
-Europe/Lisbon.standard.short=WET
-Europe/Ljubljana.daylight.short=CEST
-Europe/Ljubljana.generic.short=CET
-Europe/Ljubljana.standard.short=CET
-Europe/London.daylight.short=BST
-Europe/London.generic.short=BT
-Europe/London.standard.short=GMT
-Europe/Luxembourg.daylight.short=CEST
-Europe/Luxembourg.generic.short=CET
-Europe/Luxembourg.standard.short=CET
-Europe/Madrid.daylight.short=CEST
-Europe/Madrid.generic.short=CET
-Europe/Madrid.standard.short=CET
-Europe/Malta.daylight.short=CEST
-Europe/Malta.generic.short=CET
-Europe/Malta.standard.short=CET
-Europe/Mariehamn.daylight.short=EEST
-Europe/Mariehamn.generic.short=EET
-Europe/Mariehamn.standard.short=EET
-Europe/Minsk.daylight.short=FEST
-Europe/Minsk.generic.short=FET
-Europe/Minsk.standard.short=FET
-Europe/Monaco.daylight.short=CEST
-Europe/Monaco.generic.short=CET
-Europe/Monaco.standard.short=CET
-Europe/Moscow.daylight.short=MSD
-Europe/Moscow.generic.short=MT
-Europe/Moscow.standard.short=MSK
-Europe/Nicosia.daylight.short=EEST
-Europe/Nicosia.generic.short=EET
-Europe/Nicosia.standard.short=EET
-Europe/Oslo.daylight.short=CEST
-Europe/Oslo.generic.short=CET
-Europe/Oslo.standard.short=CET
-Europe/Paris.daylight.short=CEST
-Europe/Paris.generic.short=CET
-Europe/Paris.standard.short=CET
-Europe/Podgorica.daylight.short=CEST
-Europe/Podgorica.generic.short=CET
-Europe/Podgorica.standard.short=CET
-Europe/Prague.daylight.short=CEST
-Europe/Prague.generic.short=CET
-Europe/Prague.standard.short=CET
-Europe/Riga.daylight.short=EEST
-Europe/Riga.generic.short=EET
-Europe/Riga.standard.short=EET
-Europe/Rome.daylight.short=CEST
-Europe/Rome.generic.short=CET
-Europe/Rome.standard.short=CET
-Europe/Samara.daylight.short=SAMST
-Europe/Samara.generic.short=SAMT
-Europe/Samara.standard.short=SAMT
-Europe/San_Marino.daylight.short=CEST
-Europe/San_Marino.generic.short=CET
-Europe/San_Marino.standard.short=CET
-Europe/Sarajevo.daylight.short=CEST
-Europe/Sarajevo.generic.short=CET
-Europe/Sarajevo.standard.short=CET
-Europe/Simferopol.daylight.short=EEST
-Europe/Simferopol.generic.short=EET
-Europe/Simferopol.standard.short=EET
-Europe/Skopje.daylight.short=CEST
-Europe/Skopje.generic.short=CET
-Europe/Skopje.standard.short=CET
-Europe/Sofia.daylight.short=EEST
-Europe/Sofia.generic.short=EET
-Europe/Sofia.standard.short=EET
-Europe/Stockholm.daylight.short=CEST
-Europe/Stockholm.generic.short=CET
-Europe/Stockholm.standard.short=CET
-Europe/Tallinn.daylight.short=EEST
-Europe/Tallinn.generic.short=EET
-Europe/Tallinn.standard.short=EET
-Europe/Tirane.daylight.short=CEST
-Europe/Tirane.generic.short=CET
-Europe/Tirane.standard.short=CET
-Europe/Tiraspol.daylight.short=EEST
-Europe/Tiraspol.generic.short=EET
-Europe/Tiraspol.standard.short=EET
-Europe/Uzhgorod.daylight.short=EEST
-Europe/Uzhgorod.generic.short=EET
-Europe/Uzhgorod.standard.short=EET
-Europe/Vaduz.daylight.short=CEST
-Europe/Vaduz.generic.short=CET
-Europe/Vaduz.standard.short=CET
-Europe/Vatican.daylight.short=CEST
-Europe/Vatican.generic.short=CET
-Europe/Vatican.standard.short=CET
-Europe/Vienna.daylight.short=CEST
-Europe/Vienna.generic.short=CET
-Europe/Vienna.standard.short=CET
-Europe/Vilnius.daylight.short=EEST
-Europe/Vilnius.generic.short=EET
-Europe/Vilnius.standard.short=EET
-Europe/Volgograd.daylight.short=VOLST
-Europe/Volgograd.generic.short=VOLT
-Europe/Volgograd.standard.short=VOLT
-Europe/Warsaw.daylight.short=CEST
-Europe/Warsaw.generic.short=CET
-Europe/Warsaw.standard.short=CET
-Europe/Zagreb.daylight.short=CEST
-Europe/Zagreb.generic.short=CET
-Europe/Zagreb.standard.short=CET
-Europe/Zaporozhye.daylight.short=EEST
-Europe/Zaporozhye.generic.short=EET
-Europe/Zaporozhye.standard.short=EET
-Europe/Zurich.daylight.short=CEST
-Europe/Zurich.generic.short=CET
-Europe/Zurich.standard.short=CET
-GB.daylight.short=BST
-GB-Eire.daylight.short=BST
-GB-Eire.generic.short=BT
-GB-Eire.standard.short=GMT
-GB.generic.short=BT
-GB.standard.short=GMT
-GMT.daylight.short=GMT
-GMT.generic.short=GMT
-GMT.standard.short=GMT
-Greenwich.daylight.short=GMT
-Greenwich.generic.short=GMT
-Greenwich.standard.short=GMT
-Hongkong.daylight.short=HKST
-Hongkong.generic.short=HKT
-Hongkong.standard.short=HKT
-HST.daylight.short=HDT
-HST.generic.short=HT
-HST.standard.short=HST
-Iceland.daylight.short=GMT
-Iceland.generic.short=GMT
-Iceland.standard.short=GMT
-IET.daylight.short=EDT
-IET.generic.short=ET
-IET.standard.short=EST
-Indian/Antananarivo.daylight.short=EAST
-Indian/Antananarivo.generic.short=EAT
-Indian/Antananarivo.standard.short=EAT
-Indian/Chagos.daylight.short=IOST
-Indian/Chagos.generic.short=IOT
-Indian/Chagos.standard.short=IOT
-Indian/Christmas.daylight.short=CXST
-Indian/Christmas.generic.short=CIT
-Indian/Christmas.standard.short=CXT
-Indian/Cocos.daylight.short=CCST
-Indian/Cocos.generic.short=CCT
-Indian/Cocos.standard.short=CCT
-Indian/Comoro.daylight.short=EAST
-Indian/Comoro.generic.short=EAT
-Indian/Comoro.standard.short=EAT
-Indian/Kerguelen.daylight.short=TFST
-Indian/Kerguelen.generic.short=TFT
-Indian/Kerguelen.standard.short=TFT
-Indian/Mahe.daylight.short=SCST
-Indian/Mahe.generic.short=SCT
-Indian/Mahe.standard.short=SCT
-Indian/Maldives.daylight.short=MVST
-Indian/Maldives.generic.short=MVT
-Indian/Maldives.standard.short=MVT
-Indian/Mauritius.daylight.short=MUST
-Indian/Mauritius.generic.short=MUT
-Indian/Mauritius.standard.short=MUT
-Indian/Mayotte.daylight.short=EAST
-Indian/Mayotte.generic.short=EAT
-Indian/Mayotte.standard.short=EAT
-Indian/Reunion.daylight.short=REST
-Indian/Reunion.generic.short=RET
-Indian/Reunion.standard.short=RET
-Iran.daylight.short=IRDT
-Iran.generic.short=IRT
-Iran.standard.short=IRST
-Israel.daylight.short=IDT
-Israel.generic.short=IT
-Israel.standard.short=IST
-IST.daylight.short=IDT
-IST.generic.short=IT
-IST.standard.short=IST
-Jamaica.daylight.short=EDT
-Jamaica.generic.short=ET
-Jamaica.standard.short=EST
-Japan.daylight.short=JDT
-Japan.generic.short=JT
-Japan.standard.short=JST
-JST.daylight.short=JDT
-JST.generic.short=JT
-JST.standard.short=JST
-Kwajalein.daylight.short=MHST
-Kwajalein.generic.short=MHT
-Kwajalein.standard.short=MHT
-Libya.daylight.short=EEST
-Libya.generic.short=EET
-Libya.standard.short=EET
-MET.daylight.short=MEST
-MET.generic.short=MET
-MET.standard.short=MET
-Mexico/BajaNorte.daylight.short=PDT
-Mexico/BajaNorte.generic.short=PT
-Mexico/BajaNorte.standard.short=PST
-Mexico/BajaSur.daylight.short=MDT
-Mexico/BajaSur.generic.short=MT
-Mexico/BajaSur.standard.short=MST
-Mexico/General.daylight.short=CDT
-Mexico/General.generic.short=CT
-Mexico/General.standard.short=CST
-MIT.daylight.short=WSDT
-MIT.generic.short=WST
-MIT.standard.short=WST
-MST7MDT.daylight.short=MDT
-MST7MDT.generic.short=MT
-MST7MDT.standard.short=MST
-MST.daylight.short=MDT
-MST.generic.short=MT
-MST.standard.short=MST
-Navajo.daylight.short=MDT
-Navajo.generic.short=MT
-Navajo.standard.short=MST
-NET.daylight.short=AMST
-NET.generic.short=AMT
-NET.standard.short=AMT
-NST.daylight.short=NZDT
-NST.generic.short=NZT
-NST.standard.short=NZST
-NZ-CHAT.daylight.short=CHADT
-NZ-CHAT.generic.short=CHAT
-NZ-CHAT.standard.short=CHAST
-NZ.daylight.short=NZDT
-NZ.generic.short=NZT
-NZ.standard.short=NZST
-Pacific/Apia.daylight.short=WSDT
-Pacific/Apia.generic.short=WST
-Pacific/Apia.standard.short=WST
-Pacific/Auckland.daylight.short=NZDT
-Pacific/Auckland.generic.short=NZT
-Pacific/Auckland.standard.short=NZST
-Pacific/Chatham.daylight.short=CHADT
-Pacific/Chatham.generic.short=CHAT
-Pacific/Chatham.standard.short=CHAST
-Pacific/Chuuk.daylight.short=CHUST
-Pacific/Chuuk.generic.short=CHUT
-Pacific/Chuuk.standard.short=CHUT
-Pacific/Easter.daylight.short=EASST
-Pacific/Easter.generic.short=EAST
-Pacific/Easter.standard.short=EAST
-Pacific/Efate.daylight.short=VUST
-Pacific/Efate.generic.short=VUT
-Pacific/Efate.standard.short=VUT
-Pacific/Enderbury.daylight.short=PHOST
-Pacific/Enderbury.generic.short=PHOT
-Pacific/Enderbury.standard.short=PHOT
-Pacific/Fakaofo.daylight.short=TKST
-Pacific/Fakaofo.generic.short=TKT
-Pacific/Fakaofo.standard.short=TKT
-Pacific/Fiji.daylight.short=FJST
-Pacific/Fiji.generic.short=FJT
-Pacific/Fiji.standard.short=FJT
-Pacific/Funafuti.daylight.short=TVST
-Pacific/Funafuti.generic.short=TVT
-Pacific/Funafuti.standard.short=TVT
-Pacific/Galapagos.daylight.short=GALST
-Pacific/Galapagos.generic.short=GALT
-Pacific/Galapagos.standard.short=GALT
-Pacific/Gambier.daylight.short=GAMST
-Pacific/Gambier.generic.short=GAMT
-Pacific/Gambier.standard.short=GAMT
-Pacific/Guadalcanal.daylight.short=SBST
-Pacific/Guadalcanal.generic.short=SBT
-Pacific/Guadalcanal.standard.short=SBT
-Pacific/Guam.daylight.short=ChDT
-Pacific/Guam.generic.short=ChT
-Pacific/Guam.standard.short=ChST
-Pacific/Honolulu.daylight.short=HDT
-Pacific/Honolulu.generic.short=HT
-Pacific/Honolulu.standard.short=HST
-Pacific/Johnston.daylight.short=HDT
-Pacific/Johnston.generic.short=HT
-Pacific/Johnston.standard.short=HST
-Pacific/Kiritimati.daylight.short=LINST
-Pacific/Kiritimati.generic.short=LINT
-Pacific/Kiritimati.standard.short=LINT
-Pacific/Kosrae.daylight.short=KOSST
-Pacific/Kosrae.generic.short=KOST
-Pacific/Kosrae.standard.short=KOST
-Pacific/Kwajalein.daylight.short=MHST
-Pacific/Kwajalein.generic.short=MHT
-Pacific/Kwajalein.standard.short=MHT
-Pacific/Majuro.daylight.short=MHST
-Pacific/Majuro.generic.short=MHT
-Pacific/Majuro.standard.short=MHT
-Pacific/Marquesas.daylight.short=MARST
-Pacific/Marquesas.generic.short=MART
-Pacific/Marquesas.standard.short=MART
-Pacific/Midway.daylight.short=SDT
-Pacific/Midway.generic.short=ST
-Pacific/Midway.standard.short=SST
-Pacific/Nauru.daylight.short=NRST
-Pacific/Nauru.generic.short=NRT
-Pacific/Nauru.standard.short=NRT
-Pacific/Niue.daylight.short=NUST
-Pacific/Niue.generic.short=NUT
-Pacific/Niue.standard.short=NUT
-Pacific/Norfolk.daylight.short=NFST
-Pacific/Norfolk.generic.short=NFT
-Pacific/Norfolk.standard.short=NFT
-Pacific/Noumea.daylight.short=NCST
-Pacific/Noumea.generic.short=NCT
-Pacific/Noumea.standard.short=NCT
-Pacific/Pago_Pago.daylight.short=SDT
-Pacific/Pago_Pago.generic.short=ST
-Pacific/Pago_Pago.standard.short=SST
-Pacific/Palau.daylight.short=PWST
-Pacific/Palau.generic.short=PWT
-Pacific/Palau.standard.short=PWT
-Pacific/Pitcairn.daylight.short=PDT
-Pacific/Pitcairn.generic.short=PT
-Pacific/Pitcairn.standard.short=PST
-Pacific/Pohnpei.daylight.short=PONST
-Pacific/Pohnpei.generic.short=PONT
-Pacific/Pohnpei.standard.short=PONT
-Pacific/Ponape.daylight.short=PONST
-Pacific/Ponape.generic.short=PONT
-Pacific/Ponape.standard.short=PONT
-Pacific/Port_Moresby.daylight.short=PGST
-Pacific/Port_Moresby.generic.short=PGT
-Pacific/Port_Moresby.standard.short=PGT
-Pacific/Rarotonga.daylight.short=CKHST
-Pacific/Rarotonga.generic.short=CKT
-Pacific/Rarotonga.standard.short=CKT
-Pacific/Saipan.daylight.short=ChDT
-Pacific/Saipan.generic.short=ChT
-Pacific/Saipan.standard.short=ChST
-Pacific/Samoa.daylight.short=SDT
-Pacific/Samoa.generic.short=ST
-Pacific/Samoa.standard.short=SST
-Pacific/Tahiti.daylight.short=TAHST
-Pacific/Tahiti.generic.short=TAHT
-Pacific/Tahiti.standard.short=TAHT
-Pacific/Tarawa.daylight.short=GILST
-Pacific/Tarawa.generic.short=GILT
-Pacific/Tarawa.standard.short=GILT
-Pacific/Tongatapu.daylight.short=TOST
-Pacific/Tongatapu.generic.short=TOT
-Pacific/Tongatapu.standard.short=TOT
-Pacific/Truk.daylight.short=CHUST
-Pacific/Truk.generic.short=CHUT
-Pacific/Truk.standard.short=CHUT
-Pacific/Wake.daylight.short=WAKST
-Pacific/Wake.generic.short=WAKT
-Pacific/Wake.standard.short=WAKT
-Pacific/Wallis.daylight.short=WFST
-Pacific/Wallis.generic.short=WFT
-Pacific/Wallis.standard.short=WFT
-Pacific/Yap.daylight.short=CHUST
-Pacific/Yap.generic.short=CHUT
-Pacific/Yap.standard.short=CHUT
-PLT.daylight.short=PKST
-PLT.generic.short=PKT
-PLT.standard.short=PKT
-PNT.daylight.short=MDT
-PNT.generic.short=MT
-PNT.standard.short=MST
-Poland.daylight.short=CEST
-Poland.generic.short=CET
-Poland.standard.short=CET
-Portugal.daylight.short=WEST
-Portugal.generic.short=WET
-Portugal.standard.short=WET
-PRC.daylight.short=CDT
-PRC.generic.short=CT
-PRC.standard.short=CST
-PRT.daylight.short=ADT
-PRT.generic.short=AT
-PRT.standard.short=AST
-PST8PDT.daylight.short=PDT
-PST8PDT.generic.short=PT
-PST8PDT.standard.short=PST
-PST.daylight.short=PDT
-PST.generic.short=PT
-PST.standard.short=PST
-ROK.daylight.short=KDT
-ROK.generic.short=KT
-ROK.standard.short=KST
-Singapore.daylight.short=SGST
-Singapore.generic.short=SGT
-Singapore.standard.short=SGT
-SST.daylight.short=SBST
-SST.generic.short=SBT
-SST.standard.short=SBT
-SystemV/AST4ADT.daylight.short=ADT
-SystemV/AST4ADT.generic.short=AT
-SystemV/AST4ADT.standard.short=AST
-SystemV/AST4.daylight.short=ADT
-SystemV/AST4.generic.short=AT
-SystemV/AST4.standard.short=AST
-SystemV/CST6CDT.daylight.short=CDT
-SystemV/CST6CDT.generic.short=CT
-SystemV/CST6CDT.standard.short=CST
-SystemV/CST6.daylight.short=CDT
-SystemV/CST6.generic.short=CT
-SystemV/CST6.standard.short=CST
-SystemV/EST5.daylight.short=EDT
-SystemV/EST5EDT.daylight.short=EDT
-SystemV/EST5EDT.generic.short=ET
-SystemV/EST5EDT.standard.short=EST
-SystemV/EST5.generic.short=ET
-SystemV/EST5.standard.short=EST
-SystemV/HST10.daylight.short=HDT
-SystemV/HST10.generic.short=HT
-SystemV/HST10.standard.short=HST
-SystemV/MST7.daylight.short=MDT
-SystemV/MST7.generic.short=MT
-SystemV/MST7MDT.daylight.short=MDT
-SystemV/MST7MDT.generic.short=MT
-SystemV/MST7MDT.standard.short=MST
-SystemV/MST7.standard.short=MST
-SystemV/PST8.daylight.short=PDT
-SystemV/PST8.generic.short=PT
-SystemV/PST8PDT.daylight.short=PDT
-SystemV/PST8PDT.generic.short=PT
-SystemV/PST8PDT.standard.short=PST
-SystemV/PST8.standard.short=PST
-SystemV/YST9.daylight.short=AKDT
-SystemV/YST9.generic.short=AKT
-SystemV/YST9.standard.short=AKST
-SystemV/YST9YDT.daylight.short=AKDT
-SystemV/YST9YDT.generic.short=AKT
-SystemV/YST9YDT.standard.short=AKST
-Turkey.daylight.short=EEST
-Turkey.generic.short=EET
-Turkey.standard.short=EET
-UCT.daylight.short=UTC
-UCT.generic.short=UTC
-UCT.standard.short=UTC
-Universal.daylight.short=UTC
-Universal.generic.short=UTC
-Universal.standard.short=UTC
-US/Alaska.daylight.short=AKDT
-US/Alaska.generic.short=AKT
-US/Alaska.standard.short=AKST
-US/Aleutian.daylight.short=HADT
-US/Aleutian.generic.short=HAT
-US/Aleutian.standard.short=HAST
-US/Arizona.daylight.short=MDT
-US/Arizona.generic.short=MT
-US/Arizona.standard.short=MST
-US/Central.daylight.short=CDT
-US/Central.generic.short=CT
-US/Central.standard.short=CST
-US/Eastern.daylight.short=EDT
-US/Eastern.generic.short=ET
-US/Eastern.standard.short=EST
-US/East-Indiana.daylight.short=EDT
-US/East-Indiana.generic.short=ET
-US/East-Indiana.standard.short=EST
-US/Hawaii.daylight.short=HDT
-US/Hawaii.generic.short=HT
-US/Hawaii.standard.short=HST
-US/Indiana-Starke.daylight.short=CDT
-US/Indiana-Starke.generic.short=CT
-US/Indiana-Starke.standard.short=CST
-US/Michigan.daylight.short=EDT
-US/Michigan.generic.short=ET
-US/Michigan.standard.short=EST
-US/Mountain.daylight.short=MDT
-US/Mountain.generic.short=MT
-US/Mountain.standard.short=MST
-US/Pacific.daylight.short=PDT
-US/Pacific.generic.short=PT
-US/Pacific-New.daylight.short=PDT
-US/Pacific-New.generic.short=PT
-US/Pacific-New.standard.short=PST
-US/Pacific.standard.short=PST
-US/Samoa.daylight.short=SDT
-US/Samoa.generic.short=ST
-US/Samoa.standard.short=SST
-UTC.daylight.short=UTC
-UTC.generic.short=UTC
-UTC.standard.short=UTC
-VST.daylight.short=ICST
-VST.generic.short=ICT
-VST.standard.short=ICT
-WET.daylight.short=WEST
-WET.generic.short=WET
-WET.standard.short=WET
-W-SU.daylight.short=MSD
-W-SU.generic.short=MT
-W-SU.standard.short=MSK
-Zulu.daylight.short=UTC
-Zulu.generic.short=UTC
-Zulu.standard.short=UTC
diff --git a/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_zh_CN.properties b/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_zh_CN.properties
deleted file mode 100644
index 62ccf2936e0..00000000000
--- a/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_zh_CN.properties
+++ /dev/null
@@ -1,651 +0,0 @@
-ACT.daylight.long=\u4E2D\u592E\u590F\u4EE4\u65F6 (\u5317\u9886\u5730)
-ACT.generic.long=\u4E2D\u90E8\u65F6\u95F4 (\u5317\u90E8\u5730\u533A)
-ACT.standard.long=\u4E2D\u592E\u6807\u51C6\u65F6\u95F4 (\u5317\u9886\u5730)
-AET.daylight.long=\u4E1C\u90E8\u590F\u4EE4\u65F6 (\u65B0\u5357\u5A01\u5C14\u65AF)
-AET.generic.long=\u4E1C\u90E8\u65F6\u95F4 (\u65B0\u5357\u5A01\u5C14\u65AF)
-AET.standard.long=\u4E1C\u90E8\u6807\u51C6\u65F6\u95F4 (\u65B0\u5357\u5A01\u5C14\u65AF)
-AGT.generic.long=\u963F\u6839\u5EF7\u65F6\u95F4
-ART.generic.long=\u4E1C\u6B27\u65F6\u95F4
-AST.generic.long=\u963F\u62C9\u65AF\u52A0\u65F6\u95F4
-Africa/Abidjan.generic.long=\u683C\u6797\u5A01\u6CBB\u65F6\u95F4
-Africa/Accra.generic.long=\u52A0\u7EB3\u65F6\u95F4
-Africa/Addis_Ababa.generic.long=\u4E1C\u975E\u65F6\u95F4
-Africa/Algiers.generic.long=\u4E2D\u6B27\u65F6\u95F4
-Africa/Asmara.generic.long=\u4E1C\u975E\u65F6\u95F4
-Africa/Asmera.generic.long=\u4E1C\u975E\u65F6\u95F4
-Africa/Bamako.generic.long=\u683C\u6797\u5A01\u6CBB\u65F6\u95F4
-Africa/Bangui.generic.long=\u897F\u975E\u65F6\u95F4
-Africa/Banjul.generic.long=\u683C\u6797\u5A01\u6CBB\u65F6\u95F4
-Africa/Bissau.generic.long=\u683C\u6797\u5A01\u6CBB\u65F6\u95F4
-Africa/Blantyre.generic.long=\u4E2D\u975E\u65F6\u95F4
-Africa/Brazzaville.generic.long=\u897F\u975E\u65F6\u95F4
-Africa/Bujumbura.generic.long=\u4E2D\u975E\u65F6\u95F4
-Africa/Cairo.generic.long=\u4E1C\u6B27\u65F6\u95F4
-Africa/Casablanca.generic.long=\u897F\u6B27\u65F6\u95F4
-Africa/Ceuta.generic.long=\u4E2D\u6B27\u65F6\u95F4
-Africa/Conakry.generic.long=\u683C\u6797\u5A01\u6CBB\u65F6\u95F4
-Africa/Dakar.generic.long=\u683C\u6797\u5A01\u6CBB\u65F6\u95F4
-Africa/Dar_es_Salaam.generic.long=\u4E1C\u975E\u65F6\u95F4
-Africa/Djibouti.generic.long=\u4E1C\u975E\u65F6\u95F4
-Africa/Douala.generic.long=\u897F\u975E\u65F6\u95F4
-Africa/El_Aaiun.generic.long=\u897F\u6B27\u65F6\u95F4
-Africa/Freetown.generic.long=\u585E\u62C9\u91CC\u6602\u65F6\u95F4
-Africa/Gaborone.generic.long=\u4E2D\u975E\u65F6\u95F4
-Africa/Harare.generic.long=\u4E2D\u975E\u65F6\u95F4
-Africa/Johannesburg.generic.long=\u5357\u975E\u65F6\u95F4
-Africa/Juba.generic.long=\u4E1C\u975E\u65F6\u95F4
-Africa/Kampala.generic.long=\u4E1C\u975E\u65F6\u95F4
-Africa/Khartoum.generic.long=\u4E1C\u975E\u65F6\u95F4
-Africa/Kigali.generic.long=\u4E2D\u975E\u65F6\u95F4
-Africa/Kinshasa.generic.long=\u897F\u975E\u65F6\u95F4
-Africa/Lagos.generic.long=\u897F\u975E\u65F6\u95F4
-Africa/Libreville.generic.long=\u897F\u975E\u65F6\u95F4
-Africa/Lome.generic.long=\u683C\u6797\u5A01\u6CBB\u65F6\u95F4
-Africa/Luanda.generic.long=\u897F\u975E\u65F6\u95F4
-Africa/Lubumbashi.generic.long=\u4E2D\u975E\u65F6\u95F4
-Africa/Lusaka.generic.long=\u4E2D\u975E\u65F6\u95F4
-Africa/Malabo.generic.long=\u897F\u975E\u65F6\u95F4
-Africa/Maputo.generic.long=\u4E2D\u975E\u65F6\u95F4
-Africa/Maseru.generic.long=\u5357\u975E\u65F6\u95F4
-Africa/Mbabane.generic.long=\u5357\u975E\u65F6\u95F4
-Africa/Mogadishu.generic.long=\u4E1C\u975E\u65F6\u95F4
-Africa/Monrovia.generic.long=\u683C\u6797\u5A01\u6CBB\u65F6\u95F4
-Africa/Nairobi.generic.long=\u4E1C\u975E\u65F6\u95F4
-Africa/Ndjamena.generic.long=\u897F\u975E\u65F6\u95F4
-Africa/Niamey.generic.long=\u897F\u975E\u65F6\u95F4
-Africa/Nouakchott.generic.long=\u683C\u6797\u5A01\u6CBB\u65F6\u95F4
-Africa/Ouagadougou.generic.long=\u683C\u6797\u5A01\u6CBB\u65F6\u95F4
-Africa/Porto-Novo.generic.long=\u897F\u975E\u65F6\u95F4
-Africa/Sao_Tome.generic.long=\u683C\u6797\u5A01\u6CBB\u65F6\u95F4
-Africa/Timbuktu.generic.long=\u683C\u6797\u5A01\u6CBB\u65F6\u95F4
-Africa/Tripoli.generic.long=\u4e1c\u6b27\u65f6\u95f4
-Africa/Tunis.generic.long=\u4E2D\u6B27\u65F6\u95F4
-Africa/Windhoek.generic.long=\u897F\u975E\u65F6\u95F4
-America/Adak.generic.long=\u590F\u5A01\u5937-\u963F\u7559\u7533\u65F6\u95F4
-America/Anchorage.generic.long=\u963F\u62C9\u65AF\u52A0\u65F6\u95F4
-America/Anguilla.generic.long=\u5927\u897F\u6D0B\u65F6\u95F4
-America/Antigua.generic.long=\u5927\u897F\u6D0B\u65F6\u95F4
-America/Araguaina.generic.long=\u5DF4\u897F\u5229\u4E9A\u65F6\u95F4
-America/Argentina/Buenos_Aires.generic.long=\u963F\u6839\u5EF7\u65F6\u95F4
-America/Argentina/Catamarca.generic.long=\u963F\u6839\u5EF7\u65F6\u95F4
-America/Argentina/ComodRivadavia.generic.long=\u963F\u6839\u5EF7\u65F6\u95F4
-America/Argentina/Cordoba.generic.long=\u963F\u6839\u5EF7\u65F6\u95F4
-America/Argentina/Jujuy.generic.long=\u963F\u6839\u5EF7\u65F6\u95F4
-America/Argentina/La_Rioja.generic.long=\u963F\u6839\u5EF7\u65F6\u95F4
-America/Argentina/Mendoza.generic.long=\u963F\u6839\u5EF7\u65F6\u95F4
-America/Argentina/Rio_Gallegos.generic.long=\u963F\u6839\u5EF7\u65F6\u95F4
-America/Argentina/Salta.generic.long=\u963F\u6839\u5EF7\u65F6\u95F4
-America/Argentina/San_Juan.generic.long=\u963F\u6839\u5EF7\u65F6\u95F4
-America/Argentina/San_Luis.generic.long=\u963f\u6839\u5ef7\u65f6\u95f4
-America/Argentina/Tucuman.generic.long=\u963F\u6839\u5EF7\u65F6\u95F4
-America/Argentina/Ushuaia.generic.long=\u963F\u6839\u5EF7\u65F6\u95F4
-America/Aruba.generic.long=\u5927\u897F\u6D0B\u65F6\u95F4
-America/Asuncion.generic.long=\u5DF4\u62C9\u572D\u65F6\u95F4
-America/Atikokan.generic.long=\u4E1C\u90E8\u65F6\u95F4
-America/Atka.generic.long=\u590F\u5A01\u5937-\u963F\u7559\u7533\u65F6\u95F4
-America/Bahia.generic.long=\u5DF4\u897F\u5229\u4E9A\u65F6\u95F4
-America/Bahia_Banderas.generic.long=\u4E2D\u90E8\u65F6\u95F4
-America/Barbados.generic.long=\u5927\u897F\u6D0B\u65F6\u95F4
-America/Belem.generic.long=\u5DF4\u897F\u5229\u4E9A\u65F6\u95F4
-America/Belize.generic.long=\u4E2D\u90E8\u65F6\u95F4
-America/Blanc-Sablon.generic.long=\u5927\u897F\u6D0B\u65F6\u95F4
-America/Boa_Vista.generic.long=\u4E9A\u9A6C\u900A\u65F6\u95F4
-America/Bogota.generic.long=\u54E5\u4F26\u6BD4\u4E9A\u65F6\u95F4
-America/Boise.generic.long=\u5C71\u5730\u65F6\u95F4
-America/Buenos_Aires.generic.long=\u963F\u6839\u5EF7\u65F6\u95F4
-America/Cambridge_Bay.generic.long=\u5C71\u5730\u65F6\u95F4
-America/Campo_Grande.generic.long=\u4E9A\u9A6C\u900A\u65F6\u95F4
-America/Cancun.generic.long=\u4E2D\u90E8\u65F6\u95F4
-America/Caracas.generic.long=\u59D4\u5185\u745E\u62C9\u65F6\u95F4
-America/Catamarca.generic.long=\u963F\u6839\u5EF7\u65F6\u95F4
-America/Cayenne.generic.long=\u6CD5\u5C5E\u572D\u4E9A\u90A3\u65F6\u95F4
-America/Cayman.generic.long=\u4E1C\u90E8\u65F6\u95F4
-America/Chicago.generic.long=\u4E2D\u90E8\u65F6\u95F4
-America/Chihuahua.generic.long=\u5C71\u5730\u65F6\u95F4
-America/Coral_Harbour.generic.long=\u4E1C\u90E8\u65F6\u95F4
-America/Cordoba.generic.long=\u963F\u6839\u5EF7\u65F6\u95F4
-America/Costa_Rica.generic.long=\u4E2D\u90E8\u65F6\u95F4
-America/Creston.generic.long=\u5C71\u5730\u65F6\u95F4
-America/Cuiaba.generic.long=\u4E9A\u9A6C\u900A\u65F6\u95F4
-America/Curacao.generic.long=\u5927\u897F\u6D0B\u65F6\u95F4
-America/Danmarkshavn.generic.long=\u683C\u6797\u5A01\u6CBB\u65F6\u95F4
-America/Dawson.generic.long=\u592A\u5E73\u6D0B\u65F6\u95F4
-America/Dawson_Creek.generic.long=\u5C71\u5730\u65F6\u95F4
-America/Denver.generic.long=\u5C71\u5730\u65F6\u95F4
-America/Detroit.generic.long=\u4E1C\u90E8\u65F6\u95F4
-America/Dominica.generic.long=\u5927\u897F\u6D0B\u65F6\u95F4
-America/Edmonton.generic.long=\u5C71\u5730\u65F6\u95F4
-America/Eirunepe.generic.long=Acre \u65f6\u95f4
-America/El_Salvador.generic.long=\u4E2D\u90E8\u65F6\u95F4
-America/Ensenada.generic.long=\u592A\u5E73\u6D0B\u65F6\u95F4
-America/Fort_Wayne.generic.long=\u4E1C\u90E8\u65F6\u95F4
-America/Fortaleza.generic.long=\u5DF4\u897F\u5229\u4E9A\u65F6\u95F4
-America/Glace_Bay.generic.long=\u5927\u897F\u6D0B\u65F6\u95F4
-America/Godthab.generic.long=\u897F\u683C\u6797\u5170\u5C9B\u65F6\u95F4
-America/Goose_Bay.generic.long=\u5927\u897F\u6D0B\u65F6\u95F4
-America/Grand_Turk.generic.long=\u4E1C\u90E8\u65F6\u95F4
-America/Grenada.generic.long=\u5927\u897F\u6D0B\u65F6\u95F4
-America/Guadeloupe.generic.long=\u5927\u897F\u6D0B\u65F6\u95F4
-America/Guatemala.generic.long=\u4E2D\u90E8\u65F6\u95F4
-America/Guayaquil.generic.long=\u5384\u74DC\u591A\u5C14\u65F6\u95F4
-America/Guyana.generic.long=\u572D\u4E9A\u90A3\u65F6\u95F4
-America/Halifax.generic.long=\u5927\u897F\u6D0B\u65F6\u95F4
-America/Havana.generic.long=\u53E4\u5DF4\u65F6\u95F4
-America/Hermosillo.generic.long=\u5C71\u5730\u65F6\u95F4
-America/Indiana/Indianapolis.generic.long=\u4E1C\u90E8\u65F6\u95F4
-America/Indiana/Knox.generic.long=\u4E2D\u90E8\u65F6\u95F4
-America/Indiana/Marengo.generic.long=\u4E1C\u90E8\u65F6\u95F4
-America/Indiana/Petersburg.generic.long=\u4E1C\u90E8\u65F6\u95F4
-America/Indiana/Tell_City.generic.long=\u4E2D\u90E8\u65F6\u95F4
-America/Indiana/Vevay.generic.long=\u4E1C\u90E8\u65F6\u95F4
-America/Indiana/Vincennes.generic.long=\u4E1C\u90E8\u65F6\u95F4
-America/Indiana/Winamac.generic.long=\u4E1C\u90E8\u65F6\u95F4
-America/Indianapolis.generic.long=\u4E1C\u90E8\u65F6\u95F4
-America/Inuvik.generic.long=\u5C71\u5730\u65F6\u95F4
-America/Iqaluit.generic.long=\u4E1C\u90E8\u65F6\u95F4
-America/Jamaica.generic.long=\u4E1C\u90E8\u65F6\u95F4
-America/Jujuy.generic.long=\u963F\u6839\u5EF7\u65F6\u95F4
-America/Juneau.generic.long=\u963F\u62C9\u65AF\u52A0\u65F6\u95F4
-America/Kentucky/Louisville.generic.long=\u4E1C\u90E8\u65F6\u95F4
-America/Kentucky/Monticello.generic.long=\u4E1C\u90E8\u65F6\u95F4
-America/Knox_IN.generic.long=\u4E2D\u90E8\u65F6\u95F4
-America/Kralendijk.generic.long=\u5927\u897F\u6D0B\u65F6\u95F4
-America/La_Paz.generic.long=\u73BB\u5229\u7EF4\u4E9A\u65F6\u95F4
-America/Lima.generic.long=\u79D8\u9C81\u65F6\u95F4
-America/Los_Angeles.generic.long=\u592A\u5E73\u6D0B\u65F6\u95F4
-America/Louisville.generic.long=\u4E1C\u90E8\u65F6\u95F4
-America/Lower_Princes.generic.long=\u5927\u897F\u6D0B\u65F6\u95F4
-America/Maceio.generic.long=\u5DF4\u897F\u5229\u4E9A\u65F6\u95F4
-America/Managua.generic.long=\u4E2D\u90E8\u65F6\u95F4
-America/Manaus.generic.long=\u4E9A\u9A6C\u900A\u65F6\u95F4
-America/Marigot.generic.long=\u5927\u897F\u6D0B\u65F6\u95F4
-America/Martinique.generic.long=\u5927\u897F\u6D0B\u65F6\u95F4
-America/Matamoros.generic.long=\u4E2D\u90E8\u65F6\u95F4
-America/Mazatlan.generic.long=\u5C71\u5730\u65F6\u95F4
-America/Mendoza.generic.long=\u963F\u6839\u5EF7\u65F6\u95F4
-America/Menominee.generic.long=\u4E2D\u90E8\u65F6\u95F4
-America/Merida.generic.long=\u4E2D\u90E8\u65F6\u95F4
-America/Metlakatla.daylight.long=\u6885\u7279\u62C9\u5361\u7279\u62C9\u590F\u4EE4\u65F6
-America/Metlakatla.generic.long=\u6885\u7279\u62C9\u5361\u7279\u62C9\u65F6\u95F4
-America/Metlakatla.standard.long=\u6885\u7279\u62C9\u5361\u7279\u62C9\u6807\u51C6\u65F6\u95F4
-America/Mexico_City.generic.long=\u4E2D\u90E8\u65F6\u95F4
-America/Miquelon.generic.long=\u76AE\u57C3\u5C14\u548C\u5BC6\u514B\u9686\u5C9B\u65F6\u95F4
-America/Moncton.generic.long=\u5927\u897F\u6D0B\u65F6\u95F4
-America/Monterrey.generic.long=\u4E2D\u90E8\u65F6\u95F4
-America/Montevideo.generic.long=\u4E4C\u62C9\u572D\u65F6\u95F4
-America/Montreal.generic.long=\u4E1C\u90E8\u65F6\u95F4
-America/Montserrat.generic.long=\u5927\u897F\u6D0B\u65F6\u95F4
-America/Nassau.generic.long=\u4E1C\u90E8\u65F6\u95F4
-America/New_York.generic.long=\u4E1C\u90E8\u65F6\u95F4
-America/Nipigon.generic.long=\u4E1C\u90E8\u65F6\u95F4
-America/Nome.generic.long=\u963F\u62C9\u65AF\u52A0\u65F6\u95F4
-America/Noronha.generic.long=\u8D39\u5C14\u5357\u591A\u5FB7\u8BFA\u7F57\u5C3C\u4E9A\u65F6\u95F4
-America/North_Dakota/Beulah.generic.long=\u4E2D\u90E8\u65F6\u95F4
-America/North_Dakota/Center.generic.long=\u4E2D\u90E8\u65F6\u95F4
-America/North_Dakota/New_Salem.generic.long=\u4E2D\u90E8\u65F6\u95F4
-America/Ojinaga.generic.long=\u5C71\u5730\u65F6\u95F4
-America/Panama.generic.long=\u4E1C\u90E8\u65F6\u95F4
-America/Pangnirtung.generic.long=\u4E1C\u90E8\u65F6\u95F4
-America/Paramaribo.generic.long=\u82CF\u5229\u5357\u65F6\u95F4
-America/Phoenix.generic.long=\u5C71\u5730\u65F6\u95F4
-America/Port-au-Prince.generic.long=\u4E1C\u90E8\u65F6\u95F4
-America/Port_of_Spain.generic.long=\u5927\u897F\u6D0B\u65F6\u95F4
-America/Porto_Acre.generic.long=Acre \u65f6\u95f4
-America/Porto_Velho.generic.long=\u4E9A\u9A6C\u900A\u65F6\u95F4
-America/Puerto_Rico.generic.long=\u5927\u897F\u6D0B\u65F6\u95F4
-America/Rainy_River.generic.long=\u4E2D\u90E8\u65F6\u95F4
-America/Rankin_Inlet.generic.long=\u4E2D\u90E8\u65F6\u95F4
-America/Recife.generic.long=\u5DF4\u897F\u5229\u4E9A\u65F6\u95F4
-America/Regina.generic.long=\u4E2D\u90E8\u65F6\u95F4
-America/Resolute.generic.long=\u4E2D\u90E8\u65F6\u95F4
-America/Rio_Branco.generic.long=Acre \u65f6\u95f4
-America/Rosario.generic.long=\u963F\u6839\u5EF7\u65F6\u95F4
-America/Santa_Isabel.generic.long=\u592A\u5E73\u6D0B\u65F6\u95F4
-America/Santarem.generic.long=\u5DF4\u897F\u5229\u4E9A\u65F6\u95F4
-America/Santiago.generic.long=\u667A\u5229\u65F6\u95F4
-America/Santo_Domingo.generic.long=\u5927\u897F\u6D0B\u65F6\u95F4
-America/Sao_Paulo.generic.long=\u5DF4\u897F\u5229\u4E9A\u65F6\u95F4
-America/Scoresbysund.generic.long=\u4E1C\u683C\u6797\u5C9B\u65F6\u95F4
-America/Shiprock.generic.long=\u5C71\u5730\u65F6\u95F4
-America/Sitka.generic.long=\u963F\u62C9\u65AF\u52A0\u65F6\u95F4
-America/St_Barthelemy.generic.long=\u5927\u897F\u6D0B\u65F6\u95F4
-America/St_Johns.generic.long=\u7EBD\u82AC\u5170\u65F6\u95F4
-America/St_Kitts.generic.long=\u5927\u897F\u6D0B\u65F6\u95F4
-America/St_Lucia.generic.long=\u5927\u897F\u6D0B\u65F6\u95F4
-America/St_Thomas.generic.long=\u5927\u897F\u6D0B\u65F6\u95F4
-America/St_Vincent.generic.long=\u5927\u897F\u6D0B\u65F6\u95F4
-America/Swift_Current.generic.long=\u4E2D\u90E8\u65F6\u95F4
-America/Tegucigalpa.generic.long=\u4E2D\u90E8\u65F6\u95F4
-America/Thule.generic.long=\u5927\u897F\u6D0B\u65F6\u95F4
-America/Thunder_Bay.generic.long=\u4E1C\u90E8\u65F6\u95F4
-America/Tijuana.generic.long=\u592A\u5E73\u6D0B\u65F6\u95F4
-America/Toronto.generic.long=\u4E1C\u90E8\u65F6\u95F4
-America/Tortola.generic.long=\u5927\u897F\u6D0B\u65F6\u95F4
-America/Vancouver.generic.long=\u592A\u5E73\u6D0B\u65F6\u95F4
-America/Virgin.generic.long=\u5927\u897F\u6D0B\u65F6\u95F4
-America/Whitehorse.generic.long=\u592A\u5E73\u6D0B\u65F6\u95F4
-America/Winnipeg.generic.long=\u4E2D\u90E8\u65F6\u95F4
-America/Yakutat.generic.long=\u963F\u62C9\u65AF\u52A0\u65F6\u95F4
-America/Yellowknife.generic.long=\u5C71\u5730\u65F6\u95F4
-Antarctica/Casey.daylight.long=\u897F\u90E8\u590F\u4EE4\u65F6 (\u6FB3\u5927\u5229\u4E9A)
-Antarctica/Casey.generic.long=\u897F\u90E8\u65F6\u95F4 (\u6FB3\u5927\u5229\u4E9A)
-Antarctica/Casey.standard.long=\u897F\u90E8\u6807\u51C6\u65F6\u95F4 (\u6FB3\u5927\u5229\u4E9A)
-Antarctica/Davis.generic.long=\u6234\u7EF4\u65AF\u65F6\u95F4
-Antarctica/DumontDUrville.generic.long=Dumont-d'Urville \u65F6\u95F4
-Antarctica/Macquarie.daylight.long=\u9EA6\u5938\u91CC\u5C9B\u590F\u4EE4\u65F6
-Antarctica/Macquarie.generic.long=\u9EA6\u5938\u91CC\u5C9B\u65F6\u95F4
-Antarctica/Macquarie.standard.long=\u9EA6\u5938\u91CC\u5C9B\u65F6\u95F4
-Antarctica/Mawson.generic.long=\u83AB\u68EE\u65F6\u95F4
-Antarctica/McMurdo.generic.long=\u65B0\u897F\u5170\u65F6\u95F4
-Antarctica/Palmer.generic.long=\u667A\u5229\u65F6\u95F4
-Antarctica/Rothera.generic.long=\u7F57\u745F\u62C9\u65F6\u95F4
-Antarctica/South_Pole.generic.long=\u65B0\u897F\u5170\u65F6\u95F4
-Antarctica/Syowa.generic.long=Syowa \u65F6\u95F4
-Antarctica/Vostok.generic.long=\u83AB\u65AF\u6258\u514B\u65F6\u95F4
-Arctic/Longyearbyen.generic.long=\u4E2D\u6B27\u65F6\u95F4
-Asia/Aden.generic.long=\u963F\u62C9\u4F2F\u534A\u5C9B\u65F6\u95F4
-Asia/Almaty.generic.long=Alma-Ata \u65F6\u95F4
-Asia/Amman.generic.long=\u963f\u62c9\u4f2f\u534a\u5c9b\u65f6\u95f4
-Asia/Anadyr.generic.long=\u963F\u90A3\u5E95\u6CB3\u65F6\u95F4
-Asia/Aqtau.generic.long=Aqtau \u65F6\u95F4
-Asia/Aqtobe.generic.long=Aqtobe \u65F6\u95F4
-Asia/Ashgabat.generic.long=\u571F\u5E93\u66FC\u65F6\u95F4
-Asia/Ashkhabad.generic.long=\u571F\u5E93\u66FC\u65F6\u95F4
-Asia/Baghdad.generic.long=\u963F\u62C9\u4F2F\u534A\u5C9B\u65F6\u95F4
-Asia/Bahrain.generic.long=\u963F\u62C9\u4F2F\u534A\u5C9B\u65F6\u95F4
-Asia/Baku.generic.long=\u4E9A\u585E\u62DC\u7136\u65F6\u95F4
-Asia/Bangkok.generic.long=\u5370\u5EA6\u652F\u90A3\u65F6\u95F4
-Asia/Beirut.generic.long=\u4E1C\u6B27\u65F6\u95F4
-Asia/Bishkek.generic.long=\u5409\u5C14\u5409\u65AF\u65AF\u5766\u65F6\u95F4
-Asia/Brunei.generic.long=\u6587\u83B1\u65F6\u95F4
-Asia/Calcutta.generic.long=\u5370\u5EA6\u65F6\u95F4
-Asia/Choibalsan.generic.long=Choibalsan \u65F6\u95F4
-Asia/Chongqing.generic.long=\u4E2D\u56FD\u65F6\u95F4
-Asia/Chungking.generic.long=\u4E2D\u56FD\u65F6\u95F4
-Asia/Colombo.generic.long=\u5370\u5EA6\u65F6\u95F4
-Asia/Dacca.generic.long=\u5B5F\u52A0\u62C9\u65F6\u95F4
-Asia/Damascus.generic.long=\u4E1C\u6B27\u65F6\u95F4
-Asia/Dhaka.generic.long=\u5B5F\u52A0\u62C9\u65F6\u95F4
-Asia/Dili.generic.long=\u4E1C\u5E1D\u6C76\u65F6\u95F4
-Asia/Dubai.generic.long=\u6D77\u6E7E\u65F6\u95F4
-Asia/Dushanbe.generic.long=\u5854\u5409\u514B\u65AF\u5766\u65F6\u95F4
-Asia/Gaza.generic.long=\u4E1C\u6B27\u65F6\u95F4
-Asia/Harbin.generic.long=\u4E2D\u56FD\u65F6\u95F4
-Asia/Hebron.generic.long=\u4E1C\u6B27\u65F6\u95F4
-Asia/Ho_Chi_Minh.generic.long=\u5370\u5EA6\u652F\u90A3\u65F6\u95F4
-Asia/Hong_Kong.generic.long=\u9999\u6E2F\u65F6\u95F4
-Asia/Hovd.generic.long=\u79D1\u5E03\u591A\u65F6\u95F4
-Asia/Irkutsk.generic.long=\u4F0A\u5C14\u5E93\u6B21\u514B\u65F6\u95F4
-Asia/Istanbul.generic.long=\u4E1C\u6B27\u65F6\u95F4
-Asia/Jakarta.generic.long=\u897F\u5370\u5EA6\u5C3C\u897F\u4E9A\u65F6\u95F4
-Asia/Jayapura.generic.long=\u4E1C\u5370\u5EA6\u5C3C\u897F\u4E9A\u65F6\u95F4
-Asia/Jerusalem.generic.long=\u4EE5\u8272\u5217\u65F6\u95F4
-Asia/Kabul.generic.long=\u963F\u5BCC\u6C57\u65F6\u95F4
-Asia/Kamchatka.generic.long=\u5F7C\u5F97\u7F57\u5DF4\u752B\u6D1B\u592B\u65AF\u514B\u65F6\u95F4
-Asia/Karachi.generic.long=\u5DF4\u57FA\u65AF\u5766\u65F6\u95F4
-Asia/Kashgar.generic.long=\u4E2D\u56FD\u65F6\u95F4
-Asia/Kathmandu.generic.long=\u5C3C\u6CCA\u5C14\u65F6\u95F4
-Asia/Katmandu.generic.long=\u5C3C\u6CCA\u5C14\u65F6\u95F4
-Asia/Khandyga.daylight.long=\u6C49\u5FB7\u52A0\u590F\u4EE4\u65F6
-Asia/Khandyga.generic.long=\u6C49\u5FB7\u52A0\u65F6\u95F4
-Asia/Khandyga.standard.long=\u6C49\u5FB7\u52A0\u65F6\u95F4
-Asia/Kolkata.generic.long=\u5370\u5EA6\u65F6\u95F4
-Asia/Krasnoyarsk.generic.long=\u514B\u62C9\u65AF\u8BFA\u4E9A\u5C14\u65AF\u514B\u65F6\u95F4
-Asia/Kuala_Lumpur.generic.long=\u9A6C\u6765\u897F\u4E9A\u65F6\u95F4
-Asia/Kuching.generic.long=\u9A6C\u6765\u897F\u4E9A\u65F6\u95F4
-Asia/Kuwait.generic.long=\u963F\u62C9\u4F2F\u534A\u5C9B\u65F6\u95F4
-Asia/Macao.generic.long=\u4E2D\u56FD\u65F6\u95F4
-Asia/Macau.generic.long=\u4E2D\u56FD\u65F6\u95F4
-Asia/Magadan.generic.long=Magadan \u65F6\u95F4
-Asia/Makassar.generic.long=\u4E2D\u90E8\u5370\u5EA6\u5C3C\u897F\u4E9A\u65F6\u95F4
-Asia/Manila.generic.long=\u83F2\u5F8B\u5BBE\u65F6\u95F4
-Asia/Muscat.generic.long=\u6D77\u6E7E\u65F6\u95F4
-Asia/Nicosia.generic.long=\u4E1C\u6B27\u65F6\u95F4
-Asia/Novokuznetsk.generic.long=Novosibirsk \u65F6\u95F4
-Asia/Novosibirsk.generic.long=Novosibirsk \u65F6\u95F4
-Asia/Omsk.generic.long=\u9102\u6728\u65AF\u514B\u65F6\u95F4
-Asia/Oral.generic.long=Oral \u65F6\u95F4
-Asia/Phnom_Penh.generic.long=\u5370\u5EA6\u652F\u90A3\u65F6\u95F4
-Asia/Pontianak.generic.long=\u897F\u5370\u5EA6\u5C3C\u897F\u4E9A\u65F6\u95F4
-Asia/Pyongyang.generic.long=\u97E9\u56FD\u65F6\u95F4
-Asia/Qatar.generic.long=\u963F\u62C9\u4F2F\u534A\u5C9B\u65F6\u95F4
-Asia/Qyzylorda.generic.long=Qyzylorda \u65F6\u95F4
-Asia/Rangoon.generic.long=\u7F05\u7538\u65F6\u95F4
-Asia/Saigon.generic.long=\u5370\u5EA6\u652F\u90A3\u65F6\u95F4
-Asia/Sakhalin.generic.long=\u5E93\u9875\u5C9B\u65F6\u95F4
-Asia/Samarkand.generic.long=\u4E4C\u5179\u522B\u514B\u65AF\u5766\u65F6\u95F4
-Asia/Seoul.generic.long=\u97E9\u56FD\u65F6\u95F4
-Asia/Shanghai.generic.long=\u4E2D\u56FD\u65F6\u95F4
-Asia/Singapore.generic.long=\u65B0\u52A0\u5761\u65F6\u95F4
-Asia/Taipei.generic.long=\u4E2D\u56FD\u65F6\u95F4
-Asia/Tashkent.generic.long=\u4E4C\u5179\u522B\u514B\u65AF\u5766\u65F6\u95F4
-Asia/Tbilisi.generic.long=\u4E54\u6CBB\u4E9A\u65F6\u95F4
-Asia/Tehran.generic.long=\u4F0A\u6717\u65F6\u95F4
-Asia/Tel_Aviv.generic.long=\u4EE5\u8272\u5217\u65F6\u95F4
-Asia/Thimbu.generic.long=\u4E0D\u4E39\u65F6\u95F4
-Asia/Thimphu.generic.long=\u4E0D\u4E39\u65F6\u95F4
-Asia/Tokyo.generic.long=\u65E5\u672C\u65F6\u95F4
-Asia/Ujung_Pandang.generic.long=\u4E2D\u90E8\u5370\u5EA6\u5C3C\u897F\u4E9A\u65F6\u95F4
-Asia/Ulaanbaatar.generic.long=\u5E93\u4F26\u65F6\u95F4
-Asia/Ulan_Bator.generic.long=\u5E93\u4F26\u65F6\u95F4
-Asia/Urumqi.generic.long=\u4E2D\u56FD\u65F6\u95F4
-Asia/Ust-Nera.daylight.long=\u4E4C\u65AF\u5B63\u6D85\u62C9\u590F\u4EE4\u65F6
-Asia/Ust-Nera.generic.long=\u4E4C\u65AF\u5B63\u6D85\u62C9\u65F6\u95F4
-Asia/Ust-Nera.standard.long=\u4E4C\u65AF\u5B63\u6D85\u62C9\u65F6\u95F4
-Asia/Vientiane.generic.long=\u5370\u5EA6\u652F\u90A3\u65F6\u95F4
-Asia/Vladivostok.generic.long=\u6D77\u53C2\u5D34\u65F6\u95F4
-Asia/Yakutsk.generic.long=\u4E9A\u5E93\u6B21\u514B\u65F6\u95F4
-Asia/Yekaterinburg.generic.long=Yekaterinburg \u65F6\u95F4
-Asia/Yerevan.generic.long=\u4E9A\u7F8E\u5C3C\u4E9A\u65F6\u95F4
-Atlantic/Azores.generic.long=\u4E9A\u901F\u5C14\u7FA4\u5C9B\u65F6\u95F4
-Atlantic/Bermuda.generic.long=\u5927\u897F\u6D0B\u65F6\u95F4
-Atlantic/Canary.generic.long=\u897F\u6B27\u65F6\u95F4
-Atlantic/Cape_Verde.generic.long=\u4F5B\u5FB7\u89D2\u65F6\u95F4
-Atlantic/Faeroe.generic.long=\u897F\u6B27\u65F6\u95F4
-Atlantic/Faroe.generic.long=\u897F\u6B27\u65F6\u95F4
-Atlantic/Jan_Mayen.generic.long=\u4E2D\u6B27\u65F6\u95F4
-Atlantic/Madeira.generic.long=\u897F\u6B27\u65F6\u95F4
-Atlantic/Reykjavik.generic.long=\u683C\u6797\u5A01\u6CBB\u65F6\u95F4
-Atlantic/South_Georgia.generic.long=\u5357\u4E54\u6CBB\u4E9A\u5C9B\u65F6\u95F4
-Atlantic/St_Helena.generic.long=\u683C\u6797\u5A01\u6CBB\u65F6\u95F4
-Atlantic/Stanley.generic.long=\u798F\u514B\u5170\u7FA4\u5C9B\u65F6\u95F4
-Australia/ACT.daylight.long=\u4E1C\u90E8\u590F\u4EE4\u65F6 (\u65B0\u5357\u5A01\u5C14\u65AF)
-Australia/ACT.generic.long=\u4E1C\u90E8\u65F6\u95F4 (\u65B0\u5357\u5A01\u5C14\u65AF)
-Australia/ACT.standard.long=\u4E1C\u90E8\u6807\u51C6\u65F6\u95F4 (\u65B0\u5357\u5A01\u5C14\u65AF)
-Australia/Adelaide.daylight.long=\u4E2D\u592E\u590F\u4EE4\u65F6 (\u5357\u6FB3\u5927\u5229\u4E9A)
-Australia/Adelaide.generic.long=\u4E2D\u90E8\u65F6\u95F4 (\u5357\u6FB3\u5927\u5229\u4E9A)
-Australia/Adelaide.standard.long=\u4E2D\u592E\u6807\u51C6\u65F6\u95F4 (\u5357\u6FB3\u5927\u5229\u4E9A)
-Australia/Brisbane.daylight.long=\u4E1C\u90E8\u590F\u4EE4\u65F6 (\u6606\u58EB\u5170)
-Australia/Brisbane.generic.long=\u4E1C\u90E8\u65F6\u95F4 (\u6606\u58EB\u5170)
-Australia/Brisbane.standard.long=\u4E1C\u90E8\u6807\u51C6\u65F6\u95F4 (\u6606\u58EB\u5170)
-Australia/Broken_Hill.daylight.long=\u4E2D\u592E\u590F\u4EE4\u65F6 (\u5357\u6FB3\u5927\u5229\u4E9A/\u65B0\u5357\u5A01\u5C14\u65AF)
-Australia/Broken_Hill.generic.long=\u4E2D\u90E8\u65F6\u95F4 (\u5357\u6FB3\u5927\u5229\u4E9A/\u65B0\u5357\u5A01\u5C14\u65AF)
-Australia/Broken_Hill.standard.long=\u4E2D\u592E\u6807\u51C6\u65F6\u95F4 (\u5357\u6FB3\u5927\u5229\u4E9A/\u65B0\u5357\u5A01\u5C14\u65AF)
-Australia/Canberra.daylight.long=\u4E1C\u90E8\u590F\u4EE4\u65F6 (\u65B0\u5357\u5A01\u5C14\u65AF)
-Australia/Canberra.generic.long=\u4E1C\u90E8\u65F6\u95F4 (\u65B0\u5357\u5A01\u5C14\u65AF)
-Australia/Canberra.standard.long=\u4E1C\u90E8\u6807\u51C6\u65F6\u95F4 (\u65B0\u5357\u5A01\u5C14\u65AF)
-Australia/Currie.daylight.long=\u4E1C\u90E8\u590F\u4EE4\u65F6 (\u65B0\u5357\u5A01\u5C14\u65AF)
-Australia/Currie.generic.long=\u4E1C\u90E8\u65F6\u95F4 (\u65B0\u5357\u5A01\u5C14\u65AF)
-Australia/Currie.standard.long=\u4E1C\u90E8\u6807\u51C6\u65F6\u95F4 (\u65B0\u5357\u5A01\u5C14\u65AF)
-Australia/Darwin.daylight.long=\u4E2D\u592E\u590F\u4EE4\u65F6 (\u5317\u9886\u5730)
-Australia/Darwin.generic.long=\u4E2D\u90E8\u65F6\u95F4 (\u5317\u90E8\u5730\u533A)
-Australia/Darwin.standard.long=\u4E2D\u592E\u6807\u51C6\u65F6\u95F4 (\u5317\u9886\u5730)
-Australia/Eucla.daylight.long=\u4E2D\u897F\u90E8\u590F\u4EE4\u65F6 (\u6FB3\u5927\u5229\u4E9A)
-Australia/Eucla.generic.long=\u4E2D\u897F\u90E8\u65F6\u95F4 (\u6FB3\u5927\u5229\u4E9A)
-Australia/Eucla.standard.long=\u4E2D\u897F\u90E8\u6807\u51C6\u65F6\u95F4 (\u6FB3\u5927\u5229\u4E9A)
-Australia/Hobart.daylight.long=\u4E1C\u90E8\u590F\u4EE4\u65F6 (\u5854\u65AF\u9A6C\u5C3C\u4E9A)
-Australia/Hobart.generic.long=\u4E1C\u90E8\u65F6\u95F4 (\u5854\u65AF\u9A6C\u5C3C\u4E9A)
-Australia/Hobart.standard.long=\u4E1C\u90E8\u6807\u51C6\u65F6\u95F4 (\u5854\u65AF\u9A6C\u5C3C\u4E9A)
-Australia/LHI.generic.long=\u8C6A\u516C\u65F6\u95F4
-Australia/Lindeman.daylight.long=\u4E1C\u90E8\u590F\u4EE4\u65F6 (\u6606\u58EB\u5170)
-Australia/Lindeman.generic.long=\u4E1C\u90E8\u65F6\u95F4 (\u6606\u58EB\u5170)
-Australia/Lindeman.standard.long=\u4E1C\u90E8\u6807\u51C6\u65F6\u95F4 (\u6606\u58EB\u5170)
-Australia/Lord_Howe.generic.long=\u8C6A\u516C\u65F6\u95F4
-Australia/Melbourne.daylight.long=\u4E1C\u90E8\u590F\u4EE4\u65F6 (\u7EF4\u591A\u5229\u4E9A)
-Australia/Melbourne.generic.long=\u4E1C\u90E8\u65F6\u95F4 (\u7EF4\u591A\u5229\u4E9A)
-Australia/Melbourne.standard.long=\u4E1C\u90E8\u6807\u51C6\u65F6\u95F4 (\u7EF4\u591A\u5229\u4E9A)
-Australia/NSW.daylight.long=\u4E1C\u90E8\u590F\u4EE4\u65F6 (\u65B0\u5357\u5A01\u5C14\u65AF)
-Australia/NSW.generic.long=\u4E1C\u90E8\u65F6\u95F4 (\u65B0\u5357\u5A01\u5C14\u65AF)
-Australia/NSW.standard.long=\u4E1C\u90E8\u6807\u51C6\u65F6\u95F4 (\u65B0\u5357\u5A01\u5C14\u65AF)
-Australia/North.daylight.long=\u4E2D\u592E\u590F\u4EE4\u65F6 (\u5317\u9886\u5730)
-Australia/North.generic.long=\u4E2D\u90E8\u65F6\u95F4 (\u5317\u90E8\u5730\u533A)
-Australia/North.standard.long=\u4E2D\u592E\u6807\u51C6\u65F6\u95F4 (\u5317\u9886\u5730)
-Australia/Perth.daylight.long=\u897F\u90E8\u590F\u4EE4\u65F6 (\u6FB3\u5927\u5229\u4E9A)
-Australia/Perth.generic.long=\u897F\u90E8\u65F6\u95F4 (\u6FB3\u5927\u5229\u4E9A)
-Australia/Perth.standard.long=\u897F\u90E8\u6807\u51C6\u65F6\u95F4 (\u6FB3\u5927\u5229\u4E9A)
-Australia/Queensland.daylight.long=\u4E1C\u90E8\u590F\u4EE4\u65F6 (\u6606\u58EB\u5170)
-Australia/Queensland.generic.long=\u4E1C\u90E8\u65F6\u95F4 (\u6606\u58EB\u5170)
-Australia/Queensland.standard.long=\u4E1C\u90E8\u6807\u51C6\u65F6\u95F4 (\u6606\u58EB\u5170)
-Australia/South.daylight.long=\u4E2D\u592E\u590F\u4EE4\u65F6 (\u5357\u6FB3\u5927\u5229\u4E9A)
-Australia/South.generic.long=\u4E2D\u90E8\u65F6\u95F4 (\u5357\u6FB3\u5927\u5229\u4E9A)
-Australia/South.standard.long=\u4E2D\u592E\u6807\u51C6\u65F6\u95F4 (\u5357\u6FB3\u5927\u5229\u4E9A)
-Australia/Sydney.daylight.long=\u4E1C\u90E8\u590F\u4EE4\u65F6 (\u65B0\u5357\u5A01\u5C14\u65AF)
-Australia/Sydney.generic.long=\u4E1C\u90E8\u65F6\u95F4 (\u65B0\u5357\u5A01\u5C14\u65AF)
-Australia/Sydney.standard.long=\u4E1C\u90E8\u6807\u51C6\u65F6\u95F4 (\u65B0\u5357\u5A01\u5C14\u65AF)
-Australia/Tasmania.daylight.long=\u4E1C\u90E8\u590F\u4EE4\u65F6 (\u5854\u65AF\u9A6C\u5C3C\u4E9A)
-Australia/Tasmania.generic.long=\u4E1C\u90E8\u65F6\u95F4 (\u5854\u65AF\u9A6C\u5C3C\u4E9A)
-Australia/Tasmania.standard.long=\u4E1C\u90E8\u6807\u51C6\u65F6\u95F4 (\u5854\u65AF\u9A6C\u5C3C\u4E9A)
-Australia/Victoria.daylight.long=\u4E1C\u90E8\u590F\u4EE4\u65F6 (\u7EF4\u591A\u5229\u4E9A)
-Australia/Victoria.generic.long=\u4E1C\u90E8\u65F6\u95F4 (\u7EF4\u591A\u5229\u4E9A)
-Australia/Victoria.standard.long=\u4E1C\u90E8\u6807\u51C6\u65F6\u95F4 (\u7EF4\u591A\u5229\u4E9A)
-Australia/West.daylight.long=\u897F\u90E8\u590F\u4EE4\u65F6 (\u6FB3\u5927\u5229\u4E9A)
-Australia/West.generic.long=\u897F\u90E8\u65F6\u95F4 (\u6FB3\u5927\u5229\u4E9A)
-Australia/West.standard.long=\u897F\u90E8\u6807\u51C6\u65F6\u95F4 (\u6FB3\u5927\u5229\u4E9A)
-Australia/Yancowinna.daylight.long=\u4E2D\u592E\u590F\u4EE4\u65F6 (\u5357\u6FB3\u5927\u5229\u4E9A/\u65B0\u5357\u5A01\u5C14\u65AF)
-Australia/Yancowinna.generic.long=\u4E2D\u90E8\u65F6\u95F4 (\u5357\u6FB3\u5927\u5229\u4E9A/\u65B0\u5357\u5A01\u5C14\u65AF)
-Australia/Yancowinna.standard.long=\u4E2D\u592E\u6807\u51C6\u65F6\u95F4 (\u5357\u6FB3\u5927\u5229\u4E9A/\u65B0\u5357\u5A01\u5C14\u65AF)
-BET.generic.long=\u5DF4\u897F\u5229\u4E9A\u65F6\u95F4
-BST.generic.long=\u5B5F\u52A0\u62C9\u65F6\u95F4
-Brazil/Acre.generic.long=Acre \u65f6\u95f4
-Brazil/DeNoronha.generic.long=\u8D39\u5C14\u5357\u591A\u5FB7\u8BFA\u7F57\u5C3C\u4E9A\u65F6\u95F4
-Brazil/East.generic.long=\u5DF4\u897F\u5229\u4E9A\u65F6\u95F4
-Brazil/West.generic.long=\u4E9A\u9A6C\u900A\u65F6\u95F4
-CAT.generic.long=\u4E2D\u975E\u65F6\u95F4
-CET.generic.long=\u4e2d\u6b27\u65f6\u95f4
-CNT.generic.long=\u7EBD\u82AC\u5170\u65F6\u95F4
-CST.generic.long=\u4E2D\u90E8\u65F6\u95F4
-CST6CDT.generic.long=\u4e2d\u90e8\u65f6\u95f4
-CTT.generic.long=\u4E2D\u56FD\u65F6\u95F4
-Canada/Atlantic.generic.long=\u5927\u897F\u6D0B\u65F6\u95F4
-Canada/Central.generic.long=\u4E2D\u90E8\u65F6\u95F4
-Canada/East-Saskatchewan.generic.long=\u4E2D\u90E8\u65F6\u95F4
-Canada/Eastern.generic.long=\u4E1C\u90E8\u65F6\u95F4
-Canada/Mountain.generic.long=\u5C71\u5730\u65F6\u95F4
-Canada/Newfoundland.generic.long=\u7EBD\u82AC\u5170\u65F6\u95F4
-Canada/Pacific.generic.long=\u592A\u5E73\u6D0B\u65F6\u95F4
-Canada/Saskatchewan.generic.long=\u4E2D\u90E8\u65F6\u95F4
-Canada/Yukon.generic.long=\u592A\u5E73\u6D0B\u65F6\u95F4
-Chile/Continental.generic.long=\u667A\u5229\u65F6\u95F4
-Chile/EasterIsland.generic.long=\u590D\u6D3B\u5C9B\u65F6\u95F4
-Cuba.generic.long=\u53E4\u5DF4\u65F6\u95F4
-EAT.generic.long=\u4E1C\u975E\u65F6\u95F4
-ECT.generic.long=\u4E2D\u6B27\u65F6\u95F4
-EET.generic.long=\u4e1c\u6b27\u65f6\u95f4
-EST.generic.long=\u4e1c\u90e8\u65f6\u95f4
-EST5EDT.generic.long=\u4e1c\u90e8\u65f6\u95f4
-Egypt.generic.long=\u4E1C\u6B27\u65F6\u95F4
-Eire.generic.long=\u7231\u5C14\u5170\u65F6\u95F4
-Etc/Greenwich.generic.long=\u683C\u6797\u5A01\u6CBB\u65F6\u95F4
-Etc/UCT.generic.long=\u534F\u8C03\u4E16\u754C\u65F6\u95F4
-Etc/UTC.generic.long=\u534F\u8C03\u4E16\u754C\u65F6\u95F4
-Etc/Universal.generic.long=\u534F\u8C03\u4E16\u754C\u65F6\u95F4
-Etc/Zulu.generic.long=\u534F\u8C03\u4E16\u754C\u65F6\u95F4
-Europe/Amsterdam.generic.long=\u4E2D\u6B27\u65F6\u95F4
-Europe/Andorra.generic.long=\u4E2D\u6B27\u65F6\u95F4
-Europe/Athens.generic.long=\u4E1C\u6B27\u65F6\u95F4
-Europe/Belfast.generic.long=\u82F1\u56FD\u65F6\u95F4
-Europe/Belgrade.generic.long=\u4E2D\u6B27\u65F6\u95F4
-Europe/Berlin.generic.long=\u4E2D\u6B27\u65F6\u95F4
-Europe/Bratislava.generic.long=\u4E2D\u6B27\u65F6\u95F4
-Europe/Brussels.generic.long=\u4E2D\u6B27\u65F6\u95F4
-Europe/Bucharest.generic.long=\u4E1C\u6B27\u65F6\u95F4
-Europe/Budapest.generic.long=\u4E2D\u6B27\u65F6\u95F4
-Europe/Busingen.generic.long=\u4E2D\u6B27\u65F6\u95F4
-Europe/Chisinau.generic.long=\u4E1C\u6B27\u65F6\u95F4
-Europe/Copenhagen.generic.long=\u4E2D\u6B27\u65F6\u95F4
-Europe/Dublin.generic.long=\u7231\u5C14\u5170\u65F6\u95F4
-Europe/Gibraltar.generic.long=\u4E2D\u6B27\u65F6\u95F4
-Europe/Guernsey.generic.long=\u82F1\u56FD\u65F6\u95F4
-Europe/Helsinki.generic.long=\u4E1C\u6B27\u65F6\u95F4
-Europe/Isle_of_Man.generic.long=\u82F1\u56FD\u65F6\u95F4
-Europe/Istanbul.generic.long=\u4E1C\u6B27\u65F6\u95F4
-Europe/Jersey.generic.long=\u82F1\u56FD\u65F6\u95F4
-Europe/Kaliningrad.daylight.long=\u8FDC\u4E1C\u6B27\u590F\u4EE4\u65F6
-Europe/Kaliningrad.generic.long=\u8FDC\u4E1C\u6B27\u65F6\u95F4
-Europe/Kaliningrad.standard.long=\u8FDC\u4E1C\u6B27\u65F6\u95F4
-Europe/Kiev.generic.long=\u4E1C\u6B27\u65F6\u95F4
-Europe/Lisbon.generic.long=\u897F\u6B27\u65F6\u95F4
-Europe/Ljubljana.generic.long=\u4E2D\u6B27\u65F6\u95F4
-Europe/London.generic.long=\u82F1\u56FD\u65F6\u95F4
-Europe/Luxembourg.generic.long=\u4E2D\u6B27\u65F6\u95F4
-Europe/Madrid.generic.long=\u4E2D\u6B27\u65F6\u95F4
-Europe/Malta.generic.long=\u4E2D\u6B27\u65F6\u95F4
-Europe/Mariehamn.generic.long=\u4E1C\u6B27\u65F6\u95F4
-Europe/Minsk.daylight.long=\u8FDC\u4E1C\u6B27\u590F\u4EE4\u65F6
-Europe/Minsk.generic.long=\u8FDC\u4E1C\u6B27\u65F6\u95F4
-Europe/Minsk.standard.long=\u8FDC\u4E1C\u6B27\u65F6\u95F4
-Europe/Monaco.generic.long=\u4E2D\u6B27\u65F6\u95F4
-Europe/Moscow.generic.long=\u83AB\u65AF\u79D1\u65F6\u95F4
-Europe/Nicosia.generic.long=\u4E1C\u6B27\u65F6\u95F4
-Europe/Oslo.generic.long=\u4E2D\u6B27\u65F6\u95F4
-Europe/Paris.generic.long=\u4E2D\u6B27\u65F6\u95F4
-Europe/Podgorica.generic.long=\u4E2D\u6B27\u65F6\u95F4
-Europe/Prague.generic.long=\u4E2D\u6B27\u65F6\u95F4
-Europe/Riga.generic.long=\u4E1C\u6B27\u65F6\u95F4
-Europe/Rome.generic.long=\u4E2D\u6B27\u65F6\u95F4
-Europe/Samara.generic.long=\u6C99\u9A6C\u62C9\u65F6\u95F4
-Europe/San_Marino.generic.long=\u4E2D\u6B27\u65F6\u95F4
-Europe/Sarajevo.generic.long=\u4E2D\u6B27\u65F6\u95F4
-Europe/Simferopol.generic.long=\u4E1C\u6B27\u65F6\u95F4
-Europe/Skopje.generic.long=\u4E2D\u6B27\u65F6\u95F4
-Europe/Sofia.generic.long=\u4E1C\u6B27\u65F6\u95F4
-Europe/Stockholm.generic.long=\u4E2D\u6B27\u65F6\u95F4
-Europe/Tallinn.generic.long=\u4E1C\u6B27\u65F6\u95F4
-Europe/Tirane.generic.long=\u4E2D\u6B27\u65F6\u95F4
-Europe/Tiraspol.generic.long=\u4E1C\u6B27\u65F6\u95F4
-Europe/Uzhgorod.generic.long=\u4E1C\u6B27\u65F6\u95F4
-Europe/Vaduz.generic.long=\u4E2D\u6B27\u65F6\u95F4
-Europe/Vatican.generic.long=\u4E2D\u6B27\u65F6\u95F4
-Europe/Vienna.generic.long=\u4E2D\u6B27\u65F6\u95F4
-Europe/Vilnius.generic.long=\u4E1C\u6B27\u65F6\u95F4
-Europe/Volgograd.generic.long=\u4F0F\u5C14\u52A0\u683C\u52D2\u65F6\u95F4
-Europe/Warsaw.generic.long=\u4E2D\u6B27\u65F6\u95F4
-Europe/Zagreb.generic.long=\u4E2D\u6B27\u65F6\u95F4
-Europe/Zaporozhye.generic.long=\u4E1C\u6B27\u65F6\u95F4
-Europe/Zurich.generic.long=\u4E2D\u6B27\u65F6\u95F4
-GB-Eire.generic.long=\u82F1\u56FD\u65F6\u95F4
-GB.generic.long=\u82F1\u56FD\u65F6\u95F4
-GMT.generic.long=\u683C\u6797\u5A01\u6CBB\u65F6\u95F4
-Greenwich.generic.long=\u683C\u6797\u5A01\u6CBB\u65F6\u95F4
-HST.generic.long=\u590f\u5a01\u5937\u65f6\u95f4
-Hongkong.generic.long=\u9999\u6E2F\u65F6\u95F4
-IET.generic.long=\u4E1C\u90E8\u65F6\u95F4
-IST.generic.long=\u5370\u5EA6\u65F6\u95F4
-Iceland.generic.long=\u683C\u6797\u5A01\u6CBB\u65F6\u95F4
-Indian/Antananarivo.generic.long=\u4E1C\u975E\u65F6\u95F4
-Indian/Chagos.generic.long=\u5370\u5EA6\u6D0B\u5730\u5E26\u65F6\u95F4
-Indian/Christmas.generic.long=\u5723\u8BDE\u5C9B\u65F6\u95F4
-Indian/Cocos.generic.long=\u53EF\u53EF\u65AF\u7FA4\u5C9B\u65F6\u95F4
-Indian/Comoro.generic.long=\u4E1C\u975E\u65F6\u95F4
-Indian/Kerguelen.generic.long=\u6CD5\u5C5E\u5357\u6781\u65F6\u95F4
-Indian/Mahe.generic.long=\u585E\u5E2D\u5C14\u7FA4\u5C9B\u65F6\u95F4
-Indian/Maldives.generic.long=\u9A6C\u5C14\u4EE3\u592B\u65F6\u95F4
-Indian/Mauritius.generic.long=\u6469\u91CC\u897F\u65AF\u65F6\u95F4
-Indian/Mayotte.generic.long=\u4E1C\u975E\u65F6\u95F4
-Indian/Reunion.generic.long=\u7559\u5C3C\u65FA\u5C9B\u65F6\u95F4
-Iran.generic.long=\u4F0A\u6717\u65F6\u95F4
-Israel.generic.long=\u4EE5\u8272\u5217\u65F6\u95F4
-JST.generic.long=\u65E5\u672C\u65F6\u95F4
-Jamaica.generic.long=\u4E1C\u90E8\u65F6\u95F4
-Japan.generic.long=\u65E5\u672C\u65F6\u95F4
-Kwajalein.generic.long=\u9A6C\u7ECD\u5C14\u7FA4\u5C9B\u65F6\u95F4
-Libya.generic.long=\u4e1c\u6b27\u65f6\u95f4
-MET.generic.long=MET
-MIT.generic.long=\u897F\u8428\u6469\u4E9A\u65F6\u95F4
-MST.generic.long=\u5c71\u5730\u65f6\u95f4
-MST7MDT.generic.long=\u5c71\u5730\u65f6\u95f4
-Mexico/BajaNorte.generic.long=\u592A\u5E73\u6D0B\u65F6\u95F4
-Mexico/BajaSur.generic.long=\u5C71\u5730\u65F6\u95F4
-Mexico/General.generic.long=\u4E2D\u90E8\u65F6\u95F4
-NET.generic.long=\u4E9A\u7F8E\u5C3C\u4E9A\u65F6\u95F4
-NST.generic.long=\u65B0\u897F\u5170\u65F6\u95F4
-NZ-CHAT.generic.long=\u67E5\u5854\u59C6\u65F6\u95F4
-NZ.generic.long=\u65B0\u897F\u5170\u65F6\u95F4
-Navajo.generic.long=\u5C71\u5730\u65F6\u95F4
-PLT.generic.long=\u5DF4\u57FA\u65AF\u5766\u65F6\u95F4
-PNT.generic.long=\u5C71\u5730\u65F6\u95F4
-PRC.generic.long=\u4E2D\u56FD\u65F6\u95F4
-PRT.generic.long=\u5927\u897F\u6D0B\u65F6\u95F4
-PST.generic.long=\u592A\u5E73\u6D0B\u65F6\u95F4
-PST8PDT.generic.long=\u592a\u5e73\u6d0b\u65f6\u95f4
-Pacific/Apia.generic.long=\u897F\u8428\u6469\u4E9A\u65F6\u95F4
-Pacific/Auckland.generic.long=\u65B0\u897F\u5170\u65F6\u95F4
-Pacific/Chatham.generic.long=\u67E5\u5854\u59C6\u65F6\u95F4
-Pacific/Chuuk.daylight.long=\u4E18\u514B\u590F\u4EE4\u65F6
-Pacific/Chuuk.generic.long=\u4E18\u514B\u65F6\u95F4
-Pacific/Chuuk.standard.long=\u4E18\u514B\u65F6\u95F4
-Pacific/Easter.generic.long=\u590D\u6D3B\u5C9B\u65F6\u95F4
-Pacific/Efate.generic.long=\u74E6\u5974\u963F\u56FE\u65F6\u95F4
-Pacific/Enderbury.generic.long=\u83F2\u5C3C\u514B\u65AF\u7FA4\u5C9B\u65F6\u95F4
-Pacific/Fakaofo.generic.long=\u6258\u514B\u52B3\u7FA4\u5C9B\u65F6\u95F4
-Pacific/Fiji.generic.long=\u6590\u6D4E\u65F6\u95F4
-Pacific/Funafuti.generic.long=\u5410\u9C81\u74E6\u65F6\u95F4
-Pacific/Galapagos.generic.long=\u52A0\u62C9\u5DF4\u54E5\u65F6\u95F4
-Pacific/Gambier.generic.long=\u5188\u6BD4\u4E9A\u65F6\u95F4
-Pacific/Guadalcanal.generic.long=\u6240\u7F57\u95E8\u7FA4\u5C9B\u65F6\u95F4
-Pacific/Guam.generic.long=\u67E5\u6469\u6D1B\u65F6\u95F4
-Pacific/Honolulu.generic.long=\u590F\u5A01\u5937\u65F6\u95F4
-Pacific/Johnston.generic.long=\u590F\u5A01\u5937\u65F6\u95F4
-Pacific/Kiritimati.generic.long=Line \u5C9B\u65F6\u95F4
-Pacific/Kosrae.generic.long=Kosrae \u65F6\u95F4
-Pacific/Kwajalein.generic.long=\u9A6C\u7ECD\u5C14\u7FA4\u5C9B\u65F6\u95F4
-Pacific/Majuro.generic.long=\u9A6C\u7ECD\u5C14\u7FA4\u5C9B\u65F6\u95F4
-Pacific/Marquesas.generic.long=\u9A6C\u514B\u8428\u65AF\u65F6\u95F4
-Pacific/Midway.generic.long=\u8428\u6469\u4E9A\u65F6\u95F4
-Pacific/Nauru.generic.long=\u8BFA\u9C81\u65F6\u95F4
-Pacific/Niue.generic.long=\u7EBD\u5A01\u5C9B\u65F6\u95F4
-Pacific/Norfolk.generic.long=\u8BFA\u798F\u514B\u65F6\u95F4
-Pacific/Noumea.generic.long=\u65B0\u52A0\u52D2\u591A\u5C3C\u4E9A\u65F6\u95F4
-Pacific/Pago_Pago.generic.long=\u8428\u6469\u4E9A\u65F6\u95F4
-Pacific/Palau.generic.long=\u5E1B\u7409\u65F6\u95F4
-Pacific/Pitcairn.generic.long=\u76AE\u7279\u51EF\u6069\u65F6\u95F4
-Pacific/Pohnpei.daylight.long=\u6CE2\u7EB3\u4F69\u590F\u4EE4\u65F6
-Pacific/Pohnpei.generic.long=\u6CE2\u7EB3\u4F69\u65F6\u95F4
-Pacific/Pohnpei.standard.long=\u6CE2\u7EB3\u4F69\u65F6\u95F4
-Pacific/Ponape.daylight.long=\u6CE2\u7EB3\u4F69\u590F\u4EE4\u65F6
-Pacific/Ponape.generic.long=\u6CE2\u7EB3\u4F69\u65F6\u95F4
-Pacific/Ponape.standard.long=\u6CE2\u7EB3\u4F69\u65F6\u95F4
-Pacific/Port_Moresby.generic.long=\u5DF4\u5E03\u4E9A\u65B0\u51E0\u5185\u4E9A\u65F6\u95F4
-Pacific/Rarotonga.generic.long=\u5E93\u514B\u7FA4\u5C9B\u65F6\u95F4
-Pacific/Saipan.generic.long=\u67E5\u6469\u6D1B\u65F6\u95F4
-Pacific/Samoa.generic.long=\u8428\u6469\u4E9A\u65F6\u95F4
-Pacific/Tahiti.generic.long=\u5927\u6EAA\u5730\u5C9B\u65F6\u95F4
-Pacific/Tarawa.generic.long=\u5409\u4F2F\u7279\u7FA4\u5C9B\u65F6\u95F4
-Pacific/Tongatapu.generic.long=\u4E1C\u52A0\u65F6\u95F4
-Pacific/Truk.daylight.long=\u4E18\u514B\u590F\u4EE4\u65F6
-Pacific/Truk.generic.long=\u4E18\u514B\u65F6\u95F4
-Pacific/Truk.standard.long=\u4E18\u514B\u65F6\u95F4
-Pacific/Wake.generic.long=\u5A01\u514B\u65F6\u95F4
-Pacific/Wallis.generic.long=\u74E6\u5229\u65AF\u53CA\u798F\u675C\u7EB3\u7FA4\u5C9B\u65F6\u95F4
-Pacific/Yap.daylight.long=\u4E18\u514B\u590F\u4EE4\u65F6
-Pacific/Yap.generic.long=\u4E18\u514B\u65F6\u95F4
-Pacific/Yap.standard.long=\u4E18\u514B\u65F6\u95F4
-Poland.generic.long=\u4E2D\u6B27\u65F6\u95F4
-Portugal.generic.long=\u897F\u6B27\u65F6\u95F4
-ROK.generic.long=\u97E9\u56FD\u65F6\u95F4
-SST.generic.long=\u6240\u7F57\u95E8\u7FA4\u5C9B\u65F6\u95F4
-Singapore.generic.long=\u65B0\u52A0\u5761\u65F6\u95F4
-SystemV/AST4.generic.long=\u5927\u897F\u6D0B\u65F6\u95F4
-SystemV/AST4ADT.generic.long=\u5927\u897F\u6D0B\u65F6\u95F4
-SystemV/CST6.generic.long=\u4E2D\u90E8\u65F6\u95F4
-SystemV/CST6CDT.generic.long=\u4E2D\u90E8\u65F6\u95F4
-SystemV/EST5.generic.long=\u4E1C\u90E8\u65F6\u95F4
-SystemV/EST5EDT.generic.long=\u4E1C\u90E8\u65F6\u95F4
-SystemV/HST10.generic.long=\u590F\u5A01\u5937\u65F6\u95F4
-SystemV/MST7.generic.long=\u5C71\u5730\u65F6\u95F4
-SystemV/MST7MDT.generic.long=\u5C71\u5730\u65F6\u95F4
-SystemV/PST8.generic.long=\u592A\u5E73\u6D0B\u65F6\u95F4
-SystemV/PST8PDT.generic.long=\u592A\u5E73\u6D0B\u65F6\u95F4
-SystemV/YST9.generic.long=\u963F\u62C9\u65AF\u52A0\u65F6\u95F4
-SystemV/YST9YDT.generic.long=\u963F\u62C9\u65AF\u52A0\u65F6\u95F4
-Turkey.generic.long=\u4E1C\u6B27\u65F6\u95F4
-UCT.generic.long=\u534F\u8C03\u4E16\u754C\u65F6\u95F4
-US/Alaska.generic.long=\u963F\u62C9\u65AF\u52A0\u65F6\u95F4
-US/Aleutian.generic.long=\u590F\u5A01\u5937-\u963F\u7559\u7533\u65F6\u95F4
-US/Arizona.generic.long=\u5C71\u5730\u65F6\u95F4
-US/Central.generic.long=\u4E2D\u90E8\u65F6\u95F4
-US/East-Indiana.generic.long=\u4E1C\u90E8\u65F6\u95F4
-US/Eastern.generic.long=\u4E1C\u90E8\u65F6\u95F4
-US/Hawaii.generic.long=\u590F\u5A01\u5937\u65F6\u95F4
-US/Indiana-Starke.generic.long=\u4E2D\u90E8\u65F6\u95F4
-US/Michigan.generic.long=\u4E1C\u90E8\u65F6\u95F4
-US/Mountain.generic.long=\u5C71\u5730\u65F6\u95F4
-US/Pacific-New.generic.long=\u592A\u5E73\u6D0B\u65F6\u95F4
-US/Pacific.generic.long=\u592A\u5E73\u6D0B\u65F6\u95F4
-US/Samoa.generic.long=\u8428\u6469\u4E9A\u65F6\u95F4
-UTC.generic.long=\u534F\u8C03\u4E16\u754C\u65F6\u95F4
-Universal.generic.long=\u534F\u8C03\u4E16\u754C\u65F6\u95F4
-VST.generic.long=\u5370\u5EA6\u652F\u90A3\u65F6\u95F4
-W-SU.generic.long=\u83AB\u65AF\u79D1\u65F6\u95F4
-WET.generic.long=\u897f\u6b27\u65f6\u95f4
-Zulu.generic.long=\u534F\u8C03\u4E16\u754C\u65F6\u95F4
diff --git a/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_zh_CN_short.properties b/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_zh_CN_short.properties
deleted file mode 100644
index 095522a68d1..00000000000
--- a/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_zh_CN_short.properties
+++ /dev/null
@@ -1,1743 +0,0 @@
-ACT.daylight.short=CST
-ACT.generic.short=CT
-ACT.standard.short=CST
-AET.daylight.short=EST
-AET.generic.short=ET
-AET.standard.short=EST
-Africa/Abidjan.daylight.short=GMT
-Africa/Abidjan.generic.short=GMT
-Africa/Abidjan.standard.short=GMT
-Africa/Accra.daylight.short=GHST
-Africa/Accra.generic.short=GMT
-Africa/Accra.standard.short=GMT
-Africa/Addis_Ababa.daylight.short=EAST
-Africa/Addis_Ababa.generic.short=EAT
-Africa/Addis_Ababa.standard.short=EAT
-Africa/Algiers.daylight.short=CEST
-Africa/Algiers.generic.short=CET
-Africa/Algiers.standard.short=CET
-Africa/Asmara.daylight.short=EAST
-Africa/Asmara.generic.short=EAT
-Africa/Asmara.standard.short=EAT
-Africa/Asmera.daylight.short=EAST
-Africa/Asmera.generic.short=EAT
-Africa/Asmera.standard.short=EAT
-Africa/Bamako.daylight.short=GMT
-Africa/Bamako.generic.short=GMT
-Africa/Bamako.standard.short=GMT
-Africa/Bangui.daylight.short=WAST
-Africa/Bangui.generic.short=WAT
-Africa/Bangui.standard.short=WAT
-Africa/Banjul.daylight.short=GMT
-Africa/Banjul.generic.short=GMT
-Africa/Banjul.standard.short=GMT
-Africa/Bissau.daylight.short=GMT
-Africa/Bissau.generic.short=GMT
-Africa/Bissau.standard.short=GMT
-Africa/Blantyre.daylight.short=CAST
-Africa/Blantyre.generic.short=CAT
-Africa/Blantyre.standard.short=CAT
-Africa/Brazzaville.daylight.short=WAST
-Africa/Brazzaville.generic.short=WAT
-Africa/Brazzaville.standard.short=WAT
-Africa/Bujumbura.daylight.short=CAST
-Africa/Bujumbura.generic.short=CAT
-Africa/Bujumbura.standard.short=CAT
-Africa/Cairo.daylight.short=EEST
-Africa/Cairo.generic.short=EET
-Africa/Cairo.standard.short=EET
-Africa/Casablanca.daylight.short=WEST
-Africa/Casablanca.generic.short=WET
-Africa/Casablanca.standard.short=WET
-Africa/Ceuta.daylight.short=CEST
-Africa/Ceuta.generic.short=CET
-Africa/Ceuta.standard.short=CET
-Africa/Conakry.daylight.short=GMT
-Africa/Conakry.generic.short=GMT
-Africa/Conakry.standard.short=GMT
-Africa/Dakar.daylight.short=GMT
-Africa/Dakar.generic.short=GMT
-Africa/Dakar.standard.short=GMT
-Africa/Dar_es_Salaam.daylight.short=EAST
-Africa/Dar_es_Salaam.generic.short=EAT
-Africa/Dar_es_Salaam.standard.short=EAT
-Africa/Djibouti.daylight.short=EAST
-Africa/Djibouti.generic.short=EAT
-Africa/Djibouti.standard.short=EAT
-Africa/Douala.daylight.short=WAST
-Africa/Douala.generic.short=WAT
-Africa/Douala.standard.short=WAT
-Africa/El_Aaiun.daylight.short=WEST
-Africa/El_Aaiun.generic.short=WET
-Africa/El_Aaiun.standard.short=WET
-Africa/Freetown.daylight.short=SLST
-Africa/Freetown.generic.short=SLT
-Africa/Freetown.standard.short=GMT
-Africa/Gaborone.daylight.short=CAST
-Africa/Gaborone.generic.short=CAT
-Africa/Gaborone.standard.short=CAT
-Africa/Harare.daylight.short=CAST
-Africa/Harare.generic.short=CAT
-Africa/Harare.standard.short=CAT
-Africa/Johannesburg.daylight.short=SAST
-Africa/Johannesburg.generic.short=SAT
-Africa/Johannesburg.standard.short=SAST
-Africa/Juba.daylight.short=EAST
-Africa/Juba.generic.short=EAT
-Africa/Juba.standard.short=EAT
-Africa/Kampala.daylight.short=EAST
-Africa/Kampala.generic.short=EAT
-Africa/Kampala.standard.short=EAT
-Africa/Khartoum.daylight.short=EAST
-Africa/Khartoum.generic.short=EAT
-Africa/Khartoum.standard.short=EAT
-Africa/Kigali.daylight.short=CAST
-Africa/Kigali.generic.short=CAT
-Africa/Kigali.standard.short=CAT
-Africa/Kinshasa.daylight.short=WAST
-Africa/Kinshasa.generic.short=WAT
-Africa/Kinshasa.standard.short=WAT
-Africa/Lagos.daylight.short=WAST
-Africa/Lagos.generic.short=WAT
-Africa/Lagos.standard.short=WAT
-Africa/Libreville.daylight.short=WAST
-Africa/Libreville.generic.short=WAT
-Africa/Libreville.standard.short=WAT
-Africa/Lome.daylight.short=GMT
-Africa/Lome.generic.short=GMT
-Africa/Lome.standard.short=GMT
-Africa/Luanda.daylight.short=WAST
-Africa/Luanda.generic.short=WAT
-Africa/Luanda.standard.short=WAT
-Africa/Lubumbashi.daylight.short=CAST
-Africa/Lubumbashi.generic.short=CAT
-Africa/Lubumbashi.standard.short=CAT
-Africa/Lusaka.daylight.short=CAST
-Africa/Lusaka.generic.short=CAT
-Africa/Lusaka.standard.short=CAT
-Africa/Malabo.daylight.short=WAST
-Africa/Malabo.generic.short=WAT
-Africa/Malabo.standard.short=WAT
-Africa/Maputo.daylight.short=CAST
-Africa/Maputo.generic.short=CAT
-Africa/Maputo.standard.short=CAT
-Africa/Maseru.daylight.short=SAST
-Africa/Maseru.generic.short=SAT
-Africa/Maseru.standard.short=SAST
-Africa/Mbabane.daylight.short=SAST
-Africa/Mbabane.generic.short=SAT
-Africa/Mbabane.standard.short=SAST
-Africa/Mogadishu.daylight.short=EAST
-Africa/Mogadishu.generic.short=EAT
-Africa/Mogadishu.standard.short=EAT
-Africa/Monrovia.daylight.short=GMT
-Africa/Monrovia.generic.short=GMT
-Africa/Monrovia.standard.short=GMT
-Africa/Nairobi.daylight.short=EAST
-Africa/Nairobi.generic.short=EAT
-Africa/Nairobi.standard.short=EAT
-Africa/Ndjamena.daylight.short=WAST
-Africa/Ndjamena.generic.short=WAT
-Africa/Ndjamena.standard.short=WAT
-Africa/Niamey.daylight.short=WAST
-Africa/Niamey.generic.short=WAT
-Africa/Niamey.standard.short=WAT
-Africa/Nouakchott.daylight.short=GMT
-Africa/Nouakchott.generic.short=GMT
-Africa/Nouakchott.standard.short=GMT
-Africa/Ouagadougou.daylight.short=GMT
-Africa/Ouagadougou.generic.short=GMT
-Africa/Ouagadougou.standard.short=GMT
-Africa/Porto-Novo.daylight.short=WAST
-Africa/Porto-Novo.generic.short=WAT
-Africa/Porto-Novo.standard.short=WAT
-Africa/Sao_Tome.daylight.short=GMT
-Africa/Sao_Tome.generic.short=GMT
-Africa/Sao_Tome.standard.short=GMT
-Africa/Timbuktu.daylight.short=GMT
-Africa/Timbuktu.generic.short=GMT
-Africa/Timbuktu.standard.short=GMT
-Africa/Tripoli.daylight.short=EEST
-Africa/Tripoli.generic.short=EET
-Africa/Tripoli.standard.short=EET
-Africa/Tunis.daylight.short=CEST
-Africa/Tunis.generic.short=CET
-Africa/Tunis.standard.short=CET
-Africa/Windhoek.daylight.short=WAST
-Africa/Windhoek.generic.short=WAT
-Africa/Windhoek.standard.short=WAT
-AGT.daylight.short=ARST
-AGT.generic.short=ART
-AGT.standard.short=ART
-America/Adak.daylight.short=HADT
-America/Adak.generic.short=HAT
-America/Adak.standard.short=HAST
-America/Anchorage.daylight.short=AKDT
-America/Anchorage.generic.short=AKT
-America/Anchorage.standard.short=AKST
-America/Anguilla.daylight.short=ADT
-America/Anguilla.generic.short=AT
-America/Anguilla.standard.short=AST
-America/Antigua.daylight.short=ADT
-America/Antigua.generic.short=AT
-America/Antigua.standard.short=AST
-America/Araguaina.daylight.short=BRST
-America/Araguaina.generic.short=BRT
-America/Araguaina.standard.short=BRT
-America/Argentina/Buenos_Aires.daylight.short=ARST
-America/Argentina/Buenos_Aires.generic.short=ART
-America/Argentina/Buenos_Aires.standard.short=ART
-America/Argentina/Catamarca.daylight.short=ARST
-America/Argentina/Catamarca.generic.short=ART
-America/Argentina/Catamarca.standard.short=ART
-America/Argentina/ComodRivadavia.daylight.short=ARST
-America/Argentina/ComodRivadavia.generic.short=ART
-America/Argentina/ComodRivadavia.standard.short=ART
-America/Argentina/Cordoba.daylight.short=ARST
-America/Argentina/Cordoba.generic.short=ART
-America/Argentina/Cordoba.standard.short=ART
-America/Argentina/Jujuy.daylight.short=ARST
-America/Argentina/Jujuy.generic.short=ART
-America/Argentina/Jujuy.standard.short=ART
-America/Argentina/La_Rioja.daylight.short=ARST
-America/Argentina/La_Rioja.generic.short=ART
-America/Argentina/La_Rioja.standard.short=ART
-America/Argentina/Mendoza.daylight.short=ARST
-America/Argentina/Mendoza.generic.short=ART
-America/Argentina/Mendoza.standard.short=ART
-America/Argentina/Rio_Gallegos.daylight.short=ARST
-America/Argentina/Rio_Gallegos.generic.short=ART
-America/Argentina/Rio_Gallegos.standard.short=ART
-America/Argentina/Salta.daylight.short=ARST
-America/Argentina/Salta.generic.short=ART
-America/Argentina/Salta.standard.short=ART
-America/Argentina/San_Juan.daylight.short=ARST
-America/Argentina/San_Juan.generic.short=ART
-America/Argentina/San_Juan.standard.short=ART
-America/Argentina/San_Luis.daylight.short=ARST
-America/Argentina/San_Luis.generic.short=ART
-America/Argentina/San_Luis.standard.short=ART
-America/Argentina/Tucuman.daylight.short=ARST
-America/Argentina/Tucuman.generic.short=ART
-America/Argentina/Tucuman.standard.short=ART
-America/Argentina/Ushuaia.daylight.short=ARST
-America/Argentina/Ushuaia.generic.short=ART
-America/Argentina/Ushuaia.standard.short=ART
-America/Aruba.daylight.short=ADT
-America/Aruba.generic.short=AT
-America/Aruba.standard.short=AST
-America/Asuncion.daylight.short=PYST
-America/Asuncion.generic.short=PYT
-America/Asuncion.standard.short=PYT
-America/Atikokan.daylight.short=EDT
-America/Atikokan.generic.short=ET
-America/Atikokan.standard.short=EST
-America/Atka.daylight.short=HADT
-America/Atka.generic.short=HAT
-America/Atka.standard.short=HAST
-America/Bahia_Banderas.daylight.short=CDT
-America/Bahia_Banderas.generic.short=CT
-America/Bahia_Banderas.standard.short=CST
-America/Bahia.daylight.short=BRST
-America/Bahia.generic.short=BRT
-America/Bahia.standard.short=BRT
-America/Barbados.daylight.short=ADT
-America/Barbados.generic.short=AT
-America/Barbados.standard.short=AST
-America/Belem.daylight.short=BRST
-America/Belem.generic.short=BRT
-America/Belem.standard.short=BRT
-America/Belize.daylight.short=CDT
-America/Belize.generic.short=CT
-America/Belize.standard.short=CST
-America/Blanc-Sablon.daylight.short=ADT
-America/Blanc-Sablon.generic.short=AT
-America/Blanc-Sablon.standard.short=AST
-America/Boa_Vista.daylight.short=AMST
-America/Boa_Vista.generic.short=AMT
-America/Boa_Vista.standard.short=AMT
-America/Bogota.daylight.short=COST
-America/Bogota.generic.short=COT
-America/Bogota.standard.short=COT
-America/Boise.daylight.short=MDT
-America/Boise.generic.short=MT
-America/Boise.standard.short=MST
-America/Buenos_Aires.daylight.short=ARST
-America/Buenos_Aires.generic.short=ART
-America/Buenos_Aires.standard.short=ART
-America/Cambridge_Bay.daylight.short=MDT
-America/Cambridge_Bay.generic.short=MT
-America/Cambridge_Bay.standard.short=MST
-America/Campo_Grande.daylight.short=AMST
-America/Campo_Grande.generic.short=AMT
-America/Campo_Grande.standard.short=AMT
-America/Cancun.daylight.short=CDT
-America/Cancun.generic.short=CT
-America/Cancun.standard.short=CST
-America/Caracas.daylight.short=VEST
-America/Caracas.generic.short=VET
-America/Caracas.standard.short=VET
-America/Catamarca.daylight.short=ARST
-America/Catamarca.generic.short=ART
-America/Catamarca.standard.short=ART
-America/Cayenne.daylight.short=GFST
-America/Cayenne.generic.short=GFT
-America/Cayenne.standard.short=GFT
-America/Cayman.daylight.short=EDT
-America/Cayman.generic.short=ET
-America/Cayman.standard.short=EST
-America/Chicago.daylight.short=CDT
-America/Chicago.generic.short=CT
-America/Chicago.standard.short=CST
-America/Chihuahua.daylight.short=MDT
-America/Chihuahua.generic.short=MT
-America/Chihuahua.standard.short=MST
-America/Coral_Harbour.daylight.short=EDT
-America/Coral_Harbour.generic.short=ET
-America/Coral_Harbour.standard.short=EST
-America/Cordoba.daylight.short=ARST
-America/Cordoba.generic.short=ART
-America/Cordoba.standard.short=ART
-America/Costa_Rica.daylight.short=CDT
-America/Costa_Rica.generic.short=CT
-America/Costa_Rica.standard.short=CST
-America/Creston.daylight.short=MDT
-America/Creston.generic.short=MT
-America/Creston.standard.short=MST
-America/Cuiaba.daylight.short=AMST
-America/Cuiaba.generic.short=AMT
-America/Cuiaba.standard.short=AMT
-America/Curacao.daylight.short=ADT
-America/Curacao.generic.short=AT
-America/Curacao.standard.short=AST
-America/Danmarkshavn.daylight.short=GMT
-America/Danmarkshavn.generic.short=GMT
-America/Danmarkshavn.standard.short=GMT
-America/Dawson_Creek.daylight.short=MDT
-America/Dawson_Creek.generic.short=MT
-America/Dawson_Creek.standard.short=MST
-America/Dawson.daylight.short=PDT
-America/Dawson.generic.short=PT
-America/Dawson.standard.short=PST
-America/Denver.daylight.short=MDT
-America/Denver.generic.short=MT
-America/Denver.standard.short=MST
-America/Detroit.daylight.short=EDT
-America/Detroit.generic.short=ET
-America/Detroit.standard.short=EST
-America/Dominica.daylight.short=ADT
-America/Dominica.generic.short=AT
-America/Dominica.standard.short=AST
-America/Edmonton.daylight.short=MDT
-America/Edmonton.generic.short=MT
-America/Edmonton.standard.short=MST
-America/Eirunepe.daylight.short=ACST
-America/Eirunepe.generic.short=ACT
-America/Eirunepe.standard.short=ACT
-America/El_Salvador.daylight.short=CDT
-America/El_Salvador.generic.short=CT
-America/El_Salvador.standard.short=CST
-America/Ensenada.daylight.short=PDT
-America/Ensenada.generic.short=PT
-America/Ensenada.standard.short=PST
-America/Fortaleza.daylight.short=BRST
-America/Fortaleza.generic.short=BRT
-America/Fortaleza.standard.short=BRT
-America/Fort_Wayne.daylight.short=EDT
-America/Fort_Wayne.generic.short=ET
-America/Fort_Wayne.standard.short=EST
-America/Glace_Bay.daylight.short=ADT
-America/Glace_Bay.generic.short=AT
-America/Glace_Bay.standard.short=AST
-America/Godthab.daylight.short=WGST
-America/Godthab.generic.short=WGT
-America/Godthab.standard.short=WGT
-America/Goose_Bay.daylight.short=ADT
-America/Goose_Bay.generic.short=AT
-America/Goose_Bay.standard.short=AST
-America/Grand_Turk.daylight.short=EDT
-America/Grand_Turk.generic.short=ET
-America/Grand_Turk.standard.short=EST
-America/Grenada.daylight.short=ADT
-America/Grenada.generic.short=AT
-America/Grenada.standard.short=AST
-America/Guadeloupe.daylight.short=ADT
-America/Guadeloupe.generic.short=AT
-America/Guadeloupe.standard.short=AST
-America/Guatemala.daylight.short=CDT
-America/Guatemala.generic.short=CT
-America/Guatemala.standard.short=CST
-America/Guayaquil.daylight.short=ECST
-America/Guayaquil.generic.short=ECT
-America/Guayaquil.standard.short=ECT
-America/Guyana.daylight.short=GYST
-America/Guyana.generic.short=GYT
-America/Guyana.standard.short=GYT
-America/Halifax.daylight.short=ADT
-America/Halifax.generic.short=AT
-America/Halifax.standard.short=AST
-America/Havana.daylight.short=CDT
-America/Havana.generic.short=CT
-America/Havana.standard.short=CST
-America/Hermosillo.daylight.short=MDT
-America/Hermosillo.generic.short=MT
-America/Hermosillo.standard.short=MST
-America/Indiana/Indianapolis.daylight.short=EDT
-America/Indiana/Indianapolis.generic.short=ET
-America/Indiana/Indianapolis.standard.short=EST
-America/Indiana/Knox.daylight.short=CDT
-America/Indiana/Knox.generic.short=CT
-America/Indiana/Knox.standard.short=CST
-America/Indiana/Marengo.daylight.short=EDT
-America/Indiana/Marengo.generic.short=ET
-America/Indiana/Marengo.standard.short=EST
-America/Indiana/Petersburg.daylight.short=EDT
-America/Indiana/Petersburg.generic.short=ET
-America/Indiana/Petersburg.standard.short=EST
-America/Indianapolis.daylight.short=EDT
-America/Indianapolis.generic.short=ET
-America/Indianapolis.standard.short=EST
-America/Indiana/Tell_City.daylight.short=CDT
-America/Indiana/Tell_City.generic.short=CT
-America/Indiana/Tell_City.standard.short=CST
-America/Indiana/Vevay.daylight.short=EDT
-America/Indiana/Vevay.generic.short=ET
-America/Indiana/Vevay.standard.short=EST
-America/Indiana/Vincennes.daylight.short=EDT
-America/Indiana/Vincennes.generic.short=ET
-America/Indiana/Vincennes.standard.short=EST
-America/Indiana/Winamac.daylight.short=EDT
-America/Indiana/Winamac.generic.short=ET
-America/Indiana/Winamac.standard.short=EST
-America/Inuvik.daylight.short=MDT
-America/Inuvik.generic.short=MT
-America/Inuvik.standard.short=MST
-America/Iqaluit.daylight.short=EDT
-America/Iqaluit.generic.short=ET
-America/Iqaluit.standard.short=EST
-America/Jamaica.daylight.short=EDT
-America/Jamaica.generic.short=ET
-America/Jamaica.standard.short=EST
-America/Jujuy.daylight.short=ARST
-America/Jujuy.generic.short=ART
-America/Jujuy.standard.short=ART
-America/Juneau.daylight.short=AKDT
-America/Juneau.generic.short=AKT
-America/Juneau.standard.short=AKST
-America/Kentucky/Louisville.daylight.short=EDT
-America/Kentucky/Louisville.generic.short=ET
-America/Kentucky/Louisville.standard.short=EST
-America/Kentucky/Monticello.daylight.short=EDT
-America/Kentucky/Monticello.generic.short=ET
-America/Kentucky/Monticello.standard.short=EST
-America/Knox_IN.daylight.short=CDT
-America/Knox_IN.generic.short=CT
-America/Knox_IN.standard.short=CST
-America/Kralendijk.daylight.short=ADT
-America/Kralendijk.generic.short=AT
-America/Kralendijk.standard.short=AST
-America/La_Paz.daylight.short=BOST
-America/La_Paz.generic.short=BOT
-America/La_Paz.standard.short=BOT
-America/Lima.daylight.short=PEST
-America/Lima.generic.short=PET
-America/Lima.standard.short=PET
-America/Los_Angeles.daylight.short=PDT
-America/Los_Angeles.generic.short=PT
-America/Los_Angeles.standard.short=PST
-America/Louisville.daylight.short=EDT
-America/Louisville.generic.short=ET
-America/Louisville.standard.short=EST
-America/Lower_Princes.daylight.short=ADT
-America/Lower_Princes.generic.short=AT
-America/Lower_Princes.standard.short=AST
-America/Maceio.daylight.short=BRST
-America/Maceio.generic.short=BRT
-America/Maceio.standard.short=BRT
-America/Managua.daylight.short=CDT
-America/Managua.generic.short=CT
-America/Managua.standard.short=CST
-America/Manaus.daylight.short=AMST
-America/Manaus.generic.short=AMT
-America/Manaus.standard.short=AMT
-America/Marigot.daylight.short=ADT
-America/Marigot.generic.short=AT
-America/Marigot.standard.short=AST
-America/Martinique.daylight.short=ADT
-America/Martinique.generic.short=AT
-America/Martinique.standard.short=AST
-America/Matamoros.daylight.short=CDT
-America/Matamoros.generic.short=CT
-America/Matamoros.standard.short=CST
-America/Mazatlan.daylight.short=MDT
-America/Mazatlan.generic.short=MT
-America/Mazatlan.standard.short=MST
-America/Mendoza.daylight.short=ARST
-America/Mendoza.generic.short=ART
-America/Mendoza.standard.short=ART
-America/Menominee.daylight.short=CDT
-America/Menominee.generic.short=CT
-America/Menominee.standard.short=CST
-America/Merida.daylight.short=CDT
-America/Merida.generic.short=CT
-America/Merida.standard.short=CST
-America/Metlakatla.daylight.short=MeDT
-America/Metlakatla.generic.short=MeT
-America/Metlakatla.standard.short=MeST
-America/Mexico_City.daylight.short=CDT
-America/Mexico_City.generic.short=CT
-America/Mexico_City.standard.short=CST
-America/Miquelon.daylight.short=PMDT
-America/Miquelon.generic.short=PMT
-America/Miquelon.standard.short=PMST
-America/Moncton.daylight.short=ADT
-America/Moncton.generic.short=AT
-America/Moncton.standard.short=AST
-America/Monterrey.daylight.short=CDT
-America/Monterrey.generic.short=CT
-America/Monterrey.standard.short=CST
-America/Montevideo.daylight.short=UYST
-America/Montevideo.generic.short=UYT
-America/Montevideo.standard.short=UYT
-America/Montreal.daylight.short=EDT
-America/Montreal.generic.short=ET
-America/Montreal.standard.short=EST
-America/Montserrat.daylight.short=ADT
-America/Montserrat.generic.short=AT
-America/Montserrat.standard.short=AST
-America/Nassau.daylight.short=EDT
-America/Nassau.generic.short=ET
-America/Nassau.standard.short=EST
-America/New_York.daylight.short=EDT
-America/New_York.generic.short=ET
-America/New_York.standard.short=EST
-America/Nipigon.daylight.short=EDT
-America/Nipigon.generic.short=ET
-America/Nipigon.standard.short=EST
-America/Nome.daylight.short=AKDT
-America/Nome.generic.short=AKT
-America/Nome.standard.short=AKST
-America/Noronha.daylight.short=FNST
-America/Noronha.generic.short=FNT
-America/Noronha.standard.short=FNT
-America/North_Dakota/Beulah.daylight.short=CDT
-America/North_Dakota/Beulah.generic.short=CT
-America/North_Dakota/Beulah.standard.short=CST
-America/North_Dakota/Center.daylight.short=CDT
-America/North_Dakota/Center.generic.short=CT
-America/North_Dakota/Center.standard.short=CST
-America/North_Dakota/New_Salem.daylight.short=CDT
-America/North_Dakota/New_Salem.generic.short=CT
-America/North_Dakota/New_Salem.standard.short=CST
-America/Ojinaga.daylight.short=MDT
-America/Ojinaga.generic.short=MT
-America/Ojinaga.standard.short=MST
-America/Panama.daylight.short=EDT
-America/Panama.generic.short=ET
-America/Panama.standard.short=EST
-America/Pangnirtung.daylight.short=EDT
-America/Pangnirtung.generic.short=ET
-America/Pangnirtung.standard.short=EST
-America/Paramaribo.daylight.short=SRST
-America/Paramaribo.generic.short=SRT
-America/Paramaribo.standard.short=SRT
-America/Phoenix.daylight.short=MDT
-America/Phoenix.generic.short=MT
-America/Phoenix.standard.short=MST
-America/Port-au-Prince.daylight.short=EDT
-America/Port-au-Prince.generic.short=ET
-America/Port-au-Prince.standard.short=EST
-America/Porto_Acre.daylight.short=ACST
-America/Porto_Acre.generic.short=ACT
-America/Porto_Acre.standard.short=ACT
-America/Port_of_Spain.daylight.short=ADT
-America/Port_of_Spain.generic.short=AT
-America/Port_of_Spain.standard.short=AST
-America/Porto_Velho.daylight.short=AMST
-America/Porto_Velho.generic.short=AMT
-America/Porto_Velho.standard.short=AMT
-America/Puerto_Rico.daylight.short=ADT
-America/Puerto_Rico.generic.short=AT
-America/Puerto_Rico.standard.short=AST
-America/Rainy_River.daylight.short=CDT
-America/Rainy_River.generic.short=CT
-America/Rainy_River.standard.short=CST
-America/Rankin_Inlet.daylight.short=CDT
-America/Rankin_Inlet.generic.short=CT
-America/Rankin_Inlet.standard.short=CST
-America/Recife.daylight.short=BRST
-America/Recife.generic.short=BRT
-America/Recife.standard.short=BRT
-America/Regina.daylight.short=CDT
-America/Regina.generic.short=CT
-America/Regina.standard.short=CST
-America/Resolute.daylight.short=CDT
-America/Resolute.generic.short=CT
-America/Resolute.standard.short=CST
-America/Rio_Branco.daylight.short=ACST
-America/Rio_Branco.generic.short=ACT
-America/Rio_Branco.standard.short=ACT
-America/Rosario.daylight.short=ARST
-America/Rosario.generic.short=ART
-America/Rosario.standard.short=ART
-America/Santa_Isabel.daylight.short=PDT
-America/Santa_Isabel.generic.short=PT
-America/Santa_Isabel.standard.short=PST
-America/Santarem.daylight.short=BRST
-America/Santarem.generic.short=BRT
-America/Santarem.standard.short=BRT
-America/Santiago.daylight.short=CLST
-America/Santiago.generic.short=CLT
-America/Santiago.standard.short=CLT
-America/Santo_Domingo.daylight.short=ADT
-America/Santo_Domingo.generic.short=AT
-America/Santo_Domingo.standard.short=AST
-America/Sao_Paulo.daylight.short=BRST
-America/Sao_Paulo.generic.short=BRT
-America/Sao_Paulo.standard.short=BRT
-America/Scoresbysund.daylight.short=EGST
-America/Scoresbysund.generic.short=EGT
-America/Scoresbysund.standard.short=EGT
-America/Shiprock.daylight.short=MDT
-America/Shiprock.generic.short=MT
-America/Shiprock.standard.short=MST
-America/Sitka.daylight.short=AKDT
-America/Sitka.generic.short=AKT
-America/Sitka.standard.short=AKST
-America/St_Barthelemy.daylight.short=ADT
-America/St_Barthelemy.generic.short=AT
-America/St_Barthelemy.standard.short=AST
-America/St_Johns.daylight.short=NDT
-America/St_Johns.generic.short=NT
-America/St_Johns.standard.short=NST
-America/St_Kitts.daylight.short=ADT
-America/St_Kitts.generic.short=AT
-America/St_Kitts.standard.short=AST
-America/St_Lucia.daylight.short=ADT
-America/St_Lucia.generic.short=AT
-America/St_Lucia.standard.short=AST
-America/St_Thomas.daylight.short=ADT
-America/St_Thomas.generic.short=AT
-America/St_Thomas.standard.short=AST
-America/St_Vincent.daylight.short=ADT
-America/St_Vincent.generic.short=AT
-America/St_Vincent.standard.short=AST
-America/Swift_Current.daylight.short=CDT
-America/Swift_Current.generic.short=CT
-America/Swift_Current.standard.short=CST
-America/Tegucigalpa.daylight.short=CDT
-America/Tegucigalpa.generic.short=CT
-America/Tegucigalpa.standard.short=CST
-America/Thule.daylight.short=ADT
-America/Thule.generic.short=AT
-America/Thule.standard.short=AST
-America/Thunder_Bay.daylight.short=EDT
-America/Thunder_Bay.generic.short=ET
-America/Thunder_Bay.standard.short=EST
-America/Tijuana.daylight.short=PDT
-America/Tijuana.generic.short=PT
-America/Tijuana.standard.short=PST
-America/Toronto.daylight.short=EDT
-America/Toronto.generic.short=ET
-America/Toronto.standard.short=EST
-America/Tortola.daylight.short=ADT
-America/Tortola.generic.short=AT
-America/Tortola.standard.short=AST
-America/Vancouver.daylight.short=PDT
-America/Vancouver.generic.short=PT
-America/Vancouver.standard.short=PST
-America/Virgin.daylight.short=ADT
-America/Virgin.generic.short=AT
-America/Virgin.standard.short=AST
-America/Whitehorse.daylight.short=PDT
-America/Whitehorse.generic.short=PT
-America/Whitehorse.standard.short=PST
-America/Winnipeg.daylight.short=CDT
-America/Winnipeg.generic.short=CT
-America/Winnipeg.standard.short=CST
-America/Yakutat.daylight.short=AKDT
-America/Yakutat.generic.short=AKT
-America/Yakutat.standard.short=AKST
-America/Yellowknife.daylight.short=MDT
-America/Yellowknife.generic.short=MT
-America/Yellowknife.standard.short=MST
-Antarctica/Casey.daylight.short=WST
-Antarctica/Casey.generic.short=WT
-Antarctica/Casey.standard.short=WST
-Antarctica/Davis.daylight.short=DAVST
-Antarctica/Davis.generic.short=DAVT
-Antarctica/Davis.standard.short=DAVT
-Antarctica/DumontDUrville.daylight.short=DDUST
-Antarctica/DumontDUrville.generic.short=DDUT
-Antarctica/DumontDUrville.standard.short=DDUT
-Antarctica/Macquarie.daylight.short=MIST
-Antarctica/Macquarie.generic.short=MIST
-Antarctica/Macquarie.standard.short=MIST
-Antarctica/Mawson.daylight.short=MAWST
-Antarctica/Mawson.generic.short=MAWT
-Antarctica/Mawson.standard.short=MAWT
-Antarctica/McMurdo.daylight.short=NZDT
-Antarctica/McMurdo.generic.short=NZT
-Antarctica/McMurdo.standard.short=NZST
-Antarctica/Palmer.daylight.short=CLST
-Antarctica/Palmer.generic.short=CLT
-Antarctica/Palmer.standard.short=CLT
-Antarctica/Rothera.daylight.short=ROTST
-Antarctica/Rothera.generic.short=ROTT
-Antarctica/Rothera.standard.short=ROTT
-Antarctica/South_Pole.daylight.short=NZDT
-Antarctica/South_Pole.generic.short=NZT
-Antarctica/South_Pole.standard.short=NZST
-Antarctica/Syowa.daylight.short=SYOST
-Antarctica/Syowa.generic.short=SYOT
-Antarctica/Syowa.standard.short=SYOT
-Antarctica/Vostok.daylight.short=VOSST
-Antarctica/Vostok.generic.short=VOST
-Antarctica/Vostok.standard.short=VOST
-Arctic/Longyearbyen.daylight.short=CEST
-Arctic/Longyearbyen.generic.short=CET
-Arctic/Longyearbyen.standard.short=CET
-ART.daylight.short=EEST
-ART.generic.short=EET
-ART.standard.short=EET
-Asia/Aden.daylight.short=ADT
-Asia/Aden.generic.short=AT
-Asia/Aden.standard.short=AST
-Asia/Almaty.daylight.short=ALMST
-Asia/Almaty.generic.short=ALMT
-Asia/Almaty.standard.short=ALMT
-Asia/Amman.daylight.short=ADT
-Asia/Amman.generic.short=AT
-Asia/Amman.standard.short=AST
-Asia/Anadyr.daylight.short=ANAST
-Asia/Anadyr.generic.short=ANAT
-Asia/Anadyr.standard.short=ANAT
-Asia/Aqtau.daylight.short=AQTST
-Asia/Aqtau.generic.short=AQTT
-Asia/Aqtau.standard.short=AQTT
-Asia/Aqtobe.daylight.short=AQTST
-Asia/Aqtobe.generic.short=AQTT
-Asia/Aqtobe.standard.short=AQTT
-Asia/Ashgabat.daylight.short=TMST
-Asia/Ashgabat.generic.short=TMT
-Asia/Ashgabat.standard.short=TMT
-Asia/Ashkhabad.daylight.short=TMST
-Asia/Ashkhabad.generic.short=TMT
-Asia/Ashkhabad.standard.short=TMT
-Asia/Baghdad.daylight.short=ADT
-Asia/Baghdad.generic.short=AT
-Asia/Baghdad.standard.short=AST
-Asia/Bahrain.daylight.short=ADT
-Asia/Bahrain.generic.short=AT
-Asia/Bahrain.standard.short=AST
-Asia/Baku.daylight.short=AZST
-Asia/Baku.generic.short=AZT
-Asia/Baku.standard.short=AZT
-Asia/Bangkok.daylight.short=ICST
-Asia/Bangkok.generic.short=ICT
-Asia/Bangkok.standard.short=ICT
-Asia/Beirut.daylight.short=EEST
-Asia/Beirut.generic.short=EET
-Asia/Beirut.standard.short=EET
-Asia/Bishkek.daylight.short=KGST
-Asia/Bishkek.generic.short=KGT
-Asia/Bishkek.standard.short=KGT
-Asia/Brunei.daylight.short=BNST
-Asia/Brunei.generic.short=BNT
-Asia/Brunei.standard.short=BNT
-Asia/Calcutta.daylight.short=IDT
-Asia/Calcutta.generic.short=IT
-Asia/Calcutta.standard.short=IST
-Asia/Choibalsan.daylight.short=CHOST
-Asia/Choibalsan.generic.short=CHOT
-Asia/Choibalsan.standard.short=CHOT
-Asia/Chongqing.daylight.short=CDT
-Asia/Chongqing.generic.short=CT
-Asia/Chongqing.standard.short=CST
-Asia/Chungking.daylight.short=CDT
-Asia/Chungking.generic.short=CT
-Asia/Chungking.standard.short=CST
-Asia/Colombo.daylight.short=IDT
-Asia/Colombo.generic.short=IT
-Asia/Colombo.standard.short=IST
-Asia/Dacca.daylight.short=BDST
-Asia/Dacca.generic.short=BDT
-Asia/Dacca.standard.short=BDT
-Asia/Damascus.daylight.short=EEST
-Asia/Damascus.generic.short=EET
-Asia/Damascus.standard.short=EET
-Asia/Dhaka.daylight.short=BDST
-Asia/Dhaka.generic.short=BDT
-Asia/Dhaka.standard.short=BDT
-Asia/Dili.daylight.short=TLST
-Asia/Dili.generic.short=TLT
-Asia/Dili.standard.short=TLT
-Asia/Dubai.daylight.short=GDT
-Asia/Dubai.generic.short=GT
-Asia/Dubai.standard.short=GST
-Asia/Dushanbe.daylight.short=TJST
-Asia/Dushanbe.generic.short=TJT
-Asia/Dushanbe.standard.short=TJT
-Asia/Gaza.daylight.short=EEST
-Asia/Gaza.generic.short=EET
-Asia/Gaza.standard.short=EET
-Asia/Harbin.daylight.short=CDT
-Asia/Harbin.generic.short=CT
-Asia/Harbin.standard.short=CST
-Asia/Hebron.daylight.short=EEST
-Asia/Hebron.generic.short=EET
-Asia/Hebron.standard.short=EET
-Asia/Ho_Chi_Minh.daylight.short=ICST
-Asia/Ho_Chi_Minh.generic.short=ICT
-Asia/Ho_Chi_Minh.standard.short=ICT
-Asia/Hong_Kong.daylight.short=HKST
-Asia/Hong_Kong.generic.short=HKT
-Asia/Hong_Kong.standard.short=HKT
-Asia/Hovd.daylight.short=HOVST
-Asia/Hovd.generic.short=HOVT
-Asia/Hovd.standard.short=HOVT
-Asia/Irkutsk.daylight.short=IRKST
-Asia/Irkutsk.generic.short=IRKT
-Asia/Irkutsk.standard.short=IRKT
-Asia/Istanbul.daylight.short=EEST
-Asia/Istanbul.generic.short=EET
-Asia/Istanbul.standard.short=EET
-Asia/Jakarta.daylight.short=WIST
-Asia/Jakarta.generic.short=WIB
-Asia/Jakarta.standard.short=WIB
-Asia/Jayapura.daylight.short=EIST
-Asia/Jayapura.generic.short=WIT
-Asia/Jayapura.standard.short=WIT
-Asia/Jerusalem.daylight.short=IDT
-Asia/Jerusalem.generic.short=IT
-Asia/Jerusalem.standard.short=IST
-Asia/Kabul.daylight.short=AFST
-Asia/Kabul.generic.short=AFT
-Asia/Kabul.standard.short=AFT
-Asia/Kamchatka.daylight.short=PETST
-Asia/Kamchatka.generic.short=PETT
-Asia/Kamchatka.standard.short=PETT
-Asia/Karachi.daylight.short=PKST
-Asia/Karachi.generic.short=PKT
-Asia/Karachi.standard.short=PKT
-Asia/Kashgar.daylight.short=CDT
-Asia/Kashgar.generic.short=CT
-Asia/Kashgar.standard.short=CST
-Asia/Kathmandu.daylight.short=NPST
-Asia/Kathmandu.generic.short=NPT
-Asia/Kathmandu.standard.short=NPT
-Asia/Katmandu.daylight.short=NPST
-Asia/Katmandu.generic.short=NPT
-Asia/Katmandu.standard.short=NPT
-Asia/Khandyga.daylight.short=YAKST
-Asia/Khandyga.generic.short=YAKT
-Asia/Khandyga.standard.short=YAKT
-Asia/Kolkata.daylight.short=IDT
-Asia/Kolkata.generic.short=IT
-Asia/Kolkata.standard.short=IST
-Asia/Krasnoyarsk.daylight.short=KRAST
-Asia/Krasnoyarsk.generic.short=KRAT
-Asia/Krasnoyarsk.standard.short=KRAT
-Asia/Kuala_Lumpur.daylight.short=MYST
-Asia/Kuala_Lumpur.generic.short=MYT
-Asia/Kuala_Lumpur.standard.short=MYT
-Asia/Kuching.daylight.short=MYST
-Asia/Kuching.generic.short=MYT
-Asia/Kuching.standard.short=MYT
-Asia/Kuwait.daylight.short=ADT
-Asia/Kuwait.generic.short=AT
-Asia/Kuwait.standard.short=AST
-Asia/Macao.daylight.short=CDT
-Asia/Macao.generic.short=CT
-Asia/Macao.standard.short=CST
-Asia/Macau.daylight.short=CDT
-Asia/Macau.generic.short=CT
-Asia/Macau.standard.short=CST
-Asia/Magadan.daylight.short=MAGST
-Asia/Magadan.generic.short=MAGT
-Asia/Magadan.standard.short=MAGT
-Asia/Makassar.daylight.short=CIST
-Asia/Makassar.generic.short=WITA
-Asia/Makassar.standard.short=WITA
-Asia/Manila.daylight.short=PHST
-Asia/Manila.generic.short=PHT
-Asia/Manila.standard.short=PHT
-Asia/Muscat.daylight.short=GDT
-Asia/Muscat.generic.short=GT
-Asia/Muscat.standard.short=GST
-Asia/Nicosia.daylight.short=EEST
-Asia/Nicosia.generic.short=EET
-Asia/Nicosia.standard.short=EET
-Asia/Novokuznetsk.daylight.short=NOVST
-Asia/Novokuznetsk.generic.short=NOVT
-Asia/Novokuznetsk.standard.short=NOVT
-Asia/Novosibirsk.daylight.short=NOVST
-Asia/Novosibirsk.generic.short=NOVT
-Asia/Novosibirsk.standard.short=NOVT
-Asia/Omsk.daylight.short=OMSST
-Asia/Omsk.generic.short=OMST
-Asia/Omsk.standard.short=OMST
-Asia/Oral.daylight.short=ORAST
-Asia/Oral.generic.short=ORAT
-Asia/Oral.standard.short=ORAT
-Asia/Phnom_Penh.daylight.short=ICST
-Asia/Phnom_Penh.generic.short=ICT
-Asia/Phnom_Penh.standard.short=ICT
-Asia/Pontianak.daylight.short=WIST
-Asia/Pontianak.generic.short=WIB
-Asia/Pontianak.standard.short=WIB
-Asia/Pyongyang.daylight.short=KDT
-Asia/Pyongyang.generic.short=KT
-Asia/Pyongyang.standard.short=KST
-Asia/Qatar.daylight.short=ADT
-Asia/Qatar.generic.short=AT
-Asia/Qatar.standard.short=AST
-Asia/Qyzylorda.daylight.short=QYZST
-Asia/Qyzylorda.generic.short=QYZT
-Asia/Qyzylorda.standard.short=QYZT
-Asia/Rangoon.daylight.short=MMST
-Asia/Rangoon.generic.short=MMT
-Asia/Rangoon.standard.short=MMT
-Asia/Saigon.daylight.short=ICST
-Asia/Saigon.generic.short=ICT
-Asia/Saigon.standard.short=ICT
-Asia/Sakhalin.daylight.short=SAKST
-Asia/Sakhalin.generic.short=SAKT
-Asia/Sakhalin.standard.short=SAKT
-Asia/Samarkand.daylight.short=UZST
-Asia/Samarkand.generic.short=UZT
-Asia/Samarkand.standard.short=UZT
-Asia/Seoul.daylight.short=KDT
-Asia/Seoul.generic.short=KT
-Asia/Seoul.standard.short=KST
-Asia/Shanghai.daylight.short=CDT
-Asia/Shanghai.generic.short=CT
-Asia/Shanghai.standard.short=CST
-Asia/Singapore.daylight.short=SGST
-Asia/Singapore.generic.short=SGT
-Asia/Singapore.standard.short=SGT
-Asia/Taipei.daylight.short=CDT
-Asia/Taipei.generic.short=CT
-Asia/Taipei.standard.short=CST
-Asia/Tashkent.daylight.short=UZST
-Asia/Tashkent.generic.short=UZT
-Asia/Tashkent.standard.short=UZT
-Asia/Tbilisi.daylight.short=GEST
-Asia/Tbilisi.generic.short=GET
-Asia/Tbilisi.standard.short=GET
-Asia/Tehran.daylight.short=IRDT
-Asia/Tehran.generic.short=IRT
-Asia/Tehran.standard.short=IRST
-Asia/Tel_Aviv.daylight.short=IDT
-Asia/Tel_Aviv.generic.short=IT
-Asia/Tel_Aviv.standard.short=IST
-Asia/Thimbu.daylight.short=BTST
-Asia/Thimbu.generic.short=BTT
-Asia/Thimbu.standard.short=BTT
-Asia/Thimphu.daylight.short=BTST
-Asia/Thimphu.generic.short=BTT
-Asia/Thimphu.standard.short=BTT
-Asia/Tokyo.daylight.short=JDT
-Asia/Tokyo.generic.short=JT
-Asia/Tokyo.standard.short=JST
-Asia/Ujung_Pandang.daylight.short=CIST
-Asia/Ujung_Pandang.generic.short=WITA
-Asia/Ujung_Pandang.standard.short=WITA
-Asia/Ulaanbaatar.daylight.short=ULAST
-Asia/Ulaanbaatar.generic.short=ULAT
-Asia/Ulaanbaatar.standard.short=ULAT
-Asia/Ulan_Bator.daylight.short=ULAST
-Asia/Ulan_Bator.generic.short=ULAT
-Asia/Ulan_Bator.standard.short=ULAT
-Asia/Urumqi.daylight.short=CDT
-Asia/Urumqi.generic.short=CT
-Asia/Urumqi.standard.short=CST
-Asia/Ust-Nera.daylight.short=VLAST
-Asia/Ust-Nera.generic.short=VLAT
-Asia/Ust-Nera.standard.short=VLAT
-Asia/Vientiane.daylight.short=ICST
-Asia/Vientiane.generic.short=ICT
-Asia/Vientiane.standard.short=ICT
-Asia/Vladivostok.daylight.short=VLAST
-Asia/Vladivostok.generic.short=VLAT
-Asia/Vladivostok.standard.short=VLAT
-Asia/Yakutsk.daylight.short=YAKST
-Asia/Yakutsk.generic.short=YAKT
-Asia/Yakutsk.standard.short=YAKT
-Asia/Yekaterinburg.daylight.short=YEKST
-Asia/Yekaterinburg.generic.short=YEKT
-Asia/Yekaterinburg.standard.short=YEKT
-Asia/Yerevan.daylight.short=AMST
-Asia/Yerevan.generic.short=AMT
-Asia/Yerevan.standard.short=AMT
-AST.daylight.short=AKDT
-AST.generic.short=AKT
-AST.standard.short=AKST
-Atlantic/Azores.daylight.short=AZOST
-Atlantic/Azores.generic.short=AZOT
-Atlantic/Azores.standard.short=AZOT
-Atlantic/Bermuda.daylight.short=ADT
-Atlantic/Bermuda.generic.short=AT
-Atlantic/Bermuda.standard.short=AST
-Atlantic/Canary.daylight.short=WEST
-Atlantic/Canary.generic.short=WET
-Atlantic/Canary.standard.short=WET
-Atlantic/Cape_Verde.daylight.short=CVST
-Atlantic/Cape_Verde.generic.short=CVT
-Atlantic/Cape_Verde.standard.short=CVT
-Atlantic/Faeroe.daylight.short=WEST
-Atlantic/Faeroe.generic.short=WET
-Atlantic/Faeroe.standard.short=WET
-Atlantic/Faroe.daylight.short=WEST
-Atlantic/Faroe.generic.short=WET
-Atlantic/Faroe.standard.short=WET
-Atlantic/Jan_Mayen.daylight.short=CEST
-Atlantic/Jan_Mayen.generic.short=CET
-Atlantic/Jan_Mayen.standard.short=CET
-Atlantic/Madeira.daylight.short=WEST
-Atlantic/Madeira.generic.short=WET
-Atlantic/Madeira.standard.short=WET
-Atlantic/Reykjavik.daylight.short=GMT
-Atlantic/Reykjavik.generic.short=GMT
-Atlantic/Reykjavik.standard.short=GMT
-Atlantic/South_Georgia.daylight.short=GDT
-Atlantic/South_Georgia.generic.short=GT
-Atlantic/South_Georgia.standard.short=GST
-Atlantic/Stanley.daylight.short=FKST
-Atlantic/Stanley.generic.short=FKT
-Atlantic/Stanley.standard.short=FKT
-Atlantic/St_Helena.daylight.short=GMT
-Atlantic/St_Helena.generic.short=GMT
-Atlantic/St_Helena.standard.short=GMT
-Australia/ACT.daylight.short=EST
-Australia/ACT.generic.short=ET
-Australia/ACT.standard.short=EST
-Australia/Adelaide.daylight.short=CST
-Australia/Adelaide.generic.short=CT
-Australia/Adelaide.standard.short=CST
-Australia/Brisbane.daylight.short=EST
-Australia/Brisbane.generic.short=ET
-Australia/Brisbane.standard.short=EST
-Australia/Broken_Hill.daylight.short=CST
-Australia/Broken_Hill.generic.short=CT
-Australia/Broken_Hill.standard.short=CST
-Australia/Canberra.daylight.short=EST
-Australia/Canberra.generic.short=ET
-Australia/Canberra.standard.short=EST
-Australia/Currie.daylight.short=EST
-Australia/Currie.generic.short=ET
-Australia/Currie.standard.short=EST
-Australia/Darwin.daylight.short=CST
-Australia/Darwin.generic.short=CT
-Australia/Darwin.standard.short=CST
-Australia/Eucla.daylight.short=CWST
-Australia/Eucla.generic.short=CWT
-Australia/Eucla.standard.short=CWST
-Australia/Hobart.daylight.short=EST
-Australia/Hobart.generic.short=ET
-Australia/Hobart.standard.short=EST
-Australia/LHI.daylight.short=LHST
-Australia/LHI.generic.short=LHT
-Australia/LHI.standard.short=LHST
-Australia/Lindeman.daylight.short=EST
-Australia/Lindeman.generic.short=ET
-Australia/Lindeman.standard.short=EST
-Australia/Lord_Howe.daylight.short=LHST
-Australia/Lord_Howe.generic.short=LHT
-Australia/Lord_Howe.standard.short=LHST
-Australia/Melbourne.daylight.short=EST
-Australia/Melbourne.generic.short=ET
-Australia/Melbourne.standard.short=EST
-Australia/North.daylight.short=CST
-Australia/North.generic.short=CT
-Australia/North.standard.short=CST
-Australia/NSW.daylight.short=EST
-Australia/NSW.generic.short=ET
-Australia/NSW.standard.short=EST
-Australia/Perth.daylight.short=WST
-Australia/Perth.generic.short=WT
-Australia/Perth.standard.short=WST
-Australia/Queensland.daylight.short=EST
-Australia/Queensland.generic.short=ET
-Australia/Queensland.standard.short=EST
-Australia/South.daylight.short=CST
-Australia/South.generic.short=CT
-Australia/South.standard.short=CST
-Australia/Sydney.daylight.short=EST
-Australia/Sydney.generic.short=ET
-Australia/Sydney.standard.short=EST
-Australia/Tasmania.daylight.short=EST
-Australia/Tasmania.generic.short=ET
-Australia/Tasmania.standard.short=EST
-Australia/Victoria.daylight.short=EST
-Australia/Victoria.generic.short=ET
-Australia/Victoria.standard.short=EST
-Australia/West.daylight.short=WST
-Australia/West.generic.short=WT
-Australia/West.standard.short=WST
-Australia/Yancowinna.daylight.short=CST
-Australia/Yancowinna.generic.short=CT
-Australia/Yancowinna.standard.short=CST
-BET.daylight.short=BRST
-BET.generic.short=BRT
-BET.standard.short=BRT
-Brazil/Acre.daylight.short=ACST
-Brazil/Acre.generic.short=ACT
-Brazil/Acre.standard.short=ACT
-Brazil/DeNoronha.daylight.short=FNST
-Brazil/DeNoronha.generic.short=FNT
-Brazil/DeNoronha.standard.short=FNT
-Brazil/East.daylight.short=BRST
-Brazil/East.generic.short=BRT
-Brazil/East.standard.short=BRT
-Brazil/West.daylight.short=AMST
-Brazil/West.generic.short=AMT
-Brazil/West.standard.short=AMT
-BST.daylight.short=BDST
-BST.generic.short=BDT
-BST.standard.short=BDT
-Canada/Atlantic.daylight.short=ADT
-Canada/Atlantic.generic.short=AT
-Canada/Atlantic.standard.short=AST
-Canada/Central.daylight.short=CDT
-Canada/Central.generic.short=CT
-Canada/Central.standard.short=CST
-Canada/Eastern.daylight.short=EDT
-Canada/Eastern.generic.short=ET
-Canada/Eastern.standard.short=EST
-Canada/East-Saskatchewan.daylight.short=CDT
-Canada/East-Saskatchewan.generic.short=CT
-Canada/East-Saskatchewan.standard.short=CST
-Canada/Mountain.daylight.short=MDT
-Canada/Mountain.generic.short=MT
-Canada/Mountain.standard.short=MST
-Canada/Newfoundland.daylight.short=NDT
-Canada/Newfoundland.generic.short=NT
-Canada/Newfoundland.standard.short=NST
-Canada/Pacific.daylight.short=PDT
-Canada/Pacific.generic.short=PT
-Canada/Pacific.standard.short=PST
-Canada/Saskatchewan.daylight.short=CDT
-Canada/Saskatchewan.generic.short=CT
-Canada/Saskatchewan.standard.short=CST
-Canada/Yukon.daylight.short=PDT
-Canada/Yukon.generic.short=PT
-Canada/Yukon.standard.short=PST
-CAT.daylight.short=CAST
-CAT.generic.short=CAT
-CAT.standard.short=CAT
-CET.daylight.short=CEST
-CET.generic.short=CET
-CET.standard.short=CET
-Chile/Continental.daylight.short=CLST
-Chile/Continental.generic.short=CLT
-Chile/Continental.standard.short=CLT
-Chile/EasterIsland.daylight.short=EASST
-Chile/EasterIsland.generic.short=EAST
-Chile/EasterIsland.standard.short=EAST
-CNT.daylight.short=NDT
-CNT.generic.short=NT
-CNT.standard.short=NST
-CST6CDT.daylight.short=CDT
-CST6CDT.generic.short=CT
-CST6CDT.standard.short=CST
-CST.daylight.short=CDT
-CST.generic.short=CT
-CST.standard.short=CST
-CTT.daylight.short=CDT
-CTT.generic.short=CT
-CTT.standard.short=CST
-Cuba.daylight.short=CDT
-Cuba.generic.short=CT
-Cuba.standard.short=CST
-EAT.daylight.short=EAST
-EAT.generic.short=EAT
-EAT.standard.short=EAT
-ECT.daylight.short=CEST
-ECT.generic.short=CET
-ECT.standard.short=CET
-EET.daylight.short=EEST
-EET.generic.short=EET
-EET.standard.short=EET
-Egypt.daylight.short=EEST
-Egypt.generic.short=EET
-Egypt.standard.short=EET
-Eire.daylight.short=IST
-Eire.generic.short=IT
-Eire.standard.short=GMT
-EST5EDT.daylight.short=EDT
-EST5EDT.generic.short=ET
-EST5EDT.standard.short=EST
-EST.daylight.short=EDT
-EST.generic.short=ET
-EST.standard.short=EST
-Etc/Greenwich.daylight.short=GMT
-Etc/Greenwich.generic.short=GMT
-Etc/Greenwich.standard.short=GMT
-Etc/UCT.daylight.short=UTC
-Etc/UCT.generic.short=UTC
-Etc/UCT.standard.short=UTC
-Etc/Universal.daylight.short=UTC
-Etc/Universal.generic.short=UTC
-Etc/Universal.standard.short=UTC
-Etc/UTC.daylight.short=UTC
-Etc/UTC.generic.short=UTC
-Etc/UTC.standard.short=UTC
-Etc/Zulu.daylight.short=UTC
-Etc/Zulu.generic.short=UTC
-Etc/Zulu.standard.short=UTC
-Europe/Amsterdam.daylight.short=CEST
-Europe/Amsterdam.generic.short=CET
-Europe/Amsterdam.standard.short=CET
-Europe/Andorra.daylight.short=CEST
-Europe/Andorra.generic.short=CET
-Europe/Andorra.standard.short=CET
-Europe/Athens.daylight.short=EEST
-Europe/Athens.generic.short=EET
-Europe/Athens.standard.short=EET
-Europe/Belfast.daylight.short=BST
-Europe/Belfast.generic.short=BT
-Europe/Belfast.standard.short=GMT
-Europe/Belgrade.daylight.short=CEST
-Europe/Belgrade.generic.short=CET
-Europe/Belgrade.standard.short=CET
-Europe/Berlin.daylight.short=CEST
-Europe/Berlin.generic.short=CET
-Europe/Berlin.standard.short=CET
-Europe/Bratislava.daylight.short=CEST
-Europe/Bratislava.generic.short=CET
-Europe/Bratislava.standard.short=CET
-Europe/Brussels.daylight.short=CEST
-Europe/Brussels.generic.short=CET
-Europe/Brussels.standard.short=CET
-Europe/Bucharest.daylight.short=EEST
-Europe/Bucharest.generic.short=EET
-Europe/Bucharest.standard.short=EET
-Europe/Budapest.daylight.short=CEST
-Europe/Budapest.generic.short=CET
-Europe/Budapest.standard.short=CET
-Europe/Busingen.daylight.short=CEST
-Europe/Busingen.generic.short=CET
-Europe/Busingen.standard.short=CET
-Europe/Chisinau.daylight.short=EEST
-Europe/Chisinau.generic.short=EET
-Europe/Chisinau.standard.short=EET
-Europe/Copenhagen.daylight.short=CEST
-Europe/Copenhagen.generic.short=CET
-Europe/Copenhagen.standard.short=CET
-Europe/Dublin.daylight.short=IST
-Europe/Dublin.generic.short=IT
-Europe/Dublin.standard.short=GMT
-Europe/Gibraltar.daylight.short=CEST
-Europe/Gibraltar.generic.short=CET
-Europe/Gibraltar.standard.short=CET
-Europe/Guernsey.daylight.short=BST
-Europe/Guernsey.generic.short=BT
-Europe/Guernsey.standard.short=GMT
-Europe/Helsinki.daylight.short=EEST
-Europe/Helsinki.generic.short=EET
-Europe/Helsinki.standard.short=EET
-Europe/Isle_of_Man.daylight.short=BST
-Europe/Isle_of_Man.generic.short=BT
-Europe/Isle_of_Man.standard.short=GMT
-Europe/Istanbul.daylight.short=EEST
-Europe/Istanbul.generic.short=EET
-Europe/Istanbul.standard.short=EET
-Europe/Jersey.daylight.short=BST
-Europe/Jersey.generic.short=BT
-Europe/Jersey.standard.short=GMT
-Europe/Kaliningrad.daylight.short=FEST
-Europe/Kaliningrad.generic.short=FET
-Europe/Kaliningrad.standard.short=FET
-Europe/Kiev.daylight.short=EEST
-Europe/Kiev.generic.short=EET
-Europe/Kiev.standard.short=EET
-Europe/Lisbon.daylight.short=WEST
-Europe/Lisbon.generic.short=WET
-Europe/Lisbon.standard.short=WET
-Europe/Ljubljana.daylight.short=CEST
-Europe/Ljubljana.generic.short=CET
-Europe/Ljubljana.standard.short=CET
-Europe/London.daylight.short=BST
-Europe/London.generic.short=BT
-Europe/London.standard.short=GMT
-Europe/Luxembourg.daylight.short=CEST
-Europe/Luxembourg.generic.short=CET
-Europe/Luxembourg.standard.short=CET
-Europe/Madrid.daylight.short=CEST
-Europe/Madrid.generic.short=CET
-Europe/Madrid.standard.short=CET
-Europe/Malta.daylight.short=CEST
-Europe/Malta.generic.short=CET
-Europe/Malta.standard.short=CET
-Europe/Mariehamn.daylight.short=EEST
-Europe/Mariehamn.generic.short=EET
-Europe/Mariehamn.standard.short=EET
-Europe/Minsk.daylight.short=FEST
-Europe/Minsk.generic.short=FET
-Europe/Minsk.standard.short=FET
-Europe/Monaco.daylight.short=CEST
-Europe/Monaco.generic.short=CET
-Europe/Monaco.standard.short=CET
-Europe/Moscow.daylight.short=MSD
-Europe/Moscow.generic.short=MT
-Europe/Moscow.standard.short=MSK
-Europe/Nicosia.daylight.short=EEST
-Europe/Nicosia.generic.short=EET
-Europe/Nicosia.standard.short=EET
-Europe/Oslo.daylight.short=CEST
-Europe/Oslo.generic.short=CET
-Europe/Oslo.standard.short=CET
-Europe/Paris.daylight.short=CEST
-Europe/Paris.generic.short=CET
-Europe/Paris.standard.short=CET
-Europe/Podgorica.daylight.short=CEST
-Europe/Podgorica.generic.short=CET
-Europe/Podgorica.standard.short=CET
-Europe/Prague.daylight.short=CEST
-Europe/Prague.generic.short=CET
-Europe/Prague.standard.short=CET
-Europe/Riga.daylight.short=EEST
-Europe/Riga.generic.short=EET
-Europe/Riga.standard.short=EET
-Europe/Rome.daylight.short=CEST
-Europe/Rome.generic.short=CET
-Europe/Rome.standard.short=CET
-Europe/Samara.daylight.short=SAMST
-Europe/Samara.generic.short=SAMT
-Europe/Samara.standard.short=SAMT
-Europe/San_Marino.daylight.short=CEST
-Europe/San_Marino.generic.short=CET
-Europe/San_Marino.standard.short=CET
-Europe/Sarajevo.daylight.short=CEST
-Europe/Sarajevo.generic.short=CET
-Europe/Sarajevo.standard.short=CET
-Europe/Simferopol.daylight.short=EEST
-Europe/Simferopol.generic.short=EET
-Europe/Simferopol.standard.short=EET
-Europe/Skopje.daylight.short=CEST
-Europe/Skopje.generic.short=CET
-Europe/Skopje.standard.short=CET
-Europe/Sofia.daylight.short=EEST
-Europe/Sofia.generic.short=EET
-Europe/Sofia.standard.short=EET
-Europe/Stockholm.daylight.short=CEST
-Europe/Stockholm.generic.short=CET
-Europe/Stockholm.standard.short=CET
-Europe/Tallinn.daylight.short=EEST
-Europe/Tallinn.generic.short=EET
-Europe/Tallinn.standard.short=EET
-Europe/Tirane.daylight.short=CEST
-Europe/Tirane.generic.short=CET
-Europe/Tirane.standard.short=CET
-Europe/Tiraspol.daylight.short=EEST
-Europe/Tiraspol.generic.short=EET
-Europe/Tiraspol.standard.short=EET
-Europe/Uzhgorod.daylight.short=EEST
-Europe/Uzhgorod.generic.short=EET
-Europe/Uzhgorod.standard.short=EET
-Europe/Vaduz.daylight.short=CEST
-Europe/Vaduz.generic.short=CET
-Europe/Vaduz.standard.short=CET
-Europe/Vatican.daylight.short=CEST
-Europe/Vatican.generic.short=CET
-Europe/Vatican.standard.short=CET
-Europe/Vienna.daylight.short=CEST
-Europe/Vienna.generic.short=CET
-Europe/Vienna.standard.short=CET
-Europe/Vilnius.daylight.short=EEST
-Europe/Vilnius.generic.short=EET
-Europe/Vilnius.standard.short=EET
-Europe/Volgograd.daylight.short=VOLST
-Europe/Volgograd.generic.short=VOLT
-Europe/Volgograd.standard.short=VOLT
-Europe/Warsaw.daylight.short=CEST
-Europe/Warsaw.generic.short=CET
-Europe/Warsaw.standard.short=CET
-Europe/Zagreb.daylight.short=CEST
-Europe/Zagreb.generic.short=CET
-Europe/Zagreb.standard.short=CET
-Europe/Zaporozhye.daylight.short=EEST
-Europe/Zaporozhye.generic.short=EET
-Europe/Zaporozhye.standard.short=EET
-Europe/Zurich.daylight.short=CEST
-Europe/Zurich.generic.short=CET
-Europe/Zurich.standard.short=CET
-GB.daylight.short=BST
-GB-Eire.daylight.short=BST
-GB-Eire.generic.short=BT
-GB-Eire.standard.short=GMT
-GB.generic.short=BT
-GB.standard.short=GMT
-GMT.daylight.short=GMT
-GMT.generic.short=GMT
-GMT.standard.short=GMT
-Greenwich.daylight.short=GMT
-Greenwich.generic.short=GMT
-Greenwich.standard.short=GMT
-Hongkong.daylight.short=HKST
-Hongkong.generic.short=HKT
-Hongkong.standard.short=HKT
-HST.daylight.short=HDT
-HST.generic.short=HT
-HST.standard.short=HST
-Iceland.daylight.short=GMT
-Iceland.generic.short=GMT
-Iceland.standard.short=GMT
-IET.daylight.short=EDT
-IET.generic.short=ET
-IET.standard.short=EST
-Indian/Antananarivo.daylight.short=EAST
-Indian/Antananarivo.generic.short=EAT
-Indian/Antananarivo.standard.short=EAT
-Indian/Chagos.daylight.short=IOST
-Indian/Chagos.generic.short=IOT
-Indian/Chagos.standard.short=IOT
-Indian/Christmas.daylight.short=CXST
-Indian/Christmas.generic.short=CIT
-Indian/Christmas.standard.short=CXT
-Indian/Cocos.daylight.short=CCST
-Indian/Cocos.generic.short=CCT
-Indian/Cocos.standard.short=CCT
-Indian/Comoro.daylight.short=EAST
-Indian/Comoro.generic.short=EAT
-Indian/Comoro.standard.short=EAT
-Indian/Kerguelen.daylight.short=TFST
-Indian/Kerguelen.generic.short=TFT
-Indian/Kerguelen.standard.short=TFT
-Indian/Mahe.daylight.short=SCST
-Indian/Mahe.generic.short=SCT
-Indian/Mahe.standard.short=SCT
-Indian/Maldives.daylight.short=MVST
-Indian/Maldives.generic.short=MVT
-Indian/Maldives.standard.short=MVT
-Indian/Mauritius.daylight.short=MUST
-Indian/Mauritius.generic.short=MUT
-Indian/Mauritius.standard.short=MUT
-Indian/Mayotte.daylight.short=EAST
-Indian/Mayotte.generic.short=EAT
-Indian/Mayotte.standard.short=EAT
-Indian/Reunion.daylight.short=REST
-Indian/Reunion.generic.short=RET
-Indian/Reunion.standard.short=RET
-Iran.daylight.short=IRDT
-Iran.generic.short=IRT
-Iran.standard.short=IRST
-Israel.daylight.short=IDT
-Israel.generic.short=IT
-Israel.standard.short=IST
-IST.daylight.short=IDT
-IST.generic.short=IT
-IST.standard.short=IST
-Jamaica.daylight.short=EDT
-Jamaica.generic.short=ET
-Jamaica.standard.short=EST
-Japan.daylight.short=JDT
-Japan.generic.short=JT
-Japan.standard.short=JST
-JST.daylight.short=JDT
-JST.generic.short=JT
-JST.standard.short=JST
-Kwajalein.daylight.short=MHST
-Kwajalein.generic.short=MHT
-Kwajalein.standard.short=MHT
-Libya.daylight.short=EEST
-Libya.generic.short=EET
-Libya.standard.short=EET
-MET.daylight.short=MEST
-MET.generic.short=MET
-MET.standard.short=MET
-Mexico/BajaNorte.daylight.short=PDT
-Mexico/BajaNorte.generic.short=PT
-Mexico/BajaNorte.standard.short=PST
-Mexico/BajaSur.daylight.short=MDT
-Mexico/BajaSur.generic.short=MT
-Mexico/BajaSur.standard.short=MST
-Mexico/General.daylight.short=CDT
-Mexico/General.generic.short=CT
-Mexico/General.standard.short=CST
-MIT.daylight.short=WSDT
-MIT.generic.short=WST
-MIT.standard.short=WST
-MST7MDT.daylight.short=MDT
-MST7MDT.generic.short=MT
-MST7MDT.standard.short=MST
-MST.daylight.short=MDT
-MST.generic.short=MT
-MST.standard.short=MST
-Navajo.daylight.short=MDT
-Navajo.generic.short=MT
-Navajo.standard.short=MST
-NET.daylight.short=AMST
-NET.generic.short=AMT
-NET.standard.short=AMT
-NST.daylight.short=NZDT
-NST.generic.short=NZT
-NST.standard.short=NZST
-NZ-CHAT.daylight.short=CHADT
-NZ-CHAT.generic.short=CHAT
-NZ-CHAT.standard.short=CHAST
-NZ.daylight.short=NZDT
-NZ.generic.short=NZT
-NZ.standard.short=NZST
-Pacific/Apia.daylight.short=WSDT
-Pacific/Apia.generic.short=WST
-Pacific/Apia.standard.short=WST
-Pacific/Auckland.daylight.short=NZDT
-Pacific/Auckland.generic.short=NZT
-Pacific/Auckland.standard.short=NZST
-Pacific/Chatham.daylight.short=CHADT
-Pacific/Chatham.generic.short=CHAT
-Pacific/Chatham.standard.short=CHAST
-Pacific/Chuuk.daylight.short=CHUST
-Pacific/Chuuk.generic.short=CHUT
-Pacific/Chuuk.standard.short=CHUT
-Pacific/Easter.daylight.short=EASST
-Pacific/Easter.generic.short=EAST
-Pacific/Easter.standard.short=EAST
-Pacific/Efate.daylight.short=VUST
-Pacific/Efate.generic.short=VUT
-Pacific/Efate.standard.short=VUT
-Pacific/Enderbury.daylight.short=PHOST
-Pacific/Enderbury.generic.short=PHOT
-Pacific/Enderbury.standard.short=PHOT
-Pacific/Fakaofo.daylight.short=TKST
-Pacific/Fakaofo.generic.short=TKT
-Pacific/Fakaofo.standard.short=TKT
-Pacific/Fiji.daylight.short=FJST
-Pacific/Fiji.generic.short=FJT
-Pacific/Fiji.standard.short=FJT
-Pacific/Funafuti.daylight.short=TVST
-Pacific/Funafuti.generic.short=TVT
-Pacific/Funafuti.standard.short=TVT
-Pacific/Galapagos.daylight.short=GALST
-Pacific/Galapagos.generic.short=GALT
-Pacific/Galapagos.standard.short=GALT
-Pacific/Gambier.daylight.short=GAMST
-Pacific/Gambier.generic.short=GAMT
-Pacific/Gambier.standard.short=GAMT
-Pacific/Guadalcanal.daylight.short=SBST
-Pacific/Guadalcanal.generic.short=SBT
-Pacific/Guadalcanal.standard.short=SBT
-Pacific/Guam.daylight.short=ChDT
-Pacific/Guam.generic.short=ChT
-Pacific/Guam.standard.short=ChST
-Pacific/Honolulu.daylight.short=HDT
-Pacific/Honolulu.generic.short=HT
-Pacific/Honolulu.standard.short=HST
-Pacific/Johnston.daylight.short=HDT
-Pacific/Johnston.generic.short=HT
-Pacific/Johnston.standard.short=HST
-Pacific/Kiritimati.daylight.short=LINST
-Pacific/Kiritimati.generic.short=LINT
-Pacific/Kiritimati.standard.short=LINT
-Pacific/Kosrae.daylight.short=KOSST
-Pacific/Kosrae.generic.short=KOST
-Pacific/Kosrae.standard.short=KOST
-Pacific/Kwajalein.daylight.short=MHST
-Pacific/Kwajalein.generic.short=MHT
-Pacific/Kwajalein.standard.short=MHT
-Pacific/Majuro.daylight.short=MHST
-Pacific/Majuro.generic.short=MHT
-Pacific/Majuro.standard.short=MHT
-Pacific/Marquesas.daylight.short=MARST
-Pacific/Marquesas.generic.short=MART
-Pacific/Marquesas.standard.short=MART
-Pacific/Midway.daylight.short=SDT
-Pacific/Midway.generic.short=ST
-Pacific/Midway.standard.short=SST
-Pacific/Nauru.daylight.short=NRST
-Pacific/Nauru.generic.short=NRT
-Pacific/Nauru.standard.short=NRT
-Pacific/Niue.daylight.short=NUST
-Pacific/Niue.generic.short=NUT
-Pacific/Niue.standard.short=NUT
-Pacific/Norfolk.daylight.short=NFST
-Pacific/Norfolk.generic.short=NFT
-Pacific/Norfolk.standard.short=NFT
-Pacific/Noumea.daylight.short=NCST
-Pacific/Noumea.generic.short=NCT
-Pacific/Noumea.standard.short=NCT
-Pacific/Pago_Pago.daylight.short=SDT
-Pacific/Pago_Pago.generic.short=ST
-Pacific/Pago_Pago.standard.short=SST
-Pacific/Palau.daylight.short=PWST
-Pacific/Palau.generic.short=PWT
-Pacific/Palau.standard.short=PWT
-Pacific/Pitcairn.daylight.short=PDT
-Pacific/Pitcairn.generic.short=PT
-Pacific/Pitcairn.standard.short=PST
-Pacific/Pohnpei.daylight.short=PONST
-Pacific/Pohnpei.generic.short=PONT
-Pacific/Pohnpei.standard.short=PONT
-Pacific/Ponape.daylight.short=PONST
-Pacific/Ponape.generic.short=PONT
-Pacific/Ponape.standard.short=PONT
-Pacific/Port_Moresby.daylight.short=PGST
-Pacific/Port_Moresby.generic.short=PGT
-Pacific/Port_Moresby.standard.short=PGT
-Pacific/Rarotonga.daylight.short=CKHST
-Pacific/Rarotonga.generic.short=CKT
-Pacific/Rarotonga.standard.short=CKT
-Pacific/Saipan.daylight.short=ChDT
-Pacific/Saipan.generic.short=ChT
-Pacific/Saipan.standard.short=ChST
-Pacific/Samoa.daylight.short=SDT
-Pacific/Samoa.generic.short=ST
-Pacific/Samoa.standard.short=SST
-Pacific/Tahiti.daylight.short=TAHST
-Pacific/Tahiti.generic.short=TAHT
-Pacific/Tahiti.standard.short=TAHT
-Pacific/Tarawa.daylight.short=GILST
-Pacific/Tarawa.generic.short=GILT
-Pacific/Tarawa.standard.short=GILT
-Pacific/Tongatapu.daylight.short=TOST
-Pacific/Tongatapu.generic.short=TOT
-Pacific/Tongatapu.standard.short=TOT
-Pacific/Truk.daylight.short=CHUST
-Pacific/Truk.generic.short=CHUT
-Pacific/Truk.standard.short=CHUT
-Pacific/Wake.daylight.short=WAKST
-Pacific/Wake.generic.short=WAKT
-Pacific/Wake.standard.short=WAKT
-Pacific/Wallis.daylight.short=WFST
-Pacific/Wallis.generic.short=WFT
-Pacific/Wallis.standard.short=WFT
-Pacific/Yap.daylight.short=CHUST
-Pacific/Yap.generic.short=CHUT
-Pacific/Yap.standard.short=CHUT
-PLT.daylight.short=PKST
-PLT.generic.short=PKT
-PLT.standard.short=PKT
-PNT.daylight.short=MDT
-PNT.generic.short=MT
-PNT.standard.short=MST
-Poland.daylight.short=CEST
-Poland.generic.short=CET
-Poland.standard.short=CET
-Portugal.daylight.short=WEST
-Portugal.generic.short=WET
-Portugal.standard.short=WET
-PRC.daylight.short=CDT
-PRC.generic.short=CT
-PRC.standard.short=CST
-PRT.daylight.short=ADT
-PRT.generic.short=AT
-PRT.standard.short=AST
-PST8PDT.daylight.short=PDT
-PST8PDT.generic.short=PT
-PST8PDT.standard.short=PST
-PST.daylight.short=PDT
-PST.generic.short=PT
-PST.standard.short=PST
-ROK.daylight.short=KDT
-ROK.generic.short=KT
-ROK.standard.short=KST
-Singapore.daylight.short=SGST
-Singapore.generic.short=SGT
-Singapore.standard.short=SGT
-SST.daylight.short=SBST
-SST.generic.short=SBT
-SST.standard.short=SBT
-SystemV/AST4ADT.daylight.short=ADT
-SystemV/AST4ADT.generic.short=AT
-SystemV/AST4ADT.standard.short=AST
-SystemV/AST4.daylight.short=ADT
-SystemV/AST4.generic.short=AT
-SystemV/AST4.standard.short=AST
-SystemV/CST6CDT.daylight.short=CDT
-SystemV/CST6CDT.generic.short=CT
-SystemV/CST6CDT.standard.short=CST
-SystemV/CST6.daylight.short=CDT
-SystemV/CST6.generic.short=CT
-SystemV/CST6.standard.short=CST
-SystemV/EST5.daylight.short=EDT
-SystemV/EST5EDT.daylight.short=EDT
-SystemV/EST5EDT.generic.short=ET
-SystemV/EST5EDT.standard.short=EST
-SystemV/EST5.generic.short=ET
-SystemV/EST5.standard.short=EST
-SystemV/HST10.daylight.short=HDT
-SystemV/HST10.generic.short=HT
-SystemV/HST10.standard.short=HST
-SystemV/MST7.daylight.short=MDT
-SystemV/MST7.generic.short=MT
-SystemV/MST7MDT.daylight.short=MDT
-SystemV/MST7MDT.generic.short=MT
-SystemV/MST7MDT.standard.short=MST
-SystemV/MST7.standard.short=MST
-SystemV/PST8.daylight.short=PDT
-SystemV/PST8.generic.short=PT
-SystemV/PST8PDT.daylight.short=PDT
-SystemV/PST8PDT.generic.short=PT
-SystemV/PST8PDT.standard.short=PST
-SystemV/PST8.standard.short=PST
-SystemV/YST9.daylight.short=AKDT
-SystemV/YST9.generic.short=AKT
-SystemV/YST9.standard.short=AKST
-SystemV/YST9YDT.daylight.short=AKDT
-SystemV/YST9YDT.generic.short=AKT
-SystemV/YST9YDT.standard.short=AKST
-Turkey.daylight.short=EEST
-Turkey.generic.short=EET
-Turkey.standard.short=EET
-UCT.daylight.short=UTC
-UCT.generic.short=UTC
-UCT.standard.short=UTC
-Universal.daylight.short=UTC
-Universal.generic.short=UTC
-Universal.standard.short=UTC
-US/Alaska.daylight.short=AKDT
-US/Alaska.generic.short=AKT
-US/Alaska.standard.short=AKST
-US/Aleutian.daylight.short=HADT
-US/Aleutian.generic.short=HAT
-US/Aleutian.standard.short=HAST
-US/Arizona.daylight.short=MDT
-US/Arizona.generic.short=MT
-US/Arizona.standard.short=MST
-US/Central.daylight.short=CDT
-US/Central.generic.short=CT
-US/Central.standard.short=CST
-US/Eastern.daylight.short=EDT
-US/Eastern.generic.short=ET
-US/Eastern.standard.short=EST
-US/East-Indiana.daylight.short=EDT
-US/East-Indiana.generic.short=ET
-US/East-Indiana.standard.short=EST
-US/Hawaii.daylight.short=HDT
-US/Hawaii.generic.short=HT
-US/Hawaii.standard.short=HST
-US/Indiana-Starke.daylight.short=CDT
-US/Indiana-Starke.generic.short=CT
-US/Indiana-Starke.standard.short=CST
-US/Michigan.daylight.short=EDT
-US/Michigan.generic.short=ET
-US/Michigan.standard.short=EST
-US/Mountain.daylight.short=MDT
-US/Mountain.generic.short=MT
-US/Mountain.standard.short=MST
-US/Pacific.daylight.short=PDT
-US/Pacific.generic.short=PT
-US/Pacific-New.daylight.short=PDT
-US/Pacific-New.generic.short=PT
-US/Pacific-New.standard.short=PST
-US/Pacific.standard.short=PST
-US/Samoa.daylight.short=SDT
-US/Samoa.generic.short=ST
-US/Samoa.standard.short=SST
-UTC.daylight.short=UTC
-UTC.generic.short=UTC
-UTC.standard.short=UTC
-VST.daylight.short=ICST
-VST.generic.short=ICT
-VST.standard.short=ICT
-WET.daylight.short=WEST
-WET.generic.short=WET
-WET.standard.short=WET
-W-SU.daylight.short=MSD
-W-SU.generic.short=MT
-W-SU.standard.short=MSK
-Zulu.daylight.short=UTC
-Zulu.generic.short=UTC
-Zulu.standard.short=UTC
diff --git a/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_zh_TW.properties b/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_zh_TW.properties
deleted file mode 100644
index a9b77a60a66..00000000000
--- a/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_zh_TW.properties
+++ /dev/null
@@ -1,651 +0,0 @@
-ACT.daylight.long=\u4E2D\u90E8\u590F\u4EE4\u6642\u9593 (\u5317\u90E8\u5404\u5730\u5340)
-ACT.generic.long=\u6FB3\u5927\u5229\u4E9E\u4E2D\u90E8\u6642\u9593 (\u5317\u65B9\u5340\u57DF)
-ACT.standard.long=\u4E2D\u90E8\u6A19\u6E96\u6642\u9593 (\u5317\u90E8\u5404\u5730\u5340)
-AET.daylight.long=\u6771\u90E8\u590F\u4EE4\u6642\u9593 (\u65B0\u5357\u5A01\u723E\u65AF)
-AET.generic.long=\u6771\u90E8\u6642\u9593 (\u65B0\u5357\u5A01\u723E\u65AF)
-AET.standard.long=\u6771\u90E8\u6A19\u6E96\u6642\u9593 (\u65B0\u5357\u5A01\u723E\u65AF)
-AGT.generic.long=\u963F\u6839\u5EF7\u6642\u9593
-ART.generic.long=\u6771\u6B50\u6642\u9593
-AST.generic.long=\u963F\u62C9\u65AF\u52A0\u6642\u9593
-Africa/Abidjan.generic.long=\u683C\u6797\u5A01\u6CBB\u6642\u9593
-Africa/Accra.generic.long=\u8FE6\u7D0D\u6642\u9593
-Africa/Addis_Ababa.generic.long=\u6771\u975E\u6642\u9593
-Africa/Algiers.generic.long=\u4E2D\u6B50\u6642\u9593
-Africa/Asmara.generic.long=\u6771\u975E\u6642\u9593
-Africa/Asmera.generic.long=\u6771\u975E\u6642\u9593
-Africa/Bamako.generic.long=\u683C\u6797\u5A01\u6CBB\u6642\u9593
-Africa/Bangui.generic.long=\u897F\u975E\u6642\u9593
-Africa/Banjul.generic.long=\u683C\u6797\u5A01\u6CBB\u6642\u9593
-Africa/Bissau.generic.long=\u683C\u6797\u5A01\u6CBB\u6642\u9593
-Africa/Blantyre.generic.long=\u4E2D\u975E\u6642\u9593
-Africa/Brazzaville.generic.long=\u897F\u975E\u6642\u9593
-Africa/Bujumbura.generic.long=\u4E2D\u975E\u6642\u9593
-Africa/Cairo.generic.long=\u6771\u6B50\u6642\u9593
-Africa/Casablanca.generic.long=\u897F\u6B50\u6642\u9593
-Africa/Ceuta.generic.long=\u4E2D\u6B50\u6642\u9593
-Africa/Conakry.generic.long=\u683C\u6797\u5A01\u6CBB\u6642\u9593
-Africa/Dakar.generic.long=\u683C\u6797\u5A01\u6CBB\u6642\u9593
-Africa/Dar_es_Salaam.generic.long=\u6771\u975E\u6642\u9593
-Africa/Djibouti.generic.long=\u6771\u975E\u6642\u9593
-Africa/Douala.generic.long=\u897F\u975E\u6642\u9593
-Africa/El_Aaiun.generic.long=\u897F\u6B50\u6642\u9593
-Africa/Freetown.generic.long=\u7345\u5B50\u5C71\u6642\u9593
-Africa/Gaborone.generic.long=\u4E2D\u975E\u6642\u9593
-Africa/Harare.generic.long=\u4E2D\u975E\u6642\u9593
-Africa/Johannesburg.generic.long=\u5357\u975E\u6642\u9593
-Africa/Juba.generic.long=\u6771\u975E\u6642\u9593
-Africa/Kampala.generic.long=\u6771\u975E\u6642\u9593
-Africa/Khartoum.generic.long=\u6771\u975E\u6642\u9593
-Africa/Kigali.generic.long=\u4E2D\u975E\u6642\u9593
-Africa/Kinshasa.generic.long=\u897F\u975E\u6642\u9593
-Africa/Lagos.generic.long=\u897F\u975E\u6642\u9593
-Africa/Libreville.generic.long=\u897F\u975E\u6642\u9593
-Africa/Lome.generic.long=\u683C\u6797\u5A01\u6CBB\u6642\u9593
-Africa/Luanda.generic.long=\u897F\u975E\u6642\u9593
-Africa/Lubumbashi.generic.long=\u4E2D\u975E\u6642\u9593
-Africa/Lusaka.generic.long=\u4E2D\u975E\u6642\u9593
-Africa/Malabo.generic.long=\u897F\u975E\u6642\u9593
-Africa/Maputo.generic.long=\u4E2D\u975E\u6642\u9593
-Africa/Maseru.generic.long=\u5357\u975E\u6642\u9593
-Africa/Mbabane.generic.long=\u5357\u975E\u6642\u9593
-Africa/Mogadishu.generic.long=\u6771\u975E\u6642\u9593
-Africa/Monrovia.generic.long=\u683C\u6797\u5A01\u6CBB\u6642\u9593
-Africa/Nairobi.generic.long=\u6771\u975E\u6642\u9593
-Africa/Ndjamena.generic.long=\u897F\u975E\u6642\u9593
-Africa/Niamey.generic.long=\u897F\u975E\u6642\u9593
-Africa/Nouakchott.generic.long=\u683C\u6797\u5A01\u6CBB\u6642\u9593
-Africa/Ouagadougou.generic.long=\u683C\u6797\u5A01\u6CBB\u6642\u9593
-Africa/Porto-Novo.generic.long=\u897F\u975E\u6642\u9593
-Africa/Sao_Tome.generic.long=\u683C\u6797\u5A01\u6CBB\u6642\u9593
-Africa/Timbuktu.generic.long=\u683C\u6797\u5A01\u6CBB\u6642\u9593
-Africa/Tripoli.generic.long=\u6771\u6b50\u6642\u9593
-Africa/Tunis.generic.long=\u4E2D\u6B50\u6642\u9593
-Africa/Windhoek.generic.long=\u897F\u975E\u6642\u9593
-America/Adak.generic.long=\u590F\u5A01\u5937-\u963F\u7559\u7533\u6642\u9593
-America/Anchorage.generic.long=\u963F\u62C9\u65AF\u52A0\u6642\u9593
-America/Anguilla.generic.long=\u5927\u897F\u6D0B\u6642\u9593
-America/Antigua.generic.long=\u5927\u897F\u6D0B\u6642\u9593
-America/Araguaina.generic.long=\u5DF4\u897F\u5229\u4E9E\u6642\u9593
-America/Argentina/Buenos_Aires.generic.long=\u963F\u6839\u5EF7\u6642\u9593
-America/Argentina/Catamarca.generic.long=\u963F\u6839\u5EF7\u6642\u9593
-America/Argentina/ComodRivadavia.generic.long=\u963F\u6839\u5EF7\u6642\u9593
-America/Argentina/Cordoba.generic.long=\u963F\u6839\u5EF7\u6642\u9593
-America/Argentina/Jujuy.generic.long=\u963F\u6839\u5EF7\u6642\u9593
-America/Argentina/La_Rioja.generic.long=\u963F\u6839\u5EF7\u6642\u9593
-America/Argentina/Mendoza.generic.long=\u963F\u6839\u5EF7\u6642\u9593
-America/Argentina/Rio_Gallegos.generic.long=\u963F\u6839\u5EF7\u6642\u9593
-America/Argentina/Salta.generic.long=\u963F\u6839\u5EF7\u6642\u9593
-America/Argentina/San_Juan.generic.long=\u963F\u6839\u5EF7\u6642\u9593
-America/Argentina/San_Luis.generic.long=\u963f\u6839\u5ef7\u6642\u9593
-America/Argentina/Tucuman.generic.long=\u963F\u6839\u5EF7\u6642\u9593
-America/Argentina/Ushuaia.generic.long=\u963F\u6839\u5EF7\u6642\u9593
-America/Aruba.generic.long=\u5927\u897F\u6D0B\u6642\u9593
-America/Asuncion.generic.long=\u5DF4\u62C9\u572D\u6642\u9593
-America/Atikokan.generic.long=\u7F8E\u570B\u6771\u90E8\u6642\u9593
-America/Atka.generic.long=\u590F\u5A01\u5937-\u963F\u7559\u7533\u6642\u9593
-America/Bahia.generic.long=\u5DF4\u897F\u5229\u4E9E\u6642\u9593
-America/Bahia_Banderas.generic.long=\u7F8E\u570B\u4E2D\u90E8\u6642\u9593
-America/Barbados.generic.long=\u5927\u897F\u6D0B\u6642\u9593
-America/Belem.generic.long=\u5DF4\u897F\u5229\u4E9E\u6642\u9593
-America/Belize.generic.long=\u7F8E\u570B\u4E2D\u90E8\u6642\u9593
-America/Blanc-Sablon.generic.long=\u5927\u897F\u6D0B\u6642\u9593
-America/Boa_Vista.generic.long=\u4E9E\u99AC\u905C\u6642\u9593
-America/Bogota.generic.long=\u54E5\u502B\u6BD4\u4E9E\u6642\u9593
-America/Boise.generic.long=\u7F8E\u570B\u5C71\u5340\u6642\u9593
-America/Buenos_Aires.generic.long=\u963F\u6839\u5EF7\u6642\u9593
-America/Cambridge_Bay.generic.long=\u7F8E\u570B\u5C71\u5340\u6642\u9593
-America/Campo_Grande.generic.long=\u4E9E\u99AC\u905C\u6642\u9593
-America/Cancun.generic.long=\u7F8E\u570B\u4E2D\u90E8\u6642\u9593
-America/Caracas.generic.long=\u59D4\u5167\u745E\u62C9\u6642\u9593
-America/Catamarca.generic.long=\u963F\u6839\u5EF7\u6642\u9593
-America/Cayenne.generic.long=\u6CD5\u5C6C\u572D\u4E9E\u90A3\u6642\u9593
-America/Cayman.generic.long=\u7F8E\u570B\u6771\u90E8\u6642\u9593
-America/Chicago.generic.long=\u7F8E\u570B\u4E2D\u90E8\u6642\u9593
-America/Chihuahua.generic.long=\u7F8E\u570B\u5C71\u5340\u6642\u9593
-America/Coral_Harbour.generic.long=\u7F8E\u570B\u6771\u90E8\u6642\u9593
-America/Cordoba.generic.long=\u963F\u6839\u5EF7\u6642\u9593
-America/Costa_Rica.generic.long=\u7F8E\u570B\u4E2D\u90E8\u6642\u9593
-America/Creston.generic.long=\u7F8E\u570B\u5C71\u5340\u6642\u9593
-America/Cuiaba.generic.long=\u4E9E\u99AC\u905C\u6642\u9593
-America/Curacao.generic.long=\u5927\u897F\u6D0B\u6642\u9593
-America/Danmarkshavn.generic.long=\u683C\u6797\u5A01\u6CBB\u6642\u9593
-America/Dawson.generic.long=\u592A\u5E73\u6D0B\u6642\u9593
-America/Dawson_Creek.generic.long=\u7F8E\u570B\u5C71\u5340\u6642\u9593
-America/Denver.generic.long=\u7F8E\u570B\u5C71\u5340\u6642\u9593
-America/Detroit.generic.long=\u7F8E\u570B\u6771\u90E8\u6642\u9593
-America/Dominica.generic.long=\u5927\u897F\u6D0B\u6642\u9593
-America/Edmonton.generic.long=\u7F8E\u570B\u5C71\u5340\u6642\u9593
-America/Eirunepe.generic.long=Acre \u6642\u9593
-America/El_Salvador.generic.long=\u7F8E\u570B\u4E2D\u90E8\u6642\u9593
-America/Ensenada.generic.long=\u592A\u5E73\u6D0B\u6642\u9593
-America/Fort_Wayne.generic.long=\u7F8E\u570B\u6771\u90E8\u6642\u9593
-America/Fortaleza.generic.long=\u5DF4\u897F\u5229\u4E9E\u6642\u9593
-America/Glace_Bay.generic.long=\u5927\u897F\u6D0B\u6642\u9593
-America/Godthab.generic.long=\u897F\u683C\u9675\u862D\u6642\u9593
-America/Goose_Bay.generic.long=\u5927\u897F\u6D0B\u6642\u9593
-America/Grand_Turk.generic.long=\u7F8E\u570B\u6771\u90E8\u6642\u9593
-America/Grenada.generic.long=\u5927\u897F\u6D0B\u6642\u9593
-America/Guadeloupe.generic.long=\u5927\u897F\u6D0B\u6642\u9593
-America/Guatemala.generic.long=\u7F8E\u570B\u4E2D\u90E8\u6642\u9593
-America/Guayaquil.generic.long=\u5384\u74DC\u591A\u723E\u6642\u9593
-America/Guyana.generic.long=\u84CB\u4E9E\u90A3\u6642\u9593
-America/Halifax.generic.long=\u5927\u897F\u6D0B\u6642\u9593
-America/Havana.generic.long=\u53E4\u5DF4\u6642\u9593
-America/Hermosillo.generic.long=\u7F8E\u570B\u5C71\u5340\u6642\u9593
-America/Indiana/Indianapolis.generic.long=\u7F8E\u570B\u6771\u90E8\u6642\u9593
-America/Indiana/Knox.generic.long=\u7F8E\u570B\u4E2D\u90E8\u6642\u9593
-America/Indiana/Marengo.generic.long=\u7F8E\u570B\u6771\u90E8\u6642\u9593
-America/Indiana/Petersburg.generic.long=\u7F8E\u570B\u6771\u90E8\u6642\u9593
-America/Indiana/Tell_City.generic.long=\u7F8E\u570B\u4E2D\u90E8\u6642\u9593
-America/Indiana/Vevay.generic.long=\u7F8E\u570B\u6771\u90E8\u6642\u9593
-America/Indiana/Vincennes.generic.long=\u7F8E\u570B\u6771\u90E8\u6642\u9593
-America/Indiana/Winamac.generic.long=\u7F8E\u570B\u6771\u90E8\u6642\u9593
-America/Indianapolis.generic.long=\u7F8E\u570B\u6771\u90E8\u6642\u9593
-America/Inuvik.generic.long=\u7F8E\u570B\u5C71\u5340\u6642\u9593
-America/Iqaluit.generic.long=\u7F8E\u570B\u6771\u90E8\u6642\u9593
-America/Jamaica.generic.long=\u7F8E\u570B\u6771\u90E8\u6642\u9593
-America/Jujuy.generic.long=\u963F\u6839\u5EF7\u6642\u9593
-America/Juneau.generic.long=\u963F\u62C9\u65AF\u52A0\u6642\u9593
-America/Kentucky/Louisville.generic.long=\u7F8E\u570B\u6771\u90E8\u6642\u9593
-America/Kentucky/Monticello.generic.long=\u7F8E\u570B\u6771\u90E8\u6642\u9593
-America/Knox_IN.generic.long=\u7F8E\u570B\u4E2D\u90E8\u6642\u9593
-America/Kralendijk.generic.long=\u5927\u897F\u6D0B\u6642\u9593
-America/La_Paz.generic.long=\u73BB\u5229\u7DAD\u4E9E\u6642\u9593
-America/Lima.generic.long=\u7955\u9B6F\u6642\u9593
-America/Los_Angeles.generic.long=\u592A\u5E73\u6D0B\u6642\u9593
-America/Louisville.generic.long=\u7F8E\u570B\u6771\u90E8\u6642\u9593
-America/Lower_Princes.generic.long=\u5927\u897F\u6D0B\u6642\u9593
-America/Maceio.generic.long=\u5DF4\u897F\u5229\u4E9E\u6642\u9593
-America/Managua.generic.long=\u7F8E\u570B\u4E2D\u90E8\u6642\u9593
-America/Manaus.generic.long=\u4E9E\u99AC\u905C\u6642\u9593
-America/Marigot.generic.long=\u5927\u897F\u6D0B\u6642\u9593
-America/Martinique.generic.long=\u5927\u897F\u6D0B\u6642\u9593
-America/Matamoros.generic.long=\u7F8E\u570B\u4E2D\u90E8\u6642\u9593
-America/Mazatlan.generic.long=\u7F8E\u570B\u5C71\u5340\u6642\u9593
-America/Mendoza.generic.long=\u963F\u6839\u5EF7\u6642\u9593
-America/Menominee.generic.long=\u7F8E\u570B\u4E2D\u90E8\u6642\u9593
-America/Merida.generic.long=\u7F8E\u570B\u4E2D\u90E8\u6642\u9593
-America/Metlakatla.daylight.long=\u6885\u7279\u62C9\u5361\u7279\u62C9\u65E5\u5149\u7BC0\u7D04\u6642\u9593
-America/Metlakatla.generic.long=\u6885\u7279\u62C9\u5361\u7279\u62C9\u6642\u9593
-America/Metlakatla.standard.long=\u6885\u7279\u62C9\u5361\u7279\u62C9\u6A19\u6E96\u6642\u9593
-America/Mexico_City.generic.long=\u7F8E\u570B\u4E2D\u90E8\u6642\u9593
-America/Miquelon.generic.long=\u8056\u5F7C\u5FB7\u8207\u5BC6\u555F\u5D19\u6642\u9593
-America/Moncton.generic.long=\u5927\u897F\u6D0B\u6642\u9593
-America/Monterrey.generic.long=\u7F8E\u570B\u4E2D\u90E8\u6642\u9593
-America/Montevideo.generic.long=\u70CF\u62C9\u572D\u6642\u9593
-America/Montreal.generic.long=\u7F8E\u570B\u6771\u90E8\u6642\u9593
-America/Montserrat.generic.long=\u5927\u897F\u6D0B\u6642\u9593
-America/Nassau.generic.long=\u7F8E\u570B\u6771\u90E8\u6642\u9593
-America/New_York.generic.long=\u7F8E\u570B\u6771\u90E8\u6642\u9593
-America/Nipigon.generic.long=\u7F8E\u570B\u6771\u90E8\u6642\u9593
-America/Nome.generic.long=\u963F\u62C9\u65AF\u52A0\u6642\u9593
-America/Noronha.generic.long=\u8CBB\u723E\u5357\u591A-\u8FEA\u8AFE\u7F85\u5C3C\u4E9E\u6642\u9593
-America/North_Dakota/Beulah.generic.long=\u7F8E\u570B\u4E2D\u90E8\u6642\u9593
-America/North_Dakota/Center.generic.long=\u7F8E\u570B\u4E2D\u90E8\u6642\u9593
-America/North_Dakota/New_Salem.generic.long=\u7F8E\u570B\u4E2D\u90E8\u6642\u9593
-America/Ojinaga.generic.long=\u7F8E\u570B\u5C71\u5340\u6642\u9593
-America/Panama.generic.long=\u7F8E\u570B\u6771\u90E8\u6642\u9593
-America/Pangnirtung.generic.long=\u7F8E\u570B\u6771\u90E8\u6642\u9593
-America/Paramaribo.generic.long=\u8607\u5229\u5357\u6642\u9593
-America/Phoenix.generic.long=\u7F8E\u570B\u5C71\u5340\u6642\u9593
-America/Port-au-Prince.generic.long=\u7F8E\u570B\u6771\u90E8\u6642\u9593
-America/Port_of_Spain.generic.long=\u5927\u897F\u6D0B\u6642\u9593
-America/Porto_Acre.generic.long=Acre \u6642\u9593
-America/Porto_Velho.generic.long=\u4E9E\u99AC\u905C\u6642\u9593
-America/Puerto_Rico.generic.long=\u5927\u897F\u6D0B\u6642\u9593
-America/Rainy_River.generic.long=\u7F8E\u570B\u4E2D\u90E8\u6642\u9593
-America/Rankin_Inlet.generic.long=\u7F8E\u570B\u4E2D\u90E8\u6642\u9593
-America/Recife.generic.long=\u5DF4\u897F\u5229\u4E9E\u6642\u9593
-America/Regina.generic.long=\u7F8E\u570B\u4E2D\u90E8\u6642\u9593
-America/Resolute.generic.long=\u7F8E\u570B\u4E2D\u90E8\u6642\u9593
-America/Rio_Branco.generic.long=Acre \u6642\u9593
-America/Rosario.generic.long=\u963F\u6839\u5EF7\u6642\u9593
-America/Santa_Isabel.generic.long=\u592A\u5E73\u6D0B\u6642\u9593
-America/Santarem.generic.long=\u5DF4\u897F\u5229\u4E9E\u6642\u9593
-America/Santiago.generic.long=\u667A\u5229\u6642\u9593
-America/Santo_Domingo.generic.long=\u5927\u897F\u6D0B\u6642\u9593
-America/Sao_Paulo.generic.long=\u5DF4\u897F\u5229\u4E9E\u6642\u9593
-America/Scoresbysund.generic.long=\u6771\u683C\u9675\u862D\u6642\u9593
-America/Shiprock.generic.long=\u7F8E\u570B\u5C71\u5340\u6642\u9593
-America/Sitka.generic.long=\u963F\u62C9\u65AF\u52A0\u6642\u9593
-America/St_Barthelemy.generic.long=\u5927\u897F\u6D0B\u6642\u9593
-America/St_Johns.generic.long=\u7D10\u82AC\u862D\u6642\u9593
-America/St_Kitts.generic.long=\u5927\u897F\u6D0B\u6642\u9593
-America/St_Lucia.generic.long=\u5927\u897F\u6D0B\u6642\u9593
-America/St_Thomas.generic.long=\u5927\u897F\u6D0B\u6642\u9593
-America/St_Vincent.generic.long=\u5927\u897F\u6D0B\u6642\u9593
-America/Swift_Current.generic.long=\u7F8E\u570B\u4E2D\u90E8\u6642\u9593
-America/Tegucigalpa.generic.long=\u7F8E\u570B\u4E2D\u90E8\u6642\u9593
-America/Thule.generic.long=\u5927\u897F\u6D0B\u6642\u9593
-America/Thunder_Bay.generic.long=\u7F8E\u570B\u6771\u90E8\u6642\u9593
-America/Tijuana.generic.long=\u592A\u5E73\u6D0B\u6642\u9593
-America/Toronto.generic.long=\u7F8E\u570B\u6771\u90E8\u6642\u9593
-America/Tortola.generic.long=\u5927\u897F\u6D0B\u6642\u9593
-America/Vancouver.generic.long=\u592A\u5E73\u6D0B\u6642\u9593
-America/Virgin.generic.long=\u5927\u897F\u6D0B\u6642\u9593
-America/Whitehorse.generic.long=\u592A\u5E73\u6D0B\u6642\u9593
-America/Winnipeg.generic.long=\u7F8E\u570B\u4E2D\u90E8\u6642\u9593
-America/Yakutat.generic.long=\u963F\u62C9\u65AF\u52A0\u6642\u9593
-America/Yellowknife.generic.long=\u7F8E\u570B\u5C71\u5340\u6642\u9593
-Antarctica/Casey.daylight.long=\u897F\u90E8\u590F\u4EE4\u6642\u9593 (\u6FB3\u5927\u5229\u4E9E)
-Antarctica/Casey.generic.long=\u897F\u90E8\u6642\u9593 (\u6FB3\u5927\u5229\u4E9E)
-Antarctica/Casey.standard.long=\u897F\u90E8\u6A19\u6E96\u6642\u9593 (\u6FB3\u5927\u5229\u4E9E)
-Antarctica/Davis.generic.long=\u81FA\u7DAD\u65AF\u6642\u9593
-Antarctica/DumontDUrville.generic.long=Dumont-d'Urville \u6642\u9593
-Antarctica/Macquarie.daylight.long=\u9EA5\u5938\u5229\u5CF6\u590F\u4EE4\u6642\u9593
-Antarctica/Macquarie.generic.long=\u9EA5\u5938\u5229\u5CF6\u6642\u9593
-Antarctica/Macquarie.standard.long=\u9EA5\u5938\u5229\u5CF6\u6642\u9593
-Antarctica/Mawson.generic.long=\u83AB\u68EE\u6642\u9593
-Antarctica/McMurdo.generic.long=\u7D10\u897F\u862D\u6642\u9593
-Antarctica/Palmer.generic.long=\u667A\u5229\u6642\u9593
-Antarctica/Rothera.generic.long=\u7F85\u897F\u62C9\u6642\u9593
-Antarctica/South_Pole.generic.long=\u7D10\u897F\u862D\u6642\u9593
-Antarctica/Syowa.generic.long=\u5915\u6B50\u74E6 (Syowa) \u6642\u9593
-Antarctica/Vostok.generic.long=\u4F5B\u65AF\u6258 (Vostok) \u6642\u9593
-Arctic/Longyearbyen.generic.long=\u4E2D\u6B50\u6642\u9593
-Asia/Aden.generic.long=\u963F\u62C9\u4F2F\u6642\u9593
-Asia/Almaty.generic.long=\u963F\u62C9\u6728\u5716\u6642\u9593
-Asia/Amman.generic.long=\u963f\u62c9\u4f2f\u6642\u9593
-Asia/Anadyr.generic.long=\u963F\u90A3\u5E95\u6CB3\u6642\u9593
-Asia/Aqtau.generic.long=\u963F\u514B\u5957\u6642\u9593
-Asia/Aqtobe.generic.long=\u963F\u514B\u6258\u5225\u6642\u9593
-Asia/Ashgabat.generic.long=\u571F\u5EAB\u66FC\u6642\u9593
-Asia/Ashkhabad.generic.long=\u571F\u5EAB\u66FC\u6642\u9593
-Asia/Baghdad.generic.long=\u963F\u62C9\u4F2F\u6642\u9593
-Asia/Bahrain.generic.long=\u963F\u62C9\u4F2F\u6642\u9593
-Asia/Baku.generic.long=\u4E9E\u585E\u62DC\u7136\u6642\u9593
-Asia/Bangkok.generic.long=\u5370\u5EA6\u652F\u90A3\u6642\u9593
-Asia/Beirut.generic.long=\u6771\u6B50\u6642\u9593
-Asia/Bishkek.generic.long=\u5409\u723E\u5409\u65AF\u6642\u9593
-Asia/Brunei.generic.long=\u6C76\u840A\u6642\u9593
-Asia/Calcutta.generic.long=\u5370\u5EA6\u6642\u9593
-Asia/Choibalsan.generic.long=\u5DE7\u5DF4\u5C71 (Choibalsan) \u6642\u9593
-Asia/Chongqing.generic.long=\u4E2D\u570B\u6642\u9593
-Asia/Chungking.generic.long=\u4E2D\u570B\u6642\u9593
-Asia/Colombo.generic.long=\u5370\u5EA6\u6642\u9593
-Asia/Dacca.generic.long=\u5B5F\u52A0\u62C9\u6642\u9593
-Asia/Damascus.generic.long=\u6771\u6B50\u6642\u9593
-Asia/Dhaka.generic.long=\u5B5F\u52A0\u62C9\u6642\u9593
-Asia/Dili.generic.long=\u6771\u5E1D\u6C76\u6642\u9593
-Asia/Dubai.generic.long=\u6CE2\u65AF\u7063\u6642\u9593
-Asia/Dushanbe.generic.long=\u5854\u5409\u514B\u6642\u9593
-Asia/Gaza.generic.long=\u6771\u6B50\u6642\u9593
-Asia/Harbin.generic.long=\u4E2D\u570B\u6642\u9593
-Asia/Hebron.generic.long=\u6771\u6B50\u6642\u9593
-Asia/Ho_Chi_Minh.generic.long=\u5370\u5EA6\u652F\u90A3\u6642\u9593
-Asia/Hong_Kong.generic.long=\u9999\u6E2F\u6642\u9593
-Asia/Hovd.generic.long=\u4FAF\u5FB7 (Hovd) \u6642\u9593
-Asia/Irkutsk.generic.long=\u4F0A\u723E\u5EAB\u6B21\u514B\u6642\u9593
-Asia/Istanbul.generic.long=\u6771\u6B50\u6642\u9593
-Asia/Jakarta.generic.long=\u897F\u5370\u5C3C\u6642\u9593
-Asia/Jayapura.generic.long=\u6771\u5370\u5EA6\u5C3C\u897F\u4E9E\u6642\u9593
-Asia/Jerusalem.generic.long=\u4EE5\u8272\u5217\u6642\u9593
-Asia/Kabul.generic.long=\u963F\u5BCC\u6C57\u6642\u9593
-Asia/Kamchatka.generic.long=Petropavlovsk-Kamchatski \u6642\u9593
-Asia/Karachi.generic.long=\u5DF4\u57FA\u65AF\u5766\u6642\u9593
-Asia/Kashgar.generic.long=\u4E2D\u570B\u6642\u9593
-Asia/Kathmandu.generic.long=\u5C3C\u6CCA\u723E\u6642\u9593
-Asia/Katmandu.generic.long=\u5C3C\u6CCA\u723E\u6642\u9593
-Asia/Khandyga.daylight.long=\u6F22\u5730\u52A0 (Khandyga) \u590F\u4EE4\u6642\u9593
-Asia/Khandyga.generic.long=\u6F22\u5730\u52A0 (Khandyga) \u6642\u9593
-Asia/Khandyga.standard.long=\u6F22\u5730\u52A0 (Khandyga) \u6642\u9593
-Asia/Kolkata.generic.long=\u5370\u5EA6\u6642\u9593
-Asia/Krasnoyarsk.generic.long=\u514B\u62C9\u65AF\u8AFE\u4E9E\u723E\u65AF\u514B\u6642\u9593
-Asia/Kuala_Lumpur.generic.long=\u99AC\u4F86\u897F\u4E9E\u6642\u9593
-Asia/Kuching.generic.long=\u99AC\u4F86\u897F\u4E9E\u6642\u9593
-Asia/Kuwait.generic.long=\u963F\u62C9\u4F2F\u6642\u9593
-Asia/Macao.generic.long=\u4E2D\u570B\u6642\u9593
-Asia/Macau.generic.long=\u4E2D\u570B\u6642\u9593
-Asia/Magadan.generic.long=\u99AC\u52A0\u4E39\u6642\u9593
-Asia/Makassar.generic.long=\u4E2D\u5370\u5EA6\u5C3C\u897F\u4E9E\u6642\u9593
-Asia/Manila.generic.long=\u83F2\u5F8B\u8CD3\u6642\u9593
-Asia/Muscat.generic.long=\u6CE2\u65AF\u7063\u6642\u9593
-Asia/Nicosia.generic.long=\u6771\u6B50\u6642\u9593
-Asia/Novokuznetsk.generic.long=\u65B0\u897F\u4F2F\u5229\u4E9E\u6642\u9593
-Asia/Novosibirsk.generic.long=\u65B0\u897F\u4F2F\u5229\u4E9E\u6642\u9593
-Asia/Omsk.generic.long=\u6B50\u59C6\u65AF\u514B (Omsk) \u6642\u9593
-Asia/Oral.generic.long=\u6B50\u4F5B\u6642\u9593
-Asia/Phnom_Penh.generic.long=\u5370\u5EA6\u652F\u90A3\u6642\u9593
-Asia/Pontianak.generic.long=\u897F\u5370\u5C3C\u6642\u9593
-Asia/Pyongyang.generic.long=\u97D3\u570B\u6642\u9593
-Asia/Qatar.generic.long=\u963F\u62C9\u4F2F\u6642\u9593
-Asia/Qyzylorda.generic.long=\u514B\u5B5C\u6D1B\u723E\u9054\u6642\u9593
-Asia/Rangoon.generic.long=\u7DEC\u7538\u6642\u9593
-Asia/Saigon.generic.long=\u5370\u5EA6\u652F\u90A3\u6642\u9593
-Asia/Sakhalin.generic.long=\u5EAB\u9801\u5CF6\u6642\u9593
-Asia/Samarkand.generic.long=\u70CF\u8332\u5225\u514B\u65AF\u5766\u6642\u9593
-Asia/Seoul.generic.long=\u97D3\u570B\u6642\u9593
-Asia/Shanghai.generic.long=\u4E2D\u570B\u6642\u9593
-Asia/Singapore.generic.long=\u65B0\u52A0\u5761\u6642\u9593
-Asia/Taipei.generic.long=\u53f0\u7063\u6642\u9593
-Asia/Tashkent.generic.long=\u70CF\u8332\u5225\u514B\u65AF\u5766\u6642\u9593
-Asia/Tbilisi.generic.long=\u55AC\u6CBB\u4E9E\u6642\u9593
-Asia/Tehran.generic.long=\u4F0A\u6717\u6642\u9593
-Asia/Tel_Aviv.generic.long=\u4EE5\u8272\u5217\u6642\u9593
-Asia/Thimbu.generic.long=\u4E0D\u4E39\u6642\u9593
-Asia/Thimphu.generic.long=\u4E0D\u4E39\u6642\u9593
-Asia/Tokyo.generic.long=\u65E5\u672C\u6642\u9593
-Asia/Ujung_Pandang.generic.long=\u4E2D\u5370\u5EA6\u5C3C\u897F\u4E9E\u6642\u9593
-Asia/Ulaanbaatar.generic.long=\u5EAB\u502B\u6642\u9593
-Asia/Ulan_Bator.generic.long=\u5EAB\u502B\u6642\u9593
-Asia/Urumqi.generic.long=\u4E2D\u570B\u6642\u9593
-Asia/Ust-Nera.daylight.long=\u70CF\u65AF\u5167\u62C9 (Ust-Nera) \u590F\u4EE4\u6642\u9593
-Asia/Ust-Nera.generic.long=\u70CF\u65AF\u5167\u62C9 (Ust-Nera) \u6642\u9593
-Asia/Ust-Nera.standard.long=\u70CF\u65AF\u5167\u62C9 (Ust-Nera) \u6642\u9593
-Asia/Vientiane.generic.long=\u5370\u5EA6\u652F\u90A3\u6642\u9593
-Asia/Vladivostok.generic.long=\u6D77\u53C3\u5D34\u6642\u9593
-Asia/Yakutsk.generic.long=\u4E9E\u5EAB\u6B21\u514B\u6642\u9593
-Asia/Yekaterinburg.generic.long=\u8449\u5361\u6377\u7433\u5821\u6642\u9593
-Asia/Yerevan.generic.long=\u4E9E\u7F8E\u5C3C\u4E9E\u6642\u9593
-Atlantic/Azores.generic.long=\u4E9E\u901F\u723E\u7FA4\u5CF6\u6642\u9593
-Atlantic/Bermuda.generic.long=\u5927\u897F\u6D0B\u6642\u9593
-Atlantic/Canary.generic.long=\u897F\u6B50\u6642\u9593
-Atlantic/Cape_Verde.generic.long=\u4F5B\u5FB7\u89D2\u6642\u9593
-Atlantic/Faeroe.generic.long=\u897F\u6B50\u6642\u9593
-Atlantic/Faroe.generic.long=\u897F\u6B50\u6642\u9593
-Atlantic/Jan_Mayen.generic.long=\u4E2D\u6B50\u6642\u9593
-Atlantic/Madeira.generic.long=\u897F\u6B50\u6642\u9593
-Atlantic/Reykjavik.generic.long=\u683C\u6797\u5A01\u6CBB\u6642\u9593
-Atlantic/South_Georgia.generic.long=\u5357\u55AC\u6CBB\u4E9E\u6642\u9593
-Atlantic/St_Helena.generic.long=\u683C\u6797\u5A01\u6CBB\u6642\u9593
-Atlantic/Stanley.generic.long=\u798F\u514B\u862D\u7FA4\u5CF6\u6642\u9593
-Australia/ACT.daylight.long=\u6771\u90E8\u590F\u4EE4\u6642\u9593 (\u65B0\u5357\u5A01\u723E\u65AF)
-Australia/ACT.generic.long=\u6771\u90E8\u6642\u9593 (\u65B0\u5357\u5A01\u723E\u65AF)
-Australia/ACT.standard.long=\u6771\u90E8\u6A19\u6E96\u6642\u9593 (\u65B0\u5357\u5A01\u723E\u65AF)
-Australia/Adelaide.daylight.long=\u4E2D\u90E8\u590F\u4EE4\u6642\u9593 (\u6FB3\u5927\u5229\u4E9E\u5357\u5340)
-Australia/Adelaide.generic.long=\u4E2D\u90E8\u6642\u9593 (\u6FB3\u5927\u5229\u4E9E\u5357\u90E8)
-Australia/Adelaide.standard.long=\u4E2D\u90E8\u6A19\u6E96\u6642\u9593 (\u6FB3\u5927\u5229\u4E9E\u5357\u90E8)
-Australia/Brisbane.daylight.long=\u6771\u90E8\u590F\u4EE4\u6642\u9593 (\u6606\u58EB\u862D)
-Australia/Brisbane.generic.long=\u6771\u90E8\u6642\u9593 (\u6606\u58EB\u862D)
-Australia/Brisbane.standard.long=\u6771\u90E8\u6A19\u6E96\u6642\u9593 (\u6606\u58EB\u862D)
-Australia/Broken_Hill.daylight.long=\u4E2D\u90E8\u590F\u4EE4\u6642\u9593 (\u6FB3\u5927\u5229\u4E9E\u5357\u5340/\u65B0\u5357\u5A01\u723E\u65AF)
-Australia/Broken_Hill.generic.long=\u4E2D\u90E8\u6642\u9593 (\u6FB3\u5927\u5229\u4E9E\u5357\u90E8/\u65B0\u5357\u5A01\u723E\u65AF)
-Australia/Broken_Hill.standard.long=\u4E2D\u90E8\u6A19\u6E96\u6642\u9593 (\u6FB3\u5927\u5229\u4E9E\u5357\u5340/\u65B0\u5357\u5A01\u723E\u65AF)
-Australia/Canberra.daylight.long=\u6771\u90E8\u590F\u4EE4\u6642\u9593 (\u65B0\u5357\u5A01\u723E\u65AF)
-Australia/Canberra.generic.long=\u6771\u90E8\u6642\u9593 (\u65B0\u5357\u5A01\u723E\u65AF)
-Australia/Canberra.standard.long=\u6771\u90E8\u6A19\u6E96\u6642\u9593 (\u65B0\u5357\u5A01\u723E\u65AF)
-Australia/Currie.daylight.long=\u6771\u90E8\u590F\u4EE4\u6642\u9593 (\u65B0\u5357\u5A01\u723E\u65AF)
-Australia/Currie.generic.long=\u6771\u90E8\u6642\u9593 (\u65B0\u5357\u5A01\u723E\u65AF)
-Australia/Currie.standard.long=\u6771\u90E8\u6A19\u6E96\u6642\u9593 (\u65B0\u5357\u5A01\u723E\u65AF)
-Australia/Darwin.daylight.long=\u4E2D\u90E8\u590F\u4EE4\u6642\u9593 (\u5317\u90E8\u5404\u5730\u5340)
-Australia/Darwin.generic.long=\u6FB3\u5927\u5229\u4E9E\u4E2D\u90E8\u6642\u9593 (\u5317\u65B9\u5340\u57DF)
-Australia/Darwin.standard.long=\u4E2D\u90E8\u6A19\u6E96\u6642\u9593 (\u5317\u90E8\u5404\u5730\u5340)
-Australia/Eucla.daylight.long=\u4E2D\u897F\u90E8\u590F\u4EE4\u6642\u9593 (\u6FB3\u5927\u5229\u4E9E)
-Australia/Eucla.generic.long=\u4E2D\u897F\u90E8\u6642\u9593 (\u6FB3\u5927\u5229\u4E9E)
-Australia/Eucla.standard.long=\u4E2D\u897F\u90E8\u6A19\u6E96\u6642\u9593 (\u6FB3\u5927\u5229\u4E9E)
-Australia/Hobart.daylight.long=\u6771\u90E8\u590F\u4EE4\u6642\u9593 (\u5854\u65AF\u6885\u5C3C\u4E9E\u5CF6)
-Australia/Hobart.generic.long=\u6FB3\u5927\u5229\u4E9E\u6771\u90E8\u6642\u9593 (\u5854\u65AF\u99AC\u5C3C\u4E9E\u5CF6)
-Australia/Hobart.standard.long=\u6771\u90E8\u6A19\u6E96\u6642\u9593 (\u5854\u65AF\u6885\u5C3C\u4E9E\u5CF6)
-Australia/LHI.generic.long=\u8C6A\u52F3\u7235\u5CF6\u6642\u9593
-Australia/Lindeman.daylight.long=\u6771\u90E8\u590F\u4EE4\u6642\u9593 (\u6606\u58EB\u862D)
-Australia/Lindeman.generic.long=\u6771\u90E8\u6642\u9593 (\u6606\u58EB\u862D)
-Australia/Lindeman.standard.long=\u6771\u90E8\u6A19\u6E96\u6642\u9593 (\u6606\u58EB\u862D)
-Australia/Lord_Howe.generic.long=\u8C6A\u52F3\u7235\u5CF6\u6642\u9593
-Australia/Melbourne.daylight.long=\u6771\u90E8\u590F\u4EE4\u6642\u9593 (\u7DAD\u591A\u5229\u4E9E\u90A6)
-Australia/Melbourne.generic.long=\u6771\u90E8\u6642\u9593 (\u7DAD\u591A\u5229\u4E9E)
-Australia/Melbourne.standard.long=\u6771\u90E8\u6A19\u6E96\u6642\u9593 (\u7DAD\u591A\u5229\u4E9E\u90A6)
-Australia/NSW.daylight.long=\u6771\u90E8\u590F\u4EE4\u6642\u9593 (\u65B0\u5357\u5A01\u723E\u65AF)
-Australia/NSW.generic.long=\u6771\u90E8\u6642\u9593 (\u65B0\u5357\u5A01\u723E\u65AF)
-Australia/NSW.standard.long=\u6771\u90E8\u6A19\u6E96\u6642\u9593 (\u65B0\u5357\u5A01\u723E\u65AF)
-Australia/North.daylight.long=\u4E2D\u90E8\u590F\u4EE4\u6642\u9593 (\u5317\u90E8\u5404\u5730\u5340)
-Australia/North.generic.long=\u6FB3\u5927\u5229\u4E9E\u4E2D\u90E8\u6642\u9593 (\u5317\u65B9\u5340\u57DF)
-Australia/North.standard.long=\u4E2D\u90E8\u6A19\u6E96\u6642\u9593 (\u5317\u90E8\u5404\u5730\u5340)
-Australia/Perth.daylight.long=\u897F\u90E8\u590F\u4EE4\u6642\u9593 (\u6FB3\u5927\u5229\u4E9E)
-Australia/Perth.generic.long=\u897F\u90E8\u6642\u9593 (\u6FB3\u5927\u5229\u4E9E)
-Australia/Perth.standard.long=\u897F\u90E8\u6A19\u6E96\u6642\u9593 (\u6FB3\u5927\u5229\u4E9E)
-Australia/Queensland.daylight.long=\u6771\u90E8\u590F\u4EE4\u6642\u9593 (\u6606\u58EB\u862D)
-Australia/Queensland.generic.long=\u6771\u90E8\u6642\u9593 (\u6606\u58EB\u862D)
-Australia/Queensland.standard.long=\u6771\u90E8\u6A19\u6E96\u6642\u9593 (\u6606\u58EB\u862D)
-Australia/South.daylight.long=\u4E2D\u90E8\u590F\u4EE4\u6642\u9593 (\u6FB3\u5927\u5229\u4E9E\u5357\u5340)
-Australia/South.generic.long=\u4E2D\u90E8\u6642\u9593 (\u6FB3\u5927\u5229\u4E9E\u5357\u90E8)
-Australia/South.standard.long=\u4E2D\u90E8\u6A19\u6E96\u6642\u9593 (\u6FB3\u5927\u5229\u4E9E\u5357\u90E8)
-Australia/Sydney.daylight.long=\u6771\u90E8\u590F\u4EE4\u6642\u9593 (\u65B0\u5357\u5A01\u723E\u65AF)
-Australia/Sydney.generic.long=\u6771\u90E8\u6642\u9593 (\u65B0\u5357\u5A01\u723E\u65AF)
-Australia/Sydney.standard.long=\u6771\u90E8\u6A19\u6E96\u6642\u9593 (\u65B0\u5357\u5A01\u723E\u65AF)
-Australia/Tasmania.daylight.long=\u6771\u90E8\u590F\u4EE4\u6642\u9593 (\u5854\u65AF\u6885\u5C3C\u4E9E\u5CF6)
-Australia/Tasmania.generic.long=\u6FB3\u5927\u5229\u4E9E\u6771\u90E8\u6642\u9593 (\u5854\u65AF\u99AC\u5C3C\u4E9E\u5CF6)
-Australia/Tasmania.standard.long=\u6771\u90E8\u6A19\u6E96\u6642\u9593 (\u5854\u65AF\u6885\u5C3C\u4E9E\u5CF6)
-Australia/Victoria.daylight.long=\u6771\u90E8\u590F\u4EE4\u6642\u9593 (\u7DAD\u591A\u5229\u4E9E\u90A6)
-Australia/Victoria.generic.long=\u6771\u90E8\u6642\u9593 (\u7DAD\u591A\u5229\u4E9E)
-Australia/Victoria.standard.long=\u6771\u90E8\u6A19\u6E96\u6642\u9593 (\u7DAD\u591A\u5229\u4E9E\u90A6)
-Australia/West.daylight.long=\u897F\u90E8\u590F\u4EE4\u6642\u9593 (\u6FB3\u5927\u5229\u4E9E)
-Australia/West.generic.long=\u897F\u90E8\u6642\u9593 (\u6FB3\u5927\u5229\u4E9E)
-Australia/West.standard.long=\u897F\u90E8\u6A19\u6E96\u6642\u9593 (\u6FB3\u5927\u5229\u4E9E)
-Australia/Yancowinna.daylight.long=\u4E2D\u90E8\u590F\u4EE4\u6642\u9593 (\u6FB3\u5927\u5229\u4E9E\u5357\u5340/\u65B0\u5357\u5A01\u723E\u65AF)
-Australia/Yancowinna.generic.long=\u4E2D\u90E8\u6642\u9593 (\u6FB3\u5927\u5229\u4E9E\u5357\u90E8/\u65B0\u5357\u5A01\u723E\u65AF)
-Australia/Yancowinna.standard.long=\u4E2D\u90E8\u6A19\u6E96\u6642\u9593 (\u6FB3\u5927\u5229\u4E9E\u5357\u5340/\u65B0\u5357\u5A01\u723E\u65AF)
-BET.generic.long=\u5DF4\u897F\u5229\u4E9E\u6642\u9593
-BST.generic.long=\u5B5F\u52A0\u62C9\u6642\u9593
-Brazil/Acre.generic.long=Acre \u6642\u9593
-Brazil/DeNoronha.generic.long=\u8CBB\u723E\u5357\u591A-\u8FEA\u8AFE\u7F85\u5C3C\u4E9E\u6642\u9593
-Brazil/East.generic.long=\u5DF4\u897F\u5229\u4E9E\u6642\u9593
-Brazil/West.generic.long=\u4E9E\u99AC\u905C\u6642\u9593
-CAT.generic.long=\u4E2D\u975E\u6642\u9593
-CET.generic.long=\u4e2d\u6b50\u6642\u9593
-CNT.generic.long=\u7D10\u82AC\u862D\u6642\u9593
-CST.generic.long=\u7F8E\u570B\u4E2D\u90E8\u6642\u9593
-CST6CDT.generic.long=\u7f8e\u570b\u4e2d\u90e8\u6642\u9593
-CTT.generic.long=\u4E2D\u570B\u6642\u9593
-Canada/Atlantic.generic.long=\u5927\u897F\u6D0B\u6642\u9593
-Canada/Central.generic.long=\u7F8E\u570B\u4E2D\u90E8\u6642\u9593
-Canada/East-Saskatchewan.generic.long=\u7F8E\u570B\u4E2D\u90E8\u6642\u9593
-Canada/Eastern.generic.long=\u7F8E\u570B\u6771\u90E8\u6642\u9593
-Canada/Mountain.generic.long=\u7F8E\u570B\u5C71\u5340\u6642\u9593
-Canada/Newfoundland.generic.long=\u7D10\u82AC\u862D\u6642\u9593
-Canada/Pacific.generic.long=\u592A\u5E73\u6D0B\u6642\u9593
-Canada/Saskatchewan.generic.long=\u7F8E\u570B\u4E2D\u90E8\u6642\u9593
-Canada/Yukon.generic.long=\u592A\u5E73\u6D0B\u6642\u9593
-Chile/Continental.generic.long=\u667A\u5229\u6642\u9593
-Chile/EasterIsland.generic.long=\u5FA9\u6D3B\u5CF6\u6642\u9593
-Cuba.generic.long=\u53E4\u5DF4\u6642\u9593
-EAT.generic.long=\u6771\u975E\u6642\u9593
-ECT.generic.long=\u4E2D\u6B50\u6642\u9593
-EET.generic.long=\u6771\u6b50\u6642\u9593
-EST.generic.long=\u7f8e\u570b\u6771\u90e8\u6642\u9593
-EST5EDT.generic.long=\u7f8e\u570b\u6771\u90e8\u6642\u9593
-Egypt.generic.long=\u6771\u6B50\u6642\u9593
-Eire.generic.long=\u611B\u723E\u862D\u6587\u6642\u9593
-Etc/Greenwich.generic.long=\u683C\u6797\u5A01\u6CBB\u6642\u9593
-Etc/UCT.generic.long=\u5354\u8ABF\u4E16\u754C\u6642\u9593
-Etc/UTC.generic.long=\u5354\u8ABF\u4E16\u754C\u6642\u9593
-Etc/Universal.generic.long=\u5354\u8ABF\u4E16\u754C\u6642\u9593
-Etc/Zulu.generic.long=\u5354\u8ABF\u4E16\u754C\u6642\u9593
-Europe/Amsterdam.generic.long=\u4E2D\u6B50\u6642\u9593
-Europe/Andorra.generic.long=\u4E2D\u6B50\u6642\u9593
-Europe/Athens.generic.long=\u6771\u6B50\u6642\u9593
-Europe/Belfast.generic.long=\u82F1\u570B\u6642\u9593
-Europe/Belgrade.generic.long=\u4E2D\u6B50\u6642\u9593
-Europe/Berlin.generic.long=\u4E2D\u6B50\u6642\u9593
-Europe/Bratislava.generic.long=\u4E2D\u6B50\u6642\u9593
-Europe/Brussels.generic.long=\u4E2D\u6B50\u6642\u9593
-Europe/Bucharest.generic.long=\u6771\u6B50\u6642\u9593
-Europe/Budapest.generic.long=\u4E2D\u6B50\u6642\u9593
-Europe/Busingen.generic.long=\u4E2D\u6B50\u6642\u9593
-Europe/Chisinau.generic.long=\u6771\u6B50\u6642\u9593
-Europe/Copenhagen.generic.long=\u4E2D\u6B50\u6642\u9593
-Europe/Dublin.generic.long=\u611B\u723E\u862D\u6587\u6642\u9593
-Europe/Gibraltar.generic.long=\u4E2D\u6B50\u6642\u9593
-Europe/Guernsey.generic.long=\u82F1\u570B\u6642\u9593
-Europe/Helsinki.generic.long=\u6771\u6B50\u6642\u9593
-Europe/Isle_of_Man.generic.long=\u82F1\u570B\u6642\u9593
-Europe/Istanbul.generic.long=\u6771\u6B50\u6642\u9593
-Europe/Jersey.generic.long=\u82F1\u570B\u6642\u9593
-Europe/Kaliningrad.daylight.long=\u6771\u6B50\u5167\u9678\u590F\u4EE4\u6642\u9593
-Europe/Kaliningrad.generic.long=\u6771\u6B50\u5167\u9678\u6642\u9593
-Europe/Kaliningrad.standard.long=\u6771\u6B50\u5167\u9678\u6642\u9593
-Europe/Kiev.generic.long=\u6771\u6B50\u6642\u9593
-Europe/Lisbon.generic.long=\u897F\u6B50\u6642\u9593
-Europe/Ljubljana.generic.long=\u4E2D\u6B50\u6642\u9593
-Europe/London.generic.long=\u82F1\u570B\u6642\u9593
-Europe/Luxembourg.generic.long=\u4E2D\u6B50\u6642\u9593
-Europe/Madrid.generic.long=\u4E2D\u6B50\u6642\u9593
-Europe/Malta.generic.long=\u4E2D\u6B50\u6642\u9593
-Europe/Mariehamn.generic.long=\u6771\u6B50\u6642\u9593
-Europe/Minsk.daylight.long=\u6771\u6B50\u5167\u9678\u590F\u4EE4\u6642\u9593
-Europe/Minsk.generic.long=\u6771\u6B50\u5167\u9678\u6642\u9593
-Europe/Minsk.standard.long=\u6771\u6B50\u5167\u9678\u6642\u9593
-Europe/Monaco.generic.long=\u4E2D\u6B50\u6642\u9593
-Europe/Moscow.generic.long=\u83AB\u65AF\u79D1\u6642\u9593
-Europe/Nicosia.generic.long=\u6771\u6B50\u6642\u9593
-Europe/Oslo.generic.long=\u4E2D\u6B50\u6642\u9593
-Europe/Paris.generic.long=\u4E2D\u6B50\u6642\u9593
-Europe/Podgorica.generic.long=\u4E2D\u6B50\u6642\u9593
-Europe/Prague.generic.long=\u4E2D\u6B50\u6642\u9593
-Europe/Riga.generic.long=\u6771\u6B50\u6642\u9593
-Europe/Rome.generic.long=\u4E2D\u6B50\u6642\u9593
-Europe/Samara.generic.long=\u6C99\u99AC\u62C9\u6642\u9593
-Europe/San_Marino.generic.long=\u4E2D\u6B50\u6642\u9593
-Europe/Sarajevo.generic.long=\u4E2D\u6B50\u6642\u9593
-Europe/Simferopol.generic.long=\u6771\u6B50\u6642\u9593
-Europe/Skopje.generic.long=\u4E2D\u6B50\u6642\u9593
-Europe/Sofia.generic.long=\u6771\u6B50\u6642\u9593
-Europe/Stockholm.generic.long=\u4E2D\u6B50\u6642\u9593
-Europe/Tallinn.generic.long=\u6771\u6B50\u6642\u9593
-Europe/Tirane.generic.long=\u4E2D\u6B50\u6642\u9593
-Europe/Tiraspol.generic.long=\u6771\u6B50\u6642\u9593
-Europe/Uzhgorod.generic.long=\u6771\u6B50\u6642\u9593
-Europe/Vaduz.generic.long=\u4E2D\u6B50\u6642\u9593
-Europe/Vatican.generic.long=\u4E2D\u6B50\u6642\u9593
-Europe/Vienna.generic.long=\u4E2D\u6B50\u6642\u9593
-Europe/Vilnius.generic.long=\u6771\u6B50\u6642\u9593
-Europe/Volgograd.generic.long=\u4F0F\u723E\u52A0\u683C\u52D2\u6642\u9593
-Europe/Warsaw.generic.long=\u4E2D\u6B50\u6642\u9593
-Europe/Zagreb.generic.long=\u4E2D\u6B50\u6642\u9593
-Europe/Zaporozhye.generic.long=\u6771\u6B50\u6642\u9593
-Europe/Zurich.generic.long=\u4E2D\u6B50\u6642\u9593
-GB-Eire.generic.long=\u82F1\u570B\u6642\u9593
-GB.generic.long=\u82F1\u570B\u6642\u9593
-GMT.generic.long=\u683C\u6797\u5A01\u6CBB\u6642\u9593
-Greenwich.generic.long=\u683C\u6797\u5A01\u6CBB\u6642\u9593
-HST.generic.long=\u590f\u5a01\u5937\u6642\u9593
-Hongkong.generic.long=\u9999\u6E2F\u6642\u9593
-IET.generic.long=\u7F8E\u570B\u6771\u90E8\u6642\u9593
-IST.generic.long=\u5370\u5EA6\u6642\u9593
-Iceland.generic.long=\u683C\u6797\u5A01\u6CBB\u6642\u9593
-Indian/Antananarivo.generic.long=\u6771\u975E\u6642\u9593
-Indian/Chagos.generic.long=\u82F1\u5C6C\u5370\u5EA6\u6D0B\u5730\u5340
-Indian/Christmas.generic.long=\u8056\u8A95\u5CF6\u6642\u9593
-Indian/Cocos.generic.long=\u53EF\u53EF\u65AF\u7FA4\u5CF6\u6642\u9593
-Indian/Comoro.generic.long=\u6771\u975E\u6642\u9593
-Indian/Kerguelen.generic.long=\u6CD5\u570B\u5357\u534A\u7403\u53CA\u5357\u6975\u5C6C\u5730\u6642\u9593
-Indian/Mahe.generic.long=\u585E\u5E2D\u723E\u7FA4\u5CF6\u6642\u9593
-Indian/Maldives.generic.long=\u99AC\u723E\u5730\u592B\u6642\u9593
-Indian/Mauritius.generic.long=\u6469\u91CC\u897F\u65AF\u6642\u9593
-Indian/Mayotte.generic.long=\u6771\u975E\u6642\u9593
-Indian/Reunion.generic.long=\u7559\u5C3C\u65FA\u5CF6\u6642\u9593
-Iran.generic.long=\u4F0A\u6717\u6642\u9593
-Israel.generic.long=\u4EE5\u8272\u5217\u6642\u9593
-JST.generic.long=\u65E5\u672C\u6642\u9593
-Jamaica.generic.long=\u7F8E\u570B\u6771\u90E8\u6642\u9593
-Japan.generic.long=\u65E5\u672C\u6642\u9593
-Kwajalein.generic.long=\u99AC\u7D39\u723E\u7FA4\u5CF6\u6642\u9593
-Libya.generic.long=\u6771\u6b50\u6642\u9593
-MET.generic.long=MET
-MIT.generic.long=\u897F\u85A9\u6469\u4E9E\u6642\u9593
-MST.generic.long=\u7f8e\u570b\u5c71\u5340\u6642\u9593
-MST7MDT.generic.long=\u7f8e\u570b\u5c71\u5340\u6642\u9593
-Mexico/BajaNorte.generic.long=\u592A\u5E73\u6D0B\u6642\u9593
-Mexico/BajaSur.generic.long=\u7F8E\u570B\u5C71\u5340\u6642\u9593
-Mexico/General.generic.long=\u7F8E\u570B\u4E2D\u90E8\u6642\u9593
-NET.generic.long=\u4E9E\u7F8E\u5C3C\u4E9E\u6642\u9593
-NST.generic.long=\u7D10\u897F\u862D\u6642\u9593
-NZ-CHAT.generic.long=\u67E5\u5766\u6642\u9593
-NZ.generic.long=\u7D10\u897F\u862D\u6642\u9593
-Navajo.generic.long=\u7F8E\u570B\u5C71\u5340\u6642\u9593
-PLT.generic.long=\u5DF4\u57FA\u65AF\u5766\u6642\u9593
-PNT.generic.long=\u7F8E\u570B\u5C71\u5340\u6642\u9593
-PRC.generic.long=\u4E2D\u570B\u6642\u9593
-PRT.generic.long=\u5927\u897F\u6D0B\u6642\u9593
-PST.generic.long=\u592A\u5E73\u6D0B\u6642\u9593
-PST8PDT.generic.long=\u592a\u5e73\u6d0b\u6642\u9593
-Pacific/Apia.generic.long=\u897F\u85A9\u6469\u4E9E\u6642\u9593
-Pacific/Auckland.generic.long=\u7D10\u897F\u862D\u6642\u9593
-Pacific/Chatham.generic.long=\u67E5\u5766\u6642\u9593
-Pacific/Chuuk.daylight.long=\u695A\u514B\u590F\u4EE4\u6642\u9593
-Pacific/Chuuk.generic.long=\u695A\u514B\u6642\u9593
-Pacific/Chuuk.standard.long=\u695A\u514B\u6642\u9593
-Pacific/Easter.generic.long=\u5FA9\u6D3B\u5CF6\u6642\u9593
-Pacific/Efate.generic.long=\u74E6\u5974\u963F\u5716\u6642\u9593
-Pacific/Enderbury.generic.long=\u83F2\u5C3C\u514B\u65AF\u7FA4\u5CF6\u6642\u9593
-Pacific/Fakaofo.generic.long=\u6258\u514B\u52DE\u7FA4\u5CF6\u6642\u9593
-Pacific/Fiji.generic.long=\u6590\u6FDF\u6642\u9593
-Pacific/Funafuti.generic.long=\u5410\u74E6\u9B6F\u6642\u9593
-Pacific/Galapagos.generic.long=\u52A0\u62C9\u5DF4\u54E5\u6642\u9593
-Pacific/Gambier.generic.long=\u7518\u6BD4\u723E\u6642\u9593
-Pacific/Guadalcanal.generic.long=\u6240\u7F85\u9580\u7FA4\u5CF6\u6642\u9593
-Pacific/Guam.generic.long=\u67E5\u83AB\u7F85\u6642\u9593
-Pacific/Honolulu.generic.long=\u590F\u5A01\u5937\u6642\u9593
-Pacific/Johnston.generic.long=\u590F\u5A01\u5937\u6642\u9593
-Pacific/Kiritimati.generic.long=\u5217\u5DBC\u7FA4\u5CF6\u6642\u9593
-Pacific/Kosrae.generic.long=Kosrae \u6642\u9593
-Pacific/Kwajalein.generic.long=\u99AC\u7D39\u723E\u7FA4\u5CF6\u6642\u9593
-Pacific/Majuro.generic.long=\u99AC\u7D39\u723E\u7FA4\u5CF6\u6642\u9593
-Pacific/Marquesas.generic.long=\u99AC\u514B\u85A9\u65AF\u6642\u9593
-Pacific/Midway.generic.long=\u85A9\u6469\u4E9E\u6642\u9593
-Pacific/Nauru.generic.long=\u8AFE\u9B6F\u6642\u9593
-Pacific/Niue.generic.long=\u7D10\u5A01\u5CF6\u6642\u9593
-Pacific/Norfolk.generic.long=\u8AFE\u798F\u514B\u6642\u9593
-Pacific/Noumea.generic.long=\u65B0\u52A0\u52D2\u591A\u5C3C\u4E9E\u6642\u9593
-Pacific/Pago_Pago.generic.long=\u85A9\u6469\u4E9E\u6642\u9593
-Pacific/Palau.generic.long=\u5E1B\u7409\u6642\u9593
-Pacific/Pitcairn.generic.long=\u76AE\u7279\u5EB7\u6642\u9593
-Pacific/Pohnpei.daylight.long=\u6CE2\u7D0D\u4F69\u590F\u4EE4\u6642\u9593
-Pacific/Pohnpei.generic.long=\u6CE2\u7D0D\u4F69\u5CF6\u6642\u9593
-Pacific/Pohnpei.standard.long=\u6CE2\u7D0D\u4F69\u6642\u9593
-Pacific/Ponape.daylight.long=\u6CE2\u7D0D\u4F69\u590F\u4EE4\u6642\u9593
-Pacific/Ponape.generic.long=\u6CE2\u7D0D\u4F69\u5CF6\u6642\u9593
-Pacific/Ponape.standard.long=\u6CE2\u7D0D\u4F69\u6642\u9593
-Pacific/Port_Moresby.generic.long=\u5DF4\u5E03\u4E9E\u65B0\u5E7E\u5167\u4E9E\u6642\u9593
-Pacific/Rarotonga.generic.long=\u5EAB\u514B\u7FA4\u5CF6\u6642\u9593
-Pacific/Saipan.generic.long=\u67E5\u83AB\u7F85\u6642\u9593
-Pacific/Samoa.generic.long=\u85A9\u6469\u4E9E\u6642\u9593
-Pacific/Tahiti.generic.long=\u5927\u6EAA\u5730\u6642\u9593
-Pacific/Tarawa.generic.long=\u5409\u4F2F\u7279\u7FA4\u5CF6\u6642\u9593
-Pacific/Tongatapu.generic.long=\u6771\u52A0\u6642\u9593
-Pacific/Truk.daylight.long=\u695A\u514B\u590F\u4EE4\u6642\u9593
-Pacific/Truk.generic.long=\u695A\u514B\u6642\u9593
-Pacific/Truk.standard.long=\u695A\u514B\u6642\u9593
-Pacific/Wake.generic.long=\u5A01\u514B\u6642\u9593
-Pacific/Wallis.generic.long=\u74E6\u5229\u65AF\u53CA\u798F\u675C\u7D0D\u7FA4\u5CF6\u6642\u9593
-Pacific/Yap.daylight.long=\u695A\u514B\u590F\u4EE4\u6642\u9593
-Pacific/Yap.generic.long=\u695A\u514B\u6642\u9593
-Pacific/Yap.standard.long=\u695A\u514B\u6642\u9593
-Poland.generic.long=\u4E2D\u6B50\u6642\u9593
-Portugal.generic.long=\u897F\u6B50\u6642\u9593
-ROK.generic.long=\u97D3\u570B\u6642\u9593
-SST.generic.long=\u6240\u7F85\u9580\u7FA4\u5CF6\u6642\u9593
-Singapore.generic.long=\u65B0\u52A0\u5761\u6642\u9593
-SystemV/AST4.generic.long=\u5927\u897F\u6D0B\u6642\u9593
-SystemV/AST4ADT.generic.long=\u5927\u897F\u6D0B\u6642\u9593
-SystemV/CST6.generic.long=\u7F8E\u570B\u4E2D\u90E8\u6642\u9593
-SystemV/CST6CDT.generic.long=\u7F8E\u570B\u4E2D\u90E8\u6642\u9593
-SystemV/EST5.generic.long=\u7F8E\u570B\u6771\u90E8\u6642\u9593
-SystemV/EST5EDT.generic.long=\u7F8E\u570B\u6771\u90E8\u6642\u9593
-SystemV/HST10.generic.long=\u590F\u5A01\u5937\u6642\u9593
-SystemV/MST7.generic.long=\u7F8E\u570B\u5C71\u5340\u6642\u9593
-SystemV/MST7MDT.generic.long=\u7F8E\u570B\u5C71\u5340\u6642\u9593
-SystemV/PST8.generic.long=\u592A\u5E73\u6D0B\u6642\u9593
-SystemV/PST8PDT.generic.long=\u592A\u5E73\u6D0B\u6642\u9593
-SystemV/YST9.generic.long=\u963F\u62C9\u65AF\u52A0\u6642\u9593
-SystemV/YST9YDT.generic.long=\u963F\u62C9\u65AF\u52A0\u6642\u9593
-Turkey.generic.long=\u6771\u6B50\u6642\u9593
-UCT.generic.long=\u5354\u8ABF\u4E16\u754C\u6642\u9593
-US/Alaska.generic.long=\u963F\u62C9\u65AF\u52A0\u6642\u9593
-US/Aleutian.generic.long=\u590F\u5A01\u5937-\u963F\u7559\u7533\u6642\u9593
-US/Arizona.generic.long=\u7F8E\u570B\u5C71\u5340\u6642\u9593
-US/Central.generic.long=\u7F8E\u570B\u4E2D\u90E8\u6642\u9593
-US/East-Indiana.generic.long=\u7F8E\u570B\u6771\u90E8\u6642\u9593
-US/Eastern.generic.long=\u7F8E\u570B\u6771\u90E8\u6642\u9593
-US/Hawaii.generic.long=\u590F\u5A01\u5937\u6642\u9593
-US/Indiana-Starke.generic.long=\u7F8E\u570B\u4E2D\u90E8\u6642\u9593
-US/Michigan.generic.long=\u7F8E\u570B\u6771\u90E8\u6642\u9593
-US/Mountain.generic.long=\u7F8E\u570B\u5C71\u5340\u6642\u9593
-US/Pacific-New.generic.long=\u592A\u5E73\u6D0B\u6642\u9593
-US/Pacific.generic.long=\u592A\u5E73\u6D0B\u6642\u9593
-US/Samoa.generic.long=\u85A9\u6469\u4E9E\u6642\u9593
-UTC.generic.long=\u5354\u8ABF\u4E16\u754C\u6642\u9593
-Universal.generic.long=\u5354\u8ABF\u4E16\u754C\u6642\u9593
-VST.generic.long=\u5370\u5EA6\u652F\u90A3\u6642\u9593
-W-SU.generic.long=\u83AB\u65AF\u79D1\u6642\u9593
-WET.generic.long=\u897f\u6b50\u6642\u9593
-Zulu.generic.long=\u5354\u8ABF\u4E16\u754C\u6642\u9593
diff --git a/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_zh_TW_short.properties b/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_zh_TW_short.properties
deleted file mode 100644
index c2de6fde89e..00000000000
--- a/jdk/test/sun/util/resources/TimeZone/TimeZoneNames/TimeZoneNames_zh_TW_short.properties
+++ /dev/null
@@ -1,1743 +0,0 @@
-ACT.daylight.short=CST
-ACT.generic.short=CT
-ACT.standard.short=CST
-AET.daylight.short=EST
-AET.generic.short=ET
-AET.standard.short=EST
-Africa/Abidjan.daylight.short=GMT
-Africa/Abidjan.generic.short=GMT
-Africa/Abidjan.standard.short=GMT
-Africa/Accra.daylight.short=GHST
-Africa/Accra.generic.short=GMT
-Africa/Accra.standard.short=GMT
-Africa/Addis_Ababa.daylight.short=EAST
-Africa/Addis_Ababa.generic.short=EAT
-Africa/Addis_Ababa.standard.short=EAT
-Africa/Algiers.daylight.short=CEST
-Africa/Algiers.generic.short=CET
-Africa/Algiers.standard.short=CET
-Africa/Asmara.daylight.short=EAST
-Africa/Asmara.generic.short=EAT
-Africa/Asmara.standard.short=EAT
-Africa/Asmera.daylight.short=EAST
-Africa/Asmera.generic.short=EAT
-Africa/Asmera.standard.short=EAT
-Africa/Bamako.daylight.short=GMT
-Africa/Bamako.generic.short=GMT
-Africa/Bamako.standard.short=GMT
-Africa/Bangui.daylight.short=WAST
-Africa/Bangui.generic.short=WAT
-Africa/Bangui.standard.short=WAT
-Africa/Banjul.daylight.short=GMT
-Africa/Banjul.generic.short=GMT
-Africa/Banjul.standard.short=GMT
-Africa/Bissau.daylight.short=GMT
-Africa/Bissau.generic.short=GMT
-Africa/Bissau.standard.short=GMT
-Africa/Blantyre.daylight.short=CAST
-Africa/Blantyre.generic.short=CAT
-Africa/Blantyre.standard.short=CAT
-Africa/Brazzaville.daylight.short=WAST
-Africa/Brazzaville.generic.short=WAT
-Africa/Brazzaville.standard.short=WAT
-Africa/Bujumbura.daylight.short=CAST
-Africa/Bujumbura.generic.short=CAT
-Africa/Bujumbura.standard.short=CAT
-Africa/Cairo.daylight.short=EEST
-Africa/Cairo.generic.short=EET
-Africa/Cairo.standard.short=EET
-Africa/Casablanca.daylight.short=WEST
-Africa/Casablanca.generic.short=WET
-Africa/Casablanca.standard.short=WET
-Africa/Ceuta.daylight.short=CEST
-Africa/Ceuta.generic.short=CET
-Africa/Ceuta.standard.short=CET
-Africa/Conakry.daylight.short=GMT
-Africa/Conakry.generic.short=GMT
-Africa/Conakry.standard.short=GMT
-Africa/Dakar.daylight.short=GMT
-Africa/Dakar.generic.short=GMT
-Africa/Dakar.standard.short=GMT
-Africa/Dar_es_Salaam.daylight.short=EAST
-Africa/Dar_es_Salaam.generic.short=EAT
-Africa/Dar_es_Salaam.standard.short=EAT
-Africa/Djibouti.daylight.short=EAST
-Africa/Djibouti.generic.short=EAT
-Africa/Djibouti.standard.short=EAT
-Africa/Douala.daylight.short=WAST
-Africa/Douala.generic.short=WAT
-Africa/Douala.standard.short=WAT
-Africa/El_Aaiun.daylight.short=WEST
-Africa/El_Aaiun.generic.short=WET
-Africa/El_Aaiun.standard.short=WET
-Africa/Freetown.daylight.short=SLST
-Africa/Freetown.generic.short=SLT
-Africa/Freetown.standard.short=GMT
-Africa/Gaborone.daylight.short=CAST
-Africa/Gaborone.generic.short=CAT
-Africa/Gaborone.standard.short=CAT
-Africa/Harare.daylight.short=CAST
-Africa/Harare.generic.short=CAT
-Africa/Harare.standard.short=CAT
-Africa/Johannesburg.daylight.short=SAST
-Africa/Johannesburg.generic.short=SAT
-Africa/Johannesburg.standard.short=SAST
-Africa/Juba.daylight.short=EAST
-Africa/Juba.generic.short=EAT
-Africa/Juba.standard.short=EAT
-Africa/Kampala.daylight.short=EAST
-Africa/Kampala.generic.short=EAT
-Africa/Kampala.standard.short=EAT
-Africa/Khartoum.daylight.short=EAST
-Africa/Khartoum.generic.short=EAT
-Africa/Khartoum.standard.short=EAT
-Africa/Kigali.daylight.short=CAST
-Africa/Kigali.generic.short=CAT
-Africa/Kigali.standard.short=CAT
-Africa/Kinshasa.daylight.short=WAST
-Africa/Kinshasa.generic.short=WAT
-Africa/Kinshasa.standard.short=WAT
-Africa/Lagos.daylight.short=WAST
-Africa/Lagos.generic.short=WAT
-Africa/Lagos.standard.short=WAT
-Africa/Libreville.daylight.short=WAST
-Africa/Libreville.generic.short=WAT
-Africa/Libreville.standard.short=WAT
-Africa/Lome.daylight.short=GMT
-Africa/Lome.generic.short=GMT
-Africa/Lome.standard.short=GMT
-Africa/Luanda.daylight.short=WAST
-Africa/Luanda.generic.short=WAT
-Africa/Luanda.standard.short=WAT
-Africa/Lubumbashi.daylight.short=CAST
-Africa/Lubumbashi.generic.short=CAT
-Africa/Lubumbashi.standard.short=CAT
-Africa/Lusaka.daylight.short=CAST
-Africa/Lusaka.generic.short=CAT
-Africa/Lusaka.standard.short=CAT
-Africa/Malabo.daylight.short=WAST
-Africa/Malabo.generic.short=WAT
-Africa/Malabo.standard.short=WAT
-Africa/Maputo.daylight.short=CAST
-Africa/Maputo.generic.short=CAT
-Africa/Maputo.standard.short=CAT
-Africa/Maseru.daylight.short=SAST
-Africa/Maseru.generic.short=SAT
-Africa/Maseru.standard.short=SAST
-Africa/Mbabane.daylight.short=SAST
-Africa/Mbabane.generic.short=SAT
-Africa/Mbabane.standard.short=SAST
-Africa/Mogadishu.daylight.short=EAST
-Africa/Mogadishu.generic.short=EAT
-Africa/Mogadishu.standard.short=EAT
-Africa/Monrovia.daylight.short=GMT
-Africa/Monrovia.generic.short=GMT
-Africa/Monrovia.standard.short=GMT
-Africa/Nairobi.daylight.short=EAST
-Africa/Nairobi.generic.short=EAT
-Africa/Nairobi.standard.short=EAT
-Africa/Ndjamena.daylight.short=WAST
-Africa/Ndjamena.generic.short=WAT
-Africa/Ndjamena.standard.short=WAT
-Africa/Niamey.daylight.short=WAST
-Africa/Niamey.generic.short=WAT
-Africa/Niamey.standard.short=WAT
-Africa/Nouakchott.daylight.short=GMT
-Africa/Nouakchott.generic.short=GMT
-Africa/Nouakchott.standard.short=GMT
-Africa/Ouagadougou.daylight.short=GMT
-Africa/Ouagadougou.generic.short=GMT
-Africa/Ouagadougou.standard.short=GMT
-Africa/Porto-Novo.daylight.short=WAST
-Africa/Porto-Novo.generic.short=WAT
-Africa/Porto-Novo.standard.short=WAT
-Africa/Sao_Tome.daylight.short=GMT
-Africa/Sao_Tome.generic.short=GMT
-Africa/Sao_Tome.standard.short=GMT
-Africa/Timbuktu.daylight.short=GMT
-Africa/Timbuktu.generic.short=GMT
-Africa/Timbuktu.standard.short=GMT
-Africa/Tripoli.daylight.short=EEST
-Africa/Tripoli.generic.short=EET
-Africa/Tripoli.standard.short=EET
-Africa/Tunis.daylight.short=CEST
-Africa/Tunis.generic.short=CET
-Africa/Tunis.standard.short=CET
-Africa/Windhoek.daylight.short=WAST
-Africa/Windhoek.generic.short=WAT
-Africa/Windhoek.standard.short=WAT
-AGT.daylight.short=ARST
-AGT.generic.short=ART
-AGT.standard.short=ART
-America/Adak.daylight.short=HADT
-America/Adak.generic.short=HAT
-America/Adak.standard.short=HAST
-America/Anchorage.daylight.short=AKDT
-America/Anchorage.generic.short=AKT
-America/Anchorage.standard.short=AKST
-America/Anguilla.daylight.short=ADT
-America/Anguilla.generic.short=AT
-America/Anguilla.standard.short=AST
-America/Antigua.daylight.short=ADT
-America/Antigua.generic.short=AT
-America/Antigua.standard.short=AST
-America/Araguaina.daylight.short=BRST
-America/Araguaina.generic.short=BRT
-America/Araguaina.standard.short=BRT
-America/Argentina/Buenos_Aires.daylight.short=ARST
-America/Argentina/Buenos_Aires.generic.short=ART
-America/Argentina/Buenos_Aires.standard.short=ART
-America/Argentina/Catamarca.daylight.short=ARST
-America/Argentina/Catamarca.generic.short=ART
-America/Argentina/Catamarca.standard.short=ART
-America/Argentina/ComodRivadavia.daylight.short=ARST
-America/Argentina/ComodRivadavia.generic.short=ART
-America/Argentina/ComodRivadavia.standard.short=ART
-America/Argentina/Cordoba.daylight.short=ARST
-America/Argentina/Cordoba.generic.short=ART
-America/Argentina/Cordoba.standard.short=ART
-America/Argentina/Jujuy.daylight.short=ARST
-America/Argentina/Jujuy.generic.short=ART
-America/Argentina/Jujuy.standard.short=ART
-America/Argentina/La_Rioja.daylight.short=ARST
-America/Argentina/La_Rioja.generic.short=ART
-America/Argentina/La_Rioja.standard.short=ART
-America/Argentina/Mendoza.daylight.short=ARST
-America/Argentina/Mendoza.generic.short=ART
-America/Argentina/Mendoza.standard.short=ART
-America/Argentina/Rio_Gallegos.daylight.short=ARST
-America/Argentina/Rio_Gallegos.generic.short=ART
-America/Argentina/Rio_Gallegos.standard.short=ART
-America/Argentina/Salta.daylight.short=ARST
-America/Argentina/Salta.generic.short=ART
-America/Argentina/Salta.standard.short=ART
-America/Argentina/San_Juan.daylight.short=ARST
-America/Argentina/San_Juan.generic.short=ART
-America/Argentina/San_Juan.standard.short=ART
-America/Argentina/San_Luis.daylight.short=ARST
-America/Argentina/San_Luis.generic.short=ART
-America/Argentina/San_Luis.standard.short=ART
-America/Argentina/Tucuman.daylight.short=ARST
-America/Argentina/Tucuman.generic.short=ART
-America/Argentina/Tucuman.standard.short=ART
-America/Argentina/Ushuaia.daylight.short=ARST
-America/Argentina/Ushuaia.generic.short=ART
-America/Argentina/Ushuaia.standard.short=ART
-America/Aruba.daylight.short=ADT
-America/Aruba.generic.short=AT
-America/Aruba.standard.short=AST
-America/Asuncion.daylight.short=PYST
-America/Asuncion.generic.short=PYT
-America/Asuncion.standard.short=PYT
-America/Atikokan.daylight.short=EDT
-America/Atikokan.generic.short=ET
-America/Atikokan.standard.short=EST
-America/Atka.daylight.short=HADT
-America/Atka.generic.short=HAT
-America/Atka.standard.short=HAST
-America/Bahia_Banderas.daylight.short=CDT
-America/Bahia_Banderas.generic.short=CT
-America/Bahia_Banderas.standard.short=CST
-America/Bahia.daylight.short=BRST
-America/Bahia.generic.short=BRT
-America/Bahia.standard.short=BRT
-America/Barbados.daylight.short=ADT
-America/Barbados.generic.short=AT
-America/Barbados.standard.short=AST
-America/Belem.daylight.short=BRST
-America/Belem.generic.short=BRT
-America/Belem.standard.short=BRT
-America/Belize.daylight.short=CDT
-America/Belize.generic.short=CT
-America/Belize.standard.short=CST
-America/Blanc-Sablon.daylight.short=ADT
-America/Blanc-Sablon.generic.short=AT
-America/Blanc-Sablon.standard.short=AST
-America/Boa_Vista.daylight.short=AMST
-America/Boa_Vista.generic.short=AMT
-America/Boa_Vista.standard.short=AMT
-America/Bogota.daylight.short=COST
-America/Bogota.generic.short=COT
-America/Bogota.standard.short=COT
-America/Boise.daylight.short=MDT
-America/Boise.generic.short=MT
-America/Boise.standard.short=MST
-America/Buenos_Aires.daylight.short=ARST
-America/Buenos_Aires.generic.short=ART
-America/Buenos_Aires.standard.short=ART
-America/Cambridge_Bay.daylight.short=MDT
-America/Cambridge_Bay.generic.short=MT
-America/Cambridge_Bay.standard.short=MST
-America/Campo_Grande.daylight.short=AMST
-America/Campo_Grande.generic.short=AMT
-America/Campo_Grande.standard.short=AMT
-America/Cancun.daylight.short=CDT
-America/Cancun.generic.short=CT
-America/Cancun.standard.short=CST
-America/Caracas.daylight.short=VEST
-America/Caracas.generic.short=VET
-America/Caracas.standard.short=VET
-America/Catamarca.daylight.short=ARST
-America/Catamarca.generic.short=ART
-America/Catamarca.standard.short=ART
-America/Cayenne.daylight.short=GFST
-America/Cayenne.generic.short=GFT
-America/Cayenne.standard.short=GFT
-America/Cayman.daylight.short=EDT
-America/Cayman.generic.short=ET
-America/Cayman.standard.short=EST
-America/Chicago.daylight.short=CDT
-America/Chicago.generic.short=CT
-America/Chicago.standard.short=CST
-America/Chihuahua.daylight.short=MDT
-America/Chihuahua.generic.short=MT
-America/Chihuahua.standard.short=MST
-America/Coral_Harbour.daylight.short=EDT
-America/Coral_Harbour.generic.short=ET
-America/Coral_Harbour.standard.short=EST
-America/Cordoba.daylight.short=ARST
-America/Cordoba.generic.short=ART
-America/Cordoba.standard.short=ART
-America/Costa_Rica.daylight.short=CDT
-America/Costa_Rica.generic.short=CT
-America/Costa_Rica.standard.short=CST
-America/Creston.daylight.short=MDT
-America/Creston.generic.short=MT
-America/Creston.standard.short=MST
-America/Cuiaba.daylight.short=AMST
-America/Cuiaba.generic.short=AMT
-America/Cuiaba.standard.short=AMT
-America/Curacao.daylight.short=ADT
-America/Curacao.generic.short=AT
-America/Curacao.standard.short=AST
-America/Danmarkshavn.daylight.short=GMT
-America/Danmarkshavn.generic.short=GMT
-America/Danmarkshavn.standard.short=GMT
-America/Dawson_Creek.daylight.short=MDT
-America/Dawson_Creek.generic.short=MT
-America/Dawson_Creek.standard.short=MST
-America/Dawson.daylight.short=PDT
-America/Dawson.generic.short=PT
-America/Dawson.standard.short=PST
-America/Denver.daylight.short=MDT
-America/Denver.generic.short=MT
-America/Denver.standard.short=MST
-America/Detroit.daylight.short=EDT
-America/Detroit.generic.short=ET
-America/Detroit.standard.short=EST
-America/Dominica.daylight.short=ADT
-America/Dominica.generic.short=AT
-America/Dominica.standard.short=AST
-America/Edmonton.daylight.short=MDT
-America/Edmonton.generic.short=MT
-America/Edmonton.standard.short=MST
-America/Eirunepe.daylight.short=ACST
-America/Eirunepe.generic.short=ACT
-America/Eirunepe.standard.short=ACT
-America/El_Salvador.daylight.short=CDT
-America/El_Salvador.generic.short=CT
-America/El_Salvador.standard.short=CST
-America/Ensenada.daylight.short=PDT
-America/Ensenada.generic.short=PT
-America/Ensenada.standard.short=PST
-America/Fortaleza.daylight.short=BRST
-America/Fortaleza.generic.short=BRT
-America/Fortaleza.standard.short=BRT
-America/Fort_Wayne.daylight.short=EDT
-America/Fort_Wayne.generic.short=ET
-America/Fort_Wayne.standard.short=EST
-America/Glace_Bay.daylight.short=ADT
-America/Glace_Bay.generic.short=AT
-America/Glace_Bay.standard.short=AST
-America/Godthab.daylight.short=WGST
-America/Godthab.generic.short=WGT
-America/Godthab.standard.short=WGT
-America/Goose_Bay.daylight.short=ADT
-America/Goose_Bay.generic.short=AT
-America/Goose_Bay.standard.short=AST
-America/Grand_Turk.daylight.short=EDT
-America/Grand_Turk.generic.short=ET
-America/Grand_Turk.standard.short=EST
-America/Grenada.daylight.short=ADT
-America/Grenada.generic.short=AT
-America/Grenada.standard.short=AST
-America/Guadeloupe.daylight.short=ADT
-America/Guadeloupe.generic.short=AT
-America/Guadeloupe.standard.short=AST
-America/Guatemala.daylight.short=CDT
-America/Guatemala.generic.short=CT
-America/Guatemala.standard.short=CST
-America/Guayaquil.daylight.short=ECST
-America/Guayaquil.generic.short=ECT
-America/Guayaquil.standard.short=ECT
-America/Guyana.daylight.short=GYST
-America/Guyana.generic.short=GYT
-America/Guyana.standard.short=GYT
-America/Halifax.daylight.short=ADT
-America/Halifax.generic.short=AT
-America/Halifax.standard.short=AST
-America/Havana.daylight.short=CDT
-America/Havana.generic.short=CT
-America/Havana.standard.short=CST
-America/Hermosillo.daylight.short=MDT
-America/Hermosillo.generic.short=MT
-America/Hermosillo.standard.short=MST
-America/Indiana/Indianapolis.daylight.short=EDT
-America/Indiana/Indianapolis.generic.short=ET
-America/Indiana/Indianapolis.standard.short=EST
-America/Indiana/Knox.daylight.short=CDT
-America/Indiana/Knox.generic.short=CT
-America/Indiana/Knox.standard.short=CST
-America/Indiana/Marengo.daylight.short=EDT
-America/Indiana/Marengo.generic.short=ET
-America/Indiana/Marengo.standard.short=EST
-America/Indiana/Petersburg.daylight.short=EDT
-America/Indiana/Petersburg.generic.short=ET
-America/Indiana/Petersburg.standard.short=EST
-America/Indianapolis.daylight.short=EDT
-America/Indianapolis.generic.short=ET
-America/Indianapolis.standard.short=EST
-America/Indiana/Tell_City.daylight.short=CDT
-America/Indiana/Tell_City.generic.short=CT
-America/Indiana/Tell_City.standard.short=CST
-America/Indiana/Vevay.daylight.short=EDT
-America/Indiana/Vevay.generic.short=ET
-America/Indiana/Vevay.standard.short=EST
-America/Indiana/Vincennes.daylight.short=EDT
-America/Indiana/Vincennes.generic.short=ET
-America/Indiana/Vincennes.standard.short=EST
-America/Indiana/Winamac.daylight.short=EDT
-America/Indiana/Winamac.generic.short=ET
-America/Indiana/Winamac.standard.short=EST
-America/Inuvik.daylight.short=MDT
-America/Inuvik.generic.short=MT
-America/Inuvik.standard.short=MST
-America/Iqaluit.daylight.short=EDT
-America/Iqaluit.generic.short=ET
-America/Iqaluit.standard.short=EST
-America/Jamaica.daylight.short=EDT
-America/Jamaica.generic.short=ET
-America/Jamaica.standard.short=EST
-America/Jujuy.daylight.short=ARST
-America/Jujuy.generic.short=ART
-America/Jujuy.standard.short=ART
-America/Juneau.daylight.short=AKDT
-America/Juneau.generic.short=AKT
-America/Juneau.standard.short=AKST
-America/Kentucky/Louisville.daylight.short=EDT
-America/Kentucky/Louisville.generic.short=ET
-America/Kentucky/Louisville.standard.short=EST
-America/Kentucky/Monticello.daylight.short=EDT
-America/Kentucky/Monticello.generic.short=ET
-America/Kentucky/Monticello.standard.short=EST
-America/Knox_IN.daylight.short=CDT
-America/Knox_IN.generic.short=CT
-America/Knox_IN.standard.short=CST
-America/Kralendijk.daylight.short=ADT
-America/Kralendijk.generic.short=AT
-America/Kralendijk.standard.short=AST
-America/La_Paz.daylight.short=BOST
-America/La_Paz.generic.short=BOT
-America/La_Paz.standard.short=BOT
-America/Lima.daylight.short=PEST
-America/Lima.generic.short=PET
-America/Lima.standard.short=PET
-America/Los_Angeles.daylight.short=PDT
-America/Los_Angeles.generic.short=PT
-America/Los_Angeles.standard.short=PST
-America/Louisville.daylight.short=EDT
-America/Louisville.generic.short=ET
-America/Louisville.standard.short=EST
-America/Lower_Princes.daylight.short=ADT
-America/Lower_Princes.generic.short=AT
-America/Lower_Princes.standard.short=AST
-America/Maceio.daylight.short=BRST
-America/Maceio.generic.short=BRT
-America/Maceio.standard.short=BRT
-America/Managua.daylight.short=CDT
-America/Managua.generic.short=CT
-America/Managua.standard.short=CST
-America/Manaus.daylight.short=AMST
-America/Manaus.generic.short=AMT
-America/Manaus.standard.short=AMT
-America/Marigot.daylight.short=ADT
-America/Marigot.generic.short=AT
-America/Marigot.standard.short=AST
-America/Martinique.daylight.short=ADT
-America/Martinique.generic.short=AT
-America/Martinique.standard.short=AST
-America/Matamoros.daylight.short=CDT
-America/Matamoros.generic.short=CT
-America/Matamoros.standard.short=CST
-America/Mazatlan.daylight.short=MDT
-America/Mazatlan.generic.short=MT
-America/Mazatlan.standard.short=MST
-America/Mendoza.daylight.short=ARST
-America/Mendoza.generic.short=ART
-America/Mendoza.standard.short=ART
-America/Menominee.daylight.short=CDT
-America/Menominee.generic.short=CT
-America/Menominee.standard.short=CST
-America/Merida.daylight.short=CDT
-America/Merida.generic.short=CT
-America/Merida.standard.short=CST
-America/Metlakatla.daylight.short=MeDT
-America/Metlakatla.generic.short=MeT
-America/Metlakatla.standard.short=MeST
-America/Mexico_City.daylight.short=CDT
-America/Mexico_City.generic.short=CT
-America/Mexico_City.standard.short=CST
-America/Miquelon.daylight.short=PMDT
-America/Miquelon.generic.short=PMT
-America/Miquelon.standard.short=PMST
-America/Moncton.daylight.short=ADT
-America/Moncton.generic.short=AT
-America/Moncton.standard.short=AST
-America/Monterrey.daylight.short=CDT
-America/Monterrey.generic.short=CT
-America/Monterrey.standard.short=CST
-America/Montevideo.daylight.short=UYST
-America/Montevideo.generic.short=UYT
-America/Montevideo.standard.short=UYT
-America/Montreal.daylight.short=EDT
-America/Montreal.generic.short=ET
-America/Montreal.standard.short=EST
-America/Montserrat.daylight.short=ADT
-America/Montserrat.generic.short=AT
-America/Montserrat.standard.short=AST
-America/Nassau.daylight.short=EDT
-America/Nassau.generic.short=ET
-America/Nassau.standard.short=EST
-America/New_York.daylight.short=EDT
-America/New_York.generic.short=ET
-America/New_York.standard.short=EST
-America/Nipigon.daylight.short=EDT
-America/Nipigon.generic.short=ET
-America/Nipigon.standard.short=EST
-America/Nome.daylight.short=AKDT
-America/Nome.generic.short=AKT
-America/Nome.standard.short=AKST
-America/Noronha.daylight.short=FNST
-America/Noronha.generic.short=FNT
-America/Noronha.standard.short=FNT
-America/North_Dakota/Beulah.daylight.short=CDT
-America/North_Dakota/Beulah.generic.short=CT
-America/North_Dakota/Beulah.standard.short=CST
-America/North_Dakota/Center.daylight.short=CDT
-America/North_Dakota/Center.generic.short=CT
-America/North_Dakota/Center.standard.short=CST
-America/North_Dakota/New_Salem.daylight.short=CDT
-America/North_Dakota/New_Salem.generic.short=CT
-America/North_Dakota/New_Salem.standard.short=CST
-America/Ojinaga.daylight.short=MDT
-America/Ojinaga.generic.short=MT
-America/Ojinaga.standard.short=MST
-America/Panama.daylight.short=EDT
-America/Panama.generic.short=ET
-America/Panama.standard.short=EST
-America/Pangnirtung.daylight.short=EDT
-America/Pangnirtung.generic.short=ET
-America/Pangnirtung.standard.short=EST
-America/Paramaribo.daylight.short=SRST
-America/Paramaribo.generic.short=SRT
-America/Paramaribo.standard.short=SRT
-America/Phoenix.daylight.short=MDT
-America/Phoenix.generic.short=MT
-America/Phoenix.standard.short=MST
-America/Port-au-Prince.daylight.short=EDT
-America/Port-au-Prince.generic.short=ET
-America/Port-au-Prince.standard.short=EST
-America/Porto_Acre.daylight.short=ACST
-America/Porto_Acre.generic.short=ACT
-America/Porto_Acre.standard.short=ACT
-America/Port_of_Spain.daylight.short=ADT
-America/Port_of_Spain.generic.short=AT
-America/Port_of_Spain.standard.short=AST
-America/Porto_Velho.daylight.short=AMST
-America/Porto_Velho.generic.short=AMT
-America/Porto_Velho.standard.short=AMT
-America/Puerto_Rico.daylight.short=ADT
-America/Puerto_Rico.generic.short=AT
-America/Puerto_Rico.standard.short=AST
-America/Rainy_River.daylight.short=CDT
-America/Rainy_River.generic.short=CT
-America/Rainy_River.standard.short=CST
-America/Rankin_Inlet.daylight.short=CDT
-America/Rankin_Inlet.generic.short=CT
-America/Rankin_Inlet.standard.short=CST
-America/Recife.daylight.short=BRST
-America/Recife.generic.short=BRT
-America/Recife.standard.short=BRT
-America/Regina.daylight.short=CDT
-America/Regina.generic.short=CT
-America/Regina.standard.short=CST
-America/Resolute.daylight.short=CDT
-America/Resolute.generic.short=CT
-America/Resolute.standard.short=CST
-America/Rio_Branco.daylight.short=ACST
-America/Rio_Branco.generic.short=ACT
-America/Rio_Branco.standard.short=ACT
-America/Rosario.daylight.short=ARST
-America/Rosario.generic.short=ART
-America/Rosario.standard.short=ART
-America/Santa_Isabel.daylight.short=PDT
-America/Santa_Isabel.generic.short=PT
-America/Santa_Isabel.standard.short=PST
-America/Santarem.daylight.short=BRST
-America/Santarem.generic.short=BRT
-America/Santarem.standard.short=BRT
-America/Santiago.daylight.short=CLST
-America/Santiago.generic.short=CLT
-America/Santiago.standard.short=CLT
-America/Santo_Domingo.daylight.short=ADT
-America/Santo_Domingo.generic.short=AT
-America/Santo_Domingo.standard.short=AST
-America/Sao_Paulo.daylight.short=BRST
-America/Sao_Paulo.generic.short=BRT
-America/Sao_Paulo.standard.short=BRT
-America/Scoresbysund.daylight.short=EGST
-America/Scoresbysund.generic.short=EGT
-America/Scoresbysund.standard.short=EGT
-America/Shiprock.daylight.short=MDT
-America/Shiprock.generic.short=MT
-America/Shiprock.standard.short=MST
-America/Sitka.daylight.short=AKDT
-America/Sitka.generic.short=AKT
-America/Sitka.standard.short=AKST
-America/St_Barthelemy.daylight.short=ADT
-America/St_Barthelemy.generic.short=AT
-America/St_Barthelemy.standard.short=AST
-America/St_Johns.daylight.short=NDT
-America/St_Johns.generic.short=NT
-America/St_Johns.standard.short=NST
-America/St_Kitts.daylight.short=ADT
-America/St_Kitts.generic.short=AT
-America/St_Kitts.standard.short=AST
-America/St_Lucia.daylight.short=ADT
-America/St_Lucia.generic.short=AT
-America/St_Lucia.standard.short=AST
-America/St_Thomas.daylight.short=ADT
-America/St_Thomas.generic.short=AT
-America/St_Thomas.standard.short=AST
-America/St_Vincent.daylight.short=ADT
-America/St_Vincent.generic.short=AT
-America/St_Vincent.standard.short=AST
-America/Swift_Current.daylight.short=CDT
-America/Swift_Current.generic.short=CT
-America/Swift_Current.standard.short=CST
-America/Tegucigalpa.daylight.short=CDT
-America/Tegucigalpa.generic.short=CT
-America/Tegucigalpa.standard.short=CST
-America/Thule.daylight.short=ADT
-America/Thule.generic.short=AT
-America/Thule.standard.short=AST
-America/Thunder_Bay.daylight.short=EDT
-America/Thunder_Bay.generic.short=ET
-America/Thunder_Bay.standard.short=EST
-America/Tijuana.daylight.short=PDT
-America/Tijuana.generic.short=PT
-America/Tijuana.standard.short=PST
-America/Toronto.daylight.short=EDT
-America/Toronto.generic.short=ET
-America/Toronto.standard.short=EST
-America/Tortola.daylight.short=ADT
-America/Tortola.generic.short=AT
-America/Tortola.standard.short=AST
-America/Vancouver.daylight.short=PDT
-America/Vancouver.generic.short=PT
-America/Vancouver.standard.short=PST
-America/Virgin.daylight.short=ADT
-America/Virgin.generic.short=AT
-America/Virgin.standard.short=AST
-America/Whitehorse.daylight.short=PDT
-America/Whitehorse.generic.short=PT
-America/Whitehorse.standard.short=PST
-America/Winnipeg.daylight.short=CDT
-America/Winnipeg.generic.short=CT
-America/Winnipeg.standard.short=CST
-America/Yakutat.daylight.short=AKDT
-America/Yakutat.generic.short=AKT
-America/Yakutat.standard.short=AKST
-America/Yellowknife.daylight.short=MDT
-America/Yellowknife.generic.short=MT
-America/Yellowknife.standard.short=MST
-Antarctica/Casey.daylight.short=WST
-Antarctica/Casey.generic.short=WT
-Antarctica/Casey.standard.short=WST
-Antarctica/Davis.daylight.short=DAVST
-Antarctica/Davis.generic.short=DAVT
-Antarctica/Davis.standard.short=DAVT
-Antarctica/DumontDUrville.daylight.short=DDUST
-Antarctica/DumontDUrville.generic.short=DDUT
-Antarctica/DumontDUrville.standard.short=DDUT
-Antarctica/Macquarie.daylight.short=MIST
-Antarctica/Macquarie.generic.short=MIST
-Antarctica/Macquarie.standard.short=MIST
-Antarctica/Mawson.daylight.short=MAWST
-Antarctica/Mawson.generic.short=MAWT
-Antarctica/Mawson.standard.short=MAWT
-Antarctica/McMurdo.daylight.short=NZDT
-Antarctica/McMurdo.generic.short=NZT
-Antarctica/McMurdo.standard.short=NZST
-Antarctica/Palmer.daylight.short=CLST
-Antarctica/Palmer.generic.short=CLT
-Antarctica/Palmer.standard.short=CLT
-Antarctica/Rothera.daylight.short=ROTST
-Antarctica/Rothera.generic.short=ROTT
-Antarctica/Rothera.standard.short=ROTT
-Antarctica/South_Pole.daylight.short=NZDT
-Antarctica/South_Pole.generic.short=NZT
-Antarctica/South_Pole.standard.short=NZST
-Antarctica/Syowa.daylight.short=SYOST
-Antarctica/Syowa.generic.short=SYOT
-Antarctica/Syowa.standard.short=SYOT
-Antarctica/Vostok.daylight.short=VOSST
-Antarctica/Vostok.generic.short=VOST
-Antarctica/Vostok.standard.short=VOST
-Arctic/Longyearbyen.daylight.short=CEST
-Arctic/Longyearbyen.generic.short=CET
-Arctic/Longyearbyen.standard.short=CET
-ART.daylight.short=EEST
-ART.generic.short=EET
-ART.standard.short=EET
-Asia/Aden.daylight.short=ADT
-Asia/Aden.generic.short=AT
-Asia/Aden.standard.short=AST
-Asia/Almaty.daylight.short=ALMST
-Asia/Almaty.generic.short=ALMT
-Asia/Almaty.standard.short=ALMT
-Asia/Amman.daylight.short=ADT
-Asia/Amman.generic.short=AT
-Asia/Amman.standard.short=AST
-Asia/Anadyr.daylight.short=ANAST
-Asia/Anadyr.generic.short=ANAT
-Asia/Anadyr.standard.short=ANAT
-Asia/Aqtau.daylight.short=AQTST
-Asia/Aqtau.generic.short=AQTT
-Asia/Aqtau.standard.short=AQTT
-Asia/Aqtobe.daylight.short=AQTST
-Asia/Aqtobe.generic.short=AQTT
-Asia/Aqtobe.standard.short=AQTT
-Asia/Ashgabat.daylight.short=TMST
-Asia/Ashgabat.generic.short=TMT
-Asia/Ashgabat.standard.short=TMT
-Asia/Ashkhabad.daylight.short=TMST
-Asia/Ashkhabad.generic.short=TMT
-Asia/Ashkhabad.standard.short=TMT
-Asia/Baghdad.daylight.short=ADT
-Asia/Baghdad.generic.short=AT
-Asia/Baghdad.standard.short=AST
-Asia/Bahrain.daylight.short=ADT
-Asia/Bahrain.generic.short=AT
-Asia/Bahrain.standard.short=AST
-Asia/Baku.daylight.short=AZST
-Asia/Baku.generic.short=AZT
-Asia/Baku.standard.short=AZT
-Asia/Bangkok.daylight.short=ICST
-Asia/Bangkok.generic.short=ICT
-Asia/Bangkok.standard.short=ICT
-Asia/Beirut.daylight.short=EEST
-Asia/Beirut.generic.short=EET
-Asia/Beirut.standard.short=EET
-Asia/Bishkek.daylight.short=KGST
-Asia/Bishkek.generic.short=KGT
-Asia/Bishkek.standard.short=KGT
-Asia/Brunei.daylight.short=BNST
-Asia/Brunei.generic.short=BNT
-Asia/Brunei.standard.short=BNT
-Asia/Calcutta.daylight.short=IDT
-Asia/Calcutta.generic.short=IT
-Asia/Calcutta.standard.short=IST
-Asia/Choibalsan.daylight.short=CHOST
-Asia/Choibalsan.generic.short=CHOT
-Asia/Choibalsan.standard.short=CHOT
-Asia/Chongqing.daylight.short=CDT
-Asia/Chongqing.generic.short=CT
-Asia/Chongqing.standard.short=CST
-Asia/Chungking.daylight.short=CDT
-Asia/Chungking.generic.short=CT
-Asia/Chungking.standard.short=CST
-Asia/Colombo.daylight.short=IDT
-Asia/Colombo.generic.short=IT
-Asia/Colombo.standard.short=IST
-Asia/Dacca.daylight.short=BDST
-Asia/Dacca.generic.short=BDT
-Asia/Dacca.standard.short=BDT
-Asia/Damascus.daylight.short=EEST
-Asia/Damascus.generic.short=EET
-Asia/Damascus.standard.short=EET
-Asia/Dhaka.daylight.short=BDST
-Asia/Dhaka.generic.short=BDT
-Asia/Dhaka.standard.short=BDT
-Asia/Dili.daylight.short=TLST
-Asia/Dili.generic.short=TLT
-Asia/Dili.standard.short=TLT
-Asia/Dubai.daylight.short=GDT
-Asia/Dubai.generic.short=GT
-Asia/Dubai.standard.short=GST
-Asia/Dushanbe.daylight.short=TJST
-Asia/Dushanbe.generic.short=TJT
-Asia/Dushanbe.standard.short=TJT
-Asia/Gaza.daylight.short=EEST
-Asia/Gaza.generic.short=EET
-Asia/Gaza.standard.short=EET
-Asia/Harbin.daylight.short=CDT
-Asia/Harbin.generic.short=CT
-Asia/Harbin.standard.short=CST
-Asia/Hebron.daylight.short=EEST
-Asia/Hebron.generic.short=EET
-Asia/Hebron.standard.short=EET
-Asia/Ho_Chi_Minh.daylight.short=ICST
-Asia/Ho_Chi_Minh.generic.short=ICT
-Asia/Ho_Chi_Minh.standard.short=ICT
-Asia/Hong_Kong.daylight.short=HKST
-Asia/Hong_Kong.generic.short=HKT
-Asia/Hong_Kong.standard.short=HKT
-Asia/Hovd.daylight.short=HOVST
-Asia/Hovd.generic.short=HOVT
-Asia/Hovd.standard.short=HOVT
-Asia/Irkutsk.daylight.short=IRKST
-Asia/Irkutsk.generic.short=IRKT
-Asia/Irkutsk.standard.short=IRKT
-Asia/Istanbul.daylight.short=EEST
-Asia/Istanbul.generic.short=EET
-Asia/Istanbul.standard.short=EET
-Asia/Jakarta.daylight.short=WIST
-Asia/Jakarta.generic.short=WIB
-Asia/Jakarta.standard.short=WIB
-Asia/Jayapura.daylight.short=EIST
-Asia/Jayapura.generic.short=WIT
-Asia/Jayapura.standard.short=WIT
-Asia/Jerusalem.daylight.short=IDT
-Asia/Jerusalem.generic.short=IT
-Asia/Jerusalem.standard.short=IST
-Asia/Kabul.daylight.short=AFST
-Asia/Kabul.generic.short=AFT
-Asia/Kabul.standard.short=AFT
-Asia/Kamchatka.daylight.short=PETST
-Asia/Kamchatka.generic.short=PETT
-Asia/Kamchatka.standard.short=PETT
-Asia/Karachi.daylight.short=PKST
-Asia/Karachi.generic.short=PKT
-Asia/Karachi.standard.short=PKT
-Asia/Kashgar.daylight.short=CDT
-Asia/Kashgar.generic.short=CT
-Asia/Kashgar.standard.short=CST
-Asia/Kathmandu.daylight.short=NPST
-Asia/Kathmandu.generic.short=NPT
-Asia/Kathmandu.standard.short=NPT
-Asia/Katmandu.daylight.short=NPST
-Asia/Katmandu.generic.short=NPT
-Asia/Katmandu.standard.short=NPT
-Asia/Khandyga.daylight.short=YAKST
-Asia/Khandyga.generic.short=YAKT
-Asia/Khandyga.standard.short=YAKT
-Asia/Kolkata.daylight.short=IDT
-Asia/Kolkata.generic.short=IT
-Asia/Kolkata.standard.short=IST
-Asia/Krasnoyarsk.daylight.short=KRAST
-Asia/Krasnoyarsk.generic.short=KRAT
-Asia/Krasnoyarsk.standard.short=KRAT
-Asia/Kuala_Lumpur.daylight.short=MYST
-Asia/Kuala_Lumpur.generic.short=MYT
-Asia/Kuala_Lumpur.standard.short=MYT
-Asia/Kuching.daylight.short=MYST
-Asia/Kuching.generic.short=MYT
-Asia/Kuching.standard.short=MYT
-Asia/Kuwait.daylight.short=ADT
-Asia/Kuwait.generic.short=AT
-Asia/Kuwait.standard.short=AST
-Asia/Macao.daylight.short=CDT
-Asia/Macao.generic.short=CT
-Asia/Macao.standard.short=CST
-Asia/Macau.daylight.short=CDT
-Asia/Macau.generic.short=CT
-Asia/Macau.standard.short=CST
-Asia/Magadan.daylight.short=MAGST
-Asia/Magadan.generic.short=MAGT
-Asia/Magadan.standard.short=MAGT
-Asia/Makassar.daylight.short=CIST
-Asia/Makassar.generic.short=WITA
-Asia/Makassar.standard.short=WITA
-Asia/Manila.daylight.short=PHST
-Asia/Manila.generic.short=PHT
-Asia/Manila.standard.short=PHT
-Asia/Muscat.daylight.short=GDT
-Asia/Muscat.generic.short=GT
-Asia/Muscat.standard.short=GST
-Asia/Nicosia.daylight.short=EEST
-Asia/Nicosia.generic.short=EET
-Asia/Nicosia.standard.short=EET
-Asia/Novokuznetsk.daylight.short=NOVST
-Asia/Novokuznetsk.generic.short=NOVT
-Asia/Novokuznetsk.standard.short=NOVT
-Asia/Novosibirsk.daylight.short=NOVST
-Asia/Novosibirsk.generic.short=NOVT
-Asia/Novosibirsk.standard.short=NOVT
-Asia/Omsk.daylight.short=OMSST
-Asia/Omsk.generic.short=OMST
-Asia/Omsk.standard.short=OMST
-Asia/Oral.daylight.short=ORAST
-Asia/Oral.generic.short=ORAT
-Asia/Oral.standard.short=ORAT
-Asia/Phnom_Penh.daylight.short=ICST
-Asia/Phnom_Penh.generic.short=ICT
-Asia/Phnom_Penh.standard.short=ICT
-Asia/Pontianak.daylight.short=WIST
-Asia/Pontianak.generic.short=WIB
-Asia/Pontianak.standard.short=WIB
-Asia/Pyongyang.daylight.short=KDT
-Asia/Pyongyang.generic.short=KT
-Asia/Pyongyang.standard.short=KST
-Asia/Qatar.daylight.short=ADT
-Asia/Qatar.generic.short=AT
-Asia/Qatar.standard.short=AST
-Asia/Qyzylorda.daylight.short=QYZST
-Asia/Qyzylorda.generic.short=QYZT
-Asia/Qyzylorda.standard.short=QYZT
-Asia/Rangoon.daylight.short=MMST
-Asia/Rangoon.generic.short=MMT
-Asia/Rangoon.standard.short=MMT
-Asia/Saigon.daylight.short=ICST
-Asia/Saigon.generic.short=ICT
-Asia/Saigon.standard.short=ICT
-Asia/Sakhalin.daylight.short=SAKST
-Asia/Sakhalin.generic.short=SAKT
-Asia/Sakhalin.standard.short=SAKT
-Asia/Samarkand.daylight.short=UZST
-Asia/Samarkand.generic.short=UZT
-Asia/Samarkand.standard.short=UZT
-Asia/Seoul.daylight.short=KDT
-Asia/Seoul.generic.short=KT
-Asia/Seoul.standard.short=KST
-Asia/Shanghai.daylight.short=CDT
-Asia/Shanghai.generic.short=CT
-Asia/Shanghai.standard.short=CST
-Asia/Singapore.daylight.short=SGST
-Asia/Singapore.generic.short=SGT
-Asia/Singapore.standard.short=SGT
-Asia/Taipei.daylight.short=TDT
-Asia/Taipei.generic.short=TT
-Asia/Taipei.standard.short=TST
-Asia/Tashkent.daylight.short=UZST
-Asia/Tashkent.generic.short=UZT
-Asia/Tashkent.standard.short=UZT
-Asia/Tbilisi.daylight.short=GEST
-Asia/Tbilisi.generic.short=GET
-Asia/Tbilisi.standard.short=GET
-Asia/Tehran.daylight.short=IRDT
-Asia/Tehran.generic.short=IRT
-Asia/Tehran.standard.short=IRST
-Asia/Tel_Aviv.daylight.short=IDT
-Asia/Tel_Aviv.generic.short=IT
-Asia/Tel_Aviv.standard.short=IST
-Asia/Thimbu.daylight.short=BTST
-Asia/Thimbu.generic.short=BTT
-Asia/Thimbu.standard.short=BTT
-Asia/Thimphu.daylight.short=BTST
-Asia/Thimphu.generic.short=BTT
-Asia/Thimphu.standard.short=BTT
-Asia/Tokyo.daylight.short=JDT
-Asia/Tokyo.generic.short=JT
-Asia/Tokyo.standard.short=JST
-Asia/Ujung_Pandang.daylight.short=CIST
-Asia/Ujung_Pandang.generic.short=WITA
-Asia/Ujung_Pandang.standard.short=WITA
-Asia/Ulaanbaatar.daylight.short=ULAST
-Asia/Ulaanbaatar.generic.short=ULAT
-Asia/Ulaanbaatar.standard.short=ULAT
-Asia/Ulan_Bator.daylight.short=ULAST
-Asia/Ulan_Bator.generic.short=ULAT
-Asia/Ulan_Bator.standard.short=ULAT
-Asia/Urumqi.daylight.short=CDT
-Asia/Urumqi.generic.short=CT
-Asia/Urumqi.standard.short=CST
-Asia/Ust-Nera.daylight.short=VLAST
-Asia/Ust-Nera.generic.short=VLAT
-Asia/Ust-Nera.standard.short=VLAT
-Asia/Vientiane.daylight.short=ICST
-Asia/Vientiane.generic.short=ICT
-Asia/Vientiane.standard.short=ICT
-Asia/Vladivostok.daylight.short=VLAST
-Asia/Vladivostok.generic.short=VLAT
-Asia/Vladivostok.standard.short=VLAT
-Asia/Yakutsk.daylight.short=YAKST
-Asia/Yakutsk.generic.short=YAKT
-Asia/Yakutsk.standard.short=YAKT
-Asia/Yekaterinburg.daylight.short=YEKST
-Asia/Yekaterinburg.generic.short=YEKT
-Asia/Yekaterinburg.standard.short=YEKT
-Asia/Yerevan.daylight.short=AMST
-Asia/Yerevan.generic.short=AMT
-Asia/Yerevan.standard.short=AMT
-AST.daylight.short=AKDT
-AST.generic.short=AKT
-AST.standard.short=AKST
-Atlantic/Azores.daylight.short=AZOST
-Atlantic/Azores.generic.short=AZOT
-Atlantic/Azores.standard.short=AZOT
-Atlantic/Bermuda.daylight.short=ADT
-Atlantic/Bermuda.generic.short=AT
-Atlantic/Bermuda.standard.short=AST
-Atlantic/Canary.daylight.short=WEST
-Atlantic/Canary.generic.short=WET
-Atlantic/Canary.standard.short=WET
-Atlantic/Cape_Verde.daylight.short=CVST
-Atlantic/Cape_Verde.generic.short=CVT
-Atlantic/Cape_Verde.standard.short=CVT
-Atlantic/Faeroe.daylight.short=WEST
-Atlantic/Faeroe.generic.short=WET
-Atlantic/Faeroe.standard.short=WET
-Atlantic/Faroe.daylight.short=WEST
-Atlantic/Faroe.generic.short=WET
-Atlantic/Faroe.standard.short=WET
-Atlantic/Jan_Mayen.daylight.short=CEST
-Atlantic/Jan_Mayen.generic.short=CET
-Atlantic/Jan_Mayen.standard.short=CET
-Atlantic/Madeira.daylight.short=WEST
-Atlantic/Madeira.generic.short=WET
-Atlantic/Madeira.standard.short=WET
-Atlantic/Reykjavik.daylight.short=GMT
-Atlantic/Reykjavik.generic.short=GMT
-Atlantic/Reykjavik.standard.short=GMT
-Atlantic/South_Georgia.daylight.short=GDT
-Atlantic/South_Georgia.generic.short=GT
-Atlantic/South_Georgia.standard.short=GST
-Atlantic/Stanley.daylight.short=FKST
-Atlantic/Stanley.generic.short=FKT
-Atlantic/Stanley.standard.short=FKT
-Atlantic/St_Helena.daylight.short=GMT
-Atlantic/St_Helena.generic.short=GMT
-Atlantic/St_Helena.standard.short=GMT
-Australia/ACT.daylight.short=EST
-Australia/ACT.generic.short=ET
-Australia/ACT.standard.short=EST
-Australia/Adelaide.daylight.short=CST
-Australia/Adelaide.generic.short=CT
-Australia/Adelaide.standard.short=CST
-Australia/Brisbane.daylight.short=EST
-Australia/Brisbane.generic.short=ET
-Australia/Brisbane.standard.short=EST
-Australia/Broken_Hill.daylight.short=CST
-Australia/Broken_Hill.generic.short=CT
-Australia/Broken_Hill.standard.short=CST
-Australia/Canberra.daylight.short=EST
-Australia/Canberra.generic.short=ET
-Australia/Canberra.standard.short=EST
-Australia/Currie.daylight.short=EST
-Australia/Currie.generic.short=ET
-Australia/Currie.standard.short=EST
-Australia/Darwin.daylight.short=CST
-Australia/Darwin.generic.short=CT
-Australia/Darwin.standard.short=CST
-Australia/Eucla.daylight.short=CWST
-Australia/Eucla.generic.short=CWT
-Australia/Eucla.standard.short=CWST
-Australia/Hobart.daylight.short=EST
-Australia/Hobart.generic.short=ET
-Australia/Hobart.standard.short=EST
-Australia/LHI.daylight.short=LHST
-Australia/LHI.generic.short=LHT
-Australia/LHI.standard.short=LHST
-Australia/Lindeman.daylight.short=EST
-Australia/Lindeman.generic.short=ET
-Australia/Lindeman.standard.short=EST
-Australia/Lord_Howe.daylight.short=LHST
-Australia/Lord_Howe.generic.short=LHT
-Australia/Lord_Howe.standard.short=LHST
-Australia/Melbourne.daylight.short=EST
-Australia/Melbourne.generic.short=ET
-Australia/Melbourne.standard.short=EST
-Australia/North.daylight.short=CST
-Australia/North.generic.short=CT
-Australia/North.standard.short=CST
-Australia/NSW.daylight.short=EST
-Australia/NSW.generic.short=ET
-Australia/NSW.standard.short=EST
-Australia/Perth.daylight.short=WST
-Australia/Perth.generic.short=WT
-Australia/Perth.standard.short=WST
-Australia/Queensland.daylight.short=EST
-Australia/Queensland.generic.short=ET
-Australia/Queensland.standard.short=EST
-Australia/South.daylight.short=CST
-Australia/South.generic.short=CT
-Australia/South.standard.short=CST
-Australia/Sydney.daylight.short=EST
-Australia/Sydney.generic.short=ET
-Australia/Sydney.standard.short=EST
-Australia/Tasmania.daylight.short=EST
-Australia/Tasmania.generic.short=ET
-Australia/Tasmania.standard.short=EST
-Australia/Victoria.daylight.short=EST
-Australia/Victoria.generic.short=ET
-Australia/Victoria.standard.short=EST
-Australia/West.daylight.short=WST
-Australia/West.generic.short=WT
-Australia/West.standard.short=WST
-Australia/Yancowinna.daylight.short=CST
-Australia/Yancowinna.generic.short=CT
-Australia/Yancowinna.standard.short=CST
-BET.daylight.short=BRST
-BET.generic.short=BRT
-BET.standard.short=BRT
-Brazil/Acre.daylight.short=ACST
-Brazil/Acre.generic.short=ACT
-Brazil/Acre.standard.short=ACT
-Brazil/DeNoronha.daylight.short=FNST
-Brazil/DeNoronha.generic.short=FNT
-Brazil/DeNoronha.standard.short=FNT
-Brazil/East.daylight.short=BRST
-Brazil/East.generic.short=BRT
-Brazil/East.standard.short=BRT
-Brazil/West.daylight.short=AMST
-Brazil/West.generic.short=AMT
-Brazil/West.standard.short=AMT
-BST.daylight.short=BDST
-BST.generic.short=BDT
-BST.standard.short=BDT
-Canada/Atlantic.daylight.short=ADT
-Canada/Atlantic.generic.short=AT
-Canada/Atlantic.standard.short=AST
-Canada/Central.daylight.short=CDT
-Canada/Central.generic.short=CT
-Canada/Central.standard.short=CST
-Canada/Eastern.daylight.short=EDT
-Canada/Eastern.generic.short=ET
-Canada/Eastern.standard.short=EST
-Canada/East-Saskatchewan.daylight.short=CDT
-Canada/East-Saskatchewan.generic.short=CT
-Canada/East-Saskatchewan.standard.short=CST
-Canada/Mountain.daylight.short=MDT
-Canada/Mountain.generic.short=MT
-Canada/Mountain.standard.short=MST
-Canada/Newfoundland.daylight.short=NDT
-Canada/Newfoundland.generic.short=NT
-Canada/Newfoundland.standard.short=NST
-Canada/Pacific.daylight.short=PDT
-Canada/Pacific.generic.short=PT
-Canada/Pacific.standard.short=PST
-Canada/Saskatchewan.daylight.short=CDT
-Canada/Saskatchewan.generic.short=CT
-Canada/Saskatchewan.standard.short=CST
-Canada/Yukon.daylight.short=PDT
-Canada/Yukon.generic.short=PT
-Canada/Yukon.standard.short=PST
-CAT.daylight.short=CAST
-CAT.generic.short=CAT
-CAT.standard.short=CAT
-CET.daylight.short=CEST
-CET.generic.short=CET
-CET.standard.short=CET
-Chile/Continental.daylight.short=CLST
-Chile/Continental.generic.short=CLT
-Chile/Continental.standard.short=CLT
-Chile/EasterIsland.daylight.short=EASST
-Chile/EasterIsland.generic.short=EAST
-Chile/EasterIsland.standard.short=EAST
-CNT.daylight.short=NDT
-CNT.generic.short=NT
-CNT.standard.short=NST
-CST6CDT.daylight.short=CDT
-CST6CDT.generic.short=CT
-CST6CDT.standard.short=CST
-CST.daylight.short=CDT
-CST.generic.short=CT
-CST.standard.short=CST
-CTT.daylight.short=CDT
-CTT.generic.short=CT
-CTT.standard.short=CST
-Cuba.daylight.short=CDT
-Cuba.generic.short=CT
-Cuba.standard.short=CST
-EAT.daylight.short=EAST
-EAT.generic.short=EAT
-EAT.standard.short=EAT
-ECT.daylight.short=CEST
-ECT.generic.short=CET
-ECT.standard.short=CET
-EET.daylight.short=EEST
-EET.generic.short=EET
-EET.standard.short=EET
-Egypt.daylight.short=EEST
-Egypt.generic.short=EET
-Egypt.standard.short=EET
-Eire.daylight.short=IST
-Eire.generic.short=IT
-Eire.standard.short=GMT
-EST5EDT.daylight.short=EDT
-EST5EDT.generic.short=ET
-EST5EDT.standard.short=EST
-EST.daylight.short=EDT
-EST.generic.short=ET
-EST.standard.short=EST
-Etc/Greenwich.daylight.short=GMT
-Etc/Greenwich.generic.short=GMT
-Etc/Greenwich.standard.short=GMT
-Etc/UCT.daylight.short=UTC
-Etc/UCT.generic.short=UTC
-Etc/UCT.standard.short=UTC
-Etc/Universal.daylight.short=UTC
-Etc/Universal.generic.short=UTC
-Etc/Universal.standard.short=UTC
-Etc/UTC.daylight.short=UTC
-Etc/UTC.generic.short=UTC
-Etc/UTC.standard.short=UTC
-Etc/Zulu.daylight.short=UTC
-Etc/Zulu.generic.short=UTC
-Etc/Zulu.standard.short=UTC
-Europe/Amsterdam.daylight.short=CEST
-Europe/Amsterdam.generic.short=CET
-Europe/Amsterdam.standard.short=CET
-Europe/Andorra.daylight.short=CEST
-Europe/Andorra.generic.short=CET
-Europe/Andorra.standard.short=CET
-Europe/Athens.daylight.short=EEST
-Europe/Athens.generic.short=EET
-Europe/Athens.standard.short=EET
-Europe/Belfast.daylight.short=BST
-Europe/Belfast.generic.short=BT
-Europe/Belfast.standard.short=GMT
-Europe/Belgrade.daylight.short=CEST
-Europe/Belgrade.generic.short=CET
-Europe/Belgrade.standard.short=CET
-Europe/Berlin.daylight.short=CEST
-Europe/Berlin.generic.short=CET
-Europe/Berlin.standard.short=CET
-Europe/Bratislava.daylight.short=CEST
-Europe/Bratislava.generic.short=CET
-Europe/Bratislava.standard.short=CET
-Europe/Brussels.daylight.short=CEST
-Europe/Brussels.generic.short=CET
-Europe/Brussels.standard.short=CET
-Europe/Bucharest.daylight.short=EEST
-Europe/Bucharest.generic.short=EET
-Europe/Bucharest.standard.short=EET
-Europe/Budapest.daylight.short=CEST
-Europe/Budapest.generic.short=CET
-Europe/Budapest.standard.short=CET
-Europe/Busingen.daylight.short=CEST
-Europe/Busingen.generic.short=CET
-Europe/Busingen.standard.short=CET
-Europe/Chisinau.daylight.short=EEST
-Europe/Chisinau.generic.short=EET
-Europe/Chisinau.standard.short=EET
-Europe/Copenhagen.daylight.short=CEST
-Europe/Copenhagen.generic.short=CET
-Europe/Copenhagen.standard.short=CET
-Europe/Dublin.daylight.short=IST
-Europe/Dublin.generic.short=IT
-Europe/Dublin.standard.short=GMT
-Europe/Gibraltar.daylight.short=CEST
-Europe/Gibraltar.generic.short=CET
-Europe/Gibraltar.standard.short=CET
-Europe/Guernsey.daylight.short=BST
-Europe/Guernsey.generic.short=BT
-Europe/Guernsey.standard.short=GMT
-Europe/Helsinki.daylight.short=EEST
-Europe/Helsinki.generic.short=EET
-Europe/Helsinki.standard.short=EET
-Europe/Isle_of_Man.daylight.short=BST
-Europe/Isle_of_Man.generic.short=BT
-Europe/Isle_of_Man.standard.short=GMT
-Europe/Istanbul.daylight.short=EEST
-Europe/Istanbul.generic.short=EET
-Europe/Istanbul.standard.short=EET
-Europe/Jersey.daylight.short=BST
-Europe/Jersey.generic.short=BT
-Europe/Jersey.standard.short=GMT
-Europe/Kaliningrad.daylight.short=FEST
-Europe/Kaliningrad.generic.short=FET
-Europe/Kaliningrad.standard.short=FET
-Europe/Kiev.daylight.short=EEST
-Europe/Kiev.generic.short=EET
-Europe/Kiev.standard.short=EET
-Europe/Lisbon.daylight.short=WEST
-Europe/Lisbon.generic.short=WET
-Europe/Lisbon.standard.short=WET
-Europe/Ljubljana.daylight.short=CEST
-Europe/Ljubljana.generic.short=CET
-Europe/Ljubljana.standard.short=CET
-Europe/London.daylight.short=BST
-Europe/London.generic.short=BT
-Europe/London.standard.short=GMT
-Europe/Luxembourg.daylight.short=CEST
-Europe/Luxembourg.generic.short=CET
-Europe/Luxembourg.standard.short=CET
-Europe/Madrid.daylight.short=CEST
-Europe/Madrid.generic.short=CET
-Europe/Madrid.standard.short=CET
-Europe/Malta.daylight.short=CEST
-Europe/Malta.generic.short=CET
-Europe/Malta.standard.short=CET
-Europe/Mariehamn.daylight.short=EEST
-Europe/Mariehamn.generic.short=EET
-Europe/Mariehamn.standard.short=EET
-Europe/Minsk.daylight.short=FEST
-Europe/Minsk.generic.short=FET
-Europe/Minsk.standard.short=FET
-Europe/Monaco.daylight.short=CEST
-Europe/Monaco.generic.short=CET
-Europe/Monaco.standard.short=CET
-Europe/Moscow.daylight.short=MSD
-Europe/Moscow.generic.short=MT
-Europe/Moscow.standard.short=MSK
-Europe/Nicosia.daylight.short=EEST
-Europe/Nicosia.generic.short=EET
-Europe/Nicosia.standard.short=EET
-Europe/Oslo.daylight.short=CEST
-Europe/Oslo.generic.short=CET
-Europe/Oslo.standard.short=CET
-Europe/Paris.daylight.short=CEST
-Europe/Paris.generic.short=CET
-Europe/Paris.standard.short=CET
-Europe/Podgorica.daylight.short=CEST
-Europe/Podgorica.generic.short=CET
-Europe/Podgorica.standard.short=CET
-Europe/Prague.daylight.short=CEST
-Europe/Prague.generic.short=CET
-Europe/Prague.standard.short=CET
-Europe/Riga.daylight.short=EEST
-Europe/Riga.generic.short=EET
-Europe/Riga.standard.short=EET
-Europe/Rome.daylight.short=CEST
-Europe/Rome.generic.short=CET
-Europe/Rome.standard.short=CET
-Europe/Samara.daylight.short=SAMST
-Europe/Samara.generic.short=SAMT
-Europe/Samara.standard.short=SAMT
-Europe/San_Marino.daylight.short=CEST
-Europe/San_Marino.generic.short=CET
-Europe/San_Marino.standard.short=CET
-Europe/Sarajevo.daylight.short=CEST
-Europe/Sarajevo.generic.short=CET
-Europe/Sarajevo.standard.short=CET
-Europe/Simferopol.daylight.short=EEST
-Europe/Simferopol.generic.short=EET
-Europe/Simferopol.standard.short=EET
-Europe/Skopje.daylight.short=CEST
-Europe/Skopje.generic.short=CET
-Europe/Skopje.standard.short=CET
-Europe/Sofia.daylight.short=EEST
-Europe/Sofia.generic.short=EET
-Europe/Sofia.standard.short=EET
-Europe/Stockholm.daylight.short=CEST
-Europe/Stockholm.generic.short=CET
-Europe/Stockholm.standard.short=CET
-Europe/Tallinn.daylight.short=EEST
-Europe/Tallinn.generic.short=EET
-Europe/Tallinn.standard.short=EET
-Europe/Tirane.daylight.short=CEST
-Europe/Tirane.generic.short=CET
-Europe/Tirane.standard.short=CET
-Europe/Tiraspol.daylight.short=EEST
-Europe/Tiraspol.generic.short=EET
-Europe/Tiraspol.standard.short=EET
-Europe/Uzhgorod.daylight.short=EEST
-Europe/Uzhgorod.generic.short=EET
-Europe/Uzhgorod.standard.short=EET
-Europe/Vaduz.daylight.short=CEST
-Europe/Vaduz.generic.short=CET
-Europe/Vaduz.standard.short=CET
-Europe/Vatican.daylight.short=CEST
-Europe/Vatican.generic.short=CET
-Europe/Vatican.standard.short=CET
-Europe/Vienna.daylight.short=CEST
-Europe/Vienna.generic.short=CET
-Europe/Vienna.standard.short=CET
-Europe/Vilnius.daylight.short=EEST
-Europe/Vilnius.generic.short=EET
-Europe/Vilnius.standard.short=EET
-Europe/Volgograd.daylight.short=VOLST
-Europe/Volgograd.generic.short=VOLT
-Europe/Volgograd.standard.short=VOLT
-Europe/Warsaw.daylight.short=CEST
-Europe/Warsaw.generic.short=CET
-Europe/Warsaw.standard.short=CET
-Europe/Zagreb.daylight.short=CEST
-Europe/Zagreb.generic.short=CET
-Europe/Zagreb.standard.short=CET
-Europe/Zaporozhye.daylight.short=EEST
-Europe/Zaporozhye.generic.short=EET
-Europe/Zaporozhye.standard.short=EET
-Europe/Zurich.daylight.short=CEST
-Europe/Zurich.generic.short=CET
-Europe/Zurich.standard.short=CET
-GB.daylight.short=BST
-GB-Eire.daylight.short=BST
-GB-Eire.generic.short=BT
-GB-Eire.standard.short=GMT
-GB.generic.short=BT
-GB.standard.short=GMT
-GMT.daylight.short=GMT
-GMT.generic.short=GMT
-GMT.standard.short=GMT
-Greenwich.daylight.short=GMT
-Greenwich.generic.short=GMT
-Greenwich.standard.short=GMT
-Hongkong.daylight.short=HKST
-Hongkong.generic.short=HKT
-Hongkong.standard.short=HKT
-HST.daylight.short=HDT
-HST.generic.short=HT
-HST.standard.short=HST
-Iceland.daylight.short=GMT
-Iceland.generic.short=GMT
-Iceland.standard.short=GMT
-IET.daylight.short=EDT
-IET.generic.short=ET
-IET.standard.short=EST
-Indian/Antananarivo.daylight.short=EAST
-Indian/Antananarivo.generic.short=EAT
-Indian/Antananarivo.standard.short=EAT
-Indian/Chagos.daylight.short=IOST
-Indian/Chagos.generic.short=IOT
-Indian/Chagos.standard.short=IOT
-Indian/Christmas.daylight.short=CXST
-Indian/Christmas.generic.short=CIT
-Indian/Christmas.standard.short=CXT
-Indian/Cocos.daylight.short=CCST
-Indian/Cocos.generic.short=CCT
-Indian/Cocos.standard.short=CCT
-Indian/Comoro.daylight.short=EAST
-Indian/Comoro.generic.short=EAT
-Indian/Comoro.standard.short=EAT
-Indian/Kerguelen.daylight.short=TFST
-Indian/Kerguelen.generic.short=TFT
-Indian/Kerguelen.standard.short=TFT
-Indian/Mahe.daylight.short=SCST
-Indian/Mahe.generic.short=SCT
-Indian/Mahe.standard.short=SCT
-Indian/Maldives.daylight.short=MVST
-Indian/Maldives.generic.short=MVT
-Indian/Maldives.standard.short=MVT
-Indian/Mauritius.daylight.short=MUST
-Indian/Mauritius.generic.short=MUT
-Indian/Mauritius.standard.short=MUT
-Indian/Mayotte.daylight.short=EAST
-Indian/Mayotte.generic.short=EAT
-Indian/Mayotte.standard.short=EAT
-Indian/Reunion.daylight.short=REST
-Indian/Reunion.generic.short=RET
-Indian/Reunion.standard.short=RET
-Iran.daylight.short=IRDT
-Iran.generic.short=IRT
-Iran.standard.short=IRST
-Israel.daylight.short=IDT
-Israel.generic.short=IT
-Israel.standard.short=IST
-IST.daylight.short=IDT
-IST.generic.short=IT
-IST.standard.short=IST
-Jamaica.daylight.short=EDT
-Jamaica.generic.short=ET
-Jamaica.standard.short=EST
-Japan.daylight.short=JDT
-Japan.generic.short=JT
-Japan.standard.short=JST
-JST.daylight.short=JDT
-JST.generic.short=JT
-JST.standard.short=JST
-Kwajalein.daylight.short=MHST
-Kwajalein.generic.short=MHT
-Kwajalein.standard.short=MHT
-Libya.daylight.short=EEST
-Libya.generic.short=EET
-Libya.standard.short=EET
-MET.daylight.short=MEST
-MET.generic.short=MET
-MET.standard.short=MET
-Mexico/BajaNorte.daylight.short=PDT
-Mexico/BajaNorte.generic.short=PT
-Mexico/BajaNorte.standard.short=PST
-Mexico/BajaSur.daylight.short=MDT
-Mexico/BajaSur.generic.short=MT
-Mexico/BajaSur.standard.short=MST
-Mexico/General.daylight.short=CDT
-Mexico/General.generic.short=CT
-Mexico/General.standard.short=CST
-MIT.daylight.short=WSDT
-MIT.generic.short=WST
-MIT.standard.short=WST
-MST7MDT.daylight.short=MDT
-MST7MDT.generic.short=MT
-MST7MDT.standard.short=MST
-MST.daylight.short=MDT
-MST.generic.short=MT
-MST.standard.short=MST
-Navajo.daylight.short=MDT
-Navajo.generic.short=MT
-Navajo.standard.short=MST
-NET.daylight.short=AMST
-NET.generic.short=AMT
-NET.standard.short=AMT
-NST.daylight.short=NZDT
-NST.generic.short=NZT
-NST.standard.short=NZST
-NZ-CHAT.daylight.short=CHADT
-NZ-CHAT.generic.short=CHAT
-NZ-CHAT.standard.short=CHAST
-NZ.daylight.short=NZDT
-NZ.generic.short=NZT
-NZ.standard.short=NZST
-Pacific/Apia.daylight.short=WSDT
-Pacific/Apia.generic.short=WST
-Pacific/Apia.standard.short=WST
-Pacific/Auckland.daylight.short=NZDT
-Pacific/Auckland.generic.short=NZT
-Pacific/Auckland.standard.short=NZST
-Pacific/Chatham.daylight.short=CHADT
-Pacific/Chatham.generic.short=CHAT
-Pacific/Chatham.standard.short=CHAST
-Pacific/Chuuk.daylight.short=CHUST
-Pacific/Chuuk.generic.short=CHUT
-Pacific/Chuuk.standard.short=CHUT
-Pacific/Easter.daylight.short=EASST
-Pacific/Easter.generic.short=EAST
-Pacific/Easter.standard.short=EAST
-Pacific/Efate.daylight.short=VUST
-Pacific/Efate.generic.short=VUT
-Pacific/Efate.standard.short=VUT
-Pacific/Enderbury.daylight.short=PHOST
-Pacific/Enderbury.generic.short=PHOT
-Pacific/Enderbury.standard.short=PHOT
-Pacific/Fakaofo.daylight.short=TKST
-Pacific/Fakaofo.generic.short=TKT
-Pacific/Fakaofo.standard.short=TKT
-Pacific/Fiji.daylight.short=FJST
-Pacific/Fiji.generic.short=FJT
-Pacific/Fiji.standard.short=FJT
-Pacific/Funafuti.daylight.short=TVST
-Pacific/Funafuti.generic.short=TVT
-Pacific/Funafuti.standard.short=TVT
-Pacific/Galapagos.daylight.short=GALST
-Pacific/Galapagos.generic.short=GALT
-Pacific/Galapagos.standard.short=GALT
-Pacific/Gambier.daylight.short=GAMST
-Pacific/Gambier.generic.short=GAMT
-Pacific/Gambier.standard.short=GAMT
-Pacific/Guadalcanal.daylight.short=SBST
-Pacific/Guadalcanal.generic.short=SBT
-Pacific/Guadalcanal.standard.short=SBT
-Pacific/Guam.daylight.short=ChDT
-Pacific/Guam.generic.short=ChT
-Pacific/Guam.standard.short=ChST
-Pacific/Honolulu.daylight.short=HDT
-Pacific/Honolulu.generic.short=HT
-Pacific/Honolulu.standard.short=HST
-Pacific/Johnston.daylight.short=HDT
-Pacific/Johnston.generic.short=HT
-Pacific/Johnston.standard.short=HST
-Pacific/Kiritimati.daylight.short=LINST
-Pacific/Kiritimati.generic.short=LINT
-Pacific/Kiritimati.standard.short=LINT
-Pacific/Kosrae.daylight.short=KOSST
-Pacific/Kosrae.generic.short=KOST
-Pacific/Kosrae.standard.short=KOST
-Pacific/Kwajalein.daylight.short=MHST
-Pacific/Kwajalein.generic.short=MHT
-Pacific/Kwajalein.standard.short=MHT
-Pacific/Majuro.daylight.short=MHST
-Pacific/Majuro.generic.short=MHT
-Pacific/Majuro.standard.short=MHT
-Pacific/Marquesas.daylight.short=MARST
-Pacific/Marquesas.generic.short=MART
-Pacific/Marquesas.standard.short=MART
-Pacific/Midway.daylight.short=SDT
-Pacific/Midway.generic.short=ST
-Pacific/Midway.standard.short=SST
-Pacific/Nauru.daylight.short=NRST
-Pacific/Nauru.generic.short=NRT
-Pacific/Nauru.standard.short=NRT
-Pacific/Niue.daylight.short=NUST
-Pacific/Niue.generic.short=NUT
-Pacific/Niue.standard.short=NUT
-Pacific/Norfolk.daylight.short=NFST
-Pacific/Norfolk.generic.short=NFT
-Pacific/Norfolk.standard.short=NFT
-Pacific/Noumea.daylight.short=NCST
-Pacific/Noumea.generic.short=NCT
-Pacific/Noumea.standard.short=NCT
-Pacific/Pago_Pago.daylight.short=SDT
-Pacific/Pago_Pago.generic.short=ST
-Pacific/Pago_Pago.standard.short=SST
-Pacific/Palau.daylight.short=PWST
-Pacific/Palau.generic.short=PWT
-Pacific/Palau.standard.short=PWT
-Pacific/Pitcairn.daylight.short=PDT
-Pacific/Pitcairn.generic.short=PT
-Pacific/Pitcairn.standard.short=PST
-Pacific/Pohnpei.daylight.short=PONST
-Pacific/Pohnpei.generic.short=PONT
-Pacific/Pohnpei.standard.short=PONT
-Pacific/Ponape.daylight.short=PONST
-Pacific/Ponape.generic.short=PONT
-Pacific/Ponape.standard.short=PONT
-Pacific/Port_Moresby.daylight.short=PGST
-Pacific/Port_Moresby.generic.short=PGT
-Pacific/Port_Moresby.standard.short=PGT
-Pacific/Rarotonga.daylight.short=CKHST
-Pacific/Rarotonga.generic.short=CKT
-Pacific/Rarotonga.standard.short=CKT
-Pacific/Saipan.daylight.short=ChDT
-Pacific/Saipan.generic.short=ChT
-Pacific/Saipan.standard.short=ChST
-Pacific/Samoa.daylight.short=SDT
-Pacific/Samoa.generic.short=ST
-Pacific/Samoa.standard.short=SST
-Pacific/Tahiti.daylight.short=TAHST
-Pacific/Tahiti.generic.short=TAHT
-Pacific/Tahiti.standard.short=TAHT
-Pacific/Tarawa.daylight.short=GILST
-Pacific/Tarawa.generic.short=GILT
-Pacific/Tarawa.standard.short=GILT
-Pacific/Tongatapu.daylight.short=TOST
-Pacific/Tongatapu.generic.short=TOT
-Pacific/Tongatapu.standard.short=TOT
-Pacific/Truk.daylight.short=CHUST
-Pacific/Truk.generic.short=CHUT
-Pacific/Truk.standard.short=CHUT
-Pacific/Wake.daylight.short=WAKST
-Pacific/Wake.generic.short=WAKT
-Pacific/Wake.standard.short=WAKT
-Pacific/Wallis.daylight.short=WFST
-Pacific/Wallis.generic.short=WFT
-Pacific/Wallis.standard.short=WFT
-Pacific/Yap.daylight.short=CHUST
-Pacific/Yap.generic.short=CHUT
-Pacific/Yap.standard.short=CHUT
-PLT.daylight.short=PKST
-PLT.generic.short=PKT
-PLT.standard.short=PKT
-PNT.daylight.short=MDT
-PNT.generic.short=MT
-PNT.standard.short=MST
-Poland.daylight.short=CEST
-Poland.generic.short=CET
-Poland.standard.short=CET
-Portugal.daylight.short=WEST
-Portugal.generic.short=WET
-Portugal.standard.short=WET
-PRC.daylight.short=CDT
-PRC.generic.short=CT
-PRC.standard.short=CST
-PRT.daylight.short=ADT
-PRT.generic.short=AT
-PRT.standard.short=AST
-PST8PDT.daylight.short=PDT
-PST8PDT.generic.short=PT
-PST8PDT.standard.short=PST
-PST.daylight.short=PDT
-PST.generic.short=PT
-PST.standard.short=PST
-ROK.daylight.short=KDT
-ROK.generic.short=KT
-ROK.standard.short=KST
-Singapore.daylight.short=SGST
-Singapore.generic.short=SGT
-Singapore.standard.short=SGT
-SST.daylight.short=SBST
-SST.generic.short=SBT
-SST.standard.short=SBT
-SystemV/AST4ADT.daylight.short=ADT
-SystemV/AST4ADT.generic.short=AT
-SystemV/AST4ADT.standard.short=AST
-SystemV/AST4.daylight.short=ADT
-SystemV/AST4.generic.short=AT
-SystemV/AST4.standard.short=AST
-SystemV/CST6CDT.daylight.short=CDT
-SystemV/CST6CDT.generic.short=CT
-SystemV/CST6CDT.standard.short=CST
-SystemV/CST6.daylight.short=CDT
-SystemV/CST6.generic.short=CT
-SystemV/CST6.standard.short=CST
-SystemV/EST5.daylight.short=EDT
-SystemV/EST5EDT.daylight.short=EDT
-SystemV/EST5EDT.generic.short=ET
-SystemV/EST5EDT.standard.short=EST
-SystemV/EST5.generic.short=ET
-SystemV/EST5.standard.short=EST
-SystemV/HST10.daylight.short=HDT
-SystemV/HST10.generic.short=HT
-SystemV/HST10.standard.short=HST
-SystemV/MST7.daylight.short=MDT
-SystemV/MST7.generic.short=MT
-SystemV/MST7MDT.daylight.short=MDT
-SystemV/MST7MDT.generic.short=MT
-SystemV/MST7MDT.standard.short=MST
-SystemV/MST7.standard.short=MST
-SystemV/PST8.daylight.short=PDT
-SystemV/PST8.generic.short=PT
-SystemV/PST8PDT.daylight.short=PDT
-SystemV/PST8PDT.generic.short=PT
-SystemV/PST8PDT.standard.short=PST
-SystemV/PST8.standard.short=PST
-SystemV/YST9.daylight.short=AKDT
-SystemV/YST9.generic.short=AKT
-SystemV/YST9.standard.short=AKST
-SystemV/YST9YDT.daylight.short=AKDT
-SystemV/YST9YDT.generic.short=AKT
-SystemV/YST9YDT.standard.short=AKST
-Turkey.daylight.short=EEST
-Turkey.generic.short=EET
-Turkey.standard.short=EET
-UCT.daylight.short=UTC
-UCT.generic.short=UTC
-UCT.standard.short=UTC
-Universal.daylight.short=UTC
-Universal.generic.short=UTC
-Universal.standard.short=UTC
-US/Alaska.daylight.short=AKDT
-US/Alaska.generic.short=AKT
-US/Alaska.standard.short=AKST
-US/Aleutian.daylight.short=HADT
-US/Aleutian.generic.short=HAT
-US/Aleutian.standard.short=HAST
-US/Arizona.daylight.short=MDT
-US/Arizona.generic.short=MT
-US/Arizona.standard.short=MST
-US/Central.daylight.short=CDT
-US/Central.generic.short=CT
-US/Central.standard.short=CST
-US/Eastern.daylight.short=EDT
-US/Eastern.generic.short=ET
-US/Eastern.standard.short=EST
-US/East-Indiana.daylight.short=EDT
-US/East-Indiana.generic.short=ET
-US/East-Indiana.standard.short=EST
-US/Hawaii.daylight.short=HDT
-US/Hawaii.generic.short=HT
-US/Hawaii.standard.short=HST
-US/Indiana-Starke.daylight.short=CDT
-US/Indiana-Starke.generic.short=CT
-US/Indiana-Starke.standard.short=CST
-US/Michigan.daylight.short=EDT
-US/Michigan.generic.short=ET
-US/Michigan.standard.short=EST
-US/Mountain.daylight.short=MDT
-US/Mountain.generic.short=MT
-US/Mountain.standard.short=MST
-US/Pacific.daylight.short=PDT
-US/Pacific.generic.short=PT
-US/Pacific-New.daylight.short=PDT
-US/Pacific-New.generic.short=PT
-US/Pacific-New.standard.short=PST
-US/Pacific.standard.short=PST
-US/Samoa.daylight.short=SDT
-US/Samoa.generic.short=ST
-US/Samoa.standard.short=SST
-UTC.daylight.short=UTC
-UTC.generic.short=UTC
-UTC.standard.short=UTC
-VST.daylight.short=ICST
-VST.generic.short=ICT
-VST.standard.short=ICT
-WET.daylight.short=WEST
-WET.generic.short=WET
-WET.standard.short=WET
-W-SU.daylight.short=MSD
-W-SU.generic.short=MT
-W-SU.standard.short=MSK
-Zulu.daylight.short=UTC
-Zulu.generic.short=UTC
-Zulu.standard.short=UTC
From 91796b96b90d19cbde241ada875a8fcc999b31a6 Mon Sep 17 00:00:00 2001
From: Peter Levart
Date: Thu, 30 Jan 2014 15:36:04 +0100
Subject: [PATCH 117/181] 8022321: java/lang/ref/OOMEInReferenceHandler.java
fails intermittently
Preload/preinitialize InterruptedException and Cleaner classes and catch OOME from instanceof operator in ReferenceHandler
Reviewed-by: dholmes, mchung, srikchan
---
.../classes/java/lang/ref/Reference.java | 75 ++++++++++++-------
1 file changed, 47 insertions(+), 28 deletions(-)
diff --git a/jdk/src/share/classes/java/lang/ref/Reference.java b/jdk/src/share/classes/java/lang/ref/Reference.java
index 42d2ba97814..49f68d145f4 100644
--- a/jdk/src/share/classes/java/lang/ref/Reference.java
+++ b/jdk/src/share/classes/java/lang/ref/Reference.java
@@ -111,7 +111,7 @@ public abstract class Reference {
* therefore critical that any code holding this lock complete as quickly
* as possible, allocate no new objects, and avoid calling user code.
*/
- static private class Lock { };
+ static private class Lock { }
private static Lock lock = new Lock();
@@ -126,6 +126,22 @@ public abstract class Reference {
*/
private static class ReferenceHandler extends Thread {
+ private static void ensureClassInitialized(Class> clazz) {
+ try {
+ Class.forName(clazz.getName(), true, clazz.getClassLoader());
+ } catch (ClassNotFoundException e) {
+ throw (Error) new NoClassDefFoundError(e.getMessage()).initCause(e);
+ }
+ }
+
+ static {
+ // pre-load and initialize InterruptedException and Cleaner classes
+ // so that we don't get into trouble later in the run loop if there's
+ // memory shortage while loading/initializing them lazily.
+ ensureClassInitialized(InterruptedException.class);
+ ensureClassInitialized(Cleaner.class);
+ }
+
ReferenceHandler(ThreadGroup g, String name) {
super(g, name);
}
@@ -133,37 +149,40 @@ public abstract class Reference {
public void run() {
for (;;) {
Reference r;
- synchronized (lock) {
- if (pending != null) {
- r = pending;
- pending = r.discovered;
- r.discovered = null;
- } else {
- // The waiting on the lock may cause an OOME because it may try to allocate
- // exception objects, so also catch OOME here to avoid silent exit of the
- // reference handler thread.
- //
- // Explicitly define the order of the two exceptions we catch here
- // when waiting for the lock.
- //
- // We do not want to try to potentially load the InterruptedException class
- // (which would be done if this was its first use, and InterruptedException
- // were checked first) in this situation.
- //
- // This may lead to the VM not ever trying to load the InterruptedException
- // class again.
- try {
- try {
- lock.wait();
- } catch (OutOfMemoryError x) { }
- } catch (InterruptedException x) { }
- continue;
+ Cleaner c;
+ try {
+ synchronized (lock) {
+ if (pending != null) {
+ r = pending;
+ // 'instanceof' might throw OutOfMemoryError sometimes
+ // so do this before un-linking 'r' from the 'pending' chain...
+ c = r instanceof Cleaner ? (Cleaner) r : null;
+ // unlink 'r' from 'pending' chain
+ pending = r.discovered;
+ r.discovered = null;
+ } else {
+ // The waiting on the lock may cause an OutOfMemoryError
+ // because it may try to allocate exception objects.
+ lock.wait();
+ continue;
+ }
}
+ } catch (OutOfMemoryError x) {
+ // Give other threads CPU time so they hopefully drop some live references
+ // and GC reclaims some space.
+ // Also prevent CPU intensive spinning in case 'r instanceof Cleaner' above
+ // persistently throws OOME for some time...
+ Thread.yield();
+ // retry
+ continue;
+ } catch (InterruptedException x) {
+ // retry
+ continue;
}
// Fast path for cleaners
- if (r instanceof Cleaner) {
- ((Cleaner)r).clean();
+ if (c != null) {
+ c.clean();
continue;
}
From 01e48af83f551e51fe684c0290e4ca5b97b94d37 Mon Sep 17 00:00:00 2001
From: Joe Darcy
Date: Thu, 30 Jan 2014 09:15:13 -0800
Subject: [PATCH 118/181] 8033221: Fix serial lint warnings in sun.swing.*
Reviewed-by: alexsch
---
.../sun/swing/AbstractFilterComboBoxModel.java | 3 ++-
.../share/classes/sun/swing/BakedArrayList.java | 3 ++-
jdk/src/share/classes/sun/swing/FilePane.java | 15 +++++++++++++--
.../classes/sun/swing/ImageIconUIResource.java | 3 ++-
.../classes/sun/swing/JLightweightFrame.java | 4 +++-
.../classes/sun/swing/PrintColorUIResource.java | 3 ++-
.../share/classes/sun/swing/PrintingStatus.java | 3 ++-
.../share/classes/sun/swing/WindowsPlacesBar.java | 3 ++-
.../classes/sun/swing/icon/SortArrowIcon.java | 3 ++-
.../sun/swing/plaf/synth/SynthFileChooserUI.java | 4 +++-
.../swing/plaf/synth/SynthFileChooserUIImpl.java | 7 ++++++-
.../swing/plaf/windows/ClassicSortArrowIcon.java | 3 ++-
.../table/DefaultTableCellHeaderRenderer.java | 4 +++-
.../sun/swing/text/TextComponentPrintable.java | 3 ++-
14 files changed, 46 insertions(+), 15 deletions(-)
diff --git a/jdk/src/share/classes/sun/swing/AbstractFilterComboBoxModel.java b/jdk/src/share/classes/sun/swing/AbstractFilterComboBoxModel.java
index 355d3ca89db..fb7c9d100b2 100644
--- a/jdk/src/share/classes/sun/swing/AbstractFilterComboBoxModel.java
+++ b/jdk/src/share/classes/sun/swing/AbstractFilterComboBoxModel.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -34,6 +34,7 @@ import java.beans.PropertyChangeListener;
/**
* Data model for a type-face selection combo-box.
*/
+@SuppressWarnings("serial") // JDK-implementation class
public abstract class AbstractFilterComboBoxModel
extends AbstractListModel
implements ComboBoxModel, PropertyChangeListener {
diff --git a/jdk/src/share/classes/sun/swing/BakedArrayList.java b/jdk/src/share/classes/sun/swing/BakedArrayList.java
index f689104b716..0d4670878db 100644
--- a/jdk/src/share/classes/sun/swing/BakedArrayList.java
+++ b/jdk/src/share/classes/sun/swing/BakedArrayList.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -43,6 +43,7 @@ import java.util.*;
*
* @author Scott Violet
*/
+@SuppressWarnings("serial") // JDK-implementation class
public class BakedArrayList extends ArrayList {
/**
* The cached hashCode.
diff --git a/jdk/src/share/classes/sun/swing/FilePane.java b/jdk/src/share/classes/sun/swing/FilePane.java
index 44aedab3d28..9b21815469d 100644
--- a/jdk/src/share/classes/sun/swing/FilePane.java
+++ b/jdk/src/share/classes/sun/swing/FilePane.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -58,6 +58,7 @@ import sun.awt.shell.*;
*
* @author Leif Samuelsson
*/
+@SuppressWarnings("serial") // JDK-implementation class
public class FilePane extends JPanel implements PropertyChangeListener {
// Constants for actions. These are used for the actions' ACTION_COMMAND_KEY
// and as keys in the action maps for FilePane and the corresponding UI classes
@@ -391,6 +392,7 @@ public class FilePane extends JPanel implements PropertyChangeListener {
firePropertyChange("viewType", oldValue, viewType);
}
+ @SuppressWarnings("serial") // JDK-implementation class
class ViewTypeAction extends AbstractAction {
private int viewType;
@@ -470,6 +472,7 @@ public class FilePane extends JPanel implements PropertyChangeListener {
*/
public Action[] getActions() {
if (actions == null) {
+ @SuppressWarnings("serial") // JDK-implementation class
class FilePaneAction extends AbstractAction {
FilePaneAction(String name) {
this(name, name);
@@ -577,6 +580,8 @@ public class FilePane extends JPanel implements PropertyChangeListener {
public JPanel createList() {
JPanel p = new JPanel(new BorderLayout());
final JFileChooser fileChooser = getFileChooser();
+
+ @SuppressWarnings("serial") // anonymous class
final JList list = new JList() {
public int getNextMatch(String prefix, int startIndex, Position.Bias bias) {
ListModel model = getModel();
@@ -651,6 +656,7 @@ public class FilePane extends JPanel implements PropertyChangeListener {
/**
* This model allows for sorting JList
*/
+ @SuppressWarnings("serial") // JDK-implementation class
private class SortableListModel extends AbstractListModel
implements TableModelListener, RowSorterListener {
@@ -684,6 +690,7 @@ public class FilePane extends JPanel implements PropertyChangeListener {
return detailsTableModel;
}
+ @SuppressWarnings("serial") // JDK-implementation class
class DetailsTableModel extends AbstractTableModel implements ListDataListener {
JFileChooser chooser;
BasicDirectoryModel directoryModel;
@@ -1003,6 +1010,7 @@ public class FilePane extends JPanel implements PropertyChangeListener {
return tableCellEditor;
}
+ @SuppressWarnings("serial") // JDK-implementation class
private class DetailsTableCellEditor extends DefaultCellEditor {
private final JTextField tf;
@@ -1025,7 +1033,7 @@ public class FilePane extends JPanel implements PropertyChangeListener {
}
}
-
+ @SuppressWarnings("serial") // JDK-implementation class
class DetailsTableCellRenderer extends DefaultTableCellRenderer {
JFileChooser chooser;
DateFormat df;
@@ -1129,6 +1137,7 @@ public class FilePane extends JPanel implements PropertyChangeListener {
JPanel p = new JPanel(new BorderLayout());
+ @SuppressWarnings("serial") // anonymous class
final JTable detailsTable = new JTable(getDetailsTableModel()) {
// Handle Escape key events here
protected boolean processKeyBinding(KeyStroke ks, KeyEvent e, int condition, boolean pressed) {
@@ -1447,6 +1456,7 @@ public class FilePane extends JPanel implements PropertyChangeListener {
protected Action newFolderAction;
+ @SuppressWarnings("serial") // anonymous class inside
public Action getNewFolderAction() {
if (!readOnly && newFolderAction == null) {
newFolderAction = new AbstractAction(newFolderActionLabelText) {
@@ -1479,6 +1489,7 @@ public class FilePane extends JPanel implements PropertyChangeListener {
return newFolderAction;
}
+ @SuppressWarnings("serial") // JDK-implementation class
protected class FileRenderer extends DefaultListCellRenderer {
public Component getListCellRendererComponent(JList list, Object value,
diff --git a/jdk/src/share/classes/sun/swing/ImageIconUIResource.java b/jdk/src/share/classes/sun/swing/ImageIconUIResource.java
index 75906cac6a6..6ecf32379eb 100644
--- a/jdk/src/share/classes/sun/swing/ImageIconUIResource.java
+++ b/jdk/src/share/classes/sun/swing/ImageIconUIResource.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -35,6 +35,7 @@ import java.awt.Image;
* @author Shannon Hickey
*
*/
+@SuppressWarnings("serial") // JDK-implementation class
public class ImageIconUIResource extends ImageIcon implements UIResource {
/**
diff --git a/jdk/src/share/classes/sun/swing/JLightweightFrame.java b/jdk/src/share/classes/sun/swing/JLightweightFrame.java
index dfba20fae2c..f94cdbc46ca 100644
--- a/jdk/src/share/classes/sun/swing/JLightweightFrame.java
+++ b/jdk/src/share/classes/sun/swing/JLightweightFrame.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -64,6 +64,7 @@ import sun.security.action.GetPropertyAction;
* @author Artem Ananiev
* @author Anton Tarasov
*/
+@SuppressWarnings("serial") // JDK-implementation class
public final class JLightweightFrame extends LightweightFrame implements RootPaneContainer {
private final JRootPane rootPane = new JRootPane();
@@ -209,6 +210,7 @@ public final class JLightweightFrame extends LightweightFrame implements RootPan
}
}
+ @SuppressWarnings("serial") // anonymous class inside
private void initInterior() {
contentPane = new JPanel() {
@Override
diff --git a/jdk/src/share/classes/sun/swing/PrintColorUIResource.java b/jdk/src/share/classes/sun/swing/PrintColorUIResource.java
index 93d6d18fc7e..9669be85465 100644
--- a/jdk/src/share/classes/sun/swing/PrintColorUIResource.java
+++ b/jdk/src/share/classes/sun/swing/PrintColorUIResource.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2004, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -36,6 +36,7 @@ import javax.swing.plaf.ColorUIResource;
* @author Shannon Hickey
*
*/
+@SuppressWarnings("serial") // JDK-implementation class
public class PrintColorUIResource extends ColorUIResource {
/** The color to use during printing */
diff --git a/jdk/src/share/classes/sun/swing/PrintingStatus.java b/jdk/src/share/classes/sun/swing/PrintingStatus.java
index d5b7aee900c..0dd01a4593b 100644
--- a/jdk/src/share/classes/sun/swing/PrintingStatus.java
+++ b/jdk/src/share/classes/sun/swing/PrintingStatus.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -62,6 +62,7 @@ public class PrintingStatus {
private final AtomicBoolean isAborted = new AtomicBoolean(false);
// the action that will abort printing
+ @SuppressWarnings("serial") // anonymous class
private final Action abortAction = new AbstractAction() {
public void actionPerformed(ActionEvent ae) {
if (!isAborted.get()) {
diff --git a/jdk/src/share/classes/sun/swing/WindowsPlacesBar.java b/jdk/src/share/classes/sun/swing/WindowsPlacesBar.java
index 8b033ca3e7f..994f70029ec 100644
--- a/jdk/src/share/classes/sun/swing/WindowsPlacesBar.java
+++ b/jdk/src/share/classes/sun/swing/WindowsPlacesBar.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -47,6 +47,7 @@ import sun.awt.OSInfo;
*
* @author Leif Samuelsson
*/
+@SuppressWarnings("serial") // JDK-implementation class
public class WindowsPlacesBar extends JToolBar
implements ActionListener, PropertyChangeListener {
JFileChooser fc;
diff --git a/jdk/src/share/classes/sun/swing/icon/SortArrowIcon.java b/jdk/src/share/classes/sun/swing/icon/SortArrowIcon.java
index 7aac1159910..54a0238640c 100644
--- a/jdk/src/share/classes/sun/swing/icon/SortArrowIcon.java
+++ b/jdk/src/share/classes/sun/swing/icon/SortArrowIcon.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -36,6 +36,7 @@ import javax.swing.plaf.UIResource;
* Sorting icon.
*
*/
+@SuppressWarnings("serial") // JDK-implementation class
public class SortArrowIcon implements Icon, UIResource, Serializable {
// Height of the arrow, the width is ARROW_HEIGHT
private static final int ARROW_HEIGHT = 5;
diff --git a/jdk/src/share/classes/sun/swing/plaf/synth/SynthFileChooserUI.java b/jdk/src/share/classes/sun/swing/plaf/synth/SynthFileChooserUI.java
index 085a9999dc3..1f93fa7fc24 100644
--- a/jdk/src/share/classes/sun/swing/plaf/synth/SynthFileChooserUI.java
+++ b/jdk/src/share/classes/sun/swing/plaf/synth/SynthFileChooserUI.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -303,6 +303,7 @@ public abstract class SynthFileChooserUI extends BasicFileChooserUI implements
/**
* Responds to a File Name completion request (e.g. Tab)
*/
+ @SuppressWarnings("serial") // JDK-implementation class
private class FileNameCompletionAction extends AbstractAction {
protected FileNameCompletionAction() {
super("fileNameCompletion");
@@ -538,6 +539,7 @@ public abstract class SynthFileChooserUI extends BasicFileChooserUI implements
public void clearIconCache() { }
// Copied as SynthBorder is package private in synth
+ @SuppressWarnings("serial") // JDK-implementation clas
private class UIBorder extends AbstractBorder implements UIResource {
private Insets _insets;
UIBorder(Insets insets) {
diff --git a/jdk/src/share/classes/sun/swing/plaf/synth/SynthFileChooserUIImpl.java b/jdk/src/share/classes/sun/swing/plaf/synth/SynthFileChooserUIImpl.java
index bd7c9b4371e..a933377d995 100644
--- a/jdk/src/share/classes/sun/swing/plaf/synth/SynthFileChooserUIImpl.java
+++ b/jdk/src/share/classes/sun/swing/plaf/synth/SynthFileChooserUIImpl.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -190,6 +190,7 @@ public class SynthFileChooserUIImpl extends SynthFileChooserUI {
readOnly = UIManager.getBoolean("FileChooser.readOnly");
}
+ @SuppressWarnings("serial") // anonymous classes inside
public void installComponents(JFileChooser fc) {
super.installComponents(fc);
@@ -734,6 +735,7 @@ public class SynthFileChooserUIImpl extends SynthFileChooserUI {
/**
* Data model for a type-face selection combo-box.
*/
+ @SuppressWarnings("serial") // JDK-implementation class
protected class DirectoryComboBoxModel extends AbstractListModel implements ComboBoxModel {
Vector directories = new Vector();
int[] depths = null;
@@ -863,6 +865,7 @@ public class SynthFileChooserUIImpl extends SynthFileChooserUI {
/**
* Acts when DirectoryComboBox has changed the selected item.
*/
+ @SuppressWarnings("serial") // JDK-implementation class
protected class DirectoryComboBoxAction extends AbstractAction {
protected DirectoryComboBoxAction() {
super("DirectoryComboBoxAction");
@@ -923,6 +926,7 @@ public class SynthFileChooserUIImpl extends SynthFileChooserUI {
/**
* Data model for a type-face selection combo-box.
*/
+ @SuppressWarnings("serial") // JDK-implementation class
protected class FilterComboBoxModel extends AbstractFilterComboBoxModel {
protected JFileChooser getFileChooser() {
return SynthFileChooserUIImpl.this.getFileChooser();
@@ -1012,6 +1016,7 @@ public class SynthFileChooserUIImpl extends SynthFileChooserUI {
}
}
+ @SuppressWarnings("serial") // JDK-implementation class
private class AlignedLabel extends JLabel {
private AlignedLabel[] group;
private int maxWidth = 0;
diff --git a/jdk/src/share/classes/sun/swing/plaf/windows/ClassicSortArrowIcon.java b/jdk/src/share/classes/sun/swing/plaf/windows/ClassicSortArrowIcon.java
index 3931ef8135c..6430a71f06e 100644
--- a/jdk/src/share/classes/sun/swing/plaf/windows/ClassicSortArrowIcon.java
+++ b/jdk/src/share/classes/sun/swing/plaf/windows/ClassicSortArrowIcon.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -36,6 +36,7 @@ import javax.swing.plaf.UIResource;
* Classic sort icons.
*
*/
+@SuppressWarnings("serial") // JDK-implementation class
public class ClassicSortArrowIcon implements Icon, UIResource, Serializable{
private static final int X_OFFSET = 9;
private boolean ascending;
diff --git a/jdk/src/share/classes/sun/swing/table/DefaultTableCellHeaderRenderer.java b/jdk/src/share/classes/sun/swing/table/DefaultTableCellHeaderRenderer.java
index 68aada7d758..8aa945d166e 100644
--- a/jdk/src/share/classes/sun/swing/table/DefaultTableCellHeaderRenderer.java
+++ b/jdk/src/share/classes/sun/swing/table/DefaultTableCellHeaderRenderer.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -39,6 +39,7 @@ import javax.swing.plaf.UIResource;
import javax.swing.border.Border;
import javax.swing.table.*;
+@SuppressWarnings("serial") // JDK-implementation class
public class DefaultTableCellHeaderRenderer extends DefaultTableCellRenderer
implements UIResource {
private boolean horizontalTextPositionSet;
@@ -187,6 +188,7 @@ public class DefaultTableCellHeaderRenderer extends DefaultTableCellRenderer
return new Point(x, y);
}
+ @SuppressWarnings("serial") // JDK-implementation class
private class EmptyIcon implements Icon, Serializable {
int width = 0;
int height = 0;
diff --git a/jdk/src/share/classes/sun/swing/text/TextComponentPrintable.java b/jdk/src/share/classes/sun/swing/text/TextComponentPrintable.java
index bf4d3f59b31..63d3c5890dd 100644
--- a/jdk/src/share/classes/sun/swing/text/TextComponentPrintable.java
+++ b/jdk/src/share/classes/sun/swing/text/TextComponentPrintable.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -324,6 +324,7 @@ public class TextComponentPrintable implements CountingPrintable {
}
}
}
+ @SuppressWarnings("serial") // anonymous class inside
private JTextComponent createPrintShellOnEDT(final JTextComponent textComponent) {
assert SwingUtilities.isEventDispatchThread();
From 4399edf7b26d2e2a04998b584780ebfa5b726001 Mon Sep 17 00:00:00 2001
From: Stuart Marks
Date: Thu, 30 Jan 2014 15:12:38 -0800
Subject: [PATCH 119/181] 8023541: Race condition in rmid initialization
Reviewed-by: alanb, dfuchs, dholmes, plevart, psandoz, tyan
---
.../classes/sun/rmi/server/Activation.java | 40 +++++++++++++++++--
1 file changed, 36 insertions(+), 4 deletions(-)
diff --git a/jdk/src/share/classes/sun/rmi/server/Activation.java b/jdk/src/share/classes/sun/rmi/server/Activation.java
index 3098bb0562c..1cd509f2c0e 100644
--- a/jdk/src/share/classes/sun/rmi/server/Activation.java
+++ b/jdk/src/share/classes/sun/rmi/server/Activation.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -299,7 +299,7 @@ public class Activation implements Serializable {
private static final String NAME = ActivationSystem.class.getName();
private static final long serialVersionUID = 4877330021609408794L;
- private final ActivationSystem systemStub;
+ private ActivationSystem systemStub = null;
SystemRegistryImpl(int port,
RMIClientSocketFactory csf,
@@ -308,7 +308,39 @@ public class Activation implements Serializable {
throws RemoteException
{
super(port, csf, ssf);
- this.systemStub = systemStub;
+ assert systemStub != null;
+ synchronized (this) {
+ this.systemStub = systemStub;
+ notifyAll();
+ }
+ }
+
+ /**
+ * Waits for systemStub to be initialized and returns its
+ * initialized value. Any remote call that uses systemStub must
+ * call this method to get it instead of using direct field
+ * access. This is necessary because the super() call in the
+ * constructor exports this object before systemStub is initialized
+ * (see JDK-8023541), allowing remote calls to come in during this
+ * time. We can't use checkShutdown() like other nested classes
+ * because this is a static class.
+ */
+ private synchronized ActivationSystem getSystemStub() {
+ boolean interrupted = false;
+
+ while (systemStub == null) {
+ try {
+ wait();
+ } catch (InterruptedException ie) {
+ interrupted = true;
+ }
+ }
+
+ if (interrupted) {
+ Thread.currentThread().interrupt();
+ }
+
+ return systemStub;
}
/**
@@ -321,7 +353,7 @@ public class Activation implements Serializable {
throws RemoteException, NotBoundException
{
if (name.equals(NAME)) {
- return systemStub;
+ return getSystemStub();
} else {
return super.lookup(name);
}
From 5569aab6865e74ba34e735f12598a7a5798bebe1 Mon Sep 17 00:00:00 2001
From: Andrey Nazarov
Date: Fri, 31 Jan 2014 11:56:47 +0100
Subject: [PATCH 120/181] 8032025: Update repeating annotations demo
Reviewed-by: jfranck
---
.../PluginChecker/src/checker/Device.java | 66 ++++++++
.../PluginChecker/src/checker/Kettle.xml | 57 +++++++
.../PluginChecker/src/checker/Module.java | 49 ++++++
.../src/checker/PluginChecker.java | 145 ++++++++++++++++++
.../PluginChecker/src/checker/Require.java | 81 ++++++++++
.../src/checker/RequireContainer.java | 51 ++++++
.../Plugins/src/plugins/BoilerPlugin.java | 83 ++++++++++
.../src/plugins/ExtendedBoilerPlugin.java | 75 +++++++++
.../Plugins/src/plugins/TimerPlugin.java | 71 +++++++++
.../src/PositiveIntegerSupplier.java | 59 +++++++
.../Validator/src/SupplierValidator.java | 66 ++++++++
.../annotations/Validator/src/Validate.java | 74 +++++++++
.../annotations/Validator/src/Validator.java | 99 ++++++++++++
jdk/src/share/sample/annotations/index.html | 67 ++++++++
14 files changed, 1043 insertions(+)
create mode 100644 jdk/src/share/sample/annotations/DependencyChecker/PluginChecker/src/checker/Device.java
create mode 100644 jdk/src/share/sample/annotations/DependencyChecker/PluginChecker/src/checker/Kettle.xml
create mode 100644 jdk/src/share/sample/annotations/DependencyChecker/PluginChecker/src/checker/Module.java
create mode 100644 jdk/src/share/sample/annotations/DependencyChecker/PluginChecker/src/checker/PluginChecker.java
create mode 100644 jdk/src/share/sample/annotations/DependencyChecker/PluginChecker/src/checker/Require.java
create mode 100644 jdk/src/share/sample/annotations/DependencyChecker/PluginChecker/src/checker/RequireContainer.java
create mode 100644 jdk/src/share/sample/annotations/DependencyChecker/Plugins/src/plugins/BoilerPlugin.java
create mode 100644 jdk/src/share/sample/annotations/DependencyChecker/Plugins/src/plugins/ExtendedBoilerPlugin.java
create mode 100644 jdk/src/share/sample/annotations/DependencyChecker/Plugins/src/plugins/TimerPlugin.java
create mode 100644 jdk/src/share/sample/annotations/Validator/src/PositiveIntegerSupplier.java
create mode 100644 jdk/src/share/sample/annotations/Validator/src/SupplierValidator.java
create mode 100644 jdk/src/share/sample/annotations/Validator/src/Validate.java
create mode 100644 jdk/src/share/sample/annotations/Validator/src/Validator.java
create mode 100644 jdk/src/share/sample/annotations/index.html
diff --git a/jdk/src/share/sample/annotations/DependencyChecker/PluginChecker/src/checker/Device.java b/jdk/src/share/sample/annotations/DependencyChecker/PluginChecker/src/checker/Device.java
new file mode 100644
index 00000000000..f4fd2c50a05
--- /dev/null
+++ b/jdk/src/share/sample/annotations/DependencyChecker/PluginChecker/src/checker/Device.java
@@ -0,0 +1,66 @@
+package checker;
+
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * - Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * - Neither the name of Oracle nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import java.util.Collections;
+import java.util.EnumMap;
+import java.util.Map;
+
+/**
+ * Represents the device configuration. The values are loaded from an XML file by JAXB.
+ */
+@XmlRootElement
+public class Device {
+
+ @XmlElement()
+ private Map supportedModules = new EnumMap<>(Module.class);
+
+ /**
+ * Returns map of supported modules. The map key is module. The map value is version.
+ *
+ * @return map of supported modules.
+ */
+ public Map getSupportedModules() {
+ return Collections.unmodifiableMap(supportedModules);
+ }
+}
diff --git a/jdk/src/share/sample/annotations/DependencyChecker/PluginChecker/src/checker/Kettle.xml b/jdk/src/share/sample/annotations/DependencyChecker/PluginChecker/src/checker/Kettle.xml
new file mode 100644
index 00000000000..2e0357d2f46
--- /dev/null
+++ b/jdk/src/share/sample/annotations/DependencyChecker/PluginChecker/src/checker/Kettle.xml
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+ DISPLAY
+ 2
+
+
+ THERMOMETER
+ 1
+
+
+ CLOCK
+ 4
+
+
+
\ No newline at end of file
diff --git a/jdk/src/share/sample/annotations/DependencyChecker/PluginChecker/src/checker/Module.java b/jdk/src/share/sample/annotations/DependencyChecker/PluginChecker/src/checker/Module.java
new file mode 100644
index 00000000000..2b97b4e832d
--- /dev/null
+++ b/jdk/src/share/sample/annotations/DependencyChecker/PluginChecker/src/checker/Module.java
@@ -0,0 +1,49 @@
+package checker;
+
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * - Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * - Neither the name of Oracle nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+
+
+/**
+ * Represents available modules.
+ */
+public enum Module {
+
+ DISPLAY, CLOCK, THERMOMETER, HEATER, SPEAKER, GSM, LED;
+}
diff --git a/jdk/src/share/sample/annotations/DependencyChecker/PluginChecker/src/checker/PluginChecker.java b/jdk/src/share/sample/annotations/DependencyChecker/PluginChecker/src/checker/PluginChecker.java
new file mode 100644
index 00000000000..6db5bae4141
--- /dev/null
+++ b/jdk/src/share/sample/annotations/DependencyChecker/PluginChecker/src/checker/PluginChecker.java
@@ -0,0 +1,145 @@
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * - Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * - Neither the name of Oracle nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+package checker;
+
+import javax.annotation.processing.ProcessingEnvironment;
+import javax.annotation.processing.RoundEnvironment;
+import javax.annotation.processing.SupportedAnnotationTypes;
+import javax.annotation.processing.SupportedSourceVersion;
+import javax.lang.model.SourceVersion;
+import javax.lang.model.element.Element;
+import javax.lang.model.element.TypeElement;
+import javax.tools.Diagnostic;
+import javax.xml.bind.JAXBContext;
+import java.io.File;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+
+import javax.xml.bind.JAXBException;
+
+/**
+ * Reads the device configuration from the XML file specified by -Adevice=device.xml.
+ * For each class in a project, checks required modules. If the device doesn't have
+ * the required module, then a compilation error will be shown.
+ */
+@SupportedAnnotationTypes("checker.RequireContainer")
+@SupportedSourceVersion(SourceVersion.RELEASE_8)
+public class PluginChecker extends javax.annotation.processing.AbstractProcessor {
+
+ /**
+ * Name of the option to get the path to the xml with device configuration.
+ */
+ public static final String DEVICE_OPTION = "device";
+ private Device device;
+
+ /**
+ * Only the device option is supported.
+ *
+ * {@inheritDoc}
+ */
+ @Override
+ public Set getSupportedOptions() {
+ return new HashSet<>(Arrays.asList(DEVICE_OPTION));
+ }
+
+ /**
+ * Initializes the processor by loading the device configuration.
+ *
+ * {@inheritDoc}
+ */
+ @Override
+ public synchronized void init(ProcessingEnvironment processingEnv) {
+ super.init(processingEnv);
+ try {
+ String deviceOption = processingEnv.getOptions().get(DEVICE_OPTION);
+ device = (Device) JAXBContext.newInstance(Device.class)
+ .createUnmarshaller().unmarshal(new File(deviceOption));
+ } catch (JAXBException e) {
+ throw new RuntimeException(
+ "Please specify device by -Adevice=device.xml\n"
+ + e.toString(), e);
+ }
+ }
+
+ /**
+ * Processes @Require annotations and checks that Device meets requirements.
+ *
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean process(Set extends TypeElement> annotations,
+ RoundEnvironment roundEnv) {
+ for (Element el : roundEnv.getElementsAnnotatedWith(RequireContainer.class)) {
+ for (Require req : el.getAnnotationsByType(Require.class)) {
+ //for every Require annotation checks if device has module of required version.
+ Integer version = device.getSupportedModules().get(req.value());
+
+ if (version == null
+ || version < req.minVersion()
+ || version > req.maxVersion()) {
+ //if module is optional then show only warning not error
+ if (req.optional()) {
+ processingEnv.getMessager()
+ .printMessage(Diagnostic.Kind.WARNING,
+ "Plugin [" + el + "] requires " + req
+ + "\n but device " + (version == null
+ ? "doesn't have such module."
+ + " This module is optional."
+ + " So plugin will work but miss"
+ + " some functionality"
+ : "has " + version
+ + " version of that module"));
+ } else {
+ processingEnv.getMessager()
+ .printMessage(Diagnostic.Kind.ERROR,
+ "Plugin [" + el + "] requires " + req
+ + "\n but device "
+ + (version == null
+ ? "doesn't have such module"
+ : "has " + version
+ + " version of that module"));
+ }
+ }
+ }
+ return true;
+ }
+ return false;
+ }
+}
diff --git a/jdk/src/share/sample/annotations/DependencyChecker/PluginChecker/src/checker/Require.java b/jdk/src/share/sample/annotations/DependencyChecker/PluginChecker/src/checker/Require.java
new file mode 100644
index 00000000000..6681c2810e2
--- /dev/null
+++ b/jdk/src/share/sample/annotations/DependencyChecker/PluginChecker/src/checker/Require.java
@@ -0,0 +1,81 @@
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * - Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * - Neither the name of Oracle nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+package checker;
+
+import java.lang.annotation.Repeatable;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+/**
+ * Indicates that a plug-in depends on a module.
+ */
+@Retention(RetentionPolicy.CLASS)
+@Repeatable(RequireContainer.class)
+public @interface Require {
+
+ /**
+ * Returns the required module.
+ *
+ * @return required module.
+ */
+ Module value();
+
+ /**
+ * Returns the minimum supported version of a module.
+ *
+ * @return minimum supported version of a module.
+ */
+ int minVersion() default 1;
+
+ /**
+ * Returns the maximum supported version of a module.
+ *
+ * @return maximum supported version of a module.
+ */
+ int maxVersion() default Integer.MAX_VALUE;
+
+ /**
+ * Returns true if a module is optional. A module is optional if a system
+ * works without that module but is missing some functionality. Returns false if a system
+ * won't work without the specified module.
+ *
+ * @return true if module is optional. False otherwise.
+ */
+ boolean optional() default false;
+}
diff --git a/jdk/src/share/sample/annotations/DependencyChecker/PluginChecker/src/checker/RequireContainer.java b/jdk/src/share/sample/annotations/DependencyChecker/PluginChecker/src/checker/RequireContainer.java
new file mode 100644
index 00000000000..d18e0d523c0
--- /dev/null
+++ b/jdk/src/share/sample/annotations/DependencyChecker/PluginChecker/src/checker/RequireContainer.java
@@ -0,0 +1,51 @@
+package checker;
+
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * - Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * - Neither the name of Oracle nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+/**
+ * A container for the repeatable @Require annotation.
+ */
+@Retention(RetentionPolicy.CLASS)
+public @interface RequireContainer {
+
+ Require[] value();
+}
diff --git a/jdk/src/share/sample/annotations/DependencyChecker/Plugins/src/plugins/BoilerPlugin.java b/jdk/src/share/sample/annotations/DependencyChecker/Plugins/src/plugins/BoilerPlugin.java
new file mode 100644
index 00000000000..3a9d842e5b0
--- /dev/null
+++ b/jdk/src/share/sample/annotations/DependencyChecker/Plugins/src/plugins/BoilerPlugin.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * - Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * - Neither the name of Oracle nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+package plugins;
+
+import checker.Module;
+import checker.Require;
+
+/**
+ * BoilerPlugin provides support for boiling water and keeping water warm.
+ */
+@Require(value = Module.CLOCK, maxVersion = 3)
+@Require(value = Module.THERMOMETER)
+@Require(value = Module.HEATER)
+@Require(value = Module.LED, optional = true) //will use if present
+public class BoilerPlugin {
+
+ /**
+ * Heats water up to 100 degrees Celsius.
+ */
+ public void boil() {
+ boil(100);
+ }
+
+ /**
+ * Heats water up to temperature.
+ *
+ * @param temperature - desired temperature of the water in the boiler
+ */
+ public void boil(int temperature) {
+ /*
+ * Turn on heater and wait while temperature reaches desired temperature
+ * in Celsius. Finally, turn off heater.
+ * If present, the LED light changes color according to the temperature.
+ */
+ }
+
+ /**
+ * Keeps desired temperature.
+ *
+ * @param temperature - desired temperature of the water in the boiler
+ * @param seconds - period of time for checking temperature in seconds
+ */
+ public void keepWarm(int temperature, int seconds) {
+ //Every n seconds check temperature and warm up, if necessary.
+ }
+
+}
diff --git a/jdk/src/share/sample/annotations/DependencyChecker/Plugins/src/plugins/ExtendedBoilerPlugin.java b/jdk/src/share/sample/annotations/DependencyChecker/Plugins/src/plugins/ExtendedBoilerPlugin.java
new file mode 100644
index 00000000000..b7be61025a0
--- /dev/null
+++ b/jdk/src/share/sample/annotations/DependencyChecker/Plugins/src/plugins/ExtendedBoilerPlugin.java
@@ -0,0 +1,75 @@
+/*
+ * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * - Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * - Neither the name of Oracle nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+package plugins;
+
+import checker.Module;
+import checker.Require;
+import java.util.Calendar;
+
+/**
+ * Introduces new features for BoilerPlugin. Features are boiling water by an
+ * SMS and boiling water by date with notification by a phone call.
+ */
+@Require(value = Module.SPEAKER)
+@Require(value = Module.GSM, minVersion = 3)
+@Require(value = Module.DISPLAY)
+public class ExtendedBoilerPlugin extends BoilerPlugin {
+
+ /**
+ * Boils water at the appointed time and wakes you up by a ring and phone
+ * call. Shows "Good morning" and a quote of the day from the Internet on the
+ * display.
+ *
+ * @param calendar - date and time when water should be boiled
+ * @param phoneNumber - phone number to call
+ */
+ public void boilAndWakeUp(Calendar calendar, int phoneNumber) {
+ //implementation
+ }
+
+ /**
+ * Boils water at the appointed time by getting an SMS of fixed format.
+ * Sends an SMS on finish.
+ *
+ * @param sms - text of SMS
+ */
+ public void boilBySMS(String sms) {
+ //implementation
+ }
+}
diff --git a/jdk/src/share/sample/annotations/DependencyChecker/Plugins/src/plugins/TimerPlugin.java b/jdk/src/share/sample/annotations/DependencyChecker/Plugins/src/plugins/TimerPlugin.java
new file mode 100644
index 00000000000..678785c5cf4
--- /dev/null
+++ b/jdk/src/share/sample/annotations/DependencyChecker/Plugins/src/plugins/TimerPlugin.java
@@ -0,0 +1,71 @@
+/*
+ * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * - Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * - Neither the name of Oracle nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+package plugins;
+
+import checker.Module;
+import checker.Require;
+
+/**
+ * Timer plug-in is used to support an alarm and a timer. It depends on Display and
+ * Clock modules.
+ */
+@Require(Module.DISPLAY)
+@Require(value = Module.CLOCK, maxVersion = 3)
+public class TimerPlugin {
+
+ /**
+ * Sets timer.
+ *
+ * @param time - the remaining time.
+ */
+ public void timer(long time) {
+ //start timer
+ //show the remaining time on display
+ }
+
+ /**
+ * Sets alarm.
+ *
+ * @param time - the alarm time.
+ */
+ public void alarm(long time) {
+ //start alarm
+ //show current time and alarm time on display
+ }
+}
diff --git a/jdk/src/share/sample/annotations/Validator/src/PositiveIntegerSupplier.java b/jdk/src/share/sample/annotations/Validator/src/PositiveIntegerSupplier.java
new file mode 100644
index 00000000000..0a149139b53
--- /dev/null
+++ b/jdk/src/share/sample/annotations/Validator/src/PositiveIntegerSupplier.java
@@ -0,0 +1,59 @@
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * - Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * - Neither the name of Oracle nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+import java.util.function.Supplier;
+
+/**
+ * Supplies a positive number.
+ */
+@Validate(value = Validator.INTEGER_NUMBER,
+ description = "It's not an Integer ")
+@Validate(value = Validator.POSITIVE_NUMBER,
+ description = "It's not a positive Number")
+public class PositiveIntegerSupplier implements Supplier {
+
+ /**
+ * Returns a string representation of a positive integer.
+ *
+ * @return string representation of a positive integer.
+ */
+ @Override
+ public String get() {
+ return "20005"; //random number
+ }
+}
diff --git a/jdk/src/share/sample/annotations/Validator/src/SupplierValidator.java b/jdk/src/share/sample/annotations/Validator/src/SupplierValidator.java
new file mode 100644
index 00000000000..479ac8643e1
--- /dev/null
+++ b/jdk/src/share/sample/annotations/Validator/src/SupplierValidator.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * - Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * - Neither the name of Oracle nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+import javax.xml.bind.ValidationException;
+import java.util.function.Supplier;
+
+/**
+ * Validates the supplier.
+ */
+public class SupplierValidator {
+
+ /**
+ * Validates the supplier.
+ *
+ * @param supplier - Supplier that needs to be validated.
+ * @return true if supplier has passed validation check. False otherwise.
+ */
+ public static boolean validate(Supplier> supplier) {
+ for (Validate annotation
+ : supplier.getClass().getAnnotationsByType(Validate.class)) {
+ try {
+ annotation.value().validate(supplier);
+ } catch (ValidationException e) {
+ System.out.println(annotation.description());
+ e.printStackTrace();
+ return false;
+ }
+ }
+ return true;
+ }
+}
diff --git a/jdk/src/share/sample/annotations/Validator/src/Validate.java b/jdk/src/share/sample/annotations/Validator/src/Validate.java
new file mode 100644
index 00000000000..e0404ea9471
--- /dev/null
+++ b/jdk/src/share/sample/annotations/Validator/src/Validate.java
@@ -0,0 +1,74 @@
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * - Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * - Neither the name of Oracle nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+import java.lang.annotation.Repeatable;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+/**
+ * Indicates that the class should be validated by the specified validator.
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Repeatable(ValidateContainer.class)
+public @interface Validate {
+
+ /**
+ * Returns the validator that should validate the annotated class.
+ *
+ * @return Validator that should validate annotated class.
+ */
+ Validator value();
+
+ /**
+ * Returns text to describe the failure of the validation check.
+ *
+ * @return text to describe the failure of the validation check.
+ */
+ String description() default "";
+}
+
+/**
+ * A container for the repeatable @Validate annotation.
+ *
+ * @author Andrey Nazarov
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@interface ValidateContainer {
+
+ Validate[] value();
+}
diff --git a/jdk/src/share/sample/annotations/Validator/src/Validator.java b/jdk/src/share/sample/annotations/Validator/src/Validator.java
new file mode 100644
index 00000000000..9e074f5a8e5
--- /dev/null
+++ b/jdk/src/share/sample/annotations/Validator/src/Validator.java
@@ -0,0 +1,99 @@
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * - Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * - Neither the name of Oracle nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation and proper error handling, might not be present in
+ * this sample code.
+ */
+import javax.xml.bind.ValidationException;
+import java.util.function.Supplier;
+
+/**
+ * Enum of Validator implementations.
+ */
+public enum Validator {
+
+ /**
+ * This validator checks that the string represents an integer.
+ */
+ INTEGER_NUMBER {
+ /**
+ * Checks that the string represents an integer.
+ *
+ * @param string - a string supplier
+ * @throws ValidationException if the validation check fails
+ */
+ @Override
+ void validate(Supplier> string) throws ValidationException {
+ try {
+ Integer.parseInt((String) string.get());
+ } catch (NumberFormatException ex) {
+ throw new ValidationException("Error while validating "
+ + string.get());
+ }
+ }
+ },
+ /**
+ * This validator checks that the string represents a positive number.
+ */
+ POSITIVE_NUMBER {
+ /**
+ * Checks that the string represents a positive number.
+ *
+ * @param string - an string supplier
+ * @throws ValidationException if the validation check fails
+ */
+ @Override
+ void validate(Supplier> string) throws ValidationException {
+ try {
+ if (Double.compare(0.0, Double.parseDouble(
+ (String) string.get())) > 0) {
+ throw new Exception();
+ }
+ } catch (Exception ex) {
+ throw new ValidationException("Error while validating "
+ + string.get());
+ }
+ }
+ };
+
+ /**
+ * Checks that the supplier is valid.
+ *
+ * @param string - a string supplier
+ * @throws ValidationException if validation check fails
+ */
+ abstract void validate(Supplier> string) throws ValidationException;
+
+}
diff --git a/jdk/src/share/sample/annotations/index.html b/jdk/src/share/sample/annotations/index.html
new file mode 100644
index 00000000000..804c83df441
--- /dev/null
+++ b/jdk/src/share/sample/annotations/index.html
@@ -0,0 +1,67 @@
+
+
+
+ Repeating Annotations Demo
+
+
+Repeating Annotations Demo
+
+
+ This demo shows how to use repeating annotations at runtime and at compile time.
+
+
+
+ Dependency checker.
+
+
+ Shows how to define repeating annotations and process them at compile time.
+ The problem domain is some code that performs useful operations on hardware devices.
+ The code relies on "modules" to be present on the devices. Applicability of the code to a particular
+ device is checked while compiling the code for a particular device.
+ A set of modules provided by a device is listed in an xml file that turns red during the compilation
+ phase and is compared with the required module set specified by annotations.
+ For instance, there is kettle with hardware modules: thermometer, display, and clock.
+ There is also a boiler plug-in that requires clock, thermometer, heater, and optionally an LED light.
+
+ Build the PluginChecker annotation processor first.
+ Then, run javac with the annotation processor against plug-in sources using the following command:
+
+ javac -cp "PluginChecker.jar" -processor checker.PluginChecker -Adevice=Kettle.xml -proc:only <source
+ files>
+
+
+ where PluginChecker.jar
- path to jar file that contains PluginChecker annotation processor
+ class.
+ Kettle.xml
- path to device descriptor Kettle.xml
+ <source files>
- source files in Plugins/src
+
+ For more information, see the source files.
+
+
+
+ Validator.
+
+
+ Shows how to define repeating annotations and process them at runtime.
+ A problem domain is code that needs to validate provided Suppliers for conformance to some criteria.
+ The criteria are implemented by the Validator class which is applied by using annotations that are placed in
+ the code whenever validation is needed. For more information, see the
+ source files.
+
+
+
+
+
+ Sources: Validator/src/
+
+
+
\ No newline at end of file
From 7bdf4708b27ba1b8634de6554b8005073a470c40 Mon Sep 17 00:00:00 2001
From: Andrey Nazarov
Date: Fri, 31 Jan 2014 11:57:12 +0100
Subject: [PATCH 121/181] 8031650: Update bulk operation demo
Reviewed-by: psandoz, mduigou
---
.../lambda/BulkDataOperations/index.html | 49 +++
.../BulkDataOperations/src/CSVProcessor.java | 368 ++++++++++++++++++
.../lambda/BulkDataOperations/src/Grep.java | 185 +++++++++
.../src/PasswordGenerator.java | 113 ++++++
.../lambda/BulkDataOperations/src/WC.java | 217 +++++++++++
5 files changed, 932 insertions(+)
create mode 100644 jdk/src/share/sample/lambda/BulkDataOperations/index.html
create mode 100644 jdk/src/share/sample/lambda/BulkDataOperations/src/CSVProcessor.java
create mode 100644 jdk/src/share/sample/lambda/BulkDataOperations/src/Grep.java
create mode 100644 jdk/src/share/sample/lambda/BulkDataOperations/src/PasswordGenerator.java
create mode 100644 jdk/src/share/sample/lambda/BulkDataOperations/src/WC.java
diff --git a/jdk/src/share/sample/lambda/BulkDataOperations/index.html b/jdk/src/share/sample/lambda/BulkDataOperations/index.html
new file mode 100644
index 00000000000..5a16695f21d
--- /dev/null
+++ b/jdk/src/share/sample/lambda/BulkDataOperations/index.html
@@ -0,0 +1,49 @@
+
+
+
+ Bulk Data Operations Demo
+
+
+Bulk Data Operations Demo
+
+
+ This demo shows how to use bulk data operations with the new JDK8
+ Collections API.
+ The demo also demonstrates new features of JDK8 such as lambda expressions
+ and method/constructor references.
+
+
+
+ CSV Processor
+
+
+ Analyzes a CSV file, finds and collects useful information, computes
+ different statistics. For more information, see the source file.
+
+ Source: src/CSVProcessor.java
+ Grep
+
+
+ Behaves like the standard Linux tool Grep. For more information, see
+ the source file.
+
+ Source: src/Grep.java
+ PasswordGenerator
+
+
+ Produces a password of desired length. For more information see
+ source file.
+
+ Source: src/PasswordGenerator.java
+ WC
+
+
+ Counts newlines, words, characters, and the maximum line length of a
+ text file. For more information, see the source
+ file.
+
+ Source: src/WC.java
+
+
+
\ No newline at end of file
diff --git a/jdk/src/share/sample/lambda/BulkDataOperations/src/CSVProcessor.java b/jdk/src/share/sample/lambda/BulkDataOperations/src/CSVProcessor.java
new file mode 100644
index 00000000000..ded9030209d
--- /dev/null
+++ b/jdk/src/share/sample/lambda/BulkDataOperations/src/CSVProcessor.java
@@ -0,0 +1,368 @@
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * - Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * - Neither the name of Oracle nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation, and proper error handling, might not be present in
+ * this sample code.
+ */
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.*;
+import java.util.function.*;
+import java.util.regex.Pattern;
+import java.util.stream.Collector;
+import java.util.stream.Collectors;
+
+import static java.lang.Double.parseDouble;
+import static java.util.stream.Collectors.*;
+
+/**
+ * CSVProcessor is a tool for processing CSV files. There are several
+ * command-line options. Consult the {@link #printUsageAndExit} method for
+ * instructions and command line parameters. This sample shows examples of the
+ * following features:
+ *
+ * Lambda and bulk operations. Working with streams: map(...), filter(...),
+ * sorted(...) methods. The collect(...) method with different collectors:
+ * Collectors.maxBy(...), Collectors.minBy(...), Collectors.toList(),
+ * Collectors.toCollection(...), Collectors.groupingBy(...),
+ * Collectors.toDoubleSummaryStatistics(...), and a custom Collector.
+ * Static method reference for printing values.
+ * Try-with-resources feature for closing files.
+ * Switch by String feature.
+ * Other new APIs: Pattern.asPredicate(), BinaryOperator
+ * BufferedReader.lines(), Collection.forEach(...), Comparator.comparing(...),
+ * Comparator.reversed(), Arrays.stream(...).
+ *
+ *
+ */
+public class CSVProcessor {
+
+ //Number of characters that may be read
+ private static final int READ_AHEAD_LIMIT = 100_000_000;
+
+ /**
+ * The main method for the CSVProcessor program. Run the program with an
+ * empty argument list to see possible arguments.
+ *
+ * @param args the argument list for CSVProcessor.
+ */
+ public static void main(String[] args) {
+ if (args.length < 2) {
+ printUsageAndExit();
+ }
+ try (BufferedReader br = new BufferedReader(
+ Files.newBufferedReader(Paths.get(args[args.length - 1])))) {
+ //Assume that the first line contains column names.
+ List header = Arrays.stream(br.readLine().split(","))
+ .map(String::trim).collect(toList());
+ //Calculate an index of the column in question.
+ int column = getColumnNumber(header, args[1]);
+ switch (args[0]) {
+ case "sort":
+ verifyArgumentNumber(args, 4);
+ //Define the sort order.
+ boolean isAsc;
+ switch (args[2].toUpperCase()) {
+ case "ASC":
+ isAsc = true;
+ break;
+ case "DESC":
+ isAsc = false;
+ break;
+ default:
+ printUsageAndExit("Illegal argument" + args[2]);
+ return;//Should not be reached.
+ }
+ /*
+ * Create a comparator that compares lines by comparing
+ * values in the specified column.
+ */
+ Comparator cmp
+ = Comparator.comparing(str -> getCell(str, column),
+ String.CASE_INSENSITIVE_ORDER);
+ /*
+ * sorted(...) is used to sort records.
+ * forEach(...) is used to output sorted records.
+ */
+ br.lines().sorted(isAsc ? cmp : cmp.reversed())
+ .forEach(System.out::println);
+ break;
+ case "search":
+ verifyArgumentNumber(args, 4);
+ /*
+ * Records are filtered by a regex.
+ * forEach(...) is used to output filtered records.
+ */
+ Predicate pattern
+ = Pattern.compile(args[2]).asPredicate();
+ br.lines().filter(str -> pattern.test(getCell(str, column)))
+ .forEach(System.out::println);
+ break;
+ case "groupby":
+ verifyArgumentNumber(args, 3);
+ /*
+ * Group lines by values in the column with collect(...), and
+ * print with forEach(...) for every distinct value within
+ * the column.
+ */
+ br.lines().collect(
+ Collectors.groupingBy(str -> getCell(str, column),
+ toCollection(TreeSet::new)))
+ .forEach((str, set) -> {
+ System.out.println(str + ":");
+ set.forEach(System.out::println);
+ });
+ break;
+ case "stat":
+ verifyArgumentNumber(args, 3);
+
+ /*
+ * BufferedReader will be read several times.
+ * Mark this point to return here after each pass.
+ * BufferedReader will be read right after the headers line
+ * because it is already read.
+ */
+ br.mark(READ_AHEAD_LIMIT);
+
+ /*
+ * Statistics can be collected by a custom collector in one
+ * pass. One pass is preferable.
+ */
+ System.out.println(
+ br.lines().collect(new Statistics(column)));
+
+ /*
+ * Alternatively, statistics can be collected
+ * by a built-in API in several passes.
+ * This method demonstrates how separate operations can be
+ * implemented using a built-in API.
+ */
+ br.reset();
+ statInSeveralPasses(br, column);
+ break;
+ default:
+ printUsageAndExit("Illegal argument" + args[0]);
+ }
+ } catch (IOException e) {
+ printUsageAndExit(e.toString());
+ }
+ }
+
+ private static void statInSeveralPasses(BufferedReader br, int column)
+ throws IOException {
+ System.out.println("#-----Statistics in several passes-------#");
+ //Create a comparator to compare records by the column.
+ Comparator comparator
+ = Comparator.comparing(
+ (String str) -> parseDouble(getCell(str, column)));
+ //Find max record by using Collectors.maxBy(...)
+ System.out.println(
+ "Max: " + br.lines().collect(maxBy(comparator)).get());
+ br.reset();
+ //Find min record by using Collectors.minBy(...)
+ System.out.println(
+ "Min: " + br.lines().collect(minBy(comparator)).get());
+ br.reset();
+ //Compute the average value and sum with
+ //Collectors.toDoubleSummaryStatistics(...)
+ DoubleSummaryStatistics doubleSummaryStatistics
+ = br.lines().collect(summarizingDouble(
+ str -> parseDouble(getCell(str, column))));
+ System.out.println("Average: " + doubleSummaryStatistics.getAverage());
+ System.out.println("Sum: " + doubleSummaryStatistics.getSum());
+ }
+
+ private static void verifyArgumentNumber(String[] args, int n) {
+ if (args.length != n) {
+ printUsageAndExit("Expected " + n + " arguments but was "
+ + args.length);
+ }
+ }
+
+ private static int getColumnNumber(List header, String name) {
+ int column = header.indexOf(name);
+ if (column == -1) {
+ printUsageAndExit("There is no column with name " + name);
+ }
+ return column;
+ }
+
+ private static String getCell(String record, int column) {
+ return record.split(",")[column].trim();
+ }
+
+ private static void printUsageAndExit(String... str) {
+ System.out.println("Usages:");
+
+ System.out.println("CSVProcessor sort COLUMN_NAME ASC|DESC FILE");
+ System.out.println("Sort lines by column COLUMN_NAME in CSV FILE\n");
+
+ System.out.println("CSVProcessor search COLUMN_NAME REGEX FILE");
+ System.out.println("Search for REGEX in column COLUMN_NAME in CSV FILE\n");
+
+ System.out.println("CSVProcessor groupby COLUMN_NAME FILE");
+ System.out.println("Split lines into different groups according to column "
+ + "COLUMN_NAME value\n");
+
+ System.out.println("CSVProcessor stat COLUMN_NAME FILE");
+ System.out.println("Compute max/min/average/sum statistics by column "
+ + "COLUMN_NAME\n");
+
+ Arrays.asList(str).forEach(System.err::println);
+ System.exit(1);
+ }
+
+ /*
+ * This is a custom implementation of the Collector interface.
+ * Statistics are objects gather max,min,sum,average statistics.
+ */
+ private static class Statistics
+ implements Collector {
+
+
+ /*
+ * This implementation does not need to be thread safe because
+ * the parallel implementation of
+ * {@link java.util.stream.Stream#collect Stream.collect()}
+ * provides the necessary partitioning and isolation for safe parallel
+ * execution.
+ */
+ private String maxRecord;
+ private String minRecord;
+
+ private double sum;
+ private int lineCount;
+ private final BinaryOperator maxOperator;
+ private final BinaryOperator minOperator;
+ private final int column;
+
+ public Statistics(int column) {
+ this.column = column;
+ Comparator cmp = Comparator.comparing(
+ (String str) -> parseDouble(getCell(str, column)));
+ maxOperator = BinaryOperator.maxBy(cmp);
+ minOperator = BinaryOperator.minBy(cmp);
+ }
+
+ /*
+ * Process line.
+ */
+ public Statistics accept(String line) {
+ maxRecord = maxRecord == null
+ ? line : maxOperator.apply(maxRecord, line);
+ minRecord = minRecord == null
+ ? line : minOperator.apply(minRecord, line);
+
+ sum += parseDouble(getCell(line, column));
+ lineCount++;
+ return this;
+ }
+
+
+ /*
+ * Merge two Statistics.
+ */
+ public Statistics combine(Statistics stat) {
+ maxRecord = maxOperator.apply(maxRecord, stat.getMaxRecord());
+ minRecord = minOperator.apply(minRecord, stat.getMinRecord());
+ sum += stat.getSum();
+ lineCount += stat.getLineCount();
+ return this;
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("#------Statistics------#\n");
+ sb.append("Max: ").append(getMaxRecord()).append("\n");
+ sb.append("Min: ").append(getMinRecord()).append("\n");
+ sb.append("Sum = ").append(getSum()).append("\n");
+ sb.append("Average = ").append(average()).append("\n");
+ sb.append("#------Statistics------#\n");
+ return sb.toString();
+ }
+
+ @Override
+ public Supplier supplier() {
+ return () -> new Statistics(column);
+ }
+
+ @Override
+ public BiConsumer accumulator() {
+ return Statistics::accept;
+ }
+
+ @Override
+ public BinaryOperator combiner() {
+ return Statistics::combine;
+
+ }
+
+ @Override
+ public Function finisher() {
+ return stat -> stat;
+ }
+
+ @Override
+ public Set characteristics() {
+ return EnumSet.of(Characteristics.IDENTITY_FINISH);
+ }
+
+ private String getMaxRecord() {
+ return maxRecord;
+ }
+
+ private String getMinRecord() {
+ return minRecord;
+ }
+
+ private double getSum() {
+ return sum;
+ }
+
+ private double average() {
+ return sum / lineCount;
+ }
+
+ private int getLineCount() {
+ return lineCount;
+ }
+
+ }
+
+}
diff --git a/jdk/src/share/sample/lambda/BulkDataOperations/src/Grep.java b/jdk/src/share/sample/lambda/BulkDataOperations/src/Grep.java
new file mode 100644
index 00000000000..cb4bdf765cb
--- /dev/null
+++ b/jdk/src/share/sample/lambda/BulkDataOperations/src/Grep.java
@@ -0,0 +1,185 @@
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * - Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * - Neither the name of Oracle nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation, and proper error handling, might not be present in
+ * this sample code.
+ */
+
+import java.io.IOException;
+import java.io.UncheckedIOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.Arrays;
+import java.util.List;
+import java.util.regex.Pattern;
+import java.util.stream.Stream;
+
+import static java.util.stream.Collectors.toList;
+
+/**
+ * Grep prints lines matching a regex. See {@link #printUsageAndExit(String...)}
+ * method for instructions and command line parameters. This sample shows
+ * examples of using next features:
+ *
+ * Lambda and bulk operations. Working with streams:
+ * map(...),filter(...),flatMap(...),limit(...) methods.
+ * Static method reference for printing values.
+ * New Collections API forEach(...) method.
+ * Try-with-resources feature.
+ * new Files.walk(...), Files.lines(...) API.
+ * Streams that need to be closed.
+ *
+ *
+ */
+public class Grep {
+
+ private static void printUsageAndExit(String... str) {
+ System.out.println("Usage: " + Grep.class.getSimpleName()
+ + " [OPTION]... PATTERN FILE...");
+ System.out.println("Search for PATTERN in each FILE. "
+ + "If FILE is a directory then whole file tree of the directory"
+ + " will be processed.");
+ System.out.println("Example: grep -m 100 'hello world' menu.h main.c");
+ System.out.println("Options:");
+ System.out.println(" -m NUM: stop analysis after NUM matches");
+ Arrays.asList(str).forEach(System.err::println);
+ System.exit(1);
+ }
+
+ /**
+ * The main method for the Grep program. Run program with empty argument
+ * list to see possible arguments.
+ *
+ * @param args the argument list for Grep.
+ * @throws java.io.IOException If an I/O error occurs.
+ */
+ public static void main(String[] args) throws IOException {
+ long maxCount = Long.MAX_VALUE;
+ if (args.length < 2) {
+ printUsageAndExit();
+ }
+ int i = 0;
+ //parse OPTIONS
+ while (args[i].startsWith("-")) {
+ switch (args[i]) {
+ case "-m":
+ try {
+ maxCount = Long.parseLong(args[++i]);
+ } catch (NumberFormatException ex) {
+ printUsageAndExit(ex.toString());
+ }
+ break;
+ default:
+ printUsageAndExit("Unexpected option " + args[i]);
+ }
+ i++;
+ }
+ //parse PATTERN
+ Pattern pattern = Pattern.compile(args[i++]);
+ if (i == args.length) {
+ printUsageAndExit("There are no files for input");
+ }
+
+ try {
+ /*
+ * First obtain the list of all paths.
+ * For a small number of arguments there is little to be gained
+ * by producing this list in parallel. For one argument
+ * there will be no parallelism.
+ *
+ * File names are converted to paths. If a path is a directory then
+ * Stream is populated with whole file tree of the directory by
+ * flatMap() method. Files are filtered from directories.
+ */
+ List files = Arrays.stream(args, i, args.length)
+ .map(Paths::get)
+ // flatMap will ensure each I/O-based stream will be closed
+ .flatMap(Grep::getPathStream)
+ .filter(Files::isRegularFile)
+ .collect(toList());
+ /*
+ * Then operate on that list in parallel.
+ * This is likely to give a more even distribution of work for
+ * parallel execution.
+ *
+ * Lines are extracted from files. Lines are filtered by pattern.
+ * Stream is limited by number of matches. Each remaining string is
+ * displayed in std output by method reference System.out::println.
+ */
+ files.parallelStream()
+ // flatMap will ensure each I/O-based stream will be closed
+ .flatMap(Grep::path2Lines)
+ .filter(pattern.asPredicate())
+ .limit(maxCount)
+ .forEachOrdered(System.out::println);
+ } catch (UncheckedIOException ioe) {
+ printUsageAndExit(ioe.toString());
+ }
+ }
+
+ /**
+ * Flattens file system hierarchy into a stream. This code is not inlined
+ * for the reason of Files.walk() throwing a checked IOException that must
+ * be caught.
+ *
+ * @param path - the file or directory
+ * @return Whole file tree starting from path, a stream with one element -
+ * the path itself - if it is a file.
+ */
+ private static Stream getPathStream(Path path) {
+ try {
+ return Files.walk(path);
+ } catch (IOException e) {
+ throw new UncheckedIOException(e);
+ }
+ }
+
+ /**
+ * Produces a stream of lines from a file. The result is a stream in order
+ * to close it later. This code is not inlined for the reason of
+ * Files.lines() throwing a checked IOException that must be caught.
+ *
+ * @param path - the file to read
+ * @return stream of lines from the file
+ */
+ private static Stream path2Lines(Path path) {
+ try {
+ return Files.lines(path);
+ } catch (IOException e) {
+ throw new UncheckedIOException(e);
+ }
+ }
+}
diff --git a/jdk/src/share/sample/lambda/BulkDataOperations/src/PasswordGenerator.java b/jdk/src/share/sample/lambda/BulkDataOperations/src/PasswordGenerator.java
new file mode 100644
index 00000000000..e4677985929
--- /dev/null
+++ b/jdk/src/share/sample/lambda/BulkDataOperations/src/PasswordGenerator.java
@@ -0,0 +1,113 @@
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * - Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * - Neither the name of Oracle nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation, and proper error handling, might not be present in
+ * this sample code.
+ */
+
+import java.security.SecureRandom;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.IntStream;
+
+/**
+ * Generates password of desired length. See {@link #usage} method
+ * for instructions and command line parameters. This sample shows usages of:
+ *
+ * Method references.
+ * Lambda and bulk operations. A stream of random integers is mapped to
+ * chars, limited by desired length and printed in standard output as password
+ * string.
+ *
+ *
+ */
+public class PasswordGenerator {
+
+ private static void usage() {
+ System.out.println("Usage: PasswordGenerator LENGTH");
+ System.out.println(
+ "Password Generator produces password of desired LENGTH.");
+ }
+
+ private static final List PASSWORD_CHARS = new ArrayList<>();
+
+ //Valid symbols.
+ static {
+ IntStream.rangeClosed('0', '9').forEach(PASSWORD_CHARS::add); // 0-9
+ IntStream.rangeClosed('A', 'Z').forEach(PASSWORD_CHARS::add); // A-Z
+ IntStream.rangeClosed('a', 'z').forEach(PASSWORD_CHARS::add); // a-z
+ }
+
+ /**
+ * The main method for the PasswordGenerator program. Run program with empty
+ * argument list to see possible arguments.
+ *
+ * @param args the argument list for PasswordGenerator.
+ */
+ public static void main(String[] args) {
+
+ if (args.length != 1) {
+ usage();
+ return;
+ }
+
+ long passwordLength;
+ try {
+ passwordLength = Long.parseLong(args[0]);
+ if (passwordLength < 1) {
+ printMessageAndUsage("Length has to be positive");
+ return;
+ }
+ } catch (NumberFormatException ex) {
+ printMessageAndUsage("Unexpected number format" + args[0]);
+ return;
+ }
+ /*
+ * Stream of random integers is created containing Integer values
+ * in range from 0 to PASSWORD_CHARS.size().
+ * The stream is limited by passwordLength.
+ * Valid chars are selected by generated index.
+ */
+ new SecureRandom().ints(passwordLength, 0, PASSWORD_CHARS.size())
+ .map(PASSWORD_CHARS::get)
+ .forEach(i -> System.out.print((char) i));
+ }
+
+ private static void printMessageAndUsage(String message) {
+ System.err.println(message);
+ usage();
+ }
+
+}
diff --git a/jdk/src/share/sample/lambda/BulkDataOperations/src/WC.java b/jdk/src/share/sample/lambda/BulkDataOperations/src/WC.java
new file mode 100644
index 00000000000..c724f159a19
--- /dev/null
+++ b/jdk/src/share/sample/lambda/BulkDataOperations/src/WC.java
@@ -0,0 +1,217 @@
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * - Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * - Neither the name of Oracle nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation, and proper error handling, might not be present in
+ * this sample code.
+ */
+
+import java.io.BufferedReader;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.function.Consumer;
+import java.util.regex.Pattern;
+
+/**
+ * WC - Prints newline, word, and character counts for each file. See
+ * the {@link #usage} method for instructions and command line parameters. This
+ * sample shows usages of:
+ *
+ * Lambda and bulk operations. Shows how to create a custom collector to
+ * gather custom statistics. Implements the collection of statistics using a
+ * built-in API.
+ * Constructor reference.
+ * Try-with-resources feature.
+ *
+ *
+ */
+public class WC {
+
+ //The number of characters that may be read.
+ private static final int READ_AHEAD_LIMIT = 100_000_000;
+
+ //The pattern for splitting strings by non word characters to get words.
+ private static final Pattern nonWordPattern = Pattern.compile("\\W");
+
+ /**
+ * The main method for the WC program. Run the program with an empty
+ * argument list to see possible arguments.
+ *
+ * @param args the argument list for WC
+ * @throws java.io.IOException If an input exception occurred.
+ */
+ public static void main(String[] args) throws IOException {
+
+ if (args.length != 1) {
+ usage();
+ return;
+ }
+
+ try (BufferedReader reader = new BufferedReader(
+ new FileReader(args[0]))) {
+ reader.mark(READ_AHEAD_LIMIT);
+ /*
+ * Statistics can be gathered in four passes using a built-in API.
+ * The method demonstrates how separate operations can be
+ * implemented using a built-in API.
+ */
+ collectInFourPasses(reader);
+ /*
+ * Usage of several passes to collect data is not the best way.
+ * Statistics can be gathered by a custom collector in one pass.
+ */
+ reader.reset();
+ collectInOnePass(reader);
+ } catch (FileNotFoundException e) {
+ usage();
+ System.err.println(e);
+ }
+ }
+
+ private static void collectInFourPasses(BufferedReader reader)
+ throws IOException {
+ /*
+ * Input is read as a stream of lines by lines().
+ * Every line is turned into a stream of chars by the flatMapToInt(...)
+ * method.
+ * Length of the stream is counted by count().
+ */
+ System.out.println("Character count = "
+ + reader.lines().flatMapToInt(String::chars).count());
+ /*
+ * Input is read as a stream of lines by lines().
+ * Every line is split by nonWordPattern into words by flatMap(...)
+ * method.
+ * Empty lines are removed by the filter(...) method.
+ * Length of the stream is counted by count().
+ */
+ reader.reset();
+ System.out.println("Word count = "
+ + reader.lines()
+ .flatMap(nonWordPattern::splitAsStream)
+ .filter(str -> !str.isEmpty()).count());
+
+ reader.reset();
+ System.out.println("Newline count = " + reader.lines().count());
+ /*
+ * Input is read as a stream of lines by lines().
+ * Every line is mapped to its length.
+ * Maximum of the lengths is calculated.
+ */
+ reader.reset();
+ System.out.println("Max line length = "
+ + reader.lines().mapToInt(String::length).max().getAsInt());
+ }
+
+ private static void collectInOnePass(BufferedReader reader) {
+ /*
+ * The collect() method has three parameters:
+ * The first parameter is the {@code WCStatistic} constructor reference.
+ * collect() will create {@code WCStatistics} instances, where
+ * statistics will be aggregated.
+ * The second parameter shows how {@code WCStatistics} will process
+ * String.
+ * The third parameter shows how to merge two {@code WCStatistic}
+ * instances.
+ *
+ * Also {@code Collector} can be used, which would be more reusable
+ * solution. See {@code CSVProcessor} example for how {@code Collector}
+ * can be implemented.
+ *
+ * Note that the any performance increase when going parallel will
+ * depend on the size of the input (lines) and the cost per-element.
+ */
+ WCStatistics wc = reader.lines().parallel()
+ .collect(WCStatistics::new,
+ WCStatistics::accept,
+ WCStatistics::combine);
+ System.out.println(wc);
+ }
+
+ private static void usage() {
+ System.out.println("Usage: " + WC.class.getSimpleName() + " FILE");
+ System.out.println("Print newline, word,"
+ + " character counts and max line length for FILE.");
+ }
+
+ private static class WCStatistics implements Consumer {
+ /*
+ * @implNote This implementation does not need to be thread safe because
+ * the parallel implementation of
+ * {@link java.util.stream.Stream#collect Stream.collect()}
+ * provides the necessary partitioning and isolation for safe parallel
+ * execution.
+ */
+
+ private long characterCount;
+ private long lineCount;
+ private long wordCount;
+ private long maxLineLength;
+
+
+ /*
+ * Processes line.
+ */
+ @Override
+ public void accept(String line) {
+ characterCount += line.length();
+ lineCount++;
+ wordCount += nonWordPattern.splitAsStream(line)
+ .filter(str -> !str.isEmpty()).count();
+ maxLineLength = Math.max(maxLineLength, line.length());
+ }
+
+ /*
+ * Merges two WCStatistics.
+ */
+ public void combine(WCStatistics stat) {
+ wordCount += stat.wordCount;
+ lineCount += stat.lineCount;
+ characterCount += stat.characterCount;
+ maxLineLength = Math.max(maxLineLength, stat.maxLineLength);
+ }
+
+ @Override
+ public String toString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("#------WCStatistic------#\n");
+ sb.append("Character count = ").append(characterCount).append('\n');
+ sb.append("Word count = ").append(wordCount).append('\n');
+ sb.append("Newline count = ").append(lineCount).append('\n');
+ sb.append("Max line length = ").append(maxLineLength).append('\n');
+ return sb.toString();
+ }
+ }
+}
From a7acbb1cb79a7250ab6f0ebd45bc512e4d08f135 Mon Sep 17 00:00:00 2001
From: Andrey Nazarov
Date: Fri, 31 Jan 2014 11:57:38 +0100
Subject: [PATCH 122/181] 8032020: Update try-with-resources demo
Reviewed-by: darcy, alanb, smarks
---
.../sample/try-with-resources/index.html | 36 +++++
.../src/CustomAutoCloseableSample.java | 137 ++++++++++++++++++
.../sample/try-with-resources/src/Unzip.java | 83 +++++++++++
.../sample/try-with-resources/src/ZipCat.java | 83 +++++++++++
4 files changed, 339 insertions(+)
create mode 100644 jdk/src/share/sample/try-with-resources/index.html
create mode 100644 jdk/src/share/sample/try-with-resources/src/CustomAutoCloseableSample.java
create mode 100644 jdk/src/share/sample/try-with-resources/src/Unzip.java
create mode 100644 jdk/src/share/sample/try-with-resources/src/ZipCat.java
diff --git a/jdk/src/share/sample/try-with-resources/index.html b/jdk/src/share/sample/try-with-resources/index.html
new file mode 100644
index 00000000000..ff237d89ce6
--- /dev/null
+++ b/jdk/src/share/sample/try-with-resources/index.html
@@ -0,0 +1,36 @@
+
+
+
+
+ Try-with-Resources Feature Demo
+
+
+Try-with-Resources Feature Demo
+
+
+ This demo shows how to use the try-with-resources feature introduced in JDK7.
+
+
+
+ Custom AutoCloseable.
+
+
+ Shows how to use a custom resource with the try-with-resources construct.
+ For more information, see the source file.
+
+ Source: src/CustomAutoCloseableSample.java
+
+ Unzip
+
+
+ Extracts archived files. For more information, see the source file.
+
+ Source: src/Unzip.java
+ ZipCat
+
+ Prints data about a specified file from an archive. For more information, see the source file.
+ Source: src/ZipCat.java
+
+
+
+
\ No newline at end of file
diff --git a/jdk/src/share/sample/try-with-resources/src/CustomAutoCloseableSample.java b/jdk/src/share/sample/try-with-resources/src/CustomAutoCloseableSample.java
new file mode 100644
index 00000000000..9bbe09aa1ed
--- /dev/null
+++ b/jdk/src/share/sample/try-with-resources/src/CustomAutoCloseableSample.java
@@ -0,0 +1,137 @@
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * - Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * - Neither the name of Oracle nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation, and proper error handling, might not be present in
+ * this sample code.
+ */
+
+import java.io.BufferedOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.PrintStream;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+
+/**
+ * This sample demonstrates the ability to create custom resource that
+ * implements the {@code AutoCloseable} interface. This resource can be used in
+ * the try-with-resources construct.
+ */
+public class CustomAutoCloseableSample {
+
+ /**
+ * The main method for the CustomAutoCloseableSample program.
+ *
+ * @param args is not used.
+ */
+ public static void main(String[] args) {
+ /*
+ * TeeStream will be closed automatically after the try block.
+ */
+ try (TeeStream teeStream = new TeeStream(System.out, Paths.get("out.txt"));
+ PrintStream out = new PrintStream(teeStream)) {
+ out.print("Hello, world");
+ } catch (Exception e) {
+ e.printStackTrace();
+ System.exit(1);
+ }
+ }
+
+ /**
+ * Passes the output through to the specified output stream while copying it into a file.
+ * The TeeStream functionality is similar to the Unix tee utility.
+ * TeeStream implements AutoCloseable interface. See OutputStream for details.
+ */
+ public static class TeeStream extends OutputStream {
+
+ private final OutputStream fileStream;
+ private final OutputStream outputStream;
+
+ /**
+ * Creates a TeeStream.
+ *
+ * @param outputStream an output stream.
+ * @param outputFile an path to file.
+ * @throws IOException If an I/O error occurs.
+ */
+ public TeeStream(OutputStream outputStream, Path outputFile) throws IOException {
+ this.fileStream = new BufferedOutputStream(Files.newOutputStream(outputFile));
+ this.outputStream = outputStream;
+ }
+
+ /**
+ * Writes the specified byte to the specified output stream
+ * and copies it to the file.
+ *
+ * @param b the byte to be written.
+ * @throws IOException If an I/O error occurs.
+ */
+ @Override
+ public void write(int b) throws IOException {
+ fileStream.write(b);
+ outputStream.write(b);
+ }
+
+ /**
+ * Flushes this output stream and forces any buffered output bytes
+ * to be written out.
+ * The flush
method of TeeStream
flushes
+ * the specified output stream and the file output stream.
+ *
+ * @throws IOException if an I/O error occurs.
+ */
+ @Override
+ public void flush() throws IOException {
+ outputStream.flush();
+ fileStream.flush();
+ }
+
+ /**
+ * Closes underlying streams and resources.
+ * The external output stream won't be closed.
+ * This method is the member of AutoCloseable interface and
+ * it will be invoked automatically after the try-with-resources block.
+ *
+ * @throws IOException If an I/O error occurs.
+ */
+ @Override
+ public void close() throws IOException {
+ try (OutputStream file = fileStream) {
+ flush();
+ }
+ }
+ }
+}
diff --git a/jdk/src/share/sample/try-with-resources/src/Unzip.java b/jdk/src/share/sample/try-with-resources/src/Unzip.java
new file mode 100644
index 00000000000..d75eba52c78
--- /dev/null
+++ b/jdk/src/share/sample/try-with-resources/src/Unzip.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * - Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * - Neither the name of Oracle nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation, and proper error handling, might not be present in
+ * this sample code.
+ */
+
+import java.io.IOException;
+import java.io.UncheckedIOException;
+import java.nio.file.*;
+
+import static java.nio.file.StandardCopyOption.REPLACE_EXISTING;
+
+/**
+ * Extract (unzip) a file to the current directory.
+ */
+public class Unzip {
+
+ /**
+ * The main method for the Unzip program. Run the program with an empty
+ * argument list to see possible arguments.
+ *
+ * @param args the argument list for {@code Unzip}.
+ */
+ public static void main(String[] args) {
+ if (args.length != 1) {
+ System.out.println("Usage: Unzip zipfile");
+ }
+ final Path destDir = Paths.get(".");
+ /*
+ * Create AutoCloseable FileSystem. It will be closed automatically
+ * after the try block.
+ */
+ try (FileSystem zipFileSystem = FileSystems.newFileSystem(Paths.get(args[0]), null)) {
+
+ Path top = zipFileSystem.getPath("/");
+ Files.walk(top).skip(1).forEach(file -> {
+ Path target = destDir.resolve(top.relativize(file).toString());
+ System.out.println("Extracting " + target);
+ try {
+ Files.copy(file, target, REPLACE_EXISTING);
+ } catch (IOException e) {
+ throw new UncheckedIOException(e);
+ }
+ });
+ } catch (UncheckedIOException | IOException e) {
+ e.printStackTrace();
+ System.exit(1);
+ }
+ }
+}
diff --git a/jdk/src/share/sample/try-with-resources/src/ZipCat.java b/jdk/src/share/sample/try-with-resources/src/ZipCat.java
new file mode 100644
index 00000000000..4bbf513a538
--- /dev/null
+++ b/jdk/src/share/sample/try-with-resources/src/ZipCat.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * - Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * - Neither the name of Oracle nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*
+ * This source code is provided to illustrate the usage of a given feature
+ * or technique and has been deliberately simplified. Additional steps
+ * required for a production-quality application, such as security checks,
+ * input validation, and proper error handling, might not be present in
+ * this sample code.
+ */
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.file.FileSystem;
+import java.nio.file.FileSystems;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+
+/**
+ * Prints data of the specified file to standard output from a zip archive.
+ */
+public class ZipCat {
+
+ /**
+ * The main method for the ZipCat program. Run the program with an empty
+ * argument list to see possible arguments.
+ *
+ * @param args the argument list for ZipCat
+ */
+ public static void main(String[] args) {
+ if (args.length != 2) {
+ System.out.println("Usage: ZipCat zipfile fileToPrint");
+ }
+ /*
+ * Creates AutoCloseable FileSystem and BufferedReader.
+ * They will be closed automatically after the try block.
+ * If reader initialization fails, then zipFileSystem will be closed
+ * automatically.
+ */
+ try (FileSystem zipFileSystem
+ = FileSystems.newFileSystem(Paths.get(args[0]),null);
+ InputStream input
+ = Files.newInputStream(zipFileSystem.getPath(args[1]))) {
+ byte[] buffer = new byte[1024];
+ int len;
+ while ((len = input.read(buffer)) != -1) {
+ System.out.write(buffer, 0, len);
+ }
+
+ } catch (IOException e) {
+ e.printStackTrace();
+ System.exit(1);
+ }
+ }
+}
From 9378d4b0660391d7372f824ba184dad882d45cf1 Mon Sep 17 00:00:00 2001
From: Taras Ledkov
Date: Fri, 31 Jan 2014 11:57:53 +0100
Subject: [PATCH 123/181] 8032056: Create demo to illustrate new practices of
the default methods usage
Reviewed-by: briangoetz, rfield, psandoz
---
.../lambda/DefaultMethods/ArrayIterator.java | 118 ++++++++++++++
.../DefaultMethods/DiamondInheritance.java | 145 ++++++++++++++++++
.../lambda/DefaultMethods/Inheritance.java | 142 +++++++++++++++++
.../sample/lambda/DefaultMethods/MixIn.java | 114 ++++++++++++++
.../lambda/DefaultMethods/Reflection.java | 136 ++++++++++++++++
.../lambda/DefaultMethods/SimplestUsage.java | 91 +++++++++++
6 files changed, 746 insertions(+)
create mode 100644 jdk/src/share/sample/lambda/DefaultMethods/ArrayIterator.java
create mode 100644 jdk/src/share/sample/lambda/DefaultMethods/DiamondInheritance.java
create mode 100644 jdk/src/share/sample/lambda/DefaultMethods/Inheritance.java
create mode 100644 jdk/src/share/sample/lambda/DefaultMethods/MixIn.java
create mode 100644 jdk/src/share/sample/lambda/DefaultMethods/Reflection.java
create mode 100644 jdk/src/share/sample/lambda/DefaultMethods/SimplestUsage.java
diff --git a/jdk/src/share/sample/lambda/DefaultMethods/ArrayIterator.java b/jdk/src/share/sample/lambda/DefaultMethods/ArrayIterator.java
new file mode 100644
index 00000000000..2eca80149b8
--- /dev/null
+++ b/jdk/src/share/sample/lambda/DefaultMethods/ArrayIterator.java
@@ -0,0 +1,118 @@
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * - Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * - Neither the name of Oracle nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import java.util.Iterator;
+import java.util.NoSuchElementException;
+
+/**
+ * The code sample illustrates the usage of default methods in the JDK 8. Most
+ * implementations of {@link Iterator} don't provide a useful
+ * {@link Iterator#remove()} method, however,
+ * they still have to implement this method to throw
+ * an UnsupportedOperationException. With the default method, the same
+ * default behavior in interface Iterator itself can be provided.
+ */
+public class ArrayIterator {
+
+ /** Close the constructor because ArrayIterator is part of the utility
+ * class.
+ */
+ protected ArrayIterator() {
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * Returns an iterator that goes over the elements in the array.
+ *
+ * @param type of an array element
+ * @param array source array to iterate over it
+ * @return an iterator that goes over the elements in the array
+ */
+ public static Iterator iterator(final E[] array) {
+ return new Iterator() {
+ /**
+ * Index of the current position
+ *
+ */
+ private int index = 0;
+
+ /**
+ * Returns the next element in the iteration
+ *
+ * @return the next element in the iteration
+ * @throws NoSuchElementException if the iteration has no more
+ * elements
+ */
+ @Override
+ public boolean hasNext() {
+ return (index < array.length);
+ }
+
+ /**
+ * Returns {@code true} if the iteration has more elements. (In
+ * other words, returns {@code true} if {@link #next} returns
+ * an element, rather than throwing an exception.)
+ *
+ * @return {@code true} if the iteration has more elements
+ */
+ @Override
+ public E next() {
+ if (!hasNext()) {
+ throw new NoSuchElementException();
+ }
+ return array[index++];
+ }
+
+ /**
+ * This method does not need to be overwritten in JDK 8.
+ */
+ //@Override
+ //public void remove() {
+ // throw UnsupportedOperationException(
+ // "Arrays don't support remove.")
+ //}
+ };
+ }
+
+ /**
+ * Sample usage of the ArrayIterator
+ *
+ * @param args command-line arguments
+ */
+ public static void main(final String[] args) {
+ Iterator it = ArrayIterator.iterator(
+ new String[]{"one", "two", "three"});
+
+ while (it.hasNext()) {
+ System.out.println(it.next());
+ }
+ }
+}
diff --git a/jdk/src/share/sample/lambda/DefaultMethods/DiamondInheritance.java b/jdk/src/share/sample/lambda/DefaultMethods/DiamondInheritance.java
new file mode 100644
index 00000000000..9214d58a788
--- /dev/null
+++ b/jdk/src/share/sample/lambda/DefaultMethods/DiamondInheritance.java
@@ -0,0 +1,145 @@
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * - Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * - Neither the name of Oracle nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/**
+ * This sample diamond interface inheritance with default methods .
+ * If there's not already a unique method implementation to inherit,
+ * you must provide it. The inheritance diagram is similar to the following:
+ *
+ * Animal
+ * / \
+ * Horse Bird
+ * \ /
+ * Pegasus
+ *
+ *
+ * Both {@link Horse} and {@link Bird} interfaces implements the go
+ * method. The {@link Pegasus} class have to overrides the
+ * go
method.
+ *
+ * The new syntax of super-call is used here:
+ *
+ * <interface_name>.super.<method>(...);
+ * For example: Horse.super.go();
+ * So, Pegasus moves like a horse.
+ */
+public class DiamondInheritance {
+
+ /**
+ * Base interface to illustrate the diamond inheritance.
+ *
+ * @see DiamondInheritance
+ */
+ public interface Animal {
+
+ /**
+ * Return string representation of the "go" action for concrete animal
+ *
+ * @return string representation of the "go" action for concrete animal
+ */
+ String go();
+ }
+
+ /**
+ * Interface to illustrate the diamond inheritance.
+ *
+ * @see DiamondInheritance
+ */
+ public interface Horse extends Animal {
+
+ /**
+ * Return string representation of the "go" action for horse
+ *
+ * @return string representation of the "go" action for horse
+ */
+ @Override
+ default String go() {
+ return this.getClass().getSimpleName() + " walks on four legs";
+ }
+ }
+
+ /**
+ * Interface to illustrate the diamond inheritance.
+ *
+ * @see DiamondInheritance
+ */
+ public interface Bird extends Animal {
+
+ /**
+ * Return string representation of the "go" action for bird
+ *
+ * @return string representation of the "go" action for bird
+ */
+ @Override
+ default String go() {
+ return this.getClass().getSimpleName() + " walks on two legs";
+ }
+
+ /**
+ * Return string representation of the "fly" action for bird
+ *
+ * @return string representation of the "fly" action for bird
+ */
+ default String fly() {
+ return "I can fly";
+ }
+ }
+
+ /**
+ * Class to illustrate the diamond inheritance. Pegasus must mix horse and
+ * bird behavior.
+ *
+ * @see DiamondInheritance
+ */
+ public static class Pegasus implements Horse, Bird {
+
+ /**
+ * Return string representation of the "go" action for the fictitious
+ * creature Pegasus
+ *
+ * @return string representation of the "go" action for the fictitious
+ * creature Pegasus
+ */
+ @Override
+ public String go() {
+ return Horse.super.go();
+ }
+ }
+
+ /**
+ * Illustrate the behavior of the {@link Pegasus} class
+ *
+ * @param args command line arguments
+ */
+ public static void main(final String[] args) {
+ System.out.println(new Pegasus().go());
+ }
+}
diff --git a/jdk/src/share/sample/lambda/DefaultMethods/Inheritance.java b/jdk/src/share/sample/lambda/DefaultMethods/Inheritance.java
new file mode 100644
index 00000000000..961de2c24d5
--- /dev/null
+++ b/jdk/src/share/sample/lambda/DefaultMethods/Inheritance.java
@@ -0,0 +1,142 @@
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * - Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * - Neither the name of Oracle nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/**
+ * The sample illustrates rules to resolve conflicts between inheritance
+ * candidates with default methods . There are two simple rules:
+ *
+ * Class wins. If the superclass has a concrete or abstract declaration of
+ * this method, then it is preferred over all defaults.
+ * Subtype wins. If an interface extends another interface, and both provide
+ * a default, then the more specific interface wins.
+ *
+ */
+public class Inheritance {
+
+ /**
+ * The behavior of an creature that can swim
+ */
+ public interface Swimable {
+
+ /**
+ * Return string representation of the swim action for a creature that
+ * can swim
+ *
+ * @return string representation of the swim action for a creature
+ * that can swim
+ */
+ default String swim() {
+ return "I can swim.";
+ }
+ }
+
+ /**
+ * The abstract class that overrides {@link #swim} method
+ */
+ public abstract static class Fish implements Swimable {
+
+ /**
+ * Return string representation of the swim action for a fish
+ *
+ * @return string representation of the swim action for a fish
+ */
+ @Override
+ public String swim() {
+ return this.getClass().getSimpleName() + " swims under water";
+ }
+ }
+
+ /**
+ * This class is used for the illustration rule of 1. See the source code
+ * of the {@link #main} method.
+ *
+ * System.out.println(new Tuna().swim()); //"Tuna swims under water" output is suspected here
+ *
+ */
+ public static class Tuna extends Fish implements Swimable {
+ }
+
+ /**
+ * The behavior of an creature that can dive: the interface that overrides
+ * {@link #swim} method (subtype of {@link Swimable})
+ */
+ public interface Diveable extends Swimable {
+
+ /**
+ * Return string representation of the swim action for a creature that
+ * can dive
+ *
+ * @return string representation of the swim action for a creature
+ * that can dive
+ */
+ @Override
+ default String swim() {
+ return "I can swim on the surface of the water.";
+ }
+
+ /**
+ * Return string representation of the dive action for a creature that
+ * can dive
+ *
+ * @return string representation of the dive action for a creature
+ * that can dive
+ */
+ default String dive() {
+ return "I can dive.";
+ }
+ }
+
+ /**
+ * This class is used for the illustration of rule 2. See the source code
+ * of the {@link #main} method
+ *
+ * //"I can swim on the surface of the water." output is suspected here
+ * System.out.println(new Duck().swim());
+ *
+ */
+ public static class Duck implements Swimable, Diveable {
+ }
+
+ /**
+ * Illustrate behavior of the classes: {@link Tuna} and {@link Duck}
+ *
+ * @param args command line arguments
+ */
+ public static void main(final String[] args) {
+ // Illustrates rule 1. The Fish.swim() implementation wins
+ //"Tuna swims under water" is output
+ System.out.println(new Tuna().swim());
+
+ // Illustrates rule 2. The Diveable.swim() implementation wins
+ //"I can swim on the surface of the water." is output
+ System.out.println(new Duck().swim());
+ }
+}
diff --git a/jdk/src/share/sample/lambda/DefaultMethods/MixIn.java b/jdk/src/share/sample/lambda/DefaultMethods/MixIn.java
new file mode 100644
index 00000000000..d9ed81dee27
--- /dev/null
+++ b/jdk/src/share/sample/lambda/DefaultMethods/MixIn.java
@@ -0,0 +1,114 @@
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * - Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * - Neither the name of Oracle nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import java.io.IOException;
+import java.lang.reflect.Field;
+
+/**
+ * The example illustrates how to use the default method for mixin.
+ * @see BuildType
+ * @see Debuggable
+ */
+public class MixIn {
+
+ /**
+ * Implement this interface for a class that must be in debug print
+ */
+ public interface Debuggable {
+
+ /**
+ * Print the class name and all fields to a string. Uses reflection to
+ * obtain and access fields of this object.
+ *
+ * @return the string formatted like the following:
+ * State of the: <Class Name>
+ * <member name> : <value>
+ * ...
+ *
+ */
+ default String toDebugString() {
+ StringBuilder sb = new StringBuilder();
+ sb.append("State of the: ").append(
+ this.getClass().getSimpleName()).append("\n");
+ for (Class cls = this.getClass();
+ cls != null;
+ cls = cls.getSuperclass()) {
+ for (Field f : cls.getDeclaredFields()) {
+ try {
+ f.setAccessible(true);
+ sb.append(f.getName()).append(" : ").
+ append(f.get(this)).append("\n");
+ } catch (IllegalAccessException e) {
+ }
+ }
+ }
+ return sb.toString();
+ }
+ }
+
+ /**
+ * Sample exception class to demonstrate mixin. This enum inherits the
+ * behavior of the {@link Debuggable}
+ */
+ public static enum BuildType implements Debuggable {
+
+ BUILD(0, "-build"),
+ PLAN(0, "-plan"),
+ EXCLUDE(1, "-exclude"),
+ TOTAL(2, "-total");
+
+ private final int compareOrder;
+ private final String pathSuffix;
+
+ private BuildType(int compareOrder, String pathSuffix) {
+ this.compareOrder = compareOrder;
+ this.pathSuffix = pathSuffix;
+ }
+
+ public int getCompareOrder() {
+ return compareOrder;
+ }
+
+ public String getPathSuffix() {
+ return pathSuffix;
+ }
+ }
+
+ /**
+ * Illustrate the behavior of the MixClass
+ *
+ * @param args command-line arguments
+ * @throws java.io.IOException internal demo error
+ */
+ public static void main(final String[] args) throws IOException {
+ System.out.println(BuildType.BUILD.toDebugString());
+ }
+}
diff --git a/jdk/src/share/sample/lambda/DefaultMethods/Reflection.java b/jdk/src/share/sample/lambda/DefaultMethods/Reflection.java
new file mode 100644
index 00000000000..78424a240e8
--- /dev/null
+++ b/jdk/src/share/sample/lambda/DefaultMethods/Reflection.java
@@ -0,0 +1,136 @@
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * - Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * - Neither the name of Oracle nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.Arrays;
+import java.util.stream.Stream;
+
+/**
+ * The code sample illustrates changes in the reflection API linked
+ * default methods . Since Java SE 8, a new method is added into the class
+ * java.lang.reflect.Method
, with which you can reflectively
+ * determine whether or not a default method provided by an interface
+ * (Method.isDefault()
).
+ */
+public class Reflection {
+
+ /**
+ * Base interface to illustrate the new reflection API.
+ *
+ * @see Dog
+ */
+ public interface Animal {
+
+ /**
+ * Return string representation of the eat action for Animal
+ *
+ * @return string representation of the eat action for Animal
+ */
+ default String eat() {
+ return this.getClass().getSimpleName()
+ + " eats like an ordinary animal";
+ }
+
+ /**
+ * Return string representation of the sleep action for Animal
+ *
+ * @return string representation of the sleep action for Animal
+ */
+ default String sleep() {
+ return this.getClass().getSimpleName()
+ + " sleeps like an ordinary animal";
+ }
+
+ /**
+ * Return string representation of the go action for Animal
+ *
+ * @return string representation of the go action for Animal
+ */
+ String go();
+ }
+
+ /**
+ * Dog class to illustrate the new reflection API. You can see that:
+ *
+ * the {@link #go} and {@link #sleep} methods are not default.
+ * {@link #go} is not the default implementation and the {@link #sleep}
+ * method implementation wins as subtype (according with {@link Inheritance}
+ * rule. 2)
+ * the {@link #eat} is a simple default method that is not overridden
+ * in this class.
+ *
+ *
+ */
+ public static class Dog implements Animal {
+
+ /**
+ * Return string representation of the go action for Dog
+ *
+ * @return string representation of the go action for Dog
+ */
+ @Override
+ public String go() {
+ return "Dog walks on four legs";
+ }
+
+ /**
+ * Return string representation of the sleep action for Dog
+ *
+ * @return string representation of the sleep action for Dog
+ */
+ @Override
+ public String sleep() {
+ return "Dog sleeps";
+ }
+ }
+
+ /**
+ * Illustrate the usage of the method java.lang.reflect.Method.isDefault()
+ *
+ * @param args command-line arguments
+ * @throws NoSuchMethodException internal demo error
+ */
+ public static void main(final String[] args) throws NoSuchMethodException {
+ Dog dog = new Dog();
+ Stream.of(Dog.class.getMethod("eat"), Dog.class.getMethod("go"), Dog.class.getMethod("sleep"))
+ .forEach((m) -> {
+ System.out.println("Method name: " + m.getName());
+ System.out.println(" isDefault: " + m.isDefault());
+ System.out.print(" invoke: ");
+ try {
+ m.invoke(dog);
+ } catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException ex) {
+ }
+ System.out.println();
+ });
+ }
+}
diff --git a/jdk/src/share/sample/lambda/DefaultMethods/SimplestUsage.java b/jdk/src/share/sample/lambda/DefaultMethods/SimplestUsage.java
new file mode 100644
index 00000000000..a971858f589
--- /dev/null
+++ b/jdk/src/share/sample/lambda/DefaultMethods/SimplestUsage.java
@@ -0,0 +1,91 @@
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * - Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * - Neither the name of Oracle nor the names of its
+ * contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/**
+ * The sample illustrates the simplest use case of the default methods .
+ */
+public class SimplestUsage {
+
+ /**
+ * The Animal interface provides the default implementation
+ * of the {@link #eat} method.
+ */
+ public interface Animal {
+
+ /**
+ * Return string representation of the eat action for Animal
+ *
+ * @return string representation of the eat action for Animal
+ */
+ default String eat() {
+ return this.getClass().getSimpleName()
+ + " eats like an ordinary animal";
+ }
+ }
+
+ /**
+ * The Dog class doesn't have its own implementation of the {@link #eat}
+ * method and uses the default implementation.
+ */
+ public static class Dog implements Animal {
+ }
+
+ /**
+ * The Mosquito class implements {@link #eat} method, its own implementation
+ * overrides the default implementation.
+ *
+ */
+ public static class Mosquito implements Animal {
+
+ /**
+ * Return string representation of the eat action for Mosquito
+ *
+ * @return string representation of the eat action for Mosquito
+ */
+ @Override
+ public String eat() {
+ return "Mosquito consumes blood";
+ }
+ }
+
+ /**
+ * Illustrate behavior of the classes: {@link Dog} and {@link Mosquito}
+ *
+ * @param args command-line arguments
+ */
+ public static void main(String[] args) {
+ // "Dog eats like an ordinary animal" is output
+ System.out.println(new Dog().eat());
+
+ // "Mosquito consumes blood" is output
+ System.out.println(new Mosquito().eat());
+ }
+}
From e3f4248c427de75f5d7fa953e283946cf0745079 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Markus=20Gr=C3=B6nlund?=
Date: Fri, 31 Jan 2014 12:06:34 +0100
Subject: [PATCH 124/181] 8032518: fatal error has been detected by the Java
Runtime Environment(access violation)
Reviewed-by: sla, dholmes, jbachorik, dsamersoff, coleenp
---
.../native/sun/management/DiagnosticCommandImpl.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/jdk/src/share/native/sun/management/DiagnosticCommandImpl.c b/jdk/src/share/native/sun/management/DiagnosticCommandImpl.c
index 6258ac3e9cf..59f3f7db971 100644
--- a/jdk/src/share/native/sun/management/DiagnosticCommandImpl.c
+++ b/jdk/src/share/native/sun/management/DiagnosticCommandImpl.c
@@ -30,12 +30,12 @@
JNIEXPORT void JNICALL Java_sun_management_DiagnosticCommandImpl_setNotificationEnabled
(JNIEnv *env, jobject dummy, jboolean enabled) {
- if(jmm_version > JMM_VERSION_1_2_2) {
- jmm_interface->SetDiagnosticFrameworkNotificationEnabled(env, enabled);
- } else {
+ if (jmm_version <= JMM_VERSION_1_2_2) {
JNU_ThrowByName(env, "java/lang/UnsupportedOperationException",
"JMX interface to diagnostic framework notifications is not supported by this VM");
+ return;
}
+ jmm_interface->SetDiagnosticFrameworkNotificationEnabled(env, enabled);
}
JNIEXPORT jobjectArray JNICALL
@@ -124,6 +124,7 @@ Java_sun_management_DiagnosticCommandImpl_getDiagnosticCommandInfo
result = (*env)->NewObjectArray(env, num_commands, dcmdInfoCls, NULL);
if (result == NULL) {
JNU_ThrowOutOfMemoryError(env, 0);
+ return NULL;
}
if (num_commands == 0) {
/* Handle the 'zero commands' case specially to avoid calling 'malloc()' */
@@ -133,6 +134,7 @@ Java_sun_management_DiagnosticCommandImpl_getDiagnosticCommandInfo
dcmd_info_array = (dcmdInfo*) malloc(num_commands * sizeof(dcmdInfo));
if (dcmd_info_array == NULL) {
JNU_ThrowOutOfMemoryError(env, NULL);
+ return NULL;
}
jmm_interface->GetDiagnosticCommandInfo(env, commands, dcmd_info_array);
for (i=0; iSetObjectArrayElement(env, result, i, obj);
}
From 49605b7bf933f2e1470498aeb415f85103c5641b Mon Sep 17 00:00:00 2001
From: Chris Hegarty
Date: Fri, 31 Jan 2014 11:10:36 +0000
Subject: [PATCH 125/181] 7150539: HttpURLConnection.getResponseMessage()
doesn't throw IOException on server error (OS X)
Reviewed-by: michaelm, alanb
---
jdk/test/sun/net/www/http/HttpClient/RetryPost.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/jdk/test/sun/net/www/http/HttpClient/RetryPost.java b/jdk/test/sun/net/www/http/HttpClient/RetryPost.java
index 2f5add47afa..da7d868c3f2 100644
--- a/jdk/test/sun/net/www/http/HttpClient/RetryPost.java
+++ b/jdk/test/sun/net/www/http/HttpClient/RetryPost.java
@@ -55,8 +55,8 @@ public class RetryPost
void doClient() {
try {
InetSocketAddress address = httpServer.getAddress();
- URL url = new URL("http://" + address.getHostName() + ":" + address.getPort() + "/test/");
- HttpURLConnection uc = (HttpURLConnection)url.openConnection();
+ URL url = new URL("http://localhost:" + address.getPort() + "/test/");
+ HttpURLConnection uc = (HttpURLConnection)url.openConnection(Proxy.NO_PROXY);
uc.setDoOutput(true);
uc.setRequestMethod("POST");
uc.getResponseCode();
From 592907e7f24d7262a2c0f69cd123c0e88d3d6753 Mon Sep 17 00:00:00 2001
From: Ivan Gerasimov
Date: Thu, 30 Jan 2014 00:02:46 +0400
Subject: [PATCH 126/181] 8027348: (process) Enhancement of handling async
close of ProcessInputStream
Reviewed-by: martin
---
.../classes/java/lang/UNIXProcess.java.bsd | 44 +++---
.../classes/java/lang/UNIXProcess.java.linux | 44 +++---
.../java/lang/ProcessBuilder/CloseRace.java | 140 +++++++++++++++++
.../java/lang/Runtime/exec/CloseRace.java | 146 ------------------
4 files changed, 176 insertions(+), 198 deletions(-)
create mode 100644 jdk/test/java/lang/ProcessBuilder/CloseRace.java
delete mode 100644 jdk/test/java/lang/Runtime/exec/CloseRace.java
diff --git a/jdk/src/solaris/classes/java/lang/UNIXProcess.java.bsd b/jdk/src/solaris/classes/java/lang/UNIXProcess.java.bsd
index df22bd2f3b9..7f0c3b12bf0 100644
--- a/jdk/src/solaris/classes/java/lang/UNIXProcess.java.bsd
+++ b/jdk/src/solaris/classes/java/lang/UNIXProcess.java.bsd
@@ -342,47 +342,39 @@ final class UNIXProcess extends Process {
ProcessPipeInputStream(int fd) {
super(new FileInputStream(newFileDescriptor(fd)));
}
-
- private InputStream drainInputStream(InputStream in)
+ private static byte[] drainInputStream(InputStream in)
throws IOException {
int n = 0;
int j;
byte[] a = null;
- synchronized (closeLock) {
- if (buf == null) // asynchronous close()?
- return null; // discard
- j = in.available();
- }
- while (j > 0) {
+ while ((j = in.available()) > 0) {
a = (a == null) ? new byte[j] : Arrays.copyOf(a, n + j);
- synchronized (closeLock) {
- if (buf == null) // asynchronous close()?
- return null; // discard
- n += in.read(a, n, j);
- j = in.available();
- }
+ n += in.read(a, n, j);
}
- return (a == null) ?
- ProcessBuilder.NullInputStream.INSTANCE :
- new ByteArrayInputStream(n == a.length ? a : Arrays.copyOf(a, n));
+ return (a == null || n == a.length) ? a : Arrays.copyOf(a, n);
}
/** Called by the process reaper thread when the process exits. */
synchronized void processExited() {
- try {
- InputStream in = this.in;
- if (in != null) {
- InputStream stragglers = drainInputStream(in);
- in.close();
- this.in = stragglers;
- }
- } catch (IOException ignored) { }
+ synchronized (closeLock) {
+ try {
+ InputStream in = this.in;
+ // this stream is closed if and only if: in == null
+ if (in != null) {
+ byte[] stragglers = drainInputStream(in);
+ in.close();
+ this.in = (stragglers == null) ?
+ ProcessBuilder.NullInputStream.INSTANCE :
+ new ByteArrayInputStream(stragglers);
+ }
+ } catch (IOException ignored) {}
+ }
}
@Override
public void close() throws IOException {
// BufferedInputStream#close() is not synchronized unlike most other methods.
- // Synchronizing helps avoid racing with drainInputStream().
+ // Synchronizing helps avoid race with processExited().
synchronized (closeLock) {
super.close();
}
diff --git a/jdk/src/solaris/classes/java/lang/UNIXProcess.java.linux b/jdk/src/solaris/classes/java/lang/UNIXProcess.java.linux
index 5ce8a61682a..be267d3ef0c 100644
--- a/jdk/src/solaris/classes/java/lang/UNIXProcess.java.linux
+++ b/jdk/src/solaris/classes/java/lang/UNIXProcess.java.linux
@@ -344,47 +344,39 @@ final class UNIXProcess extends Process {
ProcessPipeInputStream(int fd) {
super(new FileInputStream(newFileDescriptor(fd)));
}
-
- private InputStream drainInputStream(InputStream in)
+ private static byte[] drainInputStream(InputStream in)
throws IOException {
int n = 0;
int j;
byte[] a = null;
- synchronized (closeLock) {
- if (buf == null) // asynchronous close()?
- return null; // discard
- j = in.available();
- }
- while (j > 0) {
+ while ((j = in.available()) > 0) {
a = (a == null) ? new byte[j] : Arrays.copyOf(a, n + j);
- synchronized (closeLock) {
- if (buf == null) // asynchronous close()?
- return null; // discard
- n += in.read(a, n, j);
- j = in.available();
- }
+ n += in.read(a, n, j);
}
- return (a == null) ?
- ProcessBuilder.NullInputStream.INSTANCE :
- new ByteArrayInputStream(n == a.length ? a : Arrays.copyOf(a, n));
+ return (a == null || n == a.length) ? a : Arrays.copyOf(a, n);
}
/** Called by the process reaper thread when the process exits. */
synchronized void processExited() {
- try {
- InputStream in = this.in;
- if (in != null) {
- InputStream stragglers = drainInputStream(in);
- in.close();
- this.in = stragglers;
- }
- } catch (IOException ignored) { }
+ synchronized (closeLock) {
+ try {
+ InputStream in = this.in;
+ // this stream is closed if and only if: in == null
+ if (in != null) {
+ byte[] stragglers = drainInputStream(in);
+ in.close();
+ this.in = (stragglers == null) ?
+ ProcessBuilder.NullInputStream.INSTANCE :
+ new ByteArrayInputStream(stragglers);
+ }
+ } catch (IOException ignored) {}
+ }
}
@Override
public void close() throws IOException {
// BufferedInputStream#close() is not synchronized unlike most other methods.
- // Synchronizing helps avoid racing with drainInputStream().
+ // Synchronizing helps avoid race with processExited().
synchronized (closeLock) {
super.close();
}
diff --git a/jdk/test/java/lang/ProcessBuilder/CloseRace.java b/jdk/test/java/lang/ProcessBuilder/CloseRace.java
new file mode 100644
index 00000000000..ff2e81fe7a8
--- /dev/null
+++ b/jdk/test/java/lang/ProcessBuilder/CloseRace.java
@@ -0,0 +1,140 @@
+/*
+ * Copyright (c) 2013, 2014 Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * 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 8024521
+ * @summary Closing ProcessPipeInputStream at the time the process exits is racy
+ * and leads to data corruption. Run this test manually (as
+ * an ordinary java program) with -Xmx8M to repro bug 8024521.
+ * @run main/othervm -Xmx8M -Dtest.duration=2 CloseRace
+ */
+
+import java.io.*;
+import java.util.ArrayList;
+import java.util.List;
+
+public class CloseRace {
+ private static final String BIG_FILE = "bigfile";
+
+ private static final int[] procFDs = new int[6];
+
+ /** default value sufficient to repro bug 8024521. */
+ private static final int testDurationSeconds
+ = Integer.getInteger("test.duration", 600);
+
+ static boolean fdInUse(int i) {
+ return new File("/proc/self/fd/" + i).exists();
+ }
+
+ static boolean[] procFDsInUse() {
+ boolean[] inUse = new boolean[procFDs.length];
+ for (int i = 0; i < procFDs.length; i++)
+ inUse[i] = fdInUse(procFDs[i]);
+ return inUse;
+ }
+
+ static int count(boolean[] bits) {
+ int count = 0;
+ for (int i = 0; i < bits.length; i++)
+ count += bits[i] ? 1 : 0;
+ return count;
+ }
+
+ public static void main(String args[]) throws Exception {
+ if (!(new File("/proc/self/fd").isDirectory()))
+ return;
+
+ // Catch Errors from process reaper
+ Thread.setDefaultUncaughtExceptionHandler
+ ((t, e) -> { e.printStackTrace(); System.exit(1); });
+
+ try (RandomAccessFile f = new RandomAccessFile(BIG_FILE, "rw")) {
+ f.setLength(Runtime.getRuntime().maxMemory()); // provoke OOME
+ }
+
+ for (int i = 0, j = 0; j < procFDs.length; i++)
+ if (!fdInUse(i))
+ procFDs[j++] = i;
+
+ Thread[] threads = {
+ new Thread(new OpenLoop()),
+ new Thread(new ExecLoop()),
+ };
+ for (Thread thread : threads)
+ thread.start();
+
+ Thread.sleep(testDurationSeconds * 1000);
+
+ for (Thread thread : threads)
+ thread.interrupt();
+ for (Thread thread : threads)
+ thread.join();
+ }
+
+ static class OpenLoop implements Runnable {
+ public void run() {
+ while (!Thread.interrupted()) {
+ try {
+ // wait for ExecLoop to finish creating process
+ do {} while (count(procFDsInUse()) != 3);
+ List iss = new ArrayList<>(4);
+
+ // eat up three "holes" (closed ends of pipe fd pairs)
+ for (int i = 0; i < 3; i++)
+ iss.add(new FileInputStream(BIG_FILE));
+ do {} while (count(procFDsInUse()) == procFDs.length);
+ // hopefully this will racily occupy empty fd slot
+ iss.add(new FileInputStream(BIG_FILE));
+ Thread.sleep(1); // Widen race window
+ for (InputStream is : iss)
+ is.close();
+ } catch (InterruptedException e) {
+ break;
+ } catch (Exception e) {
+ throw new Error(e);
+ }
+ }
+ }
+ }
+
+ static class ExecLoop implements Runnable {
+ public void run() {
+ ProcessBuilder builder = new ProcessBuilder("/bin/true");
+ while (!Thread.interrupted()) {
+ try {
+ // wait for OpenLoop to finish
+ do {} while (count(procFDsInUse()) > 0);
+ Process process = builder.start();
+ InputStream is = process.getInputStream();
+ process.waitFor();
+ is.close();
+ } catch (InterruptedException e) {
+ break;
+ } catch (Exception e) {
+ throw new Error(e);
+ }
+ }
+ }
+ }
+}
diff --git a/jdk/test/java/lang/Runtime/exec/CloseRace.java b/jdk/test/java/lang/Runtime/exec/CloseRace.java
deleted file mode 100644
index a1e57902e31..00000000000
--- a/jdk/test/java/lang/Runtime/exec/CloseRace.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * Copyright (c) 2013, 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 8024521
- * @summary Closing ProcessPipeInputStream at the time the process exits is racy
- * and leads to the data corruption.
- * @library /lib/testlibrary
- * @run main/othervm/timeout=80 CloseRace
- */
-
-/**
- * This test has a little chance to catch the race during the given default
- * time gap of 20 seconds. To increase the time gap, set the system property
- * CloseRaceTimeGap=N to the number of seconds.
- * Jtreg's timeoutFactor should also be set appropriately.
- *
- * For example, to run the test for 10 minutes:
- * > jtreg \
- * -testjdk:$(PATH_TO_TESTED_JDK) \
- * -timeoutFactor:10 \
- * -DCloseRaceTimeGap=600 \
- * $(PATH_TO_TESTED_JDK_SOURCE)/test/java/lang/Runtime/exec/CloseRace.java
- */
-
-import java.io.*;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.LinkedList;
-import java.util.List;
-import jdk.testlibrary.OutputAnalyzer;
-import static jdk.testlibrary.ProcessTools.*;
-
-public class CloseRace {
-
- public static void main(String args[]) throws Exception {
- ProcessBuilder pb = createJavaProcessBuilder("-Xmx64M", "CloseRace$Child",
- System.getProperty("CloseRaceTimeGap", "20"));
- OutputAnalyzer oa = new OutputAnalyzer(pb.start());
- oa.stderrShouldNotContain("java.lang.OutOfMemoryError");
- }
-
- public static class Child {
- private static final String BIG_FILE = "bigfile";
- private static final String SMALL_FILE = "smallfile";
- private static int timeGap = 20; // seconds
-
- public static void main(String args[]) throws Exception {
- if (args.length > 0) {
- try {
- timeGap = Integer.parseUnsignedInt(args[0]);
- timeGap = Integer.max(timeGap, 10);
- timeGap = Integer.min(timeGap, 10 * 60 * 60); // no more than 10 hours
- } catch (NumberFormatException ignore) {}
- }
- try (RandomAccessFile f = new RandomAccessFile(BIG_FILE, "rw")) {
- f.setLength(1024 * 1024 * 1024); // 1 Gb, greater than max heap size
- }
- try (FileOutputStream fs = new FileOutputStream(SMALL_FILE);
- PrintStream ps = new PrintStream(fs)) {
- for (int i = 0; i < 128; ++i)
- ps.println("line of text");
- }
-
- List threads = new LinkedList<>();
- for (int i = 0; i < 99; ++i) {
- Thread t = new Thread (new OpenLoop());
- t.start();
- threads.add(t);
- }
- Thread t2 = new Thread (new ExecLoop());
- t2.start();
- threads.add(t2);
-
- Thread.sleep(timeGap);
-
- for (Thread t : threads) {
- t.interrupt();
- t.join();
- }
- }
-
- private static class OpenLoop implements Runnable {
- public void run() {
- final Path bigFilePath = Paths.get(BIG_FILE);
- while (!Thread.interrupted()) {
- try (InputStream in = Files.newInputStream(bigFilePath)) {
- // Widen the race window by sleeping 1ms
- Thread.sleep(1);
- } catch (InterruptedException e) {
- break;
- } catch (Exception e) {
- System.err.println(e);
- }
- }
- }
- }
-
- private static class ExecLoop implements Runnable {
- public void run() {
- List command = new ArrayList<>(
- Arrays.asList("/bin/cat", SMALL_FILE));
- while (!Thread.interrupted()) {
- try {
- ProcessBuilder builder = new ProcessBuilder(command);
- final Process process = builder.start();
- InputStream is = process.getInputStream();
- InputStreamReader isr = new InputStreamReader(is);
- BufferedReader br = new BufferedReader(isr);
- while (br.readLine() != null) {}
- process.waitFor();
- isr.close();
- } catch (InterruptedException e) {
- break;
- } catch (Exception e) {
- System.err.println(e);
- }
- }
- }
- }
- }
-}
From b9f32d484285c5122114022115cbaa8a65b30c1f Mon Sep 17 00:00:00 2001
From: Magnus Ihse Bursie
Date: Wed, 29 Jan 2014 22:55:43 +0100
Subject: [PATCH 127/181] 8033119: Improve and document boot-jdk.m4
Reviewed-by: erikj
---
common/autoconf/boot-jdk.m4 | 94 +-
common/autoconf/generated-configure.sh | 2121 ++++++++++++++++++++----
common/autoconf/spec.gmk.in | 16 +-
3 files changed, 1866 insertions(+), 365 deletions(-)
diff --git a/common/autoconf/boot-jdk.m4 b/common/autoconf/boot-jdk.m4
index ad8dab31e73..dde3c926c2f 100644
--- a/common/autoconf/boot-jdk.m4
+++ b/common/autoconf/boot-jdk.m4
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -23,6 +23,34 @@
# questions.
#
+########################################################################
+# This file handles detection of the Boot JDK. The Boot JDK detection
+# process has been developed as a response to solve a complex real-world
+# problem. Initially, it was simple, but it has grown as platform after
+# platform, idiosyncracy after idiosyncracy has been supported.
+#
+# The basic idea is this:
+# 1) You need an acceptable *) JDK to use as a Boot JDK
+# 2) There are several ways to locate a JDK, that are mostly platform
+# dependent **)
+# 3) You can have multiple JDKs installed
+# 4) If possible, configure should try to dig out an acceptable JDK
+# automatically, without having to resort to command-line options
+#
+# *) acceptable means e.g. JDK7 for building JDK8, a complete JDK (with
+# javac) and not a JRE, etc.
+#
+# **) On Windows we typically use a well-known path.
+# On MacOSX we typically use the tool java_home.
+# On Linux we typically find javac in the $PATH, and then follow a
+# chain of symlinks that often ends up in a real JDK.
+#
+# This leads to the code where we check in different ways to locate a
+# JDK, and if one is found, check if it is acceptable. If not, we print
+# our reasons for rejecting it (useful when debugging non-working
+# configure situations) and continue checking the next one.
+########################################################################
+
# Execute the check given as argument, and verify the result
# If the Boot JDK was previously found, do nothing
# $1 A command line (typically autoconf macro) to execute
@@ -54,10 +82,10 @@ AC_DEFUN([BOOTJDK_DO_CHECK],
BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | head -n 1`
# Extra M4 quote needed to protect [] in grep expression.
- [FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep '\"1\.[78]\.'`]
- if test "x$FOUND_VERSION_78" = x; then
+ [FOUND_CORRECT_VERSION=`echo $BOOT_JDK_VERSION | grep '\"1\.[789]\.'`]
+ if test "x$FOUND_CORRECT_VERSION" = x; then
AC_MSG_NOTICE([Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring])
- AC_MSG_NOTICE([(Your Boot JDK must be version 7 or 8)])
+ AC_MSG_NOTICE([(Your Boot JDK must be version 7, 8 or 9)])
BOOT_JDK_FOUND=no
else
# We're done! :-)
@@ -136,12 +164,26 @@ AC_DEFUN([BOOTJDK_CHECK_JAVA_IN_PATH_IS_SYMLINK],
])
# Test: Is there a /usr/libexec/java_home? (Typically on MacOSX)
+# $1: Argument to the java_home binary (optional)
AC_DEFUN([BOOTJDK_CHECK_LIBEXEC_JAVA_HOME],
[
if test -x /usr/libexec/java_home; then
- BOOT_JDK=`/usr/libexec/java_home`
+ BOOT_JDK=`/usr/libexec/java_home $1`
BOOT_JDK_FOUND=maybe
- AC_MSG_NOTICE([Found potential Boot JDK using /usr/libexec/java_home])
+ AC_MSG_NOTICE([Found potential Boot JDK using /usr/libexec/java_home $1])
+ fi
+])
+
+# Test: On MacOS X, can we find a boot jdk using /usr/libexec/java_home?
+AC_DEFUN([BOOTJDK_CHECK_MACOSX_JAVA_LOCATOR],
+[
+ if test "x$OPENJDK_TARGET_OS" = xmacosx; then
+ # First check at user selected default
+ BOOTJDK_DO_CHECK([BOOTJDK_CHECK_LIBEXEC_JAVA_HOME()])
+ # If that did not work out (e.g. too old), try explicit versions instead
+ BOOTJDK_DO_CHECK([BOOTJDK_CHECK_LIBEXEC_JAVA_HOME([-v 1.9])])
+ BOOTJDK_DO_CHECK([BOOTJDK_CHECK_LIBEXEC_JAVA_HOME([-v 1.8])])
+ BOOTJDK_DO_CHECK([BOOTJDK_CHECK_LIBEXEC_JAVA_HOME([-v 1.7])])
fi
])
@@ -201,14 +243,19 @@ AC_DEFUN([BOOTJDK_CHECK_WELL_KNOWN_LOCATIONS],
# $2 = name of binary
AC_DEFUN([BOOTJDK_CHECK_TOOL_IN_BOOTJDK],
[
- AC_MSG_CHECKING([for $2 in Boot JDK])
- $1=$BOOT_JDK/bin/$2
- if test ! -x [$]$1; then
- AC_MSG_RESULT(not found)
- AC_MSG_NOTICE([Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk])
- AC_MSG_ERROR([Could not find $2 in the Boot JDK])
- fi
- AC_MSG_RESULT(ok)
+ # Use user overridden value if available, otherwise locate tool in the Boot JDK.
+ BASIC_SETUP_TOOL($1,
+ [
+ AC_MSG_CHECKING([for $2 in Boot JDK])
+ $1=$BOOT_JDK/bin/$2
+ if test ! -x [$]$1; then
+ AC_MSG_RESULT(not found)
+ AC_MSG_NOTICE([Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk])
+ AC_MSG_ERROR([Could not find $2 in the Boot JDK])
+ fi
+ AC_MSG_RESULT(ok)
+ AC_SUBST($1)
+ ])
])
###############################################################################
@@ -238,12 +285,12 @@ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK],
# Test: Is bootjdk available from builddeps?
BOOTJDK_DO_CHECK([BOOTJDK_CHECK_BUILDDEPS])
+ # Test: On MacOS X, can we find a boot jdk using /usr/libexec/java_home?
+ BOOTJDK_DO_CHECK([BOOTJDK_CHECK_MACOSX_JAVA_LOCATOR])
+
# Test: Is $JAVA_HOME set?
BOOTJDK_DO_CHECK([BOOTJDK_CHECK_JAVA_HOME])
- # Test: Is there a /usr/libexec/java_home? (Typically on MacOSX)
- BOOTJDK_DO_CHECK([BOOTJDK_CHECK_LIBEXEC_JAVA_HOME])
-
# Test: Is there a java or javac in the PATH, which is a symlink to the JDK?
BOOTJDK_DO_CHECK([BOOTJDK_CHECK_JAVA_IN_PATH_IS_SYMLINK])
@@ -275,13 +322,12 @@ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK],
AC_SUBST(BOOT_JDK)
# Setup tools from the Boot JDK.
- BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVA,java)
- BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVAC,javac)
- BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVAH,javah)
- BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVAP,javap)
- BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAR,jar)
- BOOTJDK_CHECK_TOOL_IN_BOOTJDK(RMIC,rmic)
- BOOTJDK_CHECK_TOOL_IN_BOOTJDK(NATIVE2ASCII,native2ascii)
+ BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVA, java)
+ BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVAC, javac)
+ BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVAH, javah)
+ BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAR, jar)
+ BOOTJDK_CHECK_TOOL_IN_BOOTJDK(NATIVE2ASCII, native2ascii)
+ BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JARSIGNER, jarsigner)
# Finally, set some other options...
diff --git a/common/autoconf/generated-configure.sh b/common/autoconf/generated-configure.sh
index f7dc3f66d6d..998d2004ea2 100644
--- a/common/autoconf/generated-configure.sh
+++ b/common/autoconf/generated-configure.sh
@@ -792,6 +792,12 @@ LANGTOOLS_TOPDIR
BOOT_JDK_JVMARGS
JAVAC_FLAGS
BOOT_JDK_SOURCETARGET
+JARSIGNER
+NATIVE2ASCII
+JAR
+JAVAH
+JAVAC
+JAVA
BOOT_JDK
BOOT_TOOLSJAR
BOOT_RTJAR
@@ -1134,6 +1140,12 @@ DSYMUTIL
XATTR
CODESIGN
PKG_CONFIG
+JAVA
+JAVAC
+JAVAH
+JAR
+NATIVE2ASCII
+JARSIGNER
BUILD_CC
BUILD_CXX
BUILD_LD
@@ -1980,6 +1992,13 @@ Some influential environment variables:
XATTR Override default value for XATTR
CODESIGN Override default value for CODESIGN
PKG_CONFIG path to pkg-config utility
+ JAVA Override default value for JAVA
+ JAVAC Override default value for JAVAC
+ JAVAH Override default value for JAVAH
+ JAR Override default value for JAR
+ NATIVE2ASCII
+ Override default value for NATIVE2ASCII
+ JARSIGNER Override default value for JARSIGNER
BUILD_CC Override default value for BUILD_CC
BUILD_CXX Override default value for BUILD_CXX
BUILD_LD Override default value for BUILD_LD
@@ -3485,7 +3504,7 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
# ... then the rest
#
-# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -3509,6 +3528,34 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
# questions.
#
+########################################################################
+# This file handles detection of the Boot JDK. The Boot JDK detection
+# process has been developed as a response to solve a complex real-world
+# problem. Initially, it was simple, but it has grown as platform after
+# platform, idiosyncracy after idiosyncracy has been supported.
+#
+# The basic idea is this:
+# 1) You need an acceptable *) JDK to use as a Boot JDK
+# 2) There are several ways to locate a JDK, that are mostly platform
+# dependent **)
+# 3) You can have multiple JDKs installed
+# 4) If possible, configure should try to dig out an acceptable JDK
+# automatically, without having to resort to command-line options
+#
+# *) acceptable means e.g. JDK7 for building JDK8, a complete JDK (with
+# javac) and not a JRE, etc.
+#
+# **) On Windows we typically use a well-known path.
+# On MacOSX we typically use the tool java_home.
+# On Linux we typically find javac in the $PATH, and then follow a
+# chain of symlinks that often ends up in a real JDK.
+#
+# This leads to the code where we check in different ways to locate a
+# JDK, and if one is found, check if it is acceptable. If not, we print
+# our reasons for rejecting it (useful when debugging non-working
+# configure situations) and continue checking the next one.
+########################################################################
+
# Execute the check given as argument, and verify the result
# If the Boot JDK was previously found, do nothing
# $1 A command line (typically autoconf macro) to execute
@@ -3527,6 +3574,10 @@ ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.
# Test: Is there a /usr/libexec/java_home? (Typically on MacOSX)
+# $1: Argument to the java_home binary (optional)
+
+
+# Test: On MacOS X, can we find a boot jdk using /usr/libexec/java_home?
# Look for a jdk in the given path. If there are multiple, try to select the newest.
@@ -4036,7 +4087,7 @@ fi
#CUSTOM_AUTOCONF_INCLUDE
# Do not change or remove the following line, it is needed for consistency checks:
-DATE_WHEN_GENERATED=1390994270
+DATE_WHEN_GENERATED=1391032272
###############################################################################
#
@@ -19491,12 +19542,12 @@ $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain an rt.ja
BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | head -n 1`
# Extra M4 quote needed to protect [] in grep expression.
- FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep '\"1\.[78]\.'`
- if test "x$FOUND_VERSION_78" = x; then
+ FOUND_CORRECT_VERSION=`echo $BOOT_JDK_VERSION | grep '\"1\.[789]\.'`
+ if test "x$FOUND_CORRECT_VERSION" = x; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5
$as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&6;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7 or 8)" >&5
-$as_echo "$as_me: (Your Boot JDK must be version 7 or 8)" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7, 8 or 9)" >&5
+$as_echo "$as_me: (Your Boot JDK must be version 7, 8 or 9)" >&6;}
BOOT_JDK_FOUND=no
else
# We're done! :-)
@@ -19823,12 +19874,942 @@ $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain an rt.ja
BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | head -n 1`
# Extra M4 quote needed to protect [] in grep expression.
- FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep '\"1\.[78]\.'`
- if test "x$FOUND_VERSION_78" = x; then
+ FOUND_CORRECT_VERSION=`echo $BOOT_JDK_VERSION | grep '\"1\.[789]\.'`
+ if test "x$FOUND_CORRECT_VERSION" = x; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5
$as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&6;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7 or 8)" >&5
-$as_echo "$as_me: (Your Boot JDK must be version 7 or 8)" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7, 8 or 9)" >&5
+$as_echo "$as_me: (Your Boot JDK must be version 7, 8 or 9)" >&6;}
+ BOOT_JDK_FOUND=no
+ else
+ # We're done! :-)
+ BOOT_JDK_FOUND=yes
+
+ if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
+
+ # Input might be given as Windows format, start by converting to
+ # unix format.
+ path="$BOOT_JDK"
+ new_path=`$CYGPATH -u "$path"`
+
+ # Cygwin tries to hide some aspects of the Windows file system, such that binaries are
+ # named .exe but called without that suffix. Therefore, "foo" and "foo.exe" are considered
+ # the same file, most of the time (as in "test -f"). But not when running cygpath -s, then
+ # "foo.exe" is OK but "foo" is an error.
+ #
+ # This test is therefore slightly more accurate than "test -f" to check for file precense.
+ # It is also a way to make sure we got the proper file name for the real test later on.
+ test_shortpath=`$CYGPATH -s -m "$new_path" 2> /dev/null`
+ if test "x$test_shortpath" = x; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5
+$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;}
+ as_fn_error $? "Cannot locate the the path of BOOT_JDK" "$LINENO" 5
+ fi
+
+ # Call helper function which possibly converts this using DOS-style short mode.
+ # If so, the updated path is stored in $new_path.
+
+ input_path="$new_path"
+ # Check if we need to convert this using DOS-style short mode. If the path
+ # contains just simple characters, use it. Otherwise (spaces, weird characters),
+ # take no chances and rewrite it.
+ # Note: m4 eats our [], so we need to use [ and ] instead.
+ has_forbidden_chars=`$ECHO "$input_path" | $GREP [^-._/a-zA-Z0-9]`
+ if test "x$has_forbidden_chars" != x; then
+ # Now convert it to mixed DOS-style, short mode (no spaces, and / instead of \)
+ shortmode_path=`$CYGPATH -s -m -a "$input_path"`
+ path_after_shortmode=`$CYGPATH -u "$shortmode_path"`
+ if test "x$path_after_shortmode" != "x$input_to_shortpath"; then
+ # Going to short mode and back again did indeed matter. Since short mode is
+ # case insensitive, let's make it lowercase to improve readability.
+ shortmode_path=`$ECHO "$shortmode_path" | $TR 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ # Now convert it back to Unix-stile (cygpath)
+ input_path=`$CYGPATH -u "$shortmode_path"`
+ new_path="$input_path"
+ fi
+ fi
+
+ test_cygdrive_prefix=`$ECHO $input_path | $GREP ^/cygdrive/`
+ if test "x$test_cygdrive_prefix" = x; then
+ # As a simple fix, exclude /usr/bin since it's not a real path.
+ if test "x`$ECHO $new_path | $GREP ^/usr/bin/`" = x; then
+ # The path is in a Cygwin special directory (e.g. /home). We need this converted to
+ # a path prefixed by /cygdrive for fixpath to work.
+ new_path="$CYGWIN_ROOT_PATH$input_path"
+ fi
+ fi
+
+
+ if test "x$path" != "x$new_path"; then
+ BOOT_JDK="$new_path"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5
+$as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;}
+ fi
+
+ elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
+
+ path="$BOOT_JDK"
+ has_colon=`$ECHO $path | $GREP ^.:`
+ new_path="$path"
+ if test "x$has_colon" = x; then
+ # Not in mixed or Windows style, start by that.
+ new_path=`cmd //c echo $path`
+ fi
+
+
+ input_path="$new_path"
+ # Check if we need to convert this using DOS-style short mode. If the path
+ # contains just simple characters, use it. Otherwise (spaces, weird characters),
+ # take no chances and rewrite it.
+ # Note: m4 eats our [], so we need to use [ and ] instead.
+ has_forbidden_chars=`$ECHO "$input_path" | $GREP [^-_/:a-zA-Z0-9]`
+ if test "x$has_forbidden_chars" != x; then
+ # Now convert it to mixed DOS-style, short mode (no spaces, and / instead of \)
+ new_path=`cmd /c "for %A in (\"$input_path\") do @echo %~sA"|$TR \\\\\\\\ / | $TR 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ fi
+
+
+ windows_path="$new_path"
+ if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
+ unix_path=`$CYGPATH -u "$windows_path"`
+ new_path="$unix_path"
+ elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
+ unix_path=`$ECHO "$windows_path" | $SED -e 's,^\\(.\\):,/\\1,g' -e 's,\\\\,/,g'`
+ new_path="$unix_path"
+ fi
+
+ if test "x$path" != "x$new_path"; then
+ BOOT_JDK="$new_path"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5
+$as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;}
+ fi
+
+ # Save the first 10 bytes of this path to the storage, so fixpath can work.
+ all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
+
+ else
+ # We're on a posix platform. Hooray! :)
+ path="$BOOT_JDK"
+ has_space=`$ECHO "$path" | $GREP " "`
+ if test "x$has_space" != x; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5
+$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;}
+ as_fn_error $? "Spaces are not allowed in this path." "$LINENO" 5
+ fi
+
+ # Use eval to expand a potential ~
+ eval path="$path"
+ if test ! -f "$path" && test ! -d "$path"; then
+ as_fn_error $? "The path of BOOT_JDK, which resolves as \"$path\", is not found." "$LINENO" 5
+ fi
+
+ BOOT_JDK="`cd "$path"; $THEPWDCMD -L`"
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Boot JDK" >&5
+$as_echo_n "checking for Boot JDK... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK" >&5
+$as_echo "$BOOT_JDK" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Boot JDK version" >&5
+$as_echo_n "checking Boot JDK version... " >&6; }
+ BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | $TR '\n\r' ' '`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK_VERSION" >&5
+$as_echo "$BOOT_JDK_VERSION" >&6; }
+ fi # end check jdk version
+ fi # end check rt.jar
+ fi # end check javac
+ fi # end check java
+ fi # end check boot jdk found
+ fi
+
+
+ # Test: On MacOS X, can we find a boot jdk using /usr/libexec/java_home?
+
+ if test "x$BOOT_JDK_FOUND" = xno; then
+ # Now execute the test
+
+ if test "x$OPENJDK_TARGET_OS" = xmacosx; then
+ # First check at user selected default
+
+ if test "x$BOOT_JDK_FOUND" = xno; then
+ # Now execute the test
+
+ if test -x /usr/libexec/java_home; then
+ BOOT_JDK=`/usr/libexec/java_home `
+ BOOT_JDK_FOUND=maybe
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Found potential Boot JDK using /usr/libexec/java_home " >&5
+$as_echo "$as_me: Found potential Boot JDK using /usr/libexec/java_home " >&6;}
+ fi
+
+
+ # If previous step claimed to have found a JDK, check it to see if it seems to be valid.
+ if test "x$BOOT_JDK_FOUND" = xmaybe; then
+ # Do we have a bin/java?
+ if test ! -x "$BOOT_JDK/bin/java"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&5
+$as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&6;}
+ BOOT_JDK_FOUND=no
+ else
+ # Do we have a bin/javac?
+ if test ! -x "$BOOT_JDK/bin/javac"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&5
+$as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: (This might be an JRE instead of an JDK)" >&5
+$as_echo "$as_me: (This might be an JRE instead of an JDK)" >&6;}
+ BOOT_JDK_FOUND=no
+ else
+ # Do we have an rt.jar? (On MacOSX it is called classes.jar)
+ if test ! -f "$BOOT_JDK/jre/lib/rt.jar" && test ! -f "$BOOT_JDK/../Classes/classes.jar"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&5
+$as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&6;}
+ BOOT_JDK_FOUND=no
+ else
+ # Oh, this is looking good! We probably have found a proper JDK. Is it the correct version?
+ BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | head -n 1`
+
+ # Extra M4 quote needed to protect [] in grep expression.
+ FOUND_CORRECT_VERSION=`echo $BOOT_JDK_VERSION | grep '\"1\.[789]\.'`
+ if test "x$FOUND_CORRECT_VERSION" = x; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5
+$as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7, 8 or 9)" >&5
+$as_echo "$as_me: (Your Boot JDK must be version 7, 8 or 9)" >&6;}
+ BOOT_JDK_FOUND=no
+ else
+ # We're done! :-)
+ BOOT_JDK_FOUND=yes
+
+ if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
+
+ # Input might be given as Windows format, start by converting to
+ # unix format.
+ path="$BOOT_JDK"
+ new_path=`$CYGPATH -u "$path"`
+
+ # Cygwin tries to hide some aspects of the Windows file system, such that binaries are
+ # named .exe but called without that suffix. Therefore, "foo" and "foo.exe" are considered
+ # the same file, most of the time (as in "test -f"). But not when running cygpath -s, then
+ # "foo.exe" is OK but "foo" is an error.
+ #
+ # This test is therefore slightly more accurate than "test -f" to check for file precense.
+ # It is also a way to make sure we got the proper file name for the real test later on.
+ test_shortpath=`$CYGPATH -s -m "$new_path" 2> /dev/null`
+ if test "x$test_shortpath" = x; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5
+$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;}
+ as_fn_error $? "Cannot locate the the path of BOOT_JDK" "$LINENO" 5
+ fi
+
+ # Call helper function which possibly converts this using DOS-style short mode.
+ # If so, the updated path is stored in $new_path.
+
+ input_path="$new_path"
+ # Check if we need to convert this using DOS-style short mode. If the path
+ # contains just simple characters, use it. Otherwise (spaces, weird characters),
+ # take no chances and rewrite it.
+ # Note: m4 eats our [], so we need to use [ and ] instead.
+ has_forbidden_chars=`$ECHO "$input_path" | $GREP [^-._/a-zA-Z0-9]`
+ if test "x$has_forbidden_chars" != x; then
+ # Now convert it to mixed DOS-style, short mode (no spaces, and / instead of \)
+ shortmode_path=`$CYGPATH -s -m -a "$input_path"`
+ path_after_shortmode=`$CYGPATH -u "$shortmode_path"`
+ if test "x$path_after_shortmode" != "x$input_to_shortpath"; then
+ # Going to short mode and back again did indeed matter. Since short mode is
+ # case insensitive, let's make it lowercase to improve readability.
+ shortmode_path=`$ECHO "$shortmode_path" | $TR 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ # Now convert it back to Unix-stile (cygpath)
+ input_path=`$CYGPATH -u "$shortmode_path"`
+ new_path="$input_path"
+ fi
+ fi
+
+ test_cygdrive_prefix=`$ECHO $input_path | $GREP ^/cygdrive/`
+ if test "x$test_cygdrive_prefix" = x; then
+ # As a simple fix, exclude /usr/bin since it's not a real path.
+ if test "x`$ECHO $new_path | $GREP ^/usr/bin/`" = x; then
+ # The path is in a Cygwin special directory (e.g. /home). We need this converted to
+ # a path prefixed by /cygdrive for fixpath to work.
+ new_path="$CYGWIN_ROOT_PATH$input_path"
+ fi
+ fi
+
+
+ if test "x$path" != "x$new_path"; then
+ BOOT_JDK="$new_path"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5
+$as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;}
+ fi
+
+ elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
+
+ path="$BOOT_JDK"
+ has_colon=`$ECHO $path | $GREP ^.:`
+ new_path="$path"
+ if test "x$has_colon" = x; then
+ # Not in mixed or Windows style, start by that.
+ new_path=`cmd //c echo $path`
+ fi
+
+
+ input_path="$new_path"
+ # Check if we need to convert this using DOS-style short mode. If the path
+ # contains just simple characters, use it. Otherwise (spaces, weird characters),
+ # take no chances and rewrite it.
+ # Note: m4 eats our [], so we need to use [ and ] instead.
+ has_forbidden_chars=`$ECHO "$input_path" | $GREP [^-_/:a-zA-Z0-9]`
+ if test "x$has_forbidden_chars" != x; then
+ # Now convert it to mixed DOS-style, short mode (no spaces, and / instead of \)
+ new_path=`cmd /c "for %A in (\"$input_path\") do @echo %~sA"|$TR \\\\\\\\ / | $TR 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ fi
+
+
+ windows_path="$new_path"
+ if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
+ unix_path=`$CYGPATH -u "$windows_path"`
+ new_path="$unix_path"
+ elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
+ unix_path=`$ECHO "$windows_path" | $SED -e 's,^\\(.\\):,/\\1,g' -e 's,\\\\,/,g'`
+ new_path="$unix_path"
+ fi
+
+ if test "x$path" != "x$new_path"; then
+ BOOT_JDK="$new_path"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5
+$as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;}
+ fi
+
+ # Save the first 10 bytes of this path to the storage, so fixpath can work.
+ all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
+
+ else
+ # We're on a posix platform. Hooray! :)
+ path="$BOOT_JDK"
+ has_space=`$ECHO "$path" | $GREP " "`
+ if test "x$has_space" != x; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5
+$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;}
+ as_fn_error $? "Spaces are not allowed in this path." "$LINENO" 5
+ fi
+
+ # Use eval to expand a potential ~
+ eval path="$path"
+ if test ! -f "$path" && test ! -d "$path"; then
+ as_fn_error $? "The path of BOOT_JDK, which resolves as \"$path\", is not found." "$LINENO" 5
+ fi
+
+ BOOT_JDK="`cd "$path"; $THEPWDCMD -L`"
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Boot JDK" >&5
+$as_echo_n "checking for Boot JDK... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK" >&5
+$as_echo "$BOOT_JDK" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Boot JDK version" >&5
+$as_echo_n "checking Boot JDK version... " >&6; }
+ BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | $TR '\n\r' ' '`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK_VERSION" >&5
+$as_echo "$BOOT_JDK_VERSION" >&6; }
+ fi # end check jdk version
+ fi # end check rt.jar
+ fi # end check javac
+ fi # end check java
+ fi # end check boot jdk found
+ fi
+
+ # If that did not work out (e.g. too old), try explicit versions instead
+
+ if test "x$BOOT_JDK_FOUND" = xno; then
+ # Now execute the test
+
+ if test -x /usr/libexec/java_home; then
+ BOOT_JDK=`/usr/libexec/java_home -v 1.9`
+ BOOT_JDK_FOUND=maybe
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Found potential Boot JDK using /usr/libexec/java_home -v 1.9" >&5
+$as_echo "$as_me: Found potential Boot JDK using /usr/libexec/java_home -v 1.9" >&6;}
+ fi
+
+
+ # If previous step claimed to have found a JDK, check it to see if it seems to be valid.
+ if test "x$BOOT_JDK_FOUND" = xmaybe; then
+ # Do we have a bin/java?
+ if test ! -x "$BOOT_JDK/bin/java"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&5
+$as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&6;}
+ BOOT_JDK_FOUND=no
+ else
+ # Do we have a bin/javac?
+ if test ! -x "$BOOT_JDK/bin/javac"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&5
+$as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: (This might be an JRE instead of an JDK)" >&5
+$as_echo "$as_me: (This might be an JRE instead of an JDK)" >&6;}
+ BOOT_JDK_FOUND=no
+ else
+ # Do we have an rt.jar? (On MacOSX it is called classes.jar)
+ if test ! -f "$BOOT_JDK/jre/lib/rt.jar" && test ! -f "$BOOT_JDK/../Classes/classes.jar"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&5
+$as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&6;}
+ BOOT_JDK_FOUND=no
+ else
+ # Oh, this is looking good! We probably have found a proper JDK. Is it the correct version?
+ BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | head -n 1`
+
+ # Extra M4 quote needed to protect [] in grep expression.
+ FOUND_CORRECT_VERSION=`echo $BOOT_JDK_VERSION | grep '\"1\.[789]\.'`
+ if test "x$FOUND_CORRECT_VERSION" = x; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5
+$as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7, 8 or 9)" >&5
+$as_echo "$as_me: (Your Boot JDK must be version 7, 8 or 9)" >&6;}
+ BOOT_JDK_FOUND=no
+ else
+ # We're done! :-)
+ BOOT_JDK_FOUND=yes
+
+ if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
+
+ # Input might be given as Windows format, start by converting to
+ # unix format.
+ path="$BOOT_JDK"
+ new_path=`$CYGPATH -u "$path"`
+
+ # Cygwin tries to hide some aspects of the Windows file system, such that binaries are
+ # named .exe but called without that suffix. Therefore, "foo" and "foo.exe" are considered
+ # the same file, most of the time (as in "test -f"). But not when running cygpath -s, then
+ # "foo.exe" is OK but "foo" is an error.
+ #
+ # This test is therefore slightly more accurate than "test -f" to check for file precense.
+ # It is also a way to make sure we got the proper file name for the real test later on.
+ test_shortpath=`$CYGPATH -s -m "$new_path" 2> /dev/null`
+ if test "x$test_shortpath" = x; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5
+$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;}
+ as_fn_error $? "Cannot locate the the path of BOOT_JDK" "$LINENO" 5
+ fi
+
+ # Call helper function which possibly converts this using DOS-style short mode.
+ # If so, the updated path is stored in $new_path.
+
+ input_path="$new_path"
+ # Check if we need to convert this using DOS-style short mode. If the path
+ # contains just simple characters, use it. Otherwise (spaces, weird characters),
+ # take no chances and rewrite it.
+ # Note: m4 eats our [], so we need to use [ and ] instead.
+ has_forbidden_chars=`$ECHO "$input_path" | $GREP [^-._/a-zA-Z0-9]`
+ if test "x$has_forbidden_chars" != x; then
+ # Now convert it to mixed DOS-style, short mode (no spaces, and / instead of \)
+ shortmode_path=`$CYGPATH -s -m -a "$input_path"`
+ path_after_shortmode=`$CYGPATH -u "$shortmode_path"`
+ if test "x$path_after_shortmode" != "x$input_to_shortpath"; then
+ # Going to short mode and back again did indeed matter. Since short mode is
+ # case insensitive, let's make it lowercase to improve readability.
+ shortmode_path=`$ECHO "$shortmode_path" | $TR 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ # Now convert it back to Unix-stile (cygpath)
+ input_path=`$CYGPATH -u "$shortmode_path"`
+ new_path="$input_path"
+ fi
+ fi
+
+ test_cygdrive_prefix=`$ECHO $input_path | $GREP ^/cygdrive/`
+ if test "x$test_cygdrive_prefix" = x; then
+ # As a simple fix, exclude /usr/bin since it's not a real path.
+ if test "x`$ECHO $new_path | $GREP ^/usr/bin/`" = x; then
+ # The path is in a Cygwin special directory (e.g. /home). We need this converted to
+ # a path prefixed by /cygdrive for fixpath to work.
+ new_path="$CYGWIN_ROOT_PATH$input_path"
+ fi
+ fi
+
+
+ if test "x$path" != "x$new_path"; then
+ BOOT_JDK="$new_path"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5
+$as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;}
+ fi
+
+ elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
+
+ path="$BOOT_JDK"
+ has_colon=`$ECHO $path | $GREP ^.:`
+ new_path="$path"
+ if test "x$has_colon" = x; then
+ # Not in mixed or Windows style, start by that.
+ new_path=`cmd //c echo $path`
+ fi
+
+
+ input_path="$new_path"
+ # Check if we need to convert this using DOS-style short mode. If the path
+ # contains just simple characters, use it. Otherwise (spaces, weird characters),
+ # take no chances and rewrite it.
+ # Note: m4 eats our [], so we need to use [ and ] instead.
+ has_forbidden_chars=`$ECHO "$input_path" | $GREP [^-_/:a-zA-Z0-9]`
+ if test "x$has_forbidden_chars" != x; then
+ # Now convert it to mixed DOS-style, short mode (no spaces, and / instead of \)
+ new_path=`cmd /c "for %A in (\"$input_path\") do @echo %~sA"|$TR \\\\\\\\ / | $TR 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ fi
+
+
+ windows_path="$new_path"
+ if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
+ unix_path=`$CYGPATH -u "$windows_path"`
+ new_path="$unix_path"
+ elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
+ unix_path=`$ECHO "$windows_path" | $SED -e 's,^\\(.\\):,/\\1,g' -e 's,\\\\,/,g'`
+ new_path="$unix_path"
+ fi
+
+ if test "x$path" != "x$new_path"; then
+ BOOT_JDK="$new_path"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5
+$as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;}
+ fi
+
+ # Save the first 10 bytes of this path to the storage, so fixpath can work.
+ all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
+
+ else
+ # We're on a posix platform. Hooray! :)
+ path="$BOOT_JDK"
+ has_space=`$ECHO "$path" | $GREP " "`
+ if test "x$has_space" != x; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5
+$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;}
+ as_fn_error $? "Spaces are not allowed in this path." "$LINENO" 5
+ fi
+
+ # Use eval to expand a potential ~
+ eval path="$path"
+ if test ! -f "$path" && test ! -d "$path"; then
+ as_fn_error $? "The path of BOOT_JDK, which resolves as \"$path\", is not found." "$LINENO" 5
+ fi
+
+ BOOT_JDK="`cd "$path"; $THEPWDCMD -L`"
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Boot JDK" >&5
+$as_echo_n "checking for Boot JDK... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK" >&5
+$as_echo "$BOOT_JDK" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Boot JDK version" >&5
+$as_echo_n "checking Boot JDK version... " >&6; }
+ BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | $TR '\n\r' ' '`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK_VERSION" >&5
+$as_echo "$BOOT_JDK_VERSION" >&6; }
+ fi # end check jdk version
+ fi # end check rt.jar
+ fi # end check javac
+ fi # end check java
+ fi # end check boot jdk found
+ fi
+
+
+ if test "x$BOOT_JDK_FOUND" = xno; then
+ # Now execute the test
+
+ if test -x /usr/libexec/java_home; then
+ BOOT_JDK=`/usr/libexec/java_home -v 1.8`
+ BOOT_JDK_FOUND=maybe
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Found potential Boot JDK using /usr/libexec/java_home -v 1.8" >&5
+$as_echo "$as_me: Found potential Boot JDK using /usr/libexec/java_home -v 1.8" >&6;}
+ fi
+
+
+ # If previous step claimed to have found a JDK, check it to see if it seems to be valid.
+ if test "x$BOOT_JDK_FOUND" = xmaybe; then
+ # Do we have a bin/java?
+ if test ! -x "$BOOT_JDK/bin/java"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&5
+$as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&6;}
+ BOOT_JDK_FOUND=no
+ else
+ # Do we have a bin/javac?
+ if test ! -x "$BOOT_JDK/bin/javac"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&5
+$as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: (This might be an JRE instead of an JDK)" >&5
+$as_echo "$as_me: (This might be an JRE instead of an JDK)" >&6;}
+ BOOT_JDK_FOUND=no
+ else
+ # Do we have an rt.jar? (On MacOSX it is called classes.jar)
+ if test ! -f "$BOOT_JDK/jre/lib/rt.jar" && test ! -f "$BOOT_JDK/../Classes/classes.jar"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&5
+$as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&6;}
+ BOOT_JDK_FOUND=no
+ else
+ # Oh, this is looking good! We probably have found a proper JDK. Is it the correct version?
+ BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | head -n 1`
+
+ # Extra M4 quote needed to protect [] in grep expression.
+ FOUND_CORRECT_VERSION=`echo $BOOT_JDK_VERSION | grep '\"1\.[789]\.'`
+ if test "x$FOUND_CORRECT_VERSION" = x; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5
+$as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7, 8 or 9)" >&5
+$as_echo "$as_me: (Your Boot JDK must be version 7, 8 or 9)" >&6;}
+ BOOT_JDK_FOUND=no
+ else
+ # We're done! :-)
+ BOOT_JDK_FOUND=yes
+
+ if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
+
+ # Input might be given as Windows format, start by converting to
+ # unix format.
+ path="$BOOT_JDK"
+ new_path=`$CYGPATH -u "$path"`
+
+ # Cygwin tries to hide some aspects of the Windows file system, such that binaries are
+ # named .exe but called without that suffix. Therefore, "foo" and "foo.exe" are considered
+ # the same file, most of the time (as in "test -f"). But not when running cygpath -s, then
+ # "foo.exe" is OK but "foo" is an error.
+ #
+ # This test is therefore slightly more accurate than "test -f" to check for file precense.
+ # It is also a way to make sure we got the proper file name for the real test later on.
+ test_shortpath=`$CYGPATH -s -m "$new_path" 2> /dev/null`
+ if test "x$test_shortpath" = x; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5
+$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;}
+ as_fn_error $? "Cannot locate the the path of BOOT_JDK" "$LINENO" 5
+ fi
+
+ # Call helper function which possibly converts this using DOS-style short mode.
+ # If so, the updated path is stored in $new_path.
+
+ input_path="$new_path"
+ # Check if we need to convert this using DOS-style short mode. If the path
+ # contains just simple characters, use it. Otherwise (spaces, weird characters),
+ # take no chances and rewrite it.
+ # Note: m4 eats our [], so we need to use [ and ] instead.
+ has_forbidden_chars=`$ECHO "$input_path" | $GREP [^-._/a-zA-Z0-9]`
+ if test "x$has_forbidden_chars" != x; then
+ # Now convert it to mixed DOS-style, short mode (no spaces, and / instead of \)
+ shortmode_path=`$CYGPATH -s -m -a "$input_path"`
+ path_after_shortmode=`$CYGPATH -u "$shortmode_path"`
+ if test "x$path_after_shortmode" != "x$input_to_shortpath"; then
+ # Going to short mode and back again did indeed matter. Since short mode is
+ # case insensitive, let's make it lowercase to improve readability.
+ shortmode_path=`$ECHO "$shortmode_path" | $TR 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ # Now convert it back to Unix-stile (cygpath)
+ input_path=`$CYGPATH -u "$shortmode_path"`
+ new_path="$input_path"
+ fi
+ fi
+
+ test_cygdrive_prefix=`$ECHO $input_path | $GREP ^/cygdrive/`
+ if test "x$test_cygdrive_prefix" = x; then
+ # As a simple fix, exclude /usr/bin since it's not a real path.
+ if test "x`$ECHO $new_path | $GREP ^/usr/bin/`" = x; then
+ # The path is in a Cygwin special directory (e.g. /home). We need this converted to
+ # a path prefixed by /cygdrive for fixpath to work.
+ new_path="$CYGWIN_ROOT_PATH$input_path"
+ fi
+ fi
+
+
+ if test "x$path" != "x$new_path"; then
+ BOOT_JDK="$new_path"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5
+$as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;}
+ fi
+
+ elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
+
+ path="$BOOT_JDK"
+ has_colon=`$ECHO $path | $GREP ^.:`
+ new_path="$path"
+ if test "x$has_colon" = x; then
+ # Not in mixed or Windows style, start by that.
+ new_path=`cmd //c echo $path`
+ fi
+
+
+ input_path="$new_path"
+ # Check if we need to convert this using DOS-style short mode. If the path
+ # contains just simple characters, use it. Otherwise (spaces, weird characters),
+ # take no chances and rewrite it.
+ # Note: m4 eats our [], so we need to use [ and ] instead.
+ has_forbidden_chars=`$ECHO "$input_path" | $GREP [^-_/:a-zA-Z0-9]`
+ if test "x$has_forbidden_chars" != x; then
+ # Now convert it to mixed DOS-style, short mode (no spaces, and / instead of \)
+ new_path=`cmd /c "for %A in (\"$input_path\") do @echo %~sA"|$TR \\\\\\\\ / | $TR 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ fi
+
+
+ windows_path="$new_path"
+ if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
+ unix_path=`$CYGPATH -u "$windows_path"`
+ new_path="$unix_path"
+ elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
+ unix_path=`$ECHO "$windows_path" | $SED -e 's,^\\(.\\):,/\\1,g' -e 's,\\\\,/,g'`
+ new_path="$unix_path"
+ fi
+
+ if test "x$path" != "x$new_path"; then
+ BOOT_JDK="$new_path"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5
+$as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;}
+ fi
+
+ # Save the first 10 bytes of this path to the storage, so fixpath can work.
+ all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
+
+ else
+ # We're on a posix platform. Hooray! :)
+ path="$BOOT_JDK"
+ has_space=`$ECHO "$path" | $GREP " "`
+ if test "x$has_space" != x; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5
+$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;}
+ as_fn_error $? "Spaces are not allowed in this path." "$LINENO" 5
+ fi
+
+ # Use eval to expand a potential ~
+ eval path="$path"
+ if test ! -f "$path" && test ! -d "$path"; then
+ as_fn_error $? "The path of BOOT_JDK, which resolves as \"$path\", is not found." "$LINENO" 5
+ fi
+
+ BOOT_JDK="`cd "$path"; $THEPWDCMD -L`"
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Boot JDK" >&5
+$as_echo_n "checking for Boot JDK... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK" >&5
+$as_echo "$BOOT_JDK" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Boot JDK version" >&5
+$as_echo_n "checking Boot JDK version... " >&6; }
+ BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | $TR '\n\r' ' '`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK_VERSION" >&5
+$as_echo "$BOOT_JDK_VERSION" >&6; }
+ fi # end check jdk version
+ fi # end check rt.jar
+ fi # end check javac
+ fi # end check java
+ fi # end check boot jdk found
+ fi
+
+
+ if test "x$BOOT_JDK_FOUND" = xno; then
+ # Now execute the test
+
+ if test -x /usr/libexec/java_home; then
+ BOOT_JDK=`/usr/libexec/java_home -v 1.7`
+ BOOT_JDK_FOUND=maybe
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Found potential Boot JDK using /usr/libexec/java_home -v 1.7" >&5
+$as_echo "$as_me: Found potential Boot JDK using /usr/libexec/java_home -v 1.7" >&6;}
+ fi
+
+
+ # If previous step claimed to have found a JDK, check it to see if it seems to be valid.
+ if test "x$BOOT_JDK_FOUND" = xmaybe; then
+ # Do we have a bin/java?
+ if test ! -x "$BOOT_JDK/bin/java"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&5
+$as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&6;}
+ BOOT_JDK_FOUND=no
+ else
+ # Do we have a bin/javac?
+ if test ! -x "$BOOT_JDK/bin/javac"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&5
+$as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: (This might be an JRE instead of an JDK)" >&5
+$as_echo "$as_me: (This might be an JRE instead of an JDK)" >&6;}
+ BOOT_JDK_FOUND=no
+ else
+ # Do we have an rt.jar? (On MacOSX it is called classes.jar)
+ if test ! -f "$BOOT_JDK/jre/lib/rt.jar" && test ! -f "$BOOT_JDK/../Classes/classes.jar"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&5
+$as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&6;}
+ BOOT_JDK_FOUND=no
+ else
+ # Oh, this is looking good! We probably have found a proper JDK. Is it the correct version?
+ BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | head -n 1`
+
+ # Extra M4 quote needed to protect [] in grep expression.
+ FOUND_CORRECT_VERSION=`echo $BOOT_JDK_VERSION | grep '\"1\.[789]\.'`
+ if test "x$FOUND_CORRECT_VERSION" = x; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5
+$as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7, 8 or 9)" >&5
+$as_echo "$as_me: (Your Boot JDK must be version 7, 8 or 9)" >&6;}
+ BOOT_JDK_FOUND=no
+ else
+ # We're done! :-)
+ BOOT_JDK_FOUND=yes
+
+ if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
+
+ # Input might be given as Windows format, start by converting to
+ # unix format.
+ path="$BOOT_JDK"
+ new_path=`$CYGPATH -u "$path"`
+
+ # Cygwin tries to hide some aspects of the Windows file system, such that binaries are
+ # named .exe but called without that suffix. Therefore, "foo" and "foo.exe" are considered
+ # the same file, most of the time (as in "test -f"). But not when running cygpath -s, then
+ # "foo.exe" is OK but "foo" is an error.
+ #
+ # This test is therefore slightly more accurate than "test -f" to check for file precense.
+ # It is also a way to make sure we got the proper file name for the real test later on.
+ test_shortpath=`$CYGPATH -s -m "$new_path" 2> /dev/null`
+ if test "x$test_shortpath" = x; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5
+$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;}
+ as_fn_error $? "Cannot locate the the path of BOOT_JDK" "$LINENO" 5
+ fi
+
+ # Call helper function which possibly converts this using DOS-style short mode.
+ # If so, the updated path is stored in $new_path.
+
+ input_path="$new_path"
+ # Check if we need to convert this using DOS-style short mode. If the path
+ # contains just simple characters, use it. Otherwise (spaces, weird characters),
+ # take no chances and rewrite it.
+ # Note: m4 eats our [], so we need to use [ and ] instead.
+ has_forbidden_chars=`$ECHO "$input_path" | $GREP [^-._/a-zA-Z0-9]`
+ if test "x$has_forbidden_chars" != x; then
+ # Now convert it to mixed DOS-style, short mode (no spaces, and / instead of \)
+ shortmode_path=`$CYGPATH -s -m -a "$input_path"`
+ path_after_shortmode=`$CYGPATH -u "$shortmode_path"`
+ if test "x$path_after_shortmode" != "x$input_to_shortpath"; then
+ # Going to short mode and back again did indeed matter. Since short mode is
+ # case insensitive, let's make it lowercase to improve readability.
+ shortmode_path=`$ECHO "$shortmode_path" | $TR 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ # Now convert it back to Unix-stile (cygpath)
+ input_path=`$CYGPATH -u "$shortmode_path"`
+ new_path="$input_path"
+ fi
+ fi
+
+ test_cygdrive_prefix=`$ECHO $input_path | $GREP ^/cygdrive/`
+ if test "x$test_cygdrive_prefix" = x; then
+ # As a simple fix, exclude /usr/bin since it's not a real path.
+ if test "x`$ECHO $new_path | $GREP ^/usr/bin/`" = x; then
+ # The path is in a Cygwin special directory (e.g. /home). We need this converted to
+ # a path prefixed by /cygdrive for fixpath to work.
+ new_path="$CYGWIN_ROOT_PATH$input_path"
+ fi
+ fi
+
+
+ if test "x$path" != "x$new_path"; then
+ BOOT_JDK="$new_path"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5
+$as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;}
+ fi
+
+ elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
+
+ path="$BOOT_JDK"
+ has_colon=`$ECHO $path | $GREP ^.:`
+ new_path="$path"
+ if test "x$has_colon" = x; then
+ # Not in mixed or Windows style, start by that.
+ new_path=`cmd //c echo $path`
+ fi
+
+
+ input_path="$new_path"
+ # Check if we need to convert this using DOS-style short mode. If the path
+ # contains just simple characters, use it. Otherwise (spaces, weird characters),
+ # take no chances and rewrite it.
+ # Note: m4 eats our [], so we need to use [ and ] instead.
+ has_forbidden_chars=`$ECHO "$input_path" | $GREP [^-_/:a-zA-Z0-9]`
+ if test "x$has_forbidden_chars" != x; then
+ # Now convert it to mixed DOS-style, short mode (no spaces, and / instead of \)
+ new_path=`cmd /c "for %A in (\"$input_path\") do @echo %~sA"|$TR \\\\\\\\ / | $TR 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ fi
+
+
+ windows_path="$new_path"
+ if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
+ unix_path=`$CYGPATH -u "$windows_path"`
+ new_path="$unix_path"
+ elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
+ unix_path=`$ECHO "$windows_path" | $SED -e 's,^\\(.\\):,/\\1,g' -e 's,\\\\,/,g'`
+ new_path="$unix_path"
+ fi
+
+ if test "x$path" != "x$new_path"; then
+ BOOT_JDK="$new_path"
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5
+$as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;}
+ fi
+
+ # Save the first 10 bytes of this path to the storage, so fixpath can work.
+ all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
+
+ else
+ # We're on a posix platform. Hooray! :)
+ path="$BOOT_JDK"
+ has_space=`$ECHO "$path" | $GREP " "`
+ if test "x$has_space" != x; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5
+$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;}
+ as_fn_error $? "Spaces are not allowed in this path." "$LINENO" 5
+ fi
+
+ # Use eval to expand a potential ~
+ eval path="$path"
+ if test ! -f "$path" && test ! -d "$path"; then
+ as_fn_error $? "The path of BOOT_JDK, which resolves as \"$path\", is not found." "$LINENO" 5
+ fi
+
+ BOOT_JDK="`cd "$path"; $THEPWDCMD -L`"
+ fi
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Boot JDK" >&5
+$as_echo_n "checking for Boot JDK... " >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK" >&5
+$as_echo "$BOOT_JDK" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking Boot JDK version" >&5
+$as_echo_n "checking Boot JDK version... " >&6; }
+ BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | $TR '\n\r' ' '`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK_VERSION" >&5
+$as_echo "$BOOT_JDK_VERSION" >&6; }
+ fi # end check jdk version
+ fi # end check rt.jar
+ fi # end check javac
+ fi # end check java
+ fi # end check boot jdk found
+ fi
+
+ fi
+
+
+ # If previous step claimed to have found a JDK, check it to see if it seems to be valid.
+ if test "x$BOOT_JDK_FOUND" = xmaybe; then
+ # Do we have a bin/java?
+ if test ! -x "$BOOT_JDK/bin/java"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&5
+$as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&6;}
+ BOOT_JDK_FOUND=no
+ else
+ # Do we have a bin/javac?
+ if test ! -x "$BOOT_JDK/bin/javac"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&5
+$as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: (This might be an JRE instead of an JDK)" >&5
+$as_echo "$as_me: (This might be an JRE instead of an JDK)" >&6;}
+ BOOT_JDK_FOUND=no
+ else
+ # Do we have an rt.jar? (On MacOSX it is called classes.jar)
+ if test ! -f "$BOOT_JDK/jre/lib/rt.jar" && test ! -f "$BOOT_JDK/../Classes/classes.jar"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&5
+$as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&6;}
+ BOOT_JDK_FOUND=no
+ else
+ # Oh, this is looking good! We probably have found a proper JDK. Is it the correct version?
+ BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | head -n 1`
+
+ # Extra M4 quote needed to protect [] in grep expression.
+ FOUND_CORRECT_VERSION=`echo $BOOT_JDK_VERSION | grep '\"1\.[789]\.'`
+ if test "x$FOUND_CORRECT_VERSION" = x; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5
+$as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7, 8 or 9)" >&5
+$as_echo "$as_me: (Your Boot JDK must be version 7, 8 or 9)" >&6;}
BOOT_JDK_FOUND=no
else
# We're done! :-)
@@ -20141,200 +21122,12 @@ $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain an rt.ja
BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | head -n 1`
# Extra M4 quote needed to protect [] in grep expression.
- FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep '\"1\.[78]\.'`
- if test "x$FOUND_VERSION_78" = x; then
+ FOUND_CORRECT_VERSION=`echo $BOOT_JDK_VERSION | grep '\"1\.[789]\.'`
+ if test "x$FOUND_CORRECT_VERSION" = x; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5
$as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&6;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7 or 8)" >&5
-$as_echo "$as_me: (Your Boot JDK must be version 7 or 8)" >&6;}
- BOOT_JDK_FOUND=no
- else
- # We're done! :-)
- BOOT_JDK_FOUND=yes
-
- if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
-
- # Input might be given as Windows format, start by converting to
- # unix format.
- path="$BOOT_JDK"
- new_path=`$CYGPATH -u "$path"`
-
- # Cygwin tries to hide some aspects of the Windows file system, such that binaries are
- # named .exe but called without that suffix. Therefore, "foo" and "foo.exe" are considered
- # the same file, most of the time (as in "test -f"). But not when running cygpath -s, then
- # "foo.exe" is OK but "foo" is an error.
- #
- # This test is therefore slightly more accurate than "test -f" to check for file precense.
- # It is also a way to make sure we got the proper file name for the real test later on.
- test_shortpath=`$CYGPATH -s -m "$new_path" 2> /dev/null`
- if test "x$test_shortpath" = x; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5
-$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;}
- as_fn_error $? "Cannot locate the the path of BOOT_JDK" "$LINENO" 5
- fi
-
- # Call helper function which possibly converts this using DOS-style short mode.
- # If so, the updated path is stored in $new_path.
-
- input_path="$new_path"
- # Check if we need to convert this using DOS-style short mode. If the path
- # contains just simple characters, use it. Otherwise (spaces, weird characters),
- # take no chances and rewrite it.
- # Note: m4 eats our [], so we need to use [ and ] instead.
- has_forbidden_chars=`$ECHO "$input_path" | $GREP [^-._/a-zA-Z0-9]`
- if test "x$has_forbidden_chars" != x; then
- # Now convert it to mixed DOS-style, short mode (no spaces, and / instead of \)
- shortmode_path=`$CYGPATH -s -m -a "$input_path"`
- path_after_shortmode=`$CYGPATH -u "$shortmode_path"`
- if test "x$path_after_shortmode" != "x$input_to_shortpath"; then
- # Going to short mode and back again did indeed matter. Since short mode is
- # case insensitive, let's make it lowercase to improve readability.
- shortmode_path=`$ECHO "$shortmode_path" | $TR 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- # Now convert it back to Unix-stile (cygpath)
- input_path=`$CYGPATH -u "$shortmode_path"`
- new_path="$input_path"
- fi
- fi
-
- test_cygdrive_prefix=`$ECHO $input_path | $GREP ^/cygdrive/`
- if test "x$test_cygdrive_prefix" = x; then
- # As a simple fix, exclude /usr/bin since it's not a real path.
- if test "x`$ECHO $new_path | $GREP ^/usr/bin/`" = x; then
- # The path is in a Cygwin special directory (e.g. /home). We need this converted to
- # a path prefixed by /cygdrive for fixpath to work.
- new_path="$CYGWIN_ROOT_PATH$input_path"
- fi
- fi
-
-
- if test "x$path" != "x$new_path"; then
- BOOT_JDK="$new_path"
- { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5
-$as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;}
- fi
-
- elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
-
- path="$BOOT_JDK"
- has_colon=`$ECHO $path | $GREP ^.:`
- new_path="$path"
- if test "x$has_colon" = x; then
- # Not in mixed or Windows style, start by that.
- new_path=`cmd //c echo $path`
- fi
-
-
- input_path="$new_path"
- # Check if we need to convert this using DOS-style short mode. If the path
- # contains just simple characters, use it. Otherwise (spaces, weird characters),
- # take no chances and rewrite it.
- # Note: m4 eats our [], so we need to use [ and ] instead.
- has_forbidden_chars=`$ECHO "$input_path" | $GREP [^-_/:a-zA-Z0-9]`
- if test "x$has_forbidden_chars" != x; then
- # Now convert it to mixed DOS-style, short mode (no spaces, and / instead of \)
- new_path=`cmd /c "for %A in (\"$input_path\") do @echo %~sA"|$TR \\\\\\\\ / | $TR 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- fi
-
-
- windows_path="$new_path"
- if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
- unix_path=`$CYGPATH -u "$windows_path"`
- new_path="$unix_path"
- elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
- unix_path=`$ECHO "$windows_path" | $SED -e 's,^\\(.\\):,/\\1,g' -e 's,\\\\,/,g'`
- new_path="$unix_path"
- fi
-
- if test "x$path" != "x$new_path"; then
- BOOT_JDK="$new_path"
- { $as_echo "$as_me:${as_lineno-$LINENO}: Rewriting BOOT_JDK to \"$new_path\"" >&5
-$as_echo "$as_me: Rewriting BOOT_JDK to \"$new_path\"" >&6;}
- fi
-
- # Save the first 10 bytes of this path to the storage, so fixpath can work.
- all_fixpath_prefixes=("${all_fixpath_prefixes[@]}" "${new_path:0:10}")
-
- else
- # We're on a posix platform. Hooray! :)
- path="$BOOT_JDK"
- has_space=`$ECHO "$path" | $GREP " "`
- if test "x$has_space" != x; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&5
-$as_echo "$as_me: The path of BOOT_JDK, which resolves as \"$path\", is invalid." >&6;}
- as_fn_error $? "Spaces are not allowed in this path." "$LINENO" 5
- fi
-
- # Use eval to expand a potential ~
- eval path="$path"
- if test ! -f "$path" && test ! -d "$path"; then
- as_fn_error $? "The path of BOOT_JDK, which resolves as \"$path\", is not found." "$LINENO" 5
- fi
-
- BOOT_JDK="`cd "$path"; $THEPWDCMD -L`"
- fi
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Boot JDK" >&5
-$as_echo_n "checking for Boot JDK... " >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK" >&5
-$as_echo "$BOOT_JDK" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking Boot JDK version" >&5
-$as_echo_n "checking Boot JDK version... " >&6; }
- BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | $TR '\n\r' ' '`
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BOOT_JDK_VERSION" >&5
-$as_echo "$BOOT_JDK_VERSION" >&6; }
- fi # end check jdk version
- fi # end check rt.jar
- fi # end check javac
- fi # end check java
- fi # end check boot jdk found
- fi
-
-
- # Test: Is there a /usr/libexec/java_home? (Typically on MacOSX)
-
- if test "x$BOOT_JDK_FOUND" = xno; then
- # Now execute the test
-
- if test -x /usr/libexec/java_home; then
- BOOT_JDK=`/usr/libexec/java_home`
- BOOT_JDK_FOUND=maybe
- { $as_echo "$as_me:${as_lineno-$LINENO}: Found potential Boot JDK using /usr/libexec/java_home" >&5
-$as_echo "$as_me: Found potential Boot JDK using /usr/libexec/java_home" >&6;}
- fi
-
-
- # If previous step claimed to have found a JDK, check it to see if it seems to be valid.
- if test "x$BOOT_JDK_FOUND" = xmaybe; then
- # Do we have a bin/java?
- if test ! -x "$BOOT_JDK/bin/java"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&5
-$as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring" >&6;}
- BOOT_JDK_FOUND=no
- else
- # Do we have a bin/javac?
- if test ! -x "$BOOT_JDK/bin/javac"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&5
-$as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring" >&6;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: (This might be an JRE instead of an JDK)" >&5
-$as_echo "$as_me: (This might be an JRE instead of an JDK)" >&6;}
- BOOT_JDK_FOUND=no
- else
- # Do we have an rt.jar? (On MacOSX it is called classes.jar)
- if test ! -f "$BOOT_JDK/jre/lib/rt.jar" && test ! -f "$BOOT_JDK/../Classes/classes.jar"; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&5
-$as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain an rt.jar; ignoring" >&6;}
- BOOT_JDK_FOUND=no
- else
- # Oh, this is looking good! We probably have found a proper JDK. Is it the correct version?
- BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | head -n 1`
-
- # Extra M4 quote needed to protect [] in grep expression.
- FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep '\"1\.[78]\.'`
- if test "x$FOUND_VERSION_78" = x; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5
-$as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&6;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7 or 8)" >&5
-$as_echo "$as_me: (Your Boot JDK must be version 7 or 8)" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7, 8 or 9)" >&5
+$as_echo "$as_me: (Your Boot JDK must be version 7, 8 or 9)" >&6;}
BOOT_JDK_FOUND=no
else
# We're done! :-)
@@ -20657,12 +21450,12 @@ $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain an rt.ja
BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | head -n 1`
# Extra M4 quote needed to protect [] in grep expression.
- FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep '\"1\.[78]\.'`
- if test "x$FOUND_VERSION_78" = x; then
+ FOUND_CORRECT_VERSION=`echo $BOOT_JDK_VERSION | grep '\"1\.[789]\.'`
+ if test "x$FOUND_CORRECT_VERSION" = x; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5
$as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&6;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7 or 8)" >&5
-$as_echo "$as_me: (Your Boot JDK must be version 7 or 8)" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7, 8 or 9)" >&5
+$as_echo "$as_me: (Your Boot JDK must be version 7, 8 or 9)" >&6;}
BOOT_JDK_FOUND=no
else
# We're done! :-)
@@ -20872,12 +21665,12 @@ $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain an rt.ja
BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | head -n 1`
# Extra M4 quote needed to protect [] in grep expression.
- FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep '\"1\.[78]\.'`
- if test "x$FOUND_VERSION_78" = x; then
+ FOUND_CORRECT_VERSION=`echo $BOOT_JDK_VERSION | grep '\"1\.[789]\.'`
+ if test "x$FOUND_CORRECT_VERSION" = x; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5
$as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&6;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7 or 8)" >&5
-$as_echo "$as_me: (Your Boot JDK must be version 7 or 8)" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7, 8 or 9)" >&5
+$as_echo "$as_me: (Your Boot JDK must be version 7, 8 or 9)" >&6;}
BOOT_JDK_FOUND=no
else
# We're done! :-)
@@ -21052,12 +21845,12 @@ $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain an rt.ja
BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | head -n 1`
# Extra M4 quote needed to protect [] in grep expression.
- FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep '\"1\.[78]\.'`
- if test "x$FOUND_VERSION_78" = x; then
+ FOUND_CORRECT_VERSION=`echo $BOOT_JDK_VERSION | grep '\"1\.[789]\.'`
+ if test "x$FOUND_CORRECT_VERSION" = x; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5
$as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&6;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7 or 8)" >&5
-$as_echo "$as_me: (Your Boot JDK must be version 7 or 8)" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7, 8 or 9)" >&5
+$as_echo "$as_me: (Your Boot JDK must be version 7, 8 or 9)" >&6;}
BOOT_JDK_FOUND=no
else
# We're done! :-)
@@ -21260,12 +22053,12 @@ $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain an rt.ja
BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | head -n 1`
# Extra M4 quote needed to protect [] in grep expression.
- FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep '\"1\.[78]\.'`
- if test "x$FOUND_VERSION_78" = x; then
+ FOUND_CORRECT_VERSION=`echo $BOOT_JDK_VERSION | grep '\"1\.[789]\.'`
+ if test "x$FOUND_CORRECT_VERSION" = x; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5
$as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&6;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7 or 8)" >&5
-$as_echo "$as_me: (Your Boot JDK must be version 7 or 8)" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7, 8 or 9)" >&5
+$as_echo "$as_me: (Your Boot JDK must be version 7, 8 or 9)" >&6;}
BOOT_JDK_FOUND=no
else
# We're done! :-)
@@ -21440,12 +22233,12 @@ $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain an rt.ja
BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | head -n 1`
# Extra M4 quote needed to protect [] in grep expression.
- FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep '\"1\.[78]\.'`
- if test "x$FOUND_VERSION_78" = x; then
+ FOUND_CORRECT_VERSION=`echo $BOOT_JDK_VERSION | grep '\"1\.[789]\.'`
+ if test "x$FOUND_CORRECT_VERSION" = x; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5
$as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&6;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7 or 8)" >&5
-$as_echo "$as_me: (Your Boot JDK must be version 7 or 8)" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7, 8 or 9)" >&5
+$as_echo "$as_me: (Your Boot JDK must be version 7, 8 or 9)" >&6;}
BOOT_JDK_FOUND=no
else
# We're done! :-)
@@ -21648,12 +22441,12 @@ $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain an rt.ja
BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | head -n 1`
# Extra M4 quote needed to protect [] in grep expression.
- FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep '\"1\.[78]\.'`
- if test "x$FOUND_VERSION_78" = x; then
+ FOUND_CORRECT_VERSION=`echo $BOOT_JDK_VERSION | grep '\"1\.[789]\.'`
+ if test "x$FOUND_CORRECT_VERSION" = x; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5
$as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&6;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7 or 8)" >&5
-$as_echo "$as_me: (Your Boot JDK must be version 7 or 8)" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7, 8 or 9)" >&5
+$as_echo "$as_me: (Your Boot JDK must be version 7, 8 or 9)" >&6;}
BOOT_JDK_FOUND=no
else
# We're done! :-)
@@ -21828,12 +22621,12 @@ $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain an rt.ja
BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | head -n 1`
# Extra M4 quote needed to protect [] in grep expression.
- FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep '\"1\.[78]\.'`
- if test "x$FOUND_VERSION_78" = x; then
+ FOUND_CORRECT_VERSION=`echo $BOOT_JDK_VERSION | grep '\"1\.[789]\.'`
+ if test "x$FOUND_CORRECT_VERSION" = x; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5
$as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&6;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7 or 8)" >&5
-$as_echo "$as_me: (Your Boot JDK must be version 7 or 8)" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7, 8 or 9)" >&5
+$as_echo "$as_me: (Your Boot JDK must be version 7, 8 or 9)" >&6;}
BOOT_JDK_FOUND=no
else
# We're done! :-)
@@ -22036,12 +22829,12 @@ $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain an rt.ja
BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | head -n 1`
# Extra M4 quote needed to protect [] in grep expression.
- FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep '\"1\.[78]\.'`
- if test "x$FOUND_VERSION_78" = x; then
+ FOUND_CORRECT_VERSION=`echo $BOOT_JDK_VERSION | grep '\"1\.[789]\.'`
+ if test "x$FOUND_CORRECT_VERSION" = x; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5
$as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&6;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7 or 8)" >&5
-$as_echo "$as_me: (Your Boot JDK must be version 7 or 8)" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7, 8 or 9)" >&5
+$as_echo "$as_me: (Your Boot JDK must be version 7, 8 or 9)" >&6;}
BOOT_JDK_FOUND=no
else
# We're done! :-)
@@ -22216,12 +23009,12 @@ $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain an rt.ja
BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | head -n 1`
# Extra M4 quote needed to protect [] in grep expression.
- FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep '\"1\.[78]\.'`
- if test "x$FOUND_VERSION_78" = x; then
+ FOUND_CORRECT_VERSION=`echo $BOOT_JDK_VERSION | grep '\"1\.[789]\.'`
+ if test "x$FOUND_CORRECT_VERSION" = x; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5
$as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&6;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7 or 8)" >&5
-$as_echo "$as_me: (Your Boot JDK must be version 7 or 8)" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7, 8 or 9)" >&5
+$as_echo "$as_me: (Your Boot JDK must be version 7, 8 or 9)" >&6;}
BOOT_JDK_FOUND=no
else
# We're done! :-)
@@ -22411,12 +23204,12 @@ $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain an rt.ja
BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | head -n 1`
# Extra M4 quote needed to protect [] in grep expression.
- FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep '\"1\.[78]\.'`
- if test "x$FOUND_VERSION_78" = x; then
+ FOUND_CORRECT_VERSION=`echo $BOOT_JDK_VERSION | grep '\"1\.[789]\.'`
+ if test "x$FOUND_CORRECT_VERSION" = x; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5
$as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&6;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7 or 8)" >&5
-$as_echo "$as_me: (Your Boot JDK must be version 7 or 8)" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7, 8 or 9)" >&5
+$as_echo "$as_me: (Your Boot JDK must be version 7, 8 or 9)" >&6;}
BOOT_JDK_FOUND=no
else
# We're done! :-)
@@ -22589,12 +23382,12 @@ $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain an rt.ja
BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | head -n 1`
# Extra M4 quote needed to protect [] in grep expression.
- FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep '\"1\.[78]\.'`
- if test "x$FOUND_VERSION_78" = x; then
+ FOUND_CORRECT_VERSION=`echo $BOOT_JDK_VERSION | grep '\"1\.[789]\.'`
+ if test "x$FOUND_CORRECT_VERSION" = x; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5
$as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&6;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7 or 8)" >&5
-$as_echo "$as_me: (Your Boot JDK must be version 7 or 8)" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7, 8 or 9)" >&5
+$as_echo "$as_me: (Your Boot JDK must be version 7, 8 or 9)" >&6;}
BOOT_JDK_FOUND=no
else
# We're done! :-)
@@ -22785,12 +23578,12 @@ $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain an rt.ja
BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | head -n 1`
# Extra M4 quote needed to protect [] in grep expression.
- FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep '\"1\.[78]\.'`
- if test "x$FOUND_VERSION_78" = x; then
+ FOUND_CORRECT_VERSION=`echo $BOOT_JDK_VERSION | grep '\"1\.[789]\.'`
+ if test "x$FOUND_CORRECT_VERSION" = x; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5
$as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&6;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7 or 8)" >&5
-$as_echo "$as_me: (Your Boot JDK must be version 7 or 8)" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7, 8 or 9)" >&5
+$as_echo "$as_me: (Your Boot JDK must be version 7, 8 or 9)" >&6;}
BOOT_JDK_FOUND=no
else
# We're done! :-)
@@ -22963,12 +23756,12 @@ $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain an rt.ja
BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | head -n 1`
# Extra M4 quote needed to protect [] in grep expression.
- FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep '\"1\.[78]\.'`
- if test "x$FOUND_VERSION_78" = x; then
+ FOUND_CORRECT_VERSION=`echo $BOOT_JDK_VERSION | grep '\"1\.[789]\.'`
+ if test "x$FOUND_CORRECT_VERSION" = x; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5
$as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&6;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7 or 8)" >&5
-$as_echo "$as_me: (Your Boot JDK must be version 7 or 8)" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7, 8 or 9)" >&5
+$as_echo "$as_me: (Your Boot JDK must be version 7, 8 or 9)" >&6;}
BOOT_JDK_FOUND=no
else
# We're done! :-)
@@ -23158,12 +23951,12 @@ $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain an rt.ja
BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | head -n 1`
# Extra M4 quote needed to protect [] in grep expression.
- FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep '\"1\.[78]\.'`
- if test "x$FOUND_VERSION_78" = x; then
+ FOUND_CORRECT_VERSION=`echo $BOOT_JDK_VERSION | grep '\"1\.[789]\.'`
+ if test "x$FOUND_CORRECT_VERSION" = x; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5
$as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&6;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7 or 8)" >&5
-$as_echo "$as_me: (Your Boot JDK must be version 7 or 8)" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7, 8 or 9)" >&5
+$as_echo "$as_me: (Your Boot JDK must be version 7, 8 or 9)" >&6;}
BOOT_JDK_FOUND=no
else
# We're done! :-)
@@ -23336,12 +24129,12 @@ $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain an rt.ja
BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | head -n 1`
# Extra M4 quote needed to protect [] in grep expression.
- FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep '\"1\.[78]\.'`
- if test "x$FOUND_VERSION_78" = x; then
+ FOUND_CORRECT_VERSION=`echo $BOOT_JDK_VERSION | grep '\"1\.[789]\.'`
+ if test "x$FOUND_CORRECT_VERSION" = x; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5
$as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&6;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7 or 8)" >&5
-$as_echo "$as_me: (Your Boot JDK must be version 7 or 8)" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7, 8 or 9)" >&5
+$as_echo "$as_me: (Your Boot JDK must be version 7, 8 or 9)" >&6;}
BOOT_JDK_FOUND=no
else
# We're done! :-)
@@ -23532,12 +24325,12 @@ $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain an rt.ja
BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | head -n 1`
# Extra M4 quote needed to protect [] in grep expression.
- FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep '\"1\.[78]\.'`
- if test "x$FOUND_VERSION_78" = x; then
+ FOUND_CORRECT_VERSION=`echo $BOOT_JDK_VERSION | grep '\"1\.[789]\.'`
+ if test "x$FOUND_CORRECT_VERSION" = x; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5
$as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&6;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7 or 8)" >&5
-$as_echo "$as_me: (Your Boot JDK must be version 7 or 8)" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7, 8 or 9)" >&5
+$as_echo "$as_me: (Your Boot JDK must be version 7, 8 or 9)" >&6;}
BOOT_JDK_FOUND=no
else
# We're done! :-)
@@ -23710,12 +24503,12 @@ $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain an rt.ja
BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | head -n 1`
# Extra M4 quote needed to protect [] in grep expression.
- FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep '\"1\.[78]\.'`
- if test "x$FOUND_VERSION_78" = x; then
+ FOUND_CORRECT_VERSION=`echo $BOOT_JDK_VERSION | grep '\"1\.[789]\.'`
+ if test "x$FOUND_CORRECT_VERSION" = x; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5
$as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&6;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7 or 8)" >&5
-$as_echo "$as_me: (Your Boot JDK must be version 7 or 8)" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7, 8 or 9)" >&5
+$as_echo "$as_me: (Your Boot JDK must be version 7, 8 or 9)" >&6;}
BOOT_JDK_FOUND=no
else
# We're done! :-)
@@ -23887,12 +24680,12 @@ $as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK did not contain an rt.ja
BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" -version 2>&1 | head -n 1`
# Extra M4 quote needed to protect [] in grep expression.
- FOUND_VERSION_78=`echo $BOOT_JDK_VERSION | grep '\"1\.[78]\.'`
- if test "x$FOUND_VERSION_78" = x; then
+ FOUND_CORRECT_VERSION=`echo $BOOT_JDK_VERSION | grep '\"1\.[789]\.'`
+ if test "x$FOUND_CORRECT_VERSION" = x; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&5
$as_echo "$as_me: Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring" >&6;}
- { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7 or 8)" >&5
-$as_echo "$as_me: (Your Boot JDK must be version 7 or 8)" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: (Your Boot JDK must be version 7, 8 or 9)" >&5
+$as_echo "$as_me: (Your Boot JDK must be version 7, 8 or 9)" >&6;}
BOOT_JDK_FOUND=no
else
# We're done! :-)
@@ -24093,104 +24886,768 @@ $as_echo "$as_me: This might be fixed by explicitely setting --with-boot-jdk" >&
# Setup tools from the Boot JDK.
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for java in Boot JDK" >&5
+ # Use user overridden value if available, otherwise locate tool in the Boot JDK.
+
+ # Publish this variable in the help.
+
+
+ if test "x$JAVA" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for java in Boot JDK" >&5
$as_echo_n "checking for java in Boot JDK... " >&6; }
- JAVA=$BOOT_JDK/bin/java
- if test ! -x $JAVA; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+ JAVA=$BOOT_JDK/bin/java
+ if test ! -x $JAVA; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$as_echo "not found" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5
$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&6;}
- as_fn_error $? "Could not find java in the Boot JDK" "$LINENO" 5
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+ as_fn_error $? "Could not find java in the Boot JDK" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for javac in Boot JDK" >&5
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !JAVA! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!JAVA!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xJAVA" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of JAVA from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of JAVA from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for java in Boot JDK" >&5
+$as_echo_n "checking for java in Boot JDK... " >&6; }
+ JAVA=$BOOT_JDK/bin/java
+ if test ! -x $JAVA; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5
+$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&6;}
+ as_fn_error $? "Could not find java in the Boot JDK" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+$as_echo "ok" >&6; }
+
+
+ else
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$JAVA"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool JAVA=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool JAVA=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_JAVA+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $JAVA in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_JAVA="$JAVA" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_JAVA="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+JAVA=$ac_cv_path_JAVA
+if test -n "$JAVA"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $JAVA" >&5
+$as_echo "$JAVA" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$JAVA" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool JAVA=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool JAVA=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for JAVA" >&5
+$as_echo_n "checking for JAVA... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool JAVA=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
+ fi
+ fi
+
+
+
+ # Use user overridden value if available, otherwise locate tool in the Boot JDK.
+
+ # Publish this variable in the help.
+
+
+ if test "x$JAVAC" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for javac in Boot JDK" >&5
$as_echo_n "checking for javac in Boot JDK... " >&6; }
- JAVAC=$BOOT_JDK/bin/javac
- if test ! -x $JAVAC; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+ JAVAC=$BOOT_JDK/bin/javac
+ if test ! -x $JAVAC; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$as_echo "not found" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5
$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&6;}
- as_fn_error $? "Could not find javac in the Boot JDK" "$LINENO" 5
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+ as_fn_error $? "Could not find javac in the Boot JDK" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for javah in Boot JDK" >&5
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !JAVAC! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!JAVAC!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xJAVAC" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of JAVAC from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of JAVAC from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for javac in Boot JDK" >&5
+$as_echo_n "checking for javac in Boot JDK... " >&6; }
+ JAVAC=$BOOT_JDK/bin/javac
+ if test ! -x $JAVAC; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5
+$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&6;}
+ as_fn_error $? "Could not find javac in the Boot JDK" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+$as_echo "ok" >&6; }
+
+
+ else
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$JAVAC"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool JAVAC=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool JAVAC=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_JAVAC+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $JAVAC in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_JAVAC="$JAVAC" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_JAVAC="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+JAVAC=$ac_cv_path_JAVAC
+if test -n "$JAVAC"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $JAVAC" >&5
+$as_echo "$JAVAC" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$JAVAC" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool JAVAC=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool JAVAC=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for JAVAC" >&5
+$as_echo_n "checking for JAVAC... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool JAVAC=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
+ fi
+ fi
+
+
+
+ # Use user overridden value if available, otherwise locate tool in the Boot JDK.
+
+ # Publish this variable in the help.
+
+
+ if test "x$JAVAH" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for javah in Boot JDK" >&5
$as_echo_n "checking for javah in Boot JDK... " >&6; }
- JAVAH=$BOOT_JDK/bin/javah
- if test ! -x $JAVAH; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+ JAVAH=$BOOT_JDK/bin/javah
+ if test ! -x $JAVAH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$as_echo "not found" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5
$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&6;}
- as_fn_error $? "Could not find javah in the Boot JDK" "$LINENO" 5
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+ as_fn_error $? "Could not find javah in the Boot JDK" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for javap in Boot JDK" >&5
-$as_echo_n "checking for javap in Boot JDK... " >&6; }
- JAVAP=$BOOT_JDK/bin/javap
- if test ! -x $JAVAP; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !JAVAH! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!JAVAH!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xJAVAH" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of JAVAH from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of JAVAH from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for javah in Boot JDK" >&5
+$as_echo_n "checking for javah in Boot JDK... " >&6; }
+ JAVAH=$BOOT_JDK/bin/javah
+ if test ! -x $JAVAH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$as_echo "not found" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5
$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&6;}
- as_fn_error $? "Could not find javap in the Boot JDK" "$LINENO" 5
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+ as_fn_error $? "Could not find javah in the Boot JDK" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for jar in Boot JDK" >&5
+ else
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$JAVAH"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool JAVAH=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool JAVAH=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_JAVAH+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $JAVAH in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_JAVAH="$JAVAH" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_JAVAH="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+JAVAH=$ac_cv_path_JAVAH
+if test -n "$JAVAH"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $JAVAH" >&5
+$as_echo "$JAVAH" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$JAVAH" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool JAVAH=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool JAVAH=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for JAVAH" >&5
+$as_echo_n "checking for JAVAH... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool JAVAH=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
+ fi
+ fi
+
+
+
+ # Use user overridden value if available, otherwise locate tool in the Boot JDK.
+
+ # Publish this variable in the help.
+
+
+ if test "x$JAR" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for jar in Boot JDK" >&5
$as_echo_n "checking for jar in Boot JDK... " >&6; }
- JAR=$BOOT_JDK/bin/jar
- if test ! -x $JAR; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+ JAR=$BOOT_JDK/bin/jar
+ if test ! -x $JAR; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$as_echo "not found" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5
$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&6;}
- as_fn_error $? "Could not find jar in the Boot JDK" "$LINENO" 5
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+ as_fn_error $? "Could not find jar in the Boot JDK" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for rmic in Boot JDK" >&5
-$as_echo_n "checking for rmic in Boot JDK... " >&6; }
- RMIC=$BOOT_JDK/bin/rmic
- if test ! -x $RMIC; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !JAR! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!JAR!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xJAR" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of JAR from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of JAR from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for jar in Boot JDK" >&5
+$as_echo_n "checking for jar in Boot JDK... " >&6; }
+ JAR=$BOOT_JDK/bin/jar
+ if test ! -x $JAR; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$as_echo "not found" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5
$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&6;}
- as_fn_error $? "Could not find rmic in the Boot JDK" "$LINENO" 5
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+ as_fn_error $? "Could not find jar in the Boot JDK" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for native2ascii in Boot JDK" >&5
+ else
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$JAR"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool JAR=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool JAR=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_JAR+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $JAR in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_JAR="$JAR" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_JAR="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+JAR=$ac_cv_path_JAR
+if test -n "$JAR"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $JAR" >&5
+$as_echo "$JAR" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$JAR" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool JAR=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool JAR=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for JAR" >&5
+$as_echo_n "checking for JAR... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool JAR=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
+ fi
+ fi
+
+
+
+ # Use user overridden value if available, otherwise locate tool in the Boot JDK.
+
+ # Publish this variable in the help.
+
+
+ if test "x$NATIVE2ASCII" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for native2ascii in Boot JDK" >&5
$as_echo_n "checking for native2ascii in Boot JDK... " >&6; }
- NATIVE2ASCII=$BOOT_JDK/bin/native2ascii
- if test ! -x $NATIVE2ASCII; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+ NATIVE2ASCII=$BOOT_JDK/bin/native2ascii
+ if test ! -x $NATIVE2ASCII; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
$as_echo "not found" >&6; }
- { $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5
$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&6;}
- as_fn_error $? "Could not find native2ascii in the Boot JDK" "$LINENO" 5
- fi
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+ as_fn_error $? "Could not find native2ascii in the Boot JDK" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
$as_echo "ok" >&6; }
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !NATIVE2ASCII! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!NATIVE2ASCII!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xNATIVE2ASCII" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of NATIVE2ASCII from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of NATIVE2ASCII from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for native2ascii in Boot JDK" >&5
+$as_echo_n "checking for native2ascii in Boot JDK... " >&6; }
+ NATIVE2ASCII=$BOOT_JDK/bin/native2ascii
+ if test ! -x $NATIVE2ASCII; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5
+$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&6;}
+ as_fn_error $? "Could not find native2ascii in the Boot JDK" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+$as_echo "ok" >&6; }
+
+
+ else
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$NATIVE2ASCII"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool NATIVE2ASCII=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool NATIVE2ASCII=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_NATIVE2ASCII+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $NATIVE2ASCII in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_NATIVE2ASCII="$NATIVE2ASCII" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_NATIVE2ASCII="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+NATIVE2ASCII=$ac_cv_path_NATIVE2ASCII
+if test -n "$NATIVE2ASCII"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NATIVE2ASCII" >&5
+$as_echo "$NATIVE2ASCII" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$NATIVE2ASCII" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool NATIVE2ASCII=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool NATIVE2ASCII=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for NATIVE2ASCII" >&5
+$as_echo_n "checking for NATIVE2ASCII... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool NATIVE2ASCII=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
+ fi
+ fi
+
+
+
+ # Use user overridden value if available, otherwise locate tool in the Boot JDK.
+
+ # Publish this variable in the help.
+
+
+ if test "x$JARSIGNER" = x; then
+ # The variable is not set by user, try to locate tool using the code snippet
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for jarsigner in Boot JDK" >&5
+$as_echo_n "checking for jarsigner in Boot JDK... " >&6; }
+ JARSIGNER=$BOOT_JDK/bin/jarsigner
+ if test ! -x $JARSIGNER; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5
+$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&6;}
+ as_fn_error $? "Could not find jarsigner in the Boot JDK" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+$as_echo "ok" >&6; }
+
+
+ else
+ # The variable is set, but is it from the command line or the environment?
+
+ # Try to remove the string !JARSIGNER! from our list.
+ try_remove_var=${CONFIGURE_OVERRIDDEN_VARIABLES//!JARSIGNER!/}
+ if test "x$try_remove_var" = "x$CONFIGURE_OVERRIDDEN_VARIABLES"; then
+ # If it failed, the variable was not from the command line. Ignore it,
+ # but warn the user (except for BASH, which is always set by the calling BASH).
+ if test "xJARSIGNER" != xBASH; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Ignoring value of JARSIGNER from the environment. Use command line variables instead." >&5
+$as_echo "$as_me: WARNING: Ignoring value of JARSIGNER from the environment. Use command line variables instead." >&2;}
+ fi
+ # Try to locate tool using the code snippet
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for jarsigner in Boot JDK" >&5
+$as_echo_n "checking for jarsigner in Boot JDK... " >&6; }
+ JARSIGNER=$BOOT_JDK/bin/jarsigner
+ if test ! -x $JARSIGNER; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&5
+$as_echo "$as_me: Your Boot JDK seems broken. This might be fixed by explicitely setting --with-boot-jdk" >&6;}
+ as_fn_error $? "Could not find jarsigner in the Boot JDK" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+$as_echo "ok" >&6; }
+
+
+ else
+ # If it succeeded, then it was overridden by the user. We will use it
+ # for the tool.
+
+ # First remove it from the list of overridden variables, so we can test
+ # for unknown variables in the end.
+ CONFIGURE_OVERRIDDEN_VARIABLES="$try_remove_var"
+
+ # Check if the provided tool contains a complete path.
+ tool_specified="$JARSIGNER"
+ tool_basename="${tool_specified##*/}"
+ if test "x$tool_basename" = "x$tool_specified"; then
+ # A command without a complete path is provided, search $PATH.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will search for user supplied tool JARSIGNER=$tool_basename" >&5
+$as_echo "$as_me: Will search for user supplied tool JARSIGNER=$tool_basename" >&6;}
+ # Extract the first word of "$tool_basename", so it can be a program name with args.
+set dummy $tool_basename; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_JARSIGNER+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ case $JARSIGNER in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_JARSIGNER="$JARSIGNER" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_path_JARSIGNER="$as_dir/$ac_word$ac_exec_ext"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+JARSIGNER=$ac_cv_path_JARSIGNER
+if test -n "$JARSIGNER"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $JARSIGNER" >&5
+$as_echo "$JARSIGNER" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ if test "x$JARSIGNER" = x; then
+ as_fn_error $? "User supplied tool $tool_basename could not be found" "$LINENO" 5
+ fi
+ else
+ # Otherwise we believe it is a complete path. Use it as it is.
+ { $as_echo "$as_me:${as_lineno-$LINENO}: Will use user supplied tool JARSIGNER=$tool_specified" >&5
+$as_echo "$as_me: Will use user supplied tool JARSIGNER=$tool_specified" >&6;}
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for JARSIGNER" >&5
+$as_echo_n "checking for JARSIGNER... " >&6; }
+ if test ! -x "$tool_specified"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
+$as_echo "not found" >&6; }
+ as_fn_error $? "User supplied tool JARSIGNER=$tool_specified does not exist or is not executable" "$LINENO" 5
+ fi
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $tool_specified" >&5
+$as_echo "$tool_specified" >&6; }
+ fi
+ fi
+ fi
+
+
+
# Finally, set some other options...
# When compiling code to be executed by the Boot JDK, force jdk7 compatibility.
diff --git a/common/autoconf/spec.gmk.in b/common/autoconf/spec.gmk.in
index 63fc13ba005..4342d1517ee 100644
--- a/common/autoconf/spec.gmk.in
+++ b/common/autoconf/spec.gmk.in
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -438,22 +438,20 @@ POST_MCS_CMD:=@POST_MCS_CMD@
JAVA_FLAGS:=@BOOT_JDK_JVMARGS@
-JAVA=@FIXPATH@ $(BOOT_JDK)/bin/java $(JAVA_FLAGS)
+JAVA=@FIXPATH@ @JAVA@ $(JAVA_FLAGS)
-JAVAC=@FIXPATH@ $(BOOT_JDK)/bin/javac
+JAVAC:=@FIXPATH@ @JAVAC@
# Hotspot sets this variable before reading the SPEC when compiling sa-jdi.jar. Avoid
# overriding that value by using ?=.
JAVAC_FLAGS?=@JAVAC_FLAGS@
-JAVAH=@FIXPATH@ $(BOOT_JDK)/bin/javah
+JAVAH:=@FIXPATH@ @JAVAH@
-JAR=@FIXPATH@ $(BOOT_JDK)/bin/jar
+JAR:=@FIXPATH@ @JAR@
-RMIC=@FIXPATH@ $(BOOT_JDK)/bin/rmic
+NATIVE2ASCII:=@FIXPATH@ @NATIVE2ASCII@
-NATIVE2ASCII=@FIXPATH@ $(BOOT_JDK)/bin/native2ascii
-
-JARSIGNER=@FIXPATH@ $(BOOT_JDK)/bin/jarsigner
+JARSIGNER:=@FIXPATH@ @JARSIGNER@
# You run the new javac using the boot jdk with $(BOOT_JDK)/bin/java $(NEW_JAVAC) ...
BOOTSTRAP_JAVAC_JAR:=$(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javac.jar
From 5301534dc31502be3d21144b908acb57f0d5ada5 Mon Sep 17 00:00:00 2001
From: Jesper Wilhelmsson
Date: Wed, 29 Jan 2014 23:17:05 +0100
Subject: [PATCH 128/181] 8028391: Make the Min/MaxHeapFreeRatio flags
manageable
Made the flags Min- and MaxHeapFreeRatio manageable, and implemented support for these flags in ParallalGC.
Reviewed-by: sla, mgerdin, brutisso
---
.../gc_implementation/g1/g1CollectedHeap.cpp | 2 -
.../parallelScavenge/psAdaptiveSizePolicy.cpp | 48 ++++++++++++
.../parallelScavenge/psAdaptiveSizePolicy.hpp | 7 +-
.../parallelScavenge/psScavenge.cpp | 18 ++++-
.../parallelScavenge/psYoungGen.hpp | 6 +-
hotspot/src/share/vm/prims/jni.cpp | 2 +
hotspot/src/share/vm/runtime/arguments.cpp | 74 +++++++++++++++----
hotspot/src/share/vm/runtime/arguments.hpp | 19 ++++-
hotspot/src/share/vm/runtime/globals.hpp | 12 +--
.../src/share/vm/services/attachListener.cpp | 14 ++++
hotspot/src/share/vm/services/management.cpp | 12 +++
11 files changed, 178 insertions(+), 36 deletions(-)
diff --git a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
index e3e9303871f..ba1fab4ffcd 100644
--- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
@@ -1575,8 +1575,6 @@ void G1CollectedHeap::do_full_collection(bool clear_all_soft_refs) {
void
G1CollectedHeap::
resize_if_necessary_after_full_collection(size_t word_size) {
- assert(MinHeapFreeRatio <= MaxHeapFreeRatio, "sanity check");
-
// Include the current allocation, if any, and bytes that will be
// pre-allocated to support collections, as "used".
const size_t used_after_gc = used();
diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psAdaptiveSizePolicy.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psAdaptiveSizePolicy.cpp
index a1b84ced957..5b3dd89e7b3 100644
--- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psAdaptiveSizePolicy.cpp
+++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psAdaptiveSizePolicy.cpp
@@ -23,6 +23,7 @@
*/
#include "precompiled.hpp"
+#include "gc_implementation/parallelScavenge/parallelScavengeHeap.hpp"
#include "gc_implementation/parallelScavenge/psAdaptiveSizePolicy.hpp"
#include "gc_implementation/parallelScavenge/psGCAdaptivePolicyCounters.hpp"
#include "gc_implementation/parallelScavenge/psScavenge.hpp"
@@ -76,6 +77,38 @@ PSAdaptiveSizePolicy::PSAdaptiveSizePolicy(size_t init_eden_size,
_old_gen_policy_is_ready = false;
}
+size_t PSAdaptiveSizePolicy::calculate_free_based_on_live(size_t live, uintx ratio_as_percentage) {
+ // We want to calculate how much free memory there can be based on the
+ // amount of live data currently in the old gen. Using the formula:
+ // ratio * (free + live) = free
+ // Some equation solving later we get:
+ // free = (live * ratio) / (1 - ratio)
+
+ const double ratio = ratio_as_percentage / 100.0;
+ const double ratio_inverse = 1.0 - ratio;
+ const double tmp = live * ratio;
+ size_t free = (size_t)(tmp / ratio_inverse);
+
+ return free;
+}
+
+size_t PSAdaptiveSizePolicy::calculated_old_free_size_in_bytes() const {
+ size_t free_size = (size_t)(_promo_size + avg_promoted()->padded_average());
+ size_t live = ParallelScavengeHeap::heap()->old_gen()->used_in_bytes();
+
+ if (MinHeapFreeRatio != 0) {
+ size_t min_free = calculate_free_based_on_live(live, MinHeapFreeRatio);
+ free_size = MAX2(free_size, min_free);
+ }
+
+ if (MaxHeapFreeRatio != 100) {
+ size_t max_free = calculate_free_based_on_live(live, MaxHeapFreeRatio);
+ free_size = MIN2(max_free, free_size);
+ }
+
+ return free_size;
+}
+
void PSAdaptiveSizePolicy::major_collection_begin() {
// Update the interval time
_major_timer.stop();
@@ -1292,3 +1325,18 @@ bool PSAdaptiveSizePolicy::print_adaptive_size_policy_on(outputStream* st)
st,
PSScavenge::tenuring_threshold());
}
+
+#ifndef PRODUCT
+
+void TestOldFreeSpaceCalculation_test() {
+ assert(PSAdaptiveSizePolicy::calculate_free_based_on_live(100, 20) == 25, "Calculation of free memory failed");
+ assert(PSAdaptiveSizePolicy::calculate_free_based_on_live(100, 50) == 100, "Calculation of free memory failed");
+ assert(PSAdaptiveSizePolicy::calculate_free_based_on_live(100, 60) == 150, "Calculation of free memory failed");
+ assert(PSAdaptiveSizePolicy::calculate_free_based_on_live(100, 75) == 300, "Calculation of free memory failed");
+ assert(PSAdaptiveSizePolicy::calculate_free_based_on_live(400, 20) == 100, "Calculation of free memory failed");
+ assert(PSAdaptiveSizePolicy::calculate_free_based_on_live(400, 50) == 400, "Calculation of free memory failed");
+ assert(PSAdaptiveSizePolicy::calculate_free_based_on_live(400, 60) == 600, "Calculation of free memory failed");
+ assert(PSAdaptiveSizePolicy::calculate_free_based_on_live(400, 75) == 1200, "Calculation of free memory failed");
+}
+
+#endif /* !PRODUCT */
diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psAdaptiveSizePolicy.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psAdaptiveSizePolicy.hpp
index 674773b243f..24f0ed473b9 100644
--- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psAdaptiveSizePolicy.hpp
+++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psAdaptiveSizePolicy.hpp
@@ -240,7 +240,6 @@ class PSAdaptiveSizePolicy : public AdaptiveSizePolicy {
void major_collection_begin();
void major_collection_end(size_t amount_live, GCCause::Cause gc_cause);
- //
void tenured_allocation(size_t size) {
_avg_pretenured->sample(size);
}
@@ -248,9 +247,9 @@ class PSAdaptiveSizePolicy : public AdaptiveSizePolicy {
// Accessors
// NEEDS_CLEANUP should use sizes.hpp
- size_t calculated_old_free_size_in_bytes() const {
- return (size_t)(_promo_size + avg_promoted()->padded_average());
- }
+ static size_t calculate_free_based_on_live(size_t live, uintx ratio_as_percentage);
+
+ size_t calculated_old_free_size_in_bytes() const;
size_t average_old_live_in_bytes() const {
return (size_t) avg_old_live()->average();
diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp
index ed2c32155c5..a708d8ebb72 100644
--- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp
+++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp
@@ -529,8 +529,19 @@ bool PSScavenge::invoke_no_policy() {
counters->update_survivor_overflowed(_survivor_overflow);
}
+ size_t max_young_size = young_gen->max_size();
+
+ // Deciding a free ratio in the young generation is tricky, so if
+ // MinHeapFreeRatio or MaxHeapFreeRatio are in use (implicating
+ // that the old generation size may have been limited because of them) we
+ // should then limit our young generation size using NewRatio to have it
+ // follow the old generation size.
+ if (MinHeapFreeRatio != 0 || MaxHeapFreeRatio != 100) {
+ max_young_size = MIN2(old_gen->capacity_in_bytes() / NewRatio, young_gen->max_size());
+ }
+
size_t survivor_limit =
- size_policy->max_survivor_size(young_gen->max_size());
+ size_policy->max_survivor_size(max_young_size);
_tenuring_threshold =
size_policy->compute_survivor_space_size_and_threshold(
_survivor_overflow,
@@ -553,8 +564,7 @@ bool PSScavenge::invoke_no_policy() {
// Do call at minor collections?
// Don't check if the size_policy is ready at this
// level. Let the size_policy check that internally.
- if (UseAdaptiveSizePolicy &&
- UseAdaptiveGenerationSizePolicyAtMinorCollection &&
+ if (UseAdaptiveGenerationSizePolicyAtMinorCollection &&
((gc_cause != GCCause::_java_lang_system_gc) ||
UseAdaptiveSizePolicyWithSystemGC)) {
@@ -568,7 +578,7 @@ bool PSScavenge::invoke_no_policy() {
size_t eden_live = young_gen->eden_space()->used_in_bytes();
size_t cur_eden = young_gen->eden_space()->capacity_in_bytes();
size_t max_old_gen_size = old_gen->max_gen_size();
- size_t max_eden_size = young_gen->max_size() -
+ size_t max_eden_size = max_young_size -
young_gen->from_space()->capacity_in_bytes() -
young_gen->to_space()->capacity_in_bytes();
diff --git a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psYoungGen.hpp b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psYoungGen.hpp
index 6bc8ef73753..e3da6bdf2b8 100644
--- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/psYoungGen.hpp
+++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/psYoungGen.hpp
@@ -127,7 +127,7 @@ class PSYoungGen : public CHeapObj {
void adjust_pointers();
void compact();
- // Called during/after gc
+ // Called during/after GC
void swap_spaces();
// Resize generation using suggested free space size and survivor size
@@ -146,14 +146,14 @@ class PSYoungGen : public CHeapObj {
size_t free_in_words() const;
// The max this generation can grow to
- size_t max_size() const { return _reserved.byte_size(); }
+ size_t max_size() const { return _reserved.byte_size(); }
// The max this generation can grow to if the boundary between
// the generations are allowed to move.
size_t gen_size_limit() const { return _max_gen_size; }
bool is_maximal_no_gc() const {
- return true; // never expands except at a GC
+ return true; // Never expands except at a GC
}
// Allocation
diff --git a/hotspot/src/share/vm/prims/jni.cpp b/hotspot/src/share/vm/prims/jni.cpp
index 449ed679847..f3b65ec92e9 100644
--- a/hotspot/src/share/vm/prims/jni.cpp
+++ b/hotspot/src/share/vm/prims/jni.cpp
@@ -5061,6 +5061,7 @@ void TestVirtualSpace_test();
void TestMetaspaceAux_test();
void TestMetachunk_test();
void TestVirtualSpaceNode_test();
+void TestOldFreeSpaceCalculation_test();
#if INCLUDE_ALL_GCS
void TestG1BiasedArray_test();
#endif
@@ -5081,6 +5082,7 @@ void execute_internal_vm_tests() {
run_unit_test(QuickSort::test_quick_sort());
run_unit_test(AltHashing::test_alt_hash());
run_unit_test(test_loggc_filename());
+ run_unit_test(TestOldFreeSpaceCalculation_test());
#if INCLUDE_VM_STRUCTS
run_unit_test(VMStructs::test());
#endif
diff --git a/hotspot/src/share/vm/runtime/arguments.cpp b/hotspot/src/share/vm/runtime/arguments.cpp
index 0ba3e4e33a1..b0289b9d588 100644
--- a/hotspot/src/share/vm/runtime/arguments.cpp
+++ b/hotspot/src/share/vm/runtime/arguments.cpp
@@ -1569,6 +1569,16 @@ void Arguments::set_parallel_gc_flags() {
vm_exit(1);
}
+ if (UseAdaptiveSizePolicy) {
+ // We don't want to limit adaptive heap sizing's freedom to adjust the heap
+ // unless the user actually sets these flags.
+ if (FLAG_IS_DEFAULT(MinHeapFreeRatio)) {
+ FLAG_SET_DEFAULT(MinHeapFreeRatio, 0);
+ }
+ if (FLAG_IS_DEFAULT(MaxHeapFreeRatio)) {
+ FLAG_SET_DEFAULT(MaxHeapFreeRatio, 100);
+ }
+ }
// If InitialSurvivorRatio or MinSurvivorRatio were not specified, but the
// SurvivorRatio has been set, reset their default values to SurvivorRatio +
@@ -1844,7 +1854,7 @@ bool Arguments::verify_min_value(intx val, intx min, const char* name) {
}
bool Arguments::verify_percentage(uintx value, const char* name) {
- if (value <= 100) {
+ if (is_percentage(value)) {
return true;
}
jio_fprintf(defaultStream::error_stream(),
@@ -1932,6 +1942,34 @@ bool is_filename_valid(const char *file_name) {
return count_p < 2 && count_t < 2;
}
+bool Arguments::verify_MinHeapFreeRatio(FormatBuffer<80>& err_msg, uintx min_heap_free_ratio) {
+ if (!is_percentage(min_heap_free_ratio)) {
+ err_msg.print("MinHeapFreeRatio must have a value between 0 and 100");
+ return false;
+ }
+ if (min_heap_free_ratio > MaxHeapFreeRatio) {
+ err_msg.print("MinHeapFreeRatio (" UINTX_FORMAT ") must be less than or "
+ "equal to MaxHeapFreeRatio (" UINTX_FORMAT ")", min_heap_free_ratio,
+ MaxHeapFreeRatio);
+ return false;
+ }
+ return true;
+}
+
+bool Arguments::verify_MaxHeapFreeRatio(FormatBuffer<80>& err_msg, uintx max_heap_free_ratio) {
+ if (!is_percentage(max_heap_free_ratio)) {
+ err_msg.print("MaxHeapFreeRatio must have a value between 0 and 100");
+ return false;
+ }
+ if (max_heap_free_ratio < MinHeapFreeRatio) {
+ err_msg.print("MaxHeapFreeRatio (" UINTX_FORMAT ") must be greater than or "
+ "equal to MinHeapFreeRatio (" UINTX_FORMAT ")", max_heap_free_ratio,
+ MinHeapFreeRatio);
+ return false;
+ }
+ return true;
+}
+
// Check consistency of GC selection
bool Arguments::check_gc_consistency() {
check_gclog_consistency();
@@ -2037,8 +2075,6 @@ bool Arguments::check_vm_args_consistency() {
status = status && verify_interval(AdaptiveSizePolicyWeight, 0, 100,
"AdaptiveSizePolicyWeight");
status = status && verify_percentage(ThresholdTolerance, "ThresholdTolerance");
- status = status && verify_percentage(MinHeapFreeRatio, "MinHeapFreeRatio");
- status = status && verify_percentage(MaxHeapFreeRatio, "MaxHeapFreeRatio");
// Divide by bucket size to prevent a large size from causing rollover when
// calculating amount of memory needed to be allocated for the String table.
@@ -2048,15 +2084,19 @@ bool Arguments::check_vm_args_consistency() {
status = status && verify_interval(SymbolTableSize, minimumSymbolTableSize,
(max_uintx / SymbolTable::bucket_size()), "SymbolTable size");
- if (MinHeapFreeRatio > MaxHeapFreeRatio) {
- jio_fprintf(defaultStream::error_stream(),
- "MinHeapFreeRatio (" UINTX_FORMAT ") must be less than or "
- "equal to MaxHeapFreeRatio (" UINTX_FORMAT ")\n",
- MinHeapFreeRatio, MaxHeapFreeRatio);
- status = false;
+ {
+ // Using "else if" below to avoid printing two error messages if min > max.
+ // This will also prevent us from reporting both min>100 and max>100 at the
+ // same time, but that is less annoying than printing two identical errors IMHO.
+ FormatBuffer<80> err_msg("");
+ if (!verify_MinHeapFreeRatio(err_msg, MinHeapFreeRatio)) {
+ jio_fprintf(defaultStream::error_stream(), "%s\n", err_msg.buffer());
+ status = false;
+ } else if (!verify_MaxHeapFreeRatio(err_msg, MaxHeapFreeRatio)) {
+ jio_fprintf(defaultStream::error_stream(), "%s\n", err_msg.buffer());
+ status = false;
+ }
}
- // Keeping the heap 100% free is hard ;-) so limit it to 99%.
- MinHeapFreeRatio = MIN2(MinHeapFreeRatio, (uintx) 99);
// Min/MaxMetaspaceFreeRatio
status = status && verify_percentage(MinMetaspaceFreeRatio, "MinMetaspaceFreeRatio");
@@ -2689,7 +2729,7 @@ jint Arguments::parse_each_vm_init_arg(const JavaVMInitArgs* args,
} else if (match_option(option, "-Xmaxf", &tail)) {
char* err;
int maxf = (int)(strtod(tail, &err) * 100);
- if (*err != '\0' || maxf < 0 || maxf > 100) {
+ if (*err != '\0' || *tail == '\0' || maxf < 0 || maxf > 100) {
jio_fprintf(defaultStream::error_stream(),
"Bad max heap free percentage size: %s\n",
option->optionString);
@@ -2701,7 +2741,7 @@ jint Arguments::parse_each_vm_init_arg(const JavaVMInitArgs* args,
} else if (match_option(option, "-Xminf", &tail)) {
char* err;
int minf = (int)(strtod(tail, &err) * 100);
- if (*err != '\0' || minf < 0 || minf > 100) {
+ if (*err != '\0' || *tail == '\0' || minf < 0 || minf > 100) {
jio_fprintf(defaultStream::error_stream(),
"Bad min heap free percentage size: %s\n",
option->optionString);
@@ -3646,9 +3686,9 @@ jint Arguments::apply_ergo() {
// Set per-collector flags
if (UseParallelGC || UseParallelOldGC) {
set_parallel_gc_flags();
- } else if (UseConcMarkSweepGC) { // should be done before ParNew check below
+ } else if (UseConcMarkSweepGC) { // Should be done before ParNew check below
set_cms_and_parnew_gc_flags();
- } else if (UseParNewGC) { // skipped if CMS is set above
+ } else if (UseParNewGC) { // Skipped if CMS is set above
set_parnew_gc_flags();
} else if (UseG1GC) {
set_g1_gc_flags();
@@ -3662,6 +3702,10 @@ jint Arguments::apply_ergo() {
" using -XX:ParallelGCThreads=N");
}
}
+ if (MinHeapFreeRatio == 100) {
+ // Keeping the heap 100% free is hard ;-) so limit it to 99%.
+ FLAG_SET_ERGO(uintx, MinHeapFreeRatio, 99);
+ }
#else // INCLUDE_ALL_GCS
assert(verify_serial_gc_flags(), "SerialGC unset");
#endif // INCLUDE_ALL_GCS
diff --git a/hotspot/src/share/vm/runtime/arguments.hpp b/hotspot/src/share/vm/runtime/arguments.hpp
index d6a6466f73c..19aba5ea17a 100644
--- a/hotspot/src/share/vm/runtime/arguments.hpp
+++ b/hotspot/src/share/vm/runtime/arguments.hpp
@@ -27,6 +27,7 @@
#include "runtime/java.hpp"
#include "runtime/perfData.hpp"
+#include "utilities/debug.hpp"
#include "utilities/top.hpp"
// Arguments parses the command line and recognizes options
@@ -370,11 +371,16 @@ class Arguments : AllStatic {
static jint parse_vm_init_args(const JavaVMInitArgs* args);
static jint parse_each_vm_init_arg(const JavaVMInitArgs* args, SysClassPath* scp_p, bool* scp_assembly_required_p, Flag::Flags origin);
static jint finalize_vm_init_args(SysClassPath* scp_p, bool scp_assembly_required);
- static bool is_bad_option(const JavaVMOption* option, jboolean ignore,
- const char* option_type);
+ static bool is_bad_option(const JavaVMOption* option, jboolean ignore, const char* option_type);
+
static bool is_bad_option(const JavaVMOption* option, jboolean ignore) {
return is_bad_option(option, ignore, NULL);
}
+
+ static bool is_percentage(uintx val) {
+ return val <= 100;
+ }
+
static bool verify_interval(uintx val, uintx min,
uintx max, const char* name);
static bool verify_min_value(intx val, intx min, const char* name);
@@ -440,6 +446,15 @@ class Arguments : AllStatic {
static jint apply_ergo();
// Adjusts the arguments after the OS have adjusted the arguments
static jint adjust_after_os();
+
+ // Verifies that the given value will fit as a MinHeapFreeRatio. If not, an error
+ // message is returned in the provided buffer.
+ static bool verify_MinHeapFreeRatio(FormatBuffer<80>& err_msg, uintx min_heap_free_ratio);
+
+ // Verifies that the given value will fit as a MaxHeapFreeRatio. If not, an error
+ // message is returned in the provided buffer.
+ static bool verify_MaxHeapFreeRatio(FormatBuffer<80>& err_msg, uintx max_heap_free_ratio);
+
// Check for consistency in the selection of the garbage collector.
static bool check_gc_consistency();
static void check_deprecated_gcs();
diff --git a/hotspot/src/share/vm/runtime/globals.hpp b/hotspot/src/share/vm/runtime/globals.hpp
index da65a146848..0a31551d019 100644
--- a/hotspot/src/share/vm/runtime/globals.hpp
+++ b/hotspot/src/share/vm/runtime/globals.hpp
@@ -3135,15 +3135,15 @@ class CommandLineFlags {
"Maximum size of class area in Metaspace when compressed " \
"class pointers are used") \
\
- product(uintx, MinHeapFreeRatio, 40, \
+ manageable(uintx, MinHeapFreeRatio, 40, \
"The minimum percentage of heap free after GC to avoid expansion."\
- " For most GCs this applies to the old generation. In G1 it" \
- " applies to the whole heap. Not supported by ParallelGC.") \
+ " For most GCs this applies to the old generation. In G1 and" \
+ " ParallelGC it applies to the whole heap.") \
\
- product(uintx, MaxHeapFreeRatio, 70, \
+ manageable(uintx, MaxHeapFreeRatio, 70, \
"The maximum percentage of heap free after GC to avoid shrinking."\
- " For most GCs this applies to the old generation. In G1 it" \
- " applies to the whole heap. Not supported by ParallelGC.") \
+ " For most GCs this applies to the old generation. In G1 and" \
+ " ParallelGC it applies to the whole heap.") \
\
product(intx, SoftRefLRUPolicyMSPerMB, 1000, \
"Number of milliseconds per MB of free space in the heap") \
diff --git a/hotspot/src/share/vm/services/attachListener.cpp b/hotspot/src/share/vm/services/attachListener.cpp
index 5dd6a7a0ea9..e7d8c380951 100644
--- a/hotspot/src/share/vm/services/attachListener.cpp
+++ b/hotspot/src/share/vm/services/attachListener.cpp
@@ -282,6 +282,20 @@ static jint set_uintx_flag(const char* name, AttachOperation* op, outputStream*
return JNI_ERR;
}
}
+
+ if (strncmp(name, "MaxHeapFreeRatio", 17) == 0) {
+ FormatBuffer<80> err_msg("");
+ if (!Arguments::verify_MaxHeapFreeRatio(err_msg, value)) {
+ out->print_cr(err_msg.buffer());
+ return JNI_ERR;
+ }
+ } else if (strncmp(name, "MinHeapFreeRatio", 17) == 0) {
+ FormatBuffer<80> err_msg("");
+ if (!Arguments::verify_MinHeapFreeRatio(err_msg, value)) {
+ out->print_cr(err_msg.buffer());
+ return JNI_ERR;
+ }
+ }
bool res = CommandLineFlags::uintxAtPut((char*)name, &value, Flag::ATTACH_ON_DEMAND);
if (! res) {
out->print_cr("setting flag %s failed", name);
diff --git a/hotspot/src/share/vm/services/management.cpp b/hotspot/src/share/vm/services/management.cpp
index 404f57c9c55..aae6bc61bb7 100644
--- a/hotspot/src/share/vm/services/management.cpp
+++ b/hotspot/src/share/vm/services/management.cpp
@@ -1833,6 +1833,18 @@ JVM_ENTRY(void, jmm_SetVMGlobal(JNIEnv *env, jstring flag_name, jvalue new_value
succeed = CommandLineFlags::intxAtPut(name, &ivalue, Flag::MANAGEMENT);
} else if (flag->is_uintx()) {
uintx uvalue = (uintx)new_value.j;
+
+ if (strncmp(name, "MaxHeapFreeRatio", 17) == 0) {
+ FormatBuffer<80> err_msg("");
+ if (!Arguments::verify_MaxHeapFreeRatio(err_msg, uvalue)) {
+ THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(), err_msg.buffer());
+ }
+ } else if (strncmp(name, "MinHeapFreeRatio", 17) == 0) {
+ FormatBuffer<80> err_msg("");
+ if (!Arguments::verify_MinHeapFreeRatio(err_msg, uvalue)) {
+ THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(), err_msg.buffer());
+ }
+ }
succeed = CommandLineFlags::uintxAtPut(name, &uvalue, Flag::MANAGEMENT);
} else if (flag->is_uint64_t()) {
uint64_t uvalue = (uint64_t)new_value.j;
From 214de0eb69f80cc2cee0229037a3b9216198622f Mon Sep 17 00:00:00 2001
From: Jonathan Gibbons
Date: Wed, 29 Jan 2014 14:32:27 -0800
Subject: [PATCH 129/181] 8032869: remove support for legacy options in javap
Reviewed-by: ksrini
---
.../com/sun/tools/classfile/Attribute.java | 33 ++++++---------
.../com/sun/tools/javap/AttributeWriter.java | 28 ++-----------
.../com/sun/tools/javap/ClassWriter.java | 17 ++++----
.../com/sun/tools/javap/JavapTask.java | 42 +------------------
.../classes/com/sun/tools/javap/Options.java | 4 +-
.../tools/javap/resources/javap.properties | 3 --
.../test/tools/javap/InvalidOptions.java | 7 ++--
7 files changed, 29 insertions(+), 105 deletions(-)
diff --git a/langtools/src/share/classes/com/sun/tools/classfile/Attribute.java b/langtools/src/share/classes/com/sun/tools/classfile/Attribute.java
index 2688036a7f5..ce5ec7076b1 100644
--- a/langtools/src/share/classes/com/sun/tools/classfile/Attribute.java
+++ b/langtools/src/share/classes/com/sun/tools/classfile/Attribute.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -71,10 +71,6 @@ public abstract class Attribute {
// defer init of standardAttributeClasses until after options set up
}
- public void setCompat(boolean compat) {
- this.compat = compat;
- }
-
public Attribute createAttribute(ClassReader cr, int name_index, byte[] data)
throws IOException {
if (standardAttributes == null) {
@@ -109,9 +105,10 @@ public abstract class Attribute {
protected void init() {
standardAttributes = new HashMap<>();
standardAttributes.put(AnnotationDefault, AnnotationDefault_attribute.class);
- standardAttributes.put(BootstrapMethods, BootstrapMethods_attribute.class);
+ standardAttributes.put(BootstrapMethods, BootstrapMethods_attribute.class);
standardAttributes.put(CharacterRangeTable, CharacterRangeTable_attribute.class);
standardAttributes.put(Code, Code_attribute.class);
+ standardAttributes.put(CompilationID, CompilationID_attribute.class);
standardAttributes.put(ConstantValue, ConstantValue_attribute.class);
standardAttributes.put(Deprecated, Deprecated_attribute.class);
standardAttributes.put(EnclosingMethod, EnclosingMethod_attribute.class);
@@ -120,29 +117,23 @@ public abstract class Attribute {
standardAttributes.put(LineNumberTable, LineNumberTable_attribute.class);
standardAttributes.put(LocalVariableTable, LocalVariableTable_attribute.class);
standardAttributes.put(LocalVariableTypeTable, LocalVariableTypeTable_attribute.class);
-
- if (!compat) { // old javap does not recognize recent attributes
- standardAttributes.put(MethodParameters, MethodParameters_attribute.class);
- standardAttributes.put(CompilationID, CompilationID_attribute.class);
- standardAttributes.put(RuntimeInvisibleAnnotations, RuntimeInvisibleAnnotations_attribute.class);
- standardAttributes.put(RuntimeInvisibleParameterAnnotations, RuntimeInvisibleParameterAnnotations_attribute.class);
- standardAttributes.put(RuntimeVisibleAnnotations, RuntimeVisibleAnnotations_attribute.class);
- standardAttributes.put(RuntimeVisibleParameterAnnotations, RuntimeVisibleParameterAnnotations_attribute.class);
- standardAttributes.put(RuntimeVisibleTypeAnnotations, RuntimeVisibleTypeAnnotations_attribute.class);
- standardAttributes.put(RuntimeInvisibleTypeAnnotations, RuntimeInvisibleTypeAnnotations_attribute.class);
- standardAttributes.put(Signature, Signature_attribute.class);
- standardAttributes.put(SourceID, SourceID_attribute.class);
- }
-
+ standardAttributes.put(MethodParameters, MethodParameters_attribute.class);
+ standardAttributes.put(RuntimeInvisibleAnnotations, RuntimeInvisibleAnnotations_attribute.class);
+ standardAttributes.put(RuntimeInvisibleParameterAnnotations, RuntimeInvisibleParameterAnnotations_attribute.class);
+ standardAttributes.put(RuntimeVisibleAnnotations, RuntimeVisibleAnnotations_attribute.class);
+ standardAttributes.put(RuntimeVisibleParameterAnnotations, RuntimeVisibleParameterAnnotations_attribute.class);
+ standardAttributes.put(RuntimeVisibleTypeAnnotations, RuntimeVisibleTypeAnnotations_attribute.class);
+ standardAttributes.put(RuntimeInvisibleTypeAnnotations, RuntimeInvisibleTypeAnnotations_attribute.class);
+ standardAttributes.put(Signature, Signature_attribute.class);
standardAttributes.put(SourceDebugExtension, SourceDebugExtension_attribute.class);
standardAttributes.put(SourceFile, SourceFile_attribute.class);
+ standardAttributes.put(SourceID, SourceID_attribute.class);
standardAttributes.put(StackMap, StackMap_attribute.class);
standardAttributes.put(StackMapTable, StackMapTable_attribute.class);
standardAttributes.put(Synthetic, Synthetic_attribute.class);
}
private Map> standardAttributes;
- private boolean compat; // don't support recent attrs in compatibility mode
}
public static Attribute read(ClassReader cr) throws IOException {
diff --git a/langtools/src/share/classes/com/sun/tools/javap/AttributeWriter.java b/langtools/src/share/classes/com/sun/tools/javap/AttributeWriter.java
index dd721c2c077..49bdc467bac 100644
--- a/langtools/src/share/classes/com/sun/tools/javap/AttributeWriter.java
+++ b/langtools/src/share/classes/com/sun/tools/javap/AttributeWriter.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -227,10 +227,7 @@ public class AttributeWriter extends BasicWriter
}
public Void visitConstantValue(ConstantValue_attribute attr, Void ignore) {
- if (options.compat) // BUG 6622216 javap names some attributes incorrectly
- print("Constant value: ");
- else
- print("ConstantValue: ");
+ print("ConstantValue: ");
constantWriter.write(attr.constantvalue_index);
println();
return null;
@@ -291,20 +288,10 @@ public class AttributeWriter extends BasicWriter
public Void visitInnerClasses(InnerClasses_attribute attr, Void ignore) {
boolean first = true;
- if (options.compat) {
- writeInnerClassHeader();
- first = false;
- }
for (int i = 0 ; i < attr.classes.length; i++) {
InnerClasses_attribute.Info info = attr.classes[i];
//access
AccessFlags access_flags = info.inner_class_access_flags;
- if (options.compat) {
- // BUG 6622215: javap ignores certain relevant access flags
- access_flags = access_flags.ignore(ACC_STATIC | ACC_PROTECTED | ACC_PRIVATE | ACC_INTERFACE | ACC_SYNTHETIC | ACC_ENUM);
- // BUG 6622232: javap gets whitespace confused
- print(" ");
- }
if (options.checkAccess(access_flags)) {
if (first) {
writeInnerClassHeader();
@@ -346,11 +333,7 @@ public class AttributeWriter extends BasicWriter
}
private void writeInnerClassHeader() {
- if (options.compat) // BUG 6622216: javap names some attributes incorrectly
- print("InnerClass");
- else
- print("InnerClasses");
- println(":");
+ println("InnerClasses:");
indent(+1);
}
@@ -711,10 +694,7 @@ public class AttributeWriter extends BasicWriter
}
String toHex(byte b, int w) {
- if (options.compat) // BUG 6622260: javap prints negative bytes incorrectly in hex
- return toHex((int) b, w);
- else
- return toHex(b & 0xff, w);
+ return toHex(b & 0xff, w);
}
static String toHex(int i) {
diff --git a/langtools/src/share/classes/com/sun/tools/javap/ClassWriter.java b/langtools/src/share/classes/com/sun/tools/javap/ClassWriter.java
index 07e22dec757..83b8ba8e9e1 100644
--- a/langtools/src/share/classes/com/sun/tools/javap/ClassWriter.java
+++ b/langtools/src/share/classes/com/sun/tools/javap/ClassWriter.java
@@ -120,7 +120,7 @@ public class ClassWriter extends BasicWriter {
public void write(ClassFile cf) {
setClassFile(cf);
- if ((options.sysInfo || options.verbose) && !options.compat) {
+ if (options.sysInfo || options.verbose) {
if (uri != null) {
if (uri.getScheme().equals("file"))
println("Classfile " + uri.getPath());
@@ -152,7 +152,7 @@ public class ClassWriter extends BasicWriter {
println("Compiled from \"" + getSourceFile((SourceFile_attribute) sfa) + "\"");
}
- if ((options.sysInfo || options.verbose) && !options.compat) {
+ if (options.sysInfo || options.verbose) {
indent(-1);
}
@@ -205,8 +205,7 @@ public class ClassWriter extends BasicWriter {
attrWriter.write(cf, cf.attributes, constant_pool);
println("minor version: " + cf.minor_version);
println("major version: " + cf.major_version);
- if (!options.compat)
- writeList("flags: ", flags.getClassFlags(), "\n");
+ writeList("flags: ", flags.getClassFlags(), "\n");
indent(-1);
constantWriter.writeConstantPool();
} else {
@@ -372,7 +371,7 @@ public class ClassWriter extends BasicWriter {
}
print(" ");
print(getFieldName(f));
- if (options.showConstants && !options.compat) { // BUG 4111861 print static final field contents
+ if (options.showConstants) {
Attribute a = f.attributes.get(Attribute.ConstantValue);
if (a instanceof ConstantValue_attribute) {
print(" = ");
@@ -390,7 +389,7 @@ public class ClassWriter extends BasicWriter {
if (options.showDescriptors)
println("descriptor: " + getValue(f.descriptor));
- if (options.verbose && !options.compat)
+ if (options.verbose)
writeList("flags: ", flags.getFieldFlags(), "\n");
if (options.showAllAttrs) {
@@ -487,7 +486,7 @@ public class ClassWriter extends BasicWriter {
println("descriptor: " + getValue(m.descriptor));
}
- if (options.verbose && !options.compat) {
+ if (options.verbose) {
writeList("flags: ", flags.getMethodFlags(), "\n");
}
@@ -553,13 +552,11 @@ public class ClassWriter extends BasicWriter {
}
Signature_attribute getSignature(Attributes attributes) {
- if (options.compat) // javap does not recognize recent attributes
- return null;
return (Signature_attribute) attributes.get(Attribute.Signature);
}
String adjustVarargs(AccessFlags flags, String params) {
- if (flags.is(ACC_VARARGS) && !options.compat) {
+ if (flags.is(ACC_VARARGS)) {
int i = params.lastIndexOf("[]");
if (i > 0)
return params.substring(0, i) + "..." + params.substring(i+2);
diff --git a/langtools/src/share/classes/com/sun/tools/javap/JavapTask.java b/langtools/src/share/classes/com/sun/tools/javap/JavapTask.java
index 23576737c21..57284a4c003 100644
--- a/langtools/src/share/classes/com/sun/tools/javap/JavapTask.java
+++ b/langtools/src/share/classes/com/sun/tools/javap/JavapTask.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -195,48 +195,12 @@ public class JavapTask implements DisassemblerTool.DisassemblerTask, Messages {
}
},
-// new Option(false, "-all") {
-// void process(JavapTask task, String opt, String arg) {
-// task.options.showAllAttrs = true;
-// }
-// },
-
- new Option(false, "-h") {
- void process(JavapTask task, String opt, String arg) throws BadArgs {
- throw task.new BadArgs("err.h.not.supported");
- }
- },
-
- new Option(false, "-verify", "-verify-verbose") {
- void process(JavapTask task, String opt, String arg) throws BadArgs {
- throw task.new BadArgs("err.verify.not.supported");
- }
- },
-
new Option(false, "-sysinfo") {
void process(JavapTask task, String opt, String arg) {
task.options.sysInfo = true;
}
},
- new Option(false, "-Xold") {
- void process(JavapTask task, String opt, String arg) throws BadArgs {
- task.log.println(task.getMessage("warn.Xold.not.supported"));
- }
- },
-
- new Option(false, "-Xnew") {
- void process(JavapTask task, String opt, String arg) throws BadArgs {
- // ignore: this _is_ the new version
- }
- },
-
- new Option(false, "-XDcompat") {
- void process(JavapTask task, String opt, String arg) {
- task.options.compat = true;
- }
- },
-
new Option(false, "-XDdetails") {
void process(JavapTask task, String opt, String arg) {
task.options.details = EnumSet.allOf(InstructionDetailWriter.Kind.class);
@@ -520,7 +484,7 @@ public class JavapTask implements DisassemblerTool.DisassemblerTask, Messages {
throw new BadArgs("err.unknown.option", arg).showUsage(true);
}
- if (!options.compat && options.accessOptions.size() > 1) {
+ if (options.accessOptions.size() > 1) {
StringBuilder sb = new StringBuilder();
for (String opt: options.accessOptions) {
if (sb.length() > 0)
@@ -581,8 +545,6 @@ public class JavapTask implements DisassemblerTool.DisassemblerTask, Messages {
SourceWriter sourceWriter = SourceWriter.instance(context);
sourceWriter.setFileManager(fileManager);
- attributeFactory.setCompat(options.compat);
-
int result = EXIT_OK;
for (String className: classes) {
diff --git a/langtools/src/share/classes/com/sun/tools/javap/Options.java b/langtools/src/share/classes/com/sun/tools/javap/Options.java
index 7d0a9a7fe4b..fbfc30b2190 100644
--- a/langtools/src/share/classes/com/sun/tools/javap/Options.java
+++ b/langtools/src/share/classes/com/sun/tools/javap/Options.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -88,6 +88,4 @@ public class Options {
public boolean showInnerClasses;
public int indentWidth = 2; // #spaces per indentWidth level
public int tabColumn = 40; // column number for comments
-
- public boolean compat; // bug-for-bug compatibility mode with old javap
}
diff --git a/langtools/src/share/classes/com/sun/tools/javap/resources/javap.properties b/langtools/src/share/classes/com/sun/tools/javap/resources/javap.properties
index c77024f75f5..a704e7f5e51 100644
--- a/langtools/src/share/classes/com/sun/tools/javap/resources/javap.properties
+++ b/langtools/src/share/classes/com/sun/tools/javap/resources/javap.properties
@@ -6,7 +6,6 @@ err.class.not.found=class not found: {0}
err.crash=A serious internal error has occurred: {0}\nPlease file a bug report, and include the following information:\n{1}
err.end.of.file=unexpected end of file while reading {0}
err.file.not.found=file not found: {0}
-err.h.not.supported=-h is no longer available - use the 'javah' program
err.incompatible.options=bad combination of options: {0}
err.internal.error=internal error: {0} {1} {2}
err.invalid.arg.for.option=invalid argument for option: {0}
@@ -15,11 +14,9 @@ err.missing.arg=no value given for {0}
err.no.classes.specified=no classes specified
err.not.standard.file.manager=can only specify class files when using a standard file manager
err.unknown.option=unknown option: {0}
-err.verify.not.supported=-verify not supported
err.no.SourceFile.attribute=no SourceFile attribute
err.source.file.not.found=source file not found
err.bad.innerclasses.attribute=bad InnerClasses attribute for {0}
-warn.Xold.not.supported=-Xold is no longer available
main.usage.summary=\
Usage: {0} \n\
diff --git a/langtools/test/tools/javap/InvalidOptions.java b/langtools/test/tools/javap/InvalidOptions.java
index d92f644ba85..764fd8a861c 100644
--- a/langtools/test/tools/javap/InvalidOptions.java
+++ b/langtools/test/tools/javap/InvalidOptions.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -23,8 +23,8 @@
/*
* @test
- * @bug 8027411
- * @summary test invalid options -h and -b
+ * @bug 8027411 8032869
+ * @summary test an invalid option
*/
import java.io.*;
@@ -39,7 +39,6 @@ public class InvalidOptions {
}
void run() throws Exception {
- test(2, "-h", "Error: -h is no longer available - use the javah program");
test(2, "-b", "Error: unknown option: -b",
"Usage: javap ",
"use -help for a list of possible options");
From ca53cc64e58dbb6ee6c24f750670e50843da4915 Mon Sep 17 00:00:00 2001
From: Eric McCorkle
Date: Thu, 30 Jan 2014 07:35:49 -0500
Subject: [PATCH 130/181] 8033218: Silent failure in
TypeAnnotations.resolveFrame
Change silent no-op to assertion failure when resolveFrame is called before attribution.
Reviewed-by: jfranck
---
.../classes/com/sun/tools/javac/code/TypeAnnotations.java | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/langtools/src/share/classes/com/sun/tools/javac/code/TypeAnnotations.java b/langtools/src/share/classes/com/sun/tools/javac/code/TypeAnnotations.java
index 1ed8f161a7d..35ccc58a14e 100644
--- a/langtools/src/share/classes/com/sun/tools/javac/code/TypeAnnotations.java
+++ b/langtools/src/share/classes/com/sun/tools/javac/code/TypeAnnotations.java
@@ -912,11 +912,7 @@ public class TypeAnnotations {
// not care about inner types.
JCAnnotatedType atypetree = (JCAnnotatedType) frame;
final Type utype = atypetree.underlyingType.type;
- if (utype == null) {
- // This might happen during DeferredAttr;
- // we will be back later.
- return;
- }
+ Assert.checkNonNull(utype);
Symbol tsym = utype.tsym;
if (tsym.getKind().equals(ElementKind.TYPE_PARAMETER) ||
utype.getKind().equals(TypeKind.WILDCARD) ||
From 30e97838505eafa1a970716718249c7b497b103f Mon Sep 17 00:00:00 2001
From: Jonathan Gibbons
Date: Thu, 30 Jan 2014 17:46:25 -0800
Subject: [PATCH 131/181] 8033180: An inappropriate newline symbol in the help
section
Reviewed-by: ksrini
---
.../com/sun/tools/javap/JavapTask.java | 16 ++--
langtools/test/tools/javap/T8033180.java | 88 +++++++++++++++++++
2 files changed, 99 insertions(+), 5 deletions(-)
create mode 100644 langtools/test/tools/javap/T8033180.java
diff --git a/langtools/src/share/classes/com/sun/tools/javap/JavapTask.java b/langtools/src/share/classes/com/sun/tools/javap/JavapTask.java
index 57284a4c003..6033433d40e 100644
--- a/langtools/src/share/classes/com/sun/tools/javap/JavapTask.java
+++ b/langtools/src/share/classes/com/sun/tools/javap/JavapTask.java
@@ -430,7 +430,7 @@ public class JavapTask implements DisassemblerTool.DisassemblerTask, Messages {
} catch (BadArgs e) {
reportError(e.key, e.args);
if (e.showUsage) {
- log.println(getMessage("main.usage.summary", progname));
+ printLines(getMessage("main.usage.summary", progname));
}
return EXIT_CMDERR;
} catch (InternalError e) {
@@ -839,27 +839,33 @@ public class JavapTask implements DisassemblerTool.DisassemblerTask, Messages {
}
private void showHelp() {
- log.println(getMessage("main.usage", progname));
+ printLines(getMessage("main.usage", progname));
for (Option o: recognizedOptions) {
String name = o.aliases[0].substring(1); // there must always be at least one name
if (name.startsWith("X") || name.equals("fullversion") || name.equals("h") || name.equals("verify"))
continue;
- log.println(getMessage("main.opt." + name));
+ printLines(getMessage("main.opt." + name));
}
String[] fmOptions = { "-classpath", "-cp", "-bootclasspath" };
for (String o: fmOptions) {
if (fileManager.isSupportedOption(o) == -1)
continue;
String name = o.substring(1);
- log.println(getMessage("main.opt." + name));
+ printLines(getMessage("main.opt." + name));
}
}
private void showVersion(boolean full) {
- log.println(version(full ? "full" : "release"));
+ printLines(version(full ? "full" : "release"));
}
+ private void printLines(String msg) {
+ log.println(msg.replace("\n", nl));
+ }
+
+ private static final String nl = System.getProperty("line.separator");
+
private static final String versionRBName = "com.sun.tools.javap.resources.version";
private static ResourceBundle versionRB;
diff --git a/langtools/test/tools/javap/T8033180.java b/langtools/test/tools/javap/T8033180.java
new file mode 100644
index 00000000000..e7840eaf03f
--- /dev/null
+++ b/langtools/test/tools/javap/T8033180.java
@@ -0,0 +1,88 @@
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8033180
+ * @summary Bad newline characters
+ */
+
+import java.io.*;
+import java.util.*;
+
+public class T8033180 {
+
+ public static void main(String... args) throws Exception {
+ new T8033180().run();
+ }
+
+ void run() throws Exception {
+ // fast-track this case, because test cannot fail in this case
+ if (lineSep.equals(nl))
+ return;
+
+ test("-help");
+ test("-version");
+
+ if (errors > 0)
+ throw new Exception(errors + " errors occurred");
+ }
+
+ static final String lineSep = System.getProperty("line.separator");
+ static final String nl = "\n";
+
+ void test(String... opts) throws Exception {
+ System.err.println("test " + Arrays.asList(opts));
+ List args = new ArrayList();
+ args.addAll(Arrays.asList(opts));
+ StringWriter sw = new StringWriter();
+ PrintWriter pw = new PrintWriter(sw);
+ int rc = com.sun.tools.javap.Main.run(args.toArray(new String[args.size()]), pw);
+ pw.close();
+ String out = sw.toString();
+ if (rc != 0)
+ throw new Exception("javap failed unexpectedly: rc=" + rc);
+
+ // remove all valid platform newline sequences
+ String out2 = out.replace(lineSep, "");
+
+ // count the remaining simple newline characters
+ int count = 0;
+ int i = out2.indexOf(nl, 0);
+ while (i != -1) {
+ count++;
+ i = out2.indexOf(nl, i + nl.length());
+ }
+
+ if (count > 0)
+ error(count + " newline characters found");
+ }
+
+ void error(String msg) {
+ System.err.println("Error: " + msg);
+ errors++;
+ }
+
+ int errors = 0;
+}
+
From a9618434af9ab788d8c91c306bc7ab836772ab34 Mon Sep 17 00:00:00 2001
From: Magnus Ihse Bursie
Date: Fri, 31 Jan 2014 10:24:58 +0100
Subject: [PATCH 132/181] 8033292: only warn, not fail, on unknown variables in
configure
Reviewed-by: erikj
---
common/autoconf/basics.m4 | 2 +-
common/autoconf/generated-configure.sh | 5 +++--
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/common/autoconf/basics.m4 b/common/autoconf/basics.m4
index 6bd29145e39..d34615d5a2a 100644
--- a/common/autoconf/basics.m4
+++ b/common/autoconf/basics.m4
@@ -250,7 +250,7 @@ AC_DEFUN([BASIC_CHECK_LEFTOVER_OVERRIDDEN],
if test "x$CONFIGURE_OVERRIDDEN_VARIABLES" != x; then
# Replace the separating ! with spaces before presenting for end user.
unknown_variables=${CONFIGURE_OVERRIDDEN_VARIABLES//!/ }
- AC_MSG_ERROR([The following variables are unknown to configure: $unknown_variables])
+ AC_MSG_WARN([The following variables might be unknown to configure: $unknown_variables])
fi
])
diff --git a/common/autoconf/generated-configure.sh b/common/autoconf/generated-configure.sh
index 998d2004ea2..a03ee5cdb85 100644
--- a/common/autoconf/generated-configure.sh
+++ b/common/autoconf/generated-configure.sh
@@ -4087,7 +4087,7 @@ fi
#CUSTOM_AUTOCONF_INCLUDE
# Do not change or remove the following line, it is needed for consistency checks:
-DATE_WHEN_GENERATED=1391032272
+DATE_WHEN_GENERATED=1391160222
###############################################################################
#
@@ -48539,7 +48539,8 @@ $as_echo "no, disabling ccaching of precompiled headers" >&6; }
if test "x$CONFIGURE_OVERRIDDEN_VARIABLES" != x; then
# Replace the separating ! with spaces before presenting for end user.
unknown_variables=${CONFIGURE_OVERRIDDEN_VARIABLES//!/ }
- as_fn_error $? "The following variables are unknown to configure: $unknown_variables" "$LINENO" 5
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: The following variables might be unknown to configure: $unknown_variables" >&5
+$as_echo "$as_me: WARNING: The following variables might be unknown to configure: $unknown_variables" >&2;}
fi
From e72d99fef1791ccff064b21ad0a492cf2e1dbc30 Mon Sep 17 00:00:00 2001
From: Naoto Sato
Date: Fri, 31 Jan 2014 10:04:16 -0800
Subject: [PATCH 133/181] 8030696: Norwegian locales nb_NO and nn_NO should be
available locales
Reviewed-by: okutsu
---
jdk/make/gensrc/GensrcLocaleDataMetaInfo.gmk | 4 +--
.../resources/no/LocaleNames_no.properties | 2 ++
.../no/LocaleNames_no_NO_NY.properties | 4 ++-
jdk/test/java/util/Locale/LocaleTest.java | 27 +++++++++++++++----
4 files changed, 29 insertions(+), 8 deletions(-)
diff --git a/jdk/make/gensrc/GensrcLocaleDataMetaInfo.gmk b/jdk/make/gensrc/GensrcLocaleDataMetaInfo.gmk
index 98947a0b92c..bf2e3a34552 100644
--- a/jdk/make/gensrc/GensrcLocaleDataMetaInfo.gmk
+++ b/jdk/make/gensrc/GensrcLocaleDataMetaInfo.gmk
@@ -53,8 +53,8 @@ endif
# The EN locales
EN_LOCALES := en%
-# ja-JP-JP and th-TH-TH need to be manually added, as they don't have any resource files.
-ALL_NON_EN_LOCALES := ja-JP-JP th-TH-TH
+# Locales that don't have any resource files should be included here.
+ALL_NON_EN_LOCALES := ja-JP-JP nb-NO nn-NO th-TH-TH
SED_ARGS := -e 's|$(HASH)warn This file is preprocessed before being compiled|// -- This file was mechanically generated: Do not edit! -- //|g'
diff --git a/jdk/src/share/classes/sun/util/resources/no/LocaleNames_no.properties b/jdk/src/share/classes/sun/util/resources/no/LocaleNames_no.properties
index 3a43b04dcc9..f39dfb66568 100644
--- a/jdk/src/share/classes/sun/util/resources/no/LocaleNames_no.properties
+++ b/jdk/src/share/classes/sun/util/resources/no/LocaleNames_no.properties
@@ -38,6 +38,8 @@
# language names
# key is ISO 639 language code
+nb=bokm\u00e5l
+nn=nynorsk
no=norsk
# country names
diff --git a/jdk/src/share/classes/sun/util/resources/no/LocaleNames_no_NO_NY.properties b/jdk/src/share/classes/sun/util/resources/no/LocaleNames_no_NO_NY.properties
index 3a43b04dcc9..e56e415a512 100644
--- a/jdk/src/share/classes/sun/util/resources/no/LocaleNames_no_NO_NY.properties
+++ b/jdk/src/share/classes/sun/util/resources/no/LocaleNames_no_NO_NY.properties
@@ -38,12 +38,14 @@
# language names
# key is ISO 639 language code
+nb=bokm\u00e5l
+nn=nynorsk
no=norsk
# country names
# key is ISO 3166 country code
-NO=Norge
+NO=Noreg
# variant names
diff --git a/jdk/test/java/util/Locale/LocaleTest.java b/jdk/test/java/util/Locale/LocaleTest.java
index 8c9c4f16199..2a6824222b3 100644
--- a/jdk/test/java/util/Locale/LocaleTest.java
+++ b/jdk/test/java/util/Locale/LocaleTest.java
@@ -25,7 +25,7 @@
* @bug 4052404 4052440 4084688 4092475 4101316 4105828 4107014 4107953 4110613
* 4118587 4118595 4122371 4126371 4126880 4135316 4135752 4139504 4139940 4143951
* 4147315 4147317 4147552 4335196 4778440 4940539 5010672 6475525 6544471 6627549
- * 6786276 7066203 7085757
+ * 6786276 7066203 7085757 8030696
* @summary test Locales
*/
/*
@@ -62,6 +62,8 @@
*/
import java.text.*;
+import java.util.Arrays;
+import java.util.List;
import java.util.Locale;
import java.util.MissingResourceException;
import java.util.Date;
@@ -925,16 +927,20 @@ test commented out pending API-change approval
}
/*
- * @bug 4147552 4778440
+ * @bug 4147552 4778440 8030696
*/
public void Test4147552() {
Locale[] locales = { new Locale("no", "NO"), new Locale("no", "NO", "B"),
- new Locale("no", "NO", "NY") };
+ new Locale("no", "NO", "NY"), new Locale("nb", "NO"),
+ new Locale("nn", "NO") };
String[] englishDisplayNames = { "Norwegian (Norway)",
"Norwegian (Norway,Bokm\u00e5l)",
- "Norwegian (Norway,Nynorsk)" };
+ "Norwegian (Norway,Nynorsk)",
+ "Norwegian Bokm\u00e5l (Norway)",
+ "Norwegian Nynorsk (Norway)" };
String[] norwegianDisplayNames = { "norsk (Norge)",
- "norsk (Norge,bokm\u00e5l)", "norsk (Norge,nynorsk)" };
+ "norsk (Norge,bokm\u00e5l)", "norsk (Noreg,nynorsk)",
+ "bokm\u00e5l (Norge)", "nynorsk (Noreg)" };
for (int i = 0; i < locales.length; i++) {
Locale loc = locales[i];
@@ -948,6 +954,17 @@ test commented out pending API-change approval
}
}
+ /*
+ * @bug 8030696
+ */
+ public void Test8030696() {
+ List av = Arrays.asList(Locale.getAvailableLocales());
+ if (!av.contains(new Locale("nb", "NO")) ||
+ !av.contains(new Locale("nn", "NO"))) {
+ errln("\"nb-NO\" and/or \"nn-NO\" locale(s) not returned from getAvailableLocales().");
+ }
+ }
+
static String escapeUnicode(String s) {
StringBuffer buf = new StringBuffer();
for (int i=0; i
Date: Fri, 31 Jan 2014 18:32:07 +0000
Subject: [PATCH 134/181] 8011645: CopyOnWriteArrayList.COWSubList.subList does
not validate range properly
Reviewed-by: martin, psandoz
---
.../util/concurrent/CopyOnWriteArrayList.java | 2 +-
.../CopyOnWriteArrayList/COWSubList.java | 58 +++++++++++++++++++
2 files changed, 59 insertions(+), 1 deletion(-)
create mode 100644 jdk/test/java/util/concurrent/CopyOnWriteArrayList/COWSubList.java
diff --git a/jdk/src/share/classes/java/util/concurrent/CopyOnWriteArrayList.java b/jdk/src/share/classes/java/util/concurrent/CopyOnWriteArrayList.java
index fae67b2b2d0..162ad3b51d1 100644
--- a/jdk/src/share/classes/java/util/concurrent/CopyOnWriteArrayList.java
+++ b/jdk/src/share/classes/java/util/concurrent/CopyOnWriteArrayList.java
@@ -1400,7 +1400,7 @@ public class CopyOnWriteArrayList
lock.lock();
try {
checkForComodification();
- if (fromIndex < 0 || toIndex > size)
+ if (fromIndex < 0 || toIndex > size || fromIndex > toIndex)
throw new IndexOutOfBoundsException();
return new COWSubList(l, fromIndex + offset,
toIndex + offset);
diff --git a/jdk/test/java/util/concurrent/CopyOnWriteArrayList/COWSubList.java b/jdk/test/java/util/concurrent/CopyOnWriteArrayList/COWSubList.java
new file mode 100644
index 00000000000..5cbfea7ec6b
--- /dev/null
+++ b/jdk/test/java/util/concurrent/CopyOnWriteArrayList/COWSubList.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * @test
+ * @bug 8011645
+ * @summary CopyOnWriteArrayList.COWSubList.subList does not validate range properly
+ */
+import java.util.List;
+import java.util.concurrent.CopyOnWriteArrayList;
+
+public class COWSubList {
+ public static void main(String[] args) {
+ List list = new CopyOnWriteArrayList<>();
+ list.add("A");
+ list.add("B");
+ list.add("C");
+ list.add("D");
+ list.add("E");
+
+ expectThrow(() -> list.subList(-1, 5));
+ expectThrow(() -> list.subList(0, 6));
+ expectThrow(() -> list.subList(4, 3));
+ expectThrow(() -> list.subList(0, 5).subList(-1, 5));
+ expectThrow(() -> list.subList(0, 5).subList(0, 6));
+ expectThrow(() -> list.subList(0, 5).subList(4, 3));
+ }
+
+ static void expectThrow(Runnable r) {
+ try {
+ r.run();
+ throw new RuntimeException("Failed: expected IOOBE to be thrown");
+ } catch (IndexOutOfBoundsException x) {
+ // ok, excpeted
+ }
+ }
+}
+
From 930a4614e6bc8ecdc04a8da28a2bb30f8a0ef1be Mon Sep 17 00:00:00 2001
From: Roger Riggs
Date: Fri, 31 Jan 2014 13:42:31 -0500
Subject: [PATCH 135/181] 8032221: Typo in java.util.date
Trancate -> truncate; updated html and to use {@code ...}
Reviewed-by: darcy, lancea
---
jdk/src/share/classes/java/util/Date.java | 343 +++++++++++-----------
1 file changed, 170 insertions(+), 173 deletions(-)
diff --git a/jdk/src/share/classes/java/util/Date.java b/jdk/src/share/classes/java/util/Date.java
index 502daaefdbb..f16ea496604 100644
--- a/jdk/src/share/classes/java/util/Date.java
+++ b/jdk/src/share/classes/java/util/Date.java
@@ -41,20 +41,20 @@ import sun.util.calendar.Gregorian;
import sun.util.calendar.ZoneInfo;
/**
- * The class Date
represents a specific instant
+ * The class {@code Date} represents a specific instant
* in time, with millisecond precision.
*
- * Prior to JDK 1.1, the class Date
had two additional
+ * Prior to JDK 1.1, the class {@code Date} had two additional
* functions. It allowed the interpretation of dates as year, month, day, hour,
* minute, and second values. It also allowed the formatting and parsing
* of date strings. Unfortunately, the API for these functions was not
* amenable to internationalization. As of JDK 1.1, the
- * Calendar
class should be used to convert between dates and time
- * fields and the DateFormat
class should be used to format and
+ * {@code Calendar} class should be used to convert between dates and time
+ * fields and the {@code DateFormat} class should be used to format and
* parse date strings.
- * The corresponding methods in Date
are deprecated.
+ * The corresponding methods in {@code Date} are deprecated.
*
- * Although the Date
class is intended to reflect
+ * Although the {@code Date} class is intended to reflect
* coordinated universal time (UTC), it may not do so exactly,
* depending on the host environment of the Java Virtual Machine.
* Nearly all modern operating systems assume that 1 day =
@@ -93,12 +93,12 @@ import sun.util.calendar.ZoneInfo;
* http://tycho.usno.navy.mil/systime.html
*
*
- * In all methods of class Date
that accept or return
+ * In all methods of class {@code Date} that accept or return
* year, month, date, hours, minutes, and seconds values, the
* following representations are used:
*
* A year y is represented by the integer
- * y - 1900
.
+ * y {@code - 1900}.
* A month is represented by an integer from 0 to 11; 0 is January,
* 1 is February, and so forth; thus 11 is December.
* A date (day of month) is represented by an integer from 1 to 31
@@ -155,7 +155,7 @@ public class Date
private static final long serialVersionUID = 7523967970034938905L;
/**
- * Allocates a Date
object and initializes it so that
+ * Allocates a {@code Date} object and initializes it so that
* it represents the time at which it was allocated, measured to the
* nearest millisecond.
*
@@ -166,7 +166,7 @@ public class Date
}
/**
- * Allocates a Date
object and initializes it to
+ * Allocates a {@code Date} object and initializes it to
* represent the specified number of milliseconds since the
* standard base time known as "the epoch", namely January 1,
* 1970, 00:00:00 GMT.
@@ -179,18 +179,18 @@ public class Date
}
/**
- * Allocates a Date
object and initializes it so that
+ * Allocates a {@code Date} object and initializes it so that
* it represents midnight, local time, at the beginning of the day
- * specified by the year
, month
, and
- * date
arguments.
+ * specified by the {@code year}, {@code month}, and
+ * {@code date} arguments.
*
* @param year the year minus 1900.
* @param month the month between 0-11.
* @param date the day of the month between 1-31.
* @see java.util.Calendar
* @deprecated As of JDK version 1.1,
- * replaced by Calendar.set(year + 1900, month, date)
- * or GregorianCalendar(year + 1900, month, date)
.
+ * replaced by {@code Calendar.set(year + 1900, month, date)}
+ * or {@code GregorianCalendar(year + 1900, month, date)}.
*/
@Deprecated
public Date(int year, int month, int date) {
@@ -198,10 +198,10 @@ public class Date
}
/**
- * Allocates a Date
object and initializes it so that
+ * Allocates a {@code Date} object and initializes it so that
* it represents the instant at the start of the minute specified by
- * the year
, month
, date
,
- * hrs
, and min
arguments, in the local
+ * the {@code year}, {@code month}, {@code date},
+ * {@code hrs}, and {@code min} arguments, in the local
* time zone.
*
* @param year the year minus 1900.
@@ -211,9 +211,8 @@ public class Date
* @param min the minutes between 0-59.
* @see java.util.Calendar
* @deprecated As of JDK version 1.1,
- * replaced by Calendar.set(year + 1900, month, date,
- * hrs, min)
or GregorianCalendar(year + 1900,
- * month, date, hrs, min)
.
+ * replaced by {@code Calendar.set(year + 1900, month, date, hrs, min)}
+ * or {@code GregorianCalendar(year + 1900, month, date, hrs, min)}.
*/
@Deprecated
public Date(int year, int month, int date, int hrs, int min) {
@@ -221,10 +220,10 @@ public class Date
}
/**
- * Allocates a Date
object and initializes it so that
+ * Allocates a {@code Date} object and initializes it so that
* it represents the instant at the start of the second specified
- * by the year
, month
, date
,
- * hrs
, min
, and sec
arguments,
+ * by the {@code year}, {@code month}, {@code date},
+ * {@code hrs}, {@code min}, and {@code sec} arguments,
* in the local time zone.
*
* @param year the year minus 1900.
@@ -235,9 +234,8 @@ public class Date
* @param sec the seconds between 0-59.
* @see java.util.Calendar
* @deprecated As of JDK version 1.1,
- * replaced by Calendar.set(year + 1900, month, date,
- * hrs, min, sec)
or GregorianCalendar(year + 1900,
- * month, date, hrs, min, sec)
.
+ * replaced by {@code Calendar.set(year + 1900, month, date, hrs, min, sec)}
+ * or {@code GregorianCalendar(year + 1900, month, date, hrs, min, sec)}.
*/
@Deprecated
public Date(int year, int month, int date, int hrs, int min, int sec) {
@@ -258,16 +256,16 @@ public class Date
}
/**
- * Allocates a Date
object and initializes it so that
+ * Allocates a {@code Date} object and initializes it so that
* it represents the date and time indicated by the string
- * s
, which is interpreted as if by the
+ * {@code s}, which is interpreted as if by the
* {@link Date#parse} method.
*
* @param s a string representation of the date.
* @see java.text.DateFormat
* @see java.util.Date#parse(java.lang.String)
* @deprecated As of JDK version 1.1,
- * replaced by DateFormat.parse(String s)
.
+ * replaced by {@code DateFormat.parse(String s)}.
*/
@Deprecated
public Date(String s) {
@@ -292,7 +290,7 @@ public class Date
* Determines the date and time based on the arguments. The
* arguments are interpreted as a year, month, day of the month,
* hour of the day, minute within the hour, and second within the
- * minute, exactly as for the Date constructor with six
+ * minute, exactly as for the {@code Date} constructor with six
* arguments, except that the arguments are interpreted relative
* to UTC rather than to the local time zone. The time indicated is
* returned represented as the distance, measured in milliseconds,
@@ -308,10 +306,9 @@ public class Date
* the date and time specified by the arguments.
* @see java.util.Calendar
* @deprecated As of JDK version 1.1,
- * replaced by Calendar.set(year + 1900, month, date,
- * hrs, min, sec)
or GregorianCalendar(year + 1900,
- * month, date, hrs, min, sec)
, using a UTC
- * TimeZone
, followed by Calendar.getTime().getTime()
.
+ * replaced by {@code Calendar.set(year + 1900, month, date, hrs, min, sec)}
+ * or {@code GregorianCalendar(year + 1900, month, date, hrs, min, sec)}, using a UTC
+ * {@code TimeZone}, followed by {@code Calendar.getTime().getTime()}.
*/
@Deprecated
public static long UTC(int year, int month, int date,
@@ -338,12 +335,12 @@ public class Date
}
/**
- * Attempts to interpret the string s as a representation
+ * Attempts to interpret the string {@code s} as a representation
* of a date and time. If the attempt is successful, the time
* indicated is returned represented as the distance, measured in
* milliseconds, of that time from the epoch (00:00:00 GMT on
* January 1, 1970). If the attempt fails, an
- * IllegalArgumentException is thrown.
+ * {@code IllegalArgumentException} is thrown.
*
* It accepts many syntaxes; in particular, it recognizes the IETF
* standard date syntax: "Sat, 12 Aug 1995 13:30:00 GMT". It also
@@ -353,11 +350,11 @@ public class Date
* meridian). If no time zone is specified, the local time zone is
* assumed. GMT and UTC are considered equivalent.
*
- * The string s is processed from left to right, looking for
- * data of interest. Any material in s that is within the
- * ASCII parenthesis characters ( and ) is ignored.
+ * The string {@code s} is processed from left to right, looking for
+ * data of interest. Any material in {@code s} that is within the
+ * ASCII parenthesis characters {@code (} and {@code )} is ignored.
* Parentheses may be nested. Otherwise, the only characters permitted
- * within s are these ASCII characters:
+ * within {@code s} are these ASCII characters:
*
* abcdefghijklmnopqrstuvwxyz
* ABCDEFGHIJKLMNOPQRSTUVWXYZ
@@ -365,18 +362,18 @@ public class Date
* and whitespace characters.
* A consecutive sequence of decimal digits is treated as a decimal
* number:
- * If a number is preceded by + or - and a year
+ * If a number is preceded by {@code +} or {@code -} and a year
* has already been recognized, then the number is a time-zone
* offset. If the number is less than 24, it is an offset measured
* in hours. Otherwise, it is regarded as an offset in minutes,
* expressed in 24-hour time format without punctuation. A
- * preceding - means a westward offset. Time zone offsets
+ * preceding {@code -} means a westward offset. Time zone offsets
* are always relative to UTC (Greenwich). Thus, for example,
- * -5 occurring in the string would mean "five hours west
- * of Greenwich" and +0430 would mean "four hours and
+ * {@code -5} occurring in the string would mean "five hours west
+ * of Greenwich" and {@code +0430} would mean "four hours and
* thirty minutes east of Greenwich." It is permitted for the
- * string to specify GMT , UT , or UTC
- * redundantly-for example, GMT-5 or utc+0430 .
+ * string to specify {@code GMT}, {@code UT}, or {@code UTC}
+ * redundantly-for example, {@code GMT-5} or {@code utc+0430}.
* The number is regarded as a year number if one of the
* following conditions is true:
*
@@ -399,8 +396,8 @@ public class Date
* unless an hour has already been recognized, in which case it is
* regarded as a minute.
* If the number is followed by a slash, it is regarded as a month
- * (it is decreased by 1 to produce a number in the range 0
- * to 11 ), unless a month has already been recognized, in
+ * (it is decreased by 1 to produce a number in the range {@code 0}
+ * to {@code 11}), unless a month has already been recognized, in
* which case it is regarded as a day of the month.
* If the number is followed by whitespace, a comma, a hyphen, or
* end of string, then if an hour has been recognized but not a
@@ -409,31 +406,31 @@ public class Date
* otherwise, it is regarded as a day of the month.
* A consecutive sequence of letters is regarded as a word and treated
* as follows:
- * A word that matches AM , ignoring case, is ignored (but
+ * A word that matches {@code AM}, ignoring case, is ignored (but
* the parse fails if an hour has not been recognized or is less
- * than 1 or greater than 12 ).
- * A word that matches PM , ignoring case, adds 12
+ * than {@code 1} or greater than {@code 12}).
+ * A word that matches {@code PM}, ignoring case, adds {@code 12}
* to the hour (but the parse fails if an hour has not been
- * recognized or is less than 1 or greater than 12 ).
- * Any word that matches any prefix of SUNDAY, MONDAY, TUESDAY,
- * WEDNESDAY, THURSDAY, FRIDAY , or SATURDAY , ignoring
- * case, is ignored. For example, sat, Friday, TUE , and
- * Thurs are ignored.
- * Otherwise, any word that matches any prefix of JANUARY,
+ * recognized or is less than {@code 1} or greater than {@code 12}).
+ * Any word that matches any prefix of {@code SUNDAY, MONDAY, TUESDAY,
+ * WEDNESDAY, THURSDAY, FRIDAY}, or {@code SATURDAY}, ignoring
+ * case, is ignored. For example, {@code sat, Friday, TUE}, and
+ * {@code Thurs} are ignored.
+ * Otherwise, any word that matches any prefix of {@code JANUARY,
* FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, AUGUST, SEPTEMBER,
- * OCTOBER, NOVEMBER , or DECEMBER , ignoring case, and
+ * OCTOBER, NOVEMBER}, or {@code DECEMBER}, ignoring case, and
* considering them in the order given here, is recognized as
- * specifying a month and is converted to a number (0 to
- * 11 ). For example, aug, Sept, april , and
- * NOV are recognized as months. So is Ma , which
- * is recognized as MARCH , not MAY .
- * Any word that matches GMT, UT , or UTC , ignoring
+ * specifying a month and is converted to a number ({@code 0} to
+ * {@code 11}). For example, {@code aug, Sept, april}, and
+ * {@code NOV} are recognized as months. So is {@code Ma}, which
+ * is recognized as {@code MARCH}, not {@code MAY}.
+ * Any word that matches {@code GMT, UT}, or {@code UTC}, ignoring
* case, is treated as referring to UTC.
- * Any word that matches EST, CST, MST , or PST ,
+ * Any word that matches {@code EST, CST, MST}, or {@code PST},
* ignoring case, is recognized as referring to the time zone in
* North America that is five, six, seven, or eight hours west of
- * Greenwich, respectively. Any word that matches EDT, CDT,
- * MDT , or PDT , ignoring case, is recognized as
+ * Greenwich, respectively. Any word that matches {@code EDT, CDT,
+ * MDT}, or {@code PDT}, ignoring case, is recognized as
* referring to the same time zone, respectively, during daylight
* saving time.
* Once the entire string s has been scanned, it is converted to a time
@@ -448,7 +445,7 @@ public class Date
* represented by the string argument.
* @see java.text.DateFormat
* @deprecated As of JDK version 1.1,
- * replaced by DateFormat.parse(String s)
.
+ * replaced by {@code DateFormat.parse(String s)}.
*/
@Deprecated
public static long parse(String s) {
@@ -638,13 +635,13 @@ public class Date
/**
* Returns a value that is the result of subtracting 1900 from the
* year that contains or begins with the instant in time represented
- * by this Date
object, as interpreted in the local
+ * by this {@code Date} object, as interpreted in the local
* time zone.
*
* @return the year represented by this date, minus 1900.
* @see java.util.Calendar
* @deprecated As of JDK version 1.1,
- * replaced by Calendar.get(Calendar.YEAR) - 1900
.
+ * replaced by {@code Calendar.get(Calendar.YEAR) - 1900}.
*/
@Deprecated
public int getYear() {
@@ -652,8 +649,8 @@ public class Date
}
/**
- * Sets the year of this Date object to be the specified
- * value plus 1900. This Date
object is modified so
+ * Sets the year of this {@code Date} object to be the specified
+ * value plus 1900. This {@code Date} object is modified so
* that it represents a point in time within the specified year,
* with the month, date, hour, minute, and second the same as
* before, as interpreted in the local time zone. (Of course, if
@@ -664,7 +661,7 @@ public class Date
* @param year the year value.
* @see java.util.Calendar
* @deprecated As of JDK version 1.1,
- * replaced by Calendar.set(Calendar.YEAR, year + 1900)
.
+ * replaced by {@code Calendar.set(Calendar.YEAR, year + 1900)}.
*/
@Deprecated
public void setYear(int year) {
@@ -673,14 +670,14 @@ public class Date
/**
* Returns a number representing the month that contains or begins
- * with the instant in time represented by this Date object.
- * The value returned is between 0
and 11
,
- * with the value 0
representing January.
+ * with the instant in time represented by this {@code Date} object.
+ * The value returned is between {@code 0} and {@code 11},
+ * with the value {@code 0} representing January.
*
* @return the month represented by this date.
* @see java.util.Calendar
* @deprecated As of JDK version 1.1,
- * replaced by Calendar.get(Calendar.MONTH)
.
+ * replaced by {@code Calendar.get(Calendar.MONTH)}.
*/
@Deprecated
public int getMonth() {
@@ -689,7 +686,7 @@ public class Date
/**
* Sets the month of this date to the specified value. This
- * Date object is modified so that it represents a point
+ * {@code Date} object is modified so that it represents a point
* in time within the specified month, with the year, date, hour,
* minute, and second the same as before, as interpreted in the
* local time zone. If the date was October 31, for example, and
@@ -699,7 +696,7 @@ public class Date
* @param month the month value between 0-11.
* @see java.util.Calendar
* @deprecated As of JDK version 1.1,
- * replaced by Calendar.set(Calendar.MONTH, int month)
.
+ * replaced by {@code Calendar.set(Calendar.MONTH, int month)}.
*/
@Deprecated
public void setMonth(int month) {
@@ -719,16 +716,16 @@ public class Date
}
/**
- * Returns the day of the month represented by this Date object.
- * The value returned is between 1
and 31
+ * Returns the day of the month represented by this {@code Date} object.
+ * The value returned is between {@code 1} and {@code 31}
* representing the day of the month that contains or begins with the
- * instant in time represented by this Date object, as
+ * instant in time represented by this {@code Date} object, as
* interpreted in the local time zone.
*
* @return the day of the month represented by this date.
* @see java.util.Calendar
* @deprecated As of JDK version 1.1,
- * replaced by Calendar.get(Calendar.DAY_OF_MONTH)
.
+ * replaced by {@code Calendar.get(Calendar.DAY_OF_MONTH)}.
* @deprecated
*/
@Deprecated
@@ -737,8 +734,8 @@ public class Date
}
/**
- * Sets the day of the month of this Date object to the
- * specified value. This Date object is modified so that
+ * Sets the day of the month of this {@code Date} object to the
+ * specified value. This {@code Date} object is modified so that
* it represents a point in time within the specified day of the
* month, with the year, month, hour, minute, and second the same
* as before, as interpreted in the local time zone. If the date
@@ -749,7 +746,7 @@ public class Date
* @param date the day of the month value between 1-31.
* @see java.util.Calendar
* @deprecated As of JDK version 1.1,
- * replaced by Calendar.set(Calendar.DAY_OF_MONTH, int date)
.
+ * replaced by {@code Calendar.set(Calendar.DAY_OF_MONTH, int date)}.
*/
@Deprecated
public void setDate(int date) {
@@ -758,17 +755,17 @@ public class Date
/**
* Returns the day of the week represented by this date. The
- * returned value (0 = Sunday, 1 = Monday,
- * 2 = Tuesday, 3 = Wednesday, 4 =
- * Thursday, 5 = Friday, 6 = Saturday)
+ * returned value ({@code 0} = Sunday, {@code 1} = Monday,
+ * {@code 2} = Tuesday, {@code 3} = Wednesday, {@code 4} =
+ * Thursday, {@code 5} = Friday, {@code 6} = Saturday)
* represents the day of the week that contains or begins with
- * the instant in time represented by this Date object,
+ * the instant in time represented by this {@code Date} object,
* as interpreted in the local time zone.
*
* @return the day of the week represented by this date.
* @see java.util.Calendar
* @deprecated As of JDK version 1.1,
- * replaced by Calendar.get(Calendar.DAY_OF_WEEK)
.
+ * replaced by {@code Calendar.get(Calendar.DAY_OF_WEEK)}.
*/
@Deprecated
public int getDay() {
@@ -776,16 +773,16 @@ public class Date
}
/**
- * Returns the hour represented by this Date object. The
- * returned value is a number (0 through 23 )
+ * Returns the hour represented by this {@code Date} object. The
+ * returned value is a number ({@code 0} through {@code 23})
* representing the hour within the day that contains or begins
- * with the instant in time represented by this Date
+ * with the instant in time represented by this {@code Date}
* object, as interpreted in the local time zone.
*
* @return the hour represented by this date.
* @see java.util.Calendar
* @deprecated As of JDK version 1.1,
- * replaced by Calendar.get(Calendar.HOUR_OF_DAY)
.
+ * replaced by {@code Calendar.get(Calendar.HOUR_OF_DAY)}.
*/
@Deprecated
public int getHours() {
@@ -793,8 +790,8 @@ public class Date
}
/**
- * Sets the hour of this Date object to the specified value.
- * This Date object is modified so that it represents a point
+ * Sets the hour of this {@code Date} object to the specified value.
+ * This {@code Date} object is modified so that it represents a point
* in time within the specified hour of the day, with the year, month,
* date, minute, and second the same as before, as interpreted in the
* local time zone.
@@ -802,7 +799,7 @@ public class Date
* @param hours the hour value.
* @see java.util.Calendar
* @deprecated As of JDK version 1.1,
- * replaced by Calendar.set(Calendar.HOUR_OF_DAY, int hours)
.
+ * replaced by {@code Calendar.set(Calendar.HOUR_OF_DAY, int hours)}.
*/
@Deprecated
public void setHours(int hours) {
@@ -812,12 +809,12 @@ public class Date
/**
* Returns the number of minutes past the hour represented by this date,
* as interpreted in the local time zone.
- * The value returned is between 0
and 59
.
+ * The value returned is between {@code 0} and {@code 59}.
*
* @return the number of minutes past the hour represented by this date.
* @see java.util.Calendar
* @deprecated As of JDK version 1.1,
- * replaced by Calendar.get(Calendar.MINUTE)
.
+ * replaced by {@code Calendar.get(Calendar.MINUTE)}.
*/
@Deprecated
public int getMinutes() {
@@ -825,8 +822,8 @@ public class Date
}
/**
- * Sets the minutes of this Date object to the specified value.
- * This Date object is modified so that it represents a point
+ * Sets the minutes of this {@code Date} object to the specified value.
+ * This {@code Date} object is modified so that it represents a point
* in time within the specified minute of the hour, with the year, month,
* date, hour, and second the same as before, as interpreted in the
* local time zone.
@@ -834,7 +831,7 @@ public class Date
* @param minutes the value of the minutes.
* @see java.util.Calendar
* @deprecated As of JDK version 1.1,
- * replaced by Calendar.set(Calendar.MINUTE, int minutes)
.
+ * replaced by {@code Calendar.set(Calendar.MINUTE, int minutes)}.
*/
@Deprecated
public void setMinutes(int minutes) {
@@ -843,14 +840,14 @@ public class Date
/**
* Returns the number of seconds past the minute represented by this date.
- * The value returned is between 0
and 61
. The
- * values 60
and 61
can only occur on those
+ * The value returned is between {@code 0} and {@code 61}. The
+ * values {@code 60} and {@code 61} can only occur on those
* Java Virtual Machines that take leap seconds into account.
*
* @return the number of seconds past the minute represented by this date.
* @see java.util.Calendar
* @deprecated As of JDK version 1.1,
- * replaced by Calendar.get(Calendar.SECOND)
.
+ * replaced by {@code Calendar.get(Calendar.SECOND)}.
*/
@Deprecated
public int getSeconds() {
@@ -858,8 +855,8 @@ public class Date
}
/**
- * Sets the seconds of this Date to the specified value.
- * This Date object is modified so that it represents a
+ * Sets the seconds of this {@code Date} to the specified value.
+ * This {@code Date} object is modified so that it represents a
* point in time within the specified second of the minute, with
* the year, month, date, hour, and minute the same as before, as
* interpreted in the local time zone.
@@ -867,7 +864,7 @@ public class Date
* @param seconds the seconds value.
* @see java.util.Calendar
* @deprecated As of JDK version 1.1,
- * replaced by Calendar.set(Calendar.SECOND, int seconds)
.
+ * replaced by {@code Calendar.set(Calendar.SECOND, int seconds)}.
*/
@Deprecated
public void setSeconds(int seconds) {
@@ -876,7 +873,7 @@ public class Date
/**
* Returns the number of milliseconds since January 1, 1970, 00:00:00 GMT
- * represented by this Date object.
+ * represented by this {@code Date} object.
*
* @return the number of milliseconds since January 1, 1970, 00:00:00 GMT
* represented by this date.
@@ -893,8 +890,8 @@ public class Date
}
/**
- * Sets this Date
object to represent a point in time that is
- * time
milliseconds after January 1, 1970 00:00:00 GMT.
+ * Sets this {@code Date} object to represent a point in time that is
+ * {@code time} milliseconds after January 1, 1970 00:00:00 GMT.
*
* @param time the number of milliseconds.
*/
@@ -907,11 +904,11 @@ public class Date
* Tests if this date is before the specified date.
*
* @param when a date.
- * @return true
if and only if the instant of time
- * represented by this Date object is strictly
- * earlier than the instant represented by when ;
- * false
otherwise.
- * @exception NullPointerException if when
is null.
+ * @return {@code true} if and only if the instant of time
+ * represented by this {@code Date} object is strictly
+ * earlier than the instant represented by {@code when};
+ * {@code false} otherwise.
+ * @exception NullPointerException if {@code when} is null.
*/
public boolean before(Date when) {
return getMillisOf(this) < getMillisOf(when);
@@ -921,11 +918,11 @@ public class Date
* Tests if this date is after the specified date.
*
* @param when a date.
- * @return true
if and only if the instant represented
- * by this Date object is strictly later than the
- * instant represented by when ;
- * false
otherwise.
- * @exception NullPointerException if when
is null.
+ * @return {@code true} if and only if the instant represented
+ * by this {@code Date} object is strictly later than the
+ * instant represented by {@code when};
+ * {@code false} otherwise.
+ * @exception NullPointerException if {@code when} is null.
*/
public boolean after(Date when) {
return getMillisOf(this) > getMillisOf(when);
@@ -933,17 +930,17 @@ public class Date
/**
* Compares two dates for equality.
- * The result is true
if and only if the argument is
- * not null
and is a Date
object that
+ * The result is {@code true} if and only if the argument is
+ * not {@code null} and is a {@code Date} object that
* represents the same point in time, to the millisecond, as this object.
*
- * Thus, two Date
objects are equal if and only if the
- * getTime
method returns the same long
+ * Thus, two {@code Date} objects are equal if and only if the
+ * {@code getTime} method returns the same {@code long}
* value for both.
*
* @param obj the object to compare with.
- * @return true
if the objects are the same;
- * false
otherwise.
+ * @return {@code true} if the objects are the same;
+ * {@code false} otherwise.
* @see java.util.Date#getTime()
*/
public boolean equals(Object obj) {
@@ -951,7 +948,7 @@ public class Date
}
/**
- * Returns the millisecond value of this Date
object
+ * Returns the millisecond value of this {@code Date} object
* without affecting its internal state.
*/
static final long getMillisOf(Date date) {
@@ -965,13 +962,13 @@ public class Date
/**
* Compares two Dates for ordering.
*
- * @param anotherDate the Date
to be compared.
- * @return the value 0
if the argument Date is equal to
- * this Date; a value less than 0
if this Date
+ * @param anotherDate the {@code Date} to be compared.
+ * @return the value {@code 0} if the argument Date is equal to
+ * this Date; a value less than {@code 0} if this Date
* is before the Date argument; and a value greater than
- * 0
if this Date is after the Date argument.
+ * {@code 0} if this Date is after the Date argument.
* @since 1.2
- * @exception NullPointerException if anotherDate
is null.
+ * @exception NullPointerException if {@code anotherDate} is null.
*/
public int compareTo(Date anotherDate) {
long thisTime = getMillisOf(this);
@@ -981,7 +978,7 @@ public class Date
/**
* Returns a hash code value for this object. The result is the
- * exclusive OR of the two halves of the primitive long
+ * exclusive OR of the two halves of the primitive {@code long}
* value returned by the {@link Date#getTime}
* method. That is, the hash code is the value of the expression:
*
{@code
@@ -996,29 +993,29 @@ public class Date
}
/**
- * Converts this Date
object to a String
+ * Converts this {@code Date} object to a {@code String}
* of the form:
*
* dow mon dd hh:mm:ss zzz yyyy
* where:
- * dow is the day of the week (Sun, Mon, Tue, Wed,
- * Thu, Fri, Sat ).
- * mon is the month (Jan, Feb, Mar, Apr, May, Jun,
- * Jul, Aug, Sep, Oct, Nov, Dec ).
- * dd is the day of the month (01 through
- * 31 ), as two decimal digits.
- * hh is the hour of the day (00 through
- * 23 ), as two decimal digits.
- * mm is the minute within the hour (00 through
- * 59 ), as two decimal digits.
- * ss is the second within the minute (00 through
- * 61 , as two decimal digits.
- * zzz is the time zone (and may reflect daylight saving
+ * {@code dow} is the day of the week ({@code Sun, Mon, Tue, Wed,
+ * Thu, Fri, Sat}).
+ * {@code mon} is the month ({@code Jan, Feb, Mar, Apr, May, Jun,
+ * Jul, Aug, Sep, Oct, Nov, Dec}).
+ * {@code dd} is the day of the month ({@code 01} through
+ * {@code 31}), as two decimal digits.
+ * {@code hh} is the hour of the day ({@code 00} through
+ * {@code 23}), as two decimal digits.
+ * {@code mm} is the minute within the hour ({@code 00} through
+ * {@code 59}), as two decimal digits.
+ * {@code ss} is the second within the minute ({@code 00} through
+ * {@code 61}, as two decimal digits.
+ * {@code zzz} is the time zone (and may reflect daylight saving
* time). Standard time zone abbreviations include those
- * recognized by the method parse . If time zone
- * information is not available, then zzz is empty -
+ * recognized by the method {@code parse}. If time zone
+ * information is not available, then {@code zzz} is empty -
* that is, it consists of no characters at all.
- * yyyy is the year, as four decimal digits.
+ * {@code yyyy} is the year, as four decimal digits.
*
*
* @return a string representation of this date.
@@ -1053,7 +1050,7 @@ public class Date
/**
* Converts the given name to its 3-letter abbreviation (e.g.,
* "monday" -> "Mon") and stored the abbreviation in the given
- * StringBuilder
.
+ * {@code StringBuilder}.
*/
private static final StringBuilder convertToAbbr(StringBuilder sb, String name) {
sb.append(Character.toUpperCase(name.charAt(0)));
@@ -1062,11 +1059,11 @@ public class Date
}
/**
- * Creates a string representation of this Date object in an
+ * Creates a string representation of this {@code Date} object in an
* implementation-dependent form. The intent is that the form should
* be familiar to the user of the Java application, wherever it may
* happen to be running. The intent is comparable to that of the
- * "%c
" format supported by the strftime()
+ * "{@code %c}" format supported by the {@code strftime()}
* function of ISO C.
*
* @return a string representation of this date, using the locale
@@ -1075,7 +1072,7 @@ public class Date
* @see java.util.Date#toString()
* @see java.util.Date#toGMTString()
* @deprecated As of JDK version 1.1,
- * replaced by DateFormat.format(Date date)
.
+ * replaced by {@code DateFormat.format(Date date)}.
*/
@Deprecated
public String toLocaleString() {
@@ -1084,23 +1081,23 @@ public class Date
}
/**
- * Creates a string representation of this Date object of
+ * Creates a string representation of this {@code Date} object of
* the form:
*
* d mon yyyy hh:mm:ss GMT
* where:
- * d is the day of the month (1 through 31 ),
+ * d is the day of the month ({@code 1} through {@code 31}),
* as one or two decimal digits.
- * mon is the month (Jan, Feb, Mar, Apr, May, Jun, Jul,
- * Aug, Sep, Oct, Nov, Dec ).
+ * mon is the month ({@code Jan, Feb, Mar, Apr, May, Jun, Jul,
+ * Aug, Sep, Oct, Nov, Dec}).
* yyyy is the year, as four decimal digits.
- * hh is the hour of the day (00 through 23 ),
+ * hh is the hour of the day ({@code 00} through {@code 23}),
* as two decimal digits.
- * mm is the minute within the hour (00 through
- * 59 ), as two decimal digits.
- * ss is the second within the minute (00 through
- * 61 ), as two decimal digits.
- * GMT is exactly the ASCII letters "GMT " to indicate
+ * mm is the minute within the hour ({@code 00} through
+ * {@code 59}), as two decimal digits.
+ * ss is the second within the minute ({@code 00} through
+ * {@code 61}), as two decimal digits.
+ * GMT is exactly the ASCII letters "{@code GMT}" to indicate
* Greenwich Mean Time.
*
* The result does not depend on the local time zone.
@@ -1111,8 +1108,8 @@ public class Date
* @see java.util.Date#toString()
* @see java.util.Date#toLocaleString()
* @deprecated As of JDK version 1.1,
- * replaced by DateFormat.format(Date date)
, using a
- * GMT TimeZone
.
+ * replaced by {@code DateFormat.format(Date date)}, using a
+ * GMT {@code TimeZone}.
*/
@Deprecated
public String toGMTString() {
@@ -1135,7 +1132,7 @@ public class Date
/**
* Returns the offset, measured in minutes, for the local time zone
* relative to UTC that is appropriate for the time represented by
- * this Date
object.
+ * this {@code Date} object.
*
* For example, in Massachusetts, five time zones west of Greenwich:
*
@@ -1161,8 +1158,8 @@ public class Date
* @see java.util.Calendar#DST_OFFSET
* @see java.util.TimeZone#getDefault
* @deprecated As of JDK version 1.1,
- * replaced by -(Calendar.get(Calendar.ZONE_OFFSET) +
- * Calendar.get(Calendar.DST_OFFSET)) / (60 * 1000)
.
+ * replaced by {@code -(Calendar.get(Calendar.ZONE_OFFSET) +
+ * Calendar.get(Calendar.DST_OFFSET)) / (60 * 1000)}.
*/
@Deprecated
public int getTimezoneOffset() {
@@ -1313,7 +1310,7 @@ public class Date
/**
* Save the state of this object to a stream (i.e., serialize it).
*
- * @serialData The value returned by getTime()
+ * @serialData The value returned by {@code getTime()}
* is emitted (long). This represents the offset from
* January 1, 1970, 00:00:00 GMT in milliseconds.
*/
@@ -1336,7 +1333,7 @@ public class Date
* Obtains an instance of {@code Date} from an {@code Instant} object.
*
* {@code Instant} uses a precision of nanoseconds, whereas {@code Date}
- * uses a precision of milliseconds. The conversion will trancate any
+ * uses a precision of milliseconds. The conversion will truncate any
* excess precision information as though the amount in nanoseconds was
* subject to integer division by one million.
*
From 806b45a0f25d94ac3827a5cd6027fcbedffc80b2 Mon Sep 17 00:00:00 2001
From: Joe Darcy
Date: Sat, 1 Feb 2014 10:27:55 -0800
Subject: [PATCH 136/181] 8033223: Fix serial lint warnings in sun.{font,
java2d[.*]}
Reviewed-by: bae
---
.../com/sun/imageio/plugins/common/BogusColorSpace.java | 3 ++-
.../com/sun/imageio/plugins/jpeg/JFIFMarkerSegment.java | 1 +
jdk/src/share/classes/sun/font/FontScalerException.java | 3 ++-
jdk/src/share/classes/sun/java2d/InvalidPipeException.java | 3 ++-
jdk/src/share/classes/sun/java2d/cmm/lcms/LCMSImageLayout.java | 3 ++-
5 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/jdk/src/share/classes/com/sun/imageio/plugins/common/BogusColorSpace.java b/jdk/src/share/classes/com/sun/imageio/plugins/common/BogusColorSpace.java
index ea7fa4f0272..81924044610 100644
--- a/jdk/src/share/classes/com/sun/imageio/plugins/common/BogusColorSpace.java
+++ b/jdk/src/share/classes/com/sun/imageio/plugins/common/BogusColorSpace.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,6 +31,7 @@ import java.awt.color.ColorSpace;
* A dummy ColorSpace
to enable ColorModel
* for image data which do not have an innate color representation.
*/
+@SuppressWarnings("serial") // JDK-implementation class
public class BogusColorSpace extends ColorSpace {
/**
* Return the type given the number of components.
diff --git a/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JFIFMarkerSegment.java b/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JFIFMarkerSegment.java
index 21e5a26ad8d..393548e5b14 100644
--- a/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JFIFMarkerSegment.java
+++ b/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JFIFMarkerSegment.java
@@ -558,6 +558,7 @@ class JFIFMarkerSegment extends MarkerSegment {
// Could put reason codes in here to be parsed in writeJFXXSegment
// in order to provide more meaningful warnings.
+ @SuppressWarnings("serial") // JDK-implementation class
private class IllegalThumbException extends Exception {}
/**
diff --git a/jdk/src/share/classes/sun/font/FontScalerException.java b/jdk/src/share/classes/sun/font/FontScalerException.java
index 32db6d80679..b88aed62773 100644
--- a/jdk/src/share/classes/sun/font/FontScalerException.java
+++ b/jdk/src/share/classes/sun/font/FontScalerException.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -25,6 +25,7 @@
package sun.font;
+@SuppressWarnings("serial") // JDK-implementation class
public class FontScalerException extends Exception {
public FontScalerException() {
super("Font scaler encountered runtime problem.");
diff --git a/jdk/src/share/classes/sun/java2d/InvalidPipeException.java b/jdk/src/share/classes/sun/java2d/InvalidPipeException.java
index 569bdc7682d..22ac0661093 100644
--- a/jdk/src/share/classes/sun/java2d/InvalidPipeException.java
+++ b/jdk/src/share/classes/sun/java2d/InvalidPipeException.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -34,6 +34,7 @@ package sun.java2d;
* windows which toggle the need to use platform graphics or direct
* graphics access.
*/
+@SuppressWarnings("serial") // JDK-implementation class
public class InvalidPipeException extends IllegalStateException {
/**
* Constructs an InvalidPipeException with no detail message.
diff --git a/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMSImageLayout.java b/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMSImageLayout.java
index 2f862cdeb10..1bcb05ccbb7 100644
--- a/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMSImageLayout.java
+++ b/jdk/src/share/classes/sun/java2d/cmm/lcms/LCMSImageLayout.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -376,6 +376,7 @@ class LCMSImageLayout {
return (int)res;
}
+ @SuppressWarnings("serial") // JDK-implementation class
public static class ImageLayoutException extends Exception {
public ImageLayoutException(String message) {
super(message);
From 4724c454cddd53730e0123b3996b60d5d9d84182 Mon Sep 17 00:00:00 2001
From: Jan Lahoda
Date: Sun, 2 Feb 2014 12:12:01 +0100
Subject: [PATCH 137/181] 8030091: Request to update error messages from javac
for negative varargs test cases
Introducing a new error message for vararg parameter not being the last parameter, improving error message for unexpected character after a parameter.
Reviewed-by: jjg, sogoel
---
.../sun/tools/javac/parser/JavacParser.java | 14 ++++++++--
.../tools/javac/resources/compiler.properties | 5 +++-
.../diags/examples/VarargsMustBeLast.java | 28 +++++++++++++++++++
.../javac/parser/ErroneousParameters.java | 16 +++++++++++
.../javac/parser/ErroneousParameters.out | 14 ++++++++++
.../TestParseErrors/TestParseErrors.out | 2 +-
6 files changed, 74 insertions(+), 5 deletions(-)
create mode 100644 langtools/test/tools/javac/diags/examples/VarargsMustBeLast.java
create mode 100644 langtools/test/tools/javac/parser/ErroneousParameters.java
create mode 100644 langtools/test/tools/javac/parser/ErroneousParameters.out
diff --git a/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java b/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java
index 55f46195024..49f68b13ae6 100644
--- a/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java
+++ b/langtools/src/share/classes/com/sun/tools/javac/parser/JavacParser.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -3648,12 +3648,20 @@ public class JavacParser implements Parser {
params.append(lastParam);
}
this.allowThisIdent = false;
- while ((lastParam.mods.flags & Flags.VARARGS) == 0 && token.kind == COMMA) {
+ while (token.kind == COMMA) {
+ if ((lastParam.mods.flags & Flags.VARARGS) != 0) {
+ error(lastParam, "varargs.must.be.last");
+ }
nextToken();
params.append(lastParam = formalParameter(lambdaParameters));
}
}
- accept(RPAREN);
+ if (token.kind == RPAREN) {
+ nextToken();
+ } else {
+ setErrorEndPos(token.pos);
+ reportSyntaxError(S.prevToken().endPos, "expected3", COMMA, RPAREN, LBRACKET);
+ }
return params.toList();
}
diff --git a/langtools/src/share/classes/com/sun/tools/javac/resources/compiler.properties b/langtools/src/share/classes/com/sun/tools/javac/resources/compiler.properties
index 709a11ae096..abbdf4847c6 100644
--- a/langtools/src/share/classes/com/sun/tools/javac/resources/compiler.properties
+++ b/langtools/src/share/classes/com/sun/tools/javac/resources/compiler.properties
@@ -1,5 +1,5 @@
#
-# Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -597,6 +597,9 @@ compiler.err.varargs.and.old.array.syntax=\
compiler.err.varargs.and.receiver =\
varargs notation not allowed on receiver parameter
+compiler.err.varargs.must.be.last =\
+ varargs parameter must be the last parameter
+
compiler.err.array.and.receiver =\
legacy array notation not allowed on receiver parameter
diff --git a/langtools/test/tools/javac/diags/examples/VarargsMustBeLast.java b/langtools/test/tools/javac/diags/examples/VarargsMustBeLast.java
new file mode 100644
index 00000000000..bff1fbb6fcb
--- /dev/null
+++ b/langtools/test/tools/javac/diags/examples/VarargsMustBeLast.java
@@ -0,0 +1,28 @@
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+// key: compiler.err.varargs.must.be.last
+
+class VarargMustBeFinal {
+ public void invalidVarArg(String... invalidVarArg, String extra) { }
+}
diff --git a/langtools/test/tools/javac/parser/ErroneousParameters.java b/langtools/test/tools/javac/parser/ErroneousParameters.java
new file mode 100644
index 00000000000..f6311d6f2db
--- /dev/null
+++ b/langtools/test/tools/javac/parser/ErroneousParameters.java
@@ -0,0 +1,16 @@
+/*
+ * @test /nodynamiccopyright/
+ * @bug 8030091
+ * @summary Producing reasonable errors for unexpected tokens in method parameters
+ * @compile/fail/ref=ErroneousParameters.out -XDrawDiagnostics ErroneousParameters.java
+ */
+
+public class ErroneousParameters {
+
+ public static void test(int... extraVarArg, int additionalParam) { }
+ public static void test(byte param...) { }
+ public static void test(char param,) { }
+ public static void test(short param[) { }
+ public static void test(int param=) { }
+
+}
diff --git a/langtools/test/tools/javac/parser/ErroneousParameters.out b/langtools/test/tools/javac/parser/ErroneousParameters.out
new file mode 100644
index 00000000000..89d9e3743e6
--- /dev/null
+++ b/langtools/test/tools/javac/parser/ErroneousParameters.out
@@ -0,0 +1,14 @@
+ErroneousParameters.java:10:36: compiler.err.varargs.must.be.last
+ErroneousParameters.java:11:39: compiler.err.expected3: ',', ')', '['
+ErroneousParameters.java:11:42: compiler.err.illegal.start.of.type
+ErroneousParameters.java:11:43: compiler.err.expected: token.identifier
+ErroneousParameters.java:11:45: compiler.err.expected: ';'
+ErroneousParameters.java:12:40: compiler.err.illegal.start.of.type
+ErroneousParameters.java:12:41: compiler.err.expected3: ',', ')', '['
+ErroneousParameters.java:12:43: compiler.err.expected: ';'
+ErroneousParameters.java:13:41: compiler.err.expected: ']'
+ErroneousParameters.java:14:38: compiler.err.expected3: ',', ')', '['
+ErroneousParameters.java:14:39: compiler.err.illegal.start.of.type
+ErroneousParameters.java:14:40: compiler.err.expected: token.identifier
+ErroneousParameters.java:14:42: compiler.err.expected: ';'
+13 errors
diff --git a/langtools/test/tools/javac/processing/errors/TestParseErrors/TestParseErrors.out b/langtools/test/tools/javac/processing/errors/TestParseErrors/TestParseErrors.out
index 947e921dd4d..11cff7ddcf1 100644
--- a/langtools/test/tools/javac/processing/errors/TestParseErrors/TestParseErrors.out
+++ b/langtools/test/tools/javac/processing/errors/TestParseErrors/TestParseErrors.out
@@ -1,6 +1,6 @@
ParseErrors.java:37:37: compiler.err.expected: token.identifier
ParseErrors.java:38:1: compiler.err.illegal.start.of.type
-ParseErrors.java:38:2: compiler.err.expected: ')'
+ParseErrors.java:38:2: compiler.err.expected3: ',', ')', '['
ParseErrors.java:40:6: compiler.err.expected: ';'
ParseErrors.java:40:20: compiler.err.illegal.start.of.type
ParseErrors.java:41:5: compiler.err.expected: '('
From 24b84458a100ee4e55697820c2c52a20f95da957 Mon Sep 17 00:00:00 2001
From: Alan Bateman
Date: Mon, 3 Feb 2014 14:00:43 +0000
Subject: [PATCH 138/181] 8028792: (ch) Channels native code needs to be
checked for methods calling JNI with pending excepitons 8032668: Check
jdk/src/solaris/native/java/io for pending JNI exception issues
Reviewed-by: chegar, simonis
---
.../sun/nio/fs/AixNativeDispatcher.java | 2 +-
.../native/sun/nio/fs/AixNativeDispatcher.c | 17 +++---
.../native/java/io/UnixFileSystem_md.c | 11 ++--
.../native/sun/nio/ch/DatagramChannelImpl.c | 22 ++++----
jdk/src/solaris/native/sun/nio/ch/FileKey.c | 4 +-
jdk/src/solaris/native/sun/nio/ch/IOUtil.c | 4 +-
.../sun/nio/ch/ServerSocketChannelImpl.c | 17 +++++-
.../native/sun/nio/ch/sctp/SctpChannelImpl.c | 4 +-
.../solaris/native/sun/nio/ch/sctp/SctpNet.c | 10 ++--
.../native/sun/nio/fs/BsdNativeDispatcher.c | 9 ++--
.../native/sun/nio/fs/LinuxNativeDispatcher.c | 8 +--
.../sun/nio/fs/SolarisNativeDispatcher.c | 9 ++--
.../native/sun/nio/fs/UnixNativeDispatcher.c | 36 +++++++++----
.../native/java/io/FileDescriptor_md.c | 4 +-
.../native/java/io/WinNTFileSystem_md.c | 47 ++++++++--------
.../native/sun/nio/ch/DatagramChannelImpl.c | 20 ++++---
jdk/src/windows/native/sun/nio/ch/FileKey.c | 6 +--
jdk/src/windows/native/sun/nio/ch/IOUtil.c | 6 +--
jdk/src/windows/native/sun/nio/ch/Iocp.c | 11 ++--
.../sun/nio/ch/ServerSocketChannelImpl.c | 14 +++--
.../native/sun/nio/ch/SocketChannelImpl.c | 4 +-
.../sun/nio/fs/WindowsNativeDispatcher.c | 53 ++++++++++---------
22 files changed, 194 insertions(+), 124 deletions(-)
diff --git a/jdk/src/aix/classes/sun/nio/fs/AixNativeDispatcher.java b/jdk/src/aix/classes/sun/nio/fs/AixNativeDispatcher.java
index d46d80fc97f..76e833ae19a 100644
--- a/jdk/src/aix/classes/sun/nio/fs/AixNativeDispatcher.java
+++ b/jdk/src/aix/classes/sun/nio/fs/AixNativeDispatcher.java
@@ -43,7 +43,7 @@ class AixNativeDispatcher extends UnixNativeDispatcher {
static native UnixMountEntry[] getmntctl() throws UnixException;
// initialize
- private static native int init();
+ private static native void init();
static {
AccessController.doPrivileged(new PrivilegedAction() {
diff --git a/jdk/src/aix/native/sun/nio/fs/AixNativeDispatcher.c b/jdk/src/aix/native/sun/nio/fs/AixNativeDispatcher.c
index 82d8f6203e7..e7afb205280 100644
--- a/jdk/src/aix/native/sun/nio/fs/AixNativeDispatcher.c
+++ b/jdk/src/aix/native/sun/nio/fs/AixNativeDispatcher.c
@@ -56,23 +56,26 @@ static void throwUnixException(JNIEnv* env, int errnum) {
/**
* Initialization
*/
-JNIEXPORT jint JNICALL
+JNIEXPORT void JNICALL
Java_sun_nio_fs_AixNativeDispatcher_init(JNIEnv* env, jclass this)
{
- jint flags = 0;
jclass clazz;
clazz = (*env)->FindClass(env, "sun/nio/fs/UnixMountEntry");
- if (clazz == NULL) {
- return 0;
- }
+ CHECK_NULL(clazz);
entry_name = (*env)->GetFieldID(env, clazz, "name", "[B");
+ CHECK_NULL(entry_name);
entry_dir = (*env)->GetFieldID(env, clazz, "dir", "[B");
+ CHECK_NULL(entry_dir);
entry_fstype = (*env)->GetFieldID(env, clazz, "fstype", "[B");
+ CHECK_NULL(entry_fstype);
entry_options = (*env)->GetFieldID(env, clazz, "opts", "[B");
+ CHECK_NULL(entry_options);
entry_cls = (*env)->NewGlobalRef(env, clazz);
-
- return 0;
+ if (entry_cls == NULL) {
+ JNU_ThrowOutOfMemoryError(env, NULL);
+ return;
+ }
}
/**
diff --git a/jdk/src/solaris/native/java/io/UnixFileSystem_md.c b/jdk/src/solaris/native/java/io/UnixFileSystem_md.c
index 5f95cd998c8..487e8a2bac3 100644
--- a/jdk/src/solaris/native/java/io/UnixFileSystem_md.c
+++ b/jdk/src/solaris/native/java/io/UnixFileSystem_md.c
@@ -283,6 +283,10 @@ Java_java_io_UnixFileSystem_list(JNIEnv *env, jobject this,
struct dirent64 *result;
int len, maxlen;
jobjectArray rv, old;
+ jclass str_class;
+
+ str_class = JNU_ClassString(env);
+ CHECK_NULL_RETURN(str_class, NULL);
WITH_FIELD_PLATFORM_STRING(env, file, ids.path, path) {
dir = opendir(path);
@@ -299,7 +303,7 @@ Java_java_io_UnixFileSystem_list(JNIEnv *env, jobject this,
/* Allocate an initial String array */
len = 0;
maxlen = 16;
- rv = (*env)->NewObjectArray(env, maxlen, JNU_ClassString(env), NULL);
+ rv = (*env)->NewObjectArray(env, maxlen, str_class, NULL);
if (rv == NULL) goto error;
/* Scan the directory */
@@ -309,8 +313,7 @@ Java_java_io_UnixFileSystem_list(JNIEnv *env, jobject this,
continue;
if (len == maxlen) {
old = rv;
- rv = (*env)->NewObjectArray(env, maxlen <<= 1,
- JNU_ClassString(env), NULL);
+ rv = (*env)->NewObjectArray(env, maxlen <<= 1, str_class, NULL);
if (rv == NULL) goto error;
if (JNU_CopyObjectArray(env, rv, old, len) < 0) goto error;
(*env)->DeleteLocalRef(env, old);
@@ -329,7 +332,7 @@ Java_java_io_UnixFileSystem_list(JNIEnv *env, jobject this,
/* Copy the final results into an appropriately-sized array */
old = rv;
- rv = (*env)->NewObjectArray(env, len, JNU_ClassString(env), NULL);
+ rv = (*env)->NewObjectArray(env, len, str_class, NULL);
if (rv == NULL) {
return NULL;
}
diff --git a/jdk/src/solaris/native/sun/nio/ch/DatagramChannelImpl.c b/jdk/src/solaris/native/sun/nio/ch/DatagramChannelImpl.c
index 816270c9b8e..f5dd361c4fc 100644
--- a/jdk/src/solaris/native/sun/nio/ch/DatagramChannelImpl.c
+++ b/jdk/src/solaris/native/sun/nio/ch/DatagramChannelImpl.c
@@ -56,18 +56,28 @@ JNIEXPORT void JNICALL
Java_sun_nio_ch_DatagramChannelImpl_initIDs(JNIEnv *env, jclass clazz)
{
clazz = (*env)->FindClass(env, "java/net/InetSocketAddress");
+ CHECK_NULL(clazz);
isa_class = (*env)->NewGlobalRef(env, clazz);
+ if (isa_class == NULL) {
+ JNU_ThrowOutOfMemoryError(env, NULL);
+ return;
+ }
isa_ctorID = (*env)->GetMethodID(env, clazz, "",
"(Ljava/net/InetAddress;I)V");
+ CHECK_NULL(isa_ctorID);
clazz = (*env)->FindClass(env, "sun/nio/ch/DatagramChannelImpl");
+ CHECK_NULL(clazz);
dci_senderID = (*env)->GetFieldID(env, clazz, "sender",
"Ljava/net/SocketAddress;");
+ CHECK_NULL(dci_senderID);
dci_senderAddrID = (*env)->GetFieldID(env, clazz,
"cachedSenderInetAddress",
"Ljava/net/InetAddress;");
+ CHECK_NULL(dci_senderAddrID);
dci_senderPortID = (*env)->GetFieldID(env, clazz,
"cachedSenderPort", "I");
+ CHECK_NULL(dci_senderPortID);
}
JNIEXPORT void JNICALL
@@ -121,7 +131,7 @@ Java_sun_nio_ch_DatagramChannelImpl_disconnect0(JNIEnv *env, jobject this,
* but that is acceptable.
*/
if (rv < 0 && errno == EAFNOSUPPORT)
- rv = errno = 0;
+ rv = errno = 0;
#endif
}
#endif
@@ -192,17 +202,11 @@ Java_sun_nio_ch_DatagramChannelImpl_receive0(JNIEnv *env, jobject this,
if (senderAddr == NULL) {
jobject isa = NULL;
int port;
- jobject ia = NET_SockaddrToInetAddress(env, (struct sockaddr *)&sa,
- &port);
-
+ jobject ia = NET_SockaddrToInetAddress(env, (struct sockaddr *)&sa, &port);
if (ia != NULL) {
isa = (*env)->NewObject(env, isa_class, isa_ctorID, ia, port);
}
-
- if (isa == NULL) {
- JNU_ThrowOutOfMemoryError(env, "heap allocation failed");
- return IOS_THROWN;
- }
+ CHECK_NULL_RETURN(isa, IOS_THROWN);
(*env)->SetObjectField(env, this, dci_senderAddrID, ia);
(*env)->SetIntField(env, this, dci_senderPortID,
diff --git a/jdk/src/solaris/native/sun/nio/ch/FileKey.c b/jdk/src/solaris/native/sun/nio/ch/FileKey.c
index ddb88329eca..bdb42a6324b 100644
--- a/jdk/src/solaris/native/sun/nio/ch/FileKey.c
+++ b/jdk/src/solaris/native/sun/nio/ch/FileKey.c
@@ -43,8 +43,8 @@ static jfieldID key_st_ino; /* id for FileKey.st_ino */
JNIEXPORT void JNICALL
Java_sun_nio_ch_FileKey_initIDs(JNIEnv *env, jclass clazz)
{
- key_st_dev = (*env)->GetFieldID(env, clazz, "st_dev", "J");
- key_st_ino = (*env)->GetFieldID(env, clazz, "st_ino", "J");
+ CHECK_NULL(key_st_dev = (*env)->GetFieldID(env, clazz, "st_dev", "J"));
+ CHECK_NULL(key_st_ino = (*env)->GetFieldID(env, clazz, "st_ino", "J"));
}
diff --git a/jdk/src/solaris/native/sun/nio/ch/IOUtil.c b/jdk/src/solaris/native/sun/nio/ch/IOUtil.c
index 7dbf010fcac..438bf41ddea 100644
--- a/jdk/src/solaris/native/sun/nio/ch/IOUtil.c
+++ b/jdk/src/solaris/native/sun/nio/ch/IOUtil.c
@@ -42,8 +42,8 @@ static jfieldID fd_fdID; /* for jint 'fd' in java.io.FileDescriptor */
JNIEXPORT void JNICALL
Java_sun_nio_ch_IOUtil_initIDs(JNIEnv *env, jclass clazz)
{
- clazz = (*env)->FindClass(env, "java/io/FileDescriptor");
- fd_fdID = (*env)->GetFieldID(env, clazz, "fd", "I");
+ CHECK_NULL(clazz = (*env)->FindClass(env, "java/io/FileDescriptor"));
+ CHECK_NULL(fd_fdID = (*env)->GetFieldID(env, clazz, "fd", "I"));
}
JNIEXPORT jboolean JNICALL
diff --git a/jdk/src/solaris/native/sun/nio/ch/ServerSocketChannelImpl.c b/jdk/src/solaris/native/sun/nio/ch/ServerSocketChannelImpl.c
index 7a730cc0b25..e96c9b0cc0a 100644
--- a/jdk/src/solaris/native/sun/nio/ch/ServerSocketChannelImpl.c
+++ b/jdk/src/solaris/native/sun/nio/ch/ServerSocketChannelImpl.c
@@ -57,12 +57,20 @@ Java_sun_nio_ch_ServerSocketChannelImpl_initIDs(JNIEnv *env, jclass c)
jclass cls;
cls = (*env)->FindClass(env, "java/io/FileDescriptor");
+ CHECK_NULL(cls);
fd_fdID = (*env)->GetFieldID(env, cls, "fd", "I");
+ CHECK_NULL(fd_fdID);
cls = (*env)->FindClass(env, "java/net/InetSocketAddress");
+ CHECK_NULL(cls);
isa_class = (*env)->NewGlobalRef(env, cls);
+ if (isa_class == NULL) {
+ JNU_ThrowOutOfMemoryError(env, NULL);
+ return;
+ }
isa_ctorID = (*env)->GetMethodID(env, cls, "",
"(Ljava/net/InetAddress;I)V");
+ CHECK_NULL(isa_ctorID);
}
JNIEXPORT jint JNICALL
@@ -79,6 +87,10 @@ Java_sun_nio_ch_ServerSocketChannelImpl_accept0(JNIEnv *env, jobject this,
jint remote_port;
NET_AllocSockaddr(&sa, &alloc_len);
+ if (sa == NULL) {
+ JNU_ThrowOutOfMemoryError(env, NULL);
+ return IOS_THROWN;
+ }
/*
* accept connection but ignore ECONNABORTED indicating that
@@ -110,8 +122,9 @@ Java_sun_nio_ch_ServerSocketChannelImpl_accept0(JNIEnv *env, jobject this,
(*env)->SetIntField(env, newfdo, fd_fdID, newfd);
remote_ia = NET_SockaddrToInetAddress(env, sa, (int *)&remote_port);
free((void *)sa);
- isa = (*env)->NewObject(env, isa_class, isa_ctorID,
- remote_ia, remote_port);
+ CHECK_NULL_RETURN(remote_ia, IOS_THROWN);
+ isa = (*env)->NewObject(env, isa_class, isa_ctorID, remote_ia, remote_port);
+ CHECK_NULL_RETURN(isa, IOS_THROWN);
(*env)->SetObjectArrayElement(env, isaa, 0, isa);
return 1;
}
diff --git a/jdk/src/solaris/native/sun/nio/ch/sctp/SctpChannelImpl.c b/jdk/src/solaris/native/sun/nio/ch/sctp/SctpChannelImpl.c
index 225556b4d9f..54e16af7f6b 100644
--- a/jdk/src/solaris/native/sun/nio/ch/sctp/SctpChannelImpl.c
+++ b/jdk/src/solaris/native/sun/nio/ch/sctp/SctpChannelImpl.c
@@ -214,6 +214,7 @@ void handleSendFailed
/* retrieved address from sockaddr */
isaObj = SockAddrToInetSocketAddress(env, sap);
+ CHECK_NULL(isaObj);
/* data retrieved from sff_data */
if (dataLength > 0) {
@@ -338,6 +339,7 @@ void handlePeerAddrChange
}
addressObj = SockAddrToInetSocketAddress(env, (struct sockaddr*)&spc->spc_aaddr);
+ CHECK_NULL(addressObj);
/* create PeerAddressChanged */
resultObj = (*env)->NewObject(env, spc_class, spc_ctrID, spc->spc_assoc_id,
@@ -394,6 +396,7 @@ void handleMessage
}
isa = SockAddrToInetSocketAddress(env, sap);
+ CHECK_NULL(isa);
getControlData(msg, cdata);
/* create MessageInfoImpl */
@@ -580,4 +583,3 @@ JNIEXPORT jint JNICALL Java_sun_nio_ch_sctp_SctpChannelImpl_checkConnect
return Java_sun_nio_ch_SocketChannelImpl_checkConnect(env, this,
fdo, block, ready);
}
-
diff --git a/jdk/src/solaris/native/sun/nio/ch/sctp/SctpNet.c b/jdk/src/solaris/native/sun/nio/ch/sctp/SctpNet.c
index 57c4fae4fa5..f03be57b5d0 100644
--- a/jdk/src/solaris/native/sun/nio/ch/sctp/SctpNet.c
+++ b/jdk/src/solaris/native/sun/nio/ch/sctp/SctpNet.c
@@ -382,8 +382,9 @@ JNIEXPORT jobjectArray JNICALL Java_sun_nio_ch_sctp_SctpNet_getLocalAddresses0
ia = NET_SockaddrToInetAddress(env, sap, &port);
if (ia != NULL)
isa = (*env)->NewObject(env, isaCls, isaCtrID, ia, port);
- if (isa != NULL)
- (*env)->SetObjectArrayElement(env, isaa, i, isa);
+ if (isa == NULL)
+ break;
+ (*env)->SetObjectArrayElement(env, isaa, i, isa);
if (sap->sa_family == AF_INET)
addr_buf = ((struct sockaddr_in*)addr_buf) + 1;
@@ -433,8 +434,9 @@ jobjectArray getRemoteAddresses
ia = NET_SockaddrToInetAddress(env, sap, &port);
if (ia != NULL)
isa = (*env)->NewObject(env, isaCls, isaCtrID, ia, port);
- if (isa != NULL)
- (*env)->SetObjectArrayElement(env, isaa, i, isa);
+ if (isa == NULL)
+ break;
+ (*env)->SetObjectArrayElement(env, isaa, i, isa);
if (sap->sa_family == AF_INET)
addr_buf = ((struct sockaddr_in*)addr_buf) + 1;
diff --git a/jdk/src/solaris/native/sun/nio/fs/BsdNativeDispatcher.c b/jdk/src/solaris/native/sun/nio/fs/BsdNativeDispatcher.c
index 0b4f2a74dff..9453f75d3de 100644
--- a/jdk/src/solaris/native/sun/nio/fs/BsdNativeDispatcher.c
+++ b/jdk/src/solaris/native/sun/nio/fs/BsdNativeDispatcher.c
@@ -72,13 +72,15 @@ Java_sun_nio_fs_BsdNativeDispatcher_initIDs(JNIEnv* env, jclass this)
jclass clazz;
clazz = (*env)->FindClass(env, "sun/nio/fs/UnixMountEntry");
- if (clazz == NULL) {
- return;
- }
+ CHECK_NULL(clazz);
entry_name = (*env)->GetFieldID(env, clazz, "name", "[B");
+ CHECK_NULL(entry_name);
entry_dir = (*env)->GetFieldID(env, clazz, "dir", "[B");
+ CHECK_NULL(entry_dir);
entry_fstype = (*env)->GetFieldID(env, clazz, "fstype", "[B");
+ CHECK_NULL(entry_fstype);
entry_options = (*env)->GetFieldID(env, clazz, "opts", "[B");
+ CHECK_NULL(entry_options);
}
JNIEXPORT jlong JNICALL
@@ -201,4 +203,3 @@ Java_sun_nio_fs_BsdNativeDispatcher_endfsstat(JNIEnv* env, jclass this, jlong va
free(iter);
}
}
-
diff --git a/jdk/src/solaris/native/sun/nio/fs/LinuxNativeDispatcher.c b/jdk/src/solaris/native/sun/nio/fs/LinuxNativeDispatcher.c
index 1de7d5b3c98..c8500db5c87 100644
--- a/jdk/src/solaris/native/sun/nio/fs/LinuxNativeDispatcher.c
+++ b/jdk/src/solaris/native/sun/nio/fs/LinuxNativeDispatcher.c
@@ -68,13 +68,15 @@ Java_sun_nio_fs_LinuxNativeDispatcher_init(JNIEnv *env, jclass clazz)
my_flistxattr_func = (flistxattr_func*)dlsym(RTLD_DEFAULT, "flistxattr");
clazz = (*env)->FindClass(env, "sun/nio/fs/UnixMountEntry");
- if (clazz == NULL)
- return;
-
+ CHECK_NULL(clazz);
entry_name = (*env)->GetFieldID(env, clazz, "name", "[B");
+ CHECK_NULL(entry_name);
entry_dir = (*env)->GetFieldID(env, clazz, "dir", "[B");
+ CHECK_NULL(entry_dir);
entry_fstype = (*env)->GetFieldID(env, clazz, "fstype", "[B");
+ CHECK_NULL(entry_fstype);
entry_options = (*env)->GetFieldID(env, clazz, "opts", "[B");
+ CHECK_NULL(entry_options);
}
JNIEXPORT jint JNICALL
diff --git a/jdk/src/solaris/native/sun/nio/fs/SolarisNativeDispatcher.c b/jdk/src/solaris/native/sun/nio/fs/SolarisNativeDispatcher.c
index 1480ea9046b..de04bbddc7c 100644
--- a/jdk/src/solaris/native/sun/nio/fs/SolarisNativeDispatcher.c
+++ b/jdk/src/solaris/native/sun/nio/fs/SolarisNativeDispatcher.c
@@ -55,14 +55,17 @@ static void throwUnixException(JNIEnv* env, int errnum) {
JNIEXPORT void JNICALL
Java_sun_nio_fs_SolarisNativeDispatcher_init(JNIEnv *env, jclass clazz) {
clazz = (*env)->FindClass(env, "sun/nio/fs/UnixMountEntry");
- if (clazz == NULL)
- return;
-
+ CHECK_NULL(clazz);
entry_name = (*env)->GetFieldID(env, clazz, "name", "[B");
+ CHECK_NULL(entry_name);
entry_dir = (*env)->GetFieldID(env, clazz, "dir", "[B");
+ CHECK_NULL(entry_dir);
entry_fstype = (*env)->GetFieldID(env, clazz, "fstype", "[B");
+ CHECK_NULL(entry_fstype);
entry_options = (*env)->GetFieldID(env, clazz, "opts", "[B");
+ CHECK_NULL(entry_options);
entry_dev = (*env)->GetFieldID(env, clazz, "dev", "J");
+ CHECK_NULL(entry_dev);
}
JNIEXPORT jint JNICALL
diff --git a/jdk/src/solaris/native/sun/nio/fs/UnixNativeDispatcher.c b/jdk/src/solaris/native/sun/nio/fs/UnixNativeDispatcher.c
index 12f399d8512..8901376361d 100644
--- a/jdk/src/solaris/native/sun/nio/fs/UnixNativeDispatcher.c
+++ b/jdk/src/solaris/native/sun/nio/fs/UnixNativeDispatcher.c
@@ -179,46 +179,64 @@ Java_sun_nio_fs_UnixNativeDispatcher_init(JNIEnv* env, jclass this)
jclass clazz;
clazz = (*env)->FindClass(env, "sun/nio/fs/UnixFileAttributes");
- if (clazz == NULL) {
- return 0;
- }
+ CHECK_NULL_RETURN(clazz, 0);
attrs_st_mode = (*env)->GetFieldID(env, clazz, "st_mode", "I");
+ CHECK_NULL_RETURN(attrs_st_mode, 0);
attrs_st_ino = (*env)->GetFieldID(env, clazz, "st_ino", "J");
+ CHECK_NULL_RETURN(attrs_st_ino, 0);
attrs_st_dev = (*env)->GetFieldID(env, clazz, "st_dev", "J");
+ CHECK_NULL_RETURN(attrs_st_dev, 0);
attrs_st_rdev = (*env)->GetFieldID(env, clazz, "st_rdev", "J");
+ CHECK_NULL_RETURN(attrs_st_rdev, 0);
attrs_st_nlink = (*env)->GetFieldID(env, clazz, "st_nlink", "I");
+ CHECK_NULL_RETURN(attrs_st_nlink, 0);
attrs_st_uid = (*env)->GetFieldID(env, clazz, "st_uid", "I");
+ CHECK_NULL_RETURN(attrs_st_uid, 0);
attrs_st_gid = (*env)->GetFieldID(env, clazz, "st_gid", "I");
+ CHECK_NULL_RETURN(attrs_st_gid, 0);
attrs_st_size = (*env)->GetFieldID(env, clazz, "st_size", "J");
+ CHECK_NULL_RETURN(attrs_st_size, 0);
attrs_st_atime_sec = (*env)->GetFieldID(env, clazz, "st_atime_sec", "J");
+ CHECK_NULL_RETURN(attrs_st_atime_sec, 0);
attrs_st_atime_nsec = (*env)->GetFieldID(env, clazz, "st_atime_nsec", "J");
+ CHECK_NULL_RETURN(attrs_st_atime_nsec, 0);
attrs_st_mtime_sec = (*env)->GetFieldID(env, clazz, "st_mtime_sec", "J");
+ CHECK_NULL_RETURN(attrs_st_mtime_sec, 0);
attrs_st_mtime_nsec = (*env)->GetFieldID(env, clazz, "st_mtime_nsec", "J");
+ CHECK_NULL_RETURN(attrs_st_mtime_nsec, 0);
attrs_st_ctime_sec = (*env)->GetFieldID(env, clazz, "st_ctime_sec", "J");
+ CHECK_NULL_RETURN(attrs_st_ctime_sec, 0);
attrs_st_ctime_nsec = (*env)->GetFieldID(env, clazz, "st_ctime_nsec", "J");
+ CHECK_NULL_RETURN(attrs_st_ctime_nsec, 0);
#ifdef _DARWIN_FEATURE_64_BIT_INODE
attrs_st_birthtime_sec = (*env)->GetFieldID(env, clazz, "st_birthtime_sec", "J");
+ CHECK_NULL_RETURN(attrs_st_birthtime_sec, 0);
#endif
clazz = (*env)->FindClass(env, "sun/nio/fs/UnixFileStoreAttributes");
- if (clazz == NULL) {
- return 0;
- }
+ CHECK_NULL_RETURN(clazz, 0);
attrs_f_frsize = (*env)->GetFieldID(env, clazz, "f_frsize", "J");
+ CHECK_NULL_RETURN(attrs_f_frsize, 0);
attrs_f_blocks = (*env)->GetFieldID(env, clazz, "f_blocks", "J");
+ CHECK_NULL_RETURN(attrs_f_blocks, 0);
attrs_f_bfree = (*env)->GetFieldID(env, clazz, "f_bfree", "J");
+ CHECK_NULL_RETURN(attrs_f_bfree, 0);
attrs_f_bavail = (*env)->GetFieldID(env, clazz, "f_bavail", "J");
+ CHECK_NULL_RETURN(attrs_f_bavail, 0);
clazz = (*env)->FindClass(env, "sun/nio/fs/UnixMountEntry");
- if (clazz == NULL) {
- return 0;
- }
+ CHECK_NULL_RETURN(clazz, 0);
entry_name = (*env)->GetFieldID(env, clazz, "name", "[B");
+ CHECK_NULL_RETURN(entry_name, 0);
entry_dir = (*env)->GetFieldID(env, clazz, "dir", "[B");
+ CHECK_NULL_RETURN(entry_dir, 0);
entry_fstype = (*env)->GetFieldID(env, clazz, "fstype", "[B");
+ CHECK_NULL_RETURN(entry_fstype, 0);
entry_options = (*env)->GetFieldID(env, clazz, "opts", "[B");
+ CHECK_NULL_RETURN(entry_options, 0);
entry_dev = (*env)->GetFieldID(env, clazz, "dev", "J");
+ CHECK_NULL_RETURN(entry_dev, 0);
/* system calls that might not be available at run time */
diff --git a/jdk/src/windows/native/java/io/FileDescriptor_md.c b/jdk/src/windows/native/java/io/FileDescriptor_md.c
index 221bf1d9217..db04cd47653 100644
--- a/jdk/src/windows/native/java/io/FileDescriptor_md.c
+++ b/jdk/src/windows/native/java/io/FileDescriptor_md.c
@@ -48,8 +48,8 @@ jfieldID IO_handle_fdID;
JNIEXPORT void JNICALL
Java_java_io_FileDescriptor_initIDs(JNIEnv *env, jclass fdClass) {
- IO_fd_fdID = (*env)->GetFieldID(env, fdClass, "fd", "I");
- IO_handle_fdID = (*env)->GetFieldID(env, fdClass, "handle", "J");
+ CHECK_NULL(IO_fd_fdID = (*env)->GetFieldID(env, fdClass, "fd", "I"));
+ CHECK_NULL(IO_handle_fdID = (*env)->GetFieldID(env, fdClass, "handle", "J"));
}
JNIEXPORT jlong JNICALL
diff --git a/jdk/src/windows/native/java/io/WinNTFileSystem_md.c b/jdk/src/windows/native/java/io/WinNTFileSystem_md.c
index 3c8b821e027..ec7d9d7294b 100644
--- a/jdk/src/windows/native/java/io/WinNTFileSystem_md.c
+++ b/jdk/src/windows/native/java/io/WinNTFileSystem_md.c
@@ -59,10 +59,12 @@ JNIEXPORT void JNICALL
Java_java_io_WinNTFileSystem_initIDs(JNIEnv *env, jclass cls)
{
HMODULE handle;
- jclass fileClass = (*env)->FindClass(env, "java/io/File");
- if (!fileClass) return;
- ids.path =
- (*env)->GetFieldID(env, fileClass, "path", "Ljava/lang/String;");
+ jclass fileClass;
+
+ fileClass = (*env)->FindClass(env, "java/io/File");
+ CHECK_NULL(fileClass);
+ ids.path = (*env)->GetFieldID(env, fileClass, "path", "Ljava/lang/String;");
+ CHECK_NULL(ids.path);
// GetFinalPathNameByHandle requires Windows Vista or newer
if (GetModuleHandleExW((GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS |
@@ -243,8 +245,8 @@ Java_java_io_WinNTFileSystem_canonicalize0(JNIEnv *env, jobject this,
WCHAR canonicalPath[MAX_PATH_LENGTH];
WITH_UNICODE_STRING(env, pathname, path) {
- /*we estimate the max length of memory needed as
- "currentDir. length + pathname.length"
+ /* we estimate the max length of memory needed as
+ "currentDir. length + pathname.length"
*/
int len = (int)wcslen(path);
len += currentDirLength(path, len);
@@ -256,12 +258,11 @@ Java_java_io_WinNTFileSystem_canonicalize0(JNIEnv *env, jobject this,
}
free(cp);
}
- } else
- if (wcanonicalize(path, canonicalPath, MAX_PATH_LENGTH) >= 0) {
+ } else if (wcanonicalize(path, canonicalPath, MAX_PATH_LENGTH) >= 0) {
rv = (*env)->NewString(env, canonicalPath, (jsize)wcslen(canonicalPath));
}
} END_UNICODE_STRING(env, path);
- if (rv == NULL) {
+ if (rv == NULL && !(*env)->ExceptionCheck(env)) {
JNU_ThrowIOExceptionWithLastError(env, "Bad pathname");
}
return rv;
@@ -288,15 +289,14 @@ Java_java_io_WinNTFileSystem_canonicalizeWithPrefix0(JNIEnv *env, jobject this,
}
free(cp);
}
- } else
- if (wcanonicalizeWithPrefix(canonicalPrefix,
- pathWithCanonicalPrefix,
- canonicalPath, MAX_PATH_LENGTH) >= 0) {
+ } else if (wcanonicalizeWithPrefix(canonicalPrefix,
+ pathWithCanonicalPrefix,
+ canonicalPath, MAX_PATH_LENGTH) >= 0) {
rv = (*env)->NewString(env, canonicalPath, (jsize)wcslen(canonicalPath));
}
} END_UNICODE_STRING(env, pathWithCanonicalPrefix);
} END_UNICODE_STRING(env, canonicalPrefix);
- if (rv == NULL) {
+ if (rv == NULL && !(*env)->ExceptionCheck(env)) {
JNU_ThrowIOExceptionWithLastError(env, "Bad pathname");
}
return rv;
@@ -616,8 +616,13 @@ Java_java_io_WinNTFileSystem_list(JNIEnv *env, jobject this, jobject file)
jobjectArray rv, old;
DWORD fattr;
jstring name;
+ jclass str_class;
+ WCHAR *pathbuf;
- WCHAR *pathbuf = fileToNTPath(env, file, ids.path);
+ str_class = JNU_ClassString(env);
+ CHECK_NULL_RETURN(str_class, NULL);
+
+ pathbuf = fileToNTPath(env, file, ids.path);
if (pathbuf == NULL)
return NULL;
search_path = (WCHAR*)malloc(2*wcslen(pathbuf) + 6);
@@ -664,7 +669,7 @@ Java_java_io_WinNTFileSystem_list(JNIEnv *env, jobject this, jobject file)
return NULL;
} else {
// No files found - return an empty array
- rv = (*env)->NewObjectArray(env, 0, JNU_ClassString(env), NULL);
+ rv = (*env)->NewObjectArray(env, 0, str_class, NULL);
return rv;
}
}
@@ -672,7 +677,7 @@ Java_java_io_WinNTFileSystem_list(JNIEnv *env, jobject this, jobject file)
/* Allocate an initial String array */
len = 0;
maxlen = 16;
- rv = (*env)->NewObjectArray(env, maxlen, JNU_ClassString(env), NULL);
+ rv = (*env)->NewObjectArray(env, maxlen, str_class, NULL);
if (rv == NULL) // Couldn't allocate an array
return NULL;
/* Scan the directory */
@@ -686,10 +691,8 @@ Java_java_io_WinNTFileSystem_list(JNIEnv *env, jobject this, jobject file)
return NULL; // error;
if (len == maxlen) {
old = rv;
- rv = (*env)->NewObjectArray(env, maxlen <<= 1,
- JNU_ClassString(env), NULL);
- if ( rv == NULL
- || JNU_CopyObjectArray(env, rv, old, len) < 0)
+ rv = (*env)->NewObjectArray(env, maxlen <<= 1, str_class, NULL);
+ if (rv == NULL || JNU_CopyObjectArray(env, rv, old, len) < 0)
return NULL; // error
(*env)->DeleteLocalRef(env, old);
}
@@ -704,7 +707,7 @@ Java_java_io_WinNTFileSystem_list(JNIEnv *env, jobject this, jobject file)
/* Copy the final results into an appropriately-sized array */
old = rv;
- rv = (*env)->NewObjectArray(env, len, JNU_ClassString(env), NULL);
+ rv = (*env)->NewObjectArray(env, len, str_class, NULL);
if (rv == NULL)
return NULL; /* error */
if (JNU_CopyObjectArray(env, rv, old, len) < 0)
diff --git a/jdk/src/windows/native/sun/nio/ch/DatagramChannelImpl.c b/jdk/src/windows/native/sun/nio/ch/DatagramChannelImpl.c
index ab46f8d7faa..ecc96a1d8bb 100644
--- a/jdk/src/windows/native/sun/nio/ch/DatagramChannelImpl.c
+++ b/jdk/src/windows/native/sun/nio/ch/DatagramChannelImpl.c
@@ -45,18 +45,28 @@ JNIEXPORT void JNICALL
Java_sun_nio_ch_DatagramChannelImpl_initIDs(JNIEnv *env, jclass clazz)
{
clazz = (*env)->FindClass(env, "java/net/InetSocketAddress");
+ CHECK_NULL(clazz);
isa_class = (*env)->NewGlobalRef(env, clazz);
+ if (isa_class == NULL) {
+ JNU_ThrowOutOfMemoryError(env, NULL);
+ return;
+ }
isa_ctorID = (*env)->GetMethodID(env, clazz, "",
"(Ljava/net/InetAddress;I)V");
+ CHECK_NULL(isa_ctorID);
clazz = (*env)->FindClass(env, "sun/nio/ch/DatagramChannelImpl");
+ CHECK_NULL(clazz);
dci_senderID = (*env)->GetFieldID(env, clazz, "sender",
"Ljava/net/SocketAddress;");
+ CHECK_NULL(dci_senderID);
dci_senderAddrID = (*env)->GetFieldID(env, clazz,
"cachedSenderInetAddress",
"Ljava/net/InetAddress;");
+ CHECK_NULL(dci_senderAddrID);
dci_senderPortID = (*env)->GetFieldID(env, clazz,
"cachedSenderPort", "I");
+ CHECK_NULL(dci_senderPortID);
}
/*
@@ -185,17 +195,11 @@ Java_sun_nio_ch_DatagramChannelImpl_receive0(JNIEnv *env, jobject this,
if (senderAddr == NULL) {
jobject isa = NULL;
int port;
- jobject ia = NET_SockaddrToInetAddress(env, (struct sockaddr *)&sa,
- &port);
-
+ jobject ia = NET_SockaddrToInetAddress(env, (struct sockaddr *)&sa, &port);
if (ia != NULL) {
isa = (*env)->NewObject(env, isa_class, isa_ctorID, ia, port);
}
-
- if (isa == NULL) {
- JNU_ThrowOutOfMemoryError(env, "heap allocation failed");
- return IOS_THROWN;
- }
+ CHECK_NULL_RETURN(isa, IOS_THROWN);
// update cachedSenderInetAddress/cachedSenderPort
(*env)->SetObjectField(env, this, dci_senderAddrID, ia);
diff --git a/jdk/src/windows/native/sun/nio/ch/FileKey.c b/jdk/src/windows/native/sun/nio/ch/FileKey.c
index e095296abeb..65306d1d639 100644
--- a/jdk/src/windows/native/sun/nio/ch/FileKey.c
+++ b/jdk/src/windows/native/sun/nio/ch/FileKey.c
@@ -38,9 +38,9 @@ static jfieldID key_indexLow; /* id for FileKey.nFileIndexLow */
JNIEXPORT void JNICALL
Java_sun_nio_ch_FileKey_initIDs(JNIEnv *env, jclass clazz)
{
- key_volumeSN = (*env)->GetFieldID(env, clazz, "dwVolumeSerialNumber", "J");
- key_indexHigh = (*env)->GetFieldID(env, clazz, "nFileIndexHigh", "J");
- key_indexLow = (*env)->GetFieldID(env, clazz, "nFileIndexLow", "J");
+ CHECK_NULL(key_volumeSN = (*env)->GetFieldID(env, clazz, "dwVolumeSerialNumber", "J"));
+ CHECK_NULL(key_indexHigh = (*env)->GetFieldID(env, clazz, "nFileIndexHigh", "J"));
+ CHECK_NULL(key_indexLow = (*env)->GetFieldID(env, clazz, "nFileIndexLow", "J"));
}
diff --git a/jdk/src/windows/native/sun/nio/ch/IOUtil.c b/jdk/src/windows/native/sun/nio/ch/IOUtil.c
index 10c72e4682f..370dcf5e23f 100644
--- a/jdk/src/windows/native/sun/nio/ch/IOUtil.c
+++ b/jdk/src/windows/native/sun/nio/ch/IOUtil.c
@@ -52,9 +52,9 @@ Java_sun_security_provider_NativeSeedGenerator_nativeGenerateSeed
JNIEXPORT void JNICALL
Java_sun_nio_ch_IOUtil_initIDs(JNIEnv *env, jclass clazz)
{
- clazz = (*env)->FindClass(env, "java/io/FileDescriptor");
- fd_fdID = (*env)->GetFieldID(env, clazz, "fd", "I");
- handle_fdID = (*env)->GetFieldID(env, clazz, "handle", "J");
+ CHECK_NULL(clazz = (*env)->FindClass(env, "java/io/FileDescriptor"));
+ CHECK_NULL(fd_fdID = (*env)->GetFieldID(env, clazz, "fd", "I"));
+ CHECK_NULL(handle_fdID = (*env)->GetFieldID(env, clazz, "handle", "J"));
}
/**************************************************************
diff --git a/jdk/src/windows/native/sun/nio/ch/Iocp.c b/jdk/src/windows/native/sun/nio/ch/Iocp.c
index 8f87a8937f7..f9556234075 100644
--- a/jdk/src/windows/native/sun/nio/ch/Iocp.c
+++ b/jdk/src/windows/native/sun/nio/ch/Iocp.c
@@ -46,16 +46,15 @@ Java_sun_nio_ch_Iocp_initIDs(JNIEnv* env, jclass this)
jclass clazz;
clazz = (*env)->FindClass(env, "sun/nio/ch/Iocp$CompletionStatus");
- if (clazz == NULL) {
- return;
- }
+ CHECK_NULL(clazz);
completionStatus_error = (*env)->GetFieldID(env, clazz, "error", "I");
- if (completionStatus_error == NULL) return;
+ CHECK_NULL(completionStatus_error);
completionStatus_bytesTransferred = (*env)->GetFieldID(env, clazz, "bytesTransferred", "I");
- if (completionStatus_bytesTransferred == NULL) return;
+ CHECK_NULL(completionStatus_bytesTransferred);
completionStatus_completionKey = (*env)->GetFieldID(env, clazz, "completionKey", "I");
- if (completionStatus_completionKey == NULL) return;
+ CHECK_NULL(completionStatus_completionKey);
completionStatus_overlapped = (*env)->GetFieldID(env, clazz, "overlapped", "J");
+ CHECK_NULL(completionStatus_overlapped);
}
JNIEXPORT jint JNICALL
diff --git a/jdk/src/windows/native/sun/nio/ch/ServerSocketChannelImpl.c b/jdk/src/windows/native/sun/nio/ch/ServerSocketChannelImpl.c
index 2af833c2eb7..30d6d641645 100644
--- a/jdk/src/windows/native/sun/nio/ch/ServerSocketChannelImpl.c
+++ b/jdk/src/windows/native/sun/nio/ch/ServerSocketChannelImpl.c
@@ -56,12 +56,20 @@ JNIEXPORT void JNICALL
Java_sun_nio_ch_ServerSocketChannelImpl_initIDs(JNIEnv *env, jclass cls)
{
cls = (*env)->FindClass(env, "java/io/FileDescriptor");
+ CHECK_NULL(cls);
fd_fdID = (*env)->GetFieldID(env, cls, "fd", "I");
+ CHECK_NULL(fd_fdID);
cls = (*env)->FindClass(env, "java/net/InetSocketAddress");
+ CHECK_NULL(cls);
isa_class = (*env)->NewGlobalRef(env, cls);
+ if (isa_class == NULL) {
+ JNU_ThrowOutOfMemoryError(env, NULL);
+ return;
+ }
isa_ctorID = (*env)->GetMethodID(env, cls, "",
"(Ljava/net/InetAddress;I)V");
+ CHECK_NULL(isa_ctorID);
}
JNIEXPORT void JNICALL
@@ -99,10 +107,10 @@ Java_sun_nio_ch_ServerSocketChannelImpl_accept0(JNIEnv *env, jobject this,
(*env)->SetIntField(env, newfdo, fd_fdID, newfd);
remote_ia = NET_SockaddrToInetAddress(env, (struct sockaddr *)&sa, (int *)&remote_port);
+ CHECK_NULL_RETURN(remote_ia, IOS_THROWN);
- isa = (*env)->NewObject(env, isa_class, isa_ctorID,
- remote_ia, remote_port);
+ isa = (*env)->NewObject(env, isa_class, isa_ctorID, remote_ia, remote_port);
+ CHECK_NULL_RETURN(isa, IOS_THROWN);
(*env)->SetObjectArrayElement(env, isaa, 0, isa);
-
return 1;
}
diff --git a/jdk/src/windows/native/sun/nio/ch/SocketChannelImpl.c b/jdk/src/windows/native/sun/nio/ch/SocketChannelImpl.c
index be50fd69439..5f9fc5000e1 100644
--- a/jdk/src/windows/native/sun/nio/ch/SocketChannelImpl.c
+++ b/jdk/src/windows/native/sun/nio/ch/SocketChannelImpl.c
@@ -42,8 +42,8 @@ static jfieldID ia_addrID; /* java.net.InetAddress.address */
JNIEXPORT void JNICALL
Java_sun_nio_ch_SocketChannelImpl_initIDs(JNIEnv *env, jclass cls)
{
- cls = (*env)->FindClass(env, "java/net/InetAddress");
- ia_addrID = (*env)->GetFieldID(env, cls, "address", "I");
+ CHECK_NULL(cls = (*env)->FindClass(env, "java/net/InetAddress"));
+ CHECK_NULL(ia_addrID = (*env)->GetFieldID(env, cls, "address", "I"));
}
jint
diff --git a/jdk/src/windows/native/sun/nio/fs/WindowsNativeDispatcher.c b/jdk/src/windows/native/sun/nio/fs/WindowsNativeDispatcher.c
index 62d8a892b05..3b981f3760b 100644
--- a/jdk/src/windows/native/sun/nio/fs/WindowsNativeDispatcher.c
+++ b/jdk/src/windows/native/sun/nio/fs/WindowsNativeDispatcher.c
@@ -111,65 +111,70 @@ Java_sun_nio_fs_WindowsNativeDispatcher_initIDs(JNIEnv* env, jclass this)
HMODULE h;
clazz = (*env)->FindClass(env, "sun/nio/fs/WindowsNativeDispatcher$FirstFile");
- if (clazz == NULL) {
- return;
- }
+ CHECK_NULL(clazz);
findFirst_handle = (*env)->GetFieldID(env, clazz, "handle", "J");
+ CHECK_NULL(findFirst_handle);
findFirst_name = (*env)->GetFieldID(env, clazz, "name", "Ljava/lang/String;");
+ CHECK_NULL(findFirst_name);
findFirst_attributes = (*env)->GetFieldID(env, clazz, "attributes", "I");
+ CHECK_NULL(findFirst_attributes);
clazz = (*env)->FindClass(env, "sun/nio/fs/WindowsNativeDispatcher$FirstStream");
- if (clazz == NULL) {
- return;
- }
+ CHECK_NULL(clazz);
findStream_handle = (*env)->GetFieldID(env, clazz, "handle", "J");
+ CHECK_NULL(findStream_handle);
findStream_name = (*env)->GetFieldID(env, clazz, "name", "Ljava/lang/String;");
+ CHECK_NULL(findStream_name);
clazz = (*env)->FindClass(env, "sun/nio/fs/WindowsNativeDispatcher$VolumeInformation");
- if (clazz == NULL) {
- return;
- }
+ CHECK_NULL(clazz);
volumeInfo_fsName = (*env)->GetFieldID(env, clazz, "fileSystemName", "Ljava/lang/String;");
+ CHECK_NULL(volumeInfo_fsName);
volumeInfo_volName = (*env)->GetFieldID(env, clazz, "volumeName", "Ljava/lang/String;");
+ CHECK_NULL(volumeInfo_volName);
volumeInfo_volSN = (*env)->GetFieldID(env, clazz, "volumeSerialNumber", "I");
+ CHECK_NULL(volumeInfo_volSN);
volumeInfo_flags = (*env)->GetFieldID(env, clazz, "flags", "I");
+ CHECK_NULL(volumeInfo_flags);
clazz = (*env)->FindClass(env, "sun/nio/fs/WindowsNativeDispatcher$DiskFreeSpace");
- if (clazz == NULL) {
- return;
- }
+ CHECK_NULL(clazz);
diskSpace_bytesAvailable = (*env)->GetFieldID(env, clazz, "freeBytesAvailable", "J");
+ CHECK_NULL(diskSpace_bytesAvailable);
diskSpace_totalBytes = (*env)->GetFieldID(env, clazz, "totalNumberOfBytes", "J");
+ CHECK_NULL(diskSpace_totalBytes);
diskSpace_totalFree = (*env)->GetFieldID(env, clazz, "totalNumberOfFreeBytes", "J");
+ CHECK_NULL(diskSpace_totalFree);
clazz = (*env)->FindClass(env, "sun/nio/fs/WindowsNativeDispatcher$Account");
- if (clazz == NULL) {
- return;
- }
+ CHECK_NULL(clazz);
account_domain = (*env)->GetFieldID(env, clazz, "domain", "Ljava/lang/String;");
+ CHECK_NULL(account_domain);
account_name = (*env)->GetFieldID(env, clazz, "name", "Ljava/lang/String;");
+ CHECK_NULL(account_name);
account_use = (*env)->GetFieldID(env, clazz, "use", "I");
+ CHECK_NULL(account_use);
clazz = (*env)->FindClass(env, "sun/nio/fs/WindowsNativeDispatcher$AclInformation");
- if (clazz == NULL) {
- return;
- }
+ CHECK_NULL(clazz);
aclInfo_aceCount = (*env)->GetFieldID(env, clazz, "aceCount", "I");
+ CHECK_NULL(aclInfo_aceCount);
clazz = (*env)->FindClass(env, "sun/nio/fs/WindowsNativeDispatcher$CompletionStatus");
- if (clazz == NULL) {
- return;
- }
+ CHECK_NULL(clazz);
completionStatus_error = (*env)->GetFieldID(env, clazz, "error", "I");
+ CHECK_NULL(completionStatus_error);
completionStatus_bytesTransferred = (*env)->GetFieldID(env, clazz, "bytesTransferred", "I");
+ CHECK_NULL(completionStatus_bytesTransferred);
completionStatus_completionKey = (*env)->GetFieldID(env, clazz, "completionKey", "J");
+ CHECK_NULL(completionStatus_completionKey);
clazz = (*env)->FindClass(env, "sun/nio/fs/WindowsNativeDispatcher$BackupResult");
- if (clazz == NULL) {
- return;
- }
+ CHECK_NULL(clazz);
backupResult_bytesTransferred = (*env)->GetFieldID(env, clazz, "bytesTransferred", "I");
+ CHECK_NULL(backupResult_bytesTransferred);
backupResult_context = (*env)->GetFieldID(env, clazz, "context", "J");
+ CHECK_NULL(backupResult_context);
// get handle to kernel32
if (GetModuleHandleExW((GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS |
From 0abb2b14edd9f7b4de461efa47fe31b4cbfb92c1 Mon Sep 17 00:00:00 2001
From: Alan Bateman
Date: Mon, 3 Feb 2014 14:18:45 +0000
Subject: [PATCH 139/181] 8030795:
java/nio/file/Files/probeContentType/ForceLoad.java failing with
ServiceConfigurationError without jtreg -agentvm option
Reviewed-by: michaelm
---
jdk/test/java/nio/file/Files/probeContentType/ForceLoad.java | 2 ++
1 file changed, 2 insertions(+)
diff --git a/jdk/test/java/nio/file/Files/probeContentType/ForceLoad.java b/jdk/test/java/nio/file/Files/probeContentType/ForceLoad.java
index 5bb19ddaaa0..4a4edb26eb8 100644
--- a/jdk/test/java/nio/file/Files/probeContentType/ForceLoad.java
+++ b/jdk/test/java/nio/file/Files/probeContentType/ForceLoad.java
@@ -25,6 +25,8 @@
* @bug 4313887
* @summary Test library dependencies by invoking Files.probeContentType
* before other methods that would cause nio.dll to be loaded.
+ * @build ForceLoad SimpleFileTypeDetector
+ * @run main/othervm ForceLoad
*/
import java.nio.file.*;
From b2af3087a436f146c58752433a7ba2170c79d515 Mon Sep 17 00:00:00 2001
From: Michael McMahon
Date: Mon, 3 Feb 2014 14:40:28 +0000
Subject: [PATCH 140/181] 8033425: Delay loading of net library in PortConfig
initialization (workaround for for 8033367)
Reviewed-by: alanb, chegar
---
.../share/classes/java/net/SocketPermission.java | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/jdk/src/share/classes/java/net/SocketPermission.java b/jdk/src/share/classes/java/net/SocketPermission.java
index 70b004af3bc..0f720c52283 100644
--- a/jdk/src/share/classes/java/net/SocketPermission.java
+++ b/jdk/src/share/classes/java/net/SocketPermission.java
@@ -235,13 +235,11 @@ public final class SocketPermission extends Permission
private static Debug debug = null;
private static boolean debugInit = false;
- // ephemeral port range for this system
- private static final int ephemeralLow = initEphemeralPorts(
- "low", DEF_EPH_LOW
- );
- private static final int ephemeralHigh = initEphemeralPorts(
- "high", PORT_MAX
- );
+ // lazy initializer
+ private static class EphemeralRange {
+ static final int low = initEphemeralPorts("low", DEF_EPH_LOW);
+ static final int high = initEphemeralPorts("high", PORT_MAX);
+ };
static {
Boolean tmp = java.security.AccessController.doPrivileged(
@@ -1235,6 +1233,9 @@ public final class SocketPermission extends Permission
int policyLow, int policyHigh, int targetLow, int targetHigh
)
{
+ final int ephemeralLow = EphemeralRange.low;
+ final int ephemeralHigh = EphemeralRange.high;
+
if (targetLow == 0) {
// check policy includes ephemeral range
if (!inRange(policyLow, policyHigh, ephemeralLow, ephemeralHigh)) {
From 1c571143473e30c79d62cec3959916a3eae0bd2d Mon Sep 17 00:00:00 2001
From: Joe Darcy
Date: Mon, 3 Feb 2014 09:52:36 -0800
Subject: [PATCH 141/181] 8033416: Remove sun.misc.FpUtils
Reviewed-by: alanb, bpb, psandoz
---
jdk/src/share/classes/java/lang/Double.java | 3 +-
.../share/classes/sun/misc/DoubleConsts.java | 6 +-
.../share/classes/sun/misc/FloatConsts.java | 5 +-
jdk/src/share/classes/sun/misc/FpUtils.java | 931 ------------------
jdk/test/java/lang/Math/HypotTests.java | 5 +-
.../java/lang/Math/IeeeRecommendedTests.java | 40 +-
jdk/test/java/lang/Math/Log1pTests.java | 5 +-
jdk/test/java/lang/Math/Tests.java | 177 +++-
8 files changed, 203 insertions(+), 969 deletions(-)
delete mode 100644 jdk/src/share/classes/sun/misc/FpUtils.java
diff --git a/jdk/src/share/classes/java/lang/Double.java b/jdk/src/share/classes/java/lang/Double.java
index 9ba150e7156..d76c934bc62 100644
--- a/jdk/src/share/classes/java/lang/Double.java
+++ b/jdk/src/share/classes/java/lang/Double.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1994, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1994, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -26,7 +26,6 @@
package java.lang;
import sun.misc.FloatingDecimal;
-import sun.misc.FpUtils;
import sun.misc.DoubleConsts;
/**
diff --git a/jdk/src/share/classes/sun/misc/DoubleConsts.java b/jdk/src/share/classes/sun/misc/DoubleConsts.java
index 2c5964b7885..6ee80490102 100644
--- a/jdk/src/share/classes/sun/misc/DoubleConsts.java
+++ b/jdk/src/share/classes/sun/misc/DoubleConsts.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -77,9 +77,7 @@ public class DoubleConsts {
/**
* The exponent the smallest positive double
- * subnormal value would have if it could be normalized. It is
- * equal to the value returned by
- * FpUtils.ilogb(Double.MIN_VALUE)
.
+ * subnormal value would have if it could be normalized..
*/
public static final int MIN_SUB_EXPONENT = MIN_EXPONENT -
(SIGNIFICAND_WIDTH - 1);
diff --git a/jdk/src/share/classes/sun/misc/FloatConsts.java b/jdk/src/share/classes/sun/misc/FloatConsts.java
index 4345c19fcf3..07396f8bca9 100644
--- a/jdk/src/share/classes/sun/misc/FloatConsts.java
+++ b/jdk/src/share/classes/sun/misc/FloatConsts.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -73,8 +73,7 @@ public class FloatConsts {
/**
* The exponent the smallest positive float
subnormal
- * value would have if it could be normalized. It is equal to the
- * value returned by FpUtils.ilogb(Float.MIN_VALUE)
.
+ * value would have if it could be normalized.
*/
public static final int MIN_SUB_EXPONENT = MIN_EXPONENT -
(SIGNIFICAND_WIDTH - 1);
diff --git a/jdk/src/share/classes/sun/misc/FpUtils.java b/jdk/src/share/classes/sun/misc/FpUtils.java
deleted file mode 100644
index a874c80f628..00000000000
--- a/jdk/src/share/classes/sun/misc/FpUtils.java
+++ /dev/null
@@ -1,931 +0,0 @@
-/*
- * Copyright (c) 2003, 2011, 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 sun.misc;
-
-import sun.misc.FloatConsts;
-import sun.misc.DoubleConsts;
-
-/**
- * The class {@code FpUtils} contains static utility methods for
- * manipulating and inspecting {@code float} and
- * {@code double} floating-point numbers. These methods include
- * functionality recommended or required by the IEEE 754
- * floating-point standard.
- *
- * @author Joseph D. Darcy
- */
-
-public class FpUtils {
- /*
- * The methods in this class are reasonably implemented using
- * direct or indirect bit-level manipulation of floating-point
- * values. However, having access to the IEEE 754 recommended
- * functions would obviate the need for most programmers to engage
- * in floating-point bit-twiddling.
- *
- * An IEEE 754 number has three fields, from most significant bit
- * to to least significant, sign, exponent, and significand.
- *
- * msb lsb
- * [sign|exponent| fractional_significand]
- *
- * Using some encoding cleverness, explained below, the high order
- * bit of the logical significand does not need to be explicitly
- * stored, thus "fractional_significand" instead of simply
- * "significand" in the figure above.
- *
- * For finite normal numbers, the numerical value encoded is
- *
- * (-1)^sign * 2^(exponent)*(1.fractional_significand)
- *
- * Most finite floating-point numbers are normalized; the exponent
- * value is reduced until the leading significand bit is 1.
- * Therefore, the leading 1 is redundant and is not explicitly
- * stored. If a numerical value is so small it cannot be
- * normalized, it has a subnormal representation. Subnormal
- * numbers don't have a leading 1 in their significand; subnormals
- * are encoding using a special exponent value. In other words,
- * the high-order bit of the logical significand can be elided in
- * from the representation in either case since the bit's value is
- * implicit from the exponent value.
- *
- * The exponent field uses a biased representation; if the bits of
- * the exponent are interpreted as a unsigned integer E, the
- * exponent represented is E - E_bias where E_bias depends on the
- * floating-point format. E can range between E_min and E_max,
- * constants which depend on the floating-point format. E_min and
- * E_max are -126 and +127 for float, -1022 and +1023 for double.
- *
- * The 32-bit float format has 1 sign bit, 8 exponent bits, and 23
- * bits for the significand (which is logically 24 bits wide
- * because of the implicit bit). The 64-bit double format has 1
- * sign bit, 11 exponent bits, and 52 bits for the significand
- * (logically 53 bits).
- *
- * Subnormal numbers and zero have the special exponent value
- * E_min -1; the numerical value represented by a subnormal is:
- *
- * (-1)^sign * 2^(E_min)*(0.fractional_significand)
- *
- * Zero is represented by all zero bits in the exponent and all
- * zero bits in the significand; zero can have either sign.
- *
- * Infinity and NaN are encoded using the exponent value E_max +
- * 1. Signed infinities have all significand bits zero; NaNs have
- * at least one non-zero significand bit.
- *
- * The details of IEEE 754 floating-point encoding will be used in
- * the methods below without further comment. For further
- * exposition on IEEE 754 numbers, see "IEEE Standard for Binary
- * Floating-Point Arithmetic" ANSI/IEEE Std 754-1985 or William
- * Kahan's "Lecture Notes on the Status of IEEE Standard 754 for
- * Binary Floating-Point Arithmetic",
- * http://www.cs.berkeley.edu/~wkahan/ieee754status/ieee754.ps.
- *
- * Many of this class's methods are members of the set of IEEE 754
- * recommended functions or similar functions recommended or
- * required by IEEE 754R. Discussion of various implementation
- * techniques for these functions have occurred in:
- *
- * W.J. Cody and Jerome T. Coonen, "Algorithm 772 Functions to
- * Support the IEEE Standard for Binary Floating-Point
- * Arithmetic," ACM Transactions on Mathematical Software,
- * vol. 19, no. 4, December 1993, pp. 443-451.
- *
- * Joseph D. Darcy, "Writing robust IEEE recommended functions in
- * ``100% Pure Java''(TM)," University of California, Berkeley
- * technical report UCB//CSD-98-1009.
- */
-
- /**
- * Don't let anyone instantiate this class.
- */
- private FpUtils() {}
-
- // Helper Methods
-
- // The following helper methods are used in the implementation of
- // the public recommended functions; they generally omit certain
- // tests for exception cases.
-
- /**
- * Returns unbiased exponent of a {@code double}.
- * @deprecated Use Math.getExponent.
- */
- @Deprecated
- public static int getExponent(double d){
- return Math.getExponent(d);
- }
-
- /**
- * Returns unbiased exponent of a {@code float}.
- * @deprecated Use Math.getExponent.
- */
- @Deprecated
- public static int getExponent(float f){
- return Math.getExponent(f);
- }
-
-
- /**
- * Returns the first floating-point argument with the sign of the
- * second floating-point argument. Note that unlike the {@link
- * FpUtils#copySign(double, double) copySign} method, this method
- * does not require NaN {@code sign} arguments to be treated
- * as positive values; implementations are permitted to treat some
- * NaN arguments as positive and other NaN arguments as negative
- * to allow greater performance.
- *
- * @param magnitude the parameter providing the magnitude of the result
- * @param sign the parameter providing the sign of the result
- * @return a value with the magnitude of {@code magnitude}
- * and the sign of {@code sign}.
- * @author Joseph D. Darcy
- * @deprecated Use Math.copySign.
- */
- @Deprecated
- public static double rawCopySign(double magnitude, double sign) {
- return Math.copySign(magnitude, sign);
- }
-
- /**
- * Returns the first floating-point argument with the sign of the
- * second floating-point argument. Note that unlike the {@link
- * FpUtils#copySign(float, float) copySign} method, this method
- * does not require NaN {@code sign} arguments to be treated
- * as positive values; implementations are permitted to treat some
- * NaN arguments as positive and other NaN arguments as negative
- * to allow greater performance.
- *
- * @param magnitude the parameter providing the magnitude of the result
- * @param sign the parameter providing the sign of the result
- * @return a value with the magnitude of {@code magnitude}
- * and the sign of {@code sign}.
- * @author Joseph D. Darcy
- * @deprecated Use Math.copySign.
- */
- @Deprecated
- public static float rawCopySign(float magnitude, float sign) {
- return Math.copySign(magnitude, sign);
- }
-
- /* ***************************************************************** */
-
- /**
- * Returns {@code true} if the argument is a finite
- * floating-point value; returns {@code false} otherwise (for
- * NaN and infinity arguments).
- *
- * @param d the {@code double} value to be tested
- * @return {@code true} if the argument is a finite
- * floating-point value, {@code false} otherwise.
- * @deprecated Use Double.isFinite.
- */
- @Deprecated
- public static boolean isFinite(double d) {
- return Double.isFinite(d);
- }
-
- /**
- * Returns {@code true} if the argument is a finite
- * floating-point value; returns {@code false} otherwise (for
- * NaN and infinity arguments).
- *
- * @param f the {@code float} value to be tested
- * @return {@code true} if the argument is a finite
- * floating-point value, {@code false} otherwise.
- * @deprecated Use Float.isFinite.
- */
- @Deprecated
- public static boolean isFinite(float f) {
- return Float.isFinite(f);
- }
-
- /**
- * Returns {@code true} if the specified number is infinitely
- * large in magnitude, {@code false} otherwise.
- *
- * Note that this method is equivalent to the {@link
- * Double#isInfinite(double) Double.isInfinite} method; the
- * functionality is included in this class for convenience.
- *
- * @param d the value to be tested.
- * @return {@code true} if the value of the argument is positive
- * infinity or negative infinity; {@code false} otherwise.
- */
- public static boolean isInfinite(double d) {
- return Double.isInfinite(d);
- }
-
- /**
- * Returns {@code true} if the specified number is infinitely
- * large in magnitude, {@code false} otherwise.
- *
- *
Note that this method is equivalent to the {@link
- * Float#isInfinite(float) Float.isInfinite} method; the
- * functionality is included in this class for convenience.
- *
- * @param f the value to be tested.
- * @return {@code true} if the argument is positive infinity or
- * negative infinity; {@code false} otherwise.
- */
- public static boolean isInfinite(float f) {
- return Float.isInfinite(f);
- }
-
- /**
- * Returns {@code true} if the specified number is a
- * Not-a-Number (NaN) value, {@code false} otherwise.
- *
- *
Note that this method is equivalent to the {@link
- * Double#isNaN(double) Double.isNaN} method; the functionality is
- * included in this class for convenience.
- *
- * @param d the value to be tested.
- * @return {@code true} if the value of the argument is NaN;
- * {@code false} otherwise.
- */
- public static boolean isNaN(double d) {
- return Double.isNaN(d);
- }
-
- /**
- * Returns {@code true} if the specified number is a
- * Not-a-Number (NaN) value, {@code false} otherwise.
- *
- *
Note that this method is equivalent to the {@link
- * Float#isNaN(float) Float.isNaN} method; the functionality is
- * included in this class for convenience.
- *
- * @param f the value to be tested.
- * @return {@code true} if the argument is NaN;
- * {@code false} otherwise.
- */
- public static boolean isNaN(float f) {
- return Float.isNaN(f);
- }
-
- /**
- * Returns {@code true} if the unordered relation holds
- * between the two arguments. When two floating-point values are
- * unordered, one value is neither less than, equal to, nor
- * greater than the other. For the unordered relation to be true,
- * at least one argument must be a {@code NaN}.
- *
- * @param arg1 the first argument
- * @param arg2 the second argument
- * @return {@code true} if at least one argument is a NaN,
- * {@code false} otherwise.
- */
- public static boolean isUnordered(double arg1, double arg2) {
- return isNaN(arg1) || isNaN(arg2);
- }
-
- /**
- * Returns {@code true} if the unordered relation holds
- * between the two arguments. When two floating-point values are
- * unordered, one value is neither less than, equal to, nor
- * greater than the other. For the unordered relation to be true,
- * at least one argument must be a {@code NaN}.
- *
- * @param arg1 the first argument
- * @param arg2 the second argument
- * @return {@code true} if at least one argument is a NaN,
- * {@code false} otherwise.
- */
- public static boolean isUnordered(float arg1, float arg2) {
- return isNaN(arg1) || isNaN(arg2);
- }
-
- /**
- * Returns unbiased exponent of a {@code double}; for
- * subnormal values, the number is treated as if it were
- * normalized. That is for all finite, non-zero, positive numbers
- * x , scalb(x , -ilogb(x ))
is
- * always in the range [1, 2).
- *
- * Special cases:
- *
- * If the argument is NaN, then the result is 230 .
- * If the argument is infinite, then the result is 228 .
- * If the argument is zero, then the result is -(228 ).
- *
- *
- * @param d floating-point number whose exponent is to be extracted
- * @return unbiased exponent of the argument.
- * @author Joseph D. Darcy
- */
- public static int ilogb(double d) {
- int exponent = getExponent(d);
-
- switch (exponent) {
- case DoubleConsts.MAX_EXPONENT+1: // NaN or infinity
- if( isNaN(d) )
- return (1<<30); // 2^30
- else // infinite value
- return (1<<28); // 2^28
-
- case DoubleConsts.MIN_EXPONENT-1: // zero or subnormal
- if(d == 0.0) {
- return -(1<<28); // -(2^28)
- }
- else {
- long transducer = Double.doubleToRawLongBits(d);
-
- /*
- * To avoid causing slow arithmetic on subnormals,
- * the scaling to determine when d's significand
- * is normalized is done in integer arithmetic.
- * (there must be at least one "1" bit in the
- * significand since zero has been screened out.
- */
-
- // isolate significand bits
- transducer &= DoubleConsts.SIGNIF_BIT_MASK;
- assert(transducer != 0L);
-
- // This loop is simple and functional. We might be
- // able to do something more clever that was faster;
- // e.g. number of leading zero detection on
- // (transducer << (# exponent and sign bits).
- while (transducer <
- (1L << (DoubleConsts.SIGNIFICAND_WIDTH - 1))) {
- transducer *= 2;
- exponent--;
- }
- exponent++;
- assert( exponent >=
- DoubleConsts.MIN_EXPONENT - (DoubleConsts.SIGNIFICAND_WIDTH-1) &&
- exponent < DoubleConsts.MIN_EXPONENT);
- return exponent;
- }
-
- default:
- assert( exponent >= DoubleConsts.MIN_EXPONENT &&
- exponent <= DoubleConsts.MAX_EXPONENT);
- return exponent;
- }
- }
-
- /**
- * Returns unbiased exponent of a {@code float}; for
- * subnormal values, the number is treated as if it were
- * normalized. That is for all finite, non-zero, positive numbers
- * x , scalb(x , -ilogb(x ))
is
- * always in the range [1, 2).
- *
- * Special cases:
- *
- * If the argument is NaN, then the result is 230 .
- * If the argument is infinite, then the result is 228 .
- * If the argument is zero, then the result is -(228 ).
- *
- *
- * @param f floating-point number whose exponent is to be extracted
- * @return unbiased exponent of the argument.
- * @author Joseph D. Darcy
- */
- public static int ilogb(float f) {
- int exponent = getExponent(f);
-
- switch (exponent) {
- case FloatConsts.MAX_EXPONENT+1: // NaN or infinity
- if( isNaN(f) )
- return (1<<30); // 2^30
- else // infinite value
- return (1<<28); // 2^28
-
- case FloatConsts.MIN_EXPONENT-1: // zero or subnormal
- if(f == 0.0f) {
- return -(1<<28); // -(2^28)
- }
- else {
- int transducer = Float.floatToRawIntBits(f);
-
- /*
- * To avoid causing slow arithmetic on subnormals,
- * the scaling to determine when f's significand
- * is normalized is done in integer arithmetic.
- * (there must be at least one "1" bit in the
- * significand since zero has been screened out.
- */
-
- // isolate significand bits
- transducer &= FloatConsts.SIGNIF_BIT_MASK;
- assert(transducer != 0);
-
- // This loop is simple and functional. We might be
- // able to do something more clever that was faster;
- // e.g. number of leading zero detection on
- // (transducer << (# exponent and sign bits).
- while (transducer <
- (1 << (FloatConsts.SIGNIFICAND_WIDTH - 1))) {
- transducer *= 2;
- exponent--;
- }
- exponent++;
- assert( exponent >=
- FloatConsts.MIN_EXPONENT - (FloatConsts.SIGNIFICAND_WIDTH-1) &&
- exponent < FloatConsts.MIN_EXPONENT);
- return exponent;
- }
-
- default:
- assert( exponent >= FloatConsts.MIN_EXPONENT &&
- exponent <= FloatConsts.MAX_EXPONENT);
- return exponent;
- }
- }
-
-
- /*
- * The scalb operation should be reasonably fast; however, there
- * are tradeoffs in writing a method to minimize the worst case
- * performance and writing a method to minimize the time for
- * expected common inputs. Some processors operate very slowly on
- * subnormal operands, taking hundreds or thousands of cycles for
- * one floating-point add or multiply as opposed to, say, four
- * cycles for normal operands. For processors with very slow
- * subnormal execution, scalb would be fastest if written entirely
- * with integer operations; in other words, scalb would need to
- * include the logic of performing correct rounding of subnormal
- * values. This could be reasonably done in at most a few hundred
- * cycles. However, this approach may penalize normal operations
- * since at least the exponent of the floating-point argument must
- * be examined.
- *
- * The approach taken in this implementation is a compromise.
- * Floating-point multiplication is used to do most of the work;
- * but knowingly multiplying by a subnormal scaling factor is
- * avoided. However, the floating-point argument is not examined
- * to see whether or not it is subnormal since subnormal inputs
- * are assumed to be rare. At most three multiplies are needed to
- * scale from the largest to smallest exponent ranges (scaling
- * down, at most two multiplies are needed if subnormal scaling
- * factors are allowed). However, in this implementation an
- * expensive integer remainder operation is avoided at the cost of
- * requiring five floating-point multiplies in the worst case,
- * which should still be a performance win.
- *
- * If scaling of entire arrays is a concern, it would probably be
- * more efficient to provide a double[] scalb(double[], int)
- * version of scalb to avoid having to recompute the needed
- * scaling factors for each floating-point value.
- */
-
- /**
- * Return {@code d} ×
- * 2{@code scale_factor} rounded as if performed
- * by a single correctly rounded floating-point multiply to a
- * member of the double value set. See section 4.2.3 of
- * The Java™ Language Specification
- * for a discussion of floating-point
- * value sets. If the exponent of the result is between the
- * {@code double}'s minimum exponent and maximum exponent,
- * the answer is calculated exactly. If the exponent of the
- * result would be larger than {@code doubles}'s maximum
- * exponent, an infinity is returned. Note that if the result is
- * subnormal, precision may be lost; that is, when {@code scalb(x,
- * n)} is subnormal, {@code scalb(scalb(x, n), -n)} may
- * not equal x . When the result is non-NaN, the result has
- * the same sign as {@code d}.
- *
- *
- * Special cases:
- *
- * If the first argument is NaN, NaN is returned.
- * If the first argument is infinite, then an infinity of the
- * same sign is returned.
- * If the first argument is zero, then a zero of the same
- * sign is returned.
- *
- *
- * @param d number to be scaled by a power of two.
- * @param scale_factor power of 2 used to scale {@code d}
- * @return {@code d * }2{@code scale_factor}
- * @author Joseph D. Darcy
- * @deprecated Use Math.scalb.
- */
- @Deprecated
- public static double scalb(double d, int scale_factor) {
- return Math.scalb(d, scale_factor);
- }
-
- /**
- * Return {@code f} ×
- * 2{@code scale_factor} rounded as if performed
- * by a single correctly rounded floating-point multiply to a
- * member of the float value set. See section 4.2.3 of
- * The Java™ Language Specification
- * for a discussion of floating-point
- * value sets. If the exponent of the result is between the
- * {@code float}'s minimum exponent and maximum exponent, the
- * answer is calculated exactly. If the exponent of the result
- * would be larger than {@code float}'s maximum exponent, an
- * infinity is returned. Note that if the result is subnormal,
- * precision may be lost; that is, when {@code scalb(x, n)}
- * is subnormal, {@code scalb(scalb(x, n), -n)} may not equal
- * x . When the result is non-NaN, the result has the same
- * sign as {@code f}.
- *
- *
- * Special cases:
- *
- * If the first argument is NaN, NaN is returned.
- * If the first argument is infinite, then an infinity of the
- * same sign is returned.
- * If the first argument is zero, then a zero of the same
- * sign is returned.
- *
- *
- * @param f number to be scaled by a power of two.
- * @param scale_factor power of 2 used to scale {@code f}
- * @return {@code f * }2{@code scale_factor}
- * @author Joseph D. Darcy
- * @deprecated Use Math.scalb.
- */
- @Deprecated
- public static float scalb(float f, int scale_factor) {
- return Math.scalb(f, scale_factor);
- }
-
- /**
- * Returns the floating-point number adjacent to the first
- * argument in the direction of the second argument. If both
- * arguments compare as equal the second argument is returned.
- *
- *
- * Special cases:
- *
- * If either argument is a NaN, then NaN is returned.
- *
- * If both arguments are signed zeros, {@code direction}
- * is returned unchanged (as implied by the requirement of
- * returning the second argument if the arguments compare as
- * equal).
- *
- * If {@code start} is
- * ±{@code Double.MIN_VALUE} and {@code direction}
- * has a value such that the result should have a smaller
- * magnitude, then a zero with the same sign as {@code start}
- * is returned.
- *
- * If {@code start} is infinite and
- * {@code direction} has a value such that the result should
- * have a smaller magnitude, {@code Double.MAX_VALUE} with the
- * same sign as {@code start} is returned.
- *
- * If {@code start} is equal to ±
- * {@code Double.MAX_VALUE} and {@code direction} has a
- * value such that the result should have a larger magnitude, an
- * infinity with same sign as {@code start} is returned.
- *
- *
- * @param start starting floating-point value
- * @param direction value indicating which of
- * {@code start}'s neighbors or {@code start} should
- * be returned
- * @return The floating-point number adjacent to {@code start} in the
- * direction of {@code direction}.
- * @author Joseph D. Darcy
- * @deprecated Use Math.nextAfter
- */
- @Deprecated
- public static double nextAfter(double start, double direction) {
- return Math.nextAfter(start, direction);
- }
-
- /**
- * Returns the floating-point number adjacent to the first
- * argument in the direction of the second argument. If both
- * arguments compare as equal, the second argument is returned.
- *
- *
- * Special cases:
- *
- * If either argument is a NaN, then NaN is returned.
- *
- * If both arguments are signed zeros, a {@code float}
- * zero with the same sign as {@code direction} is returned
- * (as implied by the requirement of returning the second argument
- * if the arguments compare as equal).
- *
- * If {@code start} is
- * ±{@code Float.MIN_VALUE} and {@code direction}
- * has a value such that the result should have a smaller
- * magnitude, then a zero with the same sign as {@code start}
- * is returned.
- *
- * If {@code start} is infinite and
- * {@code direction} has a value such that the result should
- * have a smaller magnitude, {@code Float.MAX_VALUE} with the
- * same sign as {@code start} is returned.
- *
- * If {@code start} is equal to ±
- * {@code Float.MAX_VALUE} and {@code direction} has a
- * value such that the result should have a larger magnitude, an
- * infinity with same sign as {@code start} is returned.
- *
- *
- * @param start starting floating-point value
- * @param direction value indicating which of
- * {@code start}'s neighbors or {@code start} should
- * be returned
- * @return The floating-point number adjacent to {@code start} in the
- * direction of {@code direction}.
- * @author Joseph D. Darcy
- * @deprecated Use Math.nextAfter.
- */
- @Deprecated
- public static float nextAfter(float start, double direction) {
- return Math.nextAfter(start, direction);
- }
-
- /**
- * Returns the floating-point value adjacent to {@code d} in
- * the direction of positive infinity. This method is
- * semantically equivalent to {@code nextAfter(d,
- * Double.POSITIVE_INFINITY)}; however, a {@code nextUp}
- * implementation may run faster than its equivalent
- * {@code nextAfter} call.
- *
- * Special Cases:
- *
- * If the argument is NaN, the result is NaN.
- *
- * If the argument is positive infinity, the result is
- * positive infinity.
- *
- * If the argument is zero, the result is
- * {@code Double.MIN_VALUE}
- *
- *
- *
- * @param d starting floating-point value
- * @return The adjacent floating-point value closer to positive
- * infinity.
- * @author Joseph D. Darcy
- * @deprecated use Math.nextUp.
- */
- @Deprecated
- public static double nextUp(double d) {
- return Math.nextUp(d);
- }
-
- /**
- * Returns the floating-point value adjacent to {@code f} in
- * the direction of positive infinity. This method is
- * semantically equivalent to {@code nextAfter(f,
- * Double.POSITIVE_INFINITY)}; however, a {@code nextUp}
- * implementation may run faster than its equivalent
- * {@code nextAfter} call.
- *
- * Special Cases:
- *
- * If the argument is NaN, the result is NaN.
- *
- * If the argument is positive infinity, the result is
- * positive infinity.
- *
- * If the argument is zero, the result is
- * {@code Float.MIN_VALUE}
- *
- *
- *
- * @param f starting floating-point value
- * @return The adjacent floating-point value closer to positive
- * infinity.
- * @author Joseph D. Darcy
- * @deprecated Use Math.nextUp.
- */
- @Deprecated
- public static float nextUp(float f) {
- return Math.nextUp(f);
- }
-
- /**
- * Returns the floating-point value adjacent to {@code d} in
- * the direction of negative infinity. This method is
- * semantically equivalent to {@code nextAfter(d,
- * Double.NEGATIVE_INFINITY)}; however, a
- * {@code nextDown} implementation may run faster than its
- * equivalent {@code nextAfter} call.
- *
- * Special Cases:
- *
- * If the argument is NaN, the result is NaN.
- *
- * If the argument is negative infinity, the result is
- * negative infinity.
- *
- * If the argument is zero, the result is
- * {@code -Double.MIN_VALUE}
- *
- *
- *
- * @param d starting floating-point value
- * @return The adjacent floating-point value closer to negative
- * infinity.
- * @author Joseph D. Darcy
- * @deprecated Use Math.nextDown.
- */
- @Deprecated
- public static double nextDown(double d) {
- return Math.nextDown(d);
- }
-
- /**
- * Returns the floating-point value adjacent to {@code f} in
- * the direction of negative infinity. This method is
- * semantically equivalent to {@code nextAfter(f,
- * Float.NEGATIVE_INFINITY)}; however, a
- * {@code nextDown} implementation may run faster than its
- * equivalent {@code nextAfter} call.
- *
- * Special Cases:
- *
- * If the argument is NaN, the result is NaN.
- *
- * If the argument is negative infinity, the result is
- * negative infinity.
- *
- * If the argument is zero, the result is
- * {@code -Float.MIN_VALUE}
- *
- *
- *
- * @param f starting floating-point value
- * @return The adjacent floating-point value closer to negative
- * infinity.
- * @author Joseph D. Darcy
- * @deprecated Use Math.nextDown.
- */
- @Deprecated
- public static double nextDown(float f) {
- return Math.nextDown(f);
- }
-
- /**
- * Returns the first floating-point argument with the sign of the
- * second floating-point argument. For this method, a NaN
- * {@code sign} argument is always treated as if it were
- * positive.
- *
- * @param magnitude the parameter providing the magnitude of the result
- * @param sign the parameter providing the sign of the result
- * @return a value with the magnitude of {@code magnitude}
- * and the sign of {@code sign}.
- * @author Joseph D. Darcy
- * @since 1.5
- * @deprecated Use StrictMath.copySign.
- */
- @Deprecated
- public static double copySign(double magnitude, double sign) {
- return StrictMath.copySign(magnitude, sign);
- }
-
- /**
- * Returns the first floating-point argument with the sign of the
- * second floating-point argument. For this method, a NaN
- * {@code sign} argument is always treated as if it were
- * positive.
- *
- * @param magnitude the parameter providing the magnitude of the result
- * @param sign the parameter providing the sign of the result
- * @return a value with the magnitude of {@code magnitude}
- * and the sign of {@code sign}.
- * @author Joseph D. Darcy
- * @deprecated Use StrictMath.copySign.
- */
- @Deprecated
- public static float copySign(float magnitude, float sign) {
- return StrictMath.copySign(magnitude, sign);
- }
-
- /**
- * Returns the size of an ulp of the argument. An ulp of a
- * {@code double} value is the positive distance between this
- * floating-point value and the {@code double} value next
- * larger in magnitude. Note that for non-NaN x ,
- * ulp(-x ) == ulp(x )
.
- *
- * Special Cases:
- *
- * If the argument is NaN, then the result is NaN.
- * If the argument is positive or negative infinity, then the
- * result is positive infinity.
- * If the argument is positive or negative zero, then the result is
- * {@code Double.MIN_VALUE}.
- * If the argument is ±{@code Double.MAX_VALUE}, then
- * the result is equal to 2971 .
- *
- *
- * @param d the floating-point value whose ulp is to be returned
- * @return the size of an ulp of the argument
- * @author Joseph D. Darcy
- * @since 1.5
- * @deprecated Use Math.ulp.
- */
- @Deprecated
- public static double ulp(double d) {
- return Math.ulp(d);
- }
-
- /**
- * Returns the size of an ulp of the argument. An ulp of a
- * {@code float} value is the positive distance between this
- * floating-point value and the {@code float} value next
- * larger in magnitude. Note that for non-NaN x ,
- * ulp(-x ) == ulp(x )
.
- *
- * Special Cases:
- *
- * If the argument is NaN, then the result is NaN.
- * If the argument is positive or negative infinity, then the
- * result is positive infinity.
- * If the argument is positive or negative zero, then the result is
- * {@code Float.MIN_VALUE}.
- * If the argument is ±{@code Float.MAX_VALUE}, then
- * the result is equal to 2104 .
- *
- *
- * @param f the floating-point value whose ulp is to be returned
- * @return the size of an ulp of the argument
- * @author Joseph D. Darcy
- * @since 1.5
- * @deprecated Use Math.ulp.
- */
- @Deprecated
- public static float ulp(float f) {
- return Math.ulp(f);
- }
-
- /**
- * Returns the signum function of the argument; zero if the argument
- * is zero, 1.0 if the argument is greater than zero, -1.0 if the
- * argument is less than zero.
- *
- * Special Cases:
- *
- * If the argument is NaN, then the result is NaN.
- * If the argument is positive zero or negative zero, then the
- * result is the same as the argument.
- *
- *
- * @param d the floating-point value whose signum is to be returned
- * @return the signum function of the argument
- * @author Joseph D. Darcy
- * @since 1.5
- * @deprecated Use Math.signum.
- */
- @Deprecated
- public static double signum(double d) {
- return Math.signum(d);
- }
-
- /**
- * Returns the signum function of the argument; zero if the argument
- * is zero, 1.0f if the argument is greater than zero, -1.0f if the
- * argument is less than zero.
- *
- * Special Cases:
- *
- * If the argument is NaN, then the result is NaN.
- * If the argument is positive zero or negative zero, then the
- * result is the same as the argument.
- *
- *
- * @param f the floating-point value whose signum is to be returned
- * @return the signum function of the argument
- * @author Joseph D. Darcy
- * @since 1.5
- * @deprecated Use Math.signum.
- */
- @Deprecated
- public static float signum(float f) {
- return Math.signum(f);
- }
-}
diff --git a/jdk/test/java/lang/Math/HypotTests.java b/jdk/test/java/lang/Math/HypotTests.java
index d48a6f938a0..9582c83daf8 100644
--- a/jdk/test/java/lang/Math/HypotTests.java
+++ b/jdk/test/java/lang/Math/HypotTests.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -29,7 +29,6 @@
*/
import sun.misc.DoubleConsts;
-import sun.misc.FpUtils;
public class HypotTests {
private HypotTests(){}
@@ -127,7 +126,7 @@ public class HypotTests {
double d = rand.nextDouble();
// Scale d to have an exponent equal to MAX_EXPONENT -15
d = Math.scalb(d, DoubleConsts.MAX_EXPONENT
- -15 - FpUtils.ilogb(d));
+ -15 - Tests.ilogb(d));
for(int j = 0; j <= 13; j += 1) {
failures += testHypotCase(3*d, 4*d, 5*d, 2.5);
d *= 2.0; // increase exponent by 1
diff --git a/jdk/test/java/lang/Math/IeeeRecommendedTests.java b/jdk/test/java/lang/Math/IeeeRecommendedTests.java
index f776bbf5b1c..ce4c6595b4b 100644
--- a/jdk/test/java/lang/Math/IeeeRecommendedTests.java
+++ b/jdk/test/java/lang/Math/IeeeRecommendedTests.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -28,7 +28,6 @@
* @author Joseph D. Darcy
*/
-import sun.misc.FpUtils;
import sun.misc.DoubleConsts;
import sun.misc.FloatConsts;
@@ -708,21 +707,21 @@ public class IeeeRecommendedTests {
for(int i = 0; i < testCases.length; i++) {
// isNaN
- failures+=Tests.test("FpUtils.isNaN(float)", testCases[i],
- FpUtils.isNaN(testCases[i]), (i ==0));
+ failures+=Tests.test("Float.isNaN(float)", testCases[i],
+ Float.isNaN(testCases[i]), (i ==0));
// isFinite
failures+=Tests.test("Float.isFinite(float)", testCases[i],
Float.isFinite(testCases[i]), (i >= 3));
// isInfinite
- failures+=Tests.test("FpUtils.isInfinite(float)", testCases[i],
- FpUtils.isInfinite(testCases[i]), (i==1 || i==2));
+ failures+=Tests.test("Float.isInfinite(float)", testCases[i],
+ Float.isInfinite(testCases[i]), (i==1 || i==2));
// isUnorderd
for(int j = 0; j < testCases.length; j++) {
- failures+=Tests.test("FpUtils.isUnordered(float, float)", testCases[i],testCases[j],
- FpUtils.isUnordered(testCases[i],testCases[j]), (i==0 || j==0));
+ failures+=Tests.test("Tests.isUnordered(float, float)", testCases[i],testCases[j],
+ Tests.isUnordered(testCases[i],testCases[j]), (i==0 || j==0));
}
}
@@ -758,21 +757,21 @@ public class IeeeRecommendedTests {
for(int i = 0; i < testCases.length; i++) {
// isNaN
- failures+=Tests.test("FpUtils.isNaN(double)", testCases[i],
- FpUtils.isNaN(testCases[i]), (i ==0));
+ failures+=Tests.test("Double.isNaN(double)", testCases[i],
+ Double.isNaN(testCases[i]), (i ==0));
// isFinite
failures+=Tests.test("Double.isFinite(double)", testCases[i],
Double.isFinite(testCases[i]), (i >= 3));
// isInfinite
- failures+=Tests.test("FpUtils.isInfinite(double)", testCases[i],
- FpUtils.isInfinite(testCases[i]), (i==1 || i==2));
+ failures+=Tests.test("Double.isInfinite(double)", testCases[i],
+ Double.isInfinite(testCases[i]), (i==1 || i==2));
// isUnorderd
for(int j = 0; j < testCases.length; j++) {
- failures+=Tests.test("FpUtils.isUnordered(double, double)", testCases[i],testCases[j],
- FpUtils.isUnordered(testCases[i],testCases[j]), (i==0 || j==0));
+ failures+=Tests.test("Tests.isUnordered(double, double)", testCases[i],testCases[j],
+ Tests.isUnordered(testCases[i],testCases[j]), (i==0 || j==0));
}
}
@@ -1023,8 +1022,8 @@ public class IeeeRecommendedTests {
2*FloatConsts.MIN_EXPONENT, // -252
2*FloatConsts.MIN_EXPONENT+1, // -251
- FpUtils.ilogb(Float.MIN_VALUE)-1, // -150
- FpUtils.ilogb(Float.MIN_VALUE), // -149
+ FloatConsts.MIN_EXPONENT - FloatConsts.SIGNIFICAND_WIDTH,
+ FloatConsts.MIN_SUB_EXPONENT,
-FloatConsts.MAX_EXPONENT, // -127
FloatConsts.MIN_EXPONENT, // -126
@@ -1100,7 +1099,7 @@ public class IeeeRecommendedTests {
failures+=testScalbCase(value,
scaleFactor,
- (FpUtils.ilogb(value) +j > FloatConsts.MAX_EXPONENT ) ?
+ (Tests.ilogb(value) +j > FloatConsts.MAX_EXPONENT ) ?
Math.copySign(infinityF, value) : // overflow
// calculate right answer
twoToTheMaxExp*(twoToTheMaxExp*(scale*value)) );
@@ -1230,8 +1229,9 @@ public class IeeeRecommendedTests {
2*DoubleConsts.MIN_EXPONENT, // -2044
2*DoubleConsts.MIN_EXPONENT+1, // -2043
- FpUtils.ilogb(Double.MIN_VALUE)-1, // -1076
- FpUtils.ilogb(Double.MIN_VALUE), // -1075
+ DoubleConsts.MIN_EXPONENT, // -1022
+ DoubleConsts.MIN_EXPONENT - DoubleConsts.SIGNIFICAND_WIDTH,
+ DoubleConsts.MIN_SUB_EXPONENT,
-DoubleConsts.MAX_EXPONENT, // -1023
DoubleConsts.MIN_EXPONENT, // -1022
@@ -1307,7 +1307,7 @@ public class IeeeRecommendedTests {
failures+=testScalbCase(value,
scaleFactor,
- (FpUtils.ilogb(value) +j > DoubleConsts.MAX_EXPONENT ) ?
+ (Tests.ilogb(value) +j > DoubleConsts.MAX_EXPONENT ) ?
Math.copySign(infinityD, value) : // overflow
// calculate right answer
twoToTheMaxExp*(twoToTheMaxExp*(scale*value)) );
diff --git a/jdk/test/java/lang/Math/Log1pTests.java b/jdk/test/java/lang/Math/Log1pTests.java
index 56a80047aa9..5fe373edc78 100644
--- a/jdk/test/java/lang/Math/Log1pTests.java
+++ b/jdk/test/java/lang/Math/Log1pTests.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -29,7 +29,6 @@
*/
import sun.misc.DoubleConsts;
-import sun.misc.FpUtils;
public class Log1pTests {
private Log1pTests(){}
@@ -105,7 +104,7 @@ public class Log1pTests {
for(int i = 0; i < 1000; i++) {
double d = rand.nextDouble();
- d = Math.scalb(d, -53 - FpUtils.ilogb(d));
+ d = Math.scalb(d, -53 - Tests.ilogb(d));
for(int j = -53; j <= 52; j++) {
failures += testLog1pCaseWithUlpDiff(d, hp15cLogp(d), 5);
diff --git a/jdk/test/java/lang/Math/Tests.java b/jdk/test/java/lang/Math/Tests.java
index 7dd6d68075f..c06c4ed79e3 100644
--- a/jdk/test/java/lang/Math/Tests.java
+++ b/jdk/test/java/lang/Math/Tests.java
@@ -30,7 +30,8 @@
* and finally the expected result.
*/
-import sun.misc.FpUtils;
+import sun.misc.FloatConsts;
+import sun.misc.DoubleConsts;
public class Tests {
private Tests(){}; // do not instantiate
@@ -59,6 +60,176 @@ public class Tests {
return -Math.nextUp(-d);
}
+ /**
+ * Returns unbiased exponent of a {@code float}; for
+ * subnormal values, the number is treated as if it were
+ * normalized. That is for all finite, non-zero, positive numbers
+ * x , scalb(x , -ilogb(x ))
is
+ * always in the range [1, 2).
+ *
+ * Special cases:
+ *
+ * If the argument is NaN, then the result is 230 .
+ * If the argument is infinite, then the result is 228 .
+ * If the argument is zero, then the result is -(228 ).
+ *
+ *
+ * @param f floating-point number whose exponent is to be extracted
+ * @return unbiased exponent of the argument.
+ */
+ public static int ilogb(double d) {
+ int exponent = Math.getExponent(d);
+
+ switch (exponent) {
+ case DoubleConsts.MAX_EXPONENT+1: // NaN or infinity
+ if( Double.isNaN(d) )
+ return (1<<30); // 2^30
+ else // infinite value
+ return (1<<28); // 2^28
+
+ case DoubleConsts.MIN_EXPONENT-1: // zero or subnormal
+ if(d == 0.0) {
+ return -(1<<28); // -(2^28)
+ }
+ else {
+ long transducer = Double.doubleToRawLongBits(d);
+
+ /*
+ * To avoid causing slow arithmetic on subnormals,
+ * the scaling to determine when d's significand
+ * is normalized is done in integer arithmetic.
+ * (there must be at least one "1" bit in the
+ * significand since zero has been screened out.
+ */
+
+ // isolate significand bits
+ transducer &= DoubleConsts.SIGNIF_BIT_MASK;
+ assert(transducer != 0L);
+
+ // This loop is simple and functional. We might be
+ // able to do something more clever that was faster;
+ // e.g. number of leading zero detection on
+ // (transducer << (# exponent and sign bits).
+ while (transducer <
+ (1L << (DoubleConsts.SIGNIFICAND_WIDTH - 1))) {
+ transducer *= 2;
+ exponent--;
+ }
+ exponent++;
+ assert( exponent >=
+ DoubleConsts.MIN_EXPONENT - (DoubleConsts.SIGNIFICAND_WIDTH-1) &&
+ exponent < DoubleConsts.MIN_EXPONENT);
+ return exponent;
+ }
+
+ default:
+ assert( exponent >= DoubleConsts.MIN_EXPONENT &&
+ exponent <= DoubleConsts.MAX_EXPONENT);
+ return exponent;
+ }
+ }
+
+ /**
+ * Returns unbiased exponent of a {@code float}; for
+ * subnormal values, the number is treated as if it were
+ * normalized. That is for all finite, non-zero, positive numbers
+ * x , scalb(x , -ilogb(x ))
is
+ * always in the range [1, 2).
+ *
+ * Special cases:
+ *
+ * If the argument is NaN, then the result is 230 .
+ * If the argument is infinite, then the result is 228 .
+ * If the argument is zero, then the result is -(228 ).
+ *
+ *
+ * @param f floating-point number whose exponent is to be extracted
+ * @return unbiased exponent of the argument.
+ */
+ public static int ilogb(float f) {
+ int exponent = Math.getExponent(f);
+
+ switch (exponent) {
+ case FloatConsts.MAX_EXPONENT+1: // NaN or infinity
+ if( Float.isNaN(f) )
+ return (1<<30); // 2^30
+ else // infinite value
+ return (1<<28); // 2^28
+
+ case FloatConsts.MIN_EXPONENT-1: // zero or subnormal
+ if(f == 0.0f) {
+ return -(1<<28); // -(2^28)
+ }
+ else {
+ int transducer = Float.floatToRawIntBits(f);
+
+ /*
+ * To avoid causing slow arithmetic on subnormals,
+ * the scaling to determine when f's significand
+ * is normalized is done in integer arithmetic.
+ * (there must be at least one "1" bit in the
+ * significand since zero has been screened out.
+ */
+
+ // isolate significand bits
+ transducer &= FloatConsts.SIGNIF_BIT_MASK;
+ assert(transducer != 0);
+
+ // This loop is simple and functional. We might be
+ // able to do something more clever that was faster;
+ // e.g. number of leading zero detection on
+ // (transducer << (# exponent and sign bits).
+ while (transducer <
+ (1 << (FloatConsts.SIGNIFICAND_WIDTH - 1))) {
+ transducer *= 2;
+ exponent--;
+ }
+ exponent++;
+ assert( exponent >=
+ FloatConsts.MIN_EXPONENT - (FloatConsts.SIGNIFICAND_WIDTH-1) &&
+ exponent < FloatConsts.MIN_EXPONENT);
+ return exponent;
+ }
+
+ default:
+ assert( exponent >= FloatConsts.MIN_EXPONENT &&
+ exponent <= FloatConsts.MAX_EXPONENT);
+ return exponent;
+ }
+ }
+
+ /**
+ * Returns {@code true} if the unordered relation holds
+ * between the two arguments. When two floating-point values are
+ * unordered, one value is neither less than, equal to, nor
+ * greater than the other. For the unordered relation to be true,
+ * at least one argument must be a {@code NaN}.
+ *
+ * @param arg1 the first argument
+ * @param arg2 the second argument
+ * @return {@code true} if at least one argument is a NaN,
+ * {@code false} otherwise.
+ */
+ public static boolean isUnordered(float arg1, float arg2) {
+ return Float.isNaN(arg1) || Float.isNaN(arg2);
+ }
+
+ /**
+ * Returns {@code true} if the unordered relation holds
+ * between the two arguments. When two floating-point values are
+ * unordered, one value is neither less than, equal to, nor
+ * greater than the other. For the unordered relation to be true,
+ * at least one argument must be a {@code NaN}.
+ *
+ * @param arg1 the first argument
+ * @param arg2 the second argument
+ * @return {@code true} if at least one argument is a NaN,
+ * {@code false} otherwise.
+ */
+ public static boolean isUnordered(double arg1, double arg2) {
+ return Double.isNaN(arg1) || Double.isNaN(arg2);
+ }
+
public static int test(String testName, float input,
boolean result, boolean expected) {
if (expected != result) {
@@ -237,7 +408,7 @@ public class Tests {
return 1;
} else {
double difference = expected - result;
- if (FpUtils.isUnordered(expected, result) ||
+ if (isUnordered(expected, result) ||
Double.isNaN(difference) ||
// fail if greater than or unordered
!(Math.abs( difference/Math.ulp(expected) ) <= Math.abs(ulps)) ) {
@@ -332,7 +503,7 @@ public class Tests {
double result, double expected, double tolerance) {
if (Double.compare(expected, result ) != 0) {
double difference = expected - result;
- if (FpUtils.isUnordered(expected, result) ||
+ if (isUnordered(expected, result) ||
Double.isNaN(difference) ||
// fail if greater than or unordered
!(Math.abs((difference)/expected) <= StrictMath.pow(10, -tolerance)) ) {
From b0082203739bdb64715ac624242e0779c7f1c07a Mon Sep 17 00:00:00 2001
From: Joe Darcy
Date: Mon, 3 Feb 2014 10:05:56 -0800
Subject: [PATCH 142/181] 8033181: Fix doclint missing issues in
java.awt.{peer, im[.spi]}
Reviewed-by: alanb
---
jdk/src/share/classes/java/awt/im/InputContext.java | 3 ++-
.../classes/java/awt/im/InputMethodHighlight.java | 5 ++++-
.../classes/java/awt/im/spi/InputMethodContext.java | 10 +++++++++-
.../classes/java/awt/im/spi/InputMethodDescriptor.java | 7 ++++++-
jdk/src/share/classes/java/awt/peer/CanvasPeer.java | 4 +++-
jdk/src/share/classes/java/awt/peer/ComponentPeer.java | 6 ++++--
jdk/src/share/classes/java/awt/peer/MouseInfoPeer.java | 9 ++++++++-
jdk/src/share/classes/java/awt/peer/WindowPeer.java | 7 ++++---
8 files changed, 40 insertions(+), 11 deletions(-)
diff --git a/jdk/src/share/classes/java/awt/im/InputContext.java b/jdk/src/share/classes/java/awt/im/InputContext.java
index 615029120dd..9d6122d2781 100644
--- a/jdk/src/share/classes/java/awt/im/InputContext.java
+++ b/jdk/src/share/classes/java/awt/im/InputContext.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -87,6 +87,7 @@ public class InputContext {
/**
* Returns a new InputContext instance.
+ * @return a new InputContext instance
*/
public static InputContext getInstance() {
return new sun.awt.im.InputMethodContext();
diff --git a/jdk/src/share/classes/java/awt/im/InputMethodHighlight.java b/jdk/src/share/classes/java/awt/im/InputMethodHighlight.java
index 55905d97708..df09076410d 100644
--- a/jdk/src/share/classes/java/awt/im/InputMethodHighlight.java
+++ b/jdk/src/share/classes/java/awt/im/InputMethodHighlight.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -157,6 +157,7 @@ public class InputMethodHighlight {
/**
* Returns whether the text range is selected.
+ * @return whether the text range is selected
*/
public boolean isSelected() {
return selected;
@@ -174,6 +175,7 @@ public class InputMethodHighlight {
/**
* Returns the variation of the text range.
+ * @return the variation of the text range
*/
public int getVariation() {
return variation;
@@ -181,6 +183,7 @@ public class InputMethodHighlight {
/**
* Returns the rendering style attributes for the text range, or null.
+ * @return the rendering style attributes for the text range, or null
* @since 1.3
*/
public Map getStyle() {
diff --git a/jdk/src/share/classes/java/awt/im/spi/InputMethodContext.java b/jdk/src/share/classes/java/awt/im/spi/InputMethodContext.java
index 8e06c39299b..45517c37b23 100644
--- a/jdk/src/share/classes/java/awt/im/spi/InputMethodContext.java
+++ b/jdk/src/share/classes/java/awt/im/spi/InputMethodContext.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2003, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -52,6 +52,14 @@ public interface InputMethodContext extends InputMethodRequests {
* Creates an input method event from the arguments given
* and dispatches it to the client component. For arguments,
* see {@link java.awt.event.InputMethodEvent#InputMethodEvent}.
+ * @param id the event type
+ * @param text the combined committed and composed text
+ * @param committedCharacterCount the number of committed characters in the text
+ * @param caret the caret (a.k.a. insertion point); null if
+ * there's no caret within current composed text
+ * @param visiblePosition the position that's most important to be
+ * visible; null if there's no recommendation for a visible
+ * position within current composed text
*/
public void dispatchInputMethodEvent(int id,
AttributedCharacterIterator text, int committedCharacterCount,
diff --git a/jdk/src/share/classes/java/awt/im/spi/InputMethodDescriptor.java b/jdk/src/share/classes/java/awt/im/spi/InputMethodDescriptor.java
index d462095bb8f..885e7ad4e09 100644
--- a/jdk/src/share/classes/java/awt/im/spi/InputMethodDescriptor.java
+++ b/jdk/src/share/classes/java/awt/im/spi/InputMethodDescriptor.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 1999, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -72,6 +72,8 @@ public interface InputMethodDescriptor {
* Returns whether the list of available locales can change
* at runtime. This may be the case, for example, for adapters
* that access real input methods over the network.
+ * @return whether the list of available locales can change at
+ * runtime
*/
boolean hasDynamicLocaleList();
@@ -92,6 +94,9 @@ public interface InputMethodDescriptor {
*
* @param inputLocale the locale for which text input is supported, or null
* @param displayLanguage the language in which the name will be displayed
+ * @return the user-visible name of the corresponding input method
+ * for the given input locale in the language in which the name
+ * will be displayed
*/
String getInputMethodDisplayName(Locale inputLocale, Locale displayLanguage);
diff --git a/jdk/src/share/classes/java/awt/peer/CanvasPeer.java b/jdk/src/share/classes/java/awt/peer/CanvasPeer.java
index ba17df0252c..da1c4c0fe5a 100644
--- a/jdk/src/share/classes/java/awt/peer/CanvasPeer.java
+++ b/jdk/src/share/classes/java/awt/peer/CanvasPeer.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1995, 2007, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -42,6 +42,8 @@ public interface CanvasPeer extends ComponentPeer {
* from the requested GC passed as the argument to this method. This method
* must return a non-null value (given the argument is non-null as well).
*
+ * @param gc the requested graphics configuration
+ * @return a graphics configuration that best suits this Canvas
* @since 1.7
*/
GraphicsConfiguration getAppropriateGraphicsConfiguration(
diff --git a/jdk/src/share/classes/java/awt/peer/ComponentPeer.java b/jdk/src/share/classes/java/awt/peer/ComponentPeer.java
index b34f40f1cdd..8f0366711e5 100644
--- a/jdk/src/share/classes/java/awt/peer/ComponentPeer.java
+++ b/jdk/src/share/classes/java/awt/peer/ComponentPeer.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1995, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -516,6 +516,7 @@ public interface ComponentPeer {
/**
* Applies the shape to the native component window.
+ * @param shape the shape to apply
* @since 1.7
*
* @see Component#applyCompoundShape
@@ -525,12 +526,13 @@ public interface ComponentPeer {
/**
* Lowers this component at the bottom of the above HW peer. If the above parameter
* is null then the method places this component at the top of the Z-order.
+ * @param above the peer to lower this component with respect to
*/
void setZOrder(ComponentPeer above);
/**
* Updates internal data structures related to the component's GC.
- *
+ * @param gc the reference graphics configuration
* @return if the peer needs to be recreated for the changes to take effect
* @since 1.7
*/
diff --git a/jdk/src/share/classes/java/awt/peer/MouseInfoPeer.java b/jdk/src/share/classes/java/awt/peer/MouseInfoPeer.java
index 0594bda78bb..9087810b37d 100644
--- a/jdk/src/share/classes/java/awt/peer/MouseInfoPeer.java
+++ b/jdk/src/share/classes/java/awt/peer/MouseInfoPeer.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -55,6 +55,10 @@ public interface MouseInfoPeer {
* is located.
* See java.awt.GraphicsConfiguration documentation for more
* details about virtual screen devices.
+ * @param point holder for the current coordinates of the mouse
+ * cursor
+ * @return the number of the screen device where the pointer is
+ * located
*/
int fillPointWithCoords(Point point);
@@ -63,6 +67,9 @@ public interface MouseInfoPeer {
* pointer. The window is considered to be under the mouse pointer
* if it is showing on the screen, and the mouse pointer is above
* the part of the window that is not obscured by any other windows.
+ * @param w the window to check
+ * @return whether or not the window is located under the mouse
+ * pointer
*/
boolean isWindowUnderMouse(Window w);
diff --git a/jdk/src/share/classes/java/awt/peer/WindowPeer.java b/jdk/src/share/classes/java/awt/peer/WindowPeer.java
index e181b5b3018..65346489990 100644
--- a/jdk/src/share/classes/java/awt/peer/WindowPeer.java
+++ b/jdk/src/share/classes/java/awt/peer/WindowPeer.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1995, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -94,14 +94,15 @@ public interface WindowPeer extends ContainerPeer {
/**
* Sets the level of opacity for the window.
- *
+ * @param opacity the level of opacity
* @see Window#setOpacity(float)
*/
void setOpacity(float opacity);
/**
* Enables the per-pixel alpha support for the window.
- *
+ * @param isOpaque whether or not per-pixel alpha support is
+ * enabled
* @see Window#setBackground(Color)
*/
void setOpaque(boolean isOpaque);
From 6261c40dcaa64104fb4ee2ce6d01b8d6e368dfeb Mon Sep 17 00:00:00 2001
From: Joe Darcy
Date: Mon, 3 Feb 2014 10:21:58 -0800
Subject: [PATCH 143/181] 8033222: Fix serial lint warnings in sun.awt.*
Reviewed-by: alanb
---
jdk/src/share/classes/sun/awt/CustomCursor.java | 3 ++-
jdk/src/share/classes/sun/awt/FontConfiguration.java | 1 +
jdk/src/share/classes/sun/awt/TimedWindowEvent.java | 3 ++-
jdk/src/share/classes/sun/awt/dnd/SunDropTargetEvent.java | 3 ++-
jdk/src/share/classes/sun/awt/event/IgnorePaintEvent.java | 3 ++-
jdk/src/share/classes/sun/awt/image/BadDepthException.java | 3 ++-
jdk/src/share/classes/sun/awt/image/ImageAccessException.java | 3 ++-
jdk/src/share/classes/sun/awt/image/ImageFormatException.java | 3 ++-
jdk/src/share/classes/sun/awt/image/PNGImageDecoder.java | 3 ++-
jdk/src/share/classes/sun/awt/shell/DefaultShellFolder.java | 4 ++--
jdk/src/share/classes/sun/awt/shell/ShellFolder.java | 4 ++--
11 files changed, 21 insertions(+), 12 deletions(-)
diff --git a/jdk/src/share/classes/sun/awt/CustomCursor.java b/jdk/src/share/classes/sun/awt/CustomCursor.java
index a3863e9b6bd..6dad03c8c71 100644
--- a/jdk/src/share/classes/sun/awt/CustomCursor.java
+++ b/jdk/src/share/classes/sun/awt/CustomCursor.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 1999, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -33,6 +33,7 @@ import java.awt.image.*;
*
* @author ThomasBall
*/
+@SuppressWarnings("serial") // JDK-implementation class
public abstract class CustomCursor extends Cursor {
protected Image image;
diff --git a/jdk/src/share/classes/sun/awt/FontConfiguration.java b/jdk/src/share/classes/sun/awt/FontConfiguration.java
index 5d8b35ebe39..4cdc3d80c94 100644
--- a/jdk/src/share/classes/sun/awt/FontConfiguration.java
+++ b/jdk/src/share/classes/sun/awt/FontConfiguration.java
@@ -2109,6 +2109,7 @@ public abstract class FontConfiguration {
return ret;
}
+ @SuppressWarnings("serial") // JDK-implementation class
class FontProperties extends Properties {
public synchronized Object put(Object k, Object v) {
parseProperty((String)k, (String)v);
diff --git a/jdk/src/share/classes/sun/awt/TimedWindowEvent.java b/jdk/src/share/classes/sun/awt/TimedWindowEvent.java
index 21353f789d7..780b3d572e6 100644
--- a/jdk/src/share/classes/sun/awt/TimedWindowEvent.java
+++ b/jdk/src/share/classes/sun/awt/TimedWindowEvent.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -28,6 +28,7 @@ package sun.awt;
import java.awt.event.WindowEvent;
import java.awt.Window;
+@SuppressWarnings("serial") // JDK-implementation class
public class TimedWindowEvent extends WindowEvent {
private long time;
diff --git a/jdk/src/share/classes/sun/awt/dnd/SunDropTargetEvent.java b/jdk/src/share/classes/sun/awt/dnd/SunDropTargetEvent.java
index aff7b8a80d6..64685e571a2 100644
--- a/jdk/src/share/classes/sun/awt/dnd/SunDropTargetEvent.java
+++ b/jdk/src/share/classes/sun/awt/dnd/SunDropTargetEvent.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -29,6 +29,7 @@ import java.awt.Component;
import java.awt.dnd.InvalidDnDOperationException;
import java.awt.event.MouseEvent;
+@SuppressWarnings("serial") // JDK-implementation class
public class SunDropTargetEvent extends MouseEvent {
public static final int MOUSE_DROPPED = MouseEvent.MOUSE_RELEASED;
diff --git a/jdk/src/share/classes/sun/awt/event/IgnorePaintEvent.java b/jdk/src/share/classes/sun/awt/event/IgnorePaintEvent.java
index c0d38694381..1f59869027d 100644
--- a/jdk/src/share/classes/sun/awt/event/IgnorePaintEvent.java
+++ b/jdk/src/share/classes/sun/awt/event/IgnorePaintEvent.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -35,6 +35,7 @@ import java.awt.event.PaintEvent;
* Look at javax.swing.SwingPaintEventDispatcher
for more.
*
*/
+@SuppressWarnings("serial") // JDK-implementation class
public class IgnorePaintEvent extends PaintEvent {
public IgnorePaintEvent(Component source, int id, Rectangle updateRect) {
super(source, id, updateRect);
diff --git a/jdk/src/share/classes/sun/awt/image/BadDepthException.java b/jdk/src/share/classes/sun/awt/image/BadDepthException.java
index 19adf69fbe6..f9d264f22fb 100644
--- a/jdk/src/share/classes/sun/awt/image/BadDepthException.java
+++ b/jdk/src/share/classes/sun/awt/image/BadDepthException.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1995, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -25,6 +25,7 @@
package sun.awt.image;
+@SuppressWarnings("serial") // JDK-implementation class
public class BadDepthException extends Exception {
public BadDepthException() {
}
diff --git a/jdk/src/share/classes/sun/awt/image/ImageAccessException.java b/jdk/src/share/classes/sun/awt/image/ImageAccessException.java
index 43602f64b66..402e2a26caa 100644
--- a/jdk/src/share/classes/sun/awt/image/ImageAccessException.java
+++ b/jdk/src/share/classes/sun/awt/image/ImageAccessException.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1995, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -25,6 +25,7 @@
package sun.awt.image;
+@SuppressWarnings("serial") // JDK-implementation class
public class ImageAccessException extends Exception {
public ImageAccessException(String s) {
super(s);
diff --git a/jdk/src/share/classes/sun/awt/image/ImageFormatException.java b/jdk/src/share/classes/sun/awt/image/ImageFormatException.java
index 4812efe37c2..6a70d728f8f 100644
--- a/jdk/src/share/classes/sun/awt/image/ImageFormatException.java
+++ b/jdk/src/share/classes/sun/awt/image/ImageFormatException.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1995, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1995, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -25,6 +25,7 @@
package sun.awt.image;
+@SuppressWarnings("serial") // JDK-implementation class
public class ImageFormatException extends Exception {
public ImageFormatException(String s) {
super(s);
diff --git a/jdk/src/share/classes/sun/awt/image/PNGImageDecoder.java b/jdk/src/share/classes/sun/awt/image/PNGImageDecoder.java
index 69bb984c514..adbdb766da1 100644
--- a/jdk/src/share/classes/sun/awt/image/PNGImageDecoder.java
+++ b/jdk/src/share/classes/sun/awt/image/PNGImageDecoder.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -231,6 +231,7 @@ public class PNGImageDecoder extends ImageDecoder
}
return true;
}
+ @SuppressWarnings("serial") // JDK-implementation class
public class PNGException extends IOException {
PNGException(String s) { super(s); }
}
diff --git a/jdk/src/share/classes/sun/awt/shell/DefaultShellFolder.java b/jdk/src/share/classes/sun/awt/shell/DefaultShellFolder.java
index 860c980d6aa..b44776228d8 100644
--- a/jdk/src/share/classes/sun/awt/shell/DefaultShellFolder.java
+++ b/jdk/src/share/classes/sun/awt/shell/DefaultShellFolder.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2002, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -34,7 +34,7 @@ import sun.security.action.GetPropertyAction;
* @author Michael Martak
* @since 1.4
*/
-
+@SuppressWarnings("serial") // JDK-implementation class
class DefaultShellFolder extends ShellFolder {
/**
diff --git a/jdk/src/share/classes/sun/awt/shell/ShellFolder.java b/jdk/src/share/classes/sun/awt/shell/ShellFolder.java
index 630d4faa9cd..cb9459f1d41 100644
--- a/jdk/src/share/classes/sun/awt/shell/ShellFolder.java
+++ b/jdk/src/share/classes/sun/awt/shell/ShellFolder.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -37,7 +37,7 @@ import java.util.concurrent.Callable;
* @author Michael Martak
* @since 1.4
*/
-
+@SuppressWarnings("serial") // JDK-implementation class
public abstract class ShellFolder extends File {
private static final String COLUMN_NAME = "FileChooser.fileNameHeaderText";
private static final String COLUMN_SIZE = "FileChooser.fileSizeHeaderText";
From c4f2b88d813409eff4a9a72358ccc260c429c29b Mon Sep 17 00:00:00 2001
From: Roger Riggs
Date: Mon, 3 Feb 2014 16:58:02 -0500
Subject: [PATCH 144/181] 8031737: CHECK_NULL and CHECK_EXCEPTION macros
cleanup
Rename CHECK_EXCEPTION macros with JNU prefix; use the defensive do {...} while (0) macro definition
Reviewed-by: chegar, mchung, ksrini, lancea, alanb
---
jdk/src/share/native/common/jni_util.h | 33 +++++++++++++++++++++----
jdk/src/share/native/sun/misc/Version.c | 20 +++++++--------
2 files changed, 38 insertions(+), 15 deletions(-)
diff --git a/jdk/src/share/native/common/jni_util.h b/jdk/src/share/native/common/jni_util.h
index 0dab24c3392..b8d23cd1c21 100644
--- a/jdk/src/share/native/common/jni_util.h
+++ b/jdk/src/share/native/common/jni_util.h
@@ -279,14 +279,37 @@ JNU_NotifyAll(JNIEnv *env, jobject object);
#define JNU_IsNull(env,obj) ((obj) == NULL)
/************************************************************************
- * Miscellaneous utilities used by the class libraries to check for exceptions
+ * Miscellaneous utilities used by the class libraries to return from
+ * a function if a value is NULL or an exception is pending.
*/
-#define CHECK_NULL(x) if ((x) == NULL) return;
-#define CHECK_NULL_RETURN(x, y) if ((x) == NULL) return (y);
+#define CHECK_NULL(x) \
+ do { \
+ if ((x) == NULL) { \
+ return; \
+ } \
+ } while (0) \
-#define CHECK_EXCEPTION(env) if ((*env)->ExceptionCheck(env)) return;
-#define CHECK_EXCEPTION_RETURN(env, y) if ((*env)->ExceptionCheck(env)) return (y);
+#define CHECK_NULL_RETURN(x, y) \
+ do { \
+ if ((x) == NULL) { \
+ return (y); \
+ } \
+ } while (0) \
+
+#define JNU_CHECK_EXCEPTION(env) \
+ do { \
+ if ((*env)->ExceptionCheck(env)) { \
+ return; \
+ } \
+ } while (0) \
+
+#define JNU_CHECK_EXCEPTION_RETURN(env, y) \
+ do { \
+ if ((*env)->ExceptionCheck(env)) { \
+ return (y); \
+ } \
+ } while (0)
/************************************************************************
* Debugging utilities
diff --git a/jdk/src/share/native/sun/misc/Version.c b/jdk/src/share/native/sun/misc/Version.c
index d37010e15d5..4dbcf1c8089 100644
--- a/jdk/src/share/native/sun/misc/Version.c
+++ b/jdk/src/share/native/sun/misc/Version.c
@@ -60,15 +60,15 @@ Java_sun_misc_Version_getJvmVersionInfo(JNIEnv *env, jclass cls)
(*func_p)(env, &info, sizeof(info));
setStaticIntField(env, cls, "jvm_major_version", JVM_VERSION_MAJOR(info.jvm_version));
- CHECK_EXCEPTION_RETURN(env, JNI_FALSE);
+ JNU_CHECK_EXCEPTION_RETURN(env, JNI_FALSE);
setStaticIntField(env, cls, "jvm_minor_version", JVM_VERSION_MINOR(info.jvm_version));
- CHECK_EXCEPTION_RETURN(env, JNI_FALSE);
+ JNU_CHECK_EXCEPTION_RETURN(env, JNI_FALSE);
setStaticIntField(env, cls, "jvm_micro_version", JVM_VERSION_MICRO(info.jvm_version));
- CHECK_EXCEPTION_RETURN(env, JNI_FALSE);
+ JNU_CHECK_EXCEPTION_RETURN(env, JNI_FALSE);
setStaticIntField(env, cls, "jvm_build_number", JVM_VERSION_BUILD(info.jvm_version));
- CHECK_EXCEPTION_RETURN(env, JNI_FALSE);
+ JNU_CHECK_EXCEPTION_RETURN(env, JNI_FALSE);
setStaticIntField(env, cls, "jvm_update_version", info.update_version);
- CHECK_EXCEPTION_RETURN(env, JNI_FALSE);
+ JNU_CHECK_EXCEPTION_RETURN(env, JNI_FALSE);
jvm_special_version = info.special_update_version;
return JNI_TRUE;
@@ -91,15 +91,15 @@ Java_sun_misc_Version_getJdkVersionInfo(JNIEnv *env, jclass cls)
JDK_GetVersionInfo0(&info, sizeof(info));
setStaticIntField(env, cls, "jdk_major_version", JDK_VERSION_MAJOR(info.jdk_version));
- CHECK_EXCEPTION(env);
+ JNU_CHECK_EXCEPTION(env);
setStaticIntField(env, cls, "jdk_minor_version", JDK_VERSION_MINOR(info.jdk_version));
- CHECK_EXCEPTION(env);
+ JNU_CHECK_EXCEPTION(env);
setStaticIntField(env, cls, "jdk_micro_version", JDK_VERSION_MICRO(info.jdk_version));
- CHECK_EXCEPTION(env);
+ JNU_CHECK_EXCEPTION(env);
setStaticIntField(env, cls, "jdk_build_number", JDK_VERSION_BUILD(info.jdk_version));
- CHECK_EXCEPTION(env);
+ JNU_CHECK_EXCEPTION(env);
setStaticIntField(env, cls, "jdk_update_version", info.update_version);
- CHECK_EXCEPTION(env);
+ JNU_CHECK_EXCEPTION(env);
jdk_special_version = info.special_update_version;
}
From 3bd9bdd993475b81dc10f1739d29c33072c48a34 Mon Sep 17 00:00:00 2001
From: Eric McCorkle
Date: Mon, 3 Feb 2014 17:19:15 -0500
Subject: [PATCH 145/181] 8033004: Make base TypeAnnotationPosition data
immutable, create better methods for creating base TypeAnnotationPositions
First of a series of major fixes to type annotations; cleans up interface with TypeAnnotationPosition
Reviewed-by: jjg
---
.../sun/tools/javac/code/SymbolMetadata.java | 12 +-
.../javac/code/TypeAnnotationPosition.java | 871 +++++++++++++++++-
.../sun/tools/javac/code/TypeAnnotations.java | 508 +++++-----
.../com/sun/tools/javac/comp/Annotate.java | 8 +-
.../com/sun/tools/javac/jvm/ClassReader.java | 205 +++--
.../com/sun/tools/javac/tree/JCTree.java | 3 +
6 files changed, 1311 insertions(+), 296 deletions(-)
diff --git a/langtools/src/share/classes/com/sun/tools/javac/code/SymbolMetadata.java b/langtools/src/share/classes/com/sun/tools/javac/code/SymbolMetadata.java
index 3622c5a45a8..f41dae9f5cf 100644
--- a/langtools/src/share/classes/com/sun/tools/javac/code/SymbolMetadata.java
+++ b/langtools/src/share/classes/com/sun/tools/javac/code/SymbolMetadata.java
@@ -425,11 +425,15 @@ public class SymbolMetadata {
private final List placeholderFor;
private final Symbol on;
- public Placeholder(Annotate.AnnotateRepeatedContext ctx, List placeholderFor, Symbol on) {
+ public Placeholder(Annotate.AnnotateRepeatedContext ctx,
+ List placeholderFor, Symbol on) {
super(on.type, List.>nil(),
- ctx.isTypeCompound ?
- ((Attribute.TypeCompound)placeholderFor.head).position :
- new TypeAnnotationPosition());
+ ctx.isTypeCompound ?
+ ((Attribute.TypeCompound)placeholderFor.head).position :
+ // TODO: Eventually, we will need to get rid of this
+ // use of unknown, either by using null, or by
+ // throwing an assertion failure here.
+ TypeAnnotationPosition.unknown);
this.ctx = ctx;
this.placeholderFor = placeholderFor;
this.on = on;
diff --git a/langtools/src/share/classes/com/sun/tools/javac/code/TypeAnnotationPosition.java b/langtools/src/share/classes/com/sun/tools/javac/code/TypeAnnotationPosition.java
index c481ea5d3e0..0845f121ab8 100644
--- a/langtools/src/share/classes/com/sun/tools/javac/code/TypeAnnotationPosition.java
+++ b/langtools/src/share/classes/com/sun/tools/javac/code/TypeAnnotationPosition.java
@@ -119,13 +119,20 @@ public class TypeAnnotationPosition {
}
}
- public TargetType type = TargetType.UNKNOWN;
+ public static final List emptyPath = List.nil();
+
+ // NOTE: All of these will be converted to final fields eventually.
+
+ public final TargetType type;
// For generic/array types.
- public List location = List.nil();
+
+ // This field is in the process of being made final. Do not
+ // introduce new mutations.
+ public List location;
// Tree position.
- public int pos = -1;
+ public final int pos;
// For type casts, type tests, new, locals (as start_pc),
// and method and constructor reference type arguments.
@@ -138,13 +145,17 @@ public class TypeAnnotationPosition {
public int[] lvarIndex = null;
// For type parameter bound
- public int bound_index = Integer.MIN_VALUE;
+ public final int bound_index;
// For type parameter and method parameter
- public int parameter_index = Integer.MIN_VALUE;
+ public final int parameter_index;
// For class extends, implements, and throws clauses
- public int type_index = Integer.MIN_VALUE;
+
+ // This field is effectively final. However, it needs to be
+ // modified by Gen for the time being. Do not introduce new
+ // mutations.
+ public int type_index;
// For exception parameters, index into exception table.
// In com.sun.tools.javac.jvm.Gen.genCatch we first set the type_index
@@ -156,9 +167,10 @@ public class TypeAnnotationPosition {
// If this type annotation is within a lambda expression,
// store a pointer to the lambda expression tree in order
// to allow a later translation to the right method.
- public JCLambda onLambda = null;
+ public final JCLambda onLambda;
- public TypeAnnotationPosition() {}
+ // NOTE: This constructor will eventually go away, and be replaced
+ // by static builder methods.
@Override
public String toString() {
@@ -323,4 +335,847 @@ public class TypeAnnotationPosition {
}
return loc.toList();
}
+
+ // These methods are the new preferred way to create
+ // TypeAnnotationPositions
+
+ // Never make this a public constructor without creating a builder.
+ private TypeAnnotationPosition(final TargetType ttype,
+ final int pos,
+ final int parameter_index,
+ final JCLambda onLambda,
+ final int type_index,
+ final int bound_index,
+ final List location) {
+ Assert.checkNonNull(location);
+ this.type = ttype;
+ this.pos = pos;
+ this.parameter_index = parameter_index;
+ this.onLambda = onLambda;
+ this.type_index = type_index;
+ this.bound_index = bound_index;
+ this.location = location;
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for a method return.
+ *
+ * @param location The type path.
+ * @param onLambda The lambda for this parameter.
+ * @param pos The position from the associated tree node.
+ */
+ public static TypeAnnotationPosition
+ methodReturn(final List location,
+ final JCLambda onLambda,
+ final int pos) {
+ return new TypeAnnotationPosition(TargetType.METHOD_RETURN, pos,
+ Integer.MIN_VALUE, onLambda,
+ Integer.MIN_VALUE, Integer.MIN_VALUE,
+ location);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for a method return.
+ *
+ * @param location The type path.
+ */
+ public static TypeAnnotationPosition
+ methodReturn(final List location) {
+ return methodReturn(location, null, -1);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for a method return.
+ *
+ * @param pos The position from the associated tree node.
+ */
+ public static TypeAnnotationPosition methodReturn(final int pos) {
+ return methodReturn(emptyPath, null, pos);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for a method receiver.
+ *
+ * @param location The type path.
+ * @param onLambda The lambda for this parameter.
+ * @param pos The position from the associated tree node.
+ */
+ public static TypeAnnotationPosition
+ methodReceiver(final List location,
+ final JCLambda onLambda,
+ final int pos) {
+ return new TypeAnnotationPosition(TargetType.METHOD_RECEIVER, pos,
+ Integer.MIN_VALUE, onLambda,
+ Integer.MIN_VALUE, Integer.MIN_VALUE,
+ location);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for a method receiver.
+ *
+ * @param location The type path.
+ */
+ public static TypeAnnotationPosition
+ methodReceiver(final List location) {
+ return methodReceiver(location, null, -1);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for a method receiver.
+ *
+ * @param pos The position from the associated tree node.
+ */
+ public static TypeAnnotationPosition methodReceiver(final int pos) {
+ return methodReceiver(emptyPath, null, pos);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for a method formal parameter.
+ *
+ * @param location The type path.
+ * @param onLambda The lambda for this parameter.
+ * @param index The index of the parameter.
+ * @param pos The position from the associated tree node.
+ */
+ public static TypeAnnotationPosition
+ methodParameter(final List location,
+ final JCLambda onLambda,
+ final int parameter_index,
+ final int pos) {
+ return new TypeAnnotationPosition(TargetType.METHOD_FORMAL_PARAMETER,
+ pos, parameter_index, onLambda,
+ Integer.MIN_VALUE, Integer.MIN_VALUE,
+ location);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for a method formal parameter.
+ *
+ * @param onLambda The lambda for this parameter.
+ * @param index The index of the parameter.
+ * @param pos The position from the associated tree node.
+ */
+ public static TypeAnnotationPosition
+ methodParameter(final JCLambda onLambda,
+ final int parameter_index,
+ final int pos) {
+ return methodParameter(emptyPath, onLambda,
+ parameter_index, pos);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for a method formal parameter.
+ *
+ * @param index The index of the parameter.
+ * @param pos The position from the associated tree node.
+ */
+ public static TypeAnnotationPosition
+ methodParameter(final int parameter_index,
+ final int pos) {
+ return methodParameter(null, parameter_index, pos);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for a method formal parameter.
+ *
+ * @param location The type path.
+ * @param index The index of the parameter.
+ */
+ public static TypeAnnotationPosition
+ methodParameter(final List location,
+ final int parameter_index) {
+ return methodParameter(location, null, parameter_index, -1);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for a method reference.
+ *
+ * @param location The type path.
+ * @param onLambda The lambda for this method reference.
+ * @param pos The position from the associated tree node.
+ */
+ public static TypeAnnotationPosition
+ methodRef(final List location,
+ final JCLambda onLambda,
+ final int pos) {
+ return new TypeAnnotationPosition(TargetType.METHOD_REFERENCE, pos,
+ Integer.MIN_VALUE, onLambda,
+ Integer.MIN_VALUE, Integer.MIN_VALUE,
+ location);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for a method reference.
+ *
+ * @param location The type path.
+ * @param onLambda The lambda for this method reference.
+ * @param pos The position from the associated tree node.
+ */
+ public static TypeAnnotationPosition
+ methodRef(final List location) {
+ return methodRef(location, null, -1);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for a constructor reference.
+ *
+ * @param location The type path.
+ * @param onLambda The lambda for this constructor reference.
+ * @param pos The position from the associated tree node.
+ */
+ public static TypeAnnotationPosition
+ constructorRef(final List location,
+ final JCLambda onLambda,
+ final int pos) {
+ return new TypeAnnotationPosition(TargetType.CONSTRUCTOR_REFERENCE, pos,
+ Integer.MIN_VALUE, onLambda,
+ Integer.MIN_VALUE, Integer.MIN_VALUE,
+ location);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for a constructor reference.
+ *
+ * @param location The type path.
+ * @param onLambda The lambda for this constructor reference.
+ * @param pos The position from the associated tree node.
+ */
+ public static TypeAnnotationPosition
+ constructorRef(final List location) {
+ return constructorRef(location, null, -1);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for a field.
+ *
+ * @param location The type path.
+ * @param onLambda The lambda for this variable.
+ * @param pos The position from the associated tree node.
+ */
+ public static TypeAnnotationPosition
+ field(final List location,
+ final JCLambda onLambda,
+ final int pos) {
+ return new TypeAnnotationPosition(TargetType.FIELD, pos,
+ Integer.MIN_VALUE, onLambda,
+ Integer.MIN_VALUE, Integer.MIN_VALUE,
+ location);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for a field.
+ *
+ * @param location The type path.
+ */
+ public static TypeAnnotationPosition
+ field(final List location) {
+ return field(location, null, -1);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for a field.
+ *
+ * @param pos The position from the associated tree node.
+ */
+ public static TypeAnnotationPosition field(final int pos) {
+ return field(emptyPath, null, pos);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for a local variable.
+ *
+ * @param location The type path.
+ * @param onLambda The lambda for this variable.
+ * @param pos The position from the associated tree node.
+ */
+ public static TypeAnnotationPosition
+ localVariable(final List location,
+ final JCLambda onLambda,
+ final int pos) {
+ return new TypeAnnotationPosition(TargetType.LOCAL_VARIABLE, pos,
+ Integer.MIN_VALUE, onLambda,
+ Integer.MIN_VALUE, Integer.MIN_VALUE,
+ location);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for a local variable.
+ *
+ * @param onLambda The lambda for this variable.
+ * @param pos The position from the associated tree node.
+ */
+ public static TypeAnnotationPosition
+ localVariable(final JCLambda onLambda,
+ final int pos) {
+ return localVariable(emptyPath, onLambda, pos);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for a local variable.
+ *
+ * @param location The type path.
+ */
+ public static TypeAnnotationPosition
+ localVariable(final List location) {
+ return localVariable(location, null, -1);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for an exception parameter.
+ *
+ * @param location The type path.
+ * @param onLambda The lambda for this parameter.
+ * @param pos The position from the associated tree node.
+ */
+ public static TypeAnnotationPosition
+ exceptionParameter(final List location,
+ final JCLambda onLambda,
+ final int pos) {
+ return new TypeAnnotationPosition(TargetType.EXCEPTION_PARAMETER, pos,
+ Integer.MIN_VALUE, onLambda,
+ Integer.MIN_VALUE, Integer.MIN_VALUE,
+ location);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for an exception parameter.
+ *
+ * @param onLambda The lambda for this parameter.
+ * @param pos The position from the associated tree node.
+ */
+ public static TypeAnnotationPosition
+ exceptionParameter(final JCLambda onLambda,
+ final int pos) {
+ return exceptionParameter(emptyPath, onLambda, pos);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for an exception parameter.
+ *
+ * @param location The type path.
+ */
+ public static TypeAnnotationPosition
+ exceptionParameter(final List location) {
+ return exceptionParameter(location, null, -1);
+ }
+
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for a resource variable.
+ *
+ * @param location The type path.
+ * @param onLambda The lambda for this variable.
+ * @param pos The position from the associated tree node.
+ */
+ public static TypeAnnotationPosition
+ resourceVariable(final List location,
+ final JCLambda onLambda,
+ final int pos) {
+ return new TypeAnnotationPosition(TargetType.RESOURCE_VARIABLE, pos,
+ Integer.MIN_VALUE, onLambda,
+ Integer.MIN_VALUE, Integer.MIN_VALUE,
+ location);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for a resource variable.
+ *
+ * @param onLambda The lambda for this variable.
+ * @param pos The position from the associated tree node.
+ */
+ public static TypeAnnotationPosition
+ resourceVariable(final JCLambda onLambda,
+ final int pos) {
+ return resourceVariable(emptyPath, onLambda, pos);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for a resource variable.
+ *
+ * @param location The type path.
+ * @param onLambda The lambda for this variable.
+ * @param pos The position from the associated tree node.
+ */
+ public static TypeAnnotationPosition
+ resourceVariable(final List location) {
+ return resourceVariable(location, null, -1);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for a new.
+ *
+ * @param location The type path.
+ * @param onLambda The lambda for this variable.
+ * @param pos The position from the associated tree node.
+ */
+ public static TypeAnnotationPosition
+ newObj(final List location,
+ final JCLambda onLambda,
+ final int pos) {
+ return new TypeAnnotationPosition(TargetType.NEW, pos,
+ Integer.MIN_VALUE, onLambda,
+ Integer.MIN_VALUE, Integer.MIN_VALUE,
+ location);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for a new.
+ *
+ * @param location The type path.
+ * @param onLambda The lambda for this variable.
+ * @param pos The position from the associated tree node.
+ */
+ public static TypeAnnotationPosition newObj(final int pos) {
+ return newObj(emptyPath, null, pos);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for a new.
+ *
+ * @param location The type path.
+ * @param onLambda The lambda for this variable.
+ * @param pos The position from the associated tree node.
+ */
+ public static TypeAnnotationPosition
+ newObj(final List location) {
+ return newObj(location, null, -1);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for a class extension.
+ *
+ * @param location The type path.
+ * @param onLambda The lambda for this variable.
+ * @param type_index The index of the interface.
+ * @param pos The position from the associated tree node.
+ */
+ public static TypeAnnotationPosition
+ classExtends(final List location,
+ final JCLambda onLambda,
+ final int type_index,
+ final int pos) {
+ return new TypeAnnotationPosition(TargetType.CLASS_EXTENDS, pos,
+ Integer.MIN_VALUE, onLambda,
+ type_index, Integer.MIN_VALUE,
+ location);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for a class extension.
+ *
+ * @param location The type path.
+ * @param onLambda The lambda for this variable.
+ * @param type_index The index of the interface.
+ * @param pos The position from the associated tree node.
+ */
+ public static TypeAnnotationPosition
+ classExtends(final List location,
+ final JCLambda onLambda,
+ final int pos) {
+ return classExtends(location, onLambda, -1, pos);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for a class extension.
+ *
+ * @param location The type path.
+ * @param type_index The index of the interface.
+ */
+ public static TypeAnnotationPosition
+ classExtends(final List location,
+ final int type_index) {
+ return classExtends(location, null, type_index, -1);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for a class extension.
+ *
+ * @param type_index The index of the interface.
+ * @param pos The position from the associated tree node.
+ */
+ public static TypeAnnotationPosition classExtends(final int type_index,
+ final int pos) {
+ return classExtends(emptyPath, null, type_index, pos);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for a class extension.
+ *
+ * @param pos The position from the associated tree node.
+ */
+ public static TypeAnnotationPosition classExtends(final int pos) {
+ return classExtends(-1, pos);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for an instanceof.
+ *
+ * @param location The type path.
+ * @param onLambda The lambda for this variable.
+ * @param pos The position from the associated tree node.
+ */
+ public static TypeAnnotationPosition
+ instanceOf(final List location,
+ final JCLambda onLambda,
+ final int pos) {
+ return new TypeAnnotationPosition(TargetType.INSTANCEOF, pos,
+ Integer.MIN_VALUE, onLambda,
+ Integer.MIN_VALUE, Integer.MIN_VALUE,
+ location);
+ }
+ /**
+ * Create a {@code TypeAnnotationPosition} for an instanceof.
+ *
+ * @param location The type path.
+ * @param onLambda The lambda for this variable.
+ * @param pos The position from the associated tree node.
+ */
+ public static TypeAnnotationPosition
+ instanceOf(final List location) {
+ return instanceOf(location, null, -1);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for a type cast.
+ *
+ * @param location The type path.
+ * @param onLambda The lambda for this variable.
+ * @param type_index The index into an intersection type.
+ * @param pos The position from the associated tree node.
+ */
+ public static TypeAnnotationPosition
+ typeCast(final List location,
+ final JCLambda onLambda,
+ final int type_index,
+ final int pos) {
+ return new TypeAnnotationPosition(TargetType.CAST, pos,
+ Integer.MIN_VALUE, onLambda,
+ type_index, Integer.MIN_VALUE,
+ location);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for a type cast.
+ *
+ * @param location The type path.
+ * @param onLambda The lambda for this variable.
+ * @param type_index The index into an intersection type.
+ * @param pos The position from the associated tree node.
+ */
+ public static TypeAnnotationPosition
+ typeCast(final List location,
+ final int type_index) {
+ return typeCast(location, null, type_index, -1);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for a method
+ * invocation type argument.
+ *
+ * @param location The type path.
+ * @param onLambda The lambda for this variable.
+ * @param type_index The index of the type argument.
+ * @param pos The position from the associated tree node.
+ */
+ public static TypeAnnotationPosition
+ methodInvocationTypeArg(final List location,
+ final JCLambda onLambda,
+ final int type_index,
+ final int pos) {
+ return new TypeAnnotationPosition(TargetType.METHOD_INVOCATION_TYPE_ARGUMENT,
+ pos, Integer.MIN_VALUE, onLambda,
+ type_index, Integer.MIN_VALUE,
+ location);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for a method
+ * invocation type argument.
+ *
+ * @param location The type path.
+ * @param type_index The index of the type argument.
+ */
+ public static TypeAnnotationPosition
+ methodInvocationTypeArg(final List location,
+ final int type_index) {
+ return methodInvocationTypeArg(location, null, type_index, -1);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for a constructor
+ * invocation type argument.
+ *
+ * @param location The type path.
+ * @param onLambda The lambda for this variable.
+ * @param type_index The index of the type argument.
+ * @param pos The position from the associated tree node.
+ */
+ public static TypeAnnotationPosition
+ constructorInvocationTypeArg(final List location,
+ final JCLambda onLambda,
+ final int type_index,
+ final int pos) {
+ return new TypeAnnotationPosition(TargetType.CONSTRUCTOR_INVOCATION_TYPE_ARGUMENT,
+ pos, Integer.MIN_VALUE, onLambda,
+ type_index, Integer.MIN_VALUE,
+ location);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for a constructor
+ * invocation type argument.
+ *
+ * @param location The type path.
+ * @param type_index The index of the type argument.
+ */
+ public static TypeAnnotationPosition
+ constructorInvocationTypeArg(final List location,
+ final int type_index) {
+ return constructorInvocationTypeArg(location, null, type_index, -1);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for a type parameter.
+ *
+ * @param location The type path.
+ * @param onLambda The lambda for this variable.
+ * @param parameter_index The index of the type parameter.
+ * @param pos The position from the associated tree node.
+ */
+ public static TypeAnnotationPosition
+ typeParameter(final List location,
+ final JCLambda onLambda,
+ final int parameter_index,
+ final int pos) {
+ return new TypeAnnotationPosition(TargetType.CLASS_TYPE_PARAMETER, pos,
+ parameter_index, onLambda,
+ Integer.MIN_VALUE, Integer.MIN_VALUE,
+ location);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for a type parameter.
+ *
+ * @param location The type path.
+ * @param onLambda The lambda for this variable.
+ * @param parameter_index The index of the type parameter.
+ * @param pos The position from the associated tree node.
+ */
+ public static TypeAnnotationPosition
+ typeParameter(final List location,
+ final int parameter_index) {
+ return typeParameter(location, null, parameter_index, -1);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for a method type parameter.
+ *
+ * @param location The type path.
+ * @param onLambda The lambda for this variable.
+ * @param parameter_index The index of the type parameter.
+ * @param pos The position from the associated tree node.
+ */
+ public static TypeAnnotationPosition
+ methodTypeParameter(final List location,
+ final JCLambda onLambda,
+ final int parameter_index,
+ final int pos) {
+ return new TypeAnnotationPosition(TargetType.METHOD_TYPE_PARAMETER,
+ pos, parameter_index, onLambda,
+ Integer.MIN_VALUE, Integer.MIN_VALUE,
+ location);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for a method type parameter.
+ *
+ * @param location The type path.
+ * @param parameter_index The index of the type parameter.
+ */
+ public static TypeAnnotationPosition
+ methodTypeParameter(final List location,
+ final int parameter_index) {
+ return methodTypeParameter(location, null, parameter_index, -1);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for a throws clause.
+ *
+ * @param location The type path.
+ * @param onLambda The lambda for this variable.
+ * @param type_index The index of the exception.
+ * @param pos The position from the associated tree node.
+ */
+ public static TypeAnnotationPosition
+ methodThrows(final List location,
+ final JCLambda onLambda,
+ final int type_index,
+ final int pos) {
+ return new TypeAnnotationPosition(TargetType.THROWS, pos,
+ Integer.MIN_VALUE, onLambda,
+ type_index, Integer.MIN_VALUE,
+ location);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for a throws clause.
+ *
+ * @param location The type path.
+ * @param type_index The index of the exception.
+ */
+ public static TypeAnnotationPosition
+ methodThrows(final List location,
+ final int type_index) {
+ return methodThrows(location, null, type_index, -1);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for a method reference
+ * type argument.
+ *
+ * @param location The type path.
+ * @param onLambda The lambda for this variable.
+ * @param parameter_index The index of the type argument.
+ * @param pos The position from the associated tree node.
+ */
+ public static TypeAnnotationPosition
+ methodRefTypeArg(final List location,
+ final JCLambda onLambda,
+ final int type_index,
+ final int pos) {
+ return new TypeAnnotationPosition(TargetType.METHOD_REFERENCE_TYPE_ARGUMENT,
+ pos, Integer.MIN_VALUE, onLambda,
+ type_index, Integer.MIN_VALUE,
+ location);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for a method reference
+ * type argument.
+ *
+ * @param location The type path.
+ * @param onLambda The lambda for this variable.
+ * @param parameter_index The index of the type argument.
+ * @param pos The position from the associated tree node.
+ */
+ public static TypeAnnotationPosition
+ methodRefTypeArg(final List location,
+ final int type_index) {
+ return methodRefTypeArg(location, null, type_index, -1);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for a constructor reference
+ * type argument.
+ *
+ * @param location The type path.
+ * @param onLambda The lambda for this variable.
+ * @param parameter_index The index of the type argument.
+ * @param pos The position from the associated tree node.
+ */
+ public static TypeAnnotationPosition
+ constructorRefTypeArg(final List location,
+ final JCLambda onLambda,
+ final int type_index,
+ final int pos) {
+ return new TypeAnnotationPosition(TargetType.CONSTRUCTOR_REFERENCE_TYPE_ARGUMENT,
+ pos, Integer.MIN_VALUE, onLambda,
+ type_index, Integer.MIN_VALUE,
+ location);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for a constructor reference
+ * type argument.
+ *
+ * @param location The type path.
+ * @param parameter_index The index of the type argument.
+ */
+ public static TypeAnnotationPosition
+ constructorRefTypeArg(final List location,
+ final int type_index) {
+ return constructorRefTypeArg(location, null, type_index, -1);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for a type parameter bound.
+ *
+ * @param location The type path.
+ * @param onLambda The lambda for this variable.
+ * @param parameter_index The index of the type parameter.
+ * @param bound_index The index of the type parameter bound.
+ * @param pos The position from the associated tree node.
+ */
+ public static TypeAnnotationPosition
+ typeParameterBound(final List location,
+ final JCLambda onLambda,
+ final int parameter_index,
+ final int bound_index,
+ final int pos) {
+ return new TypeAnnotationPosition(TargetType.CLASS_TYPE_PARAMETER_BOUND,
+ pos, parameter_index, onLambda,
+ Integer.MIN_VALUE, bound_index,
+ location);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for a type parameter bound.
+ *
+ * @param location The type path.
+ * @param parameter_index The index of the type parameter.
+ * @param bound_index The index of the type parameter bound.
+ */
+ public static TypeAnnotationPosition
+ typeParameterBound(final List location,
+ final int parameter_index,
+ final int bound_index) {
+ return typeParameterBound(location, null, parameter_index,
+ bound_index, -1);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for a method type
+ * parameter bound.
+ *
+ * @param location The type path.
+ * @param onLambda The lambda for this variable.
+ * @param parameter_index The index of the type parameter.
+ * @param bound_index The index of the type parameter bound.
+ * @param pos The position from the associated tree node.
+ */
+ public static TypeAnnotationPosition
+ methodTypeParameterBound(final List location,
+ final JCLambda onLambda,
+ final int parameter_index,
+ final int bound_index,
+ final int pos) {
+ return new TypeAnnotationPosition(TargetType.METHOD_TYPE_PARAMETER_BOUND,
+ pos, parameter_index, onLambda,
+ Integer.MIN_VALUE, bound_index,
+ location);
+ }
+
+ /**
+ * Create a {@code TypeAnnotationPosition} for a method type
+ * parameter bound.
+ *
+ * @param location The type path.
+ * @param parameter_index The index of the type parameter.
+ * @param bound_index The index of the type parameter bound.
+ */
+ public static TypeAnnotationPosition
+ methodTypeParameterBound(final List location,
+ final int parameter_index,
+ final int bound_index) {
+ return methodTypeParameterBound(location, null, parameter_index,
+ bound_index, -1);
+ }
+
+ // Consider this deprecated on arrival. We eventually want to get
+ // rid of this value altogether. Do not use it for anything new.
+ public static final TypeAnnotationPosition unknown =
+ new TypeAnnotationPosition(TargetType.UNKNOWN, -1,
+ Integer.MIN_VALUE, null,
+ Integer.MIN_VALUE, Integer.MIN_VALUE,
+ emptyPath);
}
diff --git a/langtools/src/share/classes/com/sun/tools/javac/code/TypeAnnotations.java b/langtools/src/share/classes/com/sun/tools/javac/code/TypeAnnotations.java
index 35ccc58a14e..88bbf4b7830 100644
--- a/langtools/src/share/classes/com/sun/tools/javac/code/TypeAnnotations.java
+++ b/langtools/src/share/classes/com/sun/tools/javac/code/TypeAnnotations.java
@@ -663,8 +663,15 @@ public class TypeAnnotations {
* type annotations: determine the type annotation positions.
*/
- private void resolveFrame(JCTree tree, JCTree frame,
- List path, TypeAnnotationPosition p) {
+ // This method is considered deprecated, and will be removed
+ // in the near future. Don't use it for anything new.
+ private TypeAnnotationPosition
+ resolveFrame(JCTree tree,
+ JCTree frame,
+ List path,
+ JCLambda currentLambda,
+ int outer_type_index,
+ ListBuffer location) {
/*
System.out.println("Resolving tree: " + tree + " kind: " + tree.getKind());
System.out.println(" Framing tree: " + frame + " kind: " + frame.getKind());
@@ -675,87 +682,101 @@ public class TypeAnnotations {
switch (frame.getKind()) {
case TYPE_CAST:
- JCTypeCast frameTC = (JCTypeCast) frame;
- p.type = TargetType.CAST;
- if (frameTC.clazz.hasTag(Tag.TYPEINTERSECTION)) {
- // This case was already handled by INTERSECTION_TYPE
- } else {
- p.type_index = 0;
- }
- p.pos = frame.pos;
- return;
+ return TypeAnnotationPosition.typeCast(location.toList(),
+ currentLambda,
+ outer_type_index,
+ frame.pos);
case INSTANCE_OF:
- p.type = TargetType.INSTANCEOF;
- p.pos = frame.pos;
- return;
+ return TypeAnnotationPosition.instanceOf(location.toList(),
+ currentLambda,
+ frame.pos);
case NEW_CLASS:
- JCNewClass frameNewClass = (JCNewClass) frame;
+ final JCNewClass frameNewClass = (JCNewClass) frame;
if (frameNewClass.def != null) {
// Special handling for anonymous class instantiations
- JCClassDecl frameClassDecl = frameNewClass.def;
+ final JCClassDecl frameClassDecl = frameNewClass.def;
if (frameClassDecl.extending == tree) {
- p.type = TargetType.CLASS_EXTENDS;
- p.type_index = -1;
+ return TypeAnnotationPosition
+ .classExtends(location.toList(), currentLambda,
+ frame.pos);
} else if (frameClassDecl.implementing.contains(tree)) {
- p.type = TargetType.CLASS_EXTENDS;
- p.type_index = frameClassDecl.implementing.indexOf(tree);
+ final int type_index =
+ frameClassDecl.implementing.indexOf(tree);
+ return TypeAnnotationPosition
+ .classExtends(location.toList(), currentLambda,
+ type_index, frame.pos);
} else {
// In contrast to CLASS below, typarams cannot occur here.
- Assert.error("Could not determine position of tree " + tree +
- " within frame " + frame);
+ throw new AssertionError("Could not determine position of tree " + tree +
+ " within frame " + frame);
}
} else if (frameNewClass.typeargs.contains(tree)) {
- p.type = TargetType.CONSTRUCTOR_INVOCATION_TYPE_ARGUMENT;
- p.type_index = frameNewClass.typeargs.indexOf(tree);
+ final int type_index =
+ frameNewClass.typeargs.indexOf(tree);
+ return TypeAnnotationPosition
+ .constructorInvocationTypeArg(location.toList(),
+ currentLambda,
+ type_index,
+ frame.pos);
} else {
- p.type = TargetType.NEW;
+ return TypeAnnotationPosition
+ .newObj(location.toList(), currentLambda,
+ frame.pos);
}
- p.pos = frame.pos;
- return;
case NEW_ARRAY:
- p.type = TargetType.NEW;
- p.pos = frame.pos;
- return;
+ return TypeAnnotationPosition
+ .newObj(location.toList(), currentLambda, frame.pos);
case ANNOTATION_TYPE:
case CLASS:
case ENUM:
case INTERFACE:
- p.pos = frame.pos;
if (((JCClassDecl)frame).extending == tree) {
- p.type = TargetType.CLASS_EXTENDS;
- p.type_index = -1;
+ return TypeAnnotationPosition
+ .classExtends(location.toList(), currentLambda,
+ frame.pos);
} else if (((JCClassDecl)frame).implementing.contains(tree)) {
- p.type = TargetType.CLASS_EXTENDS;
- p.type_index = ((JCClassDecl)frame).implementing.indexOf(tree);
+ final int type_index =
+ ((JCClassDecl)frame).implementing.indexOf(tree);
+ return TypeAnnotationPosition
+ .classExtends(location.toList(), currentLambda,
+ type_index, frame.pos);
} else if (((JCClassDecl)frame).typarams.contains(tree)) {
- p.type = TargetType.CLASS_TYPE_PARAMETER;
- p.parameter_index = ((JCClassDecl)frame).typarams.indexOf(tree);
+ final int parameter_index =
+ ((JCClassDecl)frame).typarams.indexOf(tree);
+ return TypeAnnotationPosition
+ .typeParameter(location.toList(), currentLambda,
+ parameter_index, frame.pos);
} else {
- Assert.error("Could not determine position of tree " + tree +
- " within frame " + frame);
+ throw new AssertionError("Could not determine position of tree " +
+ tree + " within frame " + frame);
}
- return;
case METHOD: {
- JCMethodDecl frameMethod = (JCMethodDecl) frame;
- p.pos = frame.pos;
+ final JCMethodDecl frameMethod = (JCMethodDecl) frame;
if (frameMethod.thrown.contains(tree)) {
- p.type = TargetType.THROWS;
- p.type_index = frameMethod.thrown.indexOf(tree);
+ final int type_index = frameMethod.thrown.indexOf(tree);
+ return TypeAnnotationPosition
+ .methodThrows(location.toList(), currentLambda,
+ type_index, frame.pos);
} else if (frameMethod.restype == tree) {
- p.type = TargetType.METHOD_RETURN;
+ return TypeAnnotationPosition
+ .methodReturn(location.toList(), currentLambda,
+ frame.pos);
} else if (frameMethod.typarams.contains(tree)) {
- p.type = TargetType.METHOD_TYPE_PARAMETER;
- p.parameter_index = frameMethod.typarams.indexOf(tree);
+ final int parameter_index =
+ frameMethod.typarams.indexOf(tree);
+ return TypeAnnotationPosition
+ .methodTypeParameter(location.toList(),
+ currentLambda,
+ parameter_index, frame.pos);
} else {
- Assert.error("Could not determine position of tree " + tree +
- " within frame " + frame);
+ throw new AssertionError("Could not determine position of tree " + tree +
+ " within frame " + frame);
}
- return;
}
case PARAMETERIZED_TYPE: {
@@ -766,25 +787,30 @@ public class TypeAnnotations {
} else if (((JCTypeApply)frame).arguments.contains(tree)) {
JCTypeApply taframe = (JCTypeApply) frame;
int arg = taframe.arguments.indexOf(tree);
- p.location = p.location.prepend(new TypePathEntry(TypePathEntryKind.TYPE_ARGUMENT, arg));
+ location = location.prepend(
+ new TypePathEntry(TypePathEntryKind.TYPE_ARGUMENT,
+ arg));
Type typeToUse;
- if (newPath.tail != null && newPath.tail.head.hasTag(Tag.NEWCLASS)) {
- // If we are within an anonymous class instantiation, use its type,
- // because it contains a correctly nested type.
+ if (newPath.tail != null &&
+ newPath.tail.head.hasTag(Tag.NEWCLASS)) {
+ // If we are within an anonymous class
+ // instantiation, use its type, because it
+ // contains a correctly nested type.
typeToUse = newPath.tail.head.type;
} else {
typeToUse = taframe.type;
}
- locateNestedTypes(typeToUse, p);
+ location = locateNestedTypes(typeToUse, location);
} else {
- Assert.error("Could not determine type argument position of tree " + tree +
- " within frame " + frame);
+ throw new AssertionError("Could not determine type argument position of tree " + tree +
+ " within frame " + frame);
}
- resolveFrame(newPath.head, newPath.tail.head, newPath, p);
- return;
+ return resolveFrame(newPath.head, newPath.tail.head,
+ newPath, currentLambda,
+ outer_type_index, location);
}
case MEMBER_REFERENCE: {
@@ -793,117 +819,140 @@ public class TypeAnnotations {
if (mrframe.expr == tree) {
switch (mrframe.mode) {
case INVOKE:
- p.type = TargetType.METHOD_REFERENCE;
- break;
+ return TypeAnnotationPosition
+ .methodRef(location.toList(), currentLambda,
+ frame.pos);
case NEW:
- p.type = TargetType.CONSTRUCTOR_REFERENCE;
- break;
+ return TypeAnnotationPosition
+ .constructorRef(location.toList(),
+ currentLambda,
+ frame.pos);
default:
- Assert.error("Unknown method reference mode " + mrframe.mode +
- " for tree " + tree + " within frame " + frame);
+ throw new AssertionError("Unknown method reference mode " + mrframe.mode +
+ " for tree " + tree + " within frame " + frame);
}
- p.pos = frame.pos;
} else if (mrframe.typeargs != null &&
mrframe.typeargs.contains(tree)) {
- int arg = mrframe.typeargs.indexOf(tree);
- p.type_index = arg;
+ final int type_index = mrframe.typeargs.indexOf(tree);
switch (mrframe.mode) {
case INVOKE:
- p.type = TargetType.METHOD_REFERENCE_TYPE_ARGUMENT;
- break;
+ return TypeAnnotationPosition
+ .methodRefTypeArg(location.toList(),
+ currentLambda,
+ type_index, frame.pos);
case NEW:
- p.type = TargetType.CONSTRUCTOR_REFERENCE_TYPE_ARGUMENT;
- break;
+ return TypeAnnotationPosition
+ .constructorRefTypeArg(location.toList(),
+ currentLambda,
+ type_index, frame.pos);
default:
- Assert.error("Unknown method reference mode " + mrframe.mode +
- " for tree " + tree + " within frame " + frame);
+ throw new AssertionError("Unknown method reference mode " + mrframe.mode +
+ " for tree " + tree + " within frame " + frame);
}
- p.pos = frame.pos;
} else {
- Assert.error("Could not determine type argument position of tree " + tree +
- " within frame " + frame);
+ throw new AssertionError("Could not determine type argument position of tree " + tree +
+ " within frame " + frame);
}
- return;
}
case ARRAY_TYPE: {
- ListBuffer index = new ListBuffer<>();
- index = index.append(TypePathEntry.ARRAY);
+ location = location.prepend(TypePathEntry.ARRAY);
List newPath = path.tail;
while (true) {
JCTree npHead = newPath.tail.head;
if (npHead.hasTag(JCTree.Tag.TYPEARRAY)) {
newPath = newPath.tail;
- index = index.append(TypePathEntry.ARRAY);
+ location = location.prepend(TypePathEntry.ARRAY);
} else if (npHead.hasTag(JCTree.Tag.ANNOTATED_TYPE)) {
newPath = newPath.tail;
} else {
break;
}
}
- p.location = p.location.prependList(index.toList());
- resolveFrame(newPath.head, newPath.tail.head, newPath, p);
- return;
+ return resolveFrame(newPath.head, newPath.tail.head,
+ newPath, currentLambda,
+ outer_type_index, location);
}
case TYPE_PARAMETER:
if (path.tail.tail.head.hasTag(JCTree.Tag.CLASSDEF)) {
- JCClassDecl clazz = (JCClassDecl)path.tail.tail.head;
- p.type = TargetType.CLASS_TYPE_PARAMETER_BOUND;
- p.parameter_index = clazz.typarams.indexOf(path.tail.head);
- p.bound_index = ((JCTypeParameter)frame).bounds.indexOf(tree);
- if (((JCTypeParameter)frame).bounds.get(0).type.isInterface()) {
- // Account for an implicit Object as bound 0
- p.bound_index += 1;
- }
+ final JCClassDecl clazz =
+ (JCClassDecl)path.tail.tail.head;
+ final int parameter_index =
+ clazz.typarams.indexOf(path.tail.head);
+ final int bound_index =
+ ((JCTypeParameter)frame).bounds.get(0)
+ .type.isInterface() ?
+ ((JCTypeParameter)frame).bounds.indexOf(tree) + 1:
+ ((JCTypeParameter)frame).bounds.indexOf(tree);
+ return TypeAnnotationPosition
+ .typeParameterBound(location.toList(),
+ currentLambda,
+ parameter_index, bound_index,
+ frame.pos);
} else if (path.tail.tail.head.hasTag(JCTree.Tag.METHODDEF)) {
- JCMethodDecl method = (JCMethodDecl)path.tail.tail.head;
- p.type = TargetType.METHOD_TYPE_PARAMETER_BOUND;
- p.parameter_index = method.typarams.indexOf(path.tail.head);
- p.bound_index = ((JCTypeParameter)frame).bounds.indexOf(tree);
- if (((JCTypeParameter)frame).bounds.get(0).type.isInterface()) {
- // Account for an implicit Object as bound 0
- p.bound_index += 1;
- }
+ final JCMethodDecl method =
+ (JCMethodDecl)path.tail.tail.head;
+ final int parameter_index =
+ method.typarams.indexOf(path.tail.head);
+ final int bound_index =
+ ((JCTypeParameter)frame).bounds.get(0)
+ .type.isInterface() ?
+ ((JCTypeParameter)frame).bounds.indexOf(tree) + 1:
+ ((JCTypeParameter)frame).bounds.indexOf(tree);
+ return TypeAnnotationPosition
+ .methodTypeParameterBound(location.toList(),
+ currentLambda,
+ parameter_index,
+ bound_index,
+ frame.pos);
} else {
- Assert.error("Could not determine position of tree " + tree +
- " within frame " + frame);
+ throw new AssertionError("Could not determine position of tree " + tree +
+ " within frame " + frame);
}
- p.pos = frame.pos;
- return;
case VARIABLE:
VarSymbol v = ((JCVariableDecl)frame).sym;
- p.pos = frame.pos;
- switch (v.getKind()) {
- case LOCAL_VARIABLE:
- p.type = TargetType.LOCAL_VARIABLE;
- break;
- case FIELD:
- p.type = TargetType.FIELD;
- break;
- case PARAMETER:
- if (v.getQualifiedName().equals(names._this)) {
- // TODO: Intro a separate ElementKind?
- p.type = TargetType.METHOD_RECEIVER;
- } else {
- p.type = TargetType.METHOD_FORMAL_PARAMETER;
- p.parameter_index = methodParamIndex(path, frame);
- }
- break;
- case EXCEPTION_PARAMETER:
- p.type = TargetType.EXCEPTION_PARAMETER;
- break;
- case RESOURCE_VARIABLE:
- p.type = TargetType.RESOURCE_VARIABLE;
- break;
- default:
- Assert.error("Found unexpected type annotation for variable: " + v + " with kind: " + v.getKind());
- }
if (v.getKind() != ElementKind.FIELD) {
v.owner.appendUniqueTypeAttributes(v.getRawTypeAttributes());
}
- return;
+ switch (v.getKind()) {
+ case LOCAL_VARIABLE:
+ return TypeAnnotationPosition
+ .localVariable(location.toList(), currentLambda,
+ frame.pos);
+ case FIELD:
+ return TypeAnnotationPosition.field(location.toList(),
+ currentLambda,
+ frame.pos);
+ case PARAMETER:
+ if (v.getQualifiedName().equals(names._this)) {
+ return TypeAnnotationPosition
+ .methodReceiver(location.toList(),
+ currentLambda,
+ frame.pos);
+ } else {
+ final int parameter_index =
+ methodParamIndex(path, frame);
+ return TypeAnnotationPosition
+ .methodParameter(location.toList(),
+ currentLambda,
+ parameter_index,
+ frame.pos);
+ }
+ case EXCEPTION_PARAMETER:
+ return TypeAnnotationPosition
+ .exceptionParameter(location.toList(),
+ currentLambda,
+ frame.pos);
+ case RESOURCE_VARIABLE:
+ return TypeAnnotationPosition
+ .resourceVariable(location.toList(),
+ currentLambda,
+ frame.pos);
+ default:
+ throw new AssertionError("Found unexpected type annotation for variable: " + v + " with kind: " + v.getKind());
+ }
case ANNOTATED_TYPE: {
if (frame == tree) {
@@ -921,83 +970,89 @@ public class TypeAnnotations {
// class/method as enclosing elements.
// There is actually nothing to do for them.
} else {
- locateNestedTypes(utype, p);
+ location = locateNestedTypes(utype, location);
}
}
List newPath = path.tail;
- resolveFrame(newPath.head, newPath.tail.head, newPath, p);
- return;
+ return resolveFrame(newPath.head, newPath.tail.head,
+ newPath, currentLambda,
+ outer_type_index, location);
}
case UNION_TYPE: {
List newPath = path.tail;
- resolveFrame(newPath.head, newPath.tail.head, newPath, p);
- return;
+ return resolveFrame(newPath.head, newPath.tail.head,
+ newPath, currentLambda,
+ outer_type_index, location);
}
case INTERSECTION_TYPE: {
JCTypeIntersection isect = (JCTypeIntersection)frame;
- p.type_index = isect.bounds.indexOf(tree);
- List newPath = path.tail;
- resolveFrame(newPath.head, newPath.tail.head, newPath, p);
- return;
+ final List newPath = path.tail;
+ return resolveFrame(newPath.head, newPath.tail.head,
+ newPath, currentLambda,
+ isect.bounds.indexOf(tree), location);
}
case METHOD_INVOCATION: {
JCMethodInvocation invocation = (JCMethodInvocation)frame;
if (!invocation.typeargs.contains(tree)) {
- Assert.error("{" + tree + "} is not an argument in the invocation: " + invocation);
+ throw new AssertionError("{" + tree + "} is not an argument in the invocation: " + invocation);
}
MethodSymbol exsym = (MethodSymbol) TreeInfo.symbol(invocation.getMethodSelect());
+ final int type_index = invocation.typeargs.indexOf(tree);
if (exsym == null) {
- Assert.error("could not determine symbol for {" + invocation + "}");
+ throw new AssertionError("could not determine symbol for {" + invocation + "}");
} else if (exsym.isConstructor()) {
- p.type = TargetType.CONSTRUCTOR_INVOCATION_TYPE_ARGUMENT;
+ return TypeAnnotationPosition
+ .constructorInvocationTypeArg(location.toList(),
+ currentLambda,
+ type_index,
+ invocation.pos);
} else {
- p.type = TargetType.METHOD_INVOCATION_TYPE_ARGUMENT;
+ return TypeAnnotationPosition
+ .methodInvocationTypeArg(location.toList(),
+ currentLambda,
+ type_index,
+ invocation.pos);
}
- p.pos = invocation.pos;
- p.type_index = invocation.typeargs.indexOf(tree);
- return;
}
case EXTENDS_WILDCARD:
case SUPER_WILDCARD: {
// Annotations in wildcard bounds
- p.location = p.location.prepend(TypePathEntry.WILDCARD);
- List newPath = path.tail;
- resolveFrame(newPath.head, newPath.tail.head, newPath, p);
- return;
+ final List newPath = path.tail;
+ return resolveFrame(newPath.head, newPath.tail.head,
+ newPath, currentLambda,
+ outer_type_index,
+ location.prepend(TypePathEntry.WILDCARD));
}
case MEMBER_SELECT: {
- List newPath = path.tail;
- resolveFrame(newPath.head, newPath.tail.head, newPath, p);
- return;
+ final List newPath = path.tail;
+ return resolveFrame(newPath.head, newPath.tail.head,
+ newPath, currentLambda,
+ outer_type_index, location);
}
default:
- Assert.error("Unresolved frame: " + frame + " of kind: " + frame.getKind() +
- "\n Looking for tree: " + tree);
- return;
+ throw new AssertionError("Unresolved frame: " + frame +
+ " of kind: " + frame.getKind() +
+ "\n Looking for tree: " + tree);
}
}
- private void locateNestedTypes(Type type, TypeAnnotationPosition p) {
- // The number of "steps" to get from the full type to the
- // left-most outer type.
- ListBuffer depth = new ListBuffer<>();
-
+ private ListBuffer
+ locateNestedTypes(Type type,
+ ListBuffer depth) {
Type encl = type.getEnclosingType();
while (encl != null &&
encl.getKind() != TypeKind.NONE &&
encl.getKind() != TypeKind.ERROR) {
- depth = depth.append(TypePathEntry.INNER_TYPE);
+ depth = depth.prepend(TypePathEntry.INNER_TYPE);
encl = encl.getEnclosingType();
}
- if (depth.nonEmpty()) {
- p.location = p.location.prependList(depth.toList());
- }
+ return depth;
}
private int methodParamIndex(List path, JCTree param) {
@@ -1048,18 +1103,18 @@ public class TypeAnnotations {
}
if (sigOnly) {
if (!tree.mods.annotations.isEmpty()) {
- // Nothing to do for separateAnnotationsKinds if
- // there are no annotations of either kind.
- TypeAnnotationPosition pos = new TypeAnnotationPosition();
- pos.type = TargetType.METHOD_RETURN;
if (tree.sym.isConstructor()) {
- pos.pos = tree.pos;
- // Use null to mark that the annotations go with the symbol.
+ final TypeAnnotationPosition pos =
+ TypeAnnotationPosition.methodReturn(tree.pos);
+ // Use null to mark that the annotations go
+ // with the symbol.
separateAnnotationsKinds(tree, null, tree.sym, pos);
} else {
- pos.pos = tree.restype.pos;
- separateAnnotationsKinds(tree.restype, tree.sym.type.getReturnType(),
- tree.sym, pos);
+ final TypeAnnotationPosition pos =
+ TypeAnnotationPosition.methodReturn(tree.restype.pos);
+ separateAnnotationsKinds(tree.restype,
+ tree.sym.type.getReturnType(),
+ tree.sym, pos);
}
}
if (tree.recvparam != null && tree.recvparam.sym != null &&
@@ -1067,22 +1122,22 @@ public class TypeAnnotations {
// Nothing to do for separateAnnotationsKinds if
// there are no annotations of either kind.
// TODO: make sure there are no declaration annotations.
- TypeAnnotationPosition pos = new TypeAnnotationPosition();
- pos.type = TargetType.METHOD_RECEIVER;
- pos.pos = tree.recvparam.vartype.pos;
- separateAnnotationsKinds(tree.recvparam.vartype, tree.recvparam.sym.type,
- tree.recvparam.sym, pos);
+ final TypeAnnotationPosition pos =
+ TypeAnnotationPosition.methodReceiver(tree.recvparam.vartype.pos);
+ separateAnnotationsKinds(tree.recvparam.vartype,
+ tree.recvparam.sym.type,
+ tree.recvparam.sym, pos);
}
int i = 0;
for (JCVariableDecl param : tree.params) {
if (!param.mods.annotations.isEmpty()) {
// Nothing to do for separateAnnotationsKinds if
// there are no annotations of either kind.
- TypeAnnotationPosition pos = new TypeAnnotationPosition();
- pos.type = TargetType.METHOD_FORMAL_PARAMETER;
- pos.parameter_index = i;
- pos.pos = param.vartype.pos;
- separateAnnotationsKinds(param.vartype, param.sym.type, param.sym, pos);
+ final TypeAnnotationPosition pos =
+ TypeAnnotationPosition.methodParameter(i, param.vartype.pos);
+ separateAnnotationsKinds(param.vartype,
+ param.sym.type,
+ param.sym, pos);
}
++i;
}
@@ -1119,11 +1174,9 @@ public class TypeAnnotations {
if (!param.mods.annotations.isEmpty()) {
// Nothing to do for separateAnnotationsKinds if
// there are no annotations of either kind.
- TypeAnnotationPosition pos = new TypeAnnotationPosition();
- pos.type = TargetType.METHOD_FORMAL_PARAMETER;
- pos.parameter_index = i;
- pos.pos = param.vartype.pos;
- pos.onLambda = tree;
+ final TypeAnnotationPosition pos =
+ TypeAnnotationPosition.methodParameter(tree, i,
+ param.vartype.pos);
separateAnnotationsKinds(param.vartype, param.sym.type, param.sym, pos);
}
++i;
@@ -1153,28 +1206,24 @@ public class TypeAnnotations {
// Parameters are handled in visitMethodDef or visitLambda.
} else if (tree.sym.getKind() == ElementKind.FIELD) {
if (sigOnly) {
- TypeAnnotationPosition pos = new TypeAnnotationPosition();
- pos.type = TargetType.FIELD;
- pos.pos = tree.pos;
+ TypeAnnotationPosition pos =
+ TypeAnnotationPosition.field(tree.pos);
separateAnnotationsKinds(tree.vartype, tree.sym.type, tree.sym, pos);
}
} else if (tree.sym.getKind() == ElementKind.LOCAL_VARIABLE) {
- TypeAnnotationPosition pos = new TypeAnnotationPosition();
- pos.type = TargetType.LOCAL_VARIABLE;
- pos.pos = tree.pos;
- pos.onLambda = currentLambda;
+ final TypeAnnotationPosition pos =
+ TypeAnnotationPosition.localVariable(currentLambda,
+ tree.pos);
separateAnnotationsKinds(tree.vartype, tree.sym.type, tree.sym, pos);
} else if (tree.sym.getKind() == ElementKind.EXCEPTION_PARAMETER) {
- TypeAnnotationPosition pos = new TypeAnnotationPosition();
- pos.type = TargetType.EXCEPTION_PARAMETER;
- pos.pos = tree.pos;
- pos.onLambda = currentLambda;
+ final TypeAnnotationPosition pos =
+ TypeAnnotationPosition.exceptionParameter(currentLambda,
+ tree.pos);
separateAnnotationsKinds(tree.vartype, tree.sym.type, tree.sym, pos);
} else if (tree.sym.getKind() == ElementKind.RESOURCE_VARIABLE) {
- TypeAnnotationPosition pos = new TypeAnnotationPosition();
- pos.type = TargetType.RESOURCE_VARIABLE;
- pos.pos = tree.pos;
- pos.onLambda = currentLambda;
+ final TypeAnnotationPosition pos =
+ TypeAnnotationPosition.resourceVariable(currentLambda,
+ tree.pos);
separateAnnotationsKinds(tree.vartype, tree.sym.type, tree.sym, pos);
} else if (tree.sym.getKind() == ElementKind.ENUM_CONSTANT) {
// No type annotations can occur here.
@@ -1218,7 +1267,8 @@ public class TypeAnnotations {
private void copyNewClassAnnotationsToOwner(JCNewClass tree) {
Symbol sym = tree.def.sym;
- TypeAnnotationPosition pos = new TypeAnnotationPosition();
+ final TypeAnnotationPosition pos =
+ TypeAnnotationPosition.newObj(tree.pos);
ListBuffer newattrs = new ListBuffer<>();
for (Attribute.TypeCompound old : sym.getRawTypeAttributes()) {
@@ -1226,8 +1276,6 @@ public class TypeAnnotations {
pos));
}
- pos.type = TargetType.NEW;
- pos.pos = tree.pos;
sym.owner.appendUniqueTypeAttributes(newattrs.toList());
}
@@ -1236,16 +1284,16 @@ public class TypeAnnotations {
if (tree.def != null &&
!tree.def.mods.annotations.isEmpty()) {
JCClassDecl classdecl = tree.def;
- TypeAnnotationPosition pos = new TypeAnnotationPosition();
- pos.type = TargetType.CLASS_EXTENDS;
- pos.pos = tree.pos;
+ TypeAnnotationPosition pos;
+
if (classdecl.extending == tree.clazz) {
- pos.type_index = -1;
+ pos = TypeAnnotationPosition.classExtends(tree.pos);
} else if (classdecl.implementing.contains(tree.clazz)) {
- pos.type_index = classdecl.implementing.indexOf(tree.clazz);
+ final int index = classdecl.implementing.indexOf(tree.clazz);
+ pos = TypeAnnotationPosition.classExtends(index, tree.pos);
} else {
// In contrast to CLASS elsewhere, typarams cannot occur here.
- Assert.error("Could not determine position of tree " + tree);
+ throw new AssertionError("Could not determine position of tree " + tree);
}
Type before = classdecl.sym.type;
separateAnnotationsKinds(classdecl, tree.clazz.type, classdecl.sym, pos);
@@ -1273,14 +1321,16 @@ public class TypeAnnotations {
// handle annotations associated with dimensions
for (int i = 0; i < dimAnnosCount; ++i) {
- TypeAnnotationPosition p = new TypeAnnotationPosition();
- p.pos = tree.pos;
- p.onLambda = currentLambda;
- p.type = TargetType.NEW;
+ ListBuffer location =
+ new ListBuffer();
if (i != 0) {
depth = depth.append(TypePathEntry.ARRAY);
- p.location = p.location.appendList(depth.toList());
+ location = location.appendList(depth.toList());
}
+ final TypeAnnotationPosition p =
+ TypeAnnotationPosition.newObj(location.toList(),
+ currentLambda,
+ tree.pos);
setTypeAnnotationPos(tree.dimAnnotations.get(i), p);
}
@@ -1293,12 +1343,14 @@ public class TypeAnnotations {
while (elemType != null) {
if (elemType.hasTag(JCTree.Tag.ANNOTATED_TYPE)) {
JCAnnotatedType at = (JCAnnotatedType)elemType;
- TypeAnnotationPosition p = new TypeAnnotationPosition();
- p.type = TargetType.NEW;
- p.pos = tree.pos;
- p.onLambda = currentLambda;
- locateNestedTypes(elemType.type, p);
- p.location = p.location.prependList(depth.toList());
+ final ListBuffer locationbuf =
+ locateNestedTypes(elemType.type,
+ new ListBuffer());
+ final List location =
+ locationbuf.toList().prependList(depth.toList());
+ final TypeAnnotationPosition p =
+ TypeAnnotationPosition.newObj(location, currentLambda,
+ tree.pos);
setTypeAnnotationPos(at.annotations, p);
elemType = at.underlyingType;
} else if (elemType.hasTag(JCTree.Tag.TYPEARRAY)) {
@@ -1320,9 +1372,9 @@ public class TypeAnnotations {
System.err.println(" tree: " + tree + " kind: " + tree.getKind());
System.err.println(" frame: " + frame + " kind: " + frame.getKind());
*/
- TypeAnnotationPosition p = new TypeAnnotationPosition();
- p.onLambda = currentLambda;
- resolveFrame(tree, frame, frames.toList(), p);
+ final TypeAnnotationPosition p =
+ resolveFrame(tree, frame, frames.toList(), currentLambda, 0,
+ new ListBuffer());
setTypeAnnotationPos(annotations, p);
}
}
diff --git a/langtools/src/share/classes/com/sun/tools/javac/comp/Annotate.java b/langtools/src/share/classes/com/sun/tools/javac/comp/Annotate.java
index 981d94f4250..fe0b39a885b 100644
--- a/langtools/src/share/classes/com/sun/tools/javac/comp/Annotate.java
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Annotate.java
@@ -299,7 +299,13 @@ public class Annotate {
if (typeAnnotation) {
if (a.attribute == null || !(a.attribute instanceof Attribute.TypeCompound)) {
// Create a new TypeCompound
- Attribute.TypeCompound tc = new Attribute.TypeCompound(a.type, buf.toList(), new TypeAnnotationPosition());
+
+ Attribute.TypeCompound tc =
+ new Attribute.TypeCompound(a.type, buf.toList(),
+ // TODO: Eventually, we will get rid of this use of
+ // unknown, because we'll get a position from
+ // MemberEnter (task 8027262).
+ TypeAnnotationPosition.unknown);
a.attribute = tc;
return tc;
} else {
diff --git a/langtools/src/share/classes/com/sun/tools/javac/jvm/ClassReader.java b/langtools/src/share/classes/com/sun/tools/javac/jvm/ClassReader.java
index 76a81f72e70..ba6fc9e4cf1 100644
--- a/langtools/src/share/classes/com/sun/tools/javac/jvm/ClassReader.java
+++ b/langtools/src/share/classes/com/sun/tools/javac/jvm/ClassReader.java
@@ -1469,26 +1469,46 @@ public class ClassReader {
if (!TargetType.isValidTargetTypeValue(tag))
throw this.badClassFile("bad.type.annotation.value", String.format("0x%02X", tag));
- TypeAnnotationPosition position = new TypeAnnotationPosition();
TargetType type = TargetType.fromTargetTypeValue(tag);
- position.type = type;
-
switch (type) {
// instanceof
- case INSTANCEOF:
+ case INSTANCEOF: {
+ final int offset = nextChar();
+ final TypeAnnotationPosition position =
+ TypeAnnotationPosition.instanceOf(readTypePath());
+ position.offset = offset;
+ return position;
+ }
// new expression
- case NEW:
+ case NEW: {
+ final int offset = nextChar();
+ final TypeAnnotationPosition position =
+ TypeAnnotationPosition.newObj(readTypePath());
+ position.offset = offset;
+ return position;
+ }
// constructor/method reference receiver
- case CONSTRUCTOR_REFERENCE:
- case METHOD_REFERENCE:
- position.offset = nextChar();
- break;
+ case CONSTRUCTOR_REFERENCE: {
+ final int offset = nextChar();
+ final TypeAnnotationPosition position =
+ TypeAnnotationPosition.constructorRef(readTypePath());
+ position.offset = offset;
+ return position;
+ }
+ case METHOD_REFERENCE: {
+ final int offset = nextChar();
+ final TypeAnnotationPosition position =
+ TypeAnnotationPosition.methodRef(readTypePath());
+ position.offset = offset;
+ return position;
+ }
// local variable
- case LOCAL_VARIABLE:
- // resource variable
- case RESOURCE_VARIABLE:
- int table_length = nextChar();
+ case LOCAL_VARIABLE: {
+ final int table_length = nextChar();
+ final TypeAnnotationPosition position =
+ TypeAnnotationPosition.localVariable(readTypePath());
+
position.lvarOffset = new int[table_length];
position.lvarLength = new int[table_length];
position.lvarIndex = new int[table_length];
@@ -1498,67 +1518,142 @@ public class ClassReader {
position.lvarLength[i] = nextChar();
position.lvarIndex[i] = nextChar();
}
- break;
+ return position;
+ }
+ // resource variable
+ case RESOURCE_VARIABLE: {
+ final int table_length = nextChar();
+ final TypeAnnotationPosition position =
+ TypeAnnotationPosition.resourceVariable(readTypePath());
+
+ position.lvarOffset = new int[table_length];
+ position.lvarLength = new int[table_length];
+ position.lvarIndex = new int[table_length];
+
+ for (int i = 0; i < table_length; ++i) {
+ position.lvarOffset[i] = nextChar();
+ position.lvarLength[i] = nextChar();
+ position.lvarIndex[i] = nextChar();
+ }
+ return position;
+ }
// exception parameter
- case EXCEPTION_PARAMETER:
- position.exception_index = nextChar();
- break;
+ case EXCEPTION_PARAMETER: {
+ final int exception_index = nextChar();
+ final TypeAnnotationPosition position =
+ TypeAnnotationPosition.exceptionParameter(readTypePath());
+ position.exception_index = exception_index;
+ return position;
+ }
// method receiver
case METHOD_RECEIVER:
- // Do nothing
- break;
+ return TypeAnnotationPosition.methodReceiver(readTypePath());
// type parameter
- case CLASS_TYPE_PARAMETER:
- case METHOD_TYPE_PARAMETER:
- position.parameter_index = nextByte();
- break;
+ case CLASS_TYPE_PARAMETER: {
+ final int parameter_index = nextByte();
+ return TypeAnnotationPosition
+ .typeParameter(readTypePath(), parameter_index);
+ }
+ case METHOD_TYPE_PARAMETER: {
+ final int parameter_index = nextByte();
+ return TypeAnnotationPosition
+ .methodTypeParameter(readTypePath(), parameter_index);
+ }
// type parameter bound
- case CLASS_TYPE_PARAMETER_BOUND:
- case METHOD_TYPE_PARAMETER_BOUND:
- position.parameter_index = nextByte();
- position.bound_index = nextByte();
- break;
+ case CLASS_TYPE_PARAMETER_BOUND: {
+ final int parameter_index = nextByte();
+ final int bound_index = nextByte();
+ return TypeAnnotationPosition
+ .typeParameterBound(readTypePath(), parameter_index,
+ bound_index);
+ }
+ case METHOD_TYPE_PARAMETER_BOUND: {
+ final int parameter_index = nextByte();
+ final int bound_index = nextByte();
+ return TypeAnnotationPosition
+ .methodTypeParameterBound(readTypePath(), parameter_index,
+ bound_index);
+ }
// class extends or implements clause
- case CLASS_EXTENDS:
- position.type_index = nextChar();
- break;
+ case CLASS_EXTENDS: {
+ final int type_index = nextChar();
+ return TypeAnnotationPosition.classExtends(readTypePath(),
+ type_index);
+ }
// throws
- case THROWS:
- position.type_index = nextChar();
- break;
+ case THROWS: {
+ final int type_index = nextChar();
+ return TypeAnnotationPosition.methodThrows(readTypePath(),
+ type_index);
+ }
// method parameter
- case METHOD_FORMAL_PARAMETER:
- position.parameter_index = nextByte();
- break;
+ case METHOD_FORMAL_PARAMETER: {
+ final int parameter_index = nextByte();
+ return TypeAnnotationPosition.methodParameter(readTypePath(),
+ parameter_index);
+ }
// type cast
- case CAST:
+ case CAST: {
+ final int offset = nextChar();
+ final int type_index = nextByte();
+ final TypeAnnotationPosition position =
+ TypeAnnotationPosition.typeCast(readTypePath(), type_index);
+ position.offset = offset;
+ return position;
+ }
// method/constructor/reference type argument
- case CONSTRUCTOR_INVOCATION_TYPE_ARGUMENT:
- case METHOD_INVOCATION_TYPE_ARGUMENT:
- case CONSTRUCTOR_REFERENCE_TYPE_ARGUMENT:
- case METHOD_REFERENCE_TYPE_ARGUMENT:
- position.offset = nextChar();
- position.type_index = nextByte();
- break;
+ case CONSTRUCTOR_INVOCATION_TYPE_ARGUMENT: {
+ final int offset = nextChar();
+ final int type_index = nextByte();
+ final TypeAnnotationPosition position = TypeAnnotationPosition
+ .constructorInvocationTypeArg(readTypePath(), type_index);
+ position.offset = offset;
+ return position;
+ }
+ case METHOD_INVOCATION_TYPE_ARGUMENT: {
+ final int offset = nextChar();
+ final int type_index = nextByte();
+ final TypeAnnotationPosition position = TypeAnnotationPosition
+ .methodInvocationTypeArg(readTypePath(), type_index);
+ position.offset = offset;
+ return position;
+ }
+ case CONSTRUCTOR_REFERENCE_TYPE_ARGUMENT: {
+ final int offset = nextChar();
+ final int type_index = nextByte();
+ final TypeAnnotationPosition position = TypeAnnotationPosition
+ .constructorRefTypeArg(readTypePath(), type_index);
+ position.offset = offset;
+ return position;
+ }
+ case METHOD_REFERENCE_TYPE_ARGUMENT: {
+ final int offset = nextChar();
+ final int type_index = nextByte();
+ final TypeAnnotationPosition position = TypeAnnotationPosition
+ .methodRefTypeArg(readTypePath(), type_index);
+ position.offset = offset;
+ return position;
+ }
// We don't need to worry about these
case METHOD_RETURN:
+ return TypeAnnotationPosition.methodReturn(readTypePath());
case FIELD:
- break;
+ return TypeAnnotationPosition.field(readTypePath());
case UNKNOWN:
throw new AssertionError("jvm.ClassReader: UNKNOWN target type should never occur!");
default:
- throw new AssertionError("jvm.ClassReader: Unknown target type for position: " + position);
+ throw new AssertionError("jvm.ClassReader: Unknown target type for position: " + type);
}
+ }
- { // See whether there is location info and read it
- int len = nextByte();
- ListBuffer loc = new ListBuffer<>();
- for (int i = 0; i < len * TypeAnnotationPosition.TypePathEntry.bytesPerEntry; ++i)
- loc = loc.append(nextByte());
- position.location = TypeAnnotationPosition.getTypePathFromBinary(loc.toList());
- }
+ List readTypePath() {
+ int len = nextByte();
+ ListBuffer loc = new ListBuffer<>();
+ for (int i = 0; i < len * TypeAnnotationPosition.TypePathEntry.bytesPerEntry; ++i)
+ loc = loc.append(nextByte());
+
+ return TypeAnnotationPosition.getTypePathFromBinary(loc.toList());
- return position;
}
Attribute readAttributeValue() {
diff --git a/langtools/src/share/classes/com/sun/tools/javac/tree/JCTree.java b/langtools/src/share/classes/com/sun/tools/javac/tree/JCTree.java
index ccaa833e461..10eae9fcf87 100644
--- a/langtools/src/share/classes/com/sun/tools/javac/tree/JCTree.java
+++ b/langtools/src/share/classes/com/sun/tools/javac/tree/JCTree.java
@@ -2299,6 +2299,9 @@ public abstract class JCTree implements Tree, Cloneable, DiagnosticPosition {
// Attribute.Compound if tag is ANNOTATION
// Attribute.TypeCompound if tag is TYPE_ANNOTATION
+ //
+ // NOTE: This field is slated for removal in the future. Do
+ // not use it for anything new.
public Attribute.Compound attribute;
protected JCAnnotation(Tag tag, JCTree annotationType, List args) {
From a80e3ed0ee72e396578df5bdfce82041780d8035 Mon Sep 17 00:00:00 2001
From: Joe Darcy
Date: Mon, 3 Feb 2014 22:26:26 -0800
Subject: [PATCH 146/181] 8033527: Fix raw type lint warning in sun.nio.ch
Reviewed-by: henryjen, mchung
---
jdk/src/share/classes/sun/nio/ch/Reflect.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/jdk/src/share/classes/sun/nio/ch/Reflect.java b/jdk/src/share/classes/sun/nio/ch/Reflect.java
index 3ef3d9309f0..fc5276c53c4 100644
--- a/jdk/src/share/classes/sun/nio/ch/Reflect.java
+++ b/jdk/src/share/classes/sun/nio/ch/Reflect.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -75,7 +75,7 @@ class Reflect { // package-private
static Method lookupMethod(String className,
String methodName,
- Class... paramTypes)
+ Class>... paramTypes)
{
try {
Class> cl = Class.forName(className);
From 6c54a7ef11b18d547db38372ab0490f6ab7acde4 Mon Sep 17 00:00:00 2001
From: Magnus Ihse Bursie
Date: Tue, 4 Feb 2014 10:00:24 +0100
Subject: [PATCH 147/181] 8033236: Update GensrcCharsetMapping.gmk to
build-infra standards
Reviewed-by: erikj, mduigou, sherman
---
jdk/make/GenerateSources.gmk | 1 +
jdk/make/Tools.gmk | 2 +-
.../data/charsetmapping}/standard-charsets | 7 +-
jdk/make/gensrc/GensrcCharsetMapping.gmk | 181 ++++++++++++------
jdk/make/scripts/genCharsetProvider.sh | 131 -------------
.../classes/build/tools/hasher/Hasher.java | 15 +-
.../sun/nio/cs/StandardCharsets.java.template | 48 +++++
7 files changed, 184 insertions(+), 201 deletions(-)
rename jdk/{src/share/classes/sun/nio/cs => make/data/charsetmapping}/standard-charsets (97%)
delete mode 100644 jdk/make/scripts/genCharsetProvider.sh
create mode 100644 jdk/src/share/classes/sun/nio/cs/StandardCharsets.java.template
diff --git a/jdk/make/GenerateSources.gmk b/jdk/make/GenerateSources.gmk
index ba443f7da52..732c0c83f8a 100644
--- a/jdk/make/GenerateSources.gmk
+++ b/jdk/make/GenerateSources.gmk
@@ -29,6 +29,7 @@ include $(SPEC)
include MakeBase.gmk
include JavaCompilation.gmk
include NativeCompilation.gmk
+include TextFileProcessing.gmk
# Setup the java compilers for the JDK build.
include Setup.gmk
diff --git a/jdk/make/Tools.gmk b/jdk/make/Tools.gmk
index 1c3b791f621..2336ed4ce98 100644
--- a/jdk/make/Tools.gmk
+++ b/jdk/make/Tools.gmk
@@ -102,7 +102,7 @@ TOOL_JDWPGEN = $(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses build.tools.jdwpgen.Main
# TODO: Lots of files in jdk/make/tools/CharsetMapping dir
TOOL_CHARSETMAPPING = $(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
- build.tools.charsetmapping.Main
+ build.tools.charsetmapping.Main $(LOG_INFO)
TOOL_SPP = $(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses build.tools.spp.Spp
diff --git a/jdk/src/share/classes/sun/nio/cs/standard-charsets b/jdk/make/data/charsetmapping/standard-charsets
similarity index 97%
rename from jdk/src/share/classes/sun/nio/cs/standard-charsets
rename to jdk/make/data/charsetmapping/standard-charsets
index 0785a4edafc..f9f4db12c6a 100644
--- a/jdk/src/share/classes/sun/nio/cs/standard-charsets
+++ b/jdk/make/data/charsetmapping/standard-charsets
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -34,11 +34,6 @@
# compared to the charsets packaged in "ExtendedCharsets" provider,
# which is lazy initialized.
-# This year should only change if the generated source is modified.
-copyright 2000, 2007,
-package sun.nio.cs
-class StandardCharsets
-
charset US-ASCII US_ASCII
# IANA aliases
diff --git a/jdk/make/gensrc/GensrcCharsetMapping.gmk b/jdk/make/gensrc/GensrcCharsetMapping.gmk
index 5624ebfae4b..821f4e03071 100644
--- a/jdk/make/gensrc/GensrcCharsetMapping.gmk
+++ b/jdk/make/gensrc/GensrcCharsetMapping.gmk
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -25,80 +25,151 @@
GENSRC_CHARSETMAPPING :=
-GENSRC_TMP := $(JDK_OUTPUTDIR)/gensrc
-GENSRC_DST := $(JDK_OUTPUTDIR)/gensrc/sun/nio/cs
-
-GENSRC_DATA := $(JDK_TOPDIR)/make/data/charsetmapping
-GENSRC_JAVA_SRC := $(JDK_TOPDIR)/make/src/classes/build/tools/charsetmapping
-
-GENSRC_TEMPLATES := $(GENSRC_DATA)/SingleByte-X.java.template $(GENSRC_DATA)/DoubleByte-X.java.template
+CHARSET_DATA_DIR := $(JDK_TOPDIR)/make/data/charsetmapping
###
-
-$(GENSRC_TMP)/_the.charsetmapping.dir:
- $(ECHO) Generating charsetmapping classes
- $(MKDIR) -p $(GENSRC_DST)/ext
- $(TOUCH) $@
-
+### Generate files using the charsetmapping tool
###
-GENSRC_SB := $(GENSRC_TMP)/_the.charsetmapping.sbcs
+CHARSET_GENSRC_JAVA_DIR := $(JDK_OUTPUTDIR)/gensrc/sun/nio/cs
+CHARSET_DONE := $(CHARSET_GENSRC_JAVA_DIR)/_the.charsetmapping
+CHARSET_COPYRIGHT_HEADER_BASE := $(JDK_TOPDIR)/make/src/classes/build/tools/charsetmapping
+CHARSET_TEMPLATES := \
+ $(CHARSET_DATA_DIR)/SingleByte-X.java.template \
+ $(CHARSET_DATA_DIR)/DoubleByte-X.java.template
-$(GENSRC_SB): $(GENSRC_DATA)/sbcs $(GENSRC_TEMPLATES) $(GENSRC_TMP)/_the.charsetmapping.dir
- $(TOOL_CHARSETMAPPING) $(LOG_INFO) $(GENSRC_DATA) $(GENSRC_DST) sbcs
- $(TOUCH) $@
+# This target should be referenced using the order-only operator (|)
+$(CHARSET_GENSRC_JAVA_DIR)/ext:
+ $(ECHO) "Generating charset mappings"
+ $(MKDIR) -p $(CHARSET_GENSRC_JAVA_DIR)/ext
-GENSRC_CHARSETMAPPING += $(GENSRC_SB)
+$(CHARSET_DONE)-sbcs: $(CHARSET_DATA_DIR)/sbcs \
+ $(CHARSET_TEMPLATES) $(BUILD_TOOLS) | $(CHARSET_GENSRC_JAVA_DIR)/ext
+ $(TOOL_CHARSETMAPPING) $(CHARSET_DATA_DIR) $(CHARSET_GENSRC_JAVA_DIR) sbcs
+ $(TOUCH) '$@'
+
+$(CHARSET_DONE)-extsbcs: $(CHARSET_DATA_DIR)/extsbcs \
+ $(CHARSET_DONE)-sbcs $(CHARSET_TEMPLATES) $(BUILD_TOOLS)
+ $(TOOL_CHARSETMAPPING) $(CHARSET_DATA_DIR) $(CHARSET_GENSRC_JAVA_DIR)/ext extsbcs
+ $(TOUCH) '$@'
+
+$(CHARSET_DONE)-dbcs: $(CHARSET_DATA_DIR)/dbcs \
+ $(CHARSET_DONE)-sbcs $(CHARSET_TEMPLATES) $(BUILD_TOOLS)
+ $(TOOL_CHARSETMAPPING) $(CHARSET_DATA_DIR) $(CHARSET_GENSRC_JAVA_DIR)/ext dbcs
+ $(TOUCH) '$@'
+
+$(CHARSET_DONE)-hkscs: $(CHARSET_COPYRIGHT_HEADER_BASE)/HKSCS.java \
+ $(CHARSET_DONE)-sbcs $(BUILD_TOOLS)
+ $(TOOL_CHARSETMAPPING) $(CHARSET_DATA_DIR) $(CHARSET_GENSRC_JAVA_DIR)/ext hkscs '$<'
+ $(TOUCH) '$@'
+
+$(CHARSET_DONE)-euctw: $(CHARSET_COPYRIGHT_HEADER_BASE)/EUC_TW.java \
+ $(CHARSET_DONE)-sbcs $(BUILD_TOOLS)
+ $(TOOL_CHARSETMAPPING) $(CHARSET_DATA_DIR) $(CHARSET_GENSRC_JAVA_DIR)/ext euctw '$<'
+ $(TOUCH) '$@'
+
+$(CHARSET_GENSRC_JAVA_DIR)/ext/sjis0213.dat: $(CHARSET_DATA_DIR)/sjis0213.map \
+ $(CHARSET_DONE)-sbcs $(BUILD_TOOLS)
+ $(TOOL_CHARSETMAPPING) '$<' '$@' sjis0213
+
+GENSRC_CHARSETMAPPING += \
+ $(CHARSET_DONE)-sbcs \
+ $(CHARSET_DONE)-extsbcs \
+ $(CHARSET_DONE)-dbcs \
+ $(CHARSET_DONE)-hkscs \
+ $(CHARSET_DONE)-euctw \
+ $(CHARSET_GENSRC_JAVA_DIR)/ext/sjis0213.dat \
+ #
###
-
-$(GENSRC_DST)/ext/sjis0213.dat: $(GENSRC_DATA)/sjis0213.map $(GENSRC_SB)
- $(TOOL_CHARSETMAPPING) $(LOG_INFO) $< $@ sjis0213
-
-GENSRC_CHARSETMAPPING += $(GENSRC_DST)/ext/sjis0213.dat
-
+### Generate the sun/nio/cs/StandardCharsets.java file
###
-$(GENSRC_DST)/ext/EUC_TWMapping.java: $(GENSRC_JAVA_SRC)/EUC_TW.java $(GENSRC_SB)
- $(TOOL_CHARSETMAPPING) $(LOG_INFO) $(GENSRC_DATA) $(GENSRC_DST)/ext euctw $(GENSRC_JAVA_SRC)/EUC_TW.java
+CHARSET_STANDARD_GENSRC_DIR := $(JDK_OUTPUTDIR)/gensrc/standardcharsets
+CHARSET_STANDARD_DATA := $(CHARSET_DATA_DIR)/standard-charsets
+CHARSET_STANDARD_JAVA := sun/nio/cs/StandardCharsets.java
-GENSRC_CHARSETMAPPING += $(GENSRC_DST)/ext/EUC_TWMapping.java
+CHARSET_ALIASES_TABLES_AWK := ' \
+ BEGIN { n = 1; m = 1; } \
+ /^[ \t]*charset / { \
+ csn = $$2; cln = $$3; \
+ lcsn = tolower(csn); \
+ lcsns[n++] = lcsn; \
+ csns[lcsn] = csn; \
+ classMap[lcsn] = cln; \
+ if (n > 2) \
+ printf " };\n\n"; \
+ printf " static final String[] aliases_%s = new String[] {\n", cln; \
+ } \
+ /^[ \t]*alias / { \
+ acsns[m++] = tolower($$2); \
+ aliasMap[tolower($$2)] = lcsn; \
+ printf " \"%s\",\n", $$2; \
+ } \
+ END { \
+ printf " };\n\n"; \
+ } '
-###
+CHARSET_ALIASES_MAP_AWK := ' \
+ /^[ \t]*charset / { \
+ csn = $$2; \
+ lcsn = tolower(csn); \
+ } \
+ /^[ \t]*alias / { \
+ an = tolower($$2); \
+ printf "%-20s \"%s\"\n", an, lcsn; \
+ } '
-$(GENSRC_DST)/ext/HKSCSMapping.java: $(GENSRC_JAVA_SRC)/HKSCS.java $(GENSRC_SB)
- $(TOOL_CHARSETMAPPING) $(LOG_INFO) $(GENSRC_DATA) $(GENSRC_DST)/ext hkscs $(GENSRC_JAVA_SRC)/HKSCS.java
+CHARSET_CLASSES_MAP_AWK := ' \
+ /^[ \t]*charset / { \
+ csn = $$2; cln = $$3; \
+ lcsn = tolower(csn); \
+ printf "%-20s \"%s\"\n", lcsn, cln; \
+ } '
-GENSRC_CHARSETMAPPING += $(GENSRC_DST)/ext/HKSCSMapping.java
+# This target should be referenced using the order-only operator (|)
+$(CHARSET_STANDARD_GENSRC_DIR):
+ $(MKDIR) -p '$@'
-###
+$(CHARSET_STANDARD_GENSRC_DIR)/aliases-tables.java.snippet: $(CHARSET_STANDARD_DATA) \
+ | $(CHARSET_STANDARD_GENSRC_DIR)
+ $(NAWK) < '$<' > '$@' $(CHARSET_ALIASES_TABLES_AWK)
-$(GENSRC_TMP)/gensrc_the.charsetmapping.extsbcs: $(GENSRC_DATA)/extsbcs $(GENSRC_TEMPLATES) $(GENSRC_SB)
- $(TOOL_CHARSETMAPPING) $(GENSRC_DATA) $(LOG_INFO) $(GENSRC_DST)/ext extsbcs
- $(TOUCH) $@
+$(CHARSET_STANDARD_GENSRC_DIR)/aliases-map: $(CHARSET_STANDARD_DATA) \
+ | $(CHARSET_STANDARD_GENSRC_DIR)
+ $(NAWK) < '$<' > '$@' $(CHARSET_ALIASES_MAP_AWK)
-GENSRC_CHARSETMAPPING += $(GENSRC_TMP)/gensrc_the.charsetmapping.extsbcs
+$(CHARSET_STANDARD_GENSRC_DIR)/classes-map: $(CHARSET_STANDARD_DATA) \
+ | $(CHARSET_STANDARD_GENSRC_DIR)
+ $(NAWK) < '$<' > '$@' $(CHARSET_CLASSES_MAP_AWK)
-###
+$(CHARSET_STANDARD_GENSRC_DIR)/aliases-map.java.snippet: $(CHARSET_STANDARD_GENSRC_DIR)/aliases-map \
+ $(BUILD_TOOLS) | $(CHARSET_STANDARD_GENSRC_DIR)
+ $(TOOL_HASHER) -i Aliases < '$<' > '$@'
-$(GENSRC_TMP)/gensrc_the.charsetmapping.dbcs: $(GENSRC_DATA)/dbcs $(GENSRC_TEMPLATES) $(GENSRC_SB)
- $(TOOL_CHARSETMAPPING) $(GENSRC_DATA) $(LOG_INFO) $(GENSRC_DST)/ext dbcs
- $(TOUCH) $@
+$(CHARSET_STANDARD_GENSRC_DIR)/classes-map.java.snippet: $(CHARSET_STANDARD_GENSRC_DIR)/classes-map \
+ $(BUILD_TOOLS) | $(CHARSET_STANDARD_GENSRC_DIR)
+ $(TOOL_HASHER) -i Classes < '$<' > '$@'
-GENSRC_CHARSETMAPPING += $(GENSRC_TMP)/gensrc_the.charsetmapping.dbcs
+$(CHARSET_STANDARD_GENSRC_DIR)/cache-map.java.snippet: $(CHARSET_STANDARD_GENSRC_DIR)/classes-map \
+ $(BUILD_TOOLS) | $(CHARSET_STANDARD_GENSRC_DIR)
+ $(TOOL_HASHER) -i -e Cache -t Charset < '$<' > '$@'
-###
+$(eval $(call SetupTextFileProcessing, BUILD_CHARSET_STANDARD, \
+ SOURCE_FILES := $(JDK_TOPDIR)/src/share/classes/$(CHARSET_STANDARD_JAVA).template, \
+ OUTPUT_FILE := $(JDK_OUTPUTDIR)/gensrc/$(CHARSET_STANDARD_JAVA), \
+ INCLUDES := \
+ _INCLUDE_ALIASES_TABLES_ => $(CHARSET_STANDARD_GENSRC_DIR)/aliases-tables.java.snippet ; \
+ _INCLUDE_ALIASES_MAP_ => $(CHARSET_STANDARD_GENSRC_DIR)/aliases-map.java.snippet ; \
+ _INCLUDE_CLASSES_MAP_ => $(CHARSET_STANDARD_GENSRC_DIR)/classes-map.java.snippet ; \
+ _INCLUDE_CACHE_MAP_ => $(CHARSET_STANDARD_GENSRC_DIR)/cache-map.java.snippet ; , \
+))
-GENSRC_CHARSET_PROVIDER_CMD := $(JDK_TOPDIR)/make/scripts/genCharsetProvider.sh
+# Processing of template depends on the snippets being generated first
+$(BUILD_CHARSET_STANDARD): \
+ $(CHARSET_STANDARD_GENSRC_DIR)/aliases-tables.java.snippet \
+ $(CHARSET_STANDARD_GENSRC_DIR)/aliases-map.java.snippet \
+ $(CHARSET_STANDARD_GENSRC_DIR)/classes-map.java.snippet \
+ $(CHARSET_STANDARD_GENSRC_DIR)/cache-map.java.snippet
-$(GENSRC_DST)/StandardCharsets.java: $(JDK_TOPDIR)/src/share/classes/sun/nio/cs/standard-charsets \
- $(GENSRC_CHARSET_PROVIDER_CMD) \
- $(GENSRC_TMP)/_the.charsetmapping.dir
- NAWK="$(NAWK)" TEMPDIR="$(GENSRC_TMP)" SH="$(SH)" \
- HASHER="$(TOOL_HASHER)" \
- SCRIPTS="$(JDK_TOPDIR)/make/scripts" \
- $(SH) -e $(GENSRC_CHARSET_PROVIDER_CMD) $(LOG_INFO) $< $(@D)
-
-GENSRC_CHARSETMAPPING += $(GENSRC_DST)/StandardCharsets.java
-
-$(GENSRC_CHARSETMAPPING): $(BUILD_TOOLS)
+GENSRC_CHARSETMAPPING += $(BUILD_CHARSET_STANDARD)
diff --git a/jdk/make/scripts/genCharsetProvider.sh b/jdk/make/scripts/genCharsetProvider.sh
deleted file mode 100644
index d14527483a4..00000000000
--- a/jdk/make/scripts/genCharsetProvider.sh
+++ /dev/null
@@ -1,131 +0,0 @@
-#! /bin/sh
-
-#
-# Copyright (c) 2004, 2012, 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.
-#
-
-# Generate a charset provider class
-
-# Required environment variables
-# NAWK awk tool
-# TEMPDIR temporary directory
-# HASHER Hasher program
-
-SPEC=$1; shift
-DST=$1; shift
-
-eval `$NAWK <$SPEC '
- /^[ \t]*copyright / { printf "COPYRIGHT_YEARS=\"%s %s\"\n", $2, $3; }
- /^[ \t]*package / { printf "PKG=%s\n", $2; }
- /^[ \t]*class / { printf "CLASS=%s\n", $2; }
-'`
-
-OUT=$DST/$CLASS.java
-echo '-->' $OUT
-
-
-# Header
-#
-
-$SH ${SCRIPTS}/addNotices.sh "$COPYRIGHT_YEARS" > $OUT
-
-cat <<__END__ >>$OUT
-
-// -- This file was mechanically generated: Do not edit! -- //
-
-package $PKG;
-
-import java.nio.charset.*;
-
-
-public class $CLASS
- extends FastCharsetProvider
-{
-
-__END__
-
-
-# Alias tables
-#
-$NAWK <$SPEC >>$OUT '
- BEGIN { n = 1; m = 1; }
-
- /^[ \t]*charset / {
- csn = $2; cln = $3;
- lcsn = tolower(csn);
- lcsns[n++] = lcsn;
- csns[lcsn] = csn;
- classMap[lcsn] = cln;
- if (n > 2)
- printf " };\n\n";
- printf " static final String[] aliases_%s = new String[] {\n", cln;
- }
-
- /^[ \t]*alias / {
- acsns[m++] = tolower($2);
- aliasMap[tolower($2)] = lcsn;
- printf " \"%s\",\n", $2;
- }
-
- END {
- printf " };\n\n";
- }
-'
-
-
-# Prehashed alias and class maps
-#
-$NAWK <$SPEC >$TEMPDIR/aliases '
- /^[ \t]*charset / {
- csn = $2;
- lcsn = tolower(csn);
- }
- /^[ \t]*alias / {
- an = tolower($2);
- printf "%-20s \"%s\"\n", an, lcsn;
- }
-'
-
-$NAWK <$SPEC >$TEMPDIR/classes '
- /^[ \t]*charset / {
- csn = $2; cln = $3;
- lcsn = tolower(csn);
- printf "%-20s \"%s\"\n", lcsn, cln;
- }
-'
-
-${HASHER} -i Aliases <$TEMPDIR/aliases >>$OUT
-${HASHER} -i Classes <$TEMPDIR/classes >>$OUT
-${HASHER} -i -e Cache -t Charset <$TEMPDIR/classes >>$OUT
-
-
-# Constructor
-#
-cat <<__END__ >>$OUT
- public $CLASS() {
- super("$PKG", new Aliases(), new Classes(), new Cache());
- }
-
-}
-__END__
diff --git a/jdk/make/src/classes/build/tools/hasher/Hasher.java b/jdk/make/src/classes/build/tools/hasher/Hasher.java
index bf041976ef2..058655e767c 100644
--- a/jdk/make/src/classes/build/tools/hasher/Hasher.java
+++ b/jdk/make/src/classes/build/tools/hasher/Hasher.java
@@ -43,9 +43,6 @@ import java.util.*;
public class Hasher {
- // This class cannot, sadly, make use of 1.5 features since it must be
- // compiled and run with the bootstrap JDK, which is 1.4.2.
-
static final PrintStream out = System.out;
static final PrintStream err = System.err;
@@ -184,11 +181,13 @@ public class Hasher {
if (md <= maxDepth) {
// Success
out.flush();
- if (cln != null)
- err.print(cln + ": ");
- err.println("Table size " + (1 << nb) + " (" + nb + " bits)"
- + ", shift " + shift
- + ", max chain depth " + md);
+ if (verbose) {
+ if (cln != null)
+ err.print(cln + ": ");
+ err.println("Table size " + (1 << nb) + " (" + nb + " bits)"
+ + ", shift " + shift
+ + ", max chain depth " + md);
+ }
return this;
}
}
diff --git a/jdk/src/share/classes/sun/nio/cs/StandardCharsets.java.template b/jdk/src/share/classes/sun/nio/cs/StandardCharsets.java.template
new file mode 100644
index 00000000000..468934b017a
--- /dev/null
+++ b/jdk/src/share/classes/sun/nio/cs/StandardCharsets.java.template
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+// -- This file was mechanically generated: Do not edit! -- //
+
+package sun.nio.cs;
+
+import java.nio.charset.*;
+
+
+public class StandardCharsets
+ extends FastCharsetProvider
+{
+
+ _INCLUDE_ALIASES_TABLES_
+ _INCLUDE_ALIASES_MAP_
+ _INCLUDE_CLASSES_MAP_
+ _INCLUDE_CACHE_MAP_
+
+ public StandardCharsets() {
+ super("sun.nio.cs", new Aliases(), new Classes(), new Cache());
+ }
+
+}
From f9c28e97a25ae0a75dd77ffd2b11c81f0a32e321 Mon Sep 17 00:00:00 2001
From: Magnus Ihse Bursie
Date: Tue, 4 Feb 2014 10:01:20 +0100
Subject: [PATCH 148/181] 8033236: Update GensrcCharsetMapping.gmk to
build-infra standards
Reviewed-by: erikj, mduigou, sherman
---
common/autoconf/spec.gmk.in | 2 +
make/common/TextFileProcessing.gmk | 234 +++++++++++++++++++++++++++++
2 files changed, 236 insertions(+)
create mode 100644 make/common/TextFileProcessing.gmk
diff --git a/common/autoconf/spec.gmk.in b/common/autoconf/spec.gmk.in
index 4342d1517ee..b92db9125da 100644
--- a/common/autoconf/spec.gmk.in
+++ b/common/autoconf/spec.gmk.in
@@ -37,6 +37,8 @@ X:=
SPACE:=$(X) $(X)
COMMA:=,
HASH:=\#
+LEFT_PAREN:=(
+RIGHT_PAREN:=)
SQUOTE:='
#'
DQUOTE:="
diff --git a/make/common/TextFileProcessing.gmk b/make/common/TextFileProcessing.gmk
new file mode 100644
index 00000000000..f5101626b0d
--- /dev/null
+++ b/make/common/TextFileProcessing.gmk
@@ -0,0 +1,234 @@
+#
+# Copyright (c) 2013, 2014 Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# 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.
+#
+
+define EvalDebugWrapper
+ $(if $(DEBUG_$1),
+ $(info -------- <<< Begin expansion of $1)
+ $(info $2)
+ $(info -------- >>> End expansion of $1)
+ )
+
+ $2
+endef
+
+# Helper function for SetupTextFileProcessing; adds a rule for a single file
+# to be processed.
+# param 1 = The namespace argument, e.g. BUILD_VERSION_FILE
+# param 2 = the source file name (full path)
+# param 3 = the target base directory
+# param 4 = the target file name (possibly with a partial path)
+define SetupSingleTextFileForProcessing
+ $(strip $3)/$(strip $4): $2
+ $(ECHO) $(LOG_INFO) "Processing $(strip $4)"
+ $(MKDIR) -p '$$(@D)'
+ $(RM) '$$@' '$$@.includes.tmp' '$$@.replacements.tmp'
+ $$($1_INCLUDES_COMMAND_LINE) < '$$<' > '$$@.includes.tmp'
+ $$($1_REPLACEMENTS_COMMAND_LINE) < '$$@.includes.tmp' > '$$@.replacements.tmp'
+ $(RM) '$$@.includes.tmp'
+ $(MV) '$$@.replacements.tmp' '$$@'
+
+ $1 += $(strip $3)/$(strip $4)
+endef
+
+# Setup a text file for processing, in which specified markers are replaced with
+# a given text, or with the contents of a given file.
+#
+# param 1 is the name space for this setup, e.g. BUILD_VERSION_FILE
+# param 2, 3, .. etc are named args:
+# SOURCE_DIRS one or more directory roots to search for files to process
+# SOURCE_FILES complete paths to one or more files to process
+# OUTPUT_DIR the directory where we store the processed files.
+# OUTPUT_FILE the name of the resulting file. Only allowed if processing a
+# single file.
+# SOURCE_BASE_DIR a common root to all SOURCE_DIRS.
+# If specified, files will keep the path relative to the base in the
+# OUTPUT_DIR. Otherwise, the hierarchy will be flattened into the OUTPUT_DIR.
+# INCLUDE_FILES only include files matching these patterns (used only with
+# SOURCE_DIRS)
+# EXCLUDE_FILES exclude files matching these patterns (used only with
+# SOURCE_DIRS)
+# INCLUDES replace the occurances of a pattern with the contents of a file;
+# one or more such include pattern, using the syntax:
+# PLACEHOLDER => FILE_TO_INCLUDE ; ...
+# Each PLACEHOLDER must be on a single, otherwise empty line (whitespace
+# padding is allowed).
+# REPLACEMENTS one or more text replacement patterns, using the syntax:
+# PATTERN => REPLACEMENT_TEXT ; ...
+#
+# At least one of INCLUDES or REPLACEMENTS must be present. If both are
+# present, then the includes will be processed first, and replacements will be
+# done on the included fragments as well.
+#
+define SetupTextFileProcessing
+ $(if $(16),$(error Internal makefile error: Too many arguments to SetupTextFileProcessing, please update TextFileProcessing.gmk))
+ $(call EvalDebugWrapper,$(strip $1),$(call SetupTextFileProcessingInner,$(strip $1),$2,$3,$4,$5,$6,$7,$8,$9,$(10),$(11),$(12),$(13),$(14),$(15)))
+endef
+
+define SetupTextFileProcessingInner
+ $(foreach i,2 3 4 5 6 7 8 9 10 11 12 13 14 15, $(if $(strip $($i)),$1_$(strip $($i)))$(NEWLINE))
+ $(call LogSetupMacroEntry,SetupTextFileProcessing($1),$2,$3,$4,$5,$6,$7,$8,$9,$(10),$(11),$(12),$(13),$(14),$(15))
+ $(if $(16),$(error Internal makefile error: Too many arguments to SetupTextFileProcessing, please update TextFileProcessing.gmk))
+
+ ifeq ($$($1_REPLACEMENTS)$$($1_INCLUDES),)
+ $$(error At least one of REPLACEMENTS or INCLUDES are required for $1)
+ endif
+
+ ifneq ($$($1_SOURCE_FILES),)
+ ifneq ($$($1_SOURCE_DIRS),)
+ $$(error Cannot use both SOURCE_FILES and SOURCE_DIRS (in $1))
+ endif
+ ifneq ($$($1_SOURCE_BASE_DIR),)
+ $$(error Cannot use SOURCE_BASE_DIR without SOURCE_DIRS (in $1))
+ endif
+ ifneq ($$($1_EXCLUDE_FILES)$$($1_INCLUDE_FILES),)
+ $$(error Cannot INCLUDE/EXCLUDE_FILES with SOURCE_FILES (in $1))
+ endif
+ else
+ # Find all files in the source trees. Sort to remove duplicates.
+ $$(foreach src, $$($1_SOURCE_DIRS), $$(if $$(wildcard $$(src)), , \
+ $$(error SOURCE_DIRS contains missing directory $$(src) (in $1))))
+ ifneq ($$($1_SOURCE_BASE_DIR),)
+ $$(foreach src, $$($1_SOURCE_DIRS), \
+ $$(if $$(findstring $$($1_SOURCE_BASE_DIR), $$(src)), , \
+ $$(error SOURCE_DIRS contains directory $$(src) outside \
+ SOURCE_BASE_DIR $$($1_SOURCE_BASE_DIR) (in $1))))
+ endif
+ $1_SOURCE_FILES := $$(sort $$(call CacheFind,$$($1_SOURCE_DIRS)))
+ $1_EXCLUDE_FILES:=$$(foreach i,$$($1_SOURCE_DIRS),$$(addprefix $$i/,$$($1_EXCLUDE_FILES)))
+ $1_INCLUDE_FILES:=$$(foreach i,$$($1_SOURCE_DIRS),$$(addprefix $$i/,$$($1_INCLUDE_FILES)))
+ $1_SOURCE_FILES := $$(filter-out $$($1_EXCLUDE_FILES),$$($1_SOURCE_FILES))
+ ifneq (,$$(strip $$($1_INCLUDE_FILES)))
+ $1_SOURCE_FILES := $$(filter $$($1_INCLUDE_FILES),$$($1_SOURCE_FILES))
+ endif
+ ifeq (,$$($1_SOURCE_FILES))
+ $$(info No sources found for $1 when looking inside the dirs $$($1_SRC))
+ endif
+ endif
+
+ ifneq ($$($1_REPLACEMENTS),)
+ # We have a replacement request, prepare it for the recipe
+ ifneq ($$(findstring /,$$($1_REPLACEMENTS)),)
+ # Cannot use / as separator
+ ifneq ($$(findstring @,$$($1_REPLACEMENTS)),)
+ # Cannot use @ as separator
+ ifneq ($$(findstring |,$$($1_REPLACEMENTS)),)
+ # Cannot use | as separator
+ ifneq ($$(findstring !,$$($1_REPLACEMENTS)),)
+ # Cannot use ! as separator. Give up.
+ $$(error No suitable sed separator can be found for $1. Tested /, @, | and !)
+ else
+ $1_SEP := !
+ endif
+ else
+ $1_SEP := |
+ endif
+ else
+ $1_SEP := @
+ endif
+ else
+ $1_SEP := /
+ endif
+
+ # If we have a trailing "=>" (i.e. last rule replaces with empty, and is not
+ # terminated by a ;), add a trailing ; to minimize the number of corner
+ # cases in the hairy subst expression..
+ ifeq ($$(lastword $$($1_REPLACEMENTS)), =>)
+ $1_REPLACEMENTS += ;
+ endif
+
+ # If we have a trailing ";", add a dummy replacement, since there is no easy
+ # way to delete the last word in make.
+ ifeq ($$(lastword $$($1_REPLACEMENTS)), ;)
+ $1_REPLACEMENTS += DUMMY_REPLACEMENT => DUMMY_REPLACEMENT
+ endif
+
+ # Convert the REPLACEMENTS syntax ( A => B ; C => D ; ...) to a sed command
+ # line (-e "s/A/B/" -e "s/C/D/" ...), basically by replacing '=>' with '/'
+ # and ';' with '/" -e "s/', and adjusting for edge cases.
+ $1_REPLACEMENTS_COMMAND_LINE := $(SED) -e "s$$($1_SEP)$$(subst $$(SPACE);$$(SPACE),$$($1_SEP)" \
+ -e "s$$($1_SEP),$$(subst $$(SPACE)=>$$(SPACE),$$($1_SEP),$$(subst $$(SPACE)=>$$(SPACE);$$(SPACE),//" \
+ -e "s$$($1_SEP),$$(strip $$($1_REPLACEMENTS)))))$$($1_SEP)"
+ else
+ # We don't have any replacements, just pipe the file through cat.
+ $1_REPLACEMENTS_COMMAND_LINE := $(CAT)
+ endif
+
+ ifneq ($$($1_INCLUDES),)
+ # We have a include request, prepare it for the recipe.
+ # Convert an INCLUDE like this PATTERN_1 => file1 ; PATTERN_2 => file2 ;
+ # into an awk script fragment like this:
+ # {
+ # if (matches("PATTERN_1")) { include("file1") } else
+ # if (matches("PATTERN_2")) { include("file2") } else
+ # print
+ # }
+
+ $1_INCLUDES_HEADER_AWK := \
+ function matches(pattern) { return ($$$$0 ~ "^[ \t]*" pattern "[ \t]*$$$$") } \
+ function include(filename) { while ((getline < filename) == 1) print ; close(filename) }
+ $1_INCLUDES_PARTIAL_AWK := $$(subst $$(SPACE);,,$$(subst $$(SPACE)=>$$(SPACE),"$$(RIGHT_PAREN)$$(RIGHT_PAREN) \
+ { include$$(LEFT_PAREN)",$$(subst $$(SPACE);$$(SPACE),"$$(RIGHT_PAREN) } \
+ else if $$(LEFT_PAREN)matches$$(LEFT_PAREN)",$$(strip $$($1_INCLUDES)))))
+ $1_INCLUDES_COMMAND_LINE := $(NAWK) '$$($1_INCLUDES_HEADER_AWK) \
+ { if (matches("$$($1_INCLUDES_PARTIAL_AWK)") } else print }'
+ else
+ # We don't have any includes, just pipe the file through cat.
+ $1_INCLUDES_COMMAND_LINE := $(CAT)
+ endif
+
+ # Reset target list before populating it
+ $1 :=
+
+ ifneq ($$($1_OUTPUT_FILE),)
+ ifneq ($$(words $$($1_SOURCE_FILES)), 1)
+ $$(error Cannot use OUTPUT_FILE for more than one source file (in $1))
+ endif
+
+ # Note that $1 is space sensitive and must disobey whitespace rules
+ $$(eval $$(call SetupSingleTextFileForProcessing,$1, $$($1_SOURCE_FILES), \
+ $$(dir $$($1_OUTPUT_FILE)), $$(notdir $$($1_OUTPUT_FILE))))
+ else
+ ifeq ($$($1_OUTPUT_DIR),)
+ $$(error Neither OUTPUT_FILE nor OUTPUT_DIR was specified (in $1))
+ endif
+
+ # Now call add_native_source for each source file we are going to process.
+ ifeq ($$($1_SOURCE_BASE_DIR),)
+ # With no base dir specified, put all files in target dir, flattening any
+ # hierarchies. Note that $1 is space sensitive and must disobey whitespace
+ # rules.
+ $$(foreach src, $$($1_SOURCE_FILES), \
+ $$(eval $$(call SetupSingleTextFileForProcessing,$1, $$(src), \
+ $$($1_OUTPUT_DIR), $$(notdir $$(src)))))
+ else
+ # With a base dir, extract the relative portion of the path. Note that $1
+ # is space sensitive and must disobey whitespace rules, and so is the
+ # arguments to patsubst.
+ $$(foreach src, $$($1_SOURCE_FILES), \
+ $$(eval $$(call SetupSingleTextFileForProcessing,$1, $$(src), \
+ $$($1_OUTPUT_DIR), $$(patsubst $$($1_SOURCE_BASE_DIR)/%,%,$$(src)))))
+ endif
+ endif
+endef
From fbe3b00b09724cae6edb1f15b77636c09605717b Mon Sep 17 00:00:00 2001
From: Michael McMahon
Date: Tue, 4 Feb 2014 11:31:27 +0000
Subject: [PATCH 149/181] 8028725: [Parfait] warnings from b116 for
jdk.src.solaris.native.java.net: JNI pending exceptions
Reviewed-by: alanb
---
jdk/src/solaris/native/java/net/Inet6AddressImpl.c | 2 ++
jdk/src/windows/native/java/net/Inet6AddressImpl.c | 1 +
2 files changed, 3 insertions(+)
diff --git a/jdk/src/solaris/native/java/net/Inet6AddressImpl.c b/jdk/src/solaris/native/java/net/Inet6AddressImpl.c
index 7ac26c0cbb6..1e4e7d684d1 100644
--- a/jdk/src/solaris/native/java/net/Inet6AddressImpl.c
+++ b/jdk/src/solaris/native/java/net/Inet6AddressImpl.c
@@ -196,6 +196,7 @@ lookupIfLocalhost(JNIEnv *env, const char *hostname, jboolean includeV6)
}
name = (*env)->NewStringUTF(env, hostname);
+ CHECK_NULL(name);
/* Iterate over the interfaces, and total up the number of IPv4 and IPv6
* addresses we have. Also keep a count of loopback addresses. We need to
@@ -548,6 +549,7 @@ Java_java_net_Inet6AddressImpl_getHostByAddr(JNIEnv *env, jobject this,
if (!error) {
ret = (*env)->NewStringUTF(env, host);
+ CHECK_NULL(ret);
}
#endif /* AF_INET6 */
diff --git a/jdk/src/windows/native/java/net/Inet6AddressImpl.c b/jdk/src/windows/native/java/net/Inet6AddressImpl.c
index f77d5ab79c7..24176b29278 100644
--- a/jdk/src/windows/native/java/net/Inet6AddressImpl.c
+++ b/jdk/src/windows/native/java/net/Inet6AddressImpl.c
@@ -347,6 +347,7 @@ Java_java_net_Inet6AddressImpl_getHostByAddr(JNIEnv *env, jobject this,
if (!error) {
ret = (*env)->NewStringUTF(env, host);
+ CHECK_NULL(ret);
}
if (ret == NULL) {
From 28e1b6ccf23461bc43840e72826f977bcf379a48 Mon Sep 17 00:00:00 2001
From: Alan Bateman
Date: Tue, 4 Feb 2014 12:05:13 +0000
Subject: [PATCH 150/181] 8033372: Check jdk/src/share/native/java/lang for JNI
pending exception issues 8033371:
jdk/src/solaris/native/java/lang/ProcessEnvironment.c environ doesn't check
for JNI pending exceptions 8030116: (process) Check Parfait warnings in
src/solaris/native/java/lang/* 8028769: Check src/share/native/java/lang/*.c
for cases when JNI calls are used with pending warnings
Reviewed-by: chegar
---
jdk/src/share/native/java/io/io_util.c | 1 +
jdk/src/share/native/java/lang/ClassLoader.c | 3 -
jdk/src/share/native/java/lang/System.c | 109 +++++++++++-------
.../native/java/lang/ProcessEnvironment_md.c | 7 +-
.../solaris/native/java/lang/UNIXProcess_md.c | 1 +
.../solaris/native/java/lang/java_props_md.c | 3 +
.../native/java/lang/ProcessEnvironment_md.c | 11 +-
7 files changed, 82 insertions(+), 53 deletions(-)
diff --git a/jdk/src/share/native/java/io/io_util.c b/jdk/src/share/native/java/io/io_util.c
index 5dd822382f0..f256af4074b 100644
--- a/jdk/src/share/native/java/io/io_util.c
+++ b/jdk/src/share/native/java/io/io_util.c
@@ -216,6 +216,7 @@ throwFileNotFoundException(JNIEnv *env, jstring path)
#else
why = JNU_NewStringPlatform(env, buf);
#endif
+ CHECK_NULL(why);
}
x = JNU_NewObjectByName(env,
"java/io/FileNotFoundException",
diff --git a/jdk/src/share/native/java/lang/ClassLoader.c b/jdk/src/share/native/java/lang/ClassLoader.c
index f6d0583990c..8e0b950406a 100644
--- a/jdk/src/share/native/java/lang/ClassLoader.c
+++ b/jdk/src/share/native/java/lang/ClassLoader.c
@@ -132,7 +132,6 @@ Java_java_lang_ClassLoader_defineClass1(JNIEnv *env,
if (name != NULL) {
utfName = getUTF(env, name, buf, sizeof(buf));
if (utfName == NULL) {
- JNU_ThrowOutOfMemoryError(env, NULL);
goto free_body;
}
VerifyFixClassname(utfName);
@@ -143,7 +142,6 @@ Java_java_lang_ClassLoader_defineClass1(JNIEnv *env,
if (source != NULL) {
utfSource = getUTF(env, source, sourceBuf, sizeof(sourceBuf));
if (utfSource == NULL) {
- JNU_ThrowOutOfMemoryError(env, NULL);
goto free_utfName;
}
} else {
@@ -519,7 +517,6 @@ Java_java_lang_ClassLoader_00024NativeLibrary_findBuiltinLib
procHandle = getProcessHandle();
cname = JNU_GetStringPlatformChars(env, name, 0);
if (cname == NULL) {
- JNU_ThrowOutOfMemoryError(env, NULL);
return NULL;
}
// Copy name Skipping PREFIX
diff --git a/jdk/src/share/native/java/lang/System.c b/jdk/src/share/native/java/lang/System.c
index 660b21e68e1..9c2f591fab4 100644
--- a/jdk/src/share/native/java/lang/System.c
+++ b/jdk/src/share/native/java/lang/System.c
@@ -56,44 +56,56 @@ Java_java_lang_System_identityHashCode(JNIEnv *env, jobject this, jobject x)
return JVM_IHashCode(env, x);
}
-#define PUTPROP(props, key, val) \
- if (1) { \
- jstring jkey = (*env)->NewStringUTF(env, key); \
- jstring jval = (*env)->NewStringUTF(env, val); \
- jobject r = (*env)->CallObjectMethod(env, props, putID, jkey, jval); \
- if ((*env)->ExceptionOccurred(env)) return NULL; \
- (*env)->DeleteLocalRef(env, jkey); \
- (*env)->DeleteLocalRef(env, jval); \
- (*env)->DeleteLocalRef(env, r); \
+#define PUTPROP(props, key, val) \
+ if (1) { \
+ jstring jkey, jval; \
+ jobject r; \
+ jkey = (*env)->NewStringUTF(env, key); \
+ if (jkey == NULL) return NULL; \
+ jval = (*env)->NewStringUTF(env, val); \
+ if (jval == NULL) return NULL; \
+ r = (*env)->CallObjectMethod(env, props, putID, jkey, jval); \
+ if ((*env)->ExceptionOccurred(env)) return NULL; \
+ (*env)->DeleteLocalRef(env, jkey); \
+ (*env)->DeleteLocalRef(env, jval); \
+ (*env)->DeleteLocalRef(env, r); \
} else ((void) 0)
/* "key" is a char type string with only ASCII character in it.
"val" is a nchar (typedefed in java_props.h) type string */
-#define PUTPROP_ForPlatformNString(props, key, val) \
- if (1) { \
- jstring jkey = (*env)->NewStringUTF(env, key); \
- jstring jval = GetStringPlatform(env, val); \
- jobject r = (*env)->CallObjectMethod(env, props, putID, jkey, jval); \
- if ((*env)->ExceptionOccurred(env)) return NULL; \
- (*env)->DeleteLocalRef(env, jkey); \
- (*env)->DeleteLocalRef(env, jval); \
- (*env)->DeleteLocalRef(env, r); \
+#define PUTPROP_ForPlatformNString(props, key, val) \
+ if (1) { \
+ jstring jkey, jval; \
+ jobject r; \
+ jkey = (*env)->NewStringUTF(env, key); \
+ if (jkey == NULL) return NULL; \
+ jval = GetStringPlatform(env, val); \
+ if (jval == NULL) return NULL; \
+ r = (*env)->CallObjectMethod(env, props, putID, jkey, jval); \
+ if ((*env)->ExceptionOccurred(env)) return NULL; \
+ (*env)->DeleteLocalRef(env, jkey); \
+ (*env)->DeleteLocalRef(env, jval); \
+ (*env)->DeleteLocalRef(env, r); \
} else ((void) 0)
-#define REMOVEPROP(props, key) \
- if (1) { \
- jstring jkey = JNU_NewStringPlatform(env, key); \
- jobject r = (*env)->CallObjectMethod(env, props, removeID, jkey); \
- if ((*env)->ExceptionOccurred(env)) return NULL; \
- (*env)->DeleteLocalRef(env, jkey); \
- (*env)->DeleteLocalRef(env, r); \
+#define REMOVEPROP(props, key) \
+ if (1) { \
+ jstring jkey; \
+ jobject r; \
+ jkey = JNU_NewStringPlatform(env, key); \
+ if (jkey == NULL) return NULL; \
+ r = (*env)->CallObjectMethod(env, props, removeID, jkey); \
+ if ((*env)->ExceptionOccurred(env)) return NULL; \
+ (*env)->DeleteLocalRef(env, jkey); \
+ (*env)->DeleteLocalRef(env, r); \
} else ((void) 0)
-#define GETPROP(props, key, jret) \
- if (1) { \
- jstring jkey = JNU_NewStringPlatform(env, key); \
+#define GETPROP(props, key, jret) \
+ if (1) { \
+ jstring jkey = JNU_NewStringPlatform(env, key); \
+ if (jkey == NULL) return NULL; \
jret = (*env)->CallObjectMethod(env, props, getPropID, jkey); \
- if ((*env)->ExceptionOccurred(env)) return NULL; \
- (*env)->DeleteLocalRef(env, jkey); \
+ if ((*env)->ExceptionOccurred(env)) return NULL; \
+ (*env)->DeleteLocalRef(env, jkey); \
} else ((void) 0)
#ifndef VENDOR /* Third party may overwrite this. */
@@ -169,23 +181,31 @@ JNIEXPORT jobject JNICALL
Java_java_lang_System_initProperties(JNIEnv *env, jclass cla, jobject props)
{
char buf[128];
- java_props_t *sprops = GetJavaProperties(env);
- jmethodID putID = (*env)->GetMethodID(env,
- (*env)->GetObjectClass(env, props),
- "put",
- "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;");
- jmethodID removeID = (*env)->GetMethodID(env,
- (*env)->GetObjectClass(env, props),
- "remove",
- "(Ljava/lang/Object;)Ljava/lang/Object;");
- jmethodID getPropID = (*env)->GetMethodID(env,
- (*env)->GetObjectClass(env, props),
- "getProperty",
- "(Ljava/lang/String;)Ljava/lang/String;");
+ java_props_t *sprops;
+ jmethodID putID, removeID, getPropID;
jobject ret = NULL;
jstring jVMVal = NULL;
- if (sprops == NULL || putID == NULL ) return NULL;
+ sprops = GetJavaProperties(env);
+ CHECK_NULL_RETURN(sprops, NULL);
+
+ putID = (*env)->GetMethodID(env,
+ (*env)->GetObjectClass(env, props),
+ "put",
+ "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;");
+ CHECK_NULL_RETURN(putID, NULL);
+
+ removeID = (*env)->GetMethodID(env,
+ (*env)->GetObjectClass(env, props),
+ "remove",
+ "(Ljava/lang/Object;)Ljava/lang/Object;");
+ CHECK_NULL_RETURN(removeID, NULL);
+
+ getPropID = (*env)->GetMethodID(env,
+ (*env)->GetObjectClass(env, props),
+ "getProperty",
+ "(Ljava/lang/String;)Ljava/lang/String;");
+ CHECK_NULL_RETURN(getPropID, NULL);
PUTPROP(props, "java.specification.version",
JDK_MAJOR_VERSION "." JDK_MINOR_VERSION);
@@ -382,6 +402,7 @@ Java_java_lang_System_initProperties(JNIEnv *env, jclass cla, jobject props)
GETPROP(props, "sun.locale.formatasdefault", jVMVal);
if (jVMVal) {
const char * val = (*env)->GetStringUTFChars(env, jVMVal, 0);
+ CHECK_NULL_RETURN(val, NULL);
fmtdefault = !strcmp(val, "true");
(*env)->ReleaseStringUTFChars(env, jVMVal, val);
(*env)->DeleteLocalRef(env, jVMVal);
diff --git a/jdk/src/solaris/native/java/lang/ProcessEnvironment_md.c b/jdk/src/solaris/native/java/lang/ProcessEnvironment_md.c
index f597bff742d..54aa7142a36 100644
--- a/jdk/src/solaris/native/java/lang/ProcessEnvironment_md.c
+++ b/jdk/src/solaris/native/java/lang/ProcessEnvironment_md.c
@@ -53,6 +53,7 @@ Java_java_lang_ProcessEnvironment_environ(JNIEnv *env, jclass ign)
jsize i, j;
jobjectArray result;
jclass byteArrCls = (*env)->FindClass(env, "[B");
+ CHECK_NULL_RETURN(byteArrCls, NULL);
for (i = 0; environ[i]; i++) {
/* Ignore corrupted environment variables */
@@ -61,7 +62,7 @@ Java_java_lang_ProcessEnvironment_environ(JNIEnv *env, jclass ign)
}
result = (*env)->NewObjectArray(env, 2*count, byteArrCls, 0);
- if (result == NULL) return NULL;
+ CHECK_NULL_RETURN(result, NULL);
for (i = 0, j = 0; environ[i]; i++) {
const char * varEnd = strchr(environ[i], '=');
@@ -72,9 +73,9 @@ Java_java_lang_ProcessEnvironment_environ(JNIEnv *env, jclass ign)
jsize varLength = varEnd - environ[i];
jsize valLength = strlen(valBeg);
var = (*env)->NewByteArray(env, varLength);
- if (var == NULL) return NULL;
+ CHECK_NULL_RETURN(var, NULL);
val = (*env)->NewByteArray(env, valLength);
- if (val == NULL) return NULL;
+ CHECK_NULL_RETURN(val, NULL);
(*env)->SetByteArrayRegion(env, var, 0, varLength,
(jbyte*) environ[i]);
(*env)->SetByteArrayRegion(env, val, 0, valLength,
diff --git a/jdk/src/solaris/native/java/lang/UNIXProcess_md.c b/jdk/src/solaris/native/java/lang/UNIXProcess_md.c
index ec85b685dc6..da5be2257d0 100644
--- a/jdk/src/solaris/native/java/lang/UNIXProcess_md.c
+++ b/jdk/src/solaris/native/java/lang/UNIXProcess_md.c
@@ -206,6 +206,7 @@ JNIEXPORT void JNICALL
Java_java_lang_UNIXProcess_init(JNIEnv *env, jclass clazz)
{
parentPathv = effectivePathv(env);
+ CHECK_NULL(parentPathv);
setSIGCHLDHandler(env);
}
diff --git a/jdk/src/solaris/native/java/lang/java_props_md.c b/jdk/src/solaris/native/java/lang/java_props_md.c
index 1830b20fd0c..df55fd32b5b 100644
--- a/jdk/src/solaris/native/java/lang/java_props_md.c
+++ b/jdk/src/solaris/native/java/lang/java_props_md.c
@@ -546,6 +546,9 @@ GetJavaProperties(JNIEnv *env)
sprops.display_country = sprops.country;
sprops.display_variant = sprops.variant;
+ /* ParseLocale failed with OOME */
+ JNU_CHECK_EXCEPTION_RETURN(env, NULL);
+
#ifdef MACOSX
sprops.sun_jnu_encoding = "UTF-8";
#else
diff --git a/jdk/src/windows/native/java/lang/ProcessEnvironment_md.c b/jdk/src/windows/native/java/lang/ProcessEnvironment_md.c
index e64d30b74af..3b73dd1d326 100644
--- a/jdk/src/windows/native/java/lang/ProcessEnvironment_md.c
+++ b/jdk/src/windows/native/java/lang/ProcessEnvironment_md.c
@@ -32,10 +32,15 @@ static jstring
environmentBlock9x(JNIEnv *env)
{
int i;
- jmethodID String_init_ID =
- (*env)->GetMethodID(env, JNU_ClassString(env), "", "([B)V");
+ jmethodID String_init_ID;
jbyteArray bytes;
- jbyte *blockA = (jbyte *) GetEnvironmentStringsA();
+ jbyte *blockA;
+
+ String_init_ID =
+ (*env)->GetMethodID(env, JNU_ClassString(env), "", "([B)V");
+ CHECK_NULL_RETURN(String_init_ID, NULL);
+
+ blockA = (jbyte *) GetEnvironmentStringsA();
if (blockA == NULL) {
/* Both GetEnvironmentStringsW and GetEnvironmentStringsA
* failed. Out of memory is our best guess. */
From 579b11a884524a6895985ee7ae210e7e3d245160 Mon Sep 17 00:00:00 2001
From: Staffan Larsen
Date: Tue, 4 Feb 2014 15:25:10 +0100
Subject: [PATCH 151/181] 8029808: com/sun/jdi/ProcessAttachTest.sh times out
Reviewed-by: alanb, dsamersoff
---
jdk/test/com/sun/jdi/ProcessAttachTest.sh | 68 ++++++++++++++---------
1 file changed, 43 insertions(+), 25 deletions(-)
diff --git a/jdk/test/com/sun/jdi/ProcessAttachTest.sh b/jdk/test/com/sun/jdi/ProcessAttachTest.sh
index 76a531bad38..739b53abb10 100644
--- a/jdk/test/com/sun/jdi/ProcessAttachTest.sh
+++ b/jdk/test/com/sun/jdi/ProcessAttachTest.sh
@@ -29,7 +29,7 @@
# @summary Unit test for ProcessAttachingConnector
#
# @build ProcessAttachDebugger ProcessAttachDebuggee ShutdownDebuggee
-# @run shell ProcessAttachTest.sh
+# @run shell/timeout=120 ProcessAttachTest.sh
if [ "${TESTJAVA}" = "" ]
then
@@ -69,8 +69,8 @@ esac
startDebuggee()
{
- OUTPUTFILE=${TESTCLASSES}/Debuggee.out
- ${JAVA} "$@" > ${OUTPUTFILE} &
+ rm -f ${OUTPUTFILE}
+ ${JAVA} "$@" > ${OUTPUTFILE} 2>&1 &
startpid="$!"
pid="${startpid}"
@@ -93,11 +93,11 @@ startDebuggee()
echo "Waiting for Debuggee to initialize..."
attempts=0
while true; do
- sleep 1
out=`tail -1 ${OUTPUTFILE}`
if [ ! -z "$out" ]; then
break
fi
+ sleep 1
attempts=`expr $attempts + 1`
echo "Waiting $attempts second(s) ..."
done
@@ -107,9 +107,23 @@ startDebuggee()
stopDebuggee()
{
- $JAVA -classpath "${TESTCLASSES}" ShutdownDebuggee $1
+ # We have to make sure the debuggee has written the portfile before
+ # trying to read it.
+
+ echo "Waiting for port file to be written..."
+ attempts=0
+ while true; do
+ attempts=`expr $attempts + 1`
+ if [ -f ${PORTFILE} ]; then
+ break
+ fi
+ sleep 1
+ echo "Waiting $attempts second(s) ..."
+ done
+
+ $JAVA -classpath "${TESTCLASSES}" ShutdownDebuggee $1 2>&1
if [ $? != 0 ] ; then
- echo "Error: ShutdownDebuggee failed"
+ echo "Error: ShutdownDebuggee failed: $?"
failures=`expr $failures + 1`
kill -9 ${startpid}
fi
@@ -120,7 +134,8 @@ failures=0
#########################################################
echo "Test 1: Debuggee start with suspend=n"
-PORTFILE="${TESTCLASSES}"/shutdown1.port
+PORTFILE=shutdown1.port
+OUTPUTFILE=Debuggee1.out
DEBUGGEEFLAGS=
if [ -r $TESTCLASSES/@debuggeeVMOptions ] ; then
@@ -136,17 +151,27 @@ startDebuggee \
$JAVA -classpath "${TESTCLASSES}${PS}${TESTJAVA}/lib/tools.jar" \
ProcessAttachDebugger $pid 2>&1
-if [ $? != 0 ]; then failures=`expr $failures + 1`; fi
+
+if [ $? != 0 ]; then
+ echo "Error: ProcessAttachDebugger failed: $?"
+ failures=`expr $failures + 1`
+fi
# Note that when the debugger disconnects, the debuggee picks another
# port and outputs another 'Listening for transport ... ' msg.
stopDebuggee "${PORTFILE}"
+echo "${OUTPUTFILE}:"
+cat $OUTPUTFILE
+echo "-----"
+
#########################################################
echo "\nTest 2: Debuggee start with suspend=y"
-PORTFILE="${TESTCLASSES}"/shutdown2.port
+PORTFILE=shutdown2.port
+OUTPUTFILE=Debuggee2.out
+
startDebuggee \
$DEBUGGEEFLAGS \
-agentlib:jdwp=transport=dt_socket,server=y,suspend=y \
@@ -155,27 +180,20 @@ startDebuggee \
$JAVA -classpath "${TESTCLASSES}${PS}${TESTJAVA}/lib/tools.jar" \
ProcessAttachDebugger $pid 2>&1
-# The debuggee is suspended and doesn't run until the debugger
-# disconnects. We have to give it time to write the port number
-# to ${PORTFILE}
+if [ $? != 0 ]; then
+ echo "Error: ProcessAttachDebugger failed: $?"
+ failures=`expr $failures + 1`
+fi
-echo "Waiting for port file to be written..."
-attempts=0
-while true; do
- sleep 1
- attempts=`expr $attempts + 1`
- if [ -f ${PORTFILE} ]; then
- break
- fi
- echo "Waiting $attempts second(s) ..."
-done
-
-if [ $? != 0 ]; then failures=`expr $failures + 1`; fi
stopDebuggee "${PORTFILE}"
+echo $OUTPUTFILE :
+cat $OUTPUTFILE
+echo -----
+
###
if [ $failures = 0 ];
then echo "All tests passed.";
- else echo "$failures test(s) failed:"; cat ${OUTPUTFILE};
+ else echo "$failures test(s) failed."
fi
exit $failures
From 5fc6cd2aa9fc755ace96d48fc12fefe8cd5628fd Mon Sep 17 00:00:00 2001
From: Sean Coffey
Date: Tue, 4 Feb 2014 15:39:40 +0000
Subject: [PATCH 152/181] 8029020: Check src/share/native/java/util/zip code
for JNI pending exceptions
Reviewed-by: alanb, chegar
---
jdk/src/share/native/java/util/zip/Deflater.c | 16 ++++++++++++----
jdk/src/share/native/java/util/zip/Inflater.c | 13 +++++++++----
jdk/src/share/native/java/util/zip/ZipFile.c | 14 +++++++++-----
3 files changed, 30 insertions(+), 13 deletions(-)
diff --git a/jdk/src/share/native/java/util/zip/Deflater.c b/jdk/src/share/native/java/util/zip/Deflater.c
index a9f403db172..d7f751d37a9 100644
--- a/jdk/src/share/native/java/util/zip/Deflater.c
+++ b/jdk/src/share/native/java/util/zip/Deflater.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -49,13 +49,21 @@ JNIEXPORT void JNICALL
Java_java_util_zip_Deflater_initIDs(JNIEnv *env, jclass cls)
{
levelID = (*env)->GetFieldID(env, cls, "level", "I");
+ CHECK_NULL(levelID);
strategyID = (*env)->GetFieldID(env, cls, "strategy", "I");
+ CHECK_NULL(strategyID);
setParamsID = (*env)->GetFieldID(env, cls, "setParams", "Z");
+ CHECK_NULL(setParamsID);
finishID = (*env)->GetFieldID(env, cls, "finish", "Z");
+ CHECK_NULL(finishID);
finishedID = (*env)->GetFieldID(env, cls, "finished", "Z");
+ CHECK_NULL(finishedID);
bufID = (*env)->GetFieldID(env, cls, "buf", "[B");
+ CHECK_NULL(bufID);
offID = (*env)->GetFieldID(env, cls, "off", "I");
+ CHECK_NULL(offID);
lenID = (*env)->GetFieldID(env, cls, "len", "I");
+ CHECK_NULL(lenID);
}
JNIEXPORT jlong JNICALL
@@ -132,14 +140,14 @@ Java_java_util_zip_Deflater_deflateBytes(JNIEnv *env, jobject this, jlong addr,
in_buf = (*env)->GetPrimitiveArrayCritical(env, this_buf, 0);
if (in_buf == NULL) {
// Throw OOME only when length is not zero
- if (this_len != 0)
+ if (this_len != 0 && (*env)->ExceptionOccurred(env) == NULL)
JNU_ThrowOutOfMemoryError(env, 0);
return 0;
}
out_buf = (*env)->GetPrimitiveArrayCritical(env, b, 0);
if (out_buf == NULL) {
(*env)->ReleasePrimitiveArrayCritical(env, this_buf, in_buf, 0);
- if (len != 0)
+ if (len != 0 && (*env)->ExceptionOccurred(env) == NULL)
JNU_ThrowOutOfMemoryError(env, 0);
return 0;
}
@@ -158,7 +166,7 @@ Java_java_util_zip_Deflater_deflateBytes(JNIEnv *env, jobject this, jlong addr,
this_off += this_len - strm->avail_in;
(*env)->SetIntField(env, this, offID, this_off);
(*env)->SetIntField(env, this, lenID, strm->avail_in);
- return len - strm->avail_out;
+ return (jint) (len - strm->avail_out);
case Z_BUF_ERROR:
(*env)->SetBooleanField(env, this, setParamsID, JNI_FALSE);
return 0;
diff --git a/jdk/src/share/native/java/util/zip/Inflater.c b/jdk/src/share/native/java/util/zip/Inflater.c
index 3778ff4e40c..2e21d084b39 100644
--- a/jdk/src/share/native/java/util/zip/Inflater.c
+++ b/jdk/src/share/native/java/util/zip/Inflater.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -50,10 +50,15 @@ JNIEXPORT void JNICALL
Java_java_util_zip_Inflater_initIDs(JNIEnv *env, jclass cls)
{
needDictID = (*env)->GetFieldID(env, cls, "needDict", "Z");
+ CHECK_NULL(needDictID);
finishedID = (*env)->GetFieldID(env, cls, "finished", "Z");
+ CHECK_NULL(finishedID);
bufID = (*env)->GetFieldID(env, cls, "buf", "[B");
+ CHECK_NULL(bufID);
offID = (*env)->GetFieldID(env, cls, "off", "I");
+ CHECK_NULL(offID);
lenID = (*env)->GetFieldID(env, cls, "len", "I");
+ CHECK_NULL(lenID);
}
JNIEXPORT jlong JNICALL
@@ -127,14 +132,14 @@ Java_java_util_zip_Inflater_inflateBytes(JNIEnv *env, jobject this, jlong addr,
in_buf = (*env)->GetPrimitiveArrayCritical(env, this_buf, 0);
if (in_buf == NULL) {
- if (this_len != 0)
+ if (this_len != 0 && (*env)->ExceptionOccurred(env) == NULL)
JNU_ThrowOutOfMemoryError(env, 0);
return 0;
}
out_buf = (*env)->GetPrimitiveArrayCritical(env, b, 0);
if (out_buf == NULL) {
(*env)->ReleasePrimitiveArrayCritical(env, this_buf, in_buf, 0);
- if (len != 0)
+ if (len != 0 && (*env)->ExceptionOccurred(env) == NULL)
JNU_ThrowOutOfMemoryError(env, 0);
return 0;
}
@@ -154,7 +159,7 @@ Java_java_util_zip_Inflater_inflateBytes(JNIEnv *env, jobject this, jlong addr,
this_off += this_len - strm->avail_in;
(*env)->SetIntField(env, this, offID, this_off);
(*env)->SetIntField(env, this, lenID, strm->avail_in);
- return len - strm->avail_out;
+ return (jint) (len - strm->avail_out);
case Z_NEED_DICT:
(*env)->SetBooleanField(env, this, needDictID, JNI_TRUE);
/* Might have consumed some input here! */
diff --git a/jdk/src/share/native/java/util/zip/ZipFile.c b/jdk/src/share/native/java/util/zip/ZipFile.c
index d66cccb747a..5fd4936a803 100644
--- a/jdk/src/share/native/java/util/zip/ZipFile.c
+++ b/jdk/src/share/native/java/util/zip/ZipFile.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -71,11 +71,13 @@ ThrowZipException(JNIEnv *env, const char *msg)
if (msg != NULL) {
s = JNU_NewStringPlatform(env, msg);
}
- x = JNU_NewObjectByName(env,
+ if (s != NULL) {
+ x = JNU_NewObjectByName(env,
"java/util/zip/ZipException",
"(Ljava/lang/String;)V", s);
- if (x != NULL) {
- (*env)->Throw(env, x);
+ if (x != NULL) {
+ (*env)->Throw(env, x);
+ }
}
}
@@ -367,8 +369,10 @@ Java_java_util_jar_JarFile_getMetaInfEntryNames(JNIEnv *env, jobject obj)
/* If some names were found then build array of java strings */
if (count > 0) {
- jclass cls = (*env)->FindClass(env, "java/lang/String");
+ jclass cls = JNU_ClassString(env);
+ CHECK_NULL_RETURN(cls, NULL);
result = (*env)->NewObjectArray(env, count, cls, 0);
+ CHECK_NULL_RETURN(result, NULL);
if (result != 0) {
for (i = 0; i < count; i++) {
jstring str = (*env)->NewStringUTF(env, zip->metanames[i]);
From 8d903056f3403ccb6742b169350d5191c4c30063 Mon Sep 17 00:00:00 2001
From: Joe Darcy
Date: Tue, 4 Feb 2014 08:58:06 -0800
Subject: [PATCH 153/181] 8033525: Fix raw and unchecked lint warnings in
sun.swing.*
Reviewed-by: alexsch
---
.../classes/sun/swing/BakedArrayList.java | 4 +--
jdk/src/share/classes/sun/swing/FilePane.java | 31 ++++++++++---------
.../classes/sun/swing/SwingLazyValue.java | 12 +++----
.../classes/sun/swing/SwingUtilities2.java | 16 +++++-----
.../swing/plaf/synth/DefaultSynthStyle.java | 28 ++++++++---------
.../plaf/synth/SynthFileChooserUIImpl.java | 4 +--
6 files changed, 48 insertions(+), 47 deletions(-)
diff --git a/jdk/src/share/classes/sun/swing/BakedArrayList.java b/jdk/src/share/classes/sun/swing/BakedArrayList.java
index 0d4670878db..8f9377b81fe 100644
--- a/jdk/src/share/classes/sun/swing/BakedArrayList.java
+++ b/jdk/src/share/classes/sun/swing/BakedArrayList.java
@@ -44,7 +44,7 @@ import java.util.*;
* @author Scott Violet
*/
@SuppressWarnings("serial") // JDK-implementation class
-public class BakedArrayList extends ArrayList {
+public class BakedArrayList extends ArrayList {
/**
* The cached hashCode.
*/
@@ -54,7 +54,7 @@ public class BakedArrayList extends ArrayList {
super(size);
}
- public BakedArrayList(java.util.List data) {
+ public BakedArrayList(java.util.List> data) {
this(data.size());
for (int counter = 0, max = data.size(); counter < max; counter++){
add(data.get(counter));
diff --git a/jdk/src/share/classes/sun/swing/FilePane.java b/jdk/src/share/classes/sun/swing/FilePane.java
index 9b21815469d..763c027a2ab 100644
--- a/jdk/src/share/classes/sun/swing/FilePane.java
+++ b/jdk/src/share/classes/sun/swing/FilePane.java
@@ -240,7 +240,7 @@ public class FilePane extends JPanel implements PropertyChangeListener {
}
}
- private void repaintListSelection(JList list) {
+ private void repaintListSelection(JList> list) {
int[] indices = list.getSelectedIndices();
for (int i : indices) {
Rectangle bounds = list.getCellBounds(i, i);
@@ -272,7 +272,7 @@ public class FilePane extends JPanel implements PropertyChangeListener {
private boolean fullRowSelection = false;
private ListSelectionModel listSelectionModel;
- private JList list;
+ private JList> list;
private JTable detailsTable;
private static final int COLUMN_FILENAME = 0;
@@ -332,7 +332,7 @@ public class FilePane extends JPanel implements PropertyChangeListener {
createdViewPanel = createList();
}
- list = (JList) findChildComponent(createdViewPanel, JList.class);
+ list = findChildComponent(createdViewPanel, JList.class);
if (listSelectionModel == null) {
listSelectionModel = list.getSelectionModel();
if (detailsTable != null) {
@@ -353,7 +353,7 @@ public class FilePane extends JPanel implements PropertyChangeListener {
createdViewPanel = createDetailsView();
}
- detailsTable = (JTable) findChildComponent(createdViewPanel, JTable.class);
+ detailsTable = findChildComponent(createdViewPanel, JTable.class);
detailsTable.setRowHeight(Math.max(detailsTable.getFont().getSize() + 4, 16 + 1));
if (listSelectionModel != null) {
detailsTable.setSelectionModel(listSelectionModel);
@@ -569,7 +569,7 @@ public class FilePane extends JPanel implements PropertyChangeListener {
}
- private void updateListRowCount(JList list) {
+ private void updateListRowCount(JList> list) {
if (smallIconsView) {
list.setVisibleRowCount(getModel().getSize() / 3);
} else {
@@ -584,7 +584,7 @@ public class FilePane extends JPanel implements PropertyChangeListener {
@SuppressWarnings("serial") // anonymous class
final JList list = new JList() {
public int getNextMatch(String prefix, int startIndex, Position.Bias bias) {
- ListModel model = getModel();
+ ListModel> model = getModel();
int max = model.getSize();
if (prefix == null || startIndex < 0 || startIndex >= max) {
throw new IllegalArgumentException();
@@ -918,7 +918,7 @@ public class FilePane extends JPanel implements PropertyChangeListener {
public void updateComparators(ShellFolderColumnInfo [] columns) {
for (int i = 0; i < columns.length; i++) {
- Comparator c = columns[i].getComparator();
+ Comparator> c = columns[i].getComparator();
if (c != null) {
c = new DirectoriesFirstComparatorWrapper(i, c);
}
@@ -969,12 +969,13 @@ public class FilePane extends JPanel implements PropertyChangeListener {
* directory and file to file using the wrapped comparator.
*/
private class DirectoriesFirstComparatorWrapper implements Comparator {
- private Comparator comparator;
+ private Comparator comparator;
private int column;
- public DirectoriesFirstComparatorWrapper(int column, Comparator comparator) {
+ @SuppressWarnings("unchecked")
+ public DirectoriesFirstComparatorWrapper(int column, Comparator> comparator) {
this.column = column;
- this.comparator = comparator;
+ this.comparator = (Comparator)comparator;
}
public int compare(File f1, File f2) {
@@ -1492,7 +1493,7 @@ public class FilePane extends JPanel implements PropertyChangeListener {
@SuppressWarnings("serial") // JDK-implementation class
protected class FileRenderer extends DefaultListCellRenderer {
- public Component getListCellRendererComponent(JList list, Object value,
+ public Component getListCellRendererComponent(JList> list, Object value,
int index, boolean isSelected,
boolean cellHasFocus) {
@@ -1968,14 +1969,14 @@ public class FilePane extends JPanel implements PropertyChangeListener {
return fileChooserUIAccessor.getDirectory();
}
- private Component findChildComponent(Container container, Class cls) {
+ private T findChildComponent(Container container, Class cls) {
int n = container.getComponentCount();
for (int i = 0; i < n; i++) {
Component comp = container.getComponent(i);
if (cls.isInstance(comp)) {
- return comp;
+ return cls.cast(comp);
} else if (comp instanceof Container) {
- Component c = findChildComponent((Container)comp, cls);
+ T c = findChildComponent((Container)comp, cls);
if (c != null) {
return c;
}
@@ -2029,7 +2030,7 @@ public class FilePane extends JPanel implements PropertyChangeListener {
public Action getApproveSelectionAction();
public Action getChangeToParentDirectoryAction();
public Action getNewFolderAction();
- public MouseListener createDoubleClickListener(JList list);
+ public MouseListener createDoubleClickListener(JList> list);
public ListSelectionListener createListSelectionListener();
}
}
diff --git a/jdk/src/share/classes/sun/swing/SwingLazyValue.java b/jdk/src/share/classes/sun/swing/SwingLazyValue.java
index a9e6f2c1bc8..87205f3398c 100644
--- a/jdk/src/share/classes/sun/swing/SwingLazyValue.java
+++ b/jdk/src/share/classes/sun/swing/SwingLazyValue.java
@@ -67,13 +67,13 @@ public class SwingLazyValue implements UIDefaults.LazyValue {
ReflectUtil.checkPackageAccess(className);
Class> c = Class.forName(className, true, null);
if (methodName != null) {
- Class[] types = getClassArray(args);
+ Class>[] types = getClassArray(args);
Method m = c.getMethod(methodName, types);
makeAccessible(m);
return m.invoke(c, args);
} else {
- Class[] types = getClassArray(args);
- Constructor constructor = c.getConstructor(types);
+ Class>[] types = getClassArray(args);
+ Constructor> constructor = c.getConstructor(types);
makeAccessible(constructor);
return constructor.newInstance(args);
}
@@ -96,10 +96,10 @@ public class SwingLazyValue implements UIDefaults.LazyValue {
});
}
- private Class[] getClassArray(Object[] args) {
- Class[] types = null;
+ private Class>[] getClassArray(Object[] args) {
+ Class>[] types = null;
if (args!=null) {
- types = new Class[args.length];
+ types = new Class>[args.length];
for (int i = 0; i< args.length; i++) {
/* PENDING(ges): At present only the primitive types
used are handled correctly; this should eventually
diff --git a/jdk/src/share/classes/sun/swing/SwingUtilities2.java b/jdk/src/share/classes/sun/swing/SwingUtilities2.java
index 9e410ed3977..75a0a4f9b72 100644
--- a/jdk/src/share/classes/sun/swing/SwingUtilities2.java
+++ b/jdk/src/share/classes/sun/swing/SwingUtilities2.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -127,7 +127,7 @@ public class SwingUtilities2 {
*/
public static class AATextInfo {
- private static AATextInfo getAATextInfoFromMap(Map hints) {
+ private static AATextInfo getAATextInfoFromMap(Map hints) {
Object aaHint = hints.get(KEY_TEXT_ANTIALIASING);
Object contHint = hints.get(KEY_TEXT_LCD_CONTRAST);
@@ -141,12 +141,13 @@ public class SwingUtilities2 {
}
}
+ @SuppressWarnings("unchecked")
public static AATextInfo getAATextInfo(boolean lafCondition) {
SunToolkit.setAAFontSettingsCondition(lafCondition);
Toolkit tk = Toolkit.getDefaultToolkit();
Object map = tk.getDesktopProperty(SunToolkit.DESKTOPFONTHINTS);
if (map instanceof Map) {
- return getAATextInfoFromMap((Map)map);
+ return getAATextInfoFromMap((Map)map);
} else {
return null;
}
@@ -663,7 +664,7 @@ public class SwingUtilities2 {
* Otherwise, this method returns -1.
* This is used to make WindowsL&F JFileChooser act like native dialogs.
*/
- public static int loc2IndexFileList(JList list, Point point) {
+ public static int loc2IndexFileList(JList> list, Point point) {
int index = list.locationToIndex(point);
if (index != -1) {
Object bySize = list.getClientProperty("List.isFileList");
@@ -680,11 +681,10 @@ public class SwingUtilities2 {
* Returns true if the given point is within the actual bounds of the
* JList item at index (not just inside the cell).
*/
- private static boolean pointIsInActualBounds(JList list, int index,
+ private static boolean pointIsInActualBounds(JList list, int index,
Point point) {
- ListCellRenderer renderer = list.getCellRenderer();
- ListModel dataModel = list.getModel();
- Object value = dataModel.getElementAt(index);
+ ListCellRenderer super T> renderer = list.getCellRenderer();
+ T value = list.getModel().getElementAt(index);
Component item = renderer.getListCellRendererComponent(list,
value, index, false, false);
Dimension itemSize = item.getPreferredSize();
diff --git a/jdk/src/share/classes/sun/swing/plaf/synth/DefaultSynthStyle.java b/jdk/src/share/classes/sun/swing/plaf/synth/DefaultSynthStyle.java
index 3da946bcb2f..1297bcd26a5 100644
--- a/jdk/src/share/classes/sun/swing/plaf/synth/DefaultSynthStyle.java
+++ b/jdk/src/share/classes/sun/swing/plaf/synth/DefaultSynthStyle.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2002, 2008, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -61,7 +61,7 @@ public class DefaultSynthStyle extends SynthStyle implements Cloneable {
/**
* User specific data.
*/
- private Map data;
+ private Map data;
/**
* Font to use if there is no matching StateInfo, or the StateInfo doesn't
@@ -106,7 +106,7 @@ public class DefaultSynthStyle extends SynthStyle implements Cloneable {
}
}
if (style.data != null) {
- data = new HashMap();
+ data = new HashMap<>();
data.putAll(style.data);
}
font = style.font;
@@ -124,7 +124,7 @@ public class DefaultSynthStyle extends SynthStyle implements Cloneable {
* @param data Style specific data.
*/
public DefaultSynthStyle(Insets insets, boolean opaque,
- StateInfo[] states, Map data) {
+ StateInfo[] states, Map data) {
this.insets = insets;
this.opaque = opaque;
this.states = states;
@@ -366,7 +366,7 @@ public class DefaultSynthStyle extends SynthStyle implements Cloneable {
*
* @param data Style specific values
*/
- public void setData(Map data) {
+ public void setData(Map data) {
this.data = data;
}
@@ -375,7 +375,7 @@ public class DefaultSynthStyle extends SynthStyle implements Cloneable {
*
* @return Style specific data.
*/
- public Map getData() {
+ public Map getData() {
return data;
}
@@ -402,7 +402,7 @@ public class DefaultSynthStyle extends SynthStyle implements Cloneable {
}
- private Object getKeyFromData(Map stateData, Object key) {
+ private Object getKeyFromData(Map stateData, Object key) {
Object value = null;
if (stateData != null) {
@@ -462,7 +462,7 @@ public class DefaultSynthStyle extends SynthStyle implements Cloneable {
}
}
if (data != null) {
- style.data = new HashMap();
+ style.data = new HashMap<>();
style.data.putAll(data);
}
return style;
@@ -570,7 +570,7 @@ public class DefaultSynthStyle extends SynthStyle implements Cloneable {
}
if (data != null) {
if (style.data == null) {
- style.data = new HashMap();
+ style.data = new HashMap<>();
}
style.data.putAll(data);
}
@@ -708,7 +708,7 @@ public class DefaultSynthStyle extends SynthStyle implements Cloneable {
* a component.
*/
public static class StateInfo {
- private Map data;
+ private Map data;
private Font font;
private Color[] colors;
private int state;
@@ -746,7 +746,7 @@ public class DefaultSynthStyle extends SynthStyle implements Cloneable {
this.font = info.font;
if(info.data != null) {
if(data == null) {
- data = new HashMap();
+ data = new HashMap<>();
}
data.putAll(info.data);
}
@@ -756,11 +756,11 @@ public class DefaultSynthStyle extends SynthStyle implements Cloneable {
}
}
- public Map getData() {
+ public Map getData() {
return data;
}
- public void setData(Map data) {
+ public void setData(Map data) {
this.data = data;
}
@@ -836,7 +836,7 @@ public class DefaultSynthStyle extends SynthStyle implements Cloneable {
}
if(data != null) {
if(info.data == null) {
- info.data = new HashMap();
+ info.data = new HashMap<>();
}
info.data.putAll(data);
}
diff --git a/jdk/src/share/classes/sun/swing/plaf/synth/SynthFileChooserUIImpl.java b/jdk/src/share/classes/sun/swing/plaf/synth/SynthFileChooserUIImpl.java
index a933377d995..f0d0ac31c14 100644
--- a/jdk/src/share/classes/sun/swing/plaf/synth/SynthFileChooserUIImpl.java
+++ b/jdk/src/share/classes/sun/swing/plaf/synth/SynthFileChooserUIImpl.java
@@ -175,7 +175,7 @@ public class SynthFileChooserUIImpl extends SynthFileChooserUI {
return SynthFileChooserUIImpl.this.getNewFolderAction();
}
- public MouseListener createDoubleClickListener(JList list) {
+ public MouseListener createDoubleClickListener(JList> list) {
return SynthFileChooserUIImpl.this.createDoubleClickListener(getFileChooser(),
list);
}
@@ -563,7 +563,7 @@ public class SynthFileChooserUIImpl extends SynthFileChooserUI {
if (currentDirectory != null) {
JComponent cb = getDirectoryComboBox();
if (cb instanceof JComboBox) {
- ComboBoxModel model = ((JComboBox)cb).getModel();
+ ComboBoxModel> model = ((JComboBox)cb).getModel();
if (model instanceof DirectoryComboBoxModel) {
((DirectoryComboBoxModel)model).addItem(currentDirectory);
}
From 60f386c8bb9f9aa219d63119ce1c2447b52586ea Mon Sep 17 00:00:00 2001
From: Vinnie Ryan
Date: Tue, 4 Feb 2014 18:37:12 +0000
Subject: [PATCH 154/181] 8028727: [parfait] warnings from b116 for
jdk.src.share.native.sun.security.ec: JNI pending exceptions
Reviewed-by: alanb
---
.../share/native/sun/security/ec/ECC_JNI.cpp | 47 +++++++++++++++++--
1 file changed, 43 insertions(+), 4 deletions(-)
diff --git a/jdk/src/share/native/sun/security/ec/ECC_JNI.cpp b/jdk/src/share/native/sun/security/ec/ECC_JNI.cpp
index dff675f9500..8273e7f8dbb 100644
--- a/jdk/src/share/native/sun/security/ec/ECC_JNI.cpp
+++ b/jdk/src/share/native/sun/security/ec/ECC_JNI.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -41,7 +41,9 @@ extern "C" {
void ThrowException(JNIEnv *env, const char *exceptionName)
{
jclass exceptionClazz = env->FindClass(exceptionName);
- env->ThrowNew(exceptionClazz, NULL);
+ if (exceptionClazz != NULL) {
+ env->ThrowNew(exceptionClazz, NULL);
+ }
}
/*
@@ -73,7 +75,7 @@ JNIEXPORT jlongArray
JNICALL Java_sun_security_ec_ECKeyPairGenerator_generateECKeyPair
(JNIEnv *env, jclass clazz, jint keySize, jbyteArray encodedParams, jbyteArray seed)
{
- ECPrivateKey *privKey; /* contains both public and private values */
+ ECPrivateKey *privKey = NULL; /* contains both public and private values */
ECParams *ecparams = NULL;
SECKEYECParams params_item;
jint jSeedLength;
@@ -85,6 +87,9 @@ JNICALL Java_sun_security_ec_ECKeyPairGenerator_generateECKeyPair
params_item.len = env->GetArrayLength(encodedParams);
params_item.data =
(unsigned char *) env->GetByteArrayElements(encodedParams, 0);
+ if (params_item.data == NULL) {
+ goto cleanup;
+ }
// Fill a new ECParams using the supplied OID
if (EC_DecodeParams(¶ms_item, &ecparams, 0) != SECSuccess) {
@@ -107,7 +112,14 @@ JNICALL Java_sun_security_ec_ECKeyPairGenerator_generateECKeyPair
jboolean isCopy;
result = env->NewLongArray(2);
+ if (result == NULL) {
+ goto cleanup;
+ }
+
resultElements = env->GetLongArrayElements(result, &isCopy);
+ if (resultElements == NULL) {
+ goto cleanup;
+ }
resultElements[0] = (jlong) &(privKey->privateValue); // private big integer
resultElements[1] = (jlong) &(privKey->publicValue); // encoded ec point
@@ -150,6 +162,9 @@ JNICALL Java_sun_security_ec_ECKeyPairGenerator_getEncodedBytes
{
SECItem *s = (SECItem *)hSECItem;
jbyteArray jEncodedBytes = env->NewByteArray(s->len);
+ if (jEncodedBytes == NULL) {
+ return NULL;
+ }
// Copy bytes from a native SECItem buffer to Java byte array
env->SetByteArrayRegion(jEncodedBytes, 0, s->len, (jbyte *)s->data);
@@ -195,6 +210,9 @@ JNICALL Java_sun_security_ec_ECDSASignature_signDigest
params_item.len = env->GetArrayLength(encodedParams);
params_item.data =
(unsigned char *) env->GetByteArrayElements(encodedParams, 0);
+ if (params_item.data == NULL) {
+ goto cleanup;
+ }
// Fill a new ECParams using the supplied OID
if (EC_DecodeParams(¶ms_item, &ecparams, 0) != SECSuccess) {
@@ -208,6 +226,9 @@ JNICALL Java_sun_security_ec_ECDSASignature_signDigest
privKey.privateValue.len = env->GetArrayLength(privateKey);
privKey.privateValue.data =
(unsigned char *) env->GetByteArrayElements(privateKey, 0);
+ if (privKey.privateValue.data == NULL) {
+ goto cleanup;
+ }
// Prepare a buffer for the signature (twice the key length)
pSignedDigestBuffer = new jbyte[ecparams->order.len * 2];
@@ -227,6 +248,9 @@ JNICALL Java_sun_security_ec_ECDSASignature_signDigest
// Create new byte array
temp = env->NewByteArray(signature_item.len);
+ if (temp == NULL) {
+ goto cleanup;
+ }
// Copy data from native buffer
env->SetByteArrayRegion(temp, 0, signature_item.len, pSignedDigestBuffer);
@@ -294,6 +318,9 @@ JNICALL Java_sun_security_ec_ECDSASignature_verifySignedDigest
params_item.len = env->GetArrayLength(encodedParams);
params_item.data =
(unsigned char *) env->GetByteArrayElements(encodedParams, 0);
+ if (params_item.data == NULL) {
+ goto cleanup;
+ }
// Fill a new ECParams using the supplied OID
if (EC_DecodeParams(¶ms_item, &ecparams, 0) != SECSuccess) {
@@ -346,25 +373,34 @@ JNICALL Java_sun_security_ec_ECDHKeyAgreement_deriveKey
(JNIEnv *env, jclass clazz, jbyteArray privateKey, jbyteArray publicKey, jbyteArray encodedParams)
{
jbyteArray jSecret = NULL;
+ ECParams *ecparams = NULL;
// Extract private key value
SECItem privateValue_item;
privateValue_item.len = env->GetArrayLength(privateKey);
privateValue_item.data =
(unsigned char *) env->GetByteArrayElements(privateKey, 0);
+ if (privateValue_item.data == NULL) {
+ goto cleanup;
+ }
// Extract public key value
SECItem publicValue_item;
publicValue_item.len = env->GetArrayLength(publicKey);
publicValue_item.data =
(unsigned char *) env->GetByteArrayElements(publicKey, 0);
+ if (publicValue_item.data == NULL) {
+ goto cleanup;
+ }
// Initialize the ECParams struct
- ECParams *ecparams = NULL;
SECKEYECParams params_item;
params_item.len = env->GetArrayLength(encodedParams);
params_item.data =
(unsigned char *) env->GetByteArrayElements(encodedParams, 0);
+ if (params_item.data == NULL) {
+ goto cleanup;
+ }
// Fill a new ECParams using the supplied OID
if (EC_DecodeParams(¶ms_item, &ecparams, 0) != SECSuccess) {
@@ -386,6 +422,9 @@ JNICALL Java_sun_security_ec_ECDHKeyAgreement_deriveKey
// Create new byte array
jSecret = env->NewByteArray(secret_item.len);
+ if (jSecret == NULL) {
+ goto cleanup;
+ }
// Copy bytes from the SECItem buffer to a Java byte array
env->SetByteArrayRegion(jSecret, 0, secret_item.len,
From 20e35aed8fb6e7ad0a116962765ce1752eee00d4 Mon Sep 17 00:00:00 2001
From: Chris Hegarty
Date: Tue, 4 Feb 2014 23:40:23 +0000
Subject: [PATCH 155/181] 8025306: Inet[4|6]Address class and fieldID
initialization in networking native code
Reviewed-by: alanb, michaelm
---
jdk/make/mapfiles/libnet/mapfile-vers | 1 +
jdk/src/share/native/java/net/Inet4Address.c | 16 ++--
jdk/src/share/native/java/net/Inet6Address.c | 46 +++++-----
jdk/src/share/native/java/net/InetAddress.c | 38 ++++----
jdk/src/share/native/java/net/net_util.c | 89 ++++---------------
jdk/src/share/native/java/net/net_util.h | 2 +
.../native/java/net/Inet4AddressImpl.c | 39 ++------
.../native/java/net/Inet6AddressImpl.c | 63 +++----------
.../native/java/net/NetworkInterface.c | 33 ++-----
.../native/java/net/PlainDatagramSocketImpl.c | 5 +-
.../solaris/native/java/net/PlainSocketImpl.c | 3 +
jdk/src/solaris/native/sun/nio/ch/IOUtil.c | 2 +
.../solaris/native/sun/nio/ch/sctp/SctpNet.c | 1 +
.../native/java/net/Inet4AddressImpl.c | 28 ++----
.../native/java/net/Inet6AddressImpl.c | 49 ++--------
.../native/java/net/NetworkInterface.c | 38 ++------
.../native/java/net/NetworkInterface.h | 10 ---
.../native/java/net/NetworkInterface_winXP.c | 8 +-
jdk/src/windows/native/sun/nio/ch/IOUtil.c | 2 +
19 files changed, 141 insertions(+), 332 deletions(-)
diff --git a/jdk/make/mapfiles/libnet/mapfile-vers b/jdk/make/mapfiles/libnet/mapfile-vers
index cdd98f8cce6..e3e7ce91fcf 100644
--- a/jdk/make/mapfiles/libnet/mapfile-vers
+++ b/jdk/make/mapfiles/libnet/mapfile-vers
@@ -105,6 +105,7 @@ SUNWprivate_1.1 {
NET_MapSocketOption;
NET_Wait;
ipv6_available;
+ initInetAddressIDs;
local:
*;
diff --git a/jdk/src/share/native/java/net/Inet4Address.c b/jdk/src/share/native/java/net/Inet4Address.c
index b2f25416133..9fb0f342c00 100644
--- a/jdk/src/share/native/java/net/Inet4Address.c
+++ b/jdk/src/share/native/java/net/Inet4Address.c
@@ -34,6 +34,8 @@
jclass ia4_class;
jmethodID ia4_ctrID;
+static int ia4_initialized = 0;
+
/*
* Class: java_net_Inet4Address
* Method: init
@@ -41,9 +43,13 @@ jmethodID ia4_ctrID;
*/
JNIEXPORT void JNICALL
Java_java_net_Inet4Address_init(JNIEnv *env, jclass cls) {
- jclass c = (*env)->FindClass(env, "java/net/Inet4Address");
- CHECK_NULL(c);
- ia4_class = (*env)->NewGlobalRef(env, c);
- CHECK_NULL(ia4_class);
- ia4_ctrID = (*env)->GetMethodID(env, ia4_class, "", "()V");
+ if (!ia4_initialized) {
+ jclass c = (*env)->FindClass(env, "java/net/Inet4Address");
+ CHECK_NULL(c);
+ ia4_class = (*env)->NewGlobalRef(env, c);
+ CHECK_NULL(ia4_class);
+ ia4_ctrID = (*env)->GetMethodID(env, ia4_class, "", "()V");
+ CHECK_NULL(ia4_ctrID);
+ ia4_initialized = 1;
+ }
}
diff --git a/jdk/src/share/native/java/net/Inet6Address.c b/jdk/src/share/native/java/net/Inet6Address.c
index 729fe78281d..8d34918386d 100644
--- a/jdk/src/share/native/java/net/Inet6Address.c
+++ b/jdk/src/share/native/java/net/Inet6Address.c
@@ -42,6 +42,8 @@ jfieldID ia6_scopeidsetID;
jfieldID ia6_scopeifnameID;
jmethodID ia6_ctrID;
+static int ia6_initialized = 0;
+
/*
* Class: java_net_Inet6Address
* Method: init
@@ -49,24 +51,28 @@ jmethodID ia6_ctrID;
*/
JNIEXPORT void JNICALL
Java_java_net_Inet6Address_init(JNIEnv *env, jclass cls) {
- jclass ia6h_class;
- jclass c = (*env)->FindClass(env, "java/net/Inet6Address");
- CHECK_NULL(c);
- ia6_class = (*env)->NewGlobalRef(env, c);
- CHECK_NULL(ia6_class);
- ia6h_class = (*env)->FindClass(env, "java/net/Inet6Address$Inet6AddressHolder");
- CHECK_NULL(ia6h_class);
- ia6_holder6ID = (*env)->GetFieldID(env, ia6_class, "holder6", "Ljava/net/Inet6Address$Inet6AddressHolder;");
- CHECK_NULL(ia6_holder6ID);
- ia6_ipaddressID = (*env)->GetFieldID(env, ia6h_class, "ipaddress", "[B");
- CHECK_NULL(ia6_ipaddressID);
- ia6_scopeidID = (*env)->GetFieldID(env, ia6h_class, "scope_id", "I");
- CHECK_NULL(ia6_scopeidID);
- ia6_cachedscopeidID = (*env)->GetFieldID(env, ia6_class, "cached_scope_id", "I");
- CHECK_NULL(ia6_cachedscopeidID);
- ia6_scopeidsetID = (*env)->GetFieldID(env, ia6h_class, "scope_id_set", "Z");
- CHECK_NULL(ia6_scopeidsetID);
- ia6_scopeifnameID = (*env)->GetFieldID(env, ia6h_class, "scope_ifname", "Ljava/net/NetworkInterface;");
- CHECK_NULL(ia6_scopeifnameID);
- ia6_ctrID = (*env)->GetMethodID(env, ia6_class, "", "()V");
+ if (!ia6_initialized) {
+ jclass ia6h_class;
+ jclass c = (*env)->FindClass(env, "java/net/Inet6Address");
+ CHECK_NULL(c);
+ ia6_class = (*env)->NewGlobalRef(env, c);
+ CHECK_NULL(ia6_class);
+ ia6h_class = (*env)->FindClass(env, "java/net/Inet6Address$Inet6AddressHolder");
+ CHECK_NULL(ia6h_class);
+ ia6_holder6ID = (*env)->GetFieldID(env, ia6_class, "holder6", "Ljava/net/Inet6Address$Inet6AddressHolder;");
+ CHECK_NULL(ia6_holder6ID);
+ ia6_ipaddressID = (*env)->GetFieldID(env, ia6h_class, "ipaddress", "[B");
+ CHECK_NULL(ia6_ipaddressID);
+ ia6_scopeidID = (*env)->GetFieldID(env, ia6h_class, "scope_id", "I");
+ CHECK_NULL(ia6_scopeidID);
+ ia6_cachedscopeidID = (*env)->GetFieldID(env, ia6_class, "cached_scope_id", "I");
+ CHECK_NULL(ia6_cachedscopeidID);
+ ia6_scopeidsetID = (*env)->GetFieldID(env, ia6h_class, "scope_id_set", "Z");
+ CHECK_NULL(ia6_scopeidsetID);
+ ia6_scopeifnameID = (*env)->GetFieldID(env, ia6h_class, "scope_ifname", "Ljava/net/NetworkInterface;");
+ CHECK_NULL(ia6_scopeifnameID);
+ ia6_ctrID = (*env)->GetMethodID(env, ia6_class, "", "()V");
+ CHECK_NULL(ia6_ctrID);
+ ia6_initialized = 1;
+ }
}
diff --git a/jdk/src/share/native/java/net/InetAddress.c b/jdk/src/share/native/java/net/InetAddress.c
index e9fd0979cb8..a712dd9b1d1 100644
--- a/jdk/src/share/native/java/net/InetAddress.c
+++ b/jdk/src/share/native/java/net/InetAddress.c
@@ -40,6 +40,8 @@ jfieldID iac_familyID;
jfieldID iac_hostNameID;
jfieldID ia_preferIPv6AddressID;
+static int ia_initialized = 0;
+
/*
* Class: java_net_InetAddress
* Method: init
@@ -47,21 +49,25 @@ jfieldID ia_preferIPv6AddressID;
*/
JNIEXPORT void JNICALL
Java_java_net_InetAddress_init(JNIEnv *env, jclass cls) {
- jclass c = (*env)->FindClass(env,"java/net/InetAddress");
- CHECK_NULL(c);
- ia_class = (*env)->NewGlobalRef(env, c);
- CHECK_NULL(ia_class);
- c = (*env)->FindClass(env,"java/net/InetAddress$InetAddressHolder");
- CHECK_NULL(c);
- iac_class = (*env)->NewGlobalRef(env, c);
- ia_holderID = (*env)->GetFieldID(env, ia_class, "holder", "Ljava/net/InetAddress$InetAddressHolder;");
- CHECK_NULL(ia_holderID);
- ia_preferIPv6AddressID = (*env)->GetStaticFieldID(env, ia_class, "preferIPv6Address", "Z");
- CHECK_NULL(ia_preferIPv6AddressID);
+ if (!ia_initialized) {
+ jclass c = (*env)->FindClass(env,"java/net/InetAddress");
+ CHECK_NULL(c);
+ ia_class = (*env)->NewGlobalRef(env, c);
+ CHECK_NULL(ia_class);
+ c = (*env)->FindClass(env,"java/net/InetAddress$InetAddressHolder");
+ CHECK_NULL(c);
+ iac_class = (*env)->NewGlobalRef(env, c);
+ ia_holderID = (*env)->GetFieldID(env, ia_class, "holder", "Ljava/net/InetAddress$InetAddressHolder;");
+ CHECK_NULL(ia_holderID);
+ ia_preferIPv6AddressID = (*env)->GetStaticFieldID(env, ia_class, "preferIPv6Address", "Z");
+ CHECK_NULL(ia_preferIPv6AddressID);
- iac_addressID = (*env)->GetFieldID(env, iac_class, "address", "I");
- CHECK_NULL(iac_addressID);
- iac_familyID = (*env)->GetFieldID(env, iac_class, "family", "I");
- CHECK_NULL(iac_familyID);
- iac_hostNameID = (*env)->GetFieldID(env, iac_class, "hostName", "Ljava/lang/String;");
+ iac_addressID = (*env)->GetFieldID(env, iac_class, "address", "I");
+ CHECK_NULL(iac_addressID);
+ iac_familyID = (*env)->GetFieldID(env, iac_class, "family", "I");
+ CHECK_NULL(iac_familyID);
+ iac_hostNameID = (*env)->GetFieldID(env, iac_class, "hostName", "Ljava/lang/String;");
+ CHECK_NULL(iac_hostNameID);
+ ia_initialized = 1;
+ }
}
diff --git a/jdk/src/share/native/java/net/net_util.c b/jdk/src/share/native/java/net/net_util.c
index f8a0e90b532..dd93b1375bc 100644
--- a/jdk/src/share/native/java/net/net_util.c
+++ b/jdk/src/share/native/java/net/net_util.c
@@ -75,11 +75,14 @@ JNI_OnLoad(JavaVM *vm, void *reserved)
static int initialized = 0;
-static void initInetAddrs(JNIEnv *env) {
+JNIEXPORT void JNICALL initInetAddressIDs(JNIEnv *env) {
if (!initialized) {
Java_java_net_InetAddress_init(env, 0);
+ JNU_CHECK_EXCEPTION(env);
Java_java_net_Inet4Address_init(env, 0);
+ JNU_CHECK_EXCEPTION(env);
Java_java_net_Inet6Address_init(env, 0);
+ JNU_CHECK_EXCEPTION(env);
initialized = 1;
}
}
@@ -100,47 +103,32 @@ extern jfieldID iac_familyID;
* get_ methods that return objects return NULL on error.
*/
jobject getInet6Address_scopeifname(JNIEnv *env, jobject iaObj) {
- jobject holder;
-
- initInetAddrs(env);
- holder = (*env)->GetObjectField(env, iaObj, ia6_holder6ID);
+ jobject holder = (*env)->GetObjectField(env, iaObj, ia6_holder6ID);
CHECK_NULL_RETURN(holder, NULL);
return (*env)->GetObjectField(env, holder, ia6_scopeifnameID);
}
int setInet6Address_scopeifname(JNIEnv *env, jobject iaObj, jobject scopeifname) {
- jobject holder;
-
- initInetAddrs(env);
- holder = (*env)->GetObjectField(env, iaObj, ia6_holder6ID);
+ jobject holder = (*env)->GetObjectField(env, iaObj, ia6_holder6ID);
CHECK_NULL_RETURN(holder, JNI_FALSE);
(*env)->SetObjectField(env, holder, ia6_scopeifnameID, scopeifname);
return JNI_TRUE;
}
int getInet6Address_scopeid_set(JNIEnv *env, jobject iaObj) {
- jobject holder;
-
- initInetAddrs(env);
- holder = (*env)->GetObjectField(env, iaObj, ia6_holder6ID);
+ jobject holder = (*env)->GetObjectField(env, iaObj, ia6_holder6ID);
CHECK_NULL_RETURN(holder, -1);
return (*env)->GetBooleanField(env, holder, ia6_scopeidsetID);
}
int getInet6Address_scopeid(JNIEnv *env, jobject iaObj) {
- jobject holder;
-
- initInetAddrs(env);
- holder = (*env)->GetObjectField(env, iaObj, ia6_holder6ID);
+ jobject holder = (*env)->GetObjectField(env, iaObj, ia6_holder6ID);
CHECK_NULL_RETURN(holder, -1);
return (*env)->GetIntField(env, holder, ia6_scopeidID);
}
int setInet6Address_scopeid(JNIEnv *env, jobject iaObj, int scopeid) {
- jobject holder;
-
- initInetAddrs(env);
- holder = (*env)->GetObjectField(env, iaObj, ia6_holder6ID);
+ jobject holder = (*env)->GetObjectField(env, iaObj, ia6_holder6ID);
CHECK_NULL_RETURN(holder, JNI_FALSE);
(*env)->SetIntField(env, holder, ia6_scopeidID, scopeid);
if (scopeid > 0) {
@@ -154,7 +142,6 @@ int getInet6Address_ipaddress(JNIEnv *env, jobject iaObj, char *dest) {
jobject holder, addr;
jbyteArray barr;
- initInetAddrs(env);
holder = (*env)->GetObjectField(env, iaObj, ia6_holder6ID);
CHECK_NULL_RETURN(holder, JNI_FALSE);
addr = (*env)->GetObjectField(env, holder, ia6_ipaddressID);
@@ -167,7 +154,6 @@ int setInet6Address_ipaddress(JNIEnv *env, jobject iaObj, char *address) {
jobject holder;
jbyteArray addr;
- initInetAddrs(env);
holder = (*env)->GetObjectField(env, iaObj, ia6_holder6ID);
CHECK_NULL_RETURN(holder, JNI_FALSE);
addr = (jbyteArray)(*env)->GetObjectField(env, holder, ia6_ipaddressID);
@@ -181,52 +167,38 @@ int setInet6Address_ipaddress(JNIEnv *env, jobject iaObj, char *address) {
}
void setInetAddress_addr(JNIEnv *env, jobject iaObj, int address) {
- jobject holder;
- initInetAddrs(env);
- holder = (*env)->GetObjectField(env, iaObj, ia_holderID);
+ jobject holder = (*env)->GetObjectField(env, iaObj, ia_holderID);
(*env)->SetIntField(env, holder, iac_addressID, address);
}
void setInetAddress_family(JNIEnv *env, jobject iaObj, int family) {
- jobject holder;
- initInetAddrs(env);
- holder = (*env)->GetObjectField(env, iaObj, ia_holderID);
+ jobject holder = (*env)->GetObjectField(env, iaObj, ia_holderID);
(*env)->SetIntField(env, holder, iac_familyID, family);
}
void setInetAddress_hostName(JNIEnv *env, jobject iaObj, jobject host) {
- jobject holder;
- initInetAddrs(env);
- holder = (*env)->GetObjectField(env, iaObj, ia_holderID);
+ jobject holder = (*env)->GetObjectField(env, iaObj, ia_holderID);
(*env)->SetObjectField(env, holder, iac_hostNameID, host);
}
int getInetAddress_addr(JNIEnv *env, jobject iaObj) {
- jobject holder;
- initInetAddrs(env);
- holder = (*env)->GetObjectField(env, iaObj, ia_holderID);
+ jobject holder = (*env)->GetObjectField(env, iaObj, ia_holderID);
return (*env)->GetIntField(env, holder, iac_addressID);
}
int getInetAddress_family(JNIEnv *env, jobject iaObj) {
- jobject holder;
-
- initInetAddrs(env);
- holder = (*env)->GetObjectField(env, iaObj, ia_holderID);
+ jobject holder = (*env)->GetObjectField(env, iaObj, ia_holderID);
return (*env)->GetIntField(env, holder, iac_familyID);
}
jobject getInetAddress_hostName(JNIEnv *env, jobject iaObj) {
- jobject holder;
- initInetAddrs(env);
- holder = (*env)->GetObjectField(env, iaObj, ia_holderID);
+ jobject holder = (*env)->GetObjectField(env, iaObj, ia_holderID);
return (*env)->GetObjectField(env, holder, iac_hostNameID);
}
JNIEXPORT jobject JNICALL
NET_SockaddrToInetAddress(JNIEnv *env, struct sockaddr *him, int *port) {
jobject iaObj;
- initInetAddrs(env);
#ifdef AF_INET6
if (him->sa_family == AF_INET6) {
jbyteArray ipaddress;
@@ -238,31 +210,15 @@ NET_SockaddrToInetAddress(JNIEnv *env, struct sockaddr *him, int *port) {
jbyte *caddr = (jbyte *)&(him6->sin6_addr);
if (NET_IsIPv4Mapped(caddr)) {
int address;
- static jclass inet4Cls = 0;
- if (inet4Cls == 0) {
- jclass c = (*env)->FindClass(env, "java/net/Inet4Address");
- CHECK_NULL_RETURN(c, NULL);
- inet4Cls = (*env)->NewGlobalRef(env, c);
- CHECK_NULL_RETURN(inet4Cls, NULL);
- (*env)->DeleteLocalRef(env, c);
- }
- iaObj = (*env)->NewObject(env, inet4Cls, ia4_ctrID);
+ iaObj = (*env)->NewObject(env, ia4_class, ia4_ctrID);
CHECK_NULL_RETURN(iaObj, NULL);
address = NET_IPv4MappedToIPv4(caddr);
setInetAddress_addr(env, iaObj, address);
setInetAddress_family(env, iaObj, IPv4);
} else {
- static jclass inet6Cls = 0;
jint scope;
int ret;
- if (inet6Cls == 0) {
- jclass c = (*env)->FindClass(env, "java/net/Inet6Address");
- CHECK_NULL_RETURN(c, NULL);
- inet6Cls = (*env)->NewGlobalRef(env, c);
- CHECK_NULL_RETURN(inet6Cls, NULL);
- (*env)->DeleteLocalRef(env, c);
- }
- iaObj = (*env)->NewObject(env, inet6Cls, ia6_ctrID);
+ iaObj = (*env)->NewObject(env, ia6_class, ia6_ctrID);
CHECK_NULL_RETURN(iaObj, NULL);
ret = setInet6Address_ipaddress(env, iaObj, (char *)&(him6->sin6_addr));
CHECK_NULL_RETURN(ret, NULL);
@@ -275,16 +231,7 @@ NET_SockaddrToInetAddress(JNIEnv *env, struct sockaddr *him, int *port) {
#endif /* AF_INET6 */
{
struct sockaddr_in *him4 = (struct sockaddr_in *)him;
- static jclass inet4Cls = 0;
-
- if (inet4Cls == 0) {
- jclass c = (*env)->FindClass(env, "java/net/Inet4Address");
- CHECK_NULL_RETURN(c, NULL);
- inet4Cls = (*env)->NewGlobalRef(env, c);
- CHECK_NULL_RETURN(inet4Cls, NULL);
- (*env)->DeleteLocalRef(env, c);
- }
- iaObj = (*env)->NewObject(env, inet4Cls, ia4_ctrID);
+ iaObj = (*env)->NewObject(env, ia4_class, ia4_ctrID);
CHECK_NULL_RETURN(iaObj, NULL);
setInetAddress_family(env, iaObj, IPv4);
setInetAddress_addr(env, iaObj, ntohl(him4->sin_addr.s_addr));
diff --git a/jdk/src/share/native/java/net/net_util.h b/jdk/src/share/native/java/net/net_util.h
index f0f242eb632..b77d02b2fad 100644
--- a/jdk/src/share/native/java/net/net_util.h
+++ b/jdk/src/share/native/java/net/net_util.h
@@ -55,6 +55,8 @@ extern jfieldID iac_familyID;
extern jfieldID iac_hostNameID;
extern jfieldID ia_preferIPv6AddressID;
+JNIEXPORT void JNICALL initInetAddressIDs(JNIEnv *env);
+
/** (Inet6Address accessors)
* set_ methods return JNI_TRUE on success JNI_FALSE on error
* get_ methods that return int/boolean, return -1 on error
diff --git a/jdk/src/solaris/native/java/net/Inet4AddressImpl.c b/jdk/src/solaris/native/java/net/Inet4AddressImpl.c
index ea67245f0fe..9d79d3eb80a 100644
--- a/jdk/src/solaris/native/java/net/Inet4AddressImpl.c
+++ b/jdk/src/solaris/native/java/net/Inet4AddressImpl.c
@@ -51,29 +51,6 @@
#define HAS_GLIBC_GETHOSTBY_R 1
#endif
-static jclass ni_iacls;
-static jclass ni_ia4cls;
-static jmethodID ni_ia4ctrID;
-
-static jboolean initializeInetClasses(JNIEnv *env)
-{
- static int initialized = 0;
- if (!initialized) {
- ni_iacls = (*env)->FindClass(env, "java/net/InetAddress");
- CHECK_NULL_RETURN(ni_iacls, JNI_FALSE);
- ni_iacls = (*env)->NewGlobalRef(env, ni_iacls);
- CHECK_NULL_RETURN(ni_iacls, JNI_FALSE);
- ni_ia4cls = (*env)->FindClass(env, "java/net/Inet4Address");
- CHECK_NULL_RETURN(ni_ia4cls, JNI_FALSE);
- ni_ia4cls = (*env)->NewGlobalRef(env, ni_ia4cls);
- CHECK_NULL_RETURN(ni_ia4cls, JNI_FALSE);
- ni_ia4ctrID = (*env)->GetMethodID(env, ni_ia4cls, "", "()V");
- CHECK_NULL_RETURN(ni_ia4ctrID, JNI_FALSE);
- initialized = 1;
- }
- return JNI_TRUE;
-}
-
#if defined(_ALLBSD_SOURCE) && !defined(HAS_GLIBC_GETHOSTBY_R)
extern jobjectArray lookupIfLocalhost(JNIEnv *env, const char *hostname, jboolean includeV6);
@@ -147,8 +124,8 @@ Java_java_net_Inet4AddressImpl_lookupAllHostAddr(JNIEnv *env, jobject this,
int error=0;
struct addrinfo hints, *res, *resNew = NULL;
- if (!initializeInetClasses(env))
- return NULL;
+ initInetAddressIDs(env);
+ JNU_CHECK_EXCEPTION_RETURN(env, NULL);
if (IS_NULL(host)) {
JNU_ThrowNullPointerException(env, "host is null");
@@ -241,7 +218,7 @@ Java_java_net_Inet4AddressImpl_lookupAllHostAddr(JNIEnv *env, jobject this,
goto cleanupAndReturn;
}
- ret = (*env)->NewObjectArray(env, retLen, ni_iacls, NULL);
+ ret = (*env)->NewObjectArray(env, retLen, ia_class, NULL);
if (IS_NULL(ret)) {
/* we may have memory to free at the end of this */
goto cleanupAndReturn;
@@ -251,7 +228,7 @@ Java_java_net_Inet4AddressImpl_lookupAllHostAddr(JNIEnv *env, jobject this,
/* We need 4 bytes to store ipv4 address; */
int len = 4;
- jobject iaObj = (*env)->NewObject(env, ni_ia4cls, ni_ia4ctrID);
+ jobject iaObj = (*env)->NewObject(env, ia4_class, ia4_ctrID);
if (IS_NULL(iaObj)) {
/* we may have memory to free at the end of this */
ret = NULL;
@@ -407,8 +384,8 @@ Java_java_net_Inet4AddressImpl_lookupAllHostAddr(JNIEnv *env, jobject this,
int error = 0;
struct addrinfo hints, *res, *resNew = NULL;
- if (!initializeInetClasses(env))
- return NULL;
+ initInetAddressIDs(env);
+ JNU_CHECK_EXCEPTION_RETURN(env, NULL);
if (IS_NULL(host)) {
JNU_ThrowNullPointerException(env, "host is null");
@@ -486,7 +463,7 @@ Java_java_net_Inet4AddressImpl_lookupAllHostAddr(JNIEnv *env, jobject this,
retLen = i;
iterator = resNew;
- ret = (*env)->NewObjectArray(env, retLen, ni_iacls, NULL);
+ ret = (*env)->NewObjectArray(env, retLen, ia_class, NULL);
if (IS_NULL(ret)) {
/* we may have memory to free at the end of this */
@@ -495,7 +472,7 @@ Java_java_net_Inet4AddressImpl_lookupAllHostAddr(JNIEnv *env, jobject this,
i = 0;
while (iterator != NULL) {
- jobject iaObj = (*env)->NewObject(env, ni_ia4cls, ni_ia4ctrID);
+ jobject iaObj = (*env)->NewObject(env, ia4_class, ia4_ctrID);
if (IS_NULL(iaObj)) {
ret = NULL;
goto cleanupAndReturn;
diff --git a/jdk/src/solaris/native/java/net/Inet6AddressImpl.c b/jdk/src/solaris/native/java/net/Inet6AddressImpl.c
index 1e4e7d684d1..8de5a9bea1b 100644
--- a/jdk/src/solaris/native/java/net/Inet6AddressImpl.c
+++ b/jdk/src/solaris/native/java/net/Inet6AddressImpl.c
@@ -117,44 +117,6 @@ Java_java_net_Inet6AddressImpl_getLocalHostName(JNIEnv *env, jobject this) {
return (*env)->NewStringUTF(env, hostname);
}
-static jclass ni_iacls;
-static jclass ni_ia4cls;
-static jclass ni_ia6cls;
-static jmethodID ni_ia4ctrID;
-static jmethodID ni_ia6ctrID;
-static jboolean preferIPv6Address;
-
-static jboolean initializeInetClasses(JNIEnv *env)
-{
- jfieldID ni_preferIPv6AddressID;
- static int initialized = 0;
- if (!initialized) {
- ni_iacls = (*env)->FindClass(env, "java/net/InetAddress");
- CHECK_NULL_RETURN(ni_iacls, JNI_FALSE);
- ni_iacls = (*env)->NewGlobalRef(env, ni_iacls);
- CHECK_NULL_RETURN(ni_iacls, JNI_FALSE);
- ni_ia4cls = (*env)->FindClass(env, "java/net/Inet4Address");
- CHECK_NULL_RETURN(ni_ia4cls, JNI_FALSE);
- ni_ia4cls = (*env)->NewGlobalRef(env, ni_ia4cls);
- CHECK_NULL_RETURN(ni_ia4cls, JNI_FALSE);
- ni_ia6cls = (*env)->FindClass(env, "java/net/Inet6Address");
- CHECK_NULL_RETURN(ni_ia6cls, JNI_FALSE);
- ni_ia6cls = (*env)->NewGlobalRef(env, ni_ia6cls);
- CHECK_NULL_RETURN(ni_ia6cls, JNI_FALSE);
- ni_ia4ctrID = (*env)->GetMethodID(env, ni_ia4cls, "", "()V");
- CHECK_NULL_RETURN(ni_ia4ctrID, JNI_FALSE);
- ni_ia6ctrID = (*env)->GetMethodID(env, ni_ia6cls, "", "()V");
- CHECK_NULL_RETURN(ni_ia6ctrID, JNI_FALSE);
- ni_preferIPv6AddressID =
- (*env)->GetStaticFieldID(env, ni_iacls, "preferIPv6Address", "Z");
- CHECK_NULL_RETURN(ni_preferIPv6AddressID, JNI_FALSE);
- preferIPv6Address =
- (*env)->GetStaticBooleanField(env, ia_class, ia_preferIPv6AddressID);
- initialized = 1;
- }
- return JNI_TRUE;
-}
-
#ifdef MACOSX
/* also called from Inet4AddressImpl.c */
__private_extern__ jobjectArray
@@ -169,9 +131,8 @@ lookupIfLocalhost(JNIEnv *env, const char *hostname, jboolean includeV6)
jboolean includeLoopback = JNI_FALSE;
jobject name;
- // Make sure static variables we need are set.
- if (!initializeInetClasses(env))
- return NULL;
+ initInetAddressIDs(env);
+ JNU_CHECK_EXCEPTION_RETURN(env, NULL);
/* If the requested name matches this host's hostname, return IP addresses
* from all attached interfaces. (#2844683 et al) This prevents undesired
@@ -196,7 +157,7 @@ lookupIfLocalhost(JNIEnv *env, const char *hostname, jboolean includeV6)
}
name = (*env)->NewStringUTF(env, hostname);
- CHECK_NULL(name);
+ CHECK_NULL_RETURN(name, NULL);
/* Iterate over the interfaces, and total up the number of IPv4 and IPv6
* addresses we have. Also keep a count of loopback addresses. We need to
@@ -231,10 +192,10 @@ lookupIfLocalhost(JNIEnv *env, const char *hostname, jboolean includeV6)
/* Create and fill the Java array. */
int arraySize = addrs4 + addrs6 -
(includeLoopback ? 0 : (numV4Loopbacks + numV6Loopbacks));
- result = (*env)->NewObjectArray(env, arraySize, ni_iacls, NULL);
+ result = (*env)->NewObjectArray(env, arraySize, ia_class, NULL);
if (!result) goto done;
- if (preferIPv6Address) {
+ if ((*env)->GetStaticBooleanField(env, ia_class, ia_preferIPv6AddressID)) {
i = includeLoopback ? addrs6 : (addrs6 - numV6Loopbacks);
j = 0;
} else {
@@ -298,8 +259,8 @@ Java_java_net_Inet6AddressImpl_lookupAllHostAddr(JNIEnv *env, jobject this,
struct addrinfo hints, *res, *resNew = NULL;
#endif /* AF_INET6 */
- if (!initializeInetClasses(env))
- return NULL;
+ initInetAddressIDs(env);
+ JNU_CHECK_EXCEPTION_RETURN(env, NULL);
if (IS_NULL(host)) {
JNU_ThrowNullPointerException(env, "host is null");
@@ -423,14 +384,14 @@ Java_java_net_Inet6AddressImpl_lookupAllHostAddr(JNIEnv *env, jobject this,
retLen = i;
iterator = resNew;
- ret = (*env)->NewObjectArray(env, retLen, ni_iacls, NULL);
+ ret = (*env)->NewObjectArray(env, retLen, ia_class, NULL);
if (IS_NULL(ret)) {
/* we may have memory to free at the end of this */
goto cleanupAndReturn;
}
- if (preferIPv6Address) {
+ if ((*env)->GetStaticBooleanField(env, ia_class, ia_preferIPv6AddressID)) {
/* AF_INET addresses will be offset by inet6Count */
inetIndex = inet6Count;
inet6Index = 0;
@@ -443,7 +404,7 @@ Java_java_net_Inet6AddressImpl_lookupAllHostAddr(JNIEnv *env, jobject this,
while (iterator != NULL) {
int ret1;
if (iterator->ai_family == AF_INET) {
- jobject iaObj = (*env)->NewObject(env, ni_ia4cls, ni_ia4ctrID);
+ jobject iaObj = (*env)->NewObject(env, ia4_class, ia4_ctrID);
if (IS_NULL(iaObj)) {
ret = NULL;
goto cleanupAndReturn;
@@ -455,7 +416,7 @@ Java_java_net_Inet6AddressImpl_lookupAllHostAddr(JNIEnv *env, jobject this,
} else if (iterator->ai_family == AF_INET6) {
jint scope = 0;
- jobject iaObj = (*env)->NewObject(env, ni_ia6cls, ni_ia6ctrID);
+ jobject iaObj = (*env)->NewObject(env, ia6_class, ia6_ctrID);
if (IS_NULL(iaObj)) {
ret = NULL;
goto cleanupAndReturn;
@@ -549,7 +510,7 @@ Java_java_net_Inet6AddressImpl_getHostByAddr(JNIEnv *env, jobject this,
if (!error) {
ret = (*env)->NewStringUTF(env, host);
- CHECK_NULL(ret);
+ CHECK_NULL_RETURN(ret, NULL);
}
#endif /* AF_INET6 */
diff --git a/jdk/src/solaris/native/java/net/NetworkInterface.c b/jdk/src/solaris/native/java/net/NetworkInterface.c
index 16acf07a269..380dff19cc8 100644
--- a/jdk/src/solaris/native/java/net/NetworkInterface.c
+++ b/jdk/src/solaris/native/java/net/NetworkInterface.c
@@ -118,12 +118,7 @@ jfieldID ni_parentID;
jfieldID ni_defaultIndexID;
jmethodID ni_ctrID;
-static jclass ni_iacls;
-static jclass ni_ia4cls;
-static jclass ni_ia6cls;
static jclass ni_ibcls;
-static jmethodID ni_ia4ctrID;
-static jmethodID ni_ia6ctrID;
static jmethodID ni_ibctrID;
static jfieldID ni_ibaddressID;
static jfieldID ni_ib4broadcastID;
@@ -198,27 +193,10 @@ Java_java_net_NetworkInterface_init(JNIEnv *env, jclass cls) {
CHECK_NULL(ni_parentID);
ni_ctrID = (*env)->GetMethodID(env, ni_class, "", "()V");
CHECK_NULL(ni_ctrID);
-
- ni_iacls = (*env)->FindClass(env, "java/net/InetAddress");
- CHECK_NULL(ni_iacls);
- ni_iacls = (*env)->NewGlobalRef(env, ni_iacls);
- CHECK_NULL(ni_iacls);
- ni_ia4cls = (*env)->FindClass(env, "java/net/Inet4Address");
- CHECK_NULL(ni_ia4cls);
- ni_ia4cls = (*env)->NewGlobalRef(env, ni_ia4cls);
- CHECK_NULL(ni_ia4cls);
- ni_ia6cls = (*env)->FindClass(env, "java/net/Inet6Address");
- CHECK_NULL(ni_ia6cls);
- ni_ia6cls = (*env)->NewGlobalRef(env, ni_ia6cls);
- CHECK_NULL(ni_ia6cls);
ni_ibcls = (*env)->FindClass(env, "java/net/InterfaceAddress");
CHECK_NULL(ni_ibcls);
ni_ibcls = (*env)->NewGlobalRef(env, ni_ibcls);
CHECK_NULL(ni_ibcls);
- ni_ia4ctrID = (*env)->GetMethodID(env, ni_ia4cls, "", "()V");
- CHECK_NULL(ni_ia4ctrID);
- ni_ia6ctrID = (*env)->GetMethodID(env, ni_ia6cls, "", "()V");
- CHECK_NULL(ni_ia6ctrID);
ni_ibctrID = (*env)->GetMethodID(env, ni_ibcls, "", "()V");
CHECK_NULL(ni_ibctrID);
ni_ibaddressID = (*env)->GetFieldID(env, ni_ibcls, "address", "Ljava/net/InetAddress;");
@@ -228,6 +206,9 @@ Java_java_net_NetworkInterface_init(JNIEnv *env, jclass cls) {
ni_ib4maskID = (*env)->GetFieldID(env, ni_ibcls, "maskLength", "S");
CHECK_NULL(ni_ib4maskID);
ni_defaultIndexID = (*env)->GetStaticFieldID(env, ni_class, "defaultIndex", "I");
+ CHECK_NULL(ni_defaultIndexID);
+
+ initInetAddressIDs(env);
}
@@ -654,7 +635,7 @@ jobject createNetworkInterface(JNIEnv *env, netif *ifs) {
/*
* Create the array of InetAddresses
*/
- addrArr = (*env)->NewObjectArray(env, addr_count, ni_iacls, NULL);
+ addrArr = (*env)->NewObjectArray(env, addr_count, ia_class, NULL);
if (addrArr == NULL) {
return NULL;
}
@@ -671,7 +652,7 @@ jobject createNetworkInterface(JNIEnv *env, netif *ifs) {
jobject ibObj = NULL;
if (addrP->family == AF_INET) {
- iaObj = (*env)->NewObject(env, ni_ia4cls, ni_ia4ctrID);
+ iaObj = (*env)->NewObject(env, ia4_class, ia4_ctrID);
if (iaObj) {
setInetAddress_addr(env, iaObj, htonl(((struct sockaddr_in*)addrP->addr)->sin_addr.s_addr));
}
@@ -680,7 +661,7 @@ jobject createNetworkInterface(JNIEnv *env, netif *ifs) {
(*env)->SetObjectField(env, ibObj, ni_ibaddressID, iaObj);
if (addrP->brdcast) {
jobject ia2Obj = NULL;
- ia2Obj = (*env)->NewObject(env, ni_ia4cls, ni_ia4ctrID);
+ ia2Obj = (*env)->NewObject(env, ia4_class, ia4_ctrID);
if (ia2Obj) {
setInetAddress_addr(env, ia2Obj, htonl(((struct sockaddr_in*)addrP->brdcast)->sin_addr.s_addr));
(*env)->SetObjectField(env, ibObj, ni_ib4broadcastID, ia2Obj);
@@ -694,7 +675,7 @@ jobject createNetworkInterface(JNIEnv *env, netif *ifs) {
#ifdef AF_INET6
if (addrP->family == AF_INET6) {
int scope=0;
- iaObj = (*env)->NewObject(env, ni_ia6cls, ni_ia6ctrID);
+ iaObj = (*env)->NewObject(env, ia6_class, ia6_ctrID);
if (iaObj) {
int ret = setInet6Address_ipaddress(env, iaObj, (char *)&(((struct sockaddr_in6*)addrP->addr)->sin6_addr));
if (ret == JNI_FALSE) {
diff --git a/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c b/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c
index 53d8fae2751..3df46c85171 100644
--- a/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c
+++ b/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c
@@ -166,9 +166,8 @@ Java_java_net_PlainDatagramSocketImpl_init(JNIEnv *env, jclass cls) {
IO_fd_fdID = NET_GetFileDescriptorID(env);
CHECK_NULL(IO_fd_fdID);
- Java_java_net_InetAddress_init(env, 0);
- Java_java_net_Inet4Address_init(env, 0);
- Java_java_net_Inet6Address_init(env, 0);
+ initInetAddressIDs(env);
+ JNU_CHECK_EXCEPTION(env);
Java_java_net_NetworkInterface_init(env, 0);
}
diff --git a/jdk/src/solaris/native/java/net/PlainSocketImpl.c b/jdk/src/solaris/native/java/net/PlainSocketImpl.c
index a4958efc512..ef6421397af 100644
--- a/jdk/src/solaris/native/java/net/PlainSocketImpl.c
+++ b/jdk/src/solaris/native/java/net/PlainSocketImpl.c
@@ -162,6 +162,9 @@ Java_java_net_PlainSocketImpl_initProto(JNIEnv *env, jclass cls) {
IO_fd_fdID = NET_GetFileDescriptorID(env);
CHECK_NULL(IO_fd_fdID);
+ initInetAddressIDs(env);
+ JNU_CHECK_EXCEPTION(env);
+
/* Create the marker fd used for dup2 */
marker_fd = getMarkerFD();
}
diff --git a/jdk/src/solaris/native/sun/nio/ch/IOUtil.c b/jdk/src/solaris/native/sun/nio/ch/IOUtil.c
index 438bf41ddea..d8bbe849252 100644
--- a/jdk/src/solaris/native/sun/nio/ch/IOUtil.c
+++ b/jdk/src/solaris/native/sun/nio/ch/IOUtil.c
@@ -35,6 +35,7 @@
#include "java_lang_Integer.h"
#include "nio.h"
#include "nio_util.h"
+#include "net_util.h"
static jfieldID fd_fdID; /* for jint 'fd' in java.io.FileDescriptor */
@@ -44,6 +45,7 @@ Java_sun_nio_ch_IOUtil_initIDs(JNIEnv *env, jclass clazz)
{
CHECK_NULL(clazz = (*env)->FindClass(env, "java/io/FileDescriptor"));
CHECK_NULL(fd_fdID = (*env)->GetFieldID(env, clazz, "fd", "I"));
+ initInetAddressIDs(env);
}
JNIEXPORT jboolean JNICALL
diff --git a/jdk/src/solaris/native/sun/nio/ch/sctp/SctpNet.c b/jdk/src/solaris/native/sun/nio/ch/sctp/SctpNet.c
index f03be57b5d0..db97c948ee6 100644
--- a/jdk/src/solaris/native/sun/nio/ch/sctp/SctpNet.c
+++ b/jdk/src/solaris/native/sun/nio/ch/sctp/SctpNet.c
@@ -157,6 +157,7 @@ Java_sun_nio_ch_sctp_SctpNet_init
}
preCloseFD = sp[0];
close(sp[1]);
+ initInetAddressIDs(env);
}
/*
diff --git a/jdk/src/windows/native/java/net/Inet4AddressImpl.c b/jdk/src/windows/native/java/net/Inet4AddressImpl.c
index f34b5e12431..f21f2de3245 100644
--- a/jdk/src/windows/native/java/net/Inet4AddressImpl.c
+++ b/jdk/src/windows/native/java/net/Inet4AddressImpl.c
@@ -111,11 +111,6 @@ Java_java_net_Inet4AddressImpl_getLocalHostName (JNIEnv *env, jobject this) {
return JNU_NewStringPlatform(env, hostname);
}
-static jclass ni_iacls;
-static jclass ni_ia4cls;
-static jmethodID ni_ia4ctrID;
-static int initialized = 0;
-
/*
* Find an internet address for a given hostname. Not this this
* code only works for addresses of type INET. The translation
@@ -140,19 +135,8 @@ Java_java_net_Inet4AddressImpl_lookupAllHostAddr(JNIEnv *env, jobject this,
jobjectArray ret = NULL;
- if (!initialized) {
- ni_iacls = (*env)->FindClass(env, "java/net/InetAddress");
- CHECK_NULL_RETURN(ni_iacls, NULL);
- ni_iacls = (*env)->NewGlobalRef(env, ni_iacls);
- CHECK_NULL_RETURN(ni_iacls, NULL);
- ni_ia4cls = (*env)->FindClass(env, "java/net/Inet4Address");
- CHECK_NULL_RETURN(ni_ia4cls, NULL);
- ni_ia4cls = (*env)->NewGlobalRef(env, ni_ia4cls);
- CHECK_NULL_RETURN(ni_ia4cls, NULL);
- ni_ia4ctrID = (*env)->GetMethodID(env, ni_ia4cls, "", "()V");
- CHECK_NULL_RETURN(ni_ia4ctrID, NULL);
- initialized = 1;
- }
+ initInetAddressIDs(env);
+ JNU_CHECK_EXCEPTION_RETURN(env, NULL);
if (IS_NULL(host)) {
JNU_ThrowNullPointerException(env, "host argument");
@@ -196,13 +180,13 @@ Java_java_net_Inet4AddressImpl_lookupAllHostAddr(JNIEnv *env, jobject this,
address |= (addr[1]<<8) & 0xff00;
address |= addr[0];
- ret = (*env)->NewObjectArray(env, 1, ni_iacls, NULL);
+ ret = (*env)->NewObjectArray(env, 1, ia_class, NULL);
if (IS_NULL(ret)) {
goto cleanupAndReturn;
}
- iaObj = (*env)->NewObject(env, ni_ia4cls, ni_ia4ctrID);
+ iaObj = (*env)->NewObject(env, ia4_class, ia4_ctrID);
if (IS_NULL(iaObj)) {
ret = NULL;
goto cleanupAndReturn;
@@ -226,7 +210,7 @@ Java_java_net_Inet4AddressImpl_lookupAllHostAddr(JNIEnv *env, jobject this,
addrp++;
}
- ret = (*env)->NewObjectArray(env, i, ni_iacls, NULL);
+ ret = (*env)->NewObjectArray(env, i, ia_class, NULL);
if (IS_NULL(ret)) {
goto cleanupAndReturn;
@@ -235,7 +219,7 @@ Java_java_net_Inet4AddressImpl_lookupAllHostAddr(JNIEnv *env, jobject this,
addrp = (struct in_addr **) hp->h_addr_list;
i = 0;
while (*addrp != (struct in_addr *) 0) {
- jobject iaObj = (*env)->NewObject(env, ni_ia4cls, ni_ia4ctrID);
+ jobject iaObj = (*env)->NewObject(env, ia4_class, ia4_ctrID);
if (IS_NULL(iaObj)) {
ret = NULL;
goto cleanupAndReturn;
diff --git a/jdk/src/windows/native/java/net/Inet6AddressImpl.c b/jdk/src/windows/native/java/net/Inet6AddressImpl.c
index 24176b29278..cac70b34dfa 100644
--- a/jdk/src/windows/native/java/net/Inet6AddressImpl.c
+++ b/jdk/src/windows/native/java/net/Inet6AddressImpl.c
@@ -72,13 +72,6 @@ Java_java_net_Inet6AddressImpl_getLocalHostName (JNIEnv *env, jobject this) {
return JNU_NewStringPlatform (env, hostname);
}
-static jclass ni_iacls;
-static jclass ni_ia4cls;
-static jclass ni_ia6cls;
-static jmethodID ni_ia4ctrID;
-static jmethodID ni_ia6ctrID;
-static int initialized = 0;
-
JNIEXPORT jobjectArray JNICALL
Java_java_net_Inet6AddressImpl_lookupAllHostAddr(JNIEnv *env, jobject this,
jstring host) {
@@ -86,30 +79,13 @@ Java_java_net_Inet6AddressImpl_lookupAllHostAddr(JNIEnv *env, jobject this,
jobjectArray ret = 0;
int retLen = 0;
jboolean preferIPv6Address;
- static jfieldID ia_preferIPv6AddressID;
int error=0;
struct addrinfo hints, *res, *resNew = NULL;
- if (!initialized) {
- ni_iacls = (*env)->FindClass(env, "java/net/InetAddress");
- CHECK_NULL_RETURN(ni_iacls, NULL);
- ni_iacls = (*env)->NewGlobalRef(env, ni_iacls);
- CHECK_NULL_RETURN(ni_iacls, NULL);
- ni_ia4cls = (*env)->FindClass(env, "java/net/Inet4Address");
- CHECK_NULL_RETURN(ni_ia4cls, NULL);
- ni_ia4cls = (*env)->NewGlobalRef(env, ni_ia4cls);
- CHECK_NULL_RETURN(ni_ia4cls, NULL);
- ni_ia6cls = (*env)->FindClass(env, "java/net/Inet6Address");
- CHECK_NULL_RETURN(ni_ia6cls, NULL);
- ni_ia6cls = (*env)->NewGlobalRef(env, ni_ia6cls);
- CHECK_NULL_RETURN(ni_ia6cls, NULL);
- ni_ia4ctrID = (*env)->GetMethodID(env, ni_ia4cls, "", "()V");
- CHECK_NULL_RETURN(ni_ia4ctrID, NULL);
- ni_ia6ctrID = (*env)->GetMethodID(env, ni_ia6cls, "", "()V");
- CHECK_NULL_RETURN(ni_ia6ctrID, NULL);
- initialized = 1;
- }
+ initInetAddressIDs(env);
+ JNU_CHECK_EXCEPTION_RETURN(env, NULL);
+
if (IS_NULL(host)) {
JNU_ThrowNullPointerException(env, "host is null");
return 0;
@@ -117,17 +93,6 @@ Java_java_net_Inet6AddressImpl_lookupAllHostAddr(JNIEnv *env, jobject this,
hostname = JNU_GetStringPlatformChars(env, host, JNI_FALSE);
CHECK_NULL_RETURN(hostname, NULL);
- if (ia_preferIPv6AddressID == NULL) {
- jclass c = (*env)->FindClass(env,"java/net/InetAddress");
- if (c) {
- ia_preferIPv6AddressID =
- (*env)->GetStaticFieldID(env, c, "preferIPv6Address", "Z");
- }
- if (ia_preferIPv6AddressID == NULL) {
- JNU_ReleaseStringPlatformChars(env, host, hostname);
- return NULL;
- }
- }
/* get the address preference */
preferIPv6Address
= (*env)->GetStaticBooleanField(env, ia_class, ia_preferIPv6AddressID);
@@ -229,7 +194,7 @@ Java_java_net_Inet6AddressImpl_lookupAllHostAddr(JNIEnv *env, jobject this,
retLen = i;
iterator = resNew;
i = 0;
- ret = (*env)->NewObjectArray(env, retLen, ni_iacls, NULL);
+ ret = (*env)->NewObjectArray(env, retLen, ia_class, NULL);
if (IS_NULL(ret)) {
/* we may have memory to free at the end of this */
@@ -246,7 +211,7 @@ Java_java_net_Inet6AddressImpl_lookupAllHostAddr(JNIEnv *env, jobject this,
while (iterator != NULL) {
if (iterator->ai_family == AF_INET) {
- jobject iaObj = (*env)->NewObject(env, ni_ia4cls, ni_ia4ctrID);
+ jobject iaObj = (*env)->NewObject(env, ia4_class, ia4_ctrID);
if (IS_NULL(iaObj)) {
ret = NULL;
goto cleanupAndReturn;
@@ -257,7 +222,7 @@ Java_java_net_Inet6AddressImpl_lookupAllHostAddr(JNIEnv *env, jobject this,
inetIndex ++;
} else if (iterator->ai_family == AF_INET6) {
jint scope = 0, ret1;
- jobject iaObj = (*env)->NewObject(env, ni_ia6cls, ni_ia6ctrID);
+ jobject iaObj = (*env)->NewObject(env, ia6_class, ia6_ctrID);
if (IS_NULL(iaObj)) {
ret = NULL;
goto cleanupAndReturn;
@@ -347,7 +312,7 @@ Java_java_net_Inet6AddressImpl_getHostByAddr(JNIEnv *env, jobject this,
if (!error) {
ret = (*env)->NewStringUTF(env, host);
- CHECK_NULL(ret);
+ CHECK_NULL_RETURN(ret, NULL);
}
if (ret == NULL) {
diff --git a/jdk/src/windows/native/java/net/NetworkInterface.c b/jdk/src/windows/native/java/net/NetworkInterface.c
index fee86874771..44e9a61636b 100644
--- a/jdk/src/windows/native/java/net/NetworkInterface.c
+++ b/jdk/src/windows/native/java/net/NetworkInterface.c
@@ -65,13 +65,6 @@ jfieldID ni_bindsID; /* NetworkInterface.bindings */
jfieldID ni_nameID; /* NetworkInterface.name */
jfieldID ni_displayNameID; /* NetworkInterface.displayName */
jfieldID ni_childsID; /* NetworkInterface.childs */
-jclass ni_iacls; /* InetAddress */
-
-jclass ni_ia4cls; /* Inet4Address */
-jmethodID ni_ia4Ctor; /* Inet4Address() */
-
-jclass ni_ia6cls; /* Inet6Address */
-jmethodID ni_ia6ctrID; /* Inet6Address() */
jclass ni_ibcls; /* InterfaceAddress */
jmethodID ni_ibctrID; /* InterfaceAddress() */
@@ -515,26 +508,6 @@ Java_java_net_NetworkInterface_init(JNIEnv *env, jclass cls)
CHECK_NULL(ni_childsID);
ni_ctor = (*env)->GetMethodID(env, ni_class, "", "()V");
CHECK_NULL(ni_ctor);
-
- ni_iacls = (*env)->FindClass(env, "java/net/InetAddress");
- CHECK_NULL(ni_iacls);
- ni_iacls = (*env)->NewGlobalRef(env, ni_iacls);
- CHECK_NULL(ni_iacls);
-
- ni_ia4cls = (*env)->FindClass(env, "java/net/Inet4Address");
- CHECK_NULL(ni_ia4cls);
- ni_ia4cls = (*env)->NewGlobalRef(env, ni_ia4cls);
- CHECK_NULL(ni_ia4cls);
- ni_ia4Ctor = (*env)->GetMethodID(env, ni_ia4cls, "", "()V");
- CHECK_NULL(ni_ia4Ctor);
-
- ni_ia6cls = (*env)->FindClass(env, "java/net/Inet6Address");
- CHECK_NULL(ni_ia6cls);
- ni_ia6cls = (*env)->NewGlobalRef(env, ni_ia6cls);
- CHECK_NULL(ni_ia6cls);
- ni_ia6ctrID = (*env)->GetMethodID(env, ni_ia6cls, "", "()V");
- CHECK_NULL(ni_ia6ctrID);
-
ni_ibcls = (*env)->FindClass(env, "java/net/InterfaceAddress");
CHECK_NULL(ni_ibcls);
ni_ibcls = (*env)->NewGlobalRef(env, ni_ibcls);
@@ -546,6 +519,9 @@ Java_java_net_NetworkInterface_init(JNIEnv *env, jclass cls)
ni_ibbroadcastID = (*env)->GetFieldID(env, ni_ibcls, "broadcast", "Ljava/net/Inet4Address;");
CHECK_NULL(ni_ibbroadcastID);
ni_ibmaskID = (*env)->GetFieldID(env, ni_ibcls, "maskLength", "S");
+ CHECK_NULL(ni_ibmaskID);
+
+ initInetAddressIDs(env);
}
/*
@@ -591,7 +567,7 @@ jobject createNetworkInterface
return NULL;
}
}
- addrArr = (*env)->NewObjectArray(env, netaddrCount, ni_iacls, NULL);
+ addrArr = (*env)->NewObjectArray(env, netaddrCount, ia_class, NULL);
if (addrArr == NULL) {
free_netaddr(netaddrP);
return NULL;
@@ -609,7 +585,7 @@ jobject createNetworkInterface
jobject iaObj, ia2Obj;
jobject ibObj = NULL;
if (addrs->addr.him.sa_family == AF_INET) {
- iaObj = (*env)->NewObject(env, ni_ia4cls, ni_ia4Ctor);
+ iaObj = (*env)->NewObject(env, ia4_class, ia4_ctrID);
if (iaObj == NULL) {
free_netaddr(netaddrP);
return NULL;
@@ -624,7 +600,7 @@ jobject createNetworkInterface
return NULL;
}
(*env)->SetObjectField(env, ibObj, ni_ibaddressID, iaObj);
- ia2Obj = (*env)->NewObject(env, ni_ia4cls, ni_ia4Ctor);
+ ia2Obj = (*env)->NewObject(env, ia4_class, ia4_ctrID);
if (ia2Obj == NULL) {
free_netaddr(netaddrP);
return NULL;
@@ -636,7 +612,7 @@ jobject createNetworkInterface
}
} else /* AF_INET6 */ {
int scope;
- iaObj = (*env)->NewObject(env, ni_ia6cls, ni_ia6ctrID);
+ iaObj = (*env)->NewObject(env, ia6_class, ia6_ctrID);
if (iaObj) {
int ret = setInet6Address_ipaddress(env, iaObj, (jbyte *)&(addrs->addr.him6.sin6_addr.s6_addr));
if (ret == JNI_FALSE) {
diff --git a/jdk/src/windows/native/java/net/NetworkInterface.h b/jdk/src/windows/native/java/net/NetworkInterface.h
index a73c62c66b3..929ac507f89 100644
--- a/jdk/src/windows/native/java/net/NetworkInterface.h
+++ b/jdk/src/windows/native/java/net/NetworkInterface.h
@@ -70,16 +70,6 @@ extern jfieldID ni_nameID; /* NetworkInterface.name */
extern jfieldID ni_displayNameID; /* NetworkInterface.displayName */
extern jfieldID ni_childsID; /* NetworkInterface.childs */
-extern jclass ni_iacls; /* InetAddress */
-
-extern jclass ni_ia4cls; /* Inet4Address */
-extern jmethodID ni_ia4Ctor; /* Inet4Address() */
-
-extern jclass ni_ia6cls; /* Inet6Address */
-extern jmethodID ni_ia6ctrID; /* Inet6Address() */
-extern jfieldID ni_ia6ipaddressID;
-extern jfieldID ni_ia6ipaddressID;
-
extern jclass ni_ibcls; /* InterfaceAddress */
extern jmethodID ni_ibctrID; /* InterfaceAddress() */
extern jfieldID ni_ibaddressID; /* InterfaceAddress.address */
diff --git a/jdk/src/windows/native/java/net/NetworkInterface_winXP.c b/jdk/src/windows/native/java/net/NetworkInterface_winXP.c
index 7e3e79d1f49..4d29e7f799d 100644
--- a/jdk/src/windows/native/java/net/NetworkInterface_winXP.c
+++ b/jdk/src/windows/native/java/net/NetworkInterface_winXP.c
@@ -504,7 +504,7 @@ static jobject createNetworkInterfaceXP(JNIEnv *env, netif *ifs)
}
}
- addrArr = (*env)->NewObjectArray(env, netaddrCount, ni_iacls, NULL);
+ addrArr = (*env)->NewObjectArray(env, netaddrCount, ia_class, NULL);
if (addrArr == NULL) {
return NULL;
}
@@ -522,7 +522,7 @@ static jobject createNetworkInterfaceXP(JNIEnv *env, netif *ifs)
jobject iaObj, ia2Obj;
jobject ibObj = NULL;
if (addrs->addr.him.sa_family == AF_INET) {
- iaObj = (*env)->NewObject(env, ni_ia4cls, ni_ia4Ctor);
+ iaObj = (*env)->NewObject(env, ia4_class, ia4_ctrID);
if (iaObj == NULL) {
return NULL;
}
@@ -536,7 +536,7 @@ static jobject createNetworkInterfaceXP(JNIEnv *env, netif *ifs)
return NULL;
}
(*env)->SetObjectField(env, ibObj, ni_ibaddressID, iaObj);
- ia2Obj = (*env)->NewObject(env, ni_ia4cls, ni_ia4Ctor);
+ ia2Obj = (*env)->NewObject(env, ia4_class, ia4_ctrID);
if (ia2Obj == NULL) {
free_netaddr(netaddrP);
return NULL;
@@ -547,7 +547,7 @@ static jobject createNetworkInterfaceXP(JNIEnv *env, netif *ifs)
(*env)->SetObjectArrayElement(env, bindsArr, bind_index++, ibObj);
} else /* AF_INET6 */ {
int scope;
- iaObj = (*env)->NewObject(env, ni_ia6cls, ni_ia6ctrID);
+ iaObj = (*env)->NewObject(env, ia6_class, ia6_ctrID);
if (iaObj) {
int ret = setInet6Address_ipaddress(env, iaObj, (jbyte *)&(addrs->addr.him6.sin6_addr.s6_addr));
if (ret == JNI_FALSE) {
diff --git a/jdk/src/windows/native/sun/nio/ch/IOUtil.c b/jdk/src/windows/native/sun/nio/ch/IOUtil.c
index 370dcf5e23f..49de1eb89d7 100644
--- a/jdk/src/windows/native/sun/nio/ch/IOUtil.c
+++ b/jdk/src/windows/native/sun/nio/ch/IOUtil.c
@@ -33,6 +33,7 @@
#include "nio.h"
#include "nio_util.h"
+#include "net_util.h"
#include "sun_nio_ch_IOUtil.h"
/* field id for jlong 'handle' in java.io.FileDescriptor used for file fds */
@@ -55,6 +56,7 @@ Java_sun_nio_ch_IOUtil_initIDs(JNIEnv *env, jclass clazz)
CHECK_NULL(clazz = (*env)->FindClass(env, "java/io/FileDescriptor"));
CHECK_NULL(fd_fdID = (*env)->GetFieldID(env, clazz, "fd", "I"));
CHECK_NULL(handle_fdID = (*env)->GetFieldID(env, clazz, "handle", "J"));
+ initInetAddressIDs(env);
}
/**************************************************************
From 23cc62f593e5cddd762b222a5fb4ac9d907cea6b Mon Sep 17 00:00:00 2001
From: Erik Joelsson
Date: Wed, 5 Feb 2014 11:03:54 +0100
Subject: [PATCH 156/181] 8026773: Failing compilation in Corba does not fail
the build
Reviewed-by: ihse, tbell
---
common/autoconf/spec.gmk.in | 11 +++++++----
make/common/JavaCompilation.gmk | 12 +++++++++++-
2 files changed, 18 insertions(+), 5 deletions(-)
diff --git a/common/autoconf/spec.gmk.in b/common/autoconf/spec.gmk.in
index b92db9125da..ee18cb1b07a 100644
--- a/common/autoconf/spec.gmk.in
+++ b/common/autoconf/spec.gmk.in
@@ -456,10 +456,13 @@ NATIVE2ASCII:=@FIXPATH@ @NATIVE2ASCII@
JARSIGNER:=@FIXPATH@ @JARSIGNER@
# You run the new javac using the boot jdk with $(BOOT_JDK)/bin/java $(NEW_JAVAC) ...
-BOOTSTRAP_JAVAC_JAR:=$(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javac.jar
-BOOTSTRAP_JAVAC_ARGS:="-Xbootclasspath/p:$(BOOTSTRAP_JAVAC_JAR)" -cp $(BOOTSTRAP_JAVAC_JAR)
-NEW_JAVAC = $(BOOTSTRAP_JAVAC_ARGS) com.sun.tools.javac.Main
-NEW_JAVADOC = $(BOOTSTRAP_JAVAC_ARGS) com.sun.tools.javadoc.Main
+INTERIM_LANGTOOLS_JAR := $(LANGTOOLS_OUTPUTDIR)/dist/interim_langtools.jar
+INTERIM_LANGTOOLS_ARGS := "-Xbootclasspath/p:$(INTERIM_LANGTOOLS_JAR)" -cp $(INTERIM_LANGTOOLS_JAR)
+NEW_JAVAC = $(INTERIM_LANGTOOLS_ARGS) com.sun.tools.javac.Main
+NEW_JAVADOC = $(INTERIM_LANGTOOLS_ARGS) com.sun.tools.javadoc.Main
+
+# The interim corba jar is needed for running rmic
+INTERIM_CORBA_JAR := $(CORBA_OUTPUTDIR)/dist/interim_corba.jar
# Base flags for RC
# Guarding this against resetting value. Legacy make files include spec multiple
diff --git a/make/common/JavaCompilation.gmk b/make/common/JavaCompilation.gmk
index d192c66cdd6..fe4ff3e5eb1 100644
--- a/make/common/JavaCompilation.gmk
+++ b/make/common/JavaCompilation.gmk
@@ -247,6 +247,8 @@ define SetupArchive
$$($1_SUPDATE_CONTENTS) \
$$($1_JARINDEX) && true )
+ # Add jar to target list
+ $1 += $$($1_JAR)
endef
define SetupZipArchive
@@ -307,6 +309,9 @@ define SetupZipArchive
$(ECHO) Updating $$($1_NAME)
$$(foreach i,$$($1_SRC),(cd $$i && $(ZIP) -qru $$@ . $$($1_ZIP_INCLUDES) $$($1_ZIP_EXCLUDES) -x \*_the.\* $$(addprefix -x$(SPACE),$$(patsubst $$i/%,%,$$($1_EXCLUDE_FILES))) || test "$$$$?" = "12" )$$(NEWLINE)) true
$(TOUCH) $$@
+
+ # Add zip to target list
+ $1 += $$($1_ZIP)
endef
define add_file_to_copy
@@ -579,6 +584,9 @@ define SetupJavaCompilation
JARINDEX:=$$($1_JARINDEX), \
HEADERS:=$$($1_HEADERS), \
SETUP:=$$($1_SETUP)))
+
+ # Add jar to target list
+ $1 += $$($1_JAR)
endif
# Check if a srczip was specified, then setup the rules for the srczip.
@@ -589,6 +597,8 @@ define SetupJavaCompilation
INCLUDES:=$$($1_INCLUDES), \
EXCLUDES:=$$($1_EXCLUDES), \
EXCLUDE_FILES:=$$($1_EXCLUDE_FILES)))
- endif
+ # Add zip to target list
+ $1 += $$($1_SRCZIP)
+ endif
endef
From 961e7da0a4ec7625288cdf81e29a904e6b7f341a Mon Sep 17 00:00:00 2001
From: Erik Joelsson
Date: Wed, 5 Feb 2014 11:04:04 +0100
Subject: [PATCH 157/181] 8026773: Failing compilation in Corba does not fail
the build
Reviewed-by: ihse, tbell
---
langtools/make/BuildLangtools.gmk | 180 ++-------------------------
langtools/make/CommonLangtools.gmk | 35 ++++++
langtools/make/CompileInterim.gmk | 50 ++++++++
langtools/make/CompileLangtools.gmk | 62 +++++++++
langtools/make/GensrcLangtools.gmk | 111 +++++++++++++++++
langtools/make/GenstubsLangtools.gmk | 70 +++++++++++
6 files changed, 339 insertions(+), 169 deletions(-)
create mode 100644 langtools/make/CommonLangtools.gmk
create mode 100644 langtools/make/CompileInterim.gmk
create mode 100644 langtools/make/CompileLangtools.gmk
create mode 100644 langtools/make/GensrcLangtools.gmk
create mode 100644 langtools/make/GenstubsLangtools.gmk
diff --git a/langtools/make/BuildLangtools.gmk b/langtools/make/BuildLangtools.gmk
index 0ffcb31bcca..f59ef574f4d 100644
--- a/langtools/make/BuildLangtools.gmk
+++ b/langtools/make/BuildLangtools.gmk
@@ -27,179 +27,21 @@
default: all
include $(SPEC)
-include MakeBase.gmk
-include JavaCompilation.gmk
-# The BOOT_JAVAC setup uses the bootdir compiler to compile the tools
-# and the bootstrap javac, to be run by the bootdir jvm.
-$(eval $(call SetupJavaCompiler,BOOT_JAVAC, \
- JAVAC := $(JAVAC), \
- SERVER_DIR := $(SJAVAC_SERVER_DIR), \
- SERVER_JVM := $(SJAVAC_SERVER_JAVA), \
- FLAGS := -XDignore.symbol.file=true -g -Xlint:all$(COMMA)-deprecation -Werror))
+gensrc-langtools:
+ +$(MAKE) -f $(LANGTOOLS_TOPDIR)/make/GensrcLangtools.gmk
-# javax.tools.JavaCompilerTool isn't really a suffix but this gets the file copied.
-RESOURCE_SUFFIXES := .gif .xml .css .js javax.tools.JavaCompilerTool
+interim-langtools: gensrc-langtools
+ +$(MAKE) -f $(LANGTOOLS_TOPDIR)/make/CompileInterim.gmk
-# Now setup the compilation of the properties compilation tool. You can depend
-# upon $(BUILD_TOOLS) to trigger a compilation of the tools. Note that we
-# add src/share/classes to the sourcepath. This is necessary since the GenStubs
-# program needs to be linked and run towards the new javac sources.
-$(eval $(call SetupJavaCompilation,BUILD_TOOLS, \
- SETUP := BOOT_JAVAC, \
- DISABLE_SJAVAC := true, \
- ADD_JAVAC_FLAGS := -Xprefer:source, \
- SRC := $(LANGTOOLS_TOPDIR)/make/tools $(LANGTOOLS_TOPDIR)/src/share/classes, \
- INCLUDES := compileproperties genstubs, \
- BIN := $(LANGTOOLS_OUTPUTDIR)/btclasses))
+genstubs-langtools: interim-langtools
+ +$(MAKE) -f $(LANGTOOLS_TOPDIR)/make/GenstubsLangtools.gmk
-# The compileprops tools compiles a properties file into a resource bundle.
-TOOL_COMPILEPROPS_CMD := $(JAVA) -cp $(LANGTOOLS_OUTPUTDIR)/btclasses compileproperties.CompileProperties -quiet
+compile-langtools: gensrc-langtools interim-langtools genstubs-langtools
+ +$(MAKE) -f $(LANGTOOLS_TOPDIR)/make/CompileLangtools.gmk
-# Lookup the properties that need to be compiled into resource bundles.
-PROPSOURCES := $(shell $(FIND) $(LANGTOOLS_TOPDIR)/src/share/classes -name "*.properties")
+all: compile-langtools
-# Strip away prefix and suffix, leaving for example only: "com/sun/tools/javac/resources/javac_zh_CN"
-PROPPATHS := $(patsubst $(LANGTOOLS_TOPDIR)/src/share/classes/%.properties, %, $(PROPSOURCES))
+.PHONY: default all
+.PHONY: gensrc-langtools interim-langtools genstubs-langtools compile-langtools
-# Generate the list of java files to be created.
-PROPJAVAS := $(patsubst %, $(LANGTOOLS_OUTPUTDIR)/gensrc/%.java, $(PROPPATHS))
-
-# Generate the package dirs for the tobe generated java files.
-PROPDIRS := $(dir $(PROPJAVAS))
-
-# Now generate a sequence of "-compile ...javac_zh_CN.properties ...javac_zh_CN.java java.util.ListResourceBundle"
-# suitable to be fed into the CompileProperties command.
-PROPCMDLINE := $(subst _SPACE_, $(SPACE), $(join $(addprefix -compile_SPACE_, $(PROPSOURCES)), \
- $(addsuffix _SPACE_java.util.ListResourceBundle, $(addprefix _SPACE_$(LANGTOOLS_OUTPUTDIR)/gensrc/, $(addsuffix .java, $(PROPPATHS))))))
-
-# Now setup the rule for the generation of the resource bundles.
-$(LANGTOOLS_OUTPUTDIR)/gensrc/_the_props.d: $(PROPSOURCES) $(BUILD_TOOLS)
- $(RM) -r $(@D)/*
- $(MKDIR) -p $(@D) $(PROPDIRS)
- $(PRINTF) "jdk=$(JDK_VERSION)\nfull=$(FULL_VERSION)\nrelease=$(RELEASE)\n" > $(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/javah/resources/version.properties
- $(PRINTF) "jdk=$(JDK_VERSION)\nfull=$(FULL_VERSION)\nrelease=$(RELEASE)\n" > $(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/javap/resources/version.properties
- $(PRINTF) "jdk=$(JDK_VERSION)\nfull=$(FULL_VERSION)\nrelease=$(RELEASE)\n" > $(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/javac/resources/version.properties
- $(PRINTF) "jdk=$(JDK_VERSION)\nfull=$(FULL_VERSION)\nrelease=$(RELEASE)\n" > $(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/jdeps/resources/version.properties
- $(PRINTF) "jdk=$(JDK_VERSION)\nfull=$(FULL_VERSION)\nrelease=$(RELEASE)\n" > $(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/javadoc/resources/version.properties
- $(ECHO) Compiling $(words $(PROPSOURCES) v1 v2 v3) properties into resource bundles
- $(TOOL_COMPILEPROPS_CMD) $(PROPCMDLINE) \
- -compile $(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/javah/resources/version.properties \
- $(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/javah/resources/version.java \
- java.util.ListResourceBundle \
- -compile $(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/javap/resources/version.properties \
- $(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/javap/resources/version.java \
- java.util.ListResourceBundle \
- -compile $(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/javac/resources/version.properties \
- $(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/javac/resources/version.java \
- java.util.ListResourceBundle \
- -compile $(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/jdeps/resources/version.properties \
- $(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/jdeps/resources/version.java \
- java.util.ListResourceBundle \
- -compile $(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/javadoc/resources/version.properties \
- $(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/javadoc/resources/version.java \
- java.util.ListResourceBundle
- $(ECHO) PROPS_ARE_CREATED = yes > $@
-
-# Trigger the generation of the resource bundles. After the resource bundles have
-# been compiled, then the makefile will restart and the newly created java files
-# will become part of the build further along in the makefile.
--include $(LANGTOOLS_OUTPUTDIR)/gensrc/_the_props.d
-
-ifeq ($(PROPS_ARE_CREATED), yes)
- # Setup the rules to build a dist/bootstrap/lib/javac.jar, ie a smaller intermediate javac
- # that can be compiled with an old javac. The intermediate javac is then used
- # to compile javac again and to build the complete new jdk.
- $(eval $(call SetupJavaCompilation,BUILD_BOOTSTRAP_LANGTOOLS, \
- SETUP := BOOT_JAVAC, \
- DISABLE_SJAVAC := true, \
- SRC := $(LANGTOOLS_TOPDIR)/src/share/classes $(LANGTOOLS_OUTPUTDIR)/gensrc, \
- EXCLUDES := com/sun/tools/javac/nio, \
- COPY := $(RESOURCE_SUFFIXES), \
- BIN := $(LANGTOOLS_OUTPUTDIR)/btclasses/bootstrap))
-
- $(eval $(call SetupArchive,ARCHIVE_BOOTSTRAP_JAVAC, $(BUILD_BOOTSTRAP_LANGTOOLS), \
- SRCS := $(LANGTOOLS_OUTPUTDIR)/btclasses/bootstrap, \
- JAR := $(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javac.jar, \
- SUFFIXES := .class $(RESOURCE_SUFFIXES)))
-
- # GenStubs is used to bootstrap any dependencies from javac to the new JDK that is not
- # yet built. It is currently not needed but might be again in the future. The following
- # exercises the functionality to verify that it works.
- TOOL_GENSTUBS_CMD = $(JAVA) \
- "-Xbootclasspath/p:$(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javac.jar" \
- -classpath $(LANGTOOLS_OUTPUTDIR)/btclasses \
- genstubs.GenStubs
-
- # We fetch source from the JDK...
- JDKS = $(JDK_TOPDIR)/src/share/classes
-
- # Build the list of classes to generate stubs from. java/util/function/Predicate.java isn't
- # currently needed, but is used as a demo for now.
-
- STUBSOURCES := $(shell $(FIND) $(JDKS) -name "*.java" | $(GREP) \
- -e "$(JDKS)/java/util/function/Predicate.java")
-
- # Rewrite the file names into class names because the GenStubs tool require this.
- STUBCLASSES := $(subst /,., $(patsubst $(JDKS)/%.java, %, $(STUBSOURCES)))
-
- # Now setup the build recipe for genstubs.
- $(LANGTOOLS_OUTPUTDIR)/genstubs/_the_stubs.d: $(STUBSOURCES) $(BUILD_TOOLS) \
- $(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javac.jar \
- $(LANGTOOLS_OUTPUTDIR)/gensrc/_the_props.d
- $(MKDIR) -p $(@D)
- $(MKDIR) -p $(LANGTOOLS_OUTPUTDIR)/tmpstubs
- $(ECHO) $(LOG_INFO) Generating stubs from JDK sources.
- ($(TOOL_GENSTUBS_CMD) -s $(LANGTOOLS_OUTPUTDIR)/tmpstubs -sourcepath $(JDKS) $(STUBCLASSES) && $(ECHO) STUBS_ARE_CREATED = yes > $@)
- if $(DIFF) -x "_the*" -rq $(LANGTOOLS_OUTPUTDIR)/tmpstubs $(LANGTOOLS_OUTPUTDIR)/genstubs > /dev/null 2>&1; then \
- $(ECHO) $(LOG_INFO) No changes in the stubs!; \
- $(RM) -r $(LANGTOOLS_OUTPUTDIR)/tmpstubs; \
- else \
- $(ECHO) $(LOG_INFO) Changes in stubs detected!; \
- $(RM) -r $(@D); \
- $(MV) $(LANGTOOLS_OUTPUTDIR)/tmpstubs $(@D); \
- fi
- $(ECHO) STUBS_ARE_CREATED = yes > $@
-
- # Trigger a generation of the genstubs java source code and a restart
- # of the makefile to make sure that the following build setup use the
- # newly created java files.
- -include $(LANGTOOLS_OUTPUTDIR)/genstubs/_the_stubs.d
-
- ifeq ($(STUBS_ARE_CREATED), yes)
- # Setup a compiler configuration using the intermediate javac in dist/bootstrap/lib/javac.jar
- # that generates code for the new jdk that is being built.
- # The code compiled by this compiler setup, cannot necessarily be run with the bootstrap jvm.
- $(eval $(call SetupJavaCompiler,GENERATE_NEWBYTECODE, \
- JVM := $(JAVA), \
- JAVAC := "-Xbootclasspath/p:$(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javac.jar" \
- -cp $(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javac.jar \
- com.sun.tools.javac.Main, \
- FLAGS := -XDignore.symbol.file=true -Xlint:all$(COMMA)-deprecation -Werror, \
- SERVER_DIR := $(SJAVAC_SERVER_DIR), \
- SERVER_JVM := $(SJAVAC_SERVER_JAVA)))
-
- $(eval $(call SetupJavaCompilation,BUILD_FULL_JAVAC, \
- SETUP := GENERATE_NEWBYTECODE, \
- SRC := $(LANGTOOLS_TOPDIR)/src/share/classes $(LANGTOOLS_OUTPUTDIR)/gensrc \
- $(LANGTOOLS_OUTPUTDIR)/genstubs, \
- EXCLUDES := java/util java/io java/nio, \
- COPY := $(RESOURCE_SUFFIXES), \
- BIN := $(LANGTOOLS_OUTPUTDIR)/classes))
-
- $(eval $(call SetupArchive,ARCHIVE_FULL_JAVAC, $(BUILD_FULL_JAVAC), \
- SETUP := GENERATE_NEWBYTECODE, \
- SRCS := $(LANGTOOLS_OUTPUTDIR)/classes, \
- SUFFIXES := .class $(RESOURCE_SUFFIXES), \
- JAR := $(LANGTOOLS_OUTPUTDIR)/dist/lib/classes.jar))
-
- $(eval $(call SetupZipArchive,ZIP_FULL_JAVAC_SOURCE, \
- SRC := $(LANGTOOLS_TOPDIR)/src/share/classes $(LANGTOOLS_OUTPUTDIR)/gensrc, \
- ZIP := $(LANGTOOLS_OUTPUTDIR)/dist/lib/src.zip))
-
- all: $(LANGTOOLS_OUTPUTDIR)/dist/lib/classes.jar \
- $(LANGTOOLS_OUTPUTDIR)/dist/lib/src.zip \
- $(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javac.jar
-
- endif
-endif
diff --git a/langtools/make/CommonLangtools.gmk b/langtools/make/CommonLangtools.gmk
new file mode 100644
index 00000000000..f32a0ac2ab7
--- /dev/null
+++ b/langtools/make/CommonLangtools.gmk
@@ -0,0 +1,35 @@
+#
+# Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+# The BOOT_JAVAC setup uses the boot jdk compiler to compile the tools
+# and the interim javac, to be run by the boot jdk.
+$(eval $(call SetupJavaCompiler,BOOT_JAVAC, \
+ JAVAC := $(JAVAC), \
+ SERVER_DIR := $(SJAVAC_SERVER_DIR), \
+ SERVER_JVM := $(SJAVAC_SERVER_JAVA), \
+ FLAGS := -XDignore.symbol.file=true -g -Xlint:all$(COMMA)-deprecation -Werror))
+
+# javax.tools.JavaCompilerTool isn't really a suffix but this gets the file copied.
+RESOURCE_SUFFIXES := .gif .xml .css .js javax.tools.JavaCompilerTool
diff --git a/langtools/make/CompileInterim.gmk b/langtools/make/CompileInterim.gmk
new file mode 100644
index 00000000000..b425dc932b5
--- /dev/null
+++ b/langtools/make/CompileInterim.gmk
@@ -0,0 +1,50 @@
+#
+# Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+# This must be the first rule
+default: all
+
+include $(SPEC)
+include MakeBase.gmk
+include JavaCompilation.gmk
+
+include CommonLangtools.gmk
+
+# Setup the rules to build the interim langtools jar, which is compiled by
+# the boot javac and can be run on the boot jdk. This will be used to compile
+# the rest of the product. Include the Genstubs build tool in this compilation
+# as it will be used together with the interim javac.
+$(eval $(call SetupJavaCompilation,BUILD_INTERIM_LANGTOOLS, \
+ SETUP := BOOT_JAVAC, \
+ DISABLE_SJAVAC := true, \
+ SRC := $(LANGTOOLS_TOPDIR)/src/share/classes \
+ $(LANGTOOLS_OUTPUTDIR)/gensrc \
+ $(LANGTOOLS_TOPDIR)/make/tools, \
+ EXCLUDES := com/sun/tools/javac/nio compileproperties anttasks crules, \
+ COPY := $(RESOURCE_SUFFIXES), \
+ BIN := $(LANGTOOLS_OUTPUTDIR)/interim_classes, \
+ JAR := $(INTERIM_LANGTOOLS_JAR)))
+
+all: $(BUILD_INTERIM_LANGTOOLS)
diff --git a/langtools/make/CompileLangtools.gmk b/langtools/make/CompileLangtools.gmk
new file mode 100644
index 00000000000..d15be9dde6a
--- /dev/null
+++ b/langtools/make/CompileLangtools.gmk
@@ -0,0 +1,62 @@
+#
+# Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+# This must be the first rule
+default: all
+
+include $(SPEC)
+include MakeBase.gmk
+include JavaCompilation.gmk
+
+include CommonLangtools.gmk
+
+# Setup a compiler configuration using javac from the interim langtools jar
+# that generates code for the new jdk that is being built. The code compiled
+# by this compiler setup, cannot necessarily be run with the bootstrap jvm.
+$(eval $(call SetupJavaCompiler,GENERATE_NEWBYTECODE, \
+ JVM := $(JAVA), \
+ JAVAC := $(NEW_JAVAC), \
+ FLAGS := -XDignore.symbol.file=true -Xlint:all$(COMMA)-deprecation -Werror, \
+ SERVER_DIR := $(SJAVAC_SERVER_DIR), \
+ SERVER_JVM := $(SJAVAC_SERVER_JAVA)))
+
+$(eval $(call SetupJavaCompilation,BUILD_FULL_LANGTOOLS, \
+ SETUP := GENERATE_NEWBYTECODE, \
+ SRC := $(LANGTOOLS_TOPDIR)/src/share/classes \
+ $(LANGTOOLS_OUTPUTDIR)/gensrc \
+ $(LANGTOOLS_OUTPUTDIR)/genstubs, \
+ EXCLUDES := java/util java/io java/nio, \
+ COPY := $(RESOURCE_SUFFIXES), \
+ BIN := $(LANGTOOLS_OUTPUTDIR)/classes, \
+ JAR := $(LANGTOOLS_OUTPUTDIR)/dist/lib/classes.jar))
+
+# Construct the source zip separately to avoid picking up the genstubs sources.
+$(eval $(call SetupZipArchive,ZIP_FULL_LANGTOOLS_SOURCE, \
+ SRC := $(LANGTOOLS_TOPDIR)/src/share/classes $(LANGTOOLS_OUTPUTDIR)/gensrc, \
+ ZIP := $(LANGTOOLS_OUTPUTDIR)/dist/lib/src.zip))
+
+all: \
+ $(BUILD_FULL_LANGTOOLS) \
+ $(ZIP_FULL_LANGTOOLS_SOURCE)
diff --git a/langtools/make/GensrcLangtools.gmk b/langtools/make/GensrcLangtools.gmk
new file mode 100644
index 00000000000..e361a18cb10
--- /dev/null
+++ b/langtools/make/GensrcLangtools.gmk
@@ -0,0 +1,111 @@
+#
+# Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+# This must be the first rule
+default: all
+
+include $(SPEC)
+include MakeBase.gmk
+include JavaCompilation.gmk
+
+include CommonLangtools.gmk
+
+################################################################################
+# Setup the compilation of the properties compilation tool. You can depend
+# upon $(BUILD_TOOLS) to trigger a compilation of the tools. Note that we
+# add src/share/classes to the sourcepath. This is necessary since the GenStubs
+# program needs to be linked and run with the new javac sources.
+$(eval $(call SetupJavaCompilation,BUILD_TOOLS, \
+ SETUP := BOOT_JAVAC, \
+ DISABLE_SJAVAC := true, \
+ ADD_JAVAC_FLAGS := -Xprefer:source, \
+ SRC := $(LANGTOOLS_TOPDIR)/make/tools, \
+ INCLUDES := compileproperties, \
+ BIN := $(LANGTOOLS_OUTPUTDIR)/buildtools_classes))
+
+################################################################################
+# The compileprops tools compiles a properties file into a resource bundle.
+TOOL_COMPILEPROPS_CMD := $(JAVA) -cp $(LANGTOOLS_OUTPUTDIR)/buildtools_classes \
+ compileproperties.CompileProperties -quiet
+
+# Lookup the properties that need to be compiled into resource bundles.
+PROPSOURCES := $(shell $(FIND) $(LANGTOOLS_TOPDIR)/src/share/classes -name "*.properties")
+
+# Strip away prefix and suffix, leaving for example only:
+# "com/sun/tools/javac/resources/javac_zh_CN"
+PROPPATHS := $(patsubst $(LANGTOOLS_TOPDIR)/src/share/classes/%.properties, %, $(PROPSOURCES))
+
+# Generate the list of java files to be created.
+PROPJAVAS := $(patsubst %, $(LANGTOOLS_OUTPUTDIR)/gensrc/%.java, $(PROPPATHS))
+
+# Generate the package dirs for the tobe generated java files.
+PROPDIRS := $(dir $(PROPJAVAS))
+
+# Now generate a sequence of:
+# "-compile ...javac_zh_CN.properties ...javac_zh_CN.java java.util.ListResourceBundle"
+# suitable to be fed into the CompileProperties command.
+PROPCMDLINE := $(subst _SPACE_, $(SPACE), \
+ $(join $(addprefix -compile_SPACE_, $(PROPSOURCES)), \
+ $(addsuffix _SPACE_java.util.ListResourceBundle, \
+ $(addprefix _SPACE_$(LANGTOOLS_OUTPUTDIR)/gensrc/, \
+ $(addsuffix .java, $(PROPPATHS))))))
+
+# Now setup the rule for the generation of the resource bundles.
+$(LANGTOOLS_OUTPUTDIR)/gensrc/_the_props: $(PROPSOURCES) $(BUILD_TOOLS)
+ $(RM) -r $(@D)/*
+ $(MKDIR) -p $(@D) $(PROPDIRS)
+ $(PRINTF) "jdk=$(JDK_VERSION)\nfull=$(FULL_VERSION)\nrelease=$(RELEASE)\n" \
+ > $(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/javah/resources/version.properties
+ $(PRINTF) "jdk=$(JDK_VERSION)\nfull=$(FULL_VERSION)\nrelease=$(RELEASE)\n" \
+ > $(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/javap/resources/version.properties
+ $(PRINTF) "jdk=$(JDK_VERSION)\nfull=$(FULL_VERSION)\nrelease=$(RELEASE)\n" \
+ > $(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/javac/resources/version.properties
+ $(PRINTF) "jdk=$(JDK_VERSION)\nfull=$(FULL_VERSION)\nrelease=$(RELEASE)\n" \
+ > $(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/jdeps/resources/version.properties
+ $(PRINTF) "jdk=$(JDK_VERSION)\nfull=$(FULL_VERSION)\nrelease=$(RELEASE)\n" \
+ > $(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/javadoc/resources/version.properties
+ $(ECHO) Compiling $(words $(PROPSOURCES) javah javap javac jdeps javadoc) \
+ properties into resource bundles
+ $(TOOL_COMPILEPROPS_CMD) $(PROPCMDLINE) \
+ -compile $(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/javah/resources/version.properties \
+ $(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/javah/resources/version.java \
+ java.util.ListResourceBundle \
+ -compile $(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/javap/resources/version.properties \
+ $(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/javap/resources/version.java \
+ java.util.ListResourceBundle \
+ -compile $(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/javac/resources/version.properties \
+ $(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/javac/resources/version.java \
+ java.util.ListResourceBundle \
+ -compile $(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/jdeps/resources/version.properties \
+ $(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/jdeps/resources/version.java \
+ java.util.ListResourceBundle \
+ -compile $(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/javadoc/resources/version.properties \
+ $(LANGTOOLS_OUTPUTDIR)/gensrc/com/sun/tools/javadoc/resources/version.java \
+ java.util.ListResourceBundle
+ $(TOUCH) $@
+
+all: $(LANGTOOLS_OUTPUTDIR)/gensrc/_the_props
+
+################################################################################
diff --git a/langtools/make/GenstubsLangtools.gmk b/langtools/make/GenstubsLangtools.gmk
new file mode 100644
index 00000000000..f7605ffc4f2
--- /dev/null
+++ b/langtools/make/GenstubsLangtools.gmk
@@ -0,0 +1,70 @@
+#
+# Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+# This must be the first rule
+default: all
+
+include $(SPEC)
+include MakeBase.gmk
+
+include CommonLangtools.gmk
+
+# GenStubs is used to bootstrap any dependencies from javac to the new JDK that is not
+# yet built. It is currently not needed but might be again in the future. The following
+# exercises the functionality to verify that it works.
+TOOL_GENSTUBS_CMD = $(JAVA) \
+ "-Xbootclasspath/p:$(INTERIM_LANGTOOLS_JAR)" \
+ genstubs.GenStubs
+
+# We fetch source from the JDK...
+JDKS := $(JDK_TOPDIR)/src/share/classes
+
+# Build the list of classes to generate stubs from. java/util/function/Predicate.java isn't
+# currently needed, but is used as a demo for now.
+
+STUBSOURCES := $(shell $(FIND) $(JDKS) -name "*.java" | $(GREP) \
+ -e "$(JDKS)/java/util/function/Predicate.java")
+
+# Rewrite the file names into class names because the GenStubs tool require this.
+STUBCLASSES := $(subst /,., $(patsubst $(JDKS)/%.java, %, $(STUBSOURCES)))
+
+# Now setup the build recipe for genstubs.
+$(LANGTOOLS_OUTPUTDIR)/genstubs/_the_stubs: $(STUBSOURCES)
+ $(MKDIR) -p $(@D)
+ $(MKDIR) -p $(LANGTOOLS_OUTPUTDIR)/tmpstubs
+ $(ECHO) $(LOG_INFO) Generating stubs from JDK sources.
+ $(TOOL_GENSTUBS_CMD) -s $(LANGTOOLS_OUTPUTDIR)/tmpstubs -sourcepath $(JDKS) $(STUBCLASSES)
+ if $(DIFF) -x "_the*" -rq $(LANGTOOLS_OUTPUTDIR)/tmpstubs $(LANGTOOLS_OUTPUTDIR)/genstubs \
+ > /dev/null 2>&1; then \
+ $(ECHO) $(LOG_INFO) No changes in the stubs!; \
+ $(RM) -r $(LANGTOOLS_OUTPUTDIR)/tmpstubs; \
+ else \
+ $(ECHO) $(LOG_INFO) Changes in stubs detected!; \
+ $(RM) -r $(@D); \
+ $(MV) $(LANGTOOLS_OUTPUTDIR)/tmpstubs $(@D); \
+ fi
+ $(TOUCH) $@
+
+all: $(LANGTOOLS_OUTPUTDIR)/genstubs/_the_stubs
From 08b547c9abdbb8d7740bf049f8fd66a7fbddd7d3 Mon Sep 17 00:00:00 2001
From: Erik Joelsson
Date: Wed, 5 Feb 2014 11:04:21 +0100
Subject: [PATCH 158/181] 8026773: Failing compilation in Corba does not fail
the build
Reviewed-by: ihse, tbell
---
corba/make/BuildCorba.gmk | 236 ++----------------------------------
corba/make/CommonCorba.gmk | 53 ++++++++
corba/make/CompileCorba.gmk | 87 +++++++++++++
corba/make/GensrcCorba.gmk | 153 +++++++++++++++++++++++
4 files changed, 301 insertions(+), 228 deletions(-)
create mode 100644 corba/make/CommonCorba.gmk
create mode 100644 corba/make/CompileCorba.gmk
create mode 100644 corba/make/GensrcCorba.gmk
diff --git a/corba/make/BuildCorba.gmk b/corba/make/BuildCorba.gmk
index 3190ce899cf..05bcbe31337 100644
--- a/corba/make/BuildCorba.gmk
+++ b/corba/make/BuildCorba.gmk
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2007, 2014, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -31,235 +31,15 @@
default: all
include $(SPEC)
-include MakeBase.gmk
-include JavaCompilation.gmk
-include IdlCompilation.gmk
-# The Corba sources are old and generates a LOT of warnings.
-# Disable these using Xlint, until someone cares to fix them.
-DISABLE_CORBA_WARNINGS := -Xlint:all,-deprecation,-unchecked,-serial,-fallthrough,-cast,-rawtypes,-static,-dep-ann
+gensrc-corba:
+ +$(MAKE) -f $(CORBA_TOPDIR)/make/GensrcCorba.gmk
-# The "generate old bytecode" javac setup uses the new compiler to compile for the
-# boot jdk to generate tools that need to be run with the boot jdk.
-# Thus we force the target bytecode to the boot jdk bytecode.
-$(eval $(call SetupJavaCompiler,GENERATE_OLDBYTECODE, \
- JVM := $(JAVA), \
- JAVAC := $(NEW_JAVAC), \
- FLAGS := $(BOOT_JDK_SOURCETARGET) \
- -bootclasspath "$(BOOT_RTJAR)$(PATH_SEP)$(BOOT_TOOLSJAR)" \
- $(DISABLE_CORBA_WARNINGS), \
- SERVER_DIR := $(SJAVAC_SERVER_DIR), \
- SERVER_JVM := $(SJAVAC_SERVER_JAVA)))
+compile-corba: gensrc-corba
+ +$(MAKE) -f $(CORBA_TOPDIR)/make/CompileCorba.gmk
-# The "generate new bytecode" uses the new compiler to generate bytecode
-# for the new jdk that is being built. The code compiled by this setup
-# cannot necessarily be run with the boot jdk.
-$(eval $(call SetupJavaCompiler,GENERATE_NEWBYTECODE, \
- JVM := $(JAVA), \
- JAVAC := $(NEW_JAVAC), \
- FLAGS := -cp $(BOOT_TOOLSJAR) -XDignore.symbol.file=true $(DISABLE_CORBA_WARNINGS), \
- SERVER_DIR := $(SJAVAC_SERVER_DIR), \
- SERVER_JVM := $(SJAVAC_SERVER_JAVA)))
-
-$(eval $(call SetupJavaCompilation,BUILD_STRIPPROP, \
- SETUP := GENERATE_OLDBYTECODE, \
- SRC := $(CORBA_TOPDIR)/make/tools/src, \
- BIN := $(CORBA_OUTPUTDIR)/btclasses/stripprop_classes))
-
-$(eval $(call SetupArchive,ARCHIVE_STRIPPROP, $(BUILD_STRIPPROP), \
- SRCS := $(CORBA_OUTPUTDIR)/btclasses/stripprop_classes, \
- JAR := $(CORBA_OUTPUTDIR)/btjars/stripproperties.jar, \
- JARMAIN := build.tools.stripproperties.StripPropertiesCorba))
-
-$(eval $(call SetupJavaCompilation,BUILD_IDLJ, \
- SETUP := GENERATE_OLDBYTECODE, \
- SRC := $(CORBA_TOPDIR)/src/share/classes, \
- BIN := $(CORBA_OUTPUTDIR)/btclasses/idlj_classes, \
- COPY := .prp, \
- INCLUDES := com/sun/tools/corba/se/idl, \
- EXCLUDE_FILES := ResourceBundleUtil.java))
-
-$(eval $(call SetupArchive,ARCHIVE_IDLJ, $(BUILD_IDLJ), \
- SRCS := $(CORBA_OUTPUTDIR)/btclasses/idlj_classes, \
- SUFFIXES := .class .prp, \
- JAR := $(CORBA_OUTPUTDIR)/btjars/idlj.jar, \
- JARMAIN := com.sun.tools.corba.se.idl.toJavaPortable.Compile))
-
-$(eval $(call SetupJavaCompilation,BUILD_LOGUTIL, \
- SETUP := GENERATE_OLDBYTECODE, \
- SRC := $(CORBA_TOPDIR)/src/share/classes, \
- BIN := $(CORBA_OUTPUTDIR)/btclasses/logutil_classes, \
- INCLUDES := com/sun/tools/corba/se/logutil))
-
-$(eval $(call SetupArchive,ARCHIVE_LOGUTIL, $(BUILD_LOGUTIL), \
- SRCS := $(CORBA_OUTPUTDIR)/btclasses/logutil_classes, \
- JAR := $(CORBA_OUTPUTDIR)/btjars/logutil.jar, \
- JARMAIN := com.sun.tools.corba.se.logutil.MC))
-
-# Generate LogWrapper classes
-$(CORBA_OUTPUTDIR)/logwrappers/com/sun/corba/se/impl/logging/%SystemException.java: \
- $(CORBA_TOPDIR)/src/share/classes/com/sun/corba/se/spi/logging/data/%.mc \
- $(CORBA_OUTPUTDIR)/btjars/logutil.jar
- $(MKDIR) -p $(@D)
- $(RM) -f $(@D)/_the_wrappers.d
- $(ECHO) $(LOG_INFO) Generating class file from $*.mc
- $(JAVA) -jar $(CORBA_OUTPUTDIR)/btjars/logutil.jar make-class $< $(@D)
-
-# Generate LogWrapper properties file by concatening resource files
-$(CORBA_OUTPUTDIR)/logwrappers/com/sun/corba/se/impl/logging/LogStrings.properties: \
- $(CORBA_OUTPUTDIR)/logwrappers/ActivationSystemException.resource \
- $(CORBA_OUTPUTDIR)/logwrappers/IORSystemException.resource \
- $(CORBA_OUTPUTDIR)/logwrappers/InterceptorsSystemException.resource \
- $(CORBA_OUTPUTDIR)/logwrappers/NamingSystemException.resource \
- $(CORBA_OUTPUTDIR)/logwrappers/OMGSystemException.resource \
- $(CORBA_OUTPUTDIR)/logwrappers/ORBUtilSystemException.resource \
- $(CORBA_OUTPUTDIR)/logwrappers/POASystemException.resource \
- $(CORBA_OUTPUTDIR)/logwrappers/UtilSystemException.resource
- $(MKDIR) -p $(@D)
- $(ECHO) $(LOG_INFO) Concatenating 8 resource files into $(@F)
- $(CAT) $^ > $@
-
-# The resources files are generated from lisp-like .mc files.
-$(CORBA_OUTPUTDIR)/logwrappers/%SystemException.resource: $(CORBA_TOPDIR)/src/share/classes/com/sun/corba/se/spi/logging/data/%.mc $(CORBA_OUTPUTDIR)/btjars/logutil.jar
- $(MKDIR) -p $(@D)
- $(RM) -f $(@D)/_the_wrappers.d
- $(ECHO) $(LOG_INFO) Generating resource file from $*.mc
- $(JAVA) -jar $(CORBA_OUTPUTDIR)/btjars/logutil.jar make-resource $< $(@D)
+all: compile-corba
-$(CORBA_OUTPUTDIR)/logwrappers/_the_wrappers.d: $(CORBA_OUTPUTDIR)/btjars/logutil.jar \
- $(CORBA_OUTPUTDIR)/logwrappers/com/sun/corba/se/impl/logging/ActivationSystemException.java \
- $(CORBA_OUTPUTDIR)/logwrappers/com/sun/corba/se/impl/logging/IORSystemException.java \
- $(CORBA_OUTPUTDIR)/logwrappers/com/sun/corba/se/impl/logging/InterceptorsSystemException.java \
- $(CORBA_OUTPUTDIR)/logwrappers/com/sun/corba/se/impl/logging/NamingSystemException.java \
- $(CORBA_OUTPUTDIR)/logwrappers/com/sun/corba/se/impl/logging/OMGSystemException.java \
- $(CORBA_OUTPUTDIR)/logwrappers/com/sun/corba/se/impl/logging/ORBUtilSystemException.java \
- $(CORBA_OUTPUTDIR)/logwrappers/com/sun/corba/se/impl/logging/POASystemException.java \
- $(CORBA_OUTPUTDIR)/logwrappers/com/sun/corba/se/impl/logging/UtilSystemException.java \
- $(CORBA_OUTPUTDIR)/logwrappers/com/sun/corba/se/impl/logging/LogStrings.properties
- $(MKDIR) -p $(@D)
- $(ECHO) LOGWRAPPERS_ARE_CREATED = yes > $@
-
-# Trigger the generation of the logwrappers. After the logwrapper classes and
-# resources have been created, then the makefile will restart and the newly
-# created java files will become part of the build further along in the makefile.
--include $(CORBA_OUTPUTDIR)/logwrappers/_the_wrappers.d
-
-ifeq ($(LOGWRAPPERS_ARE_CREATED), yes)
-
- $(eval $(call SetupIdlCompilation,BUILD_IDLS, \
- IDLJ := $(JAVA) -jar $(CORBA_OUTPUTDIR)/btjars/idlj.jar, \
- SRC := $(CORBA_TOPDIR)/src/share/classes, \
- BIN := $(CORBA_OUTPUTDIR)/gensrc, \
- EXCLUDES := com/sun/tools/corba/se/idl/% \
- org/omg/CORBA/% \
- com/sun/corba/se/GiopIDL/% \
- org/omg/PortableServer/corba.idl, \
- INCLUDES := %, \
- OLDIMPLBASES := com/sun/corba/se/PortableActivationIDL/activation.idl \
- com/sun/corba/se/spi/activation/activation.idl, \
- DELETES := DYNANYDELETEFILES org/omg/DynamicAny/*POA* org/omg/DynamicAny/*Holder* org/omg/DynamicAny/DynValueBoxHelper.java org/omg/DynamicAny/DynValueCommonHelper.java org/omg/DynamicAny/_DynValueCommonStub.java org/omg/DynamicAny/_DynValueBoxStub.java org/omg/DynamicAny/DynAnyPackage/TypeMismatchHolder.java org/omg/DynamicAny/DynAnyPackage/InvalidValueHolder.java org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCodeHolder.java IOPDELETEFILES org/omg/IOP/BI_DIR_IIOP.java org/omg/IOP/ChainBypassCheck.java org/omg/IOP/ChainBypassInfo.java org/omg/IOP/FORWARDED_IDENTITY.java org/omg/IOP/INVOCATION_POLICIES.java org/omg/IOP/LogicalThreadId.java org/omg/IOP/SendingContextRunTime.java org/omg/IOP/UnknownExceptionInfo.java org/omg/IOP/TaggedComponentSeqHolder.java POAHELHOLFILES org/omg/PortableServer/CurrentPackage/NoContextHolder.java org/omg/PortableServer/ForwardRequestHolder.java org/omg/PortableServer/IdAssignmentPolicyValueHelper.java org/omg/PortableServer/IdAssignmentPolicyValueHolder.java org/omg/PortableServer/IdUniquenessPolicyValueHelper.java org/omg/PortableServer/IdUniquenessPolicyValueHolder.java org/omg/PortableServer/ImplicitActivationPolicyValueHelper.java org/omg/PortableServer/ImplicitActivationPolicyValueHolder.java org/omg/PortableServer/LifespanPolicyValueHelper.java org/omg/PortableServer/LifespanPolicyValueHolder.java org/omg/PortableServer/ServantRetentionPolicyValueHelper.java org/omg/PortableServer/ServantRetentionPolicyValueHolder.java org/omg/PortableServer/ObjectIdHelper.java org/omg/PortableServer/ObjectIdHolder.java org/omg/PortableServer/POAListHelper.java org/omg/PortableServer/POAListHolder.java org/omg/PortableServer/POAManagerPackage/AdapterInactiveHolder.java org/omg/PortableServer/POAManagerPackage/StateHelper.java org/omg/PortableServer/POAManagerPackage/StateHolder.java org/omg/PortableServer/POAPackage/AdapterAlreadyExistsHolder.java org/omg/PortableServer/POAPackage/AdapterNonExistentHolder.java org/omg/PortableServer/POAPackage/InvalidPolicyHolder.java org/omg/PortableServer/POAPackage/NoServantHolder.java org/omg/PortableServer/POAPackage/ObjectAlreadyActiveHolder.java org/omg/PortableServer/POAPackage/ObjectNotActiveHolder.java org/omg/PortableServer/POAPackage/ServantAlreadyActiveHolder.java org/omg/PortableServer/POAPackage/ServantNotActiveHolder.java org/omg/PortableServer/POAPackage/WrongAdapterHolder.java org/omg/PortableServer/POAPackage/WrongPolicyHolder.java org/omg/PortableServer/RequestProcessingPolicyValueHelper.java org/omg/PortableServer/RequestProcessingPolicyValueHolder.java org/omg/PortableServer/ServantActivatorHolder.java org/omg/PortableServer/ServantLocatorHolder.java org/omg/PortableServer/ThreadPolicyValueHelper.java org/omg/PortableServer/ThreadPolicyValueHolder.java PIHELHOLFILES org/omg/PortableInterceptor/ClientRequestInfoHelper.java org/omg/PortableInterceptor/ClientRequestInterceptorHelper.java org/omg/PortableInterceptor/IORInfoHelper.java org/omg/PortableInterceptor/IORInterceptorHelper.java org/omg/PortableInterceptor/InterceptorHelper.java org/omg/PortableInterceptor/ORBInitInfoHelper.java org/omg/PortableInterceptor/ORBInitializerHelper.java org/omg/PortableInterceptor/PolicyFactoryHelper.java org/omg/PortableInterceptor/ReplyStatusHelper.java org/omg/PortableInterceptor/RequestInfoHelper.java org/omg/PortableInterceptor/ServerRequestInfoHelper.java org/omg/PortableInterceptor/ServerRequestInterceptorHelper.java org/omg/PortableInterceptor/SlotIdHelper.java org/omg/PortableInterceptor/ClientRequestInfoHolder.java org/omg/PortableInterceptor/ClientRequestInterceptorHolder.java org/omg/PortableInterceptor/CurrentHolder.java org/omg/PortableInterceptor/ForwardRequestHolder.java org/omg/PortableInterceptor/IORInfoHolder.java org/omg/PortableInterceptor/IORInterceptorHolder.java org/omg/PortableInterceptor/InterceptorHolder.java org/omg/PortableInterceptor/InvalidSlotHolder.java org/omg/PortableInterceptor/ORBInitInfoHolder.java org/omg/PortableInterceptor/ORBInitializerHolder.java org/omg/PortableInterceptor/PolicyFactoryHolder.java org/omg/PortableInterceptor/RequestInfoHolder.java org/omg/PortableInterceptor/ServerRequestInfoHolder.java org/omg/PortableInterceptor/ServerRequestInterceptorHolder.java org/omg/PortableInterceptor/TaggedComponentSeqHolder.java org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateNameHolder.java org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidNameHolder.java org/omg/IOP/CodecPackage/FormatMismatchHolder.java org/omg/IOP/CodecPackage/InvalidTypeForEncodingHolder.java org/omg/IOP/CodecPackage/TypeMismatchHolder.java org/omg/IOP/CodecHelper.java org/omg/IOP/EncodingFormatHelper.java org/omg/IOP/EncodingHelper.java org/omg/IOP/CodecFactoryPackage/UnknownEncodingHolder.java org/omg/IOP/CodecFactoryHolder.java org/omg/IOP/CodecHolder.java org/omg/IOP/EncodingHolder.java org/omg/IOP/TaggedComponentSeqHelper.java org/omg/Dynamic/ContextListHelper.java org/omg/Dynamic/ExceptionListHelper.java org/omg/Dynamic/ParameterHolder.java org/omg/Dynamic/ParameterListHolder.java org/omg/Dynamic/ExceptionListHolder.java org/omg/Dynamic/ParameterHelper.java org/omg/Dynamic/ParameterListHelper.java org/omg/Dynamic/RequestContextHelper.java CORBAX org/omg/CORBA/OctetSeqHelper.java org/omg/CORBA/OctetSeqHolder.java org/omg/CORBA/PolicyError.java org/omg/CORBA/RepositoryIdHelper.java))
-
- $(BUILD_IDLS): $(CORBA_OUTPUTDIR)/btjars/idlj.jar
-
- $(CORBA_OUTPUTDIR)/gensrc/_the_idls.d: $(BUILD_IDLS) $(CORBA_OUTPUTDIR)/btjars/idlj.jar
- $(MKDIR) -p $(@D)
- $(ECHO) IDLS_ARE_CREATED = yes > $@
-
- -include $(CORBA_OUTPUTDIR)/gensrc/_the_idls.d
-
- ifeq ($(IDLS_ARE_CREATED), yes)
-
- $(eval $(call SetupJavaCompilation,BUILD_CORBA, \
- SETUP := GENERATE_NEWBYTECODE, \
- SRC := $(CORBA_TOPDIR)/src/share/classes $(CORBA_OUTPUTDIR)/gensrc $(CORBA_OUTPUTDIR)/logwrappers, \
- EXCLUDES := com/sun/corba/se/PortableActivationIDL \
- com/sun/tools/corba/se/logutil, \
- EXCLUDE_FILES := com/sun/corba/se/impl/presentation/rmi/JNDIStateFactoryImpl.java \
- com/sun/corba/se/spi/presentation/rmi/StubWrapper.java \
- com/sun/org/omg/CORBA/IDLTypeOperations.java \
- com/sun/org/omg/CORBA/IRObjectOperations.java \
- org/omg/PortableInterceptor/UNKNOWN.java \
- com/sun/tools/corba/se/idl/ResourceBundleUtil.java \
- com/sun/corba/se/impl/presentation/rmi/jndi.properties, \
- COPY := .prp LogStrings.properties, \
- BIN := $(CORBA_OUTPUTDIR)/classes))
-
- $(eval $(call SetupJavaCompilation,BUILD_BOOTSTRAP_CORBA, \
- SETUP := GENERATE_OLDBYTECODE, \
- SRC := $(BUILD_CORBA_SRC), \
- EXCLUDES := $(BUILD_CORBA_EXCLUDES), \
- EXCLUDE_FILES := $(BUILD_CORBA_EXCLUDE_FILES), \
- COPY := $(BUILD_CORBA_COPY), \
- BIN := $(CORBA_OUTPUTDIR)/btclasses/corba_classes, \
- JAR := $(CORBA_OUTPUTDIR)/btjars/btcorba.jar))
-
- # Separate src.zip call to include sources that were excluded in the build to
- # mimic behavior in old build system.
- $(eval $(call SetupZipArchive,ARCHIVE_BUILD_CORBA, \
- SRC := $(CORBA_TOPDIR)/src/share/classes $(CORBA_OUTPUTDIR)/gensrc $(CORBA_OUTPUTDIR)/logwrappers, \
- ZIP := $(CORBA_OUTPUTDIR)/dist/lib/src.zip))
-
- $(BUILD_CORBA): $(BUILD_IDLS) $(LOGWRAPPER_DEPENDENCIES)
-
- # Run stripproperties on all sunorb resource files.
- STRIP_PROP_SRC_FILES := $(shell $(FIND) $(CORBA_TOPDIR)/src/share/classes -name "sunorb*.properties")
- STRIP_PROP_FILES := $(patsubst $(CORBA_TOPDIR)/src/share/classes/%, $(CORBA_OUTPUTDIR)/classes/%, \
- $(STRIP_PROP_SRC_FILES))
- # Simple delivery of zh_HK properties files just copies zh_TW properties files
- STRIP_PROP_FILES += $(patsubst $(CORBA_TOPDIR)/src/share/classes/%_zh_TW.properties, \
- $(CORBA_OUTPUTDIR)/classes/%_zh_HK.properties, \
- $(shell $(FIND) $(CORBA_TOPDIR)/src/share/classes -name "sunorb_zh_TW.properties"))
- STRIP_PROP_SRC_FILES += $(shell $(FIND) $(CORBA_TOPDIR)/src/share/classes -name "sunorb_zh_TW.properties")
- STRIP_PROP_CMDLINE := $(subst _SPACE_, $(SPACE), \
- $(join $(addprefix -clean_SPACE_, $(STRIP_PROP_SRC_FILES)), \
- $(addprefix _SPACE_, $(STRIP_PROP_FILES))))
-
- $(CORBA_OUTPUTDIR)/_the.stripped_properties: $(STRIP_PROP_SRC_FILES) \
- $(CORBA_OUTPUTDIR)/btjars/stripproperties.jar
- $(MKDIR) -p $(sort $(dir $(STRIP_PROP_FILES)))
- $(call ListPathsSafely,STRIP_PROP_CMDLINE,\n, >> $(CORBA_OUTPUTDIR)/_the.strip_prop.cmdline)
- $(JAVA) -jar $(CORBA_OUTPUTDIR)/btjars/stripproperties.jar \
- @$(CORBA_OUTPUTDIR)/_the.strip_prop.cmdline
- $(TOUCH) $@
-
- $(eval $(call SetupArchive,ARCHIVE_CORBA, \
- $(BUILD_CORBA) $(CORBA_OUTPUTDIR)/_the.stripped_properties, \
- SRCS := $(CORBA_OUTPUTDIR)/classes, \
- SUFFIXES := .class .prp .properties, \
- JAR := $(CORBA_OUTPUTDIR)/dist/lib/classes.jar))
-
- # The created classes.jar now contains Corba compiled to run on the target JDK
- # and is ready for inclusion in jdk rt.jar.
-
- # The created src.zip now contains .java and .properties files used to create the classes in classes.jar
- # and is ready for inclusion into the jdk src.zip
-
- BIN_FILES := $(CORBA_TOPDIR)/src/share/classes/com/sun/tools/corba/se/idl/orb.idl \
- $(CORBA_TOPDIR)/src/share/classes/com/sun/tools/corba/se/idl/ir.idl
-
- $(CORBA_OUTPUTDIR)/dist/lib/bin.zip: $(BIN_FILES) $(CORBA_OUTPUTDIR)/dist/lib/classes.jar
- $(MKDIR) -p $(CORBA_OUTPUTDIR)/dist/lib
- $(MKDIR) -p $(CORBA_OUTPUTDIR)/lib
- $(RM) -f $@
- $(ECHO) Creating `basename $@`
- $(CP) $(BIN_FILES) $(CORBA_OUTPUTDIR)/lib
- $(CHMOD) ug+w $(CORBA_OUTPUTDIR)/lib/*
- (cd $(CORBA_OUTPUTDIR); $(ZIP) -q $@ lib/orb.idl lib/ir.idl)
-
- # The created bin.zip now contains the corba specific binaries: orb.idl, ir.idl
-
- all: $(CORBA_OUTPUTDIR)/btjars/stripproperties.jar \
- $(CORBA_OUTPUTDIR)/btjars/idlj.jar \
- $(CORBA_OUTPUTDIR)/btjars/logutil.jar \
- $(CORBA_OUTPUTDIR)/btjars/btcorba.jar \
- $(CORBA_OUTPUTDIR)/dist/lib/classes.jar \
- $(CORBA_OUTPUTDIR)/dist/lib/src.zip \
- $(CORBA_OUTPUTDIR)/dist/lib/bin.zip
- endif
-endif
-
-clean:
- $(RM) -rf $(CORBA_OUTPUTDIR)
-
-.PHONY: default all clean clobber
+.PHONY: default all
+.PHONY: gensrc-corba compile-corba
diff --git a/corba/make/CommonCorba.gmk b/corba/make/CommonCorba.gmk
new file mode 100644
index 00000000000..11b69b6f715
--- /dev/null
+++ b/corba/make/CommonCorba.gmk
@@ -0,0 +1,53 @@
+#
+# Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+################################################################################
+# The Corba sources are old and generates a LOT of warnings.
+# Disable these using Xlint, until someone cares to fix them.
+DISABLE_CORBA_WARNINGS := -Xlint:all,-deprecation,-unchecked,-serial,-fallthrough,-cast,-rawtypes,-static,-dep-ann
+
+# The "generate old bytecode" javac setup uses the new compiler to compile for the
+# boot jdk to generate tools that need to be run with the boot jdk.
+# Thus we force the target bytecode to the boot jdk bytecode.
+$(eval $(call SetupJavaCompiler,GENERATE_OLDBYTECODE, \
+ JVM := $(JAVA), \
+ JAVAC := $(NEW_JAVAC), \
+ FLAGS := $(BOOT_JDK_SOURCETARGET) \
+ -bootclasspath "$(BOOT_RTJAR)$(PATH_SEP)$(BOOT_TOOLSJAR)" \
+ $(DISABLE_CORBA_WARNINGS), \
+ SERVER_DIR := $(SJAVAC_SERVER_DIR), \
+ SERVER_JVM := $(SJAVAC_SERVER_JAVA)))
+
+# The "generate new bytecode" uses the new compiler to generate bytecode
+# for the new jdk that is being built. The code compiled by this setup
+# cannot necessarily be run with the boot jdk.
+$(eval $(call SetupJavaCompiler,GENERATE_NEWBYTECODE, \
+ JVM := $(JAVA), \
+ JAVAC := $(NEW_JAVAC), \
+ FLAGS := -cp $(BOOT_TOOLSJAR) -XDignore.symbol.file=true $(DISABLE_CORBA_WARNINGS), \
+ SERVER_DIR := $(SJAVAC_SERVER_DIR), \
+ SERVER_JVM := $(SJAVAC_SERVER_JAVA)))
+
+################################################################################
diff --git a/corba/make/CompileCorba.gmk b/corba/make/CompileCorba.gmk
new file mode 100644
index 00000000000..16e0c4e679d
--- /dev/null
+++ b/corba/make/CompileCorba.gmk
@@ -0,0 +1,87 @@
+#
+# Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+# This must be the first rule
+default: all
+
+include $(SPEC)
+include MakeBase.gmk
+include JavaCompilation.gmk
+
+include CommonCorba.gmk
+
+################################################################################
+
+$(eval $(call SetupJavaCompilation,BUILD_CORBA, \
+ SETUP := GENERATE_NEWBYTECODE, \
+ SRC := $(CORBA_TOPDIR)/src/share/classes $(CORBA_OUTPUTDIR)/gensrc, \
+ EXCLUDES := com/sun/corba/se/PortableActivationIDL \
+ com/sun/tools/corba/se/logutil, \
+ EXCLUDE_FILES := com/sun/corba/se/impl/presentation/rmi/JNDIStateFactoryImpl.java \
+ com/sun/corba/se/spi/presentation/rmi/StubWrapper.java \
+ com/sun/org/omg/CORBA/IDLTypeOperations.java \
+ com/sun/org/omg/CORBA/IRObjectOperations.java \
+ org/omg/PortableInterceptor/UNKNOWN.java \
+ com/sun/tools/corba/se/idl/ResourceBundleUtil.java \
+ com/sun/corba/se/impl/presentation/rmi/jndi.properties, \
+ COPY := .prp LogStrings.properties, \
+ BIN := $(CORBA_OUTPUTDIR)/classes, \
+ JAR := $(CORBA_OUTPUTDIR)/dist/lib/classes.jar))
+
+$(eval $(call SetupJavaCompilation,BUILD_INTERIM_CORBA, \
+ SETUP := GENERATE_OLDBYTECODE, \
+ SRC := $(BUILD_CORBA_SRC), \
+ EXCLUDES := $(BUILD_CORBA_EXCLUDES), \
+ EXCLUDE_FILES := $(BUILD_CORBA_EXCLUDE_FILES), \
+ COPY := $(BUILD_CORBA_COPY), \
+ BIN := $(CORBA_OUTPUTDIR)/interim_classes, \
+ JAR := $(INTERIM_CORBA_JAR)))
+
+# Separate src.zip call to include sources that were excluded in the build to
+# mimic behavior in old build system.
+$(eval $(call SetupZipArchive,ARCHIVE_CORBA_SRC, \
+ SRC := $(CORBA_TOPDIR)/src/share/classes $(CORBA_OUTPUTDIR)/gensrc, \
+ ZIP := $(CORBA_OUTPUTDIR)/dist/lib/src.zip))
+ JAR := $(CORBA_OUTPUTDIR)/dist/lib/classes.jar))
+
+################################################################################
+# Create bin.zip containing the corba specific binaries: orb.idl, ir.idl
+BIN_FILES := $(CORBA_TOPDIR)/src/share/classes/com/sun/tools/corba/se/idl/orb.idl \
+ $(CORBA_TOPDIR)/src/share/classes/com/sun/tools/corba/se/idl/ir.idl
+
+$(CORBA_OUTPUTDIR)/dist/lib/bin.zip: $(BIN_FILES)
+ $(MKDIR) -p $(CORBA_OUTPUTDIR)/dist/lib
+ $(MKDIR) -p $(CORBA_OUTPUTDIR)/lib
+ $(RM) -f $@
+ $(ECHO) Creating `basename $@`
+ $(CP) $(BIN_FILES) $(CORBA_OUTPUTDIR)/lib
+ $(CHMOD) ug+w $(CORBA_OUTPUTDIR)/lib/*
+ (cd $(CORBA_OUTPUTDIR); $(ZIP) -q $@ lib/orb.idl lib/ir.idl)
+
+################################################################################
+
+
+all: $(BUILD_CORBA) $(BUILD_INTERIM_CORBA) $(ARCHIVE_CORBA_SRC) \
+ $(CORBA_OUTPUTDIR)/dist/lib/bin.zip
diff --git a/corba/make/GensrcCorba.gmk b/corba/make/GensrcCorba.gmk
new file mode 100644
index 00000000000..61030ed5af7
--- /dev/null
+++ b/corba/make/GensrcCorba.gmk
@@ -0,0 +1,153 @@
+#
+# Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation. Oracle designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Oracle in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+# or visit www.oracle.com if you need additional information or have any
+# questions.
+#
+
+default: all
+
+include $(SPEC)
+include MakeBase.gmk
+include JavaCompilation.gmk
+include IdlCompilation.gmk
+
+include CommonCorba.gmk
+
+################################################################################
+
+$(eval $(call SetupJavaCompilation,BUILD_STRIPPROP, \
+ SETUP := GENERATE_OLDBYTECODE, \
+ SRC := $(CORBA_TOPDIR)/make/tools/src, \
+ BIN := $(CORBA_OUTPUTDIR)/stripprop_classes))
+
+TOOL_STRIPPROP_CMD := $(JAVA) -cp $(CORBA_OUTPUTDIR)/stripprop_classes \
+ build.tools.stripproperties.StripPropertiesCorba
+
+$(eval $(call SetupJavaCompilation,BUILD_IDLJ, \
+ SETUP := GENERATE_OLDBYTECODE, \
+ SRC := $(CORBA_TOPDIR)/src/share/classes, \
+ BIN := $(CORBA_OUTPUTDIR)/idlj_classes, \
+ COPY := .prp, \
+ INCLUDES := com/sun/tools/corba/se/idl, \
+ EXCLUDE_FILES := ResourceBundleUtil.java))
+
+TOOL_IDLJ_CMD := $(JAVA) -cp $(CORBA_OUTPUTDIR)/idlj_classes \
+ com.sun.tools.corba.se.idl.toJavaPortable.Compile
+
+$(eval $(call SetupJavaCompilation,BUILD_LOGUTIL, \
+ SETUP := GENERATE_OLDBYTECODE, \
+ SRC := $(CORBA_TOPDIR)/src/share/classes, \
+ BIN := $(CORBA_OUTPUTDIR)/logutil_classes, \
+ INCLUDES := com/sun/tools/corba/se/logutil))
+
+TOOL_LOGUTIL_CMD := $(JAVA) -cp $(CORBA_OUTPUTDIR)/logutil_classes \
+ com.sun.tools.corba.se.logutil.MC
+
+################################################################################
+
+# Generate LogWrapper classes
+$(CORBA_OUTPUTDIR)/gensrc/com/sun/corba/se/impl/logging/%SystemException.java: \
+ $(CORBA_TOPDIR)/src/share/classes/com/sun/corba/se/spi/logging/data/%.mc \
+ $(BUILD_LOGUTIL)
+ $(MKDIR) -p $(@D)
+ $(RM) -f $(@D)/_the_wrappers.d
+ $(ECHO) $(LOG_INFO) Generating class file from $*.mc
+ $(TOOL_LOGUTIL_CMD) make-class $< $(@D)
+
+# Generate LogWrapper properties file by concatening resource files
+$(CORBA_OUTPUTDIR)/gensrc/com/sun/corba/se/impl/logging/LogStrings.properties: \
+ $(CORBA_OUTPUTDIR)/logwrappers/ActivationSystemException.resource \
+ $(CORBA_OUTPUTDIR)/logwrappers/IORSystemException.resource \
+ $(CORBA_OUTPUTDIR)/logwrappers/InterceptorsSystemException.resource \
+ $(CORBA_OUTPUTDIR)/logwrappers/NamingSystemException.resource \
+ $(CORBA_OUTPUTDIR)/logwrappers/OMGSystemException.resource \
+ $(CORBA_OUTPUTDIR)/logwrappers/ORBUtilSystemException.resource \
+ $(CORBA_OUTPUTDIR)/logwrappers/POASystemException.resource \
+ $(CORBA_OUTPUTDIR)/logwrappers/UtilSystemException.resource
+ $(MKDIR) -p $(@D)
+ $(ECHO) $(LOG_INFO) Concatenating 8 resource files into $(@F)
+ $(CAT) $^ > $@
+
+# The resources files are generated from lisp-like .mc files.
+$(CORBA_OUTPUTDIR)/logwrappers/%SystemException.resource: \
+ $(CORBA_TOPDIR)/src/share/classes/com/sun/corba/se/spi/logging/data/%.mc \
+ $(BUILD_LOGUTIL)
+ $(MKDIR) -p $(@D)
+ $(RM) -f $(@D)/_the_wrappers.d
+ $(ECHO) $(LOG_INFO) Generating resource file from $*.mc
+ $(TOOL_LOGUTIL_CMD) make-resource $< $(@D)
+
+
+LOGWRAPPER_TARGETS := \
+ $(CORBA_OUTPUTDIR)/gensrc/com/sun/corba/se/impl/logging/ActivationSystemException.java \
+ $(CORBA_OUTPUTDIR)/gensrc/com/sun/corba/se/impl/logging/IORSystemException.java \
+ $(CORBA_OUTPUTDIR)/gensrc/com/sun/corba/se/impl/logging/InterceptorsSystemException.java \
+ $(CORBA_OUTPUTDIR)/gensrc/com/sun/corba/se/impl/logging/NamingSystemException.java \
+ $(CORBA_OUTPUTDIR)/gensrc/com/sun/corba/se/impl/logging/OMGSystemException.java \
+ $(CORBA_OUTPUTDIR)/gensrc/com/sun/corba/se/impl/logging/ORBUtilSystemException.java \
+ $(CORBA_OUTPUTDIR)/gensrc/com/sun/corba/se/impl/logging/POASystemException.java \
+ $(CORBA_OUTPUTDIR)/gensrc/com/sun/corba/se/impl/logging/UtilSystemException.java \
+ $(CORBA_OUTPUTDIR)/gensrc/com/sun/corba/se/impl/logging/LogStrings.properties
+
+################################################################################
+# Build the IDLs.
+
+$(eval $(call SetupIdlCompilation,BUILD_IDLS, \
+ IDLJ := $(TOOL_IDLJ_CMD), \
+ SRC := $(CORBA_TOPDIR)/src/share/classes, \
+ BIN := $(CORBA_OUTPUTDIR)/gensrc, \
+ EXCLUDES := com/sun/tools/corba/se/idl/% \
+ org/omg/CORBA/% \
+ com/sun/corba/se/GiopIDL/% \
+ org/omg/PortableServer/corba.idl, \
+ INCLUDES := %, \
+ OLDIMPLBASES := com/sun/corba/se/PortableActivationIDL/activation.idl \
+ com/sun/corba/se/spi/activation/activation.idl, \
+ DELETES := DYNANYDELETEFILES org/omg/DynamicAny/*POA* org/omg/DynamicAny/*Holder* org/omg/DynamicAny/DynValueBoxHelper.java org/omg/DynamicAny/DynValueCommonHelper.java org/omg/DynamicAny/_DynValueCommonStub.java org/omg/DynamicAny/_DynValueBoxStub.java org/omg/DynamicAny/DynAnyPackage/TypeMismatchHolder.java org/omg/DynamicAny/DynAnyPackage/InvalidValueHolder.java org/omg/DynamicAny/DynAnyFactoryPackage/InconsistentTypeCodeHolder.java IOPDELETEFILES org/omg/IOP/BI_DIR_IIOP.java org/omg/IOP/ChainBypassCheck.java org/omg/IOP/ChainBypassInfo.java org/omg/IOP/FORWARDED_IDENTITY.java org/omg/IOP/INVOCATION_POLICIES.java org/omg/IOP/LogicalThreadId.java org/omg/IOP/SendingContextRunTime.java org/omg/IOP/UnknownExceptionInfo.java org/omg/IOP/TaggedComponentSeqHolder.java POAHELHOLFILES org/omg/PortableServer/CurrentPackage/NoContextHolder.java org/omg/PortableServer/ForwardRequestHolder.java org/omg/PortableServer/IdAssignmentPolicyValueHelper.java org/omg/PortableServer/IdAssignmentPolicyValueHolder.java org/omg/PortableServer/IdUniquenessPolicyValueHelper.java org/omg/PortableServer/IdUniquenessPolicyValueHolder.java org/omg/PortableServer/ImplicitActivationPolicyValueHelper.java org/omg/PortableServer/ImplicitActivationPolicyValueHolder.java org/omg/PortableServer/LifespanPolicyValueHelper.java org/omg/PortableServer/LifespanPolicyValueHolder.java org/omg/PortableServer/ServantRetentionPolicyValueHelper.java org/omg/PortableServer/ServantRetentionPolicyValueHolder.java org/omg/PortableServer/ObjectIdHelper.java org/omg/PortableServer/ObjectIdHolder.java org/omg/PortableServer/POAListHelper.java org/omg/PortableServer/POAListHolder.java org/omg/PortableServer/POAManagerPackage/AdapterInactiveHolder.java org/omg/PortableServer/POAManagerPackage/StateHelper.java org/omg/PortableServer/POAManagerPackage/StateHolder.java org/omg/PortableServer/POAPackage/AdapterAlreadyExistsHolder.java org/omg/PortableServer/POAPackage/AdapterNonExistentHolder.java org/omg/PortableServer/POAPackage/InvalidPolicyHolder.java org/omg/PortableServer/POAPackage/NoServantHolder.java org/omg/PortableServer/POAPackage/ObjectAlreadyActiveHolder.java org/omg/PortableServer/POAPackage/ObjectNotActiveHolder.java org/omg/PortableServer/POAPackage/ServantAlreadyActiveHolder.java org/omg/PortableServer/POAPackage/ServantNotActiveHolder.java org/omg/PortableServer/POAPackage/WrongAdapterHolder.java org/omg/PortableServer/POAPackage/WrongPolicyHolder.java org/omg/PortableServer/RequestProcessingPolicyValueHelper.java org/omg/PortableServer/RequestProcessingPolicyValueHolder.java org/omg/PortableServer/ServantActivatorHolder.java org/omg/PortableServer/ServantLocatorHolder.java org/omg/PortableServer/ThreadPolicyValueHelper.java org/omg/PortableServer/ThreadPolicyValueHolder.java PIHELHOLFILES org/omg/PortableInterceptor/ClientRequestInfoHelper.java org/omg/PortableInterceptor/ClientRequestInterceptorHelper.java org/omg/PortableInterceptor/IORInfoHelper.java org/omg/PortableInterceptor/IORInterceptorHelper.java org/omg/PortableInterceptor/InterceptorHelper.java org/omg/PortableInterceptor/ORBInitInfoHelper.java org/omg/PortableInterceptor/ORBInitializerHelper.java org/omg/PortableInterceptor/PolicyFactoryHelper.java org/omg/PortableInterceptor/ReplyStatusHelper.java org/omg/PortableInterceptor/RequestInfoHelper.java org/omg/PortableInterceptor/ServerRequestInfoHelper.java org/omg/PortableInterceptor/ServerRequestInterceptorHelper.java org/omg/PortableInterceptor/SlotIdHelper.java org/omg/PortableInterceptor/ClientRequestInfoHolder.java org/omg/PortableInterceptor/ClientRequestInterceptorHolder.java org/omg/PortableInterceptor/CurrentHolder.java org/omg/PortableInterceptor/ForwardRequestHolder.java org/omg/PortableInterceptor/IORInfoHolder.java org/omg/PortableInterceptor/IORInterceptorHolder.java org/omg/PortableInterceptor/InterceptorHolder.java org/omg/PortableInterceptor/InvalidSlotHolder.java org/omg/PortableInterceptor/ORBInitInfoHolder.java org/omg/PortableInterceptor/ORBInitializerHolder.java org/omg/PortableInterceptor/PolicyFactoryHolder.java org/omg/PortableInterceptor/RequestInfoHolder.java org/omg/PortableInterceptor/ServerRequestInfoHolder.java org/omg/PortableInterceptor/ServerRequestInterceptorHolder.java org/omg/PortableInterceptor/TaggedComponentSeqHolder.java org/omg/PortableInterceptor/ORBInitInfoPackage/DuplicateNameHolder.java org/omg/PortableInterceptor/ORBInitInfoPackage/InvalidNameHolder.java org/omg/IOP/CodecPackage/FormatMismatchHolder.java org/omg/IOP/CodecPackage/InvalidTypeForEncodingHolder.java org/omg/IOP/CodecPackage/TypeMismatchHolder.java org/omg/IOP/CodecHelper.java org/omg/IOP/EncodingFormatHelper.java org/omg/IOP/EncodingHelper.java org/omg/IOP/CodecFactoryPackage/UnknownEncodingHolder.java org/omg/IOP/CodecFactoryHolder.java org/omg/IOP/CodecHolder.java org/omg/IOP/EncodingHolder.java org/omg/IOP/TaggedComponentSeqHelper.java org/omg/Dynamic/ContextListHelper.java org/omg/Dynamic/ExceptionListHelper.java org/omg/Dynamic/ParameterHolder.java org/omg/Dynamic/ParameterListHolder.java org/omg/Dynamic/ExceptionListHolder.java org/omg/Dynamic/ParameterHelper.java org/omg/Dynamic/ParameterListHelper.java org/omg/Dynamic/RequestContextHelper.java CORBAX org/omg/CORBA/OctetSeqHelper.java org/omg/CORBA/OctetSeqHolder.java org/omg/CORBA/PolicyError.java org/omg/CORBA/RepositoryIdHelper.java))
+
+$(BUILD_IDLS): $(BUILD_IDLJ)
+
+################################################################################
+# Run stripproperties on all sunorb resource files.
+
+STRIP_PROP_SRC_FILES := $(shell $(FIND) $(CORBA_TOPDIR)/src/share/classes -name "sunorb*.properties")
+STRIP_PROP_FILES := $(patsubst $(CORBA_TOPDIR)/src/share/classes/%, $(CORBA_OUTPUTDIR)/classes/%, \
+ $(STRIP_PROP_SRC_FILES))
+# Simple delivery of zh_HK properties files just copies zh_TW properties files
+STRIP_PROP_SRC_FILE_ZH_TW := $(shell $(FIND) $(CORBA_TOPDIR)/src/share/classes -name "sunorb_zh_TW.properties")
+STRIP_PROP_SRC_FILES += $(STRIP_PROP_SRC_FILE_ZH_TW)
+STRIP_PROP_FILES += $(patsubst $(CORBA_TOPDIR)/src/share/classes/%_zh_TW.properties, \
+ $(CORBA_OUTPUTDIR)/classes/%_zh_HK.properties, $(STRIP_PROP_SRC_FILE_ZH_TW))
+STRIP_PROP_CMDLINE := $(subst _SPACE_, $(SPACE), \
+ $(join $(addprefix -clean_SPACE_, $(STRIP_PROP_SRC_FILES)), \
+ $(addprefix _SPACE_, $(STRIP_PROP_FILES))))
+
+$(CORBA_OUTPUTDIR)/_the.stripped_properties: $(STRIP_PROP_SRC_FILES) \
+ $(BUILD_STRIPPROP)
+ $(MKDIR) -p $(sort $(dir $(STRIP_PROP_FILES)))
+ $(call ListPathsSafely,STRIP_PROP_CMDLINE,\n, >> $(CORBA_OUTPUTDIR)/_the.strip_prop.cmdline)
+ $(TOOL_STRIPPROP_CMD) @$(CORBA_OUTPUTDIR)/_the.strip_prop.cmdline
+ $(TOUCH) $@
+
+################################################################################
+
+all: $(BUILD_IDLS) $(CORBA_OUTPUTDIR)/_the.stripped_properties $(LOGWRAPPER_TARGETS)
From 91a6e1b0926cf0c94ad134f3c86b381e9dc7f07a Mon Sep 17 00:00:00 2001
From: Erik Joelsson
Date: Wed, 5 Feb 2014 11:05:24 +0100
Subject: [PATCH 159/181] 8026773: Failing compilation in Corba does not fail
the build
Reviewed-by: ihse, tbell
---
jdk/make/GenerateClasses.gmk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/jdk/make/GenerateClasses.gmk b/jdk/make/GenerateClasses.gmk
index f4dafc55087..1503c0b8dd4 100644
--- a/jdk/make/GenerateClasses.gmk
+++ b/jdk/make/GenerateClasses.gmk
@@ -52,7 +52,7 @@ $(eval $(call SetupJavaCompilation,BUILD_BOOTSTRAP_RMIC, \
##########################################################################################
-BTRMIC_CP := $(CORBA_OUTPUTDIR)/btjars/btcorba.jar$(PATH_SEP)$(JDK_OUTPUTDIR)/btclasses_rmic$(PATH_SEP)$(BOOTSTRAP_JAVAC_JAR)
+BTRMIC_CP := $(INTERIM_CORBA_JAR)$(PATH_SEP)$(JDK_OUTPUTDIR)/btclasses_rmic$(PATH_SEP)$(INTERIM_LANGTOOLS_JAR)
BTRMIC_ARGS := "-Xbootclasspath/p:$(BTRMIC_CP)" -cp "$(BTRMIC_CP)"
RMIC := $(JAVA) $(BTRMIC_ARGS) sun.rmi.rmic.Main
From e8f1f33e46647138a5dc8965ce137f2f8cb1163a Mon Sep 17 00:00:00 2001
From: Alan Bateman
Date: Wed, 5 Feb 2014 10:20:30 +0000
Subject: [PATCH 160/181] 8031586: Check
jdk/src/*/native/com/sun/security/auth/module for pending JNI exceptions
Reviewed-by: vinnie, chegar
---
.../com/sun/security/auth/module/Solaris.c | 54 ++++-----
.../com/sun/security/auth/module/Unix.c | 8 +-
.../native/com/sun/security/auth/module/nt.c | 112 ++++++++----------
3 files changed, 82 insertions(+), 92 deletions(-)
diff --git a/jdk/src/solaris/native/com/sun/security/auth/module/Solaris.c b/jdk/src/solaris/native/com/sun/security/auth/module/Solaris.c
index 3e31e7ff125..2b8e2d2b11e 100644
--- a/jdk/src/solaris/native/com/sun/security/auth/module/Solaris.c
+++ b/jdk/src/solaris/native/com/sun/security/auth/module/Solaris.c
@@ -32,6 +32,12 @@
#include
#include
+static void throwIllegalArgumentException(JNIEnv *env, const char *msg) {
+ jclass clazz = (*env)->FindClass(env, "java/lang/IllegalArgumentException");
+ if (clazz != NULL)
+ (*env)->ThrowNew(env, clazz, msg);
+}
+
JNIEXPORT void JNICALL
Java_com_sun_security_auth_module_SolarisSystem_getSolarisInfo
(JNIEnv *env, jobject obj) {
@@ -51,7 +57,7 @@ Java_com_sun_security_auth_module_SolarisSystem_getSolarisInfo
if (groups == NULL) {
jclass cls = (*env)->FindClass(env,"java/lang/OutOfMemoryError");
- if(cls != 0)
+ if (cls != NULL)
(*env)->ThrowNew(env, cls, NULL);
return;
}
@@ -67,15 +73,13 @@ Java_com_sun_security_auth_module_SolarisSystem_getSolarisInfo
*/
fid = (*env)->GetFieldID(env, cls, "username", "Ljava/lang/String;");
if (fid == 0) {
- jclass newExcCls =
- (*env)->FindClass(env, "java/lang/IllegalArgumentException");
- if (newExcCls == 0) {
- /* Unable to find the new exception class, give up. */
- return;
- }
- (*env)->ThrowNew(env, newExcCls, "invalid field: username");
+ (*env)->ExceptionClear(env);
+ throwIllegalArgumentException(env, "invalid field: username");
+ return;
}
jstr = (*env)->NewStringUTF(env, pwd.pw_name);
+ if (jstr == NULL)
+ return;
(*env)->SetObjectField(env, obj, fid, jstr);
/*
@@ -83,13 +87,9 @@ Java_com_sun_security_auth_module_SolarisSystem_getSolarisInfo
*/
fid = (*env)->GetFieldID(env, cls, "uid", "J");
if (fid == 0) {
- jclass newExcCls =
- (*env)->FindClass(env, "java/lang/IllegalArgumentException");
- if (newExcCls == 0) {
- /* Unable to find the new exception class, give up. */
- return;
- }
- (*env)->ThrowNew(env, newExcCls, "invalid field: username");
+ (*env)->ExceptionClear(env);
+ throwIllegalArgumentException(env, "invalid field: uid");
+ return;
}
(*env)->SetLongField(env, obj, fid, pwd.pw_uid);
@@ -98,13 +98,9 @@ Java_com_sun_security_auth_module_SolarisSystem_getSolarisInfo
*/
fid = (*env)->GetFieldID(env, cls, "gid", "J");
if (fid == 0) {
- jclass newExcCls =
- (*env)->FindClass(env, "java/lang/IllegalArgumentException");
- if (newExcCls == 0) {
- /* Unable to find the new exception class, give up. */
- return;
- }
- (*env)->ThrowNew(env, newExcCls, "invalid field: username");
+ (*env)->ExceptionClear(env);
+ throwIllegalArgumentException(env, "invalid field: gid");
+ return;
}
(*env)->SetLongField(env, obj, fid, pwd.pw_gid);
@@ -113,17 +109,17 @@ Java_com_sun_security_auth_module_SolarisSystem_getSolarisInfo
*/
fid = (*env)->GetFieldID(env, cls, "groups", "[J");
if (fid == 0) {
- jclass newExcCls =
- (*env)->FindClass(env, "java/lang/IllegalArgumentException");
- if (newExcCls == 0) {
- /* Unable to find the new exception class, give up. */
- return;
- }
- (*env)->ThrowNew(env, newExcCls, "invalid field: username");
+ (*env)->ExceptionClear(env);
+ throwIllegalArgumentException(env, "invalid field: groups");
+ return;
}
jgroups = (*env)->NewLongArray(env, numSuppGroups);
+ if (jgroups == NULL)
+ return;
jgroupsAsArray = (*env)->GetLongArrayElements(env, jgroups, 0);
+ if (jgroupsAsArray == NULL)
+ return;
for (i = 0; i < numSuppGroups; i++)
jgroupsAsArray[i] = groups[i];
(*env)->ReleaseLongArrayElements(env, jgroups, jgroupsAsArray, 0);
diff --git a/jdk/src/solaris/native/com/sun/security/auth/module/Unix.c b/jdk/src/solaris/native/com/sun/security/auth/module/Unix.c
index 620e19bb236..188a389d666 100644
--- a/jdk/src/solaris/native/com/sun/security/auth/module/Unix.c
+++ b/jdk/src/solaris/native/com/sun/security/auth/module/Unix.c
@@ -60,7 +60,7 @@ Java_com_sun_security_auth_module_UnixSystem_getUnixInfo
groups = (gid_t *)calloc(numSuppGroups, sizeof(gid_t));
if (groups == NULL) {
jclass cls = (*env)->FindClass(env,"java/lang/OutOfMemoryError");
- if(cls != 0)
+ if (cls != NULL)
(*env)->ThrowNew(env, cls, NULL);
return;
}
@@ -90,6 +90,8 @@ Java_com_sun_security_auth_module_UnixSystem_getUnixInfo
goto cleanUpAndReturn;
jstr = (*env)->NewStringUTF(env, pwd->pw_name);
+ if (jstr == NULL)
+ goto cleanUpAndReturn;
(*env)->SetObjectField(env, obj, userNameID, jstr);
(*env)->SetLongField(env, obj, userID, pwd->pw_uid);
@@ -97,7 +99,11 @@ Java_com_sun_security_auth_module_UnixSystem_getUnixInfo
(*env)->SetLongField(env, obj, groupID, pwd->pw_gid);
jgroups = (*env)->NewLongArray(env, numSuppGroups);
+ if (jgroups == NULL)
+ goto cleanUpAndReturn;
jgroupsAsArray = (*env)->GetLongArrayElements(env, jgroups, 0);
+ if (jgroupsAsArray == NULL)
+ goto cleanUpAndReturn;
for (i = 0; i < numSuppGroups; i++)
jgroupsAsArray[i] = groups[i];
(*env)->ReleaseLongArrayElements(env, jgroups, jgroupsAsArray, 0);
diff --git a/jdk/src/windows/native/com/sun/security/auth/module/nt.c b/jdk/src/windows/native/com/sun/security/auth/module/nt.c
index 64ef356e1dc..038ceb14f95 100644
--- a/jdk/src/windows/native/com/sun/security/auth/module/nt.c
+++ b/jdk/src/windows/native/com/sun/security/auth/module/nt.c
@@ -43,6 +43,12 @@ BOOL getImpersonationToken(PHANDLE impersonationToken);
BOOL getTextualSid(PSID pSid, LPTSTR TextualSid, LPDWORD lpdwBufferLen);
void DisplayErrorText(DWORD dwLastError);
+static void throwIllegalArgumentException(JNIEnv *env, const char *msg) {
+ jclass clazz = (*env)->FindClass(env, "java/lang/IllegalArgumentException");
+ if (clazz != NULL)
+ (*env)->ThrowNew(env, clazz, msg);
+}
+
JNIEXPORT jlong JNICALL
Java_com_sun_security_auth_module_NTSystem_getImpersonationToken0
(JNIEnv *env, jobject obj) {
@@ -62,7 +68,6 @@ Java_com_sun_security_auth_module_NTSystem_getCurrent
long i, j = 0;
HANDLE tokenHandle = INVALID_HANDLE_VALUE;
- BOOL systemError = FALSE;
LPTSTR userName = NULL; // user name
LPTSTR userSid = NULL; // user sid
@@ -116,70 +121,59 @@ Java_com_sun_security_auth_module_NTSystem_getCurrent
fid = (*env)->GetFieldID(env, cls, "userName", "Ljava/lang/String;");
if (fid == 0) {
- jclass newExcCls =
- (*env)->FindClass(env, "java/lang/IllegalArgumentException");
- if (newExcCls == 0) {
- // Unable to find exception class
- systemError = TRUE;
- goto out;
- }
- (*env)->ThrowNew(env, newExcCls, "invalid field: userName");
+ (*env)->ExceptionClear(env);
+ throwIllegalArgumentException(env, "invalid field: userName");
+ goto cleanup;
}
jstr = (*env)->NewStringUTF(env, userName);
+ if (jstr == NULL)
+ goto cleanup;
(*env)->SetObjectField(env, obj, fid, jstr);
fid = (*env)->GetFieldID(env, cls, "userSID", "Ljava/lang/String;");
if (fid == 0) {
- jclass newExcCls =
- (*env)->FindClass(env, "java/lang/IllegalArgumentException");
- if (newExcCls == 0) {
- systemError = TRUE;
- goto out;
- }
- (*env)->ThrowNew(env, newExcCls, "invalid field: userSID");
+ (*env)->ExceptionClear(env);
+ throwIllegalArgumentException(env, "invalid field: userSID");
+ goto cleanup;
}
jstr = (*env)->NewStringUTF(env, userSid);
+ if (jstr == NULL)
+ goto cleanup;
(*env)->SetObjectField(env, obj, fid, jstr);
fid = (*env)->GetFieldID(env, cls, "domain", "Ljava/lang/String;");
if (fid == 0) {
- jclass newExcCls =
- (*env)->FindClass(env, "java/lang/IllegalArgumentException");
- if (newExcCls == 0) {
- systemError = TRUE;
- goto out;
- }
- (*env)->ThrowNew(env, newExcCls, "invalid field: domain");
+ (*env)->ExceptionClear(env);
+ throwIllegalArgumentException(env, "invalid field: domain");
+ goto cleanup;
}
jstr = (*env)->NewStringUTF(env, domainName);
+ if (jstr == NULL)
+ goto cleanup;
(*env)->SetObjectField(env, obj, fid, jstr);
if (domainSid != NULL) {
fid = (*env)->GetFieldID(env, cls, "domainSID", "Ljava/lang/String;");
if (fid == 0) {
- jclass newExcCls =
- (*env)->FindClass(env, "java/lang/IllegalArgumentException");
- if (newExcCls == 0) {
- systemError = TRUE;
- goto out;
- }
- (*env)->ThrowNew(env, newExcCls, "invalid field: domainSID");
+ (*env)->ExceptionClear(env);
+ throwIllegalArgumentException(env, "invalid field: domainSID");
+ goto cleanup;
}
jstr = (*env)->NewStringUTF(env, domainSid);
+ if (jstr == NULL)
+ goto cleanup;
(*env)->SetObjectField(env, obj, fid, jstr);
}
fid = (*env)->GetFieldID(env, cls, "primaryGroupID", "Ljava/lang/String;");
if (fid == 0) {
- jclass newExcCls =
- (*env)->FindClass(env, "java/lang/IllegalArgumentException");
- if (newExcCls == 0) {
- systemError = TRUE;
- goto out;
- }
- (*env)->ThrowNew(env, newExcCls, "invalid field: PrimaryGroupID");
+ (*env)->ExceptionClear(env);
+ throwIllegalArgumentException(env, "invalid field: PrimaryGroupID");
+ goto cleanup;
}
jstr = (*env)->NewStringUTF(env, primaryGroup);
+ if (jstr == NULL)
+ goto cleanup;
(*env)->SetObjectField(env, obj, fid, jstr);
// primary group may or may not be part of supplementary groups
@@ -204,19 +198,14 @@ Java_com_sun_security_auth_module_NTSystem_getCurrent
fid = (*env)->GetFieldID(env, cls, "groupIDs", "[Ljava/lang/String;");
if (fid == 0) {
- jclass newExcCls =
- (*env)->FindClass(env, "java/lang/IllegalArgumentException");
- if (newExcCls == 0) {
- systemError = TRUE;
- goto out;
- }
- (*env)->ThrowNew(env, newExcCls, "invalid field: groupIDs");
+ (*env)->ExceptionClear(env);
+ throwIllegalArgumentException(env, "groupIDs");
+ goto cleanup;
}
stringClass = (*env)->FindClass(env, "java/lang/String");
- if (stringClass == 0) {
- goto out;
- }
+ if (stringClass == NULL)
+ goto cleanup;
if (pIndex == -1) {
// primary group not in groups array
@@ -226,6 +215,8 @@ Java_com_sun_security_auth_module_NTSystem_getCurrent
// allocate one less array entry and do not add into new array
jgroups = (*env)->NewObjectArray(env, numGroups-1, stringClass, 0);
}
+ if (jgroups == NULL)
+ goto cleanup;
for (i = 0, j = 0; i < (long)numGroups; i++) {
if (pIndex == i) {
@@ -233,12 +224,14 @@ Java_com_sun_security_auth_module_NTSystem_getCurrent
continue;
}
jstr = (*env)->NewStringUTF(env, groups[i]);
+ if (jstr == NULL)
+ goto cleanup;
(*env)->SetObjectArrayElement(env, jgroups, j++, jstr);
}
(*env)->SetObjectField(env, obj, fid, jgroups);
}
-out:
+cleanup:
if (userName != NULL) {
HeapFree(GetProcessHeap(), 0, userName);
}
@@ -264,11 +257,6 @@ out:
}
CloseHandle(tokenHandle);
- if (systemError && debug) {
- printf(" [getCurrent] System Error: ");
- printf("unable to find IllegalArgumentException class\n");
- }
-
return;
}
@@ -336,7 +324,7 @@ BOOL getUser(HANDLE tokenHandle, LPTSTR *userName,
DisplayErrorText(GetLastError());
}
error = TRUE;
- goto out;
+ goto cleanup;
}
if (debug) {
@@ -369,7 +357,7 @@ BOOL getUser(HANDLE tokenHandle, LPTSTR *userName,
DisplayErrorText(GetLastError());
}
error = TRUE;
- goto out;
+ goto cleanup;
}
if (debug) {
@@ -411,7 +399,7 @@ BOOL getUser(HANDLE tokenHandle, LPTSTR *userName,
DisplayErrorText(GetLastError());
}
// ok not to have a domain SID (no error)
- goto out;
+ goto cleanup;
}
bufSize = 0;
@@ -422,7 +410,7 @@ BOOL getUser(HANDLE tokenHandle, LPTSTR *userName,
printf(" [getUser] domainSid: %s\n", *domainSid);
}
-out:
+cleanup:
if (tokenUserInfo != NULL) {
HeapFree(GetProcessHeap(), 0, tokenUserInfo);
}
@@ -466,7 +454,7 @@ BOOL getPrimaryGroup(HANDLE tokenHandle, LPTSTR *primaryGroup) {
DisplayErrorText(GetLastError());
}
error = TRUE;
- goto out;
+ goto cleanup;
}
if (debug) {
@@ -481,7 +469,7 @@ BOOL getPrimaryGroup(HANDLE tokenHandle, LPTSTR *primaryGroup) {
printf(" [getPrimaryGroup] primaryGroup: %s\n", *primaryGroup);
}
-out:
+cleanup:
if (tokenGroupInfo != NULL) {
HeapFree(GetProcessHeap(), 0, tokenGroupInfo);
}
@@ -519,7 +507,7 @@ BOOL getGroups(HANDLE tokenHandle, PDWORD numGroups, LPTSTR **groups) {
DisplayErrorText(GetLastError());
}
error = TRUE;
- goto out;
+ goto cleanup;
}
if (debug) {
@@ -528,7 +516,7 @@ BOOL getGroups(HANDLE tokenHandle, PDWORD numGroups, LPTSTR **groups) {
if (tokenGroupInfo->GroupCount == 0) {
// no groups
- goto out;
+ goto cleanup;
}
// return group info
@@ -545,7 +533,7 @@ BOOL getGroups(HANDLE tokenHandle, PDWORD numGroups, LPTSTR **groups) {
}
}
-out:
+cleanup:
if (tokenGroupInfo != NULL) {
HeapFree(GetProcessHeap(), 0, tokenGroupInfo);
}
From edcca42faa4f34016cfe1f6864cef5232345cb0f Mon Sep 17 00:00:00 2001
From: Magnus Ihse Bursie
Date: Wed, 5 Feb 2014 11:32:27 +0100
Subject: [PATCH 161/181] 8033532: Freetype include statement must come before
X11 include
Reviewed-by: erikj, drchase
---
jdk/make/lib/Awt2dLibraries.gmk | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/jdk/make/lib/Awt2dLibraries.gmk b/jdk/make/lib/Awt2dLibraries.gmk
index f101b87cc79..a1263ba5775 100644
--- a/jdk/make/lib/Awt2dLibraries.gmk
+++ b/jdk/make/lib/Awt2dLibraries.gmk
@@ -1,5 +1,5 @@
#
-# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -792,9 +792,9 @@ else
endif
BUILD_LIBFONTMANAGER_CFLAGS_COMMON := \
+ $(FONT_HEADERS) \
$(X_CFLAGS) \
-DLE_STANDALONE -DHEADLESS \
- $(FONT_HEADERS) \
-I$(JDK_TOPDIR)/src/share/native/sun/font \
-I$(JDK_TOPDIR)/src/share/native/sun/font/layout \
-I$(JDK_TOPDIR)/src/share/native/sun/awt/image/cvutils \
From 329369ddf68c7515ff59ae91179dd3b9970b83fa Mon Sep 17 00:00:00 2001
From: Erik Joelsson
Date: Wed, 5 Feb 2014 14:21:10 +0100
Subject: [PATCH 162/181] 8033680: Profiles build broken
Reviewed-by: alanb
---
jdk/make/Tools.gmk | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/jdk/make/Tools.gmk b/jdk/make/Tools.gmk
index 2336ed4ce98..661bf3e3b03 100644
--- a/jdk/make/Tools.gmk
+++ b/jdk/make/Tools.gmk
@@ -122,12 +122,12 @@ TOOL_OSX_TOBIN = $(JAVA) -Djava.awt.headless=true -cp $(JDK_OUTPUTDIR)/btclasses
TOOL_CLDRCONVERTER = $(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
build.tools.cldrconverter.CLDRConverter
-TOOL_CHECKDEPS = $(JAVA) -Xbootclasspath/p:$(LANGTOOLS_OUTPUTDIR)/dist/bootstrap/lib/javac.jar \
+TOOL_CHECKDEPS = $(JAVA) -Xbootclasspath/p:$(INTERIM_LANGTOOLS_JAR) \
-cp $(JDK_OUTPUTDIR)/btclasses:$(JDK_OUTPUTDIR) \
build.tools.deps.CheckDeps
TOOL_ADDTORESTRICTEDPKGS=$(JAVA) -cp $(JDK_OUTPUTDIR)/btclasses \
- build.tools.addtorestrictedpkgs.AddToRestrictedPkgs
+ build.tools.addtorestrictedpkgs.AddToRestrictedPkgs
##########################################################################################
From 319dd343be2cd20269ed9de51d519a974991a1dc Mon Sep 17 00:00:00 2001
From: Chris Hegarty
Date: Wed, 5 Feb 2014 14:14:46 +0000
Subject: [PATCH 163/181] 8033689: PlainDatagramSocketImpl missing returns
after throwing an exception
Reviewed-by: michaelm
---
jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c b/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c
index 3df46c85171..ac4a8385e9a 100644
--- a/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c
+++ b/jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c
@@ -506,6 +506,7 @@ Java_java_net_PlainDatagramSocketImpl_peek(JNIEnv *env, jobject this,
}
if (IS_NULL(addressObj)) {
JNU_ThrowNullPointerException(env, "Null address in peek()");
+ return -1;
}
if (timeout) {
int ret = NET_Timeout(fd, timeout);
@@ -1419,7 +1420,7 @@ Java_java_net_PlainDatagramSocketImpl_socketSetOption(JNIEnv *env,
default :
JNU_ThrowByName(env, JNU_JAVANETPKG "SocketException",
"Socket option not supported by PlainDatagramSocketImp");
- break;
+ return;
}
@@ -1833,6 +1834,7 @@ Java_java_net_PlainDatagramSocketImpl_setTimeToLive(JNIEnv *env, jobject this,
#ifdef AF_INET6
#ifdef __linux__
setTTL(env, fd, ttl);
+ JNU_CHECK_EXCEPTION(env);
if (ipv6_available()) {
setHopLimit(env, fd, ttl);
}
@@ -2120,6 +2122,7 @@ static void mcast_join_leave(JNIEnv *env, jobject this,
else
NET_ThrowCurrent(env, "setsockopt IP_DROP_MEMBERSHIP failed");
}
+ return;
}
}
From adeedfee16f5c76a4e68a667d47552de0adede36 Mon Sep 17 00:00:00 2001
From: Vinnie Ryan
Date: Wed, 5 Feb 2014 15:58:27 +0000
Subject: [PATCH 164/181] 8011983: [parfait] False positive: unportable format
string argument mismatch in
jdk/src/windows/native/com/sun/security/auth/module/nt.c
Reviewed-by: alanb
---
.../native/com/sun/security/auth/module/nt.c | 117 ++++++++++--------
1 file changed, 65 insertions(+), 52 deletions(-)
diff --git a/jdk/src/windows/native/com/sun/security/auth/module/nt.c b/jdk/src/windows/native/com/sun/security/auth/module/nt.c
index 038ceb14f95..72c0ef84f33 100644
--- a/jdk/src/windows/native/com/sun/security/auth/module/nt.c
+++ b/jdk/src/windows/native/com/sun/security/auth/module/nt.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -43,12 +43,6 @@ BOOL getImpersonationToken(PHANDLE impersonationToken);
BOOL getTextualSid(PSID pSid, LPTSTR TextualSid, LPDWORD lpdwBufferLen);
void DisplayErrorText(DWORD dwLastError);
-static void throwIllegalArgumentException(JNIEnv *env, const char *msg) {
- jclass clazz = (*env)->FindClass(env, "java/lang/IllegalArgumentException");
- if (clazz != NULL)
- (*env)->ThrowNew(env, clazz, msg);
-}
-
JNIEXPORT jlong JNICALL
Java_com_sun_security_auth_module_NTSystem_getImpersonationToken0
(JNIEnv *env, jobject obj) {
@@ -68,6 +62,7 @@ Java_com_sun_security_auth_module_NTSystem_getCurrent
long i, j = 0;
HANDLE tokenHandle = INVALID_HANDLE_VALUE;
+ BOOL systemError = FALSE;
LPTSTR userName = NULL; // user name
LPTSTR userSid = NULL; // user sid
@@ -121,59 +116,70 @@ Java_com_sun_security_auth_module_NTSystem_getCurrent
fid = (*env)->GetFieldID(env, cls, "userName", "Ljava/lang/String;");
if (fid == 0) {
- (*env)->ExceptionClear(env);
- throwIllegalArgumentException(env, "invalid field: userName");
- goto cleanup;
+ jclass newExcCls =
+ (*env)->FindClass(env, "java/lang/IllegalArgumentException");
+ if (newExcCls == 0) {
+ // Unable to find exception class
+ systemError = TRUE;
+ goto out;
+ }
+ (*env)->ThrowNew(env, newExcCls, "invalid field: userName");
}
jstr = (*env)->NewStringUTF(env, userName);
- if (jstr == NULL)
- goto cleanup;
(*env)->SetObjectField(env, obj, fid, jstr);
fid = (*env)->GetFieldID(env, cls, "userSID", "Ljava/lang/String;");
if (fid == 0) {
- (*env)->ExceptionClear(env);
- throwIllegalArgumentException(env, "invalid field: userSID");
- goto cleanup;
+ jclass newExcCls =
+ (*env)->FindClass(env, "java/lang/IllegalArgumentException");
+ if (newExcCls == 0) {
+ systemError = TRUE;
+ goto out;
+ }
+ (*env)->ThrowNew(env, newExcCls, "invalid field: userSID");
}
jstr = (*env)->NewStringUTF(env, userSid);
- if (jstr == NULL)
- goto cleanup;
(*env)->SetObjectField(env, obj, fid, jstr);
fid = (*env)->GetFieldID(env, cls, "domain", "Ljava/lang/String;");
if (fid == 0) {
- (*env)->ExceptionClear(env);
- throwIllegalArgumentException(env, "invalid field: domain");
- goto cleanup;
+ jclass newExcCls =
+ (*env)->FindClass(env, "java/lang/IllegalArgumentException");
+ if (newExcCls == 0) {
+ systemError = TRUE;
+ goto out;
+ }
+ (*env)->ThrowNew(env, newExcCls, "invalid field: domain");
}
jstr = (*env)->NewStringUTF(env, domainName);
- if (jstr == NULL)
- goto cleanup;
(*env)->SetObjectField(env, obj, fid, jstr);
if (domainSid != NULL) {
fid = (*env)->GetFieldID(env, cls, "domainSID", "Ljava/lang/String;");
if (fid == 0) {
- (*env)->ExceptionClear(env);
- throwIllegalArgumentException(env, "invalid field: domainSID");
- goto cleanup;
+ jclass newExcCls =
+ (*env)->FindClass(env, "java/lang/IllegalArgumentException");
+ if (newExcCls == 0) {
+ systemError = TRUE;
+ goto out;
+ }
+ (*env)->ThrowNew(env, newExcCls, "invalid field: domainSID");
}
jstr = (*env)->NewStringUTF(env, domainSid);
- if (jstr == NULL)
- goto cleanup;
(*env)->SetObjectField(env, obj, fid, jstr);
}
fid = (*env)->GetFieldID(env, cls, "primaryGroupID", "Ljava/lang/String;");
if (fid == 0) {
- (*env)->ExceptionClear(env);
- throwIllegalArgumentException(env, "invalid field: PrimaryGroupID");
- goto cleanup;
+ jclass newExcCls =
+ (*env)->FindClass(env, "java/lang/IllegalArgumentException");
+ if (newExcCls == 0) {
+ systemError = TRUE;
+ goto out;
+ }
+ (*env)->ThrowNew(env, newExcCls, "invalid field: PrimaryGroupID");
}
jstr = (*env)->NewStringUTF(env, primaryGroup);
- if (jstr == NULL)
- goto cleanup;
(*env)->SetObjectField(env, obj, fid, jstr);
// primary group may or may not be part of supplementary groups
@@ -198,14 +204,19 @@ Java_com_sun_security_auth_module_NTSystem_getCurrent
fid = (*env)->GetFieldID(env, cls, "groupIDs", "[Ljava/lang/String;");
if (fid == 0) {
- (*env)->ExceptionClear(env);
- throwIllegalArgumentException(env, "groupIDs");
- goto cleanup;
+ jclass newExcCls =
+ (*env)->FindClass(env, "java/lang/IllegalArgumentException");
+ if (newExcCls == 0) {
+ systemError = TRUE;
+ goto out;
+ }
+ (*env)->ThrowNew(env, newExcCls, "invalid field: groupIDs");
}
stringClass = (*env)->FindClass(env, "java/lang/String");
- if (stringClass == NULL)
- goto cleanup;
+ if (stringClass == 0) {
+ goto out;
+ }
if (pIndex == -1) {
// primary group not in groups array
@@ -215,8 +226,6 @@ Java_com_sun_security_auth_module_NTSystem_getCurrent
// allocate one less array entry and do not add into new array
jgroups = (*env)->NewObjectArray(env, numGroups-1, stringClass, 0);
}
- if (jgroups == NULL)
- goto cleanup;
for (i = 0, j = 0; i < (long)numGroups; i++) {
if (pIndex == i) {
@@ -224,14 +233,12 @@ Java_com_sun_security_auth_module_NTSystem_getCurrent
continue;
}
jstr = (*env)->NewStringUTF(env, groups[i]);
- if (jstr == NULL)
- goto cleanup;
(*env)->SetObjectArrayElement(env, jgroups, j++, jstr);
}
(*env)->SetObjectField(env, obj, fid, jgroups);
}
-cleanup:
+out:
if (userName != NULL) {
HeapFree(GetProcessHeap(), 0, userName);
}
@@ -257,6 +264,11 @@ cleanup:
}
CloseHandle(tokenHandle);
+ if (systemError && debug) {
+ printf(" [getCurrent] System Error: ");
+ printf("unable to find IllegalArgumentException class\n");
+ }
+
return;
}
@@ -324,7 +336,7 @@ BOOL getUser(HANDLE tokenHandle, LPTSTR *userName,
DisplayErrorText(GetLastError());
}
error = TRUE;
- goto cleanup;
+ goto out;
}
if (debug) {
@@ -357,7 +369,7 @@ BOOL getUser(HANDLE tokenHandle, LPTSTR *userName,
DisplayErrorText(GetLastError());
}
error = TRUE;
- goto cleanup;
+ goto out;
}
if (debug) {
@@ -399,7 +411,7 @@ BOOL getUser(HANDLE tokenHandle, LPTSTR *userName,
DisplayErrorText(GetLastError());
}
// ok not to have a domain SID (no error)
- goto cleanup;
+ goto out;
}
bufSize = 0;
@@ -410,7 +422,7 @@ BOOL getUser(HANDLE tokenHandle, LPTSTR *userName,
printf(" [getUser] domainSid: %s\n", *domainSid);
}
-cleanup:
+out:
if (tokenUserInfo != NULL) {
HeapFree(GetProcessHeap(), 0, tokenUserInfo);
}
@@ -454,7 +466,7 @@ BOOL getPrimaryGroup(HANDLE tokenHandle, LPTSTR *primaryGroup) {
DisplayErrorText(GetLastError());
}
error = TRUE;
- goto cleanup;
+ goto out;
}
if (debug) {
@@ -469,7 +481,7 @@ BOOL getPrimaryGroup(HANDLE tokenHandle, LPTSTR *primaryGroup) {
printf(" [getPrimaryGroup] primaryGroup: %s\n", *primaryGroup);
}
-cleanup:
+out:
if (tokenGroupInfo != NULL) {
HeapFree(GetProcessHeap(), 0, tokenGroupInfo);
}
@@ -507,7 +519,7 @@ BOOL getGroups(HANDLE tokenHandle, PDWORD numGroups, LPTSTR **groups) {
DisplayErrorText(GetLastError());
}
error = TRUE;
- goto cleanup;
+ goto out;
}
if (debug) {
@@ -516,7 +528,7 @@ BOOL getGroups(HANDLE tokenHandle, PDWORD numGroups, LPTSTR **groups) {
if (tokenGroupInfo->GroupCount == 0) {
// no groups
- goto cleanup;
+ goto out;
}
// return group info
@@ -533,7 +545,7 @@ BOOL getGroups(HANDLE tokenHandle, PDWORD numGroups, LPTSTR **groups) {
}
}
-cleanup:
+out:
if (tokenGroupInfo != NULL) {
HeapFree(GetProcessHeap(), 0, tokenGroupInfo);
}
@@ -577,7 +589,8 @@ BOOL getImpersonationToken(PHANDLE impersonationToken) {
CloseHandle(dupToken);
if (debug) {
- printf(" [getImpersonationToken] token = %d\n", *impersonationToken);
+ printf(" [getImpersonationToken] token = %p\n",
+ (void *)*impersonationToken);
}
return TRUE;
}
From 5804adca86a5038523f22ef2bfbd093d2a4560d9 Mon Sep 17 00:00:00 2001
From: Roger Riggs
Date: Wed, 5 Feb 2014 10:59:53 -0500
Subject: [PATCH 165/181] 8030993: Check jdk/src/share/native/common/jni_util.c
for JNI pending exceptions
Check for pending exceptions
Reviewed-by: alanb, chegar
---
jdk/src/share/native/common/jni_util.c | 51 ++++++++++++++++++++------
1 file changed, 39 insertions(+), 12 deletions(-)
diff --git a/jdk/src/share/native/common/jni_util.c b/jdk/src/share/native/common/jni_util.c
index 3ef707f6079..de3509b7a59 100644
--- a/jdk/src/share/native/common/jni_util.c
+++ b/jdk/src/share/native/common/jni_util.c
@@ -626,10 +626,14 @@ initializeEncoding(JNIEnv *env)
{
jstring propname = 0;
jstring enc = 0;
+ jclass strClazz = NULL;
if ((*env)->EnsureLocalCapacity(env, 3) < 0)
return;
+ strClazz = JNU_ClassString(env);
+ CHECK_NULL(strClazz);
+
propname = (*env)->NewStringUTF(env, "sun.jnu.encoding");
if (propname) {
jboolean exc;
@@ -683,9 +687,10 @@ initializeEncoding(JNIEnv *env)
(*env)->DeleteLocalRef(env, enc);
/* Initialize method-id cache */
- String_getBytes_ID = (*env)->GetMethodID(env, JNU_ClassString(env),
+ String_getBytes_ID = (*env)->GetMethodID(env, strClazz,
"getBytes", "(Ljava/lang/String;)[B");
- String_init_ID = (*env)->GetMethodID(env, JNU_ClassString(env),
+ CHECK_NULL(String_getBytes_ID);
+ String_init_ID = (*env)->GetMethodID(env, strClazz,
"", "([BLjava/lang/String;)V");
}
@@ -720,8 +725,10 @@ JNU_NewStringPlatform(JNIEnv *env, const char *str)
jbyteArray hab = 0;
int len;
- if (fastEncoding == NO_ENCODING_YET)
+ if (fastEncoding == NO_ENCODING_YET) {
initializeEncoding(env);
+ JNU_CHECK_EXCEPTION_RETURN(env, NULL);
+ }
if ((fastEncoding == FAST_8859_1) || (fastEncoding == NO_ENCODING_YET))
return newString8859_1(env, str);
@@ -736,9 +743,11 @@ JNU_NewStringPlatform(JNIEnv *env, const char *str)
len = (int)strlen(str);
hab = (*env)->NewByteArray(env, len);
if (hab != 0) {
+ jclass strClazz = JNU_ClassString(env);
+ CHECK_NULL_RETURN(strClazz, 0);
(*env)->SetByteArrayRegion(env, hab, 0, len, (jbyte *)str);
if (jnuEncodingSupported(env)) {
- result = (*env)->NewObject(env, JNU_ClassString(env),
+ result = (*env)->NewObject(env, strClazz,
String_init_ID, hab, jnuEncoding);
} else {
/*If the encoding specified in sun.jnu.encoding is not endorsed
@@ -747,9 +756,11 @@ JNU_NewStringPlatform(JNIEnv *env, const char *str)
StringCoding class will pickup the iso-8859-1 as the fallback
converter for us.
*/
- jmethodID mid = (*env)->GetMethodID(env, JNU_ClassString(env),
+ jmethodID mid = (*env)->GetMethodID(env, strClazz,
"", "([B)V");
- result = (*env)->NewObject(env, JNU_ClassString(env), mid, hab);
+ if (mid != NULL) {
+ result = (*env)->NewObject(env, strClazz, mid, hab);
+ }
}
(*env)->DeleteLocalRef(env, hab);
return result;
@@ -775,8 +786,10 @@ JNU_GetStringPlatformChars(JNIEnv *env, jstring jstr, jboolean *isCopy)
if (isCopy)
*isCopy = JNI_TRUE;
- if (fastEncoding == NO_ENCODING_YET)
+ if (fastEncoding == NO_ENCODING_YET) {
initializeEncoding(env);
+ JNU_CHECK_EXCEPTION_RETURN(env, 0);
+ }
if ((fastEncoding == FAST_8859_1) || (fastEncoding == NO_ENCODING_YET))
return getString8859_1Chars(env, jstr);
@@ -791,9 +804,14 @@ JNU_GetStringPlatformChars(JNIEnv *env, jstring jstr, jboolean *isCopy)
if (jnuEncodingSupported(env)) {
hab = (*env)->CallObjectMethod(env, jstr, String_getBytes_ID, jnuEncoding);
} else {
- jmethodID mid = (*env)->GetMethodID(env, JNU_ClassString(env),
- "getBytes", "()[B");
- hab = (*env)->CallObjectMethod(env, jstr, mid);
+ jmethodID mid;
+ jclass strClazz = JNU_ClassString(env);
+ CHECK_NULL_RETURN(strClazz, 0);
+ mid = (*env)->GetMethodID(env, strClazz,
+ "getBytes", "()[B");
+ if (mid != NULL) {
+ hab = (*env)->CallObjectMethod(env, jstr, mid);
+ }
}
if (!(*env)->ExceptionCheck(env)) {
@@ -842,6 +860,7 @@ JNU_ClassString(JNIEnv *env)
if ((*env)->EnsureLocalCapacity(env, 1) < 0)
return 0;
c = (*env)->FindClass(env, "java/lang/String");
+ CHECK_NULL_RETURN(c, NULL);
cls = (*env)->NewGlobalRef(env, c);
(*env)->DeleteLocalRef(env, c);
}
@@ -857,6 +876,7 @@ JNU_ClassClass(JNIEnv *env)
if ((*env)->EnsureLocalCapacity(env, 1) < 0)
return 0;
c = (*env)->FindClass(env, "java/lang/Class");
+ CHECK_NULL_RETURN(c, NULL);
cls = (*env)->NewGlobalRef(env, c);
(*env)->DeleteLocalRef(env, c);
}
@@ -872,6 +892,7 @@ JNU_ClassObject(JNIEnv *env)
if ((*env)->EnsureLocalCapacity(env, 1) < 0)
return 0;
c = (*env)->FindClass(env, "java/lang/Object");
+ CHECK_NULL_RETURN(c, NULL);
cls = (*env)->NewGlobalRef(env, c);
(*env)->DeleteLocalRef(env, c);
}
@@ -887,6 +908,7 @@ JNU_ClassThrowable(JNIEnv *env)
if ((*env)->EnsureLocalCapacity(env, 1) < 0)
return 0;
c = (*env)->FindClass(env, "java/lang/Throwable");
+ CHECK_NULL_RETURN(c, NULL);
cls = (*env)->NewGlobalRef(env, c);
(*env)->DeleteLocalRef(env, c);
}
@@ -936,8 +958,11 @@ JNU_Equals(JNIEnv *env, jobject object1, jobject object2)
{
static jmethodID mid = NULL;
if (mid == NULL) {
- mid = (*env)->GetMethodID(env, JNU_ClassObject(env), "equals",
+ jclass objClazz = JNU_ClassObject(env);
+ CHECK_NULL_RETURN(objClazz, JNI_FALSE);
+ mid = (*env)->GetMethodID(env, objClazz, "equals",
"(Ljava/lang/Object;)Z");
+ CHECK_NULL_RETURN(mid, JNI_FALSE);
}
return (*env)->CallBooleanMethod(env, object1, mid, object2);
}
@@ -1039,7 +1064,9 @@ JNU_PrintClass(JNIEnv *env, char* hdr, jobject object)
} else {
jclass cls = (*env)->GetObjectClass(env, object);
jstring clsName = JNU_ToString(env, cls);
- JNU_PrintString(env, hdr, clsName);
+ if (clsName == NULL) {
+ JNU_PrintString(env, hdr, clsName);
+ }
(*env)->DeleteLocalRef(env, cls);
(*env)->DeleteLocalRef(env, clsName);
}
From 8ca6ca944ba0851d2ea5d843e312eff2be13af9e Mon Sep 17 00:00:00 2001
From: Roger Riggs
Date: Wed, 5 Feb 2014 10:59:55 -0500
Subject: [PATCH 166/181] 8032749: Typo in java.time.Clock 8032888: Error
message typo in TemporalAccessor 8032558: Instant spec includes incorrect
assertion wrt valid range 8032494: DateTimeFormatter spec includes irrelevent
detail on parsing pattern
Update to fix typos, remove extraneous text
Reviewed-by: darcy, lancea, sherman, scolebourne
---
jdk/src/share/classes/java/time/Clock.java | 2 +-
jdk/src/share/classes/java/time/Instant.java | 5 -----
.../share/classes/java/time/format/DateTimeFormatter.java | 5 +----
.../share/classes/java/time/temporal/TemporalAccessor.java | 2 +-
4 files changed, 3 insertions(+), 11 deletions(-)
diff --git a/jdk/src/share/classes/java/time/Clock.java b/jdk/src/share/classes/java/time/Clock.java
index cd90822925f..b1127848bed 100644
--- a/jdk/src/share/classes/java/time/Clock.java
+++ b/jdk/src/share/classes/java/time/Clock.java
@@ -104,7 +104,7 @@ import java.util.TimeZone;
* resolution clock if one is available.
*
* @implSpec
- * This abstract class must be implemented with care to ensure other operate correctly.
+ * This abstract class must be implemented with care to ensure other classes operate correctly.
* All implementations that can be instantiated must be final, immutable and thread-safe.
*
* The principal methods are defined to allow the throwing of an exception.
diff --git a/jdk/src/share/classes/java/time/Instant.java b/jdk/src/share/classes/java/time/Instant.java
index 312e2d4159d..1b944a50c3d 100644
--- a/jdk/src/share/classes/java/time/Instant.java
+++ b/jdk/src/share/classes/java/time/Instant.java
@@ -100,11 +100,6 @@ import java.util.Objects;
* This class models a single instantaneous point on the time-line.
* This might be used to record event time-stamps in the application.
*
- * For practicality, the instant is stored with some constraints.
- * The measurable time-line is restricted to the number of seconds that can be held
- * in a {@code long}. This is greater than the current estimated age of the universe.
- * The instant is stored to nanosecond resolution.
- *
* The range of an instant requires the storage of a number larger than a {@code long}.
* To achieve this, the class stores a {@code long} representing epoch-seconds and an
* {@code int} representing nanosecond-of-second, which will always be between 0 and 999,999,999.
diff --git a/jdk/src/share/classes/java/time/format/DateTimeFormatter.java b/jdk/src/share/classes/java/time/format/DateTimeFormatter.java
index 4109d20e590..39d91986f86 100644
--- a/jdk/src/share/classes/java/time/format/DateTimeFormatter.java
+++ b/jdk/src/share/classes/java/time/format/DateTimeFormatter.java
@@ -344,10 +344,7 @@ import java.util.Set;
* Fraction : Outputs the nano-of-second field as a fraction-of-second.
* The nano-of-second value has nine digits, thus the count of pattern letters
* is from 1 to 9. If it is less than 9, then the nano-of-second value is
- * truncated, with only the most significant digits being output. When parsing
- * in strict mode, the number of parsed digits must match the count of pattern
- * letters. When parsing in lenient mode, the number of parsed digits must be at
- * least the count of pattern letters, up to 9 digits.
+ * truncated, with only the most significant digits being output.
*
* Year : The count of letters determines the minimum field width below
* which padding is used. If the count of letters is two, then a
diff --git a/jdk/src/share/classes/java/time/temporal/TemporalAccessor.java b/jdk/src/share/classes/java/time/temporal/TemporalAccessor.java
index 081bbbaec32..a6133e18837 100644
--- a/jdk/src/share/classes/java/time/temporal/TemporalAccessor.java
+++ b/jdk/src/share/classes/java/time/temporal/TemporalAccessor.java
@@ -217,7 +217,7 @@ public interface TemporalAccessor {
default int get(TemporalField field) {
ValueRange range = range(field);
if (range.isIntValue() == false) {
- throw new UnsupportedTemporalTypeException("Invalid field " + field + " + for get() method, use getLong() instead");
+ throw new UnsupportedTemporalTypeException("Invalid field " + field + " for get() method, use getLong() instead");
}
long value = getLong(field);
if (range.isValidValue(value) == false) {
From 650470b407f3fdd786597a868beff5bddfbd1fea Mon Sep 17 00:00:00 2001
From: Erik Joelsson
Date: Wed, 5 Feb 2014 17:24:03 +0100
Subject: [PATCH 167/181] 8033210: Intermittent build failure: jdk8 fails on
win_i586 in jdk/make (p11_convert.c(67) : Cannot open
'sun_security_pkcs11_wrapper_PKCS11.h)
Reviewed-by: ihse, tbell
---
make/common/JavaCompilation.gmk | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/make/common/JavaCompilation.gmk b/make/common/JavaCompilation.gmk
index fe4ff3e5eb1..c2dd54b2be5 100644
--- a/make/common/JavaCompilation.gmk
+++ b/make/common/JavaCompilation.gmk
@@ -534,16 +534,16 @@ define SetupJavaCompilation
# When building in batch, put headers in a temp dir to filter out those that actually
# changed before copying them to the real header dir.
ifneq (,$$($1_HEADERS))
- $1_HEADERS_ARG := -h $$($1_HEADERS).tmp
+ $1_HEADERS_ARG := -h $$($1_HEADERS).$1.tmp
$$($1_HEADERS)/_the.$1_headers: $$($1_BIN)/_the.$1_batch
$(MKDIR) -p $$(@D)
- for f in `ls $$($1_HEADERS).tmp`; do \
- if [ ! -f "$$($1_HEADERS)/$$$$f" ] || [ "`$(DIFF) $$($1_HEADERS)/$$$$f $$($1_HEADERS).tmp/$$$$f`" != "" ]; then \
- $(CP) -f $$($1_HEADERS).tmp/$$$$f $$($1_HEADERS)/$$$$f; \
+ for f in `ls $$($1_HEADERS).$1.tmp`; do \
+ if [ ! -f "$$($1_HEADERS)/$$$$f" ] || [ "`$(DIFF) $$($1_HEADERS)/$$$$f $$($1_HEADERS).$1.tmp/$$$$f`" != "" ]; then \
+ $(CP) -f $$($1_HEADERS).$1.tmp/$$$$f $$($1_HEADERS)/$$$$f; \
fi; \
done
- $(RM) -r $$($1_HEADERS).tmp
+ $(RM) -r $$($1_HEADERS).$1.tmp
$(TOUCH) $$@
$1 += $$($1_HEADERS)/_the.$1_headers
From 11c56780a40438a99ac2f7edf7d4c34e68545823 Mon Sep 17 00:00:00 2001
From: Daniel Fuchs
Date: Wed, 5 Feb 2014 17:56:04 +0100
Subject: [PATCH 168/181] 8033542: test/java/util/logging/SimpleLogManager
might let Loggers be gc'ed too early
Fix another case of potentially premature Logger garbage collection in tests.
Reviewed-by: mchung
---
jdk/test/java/util/logging/SimpleLogManager.java | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/jdk/test/java/util/logging/SimpleLogManager.java b/jdk/test/java/util/logging/SimpleLogManager.java
index f469727654f..1e1da7919a5 100644
--- a/jdk/test/java/util/logging/SimpleLogManager.java
+++ b/jdk/test/java/util/logging/SimpleLogManager.java
@@ -98,16 +98,14 @@ public class SimpleLogManager extends CustomLogManager {
return false;
}
CustomLogger newLogger = new CustomLogger(logger);
- super.addLogger(newLogger);
- return true;
+ return super.addLogger(newLogger);
}
public class CustomLogger extends Logger {
+ final Logger keepRef; // keep a strong reference to avoid GC.
CustomLogger(Logger logger) {
super(logger.getName(), logger.getResourceBundleName());
- }
- CustomLogger(String name) {
- super(name, null);
+ keepRef = logger;
}
}
}
From 8a6d9792cee6c89c5fea86a0144b48d5a7d7b0d0 Mon Sep 17 00:00:00 2001
From: Joe Darcy
Date: Wed, 5 Feb 2014 10:15:45 -0800
Subject: [PATCH 169/181] 8033526: Fix serial lint warnings in java.awt.*
Reviewed-by: briangoetz
---
jdk/src/share/classes/java/awt/color/CMMException.java | 1 +
.../share/classes/java/awt/color/ProfileDataException.java | 3 ++-
jdk/src/share/classes/java/awt/datatransfer/FlavorEvent.java | 4 +++-
.../classes/java/awt/geom/IllegalPathStateException.java | 4 +++-
.../java/awt/geom/NoninvertibleTransformException.java | 4 +++-
jdk/src/share/classes/java/awt/image/ImagingOpException.java | 3 ++-
.../share/classes/java/awt/image/RasterFormatException.java | 3 ++-
.../classes/java/awt/image/renderable/ParameterBlock.java | 4 +++-
.../share/classes/java/awt/print/PrinterAbortException.java | 3 ++-
jdk/src/share/classes/java/awt/print/PrinterException.java | 3 ++-
10 files changed, 23 insertions(+), 9 deletions(-)
diff --git a/jdk/src/share/classes/java/awt/color/CMMException.java b/jdk/src/share/classes/java/awt/color/CMMException.java
index 04497f69cc4..c175bc38ebe 100644
--- a/jdk/src/share/classes/java/awt/color/CMMException.java
+++ b/jdk/src/share/classes/java/awt/color/CMMException.java
@@ -47,6 +47,7 @@ package java.awt.color;
*/
public class CMMException extends java.lang.RuntimeException {
+ private static final long serialVersionUID = 5775558044142994965L;
/**
* Constructs a CMMException with the specified detail message.
diff --git a/jdk/src/share/classes/java/awt/color/ProfileDataException.java b/jdk/src/share/classes/java/awt/color/ProfileDataException.java
index 829a92862f8..1a37014b89f 100644
--- a/jdk/src/share/classes/java/awt/color/ProfileDataException.java
+++ b/jdk/src/share/classes/java/awt/color/ProfileDataException.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2000, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,6 +31,7 @@ package java.awt.color;
*/
public class ProfileDataException extends java.lang.RuntimeException {
+ private static final long serialVersionUID = 7286140888240322498L;
/**
* Constructs a ProfileDataException with the specified detail message.
diff --git a/jdk/src/share/classes/java/awt/datatransfer/FlavorEvent.java b/jdk/src/share/classes/java/awt/datatransfer/FlavorEvent.java
index 036ea9aef10..3e627e69603 100644
--- a/jdk/src/share/classes/java/awt/datatransfer/FlavorEvent.java
+++ b/jdk/src/share/classes/java/awt/datatransfer/FlavorEvent.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -38,6 +38,8 @@ import java.util.EventObject;
* @since 1.5
*/
public class FlavorEvent extends EventObject {
+ private static final long serialVersionUID = -5842664112252414548L;
+
/**
* Constructs a FlavorEvent
object.
*
diff --git a/jdk/src/share/classes/java/awt/geom/IllegalPathStateException.java b/jdk/src/share/classes/java/awt/geom/IllegalPathStateException.java
index 629a46576ac..b07ea6af2aa 100644
--- a/jdk/src/share/classes/java/awt/geom/IllegalPathStateException.java
+++ b/jdk/src/share/classes/java/awt/geom/IllegalPathStateException.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 1999, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -35,6 +35,8 @@ package java.awt.geom;
*/
public class IllegalPathStateException extends RuntimeException {
+ private static final long serialVersionUID = -5158084205220481094L;
+
/**
* Constructs an IllegalPathStateException
with no
* detail message.
diff --git a/jdk/src/share/classes/java/awt/geom/NoninvertibleTransformException.java b/jdk/src/share/classes/java/awt/geom/NoninvertibleTransformException.java
index 72c1417ba77..8184f784b2b 100644
--- a/jdk/src/share/classes/java/awt/geom/NoninvertibleTransformException.java
+++ b/jdk/src/share/classes/java/awt/geom/NoninvertibleTransformException.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 1999, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -33,6 +33,8 @@ package java.awt.geom;
*/
public class NoninvertibleTransformException extends java.lang.Exception {
+ private static final long serialVersionUID = 6137225240503990466L;
+
/**
* Constructs an instance of
* NoninvertibleTransformException
diff --git a/jdk/src/share/classes/java/awt/image/ImagingOpException.java b/jdk/src/share/classes/java/awt/image/ImagingOpException.java
index c139e47a521..ca12f18f371 100644
--- a/jdk/src/share/classes/java/awt/image/ImagingOpException.java
+++ b/jdk/src/share/classes/java/awt/image/ImagingOpException.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 1998, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,6 +32,7 @@ package java.awt.image;
* process the image.
*/
public class ImagingOpException extends java.lang.RuntimeException {
+ private static final long serialVersionUID = 8026288481846276658L;
/**
* Constructs an ImagingOpException
object with the
diff --git a/jdk/src/share/classes/java/awt/image/RasterFormatException.java b/jdk/src/share/classes/java/awt/image/RasterFormatException.java
index 59dd8959936..976eb782201 100644
--- a/jdk/src/share/classes/java/awt/image/RasterFormatException.java
+++ b/jdk/src/share/classes/java/awt/image/RasterFormatException.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 1998, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -31,6 +31,7 @@ package java.awt.image;
* invalid layout information in the {@link Raster}.
*/
public class RasterFormatException extends java.lang.RuntimeException {
+ private static final long serialVersionUID = 96598996116164315L;
/**
* Constructs a new RasterFormatException
with the
diff --git a/jdk/src/share/classes/java/awt/image/renderable/ParameterBlock.java b/jdk/src/share/classes/java/awt/image/renderable/ParameterBlock.java
index 9726020dd30..ca12bfc4c4b 100644
--- a/jdk/src/share/classes/java/awt/image/renderable/ParameterBlock.java
+++ b/jdk/src/share/classes/java/awt/image/renderable/ParameterBlock.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2004, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -93,6 +93,8 @@ import java.util.Vector;
*
* */
public class ParameterBlock implements Cloneable, Serializable {
+ private static final long serialVersionUID = -7577115551785240750L;
+
/** A Vector of sources, stored as arbitrary Objects. */
protected Vector sources = new Vector();
diff --git a/jdk/src/share/classes/java/awt/print/PrinterAbortException.java b/jdk/src/share/classes/java/awt/print/PrinterAbortException.java
index d775121dbf1..f421dae9bea 100644
--- a/jdk/src/share/classes/java/awt/print/PrinterAbortException.java
+++ b/jdk/src/share/classes/java/awt/print/PrinterAbortException.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -33,6 +33,7 @@ package java.awt.print;
*/
public class PrinterAbortException extends PrinterException {
+ private static final long serialVersionUID = 4725169026278854136L;
/**
* Constructs a new PrinterAbortException
with no
diff --git a/jdk/src/share/classes/java/awt/print/PrinterException.java b/jdk/src/share/classes/java/awt/print/PrinterException.java
index 6304b29c481..5ec275ec5f0 100644
--- a/jdk/src/share/classes/java/awt/print/PrinterException.java
+++ b/jdk/src/share/classes/java/awt/print/PrinterException.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -32,6 +32,7 @@ package java.awt.print;
*/
public class PrinterException extends Exception {
+ private static final long serialVersionUID = -3757589981158265819L;
/**
* Constructs a new PrinterException
object
From 5475110b726b3c11b717dd130a9f16f8ed97c4bb Mon Sep 17 00:00:00 2001
From: Joe Darcy
Date: Wed, 5 Feb 2014 10:21:18 -0800
Subject: [PATCH 170/181] 8033616: Fix serial lint warnings in javax.imageio.*
Reviewed-by: alanb
---
jdk/src/share/classes/javax/imageio/IIOException.java | 3 ++-
.../javax/imageio/metadata/IIOInvalidTreeException.java | 3 ++-
.../share/classes/javax/imageio/metadata/IIOMetadataNode.java | 3 ++-
jdk/src/share/classes/javax/imageio/spi/DigraphNode.java | 3 ++-
4 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/jdk/src/share/classes/javax/imageio/IIOException.java b/jdk/src/share/classes/javax/imageio/IIOException.java
index 6a1c4d9ac5f..1b3cb8e6a96 100644
--- a/jdk/src/share/classes/javax/imageio/IIOException.java
+++ b/jdk/src/share/classes/javax/imageio/IIOException.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -40,6 +40,7 @@ import java.io.IOException;
*
*/
public class IIOException extends IOException {
+ private static final long serialVersionUID = -3216210718638985251L;
/**
* Constructs an IIOException
with a given message
diff --git a/jdk/src/share/classes/javax/imageio/metadata/IIOInvalidTreeException.java b/jdk/src/share/classes/javax/imageio/metadata/IIOInvalidTreeException.java
index 7f50cc80a85..9bec7c90eb4 100644
--- a/jdk/src/share/classes/javax/imageio/metadata/IIOInvalidTreeException.java
+++ b/jdk/src/share/classes/javax/imageio/metadata/IIOInvalidTreeException.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2001, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -44,6 +44,7 @@ import org.w3c.dom.Node;
*
*/
public class IIOInvalidTreeException extends IIOException {
+ private static final long serialVersionUID = -1314083172544132777L;
/**
* The Node
that led to the parsing error, or
diff --git a/jdk/src/share/classes/javax/imageio/metadata/IIOMetadataNode.java b/jdk/src/share/classes/javax/imageio/metadata/IIOMetadataNode.java
index bb5833a0a2f..1f3fd25f131 100644
--- a/jdk/src/share/classes/javax/imageio/metadata/IIOMetadataNode.java
+++ b/jdk/src/share/classes/javax/imageio/metadata/IIOMetadataNode.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -41,6 +41,7 @@ import org.w3c.dom.UserDataHandler;
class IIODOMException extends DOMException {
+ private static final long serialVersionUID = -4369510142067447468L;
public IIODOMException(short code, String message) {
super(code, message);
diff --git a/jdk/src/share/classes/javax/imageio/spi/DigraphNode.java b/jdk/src/share/classes/javax/imageio/spi/DigraphNode.java
index 9473ced32fc..b133c29db9a 100644
--- a/jdk/src/share/classes/javax/imageio/spi/DigraphNode.java
+++ b/jdk/src/share/classes/javax/imageio/spi/DigraphNode.java
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2000, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -40,6 +40,7 @@ import java.util.Set;
*
*/
class DigraphNode implements Cloneable, Serializable {
+ private static final long serialVersionUID = 5308261378582246841L;
/** The data associated with this node. */
protected Object data;
From aef65cc369d3351b93510383f84010d798372399 Mon Sep 17 00:00:00 2001
From: Vinnie Ryan
Date: Wed, 5 Feb 2014 18:37:42 +0000
Subject: [PATCH 171/181] 8025669: [parfait] warning from b62 for
jdk.src.solaris.native.com.sun.security.auth.module: memory leak
Reviewed-by: alanb, chegar
---
.../com/sun/security/auth/module/Solaris.c | 26 ++++++++++++-------
1 file changed, 16 insertions(+), 10 deletions(-)
diff --git a/jdk/src/solaris/native/com/sun/security/auth/module/Solaris.c b/jdk/src/solaris/native/com/sun/security/auth/module/Solaris.c
index 2b8e2d2b11e..dd989f735f7 100644
--- a/jdk/src/solaris/native/com/sun/security/auth/module/Solaris.c
+++ b/jdk/src/solaris/native/com/sun/security/auth/module/Solaris.c
@@ -75,11 +75,12 @@ Java_com_sun_security_auth_module_SolarisSystem_getSolarisInfo
if (fid == 0) {
(*env)->ExceptionClear(env);
throwIllegalArgumentException(env, "invalid field: username");
- return;
+ goto cleanupAndReturn;
}
jstr = (*env)->NewStringUTF(env, pwd.pw_name);
- if (jstr == NULL)
- return;
+ if (jstr == NULL) {
+ goto cleanupAndReturn;
+ }
(*env)->SetObjectField(env, obj, fid, jstr);
/*
@@ -89,7 +90,7 @@ Java_com_sun_security_auth_module_SolarisSystem_getSolarisInfo
if (fid == 0) {
(*env)->ExceptionClear(env);
throwIllegalArgumentException(env, "invalid field: uid");
- return;
+ goto cleanupAndReturn;
}
(*env)->SetLongField(env, obj, fid, pwd.pw_uid);
@@ -100,7 +101,7 @@ Java_com_sun_security_auth_module_SolarisSystem_getSolarisInfo
if (fid == 0) {
(*env)->ExceptionClear(env);
throwIllegalArgumentException(env, "invalid field: gid");
- return;
+ goto cleanupAndReturn;
}
(*env)->SetLongField(env, obj, fid, pwd.pw_gid);
@@ -111,19 +112,24 @@ Java_com_sun_security_auth_module_SolarisSystem_getSolarisInfo
if (fid == 0) {
(*env)->ExceptionClear(env);
throwIllegalArgumentException(env, "invalid field: groups");
- return;
+ goto cleanupAndReturn;
}
jgroups = (*env)->NewLongArray(env, numSuppGroups);
- if (jgroups == NULL)
- return;
+ if (jgroups == NULL) {
+ goto cleanupAndReturn;
+ }
jgroupsAsArray = (*env)->GetLongArrayElements(env, jgroups, 0);
- if (jgroupsAsArray == NULL)
- return;
+ if (jgroupsAsArray == NULL) {
+ goto cleanupAndReturn;
+ }
for (i = 0; i < numSuppGroups; i++)
jgroupsAsArray[i] = groups[i];
(*env)->ReleaseLongArrayElements(env, jgroups, jgroupsAsArray, 0);
(*env)->SetObjectField(env, obj, fid, jgroups);
}
+cleanupAndReturn:
+ free(groups);
+
return;
}
From 93c628f1577e4a8f3bf2bbb5c0deeeef13338970 Mon Sep 17 00:00:00 2001
From: David Katleman
Date: Thu, 6 Feb 2014 13:08:35 -0800
Subject: [PATCH 172/181] Added tag jdk9-b02 for changeset 325b5971d828
---
.hgtags-top-repo | 1 +
1 file changed, 1 insertion(+)
diff --git a/.hgtags-top-repo b/.hgtags-top-repo
index 6a7cb46c540..fe1310f80db 100644
--- a/.hgtags-top-repo
+++ b/.hgtags-top-repo
@@ -244,3 +244,4 @@ a4afb0a8d55ef75aef5b0d77b434070468fb89f8 jdk8-b117
cd3825b2983045784d6fc6d1729c799b08215752 jdk8-b120
1e1f86d5d4e22c15a9bf9f1581acddb8c59abae2 jdk9-b00
50669e45cec4491de0d921d3118a3fe2e767020a jdk9-b01
+135f0c7af57ebace31383d8877f47e32172759ff jdk9-b02
From aedfbb387a96b64fe176cbfa743337abc13648d2 Mon Sep 17 00:00:00 2001
From: David Katleman
Date: Thu, 6 Feb 2014 13:08:37 -0800
Subject: [PATCH 173/181] Added tag jdk9-b02 for changeset 82544a65e6da
---
corba/.hgtags | 1 +
1 file changed, 1 insertion(+)
diff --git a/corba/.hgtags b/corba/.hgtags
index 914430fb54c..03c69ec949f 100644
--- a/corba/.hgtags
+++ b/corba/.hgtags
@@ -244,3 +244,4 @@ d6820a414f182a011a53a29a52370c696cd58dab jdk8-b118
53fd772d28c8a9f0f43adfc06f75f6b3cfa93cb5 jdk8-b120
a7d3638deb2f4e33217b1ecf889479e90f9e5b50 jdk9-b00
79a8136b18c1c6848f500088f5a4b39f262f082d jdk9-b01
+8394993063135a42b63a94473280399fb2a13aa7 jdk9-b02
From d57ec22d365ec0d1c4063093bc9b08f57a3266e8 Mon Sep 17 00:00:00 2001
From: David Katleman
Date: Thu, 6 Feb 2014 13:08:44 -0800
Subject: [PATCH 174/181] Added tag jdk9-b02 for changeset e67a27d0c98a
---
hotspot/.hgtags | 1 +
1 file changed, 1 insertion(+)
diff --git a/hotspot/.hgtags b/hotspot/.hgtags
index 7b9d7597d6e..9b4aa750ec2 100644
--- a/hotspot/.hgtags
+++ b/hotspot/.hgtags
@@ -404,3 +404,4 @@ ce42d815dd2130250acf6132b51b624001638f0d jdk8-b119
fca262db9c4309f99d2f5542ab0780e45c2f1578 jdk8-b120
ce2d7e46f3c7e41241f3b407705a4071323a11ab jdk9-b00
050a626a88951140df874f7b163e304d07b6c296 jdk9-b01
+b188446de75bda5fc52d102cddf242c3ef5ecbdf jdk9-b02
From 5dee3f88bdbc159a01dd4650dfbb6c4745643bad Mon Sep 17 00:00:00 2001
From: David Katleman
Date: Thu, 6 Feb 2014 13:08:54 -0800
Subject: [PATCH 175/181] Added tag jdk9-b02 for changeset 851ae056cca1
---
jaxp/.hgtags | 1 +
1 file changed, 1 insertion(+)
diff --git a/jaxp/.hgtags b/jaxp/.hgtags
index dc38862e746..bca7de34ab8 100644
--- a/jaxp/.hgtags
+++ b/jaxp/.hgtags
@@ -244,3 +244,4 @@ e4e5069250e717defcb556e2f6be291460988c51 jdk8-b118
64d8b228a72cf9082b1a9a881c81188ccffde234 jdk8-b120
4045edd35e8ba73bfdc23ce8961b9640d4145fe5 jdk9-b00
e5256f530a9b5f2d677ca245de44a617ffb58f52 jdk9-b01
+02f60a253e15240087c043bad77a106792e4d56a jdk9-b02
From a3723a4c6599d0f70892ae4eea4ff6f455b6a77e Mon Sep 17 00:00:00 2001
From: David Katleman
Date: Thu, 6 Feb 2014 13:08:57 -0800
Subject: [PATCH 176/181] Added tag jdk9-b02 for changeset 01145cf69089
---
jaxws/.hgtags | 1 +
1 file changed, 1 insertion(+)
diff --git a/jaxws/.hgtags b/jaxws/.hgtags
index a3601127a12..a6c41cf6400 100644
--- a/jaxws/.hgtags
+++ b/jaxws/.hgtags
@@ -247,3 +247,4 @@ bc622ba563f9316f981c11c3a260f4c3fdc5ef07 jdk8-b122
91f5c542ccad330efc0d281362dd6f33f2039746 jdk8-b123
32050ab53c8a8e4cb09f04b88db78258a480fb61 jdk9-b00
9c9fabbcd3d526d7ca29165169155f49a107533a jdk9-b01
+efe2bc258c78af49de9517a4a5699d3a2e630c44 jdk9-b02
From 3bc4831434bf1ee8c1277f3a511a9e307b095240 Mon Sep 17 00:00:00 2001
From: David Katleman
Date: Thu, 6 Feb 2014 13:09:10 -0800
Subject: [PATCH 177/181] Added tag jdk9-b02 for changeset 22a10c3cb5f3
---
jdk/.hgtags | 1 +
1 file changed, 1 insertion(+)
diff --git a/jdk/.hgtags b/jdk/.hgtags
index 4cde2b895e7..5a7ffba22b9 100644
--- a/jdk/.hgtags
+++ b/jdk/.hgtags
@@ -244,3 +244,4 @@ e4499a6529e8c3e762ba86f45cdd774c92a8e7bc jdk8-b119
d31cd980e1da31fa496a359caaf1a165aeb5791a jdk8-b120
27b384262cba51dd0fe3e3534820189b46abc8cb jdk9-b00
3b4ac8d1b76fc6bec9815f0ab714f15b552e4c7b jdk9-b01
+8c8275426a3207d91393354f7a7f9bc362ec25cf jdk9-b02
From fa155ae4bdbf55ed58ed0f746e7a0755652cf304 Mon Sep 17 00:00:00 2001
From: David Katleman
Date: Thu, 6 Feb 2014 13:09:40 -0800
Subject: [PATCH 178/181] Added tag jdk9-b02 for changeset fc0fe10fbee9
---
langtools/.hgtags | 1 +
1 file changed, 1 insertion(+)
diff --git a/langtools/.hgtags b/langtools/.hgtags
index 87ec29040c5..7713b53738e 100644
--- a/langtools/.hgtags
+++ b/langtools/.hgtags
@@ -244,3 +244,4 @@ af6244ba81b6b8d1bf4ab06587a2067e021e4570 jdk8-b111
b3d7e86a06474fe5100a7b15a95eaa10d41509a6 jdk8-b120
afe63d41c699e0e2ee910ef20c41b60603c852a1 jdk9-b00
077c12d527fb5531c59666c1f84000fc1245a260 jdk9-b01
+f2c58a337c8aaa1ce84dfa8a8e8c5d4c8c1e12fa jdk9-b02
From b7addf4329493f2b368b4b6a484683776ff5a459 Mon Sep 17 00:00:00 2001
From: David Katleman
Date: Thu, 6 Feb 2014 13:09:43 -0800
Subject: [PATCH 179/181] Added tag jdk9-b02 for changeset 81bb5f538220
---
nashorn/.hgtags | 1 +
1 file changed, 1 insertion(+)
diff --git a/nashorn/.hgtags b/nashorn/.hgtags
index 3d90b565999..6236fcba08e 100644
--- a/nashorn/.hgtags
+++ b/nashorn/.hgtags
@@ -235,3 +235,4 @@ c3343930c73c58a22c1d58719bb988aeb25a871f jdk8-b119
688f4167f92188482b0d80e315c72f726c6d5ff6 jdk8-b123
32631eed0fad2b31346eb41b29a50227bd29e2ec jdk9-b00
65347535840f045f2cd4341d7466c51009b1b06f jdk9-b01
+b3517e51f40477f10db8bc30a557aa0ea712c274 jdk9-b02
From be10ffa640889abe06d46922f361e48db63c0795 Mon Sep 17 00:00:00 2001
From: "J. Duke"
Date: Wed, 5 Jul 2017 19:28:22 +0200
Subject: [PATCH 180/181] Added tag jdk9-b02 for changeset b32e2219736e
---
.hgtags | 1 +
1 file changed, 1 insertion(+)
diff --git a/.hgtags b/.hgtags
index 1bd0c05f284..15669b3da62 100644
--- a/.hgtags
+++ b/.hgtags
@@ -244,3 +244,4 @@ f5b521ade7a35cea18df78ee86322207729f5611 jdk8-b118
a1ee9743f4ee165eae59389a020f2552f895dac8 jdk8-b120
13b877757b0b1c0d5813298df85364f41d7ba6fe jdk9-b00
f130ca87de6637acae7d99fcd7a8573eea1cbaed jdk9-b01
+b32e2219736e42baaf45daf0ad67ed34f6033799 jdk9-b02
From 18489cc7a410aff493f42bc6eae0236255574274 Mon Sep 17 00:00:00 2001
From: Athijegannathan Sundararajan
Date: Tue, 25 Feb 2014 18:56:10 +0530
Subject: [PATCH 181/181] 8030197: Nashorn: Object.defineProperty() can be
lured to change fixed NaN property
Reviewed-by: attila, jlaskey
---
.../objects/AccessorPropertyDescriptor.java | 12 +++++
.../objects/DataPropertyDescriptor.java | 13 ++++++
.../objects/GenericPropertyDescriptor.java | 17 +++++++
.../internal/runtime/PropertyDescriptor.java | 7 +++
.../internal/runtime/ScriptObject.java | 2 +-
nashorn/test/script/basic/JDK-8030197.js | 46 +++++++++++++++++++
6 files changed, 96 insertions(+), 1 deletion(-)
create mode 100644 nashorn/test/script/basic/JDK-8030197.js
diff --git a/nashorn/src/jdk/nashorn/internal/objects/AccessorPropertyDescriptor.java b/nashorn/src/jdk/nashorn/internal/objects/AccessorPropertyDescriptor.java
index b37316207bf..4d3fd43d32e 100644
--- a/nashorn/src/jdk/nashorn/internal/objects/AccessorPropertyDescriptor.java
+++ b/nashorn/src/jdk/nashorn/internal/objects/AccessorPropertyDescriptor.java
@@ -184,6 +184,18 @@ public final class AccessorPropertyDescriptor extends ScriptObject implements Pr
return ACCESSOR;
}
+ @Override
+ public boolean hasAndEquals(final PropertyDescriptor otherDesc) {
+ if (! (otherDesc instanceof AccessorPropertyDescriptor)) {
+ return false;
+ }
+ final AccessorPropertyDescriptor other = (AccessorPropertyDescriptor)otherDesc;
+ return (!has(CONFIGURABLE) || sameValue(configurable, other.configurable)) &&
+ (!has(ENUMERABLE) || sameValue(enumerable, other.enumerable)) &&
+ (!has(GET) || sameValue(get, other.get)) &&
+ (!has(SET) || sameValue(set, other.set));
+ }
+
@Override
public boolean equals(final Object obj) {
if (this == obj) {
diff --git a/nashorn/src/jdk/nashorn/internal/objects/DataPropertyDescriptor.java b/nashorn/src/jdk/nashorn/internal/objects/DataPropertyDescriptor.java
index ef3f0a30679..39325627b2d 100644
--- a/nashorn/src/jdk/nashorn/internal/objects/DataPropertyDescriptor.java
+++ b/nashorn/src/jdk/nashorn/internal/objects/DataPropertyDescriptor.java
@@ -171,6 +171,19 @@ public final class DataPropertyDescriptor extends ScriptObject implements Proper
return DATA;
}
+ @Override
+ public boolean hasAndEquals(final PropertyDescriptor otherDesc) {
+ if (! (otherDesc instanceof DataPropertyDescriptor)) {
+ return false;
+ }
+
+ final DataPropertyDescriptor other = (DataPropertyDescriptor)otherDesc;
+ return (!has(CONFIGURABLE) || sameValue(configurable, other.configurable)) &&
+ (!has(ENUMERABLE) || sameValue(enumerable, other.enumerable)) &&
+ (!has(WRITABLE) || sameValue(writable, other.writable)) &&
+ (!has(VALUE) || sameValue(value, other.value));
+ }
+
@Override
public boolean equals(final Object obj) {
if (this == obj) {
diff --git a/nashorn/src/jdk/nashorn/internal/objects/GenericPropertyDescriptor.java b/nashorn/src/jdk/nashorn/internal/objects/GenericPropertyDescriptor.java
index f5662efa324..221fe002bcd 100644
--- a/nashorn/src/jdk/nashorn/internal/objects/GenericPropertyDescriptor.java
+++ b/nashorn/src/jdk/nashorn/internal/objects/GenericPropertyDescriptor.java
@@ -148,6 +148,23 @@ public final class GenericPropertyDescriptor extends ScriptObject implements Pro
return GENERIC;
}
+ @Override
+ public boolean hasAndEquals(final PropertyDescriptor other) {
+ if (has(CONFIGURABLE) && other.has(CONFIGURABLE)) {
+ if (isConfigurable() != other.isConfigurable()) {
+ return false;
+ }
+ }
+
+ if (has(ENUMERABLE) && other.has(ENUMERABLE)) {
+ if (isEnumerable() != other.isEnumerable()) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
@Override
public boolean equals(final Object obj) {
if (this == obj) {
diff --git a/nashorn/src/jdk/nashorn/internal/runtime/PropertyDescriptor.java b/nashorn/src/jdk/nashorn/internal/runtime/PropertyDescriptor.java
index 49a7a9d6bc4..f36bd45e197 100644
--- a/nashorn/src/jdk/nashorn/internal/runtime/PropertyDescriptor.java
+++ b/nashorn/src/jdk/nashorn/internal/runtime/PropertyDescriptor.java
@@ -151,5 +151,12 @@ public interface PropertyDescriptor {
* @return true if property exists in implementor
*/
public boolean has(Object key);
+
+ /**
+ * Check existence and compare attributes of descriptors.
+ *
+ * @return true if every field of this desc exists in otherDesc and has the same value.
+ */
+ public boolean hasAndEquals(PropertyDescriptor otherDesc);
}
diff --git a/nashorn/src/jdk/nashorn/internal/runtime/ScriptObject.java b/nashorn/src/jdk/nashorn/internal/runtime/ScriptObject.java
index 4b85ed4ed5c..4b3bb939411 100644
--- a/nashorn/src/jdk/nashorn/internal/runtime/ScriptObject.java
+++ b/nashorn/src/jdk/nashorn/internal/runtime/ScriptObject.java
@@ -469,7 +469,7 @@ public abstract class ScriptObject extends PropertyListenerManager implements Pr
return true;
}
- if (currentDesc.equals(newDesc)) {
+ if (newDesc.hasAndEquals(currentDesc)) {
// every descriptor field of the new is same as the current
return true;
}
diff --git a/nashorn/test/script/basic/JDK-8030197.js b/nashorn/test/script/basic/JDK-8030197.js
new file mode 100644
index 00000000000..366d33df3ad
--- /dev/null
+++ b/nashorn/test/script/basic/JDK-8030197.js
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+
+/**
+ * JDK-8030197: Nashorn: Object.defineProperty() can be lured to change fixed NaN property
+ *
+ * @test
+ * @run
+ */
+
+function str(n) {
+ var a = new Uint8Array(new Float64Array([n]).buffer);
+ return Array.apply(null, a).reduceRight(
+ function(acc, v){
+ return acc + (v < 10 ? "0" : "") + v.toString(16);
+ }, "");
+}
+
+var o = Object.defineProperty({}, "NaN", { value: NaN })
+var str1 = str(o.NaN);
+Object.defineProperty(o, "NaN", { value: 0/0 })
+var str2 = str(o.NaN);
+if (str1 != str2) {
+ fail("NaN bit pattern changed");
+}