# HG changeset patch # User lana # Date 1407191652 25200 # Node ID e8971dbd447d58d8e892ea58de6e29f7d25f88f5 # Parent aec458f88f96165e7fcc2e10af15b1fdcbec5d9d# Parent a0aeb7f544b27ac0245257c957037691eb2594ba Merge diff -r aec458f88f96 -r e8971dbd447d jdk/make/CopyFiles.gmk --- a/jdk/make/CopyFiles.gmk Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/make/CopyFiles.gmk Mon Aug 04 15:34:12 2014 -0700 @@ -122,7 +122,7 @@ ########################################################################################## # -# Copy flavormap.properties, cursor.properties and cursors gif files to LIBDIR +# Copy cursor.properties and cursors gif files to LIBDIR # ifneq ($(OPENJDK_TARGET_OS), macosx) OPENJDK_TARGET_OS_LIB_SRC = $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/lib @@ -130,11 +130,6 @@ OPENJDK_TARGET_OS_LIB_SRC = $(JDK_TOPDIR)/src/macosx/lib endif -$(LIBDIR)/flavormap.properties: $(OPENJDK_TARGET_OS_LIB_SRC)/flavormap.properties - $(call install-file) - -COPY_FILES += $(LIBDIR)/flavormap.properties - CURSORS_DEST_DIR = $(LIBDIR)/images/cursors CURSORS_OPENJDK_TARGET_OS_LIB_SRC = $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/lib/images/cursors diff -r aec458f88f96 -r e8971dbd447d jdk/make/CopyIntoClasses.gmk --- a/jdk/make/CopyIntoClasses.gmk Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/make/CopyIntoClasses.gmk Mon Aug 04 15:34:12 2014 -0700 @@ -163,6 +163,19 @@ ################################################################################ +ifneq ($(OPENJDK_TARGET_OS), macosx) + OPENJDK_TARGET_OS_FLAVORMAP_PROPERTIES = $(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/classes/sun/awt/datatransfer/flavormap.properties +else + OPENJDK_TARGET_OS_FLAVORMAP_PROPERTIES = $(JDK_TOPDIR)/src/macosx/classes/sun/awt/datatransfer/flavormap.properties +endif + +$(JDK_OUTPUTDIR)/classes/sun/awt/datatransfer/flavormap.properties: $(OPENJDK_TARGET_OS_FLAVORMAP_PROPERTIES) + $(install-file) + +COPY_EXTRA += $(JDK_OUTPUTDIR)/classes/sun/awt/datatransfer/flavormap.properties + +################################################################################ + CLEAN_FILES := $(wildcard \ $(JDK_TOPDIR)/src/share/classes/com/sun/imageio/plugins/common/*.properties \ $(JDK_TOPDIR)/src/share/classes/com/sun/java/util/jar/pack/*.properties \ diff -r aec458f88f96 -r e8971dbd447d jdk/make/Setup.gmk --- a/jdk/make/Setup.gmk Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/make/Setup.gmk Mon Aug 04 15:34:12 2014 -0700 @@ -27,7 +27,7 @@ # To build with all warnings enabled, do the following: # make JAVAC_WARNINGS="-Xlint:all -Xmaxwarns 10000" -JAVAC_WARNINGS := -Xlint:all,-deprecation,-rawtypes,-unchecked -Werror +JAVAC_WARNINGS := -Xlint:all,-deprecation -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 -r aec458f88f96 -r e8971dbd447d jdk/make/data/swingbeaninfo/SwingBeanInfo.template --- a/jdk/make/data/swingbeaninfo/SwingBeanInfo.template Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/make/data/swingbeaninfo/SwingBeanInfo.template Mon Aug 04 15:34:12 2014 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -42,7 +42,7 @@ */ public class @(BeanClassName)BeanInfo extends javax.swing.SwingBeanInfoBase { - private static final Class class@(BeanClassName) = @(BeanClassObject); + private static final Class class@(BeanClassName) = @(BeanClassObject); /** * @return a @(BeanClassName) BeanDescriptor diff -r aec458f88f96 -r e8971dbd447d jdk/make/data/swingbeaninfo/javax/swing/SwingBeanInfoBase.java --- a/jdk/make/data/swingbeaninfo/javax/swing/SwingBeanInfoBase.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/make/data/swingbeaninfo/javax/swing/SwingBeanInfoBase.java Mon Aug 04 15:34:12 2014 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -67,7 +67,7 @@ * its PropertyDescriptors will be included. */ public BeanInfo[] getAdditionalBeanInfo() { - Class superClass = getBeanDescriptor().getBeanClass().getSuperclass(); + Class superClass = getBeanDescriptor().getBeanClass().getSuperclass(); BeanInfo superBeanInfo = null; try { superBeanInfo = Introspector.getBeanInfo(superClass); diff -r aec458f88f96 -r e8971dbd447d jdk/make/data/swingbeaninfo/sun/swing/BeanInfoUtils.java --- a/jdk/make/data/swingbeaninfo/sun/swing/BeanInfoUtils.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/make/data/swingbeaninfo/sun/swing/BeanInfoUtils.java Mon Aug 04 15:34:12 2014 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2014, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -122,7 +122,7 @@ * @see java.beans#PropertyDescriptor * @see java.beans#FeatureDescriptor */ - public static PropertyDescriptor createPropertyDescriptor(Class cls, String name, Object[] args) + public static PropertyDescriptor createPropertyDescriptor(Class cls, String name, Object[] args) { PropertyDescriptor pd = null; try { @@ -156,7 +156,7 @@ String methodName = (String)value; Method method; try { - method = cls.getMethod(methodName, new Class[0]); + method = cls.getMethod(methodName, new Class[0]); pd.setReadMethod(method); } catch(Exception e) { @@ -168,8 +168,8 @@ String methodName = (String)value; Method method; try { - Class type = pd.getPropertyType(); - method = cls.getMethod(methodName, new Class[]{type}); + Class type = pd.getPropertyType(); + method = cls.getMethod(methodName, new Class[]{type}); pd.setWriteMethod(method); } catch(Exception e) { @@ -215,9 +215,9 @@ * @see java.beans#BeanInfo * @see java.beans#PropertyDescriptor */ - public static BeanDescriptor createBeanDescriptor(Class cls, Object[] args) + public static BeanDescriptor createBeanDescriptor(Class cls, Object[] args) { - Class customizerClass = null; + Class customizerClass = null; /* For reasons I don't understand, customizerClass is a * readOnly property. So we have to find it and pass it @@ -242,11 +242,11 @@ } static private PropertyDescriptor createReadOnlyPropertyDescriptor( - String name, Class cls) throws IntrospectionException { + String name, Class cls) throws IntrospectionException { Method readMethod = null; String base = capitalize(name); - Class[] parameters = new Class[0]; + Class[] parameters = new Class[0]; // Is it a boolean? try { @@ -264,7 +264,7 @@ try { // Try indexed accessor pattern. - parameters = new Class[1]; + parameters = new Class[1]; parameters[0] = int.class; readMethod = cls.getMethod("get" + base, parameters); } catch (NoSuchMethodException nsme) { diff -r aec458f88f96 -r e8971dbd447d jdk/make/lib/PlatformLibraries.gmk --- a/jdk/make/lib/PlatformLibraries.gmk Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/make/lib/PlatformLibraries.gmk Mon Aug 04 15:34:12 2014 -0700 @@ -90,8 +90,7 @@ LIBOSX_DIRS := \ $(JDK_TOPDIR)/src/macosx/native/com/apple/concurrent \ $(JDK_TOPDIR)/src/macosx/native/com/apple/eio \ - $(JDK_TOPDIR)/src/macosx/native/apple/security \ - $(JDK_TOPDIR)/src/macosx/native/apple/launcher + $(JDK_TOPDIR)/src/macosx/native/apple/security $(eval $(call SetupNativeCompilation,BUILD_LIBOSX, \ LIBRARY := osx, \ diff -r aec458f88f96 -r e8971dbd447d jdk/make/mapfiles/libawt/mapfile-mawt-vers --- a/jdk/make/mapfiles/libawt/mapfile-mawt-vers Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/make/mapfiles/libawt/mapfile-mawt-vers Mon Aug 04 15:34:12 2014 -0700 @@ -204,6 +204,7 @@ Java_sun_print_CUPSPrinter_canConnect; Java_sun_print_CUPSPrinter_getMedia; Java_sun_print_CUPSPrinter_getPageSizes; + Java_sun_print_CUPSPrinter_getResolutions; Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1arrow; Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1box; diff -r aec458f88f96 -r e8971dbd447d jdk/make/mapfiles/libawt_headless/mapfile-vers --- a/jdk/make/mapfiles/libawt_headless/mapfile-vers Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/make/mapfiles/libawt_headless/mapfile-vers Mon Aug 04 15:34:12 2014 -0700 @@ -76,6 +76,7 @@ Java_sun_print_CUPSPrinter_canConnect; Java_sun_print_CUPSPrinter_getMedia; Java_sun_print_CUPSPrinter_getPageSizes; + Java_sun_print_CUPSPrinter_getResolutions; # libfontmanager entry points AWTIsHeadless; diff -r aec458f88f96 -r e8971dbd447d jdk/make/mapfiles/libawt_xawt/mapfile-vers --- a/jdk/make/mapfiles/libawt_xawt/mapfile-vers Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/make/mapfiles/libawt_xawt/mapfile-vers Mon Aug 04 15:34:12 2014 -0700 @@ -442,6 +442,7 @@ Java_sun_print_CUPSPrinter_canConnect; Java_sun_print_CUPSPrinter_getMedia; Java_sun_print_CUPSPrinter_getPageSizes; + Java_sun_print_CUPSPrinter_getResolutions; awt_GetDrawingSurface; awt_FreeDrawingSurface; diff -r aec458f88f96 -r e8971dbd447d jdk/make/profile-includes.txt --- a/jdk/make/profile-includes.txt Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/make/profile-includes.txt Mon Aug 04 15:34:12 2014 -0700 @@ -177,7 +177,6 @@ ext/dnsns.jar \ ext/nashorn.jar \ ext/zipfs.jar \ - flavormap.properties \ fontconfig.RedHat.5.bfc \ fontconfig.RedHat.5.properties.src \ fontconfig.RedHat.6.bfc \ diff -r aec458f88f96 -r e8971dbd447d jdk/src/macosx/bundle/JavaAppLauncher/JavaAppLauncher.xcodeproj/project.pbxproj --- a/jdk/src/macosx/bundle/JavaAppLauncher/JavaAppLauncher.xcodeproj/project.pbxproj Fri Aug 01 14:09:19 2014 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,318 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 45; - objects = { - -/* Begin PBXBuildFile section */ - 2C483E05143512EB00F2AEFD /* 1.7.0.jre in Copy PlugIns */ = {isa = PBXBuildFile; fileRef = 2C483E04143512EB00F2AEFD /* 1.7.0.jre */; }; - 89D3CD32142EEB2200A08AED /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 89D3CD29142EEB2200A08AED /* InfoPlist.strings */; }; - 89D3CD33142EEB2200A08AED /* GenericApp.icns in Resources */ = {isa = PBXBuildFile; fileRef = 89D3CD2B142EEB2200A08AED /* GenericApp.icns */; }; - 89D3CD35142EEB2200A08AED /* JVMArgs.m in Sources */ = {isa = PBXBuildFile; fileRef = 89D3CD30142EEB2200A08AED /* JVMArgs.m */; }; - 89D3CD36142EEB2200A08AED /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 89D3CD31142EEB2200A08AED /* main.m */; }; - 89D3D365143041F000A08AED /* JavaAppLauncher.m in Sources */ = {isa = PBXBuildFile; fileRef = 89D3D364143041F000A08AED /* JavaAppLauncher.m */; }; - 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; -/* End PBXBuildFile section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 2C48F06614350F0F00F2AEFD /* Copy PlugIns */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 13; - files = ( - 2C483E05143512EB00F2AEFD /* 1.7.0.jre in Copy PlugIns */, - ); - name = "Copy PlugIns"; - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; - 2C483E04143512EB00F2AEFD /* 1.7.0.jre */ = {isa = PBXFileReference; lastKnownFileType = folder; name = 1.7.0.jre; path = "../../../../../build/macosx-universal/j2sdk-bundle/1.7.0.jdk/Contents/Home/1.7.0.jre"; sourceTree = SOURCE_ROOT; }; - 2C48F06714350F8300F2AEFD /* 1.7.0.jdk */ = {isa = PBXFileReference; lastKnownFileType = folder; name = 1.7.0.jdk; path = "../../../../../build/macosx-universal/j2sdk-bundle/1.7.0.jdk"; sourceTree = SOURCE_ROOT; }; - 2CB5DA5E14355FCA00D3A656 /* classfile_constants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = classfile_constants.h; sourceTree = ""; }; - 2CB5DA6014355FCA00D3A656 /* jawt_md.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = jawt_md.h; sourceTree = ""; }; - 2CB5DA6114355FCA00D3A656 /* jni_md.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = jni_md.h; sourceTree = ""; }; - 2CB5DA6214355FCA00D3A656 /* jawt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = jawt.h; sourceTree = ""; }; - 2CB5DA6314355FCA00D3A656 /* jdwpTransport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = jdwpTransport.h; sourceTree = ""; }; - 2CB5DA6414355FCA00D3A656 /* jni.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = jni.h; sourceTree = ""; }; - 2CB5DA6514355FCA00D3A656 /* jvmti.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = jvmti.h; sourceTree = ""; }; - 2CB5DA6614355FCA00D3A656 /* jvmticmlr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = jvmticmlr.h; sourceTree = ""; }; - 89D3CD2A142EEB2200A08AED /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; }; - 89D3CD2B142EEB2200A08AED /* GenericApp.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = GenericApp.icns; path = /System/Library/Frameworks/JavaVM.framework/Versions/A/Resources/GenericApp.icns; sourceTree = ""; }; - 89D3CD2C142EEB2200A08AED /* JavaAppLauncher-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "JavaAppLauncher-Info.plist"; sourceTree = ""; }; - 89D3CD2E142EEB2200A08AED /* JavaAppLauncher_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JavaAppLauncher_Prefix.pch; sourceTree = ""; }; - 89D3CD2F142EEB2200A08AED /* JVMArgs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JVMArgs.h; sourceTree = ""; }; - 89D3CD30142EEB2200A08AED /* JVMArgs.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JVMArgs.m; sourceTree = ""; }; - 89D3CD31142EEB2200A08AED /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - 89D3D363143041F000A08AED /* JavaAppLauncher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JavaAppLauncher.h; sourceTree = ""; }; - 89D3D364143041F000A08AED /* JavaAppLauncher.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = JavaAppLauncher.m; sourceTree = ""; }; - 8D1107320486CEB800E47090 /* JavaAppLauncher.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = JavaAppLauncher.app; sourceTree = BUILT_PRODUCTS_DIR; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8D11072E0486CEB800E47090 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 1058C7A0FEA54F0111CA2CBB /* frameworks */ = { - isa = PBXGroup; - children = ( - 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */, - ); - name = frameworks; - sourceTree = ""; - }; - 19C28FACFE9D520D11CA2CBB /* Products */ = { - isa = PBXGroup; - children = ( - 8D1107320486CEB800E47090 /* JavaAppLauncher.app */, - ); - name = Products; - sourceTree = ""; - }; - 29B97314FDCFA39411CA2CEA /* JavaAppLauncher */ = { - isa = PBXGroup; - children = ( - 89D3CD2D142EEB2200A08AED /* src */, - 89D3CD28142EEB2200A08AED /* resources */, - 29B97323FDCFA39411CA2CEA /* linking */, - 19C28FACFE9D520D11CA2CBB /* Products */, - ); - name = JavaAppLauncher; - sourceTree = ""; - }; - 29B97323FDCFA39411CA2CEA /* linking */ = { - isa = PBXGroup; - children = ( - 2C48F06714350F8300F2AEFD /* 1.7.0.jdk */, - 2C483E04143512EB00F2AEFD /* 1.7.0.jre */, - 2CB5DA5D14355FCA00D3A656 /* include */, - 1058C7A0FEA54F0111CA2CBB /* frameworks */, - ); - name = linking; - sourceTree = ""; - }; - 2CB5DA5D14355FCA00D3A656 /* include */ = { - isa = PBXGroup; - children = ( - 2CB5DA5E14355FCA00D3A656 /* classfile_constants.h */, - 2CB5DA5F14355FCA00D3A656 /* darwin */, - 2CB5DA6214355FCA00D3A656 /* jawt.h */, - 2CB5DA6314355FCA00D3A656 /* jdwpTransport.h */, - 2CB5DA6414355FCA00D3A656 /* jni.h */, - 2CB5DA6514355FCA00D3A656 /* jvmti.h */, - 2CB5DA6614355FCA00D3A656 /* jvmticmlr.h */, - ); - name = include; - path = "../../../../../build/macosx-universal/j2sdk-bundle/1.7.0.jdk/Contents/Home/include"; - sourceTree = ""; - }; - 2CB5DA5F14355FCA00D3A656 /* darwin */ = { - isa = PBXGroup; - children = ( - 2CB5DA6014355FCA00D3A656 /* jawt_md.h */, - 2CB5DA6114355FCA00D3A656 /* jni_md.h */, - ); - path = darwin; - sourceTree = ""; - }; - 89D3CD28142EEB2200A08AED /* resources */ = { - isa = PBXGroup; - children = ( - 89D3CD29142EEB2200A08AED /* InfoPlist.strings */, - 89D3CD2B142EEB2200A08AED /* GenericApp.icns */, - 89D3CD2C142EEB2200A08AED /* JavaAppLauncher-Info.plist */, - ); - path = resources; - sourceTree = ""; - }; - 89D3CD2D142EEB2200A08AED /* src */ = { - isa = PBXGroup; - children = ( - 89D3CD31142EEB2200A08AED /* main.m */, - 89D3D363143041F000A08AED /* JavaAppLauncher.h */, - 89D3D364143041F000A08AED /* JavaAppLauncher.m */, - 89D3CD2F142EEB2200A08AED /* JVMArgs.h */, - 89D3CD30142EEB2200A08AED /* JVMArgs.m */, - 89D3CD2E142EEB2200A08AED /* JavaAppLauncher_Prefix.pch */, - ); - path = src; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 8D1107260486CEB800E47090 /* JavaAppLauncher */ = { - isa = PBXNativeTarget; - buildConfigurationList = C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "JavaAppLauncher" */; - buildPhases = ( - 8D1107290486CEB800E47090 /* Resources */, - 2C48F06614350F0F00F2AEFD /* Copy PlugIns */, - 8D11072C0486CEB800E47090 /* Sources */, - 8D11072E0486CEB800E47090 /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = JavaAppLauncher; - productInstallPath = "$(HOME)/Applications"; - productName = JavaAppLauncher; - productReference = 8D1107320486CEB800E47090 /* JavaAppLauncher.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 29B97313FDCFA39411CA2CEA /* Project object */ = { - isa = PBXProject; - buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "JavaAppLauncher" */; - compatibilityVersion = "Xcode 3.1"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - en, - English, - ); - mainGroup = 29B97314FDCFA39411CA2CEA /* JavaAppLauncher */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 8D1107260486CEB800E47090 /* JavaAppLauncher */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 8D1107290486CEB800E47090 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 89D3CD32142EEB2200A08AED /* InfoPlist.strings in Resources */, - 89D3CD33142EEB2200A08AED /* GenericApp.icns in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 8D11072C0486CEB800E47090 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 89D3CD35142EEB2200A08AED /* JVMArgs.m in Sources */, - 89D3CD36142EEB2200A08AED /* main.m in Sources */, - 89D3D365143041F000A08AED /* JavaAppLauncher.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ - 89D3CD29142EEB2200A08AED /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - 89D3CD2A142EEB2200A08AED /* English */, - ); - name = InfoPlist.strings; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - C01FCF4B08A954540054247B /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_MODEL_TUNING = G5; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = src/JavaAppLauncher_Prefix.pch; - INFOPLIST_FILE = "resources/JavaAppLauncher-Info.plist"; - INSTALL_PATH = "$(HOME)/Applications"; - LIBRARY_SEARCH_PATHS = "$(inherited)"; - PRODUCT_NAME = JavaAppLauncher; - }; - name = Debug; - }; - C01FCF4C08A954540054247B /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_MODEL_TUNING = G5; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = src/JavaAppLauncher_Prefix.pch; - INFOPLIST_FILE = "resources/JavaAppLauncher-Info.plist"; - INSTALL_PATH = "$(HOME)/Applications"; - LIBRARY_SEARCH_PATHS = "$(inherited)"; - PRODUCT_NAME = JavaAppLauncher; - }; - name = Release; - }; - C01FCF4F08A954540054247B /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - ONLY_ACTIVE_ARCH = YES; - PREBINDING = NO; - SDKROOT = ""; - }; - name = Debug; - }; - C01FCF5008A954540054247B /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - PREBINDING = NO; - SDKROOT = ""; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "JavaAppLauncher" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C01FCF4B08A954540054247B /* Debug */, - C01FCF4C08A954540054247B /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - C01FCF4E08A954540054247B /* Build configuration list for PBXProject "JavaAppLauncher" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C01FCF4F08A954540054247B /* Debug */, - C01FCF5008A954540054247B /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; -} diff -r aec458f88f96 -r e8971dbd447d jdk/src/macosx/bundle/JavaAppLauncher/resources/English.lproj/InfoPlist.strings --- a/jdk/src/macosx/bundle/JavaAppLauncher/resources/English.lproj/InfoPlist.strings Fri Aug 01 14:09:19 2014 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -/* Localized versions of Info.plist keys */ - diff -r aec458f88f96 -r e8971dbd447d jdk/src/macosx/bundle/JavaAppLauncher/resources/JavaAppLauncher-Info.plist --- a/jdk/src/macosx/bundle/JavaAppLauncher/resources/JavaAppLauncher-Info.plist Fri Aug 01 14:09:19 2014 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIconFile - GenericApp.icns - CFBundleIdentifier - com.yourcompany.${PRODUCT_NAME:rfc1034identifier} - CFBundleDisplayName - Your Cool App - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSMinimumSystemVersion - ${MACOSX_DEPLOYMENT_TARGET} - NSHumanReadableCopyright - Copyright © 2011 Your Company Inc. All Rights Reserved. - JVMInfo - - JRE - 1.7.0.jre - ClassPath - - Properties - - apple.laf.useScreenMenuBar - true - - MainClass - com.yourcompany.yourapp.mainclass - Arguments - - - - diff -r aec458f88f96 -r e8971dbd447d jdk/src/macosx/bundle/JavaAppLauncher/src/JVMArgs.h --- a/jdk/src/macosx/bundle/JavaAppLauncher/src/JVMArgs.h Fri Aug 01 14:09:19 2014 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,62 +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. - */ - -#import - -#import "jni.h" - - -@interface JVMArgs : NSObject { -@public - NSBundle *jreBundle; - char *preferredJVMLib; - JavaVMInitArgs vm_args; - BOOL startOnFirstThread; - BOOL debug; - - NSDictionary *appInfo; - NSMutableDictionary *jvmInfo; - - NSString *userHome; - NSString *appPackage; - NSString *javaRoot; -} - -@property (retain, nonatomic) NSBundle *jreBundle; -@property (nonatomic) char *preferredJVMLib; -@property (nonatomic) JavaVMInitArgs vm_args; -@property (nonatomic) BOOL startOnFirstThread; -@property (nonatomic) BOOL debug; - -@property (retain, nonatomic) NSDictionary *appInfo; -@property (retain, nonatomic) NSMutableDictionary *jvmInfo; - -@property (retain, nonatomic) NSString *userHome; -@property (retain, nonatomic) NSString *appPackage; -@property (retain, nonatomic) NSString *javaRoot; - -+ (JVMArgs *)jvmArgsForBundle:(NSBundle *)appBundle argc:(int)argc argv:(char *[])argv; - -@end diff -r aec458f88f96 -r e8971dbd447d jdk/src/macosx/bundle/JavaAppLauncher/src/JVMArgs.m --- a/jdk/src/macosx/bundle/JavaAppLauncher/src/JVMArgs.m Fri Aug 01 14:09:19 2014 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,236 +0,0 @@ -/* - * Copyright (c) 2011, 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. 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. - */ - -#import "JVMArgs.h" - - -#define kArgsFailure "JVMArgsFailure" - -NSString *kArgumentsKey = @"Arguments"; - -NSString *kClassPathKey = @"ClassPath"; -#ifdef __i386__ -NSString *kArchClassPathKey = @"ClassPath.i386"; -#elif __x86_64__ -NSString *kArchClassPathKey = @"ClassPath.x86_64"; -#endif - -NSString *kVMOptionsKey = @"VMOptions"; -#ifdef __i386__ -NSString *kArchVMOptionsKey = @"VMOptions.i386"; -#elif __x86_64__ -NSString *kArchVMOptionsKey = @"VMOptions.x86_64"; -#endif - - -@implementation JVMArgs - -@synthesize jreBundle; -@synthesize preferredJVMLib; -@synthesize vm_args; -@synthesize startOnFirstThread; -@synthesize debug; - -@synthesize appInfo; -@synthesize jvmInfo; - -@synthesize userHome; -@synthesize appPackage; -@synthesize javaRoot; - -- (void) dealloc { - self.jreBundle = nil; - if (self.preferredJVMLib) free(self.preferredJVMLib); - - self.appInfo = nil; - self.jvmInfo = nil; - - self.userHome = nil; - self.appPackage = nil; - self.javaRoot = nil; - - [super dealloc]; -} - - -NSString *GetJavaRoot(NSDictionary *jvmInfoDict) { - NSObject *javaRoot = [jvmInfoDict objectForKey:@"$JAVAROOT"]; - if (![javaRoot isKindOfClass:[NSString class]]) return @"$APP_PACKAGE/Contents/Java"; - return (NSString *)javaRoot; -} - -// Replaces occurances of $JAVAROOT, $APP_PACKAGE, and $USER_HOME -- (NSString *) expandMacros:(NSString *)str { - if ([str rangeOfString:@"$JAVAROOT"].length == 0 && [str rangeOfString:@"$APP_PACKAGE"].length == 0 && [str rangeOfString:@"$USER_HOME"].length == 0) return str; - - // expand $JAVAROOT first, because it can contain $APP_PACKAGE - NSMutableString *mutable = [str mutableCopy]; - [mutable replaceOccurrencesOfString:@"$JAVAROOT" withString:javaRoot options:0 range:NSMakeRange(0, [str length])]; - [mutable replaceOccurrencesOfString:@"$APP_PACKAGE" withString:appPackage options:0 range:NSMakeRange(0, [str length])]; - [mutable replaceOccurrencesOfString:@"$USER_HOME" withString:userHome options:0 range:NSMakeRange(0, [str length])]; - return mutable; -} - -- (NSArray *) arrayFrom:(id) obj delimitedBy:(NSString *)delimiter withErrKey:(NSString *)key { - if (obj == nil) return nil; - if ([obj isKindOfClass:[NSArray class]]) return obj; - if (![obj isKindOfClass:[NSString class]]) { - [NSException raise:@kArgsFailure format:@"%@", [NSString stringWithFormat:@"Failed to find '%@' array in JVMInfo Info.plist"]]; - } - - // split - return [(NSString *)obj componentsSeparatedByString:delimiter]; -} - -- (void) buildArgsForBundle:(NSBundle *)appBundle argc:(int)argc argv:(char *[])argv { - // for verbose logging - self.debug = NULL != getenv("JAVA_LAUNCHER_VERBOSE"); - - self.appInfo = [appBundle infoDictionary]; - - // all apps must have a JVMInfo dictionary inside their Info.plist - self.jvmInfo = [[self.appInfo objectForKey:@"JVMInfo"] mutableCopy]; - if (![jvmInfo isKindOfClass:[NSDictionary class]]) { - [NSException raise:@kArgsFailure format:@"Failed to find 'JVMInfo' dictionary in Info.plist"]; - } - - // initialize macro expansion values - self.userHome = NSHomeDirectory(); - self.appPackage = [appBundle bundlePath]; - self.javaRoot = GetJavaRoot(jvmInfo); - self.javaRoot = [self expandMacros:self.javaRoot]; // dereference $APP_PACKAGE - - // if the 'Arguments' key is defined, those override the ones that came into main() - NSArray *jvmInfoArgs = [jvmInfo valueForKey:kArgumentsKey]; - if (jvmInfoArgs != nil) { - // substitute all the variables in the 'Arguments' array/string - jvmInfoArgs = [self arrayFrom:jvmInfoArgs delimitedBy:@" " withErrKey:kArgumentsKey]; - NSMutableArray *arguments = [NSMutableArray arrayWithCapacity:[jvmInfoArgs count]]; - [jvmInfoArgs enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { - [arguments replaceObjectAtIndex:idx withObject:[self expandMacros:[obj description]]]; - }]; - [jvmInfo setObject:arguments forKey:kArgumentsKey]; - } else if (argc != 0) { - // put the (macro expanded) args to main() in an NSArray - NSMutableArray *arguments = [NSMutableArray arrayWithCapacity:argc]; - for (int i = 0; i < argc; i++) { - [arguments addObject:[self expandMacros:[NSString stringWithUTF8String:(argv[i])]]]; - } - [jvmInfo setObject:arguments forKey:kArgumentsKey]; - } - - // all JVMInfo's must have a JRE or JDK key - NSString *jreBundleName = [jvmInfo objectForKey:@"JRE"]; - if (!jreBundleName) jreBundleName = [jvmInfo objectForKey:@"JDK"]; - if (![jreBundleName isKindOfClass:[NSString class]]) { - [NSException raise:@kArgsFailure format:@"Failed to find 'JRE' or 'JDK' string in Info.plist JVMInfo"]; - } - - // the JRE/JDK must be loadable from the ($APP_PACKAGE)/Contents/PlugIns/ directory - NSURL *jreBundleURL = [[appBundle builtInPlugInsURL] URLByAppendingPathComponent:jreBundleName]; - self.jreBundle = [NSBundle bundleWithURL:jreBundleURL]; - if (!self.jreBundle) { - [NSException raise:@kArgsFailure format:@"Failed to find JRE/JDK at: %@", jreBundleURL]; - } - - // if the app prefers 'client' or 'server', use the JVM key - NSString *JVMLib = [jvmInfo objectForKey:@"JVM"]; - if (JVMLib != nil) self.preferredJVMLib = strdup([JVMLib UTF8String]); - - // sniff for StartOnFirstThread - if ([[jvmInfo objectForKey:@"StartOnFirstThread"] boolValue]) { - self.startOnFirstThread = YES; - } else if ([[jvmInfo objectForKey:@"StartOnMainThread"] boolValue]) { - // for key compatibility with the Apple JavaApplicationStub's 'Java' dictionary - self.startOnFirstThread = YES; - } - - // add $JAVAROOT directory to the JNI library search path - setenv("JAVA_LIBRARY_PATH", [javaRoot UTF8String], 1); - - // 'WorkingDirectory' key changes current working directory - NSString *javaWorkingDir = [jvmInfo objectForKey:@"WorkingDirectory"]; - if (javaWorkingDir == nil) javaWorkingDir = @"$APP_PACKAGE/.."; - javaWorkingDir = [self expandMacros:javaWorkingDir]; - if (chdir([javaWorkingDir UTF8String]) == -1) { - NSLog(@kArgsFailure " chdir() failed, could not change the current working directory to %s\n", [javaWorkingDir UTF8String]); - } - - NSMutableArray *classpath = [NSMutableArray array]; - - // 'Jar' key sets exactly one classpath entry - NSString *jarFile = [jvmInfo objectForKey:@"Jar"]; - if (jarFile != nil) { - [jvmInfo setObject:[self expandMacros:jarFile] forKey:@"Jar"]; - [classpath addObject:jarFile]; - } - - // 'ClassPath' key allows arbitrary classpath - [classpath addObjectsFromArray:[self arrayFrom:[jvmInfo objectForKey:kClassPathKey] delimitedBy:@":" withErrKey:kClassPathKey]]; - [classpath addObjectsFromArray:[self arrayFrom:[jvmInfo objectForKey:kArchClassPathKey] delimitedBy:@":" withErrKey:kArchClassPathKey]]; - - // Sum up all the classpath entries into one big JVM arg - NSMutableString *classpathOption = [NSMutableString stringWithString:@"-Djava.class.path="]; - [classpath enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { - if (idx > 1) [classpathOption appendString:@":"]; - [classpathOption appendString:obj]; - }]; - - NSMutableArray *jvmOptions = [NSMutableArray arrayWithObject:classpathOption]; - - // 'VMOptions' key allows arbitary VM start up options - [jvmOptions addObjectsFromArray:[self arrayFrom:[jvmInfo objectForKey:kVMOptionsKey] delimitedBy:@" " withErrKey:kVMOptionsKey]]; - [jvmOptions addObjectsFromArray:[self arrayFrom:[jvmInfo objectForKey:kArchVMOptionsKey] delimitedBy:@" " withErrKey:kArchVMOptionsKey]]; - - // 'Properties' key is a sub-dictionary transfered to initial System.properties - NSDictionary *properties = [jvmInfo objectForKey:@"Properties"]; - if (properties != nil) { - if (![properties isKindOfClass:[NSDictionary class]]) { - [NSException raise:@kArgsFailure format:@"Failed to find 'Properties' dictionary in Info.plist JVMInfo"]; - } - - [properties enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) { - [jvmOptions addObject:[NSString stringWithFormat:@"-D%@=%@", key, obj]]; - }]; - } - - // build the real JVM init args struct - vm_args.version = JNI_VERSION_1_6; - vm_args.ignoreUnrecognized = JNI_TRUE; - vm_args.nOptions = [jvmOptions count]; - vm_args.options = calloc(vm_args.nOptions, sizeof(JavaVMOption)); - [jvmOptions enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { - NSString *expanded = [self expandMacros:[obj description]]; // turn everything into a string, and expand macros - vm_args.options[idx].optionString = strdup([expanded UTF8String]); - }]; -} - -+ (JVMArgs *)jvmArgsForBundle:(NSBundle *)appBundle argc:(int)argc argv:(char *[])argv { - JVMArgs *args = [JVMArgs new]; - [args buildArgsForBundle:appBundle argc:argc argv:argv]; - return [args autorelease]; -} - -@end diff -r aec458f88f96 -r e8971dbd447d jdk/src/macosx/bundle/JavaAppLauncher/src/JavaAppLauncher.h --- a/jdk/src/macosx/bundle/JavaAppLauncher/src/JavaAppLauncher.h Fri Aug 01 14:09:19 2014 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +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. - */ - -#import - -#import "jni.h" - -#import "JVMArgs.h" - - -@interface JavaAppLauncher : NSObject { - JVMArgs *args; - JavaVM *jvm; -} - -@property (retain) JVMArgs *args; - -- (void) findAndLoadJVM; -- (void) invokeBundledAppJavaLauncherWithEnv:(JNIEnv *)env; - -@end diff -r aec458f88f96 -r e8971dbd447d jdk/src/macosx/bundle/JavaAppLauncher/src/JavaAppLauncher.m --- a/jdk/src/macosx/bundle/JavaAppLauncher/src/JavaAppLauncher.m Fri Aug 01 14:09:19 2014 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,133 +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. - */ - -#import "JavaAppLauncher.h" - -#import - -#import "jni.h" - -#define kLaunchFailure "JavaAppLauncherFailure" - - -typedef jint (JNICALL *CreateJavaVM_t)(JavaVM **pvm, void **env, void *args); -typedef void (JNICALL *SetPreferredJVM_t)(const char *prefJVM); - - -@implementation JavaAppLauncher - -@synthesize args; - -- (void) findAndLoadJVM { - NSAutoreleasePool *pool = [NSAutoreleasePool new]; - - @try { - // load the libjli.dylib of the embedded JRE (or JDK) bundle - NSURL *jreBundleURL = [args.jreBundle bundleURL]; - CFBundleRef jreBundle = CFBundleCreate(NULL, (CFURLRef)jreBundleURL); - - NSError *err = nil; - Boolean jreBundleLoaded = CFBundleLoadExecutableAndReturnError(jreBundle, (CFErrorRef *)&err); - if (err != nil || !jreBundleLoaded) { - [NSException raise:@kLaunchFailure format:@"could not load the JRE/JDK: %@", err]; - } - - // if there is a preferred libjvm to load, set it here - if (args.preferredJVMLib != NULL) { - SetPreferredJVM_t setPrefJVMFxnPtr = CFBundleGetFunctionPointerForName(jreBundle, CFSTR("JLI_SetPreferredJVM")); - if (setPrefJVMFxnPtr != NULL) { - setPrefJVMFxnPtr(args.preferredJVMLib); - } else { - NSLog(@"No JLI_SetPreferredJVM in JRE/JDK primary executable, failed to set preferred JVM library to: %s", args->preferredJVMLib); - } - } - - // pull the JNI_CreateJavaVM function pointer out of the primary executable of the JRE/JDK bundle - CreateJavaVM_t createJVMFxnPtr = CFBundleGetFunctionPointerForName(jreBundle, CFSTR("JNI_CreateJavaVM")); - if (createJVMFxnPtr == NULL) { - [NSException raise:@kLaunchFailure format:@"null JNI_CreateJavaVM fxn ptr from: %@", jreBundle]; - } - - // instantiate the JVM - JNIEnv *env; - jint createJVMStatus = createJVMFxnPtr(&jvm, (void **)&env, &(args->vm_args)); - if (createJVMStatus != JNI_OK) { - [NSException raise:@kLaunchFailure format:@"failed to JNI_CreateJavaVM (%d): %@", createJVMStatus, jreBundle]; - } - - // check the app needs to run the Java main() on the main thread - if (args.startOnFirstThread) { - dispatch_sync(dispatch_get_main_queue(), ^(void) { - JNIEnv *mainThreadEnv; - (*jvm)->AttachCurrentThread(jvm, (void **)&mainThreadEnv, NULL); - [self invokeBundledAppJavaLauncherWithEnv:mainThreadEnv]; - (*jvm)->DetachCurrentThread(jvm); - }); - } else { - [self invokeBundledAppJavaLauncherWithEnv:env]; - } - - } @catch (NSException *e) { - NSLog(@"%@: %@", e, [e callStackSymbols]); - } - - if (jvm) { - (*jvm)->DetachCurrentThread(jvm); - (*jvm)->DestroyJavaVM(jvm); - } - - [pool drain]; -} - -static const char kLauncherClassName[] = "apple/launcher/JavaAppLauncher"; - -- (void) invokeBundledAppJavaLauncherWithEnv:(JNIEnv *)env { - // hand off control to the apple.launcher.JavaAppLauncher class - - jclass mainClass = (*env)->FindClass(env, kLauncherClassName); - if (mainClass == NULL) { - fprintf(stderr, kLaunchFailure " FindClass() failed for class %s:\n", kLauncherClassName); - (*env)->ExceptionDescribe(env); - return; - } - - jmethodID mainMethod = (*env)->GetStaticMethodID(env, mainClass, "launch", "(JZ)V"); - if ((mainMethod == NULL) || (*env)->ExceptionOccurred(env)) { - fprintf(stderr, kLaunchFailure " GetStaticMethodID() failed for launch() method"); - (*env)->ExceptionDescribe(env); - return; - } - - CFDictionaryRef jvmInfo = CFRetain(args.jvmInfo); - - (*env)->CallStaticVoidMethod(env, mainClass, mainMethod, (jlong)jvmInfo, (jboolean)args.debug); - if ((*env)->ExceptionOccurred(env)) { - fprintf(stderr, kLaunchFailure " CallStaticVoidMethod() threw an exception\n"); - (*env)->ExceptionDescribe(env); - return; - } -} - -@end diff -r aec458f88f96 -r e8971dbd447d jdk/src/macosx/bundle/JavaAppLauncher/src/JavaAppLauncher_Prefix.pch --- a/jdk/src/macosx/bundle/JavaAppLauncher/src/JavaAppLauncher_Prefix.pch Fri Aug 01 14:09:19 2014 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,32 +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. - */ - -// -// Prefix header for all source files of the 'JavaAppLauncher' target in the 'JavaAppLauncher' project -// - -#ifdef __OBJC__ - #import -#endif diff -r aec458f88f96 -r e8971dbd447d jdk/src/macosx/bundle/JavaAppLauncher/src/main.m --- a/jdk/src/macosx/bundle/JavaAppLauncher/src/main.m Fri Aug 01 14:09:19 2014 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,80 +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. - */ - -#import - -#import "JVMArgs.h" -#import "JavaAppLauncher.h" - - -static void dummyTimer(CFRunLoopTimerRef timer, void *info) {} -static void ParkEventLoop() { - // RunLoop needs at least one source, and 1e20 is pretty far into the future - CFRunLoopTimerRef t = CFRunLoopTimerCreate(kCFAllocatorDefault, 1.0e20, 0.0, 0, 0, dummyTimer, NULL); - CFRunLoopAddTimer(CFRunLoopGetCurrent(), t, kCFRunLoopDefaultMode); - CFRelease(t); - - // Park this thread in the main run loop. - int32_t result; - do { - result = CFRunLoopRunInMode(kCFRunLoopDefaultMode, 1.0e20, false); - } while (result != kCFRunLoopRunFinished); -} - -int main(int argc, char *argv[]) { - NSAutoreleasePool *pool = [NSAutoreleasePool new]; - - @try { - NSBundle *mainBundle = [NSBundle mainBundle]; - - // pick apart the Info.plist, and release all the temporary objects - NSAutoreleasePool *argParsingPool = [NSAutoreleasePool new]; - JVMArgs *args = [JVMArgs jvmArgsForBundle:mainBundle argc:argc argv:argv]; - JavaAppLauncher *launcher = [JavaAppLauncher new]; - launcher.args = args; - [argParsingPool drain]; - - // kick off a new thread to instantiate the JVM on - NSThread *thread = [[NSThread alloc] initWithTarget:launcher selector:@selector(findAndLoadJVM) object:nil]; - struct rlimit limit; - int err = getrlimit(RLIMIT_STACK, &limit); - if (err == 0 && limit.rlim_cur != 0LL) { - [thread setStackSize:limit.rlim_cur]; - } - [thread start]; - [thread release]; - - [launcher release]; - - ParkEventLoop(); - - } @catch (NSException *e) { - NSLog(@"%@: %@", e, [e callStackSymbols]); - } - - [pool drain]; - - return 0; -} diff -r aec458f88f96 -r e8971dbd447d jdk/src/macosx/classes/apple/launcher/JavaAppLauncher.java --- a/jdk/src/macosx/classes/apple/launcher/JavaAppLauncher.java Fri Aug 01 14:09:19 2014 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,239 +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. - */ - -package apple.launcher; - -import java.io.*; -import java.lang.reflect.*; -import java.text.MessageFormat; -import java.util.*; -import java.util.jar.*; - -import javax.swing.*; - -class JavaAppLauncher implements Runnable { - static { - java.security.AccessController.doPrivileged( - new java.security.PrivilegedAction() { - public Void run() { - System.loadLibrary("osx"); - return null; - } - }); - } - - private static native T nativeConvertAndRelease(final long ptr); - private static native void nativeInvokeNonPublic(Class cls, Method m, String[] args); - - // entry point from native - static void launch(final long javaDictionaryPtr, final boolean verbose) { - final Map javaDictionary = nativeConvertAndRelease(javaDictionaryPtr); - (new JavaAppLauncher(javaDictionary, verbose)).run(); - } - - // these are the values for the enumeration JavaFailureMode - static final String kJavaFailureMainClassNotSpecified = "MainClassNotSpecified"; - static final String kJavaFailureMainClassNotFound = "CannotLoadMainClass"; - static final String kJavaFailureMainClassHasNoMain = "NoMainMethod"; - static final String kJavaFailureMainClassMainNotStatic = "MainNotStatic"; - static final String kJavaFailureMainThrewException = "MainThrewException"; - static final String kJavaFailureMainInitializerException = "MainInitializerException"; - - final boolean verbose; // Normally set by environment variable JAVA_LAUNCHER_VERBOSE. - final Map javaDictionary; - - JavaAppLauncher(final Map javaDictionary, final boolean verbose) { - this.verbose = verbose; - this.javaDictionary = javaDictionary; - } - - @Override - public void run() { - final Method m = loadMainMethod(getMainMethod()); - final String methodName = m.getDeclaringClass().getName() + ".main(String[])"; - try { - log("Calling " + methodName + " method"); - m.invoke(null, new Object[] { getArguments() }); - log(methodName + " has returned"); - } catch (final IllegalAccessException x) { - try { - nativeInvokeNonPublic(m.getClass(), m, getArguments()); - } catch (final Throwable excpt) { - logError(methodName + " threw an exception:"); - if ((excpt instanceof UnsatisfiedLinkError) && excpt.getMessage().equals("nativeInvokeNonPublic")) { - showFailureAlertAndKill(kJavaFailureMainThrewException, "nativeInvokeNonPublic not registered"); - } else { - excpt.printStackTrace(); - showFailureAlertAndKill(kJavaFailureMainThrewException, excpt.toString()); - } - } - } catch (final InvocationTargetException invokeExcpt) { - logError(methodName + " threw an exception:"); - invokeExcpt.getTargetException().printStackTrace(); - showFailureAlertAndKill(kJavaFailureMainThrewException, invokeExcpt.getTargetException().toString()); - } - } - - Method loadMainMethod(final String mainClassName) { - try { - final Class mainClass = Class.forName(mainClassName, true, sun.misc.Launcher.getLauncher().getClassLoader()); - final Method mainMethod = mainClass.getDeclaredMethod("main", new Class[] { String[].class }); - if ((mainMethod.getModifiers() & Modifier.STATIC) == 0) { - logError("The main(String[]) method of class " + mainClassName + " is not static!"); - showFailureAlertAndKill(kJavaFailureMainClassMainNotStatic, mainClassName); - } - return mainMethod; - } catch (final ExceptionInInitializerError x) { - logError("The main class \"" + mainClassName + "\" had a static initializer throw an exception."); - x.getException().printStackTrace(); - showFailureAlertAndKill(kJavaFailureMainInitializerException, x.getException().toString()); - } catch (final ClassNotFoundException x) { - logError("The main class \"" + mainClassName + "\" could not be found."); - showFailureAlertAndKill(kJavaFailureMainClassNotFound, mainClassName); - } catch (final NoSuchMethodException x) { - logError("The main class \"" + mainClassName + "\" has no static main(String[]) method."); - showFailureAlertAndKill(kJavaFailureMainClassHasNoMain, mainClassName); - } catch (final NullPointerException x) { - logError("No main class specified"); - showFailureAlertAndKill(kJavaFailureMainClassNotSpecified, null); - } - - return null; - } - - // get main class name from 'Jar' key, or 'MainClass' key - String getMainMethod() { - final Object javaJar = javaDictionary.get("Jar"); - if (javaJar != null) { - if (!(javaJar instanceof String)) { - logError("'Jar' key in 'Java' sub-dictionary of Info.plist requires a string value"); - return null; - } - - final String jarPath = (String)javaJar; - if (jarPath.length() == 0) { - log("'Jar' key of sub-dictionary 'Java' of Info.plist key is empty"); - } else { - // extract main class from manifest of this jar - final String main = getMainFromManifest(jarPath); - if (main == null) { - logError("jar file '" + jarPath + "' does not have Main-Class: attribute in its manifest"); - return null; - } - - log("Main class " + main + " found in jar manifest"); - return main; - } - } - - final Object javaMain = javaDictionary.get("MainClass"); - if (!(javaMain instanceof String)) { - logError("'MainClass' key in 'Java' sub-dictionary of Info.plist requires a string value"); - return null; - } - - final String main = (String)javaMain; - if (main.length() == 0) { - log("'MainClass' key of sub-dictionary 'Java' of Info.plist key is empty"); - return null; - } - - log("Main class " + (String)javaMain + " found via 'MainClass' key of sub-dictionary 'Java' of Info.plist key"); - return (String)javaMain; - } - - // get arguments for main(String[]) out of Info.plist and command line - String[] getArguments() { - // check for 'Arguments' key, which contains the main() args if not defined in Info.plist - final Object javaArguments = javaDictionary.get("Arguments"); - if (javaArguments == null) { - // no arguments - log("No arguments for main(String[]) specified"); - return new String[0]; - } - - if (javaArguments instanceof List) { - final List args = (List)javaArguments; - final int count = args.size(); - log("Arguments to main(String[" + count + "]):"); - - final String[] result = new String[count]; - for (int i = 0; i < count; ++i) { - final Object element = args.get(i); - if (element instanceof String) { - result[i] = (String)element; - } else { - logError("Found non-string in array"); - } - log(" arg[" + i + "]=" + result[i]); - } - return result; - } - - logError("'Arguments' key in 'Java' sub-dictionary of Info.plist requires a string value or an array of strings"); - return new String[0]; - } - - // returns name of main class, or null - String getMainFromManifest(final String jarpath) { - JarFile jar = null; - try { - jar = new JarFile(jarpath); - final Manifest man = jar.getManifest(); - final Attributes attr = man.getMainAttributes(); - return attr.getValue("Main-Class"); - } catch (final IOException x) { - // shrug - } finally { - if (jar != null) { - try { - jar.close(); - } catch (final IOException x) { } - } - } - return null; - } - - void log(final String s) { - if (!verbose) return; - System.out.println("[LaunchRunner] " + s); - } - - static void logError(final String s) { - System.err.println("[LaunchRunner Error] " + s); - } - - // This kills the app and does not return! - static void showFailureAlertAndKill(final String msg, String arg) { - if (arg == null) arg = "<>"; - JOptionPane.showMessageDialog(null, getMessage(msg, arg), "", JOptionPane.ERROR_MESSAGE); - System.exit(-1); - } - - static String getMessage(final String msgKey, final Object ... args) { - final String msg = ResourceBundle.getBundle("appLauncherErrors").getString(msgKey); - return MessageFormat.format(msg, args); - } -} diff -r aec458f88f96 -r e8971dbd447d jdk/src/macosx/classes/apple/launcher/appLauncherErrors.properties --- a/jdk/src/macosx/classes/apple/launcher/appLauncherErrors.properties Fri Aug 01 14:09:19 2014 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6 +0,0 @@ -MainClassNotSpecified=No main class specified. -CannotLoadMainClass=The main class \u201C{0}\u201D could not be loaded. -NoMainMethod=The main class \u201C{0}\u201D has no \u201Cvoid main(String[])\u201D method. -MainNotStatic=The \u201Cmain(String[])\u201D method of class \u201C{0}\u201D is not static. -MainThrewException=Uncaught exception in main method: {0} -MainInitializerException=A static initializer of the main class threw an exception: {0} diff -r aec458f88f96 -r e8971dbd447d jdk/src/macosx/classes/apple/security/KeychainStore.java --- a/jdk/src/macosx/classes/apple/security/KeychainStore.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/macosx/classes/apple/security/KeychainStore.java Mon Aug 04 15:34:12 2014 -0700 @@ -74,19 +74,19 @@ * Entries that have been deleted. When something calls engineStore we'll * remove them from the keychain. */ - private Hashtable deletedEntries = new Hashtable(); + private Hashtable deletedEntries = new Hashtable<>(); /** * Entries that have been added. When something calls engineStore we'll * add them to the keychain. */ - private Hashtable addedEntries = new Hashtable(); + private Hashtable addedEntries = new Hashtable<>(); /** * Private keys and certificates are stored in a hashtable. * Hash entries are keyed by alias names. */ - private Hashtable entries = new Hashtable(); + private Hashtable entries = new Hashtable<>(); /** * Algorithm identifiers and corresponding OIDs for the contents of the PKCS12 bag we get from the Keychain. @@ -471,7 +471,7 @@ // This will be slow, but necessary. Enumerate the values and then see if the cert matches the one in the trusted cert entry. // Security framework doesn't support the same certificate twice in a keychain. - Collection allValues = entries.values(); + Collection allValues = entries.values(); for (Object value : allValues) { if (value instanceof TrustedCertEntry) { @@ -517,7 +517,7 @@ * * @return enumeration of the alias names */ - public Enumeration engineAliases() { + public Enumeration engineAliases() { permissionCheck(); return entries.keys(); } @@ -598,8 +598,8 @@ permissionCheck(); Certificate certElem; - for (Enumeration e = entries.keys(); e.hasMoreElements(); ) { - String alias = (String)e.nextElement(); + for (Enumeration e = entries.keys(); e.hasMoreElements(); ) { + String alias = e.nextElement(); Object entry = entries.get(alias); if (entry instanceof TrustedCertEntry) { certElem = ((TrustedCertEntry)entry).cert; @@ -634,8 +634,8 @@ permissionCheck(); // Delete items that do have a keychain item ref. - for (Enumeration e = deletedEntries.keys(); e.hasMoreElements(); ) { - String alias = (String)e.nextElement(); + for (Enumeration e = deletedEntries.keys(); e.hasMoreElements(); ) { + String alias = e.nextElement(); Object entry = deletedEntries.get(alias); if (entry instanceof TrustedCertEntry) { if (((TrustedCertEntry)entry).certRef != 0) { @@ -664,8 +664,8 @@ // Add all of the certs or keys in the added entries. // No need to check for 0 refs, as they are in the added list. - for (Enumeration e = addedEntries.keys(); e.hasMoreElements(); ) { - String alias = (String)e.nextElement(); + for (Enumeration e = addedEntries.keys(); e.hasMoreElements(); ) { + String alias = e.nextElement(); Object entry = addedEntries.get(alias); if (entry instanceof TrustedCertEntry) { TrustedCertEntry tce = (TrustedCertEntry)entry; @@ -730,8 +730,8 @@ // Release any stray keychain references before clearing out the entries. synchronized(entries) { - for (Enumeration e = entries.keys(); e.hasMoreElements(); ) { - String alias = (String)e.nextElement(); + for (Enumeration e = entries.keys(); e.hasMoreElements(); ) { + String alias = e.nextElement(); Object entry = entries.get(alias); if (entry instanceof TrustedCertEntry) { if (((TrustedCertEntry)entry).certRef != 0) { @@ -816,7 +816,7 @@ // Next, create X.509 Certificate objects from the raw data. This is complicated // because a certificate's public key may be too long for Java's default encryption strength. - List createdCerts = new ArrayList(); + List createdCerts = new ArrayList<>(); try { CertificateFactory cf = CertificateFactory.getInstance("X.509"); @@ -842,12 +842,12 @@ // We have our certificates in the List, so now extract them into an array of // Certificates and SecCertificateRefs. - Object[] objArray = createdCerts.toArray(); + CertKeychainItemPair[] objArray = createdCerts.toArray(new CertKeychainItemPair[0]); Certificate[] certArray = new Certificate[objArray.length]; long[] certRefArray = new long[objArray.length]; for (int i = 0; i < objArray.length; i++) { - CertKeychainItemPair addedItem = (CertKeychainItemPair)objArray[i]; + CertKeychainItemPair addedItem = objArray[i]; certArray[i] = addedItem.mCert; certRefArray[i] = addedItem.mCertificateRef; } diff -r aec458f88f96 -r e8971dbd447d jdk/src/macosx/classes/com/apple/eawt/_AppDockIconHandler.java --- a/jdk/src/macosx/classes/com/apple/eawt/_AppDockIconHandler.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/macosx/classes/com/apple/eawt/_AppDockIconHandler.java Mon Aug 04 15:34:12 2014 -0700 @@ -95,7 +95,7 @@ static Creator getCImageCreator() { try { - final Method getCreatorMethod = CImage.class.getDeclaredMethod("getCreator", new Class[] {}); + final Method getCreatorMethod = CImage.class.getDeclaredMethod("getCreator", new Class[] {}); getCreatorMethod.setAccessible(true); return (Creator)getCreatorMethod.invoke(null, new Object[] {}); } catch (final Throwable e) { diff -r aec458f88f96 -r e8971dbd447d jdk/src/macosx/classes/com/apple/laf/AquaBorder.java --- a/jdk/src/macosx/classes/com/apple/laf/AquaBorder.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/macosx/classes/com/apple/laf/AquaBorder.java Mon Aug 04 15:34:12 2014 -0700 @@ -75,7 +75,7 @@ protected AquaBorder deriveBorderForSize(final Size size) { try { final Class clazz = getClass(); - final AquaBorder border = clazz.getConstructor(new Class[] { clazz }).newInstance(new Object[] { this }); + final AquaBorder border = clazz.getConstructor(new Class[] { clazz }).newInstance(new Object[] { this }); border.setSize(size); return border; } catch (final Throwable e) { diff -r aec458f88f96 -r e8971dbd447d jdk/src/macosx/classes/com/apple/laf/AquaComboBoxButton.java --- a/jdk/src/macosx/classes/com/apple/laf/AquaComboBoxButton.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/macosx/classes/com/apple/laf/AquaComboBoxButton.java Mon Aug 04 15:34:12 2014 -0700 @@ -35,8 +35,8 @@ @SuppressWarnings("serial") // Superclass is not serializable across versions class AquaComboBoxButton extends JButton { - final protected JComboBox comboBox; - final protected JList list; + final protected JComboBox comboBox; + final protected JList list; final protected CellRendererPane rendererPane; final protected AquaComboBoxUI ui; @@ -45,7 +45,10 @@ boolean isSquare; @SuppressWarnings("serial") // anonymous class - protected AquaComboBoxButton(final AquaComboBoxUI ui, final JComboBox comboBox, final CellRendererPane rendererPane, final JList list) { + protected AquaComboBoxButton(final AquaComboBoxUI ui, + final JComboBox comboBox, + final CellRendererPane rendererPane, + final JList list) { super(""); putClientProperty("JButton.buttonType", "comboboxInternal"); @@ -163,7 +166,7 @@ } protected void doRendererPaint(final Graphics g, final ButtonModel buttonModel, final boolean editable, final Insets insets, int left, int top, int width, int height) { - final ListCellRenderer renderer = comboBox.getRenderer(); + final ListCellRenderer renderer = comboBox.getRenderer(); // fake it out! not renderPressed final Component c = renderer.getListCellRendererComponent(list, comboBox.getSelectedItem(), -1, false, false); diff -r aec458f88f96 -r e8971dbd447d jdk/src/macosx/classes/com/apple/laf/AquaComboBoxPopup.java --- a/jdk/src/macosx/classes/com/apple/laf/AquaComboBoxPopup.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/macosx/classes/com/apple/laf/AquaComboBoxPopup.java Mon Aug 04 15:34:12 2014 -0700 @@ -43,7 +43,7 @@ protected Component bottomStrut; protected boolean isPopDown = false; - public AquaComboBoxPopup(final JComboBox cBox) { + public AquaComboBoxPopup(final JComboBox cBox) { super(cBox); } @@ -93,7 +93,7 @@ final int rowCount = Math.min(maxRowCount, currentElementCount); final Dimension popupSize = new Dimension(); - final ListCellRenderer renderer = list.getCellRenderer(); + final ListCellRenderer renderer = list.getCellRenderer(); for (int i = 0; i < rowCount; i++) { final Object value = list.getModel().getElementAt(i); @@ -149,8 +149,8 @@ @Override @SuppressWarnings("serial") // anonymous class - protected JList createList() { - return new JList(comboBox.getModel()) { + protected JList createList() { + return new JList(comboBox.getModel()) { @Override public void processMouseEvent(MouseEvent e) { if (e.isMetaDown()) { diff -r aec458f88f96 -r e8971dbd447d jdk/src/macosx/classes/com/apple/laf/AquaComboBoxRenderer.java --- a/jdk/src/macosx/classes/com/apple/laf/AquaComboBoxRenderer.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/macosx/classes/com/apple/laf/AquaComboBoxRenderer.java Mon Aug 04 15:34:12 2014 -0700 @@ -29,8 +29,8 @@ import javax.swing.plaf.UIResource; @SuppressWarnings("serial") // Superclass is not serializable across versions -class AquaComboBoxRenderer extends AquaComboBoxRendererInternal implements UIResource { - public AquaComboBoxRenderer(final JComboBox comboBox) { +class AquaComboBoxRenderer extends AquaComboBoxRendererInternal implements UIResource { + public AquaComboBoxRenderer(final JComboBox comboBox) { super(comboBox); } } diff -r aec458f88f96 -r e8971dbd447d jdk/src/macosx/classes/com/apple/laf/AquaComboBoxRendererInternal.java --- a/jdk/src/macosx/classes/com/apple/laf/AquaComboBoxRendererInternal.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/macosx/classes/com/apple/laf/AquaComboBoxRendererInternal.java Mon Aug 04 15:34:12 2014 -0700 @@ -31,8 +31,8 @@ import java.awt.*; @SuppressWarnings("serial") // Superclass is not serializable across versions -class AquaComboBoxRendererInternal extends JLabel implements ListCellRenderer { - final JComboBox fComboBox; +class AquaComboBoxRendererInternal extends JLabel implements ListCellRenderer { + final JComboBox fComboBox; boolean fSelected; boolean fChecked; boolean fInList; @@ -40,7 +40,7 @@ boolean fDrawCheckedItem = true; // Provides space for a checkbox, and is translucent - public AquaComboBoxRendererInternal(final JComboBox comboBox) { + public AquaComboBoxRendererInternal(final JComboBox comboBox) { super(); fComboBox = comboBox; } @@ -72,7 +72,10 @@ } // Really means is the one with the mouse over it - public Component getListCellRendererComponent(final JList list, final Object value, int index, final boolean isSelected, final boolean cellHasFocus) { + public Component getListCellRendererComponent(final JList list, + final E value, int index, + final boolean isSelected, + final boolean cellHasFocus) { fInList = (index >= 0); // When the button wants the item painted, it passes in -1 fSelected = isSelected; if (index < 0) { diff -r aec458f88f96 -r e8971dbd447d jdk/src/macosx/classes/com/apple/laf/AquaComboBoxUI.java --- a/jdk/src/macosx/classes/com/apple/laf/AquaComboBoxUI.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/macosx/classes/com/apple/laf/AquaComboBoxUI.java Mon Aug 04 15:34:12 2014 -0700 @@ -102,13 +102,13 @@ if (now - 1000 < lastBlink) return; lastBlink = now; - final JList itemList = popup.getList(); + final JList itemList = popup.getList(); final ListUI listUI = itemList.getUI(); if (!(listUI instanceof AquaListUI)) return; final AquaListUI aquaListUI = (AquaListUI)listUI; final int selectedIndex = comboBox.getSelectedIndex(); - final ListModel dataModel = itemList.getModel(); + final ListModel dataModel = itemList.getModel(); if (dataModel == null) return; final Object value = dataModel.getElementAt(selectedIndex); @@ -125,7 +125,7 @@ // this space intentionally left blank } - protected ListCellRenderer createRenderer() { + protected ListCellRenderer createRenderer() { return new AquaComboBoxRenderer(comboBox); } @@ -185,7 +185,7 @@ final Object text = editor.getText(); - final ListModel model = listBox.getModel(); + final ListModel model = listBox.getModel(); final int items = model.getSize(); for (int i = 0; i < items; i++) { final Object element = model.getElementAt(i); @@ -423,7 +423,7 @@ return; } - final JComboBox cb = (JComboBox)parent; + final JComboBox cb = (JComboBox) parent; final int width = cb.getWidth(); final int height = cb.getHeight(); @@ -450,11 +450,11 @@ return Boolean.TRUE.equals(c.getClientProperty(AquaComboBoxUI.IS_TABLE_CELL_EDITOR)); } - protected static boolean isPopdown(final JComboBox c) { + protected static boolean isPopdown(final JComboBox c) { return c.isEditable() || Boolean.TRUE.equals(c.getClientProperty(AquaComboBoxUI.POPDOWN_CLIENT_PROPERTY_KEY)); } - protected static void triggerSelectionEvent(final JComboBox comboBox, final ActionEvent e) { + protected static void triggerSelectionEvent(final JComboBox comboBox, final ActionEvent e) { if (!comboBox.isEnabled()) return; final AquaComboBoxUI aquaUi = (AquaComboBoxUI)comboBox.getUI(); @@ -505,7 +505,7 @@ @SuppressWarnings("serial") // anonymous class private static final Action toggleSelectionAction = new AbstractAction() { public void actionPerformed(final ActionEvent e) { - final JComboBox comboBox = (JComboBox)e.getSource(); + final JComboBox comboBox = (JComboBox) e.getSource(); if (!comboBox.isEnabled()) return; if (comboBox.isEditable()) return; @@ -525,7 +525,7 @@ private final Action hideAction = new AbstractAction() { @Override public void actionPerformed(final ActionEvent e) { - final JComboBox comboBox = (JComboBox)e.getSource(); + final JComboBox comboBox = (JComboBox) e.getSource(); comboBox.firePopupMenuCanceled(); comboBox.setPopupVisible(false); } @@ -588,10 +588,11 @@ } @SuppressWarnings("unchecked") - static final RecyclableSingleton> APPLICATOR = new RecyclableSingleton>() { + static final RecyclableSingleton, AquaComboBoxUI>> APPLICATOR = new + RecyclableSingleton, AquaComboBoxUI>>() { @Override - protected ClientPropertyApplicator getInstance() { - return new ClientPropertyApplicator( + protected ClientPropertyApplicator, AquaComboBoxUI> getInstance() { + return new ClientPropertyApplicator, AquaComboBoxUI>( new Property(AquaFocusHandler.FRAME_ACTIVE_PROPERTY) { public void applyProperty(final AquaComboBoxUI target, final Object value) { if (Boolean.FALSE.equals(value)) { @@ -633,7 +634,7 @@ } } ) { - public AquaComboBoxUI convertJComponentToTarget(final JComboBox combo) { + public AquaComboBoxUI convertJComponentToTarget(final JComboBox combo) { final ComboBoxUI comboUI = combo.getUI(); if (comboUI instanceof AquaComboBoxUI) return (AquaComboBoxUI)comboUI; return null; @@ -641,7 +642,7 @@ }; } }; - static ClientPropertyApplicator getApplicator() { + static ClientPropertyApplicator, AquaComboBoxUI> getApplicator() { return APPLICATOR.get(); } } diff -r aec458f88f96 -r e8971dbd447d jdk/src/macosx/classes/com/apple/laf/AquaFileChooserUI.java --- a/jdk/src/macosx/classes/com/apple/laf/AquaFileChooserUI.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/macosx/classes/com/apple/laf/AquaFileChooserUI.java Mon Aug 04 15:34:12 2014 -0700 @@ -724,6 +724,7 @@ final Transferable transferable = dtde.getTransferable(); try { + @SuppressWarnings("unchecked") final java.util.List fileList = (java.util.List)transferable.getTransferData(DataFlavor.javaFileListFlavor); dropFiles(fileList.toArray(new File[fileList.size()])); dtde.dropComplete(true); @@ -1144,11 +1145,14 @@ } @SuppressWarnings("serial") // anonymous class - protected ListCellRenderer createDirectoryComboBoxRenderer(final JFileChooser fc) { - return new AquaComboBoxRendererInternal(directoryComboBox) { - public Component getListCellRendererComponent(final JList list, final Object value, final int index, final boolean isSelected, final boolean cellHasFocus) { - super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); - final File directory = (File)value; + protected ListCellRenderer createDirectoryComboBoxRenderer(final JFileChooser fc) { + return new AquaComboBoxRendererInternal(directoryComboBox) { + public Component getListCellRendererComponent(final JList list, + final File directory, + final int index, + final boolean isSelected, + final boolean cellHasFocus) { + super.getListCellRendererComponent(list, directory, index, isSelected, cellHasFocus); if (directory == null) { setText(""); return this; @@ -1173,7 +1177,7 @@ * Data model for a type-face selection combo-box. */ @SuppressWarnings("serial") // Superclass is not serializable across versions - protected class DirectoryComboBoxModel extends AbstractListModel implements ComboBoxModel { + protected class DirectoryComboBoxModel extends AbstractListModel implements ComboBoxModel { Vector fDirectories = new Vector(); int topIndex = -1; int fPathCount = 0; @@ -1248,7 +1252,7 @@ return fDirectories.size(); } - public Object getElementAt(final int index) { + public File getElementAt(final int index) { return fDirectories.elementAt(index); } } @@ -1257,11 +1261,14 @@ // Renderer for Types ComboBox // @SuppressWarnings("serial") // anonymous class - protected ListCellRenderer createFilterComboBoxRenderer() { - return new AquaComboBoxRendererInternal(filterComboBox) { - public Component getListCellRendererComponent(final JList list, final Object value, final int index, final boolean isSelected, final boolean cellHasFocus) { - super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); - final FileFilter filter = (FileFilter)value; + protected ListCellRenderer createFilterComboBoxRenderer() { + return new AquaComboBoxRendererInternal(filterComboBox) { + public Component getListCellRendererComponent(final JList list, + final FileFilter filter, + final int index, + final boolean isSelected, + final boolean cellHasFocus) { + super.getListCellRendererComponent(list, filter, index, isSelected, cellHasFocus); if (filter != null) setText(filter.getDescription()); return this; } @@ -1356,7 +1363,7 @@ } public void actionPerformed(final ActionEvent e) { - getFileChooser().setFileFilter((FileFilter)filterComboBox.getSelectedItem()); + getFileChooser().setFileFilter((FileFilter) filterComboBox.getSelectedItem()); } } @@ -1503,7 +1510,7 @@ fTextfieldPanel.add(tPanel, BorderLayout.CENTER); // DirectoryComboBox, left-justified, 200x20 not including drop shadow - directoryComboBox = new JComboBox(); + directoryComboBox = new JComboBox<>(); directoryComboBox.putClientProperty("JComboBox.lightweightKeyboardNavigation", "Lightweight"); fDirectoryComboBoxModel = createDirectoryComboBoxModel(fc); directoryComboBox.setModel(fDirectoryComboBoxModel); @@ -1551,7 +1558,7 @@ // Combobox filterComboBoxModel = createFilterComboBoxModel(); fc.addPropertyChangeListener(filterComboBoxModel); - filterComboBox = new JComboBox(filterComboBoxModel); + filterComboBox = new JComboBox<>(filterComboBoxModel); formatLabel.setLabelFor(filterComboBox); filterComboBox.setRenderer(createFilterComboBoxRenderer()); d = new Dimension(220, (int)filterComboBox.getMinimumSize().getHeight()); @@ -1788,7 +1795,7 @@ } } - JComboBox directoryComboBox; + JComboBox directoryComboBox; DirectoryComboBoxModel fDirectoryComboBoxModel; private final Action directoryComboBoxAction = new DirectoryComboBoxAction(); @@ -1797,7 +1804,7 @@ JTableExtension fFileList; private FilterComboBoxModel filterComboBoxModel; - JComboBox filterComboBox; + JComboBox filterComboBox; private final Action filterComboBoxAction = new FilterComboBoxAction(); private static final Dimension hstrut10 = new Dimension(10, 1); diff -r aec458f88f96 -r e8971dbd447d jdk/src/macosx/classes/com/apple/laf/AquaFocusHandler.java --- a/jdk/src/macosx/classes/com/apple/laf/AquaFocusHandler.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/macosx/classes/com/apple/laf/AquaFocusHandler.java Mon Aug 04 15:34:12 2014 -0700 @@ -131,7 +131,7 @@ c.setSelectionBackground(UIManager.getColor(bgName)); } - static void swapSelectionColors(final String prefix, final JList c, final Object value) { + static void swapSelectionColors(final String prefix, final JList c, final Object value) { if (!isComponentValid(c)) return; final Color bg = c.getSelectionBackground(); @@ -149,7 +149,7 @@ } } - static void setSelectionColors(final JList c, final String fgName, final String bgName) { + static void setSelectionColors(final JList c, final String fgName, final String bgName) { c.setSelectionForeground(UIManager.getColor(fgName)); c.setSelectionBackground(UIManager.getColor(bgName)); } diff -r aec458f88f96 -r e8971dbd447d jdk/src/macosx/classes/com/apple/laf/AquaListUI.java --- a/jdk/src/macosx/classes/com/apple/laf/AquaListUI.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/macosx/classes/com/apple/laf/AquaListUI.java Mon Aug 04 15:34:12 2014 -0700 @@ -79,7 +79,7 @@ * For a Home action, scrolls to the top. Otherwise, scroll to the end. */ public void actionPerformed(final ActionEvent e) { - final JList list = (JList)e.getSource(); + final JList list = (JList)e.getSource(); if (fHomeAction) { list.ensureIndexIsVisible(0); @@ -135,7 +135,7 @@ }*/ } - JList getComponent() { + JList getComponent() { return list; } @@ -144,7 +144,7 @@ final Rectangle rowBounds = getCellBounds(list, selectedIndex, selectedIndex); if (rowBounds == null) return; - final ListCellRenderer renderer = list.getCellRenderer(); + final ListCellRenderer renderer = list.getCellRenderer(); if (renderer == null) return; final Component rendererComponent = renderer.getListCellRendererComponent(list, value, selectedIndex, selected, true); diff -r aec458f88f96 -r e8971dbd447d jdk/src/macosx/classes/com/apple/laf/AquaTabbedPaneCopyFromBasicUI.java --- a/jdk/src/macosx/classes/com/apple/laf/AquaTabbedPaneCopyFromBasicUI.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/macosx/classes/com/apple/laf/AquaTabbedPaneCopyFromBasicUI.java Mon Aug 04 15:34:12 2014 -0700 @@ -3820,7 +3820,7 @@ _loader = null; final Class klass = (Class)loader; try { - final java.lang.reflect.Method method = klass.getDeclaredMethod("loadActionMap", new Class[] { LazyActionMap.class }); + final java.lang.reflect.Method method = klass.getDeclaredMethod("loadActionMap", new Class[] { LazyActionMap.class }); method.invoke(klass, new Object[] { this }); } catch (final NoSuchMethodException nsme) { assert false : "LazyActionMap unable to load actions " + klass; diff -r aec458f88f96 -r e8971dbd447d jdk/src/macosx/classes/com/apple/laf/AquaTableHeaderUI.java --- a/jdk/src/macosx/classes/com/apple/laf/AquaTableHeaderUI.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/macosx/classes/com/apple/laf/AquaTableHeaderUI.java Mon Aug 04 15:34:12 2014 -0700 @@ -69,6 +69,7 @@ final static RecyclableSingleton> TABLE_HEADER_APPLICATORS = new RecyclableSingleton>() { @Override + @SuppressWarnings("unchecked") protected ClientPropertyApplicator getInstance() { return new ClientPropertyApplicator( new Property("JTableHeader.selectedColumn") { diff -r aec458f88f96 -r e8971dbd447d jdk/src/macosx/classes/com/apple/laf/AquaUtilControlSize.java --- a/jdk/src/macosx/classes/com/apple/laf/AquaUtilControlSize.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/macosx/classes/com/apple/laf/AquaUtilControlSize.java Mon Aug 04 15:34:12 2014 -0700 @@ -121,7 +121,7 @@ try { // see if this component has a "getUI" method final Class clazz = c.getClass(); - final Method getUIMethod = clazz.getMethod("getUI", new Class[0]); + final Method getUIMethod = clazz.getMethod("getUI", new Class[0]); // see if that UI is one of ours that understands sizing final Object ui = getUIMethod.invoke(c, new Object[0]); diff -r aec458f88f96 -r e8971dbd447d jdk/src/macosx/classes/com/apple/laf/AquaUtils.java --- a/jdk/src/macosx/classes/com/apple/laf/AquaUtils.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/macosx/classes/com/apple/laf/AquaUtils.java Mon Aug 04 15:34:12 2014 -0700 @@ -82,7 +82,8 @@ @Override public Creator run() { try { - final Method getCreatorMethod = CImage.class.getDeclaredMethod("getCreator", new Class[] {}); + final Method getCreatorMethod = CImage.class.getDeclaredMethod( + "getCreator", new Class[] {}); getCreatorMethod.setAccessible(true); return (Creator)getCreatorMethod.invoke(null, new Object[] {}); } catch (final Exception ignored) { @@ -383,7 +384,8 @@ @Override public Method run() { try { - final Method method = JComponent.class.getDeclaredMethod("getFlag", new Class[] { int.class }); + final Method method = JComponent.class.getDeclaredMethod( + "getFlag", new Class[] { int.class }); method.setAccessible(true); return method; } catch (final Throwable ignored) { diff -r aec458f88f96 -r e8971dbd447d jdk/src/macosx/classes/com/apple/laf/ClientPropertyApplicator.java --- a/jdk/src/macosx/classes/com/apple/laf/ClientPropertyApplicator.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/macosx/classes/com/apple/laf/ClientPropertyApplicator.java Mon Aug 04 15:34:12 2014 -0700 @@ -33,6 +33,7 @@ public class ClientPropertyApplicator implements PropertyChangeListener { private final Map> properties = new HashMap>(); + @SuppressWarnings("unchecked") public ClientPropertyApplicator(final Property... propertyList) { for (final Property p : propertyList) { properties.put(p.name, p); diff -r aec458f88f96 -r e8971dbd447d jdk/src/macosx/classes/com/apple/laf/ScreenMenuBar.java --- a/jdk/src/macosx/classes/com/apple/laf/ScreenMenuBar.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/macosx/classes/com/apple/laf/ScreenMenuBar.java Mon Aug 04 15:34:12 2014 -0700 @@ -25,6 +25,9 @@ package com.apple.laf; +import sun.awt.AWTAccessor; +import sun.lwawt.macosx.CMenuBar; + import java.awt.*; import java.awt.event.*; import java.lang.reflect.*; @@ -243,54 +246,25 @@ fSubmenus.remove(menu); } - private static Field[] stolenFields = null; - - static { - stolenFields = AccessController.doPrivileged(new PrivilegedAction() { - public Field[] run() { - try { - final Field[] localFields = new Field[2]; - localFields[0] = MenuBar.class.getDeclaredField("menus"); - localFields[1] = MenuComponent.class.getDeclaredField("parent"); - AccessibleObject.setAccessible(localFields, true); - return localFields; - } catch (final NoSuchFieldException nsf) { - // If this happens, Sun changed the definition of MenuBar and MenuComponent! - nsf.printStackTrace(System.err); - return null; - } - } - }); - }; - public Menu add(final Menu m, final int index) { synchronized (getTreeLock()) { if (m.getParent() != null) { m.getParent().remove(m); } - // Use nasty reflection to get at the menus array and parent fields. - try { - if (stolenFields == null) return m; - - final Vector menus = (Vector)stolenFields[0].get(this); - menus.insertElementAt(m, index); - - stolenFields[1].set(m, this); + final Vector menus = AWTAccessor.getMenuBarAccessor().getMenus(this); + menus.insertElementAt(m, index); + AWTAccessor.getMenuComponentAccessor().setParent(m, this); - final sun.lwawt.macosx.CMenuBar peer = (sun.lwawt.macosx.CMenuBar)getPeer(); - if (peer == null) return m; + final CMenuBar peer = (CMenuBar)getPeer(); + if (peer == null) return m; - peer.setNextInsertionIndex(index); - if (m.getPeer() == null) { - m.addNotify(); - } - - peer.setNextInsertionIndex(-1); - } catch (final IllegalAccessException iae) { - iae.printStackTrace(System.err); + peer.setNextInsertionIndex(index); + if (m.getPeer() == null) { + m.addNotify(); } + peer.setNextInsertionIndex(-1); return m; } } diff -r aec458f88f96 -r e8971dbd447d jdk/src/macosx/classes/sun/awt/datatransfer/flavormap.properties --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jdk/src/macosx/classes/sun/awt/datatransfer/flavormap.properties Mon Aug 04 15:34:12 2014 -0700 @@ -0,0 +1,76 @@ +# +# This properties file is used to initialize the default +# java.awt.datatransfer.SystemFlavorMap. It contains the Mac OS X platform-specific, +# default mappings between common Mac OS X selection atoms and platform-independent +# MIME type strings, which will be converted into +# java.awt.datatransfer.DataFlavors. +# +# The standard format is: +# +# =,, ... +# +# should be a string identifier that the native platform will +# recognize as a valid data format. should specify both a MIME +# primary type and a MIME subtype separated by a '/'. The MIME type may include +# parameters, where each parameter is a key/value pair separated by '=', and +# where each parameter to the MIME type is separated by a ';'. +# +# Because SystemFlavorMap implements FlavorTable, developers are free to +# duplicate DataFlavor values and set multiple values for a single native by +# separating them with ",". If a mapping contains a duplicate key or value, +# earlier mappings which included this key or value will be preferred. +# +# Mappings whose values specify DataFlavors with primary MIME types of +# "text", and which support the charset parameter, should specify the exact +# format in which the native platform expects the data. The "charset" +# parameter specifies the char to byte encoding, the "eoln" parameter +# specifies the end-of-line marker, and the "terminators" parameter specifies +# the number of terminating NUL bytes. Note that "eoln" and "terminators" +# are not standardized MIME type parameters. They are specific to this file +# format ONLY. They will not appear in any of the DataFlavors returned by the +# SystemFlavorMap at the Java level. +# +# If the "charset" parameter is omitted, or has zero length, the platform +# default encoding is assumed. If the "eoln" parameter is omitted, or has +# zero length, "\n" is assumed. If the "terminators" parameter is omitted, +# or has a value less than zero, zero is assumed. +# +# Upon initialization, the data transfer subsystem will record the specified +# details of the native text format, but the default SystemFlavorMap will +# present a large set of synthesized DataFlavors which map, in both +# directions, to the native. After receiving data from the application in one +# of the synthetic DataFlavors, the data transfer subsystem will transform +# the data stream into the format specified in this file before passing the +# transformed stream to the native system. +# +# Mappings whose values specify DataFlavors with primary MIME types of +# "text", but which do not support the charset parameter, will be treated as +# opaque, 8-bit data. They will not undergo any transformation process, and +# any "charset", "eoln", or "terminators" parameters specified in this file +# will be ignored. +# +# See java.awt.datatransfer.DataFlavor.selectBestTextFlavor for a list of +# text flavors which support the charset parameter. + +UTF8_STRING=text/plain;charset=UTF-8;eoln="\n";terminators=0 + +# The COMPOUND_TEXT support for inter-client text transfer is disabled by +# default. The reason is that many native applications prefer this format over +# other native text formats, but are unable to decode the textual data in this +# format properly. This results in java-to-native text transfer failures. +# To enable the COMPOUND_TEXT support for this JRE installation uncomment +# the line below. + +# COMPOUND_TEXT=text/plain;charset=x-compound-text;eoln="\n";terminators=0 + +TEXT=text/plain;eoln="\n";terminators=0 +STRING=text/plain;charset=UTF-8;eoln="\n";terminators=0 +FILE_NAME=application/x-java-file-list;class=java.util.List +text/uri-list=application/x-java-file-list;class=java.util.List +PNG=image/x-java-image;class=java.awt.Image +JFIF=image/x-java-image;class=java.awt.Image +TIFF=image/x-java-image;class=java.awt.Image +RICH_TEXT=text/rtf +HTML=text/html;charset=utf-8;eoln="\r\n";terminators=1 +URL=application/x-java-url;class=java.net.URL,\ + text/uri-list;eoln="\r\n";terminators=1 diff -r aec458f88f96 -r e8971dbd447d jdk/src/macosx/classes/sun/lwawt/macosx/CDragSourceContextPeer.java --- a/jdk/src/macosx/classes/sun/lwawt/macosx/CDragSourceContextPeer.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/macosx/classes/sun/lwawt/macosx/CDragSourceContextPeer.java Mon Aug 04 15:34:12 2014 -0700 @@ -88,7 +88,7 @@ super.startDrag(dsc, cursor, dragImage, dragImageOffset); } - protected void startDrag(Transferable transferable, long[] formats, Map formatMap) { + protected void startDrag(Transferable transferable, long[] formats, Map formatMap) { DragGestureEvent trigger = getTrigger(); InputEvent triggerEvent = trigger.getTriggerEvent(); @@ -311,7 +311,7 @@ } } - private void setDefaultDragImage(JList component) { + private void setDefaultDragImage(JList component) { Rectangle selectedOutline = null; // This code actually works, even under the (non-existant) multiple-selections, because we only draw a union outline @@ -485,7 +485,7 @@ private native long createNativeDragSource(Component component, long nativePeer, Transferable transferable, InputEvent triggerEvent, int dragPosX, int dragPosY, int extModifiers, int clickCount, long timestamp, long nsDragImagePtr, int dragImageOffsetX, int dragImageOffsetY, - int sourceActions, long[] formats, Map formatMap); + int sourceActions, long[] formats, Map formatMap); private native void doDragging(long nativeDragSource); diff -r aec458f88f96 -r e8971dbd447d jdk/src/macosx/classes/sun/lwawt/macosx/CInputMethod.java --- a/jdk/src/macosx/classes/sun/lwawt/macosx/CInputMethod.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/macosx/classes/sun/lwawt/macosx/CInputMethod.java Mon Aug 04 15:34:12 2014 -0700 @@ -44,13 +44,14 @@ public class CInputMethod extends InputMethodAdapter { private InputMethodContext fIMContext; private Component fAwtFocussedComponent; - private LWComponentPeer fAwtFocussedComponentPeer; + private LWComponentPeer fAwtFocussedComponentPeer; private boolean isActive; private static Map[] sHighlightStyles; // Intitalize highlight mapping table and its mapper. static { + @SuppressWarnings({"rawtypes", "unchecked"}) Map styles[] = new Map[4]; HashMap map; @@ -242,7 +243,7 @@ public void hideWindows() { } - long getNativeViewPtr(LWComponentPeer peer) { + long getNativeViewPtr(LWComponentPeer peer) { if (peer.getPlatformWindow() instanceof CPlatformWindow) { CPlatformWindow platformWindow = (CPlatformWindow) peer.getPlatformWindow(); CPlatformView platformView = platformWindow.getContentView(); @@ -272,7 +273,7 @@ * to talk to when responding to key events. */ protected void setAWTFocussedComponent(Component component) { - LWComponentPeer peer = null; + LWComponentPeer peer = null; long modelPtr = 0; CInputMethod imInstance = this; @@ -305,7 +306,7 @@ /** * @see java.awt.Toolkit#mapInputMethodHighlight */ - public static Map mapInputMethodHighlight(InputMethodHighlight highlight) { + public static Map mapInputMethodHighlight(InputMethodHighlight highlight) { int index; int state = highlight.getState(); if (state == InputMethodHighlight.RAW_TEXT) { @@ -384,7 +385,7 @@ // java.awt.Toolkit#getNativeContainer() is not available // from this package - private LWComponentPeer getNearestNativePeer(Component comp) { + private LWComponentPeer getNearestNativePeer(Component comp) { if (comp==null) return null; @@ -796,7 +797,7 @@ // these calls will be ignored. private native void nativeNotifyPeer(long nativePeer, CInputMethod imInstance); private native void nativeEndComposition(long nativePeer); - private native void nativeHandleEvent(LWComponentPeer peer, AWTEvent event); + private native void nativeHandleEvent(LWComponentPeer peer, AWTEvent event); // Returns the locale of the active input method. static native Locale getNativeLocale(); diff -r aec458f88f96 -r e8971dbd447d jdk/src/macosx/classes/sun/lwawt/macosx/CInputMethodDescriptor.java --- a/jdk/src/macosx/classes/sun/lwawt/macosx/CInputMethodDescriptor.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/macosx/classes/sun/lwawt/macosx/CInputMethodDescriptor.java Mon Aug 04 15:34:12 2014 -0700 @@ -57,7 +57,7 @@ } static Object[] getAvailableLocalesInternal() { - List workList = nativeGetAvailableLocales(); + List workList = nativeGetAvailableLocales(); if (workList != null) { return workList.toArray(); @@ -119,5 +119,5 @@ } private static native void nativeInit(); - private static native List nativeGetAvailableLocales(); + private static native List nativeGetAvailableLocales(); } diff -r aec458f88f96 -r e8971dbd447d jdk/src/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java --- a/jdk/src/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/macosx/classes/sun/lwawt/macosx/CPlatformWindow.java Mon Aug 04 15:34:12 2014 -0700 @@ -151,7 +151,7 @@ return (bits & mask) != 0; } - @SuppressWarnings("unchecked") + @SuppressWarnings({"unchecked", "rawtypes"}) static ClientPropertyApplicator CLIENT_PROPERTY_APPLICATOR = new ClientPropertyApplicator(new Property[] { new Property(WINDOW_DOCUMENT_MODIFIED) { public void applyProperty(final CPlatformWindow c, final Object value) { c.setStyleBits(DOCUMENT_MODIFIED, value == null ? false : Boolean.parseBoolean(value.toString())); diff -r aec458f88f96 -r e8971dbd447d jdk/src/macosx/classes/sun/lwawt/macosx/LWCToolkit.java --- a/jdk/src/macosx/classes/sun/lwawt/macosx/LWCToolkit.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/macosx/classes/sun/lwawt/macosx/LWCToolkit.java Mon Aug 04 15:34:12 2014 -0700 @@ -32,6 +32,7 @@ import java.awt.event.InputEvent; import java.awt.event.InvocationEvent; import java.awt.event.KeyEvent; +import java.awt.font.TextAttribute; import java.awt.im.InputMethodHighlight; import java.awt.im.spi.InputMethodDescriptor; import java.awt.peer.*; @@ -543,9 +544,9 @@ return super.getImage(filename); } - String fileneame2x = getScaledImageName(filename); - return (imageExists(fileneame2x)) - ? getImageWithResolutionVariant(filename, fileneame2x) + String filename2x = getScaledImageName(filename); + return (imageExists(filename2x)) + ? getImageWithResolutionVariant(filename, filename2x) : super.getImage(filename); } @@ -691,6 +692,7 @@ } @Override + @SuppressWarnings("unchecked") public T createDragGestureRecognizer( Class abstractRecognizerClass, DragSource ds, Component c, int srcActions, DragGestureListener dgl) { @@ -743,7 +745,7 @@ * @since 1.3 */ @Override - public Map mapInputMethodHighlight(InputMethodHighlight highlight) { + public Map mapInputMethodHighlight(InputMethodHighlight highlight) { return CInputMethod.mapInputMethodHighlight(highlight); } @@ -906,6 +908,9 @@ } private static boolean isValidPath(String path) { - return !path.isEmpty() && !path.endsWith("/") && !path.endsWith("."); + return path != null && + !path.isEmpty() && + !path.endsWith("/") && + !path.endsWith("."); } } diff -r aec458f88f96 -r e8971dbd447d jdk/src/macosx/lib/flavormap.properties --- a/jdk/src/macosx/lib/flavormap.properties Fri Aug 01 14:09:19 2014 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,83 +0,0 @@ -# -# This properties file is used to initialize the default -# java.awt.datatransfer.SystemFlavorMap. It contains the Mac OS X platform-specific, -# default mappings between common Mac OS X selection atoms and platform-independent -# MIME type strings, which will be converted into -# java.awt.datatransfer.DataFlavors. -# -# These default mappings may be augmented by specifying the -# -# AWT.DnD.flavorMapFileURL -# -# property in the appropriate awt.properties file. The specified properties URL -# will be loaded into the SystemFlavorMap. -# -# The standard format is: -# -# = -# -# should be a string identifier that the native platform will -# recognize as a valid data format. should specify both a MIME -# primary type and a MIME subtype separated by a '/'. The MIME type may include -# parameters, where each parameter is a key/value pair separated by '=', and -# where each parameter to the MIME type is separated by a ';'. -# -# Because SystemFlavorMap implements FlavorTable, developers are free to -# duplicate both native keys and DataFlavor values. If a mapping contains a -# duplicate key or value, earlier mappings which included this key or value -# will be preferred. -# -# Mappings whose values specify DataFlavors with primary MIME types of -# "text", and which support the charset parameter, should specify the exact -# format in which the native platform expects the data. The "charset" -# parameter specifies the char to byte encoding, the "eoln" parameter -# specifies the end-of-line marker, and the "terminators" parameter specifies -# the number of terminating NUL bytes. Note that "eoln" and "terminators" -# are not standardized MIME type parameters. They are specific to this file -# format ONLY. They will not appear in any of the DataFlavors returned by the -# SystemFlavorMap at the Java level. -# -# If the "charset" parameter is omitted, or has zero length, the platform -# default encoding is assumed. If the "eoln" parameter is omitted, or has -# zero length, "\n" is assumed. If the "terminators" parameter is omitted, -# or has a value less than zero, zero is assumed. -# -# Upon initialization, the data transfer subsystem will record the specified -# details of the native text format, but the default SystemFlavorMap will -# present a large set of synthesized DataFlavors which map, in both -# directions, to the native. After receiving data from the application in one -# of the synthetic DataFlavors, the data transfer subsystem will transform -# the data stream into the format specified in this file before passing the -# transformed stream to the native system. -# -# Mappings whose values specify DataFlavors with primary MIME types of -# "text", but which do not support the charset parameter, will be treated as -# opaque, 8-bit data. They will not undergo any transformation process, and -# any "charset", "eoln", or "terminators" parameters specified in this file -# will be ignored. -# -# See java.awt.datatransfer.DataFlavor.selectBestTextFlavor for a list of -# text flavors which support the charset parameter. - -UTF8_STRING=text/plain;charset=UTF-8;eoln="\n";terminators=0 - -# The COMPOUND_TEXT support for inter-client text transfer is disabled by -# default. The reason is that many native applications prefer this format over -# other native text formats, but are unable to decode the textual data in this -# format properly. This results in java-to-native text transfer failures. -# To enable the COMPOUND_TEXT support for this JRE installation uncomment -# the line below. - -# COMPOUND_TEXT=text/plain;charset=x-compound-text;eoln="\n";terminators=0 - -TEXT=text/plain;eoln="\n";terminators=0 -STRING=text/plain;charset=UTF-8;eoln="\n";terminators=0 -FILE_NAME=application/x-java-file-list;class=java.util.List -text/uri-list=application/x-java-file-list;class=java.util.List -PNG=image/x-java-image;class=java.awt.Image -JFIF=image/x-java-image;class=java.awt.Image -TIFF=image/x-java-image;class=java.awt.Image -RICH_TEXT=text/rtf -HTML=text/html;charset=utf-8;eoln="\r\n";terminators=1 -URL=application/x-java-url;class=java.net.URL -URL=text/uri-list;eoln="\r\n";terminators=1 diff -r aec458f88f96 -r e8971dbd447d jdk/src/macosx/native/apple/launcher/JavaAppLauncher.m --- a/jdk/src/macosx/native/apple/launcher/JavaAppLauncher.m Fri Aug 01 14:09:19 2014 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,63 +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. - */ - -#import "apple_launcher_JavaAppLauncher.h" - -#import -#import - - -/* - * Class: apple_launcher_JavaAppLauncher - * Method: nativeConvertAndRelease - * Signature: (J)Ljava/lang/Object; - */ -JNIEXPORT jobject JNICALL Java_apple_launcher_JavaAppLauncher_nativeConvertAndRelease -(JNIEnv *env, jclass clazz, jlong nsObjectPtr) { - - jobject value = NULL; - -JNF_COCOA_ENTER(env); - - id obj = jlong_to_ptr(nsObjectPtr); - value = [[JNFDefaultCoercions defaultCoercer] coerceNSObject:obj withEnv:env]; - CFRelease(obj); - -JNF_COCOA_EXIT(env); - - return value; -} - -/* - * Class: apple_launcher_JavaAppLauncher - * Method: nativeInvokeNonPublic - * Signature: (Ljava/lang/Class;Ljava/lang/reflect/Method;[Ljava/lang/String;)V - */ -JNIEXPORT void JNICALL Java_apple_launcher_JavaAppLauncher_nativeInvokeNonPublic -(JNIEnv *env, jclass clazz, jclass targetClass, jobject targetMethod, jobjectArray args) { - jmethodID mainMethodID = (*env)->FromReflectedMethod(env, targetMethod); - if ((*env)->ExceptionOccurred(env)) return; - (*env)->CallStaticVoidMethod(env, targetClass, mainMethodID, args); -} diff -r aec458f88f96 -r e8971dbd447d jdk/src/macosx/native/sun/awt/splashscreen/splashscreen_sys.m --- a/jdk/src/macosx/native/sun/awt/splashscreen/splashscreen_sys.m Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/macosx/native/sun/awt/splashscreen/splashscreen_sys.m Mon Aug 04 15:34:12 2014 -0700 @@ -45,6 +45,7 @@ #include #include +#import "ThreadUtilities.h" static NSScreen* SplashNSScreen() { @@ -130,8 +131,12 @@ NSAutoreleasePool *pool = [NSAutoreleasePool new]; *scaleFactor = 1; char* scaledFile = nil; - float screenScaleFactor = [SplashNSScreen() backingScaleFactor]; - + __block float screenScaleFactor = 1; + + [ThreadUtilities performOnMainThreadWaiting:YES block:^(){ + screenScaleFactor = [SplashNSScreen() backingScaleFactor]; + }]; + if (screenScaleFactor > 1) { NSString *fileName = [NSString stringWithUTF8String: file]; NSUInteger length = [fileName length]; diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/imageio/plugins/bmp/BMPMetadata.java --- a/jdk/src/share/classes/com/sun/imageio/plugins/bmp/BMPMetadata.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/imageio/plugins/bmp/BMPMetadata.java Mon Aug 04 15:34:12 2014 -0700 @@ -126,18 +126,18 @@ new IIOMetadataNode(nativeMetadataFormatName); addChildNode(root, "BMPVersion", bmpVersion); - addChildNode(root, "Width", new Integer(width)); - addChildNode(root, "Height", new Integer(height)); + addChildNode(root, "Width", width); + addChildNode(root, "Height", height); addChildNode(root, "BitsPerPixel", new Short(bitsPerPixel)); - addChildNode(root, "Compression", new Integer(compression)); - addChildNode(root, "ImageSize", new Integer(imageSize)); + addChildNode(root, "Compression", compression); + addChildNode(root, "ImageSize", imageSize); IIOMetadataNode node = addChildNode(root, "PixelsPerMeter", null); - addChildNode(node, "X", new Integer(xPixelsPerMeter)); - addChildNode(node, "Y", new Integer(yPixelsPerMeter)); + addChildNode(node, "X", xPixelsPerMeter); + addChildNode(node, "Y", yPixelsPerMeter); - addChildNode(root, "ColorsUsed", new Integer(colorsUsed)); - addChildNode(root, "ColorsImportant", new Integer(colorsImportant)); + addChildNode(root, "ColorsUsed", colorsUsed); + addChildNode(root, "ColorsImportant", colorsImportant); int version = 0; for (int i = 0; i < bmpVersion.length(); i++) @@ -146,19 +146,19 @@ if (version >= 4) { node = addChildNode(root, "Mask", null); - addChildNode(node, "Red", new Integer(redMask)); - addChildNode(node, "Green", new Integer(greenMask)); - addChildNode(node, "Blue", new Integer(blueMask)); - addChildNode(node, "Alpha", new Integer(alphaMask)); + addChildNode(node, "Red", redMask); + addChildNode(node, "Green", greenMask); + addChildNode(node, "Blue", blueMask); + addChildNode(node, "Alpha", alphaMask); - addChildNode(root, "ColorSpaceType", new Integer(colorSpace)); + addChildNode(root, "ColorSpaceType", colorSpace); node = addChildNode(root, "CIEXYZEndPoints", null); addXYZPoints(node, "Red", redX, redY, redZ); addXYZPoints(node, "Green", greenX, greenY, greenZ); addXYZPoints(node, "Blue", blueX, blueY, blueZ); - node = addChildNode(root, "Intent", new Integer(intent)); + node = addChildNode(root, "Intent", intent); } // Palette diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGMetadata.java --- a/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGMetadata.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/imageio/plugins/jpeg/JPEGMetadata.java Mon Aug 04 15:34:12 2014 -0700 @@ -2323,7 +2323,7 @@ SOSMarkerSegment sos = (SOSMarkerSegment) seg; SOSMarkerSegment.ScanComponentSpec [] specs = sos.componentSpecs; for (int i = 0; i < specs.length; i++) { - Integer id = new Integer(specs[i].componentSelector); + Integer id = specs[i].componentSelector; if (!ids.contains(id)) { ids.add(id); } diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/imageio/plugins/png/PNGImageReader.java --- a/jdk/src/share/classes/com/sun/imageio/plugins/png/PNGImageReader.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/imageio/plugins/png/PNGImageReader.java Mon Aug 04 15:34:12 2014 -0700 @@ -639,7 +639,7 @@ metadata.zTXt_keyword.add(keyword); int method = stream.readUnsignedByte(); - metadata.zTXt_compressionMethod.add(new Integer(method)); + metadata.zTXt_compressionMethod.add(method); byte[] b = new byte[chunkLength - keyword.length() - 2]; stream.readFully(b); diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/imageio/plugins/png/PNGMetadata.java --- a/jdk/src/share/classes/com/sun/imageio/plugins/png/PNGMetadata.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/imageio/plugins/png/PNGMetadata.java Mon Aug 04 15:34:12 2014 -0700 @@ -1254,8 +1254,11 @@ if (name.equals("IHDR")) { IHDR_width = getIntAttribute(node, "width"); IHDR_height = getIntAttribute(node, "height"); - IHDR_bitDepth = getEnumeratedAttribute(node, "bitDepth", - IHDR_bitDepths); + IHDR_bitDepth = + Integer.valueOf(IHDR_bitDepths[ + getEnumeratedAttribute(node, + "bitDepth", + IHDR_bitDepths)]); IHDR_colorType = getEnumeratedAttribute(node, "colorType", IHDR_colorTypeNames); IHDR_compressionMethod = @@ -1644,7 +1647,7 @@ int compressionMethod = getEnumeratedAttribute(zTXt_node, "compressionMethod", zTXt_compressionMethodNames); - zTXt_compressionMethod.add(new Integer(compressionMethod)); + zTXt_compressionMethod.add(compressionMethod); String text = getAttribute(zTXt_node, "text"); zTXt_text.add(text); diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/imageio/plugins/wbmp/WBMPMetadata.java --- a/jdk/src/share/classes/com/sun/imageio/plugins/wbmp/WBMPMetadata.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/imageio/plugins/wbmp/WBMPMetadata.java Mon Aug 04 15:34:12 2014 -0700 @@ -75,9 +75,9 @@ IIOMetadataNode root = new IIOMetadataNode(nativeMetadataFormatName); - addChildNode(root, "WBMPType", new Integer(wbmpType)); - addChildNode(root, "Width", new Integer(width)); - addChildNode(root, "Height", new Integer(height)); + addChildNode(root, "WBMPType", wbmpType); + addChildNode(root, "Width", width); + addChildNode(root, "Height", height); return root; } diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/java/swing/plaf/gtk/GTKLookAndFeel.java --- a/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/GTKLookAndFeel.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/GTKLookAndFeel.java Mon Aug 04 15:34:12 2014 -0700 @@ -812,12 +812,12 @@ "OptionPane.setButtonMargin", Boolean.FALSE, "OptionPane.sameSizeButtons", Boolean.TRUE, - "OptionPane.buttonOrientation", new Integer(SwingConstants.RIGHT), + "OptionPane.buttonOrientation", SwingConstants.RIGHT, "OptionPane.minimumSize", new DimensionUIResource(262, 90), - "OptionPane.buttonPadding", new Integer(10), + "OptionPane.buttonPadding", 10, "OptionPane.windowBindings", new Object[] { "ESCAPE", "close" }, - "OptionPane.buttonClickThreshhold", new Integer(500), + "OptionPane.buttonClickThreshhold", 500, "OptionPane.isYesLast", Boolean.TRUE, "OptionPane.font", new FontLazyValue(Region.OPTION_PANE), diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/java/swing/plaf/motif/MotifLookAndFeel.java --- a/jdk/src/share/classes/com/sun/java/swing/plaf/motif/MotifLookAndFeel.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/java/swing/plaf/motif/MotifLookAndFeel.java Mon Aug 04 15:34:12 2014 -0700 @@ -567,7 +567,7 @@ "ProgressBar.selectionForeground", table.get("control"), "ProgressBar.selectionBackground", table.get("controlText"), "ProgressBar.border", loweredBevelBorder, - "ProgressBar.cellLength", new Integer(6), + "ProgressBar.cellLength", 6, "ProgressBar.cellSpacing", Integer.valueOf(0), // Buttons @@ -582,7 +582,7 @@ "released SPACE", "released" }), - "CheckBox.textIconGap", new Integer(8), + "CheckBox.textIconGap", 8, "CheckBox.margin", new InsetsUIResource(4, 2, 4, 2), "CheckBox.icon", checkBoxIcon, "CheckBox.focus", table.get("activeCaptionBorder"), @@ -593,7 +593,7 @@ }), "RadioButton.margin", new InsetsUIResource(4, 2, 4, 2), - "RadioButton.textIconGap", new Integer(8), + "RadioButton.textIconGap", 8, "RadioButton.background", table.get("control"), "RadioButton.foreground", table.get("controlText"), "RadioButton.icon", radioButtonIcon, @@ -627,10 +627,10 @@ "Menu.selectionBackground", menuItemPressedBackground, "Menu.checkIcon", menuItemCheckIcon, "Menu.arrowIcon", menuArrowIcon, - "Menu.menuPopupOffsetX", new Integer(0), - "Menu.menuPopupOffsetY", new Integer(0), - "Menu.submenuPopupOffsetX", new Integer(-2), - "Menu.submenuPopupOffsetY", new Integer(3), + "Menu.menuPopupOffsetX", 0, + "Menu.menuPopupOffsetY", 0, + "Menu.submenuPopupOffsetX", -2, + "Menu.submenuPopupOffsetY", 3, "Menu.shortcutKeys", new int[]{ SwingUtilities2.getSystemMnemonicKeyMask(), KeyEvent.META_MASK @@ -938,7 +938,7 @@ "Tree.collapsedIcon", treeCollapsedIcon, "Tree.editorBorder", focusBorder, "Tree.editorBorderSelectionColor", table.get("activeCaptionBorder"), - "Tree.rowHeight", new Integer(18), + "Tree.rowHeight", 18, "Tree.drawsFocusBorderAroundIcon", Boolean.TRUE, "Tree.focusInputMap", new UIDefaults.LazyInputMap(new Object[] { "COPY", "copy", diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/jndi/cosnaming/CNCtx.java --- a/jdk/src/share/classes/com/sun/jndi/cosnaming/CNCtx.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/cosnaming/CNCtx.java Mon Aug 04 15:34:12 2014 -0700 @@ -1145,7 +1145,7 @@ // Never destroy an orb in CNCtx. // The orb we have is either the shared/default orb, or one passed in to a constructor - // from elsewhere, so that orb is somebody else's reponsibility. + // from elsewhere, so that orb is somebody else's responsibility. } protected void finalize() { diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/jndi/dns/DnsClient.java --- a/jdk/src/share/classes/com/sun/jndi/dns/DnsClient.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/dns/DnsClient.java Mon Aug 04 15:34:12 2014 -0700 @@ -376,7 +376,7 @@ /** - * Tries to retreive an UDP packet matching the given xid + * Tries to retrieve a UDP packet matching the given xid * received within the timeout. * If a packet with different xid is received, the received packet * is enqueued with the corresponding xid in 'resps'. diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/jndi/ldap/AbstractLdapNamingEnumeration.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/AbstractLdapNamingEnumeration.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/AbstractLdapNamingEnumeration.java Mon Aug 04 15:34:12 2014 -0700 @@ -137,7 +137,7 @@ limit = (entries == null) ? 0 : entries.size(); // handle empty set posn = 0; // reset - // mimimize the number of calls to processReturnCode() + // minimize the number of calls to processReturnCode() // (expensive when batchSize is small and there are many results) if ((res.status != LdapClient.LDAP_SUCCESS) || ((res.status == LdapClient.LDAP_SUCCESS) && diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/jndi/ldap/ClientId.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/ClientId.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/ClientId.java Mon Aug 04 15:34:12 2014 -0700 @@ -196,7 +196,7 @@ System.out.println("ClientId received an exception"); e.printStackTrace(); } - // Failed to invoke the comparator; flag unequality + // Failed to invoke the comparator; flag inequality return false; } if (((Integer) ret) == 0) { diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/jndi/ldap/EventQueue.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/EventQueue.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/EventQueue.java Mon Aug 04 15:34:12 2014 -0700 @@ -75,7 +75,7 @@ * Enqueue an event. * @param event Either a NamingExceptionEvent or a subclass * of NamingEvent or - * UnsolicitedNotificatoniEvent. + * UnsolicitedNotificationEvent. * If it is a subclass of NamingEvent, all listeners must implement * the corresponding subinterface of NamingListener. * For example, for a ObjectAddedEvent, all listeners must @@ -141,7 +141,7 @@ // it is interested in. (No need to check mask or // instanceof subinterfaces.) // It is the responsibility of the enqueuer to - // only enqueue events with listseners of the correct type. + // only enqueue events with listeners of the correct type. if (e instanceof NamingEvent) { ((NamingEvent)e).dispatch(v.elementAt(i)); diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/jndi/ldap/EventSupport.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/EventSupport.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/EventSupport.java Mon Aug 04 15:34:12 2014 -0700 @@ -83,7 +83,7 @@ *a new notifier is created for the listener. * *

Deregistration

- *When a deregistration request is made, this class attemps to find its + *When a deregistration request is made, this class attempts to find its *corresponding notifier. If the notifier is found, the listener is removed *from the notifier's list. If the listener is the last listener on the list, *the notifier's thread is terminated and removed from this class's hashtable. diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/jndi/ldap/LdapAttribute.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/LdapAttribute.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/LdapAttribute.java Mon Aug 04 15:34:12 2014 -0700 @@ -34,7 +34,7 @@ /** * This subclass is used by LDAP to implement the schema calls. * Basically, it keeps track of which context it is an attribute of - * so it can get the schema for that cotnext. + * so it can get the schema for that context. * * @author Jon Ruiz */ @@ -134,7 +134,7 @@ // setup internal state this.setBaseCtxInfo(); - // let the ObjectOutpurStream do the real work of serialization + // let the ObjectOutputStream do the real work of serialization out.defaultWriteObject(); } diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/jndi/ldap/LdapCtx.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/LdapCtx.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/LdapCtx.java Mon Aug 04 15:34:12 2014 -0700 @@ -1651,7 +1651,7 @@ * * This function is called regardless of the server's version, since * an administrator may have setup the server to support client schema - * queries. If this function trys a serarch on a v2 server that + * queries. If this function tries a search on a v2 server that * doesn't support schema, one of these two things will happen: * 1) It will get an exception when querying the root DSE * 2) It will not find a subschemasubentry on the root DSE @@ -2016,7 +2016,7 @@ * - the returning attributes list is present but empty */ - // returns true if a search can be caried out as a compare, and sets + // returns true if a search can be carried out as a compare, and sets // tokens[0] and tokens[1] to the type and value respectively. // e.g. filter "cn=Jon Ruiz" becomes, type "cn" and value "Jon Ruiz" // This function uses the documents JNDI Compare example as a model @@ -2083,7 +2083,7 @@ return false; // unbalanced } - // make sure the left and right half are not expresions themselves + // make sure the left and right half are not expressions themselves StringTokenizer illegalCharsTokenizer = new StringTokenizer(tokens[0], "()&|!=~><*", true); @@ -2443,7 +2443,7 @@ } /** - * Set whether aliases are derefereced during resolution and searches. + * Set whether aliases are dereferenced during resolution and searches. */ private void setDerefAliases(String deref) { if (deref != null) { diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/jndi/ldap/LdapName.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/LdapName.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/LdapName.java Mon Aug 04 15:34:12 2014 -0700 @@ -346,8 +346,8 @@ } /** - * Given an attribute value formated according to RFC 2253, - * returns the unformated value. Returns a string value as + * Given an attribute value formatted according to RFC 2253, + * returns the unformatted value. Returns a string value as * a string, and a binary value as a byte array. */ public static Object unescapeAttributeValue(String val) { @@ -687,7 +687,7 @@ private final boolean binary; private final boolean valueCaseSensitive; - // If non-null, a canonical represention of the value suitable + // If non-null, a canonical representation of the value suitable // for comparison using String.compareTo(). private String comparable = null; @@ -842,8 +842,8 @@ } /* - * Given an attribute value formated according to RFC 2253, - * returns the unformated value. Escapes and quotes are + * Given an attribute value formatted according to RFC 2253, + * returns the unformatted value. Escapes and quotes are * stripped away, and hex-encoded UTF-8 is converted to 16-bit * Unicode chars. Returns a string value as a String, and a * binary value as a byte array. diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/jndi/ldap/LdapReferralContext.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/LdapReferralContext.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/LdapReferralContext.java Mon Aug 04 15:34:12 2014 -0700 @@ -679,7 +679,7 @@ } catch (LdapReferralException e) { - // %%% VR - setNameResolved(true); + // %%% setNameResolved(true); // append (referrals from) the exception that generated this // context to the new exception, so that referral processing @@ -897,7 +897,7 @@ /* * Use the attributes and scope components from the LDAP URL (if present) - * to override the corrpesonding components supplied in SearchControls. + * to override the corresponding components supplied in SearchControls. */ private SearchControls overrideAttributesAndScope(SearchControls cons) { SearchControls urlCons; diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/jndi/ldap/LdapRequest.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/LdapRequest.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/LdapRequest.java Mon Aug 04 15:34:12 2014 -0700 @@ -62,7 +62,7 @@ cancelled = true; // Unblock reader of pending request - // Should only ever have atmost one waiter + // Should only ever have at most one waiter notify(); } diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/jndi/ldap/LdapSchemaParser.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/LdapSchemaParser.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/LdapSchemaParser.java Mon Aug 04 15:34:12 2014 -0700 @@ -84,7 +84,7 @@ // Object Class specific IDs private static final String ABSTRACT_ID = "ABSTRACT"; private static final String STRUCTURAL_ID = "STRUCTURAL"; - private static final String AUXILARY_ID = "AUXILIARY"; + private static final String AUXILIARY_ID = "AUXILIARY"; private static final String MUST_ID = "MUST"; private static final String MAY_ID = "MAY"; @@ -300,8 +300,8 @@ return new Object[] {currentName, attrs}; } - // returns the index of the first whitespace char of a linear whitspace - // sequince ending at the given position. + // returns the index of the first whitespace char of a linear whitespace + // sequence ending at the given position. final private static int findTrailingWhitespace(String string, int pos) { for(int i = pos; i > 0; i--) { if(string.charAt(i) != WHSP) { @@ -423,7 +423,7 @@ if (tag.equals(OBSOLETE_ID) || tag.equals(ABSTRACT_ID) || tag.equals(STRUCTURAL_ID) || - tag.equals(AUXILARY_ID) || + tag.equals(AUXILIARY_ID) || tag.equals(SINGLE_VAL_ID) || tag.equals(COLLECTIVE_ID) || tag.equals(NO_USER_MOD_ID)) { @@ -819,7 +819,7 @@ count++; } - attr = attrs.get(AUXILARY_ID); + attr = attrs.get(AUXILIARY_ID); if (attr != null) { objectDesc.append(writeBoolean(attr)); count++; @@ -856,7 +856,7 @@ attrId.equals(MUST_ID) || attrId.equals(STRUCTURAL_ID) || attrId.equals(DESC_ID) || - attrId.equals(AUXILARY_ID) || + attrId.equals(AUXILIARY_ID) || attrId.equals(ABSTRACT_ID) || attrId.equals(OBSOLETE_ID)) { continue; diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/jndi/ldap/LdapSearchEnumeration.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/LdapSearchEnumeration.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/LdapSearchEnumeration.java Mon Aug 04 15:34:12 2014 -0700 @@ -156,7 +156,7 @@ String[] reqAttrs; if ((reqAttrs = searchArgs.reqAttrs) != null) { // create an attribute set for those requested - Attributes rattrs = new BasicAttributes(true); // caseignore + Attributes rattrs = new BasicAttributes(true); // ignore case for (int i = 0; i < reqAttrs.length; i++) { rattrs.put(reqAttrs[i], null); } @@ -213,8 +213,6 @@ // Update search-specific variables LdapSearchEnumeration se = (LdapSearchEnumeration)ne; startName = se.startName; -//VR - keep original args, don't overwite with current args -// searchArgs = se.searchArgs; } void setStartName(Name nm) { diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/jndi/ldap/LdapURL.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/LdapURL.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/LdapURL.java Mon Aug 04 15:34:12 2014 -0700 @@ -162,7 +162,7 @@ } /** - * Derermines whether an LDAP URL has query components. + * Determines whether an LDAP URL has query components. */ public static boolean hasQueryComponents(String url) { return (url.lastIndexOf('?') != -1); diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/jndi/ldap/ServiceLocator.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/ServiceLocator.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/ServiceLocator.java Mon Aug 04 15:34:12 2014 -0700 @@ -62,7 +62,7 @@ * * @param dn A string distinguished name (RFC 2253). * @return A domain name or null if none can be derived. - * @throw InvalidNameException If the distinugished name is invalid. + * @throw InvalidNameException If the distinguished name is invalid. */ static String mapDnToDomainName(String dn) throws InvalidNameException { if (dn == null) { diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/jndi/ldap/VersionHelper.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/VersionHelper.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/VersionHelper.java Mon Aug 04 15:34:12 2014 -0700 @@ -25,32 +25,77 @@ package com.sun.jndi.ldap; +import sun.misc.SharedSecrets; + import java.net.MalformedURLException; import java.net.URL; +import java.net.URLClassLoader; +import java.security.AccessControlContext; +import java.security.AccessController; +import java.security.PrivilegedAction; -abstract class VersionHelper { +public final class VersionHelper { + + private static final VersionHelper helper = new VersionHelper(); - private static final VersionHelper helper = new VersionHelper12(); + /** + * Determines whether classes may be loaded from an arbitrary URL code base. + */ + private static final boolean trustURLCodebase; - VersionHelper() {} // Disallow anyone from creating one of these. + static { + // System property to control whether classes may be loaded from an + // arbitrary URL code base + PrivilegedAction act = + () -> System.getProperty("com.sun.jndi.ldap.object.trustURLCodebase", "false"); + String trust = AccessController.doPrivileged(act); + trustURLCodebase = "true".equalsIgnoreCase(trust); + } + + private VersionHelper() { } static VersionHelper getVersionHelper() { return helper; } - abstract ClassLoader getURLClassLoader(String[] url) - throws MalformedURLException; + ClassLoader getURLClassLoader(String[] url) throws MalformedURLException { + ClassLoader parent = getContextClassLoader(); + /* + * Classes may only be loaded from an arbitrary URL code base when + * the system property com.sun.jndi.ldap.object.trustURLCodebase + * has been set to "true". + */ + if (url != null && trustURLCodebase) { + return URLClassLoader.newInstance(getUrlArray(url), parent); + } else { + return parent; + } + } + Class loadClass(String className) throws ClassNotFoundException { + return Class.forName(className, true, getContextClassLoader()); + } - static protected URL[] getUrlArray(String[] url) throws MalformedURLException { + Thread createThread(Runnable r) { + AccessControlContext acc = AccessController.getContext(); + // 4290486: doPrivileged is needed to create a thread in + // an environment that restricts "modifyThreadGroup". + PrivilegedAction act = + () -> SharedSecrets.getJavaLangAccess().newThreadWithAcc(r, acc); + return AccessController.doPrivileged(act); + } + + private ClassLoader getContextClassLoader() { + PrivilegedAction act = + Thread.currentThread()::getContextClassLoader; + return AccessController.doPrivileged(act); + } + + private static URL[] getUrlArray(String[] url) throws MalformedURLException { URL[] urlArray = new URL[url.length]; for (int i = 0; i < urlArray.length; i++) { urlArray[i] = new URL(url[i]); } return urlArray; } - - abstract Class loadClass(String className) throws ClassNotFoundException; - - abstract Thread createThread(Runnable r); } diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/jndi/ldap/VersionHelper12.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/VersionHelper12.java Fri Aug 01 14:09:19 2014 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,98 +0,0 @@ -/* - * Copyright (c) 1999, 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. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package com.sun.jndi.ldap; - -import java.net.URLClassLoader; -import java.net.MalformedURLException; -import java.security.AccessControlContext; -import java.security.AccessController; -import java.security.PrivilegedAction; -import sun.misc.SharedSecrets; - -final class VersionHelper12 extends VersionHelper { - - // System property to control whether classes may be loaded from an - // arbitrary URL code base. - private static final String TRUST_URL_CODEBASE_PROPERTY = - "com.sun.jndi.ldap.object.trustURLCodebase"; - - // Determine whether classes may be loaded from an arbitrary URL code base. - private static final String trustURLCodebase = - AccessController.doPrivileged( - new PrivilegedAction() { - public String run() { - return System.getProperty(TRUST_URL_CODEBASE_PROPERTY, - "false"); - } - } - ); - - VersionHelper12() {} // Disallow external from creating one of these. - - ClassLoader getURLClassLoader(String[] url) - throws MalformedURLException { - ClassLoader parent = getContextClassLoader(); - /* - * Classes may only be loaded from an arbitrary URL code base when - * the system property com.sun.jndi.ldap.object.trustURLCodebase - * has been set to "true". - */ - if (url != null && "true".equalsIgnoreCase(trustURLCodebase)) { - return URLClassLoader.newInstance(getUrlArray(url), parent); - } else { - return parent; - } - } - - Class loadClass(String className) throws ClassNotFoundException { - ClassLoader cl = getContextClassLoader(); - return Class.forName(className, true, cl); - } - - private ClassLoader getContextClassLoader() { - return AccessController.doPrivileged( - new PrivilegedAction() { - public ClassLoader run() { - return Thread.currentThread().getContextClassLoader(); - } - } - ); - } - - Thread createThread(final Runnable r) { - final AccessControlContext acc = AccessController.getContext(); - // 4290486: doPrivileged is needed to create a thread in - // an environment that restricts "modifyThreadGroup". - return AccessController.doPrivileged( - new PrivilegedAction() { - public Thread run() { - return SharedSecrets.getJavaLangAccess() - .newThreadWithAcc(r, acc); - } - } - ); - } -} diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/jndi/ldap/pool/Connections.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/pool/Connections.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/pool/Connections.java Mon Aug 04 15:34:12 2014 -0700 @@ -254,7 +254,7 @@ /** * Removes PooledConnection from list of connections. * The closing of the connection is separate from this method. - * This method is called usually when the caller encouters an error + * This method is called usually when the caller encounters an error * when using the connection and wants it removed from the pool. * * @return true if conn removed; false if it was not in pool diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/jndi/ldap/pool/Pool.java --- a/jdk/src/share/classes/com/sun/jndi/ldap/pool/Pool.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/ldap/pool/Pool.java Mon Aug 04 15:34:12 2014 -0700 @@ -68,8 +68,8 @@ * whenever a pooled connection is requested or a call to remove the expired * connections is made. The monitoring is done regularly when idle connection * timeout is set as the PoolCleaner removes expired connections periodically. - * As determined by the experiements, cleanup of resources using the - * ReferenceQueue mechanism is reliable and has immidiate effect than the + * As determined by experimentation, cleanup of resources using the + * ReferenceQueue mechanism is reliable and has more immediate effect than the * finalizer approach. * * @author Rosanna Lee diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/jndi/toolkit/corba/CorbaUtils.java --- a/jdk/src/share/classes/com/sun/jndi/toolkit/corba/CorbaUtils.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/toolkit/corba/CorbaUtils.java Mon Aug 04 15:34:12 2014 -0700 @@ -165,6 +165,7 @@ // Get Applet from environment if (env != null) { + @SuppressWarnings("deprecation") Applet applet = (Applet) env.get(Context.APPLET); if (applet != null) { // Create ORBs using applet and orbProp diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/jndi/toolkit/ctx/AtomicContext.java --- a/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/AtomicContext.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/AtomicContext.java Mon Aug 04 15:34:12 2014 -0700 @@ -96,7 +96,7 @@ * Resolves the nns for 'name' when the named context is acting * as an intermediate context. * - * For a system that supports junctions, this would be equilvalent to + * For a system that supports junctions, this would be equivalent to * a_lookup(name, cont); * because for junctions, an intermediate slash simply signifies * a syntactic separator. @@ -487,7 +487,7 @@ resolve_to_nns_and_continue(name, cont); return null; } else { - // use COmponentContext + // use ComponentContext return super.c_getNameParser_nns(name, cont); } } diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/jndi/toolkit/ctx/ComponentContext.java --- a/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/ComponentContext.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/ComponentContext.java Mon Aug 04 15:34:12 2014 -0700 @@ -137,7 +137,7 @@ * as an intermediate context. * * For a system that supports only junctions, this would be - * equilvalent to + * equivalent to * c_lookup(name, cont); * because for junctions, an intermediate slash simply signifies * a syntactic separator. diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/jndi/toolkit/ctx/Continuation.java --- a/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/Continuation.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/toolkit/ctx/Continuation.java Mon Aug 04 15:34:12 2014 -0700 @@ -172,7 +172,7 @@ * * This method is typically called by _nns methods that have been * given a name to process. It might process part of that name but - * encountered some error. Consequenetly, it would call setErrorNNS() + * encountered some error. Consequently, it would call setErrorNNS() * with the remaining name. Since the _nns method was expected to * operate upon the "nns" of the original name, the remaining name * must include the "nns". That's why this method adds a trailing "/". @@ -219,7 +219,7 @@ * * This method is typically called by methods that have been * given a name to process. It might process part of that name but - * encountered some error. Consequenetly, it would call setError() + * encountered some error. Consequently, it would call setError() * with the resolved object and the remaining name. *

* After this method is called, isContinuing() returns false. diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/jndi/toolkit/dir/ContextEnumerator.java --- a/jdk/src/share/classes/com/sun/jndi/toolkit/dir/ContextEnumerator.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/toolkit/dir/ContextEnumerator.java Mon Aug 04 15:34:12 2014 -0700 @@ -182,14 +182,14 @@ if (!currentReturned) { // returning parent - if(debug) {System.out.println("getNextDescedant: simple case");} + if(debug) {System.out.println("getNextDescendant: simple case");} currentReturned = true; return currentChild; } else if (currentChildExpanded && currentChildEnum.hasMore()) { - if(debug) {System.out.println("getNextDescedant: expanded case");} + if(debug) {System.out.println("getNextDescendant: expanded case");} // if the current child is expanded, use it's enumerator return currentChildEnum.next(); @@ -197,7 +197,7 @@ } else { // Ready to go onto next child - if(debug) {System.out.println("getNextDescedant: next case");} + if(debug) {System.out.println("getNextDescendant: next case");} prepNextChild(); return getNextDescendant(); diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/jndi/toolkit/dir/HierMemDirCtx.java --- a/jdk/src/share/classes/com/sun/jndi/toolkit/dir/HierMemDirCtx.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/toolkit/dir/HierMemDirCtx.java Mon Aug 04 15:34:12 2014 -0700 @@ -881,8 +881,8 @@ } } - // CompundNames's HashCode() method isn't good enough for many string. - // The only prupose of this subclass is to have a more discerning + // CompoundNames's HashCode() method isn't good enough for many strings. + // The only purpose of this subclass is to have a more discerning // hash function. We'll make up for the performance hit by caching // the hash value. diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/jndi/toolkit/dir/LazySearchEnumerationImpl.java --- a/jdk/src/share/classes/com/sun/jndi/toolkit/dir/LazySearchEnumerationImpl.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/toolkit/dir/LazySearchEnumerationImpl.java Mon Aug 04 15:34:12 2014 -0700 @@ -152,7 +152,7 @@ } else if (useFactory) { try { // Give name only if context non-null, - // otherewise, name will be interpreted relative + // otherwise, name will be interpreted relative // to initial context (not what we want) Name nm = (context != null ? new CompositeName(next.getName()) : null); diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/jndi/toolkit/dir/SearchFilter.java --- a/jdk/src/share/classes/com/sun/jndi/toolkit/dir/SearchFilter.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/toolkit/dir/SearchFilter.java Mon Aug 04 15:34:12 2014 -0700 @@ -256,7 +256,7 @@ static final int LESS_MATCH = 4; /** - * A class for dealing wtih atomic filters + * A class for dealing with atomic filters */ final class AtomicFilter implements StringFilter { private String attrID; @@ -369,7 +369,7 @@ } break; default: - if (debug) {System.out.println("AtomicFilter: unkown " + + if (debug) {System.out.println("AtomicFilter: unknown " + "matchType");} } } @@ -434,7 +434,7 @@ /** - * Creates an LDAP filter as a conjuction of the attributes supplied. + * Creates an LDAP filter as a conjunction of the attributes supplied. */ public static String format(Attributes attrs) throws NamingException { if (attrs == null || attrs.size() == 0) { diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/jndi/toolkit/url/GenericURLContext.java --- a/jdk/src/share/classes/com/sun/jndi/toolkit/url/GenericURLContext.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/toolkit/url/GenericURLContext.java Mon Aug 04 15:34:12 2014 -0700 @@ -168,7 +168,7 @@ } } - // else 0 or 1 iniitial slashes; start is unchanged + // else 0 or 1 initial slashes; start is unchanged return url.substring(0, start); } diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/jndi/url/ldap/ldapURLContext.java --- a/jdk/src/share/classes/com/sun/jndi/url/ldap/ldapURLContext.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/jndi/url/ldap/ldapURLContext.java Mon Aug 04 15:34:12 2014 -0700 @@ -562,7 +562,7 @@ } // Search using the LDAP URL in name. - // LDAP URL query components override the search argments. + // LDAP URL query components override the search arguments. private NamingEnumeration searchUsingURL(String name) throws NamingException { diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/management/GcInfo.java --- a/jdk/src/share/classes/com/sun/management/GcInfo.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/management/GcInfo.java Mon Aug 04 15:34:12 2014 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2014, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -267,7 +267,7 @@ return cdata.toString(); } - public Collection values() { + public Collection values() { return cdata.values(); } diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/naming/internal/ResourceManager.java --- a/jdk/src/share/classes/com/sun/naming/internal/ResourceManager.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/naming/internal/ResourceManager.java Mon Aug 04 15:34:12 2014 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -28,8 +28,6 @@ import java.io.InputStream; import java.io.IOException; import java.lang.ref.WeakReference; -import java.lang.reflect.Method; -import java.lang.reflect.InvocationTargetException; import java.util.HashMap; import java.util.Hashtable; import java.util.Map; @@ -126,52 +124,6 @@ private static final WeakReference NO_FACTORY = new WeakReference<>(null); - /** - * A class to allow JNDI properties be specified as applet parameters - * without creating a static dependency on java.applet. - */ - private static class AppletParameter { - private static final Class clazz = getClass("java.applet.Applet"); - private static final Method getMethod = - getMethod(clazz, "getParameter", String.class); - private static Class getClass(String name) { - try { - return Class.forName(name, true, null); - } catch (ClassNotFoundException e) { - return null; - } - } - private static Method getMethod(Class clazz, - String name, - Class... paramTypes) - { - if (clazz != null) { - try { - return clazz.getMethod(name, paramTypes); - } catch (NoSuchMethodException e) { - throw new AssertionError(e); - } - } else { - return null; - } - } - - /** - * Returns the value of the applet's named parameter. - */ - static Object get(Object applet, String name) { - // if clazz is null then applet cannot be an Applet. - if (clazz == null || !clazz.isInstance(applet)) - throw new ClassCastException(applet.getClass().getName()); - try { - return getMethod.invoke(applet, name); - } catch (InvocationTargetException | - IllegalAccessException e) { - throw new AssertionError(e); - } - } - } - // There should be no instances of this class. private ResourceManager() { } @@ -179,12 +131,11 @@ // ---------- Public methods ---------- - /* + /** * Given the environment parameter passed to the initial context * constructor, returns the full environment for that initial * context (never null). This is based on the environment - * parameter, the applet parameters (where appropriate), the - * system properties, and all application resource files. + * parameter, the system properties, and all application resource files. * *

This method will modify env and save * a reference to it. The caller may no longer modify it. @@ -196,18 +147,16 @@ * resource file */ @SuppressWarnings("unchecked") - public static Hashtable getInitialEnvironment( - Hashtable env) + public static Hashtable getInitialEnvironment(Hashtable env) throws NamingException { - String[] props = VersionHelper.PROPS; // system/applet properties + String[] props = VersionHelper.PROPS; // system properties if (env == null) { env = new Hashtable<>(11); } - Object applet = env.get(Context.APPLET); - // Merge property values from env param, applet params, and system - // properties. The first value wins: there's no concatenation of + // Merge property values from env param, and system properties. + // The first value wins: there's no concatenation of // colon-separated lists. // Read system properties by first trying System.getProperties(), // and then trying System.getProperty() if that fails. The former @@ -217,18 +166,13 @@ for (int i = 0; i < props.length; i++) { Object val = env.get(props[i]); if (val == null) { - if (applet != null) { - val = AppletParameter.get(applet, props[i]); - } - if (val == null) { - // Read system property. - val = (jndiSysProps != null) + // Read system property. + val = (jndiSysProps != null) ? jndiSysProps[i] : helper.getJndiProperty(i); - } - if (val != null) { - ((Hashtable)env).put(props[i], val); - } + } + if (val != null) { + ((Hashtable)env).put(props[i], val); } } @@ -248,8 +192,8 @@ /** * Retrieves the property from the environment, or from the provider * resource file associated with the given context. The environment - * may in turn contain values that come from applet parameters, - * system properties, or application resource files. + * may in turn contain values that come from system properties, + * or application resource files. * * If concat is true and both the environment and the provider * resource file contain the property, the two values are concatenated @@ -289,7 +233,7 @@ * property. * * The property is gotten from the environment and the provider - * resource file associated with the given context and concantenated. + * resource file associated with the given context and concatenated. * See getProperty(). The resulting property value is a list of class names. *

* This method then loads each class using the current thread's context diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/naming/internal/VersionHelper.java --- a/jdk/src/share/classes/com/sun/naming/internal/VersionHelper.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/naming/internal/VersionHelper.java Mon Aug 04 15:34:12 2014 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2011, 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 @@ -25,14 +25,19 @@ package com.sun.naming.internal; +import javax.naming.NamingEnumeration; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; import java.io.InputStream; -import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; -import java.util.StringTokenizer; -import java.util.Vector; - -import javax.naming.NamingEnumeration; +import java.net.URLClassLoader; +import java.security.AccessController; +import java.security.PrivilegedAction; +import java.security.PrivilegedActionException; +import java.security.PrivilegedExceptionAction; +import java.util.*; /** * VersionHelper was used by JNDI to accommodate differences between @@ -45,10 +50,10 @@ * @author Scott Seligman */ -public abstract class VersionHelper { - private static VersionHelper helper = null; +public final class VersionHelper { + private static final VersionHelper helper = new VersionHelper(); - final static String[] PROPS = new String[] { + final static String[] PROPS = new String[]{ javax.naming.Context.INITIAL_CONTEXT_FACTORY, javax.naming.Context.OBJECT_FACTORIES, javax.naming.Context.URL_PKG_PREFIXES, @@ -67,31 +72,57 @@ public final static int DNS_URL = 5; public final static int CONTROL_FACTORIES = 6; - VersionHelper() {} // Disallow anyone from creating one of these. - - static { - helper = new VersionHelper12(); - } + private VersionHelper() {} // Disallow anyone from creating one of these. public static VersionHelper getVersionHelper() { return helper; } - public abstract Class loadClass(String className) - throws ClassNotFoundException; + public Class loadClass(String className) throws ClassNotFoundException { + return loadClass(className, getContextClassLoader()); + } + + /** + * @param className A non-null fully qualified class name. + * @param codebase A non-null, space-separated list of URL strings. + */ + public Class loadClass(String className, String codebase) + throws ClassNotFoundException, MalformedURLException { + + ClassLoader parent = getContextClassLoader(); + ClassLoader cl = + URLClassLoader.newInstance(getUrlArray(codebase), parent); - abstract Class loadClass(String className, ClassLoader cl) - throws ClassNotFoundException; + return loadClass(className, cl); + } - public abstract Class loadClass(String className, String codebase) - throws ClassNotFoundException, MalformedURLException; + /** + * Package private. + *

+ * This internal method is used with Thread Context Class Loader (TCCL), + * please don't expose this method as public. + */ + Class loadClass(String className, ClassLoader cl) + throws ClassNotFoundException { + Class cls = Class.forName(className, true, cl); + return cls; + } /* - * Returns a JNDI property from the system properties. Returns + * Returns a JNDI property from the system properties. Returns * null if the property is not set, or if there is no permission * to read it. */ - abstract String getJndiProperty(int i); + String getJndiProperty(int i) { + PrivilegedAction act = () -> { + try { + return System.getProperty(PROPS[i]); + } catch (SecurityException e) { + return null; + } + }; + return AccessController.doPrivileged(act); + } /* * Reads each property in PROPS from the system properties, and @@ -99,13 +130,33 @@ * unset property, the corresponding array element is set to null. * Returns null if there is no permission to call System.getProperties(). */ - abstract String[] getJndiProperties(); + String[] getJndiProperties() { + PrivilegedAction act = () -> { + try { + return System.getProperties(); + } catch (SecurityException e) { + return null; + } + }; + Properties sysProps = AccessController.doPrivileged(act); + if (sysProps == null) { + return null; + } + String[] jProps = new String[PROPS.length]; + for (int i = 0; i < PROPS.length; i++) { + jProps[i] = sysProps.getProperty(PROPS[i]); + } + return jProps; + } /* * Returns the resource of a given name associated with a particular * class (never null), or null if none can be found. */ - abstract InputStream getResourceAsStream(Class c, String name); + InputStream getResourceAsStream(Class c, String name) { + PrivilegedAction act = () -> c.getResourceAsStream(name); + return AccessController.doPrivileged(act); + } /* * Returns an input stream for a file in /lib, @@ -113,7 +164,22 @@ * * @param filename The file name, sans directory. */ - abstract InputStream getJavaHomeLibStream(String filename); + InputStream getJavaHomeLibStream(String filename) { + PrivilegedAction act = () -> { + try { + String javahome = System.getProperty("java.home"); + if (javahome == null) { + return null; + } + String pathname = javahome + File.separator + + "lib" + File.separator + filename; + return new FileInputStream(pathname); + } catch (Exception e) { + return null; + } + }; + return AccessController.doPrivileged(act); + } /* * Returns an enumeration (never null) of InputStreams of the @@ -121,29 +187,55 @@ * loader. Null represents the bootstrap class loader in some * Java implementations. */ - abstract NamingEnumeration getResources( - ClassLoader cl, String name) - throws IOException; + NamingEnumeration getResources(ClassLoader cl, + String name) throws IOException { + Enumeration urls; + PrivilegedExceptionAction> act = () -> + (cl == null) + ? ClassLoader.getSystemResources(name) + : cl.getResources(name); + try { + urls = AccessController.doPrivileged(act); + } catch (PrivilegedActionException e) { + throw (IOException) e.getException(); + } + return new InputStreamEnumeration(urls); + } + - /* - * Returns the context class loader associated with the current thread. - * Null indicates the bootstrap class loader in some Java implementations. - * - * @throws SecurityException if the class loader is not accessible. + /** + * Package private. + *

+ * This internal method returns Thread Context Class Loader (TCCL), + * if null, returns the system Class Loader. + *

+ * Please don't expose this method as public. + * @throws SecurityException if the class loader is not accessible */ - abstract ClassLoader getContextClassLoader(); + ClassLoader getContextClassLoader() { - static protected URL[] getUrlArray(String codebase) - throws MalformedURLException { + PrivilegedAction act = () -> { + ClassLoader loader = Thread.currentThread().getContextClassLoader(); + if (loader == null) { + // Don't use bootstrap class loader directly! + loader = ClassLoader.getSystemClassLoader(); + } + return loader; + }; + return AccessController.doPrivileged(act); + } + + private static URL[] getUrlArray(String codebase) + throws MalformedURLException { // Parse codebase into separate URLs StringTokenizer parser = new StringTokenizer(codebase); - Vector vec = new Vector<>(10); + List list = new ArrayList<>(); while (parser.hasMoreTokens()) { - vec.addElement(parser.nextToken()); + list.add(parser.nextToken()); } - String[] url = new String[vec.size()]; + String[] url = new String[list.size()]; for (int i = 0; i < url.length; i++) { - url[i] = vec.elementAt(i); + url[i] = list.get(i); } URL[] urlArray = new URL[url.length]; @@ -152,4 +244,70 @@ } return urlArray; } + + /** + * Given an enumeration of URLs, an instance of this class represents + * an enumeration of their InputStreams. Each operation on the URL + * enumeration is performed within a doPrivileged block. + * This is used to enumerate the resources under a foreign codebase. + * This class is not MT-safe. + */ + private class InputStreamEnumeration implements + NamingEnumeration { + + private final Enumeration urls; + + private InputStream nextElement; + + InputStreamEnumeration(Enumeration urls) { + this.urls = urls; + } + + /* + * Returns the next InputStream, or null if there are no more. + * An InputStream that cannot be opened is skipped. + */ + private InputStream getNextElement() { + PrivilegedAction act = () -> { + while (urls.hasMoreElements()) { + try { + return urls.nextElement().openStream(); + } catch (IOException e) { + // skip this URL + } + } + return null; + }; + return AccessController.doPrivileged(act); + } + + public boolean hasMore() { + if (nextElement != null) { + return true; + } + nextElement = getNextElement(); + return (nextElement != null); + } + + public boolean hasMoreElements() { + return hasMore(); + } + + public InputStream next() { + if (hasMore()) { + InputStream res = nextElement; + nextElement = null; + return res; + } else { + throw new NoSuchElementException(); + } + } + + public InputStream nextElement() { + return next(); + } + + public void close() { + } + } } diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/naming/internal/VersionHelper12.java --- a/jdk/src/share/classes/com/sun/naming/internal/VersionHelper12.java Fri Aug 01 14:09:19 2014 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,268 +0,0 @@ -/* - * Copyright (c) 1999, 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 com.sun.naming.internal; - -import java.io.InputStream; -import java.io.IOException; -import java.net.MalformedURLException; -import java.net.URLClassLoader; -import java.net.URL; -import java.security.AccessController; -import java.security.PrivilegedAction; -import java.security.PrivilegedActionException; -import java.security.PrivilegedExceptionAction; -import java.util.Enumeration; -import java.util.NoSuchElementException; -import java.util.Properties; - -import javax.naming.*; - -/** - * VersionHelper was used by JNDI to accommodate differences between - * JDK 1.1.x and the Java 2 platform. As this is no longer necessary - * since JNDI's inclusion in the platform, this class currently - * serves as a set of utilities for performing system-level things, - * such as class-loading and reading system properties. - * - * @author Rosanna Lee - * @author Scott Seligman - */ - -final class VersionHelper12 extends VersionHelper { - - // Disallow external from creating one of these. - VersionHelper12() { - } - - public Class loadClass(String className) throws ClassNotFoundException { - return loadClass(className, getContextClassLoader()); - } - - /** - * Package private. - * - * This internal method is used with Thread Context Class Loader (TCCL), - * please don't expose this method as public. - */ - Class loadClass(String className, ClassLoader cl) - throws ClassNotFoundException { - Class cls = Class.forName(className, true, cl); - return cls; - } - - /** - * @param className A non-null fully qualified class name. - * @param codebase A non-null, space-separated list of URL strings. - */ - public Class loadClass(String className, String codebase) - throws ClassNotFoundException, MalformedURLException { - - ClassLoader parent = getContextClassLoader(); - ClassLoader cl = - URLClassLoader.newInstance(getUrlArray(codebase), parent); - - return loadClass(className, cl); - } - - String getJndiProperty(final int i) { - return AccessController.doPrivileged( - new PrivilegedAction() { - public String run() { - try { - return System.getProperty(PROPS[i]); - } catch (SecurityException e) { - return null; - } - } - } - ); - } - - String[] getJndiProperties() { - Properties sysProps = AccessController.doPrivileged( - new PrivilegedAction() { - public Properties run() { - try { - return System.getProperties(); - } catch (SecurityException e) { - return null; - } - } - } - ); - if (sysProps == null) { - return null; - } - String[] jProps = new String[PROPS.length]; - for (int i = 0; i < PROPS.length; i++) { - jProps[i] = sysProps.getProperty(PROPS[i]); - } - return jProps; - } - - InputStream getResourceAsStream(final Class c, final String name) { - return AccessController.doPrivileged( - new PrivilegedAction() { - public InputStream run() { - return c.getResourceAsStream(name); - } - } - ); - } - - InputStream getJavaHomeLibStream(final String filename) { - return AccessController.doPrivileged( - new PrivilegedAction() { - public InputStream run() { - try { - String javahome = System.getProperty("java.home"); - if (javahome == null) { - return null; - } - String pathname = javahome + java.io.File.separator + - "lib" + java.io.File.separator + filename; - return new java.io.FileInputStream(pathname); - } catch (Exception e) { - return null; - } - } - } - ); - } - - NamingEnumeration getResources(final ClassLoader cl, - final String name) throws IOException { - Enumeration urls; - try { - urls = AccessController.doPrivileged( - new PrivilegedExceptionAction>() { - public Enumeration run() throws IOException { - return (cl == null) - ? ClassLoader.getSystemResources(name) - : cl.getResources(name); - } - } - ); - } catch (PrivilegedActionException e) { - throw (IOException)e.getException(); - } - return new InputStreamEnumeration(urls); - } - - /** - * Package private. - * - * This internal method returns Thread Context Class Loader (TCCL), - * if null, returns the system Class Loader. - * - * Please don't expose this method as public. - */ - ClassLoader getContextClassLoader() { - - return AccessController.doPrivileged( - new PrivilegedAction() { - public ClassLoader run() { - ClassLoader loader = - Thread.currentThread().getContextClassLoader(); - if (loader == null) { - // Don't use bootstrap class loader directly! - loader = ClassLoader.getSystemClassLoader(); - } - - return loader; - } - } - ); - } - - /** - * Given an enumeration of URLs, an instance of this class represents - * an enumeration of their InputStreams. Each operation on the URL - * enumeration is performed within a doPrivileged block. - * This is used to enumerate the resources under a foreign codebase. - * This class is not MT-safe. - */ - class InputStreamEnumeration implements NamingEnumeration { - - private final Enumeration urls; - - private InputStream nextElement = null; - - InputStreamEnumeration(Enumeration urls) { - this.urls = urls; - } - - /* - * Returns the next InputStream, or null if there are no more. - * An InputStream that cannot be opened is skipped. - */ - private InputStream getNextElement() { - return AccessController.doPrivileged( - new PrivilegedAction() { - public InputStream run() { - while (urls.hasMoreElements()) { - try { - return urls.nextElement().openStream(); - } catch (IOException e) { - // skip this URL - } - } - return null; - } - } - ); - } - - public boolean hasMore() { - if (nextElement != null) { - return true; - } - nextElement = getNextElement(); - return (nextElement != null); - } - - public boolean hasMoreElements() { - return hasMore(); - } - - public InputStream next() { - if (hasMore()) { - InputStream res = nextElement; - nextElement = null; - return res; - } else { - throw new NoSuchElementException(); - } - } - - public InputStream nextElement() { - return next(); - } - - public void close() { - } - } -} diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/tools/example/debug/expr/ExpressionParser.java --- a/jdk/src/share/classes/com/sun/tools/example/debug/expr/ExpressionParser.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/tools/example/debug/expr/ExpressionParser.java Mon Aug 04 15:34:12 2014 -0700 @@ -33,18 +33,18 @@ public class ExpressionParser implements ExpressionParserConstants { - Stack stack = new Stack(); + Stack stack = new Stack<>(); VirtualMachine vm = null; GetFrame frameGetter = null; private static GetFrame lastFrameGetter; private static LValue lastLValue; LValue peek() { - return (LValue)stack.peek(); + return stack.peek(); } LValue pop() { - return (LValue)stack.pop(); + return stack.pop(); } void push(LValue lval) { @@ -915,7 +915,7 @@ } final public void PrimarySuffix() throws ParseException { - List argList; + List argList; switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case LBRACKET: jj_consume_token(LBRACKET); @@ -993,8 +993,8 @@ jj_consume_token(NULL); } - final public List Arguments() throws ParseException { - List argList = new ArrayList(); + final public List Arguments() throws ParseException { + List argList = new ArrayList<>(); jj_consume_token(LPAREN); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case FALSE: @@ -1026,7 +1026,7 @@ throw new Error("Missing return statement in function"); } - final public void ArgumentList(List argList) throws ParseException { + final public void ArgumentList(List argList) throws ParseException { Expression(); argList.add(pop().interiorGetValue()); label_17: @@ -1046,7 +1046,7 @@ } final public void AllocationExpression() throws ParseException { - List argList; String className; + List argList; String className; if (jj_2_7(2)) { jj_consume_token(NEW); PrimitiveType(); diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/tools/hat/internal/model/JavaClass.java --- a/jdk/src/share/classes/com/sun/tools/hat/internal/model/JavaClass.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/tools/hat/internal/model/JavaClass.java Mon Aug 04 15:34:12 2014 -0700 @@ -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 @@ -229,9 +229,9 @@ return name.indexOf('[') != -1; } - public Enumeration getInstances(boolean includeSubclasses) { + public Enumeration getInstances(boolean includeSubclasses) { if (includeSubclasses) { - Enumeration res = instances.elements(); + Enumeration res = instances.elements(); for (int i = 0; i < subclasses.length; i++) { res = new CompositeEnumeration(res, subclasses[i].getInstances(true)); diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/tools/hat/internal/model/JavaHeapObject.java --- a/jdk/src/share/classes/com/sun/tools/hat/internal/model/JavaHeapObject.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/tools/hat/internal/model/JavaHeapObject.java Mon Aug 04 15:34:12 2014 -0700 @@ -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 @@ -166,11 +166,11 @@ * * @return an Enumeration of JavaHeapObject instances */ - public Enumeration getReferers() { + public Enumeration getReferers() { if (referersLen != -1) { throw new RuntimeException("not resolved: " + getIdString()); } - return new Enumeration() { + return new Enumeration() { private int num = 0; @@ -178,7 +178,7 @@ return referers != null && num < referers.length; } - public Object nextElement() { + public JavaThing nextElement() { return referers[num++]; } }; diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/tools/hat/internal/model/ReachableExcludesImpl.java --- a/jdk/src/share/classes/com/sun/tools/hat/internal/model/ReachableExcludesImpl.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/tools/hat/internal/model/ReachableExcludesImpl.java Mon Aug 04 15:34:12 2014 -0700 @@ -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 @@ -54,7 +54,7 @@ private File excludesFile; private long lastModified; - private Hashtable methods; // Hashtable, used as a bag + private Hashtable methods; // Used as a bag /** * Create a new ReachableExcludesImpl over the given file. The file will be diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/tools/hat/internal/model/ReachableObjects.java --- a/jdk/src/share/classes/com/sun/tools/hat/internal/model/ReachableObjects.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/tools/hat/internal/model/ReachableObjects.java Mon Aug 04 15:34:12 2014 -0700 @@ -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 @@ -86,7 +86,7 @@ // Now grab the elements into a vector, and sort it in decreasing size JavaThing[] things = new JavaThing[bag.size()]; int i = 0; - for (Enumeration e = bag.elements(); e.hasMoreElements(); ) { + for (Enumeration e = bag.elements(); e.hasMoreElements(); ) { things[i++] = (JavaThing) e.nextElement(); } ArraySorter.sort(things, new Comparer() { @@ -131,7 +131,7 @@ return usedFields; } - private String[] getElements(Hashtable ht) { + private String[] getElements(Hashtable ht) { Object[] keys = ht.keySet().toArray(); int len = keys.length; String[] res = new String[len]; diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/tools/hat/internal/model/Snapshot.java --- a/jdk/src/share/classes/com/sun/tools/hat/internal/model/Snapshot.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/tools/hat/internal/model/Snapshot.java Mon Aug 04 15:34:12 2014 -0700 @@ -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 @@ -81,7 +81,7 @@ new HashMap(); // soft cache of finalizeable objects - lazily initialized - private SoftReference finalizablesCache; + private SoftReference> finalizablesCache; // represents null reference private JavaThing nullThing; @@ -383,7 +383,7 @@ /** * Return an Iterator of all of the classes in this snapshot. **/ - public Iterator getClasses() { + public Iterator getClasses() { // note that because classes is a TreeMap // classes are already sorted by name return classes.values().iterator(); @@ -395,8 +395,8 @@ return res; } - public synchronized Enumeration getFinalizerObjects() { - Vector obj; + public synchronized Enumeration getFinalizerObjects() { + Vector obj; if (finalizablesCache != null && (obj = finalizablesCache.get()) != null) { return obj.elements(); @@ -418,7 +418,7 @@ finalizables.add(referent); } } - finalizablesCache = new SoftReference(finalizables); + finalizablesCache = new SoftReference>(finalizables); return finalizables.elements(); } @@ -455,7 +455,7 @@ // Even though curr is in the rootset, we want to explore its // referers, because they might be more interesting. } - Enumeration referers = curr.getReferers(); + Enumeration referers = curr.getReferers(); while (referers.hasMoreElements()) { JavaHeapObject t = (JavaHeapObject) referers.nextElement(); if (t != null && !visited.containsKey(t)) { diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/tools/hat/internal/oql/OQLEngine.java --- a/jdk/src/share/classes/com/sun/tools/hat/internal/oql/OQLEngine.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/tools/hat/internal/oql/OQLEngine.java Mon Aug 04 15:34:12 2014 -0700 @@ -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 @@ -51,7 +51,7 @@ // create JavaScript engine Method getEngineMethod = managerClass.getMethod("getEngineByName", - new Class[] { String.class }); + new Class[] { String.class }); Object jse = getEngineMethod.invoke(manager, new Object[] {"js"}); oqlSupported = (jse != null); } catch (Exception exp) { @@ -205,9 +205,9 @@ } if (q.className != null) { - Enumeration objects = clazz.getInstances(q.isInstanceOf); + Enumeration objects = clazz.getInstances(q.isInstanceOf); while (objects.hasMoreElements()) { - JavaHeapObject obj = (JavaHeapObject) objects.nextElement(); + JavaHeapObject obj = objects.nextElement(); Object[] args = new Object[] { wrapJavaObject(obj) }; boolean b = (whereCode == null); if (!b) { @@ -265,14 +265,14 @@ // create JavaScript engine Method getEngineMethod = managerClass.getMethod("getEngineByName", - new Class[] { String.class }); + new Class[] { String.class }); engine = getEngineMethod.invoke(manager, new Object[] {"js"}); // initialize engine with init file (hat.js) InputStream strm = getInitStream(); Class engineClass = Class.forName("javax.script.ScriptEngine"); evalMethod = engineClass.getMethod("eval", - new Class[] { Reader.class }); + new Class[] { Reader.class }); evalMethod.invoke(engine, new Object[] {new InputStreamReader(strm)}); // initialize ScriptEngine.eval(String) and @@ -280,13 +280,13 @@ Class invocableClass = Class.forName("javax.script.Invocable"); evalMethod = engineClass.getMethod("eval", - new Class[] { String.class }); + new Class[] { String.class }); invokeMethod = invocableClass.getMethod("invokeFunction", - new Class[] { String.class, Object[].class }); + new Class[] { String.class, Object[].class }); // initialize ScriptEngine.put(String, Object) method Method putMethod = engineClass.getMethod("put", - new Class[] { String.class, Object.class }); + new Class[] { String.class, Object.class }); // call ScriptEngine.put to initialize built-in heap object putMethod.invoke(engine, new Object[] { diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/tools/hat/internal/server/AllClassesQuery.java --- a/jdk/src/share/classes/com/sun/tools/hat/internal/server/AllClassesQuery.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/tools/hat/internal/server/AllClassesQuery.java Mon Aug 04 15:34:12 2014 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -58,10 +58,10 @@ startHtml("All Classes (including platform)"); } - Iterator classes = snapshot.getClasses(); + Iterator classes = snapshot.getClasses(); String lastPackage = null; while (classes.hasNext()) { - JavaClass clazz = (JavaClass) classes.next(); + JavaClass clazz = classes.next(); if (excludePlatform && PlatformClasses.isPlatformClass(clazz)) { // skip this.. continue; diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/tools/hat/internal/server/ClassQuery.java --- a/jdk/src/share/classes/com/sun/tools/hat/internal/server/ClassQuery.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/tools/hat/internal/server/ClassQuery.java Mon Aug 04 15:34:12 2014 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -151,7 +151,7 @@ } out.println("

References to this object:

"); out.flush(); - Enumeration referers = obj.getReferers(); + Enumeration referers = obj.getReferers(); while (referers.hasMoreElements()) { JavaHeapObject ref = (JavaHeapObject) referers.nextElement(); printThing(ref); diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/tools/hat/internal/server/FinalizerObjectsQuery.java --- a/jdk/src/share/classes/com/sun/tools/hat/internal/server/FinalizerObjectsQuery.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/tools/hat/internal/server/FinalizerObjectsQuery.java Mon Aug 04 15:34:12 2014 -0700 @@ -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 @@ -37,7 +37,7 @@ public class FinalizerObjectsQuery extends QueryHandler { public void run() { - Enumeration objs = snapshot.getFinalizerObjects(); + Enumeration objs = snapshot.getFinalizerObjects(); startHtml("Objects pending finalization"); out.println("Finalizer summary"); diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/tools/hat/internal/server/FinalizerSummaryQuery.java --- a/jdk/src/share/classes/com/sun/tools/hat/internal/server/FinalizerSummaryQuery.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/tools/hat/internal/server/FinalizerSummaryQuery.java Mon Aug 04 15:34:12 2014 -0700 @@ -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 @@ -37,7 +37,7 @@ public class FinalizerSummaryQuery extends QueryHandler { public void run() { - Enumeration objs = snapshot.getFinalizerObjects(); + Enumeration objs = snapshot.getFinalizerObjects(); startHtml("Finalizer Summary"); out.println("

"); @@ -74,7 +74,7 @@ private long count; } - private void printFinalizerSummary(Enumeration objs) { + private void printFinalizerSummary(Enumeration objs) { int count = 0; Map map = new HashMap(); diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/tools/hat/internal/server/InstancesCountQuery.java --- a/jdk/src/share/classes/com/sun/tools/hat/internal/server/InstancesCountQuery.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/tools/hat/internal/server/InstancesCountQuery.java Mon Aug 04 15:34:12 2014 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -111,10 +111,10 @@ } out.print(" "); if (snapshot.getHasNewSet()) { - Enumeration objects = clazz.getInstances(false); + Enumeration objects = clazz.getInstances(false); int newInst = 0; while (objects.hasMoreElements()) { - JavaHeapObject obj = (JavaHeapObject)objects.nextElement(); + JavaHeapObject obj = objects.nextElement(); if (obj.isNew()) { newInst++; } diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/tools/hat/internal/server/InstancesQuery.java --- a/jdk/src/share/classes/com/sun/tools/hat/internal/server/InstancesQuery.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/tools/hat/internal/server/InstancesQuery.java Mon Aug 04 15:34:12 2014 -0700 @@ -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 @@ -73,11 +73,11 @@ out.print(""); printClass(clazz); out.print("

"); - Enumeration objects = clazz.getInstances(includeSubclasses); + Enumeration objects = clazz.getInstances(includeSubclasses); long totalSize = 0; long instances = 0; while (objects.hasMoreElements()) { - JavaHeapObject obj = (JavaHeapObject) objects.nextElement(); + JavaHeapObject obj = objects.nextElement(); if (newObjects && !obj.isNew()) continue; printThing(obj); diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/tools/hat/internal/server/RefsByTypeQuery.java --- a/jdk/src/share/classes/com/sun/tools/hat/internal/server/RefsByTypeQuery.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/tools/hat/internal/server/RefsByTypeQuery.java Mon Aug 04 15:34:12 2014 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -47,15 +47,15 @@ } else { Map referrersStat = new HashMap(); final Map refereesStat = new HashMap(); - Enumeration instances = clazz.getInstances(false); + Enumeration instances = clazz.getInstances(false); while (instances.hasMoreElements()) { - JavaHeapObject instance = (JavaHeapObject) instances.nextElement(); + JavaHeapObject instance = instances.nextElement(); if (instance.getId() == -1) { continue; } - Enumeration e = instance.getReferers(); + Enumeration e = instance.getReferers(); while (e.hasMoreElements()) { - JavaHeapObject ref = (JavaHeapObject) e.nextElement(); + JavaHeapObject ref = (JavaHeapObject)e.nextElement(); JavaClass cl = ref.getClazz(); if (cl == null) { System.out.println("null class for " + ref); diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/tools/hat/internal/util/CompositeEnumeration.java --- a/jdk/src/share/classes/com/sun/tools/hat/internal/util/CompositeEnumeration.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/tools/hat/internal/util/CompositeEnumeration.java Mon Aug 04 15:34:12 2014 -0700 @@ -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 @@ -34,12 +34,13 @@ import java.util.Enumeration; import java.util.NoSuchElementException; +import com.sun.tools.hat.internal.model.JavaHeapObject; -public class CompositeEnumeration implements Enumeration { - Enumeration e1; - Enumeration e2; +public class CompositeEnumeration implements Enumeration { + Enumeration e1; + Enumeration e2; - public CompositeEnumeration(Enumeration e1, Enumeration e2) { + public CompositeEnumeration(Enumeration e1, Enumeration e2) { this.e1 = e1; this.e2 = e2; } @@ -48,7 +49,7 @@ return e1.hasMoreElements() || e2.hasMoreElements(); } - public Object nextElement() { + public JavaHeapObject nextElement() { if (e1.hasMoreElements()) { return e1.nextElement(); } diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/com/sun/tools/jdi/EventRequestManagerImpl.java --- a/jdk/src/share/classes/com/sun/tools/jdi/EventRequestManagerImpl.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/com/sun/tools/jdi/EventRequestManagerImpl.java Mon Aug 04 15:34:12 2014 -0700 @@ -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 @@ -39,7 +39,7 @@ // Warnings from List filters and List[] requestLists is hard to fix. // Remove SuppressWarning when we fix the warnings from List filters // and List[] requestLists. The generic array is not supported. -@SuppressWarnings("unchecked") +@SuppressWarnings({"unchecked", "rawtypes"}) class EventRequestManagerImpl extends MirrorImpl implements EventRequestManager { diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/java/awt/Color.java --- a/jdk/src/share/classes/java/awt/Color.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/java/awt/Color.java Mon Aug 04 15:34:12 2014 -0700 @@ -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 @@ -50,7 +50,7 @@ * see * http://www.w3.org/pub/WWW/Graphics/Color/sRGB.html * . - *

+ * * @version 10 Feb 1997 * @author Sami Shaio * @author Arthur van Hoff diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/java/awt/Font.java --- a/jdk/src/share/classes/java/awt/Font.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/java/awt/Font.java Mon Aug 04 15:34:12 2014 -0700 @@ -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 @@ -542,7 +542,6 @@ * compatible alternative, then the font system will map the Font * instance to "Dialog", such that for example, the family as reported * by {@link #getFamily() getFamily} will be "Dialog". - *

* * @param name the font name. This can be a font face name or a font * family name, and may represent either a logical font or a physical diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/java/awt/Graphics.java --- a/jdk/src/share/classes/java/awt/Graphics.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/java/awt/Graphics.java Mon Aug 04 15:34:12 2014 -0700 @@ -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 @@ -151,7 +151,7 @@ * is specified by the width and height * arguments. * - *

+ * * @param x the x coordinate. * @param y the y coordinate. * @param width the width of the clipping rectangle. diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/java/awt/MenuComponent.java --- a/jdk/src/share/classes/java/awt/MenuComponent.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/java/awt/MenuComponent.java Mon Aug 04 15:34:12 2014 -0700 @@ -132,16 +132,24 @@ static { AWTAccessor.setMenuComponentAccessor( new AWTAccessor.MenuComponentAccessor() { + @Override public AppContext getAppContext(MenuComponent menuComp) { return menuComp.appContext; } + @Override public void setAppContext(MenuComponent menuComp, AppContext appContext) { menuComp.appContext = appContext; } + @Override public MenuContainer getParent(MenuComponent menuComp) { return menuComp.parent; } + @Override + public void setParent(MenuComponent menuComp, MenuContainer menuContainer) { + menuComp.parent = menuContainer; + } + @Override public Font getFont_NoClientCode(MenuComponent menuComp) { return menuComp.getFont_NoClientCode(); } diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/java/awt/Polygon.java --- a/jdk/src/share/classes/java/awt/Polygon.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/java/awt/Polygon.java Mon Aug 04 15:34:12 2014 -0700 @@ -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 @@ -351,7 +351,7 @@ /** * Determines whether the specified coordinates are inside this * Polygon. - *

+ * * @param x the specified X coordinate to be tested * @param y the specified Y coordinate to be tested * @return {@code true} if this {@code Polygon} contains diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/java/awt/Rectangle.java --- a/jdk/src/share/classes/java/awt/Rectangle.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/java/awt/Rectangle.java Mon Aug 04 15:34:12 2014 -0700 @@ -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 @@ -41,14 +41,13 @@ *

* * A {@code Rectangle} whose width or height is exactly zero has location - * along those axes with zero dimension, but is otherwise considered empty. + * along those axes with zero dimension, but is otherwise considered empty. * The {@link #isEmpty} method will return true for such a {@code Rectangle}. * Methods which test if an empty {@code Rectangle} contains or intersects * a point or rectangle will always return false if either dimension is zero. * Methods which combine such a {@code Rectangle} with a point or rectangle * will include the location of the {@code Rectangle} on that axis in the * result as if the {@link #add(Point)} method were being called. - * *

* * A {@code Rectangle} whose width or height is negative has neither @@ -422,7 +421,7 @@ * Rectangle to the specified * x, y, width, * and height. - *

+ * * @param x the new X coordinate for the upper-left * corner of this Rectangle * @param y the new Y coordinate for the upper-left @@ -488,7 +487,7 @@ /** * Moves this Rectangle to the specified location. - *

+ * * @param x the X coordinate of the new location * @param y the Y coordinate of the new location * @deprecated As of JDK version 1.1, @@ -629,7 +628,7 @@ /** * Sets the size of this Rectangle to the specified * width and height. - *

+ * * @param width the new width for this Rectangle * @param height the new height for this Rectangle * @deprecated As of JDK version 1.1, diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/java/awt/Toolkit.java --- a/jdk/src/share/classes/java/awt/Toolkit.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/java/awt/Toolkit.java Mon Aug 04 15:34:12 2014 -0700 @@ -1241,10 +1241,9 @@ * clipboard enables data transfer between Java programs and native * applications which use native clipboard facilities. *

- * In addition to any and all formats specified in the flavormap.properties - * file, or other file specified by the AWT.DnD.flavorMapFileURL - * Toolkit property, text returned by the system Clipboard's - * getTransferData() method is available in the following flavors: + * In addition to any and all default formats text returned by the system + * Clipboard's getTransferData() method is available in the + * following flavors: *

* *

Summary of attributes

- * * diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/java/awt/geom/Arc2D.java --- a/jdk/src/share/classes/java/awt/geom/Arc2D.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/java/awt/geom/Arc2D.java Mon Aug 04 15:34:12 2014 -0700 @@ -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 @@ -35,8 +35,8 @@ *

* * The arc is a partial section of a full ellipse which - * inscribes the framing rectangle of its parent {@link RectangularShape}. - * + * inscribes the framing rectangle of its parent {@link RectangularShape}. + * * * The angles are specified relative to the non-square * framing rectangle such that 45 degrees always falls on the line from diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/java/awt/image/AffineTransformOp.java --- a/jdk/src/share/classes/java/awt/image/AffineTransformOp.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/java/awt/image/AffineTransformOp.java Mon Aug 04 15:34:12 2014 -0700 @@ -324,7 +324,7 @@ * this part of the rectangle is not drawn. If the coordinates * of the rectangle are positive then the filtered image is drawn at * that position in the destination Raster. - *

+ * * @param src The Raster to transform. * @param dst The Raster in which to store the results of the * transformation. diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/java/awt/image/BufferedImageFilter.java --- a/jdk/src/share/classes/java/awt/image/BufferedImageFilter.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/java/awt/image/BufferedImageFilter.java Mon Aug 04 15:34:12 2014 -0700 @@ -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 @@ -85,7 +85,7 @@ * an image should avoid calling this method directly since that * operation could result in problems with retrieving the requested * pixels. - *

+ * * @param width the width to which to set the width of this * BufferedImageFilter * @param height the height to which to set the height of this diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/java/awt/image/ImageFilter.java --- a/jdk/src/share/classes/java/awt/image/ImageFilter.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/java/awt/image/ImageFilter.java Mon Aug 04 15:34:12 2014 -0700 @@ -225,7 +225,7 @@ * *

  • * Override the method to simply send the data. - * This is appropriate if the filter can handle the request itself — + * This is appropriate if the filter can handle the request itself — * for example, * if the generated pixels have been saved in some sort of buffer. * diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/java/awt/image/WritableRaster.java --- a/jdk/src/share/classes/java/awt/image/WritableRaster.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/java/awt/image/WritableRaster.java Mon Aug 04 15:34:12 2014 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -394,7 +394,7 @@ * is first converted to a 32-bit int (if necessary), using the above * rules for integral types, and then the int is cast to float or * double. - *

    + * * @param srcRaster The Raster from which to copy pixels. * * @throws NullPointerException if srcRaster is null. diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/java/awt/image/renderable/ParameterBlock.java --- a/jdk/src/share/classes/java/awt/image/renderable/ParameterBlock.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/java/awt/image/renderable/ParameterBlock.java Mon Aug 04 15:34:12 2014 -0700 @@ -370,7 +370,7 @@ * the specified parameter. */ public ParameterBlock add(int i) { - return add(new Integer(i)); + return add(i); } /** @@ -489,7 +489,7 @@ * the specified parameter. */ public ParameterBlock set(int i, int index) { - return set(new Integer(i), index); + return set(i, index); } /** diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/java/awt/print/PrinterJob.java --- a/jdk/src/share/classes/java/awt/print/PrinterJob.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/java/awt/print/PrinterJob.java Mon Aug 04 15:34:12 2014 -0700 @@ -546,7 +546,6 @@ * user settings returned from * printDialog(PrintRequestAttributeSet attributes to * this print() method. - *

    * * @param attributes a set of attributes for the job * @exception PrinterException an error in the print system diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/java/beans/EventHandler.java --- a/jdk/src/share/classes/java/beans/EventHandler.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/java/beans/EventHandler.java Mon Aug 04 15:34:12 2014 -0700 @@ -437,7 +437,7 @@ if (method.getDeclaringClass() == Object.class) { // Handle the Object public methods. if (methodName.equals("hashCode")) { - return new Integer(System.identityHashCode(proxy)); + return System.identityHashCode(proxy); } else if (methodName.equals("equals")) { return (proxy == arguments[0] ? Boolean.TRUE : Boolean.FALSE); } else if (methodName.equals("toString")) { diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/java/beans/MetaData.java --- a/jdk/src/share/classes/java/beans/MetaData.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/java/beans/MetaData.java Mon Aug 04 15:34:12 2014 -0700 @@ -123,13 +123,13 @@ Class oldClass = oldInstance.getClass(); return new Expression(oldInstance, Array.class, "newInstance", new Object[]{oldClass.getComponentType(), - new Integer(Array.getLength(oldInstance))}); + Array.getLength(oldInstance)}); } protected void initialize(Class type, Object oldInstance, Object newInstance, Encoder out) { int n = Array.getLength(oldInstance); for (int i = 0; i < n; i++) { - Object index = new Integer(i); + Object index = i; // Expression oldGetExp = new Expression(Array.class, "get", new Object[]{oldInstance, index}); // Expression newGetExp = new Expression(Array.class, "get", new Object[]{newInstance, index}); Expression oldGetExp = new Expression(oldInstance, "get", new Object[]{index}); @@ -635,7 +635,7 @@ newSize = 0; } for (int i = 0; i < newSize; i++) { - Object index = new Integer(i); + Object index = i; Expression oldGetExp = new Expression(oldInstance, "get", new Object[]{index}); Expression newGetExp = new Expression(newInstance, "get", new Object[]{index}); @@ -892,7 +892,7 @@ protected Expression instantiate(Object oldInstance, Encoder out) { java.awt.MenuShortcut m = (java.awt.MenuShortcut)oldInstance; return new Expression(oldInstance, m.getClass(), "new", - new Object[]{new Integer(m.getKey()), Boolean.valueOf(m.usesShiftModifier())}); + new Object[]{m.getKey(), Boolean.valueOf(m.usesShiftModifier())}); } } diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/java/beans/NameGenerator.java --- a/jdk/src/share/classes/java/beans/NameGenerator.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/java/beans/NameGenerator.java Mon Aug 04 15:34:12 2014 -0700 @@ -107,7 +107,7 @@ Integer size = nameToCount.get(className); int instanceNumber = (size == null) ? 0 : (size).intValue() + 1; - nameToCount.put(className, new Integer(instanceNumber)); + nameToCount.put(className, instanceNumber); result = className + instanceNumber; valueToName.put(instance, result); diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/java/time/chrono/JapaneseEra.java --- a/jdk/src/share/classes/java/time/chrono/JapaneseEra.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/java/time/chrono/JapaneseEra.java Mon Aug 04 15:34:12 2014 -0700 @@ -127,7 +127,7 @@ // the number of defined JapaneseEra constants. // There could be an extra era defined in its configuration. - private static final int N_ERA_CONSTANTS = HEISEI.getValue() + ERA_OFFSET + 1; + private static final int N_ERA_CONSTANTS = HEISEI.getValue() + ERA_OFFSET; /** * Serialization version. @@ -148,7 +148,7 @@ for (int i = N_ERA_CONSTANTS; i < ERA_CONFIG.length; i++) { CalendarDate date = ERA_CONFIG[i].getSinceDate(); LocalDate isoDate = LocalDate.of(date.getYear(), date.getMonth(), date.getDayOfMonth()); - KNOWN_ERAS[i] = new JapaneseEra(i - ERA_OFFSET, isoDate); + KNOWN_ERAS[i] = new JapaneseEra(i - ERA_OFFSET + 1, isoDate); } }; @@ -195,7 +195,7 @@ * @throws DateTimeException if the value is invalid */ public static JapaneseEra of(int japaneseEra) { - if (japaneseEra < MEIJI.eraValue || japaneseEra + ERA_OFFSET - 1 >= KNOWN_ERAS.length) { + if (japaneseEra < MEIJI.eraValue || japaneseEra + ERA_OFFSET > KNOWN_ERAS.length) { throw new DateTimeException("Invalid era: " + japaneseEra); } return KNOWN_ERAS[ordinal(japaneseEra)]; diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/java/util/Collections.java --- a/jdk/src/share/classes/java/util/Collections.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/java/util/Collections.java Mon Aug 04 15:34:12 2014 -0700 @@ -2342,7 +2342,7 @@ public NavigableSet tailSet(E fromElement, boolean inclusive) { synchronized (mutex) { - return new SynchronizedNavigableSet<>(ns.tailSet(fromElement, inclusive)); + return new SynchronizedNavigableSet<>(ns.tailSet(fromElement, inclusive), mutex); } } } @@ -3486,6 +3486,7 @@ */ @Override public void replaceAll(UnaryOperator operator) { + Objects.requireNonNull(operator); list.replaceAll(e -> typeCheck(operator.apply(e))); } diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/java/util/DoubleSummaryStatistics.java --- a/jdk/src/share/classes/java/util/DoubleSummaryStatistics.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/java/util/DoubleSummaryStatistics.java Mon Aug 04 15:34:12 2014 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -129,9 +129,6 @@ * Returns the sum of values recorded, or zero if no values have been * recorded. * - * If any recorded value is a NaN or the sum is at any point a NaN - * then the sum will be NaN. - * *

    The value of a floating-point sum is a function both of the * input values as well as the order of addition operations. The * order of addition operations of this method is intentionally @@ -143,6 +140,44 @@ * numerical sum compared to a simple summation of {@code double} * values. * + * Because of the unspecified order of operations and the + * possibility of using differing summation schemes, the output of + * this method may vary on the same input values. + * + *

    Various conditions can result in a non-finite sum being + * computed. This can occur even if the all the recorded values + * being summed are finite. If any recorded value is non-finite, + * the sum will be non-finite: + * + *

      + * + *
    • If any recorded value is a NaN, then the final sum will be + * NaN. + * + *
    • If the recorded values contain one or more infinities, the + * sum will be infinite or NaN. + * + *
        + * + *
      • If the recorded values contain infinities of opposite sign, + * the sum will be NaN. + * + *
      • If the recorded values contain infinities of one sign and + * an intermediate sum overflows to an infinity of the opposite + * sign, the sum may be NaN. + * + *
      + * + *
    + * + * It is possible for intermediate sums of finite values to + * overflow into opposite-signed infinities; if that occurs, the + * final sum will be NaN even if the recorded values are all + * finite. + * + * If all the recorded values are zero, the sign of zero is + * not guaranteed to be preserved in the final sum. + * * @apiNote Values sorted by increasing absolute magnitude tend to yield * more accurate results. * @@ -193,15 +228,9 @@ * Returns the arithmetic mean of values recorded, or zero if no * values have been recorded. * - * If any recorded value is a NaN or the sum is at any point a NaN - * then the average will be code NaN. - * - *

    The average returned can vary depending upon the order in - * which values are recorded. - * - * This method may be implemented using compensated summation or - * other technique to reduce the error bound in the {@link #getSum - * numerical sum} used to compute the average. + *

    The computed average can vary numerically and have the + * special case behavior as computing the sum; see {@link #getSum} + * for details. * * @apiNote Values sorted by increasing absolute magnitude tend to yield * more accurate results. diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/java/util/stream/DoubleStream.java --- a/jdk/src/share/classes/java/util/stream/DoubleStream.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/java/util/stream/DoubleStream.java Mon Aug 04 15:34:12 2014 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -470,10 +470,7 @@ * code is not necessarily equivalent to the summation computation * done by this method. * - *

    If any stream element is a NaN or the sum is at any point a NaN - * then the sum will be NaN. - * - * The value of a floating-point sum is a function both + *

    The value of a floating-point sum is a function both * of the input values as well as the order of addition * operations. The order of addition operations of this method is * intentionally not defined to allow for implementation @@ -485,6 +482,44 @@ * numerical sum compared to a simple summation of {@code double} * values. * + * Because of the unspecified order of operations and the + * possibility of using differing summation schemes, the output of + * this method may vary on the same input elements. + * + *

    Various conditions can result in a non-finite sum being + * computed. This can occur even if the all the elements + * being summed are finite. If any element is non-finite, + * the sum will be non-finite: + * + *

      + * + *
    • If any element is a NaN, then the final sum will be + * NaN. + * + *
    • If the elements contain one or more infinities, the + * sum will be infinite or NaN. + * + *
        + * + *
      • If the elements contain infinities of opposite sign, + * the sum will be NaN. + * + *
      • If the elements contain infinities of one sign and + * an intermediate sum overflows to an infinity of the opposite + * sign, the sum may be NaN. + * + *
      + * + *
    + * + * It is possible for intermediate sums of finite values to + * overflow into opposite-signed infinities; if that occurs, the + * final sum will be NaN even if the elements are all + * finite. + * + * If all the elements are zero, the sign of zero is + * not guaranteed to be preserved in the final sum. + * *

    This is a terminal * operation. * @@ -555,15 +590,9 @@ * mean of elements of this stream, or an empty optional if this * stream is empty. * - * If any recorded value is a NaN or the sum is at any point a NaN - * then the average will be NaN. - * - *

    The average returned can vary depending upon the order in - * which values are recorded. - * - * This method may be implemented using compensated summation or - * other technique to reduce the error bound in the {@link #sum - * numerical sum} used to compute the average. + *

    The computed average can vary numerically and have the + * special case behavior as computing the sum; see {@link #sum} + * for details. * *

    The average is a special case of a reduction. diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/javax/imageio/package.html --- a/jdk/src/share/classes/javax/imageio/package.html Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/javax/imageio/package.html Mon Aug 04 15:34:12 2014 -0700 @@ -131,8 +131,8 @@

  • the number of bands is 1;
  • the number of bits per sample is not greater than 8;
  • the size of a color component is not greater than 8; -

    - + +

    By default the GIF writer plug-in creates version "89a" images. This can be changed to "87a" by explicitly setting the version in the diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/javax/imageio/spi/PartiallyOrderedSet.java --- a/jdk/src/share/classes/javax/imageio/spi/PartiallyOrderedSet.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/javax/imageio/spi/PartiallyOrderedSet.java Mon Aug 04 15:34:12 2014 -0700 @@ -170,7 +170,7 @@ while (iter.hasNext()) { DigraphNode node = iter.next(); int inDegree = node.getInDegree(); - inDegrees.put(node, new Integer(inDegree)); + inDegrees.put(node, inDegree); // Add nodes with zero in-degree to the zero list if (inDegree == 0) { @@ -191,7 +191,7 @@ while (outNodes.hasNext()) { DigraphNode node = outNodes.next(); int inDegree = inDegrees.get(node).intValue() - 1; - inDegrees.put(node, new Integer(inDegree)); + inDegrees.put(node, inDegree); // If the in-degree has fallen to 0, place the node on the list if (inDegree == 0) { diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/javax/naming/Context.java --- a/jdk/src/share/classes/javax/naming/Context.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/javax/naming/Context.java Mon Aug 04 15:34:12 2014 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -203,9 +203,7 @@ *

    Application Resource Files

    * * When an application is deployed, it will generally have several - * codebase directories and JARs in its classpath. Similarly, when an - * applet is deployed, it will have a codebase and archives specifying - * where to find the applet's classes. JNDI locates (using + * codebase directories and JARs in its classpath. JNDI locates (using * {@link ClassLoader#getResources ClassLoader.getResources()}) * all application resource files named jndi.properties * in the classpath. @@ -236,7 +234,7 @@ * * When JNDI constructs an initial context, the context's environment * is initialized with properties defined in the environment parameter - * passed to the constructor, the system properties, the applet parameters, + * passed to the constructor, the system properties, * and the application resource files. See * InitialContext * for details. @@ -268,8 +266,8 @@ *

    * In this way, each service provider developer can specify a list of * factories to use with that service provider. These can be modified by - * the application resources specified by the deployer of the application - * or applet, which in turn can be modified by the user. + * the application resources specified by the deployer of the application, + * which in turn can be modified by the user. * * @author Rosanna Lee * @author Scott Seligman @@ -822,7 +820,7 @@ * of the property should be the fully qualified class name * of the factory class that will create an initial context. * This property may be specified in the environment parameter - * passed to the initial context constructor, an applet parameter, + * passed to the initial context constructor, * a system property, or an application resource file. * If it is not specified in any of these sources, * NoInitialContextException is thrown when an initial @@ -837,7 +835,6 @@ * @see NoInitialContextException * @see #addToEnvironment(String, Object) * @see #removeFromEnvironment(String) - * @see #APPLET */ String INITIAL_CONTEXT_FACTORY = "java.naming.factory.initial"; @@ -847,8 +844,8 @@ * of the property should be a colon-separated list of the fully * qualified class names of factory classes that will create an object * given information about the object. - * This property may be specified in the environment, an applet - * parameter, a system property, or one or more resource files. + * This property may be specified in the environment, a system property, + * or one or more resource files. * *

    The value of this constant is "java.naming.factory.object". * @@ -856,7 +853,6 @@ * @see javax.naming.spi.ObjectFactory * @see #addToEnvironment(String, Object) * @see #removeFromEnvironment(String) - * @see #APPLET */ String OBJECT_FACTORIES = "java.naming.factory.object"; @@ -866,8 +862,8 @@ * of the property should be a colon-separated list of the fully * qualified class names of state factory classes that will be used * to get an object's state given the object itself. - * This property may be specified in the environment, an applet - * parameter, a system property, or one or more resource files. + * This property may be specified in the environment, a system property, + * or one or more resource files. * *

    The value of this constant is "java.naming.factory.state". * @@ -875,7 +871,6 @@ * @see javax.naming.spi.StateFactory * @see #addToEnvironment(String, Object) * @see #removeFromEnvironment(String) - * @see #APPLET * @since 1.3 */ String STATE_FACTORIES = "java.naming.factory.state"; @@ -887,9 +882,8 @@ * of the property should be a colon-separated list of package * prefixes for the class name of the factory class that will create * a URL context factory. - * This property may be specified in the environment, - * an applet parameter, a system property, or one or more - * resource files. + * This property may be specified in the environment, a system property, + * or one or more resource files. * The prefix com.sun.jndi.url is always appended to * the possibly empty list of package prefixes. * @@ -900,8 +894,7 @@ * @see javax.naming.spi.ObjectFactory * @see #addToEnvironment(String, Object) * @see #removeFromEnvironment(String) - * @see #APPLET - */ + */ String URL_PKG_PREFIXES = "java.naming.factory.url.pkgs"; /** @@ -909,8 +902,8 @@ * for specifying configuration information for the service provider * to use. The value of the property should contain a URL string * (e.g. "ldap://somehost:389"). - * This property may be specified in the environment, - * an applet parameter, a system property, or a resource file. + * This property may be specified in the environment, a system property, + * or a resource file. * If it is not specified in any of these sources, * the default configuration is determined by the service provider. * @@ -918,7 +911,6 @@ * * @see #addToEnvironment(String, Object) * @see #removeFromEnvironment(String) - * @see #APPLET */ String PROVIDER_URL = "java.naming.provider.url"; @@ -926,8 +918,8 @@ * Constant that holds the name of the environment property * for specifying the DNS host and domain names to use for the * JNDI URL context (for example, "dns://somehost/wiz.com"). - * This property may be specified in the environment, - * an applet parameter, a system property, or a resource file. + * This property may be specified in the environment, a system property, + * or a resource file. * If it is not specified in any of these sources * and the program attempts to use a JNDI URL containing a DNS name, * a ConfigurationException will be thrown. @@ -1073,27 +1065,25 @@ String LANGUAGE = "java.naming.language"; /** - * Constant that holds the name of the environment property for - * specifying an applet for the initial context constructor to use - * when searching for other properties. - * The value of this property is the - * java.applet.Applet instance that is being executed. - * This property may be specified in the environment parameter - * passed to the initial context constructor. - * When this property is set, each property that the initial context - * constructor looks for in the system properties is first looked for - * in the applet's parameter list. - * If this property is unspecified, the initial context constructor - * will search for properties only in the environment parameter - * passed to it, the system properties, and application resource files. + * @deprecated An environment property with this name is ignored + * while constructing an initial context. + * This constant was originally used as a property name to specify an + * {@code Applet} to retrieve parameters from, when creating an initial + * context. Currently any applet properties that need to be passed to an + * initial context should be copied into the environment hashtable: + *

    {@code
    +     *     Hashtable env = new Hashtable();
    +     *     env.put(Context.INITIAL_CONTEXT_FACTORY,
    +     *       ((Applet) this).getParameter(Context.INITIAL_CONTEXT_FACTORY));
    +     *     env.put(Context.PROVIDER_URL,
    +     *       ((Applet) this).getParameter(Context.PROVIDER_URL));
    +     *     // ... other properties ...
          *
    -     * 

    The value of this constant is "java.naming.applet". - * - * @see #addToEnvironment(String, Object) - * @see #removeFromEnvironment(String) - * @see InitialContext + * Context ctx = new InitialContext(env); + * }

    * * @since 1.3 */ + @Deprecated String APPLET = "java.naming.applet"; }; diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/javax/naming/InitialContext.java --- a/jdk/src/share/classes/javax/naming/InitialContext.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/javax/naming/InitialContext.java Mon Aug 04 15:34:12 2014 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -41,21 +41,13 @@ * is initialized with properties defined in the environment parameter * passed to the constructor, and in any * application resource files. - * In addition, a small number of standard JNDI properties may - * be specified as system properties or as applet parameters - * (through the use of {@link Context#APPLET}). - * These special properties are listed in the field detail sections of the - * Context and - * LdapContext - * interface documentation. *

    * JNDI determines each property's value by merging * the values from the following two sources, in order: *

      *
    1. * The first occurrence of the property from the constructor's - * environment parameter and (for appropriate properties) the applet - * parameters and system properties. + * environment parameter and system properties. *
    2. * The application resource files (jndi.properties). *
    diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/javax/naming/directory/DirContext.java --- a/jdk/src/share/classes/javax/naming/directory/DirContext.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/javax/naming/directory/DirContext.java Mon Aug 04 15:34:12 2014 -0700 @@ -723,7 +723,7 @@ * specified set of attributes. * This method returns all the attributes of such objects. * It is equivalent to supplying null as - * the atributesToReturn parameter to the method + * the attributesToReturn parameter to the method * search(Name, Attributes, String[]). *
    * See {@link #search(Name, Attributes, String[])} for a full description. diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/javax/naming/ldap/LdapContext.java --- a/jdk/src/share/classes/javax/naming/ldap/LdapContext.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/javax/naming/ldap/LdapContext.java Mon Aug 04 15:34:12 2014 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -334,8 +334,8 @@ * qualified class names of factory classes that will create a control * given another control. See * ControlFactory.getControlInstance() for details. - * This property may be specified in the environment, an applet - * parameter, a system property, or one or more resource files. + * This property may be specified in the environment, a system property, + * or one or more resource files. *

    * The value of this constant is "java.naming.factory.control". * diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/javax/naming/ldap/Rdn.java --- a/jdk/src/share/classes/javax/naming/ldap/Rdn.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/javax/naming/ldap/Rdn.java Mon Aug 04 15:34:12 2014 -0700 @@ -421,7 +421,7 @@ private String type; private Object value; - // If non-null, a cannonical representation of the value suitable + // If non-null, a canonical representation of the value suitable // for comparison using String.compareTo() private String comparable = null; @@ -571,10 +571,10 @@ } /** - * Given an attribute value string formated according to the rules + * Given an attribute value string formatted according to the rules * specified in * RFC 2253, - * returns the unformated value. Escapes and quotes are + * returns the unformatted value. Escapes and quotes are * stripped away, and hex-encoded UTF-8 is converted to equivalent * UTF-16 characters. Returns a string value as a String, and a * binary value as a byte array. diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/javax/naming/ldap/SortControl.java --- a/jdk/src/share/classes/javax/naming/ldap/SortControl.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/javax/naming/ldap/SortControl.java Mon Aug 04 15:34:12 2014 -0700 @@ -188,7 +188,7 @@ /* * Encodes the sort control's value using ASN.1 BER. * The result includes the BER tag and length for the control's value but - * does not include the control's object identifer and criticality setting. + * does not include the control's object identifier and criticality setting. * * @param sortKeys A non-null list of keys to sort by. * @return A possibly null byte array representing the ASN.1 BER encoded diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/javax/naming/spi/NamingManager.java --- a/jdk/src/share/classes/javax/naming/spi/NamingManager.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/javax/naming/spi/NamingManager.java Mon Aug 04 15:34:12 2014 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2012, 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 @@ -491,7 +491,7 @@ * (e.g. "ftpURLContextFactory" for the "ftp" scheme-id), * in the package specified as follows. * The Context.URL_PKG_PREFIXES environment property (which - * may contain values taken from applet parameters, system properties, + * may contain values taken from system properties, * or application resource files) * contains a colon-separated list of package prefixes. * Each package prefix in @@ -661,8 +661,7 @@ if (className == null) { NoInitialContextException ne = new NoInitialContextException( "Need to specify class name in environment or system " + - "property, or as an applet parameter, or in an " + - "application resource file: " + + "property, or in an application resource file: " + Context.INITIAL_CONTEXT_FACTORY); throw ne; } diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/javax/print/Doc.java --- a/jdk/src/share/classes/javax/print/Doc.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/javax/print/Doc.java Mon Aug 04 15:34:12 2014 -0700 @@ -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 @@ -168,7 +168,7 @@ * from the print data representation object. * However, if the print data representation object is itself a Reader, * then the print data representation object is simply returned. - *

    + * * @return Reader for reading the print data characters from this doc. * If a reader cannot be provided because this doc does not meet * the criteria stated above, null is returned. @@ -192,7 +192,7 @@ * object as a stream of bytes is created and returned. However, if the * print data representation object is itself an input stream, then the * print data representation object is simply returned. - *

    + * * @return Input stream for reading the print data bytes from this doc. If * an input stream cannot be provided because this doc does not * meet the criteria stated above, null is returned. diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/javax/print/DocFlavor.java --- a/jdk/src/share/classes/javax/print/DocFlavor.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/javax/print/DocFlavor.java Mon Aug 04 15:34:12 2014 -0700 @@ -381,7 +381,6 @@ *

  • * A line feed (LF) character standing by itself means * "go to column 1 of the next line." - *
  • * *

    * The client must itself perform all plain text print data formatting not @@ -436,7 +435,6 @@ * Java Print Service instance supports without having * to load the representation classes, which may be problematic for * limited-resource clients. - *

    * * @author Alan Kaminsky */ @@ -536,7 +534,7 @@ * The charset for text types is a commonly useful example. * This convenience method will return the value of the specified * parameter if one was specified in the mime type for this flavor. - *

    + * * @param paramName the name of the paramater. This name is internally * converted to the canonical lower case format before performing * the match. @@ -638,7 +636,6 @@ * Class DocFlavor.BYTE_ARRAY provides predefined static constant * DocFlavor objects for example doc flavors using a byte array * (byte[]) as the print data representation class. - *

    * * @author Alan Kaminsky */ @@ -836,7 +833,6 @@ * DocFlavor objects for example doc flavors using a byte stream ({@link * java.io.InputStream java.io.InputStream}) as the print * data representation class. - *

    * * @author Alan Kaminsky */ @@ -1038,8 +1034,7 @@ * objects. * For example doc flavors using a Uniform Resource Locator ({@link * java.net.URL java.net.URL}) as the print data - * representation class. - *

    + * representation class. * * @author Alan Kaminsky */ @@ -1229,7 +1224,6 @@ * DocFlavor objects for example doc flavors using a character array * (char[]) as the print data representation class. As such, * the character set is Unicode. - *

    * * @author Alan Kaminsky */ @@ -1279,7 +1273,6 @@ * objects for example doc flavors using a string ({@link java.lang.String * java.lang.String}) as the print data representation class. * As such, the character set is Unicode. - *

    * * @author Alan Kaminsky */ @@ -1327,7 +1320,6 @@ * objects for example doc flavors using a character stream ({@link * java.io.Reader java.io.Reader}) as the print data * representation class. As such, the character set is Unicode. - *

    * * @author Alan Kaminsky */ @@ -1376,7 +1368,6 @@ * Class DocFlavor.SERVICE_FORMATTED provides predefined static constant * DocFlavor objects for example doc flavors for service formatted print * data. - *

    * * @author Alan Kaminsky */ diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/javax/print/PrintService.java --- a/jdk/src/share/classes/javax/print/PrintService.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/javax/print/PrintService.java Mon Aug 04 15:34:12 2014 -0700 @@ -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 @@ -327,7 +327,6 @@ * that indicates bounds on the legal values -- used, for example, by an * integer-valued attribute that must lie within a certain range. * - *

    * * @param category Printing attribute category to test. It must be a * {@link java.lang.Class Class} that implements diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/javax/print/PrintServiceLookup.java --- a/jdk/src/share/classes/javax/print/PrintServiceLookup.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/javax/print/PrintServiceLookup.java Mon Aug 04 15:34:12 2014 -0700 @@ -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 @@ -199,7 +199,6 @@ * available that is not part of the installation. * If the lookup service is already registered, or cannot be registered, * the method returns false. - *

    * * @param sp an implementation of a lookup service. * @return true if the new lookup service is newly @@ -305,7 +304,6 @@ *

    * Locates MultiDoc print services which can be positively confirmed * to support the combination of attributes and DocFlavors specified. - *

    * * @param flavors of documents required. If null or empty it is ignored. * @param attributes required to be supported. If null this diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/javax/print/ServiceUI.java --- a/jdk/src/share/classes/javax/print/ServiceUI.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/javax/print/ServiceUI.java Mon Aug 04 15:34:12 2014 -0700 @@ -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 @@ -131,8 +131,7 @@ * } * } * } - *

    - + * * @param gc used to select screen. null means primary or default screen. * @param x location of dialog including border in screen coordinates * @param y location of dialog including border in screen coordinates diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/javax/print/ServiceUIFactory.java --- a/jdk/src/share/classes/javax/print/ServiceUIFactory.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/javax/print/ServiceUIFactory.java Mon Aug 04 15:34:12 2014 -0700 @@ -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 @@ -111,7 +111,7 @@ /** * Get a UI object which may be cast to the requested UI type * by the application and used in its user interface. - *

    + * * @param role requested. Must be one of the standard roles or * a private role supported by this factory. * @param ui type in which the role is requested. diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/javax/print/SimpleDoc.java --- a/jdk/src/share/classes/javax/print/SimpleDoc.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/javax/print/SimpleDoc.java Mon Aug 04 15:34:12 2014 -0700 @@ -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 @@ -176,7 +176,7 @@ * However, if the print data representation object is itself a * Reader then the print data representation object is * simply returned. - *

    + * * @return a Reader for reading the print data * characters from this doc. * If a reader cannot be provided because this doc does not meet @@ -224,7 +224,7 @@ * However, if the print data representation object is itself an * input stream then the print data representation object is simply * returned. - *

    + * * @return an InputStream for reading the print data * bytes from this doc. If an input stream cannot be * provided because this doc does not meet diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/javax/print/StreamPrintServiceFactory.java --- a/jdk/src/share/classes/javax/print/StreamPrintServiceFactory.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/javax/print/StreamPrintServiceFactory.java Mon Aug 04 15:34:12 2014 -0700 @@ -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 @@ -95,7 +95,7 @@ * Although null is an acceptable value to use in the lookup of stream * printing services, it's typical to search for a particular * desired format, such as Postscript(TM). - *

    + * * @param flavor of the input document type - null means match all * types. * @param outputMimeType representing the required output format, used to @@ -153,7 +153,7 @@ * Implementations which allocate resources on construction should examine * the stream and may wish to only allocate resources if the stream is * non-null. - *

    + * * @param out destination stream for generated output. * @return a PrintService which will generate the format specified by the * DocFlavor supported by this Factory. diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/javax/print/attribute/Attribute.java --- a/jdk/src/share/classes/javax/print/attribute/Attribute.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/javax/print/attribute/Attribute.java Mon Aug 04 15:34:12 2014 -0700 @@ -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 @@ -31,7 +31,6 @@ * Interface Attribute is the base interface implemented by any and every * printing attribute class to indicate that the class represents a * printing attribute. All printing attributes are serializable. - *

    * * @author David Mendenhall * @author Alan Kaminsky diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/javax/print/attribute/DateTimeSyntax.java --- a/jdk/src/share/classes/javax/print/attribute/DateTimeSyntax.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/javax/print/attribute/DateTimeSyntax.java Mon Aug 04 15:34:12 2014 -0700 @@ -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 @@ -54,7 +54,6 @@ * rather than a java.util.Calendar because it typically takes * less memory to store and less time to compare a java.util.Date * than a java.util.Calendar. - *

    * * @author Alan Kaminsky */ diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/javax/print/attribute/DocAttribute.java --- a/jdk/src/share/classes/javax/print/attribute/DocAttribute.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/javax/print/attribute/DocAttribute.java Mon Aug 04 15:34:12 2014 -0700 @@ -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 @@ -36,7 +36,6 @@ * PrintRequestAttribute} as well as DocAttribute, the client may include the * attribute in a attribute set which specifies a print job * to specify a characteristic for all the docs in that job. - *

    * * @see DocAttributeSet * @see PrintRequestAttributeSet diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/javax/print/attribute/DocAttributeSet.java --- a/jdk/src/share/classes/javax/print/attribute/DocAttributeSet.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/javax/print/attribute/DocAttributeSet.java Mon Aug 04 15:34:12 2014 -0700 @@ -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 @@ -40,7 +40,6 @@ * The {@link #add(Attribute) add(Attribute)}, and * {@link #addAll(AttributeSet) addAll(AttributeSet)} operations * are respecified below to guarantee this additional invariant. - *

    * * @author Alan Kaminsky */ diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/javax/print/attribute/EnumSyntax.java --- a/jdk/src/share/classes/javax/print/attribute/EnumSyntax.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/javax/print/attribute/EnumSyntax.java Mon Aug 04 15:34:12 2014 -0700 @@ -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 @@ -102,7 +102,6 @@ * uses some of the same integer values as the superclass. However, the * application in which the enumeration class and subclass are used may need to * have distinct integer values in the superclass and subclass. - *

    * * @author David Mendenhall * @author Alan Kaminsky diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/javax/print/attribute/HashAttributeSet.java --- a/jdk/src/share/classes/javax/print/attribute/HashAttributeSet.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/javax/print/attribute/HashAttributeSet.java Mon Aug 04 15:34:12 2014 -0700 @@ -34,7 +34,6 @@ /** * Class HashAttributeSet provides an AttributeSet * implementation with characteristics of a hash map. - *

    * * @author Alan Kaminsky */ diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/javax/print/attribute/HashDocAttributeSet.java --- a/jdk/src/share/classes/javax/print/attribute/HashDocAttributeSet.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/javax/print/attribute/HashDocAttributeSet.java Mon Aug 04 15:34:12 2014 -0700 @@ -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 @@ -33,7 +33,6 @@ * inherits its implementation from class {@link HashAttributeSet * HashAttributeSet} and enforces the semantic restrictions of interface {@link * DocAttributeSet DocAttributeSet}. - *

    * * @author Alan Kaminsky */ diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/javax/print/attribute/HashPrintJobAttributeSet.java --- a/jdk/src/share/classes/javax/print/attribute/HashPrintJobAttributeSet.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/javax/print/attribute/HashPrintJobAttributeSet.java Mon Aug 04 15:34:12 2014 -0700 @@ -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 @@ -33,7 +33,6 @@ * which inherits its implementation from class {@link HashAttributeSet * HashAttributeSet} and enforces the semantic restrictions of interface * {@link PrintJobAttributeSet PrintJobAttributeSet}. - *

    * * @author Alan Kaminsky */ diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/javax/print/attribute/HashPrintRequestAttributeSet.java --- a/jdk/src/share/classes/javax/print/attribute/HashPrintRequestAttributeSet.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/javax/print/attribute/HashPrintRequestAttributeSet.java Mon Aug 04 15:34:12 2014 -0700 @@ -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 @@ -33,7 +33,6 @@ * class {@link HashAttributeSet HashAttributeSet} and enforces the * semantic restrictions of interface * {@link PrintRequestAttributeSet PrintRequestAttributeSet}. - *

    * * @author Alan Kaminsky */ diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/javax/print/attribute/HashPrintServiceAttributeSet.java --- a/jdk/src/share/classes/javax/print/attribute/HashPrintServiceAttributeSet.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/javax/print/attribute/HashPrintServiceAttributeSet.java Mon Aug 04 15:34:12 2014 -0700 @@ -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 @@ -32,7 +32,6 @@ * which inherits its implementation from class {@link HashAttributeSet * HashAttributeSet} and enforces the semantic restrictions of interface * {@link PrintServiceAttributeSet PrintServiceAttributeSet}. - *

    * * @author Alan Kaminsky */ diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/javax/print/attribute/IntegerSyntax.java --- a/jdk/src/share/classes/javax/print/attribute/IntegerSyntax.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/javax/print/attribute/IntegerSyntax.java Mon Aug 04 15:34:12 2014 -0700 @@ -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 @@ -37,7 +37,6 @@ * established when it is constructed (see {@link #IntegerSyntax(int) * IntegerSyntax(int)}). Once constructed, an integer attribute's * value is immutable. - *

    * * @author David Mendenhall * @author Alan Kaminsky diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/javax/print/attribute/PrintJobAttribute.java --- a/jdk/src/share/classes/javax/print/attribute/PrintJobAttribute.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/javax/print/attribute/PrintJobAttribute.java Mon Aug 04 15:34:12 2014 -0700 @@ -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 @@ -34,7 +34,6 @@ * PrintRequestAttribute PrintRequestAttribute} as well as PrintJobAttribute, * the client may include the attribute in a attribute set to * specify the attribute's value for the Print Job. - *

    * * @see PrintRequestAttributeSet * @see PrintJobAttributeSet diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/javax/print/attribute/PrintJobAttributeSet.java --- a/jdk/src/share/classes/javax/print/attribute/PrintJobAttributeSet.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/javax/print/attribute/PrintJobAttributeSet.java Mon Aug 04 15:34:12 2014 -0700 @@ -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 @@ -39,7 +39,6 @@ * The {@link #add(Attribute) add(Attribute)}, and * {@link #addAll(AttributeSet) >addAll(AttributeSet)} operations * are respecified below to guarantee this additional invariant. - *

    * * @author Alan Kaminsky */ diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/javax/print/attribute/PrintRequestAttribute.java --- a/jdk/src/share/classes/javax/print/attribute/PrintRequestAttribute.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/javax/print/attribute/PrintRequestAttribute.java Mon Aug 04 15:34:12 2014 -0700 @@ -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 @@ -39,7 +39,6 @@ * as well as PrintRequestAttribute, the client may include the * attribute in a Doc}'s attribute set to specify * a job setting which pertains just to that doc. - *

    * * @see DocAttributeSet * @see PrintRequestAttributeSet diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/javax/print/attribute/PrintRequestAttributeSet.java --- a/jdk/src/share/classes/javax/print/attribute/PrintRequestAttributeSet.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/javax/print/attribute/PrintRequestAttributeSet.java Mon Aug 04 15:34:12 2014 -0700 @@ -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 @@ -40,7 +40,6 @@ * The {@link #add(Attribute) add(Attribute)}, and * {@link #addAll(AttributeSet) addAll(AttributeSet)} operations * are respecified below to guarantee this additional invariant. - *

    * * @author Alan Kaminsky */ diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/javax/print/attribute/PrintServiceAttribute.java --- a/jdk/src/share/classes/javax/print/attribute/PrintServiceAttribute.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/javax/print/attribute/PrintServiceAttribute.java Mon Aug 04 15:34:12 2014 -0700 @@ -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 @@ -31,7 +31,6 @@ * of a Print Service or some other characteristic of a Print Service. A Print * Service instance adds a number of PrintServiceAttributes to a Print * service's attribute set to report the Print Service's status. - *

    * * @see PrintServiceAttributeSet * diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/javax/print/attribute/PrintServiceAttributeSet.java --- a/jdk/src/share/classes/javax/print/attribute/PrintServiceAttributeSet.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/javax/print/attribute/PrintServiceAttributeSet.java Mon Aug 04 15:34:12 2014 -0700 @@ -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 @@ -42,7 +42,6 @@ * The {@link #add(Attribute) add(Attribute)}, and * {@link #addAll(AttributeSet) addAll(AttributeSet)} operations * are respecified below to guarantee this additional invariant. - *

    * * @author Alan Kaminsky */ diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/javax/print/attribute/ResolutionSyntax.java --- a/jdk/src/share/classes/javax/print/attribute/ResolutionSyntax.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/javax/print/attribute/ResolutionSyntax.java Mon Aug 04 15:34:12 2014 -0700 @@ -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 @@ -78,7 +78,6 @@ * mind, there is no guarantee that the conversion factor for the client's units * will be an exact integer. If the conversion factor isn't an exact integer, * resolution values in the client's units won't be stored precisely. - *

    * * @author David Mendenhall * @author Alan Kaminsky diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/javax/print/attribute/SetOfIntegerSyntax.java --- a/jdk/src/share/classes/javax/print/attribute/SetOfIntegerSyntax.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/javax/print/attribute/SetOfIntegerSyntax.java Mon Aug 04 15:34:12 2014 -0700 @@ -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 @@ -75,7 +75,6 @@ * Class SetOfIntegerSyntax has operations to return the set's members in * canonical array form, to test whether a given integer is a member of the * set, and to iterate through the members of the set. - *

    * * @author David Mendenhall * @author Alan Kaminsky diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/javax/print/attribute/Size2DSyntax.java --- a/jdk/src/share/classes/javax/print/attribute/Size2DSyntax.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/javax/print/attribute/Size2DSyntax.java Mon Aug 04 15:34:12 2014 -0700 @@ -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 @@ -77,7 +77,6 @@ * client's units will be an exact integer. If the conversion factor isn't an * exact integer, resolution values in the client's units won't be stored * precisely. - *

    * * @author Alan Kaminsky */ diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/javax/print/attribute/SupportedValuesAttribute.java --- a/jdk/src/share/classes/javax/print/attribute/SupportedValuesAttribute.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/javax/print/attribute/SupportedValuesAttribute.java Mon Aug 04 15:34:12 2014 -0700 @@ -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 @@ -36,7 +36,6 @@ * which is a SupportedValuesAttribute giving the legal values a client may * specify for the {@link javax.print.attribute.standard.Copies Copies} * attribute. - *

    * * @author Alan Kaminsky */ diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/javax/print/attribute/TextSyntax.java --- a/jdk/src/share/classes/javax/print/attribute/TextSyntax.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/javax/print/attribute/TextSyntax.java Mon Aug 04 15:34:12 2014 -0700 @@ -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 @@ -35,7 +35,6 @@ * includes a locale to indicate the natural language. Thus, a text attribute * always represents a localized string. Once constructed, a text attribute's * value is immutable. - *

    * * @author David Mendenhall * @author Alan Kaminsky diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/javax/print/attribute/URISyntax.java --- a/jdk/src/share/classes/javax/print/attribute/URISyntax.java Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/javax/print/attribute/URISyntax.java Mon Aug 04 15:34:12 2014 -0700 @@ -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 @@ -33,7 +33,6 @@ * Class URISyntax is an abstract base class providing the common * implementation of all attributes whose value is a Uniform Resource * Identifier (URI). Once constructed, a URI attribute's value is immutable. - *

    * * @author Alan Kaminsky */ diff -r aec458f88f96 -r e8971dbd447d jdk/src/share/classes/javax/print/attribute/package.html --- a/jdk/src/share/classes/javax/print/attribute/package.html Fri Aug 01 14:09:19 2014 -0700 +++ b/jdk/src/share/classes/javax/print/attribute/package.html Mon Aug 04 15:34:12 2014 -0700 @@ -3,7 +3,7 @@ javax.print.attribute package