--- a/.hgtags Fri Aug 07 11:32:04 2009 -0700
+++ b/.hgtags Mon Aug 10 09:47:21 2009 -0700
@@ -41,3 +41,4 @@
d22867c5f1b295a0a2b3b4bc8999a2676f6e20c3 jdk7-b64
7d3bf00f3cc4f8125de1842521e7567f37dc84b8 jdk7-b65
62109d1b9e7310f29ab51ca6f1d71b899c0ce6b0 jdk7-b66
+eb24af1404aec8aa140c4cd4d13d2839b150dd41 jdk7-b67
--- a/.hgtags-top-repo Fri Aug 07 11:32:04 2009 -0700
+++ b/.hgtags-top-repo Mon Aug 10 09:47:21 2009 -0700
@@ -41,3 +41,4 @@
269c1ec4435dfb7b452ae6e3bdde005d55c5c830 jdk7-b64
e01380cd1de4ce048b87d059d238e5ab5e341947 jdk7-b65
6bad5e3fe50337d95b1416d744780d65bc570da6 jdk7-b66
+c4523c6f82048f420bf0d57c4cd47976753b7d2c jdk7-b67
--- a/corba/.hgtags Fri Aug 07 11:32:04 2009 -0700
+++ b/corba/.hgtags Mon Aug 10 09:47:21 2009 -0700
@@ -41,3 +41,4 @@
047dd27fddb607f8135296b3754131f6e13cb8c7 jdk7-b64
97fd9b42f5c2d342b90d18f0a2b57e4117e39415 jdk7-b65
a821e059a961bcb02830280d51f6dd030425c066 jdk7-b66
+a12ea7c7b497b4ba7830550095ef633bd6f43971 jdk7-b67
--- a/corba/make/Makefile Fri Aug 07 11:32:04 2009 -0700
+++ b/corba/make/Makefile Mon Aug 10 09:47:21 2009 -0700
@@ -110,7 +110,7 @@
ifdef TARGET_CLASS_VERSION
TARGET_LEVEL = $(TARGET_CLASS_VERSION)
else
- TARGET_LEVEL = 6
+ TARGET_LEVEL = 7
endif
ifndef TARGET_JAVA
--- a/corba/make/common/shared/Defs-java.gmk Fri Aug 07 11:32:04 2009 -0700
+++ b/corba/make/common/shared/Defs-java.gmk Mon Aug 10 09:47:21 2009 -0700
@@ -107,12 +107,12 @@
NO_PROPRIETARY_API_WARNINGS = -XDignore.symbol.file=true
JAVACFLAGS += $(NO_PROPRIETARY_API_WARNINGS)
-# Add the source level (currently all source is 1.5, should this be 1.6?)
-LANGUAGE_VERSION = -source 1.5
+# Add the source level
+LANGUAGE_VERSION = -source 7
JAVACFLAGS += $(LANGUAGE_VERSION)
-# Add the class version we want (currently this is 5, should it be 6 or even 7?)
-TARGET_CLASS_VERSION = 5
+# Add the class version we want
+TARGET_CLASS_VERSION = 7
CLASS_VERSION = -target $(TARGET_CLASS_VERSION)
JAVACFLAGS += $(CLASS_VERSION)
JAVACFLAGS += -encoding ascii
--- a/hotspot/.hgtags Fri Aug 07 11:32:04 2009 -0700
+++ b/hotspot/.hgtags Mon Aug 10 09:47:21 2009 -0700
@@ -41,3 +41,4 @@
ba36394eb84b949b31212bdb32a518a8f92bab5b jdk7-b64
ba313800759b678979434d6da8ed3bf49eb8bea4 jdk7-b65
57c71ad0341b8b64ed20f81151eb7f06324f8894 jdk7-b66
+18f526145aea355a9320b724373386fc2170f183 jdk7-b67
--- a/jaxp/.hgtags Fri Aug 07 11:32:04 2009 -0700
+++ b/jaxp/.hgtags Mon Aug 10 09:47:21 2009 -0700
@@ -41,3 +41,4 @@
a10eec7a1edf536f39b5828d8623054dbc62c2b7 jdk7-b64
008c662e0ee9a91aebb75e46b97de979083d5c1c jdk7-b65
22f9d5d5b5fe0f47048f41e6c6e54fee5edad0ec jdk7-b66
+a033af8d824a408d3ac602205ecdefc128749e1e jdk7-b67
--- a/jaxp/make/build.properties Fri Aug 07 11:32:04 2009 -0700
+++ b/jaxp/make/build.properties Mon Aug 10 09:47:21 2009 -0700
@@ -30,8 +30,8 @@
# one of the standard user build.properties files (see build.xml)
# options for the <javac> tasks used to compile the tools
-javac.source = 5
-javac.target = 5
+javac.source = 7
+javac.target = 7
javac.debug = true
javac.no.jdk.warnings = -XDignore.symbol.file=true
# set the following to -version to verify the versions of javac being used
--- a/jaxws/.hgtags Fri Aug 07 11:32:04 2009 -0700
+++ b/jaxws/.hgtags Mon Aug 10 09:47:21 2009 -0700
@@ -41,3 +41,4 @@
aaa25dfd3de68c6f1a1d3ef8c45fd99f76bca6dd jdk7-b64
aa22a1be5866a6608ba17a7a443945559409ae0f jdk7-b65
fa8712c099edd5c9a6b3ed9729353738004d388f jdk7-b66
+faa13cd4d6cdcfb155da5ed23b0da6e0ed0f9ea8 jdk7-b67
--- a/jaxws/make/build.properties Fri Aug 07 11:32:04 2009 -0700
+++ b/jaxws/make/build.properties Mon Aug 10 09:47:21 2009 -0700
@@ -30,8 +30,8 @@
# one of the standard user build.properties files (see build.xml)
# options for the <javac> tasks used to compile the tools
-javac.source = 5
-javac.target = 5
+javac.source = 7
+javac.target = 7
javac.debug = true
javac.no.jdk.warnings = -XDignore.symbol.file=true
# set the following to -version to verify the versions of javac being used
--- a/jdk/.hgtags Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/.hgtags Mon Aug 10 09:47:21 2009 -0700
@@ -42,3 +42,4 @@
382a27aa78d3236fa123c60577797a887fe93e09 jdk7-b65
bd31b30a5b21f20e42965b1633f18a5c7946d398 jdk7-b66
a952aafd5181af953b0ef3010dbd2fcc28460e8a jdk7-b67
+b23d905cb5d3b382295240d28ab0bfb266b4503c jdk7-b68
--- a/jdk/make/com/sun/crypto/provider/Makefile Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/make/com/sun/crypto/provider/Makefile Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2007-2009 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -45,54 +45,49 @@
# For OpenJDK, the jar files built here are installed directly into the
# OpenJDK.
#
-# For JDK, the binaries use pre-built/pre-signed/pre-obfuscated binary
-# files stored in the closed workspace that are not shipped in the
-# OpenJDK workspaces. We still build the JDK files here to verify the
-# files compile, and in preparation for possible signing and
-# obfuscation. Developers working on JCE in JDK must sign the JCE files
-# before testing: obfuscation is optional during development. The JCE
-# signing key is kept separate from the JDK workspace to prevent its
-# disclosure. The obfuscation tool has not been licensed for general
-# usage.
-#
+# For JDK, the binaries use pre-built/pre-signed binary files stored in
+# the closed workspace that are not shipped in the OpenJDK workspaces.
+# We still build the JDK files here to verify the files compile, and in
+# preparation for possible signing. Developers working on JCE in JDK
+# must sign the JCE files before testing. The JCE signing key is kept
+# separate from the JDK workspace to prevent its disclosure.
+#
# SPECIAL NOTE TO JCE/JDK developers: The source files must eventually
-# be built, obfuscated, signed, and then the resulting jar files MUST BE
-# CHECKED INTO THE CLOSED PART OF THE WORKSPACE*. This separate step
-# *MUST NOT BE FORGOTTEN*, otherwise a bug fixed in the source code will
-# not be reflected in the shipped binaries. The "release" target should be
+# be built and signed, and the resulting jar files MUST BE CHECKED INTO
+# THE CLOSED PART OF THE WORKSPACE*. This separate step *MUST NOT BE
+# FORGOTTEN*, otherwise a bug fixed in the source code will not be
+# reflected in the shipped binaries. The "release" target should be
# used to generate the required files.
#
# There are a number of targets to help both JDK/OpenJDK developers.
#
# Main Targets (JDK/OPENJDK):
#
-# all/clobber/clean The usual.
-# If OpenJDK, installs sunjce_provider.jar.
-# If JDK, installs prebuilt
-# sunjce_provider.jar.
+# all/clobber/clean The usual.
+# If OpenJDK, installs sunjce_provider.jar.
+# If JDK, installs prebuilt
+# sunjce_provider.jar.
#
-# jar Builds/installs sunjce_provider.jar
-# If OpenJDK, does not sign.
-# If JDK, tries to sign.
+# jar Builds/installs sunjce_provider.jar
+# If OpenJDK, does not sign.
+# If JDK, tries to sign.
#
# Other lesser-used Targets (JDK/OPENJDK):
#
-# build-jar Builds sunjce_provider.jar
-# (does not sign/install)
+# build-jar Builds sunjce_provider.jar
+# (does not sign/install)
#
-# install-jar Alias for "jar" above.
+# install-jar Alias for "jar" above.
#
# Other targets (JDK only):
#
-# sign Alias for sign-jar
-# sign-jar Builds/signs sunjce_provider.jar (no install)
-#
-# obfus Builds/obfuscates/signs sunjce_provider.jar
+# sign Alias for sign-jar
+# sign-jar Builds/signs sunjce_provider.jar (no install)
#
-# release Builds all targets in preparation
-# for workspace integration.
+# release Builds all targets in preparation
+# for workspace integration.
#
-# install-prebuilt Installs the pre-built jar files
+# install-prebuilt Installs the pre-built jar files
#
# This makefile was written to support parallel target execution.
#
@@ -103,7 +98,7 @@
#
# The following is for when we need to do postprocessing
-# (signing/obfuscation) against a read-only build. If the OUTPUTDIR
+# (signing) against a read-only build. If the OUTPUTDIR
# isn't writable, the build currently crashes out.
#
ifndef OPENJDK
@@ -158,8 +153,8 @@
#
# We use a variety of subdirectories in the $(TEMPDIR) depending on what
# part of the build we're doing. Both OPENJDK/JDK builds are initially
-# done in the unsigned area. When files are signed or obfuscated in JDK,
-# they will be placed in the appropriate areas.
+# done in the unsigned area. When files are signed in JDK, they will be
+# placed in the appropriate areas.
#
UNSIGNED_DIR = $(TEMPDIR)/unsigned
@@ -223,62 +218,15 @@
endif
$(call sign-file, $(UNSIGNED_DIR)/sunjce_provider.jar)
+
# =====================================================
-# Obfuscate/sign/install the JDK build. Not needed for OpenJDK.
+# Create the Release Engineering files. Signed builds, etc.
#
-OBFUS_DIR = $(JCE_BUILD_DIR)/obfus/sunjce
-
-CLOSED_DIR = $(BUILDDIR)/closed/com/sun/crypto/provider
-
-obfus: $(OBFUS_DIR)/sunjce_provider.jar
- $(release-warning)
-
-ifndef ALT_JCE_BUILD_DIR
-$(OBFUS_DIR)/sunjce_provider.jar: build-jar $(JCE_MANIFEST_FILE) \
- $(OBFUS_DIR)/sunjce.dox
-else
-$(OBFUS_DIR)/sunjce_provider.jar: $(JCE_MANIFEST_FILE) $(OBFUS_DIR)/sunjce.dox
- @if [ ! -d $(CLASSDESTDIR) ] ; then \
- $(ECHO) "Couldn't find $(CLASSDESTDIR)"; \
- exit 1; \
- fi
-endif
- @$(ECHO) ">>>Obfuscating SunJCE Provider..."
- $(presign)
- $(preobfus)
- $(prep-target)
- $(CD) $(OBFUS_DIR); \
- $(OBFUSCATOR) -fv sunjce.dox
- @$(CD) $(OBFUS_DIR); $(java-vm-cleanup)
- $(BOOT_JAR_CMD) cmf $(JCE_MANIFEST_FILE) $@ \
- -C $(OBFUS_DIR)/build com \
- $(BOOT_JAR_JFLAGS)
- $(sign-target)
- @$(java-vm-cleanup)
-
-$(OBFUS_DIR)/sunjce.dox: $(CLOSED_DIR)/obfus/sunjce.dox
- @$(ECHO) ">>>Creating sunjce.dox"
- $(prep-target)
- $(SED) "s:@@TEMPDIR@@:$(ABS_TEMPDIR):" $< > $@
-
-#
-# The current obfuscator has a limitation in that it currently only
-# supports up to v49 class file format. Force v49 classfiles in our
-# builds for now.
-#
-SOURCE_LANGUAGE_VERSION = 5
-TARGET_CLASS_VERSION = 5
-
-
-# =====================================================
-# Create the Release Engineering files. Obfuscated builds, etc.
-#
-
-release: $(OBFUS_DIR)/sunjce_provider.jar
+release: $(SIGNED_DIR)/sunjce_provider.jar
$(RM) $(JCE_BUILD_DIR)/release/sunjce_provider.jar
$(MKDIR) -p $(JCE_BUILD_DIR)/release
- $(CP) $(OBFUS_DIR)/sunjce_provider.jar $(JCE_BUILD_DIR)/release
+ $(CP) $(SIGNED_DIR)/sunjce_provider.jar $(JCE_BUILD_DIR)/release
$(release-warning)
endif # OPENJDK
@@ -320,5 +268,5 @@
.PHONY: build-jar jar install-jar
ifndef OPENJDK
-.PHONY: sign sign-jar obfus release install-prebuilt
+.PHONY: sign sign-jar release install-prebuilt
endif
--- a/jdk/make/java/java/FILES_java.gmk Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/make/java/java/FILES_java.gmk Mon Aug 10 09:47:21 2009 -0700
@@ -77,6 +77,7 @@
java/lang/Compiler.java \
java/lang/Throwable.java \
java/lang/Exception.java \
+ java/lang/ReflectiveOperationException.java \
java/lang/IllegalAccessException.java \
java/lang/InstantiationException.java \
java/lang/ClassNotFoundException.java \
--- a/jdk/make/javax/crypto/Defs-jce.gmk Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/make/javax/crypto/Defs-jce.gmk Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2007-2009 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -61,7 +61,7 @@
SIGNING_ALIAS = jce_rsa
#
-# Defines for signing/obfuscating the various jar files.
+# Defines for signing the various jar files.
#
define presign
@@ -100,19 +100,4 @@
$(sign-target)
endef
-#
-# Location for the Obfuscation product. JDK currently has
-# the requirement that we obfuscate our JCE jars.
-#
-OBFUSCATOR = /security/tools/bin/obfus
-OBFUS_DIR = $(TEMPDIR)/obfus
-
-define preobfus
- @if [ ! -f $(OBFUSCATOR) ]; then \
- $(ECHO) "\n$(OBFUSCATOR): Obfuscator *NOT* available..." \
- $(README-MAKEFILE_WARNING); \
- exit 2; \
- fi
-endef
-
endif # !OPENJDK
--- a/jdk/make/javax/crypto/Makefile Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/make/javax/crypto/Makefile Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 2007-2008 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2007-2009 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -44,64 +44,65 @@
# For OpenJDK, the jar files built here are installed directly into the
# OpenJDK.
#
-# For JDK, the binaries use pre-built/pre-signed/pre-obfuscated binary
-# files stored in the closed workspace that are not shipped in the
-# OpenJDK workspaces. We still build the JDK files here to verify the
-# files compile, and in preparation for possible signing and
-# obfuscation. Developers working on JCE in JDK must sign the JCE files
-# before testing: obfuscation is optional during development. The JCE
-# signing key is kept separate from the JDK workspace to prevent its
-# disclosure. The obfuscation tool has not been licensed for general
-# usage.
+# For JDK, the binaries use pre-built/pre-signed binary files stored in
+# the closed workspace that are not shipped in the OpenJDK workspaces.
+# We still build the JDK files here to verify the files compile, and in
+# preparation for possible signing. Developers working on JCE in JDK
+# must sign the JCE files before testing. The JCE signing key is kept
+# separate from the JDK workspace to prevent its disclosure.
#
# SPECIAL NOTE TO JCE/JDK developers: The source files must eventually
-# be built, obfuscated, signed, and the resulting jar files *MUST BE
-# CHECKED INTO THE CLOSED PART OF THE WORKSPACE*. This separate step
-# *MUST NOT BE FORGOTTEN*, otherwise a bug fixed in the source code will
-# not be reflected in the shipped binaries. The "release" target should
-# be used to generate the required files.
+# be built and signed, and the resulting jar files *MUST BE CHECKED INTO
+# THE CLOSED PART OF THE WORKSPACE*. This separate step *MUST NOT BE
+# FORGOTTEN*, otherwise a bug fixed in the source code will not be
+# reflected in the shipped binaries. The "release" target should be
+# used to generate the required files.
#
# There are a number of targets to help both JDK/OpenJDK developers.
#
# Main Targets (JDK/OPENJDK):
#
-# all/clobber/clean The usual.
-# If OpenJDK, installs
-# jce.jar/limited policy files.
-# If JDK, installs prebuilt
-# jce.jar/limited policy files.
+# all/clobber/clean The usual.
+# If OpenJDK: builds/installs the
+# jce.jar/limited policy files.
+# If JDK: builds but does not install.
+# During full tops-down builds,
+# prebuilt/presigned jce.jar &
+# limited policy files are copied
+# in by make/java/redist/Makefile.
+# If you are working in this directory
+# and want to install the prebuilts,
+# use the "install-prebuilt" target.
#
-# jar Builds/installs jce.jar
-# If OpenJDK, does not sign
-# If JDK, tries to sign
+# jar Builds/installs jce.jar
+# If OpenJDK, does not sign
+# If JDK, tries to sign
#
# Other lesser-used Targets (JDK/OPENJDK):
#
-# build-jar Builds jce.jar (does not sign/install)
+# build-jar Builds jce.jar (does not sign/install)
#
-# build-policy Builds policy files (does not sign/install)
+# build-policy Builds policy files (does not sign/install)
#
-# install-jar Alias for "jar" above
+# install-jar Alias for "jar" above
#
-# install-limited Builds/installs limited policy files
-# If OpenJDK, does not sign
-# If JDK, tries to sign
-# install-unlimited Builds/nstalls unlimited policy files
-# If OpenJDK, does not sign
-# If JDK, tries to sign
+# install-limited Builds/installs limited policy files
+# If OpenJDK, does not sign
+# If JDK, tries to sign
+# install-unlimited Builds/nstalls unlimited policy files
+# If OpenJDK, does not sign
+# If JDK, tries to sign
#
# Other targets (JDK only):
#
-# sign Alias for sign-jar and sign-policy
-# sign-jar Builds/signs jce.jar file (no install)
-# sign-policy Builds/signs policy files (no install)
+# sign Alias for sign-jar and sign-policy
+# sign-jar Builds/signs jce.jar file (no install)
+# sign-policy Builds/signs policy files (no install)
#
-# obfus Builds/obfuscates/signs jce.jar
+# release Builds all targets in preparation
+# for workspace integration.
#
-# release Builds all targets in preparation
-# for workspace integration.
-#
-# install-prebuilt Installs the pre-built jar files
+# install-prebuilt Installs the pre-built jar files
#
# This makefile was written to support parallel target execution.
#
@@ -112,7 +113,7 @@
#
# The following is for when we need to do postprocessing
-# (signing/obfuscation) against a read-only build. If the OUTPUTDIR
+# (signing) against a read-only build. If the OUTPUTDIR
# isn't writable, the build currently crashes out.
#
ifndef OPENJDK
@@ -169,8 +170,8 @@
#
# We use a variety of subdirectories in the $(TEMPDIR) depending on what
# part of the build we're doing. Both OPENJDK/JDK builds are initially
-# done in the unsigned area. When files are signed or obfuscated in JDK,
-# they will be placed in the appropriate areas.
+# done in the unsigned area. When files are signed in JDK, they will be
+# placed in the appropriate areas.
#
UNSIGNED_DIR = $(TEMPDIR)/unsigned
@@ -178,7 +179,7 @@
# =====================================================
-# Build the unsigned jce.jar file. Signing/obfuscation comes later.
+# Build the unsigned jce.jar file. Signing comes later.
#
JAR_DESTFILE = $(LIBDIR)/jce.jar
@@ -363,69 +364,13 @@
# =====================================================
-# Obfuscate/sign/install the JDK build. Not needed for OpenJDK.
+# Create the Release Engineering files. Signed builds,
+# unlimited policy file distribution, etc.
#
-OBFUS_DIR = $(JCE_BUILD_DIR)/obfus/jce
-
CLOSED_DIR = $(BUILDDIR)/closed/javax/crypto
-obfus: $(OBFUS_DIR)/jce.jar
- $(release-warning)
-
-ifndef ALT_JCE_BUILD_DIR
-$(OBFUS_DIR)/jce.jar: build-jar $(JCE_MANIFEST_FILE) $(OBFUS_DIR)/framework.dox
-else
-#
-# We have to remove the build dependency, otherwise, we'll try to rebuild it
-# which we can't do on a read-only filesystem.
-#
-$(OBFUS_DIR)/jce.jar: $(JCE_MANIFEST_FILE) $(OBFUS_DIR)/framework.dox
- @if [ ! -d $(CLASSDESTDIR) ] ; then \
- $(ECHO) "Couldn't find $(CLASSDESTDIR)"; \
- exit 1; \
- fi
-endif
- @$(ECHO) ">>>Obfuscating JCE framework..."
- $(presign)
- $(preobfus)
- $(prep-target)
- $(CD) $(OBFUS_DIR); \
- $(OBFUSCATOR) -fv framework.dox
- @$(CD) $(OBFUS_DIR); $(java-vm-cleanup)
- @#
- @# The sun.security.internal classes are currently not obfuscated
- @# due to an obfus problem. Manually copy them to the build directory
- @# so that they are included in the jce.jar file.
- @#
- $(CP) -r $(CLASSDESTDIR)/sun $(OBFUS_DIR)/build
- $(BOOT_JAR_CMD) cmf $(JCE_MANIFEST_FILE) $@ \
- -C $(OBFUS_DIR)/build javax \
- -C $(OBFUS_DIR)/build sun \
- $(BOOT_JAR_JFLAGS)
- $(sign-target)
- @$(java-vm-cleanup)
-
-$(OBFUS_DIR)/framework.dox: $(CLOSED_DIR)/obfus/framework.dox
- @$(ECHO) ">>>Creating framework.dox"
- $(prep-target)
- $(SED) "s:@@TEMPDIR@@:$(ABS_TEMPDIR):" $< > $@
-
-#
-# The current obfuscator has a limitation in that it currently only
-# supports up to v49 class file format. Force v49 classfiles in our
-# builds for now.
-#
-SOURCE_LANGUAGE_VERSION = 5
-TARGET_CLASS_VERSION = 5
-
-
-# =====================================================
-# Create the Release Engineering files. Obfuscated builds,
-# unlimited policy file distribution, etc.
-#
-
-release: $(OBFUS_DIR)/jce.jar sign-policy $(CLOSED_DIR)/doc/COPYRIGHT.html \
+release: $(SIGNED_DIR)/jce.jar sign-policy $(CLOSED_DIR)/doc/COPYRIGHT.html \
$(CLOSED_DIR)/doc/README.txt
$(RM) -r \
$(JCE_BUILD_DIR)/release/UnlimitedJCEPolicy \
@@ -434,7 +379,7 @@
$(JCE_BUILD_DIR)/release/local_policy.jar \
$(JCE_BUILD_DIR)/release/UnlimitedJCEPolicy.zip
$(MKDIR) -p $(JCE_BUILD_DIR)/release/UnlimitedJCEPolicy
- $(CP) $(OBFUS_DIR)/jce.jar $(JCE_BUILD_DIR)/release
+ $(CP) $(SIGNED_DIR)/jce.jar $(JCE_BUILD_DIR)/release
$(CP) \
$(SIGNED_POLICY_BUILDDIR)/limited/US_export_policy.jar \
$(SIGNED_POLICY_BUILDDIR)/limited/local_policy.jar \
@@ -530,5 +475,5 @@
.PHONY: build-jar jar build-policy unlimited limited install-jar \
install-limited install-unlimited
ifndef OPENJDK
-.PHONY: sign sign-jar sign-policy obfus release install-prebuilt
+.PHONY: sign sign-jar sign-policy release install-prebuilt
endif
--- a/jdk/make/sun/net/FILES_java.gmk Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/make/sun/net/FILES_java.gmk Mon Aug 10 09:47:21 2009 -0700
@@ -41,6 +41,7 @@
sun/net/NetProperties.java \
sun/net/NetHooks.java \
sun/net/util/IPAddressUtil.java \
+ sun/net/util/URLUtil.java \
sun/net/dns/ResolverConfiguration.java \
sun/net/dns/ResolverConfigurationImpl.java \
sun/net/ftp/FtpClient.java \
--- a/jdk/make/sun/security/mscapi/Makefile Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/make/sun/security/mscapi/Makefile Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2005-2009 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -59,31 +59,31 @@
#
# Main Targets (JDK/OPENJDK):
#
-# all/clobber/clean The usual, plus the native libraries.
-# If OpenJDK, installs sunmscapi.jar.
-# If JDK, installs prebuilt
-# sunmscapi.jar.
+# all/clobber/clean The usual, plus the native libraries.
+# If OpenJDK, installs sunmscapi.jar.
+# If JDK, installs prebuilt
+# sunmscapi.jar.
#
-# jar Builds/installs sunmscapi.jar
-# If OpenJDK, does not sign.
-# If JDK, tries to sign.
+# jar Builds/installs sunmscapi.jar
+# If OpenJDK, does not sign.
+# If JDK, tries to sign.
#
# Other lesser-used Targets (JDK/OPENJDK):
#
-# build-jar Builds sunmscapi.jar
-# (does not sign/install)
+# build-jar Builds sunmscapi.jar
+# (does not sign/install)
#
-# install-jar Alias for "jar" above.
+# install-jar Alias for "jar" above.
#
# Other targets (JDK only):
#
-# sign Alias for sign-jar
-# sign-jar Builds/signs sunmscapi.jar (no install)
+# sign Alias for sign-jar
+# sign-jar Builds/signs sunmscapi.jar (no install)
#
-# release Builds all targets in preparation
-# for workspace integration.
+# release Builds all targets in preparation
+# for workspace integration.
#
-# install-prebuilt Installs the pre-built jar files
+# install-prebuilt Installs the pre-built jar files
#
# This makefile was written to support parallel target execution.
#
--- a/jdk/make/sun/security/pkcs11/Makefile Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/make/sun/security/pkcs11/Makefile Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
#
-# Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
+# Copyright 2003-2009 Sun Microsystems, Inc. All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -59,31 +59,31 @@
#
# Main Targets (JDK/OPENJDK):
#
-# all/clobber/clean The usual, plus the native libraries.
-# If OpenJDK, installs sunpkcs11.jar.
-# If JDK, installs prebuilt
-# sunpkcs11.jar.
+# all/clobber/clean The usual, plus the native libraries.
+# If OpenJDK, installs sunpkcs11.jar.
+# If JDK, installs prebuilt
+# sunpkcs11.jar.
#
-# jar Builds/installs sunpkcs11.jar
-# If OpenJDK, does not sign.
-# If JDK, tries to sign.
+# jar Builds/installs sunpkcs11.jar
+# If OpenJDK, does not sign.
+# If JDK, tries to sign.
#
# Other lesser-used Targets (JDK/OPENJDK):
#
-# build-jar Builds sunpkcs11.jar
-# (does not sign/install)
+# build-jar Builds sunpkcs11.jar
+# (does not sign/install)
#
-# install-jar Alias for "jar" above.
+# install-jar Alias for "jar" above.
#
# Other targets (JDK only):
#
-# sign Alias for sign-jar
-# sign-jar Builds/signs sunpkcs11.jar (no install)
+# sign Alias for sign-jar
+# sign-jar Builds/signs sunpkcs11.jar (no install)
#
-# release Builds all targets in preparation
-# for workspace integration.
+# release Builds all targets in preparation
+# for workspace integration.
#
-# install-prebuilt Installs the pre-built jar files
+# install-prebuilt Installs the pre-built jar files
#
# This makefile was written to support parallel target execution.
#
--- a/jdk/src/share/classes/com/sun/crypto/provider/AESCipher.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/com/sun/crypto/provider/AESCipher.java Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2002-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -56,12 +56,8 @@
/**
* Creates an instance of AES cipher with default ECB mode and
* PKCS5Padding.
- *
- * @exception SecurityException if this constructor fails to verify
- * its own integrity
*/
public AESCipher() {
- SunJCE.ensureIntegrity(getClass());
core = new CipherCore(new AESCrypt(), AESConstants.AES_BLOCK_SIZE);
}
--- a/jdk/src/share/classes/com/sun/crypto/provider/AESKeyGenerator.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/com/sun/crypto/provider/AESKeyGenerator.java Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2002-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -48,16 +48,9 @@
private int keySize = 16; // default keysize (in number of bytes)
/**
- * Verify the SunJCE provider in the constructor.
- *
- * @exception SecurityException if fails to verify
- * its own integrity
+ * Empty constructor.
*/
public AESKeyGenerator() {
- if (!SunJCE.verifySelfIntegrity(this.getClass())) {
- throw new SecurityException("The SunJCE provider may have " +
- "been tampered.");
- }
}
/**
--- a/jdk/src/share/classes/com/sun/crypto/provider/AESWrapCipher.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/com/sun/crypto/provider/AESWrapCipher.java Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2004-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -65,12 +65,8 @@
/**
* Creates an instance of AES KeyWrap cipher with default
* mode, i.e. "ECB" and padding scheme, i.e. "NoPadding".
- *
- * @exception SecurityException if this constructor fails to verify
- * its own integrity
*/
public AESWrapCipher() {
- SunJCE.ensureIntegrity(getClass());
cipher = new AESCrypt();
}
--- a/jdk/src/share/classes/com/sun/crypto/provider/ARCFOURCipher.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/com/sun/crypto/provider/ARCFOURCipher.java Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -62,7 +62,6 @@
// called by the JCE framework
public ARCFOURCipher() {
- SunJCE.ensureIntegrity(getClass());
S = new int[256];
}
--- a/jdk/src/share/classes/com/sun/crypto/provider/BlowfishCipher.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/com/sun/crypto/provider/BlowfishCipher.java Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1998-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1998-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -60,12 +60,8 @@
/**
* Creates an instance of Blowfish cipher with default ECB mode and
* PKCS5Padding.
- *
- * @exception SecurityException if this constructor fails to verify
- * its own integrity
*/
public BlowfishCipher() {
- SunJCE.ensureIntegrity(getClass());
core = new CipherCore(new BlowfishCrypt(),
BlowfishConstants.BLOWFISH_BLOCK_SIZE);
}
--- a/jdk/src/share/classes/com/sun/crypto/provider/BlowfishKeyGenerator.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/com/sun/crypto/provider/BlowfishKeyGenerator.java Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1998-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1998-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -46,16 +46,9 @@
private int keysize = 16; // default keysize (in number of bytes)
/**
- * Verify the SunJCE provider in the constructor.
- *
- * @exception SecurityException if fails to verify
- * its own integrity
+ * Empty constructor
*/
public BlowfishKeyGenerator() {
- if (!SunJCE.verifySelfIntegrity(this.getClass())) {
- throw new SecurityException("The SunJCE provider may have " +
- "been tampered.");
- }
}
/**
--- a/jdk/src/share/classes/com/sun/crypto/provider/DESCipher.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/com/sun/crypto/provider/DESCipher.java Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -56,12 +56,8 @@
/**
* Creates an instance of DES cipher with default ECB mode and
* PKCS5Padding.
- *
- * @exception SecurityException if this constructor fails to verify
- * its own integrity
*/
public DESCipher() {
- SunJCE.ensureIntegrity(getClass());
core = new CipherCore(new DESCrypt(), DESConstants.DES_BLOCK_SIZE);
}
--- a/jdk/src/share/classes/com/sun/crypto/provider/DESKeyFactory.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/com/sun/crypto/provider/DESKeyFactory.java Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved.
* 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,17 +42,11 @@
public final class DESKeyFactory extends SecretKeyFactorySpi {
/**
- * Verify the SunJCE provider in the constructor.
- *
- * @exception SecurityException if fails to verify
- * its own integrity
+ * Empty constructor
*/
public DESKeyFactory() {
- if (!SunJCE.verifySelfIntegrity(this.getClass())) {
- throw new SecurityException("The SunJCE provider may have " +
- "been tampered.");
- }
}
+
/**
* Generates a <code>SecretKey</code> object from the provided key
* specification (key material).
--- a/jdk/src/share/classes/com/sun/crypto/provider/DESKeyGenerator.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/com/sun/crypto/provider/DESKeyGenerator.java Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -46,16 +46,9 @@
private SecureRandom random = null;
/**
- * Verify the SunJCE provider in the constructor.
- *
- * @exception SecurityException if fails to verify
- * its own integrity
+ * Empty constructor
*/
public DESKeyGenerator() {
- if (!SunJCE.verifySelfIntegrity(this.getClass())) {
- throw new SecurityException("The SunJCE provider may have " +
- "been tampered.");
- }
}
/**
--- a/jdk/src/share/classes/com/sun/crypto/provider/DESedeCipher.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/com/sun/crypto/provider/DESedeCipher.java Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -53,12 +53,8 @@
/**
* Creates an instance of DESede cipher with default ECB mode and
* PKCS5Padding.
- *
- * @exception SecurityException if this constructor fails to verify
- * its own integrity
*/
public DESedeCipher() {
- SunJCE.ensureIntegrity(getClass());
core = new CipherCore(new DESedeCrypt(), DESConstants.DES_BLOCK_SIZE);
}
--- a/jdk/src/share/classes/com/sun/crypto/provider/DESedeKeyFactory.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/com/sun/crypto/provider/DESedeKeyFactory.java Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved.
* 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,16 +42,9 @@
public final class DESedeKeyFactory extends SecretKeyFactorySpi {
/**
- * Verify the SunJCE provider in the constructor.
- *
- * @exception SecurityException if fails to verify
- * its own integrity
+ * Empty constructor
*/
public DESedeKeyFactory() {
- if (!SunJCE.verifySelfIntegrity(this.getClass())) {
- throw new SecurityException("The SunJCE provider may have been " +
- "tampered.");
- }
}
/**
--- a/jdk/src/share/classes/com/sun/crypto/provider/DESedeKeyGenerator.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/com/sun/crypto/provider/DESedeKeyGenerator.java Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved.
* 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,16 +47,9 @@
private int keysize = 168;
/**
- * Verify the SunJCE provider in the constructor.
- *
- * @exception SecurityException if fails to verify
- * its own integrity
+ * Empty constructor
*/
public DESedeKeyGenerator() {
- if (!SunJCE.verifySelfIntegrity(this.getClass())) {
- throw new SecurityException("The SunJCE provider may have been " +
- "tampered.");
- }
}
/**
--- a/jdk/src/share/classes/com/sun/crypto/provider/DESedeWrapCipher.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/com/sun/crypto/provider/DESedeWrapCipher.java Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2004-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -74,12 +74,8 @@
/**
* Creates an instance of CMS DESede KeyWrap cipher with default
* mode, i.e. "CBC" and padding scheme, i.e. "NoPadding".
- *
- * @exception SecurityException if this constructor fails to verify
- * its own integrity.
*/
public DESedeWrapCipher() {
- SunJCE.ensureIntegrity(getClass());
cipher = new CipherBlockChaining(new DESedeCrypt());
}
--- a/jdk/src/share/classes/com/sun/crypto/provider/DHKeyAgreement.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/com/sun/crypto/provider/DHKeyAgreement.java Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved.
* 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,16 +58,9 @@
private BigInteger y = BigInteger.ZERO;
/**
- * Verify the SunJCE provider in the constructor.
- *
- * @exception SecurityException if fails to verify
- * its own integrity
+ * Empty constructor
*/
public DHKeyAgreement() {
- if (!SunJCE.verifySelfIntegrity(this.getClass())) {
- throw new SecurityException("The SunJCE provider may have been " +
- "tampered.");
- }
}
/**
--- a/jdk/src/share/classes/com/sun/crypto/provider/DHKeyFactory.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/com/sun/crypto/provider/DHKeyFactory.java Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -49,16 +49,9 @@
public final class DHKeyFactory extends KeyFactorySpi {
/**
- * Verify the SunJCE provider in the constructor.
- *
- * @exception SecurityException if fails to verify
- * its own integrity
+ * Empty constructor
*/
public DHKeyFactory() {
- if (!SunJCE.verifySelfIntegrity(this.getClass())) {
- throw new SecurityException("The SunJCE provider may have " +
- "been tampered.");
- }
}
/**
--- a/jdk/src/share/classes/com/sun/crypto/provider/HmacCore.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/com/sun/crypto/provider/HmacCore.java Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2002-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -241,7 +241,6 @@
public static final class HmacSHA256 extends MacSpi implements Cloneable {
private final HmacCore core;
public HmacSHA256() throws NoSuchAlgorithmException {
- SunJCE.ensureIntegrity(getClass());
core = new HmacCore("SHA-256", 64);
}
private HmacSHA256(HmacSHA256 base) throws CloneNotSupportedException {
@@ -278,7 +277,6 @@
public static final class HmacSHA384 extends MacSpi implements Cloneable {
private final HmacCore core;
public HmacSHA384() throws NoSuchAlgorithmException {
- SunJCE.ensureIntegrity(getClass());
core = new HmacCore("SHA-384", 128);
}
private HmacSHA384(HmacSHA384 base) throws CloneNotSupportedException {
@@ -315,7 +313,6 @@
public static final class HmacSHA512 extends MacSpi implements Cloneable {
private final HmacCore core;
public HmacSHA512() throws NoSuchAlgorithmException {
- SunJCE.ensureIntegrity(getClass());
core = new HmacCore("SHA-512", 128);
}
private HmacSHA512(HmacSHA512 base) throws CloneNotSupportedException {
--- a/jdk/src/share/classes/com/sun/crypto/provider/HmacMD5.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/com/sun/crypto/provider/HmacMD5.java Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1998-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1998-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -44,16 +44,8 @@
/**
* Standard constructor, creates a new HmacMD5 instance.
- * Verify the SunJCE provider in the constructor.
- *
- * @exception SecurityException if fails to verify
- * its own integrity
*/
public HmacMD5() throws NoSuchAlgorithmException {
- if (!SunJCE.verifySelfIntegrity(this.getClass())) {
- throw new SecurityException("The SunJCE provider may have " +
- "been tampered.");
- }
hmac = new HmacCore(MessageDigest.getInstance("MD5"),
MD5_BLOCK_LENGTH);
}
--- a/jdk/src/share/classes/com/sun/crypto/provider/HmacMD5KeyGenerator.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/com/sun/crypto/provider/HmacMD5KeyGenerator.java Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -46,16 +46,9 @@
private int keysize = 64; // default keysize (in number of bytes)
/**
- * Verify the SunJCE provider in the constructor.
- *
- * @exception SecurityException if fails to verify
- * its own integrity
+ * Empty constructor
*/
public HmacMD5KeyGenerator() {
- if (!SunJCE.verifySelfIntegrity(this.getClass())) {
- throw new SecurityException("The SunJCE provider may have " +
- "been tampered.");
- }
}
/**
--- a/jdk/src/share/classes/com/sun/crypto/provider/HmacPKCS12PBESHA1.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/com/sun/crypto/provider/HmacPKCS12PBESHA1.java Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -48,13 +48,8 @@
/**
* Standard constructor, creates a new HmacSHA1 instance.
- * Verify the SunJCE provider in the constructor.
- *
- * @exception SecurityException if fails to verify
- * its own integrity
*/
public HmacPKCS12PBESHA1() throws NoSuchAlgorithmException {
- SunJCE.ensureIntegrity(this.getClass());
this.hmac = new HmacCore(MessageDigest.getInstance("SHA1"),
SHA1_BLOCK_LENGTH);
}
--- a/jdk/src/share/classes/com/sun/crypto/provider/HmacSHA1.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/com/sun/crypto/provider/HmacSHA1.java Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1998-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1998-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -44,16 +44,8 @@
/**
* Standard constructor, creates a new HmacSHA1 instance.
- * Verify the SunJCE provider in the constructor.
- *
- * @exception SecurityException if fails to verify
- * its own integrity
*/
public HmacSHA1() throws NoSuchAlgorithmException {
- if (!SunJCE.verifySelfIntegrity(this.getClass())) {
- throw new SecurityException("The SunJCE provider may have " +
- "been tampered.");
- }
this.hmac = new HmacCore(MessageDigest.getInstance("SHA1"),
SHA1_BLOCK_LENGTH);
}
--- a/jdk/src/share/classes/com/sun/crypto/provider/HmacSHA1KeyGenerator.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/com/sun/crypto/provider/HmacSHA1KeyGenerator.java Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1999-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -46,16 +46,9 @@
private int keysize = 64; // default keysize (in number of bytes)
/**
- * Verify the SunJCE provider in the constructor.
- *
- * @exception SecurityException if fails to verify
- * its own integrity
+ * Empty constructor
*/
public HmacSHA1KeyGenerator() {
- if (!SunJCE.verifySelfIntegrity(this.getClass())) {
- throw new SecurityException("The SunJCE provider may have " +
- "been tampered.");
- }
}
/**
--- a/jdk/src/share/classes/com/sun/crypto/provider/JarVerifier.java Fri Aug 07 11:32:04 2009 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
-/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
- * 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. Sun designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
- */
-
-package com.sun.crypto.provider;
-
-// NOTE: this class is duplicated amongst SunJCE, SunPKCS11, and SunMSCAPI.
-// All files should be kept in sync.
-
-import java.io.*;
-import java.util.*;
-import java.util.jar.*;
-import java.net.URL;
-import java.net.JarURLConnection;
-import java.net.MalformedURLException;
-
-import java.security.*;
-import java.security.cert.*;
-import java.security.cert.Certificate;
-
-/**
- * This class verifies JAR files (and any supporting JAR files), and
- * determines whether they may be used in this implementation.
- *
- * The JCE in OpenJDK has an open cryptographic interface, meaning it
- * does not restrict which providers can be used. Compliance with
- * United States export controls and with local law governing the
- * import/export of products incorporating the JCE in the OpenJDK is
- * the responsibility of the licensee.
- *
- * @since 1.7
- */
-final class JarVerifier {
-
- private static final boolean debug = false;
-
- /**
- * Verify the JAR file is signed by an entity which has a certificate
- * issued by a trusted CA.
- *
- * Note: this is a temporary method and will change soon to use the
- * exception chaining mechanism, which can provide more details
- * as to why the verification failed.
- *
- * @param c the class to be verified.
- * @return true if verification is successful.
- */
- static boolean verify(final Class c) {
- return true;
- }
-}
--- a/jdk/src/share/classes/com/sun/crypto/provider/KeyGeneratorCore.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/com/sun/crypto/provider/KeyGeneratorCore.java Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -109,7 +109,6 @@
public static final class HmacSHA256KG extends KeyGeneratorSpi {
private final KeyGeneratorCore core;
public HmacSHA256KG() {
- SunJCE.ensureIntegrity(getClass());
core = new KeyGeneratorCore("HmacSHA256", 256);
}
protected void engineInit(SecureRandom random) {
@@ -131,7 +130,6 @@
public static final class HmacSHA384KG extends KeyGeneratorSpi {
private final KeyGeneratorCore core;
public HmacSHA384KG() {
- SunJCE.ensureIntegrity(getClass());
core = new KeyGeneratorCore("HmacSHA384", 384);
}
protected void engineInit(SecureRandom random) {
@@ -153,7 +151,6 @@
public static final class HmacSHA512KG extends KeyGeneratorSpi {
private final KeyGeneratorCore core;
public HmacSHA512KG() {
- SunJCE.ensureIntegrity(getClass());
core = new KeyGeneratorCore("HmacSHA512", 512);
}
protected void engineInit(SecureRandom random) {
@@ -175,7 +172,6 @@
public static final class RC2KeyGenerator extends KeyGeneratorSpi {
private final KeyGeneratorCore core;
public RC2KeyGenerator() {
- SunJCE.ensureIntegrity(getClass());
core = new KeyGeneratorCore("RC2", 128);
}
protected void engineInit(SecureRandom random) {
@@ -201,7 +197,6 @@
public static final class ARCFOURKeyGenerator extends KeyGeneratorSpi {
private final KeyGeneratorCore core;
public ARCFOURKeyGenerator() {
- SunJCE.ensureIntegrity(getClass());
core = new KeyGeneratorCore("ARCFOUR", 128);
}
protected void engineInit(SecureRandom random) {
--- a/jdk/src/share/classes/com/sun/crypto/provider/PBEKeyFactory.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/com/sun/crypto/provider/PBEKeyFactory.java Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -49,16 +49,9 @@
private static HashSet<String> validTypes;
/**
- * Verify the SunJCE provider in the constructor.
- *
- * @exception SecurityException if fails to verify
- * its own integrity
+ * Simple constructor
*/
private PBEKeyFactory(String keytype) {
- if (!SunJCE.verifySelfIntegrity(this.getClass())) {
- throw new SecurityException("The SunJCE provider may have " +
- "been tampered.");
- }
type = keytype;
}
--- a/jdk/src/share/classes/com/sun/crypto/provider/PBEWithMD5AndDESCipher.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/com/sun/crypto/provider/PBEWithMD5AndDESCipher.java Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -55,16 +55,9 @@
* unavailable
* @exception NoSuchPaddingException if the required padding mechanism
* (PKCS5Padding) is unavailable
- *
- * @exception SecurityException if this constructor fails to verify
- * its own integrity
*/
public PBEWithMD5AndDESCipher()
throws NoSuchAlgorithmException, NoSuchPaddingException {
- if (!SunJCE.verifySelfIntegrity(this.getClass())) {
- throw new SecurityException("The SunJCE provider may have " +
- "been tampered.");
- }
core = new PBECipherCore("DES");
}
--- a/jdk/src/share/classes/com/sun/crypto/provider/PBEWithMD5AndTripleDESCipher.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/com/sun/crypto/provider/PBEWithMD5AndTripleDESCipher.java Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1998-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1998-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -61,23 +61,14 @@
* Creates an instance of this cipher, and initializes its mode (CBC) and
* padding (PKCS5).
*
- * Verify the SunJCE provider in the constructor.
- *
* @exception NoSuchAlgorithmException if the required cipher mode (CBC) is
* unavailable
* @exception NoSuchPaddingException if the required padding mechanism
* (PKCS5Padding) is unavailable
- * @exception SecurityException if fails to verify
- * its own integrity
*/
public PBEWithMD5AndTripleDESCipher()
throws NoSuchAlgorithmException, NoSuchPaddingException
{
- if (!SunJCE.verifySelfIntegrity(this.getClass())) {
- throw new SecurityException("The SunJCE provider may have " +
- "been tampered.");
- }
-
// set the encapsulated cipher to do triple DES
core = new PBECipherCore("DESede");
}
--- a/jdk/src/share/classes/com/sun/crypto/provider/PBKDF2HmacSHA1Factory.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/com/sun/crypto/provider/PBKDF2HmacSHA1Factory.java Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -45,16 +45,9 @@
public final class PBKDF2HmacSHA1Factory extends SecretKeyFactorySpi {
/**
- * Verify the SunJCE provider in the constructor.
- *
- * @exception SecurityException if fails to verify
- * its own integrity
+ * Empty constructor
*/
public PBKDF2HmacSHA1Factory() {
- if (!SunJCE.verifySelfIntegrity(this.getClass())) {
- throw new SecurityException("The SunJCE provider may have " +
- "been tampered.");
- }
}
/**
--- a/jdk/src/share/classes/com/sun/crypto/provider/PKCS12PBECipherCore.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/com/sun/crypto/provider/PKCS12PBECipherCore.java Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -370,7 +370,6 @@
public static final class PBEWithSHA1AndDESede extends CipherSpi {
private final PKCS12PBECipherCore core;
public PBEWithSHA1AndDESede() throws NoSuchAlgorithmException {
- SunJCE.ensureIntegrity(this.getClass());
core = new PKCS12PBECipherCore("DESede", 24);
}
protected byte[] engineDoFinal(byte[] in, int inOff, int inLen)
@@ -446,7 +445,6 @@
public static final class PBEWithSHA1AndRC2_40 extends CipherSpi {
private final PKCS12PBECipherCore core;
public PBEWithSHA1AndRC2_40() throws NoSuchAlgorithmException {
- SunJCE.ensureIntegrity(this.getClass());
core = new PKCS12PBECipherCore("RC2", 5);
}
protected byte[] engineDoFinal(byte[] in, int inOff, int inLen)
--- a/jdk/src/share/classes/com/sun/crypto/provider/RC2Cipher.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/com/sun/crypto/provider/RC2Cipher.java Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -45,7 +45,6 @@
private final RC2Crypt embeddedCipher;
public RC2Cipher() {
- SunJCE.ensureIntegrity(getClass());
embeddedCipher = new RC2Crypt();
core = new CipherCore(embeddedCipher, 8);
}
--- a/jdk/src/share/classes/com/sun/crypto/provider/RSACipher.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/com/sun/crypto/provider/RSACipher.java Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2009 Sun Microsystems, Inc. All Rights Reserved.
* 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,6 @@
private String oaepHashAlgorithm = "SHA-1";
public RSACipher() {
- SunJCE.ensureIntegrity(getClass());
paddingType = PAD_PKCS1;
}
--- a/jdk/src/share/classes/com/sun/crypto/provider/SslMacCore.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/com/sun/crypto/provider/SslMacCore.java Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -226,9 +226,6 @@
static final byte[] md5Pad1 = genPad((byte)0x36, 48);
static final byte[] md5Pad2 = genPad((byte)0x5c, 48);
- static {
- SunJCE.ensureIntegrity(SslMacMD5.class);
- }
}
// nested static class for the SslMacMD5 implementation
@@ -262,9 +259,6 @@
static final byte[] shaPad1 = genPad((byte)0x36, 40);
static final byte[] shaPad2 = genPad((byte)0x5c, 40);
- static {
- SunJCE.ensureIntegrity(SslMacSHA1.class);
- }
}
}
--- a/jdk/src/share/classes/com/sun/crypto/provider/SunJCE.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/com/sun/crypto/provider/SunJCE.java Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -93,10 +93,6 @@
static final SecureRandom RANDOM = new SecureRandom();
- // After the SunJCE passed self-integrity checking,
- // verifiedSelfIntegrity will be set to true.
- private static boolean verifiedSelfIntegrity = false;
-
public SunJCE() {
/* We are the "SunJCE" provider */
super("SunJCE", 1.7d, info);
@@ -441,21 +437,4 @@
}
});
}
-
- // set to true once self verification is complete
- private static volatile boolean integrityVerified;
-
- static void ensureIntegrity(Class c) {
- if (verifySelfIntegrity(c) == false) {
- throw new SecurityException("The SunJCE provider may have " +
- "been tampered.");
- }
- }
-
- static final boolean verifySelfIntegrity(Class c) {
- if (verifiedSelfIntegrity) {
- return true;
- }
- return (integrityVerified = JarVerifier.verify(c));
- }
}
--- a/jdk/src/share/classes/com/sun/crypto/provider/TlsKeyMaterialGenerator.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/com/sun/crypto/provider/TlsKeyMaterialGenerator.java Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -52,7 +52,6 @@
private int protocolVersion;
public TlsKeyMaterialGenerator() {
- SunJCE.ensureIntegrity(getClass());
}
protected void engineInit(SecureRandom random) {
--- a/jdk/src/share/classes/com/sun/crypto/provider/TlsMasterSecretGenerator.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/com/sun/crypto/provider/TlsMasterSecretGenerator.java Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2009 Sun Microsystems, Inc. All Rights Reserved.
* 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,6 @@
private int protocolVersion;
public TlsMasterSecretGenerator() {
- SunJCE.ensureIntegrity(getClass());
}
protected void engineInit(SecureRandom random) {
--- a/jdk/src/share/classes/com/sun/crypto/provider/TlsPrfGenerator.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/com/sun/crypto/provider/TlsPrfGenerator.java Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -109,7 +109,6 @@
private TlsPrfParameterSpec spec;
public TlsPrfGenerator() {
- SunJCE.ensureIntegrity(getClass());
}
protected void engineInit(SecureRandom random) {
--- a/jdk/src/share/classes/com/sun/crypto/provider/TlsRsaPremasterSecretGenerator.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/com/sun/crypto/provider/TlsRsaPremasterSecretGenerator.java Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -48,7 +48,6 @@
private SecureRandom random;
public TlsRsaPremasterSecretGenerator() {
- SunJCE.ensureIntegrity(getClass());
}
protected void engineInit(SecureRandom random) {
--- a/jdk/src/share/classes/javax/crypto/JarVerifier.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/javax/crypto/JarVerifier.java Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2007-2009 Sun Microsystems, Inc. All Rights Reserved.
* 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,9 +28,7 @@
import java.io.*;
import java.net.*;
import java.security.*;
-import java.util.*;
import java.util.jar.*;
-import javax.crypto.CryptoPolicyParser.ParsingException;
/**
* This class verifies JAR files (and any supporting JAR files), and
@@ -135,17 +133,6 @@
}
/**
- * Verify that the provided JarEntry was indeed signed by the
- * framework signing certificate.
- *
- * @param je the URL of the jar entry to be checked.
- * @throws Exception if the jar entry was not signed by
- * the proper certificate
- */
- static void verifyFrameworkSigned(URL je) throws Exception {
- }
-
- /**
* Verify that the provided certs include the
* framework signing certificate.
*
--- a/jdk/src/share/classes/javax/crypto/JceSecurity.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/javax/crypto/JceSecurity.java Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved.
* 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,7 +25,6 @@
package javax.crypto;
-import java.lang.ref.*;
import java.util.*;
import java.util.jar.*;
import java.io.*;
@@ -256,11 +255,6 @@
("Cannot locate policy or framework files!");
}
- // Enforce the signer restraint, i.e. signer of JCE framework
- // jar should also be the signer of the two jurisdiction policy
- // jar files.
- JarVerifier.verifyFrameworkSigned(jceCipherURL);
-
// Read jurisdiction policies.
CryptoPermissions defaultExport = new CryptoPermissions();
CryptoPermissions exemptExport = new CryptoPermissions();
--- a/jdk/src/share/classes/javax/swing/JFileChooser.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/javax/swing/JFileChooser.java Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -739,6 +739,11 @@
dialog.show();
firePropertyChange("JFileChooserDialogIsClosingProperty", dialog, null);
+
+ // Remove all components from dialog. The MetalFileChooserUI.installUI() method (and other LAFs)
+ // registers AWT listener for dialogs and produces memory leaks. It happens when
+ // installUI invoked after the showDialog method.
+ dialog.getContentPane().removeAll();
dialog.dispose();
dialog = null;
return returnValue;
--- a/jdk/src/share/classes/javax/swing/JInternalFrame.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/javax/swing/JInternalFrame.java Mon Aug 10 09:47:21 2009 -0700
@@ -26,13 +26,10 @@
package javax.swing;
import java.awt.*;
-import java.awt.event.*;
import java.beans.PropertyVetoException;
import java.beans.PropertyChangeEvent;
-import java.util.EventListener;
-import javax.swing.border.Border;
import javax.swing.event.InternalFrameEvent;
import javax.swing.event.InternalFrameListener;
import javax.swing.plaf.*;
@@ -40,7 +37,6 @@
import javax.accessibility.*;
import java.io.ObjectOutputStream;
-import java.io.ObjectInputStream;
import java.io.IOException;
import java.lang.StringBuilder;
import java.beans.PropertyChangeListener;
@@ -1459,19 +1455,22 @@
SwingUtilities2.compositeRequestFocus(getDesktopIcon());
}
else {
- // FocusPropertyChangeListener will eventually update
- // lastFocusOwner. As focus requests are asynchronous
- // lastFocusOwner may be accessed before it has been correctly
- // updated. To avoid any problems, lastFocusOwner is immediately
- // set, assuming the request will succeed.
- lastFocusOwner = getMostRecentFocusOwner();
- if (lastFocusOwner == null) {
- // Make sure focus is restored somewhere, so that
- // we don't leave a focused component in another frame while
- // this frame is selected.
- lastFocusOwner = getContentPane();
+ Component component = KeyboardFocusManager.getCurrentKeyboardFocusManager().getPermanentFocusOwner();
+ if ((component == null) || !SwingUtilities.isDescendingFrom(component, this)) {
+ // FocusPropertyChangeListener will eventually update
+ // lastFocusOwner. As focus requests are asynchronous
+ // lastFocusOwner may be accessed before it has been correctly
+ // updated. To avoid any problems, lastFocusOwner is immediately
+ // set, assuming the request will succeed.
+ setLastFocusOwner(getMostRecentFocusOwner());
+ if (lastFocusOwner == null) {
+ // Make sure focus is restored somewhere, so that
+ // we don't leave a focused component in another frame while
+ // this frame is selected.
+ setLastFocusOwner(getContentPane());
+ }
+ lastFocusOwner.requestFocus();
}
- lastFocusOwner.requestFocus();
}
}
--- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicDesktopIconUI.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicDesktopIconUI.java Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved.
* 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,9 +32,6 @@
import javax.swing.border.*;
import javax.swing.plaf.*;
import java.beans.*;
-import java.util.EventListener;
-import java.io.Serializable;
-
/**
* Basic L&F for a minimized window on a desktop.
@@ -47,7 +44,6 @@
protected JInternalFrame.JDesktopIcon desktopIcon;
protected JInternalFrame frame;
- private DesktopIconMover desktopIconMover;
/**
* The title pane component used in the desktop icon.
@@ -128,21 +124,12 @@
mouseInputListener = createMouseInputListener();
desktopIcon.addMouseMotionListener(mouseInputListener);
desktopIcon.addMouseListener(mouseInputListener);
- getDesktopIconMover().installListeners();
}
protected void uninstallListeners() {
desktopIcon.removeMouseMotionListener(mouseInputListener);
desktopIcon.removeMouseListener(mouseInputListener);
mouseInputListener = null;
- getDesktopIconMover().uninstallListeners();
- }
-
- private DesktopIconMover getDesktopIconMover() {
- if (desktopIconMover == null) {
- desktopIconMover = new DesktopIconMover(desktopIcon);
- }
- return desktopIconMover;
}
protected void installDefaults() {
--- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicDirectoryModel.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicDirectoryModel.java Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1998-2008 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1998-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -232,6 +232,10 @@
public void run0() {
FileSystemView fileSystem = filechooser.getFileSystemView();
+ if (isInterrupted()) {
+ return;
+ }
+
File[] list = fileSystem.getFiles(currentDirectory, filechooser.isFileHidingEnabled());
if (isInterrupted()) {
@@ -268,8 +272,8 @@
// To avoid loads of synchronizations with Invoker and improve performance we
// execute the whole block on the COM thread
- DoChangeContents doChangeContents = ShellFolder.getInvoker().invoke(new Callable<DoChangeContents>() {
- public DoChangeContents call() throws Exception {
+ DoChangeContents doChangeContents = ShellFolder.invoke(new Callable<DoChangeContents>() {
+ public DoChangeContents call() {
int newSize = newFileCache.size();
int oldSize = fileCache.size();
--- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicInternalFrameUI.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicInternalFrameUI.java Mon Aug 10 09:47:21 2009 -0700
@@ -27,16 +27,10 @@
import java.awt.*;
import java.awt.event.*;
-import java.awt.peer.LightweightPeer;
-
import javax.swing.*;
-import javax.swing.border.*;
import javax.swing.plaf.*;
import javax.swing.event.*;
-
import java.beans.*;
-import java.io.Serializable;
-
import sun.swing.DefaultLookup;
import sun.swing.UIAction;
@@ -55,6 +49,7 @@
protected MouseInputAdapter borderListener;
protected PropertyChangeListener propertyChangeListener;
protected LayoutManager internalFrameLayout;
+ protected ComponentListener componentListener;
protected MouseInputListener glassPaneDispatcher;
private InternalFrameListener internalFrameListener;
@@ -66,9 +61,9 @@
protected BasicInternalFrameTitlePane titlePane; // access needs this
private static DesktopManager sharedDesktopManager;
+ private boolean componentListenerAdded = false;
private Rectangle parentBounds;
- private DesktopIconMover desktopIconMover;
private boolean dragging = false;
private boolean resizing = false;
@@ -209,17 +204,14 @@
frame.getGlassPane().addMouseListener(glassPaneDispatcher);
frame.getGlassPane().addMouseMotionListener(glassPaneDispatcher);
}
+ componentListener = createComponentListener();
if (frame.getParent() != null) {
parentBounds = frame.getParent().getBounds();
}
- getDesktopIconMover().installListeners();
- }
-
- private DesktopIconMover getDesktopIconMover() {
- if (desktopIconMover == null) {
- desktopIconMover = new DesktopIconMover(frame);
+ if ((frame.getParent() != null) && !componentListenerAdded) {
+ frame.getParent().addComponentListener(componentListener);
+ componentListenerAdded = true;
}
- return desktopIconMover;
}
// Provide a FocusListener to listen for a WINDOW_LOST_FOCUS event,
@@ -290,7 +282,11 @@
* @since 1.3
*/
protected void uninstallListeners() {
- getDesktopIconMover().uninstallListeners();
+ if ((frame.getParent() != null) && componentListenerAdded) {
+ frame.getParent().removeComponentListener(componentListener);
+ componentListenerAdded = false;
+ }
+ componentListener = null;
if (glassPaneDispatcher != null) {
frame.getGlassPane().removeMouseListener(glassPaneDispatcher);
frame.getGlassPane().removeMouseMotionListener(glassPaneDispatcher);
@@ -1228,6 +1224,15 @@
}
}
+ // Relocate the icon base on the new parent bounds.
+ if (icon != null) {
+ Rectangle iconBounds = icon.getBounds();
+ int y = iconBounds.y +
+ (parentNewBounds.height - parentBounds.height);
+ icon.setBounds(iconBounds.x, y,
+ iconBounds.width, iconBounds.height);
+ }
+
// Update the new parent bounds for next resize.
if (!parentBounds.equals(parentNewBounds)) {
parentBounds = parentNewBounds;
@@ -1399,6 +1404,9 @@
// Cancel a resize in progress if the internal frame
// gets a setClosed(true) or dispose().
cancelResize();
+ if ((frame.getParent() != null) && componentListenerAdded) {
+ frame.getParent().removeComponentListener(componentListener);
+ }
closeFrame(f);
}
} else if (JInternalFrame.IS_MAXIMUM_PROPERTY == prop) {
@@ -1431,6 +1439,10 @@
} else {
parentBounds = null;
}
+ if ((frame.getParent() != null) && !componentListenerAdded) {
+ f.getParent().addComponentListener(componentListener);
+ componentListenerAdded = true;
+ }
} else if (JInternalFrame.TITLE_PROPERTY == prop ||
prop == "closable" || prop == "iconable" ||
prop == "maximizable") {
--- a/jdk/src/share/classes/javax/swing/plaf/basic/BasicScrollPaneUI.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/javax/swing/plaf/basic/BasicScrollPaneUI.java Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 1997-2005 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved.
* 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,17 +37,12 @@
import java.beans.PropertyChangeEvent;
import java.awt.Component;
-import java.awt.Container;
-import java.awt.LayoutManager;
import java.awt.Rectangle;
import java.awt.Dimension;
import java.awt.Point;
import java.awt.Insets;
import java.awt.Graphics;
import java.awt.event.*;
-import java.io.Serializable;
-import java.awt.Toolkit;
-import java.awt.ComponentOrientation;
/**
* A default L&F implementation of ScrollPaneUI.
@@ -63,6 +58,7 @@
protected ChangeListener viewportChangeListener;
protected PropertyChangeListener spPropertyChangeListener;
private MouseWheelListener mouseScrollListener;
+ private int oldExtent = Integer.MIN_VALUE;
/**
* PropertyChangeListener installed on the vertical scrollbar.
@@ -327,9 +323,13 @@
* leave it until someone claims.
*/
value = Math.max(0, Math.min(max - extent, max - extent - viewPosition.x));
+ if (oldExtent > extent) {
+ value -= oldExtent - extent;
+ }
}
}
}
+ oldExtent = extent;
hsb.setValues(value, extent, 0, max);
}
@@ -1020,7 +1020,7 @@
if (viewport != null) {
if (e.getSource() == viewport) {
- viewportStateChanged(e);
+ syncScrollPaneWithViewport();
}
else {
JScrollBar hsb = scrollpane.getHorizontalScrollBar();
@@ -1077,11 +1077,6 @@
viewport.setViewPosition(p);
}
- private void viewportStateChanged(ChangeEvent e) {
- syncScrollPaneWithViewport();
- }
-
-
//
// PropertyChangeListener: This is installed on both the JScrollPane
// and the horizontal/vertical scrollbars.
--- a/jdk/src/share/classes/javax/swing/plaf/basic/DesktopIconMover.java Fri Aug 07 11:32:04 2009 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,168 +0,0 @@
-/*
- * Copyright 1997-2008 Sun Microsystems, Inc. All Rights Reserved.
- * 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. Sun designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
- */
-
-package javax.swing.plaf.basic;
-
-import javax.swing.*;
-import java.awt.*;
-import java.awt.event.*;
-import java.beans.*;
-
-/**
- * DesktopIconMover is intended to move desktop icon
- * when parent window is resized.
- */
-class DesktopIconMover implements ComponentListener, PropertyChangeListener {
- private Component parent;
- private JInternalFrame frame; // if not null, DesktopIconMover(frame)
- // constructor was used
- private JInternalFrame.JDesktopIcon icon;
- private Rectangle parentBounds;
- private boolean componentListenerAdded = false;
-
- public DesktopIconMover(JInternalFrame frame) {
- if (frame == null) {
- throw new NullPointerException("Frame cannot be null");
- }
- this.frame = frame;
- this.icon = frame.getDesktopIcon();
- if (icon == null) {
- throw new NullPointerException(
- "frame.getDesktopIcon() cannot be null");
- }
- this.parent = frame.getParent();
- if (this.parent != null) {
- parentBounds = this.parent.getBounds();
- }
- }
-
- public DesktopIconMover(JInternalFrame.JDesktopIcon icon) {
- if (icon == null) {
- throw new NullPointerException("Icon cannot be null");
- }
- this.icon = icon;
- this.parent = icon.getParent();
- if (this.parent != null) {
- parentBounds = this.parent.getBounds();
- }
- }
-
- public void installListeners() {
- if (frame != null) {
- frame.addPropertyChangeListener(this);
- } else {
- icon.addPropertyChangeListener(this);
- }
- addComponentListener();
- }
-
- public void uninstallListeners() {
- if (frame != null) {
- frame.removePropertyChangeListener(this);
- } else {
- icon.removePropertyChangeListener(this);
- }
- removeComponentListener();
- }
-
- public void propertyChange(PropertyChangeEvent evt) {
- String propName = evt.getPropertyName();
- if ("ancestor".equals(propName)) {
- Component newAncestor = (Component) evt.getNewValue();
-
- // Remove component listener if parent is changing
- Component probablyNewParent = getCurrentParent();
- if ((probablyNewParent != null) &&
- (!probablyNewParent.equals(parent))) {
- removeComponentListener();
- parent = probablyNewParent;
- }
-
- if (newAncestor == null) {
- removeComponentListener();
- } else {
- addComponentListener();
- }
-
- // Update parentBounds
- if (parent != null) {
- parentBounds = parent.getBounds();
- } else {
- parentBounds = null;
- }
- } else if (JInternalFrame.IS_CLOSED_PROPERTY.equals(propName)) {
- removeComponentListener();
- }
- }
-
- private void addComponentListener() {
- if (!componentListenerAdded && (parent != null)) {
- parent.addComponentListener(this);
- componentListenerAdded = true;
- }
- }
-
- private void removeComponentListener() {
- if ((parent != null) && componentListenerAdded) {
- parent.removeComponentListener(this);
- componentListenerAdded = false;
- }
- }
-
- private Component getCurrentParent() {
- if (frame != null) {
- return frame.getParent();
- } else {
- return icon.getParent();
- }
- }
-
- public void componentResized(ComponentEvent e) {
- if ((parent == null) || (parentBounds == null)) {
- return;
- }
-
- Rectangle parentNewBounds = parent.getBounds();
- if ((parentNewBounds == null) || parentNewBounds.equals(parentBounds)) {
- return;
- }
-
- // Move desktop icon only in up-down direction
- int newIconY = icon.getLocation().y +
- (parentNewBounds.height - parentBounds.height);
- icon.setLocation(icon.getLocation().x, newIconY);
-
- parentBounds = parentNewBounds;
- }
-
- public void componentMoved(ComponentEvent e) {
- }
-
- public void componentShown(ComponentEvent e) {
- }
-
- public void componentHidden(ComponentEvent e) {
- }
-}
--- a/jdk/src/share/classes/javax/swing/plaf/nimbus/AbstractRegionPainter.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/javax/swing/plaf/nimbus/AbstractRegionPainter.java Mon Aug 10 09:47:21 2009 -0700
@@ -227,10 +227,10 @@
*
* @param x an encoded x value (0...1, or 1...2, or 2...3)
* @return the decoded x value
+ * @throws IllegalArgumentException
+ * if {@code x < 0} or {@code x > 3}
*/
protected final float decodeX(float x) {
- if (ctx.canvasSize == null) return x;
-
if (x >= 0 && x <= 1) {
return x * leftWidth;
} else if (x > 1 && x < 2) {
@@ -238,7 +238,7 @@
} else if (x >= 2 && x <= 3) {
return ((x-2) * rightWidth) + leftWidth + centerWidth;
} else {
- throw new AssertionError("Invalid x");
+ throw new IllegalArgumentException("Invalid x");
}
}
@@ -248,10 +248,10 @@
*
* @param y an encoded y value (0...1, or 1...2, or 2...3)
* @return the decoded y value
+ * @throws IllegalArgumentException
+ * if {@code y < 0} or {@code y > 3}
*/
protected final float decodeY(float y) {
- if (ctx.canvasSize == null) return y;
-
if (y >= 0 && y <= 1) {
return y * topHeight;
} else if (y > 1 && y < 2) {
@@ -259,7 +259,7 @@
} else if (y >= 2 && y <= 3) {
return ((y-2) * bottomHeight) + topHeight + centerHeight;
} else {
- throw new AssertionError("Invalid y");
+ throw new IllegalArgumentException("Invalid y");
}
}
@@ -271,10 +271,10 @@
* @param x an encoded x value of the bezier control point (0...1, or 1...2, or 2...3)
* @param dx the offset distance to the anchor from the control point x
* @return the decoded x location of the control point
+ * @throws IllegalArgumentException
+ * if {@code x < 0} or {@code x > 3}
*/
protected final float decodeAnchorX(float x, float dx) {
- if (ctx.canvasSize == null) return x + dx;
-
if (x >= 0 && x <= 1) {
return decodeX(x) + (dx * leftScale);
} else if (x > 1 && x < 2) {
@@ -282,7 +282,7 @@
} else if (x >= 2 && x <= 3) {
return decodeX(x) + (dx * rightScale);
} else {
- throw new AssertionError("Invalid x");
+ throw new IllegalArgumentException("Invalid x");
}
}
@@ -294,10 +294,10 @@
* @param y an encoded y value of the bezier control point (0...1, or 1...2, or 2...3)
* @param dy the offset distance to the anchor from the control point y
* @return the decoded y position of the control point
+ * @throws IllegalArgumentException
+ * if {@code y < 0} or {@code y > 3}
*/
protected final float decodeAnchorY(float y, float dy) {
- if (ctx.canvasSize == null) return y + dy;
-
if (y >= 0 && y <= 1) {
return decodeY(y) + (dy * topScale);
} else if (y > 1 && y < 2) {
@@ -305,7 +305,7 @@
} else if (y >= 2 && y <= 3) {
return decodeY(y) + (dy * bottomScale);
} else {
- throw new AssertionError("Invalid y");
+ throw new IllegalArgumentException("Invalid y");
}
}
@@ -363,6 +363,15 @@
* @param midpoints
* @param colors
* @return a valid LinearGradientPaint. This method never returns null.
+ * @throws NullPointerException
+ * if {@code midpoints} array is null,
+ * or {@code colors} array is null,
+ * @throws IllegalArgumentException
+ * if start and end points are the same points,
+ * or {@code midpoints.length != colors.length},
+ * or {@code colors} is less than 2 in size,
+ * or a {@code midpoints} value is less than 0.0 or greater than 1.0,
+ * or the {@code midpoints} are not provided in strictly increasing order
*/
protected final LinearGradientPaint decodeGradient(float x1, float y1, float x2, float y2, float[] midpoints, Color[] colors) {
if (x1 == x2 && y1 == y2) {
@@ -384,6 +393,15 @@
* @param midpoints
* @param colors
* @return a valid RadialGradientPaint. This method never returns null.
+ * @throws NullPointerException
+ * if {@code midpoints} array is null,
+ * or {@code colors} array is null
+ * @throws IllegalArgumentException
+ * if {@code r} is non-positive,
+ * or {@code midpoints.length != colors.length},
+ * or {@code colors} is less than 2 in size,
+ * or a {@code midpoints} value is less than 0.0 or greater than 1.0,
+ * or the {@code midpoints} are not provided in strictly increasing order
*/
protected final RadialGradientPaint decodeRadialGradient(float x, float y, float r, float[] midpoints, Color[] colors) {
if (r == 0f) {
@@ -537,10 +555,10 @@
this.maxVerticalScaleFactor = maxV;
if (canvasSize != null) {
- a = insets.left;
- b = canvasSize.width - insets.right;
- c = insets.top;
- d = canvasSize.height - insets.bottom;
+ a = stretchingInsets.left;
+ b = canvasSize.width - stretchingInsets.right;
+ c = stretchingInsets.top;
+ d = canvasSize.height - stretchingInsets.bottom;
this.canvasSize = canvasSize;
this.inverted = inverted;
if (inverted) {
--- a/jdk/src/share/classes/javax/swing/plaf/nimbus/NimbusIcon.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/javax/swing/plaf/nimbus/NimbusIcon.java Mon Aug 10 09:47:21 2009 -0700
@@ -84,6 +84,8 @@
translatex = 1;
}
}
+ } else if (c instanceof JMenu) {
+ flip = ! c.getComponentOrientation().isLeftToRight();
}
if (g instanceof Graphics2D){
Graphics2D gfx = (Graphics2D)g;
--- a/jdk/src/share/classes/javax/swing/text/GlyphView.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/javax/swing/text/GlyphView.java Mon Aug 10 09:47:21 2009 -0700
@@ -719,8 +719,9 @@
checkPainter();
int p0 = getStartOffset();
int p1 = painter.getBoundedPosition(this, p0, pos, len);
- return ((p1 > p0) && (getBreakSpot(p0, p1) != BreakIterator.DONE)) ?
- View.ExcellentBreakWeight : View.BadBreakWeight;
+ return p1 == p0 ? View.BadBreakWeight :
+ getBreakSpot(p0, p1) != BreakIterator.DONE ?
+ View.ExcellentBreakWeight : View.GoodBreakWeight;
}
return super.getBreakWeight(axis, pos, len);
}
--- a/jdk/src/share/classes/javax/swing/text/ParagraphView.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/javax/swing/text/ParagraphView.java Mon Aug 10 09:47:21 2009 -0700
@@ -175,23 +175,6 @@
}
/**
- * Adjusts the given row if possible to fit within the
- * layout span. By default this will try to find the
- * highest break weight possible nearest the end of
- * the row. If a forced break is encountered, the
- * break will be positioned there.
- * <p>
- * This is meant for internal usage, and should not be used directly.
- *
- * @param r the row to adjust to the current layout
- * span
- * @param desiredSpan the current layout span >= 0
- * @param x the location r starts at
- */
- protected void adjustRow(Row r, int desiredSpan, int x) {
- }
-
- /**
* Returns the next visual position for the cursor, in
* either the east or west direction.
* Overridden from <code>CompositeView</code>.
--- a/jdk/src/share/classes/sun/awt/shell/ShellFolder.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/sun/awt/shell/ShellFolder.java Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -289,8 +289,8 @@
// To avoid loads of synchronizations with Invoker and improve performance we
// synchronize the whole code of the sort method once
- getInvoker().invoke(new Callable<Void>() {
- public Void call() throws Exception {
+ invoke(new Callable<Void>() {
+ public Void call() {
// Check that we can use the ShellFolder.sortChildren() method:
// 1. All files have the same non-null parent
// 2. All files is ShellFolders
@@ -330,8 +330,8 @@
public void sortChildren(final List<? extends File> files) {
// To avoid loads of synchronizations with Invoker and improve performance we
// synchronize the whole code of the sort method once
- getInvoker().invoke(new Callable<Void>() {
- public Void call() throws Exception {
+ invoke(new Callable<Void>() {
+ public Void call() {
Collections.sort(files, FILE_COMPARATOR);
return null;
@@ -502,17 +502,61 @@
}
/**
+ * Invokes the {@code task} which doesn't throw checked exceptions
+ * from its {@code call} method. If invokation is interrupted then Thread.currentThread().isInterrupted() will
+ * be set and result will be {@code null}
+ */
+ public static <T> T invoke(Callable<T> task) {
+ try {
+ return invoke(task, RuntimeException.class);
+ } catch (InterruptedException e) {
+ return null;
+ }
+ }
+
+ /**
+ * Invokes the {@code task} which throws checked exceptions from its {@code call} method.
+ * If invokation is interrupted then Thread.currentThread().isInterrupted() will
+ * be set and InterruptedException will be thrown as well.
+ */
+ public static <T, E extends Throwable> T invoke(Callable<T> task, Class<E> exceptionClass)
+ throws InterruptedException, E {
+ try {
+ return getInvoker().invoke(task);
+ } catch (Exception e) {
+ if (e instanceof RuntimeException) {
+ // Rethrow unchecked exceptions
+ throw (RuntimeException) e;
+ }
+
+ if (e instanceof InterruptedException) {
+ // Set isInterrupted flag for current thread
+ Thread.currentThread().interrupt();
+
+ // Rethrow InterruptedException
+ throw (InterruptedException) e;
+ }
+
+ if (exceptionClass.isInstance(e)) {
+ throw exceptionClass.cast(e);
+ }
+
+ throw new RuntimeException("Unexpected error", e);
+ }
+ }
+
+ /**
* Interface allowing to invoke tasks in different environments on different platforms.
*/
public static interface Invoker {
/**
- * Invokes a callable task. If the {@code task} throws a checked exception,
- * it will be wrapped into a {@link RuntimeException}
+ * Invokes a callable task.
*
* @param task a task to invoke
+ * @throws Exception {@code InterruptedException} or an exception that was thrown from the {@code task}
* @return the result of {@code task}'s invokation
*/
- <T> T invoke(Callable<T> task);
+ <T> T invoke(Callable<T> task) throws Exception;
}
/**
--- a/jdk/src/share/classes/sun/awt/shell/ShellFolderManager.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/sun/awt/shell/ShellFolderManager.java Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2008 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2000-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -108,12 +108,8 @@
}
private static class DirectInvoker implements ShellFolder.Invoker {
- public <T> T invoke(Callable<T> task) {
- try {
- return task.call();
- } catch (Exception e) {
- throw new RuntimeException(e);
- }
+ public <T> T invoke(Callable<T> task) throws Exception {
+ return task.call();
}
}
}
--- a/jdk/src/share/classes/sun/dyn/FilterGeneric.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/sun/dyn/FilterGeneric.java Mon Aug 10 09:47:21 2009 -0700
@@ -16,7 +16,7 @@
*
* 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 Sf, tifth Floor, Boston, MA 02110-1301 USA.
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
--- a/jdk/src/share/classes/sun/misc/URLClassPath.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/sun/misc/URLClassPath.java Mon Aug 10 09:47:21 2009 -0700
@@ -51,6 +51,7 @@
import java.security.PrivilegedExceptionAction;
import java.security.cert.Certificate;
import sun.misc.FileURLMapper;
+import sun.net.util.URLUtil;
/**
* This class is used to maintain a search path of URLs for loading classes
@@ -80,7 +81,7 @@
ArrayList<Loader> loaders = new ArrayList<Loader>();
/* Map of each URL opened to its corresponding Loader */
- HashMap<URL, Loader> lmap = new HashMap<URL, Loader>();
+ HashMap<String, Loader> lmap = new HashMap<String, Loader>();
/* The jar protocol handler to use when creating new URLs */
private URLStreamHandler jarHandler;
@@ -317,7 +318,8 @@
// Skip this URL if it already has a Loader. (Loader
// may be null in the case where URL has not been opened
// but is referenced by a JAR index.)
- if (lmap.containsKey(url)) {
+ String urlNoFragString = URLUtil.urlNoFragString(url);
+ if (lmap.containsKey(urlNoFragString)) {
continue;
}
// Otherwise, create a new Loader for the URL.
@@ -336,7 +338,7 @@
}
// Finally, add the Loader to the search path.
loaders.add(loader);
- lmap.put(url, loader);
+ lmap.put(urlNoFragString, loader);
}
return loaders.get(index);
}
@@ -576,7 +578,7 @@
private JarIndex index;
private MetaIndex metaIndex;
private URLStreamHandler handler;
- private HashMap<URL, Loader> lmap;
+ private HashMap<String, Loader> lmap;
private boolean closed = false;
/*
@@ -584,7 +586,7 @@
* a JAR file.
*/
JarLoader(URL url, URLStreamHandler jarHandler,
- HashMap<URL, Loader> loaderMap)
+ HashMap<String, Loader> loaderMap)
throws IOException
{
super(new URL("jar", "", -1, url + "!/", jarHandler));
@@ -663,8 +665,9 @@
try {
URL jarURL = new URL(csu, jarfiles[i]);
// If a non-null loader already exists, leave it alone.
- if (!lmap.containsKey(jarURL)) {
- lmap.put(jarURL, null);
+ String urlNoFragString = URLUtil.urlNoFragString(jarURL);
+ if (!lmap.containsKey(urlNoFragString)) {
+ lmap.put(urlNoFragString, null);
}
} catch (MalformedURLException e) {
continue;
@@ -806,7 +809,7 @@
if (index == null)
return null;
- HashSet<URL> visited = new HashSet<URL>();
+ HashSet<String> visited = new HashSet<String>();
return getResource(name, check, visited);
}
@@ -818,7 +821,7 @@
* non-existent resource
*/
Resource getResource(final String name, boolean check,
- Set<URL> visited) {
+ Set<String> visited) {
Resource res;
Object[] jarFiles;
@@ -843,7 +846,8 @@
try{
url = new URL(csu, jarName);
- if ((newLoader = (JarLoader)lmap.get(url)) == null) {
+ String urlNoFragString = URLUtil.urlNoFragString(url);
+ if ((newLoader = (JarLoader)lmap.get(urlNoFragString)) == null) {
/* no loader has been set up for this jar file
* before
*/
@@ -867,7 +871,7 @@
}
/* put it in the global hashtable */
- lmap.put(url, newLoader);
+ lmap.put(urlNoFragString, newLoader);
}
} catch (java.security.PrivilegedActionException pae) {
continue;
@@ -879,7 +883,7 @@
/* Note that the addition of the url to the list of visited
* jars incorporates a check for presence in the hashmap
*/
- boolean visitedURL = !visited.add(url);
+ boolean visitedURL = !visited.add(URLUtil.urlNoFragString(url));
if (!visitedURL) {
try {
newLoader.ensureOpen();
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/sun/net/util/URLUtil.java Mon Aug 10 09:47:21 2009 -0700
@@ -0,0 +1,80 @@
+/*
+ * Copyright 2009 Sun Microsystems, Inc. All Rights Reserved.
+ * 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. Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+package sun.net.util;
+
+import java.net.URL;
+
+/**
+ * URL Utility class.
+ */
+public class URLUtil {
+ /**
+ * Returns a string form of the url suitable for use as a key in HashMap/Sets.
+ *
+ * The string form should be behave in the same manner as the URL when
+ * compared for equality in a HashMap/Set, except that no nameservice
+ * lookup is done on the hostname (only string comparison), and the fragment
+ * is not considered.
+ *
+ * @see java.net.URLStreamHandler.sameFile(java.net.URL)
+ */
+ public static String urlNoFragString(URL url) {
+ StringBuilder strForm = new StringBuilder();
+
+ String protocol = url.getProtocol();
+ if (protocol != null) {
+ /* protocol is compared case-insensitive, so convert to lowercase */
+ protocol = protocol.toLowerCase();
+ strForm.append(protocol);
+ strForm.append("://");
+ }
+
+ String host = url.getHost();
+ if (host != null) {
+ /* host is compared case-insensitive, so convert to lowercase */
+ host = host.toLowerCase();
+ strForm.append(host);
+
+ int port = url.getPort();
+ if (port == -1) {
+ /* if no port is specificed then use the protocols
+ * default, if there is one */
+ port = url.getDefaultPort();
+ }
+ if (port != -1) {
+ strForm.append(":").append(port);
+ }
+ }
+
+ String file = url.getFile();
+ if (file != null) {
+ strForm.append(file);
+ }
+
+ return strForm.toString();
+ }
+}
+
--- a/jdk/src/share/classes/sun/security/pkcs11/JarVerifier.java Fri Aug 07 11:32:04 2009 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
-/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
- * 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. Sun designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
- */
-
-package sun.security.pkcs11;
-
-// NOTE: this class is duplicated amongst SunJCE, SunPKCS11, and SunMSCAPI.
-// All files should be kept in sync.
-
-import java.io.*;
-import java.util.*;
-import java.util.jar.*;
-import java.net.URL;
-import java.net.JarURLConnection;
-import java.net.MalformedURLException;
-
-import java.security.*;
-import java.security.cert.*;
-import java.security.cert.Certificate;
-
-/**
- * This class verifies JAR files (and any supporting JAR files), and
- * determines whether they may be used in this implementation.
- *
- * The JCE in OpenJDK has an open cryptographic interface, meaning it
- * does not restrict which providers can be used. Compliance with
- * United States export controls and with local law governing the
- * import/export of products incorporating the JCE in the OpenJDK is
- * the responsibility of the licensee.
- *
- * @since 1.7
- */
-final class JarVerifier {
-
- private static final boolean debug = false;
-
- /**
- * Verify the JAR file is signed by an entity which has a certificate
- * issued by a trusted CA.
- *
- * Note: this is a temporary method and will change soon to use the
- * exception chaining mechanism, which can provide more details
- * as to why the verification failed.
- *
- * @param c the class to be verified.
- * @return true if verification is successful.
- */
- static boolean verify(final Class c) {
- return true;
- }
-}
--- a/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/sun/security/pkcs11/SunPKCS11.java Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -390,24 +390,6 @@
return sb.toString();
}
- // set to true once self verification is complete
- private static volatile boolean integrityVerified;
-
- static void verifySelfIntegrity(Class c) {
- if (integrityVerified) {
- return;
- }
- doVerifySelfIntegrity(c);
- }
-
- private static synchronized void doVerifySelfIntegrity(Class c) {
- integrityVerified = JarVerifier.verify(c);
- if (integrityVerified == false) {
- throw new ProviderException
- ("The SunPKCS11 provider may have been tampered with.");
- }
- }
-
public boolean equals(Object obj) {
return this == obj;
}
@@ -923,7 +905,6 @@
if (type == MD) {
return new P11Digest(token, algorithm, mechanism);
} else if (type == CIP) {
- verifySelfIntegrity(getClass());
if (algorithm.startsWith("RSA")) {
return new P11RSACipher(token, algorithm, mechanism);
} else {
@@ -932,12 +913,10 @@
} else if (type == SIG) {
return new P11Signature(token, algorithm, mechanism);
} else if (type == MAC) {
- verifySelfIntegrity(getClass());
return new P11Mac(token, algorithm, mechanism);
} else if (type == KPG) {
return new P11KeyPairGenerator(token, algorithm, mechanism);
} else if (type == KA) {
- verifySelfIntegrity(getClass());
if (algorithm.equals("ECDH")) {
return new P11ECDHKeyAgreement(token, algorithm, mechanism);
} else {
@@ -946,11 +925,8 @@
} else if (type == KF) {
return token.getKeyFactory(algorithm);
} else if (type == SKF) {
- verifySelfIntegrity(getClass());
return new P11SecretKeyFactory(token, algorithm);
} else if (type == KG) {
- verifySelfIntegrity(getClass());
-
// reference equality
if (algorithm == "SunTlsRsaPremasterSecret") {
return new P11TlsRsaPremasterSecretGenerator(
--- a/jdk/src/share/classes/sun/swing/FilePane.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/sun/swing/FilePane.java Mon Aug 10 09:47:21 2009 -0700
@@ -1,6 +1,5 @@
-
/*
- * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -905,8 +904,8 @@
@Override
public void sort() {
- ShellFolder.getInvoker().invoke(new Callable<Void>() {
- public Void call() throws Exception {
+ ShellFolder.invoke(new Callable<Void>() {
+ public Void call() {
DetailsTableRowSorter.super.sort();
return null;
}
--- a/jdk/src/share/classes/sun/swing/MenuItemLayoutHelper.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/share/classes/sun/swing/MenuItemLayoutHelper.java Mon Aug 10 09:47:21 2009 -0700
@@ -718,10 +718,10 @@
}
private void alignRect(Rectangle rect, int alignment, int origWidth) {
- if (alignment != SwingUtilities.LEFT) {
+ if (alignment == SwingConstants.RIGHT) {
rect.x = rect.x + rect.width - origWidth;
- rect.width = origWidth;
}
+ rect.width = origWidth;
}
protected void layoutIconAndTextInLabelRect(LayoutResult lr) {
--- a/jdk/src/solaris/classes/sun/awt/X11/XRobotPeer.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/solaris/classes/sun/awt/X11/XRobotPeer.java Mon Aug 10 09:47:21 2009 -0700
@@ -27,6 +27,7 @@
import java.awt.*;
import java.awt.peer.*;
import sun.awt.X11GraphicsConfig;
+import sun.awt.SunToolkit;
class XRobotPeer implements RobotPeer {
private X11GraphicsConfig xgc = null;
@@ -38,7 +39,8 @@
XRobotPeer(GraphicsConfiguration gc) {
this.xgc = (X11GraphicsConfig)gc;
- setup();
+ SunToolkit tk = (SunToolkit)Toolkit.getDefaultToolkit();
+ setup(tk.getNumberOfButtons());
}
public void dispose() {
@@ -81,7 +83,7 @@
return pixelArray;
}
- private static native synchronized void setup();
+ private static native synchronized void setup(int numberOfButtons);
private static native synchronized void mouseMoveImpl(X11GraphicsConfig xgc, int x, int y);
private static native synchronized void mousePressImpl(int buttons);
--- a/jdk/src/solaris/classes/sun/net/www/protocol/jar/JarFileFactory.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/solaris/classes/sun/net/www/protocol/jar/JarFileFactory.java Mon Aug 10 09:47:21 2009 -0700
@@ -25,12 +25,14 @@
package sun.net.www.protocol.jar;
-import java.io.*;
-import java.net.*;
-import java.util.*;
-import java.util.jar.*;
-import java.util.zip.ZipFile;
+import java.io.IOException;
+import java.io.FileNotFoundException;
+import java.net.URL;
+import java.net.URLConnection;
+import java.util.HashMap;
+import java.util.jar.JarFile;
import java.security.Permission;
+import sun.net.util.URLUtil;
/* A factory for cached JAR file. This class is used to both retrieve
* and cache Jar files.
@@ -41,13 +43,13 @@
class JarFileFactory implements URLJarFile.URLJarFileCloseController {
/* the url to file cache */
- private static HashMap fileCache = new HashMap();
+ private static HashMap<String, JarFile> fileCache = new HashMap<String, JarFile>();
/* the file to url cache */
- private static HashMap urlCache = new HashMap();
+ private static HashMap<JarFile, URL> urlCache = new HashMap<JarFile, URL>();
URLConnection getConnection(JarFile jarFile) throws IOException {
- URL u = (URL)urlCache.get(jarFile);
+ URL u = urlCache.get(jarFile);
if (u != null)
return u.openConnection();
@@ -72,7 +74,7 @@
synchronized (this) {
result = getCachedJarFile(url);
if (result == null) {
- fileCache.put(url, local_result);
+ fileCache.put(URLUtil.urlNoFragString(url), local_result);
urlCache.put(local_result, url);
result = local_result;
} else {
@@ -97,15 +99,15 @@
* remove the JarFile from the cache
*/
public void close(JarFile jarFile) {
- URL urlRemoved = (URL) urlCache.remove(jarFile);
+ URL urlRemoved = urlCache.remove(jarFile);
if( urlRemoved != null) {
- fileCache.remove(urlRemoved);
+ fileCache.remove(URLUtil.urlNoFragString(urlRemoved));
}
}
private JarFile getCachedJarFile(URL url) {
- JarFile result = (JarFile)fileCache.get(url);
+ JarFile result = fileCache.get(URLUtil.urlNoFragString(url));
/* if the JAR file is cached, the permission will always be there */
if (result != null) {
--- a/jdk/src/solaris/native/sun/awt/awt_Robot.c Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/solaris/native/sun/awt/awt_Robot.c Mon Aug 10 09:47:21 2009 -0700
@@ -51,9 +51,8 @@
extern struct X11GraphicsConfigIDs x11GraphicsConfigIDs;
-extern int32_t getNumButtons();
-
static jint * masks;
+static jint num_buttons;
static int32_t isXTestAvailable() {
int32_t major_opcode, first_event, first_error;
@@ -164,34 +163,34 @@
/*********************************************************************************************/
+// this should be called from XRobotPeer constructor
JNIEXPORT void JNICALL
-Java_sun_awt_X11_XRobotPeer_setup (JNIEnv * env, jclass cls) {
+Java_sun_awt_X11_XRobotPeer_setup (JNIEnv * env, jclass cls, jint numberOfButtons) {
int32_t xtestAvailable;
-// this should be called from XRobotPeer constructor
+ DTRACE_PRINTLN("RobotPeer: setup()");
+
+ num_buttons = numberOfButtons;
+
jclass inputEventClazz = (*env)->FindClass(env, "java/awt/event/InputEvent");
jmethodID getButtonDownMasksID = (*env)->GetStaticMethodID(env, inputEventClazz, "getButtonDownMasks", "()[I");
jintArray obj = (jintArray)(*env)->CallStaticObjectMethod(env, inputEventClazz, getButtonDownMasksID);
- jsize len = (*env)->GetArrayLength(env, obj);
jint * tmp = (*env)->GetIntArrayElements(env, obj, JNI_FALSE);
- masks = (jint *)malloc(sizeof(jint)*len);
+ masks = (jint *)malloc(sizeof(jint) * num_buttons);
if (masks == (jint *) NULL) {
JNU_ThrowOutOfMemoryError((JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2), NULL);
goto finally;
}
int i;
- for (i = 0; i < len; i++) {
+ for (i = 0; i < num_buttons; i++) {
masks[i] = tmp[i];
}
(*env)->ReleaseIntArrayElements(env, obj, tmp, 0);
(*env)->DeleteLocalRef(env, obj);
- DTRACE_PRINTLN("RobotPeer: setup()");
-
AWT_LOCK();
-
xtestAvailable = isXTestAvailable();
DTRACE_PRINTLN1("RobotPeer: XTest available = %d", xtestAvailable);
if (!xtestAvailable) {
@@ -338,8 +337,6 @@
{
AWT_LOCK();
- int32_t num_buttons = getNumButtons(); //from XToolkit.c
-
DTRACE_PRINTLN1("RobotPeer: mouseAction(%i)", buttonMask);
DTRACE_PRINTLN1("RobotPeer: mouseAction, press = %d", isMousePress);
--- a/jdk/src/windows/classes/sun/awt/shell/Win32ShellFolder2.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/windows/classes/sun/awt/shell/Win32ShellFolder2.java Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -29,7 +29,6 @@
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.File;
-import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.*;
import java.util.concurrent.*;
@@ -185,8 +184,8 @@
boolean disposed;
public void dispose() {
if (disposed) return;
- ShellFolder.getInvoker().invoke(new Callable<Void>() {
- public Void call() throws Exception {
+ invoke(new Callable<Void>() {
+ public Void call() {
if (relativePIDL != 0) {
releasePIDL(relativePIDL);
}
@@ -224,7 +223,7 @@
*/
private boolean isPersonal;
- private static String composePathForCsidl(int csidl) throws IOException {
+ private static String composePathForCsidl(int csidl) throws IOException, InterruptedException {
String path = getFileSystemPath(csidl);
return path == null
? ("ShellFolder: 0x" + Integer.toHexString(csidl))
@@ -235,12 +234,13 @@
* Create a system special shell folder, such as the
* desktop or Network Neighborhood.
*/
- Win32ShellFolder2(final int csidl) throws IOException {
+ Win32ShellFolder2(final int csidl) throws IOException, InterruptedException {
// Desktop is parent of DRIVES and NETWORK, not necessarily
// other special shell folders.
super(null, composePathForCsidl(csidl));
- ShellFolder.getInvoker().invoke(new Callable<Void>() {
- public Void call() throws Exception {
+
+ invoke(new Callable<Void>() {
+ public Void call() throws InterruptedException {
if (csidl == DESKTOP) {
initDesktop();
} else {
@@ -276,7 +276,7 @@
}
return null;
}
- });
+ }, InterruptedException.class);
sun.java2d.Disposer.addRecord(this, disposer);
}
@@ -296,13 +296,13 @@
/**
* Creates a shell folder with a parent and relative PIDL
*/
- Win32ShellFolder2(final Win32ShellFolder2 parent, final long relativePIDL) {
+ Win32ShellFolder2(final Win32ShellFolder2 parent, final long relativePIDL) throws InterruptedException {
super(parent,
- ShellFolder.getInvoker().invoke(new Callable<String>() {
- public String call() throws Exception {
+ invoke(new Callable<String>() {
+ public String call() {
return getFileSystemPath(parent.getIShellFolder(), relativePIDL);
}
- })
+ }, RuntimeException.class)
);
this.disposer.relativePIDL = relativePIDL;
getAbsolutePath();
@@ -335,8 +335,8 @@
* drive (normally "C:\").
*/
protected Object writeReplace() throws java.io.ObjectStreamException {
- return ShellFolder.getInvoker().invoke(new Callable<File>() {
- public File call() throws Exception {
+ return invoke(new Callable<File>() {
+ public File call() {
if (isFileSystem()) {
return new File(getPath());
} else {
@@ -398,11 +398,11 @@
/**
* Accessor for IShellFolder
*/
- public long getIShellFolder() {
+ private long getIShellFolder() {
if (disposer.pIShellFolder == 0) {
- disposer.pIShellFolder =
- ShellFolder.getInvoker().invoke(new Callable<Long>() {
- public Long call() throws Exception {
+ try {
+ disposer.pIShellFolder = invoke(new Callable<Long>() {
+ public Long call() {
assert(isDirectory());
assert(parent != null);
long parentIShellFolder = getParentIShellFolder();
@@ -421,7 +421,10 @@
}
return pIShellFolder;
}
- });
+ }, RuntimeException.class);
+ } catch (InterruptedException e) {
+ // Ignore error
+ }
}
return disposer.pIShellFolder;
}
@@ -505,18 +508,23 @@
}
if (parent == rhs.parent || parent.equals(rhs.parent)) {
- return pidlsEqual(getParentIShellFolder(), disposer.relativePIDL, rhs.disposer.relativePIDL);
+ try {
+ return pidlsEqual(getParentIShellFolder(), disposer.relativePIDL, rhs.disposer.relativePIDL);
+ } catch (InterruptedException e) {
+ return false;
+ }
}
return false;
}
- private static boolean pidlsEqual(final long pIShellFolder, final long pidl1, final long pidl2) {
- return ShellFolder.getInvoker().invoke(new Callable<Boolean>() {
- public Boolean call() throws Exception {
- return (compareIDs(pIShellFolder, pidl1, pidl2) == 0);
+ private static boolean pidlsEqual(final long pIShellFolder, final long pidl1, final long pidl2)
+ throws InterruptedException {
+ return invoke(new Callable<Boolean>() {
+ public Boolean call() {
+ return compareIDs(pIShellFolder, pidl1, pidl2) == 0;
}
- });
+ }, RuntimeException.class);
}
// NOTE: this method uses COM and must be called on the 'COM thread'. See ComInvoker for the details
@@ -539,14 +547,16 @@
* Return whether the given attribute flag is set for this object
*/
public boolean hasAttribute(final int attribute) {
- return ShellFolder.getInvoker().invoke(new Callable<Boolean>() {
- public Boolean call() throws Exception {
+ Boolean result = invoke(new Callable<Boolean>() {
+ public Boolean call() {
// Caching at this point doesn't seem to be cost efficient
return (getAttributes0(getParentIShellFolder(),
getRelativePIDL(), attribute)
& attribute) != 0;
}
});
+
+ return result != null && result;
}
/**
@@ -561,32 +571,29 @@
private static native int getAttributes0(long pParentIShellFolder, long pIDL, int attrsMask);
// Return the path to the underlying file system object
+ // Should be called from the COM thread
private static String getFileSystemPath(final long parentIShellFolder, final long relativePIDL) {
- return ShellFolder.getInvoker().invoke(new Callable<String>() {
- public String call() throws Exception {
- int linkedFolder = ATTRIB_LINK | ATTRIB_FOLDER;
- if (parentIShellFolder == Win32ShellFolderManager2.getNetwork().getIShellFolder() &&
- getAttributes0(parentIShellFolder, relativePIDL, linkedFolder) == linkedFolder) {
+ int linkedFolder = ATTRIB_LINK | ATTRIB_FOLDER;
+ if (parentIShellFolder == Win32ShellFolderManager2.getNetwork().getIShellFolder() &&
+ getAttributes0(parentIShellFolder, relativePIDL, linkedFolder) == linkedFolder) {
- String s =
- getFileSystemPath(Win32ShellFolderManager2.getDesktop().getIShellFolder(),
- getLinkLocation(parentIShellFolder, relativePIDL, false));
- if (s != null && s.startsWith("\\\\")) {
- return s;
- }
- }
- return getDisplayNameOf(parentIShellFolder, relativePIDL, SHGDN_FORPARSING);
+ String s =
+ getFileSystemPath(Win32ShellFolderManager2.getDesktop().getIShellFolder(),
+ getLinkLocation(parentIShellFolder, relativePIDL, false));
+ if (s != null && s.startsWith("\\\\")) {
+ return s;
}
- });
+ }
+ return getDisplayNameOf(parentIShellFolder, relativePIDL, SHGDN_FORPARSING);
}
// Needs to be accessible to Win32ShellFolderManager2
- static String getFileSystemPath(final int csidl) throws IOException {
- return ShellFolder.getInvoker().invoke(new Callable<String>() {
- public String call() throws Exception {
+ static String getFileSystemPath(final int csidl) throws IOException, InterruptedException {
+ return invoke(new Callable<String>() {
+ public String call() throws IOException {
return getFileSystemPath0(csidl);
}
- });
+ }, IOException.class);
}
// NOTE: this method uses COM and must be called on the 'COM thread'. See ComInvoker for the details
@@ -630,13 +637,14 @@
*/
// Returns an IEnumIDList interface for an IShellFolder. The value
// returned must be released using releaseEnumObjects().
- private long getEnumObjects(long pIShellFolder, final boolean includeHiddenFiles) {
- final boolean isDesktop = (disposer.pIShellFolder == getDesktopIShellFolder());
- return ShellFolder.getInvoker().invoke(new Callable<Long>() {
- public Long call() throws Exception {
+ private long getEnumObjects(final boolean includeHiddenFiles) throws InterruptedException {
+ return invoke(new Callable<Long>() {
+ public Long call() {
+ boolean isDesktop = disposer.pIShellFolder == getDesktopIShellFolder();
+
return getEnumObjects(disposer.pIShellFolder, isDesktop, includeHiddenFiles);
}
- });
+ }, RuntimeException.class);
}
// Returns an IEnumIDList interface for an IShellFolder. The value
@@ -670,58 +678,62 @@
security.checkRead(getPath());
}
- return ShellFolder.getInvoker().invoke(new Callable<File[]>() {
- public File[] call() throws Exception {
- if (!isDirectory()) {
- return null;
- }
- // Links to directories are not directories and cannot be parents.
- // This does not apply to folders in My Network Places (NetHood)
- // because they are both links and real directories!
- if (isLink() && !hasAttribute(ATTRIB_FOLDER)) {
- return new File[0];
- }
+ try {
+ return invoke(new Callable<File[]>() {
+ public File[] call() throws InterruptedException {
+ if (!isDirectory()) {
+ return null;
+ }
+ // Links to directories are not directories and cannot be parents.
+ // This does not apply to folders in My Network Places (NetHood)
+ // because they are both links and real directories!
+ if (isLink() && !hasAttribute(ATTRIB_FOLDER)) {
+ return new File[0];
+ }
- Win32ShellFolder2 desktop = Win32ShellFolderManager2.getDesktop();
- Win32ShellFolder2 personal = Win32ShellFolderManager2.getPersonal();
+ Win32ShellFolder2 desktop = Win32ShellFolderManager2.getDesktop();
+ Win32ShellFolder2 personal = Win32ShellFolderManager2.getPersonal();
- // If we are a directory, we have a parent and (at least) a
- // relative PIDL. We must first ensure we are bound to the
- // parent so we have an IShellFolder to query.
- long pIShellFolder = getIShellFolder();
- // Now we can enumerate the objects in this folder.
- ArrayList<Win32ShellFolder2> list = new ArrayList<Win32ShellFolder2>();
- long pEnumObjects = getEnumObjects(pIShellFolder, includeHiddenFiles);
- if (pEnumObjects != 0) {
- long childPIDL;
- int testedAttrs = ATTRIB_FILESYSTEM | ATTRIB_FILESYSANCESTOR;
- do {
- childPIDL = getNextChild(pEnumObjects);
- boolean releasePIDL = true;
- if (childPIDL != 0 &&
- (getAttributes0(pIShellFolder, childPIDL, testedAttrs) & testedAttrs) != 0) {
- Win32ShellFolder2 childFolder;
- if (Win32ShellFolder2.this.equals(desktop)
- && personal != null
- && pidlsEqual(pIShellFolder, childPIDL, personal.disposer.relativePIDL)) {
- childFolder = personal;
- } else {
- childFolder = new Win32ShellFolder2(Win32ShellFolder2.this, childPIDL);
- releasePIDL = false;
+ // If we are a directory, we have a parent and (at least) a
+ // relative PIDL. We must first ensure we are bound to the
+ // parent so we have an IShellFolder to query.
+ long pIShellFolder = getIShellFolder();
+ // Now we can enumerate the objects in this folder.
+ ArrayList<Win32ShellFolder2> list = new ArrayList<Win32ShellFolder2>();
+ long pEnumObjects = getEnumObjects(includeHiddenFiles);
+ if (pEnumObjects != 0) {
+ long childPIDL;
+ int testedAttrs = ATTRIB_FILESYSTEM | ATTRIB_FILESYSANCESTOR;
+ do {
+ childPIDL = getNextChild(pEnumObjects);
+ boolean releasePIDL = true;
+ if (childPIDL != 0 &&
+ (getAttributes0(pIShellFolder, childPIDL, testedAttrs) & testedAttrs) != 0) {
+ Win32ShellFolder2 childFolder;
+ if (Win32ShellFolder2.this.equals(desktop)
+ && personal != null
+ && pidlsEqual(pIShellFolder, childPIDL, personal.disposer.relativePIDL)) {
+ childFolder = personal;
+ } else {
+ childFolder = new Win32ShellFolder2(Win32ShellFolder2.this, childPIDL);
+ releasePIDL = false;
+ }
+ list.add(childFolder);
}
- list.add(childFolder);
- }
- if (releasePIDL) {
- releasePIDL(childPIDL);
- }
- } while (childPIDL != 0 && !Thread.currentThread().isInterrupted());
- releaseEnumObjects(pEnumObjects);
+ if (releasePIDL) {
+ releasePIDL(childPIDL);
+ }
+ } while (childPIDL != 0 && !Thread.currentThread().isInterrupted());
+ releaseEnumObjects(pEnumObjects);
+ }
+ return Thread.currentThread().isInterrupted()
+ ? new File[0]
+ : list.toArray(new ShellFolder[list.size()]);
}
- return Thread.currentThread().isInterrupted()
- ? new File[0]
- : list.toArray(new ShellFolder[list.size()]);
- }
- });
+ }, InterruptedException.class);
+ } catch (InterruptedException e) {
+ return new File[0];
+ }
}
@@ -730,13 +742,13 @@
*
* @return The child shellfolder, or null if not found.
*/
- Win32ShellFolder2 getChildByPath(final String filePath) {
- return ShellFolder.getInvoker().invoke(new Callable<Win32ShellFolder2>() {
- public Win32ShellFolder2 call() throws Exception {
+ Win32ShellFolder2 getChildByPath(final String filePath) throws InterruptedException {
+ return invoke(new Callable<Win32ShellFolder2>() {
+ public Win32ShellFolder2 call() throws InterruptedException {
long pIShellFolder = getIShellFolder();
- long pEnumObjects = getEnumObjects(pIShellFolder, true);
+ long pEnumObjects = getEnumObjects(true);
Win32ShellFolder2 child = null;
- long childPIDL = 0;
+ long childPIDL;
while ((childPIDL = getNextChild(pEnumObjects)) != 0) {
if (getAttributes0(pIShellFolder, childPIDL, ATTRIB_FILESYSTEM) != 0) {
@@ -753,7 +765,7 @@
releaseEnumObjects(pEnumObjects);
return child;
}
- });
+ }, InterruptedException.class);
}
private Boolean cachedIsLink;
@@ -791,8 +803,8 @@
}
private ShellFolder getLinkLocation(final boolean resolve) {
- return ShellFolder.getInvoker().invoke(new Callable<ShellFolder>() {
- public ShellFolder call() throws Exception {
+ return invoke(new Callable<ShellFolder>() {
+ public ShellFolder call() {
if (!isLink()) {
return null;
}
@@ -805,6 +817,8 @@
location =
Win32ShellFolderManager2.createShellFolderFromRelativePIDL(getDesktop(),
linkLocationPIDL);
+ } catch (InterruptedException e) {
+ // Return null
} catch (InternalError e) {
// Could be a link to a non-bindable object, such as a network connection
// TODO: getIShellFolder() should throw FileNotFoundException instead
@@ -816,19 +830,12 @@
}
// Parse a display name into a PIDL relative to the current IShellFolder.
- long parseDisplayName(final String name) throws FileNotFoundException {
- try {
- return ShellFolder.getInvoker().invoke(new Callable<Long>() {
- public Long call() throws Exception {
- return parseDisplayName0(getIShellFolder(), name);
- }
- });
- } catch (RuntimeException e) {
- if (e.getCause() instanceof IOException) {
- throw new FileNotFoundException("Could not find file " + name);
+ long parseDisplayName(final String name) throws IOException, InterruptedException {
+ return invoke(new Callable<Long>() {
+ public Long call() throws IOException {
+ return parseDisplayName0(getIShellFolder(), name);
}
- throw e;
- }
+ }, IOException.class);
}
// NOTE: this method uses COM and must be called on the 'COM thread'. See ComInvoker for the details
@@ -846,8 +853,8 @@
public String getDisplayName() {
if (displayName == null) {
displayName =
- ShellFolder.getInvoker().invoke(new Callable<String>() {
- public String call() throws Exception {
+ invoke(new Callable<String>() {
+ public String call() {
return getDisplayNameOf(getParentIShellFolder(),
getRelativePIDL(), SHGDN_NORMAL);
}
@@ -867,8 +874,8 @@
if (folderType == null) {
final long absolutePIDL = getAbsolutePIDL();
folderType =
- ShellFolder.getInvoker().invoke(new Callable<String>() {
- public String call() throws Exception {
+ invoke(new Callable<String>() {
+ public String call() {
return getFolderType(absolutePIDL);
}
});
@@ -926,15 +933,12 @@
public static native int[] getFileChooserBitmapBits();
+ // Should be called from the COM thread
private long getIShellIcon() {
if (pIShellIcon == -1L) {
- pIShellIcon =
- ShellFolder.getInvoker().invoke(new Callable<Long>() {
- public Long call() throws Exception {
- return getIShellIcon(getIShellFolder());
- }
- });
+ pIShellIcon = getIShellIcon(getIShellFolder());
}
+
return pIShellIcon;
}
@@ -988,8 +992,8 @@
Image icon = getLargeIcon ? largeIcon : smallIcon;
if (icon == null) {
icon =
- ShellFolder.getInvoker().invoke(new Callable<Image>() {
- public Image call() throws Exception {
+ invoke(new Callable<Image>() {
+ public Image call() {
Image newIcon = null;
if (isFileSystem()) {
long parentIShellIcon = (parent != null)
@@ -1113,8 +1117,8 @@
private static final int LVCFMT_CENTER = 2;
public ShellFolderColumnInfo[] getFolderColumns() {
- return ShellFolder.getInvoker().invoke(new Callable<ShellFolderColumnInfo[]>() {
- public ShellFolderColumnInfo[] call() throws Exception {
+ return invoke(new Callable<ShellFolderColumnInfo[]>() {
+ public ShellFolderColumnInfo[] call() {
ShellFolderColumnInfo[] columns = doGetColumnInfo(getIShellFolder());
if (columns != null) {
@@ -1143,8 +1147,8 @@
}
public Object getFolderColumnValue(final int column) {
- return ShellFolder.getInvoker().invoke(new Callable<Object>() {
- public Object call() throws Exception {
+ return invoke(new Callable<Object>() {
+ public Object call() {
return doGetColumnValue(getParentIShellFolder(), getRelativePIDL(), column);
}
});
@@ -1163,8 +1167,8 @@
public void sortChildren(final List<? extends File> files) {
// To avoid loads of synchronizations with Invoker and improve performance we
// synchronize the whole code of the sort method once
- getInvoker().invoke(new Callable<Void>() {
- public Void call() throws Exception {
+ invoke(new Callable<Void>() {
+ public Void call() {
Collections.sort(files, new ColumnComparator(getIShellFolder(), 0));
return null;
@@ -1184,19 +1188,21 @@
// compares 2 objects within this folder by the specified column
public int compare(final File o, final File o1) {
- return ShellFolder.getInvoker().invoke(new Callable<Integer>() {
- public Integer call() throws Exception {
+ Integer result = invoke(new Callable<Integer>() {
+ public Integer call() {
if (o instanceof Win32ShellFolder2
- && o1 instanceof Win32ShellFolder2) {
+ && o1 instanceof Win32ShellFolder2) {
// delegates comparison to native method
return compareIDsByColumn(parentIShellFolder,
- ((Win32ShellFolder2) o).getRelativePIDL(),
- ((Win32ShellFolder2) o1).getRelativePIDL(),
- columnIdx);
+ ((Win32ShellFolder2) o).getRelativePIDL(),
+ ((Win32ShellFolder2) o1).getRelativePIDL(),
+ columnIdx);
}
return 0;
}
});
+
+ return result == null ? 0 : result;
}
}
}
--- a/jdk/src/windows/classes/sun/awt/shell/Win32ShellFolderManager2.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/windows/classes/sun/awt/shell/Win32ShellFolderManager2.java Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2003-2008 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2003-2009 Sun Microsystems, Inc. All Rights Reserved.
* 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,15 @@
}
public ShellFolder createShellFolder(File file) throws FileNotFoundException {
- return createShellFolder(getDesktop(), file);
+ try {
+ return createShellFolder(getDesktop(), file);
+ } catch (InterruptedException e) {
+ throw new FileNotFoundException("Execution was interrupted");
+ }
}
- static Win32ShellFolder2 createShellFolder(Win32ShellFolder2 parent, File file) throws FileNotFoundException {
+ static Win32ShellFolder2 createShellFolder(Win32ShellFolder2 parent, File file)
+ throws FileNotFoundException, InterruptedException {
long pIDL;
try {
pIDL = parent.parseDisplayName(file.getCanonicalPath());
@@ -77,7 +82,8 @@
return folder;
}
- static Win32ShellFolder2 createShellFolderFromRelativePIDL(Win32ShellFolder2 parent, long pIDL) {
+ static Win32ShellFolder2 createShellFolderFromRelativePIDL(Win32ShellFolder2 parent, long pIDL)
+ throws InterruptedException {
// Walk down this relative pIDL, creating new nodes for each of the entries
while (pIDL != 0) {
long curPIDL = Win32ShellFolder2.copyFirstPIDLEntry(pIDL);
@@ -108,7 +114,9 @@
try {
desktop = new Win32ShellFolder2(DESKTOP);
} catch (IOException e) {
- desktop = null;
+ // Ignore error
+ } catch (InterruptedException e) {
+ // Ignore error
}
}
return desktop;
@@ -119,7 +127,9 @@
try {
drives = new Win32ShellFolder2(DRIVES);
} catch (IOException e) {
- drives = null;
+ // Ignore error
+ } catch (InterruptedException e) {
+ // Ignore error
}
}
return drives;
@@ -132,8 +142,10 @@
if (path != null) {
recent = createShellFolder(getDesktop(), new File(path));
}
+ } catch (InterruptedException e) {
+ // Ignore error
} catch (IOException e) {
- recent = null;
+ // Ignore error
}
}
return recent;
@@ -144,7 +156,9 @@
try {
network = new Win32ShellFolder2(NETWORK);
} catch (IOException e) {
- network = null;
+ // Ignore error
+ } catch (InterruptedException e) {
+ // Ignore error
}
}
return network;
@@ -164,8 +178,10 @@
personal.setIsPersonal();
}
}
+ } catch (InterruptedException e) {
+ // Ignore error
} catch (IOException e) {
- personal = null;
+ // Ignore error
}
}
return personal;
@@ -267,6 +283,9 @@
}
} catch (IOException e) {
// Skip this value
+ } catch (InterruptedException e) {
+ // Return empty result
+ return new File[0];
}
} while (value != null);
@@ -476,33 +495,39 @@
return comThread;
}
- public <T> T invoke(Callable<T> task) {
- try {
- if (Thread.currentThread() == comThread) {
- // if it's already called from the COM
- // thread, we don't need to delegate the task
- return task.call();
- } else {
- while (true) {
- Future<T> future = submit(task);
+ public <T> T invoke(Callable<T> task) throws Exception {
+ if (Thread.currentThread() == comThread) {
+ // if it's already called from the COM
+ // thread, we don't need to delegate the task
+ return task.call();
+ } else {
+ Future<T> future;
+
+ try {
+ future = submit(task);
+ } catch (RejectedExecutionException e) {
+ throw new InterruptedException(e.getMessage());
+ }
- try {
- return future.get();
- } catch (InterruptedException e) {
- // Repeat the attempt
- future.cancel(true);
- }
+ try {
+ return future.get();
+ } catch (InterruptedException e) {
+ future.cancel(true);
+
+ throw e;
+ } catch (ExecutionException e) {
+ Throwable cause = e.getCause();
+
+ if (cause instanceof Exception) {
+ throw (Exception) cause;
}
+
+ if (cause instanceof Error) {
+ throw (Error) cause;
+ }
+
+ throw new RuntimeException("Unexpected error", cause);
}
- } catch (Exception e) {
- Throwable cause = (e instanceof ExecutionException) ? e.getCause() : e;
- if (cause instanceof RuntimeException) {
- throw (RuntimeException) cause;
- }
- if (cause instanceof Error) {
- throw (Error) cause;
- }
- throw new RuntimeException(cause);
}
}
}
--- a/jdk/src/windows/classes/sun/net/www/protocol/jar/JarFileFactory.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/windows/classes/sun/net/www/protocol/jar/JarFileFactory.java Mon Aug 10 09:47:21 2009 -0700
@@ -25,12 +25,14 @@
package sun.net.www.protocol.jar;
-import java.io.*;
-import java.net.*;
-import java.util.*;
-import java.util.jar.*;
-import java.util.zip.ZipFile;
+import java.io.IOException;
+import java.io.FileNotFoundException;
+import java.net.URL;
+import java.net.URLConnection;
+import java.util.HashMap;
+import java.util.jar.JarFile;
import java.security.Permission;
+import sun.net.util.URLUtil;
/* A factory for cached JAR file. This class is used to both retrieve
* and cache Jar files.
@@ -41,13 +43,13 @@
class JarFileFactory implements URLJarFile.URLJarFileCloseController {
/* the url to file cache */
- private static HashMap fileCache = new HashMap();
+ private static HashMap<String, JarFile> fileCache = new HashMap<String, JarFile>();
/* the file to url cache */
- private static HashMap urlCache = new HashMap();
+ private static HashMap<JarFile, URL> urlCache = new HashMap<JarFile, URL>();
URLConnection getConnection(JarFile jarFile) throws IOException {
- URL u = (URL)urlCache.get(jarFile);
+ URL u = urlCache.get(jarFile);
if (u != null)
return u.openConnection();
@@ -82,7 +84,7 @@
synchronized (this) {
result = getCachedJarFile(url);
if (result == null) {
- fileCache.put(url, local_result);
+ fileCache.put(URLUtil.urlNoFragString(url), local_result);
urlCache.put(local_result, url);
result = local_result;
} else {
@@ -107,14 +109,14 @@
* remove the JarFile from the cache
*/
public void close(JarFile jarFile) {
- URL urlRemoved = (URL) urlCache.remove(jarFile);
+ URL urlRemoved = urlCache.remove(jarFile);
if( urlRemoved != null) {
- fileCache.remove(urlRemoved);
+ fileCache.remove(URLUtil.urlNoFragString(urlRemoved));
}
}
private JarFile getCachedJarFile(URL url) {
- JarFile result = (JarFile)fileCache.get(url);
+ JarFile result = fileCache.get(URLUtil.urlNoFragString(url));
/* if the JAR file is cached, the permission will always be there */
if (result != null) {
--- a/jdk/src/windows/classes/sun/security/mscapi/JarVerifier.java Fri Aug 07 11:32:04 2009 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,73 +0,0 @@
-/*
- * Copyright 2007 Sun Microsystems, Inc. All Rights Reserved.
- * 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. Sun designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
- * CA 95054 USA or visit www.sun.com if you need additional information or
- * have any questions.
- */
-
-
-package sun.security.mscapi;
-
-// NOTE: this class is duplicated amongst SunJCE, SunPKCS11, and SunMSCAPI.
-// All files should be kept in sync.
-
-import java.io.*;
-import java.util.*;
-import java.util.jar.*;
-import java.net.URL;
-import java.net.JarURLConnection;
-import java.net.MalformedURLException;
-
-import java.security.*;
-import java.security.cert.*;
-import java.security.cert.Certificate;
-
-/**
- * This class verifies JAR files (and any supporting JAR files), and
- * determines whether they may be used in this implementation.
- *
- * The JCE in OpenJDK has an open cryptographic interface, meaning it
- * does not restrict which providers can be used. Compliance with
- * United States export controls and with local law governing the
- * import/export of products incorporating the JCE in the OpenJDK is
- * the responsibility of the licensee.
- *
- * @since 1.7
- */
-final class JarVerifier {
-
- private static final boolean debug = false;
-
- /**
- * Verify the JAR file is signed by an entity which has a certificate
- * issued by a trusted CA.
- *
- * Note: this is a temporary method and will change soon to use the
- * exception chaining mechanism, which can provide more details
- * as to why the verification failed.
- *
- * @param c the class to be verified.
- * @return true if verification is successful.
- */
- static boolean verify(final Class c) {
- return true;
- }
-}
--- a/jdk/src/windows/classes/sun/security/mscapi/RSACipher.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/windows/classes/sun/security/mscapi/RSACipher.java Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -93,7 +93,6 @@
private sun.security.mscapi.Key privateKey;
public RSACipher() {
- SunMSCAPI.verifySelfIntegrity(getClass());
paddingType = PAD_PKCS1;
}
--- a/jdk/src/windows/classes/sun/security/mscapi/SunMSCAPI.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/windows/classes/sun/security/mscapi/SunMSCAPI.java Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2005-2008 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2005-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -117,22 +117,4 @@
AccessController.doPrivileged(new PutAllAction(this, map));
}
}
-
- // set to true once self verification is complete
- private static volatile boolean integrityVerified;
-
- static void verifySelfIntegrity(Class c) {
- if (integrityVerified) {
- return;
- }
- doVerifySelfIntegrity(c);
- }
-
- private static synchronized void doVerifySelfIntegrity(Class c) {
- integrityVerified = JarVerifier.verify(c);
- if (integrityVerified == false) {
- throw new ProviderException
- ("The SunMSCAPI provider may have been tampered with.");
- }
- }
}
--- a/jdk/src/windows/native/sun/windows/awt_Component.cpp Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/src/windows/native/sun/windows/awt_Component.cpp Mon Aug 10 09:47:21 2009 -0700
@@ -3739,11 +3739,12 @@
MsgRouting AwtComponent::WmImeSetContext(BOOL fSet, LPARAM *lplParam)
{
- // This message causes native status window shown even it is disabled. So don't
- // let DefWindowProc process this message if this IMC is disabled.
+ // If the Windows input context is disabled, do not let Windows
+ // display any UIs.
HIMC hIMC = ImmGetContext();
if (hIMC == NULL) {
- return mrConsume;
+ *lplParam = 0;
+ return mrDoDefault;
}
if (fSet) {
--- a/jdk/test/java/awt/EventQueue/6638195/bug6638195.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/test/java/awt/EventQueue/6638195/bug6638195.java Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright 2008 Sun Microsystems, Inc. All Rights Reserved.
+ * Copyright 2008-2009 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -23,7 +23,7 @@
/* @test
*
- * @bug 6638195
+ * @bug 6638195 6844297
* @author Igor Kushnirskiy
* @summary tests if EventQueueDelegate.Delegate is invoked.
*/
@@ -47,11 +47,22 @@
}
private static void runTest(MyEventQueueDelegate delegate) throws Exception {
+ // We need an empty runnable here, so the next event is
+ // processed with a new EventQueueDelegate. See 6844297
+ // for details
EventQueue.invokeLater(
new Runnable() {
public void run() {
}
});
+ // The following event is expected to be processed by
+ // the EventQueueDelegate instance
+ EventQueue.invokeLater(
+ new Runnable() {
+ public void run() {
+ }
+ });
+ // Finally, proceed on the main thread
final CountDownLatch latch = new CountDownLatch(1);
EventQueue.invokeLater(
new Runnable() {
@@ -60,7 +71,7 @@
}
});
latch.await();
- if (! delegate.allInvoked()) {
+ if (!delegate.allInvoked()) {
throw new RuntimeException("failed");
}
}
@@ -125,6 +136,7 @@
return objectMap;
}
+
static class MyEventQueueDelegate implements EventQueueDelegate.Delegate {
private volatile boolean getNextEventInvoked = false;
private volatile boolean beforeDispatchInvoked = false;
--- a/jdk/test/java/awt/Frame/FrameSize/TestFrameSize.java Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/test/java/awt/Frame/FrameSize/TestFrameSize.java Mon Aug 10 09:47:21 2009 -0700
@@ -1,5 +1,6 @@
/*
* Copyright 2009 Red Hat, Inc. All Rights Reserved.
+ * Portions Copyright 2009 Sun Microsystems, Inc. All Rights Reserved.
* 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,35 +38,62 @@
* Test fails if size of window is wrong
*/
-import java.awt.Dimension;
-import java.awt.Frame;
+import java.awt.*;
public class TestFrameSize {
- static Dimension desiredDimensions = new Dimension(200, 200);
- static int ERROR_MARGIN = 15;
- static Frame mainWindow;
+ static Dimension desiredDimensions = new Dimension(200, 200);
+ static Frame mainWindow;
+
+ private static Dimension getClientSize(Frame window) {
+ Dimension size = window.getSize();
+ Insets insets = window.getInsets();
+
+ System.out.println("getClientSize() for " + window);
+ System.out.println(" size: " + size);
+ System.out.println(" insets: " + insets);
- public static void drawGui() {
- mainWindow = new Frame("");
- mainWindow.setPreferredSize(desiredDimensions);
- mainWindow.pack();
+ return new Dimension(
+ size.width - insets.left - insets.right,
+ size.height - insets.top - insets.bottom);
+ }
- Dimension actualDimensions = mainWindow.getSize();
- System.out.println("Desired dimensions: " + desiredDimensions.toString());
- System.out.println("Actual dimensions: " + actualDimensions.toString());
- if (Math.abs(actualDimensions.height - desiredDimensions.height) > ERROR_MARGIN) {
- throw new RuntimeException("Incorrect widow size");
- }
+ public static void drawGui() {
+ mainWindow = new Frame("");
+ mainWindow.setPreferredSize(desiredDimensions);
+ mainWindow.pack();
+
+ Dimension actualDimensions = mainWindow.getSize();
+ System.out.println("Desired dimensions: " + desiredDimensions.toString());
+ System.out.println("Actual dimensions: " + actualDimensions.toString());
+ if (!actualDimensions.equals(desiredDimensions)) {
+ throw new RuntimeException("Incorrect widow size");
}
- public static void main(String[] args) {
- try {
- drawGui();
- } finally {
- if (mainWindow != null) {
- mainWindow.dispose();
- }
- }
+ // pack() guarantees to preserve the size of the client area after
+ // showing the window.
+ Dimension clientSize1 = getClientSize(mainWindow);
+ System.out.println("Client size before showing: " + clientSize1);
+
+ mainWindow.setVisible(true);
+
+ ((sun.awt.SunToolkit)Toolkit.getDefaultToolkit()).realSync();
+
+ Dimension clientSize2 = getClientSize(mainWindow);
+ System.out.println("Client size after showing: " + clientSize2);
+
+ if (!clientSize2.equals(clientSize1)) {
+ throw new RuntimeException("Incorrect client area size.");
}
+ }
+
+ public static void main(String[] args) {
+ try {
+ drawGui();
+ } finally {
+ if (mainWindow != null) {
+ mainWindow.dispose();
+ }
+ }
+ }
}
--- a/jdk/test/java/net/Authenticator/B4933582.sh Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/test/java/net/Authenticator/B4933582.sh Mon Aug 10 09:47:21 2009 -0700
@@ -30,6 +30,10 @@
PS=":"
FS="/"
;;
+ CYGWIN* )
+ PS=";"
+ FS="/"
+ ;;
Windows* )
PS=";"
FS="\\"
@@ -39,7 +43,7 @@
exit 1;
;;
esac
-${TESTJAVA}${FS}bin${FS}javac -d . -classpath ${TESTSRC}${FS}..${FS}..${FS}..${FS}sun${FS}net${FS}www${FS}httptest ${TESTSRC}${FS}B4933582.java
+${TESTJAVA}${FS}bin${FS}javac -d . -classpath "${TESTSRC}${FS}..${FS}..${FS}..${FS}sun${FS}net${FS}www${FS}httptest" ${TESTSRC}${FS}B4933582.java
rm -f cache.ser auth.save
-${TESTJAVA}${FS}bin${FS}java -classpath ${TESTSRC}${FS}..${FS}..${FS}..${FS}sun${FS}net${FS}www${FS}httptest${PS}. B4933582 first
-${TESTJAVA}${FS}bin${FS}java -classpath ${TESTSRC}${FS}..${FS}..${FS}..${FS}sun${FS}net${FS}www${FS}httptest${PS}. B4933582 second
+${TESTJAVA}${FS}bin${FS}java -classpath "${TESTSRC}${FS}..${FS}..${FS}..${FS}sun${FS}net${FS}www${FS}httptest${PS}." B4933582 first
+${TESTJAVA}${FS}bin${FS}java -classpath "${TESTSRC}${FS}..${FS}..${FS}..${FS}sun${FS}net${FS}www${FS}httptest${PS}." B4933582 second
--- a/jdk/test/java/net/DatagramSocket/SetDatagramSocketImplFactory/ADatagramSocket.sh Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/test/java/net/DatagramSocket/SetDatagramSocketImplFactory/ADatagramSocket.sh Mon Aug 10 09:47:21 2009 -0700
@@ -35,6 +35,10 @@
PATHSEP=":"
FILESEP="/"
;;
+ CYGWIN* )
+ PATHSEP=";"
+ FILESEP="/"
+ ;;
Windows* )
PATHSEP=";"
FILESEP="\\"
--- a/jdk/test/java/net/Socket/OldSocketImpl.sh Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/test/java/net/Socket/OldSocketImpl.sh Mon Aug 10 09:47:21 2009 -0700
@@ -32,6 +32,10 @@
PS=":"
FS="/"
;;
+ CYGWIN* )
+ PS=";"
+ FS="/"
+ ;;
Windows* )
PS=";"
FS="\\"
--- a/jdk/test/java/net/URL/B5086147.sh Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/test/java/net/URL/B5086147.sh Mon Aug 10 09:47:21 2009 -0700
@@ -29,6 +29,10 @@
SunOS | Linux )
exit 0
;;
+ CYGWIN* )
+ PS=";"
+ FS="/"
+ ;;
Windows* )
PS=";"
FS="\\"
--- a/jdk/test/java/net/URL/runconstructor.sh Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/test/java/net/URL/runconstructor.sh Mon Aug 10 09:47:21 2009 -0700
@@ -31,6 +31,10 @@
PS=":"
FS="/"
;;
+ CYGWIN* )
+ PS=";"
+ FS="/"
+ ;;
Windows* )
PS=";"
FS="\\"
--- a/jdk/test/java/net/URLClassLoader/B5077773.sh Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/test/java/net/URLClassLoader/B5077773.sh Mon Aug 10 09:47:21 2009 -0700
@@ -42,6 +42,10 @@
PS=":"
FS="/"
;;
+ CYGWIN* )
+ PS=";"
+ FS="/"
+ ;;
Windows* )
PS=";"
FS="\\"
--- a/jdk/test/java/net/URLClassLoader/sealing/checksealed.sh Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/test/java/net/URLClassLoader/sealing/checksealed.sh Mon Aug 10 09:47:21 2009 -0700
@@ -35,6 +35,10 @@
PS=":"
FS="/"
;;
+ CYGWIN* )
+ PS=";"
+ FS="/"
+ ;;
Windows* )
PS=";"
FS="\\"
@@ -49,10 +53,10 @@
if [ x"$TESTJAVA" = x ]; then TESTJAVA=$1; fi
if [ x"$TESTSRC" = x ]; then TESTSRC=.; fi
-CLASSPATH=.${PS}${TESTSRC}${FS}a${PS}${TESTSRC}${FS}b.jar
+CLASSPATH=".${PS}${TESTSRC}${FS}a${PS}${TESTSRC}${FS}b.jar"
-${TESTJAVA}${FS}bin${FS}javac -classpath ${CLASSPATH} -d . ${TESTSRC}${FS}CheckSealed.java
-${TESTJAVA}${FS}bin${FS}java -cp ${CLASSPATH} CheckSealed 1
+${TESTJAVA}${FS}bin${FS}javac -classpath "${CLASSPATH}" -d . ${TESTSRC}${FS}CheckSealed.java
+${TESTJAVA}${FS}bin${FS}java -cp "${CLASSPATH}" CheckSealed 1
if [ $? != 0 ]; then exit 1; fi
-${TESTJAVA}${FS}bin${FS}java -cp ${CLASSPATH} CheckSealed 2
+${TESTJAVA}${FS}bin${FS}java -cp "${CLASSPATH}" CheckSealed 2
if [ $? != 0 ]; then exit 1; fi
--- a/jdk/test/java/net/URLConnection/6212146/test.sh Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/test/java/net/URLConnection/6212146/test.sh Mon Aug 10 09:47:21 2009 -0700
@@ -41,6 +41,10 @@
PS=":"
FS="/"
;;
+ CYGWIN* )
+ PS=";"
+ FS="/"
+ ;;
Windows* )
PS=";"
FS="\\"
--- a/jdk/test/java/security/Security/ClassLoaderDeadlock/ClassLoaderDeadlock.sh Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/test/java/security/Security/ClassLoaderDeadlock/ClassLoaderDeadlock.sh Mon Aug 10 09:47:21 2009 -0700
@@ -54,6 +54,10 @@
PATHSEP=":"
FILESEP="/"
;;
+ CYGWIN* )
+ PATHSEP=";"
+ FILESEP="/"
+ ;;
Windows* )
PATHSEP=";"
FILESEP="\\"
@@ -81,7 +85,7 @@
# run the test
${TESTJAVA}${FILESEP}bin${FILESEP}java \
- -classpath ${TESTCLASSES}${PATHSEP}${TESTSRC}${FILESEP}Deadlock.jar \
+ -classpath "${TESTCLASSES}${PATHSEP}${TESTSRC}${FILESEP}Deadlock.jar" \
ClassLoaderDeadlock
exit $?
--- a/jdk/test/java/security/Security/ClassLoaderDeadlock/Deadlock.sh Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/test/java/security/Security/ClassLoaderDeadlock/Deadlock.sh Mon Aug 10 09:47:21 2009 -0700
@@ -42,6 +42,10 @@
PATHSEP=":"
FILESEP="/"
;;
+ CYGWIN* )
+ PATHSEP=";"
+ FILESEP="/"
+ ;;
Windows* )
PATHSEP=";"
FILESEP="\\"
@@ -54,5 +58,5 @@
JAVA="${TESTJAVA}${FILESEP}bin${FILESEP}java"
-${JAVA} -cp ${TESTCLASSES}${PATHSEP}${TESTSRC}${FILESEP}Deadlock.jar Deadlock
+${JAVA} -cp "${TESTCLASSES}${PATHSEP}${TESTSRC}${FILESEP}Deadlock.jar" Deadlock
--- a/jdk/test/java/security/Security/signedfirst/Dyn.sh Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/test/java/security/Security/signedfirst/Dyn.sh Mon Aug 10 09:47:21 2009 -0700
@@ -54,6 +54,10 @@
PATHSEP=":"
FILESEP="/"
;;
+ CYGWIN* )
+ PATHSEP=";"
+ FILESEP="/"
+ ;;
Windows* )
PATHSEP=";"
FILESEP="\\"
@@ -76,7 +80,7 @@
# run the test
${TESTJAVA}${FILESEP}bin${FILESEP}java \
- -classpath ${TESTCLASSES}${PATHSEP}${TESTSRC}${FILESEP}exp.jar \
+ -classpath "${TESTCLASSES}${PATHSEP}${TESTSRC}${FILESEP}exp.jar" \
DynSignedProvFirst
exit $?
--- a/jdk/test/java/security/Security/signedfirst/Static.sh Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/test/java/security/Security/signedfirst/Static.sh Mon Aug 10 09:47:21 2009 -0700
@@ -54,6 +54,10 @@
PATHSEP=":"
FILESEP="/"
;;
+ CYGWIN* )
+ PATHSEP=";"
+ FILESEP="/"
+ ;;
Windows* )
PATHSEP=";"
FILESEP="\\"
@@ -70,14 +74,14 @@
# compile the test program
${TESTJAVA}${FILESEP}bin${FILESEP}javac \
- -classpath ${TESTCLASSES}${PATHSEP}${TESTSRC}${FILESEP}exp.jar \
+ -classpath "${TESTCLASSES}${PATHSEP}${TESTSRC}${FILESEP}exp.jar" \
-d ${TESTCLASSES}${FILESEP} \
${TESTSRC}${FILESEP}StaticSignedProvFirst.java
# run the test
cd ${TESTSRC}${FILESEP}
${TESTJAVA}${FILESEP}bin${FILESEP}java \
- -classpath ${TESTCLASSES}${PATHSEP}${TESTSRC}${FILESEP}exp.jar \
+ -classpath "${TESTCLASSES}${PATHSEP}${TESTSRC}${FILESEP}exp.jar" \
-Djava.security.properties=file:${TESTSRC}${FILESEP}Static.props \
StaticSignedProvFirst
--- a/jdk/test/javax/crypto/SecretKeyFactory/FailOverTest.sh Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/test/javax/crypto/SecretKeyFactory/FailOverTest.sh Mon Aug 10 09:47:21 2009 -0700
@@ -56,6 +56,11 @@
PS=":"
FS="/"
;;
+ CYGWIN* )
+ NULL=/dev/null
+ PS=";"
+ FS="/"
+ ;;
Windows* )
NULL=NUL
PS=";"
@@ -69,7 +74,7 @@
${TESTJAVA}${FS}bin${FS}javac \
-d . \
- -classpath ${TESTSRC}${FS}P1.jar${PS}${TESTSRC}${FS}P2.jar \
+ -classpath "${TESTSRC}${FS}P1.jar${PS}${TESTSRC}${FS}P2.jar" \
${TESTSRC}${FS}FailOverTest.java
if [ $? -ne 0 ]; then
@@ -77,7 +82,7 @@
fi
${TESTJAVA}${FS}bin${FS}java \
- -classpath ${TESTSRC}${FS}P1.jar${PS}${TESTSRC}${FS}P2.jar${PS}. \
+ -classpath "${TESTSRC}${FS}P1.jar${PS}${TESTSRC}${FS}P2.jar${PS}." \
FailOverTest
result=$?
--- a/jdk/test/javax/security/auth/Subject/doAs/Test.sh Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/test/javax/security/auth/Subject/doAs/Test.sh Mon Aug 10 09:47:21 2009 -0700
@@ -43,6 +43,11 @@
FS="/"
RM="/bin/rm -f"
;;
+ CYGWIN* )
+ PS=";"
+ FS="/"
+ RM="rm"
+ ;;
Windows* )
PS=";"
FS="\\"
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/javax/swing/JInternalFrame/Test6505027.java Mon Aug 10 09:47:21 2009 -0700
@@ -0,0 +1,136 @@
+/*
+ * Copyright 2009 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * @test
+ * @bug 6505027
+ * @summary Tests focus problem inside internal frame
+ * @author Sergey Malenkov
+ */
+
+import java.awt.AWTException;
+import java.awt.BorderLayout;
+import java.awt.Component;
+import java.awt.Container;
+import java.awt.KeyboardFocusManager;
+import java.awt.Point;
+import java.awt.Robot;
+import java.awt.event.InputEvent;
+import javax.swing.DefaultCellEditor;
+import javax.swing.JComboBox;
+import javax.swing.JDesktopPane;
+import javax.swing.JFrame;
+import javax.swing.JInternalFrame;
+import javax.swing.JScrollPane;
+import javax.swing.JTable;
+import javax.swing.JTextField;
+import javax.swing.SwingUtilities;
+import javax.swing.WindowConstants;
+import javax.swing.table.DefaultTableModel;
+import javax.swing.table.TableColumn;
+
+public class Test6505027 implements Runnable {
+
+ private static final boolean INTERNAL = true;
+ private static final boolean TERMINATE = true;
+
+ private static final int WIDTH = 450;
+ private static final int HEIGHT = 200;
+ private static final int OFFSET = 10;
+ private static final long PAUSE = 2048L;
+
+ private static final String[] COLUMNS = { "Size", "Shape" }; // NON-NLS
+ private static final String[] ITEMS = { "a", "b", "c", "d" }; // NON-NLS
+ private static final String KEY = "terminateEditOnFocusLost"; // NON-NLS
+
+ public static void main(String[] args) {
+ SwingUtilities.invokeLater(new Test6505027());
+
+ Component component = null;
+ while (component == null) {
+ try {
+ Thread.sleep(PAUSE);
+ }
+ catch (InterruptedException exception) {
+ // ignore interrupted exception
+ }
+ component = KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusOwner();
+ }
+ if (!component.getClass().equals(JComboBox.class)) {
+ throw new Error("unexpected focus owner: " + component);
+ }
+ SwingUtilities.getWindowAncestor(component).dispose();
+ }
+
+ private JTable table;
+ private Point point;
+
+ public void run() {
+ if (this.table == null) {
+ JFrame main = new JFrame();
+ main.setSize(WIDTH + OFFSET * 3, HEIGHT + OFFSET * 5);
+ main.setLocationRelativeTo(null);
+ main.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
+ main.setVisible(true);
+
+ Container container = main;
+ if (INTERNAL) {
+ JInternalFrame frame = new JInternalFrame();
+ frame.setBounds(OFFSET, OFFSET, WIDTH, HEIGHT);
+ frame.setVisible(true);
+
+ JDesktopPane desktop = new JDesktopPane();
+ desktop.add(frame, new Integer(1));
+
+ container.add(desktop);
+ container = frame;
+ }
+ this.table = new JTable(new DefaultTableModel(COLUMNS, 2));
+ if (TERMINATE) {
+ this.table.putClientProperty(KEY, Boolean.TRUE);
+ }
+ TableColumn column = this.table.getColumn(COLUMNS[1]);
+ column.setCellEditor(new DefaultCellEditor(new JComboBox(ITEMS)));
+
+ container.add(BorderLayout.NORTH, new JTextField());
+ container.add(BorderLayout.CENTER, new JScrollPane(this.table));
+
+ SwingUtilities.invokeLater(this);
+ }
+ else if (this.point == null) {
+ this.point = this.table.getCellRect(1, 1, false).getLocation();
+ SwingUtilities.convertPointToScreen(this.point, this.table);
+ SwingUtilities.invokeLater(this);
+ }
+ else {
+ try {
+ Robot robot = new Robot();
+ robot.mouseMove(this.point.x + 1, this.point.y + 1);
+ robot.mousePress(InputEvent.BUTTON1_MASK);
+ }
+ catch (AWTException exception) {
+ throw new Error("unexpected exception", exception);
+ }
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/javax/swing/JInternalFrame/Test6802868.java Mon Aug 10 09:47:21 2009 -0700
@@ -0,0 +1,108 @@
+/*
+ * Copyright 2009 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * @test
+ * @bug 6802868
+ * @summary JInternalFrame is not maximized when maximized parent frame
+ * @author Alexander Potochkin
+ */
+
+import sun.awt.SunToolkit;
+
+import java.awt.Dimension;
+import java.awt.Point;
+import java.awt.Robot;
+import java.awt.Toolkit;
+import java.beans.PropertyVetoException;
+import javax.swing.JDesktopPane;
+import javax.swing.JFrame;
+import javax.swing.JInternalFrame;
+import javax.swing.SwingUtilities;
+
+public class Test6802868 {
+ static JInternalFrame jif;
+ static JFrame frame;
+ static Dimension size;
+ static Point location;
+
+ public static void main(String[] args) throws Exception {
+ Robot robot = new Robot();
+ robot.setAutoDelay(20);
+ SunToolkit toolkit = (SunToolkit) Toolkit.getDefaultToolkit();
+
+ SwingUtilities.invokeAndWait(new Runnable() {
+ public void run() {
+ frame = new JFrame();
+ frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+
+ JDesktopPane jdp = new JDesktopPane();
+ frame.getContentPane().add(jdp);
+
+ jif = new JInternalFrame("Title", true, true, true, true);
+ jdp.add(jif);
+ jif.setVisible(true);
+
+ frame.setSize(200, 200);
+ frame.setLocationRelativeTo(null);
+ frame.setVisible(true);
+
+ try {
+ jif.setMaximum(true);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ });
+ toolkit.realSync();
+ SwingUtilities.invokeAndWait(new Runnable() {
+ public void run() {
+ size = jif.getSize();
+ frame.setSize(300, 300);
+ }
+ });
+ toolkit.realSync();
+ SwingUtilities.invokeAndWait(new Runnable() {
+ public void run() {
+ if (jif.getSize().equals(size)) {
+ throw new RuntimeException("InternalFrame hasn't changed its size");
+ }
+ try {
+ jif.setIcon(true);
+ } catch (PropertyVetoException e) {
+ e.printStackTrace();
+ }
+ location = jif.getDesktopIcon().getLocation();
+ frame.setSize(400, 400);
+ }
+ });
+ toolkit.realSync();
+ SwingUtilities.invokeAndWait(new Runnable() {
+ public void run() {
+ if (jif.getDesktopIcon().getLocation().equals(location)) {
+ throw new RuntimeException("JDesktopIcon hasn't moved");
+ }
+ }
+ });
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/javax/swing/JScrollPane/Test6526631.java Mon Aug 10 09:47:21 2009 -0700
@@ -0,0 +1,102 @@
+/*
+ * Copyright 2009 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * @test
+ * @bug 6526631
+ * @summary Resizes right-oriented scroll pane
+ * @author Sergey Malenkov
+ * @library ..
+ * @build SwingTest
+ * @run main Test6526631
+ */
+
+import java.awt.Dimension;
+import javax.swing.JFrame;
+import javax.swing.JScrollBar;
+import javax.swing.JScrollPane;
+import javax.swing.JTextArea;
+import javax.swing.JViewport;
+
+import static java.awt.ComponentOrientation.RIGHT_TO_LEFT;
+
+public class Test6526631 {
+
+ private static final int COLS = 90;
+ private static final int ROWS = 50;
+ private static final int OFFSET = 10;
+
+ public static void main(String[] args) {
+ SwingTest.start(Test6526631.class);
+ }
+
+ private final JScrollPane pane;
+ private final JFrame frame;
+
+ public Test6526631(JFrame frame) {
+ this.pane = new JScrollPane(new JTextArea(ROWS, COLS));
+ this.pane.setComponentOrientation(RIGHT_TO_LEFT);
+ this.frame = frame;
+ this.frame.add(this.pane);
+ }
+
+ private void update(int offset) {
+ Dimension size = this.frame.getSize();
+ size.width += offset;
+ this.frame.setSize(size);
+ }
+
+ public void validateFirst() {
+ validateThird();
+ update(OFFSET);
+ }
+
+ public void validateSecond() {
+ validateThird();
+ update(-OFFSET);
+ }
+
+ public void validateThird() {
+ JViewport viewport = this.pane.getViewport();
+ JScrollBar scroller = this.pane.getHorizontalScrollBar();
+ if (!scroller.getComponentOrientation().equals(RIGHT_TO_LEFT)) {
+ throw new IllegalStateException("unexpected component orientation");
+ }
+ int value = scroller.getValue();
+ if (value != 0) {
+ throw new IllegalStateException("unexpected scroll value");
+ }
+ int extent = viewport.getExtentSize().width;
+ if (extent != scroller.getVisibleAmount()) {
+ throw new IllegalStateException("unexpected visible amount");
+ }
+ int size = viewport.getViewSize().width;
+ if (size != scroller.getMaximum()) {
+ throw new IllegalStateException("unexpected maximum");
+ }
+ int pos = size - extent - value;
+ if (pos != viewport.getViewPosition().x) {
+ throw new IllegalStateException("unexpected position");
+ }
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/javax/swing/SwingTest.java Mon Aug 10 09:47:21 2009 -0700
@@ -0,0 +1,160 @@
+/*
+ * Copyright 2009 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+import java.io.PrintWriter;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
+import java.util.Comparator;
+import java.util.Iterator;
+import java.util.Set;
+import java.util.TreeSet;
+import javax.swing.JFrame;
+
+import static javax.swing.SwingUtilities.invokeLater;
+
+/**
+ * SwingTestHelper is a utility class for writing regression tests
+ * that require interacting with the UI.
+ *
+ * @author Sergey A. Malenkov
+ */
+final class SwingTest implements Runnable {
+
+ private static final int WIDTH = 640;
+ private static final int HEIGHT = 480;
+
+ public static void start(Class<?> type) {
+ new SwingTest(type).start();
+ }
+
+ private final PrintWriter writer = new PrintWriter(System.out, true);
+
+ private Class<?> type;
+ private JFrame frame;
+ private Iterator<Method> methods;
+ private Object object;
+ private Method method;
+ private Throwable error;
+
+ private SwingTest(Class<?> type) {
+ this.type = type;
+ }
+
+ public void run() {
+ synchronized (this.writer) {
+ if (this.error != null) {
+ this.frame.dispose();
+ this.frame = null;
+ }
+ else if (this.object == null) {
+ invoke();
+ Set<Method> methods = new TreeSet<Method>(new Comparator<Method>() {
+ public int compare(Method first, Method second) {
+ return first.getName().compareTo(second.getName());
+ }
+ });
+ for (Method method : this.type.getMethods()) {
+ if (method.getDeclaringClass().equals(this.type)) {
+ if (method.getReturnType().equals(void.class)) {
+ if (0 == method.getParameterTypes().length) {
+ methods.add(method);
+ }
+ }
+ }
+ }
+ this.methods = methods.iterator();
+ }
+ else if (this.method != null) {
+ invoke();
+ }
+ else if (this.methods.hasNext()) {
+ this.method = this.methods.next();
+ }
+ else {
+ this.frame.dispose();
+ this.frame = null;
+ this.type = null;
+ }
+ this.writer.notifyAll();
+ }
+ }
+
+ private void start() {
+ synchronized (this.writer) {
+ while (this.type != null) {
+ if ((this.method != null) && Modifier.isStatic(this.method.getModifiers())) {
+ invoke();
+ }
+ else {
+ invokeLater(this);
+ try {
+ this.writer.wait();
+ }
+ catch (InterruptedException exception) {
+ exception.printStackTrace(this.writer);
+ }
+ }
+ if ((this.frame == null) && (this.error != null)) {
+ throw new Error("unexpected error", this.error);
+ }
+ }
+ }
+ }
+
+ private void invoke() {
+ try {
+ if (this.method != null) {
+ this.writer.println(this.method);
+ this.method.invoke(this.object);
+ this.method = null;
+ }
+ else {
+ this.writer.println(this.type);
+ this.frame = new JFrame(this.type.getSimpleName());
+ this.frame.setSize(WIDTH, HEIGHT);
+ this.frame.setLocationRelativeTo(null);
+ this.object = this.type.getConstructor(JFrame.class).newInstance(this.frame);
+ this.frame.setVisible(true);
+ }
+ }
+ catch (NoSuchMethodException exception) {
+ this.error = exception;
+ }
+ catch (SecurityException exception) {
+ this.error = exception;
+ }
+ catch (IllegalAccessException exception) {
+ this.error = exception;
+ }
+ catch (IllegalArgumentException exception) {
+ this.error = exception;
+ }
+ catch (InstantiationException exception) {
+ this.error = exception;
+ }
+ catch (InvocationTargetException exception) {
+ this.error = exception.getTargetException();
+ }
+ }
+}
--- a/jdk/test/lib/security/java.policy/Ext_AllPolicy.sh Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/test/lib/security/java.policy/Ext_AllPolicy.sh Mon Aug 10 09:47:21 2009 -0700
@@ -56,6 +56,12 @@
FS="/"
TMP=/tmp
;;
+ CYGWIN* )
+ NULL=/dev/null
+ PS=";"
+ FS="/"
+ TMP=/tmp
+ ;;
Windows_95 | Windows_98 | Windows_NT )
NULL=NUL
PS=";"
--- a/jdk/test/sun/net/www/MarkResetTest.sh Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/test/sun/net/www/MarkResetTest.sh Mon Aug 10 09:47:21 2009 -0700
@@ -32,6 +32,10 @@
PS=":"
FS="/"
;;
+ CYGWIN* )
+ PS=";"
+ FS="/"
+ ;;
Windows* )
PS=";"
FS="\\"
--- a/jdk/test/sun/net/www/http/ChunkedInputStream/ChunkedCharEncoding.sh Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/test/sun/net/www/http/ChunkedInputStream/ChunkedCharEncoding.sh Mon Aug 10 09:47:21 2009 -0700
@@ -32,6 +32,10 @@
PS=":"
FS="/"
;;
+ CYGWIN* )
+ PS=";"
+ FS="/"
+ ;;
Windows* )
PS=";"
FS="\\"
--- a/jdk/test/sun/net/www/http/HttpClient/RetryPost.sh Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/test/sun/net/www/http/HttpClient/RetryPost.sh Mon Aug 10 09:47:21 2009 -0700
@@ -32,6 +32,10 @@
PS=":"
FS="/"
;;
+ CYGWIN* )
+ PS=";"
+ FS="/"
+ ;;
Windows* )
PS=";"
FS="\\"
--- a/jdk/test/sun/net/www/protocol/jar/B5105410.sh Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/test/sun/net/www/protocol/jar/B5105410.sh Mon Aug 10 09:47:21 2009 -0700
@@ -39,6 +39,10 @@
PS=":"
FS="/"
;;
+ CYGWIN* )
+ PS=";"
+ FS="/"
+ ;;
Windows* )
PS=";"
FS="\\"
--- a/jdk/test/sun/net/www/protocol/jar/jarbug/run.sh Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/test/sun/net/www/protocol/jar/jarbug/run.sh Mon Aug 10 09:47:21 2009 -0700
@@ -28,23 +28,54 @@
# @summary various resource and classloading bugs related to jar files
#set -x
DEST=`pwd`
+
+OS=`uname -s`
+case "$OS" in
+ SunOS )
+ PS=":"
+ FS="/"
+ ;;
+ Linux )
+ PS=":"
+ FS="/"
+ ;;
+ Windows* )
+ PS=";"
+ FS="\\"
+ ;;
+ CYGWIN* )
+ PS=";"
+ FS="/"
+ #
+ # javac does not like /cygdrive produced by `pwd`.
+ #
+ DEST=`cygpath -d ${DEST}`
+ ;;
+ * )
+ echo "Unrecognized system!"
+ exit 1;
+ ;;
+esac
+
#
# build jar1
#
-mkdir ${DEST}/jar1
-cd ${TESTSRC}/etc/jar1
-cp -r . ${DEST}/jar1
-${TESTJAVA}/bin/javac -d ${DEST}/jar1 ${TESTSRC}/src/jar1/LoadResourceBundle.java
-${TESTJAVA}/bin/javac -d ${DEST}/jar1 ${TESTSRC}/src/jar1/GetResource.java
-cd ${DEST}/jar1
-${TESTJAVA}/bin/jar cfM jar1.jar jar1 res1.txt
+mkdir -p ${DEST}${FS}jar1
+cd ${TESTSRC}${FS}etc${FS}jar1
+cp -r . ${DEST}${FS}jar1
+${TESTJAVA}${FS}bin${FS}javac -d ${DEST}${FS}jar1 \
+ ${TESTSRC}${FS}src${FS}jar1${FS}LoadResourceBundle.java
+${TESTJAVA}${FS}bin${FS}javac -d ${DEST}${FS}jar1 \
+ ${TESTSRC}${FS}src${FS}jar1${FS}GetResource.java
+cd ${DEST}${FS}jar1
+${TESTJAVA}${FS}bin${FS}jar cfM jar1.jar jar1 res1.txt
mv jar1.jar ..
#
# build the test sources and run them
#
-${TESTJAVA}/bin/javac -d ${DEST} ${TESTSRC}/src/test/*.java
+${TESTJAVA}${FS}bin${FS}javac -d ${DEST} ${TESTSRC}${FS}src${FS}test${FS}*.java
cd ${DEST}
-${TESTJAVA}/bin/java RunAllTests
+${TESTJAVA}${FS}bin${FS}java RunAllTests
result=$?
if [ "$result" -ne "0" ]; then
exit 1
--- a/jdk/test/sun/security/pkcs11/Provider/ConfigQuotedString.sh Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/test/sun/security/pkcs11/Provider/ConfigQuotedString.sh Mon Aug 10 09:47:21 2009 -0700
@@ -68,6 +68,20 @@
CP="cp"
CHMOD="chmod"
;;
+ CYGWIN* )
+ FS="/"
+ PS=";"
+ CP="cp"
+ CHMOD="chmod"
+ #
+ # javac does not like /cygdrive produced by `pwd`
+ #
+ TESTSRC=`cygpath -d ${TESTSRC}`
+ ;;
+ * )
+ echo "Unrecognized system!"
+ exit 1;
+ ;;
esac
# compile test
--- a/jdk/test/sun/security/pkcs11/Provider/Login.sh Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/test/sun/security/pkcs11/Provider/Login.sh Mon Aug 10 09:47:21 2009 -0700
@@ -69,6 +69,20 @@
CP="cp"
CHMOD="chmod"
;;
+ CYGWIN* )
+ FS="/"
+ PS=";"
+ CP="cp"
+ CHMOD="chmod"
+ #
+ # javac does not like /cygdrive produced by `pwd`
+ #
+ TESTSRC=`cygpath -d ${TESTSRC}`
+ ;;
+ * )
+ echo "Unrecognized system!"
+ exit 1;
+ ;;
esac
# first make cert/key DBs writable
--- a/jdk/test/sun/security/provider/PolicyFile/getinstance/getinstance.sh Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/test/sun/security/provider/PolicyFile/getinstance/getinstance.sh Mon Aug 10 09:47:21 2009 -0700
@@ -55,6 +55,10 @@
PS=":"
FS="/"
;;
+ CYGWIN* )
+ PS=";"
+ FS="/"
+ ;;
Windows* )
PS=";"
FS="\\"
--- a/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/NotifyHandshakeTest.sh Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/test/sun/security/ssl/com/sun/net/ssl/internal/ssl/SSLSocketImpl/NotifyHandshakeTest.sh Mon Aug 10 09:47:21 2009 -0700
@@ -43,10 +43,17 @@
OS=`uname -s`
case "$OS" in
SunOS | Linux )
+ FILESEP="/"
PATHSEP=":"
;;
+ CYGWIN* )
+ FILESEP="/"
+ PATHSEP=";"
+ ;;
+
Windows* )
+ FILESEP="\\"
PATHSEP=";"
;;
esac
@@ -56,11 +63,13 @@
#
# Compile the tests, package into their respective jars
#
-${TESTJAVA}/bin/javac -d . \
- ${TESTSRC}/NotifyHandshakeTest.java \
- ${TESTSRC}/NotifyHandshakeTestHeyYou.java
-${TESTJAVA}/bin/jar -cvf com.jar com/NotifyHandshakeTest*.class
-${TESTJAVA}/bin/jar -cvf edu.jar edu/NotifyHandshakeTestHeyYou.class
+${TESTJAVA}${FILESEP}bin${FILESEP}javac -d . \
+ ${TESTSRC}${FILESEP}NotifyHandshakeTest.java \
+ ${TESTSRC}${FILESEP}NotifyHandshakeTestHeyYou.java
+${TESTJAVA}${FILESEP}bin${FILESEP}jar -cvf com.jar \
+ com${FILESEP}NotifyHandshakeTest*.class
+${TESTJAVA}${FILESEP}bin${FILESEP}jar -cvf edu.jar \
+ edu${FILESEP}NotifyHandshakeTestHeyYou.class
#
# Don't want the original class files to be used, because
@@ -73,11 +82,11 @@
# This is the only thing we really care about as far as
# test status goes.
#
-${TESTJAVA}/bin/java \
+${TESTJAVA}${FILESEP}bin${FILESEP}java \
-Dtest.src=${TESTSRC} \
-classpath "com.jar${PATHSEP}edu.jar" \
-Djava.security.manager \
- -Djava.security.policy=${TESTSRC}/NotifyHandshakeTest.policy \
+ -Djava.security.policy=${TESTSRC}${FILESEP}NotifyHandshakeTest.policy \
com.NotifyHandshakeTest
retval=$?
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/PostThruProxy.sh Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/PostThruProxy.sh Mon Aug 10 09:47:21 2009 -0700
@@ -36,6 +36,10 @@
PS=":"
FS="/"
;;
+ CYGWIN* )
+ PS=";"
+ FS="/"
+ ;;
Windows* )
PS=";"
FS="\\"
@@ -46,6 +50,7 @@
;;
esac
-${TESTJAVA}${FS}bin${FS}javac -d . ${TESTSRC}${FS}OriginServer.java ${TESTSRC}${FS}ProxyTunnelServer.java ${TESTSRC}${FS}PostThruProxy.java
+${TESTJAVA}${FS}bin${FS}javac -d . ${TESTSRC}${FS}OriginServer.java \
+ ${TESTSRC}${FS}ProxyTunnelServer.java ${TESTSRC}${FS}PostThruProxy.java
${TESTJAVA}${FS}bin${FS}java PostThruProxy ${HOSTNAME} ${TESTSRC}
exit
--- a/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/PostThruProxyWithAuth.sh Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/test/sun/security/ssl/sun/net/www/protocol/https/HttpsURLConnection/PostThruProxyWithAuth.sh Mon Aug 10 09:47:21 2009 -0700
@@ -36,6 +36,10 @@
PS=":"
FS="/"
;;
+ CYGWIN* )
+ PS=";"
+ FS="/"
+ ;;
Windows* )
PS=";"
FS="\\"
@@ -46,6 +50,8 @@
;;
esac
-${TESTJAVA}${FS}bin${FS}javac -d . ${TESTSRC}${FS}OriginServer.java ${TESTSRC}${FS}ProxyTunnelServer.java ${TESTSRC}${FS}PostThruProxyWithAuth.java
+${TESTJAVA}${FS}bin${FS}javac -d . ${TESTSRC}${FS}OriginServer.java \
+ ${TESTSRC}${FS}ProxyTunnelServer.java \
+ ${TESTSRC}${FS}PostThruProxyWithAuth.java
${TESTJAVA}${FS}bin${FS}java PostThruProxyWithAuth ${HOSTNAME} ${TESTSRC}
exit
--- a/jdk/test/sun/security/tools/jarsigner/AlgOptions.sh Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/test/sun/security/tools/jarsigner/AlgOptions.sh Mon Aug 10 09:47:21 2009 -0700
@@ -53,6 +53,13 @@
CP="${FS}bin${FS}cp -f"
TMP=/tmp
;;
+ CYGWIN* )
+ NULL=/dev/null
+ PS=";"
+ FS="/"
+ CP="cp -f"
+ TMP=/tmp
+ ;;
Windows_* )
NULL=NUL
PS=";"
--- a/jdk/test/sun/security/tools/jarsigner/PercentSign.sh Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/test/sun/security/tools/jarsigner/PercentSign.sh Mon Aug 10 09:47:21 2009 -0700
@@ -53,6 +53,13 @@
CP="${FS}bin${FS}cp -f"
TMP=/tmp
;;
+ CYGWIN* )
+ NULL=/dev/null
+ PS=";"
+ FS="/"
+ CP="cp -f"
+ TMP=/tmp
+ ;;
Windows_* )
NULL=NUL
PS=";"
--- a/jdk/test/sun/security/tools/jarsigner/oldsig.sh Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/test/sun/security/tools/jarsigner/oldsig.sh Mon Aug 10 09:47:21 2009 -0700
@@ -49,6 +49,13 @@
CP="${FS}bin${FS}cp -f"
TMP=/tmp
;;
+ CYGWIN* )
+ NULL=/dev/null
+ PS=";"
+ FS="/"
+ CP="cp -f"
+ TMP=/tmp
+ ;;
Windows_* )
NULL=NUL
PS=";"
--- a/jdk/test/sun/security/tools/keytool/AltProviderPath.sh Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/test/sun/security/tools/keytool/AltProviderPath.sh Mon Aug 10 09:47:21 2009 -0700
@@ -52,6 +52,12 @@
FS="/"
TMP=/tmp
;;
+ CYGWIN* )
+ NULL=/dev/null
+ PS=";"
+ FS="/"
+ TMP=/tmp
+ ;;
Windows_* )
NULL=NUL
PS=";"
@@ -66,14 +72,21 @@
# the test code
#genkey
-${TESTJAVA}${FS}bin${FS}keytool -genkey -v -alias dummyTestCA -keyalg "RSA" -keysize 1024 -sigalg "ShA1WithRSA" -dname "cn=Dummy Test CA, ou=JSN, o=JavaSoft, c=US" -validity 3650 -keypass storepass -keystore keystoreCA.dks -storepass storepass -storetype "dks" -provider "org.test.dummy.DummyProvider" -providerPath ${TESTCLASSES}
+${TESTJAVA}${FS}bin${FS}keytool -genkey -v -alias dummyTestCA \
+ -keyalg "RSA" -keysize 1024 -sigalg "ShA1WithRSA" \
+ -dname "cn=Dummy Test CA, ou=JSN, o=JavaSoft, c=US" -validity 3650 \
+ -keypass storepass -keystore keystoreCA.dks -storepass storepass \
+ -storetype "dks" -provider "org.test.dummy.DummyProvider" \
+ -providerPath ${TESTCLASSES}
if [ $? -ne 0 ]; then
exit 1
fi
#Change keystore password
-${TESTJAVA}${FS}bin${FS}keytool -storepasswd -new storepass2 -keystore keystoreCA.dks -storetype "dks" -storepass storepass -provider "org.test.dummy.DummyProvider" -providerPath ${TESTCLASSES}
+${TESTJAVA}${FS}bin${FS}keytool -storepasswd -new storepass2 \
+ -keystore keystoreCA.dks -storetype "dks" -storepass storepass \
+ -provider "org.test.dummy.DummyProvider" -providerPath ${TESTCLASSES}
if [ $? -ne 0 ]; then
exit 1
@@ -81,21 +94,29 @@
#Change keystore key password
-${TESTJAVA}${FS}bin${FS}keytool -keypasswd -alias "dummyTestCA" -keypass storepass -new keypass -keystore keystoreCA.dks -storetype "dks" -storepass storepass2 -provider "org.test.dummy.DummyProvider" -providerPath ${TESTCLASSES}
+${TESTJAVA}${FS}bin${FS}keytool -keypasswd -alias "dummyTestCA" \
+ -keypass storepass -new keypass -keystore keystoreCA.dks \
+ -storetype "dks" -storepass storepass2 \
+ -provider "org.test.dummy.DummyProvider" -providerPath ${TESTCLASSES}
if [ $? -ne 0 ]; then
exit 1
fi
#Export certificate
-${TESTJAVA}${FS}bin${FS}keytool -v -export -rfc -alias "dummyTestCA" -file "dummyTestCA.der" -keystore keystoreCA.dks -storetype "dks" -storepass storepass2 -provider "org.test.dummy.DummyProvider" -providerPath ${TESTCLASSES}
+${TESTJAVA}${FS}bin${FS}keytool -v -export -rfc -alias "dummyTestCA" \
+ -file "dummyTestCA.der" -keystore keystoreCA.dks -storetype "dks" \
+ -storepass storepass2 -provider "org.test.dummy.DummyProvider" \
+ -providerPath ${TESTCLASSES}
if [ $? -ne 0 ]; then
exit 1
fi
#list keystore
-${TESTJAVA}${FS}bin${FS}keytool -v -list -keystore keystoreCA.dks -storetype "dks" -storepass storepass2 -provider "org.test.dummy.DummyProvider" -providerPath ${TESTCLASSES}
+${TESTJAVA}${FS}bin${FS}keytool -v -list -keystore keystoreCA.dks \
+ -storetype "dks" -storepass storepass2 \
+ -provider "org.test.dummy.DummyProvider" -providerPath ${TESTCLASSES}
if [ $? -ne 0 ]; then
exit 1
--- a/jdk/test/sun/security/tools/keytool/CloneKeyAskPassword.sh Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/test/sun/security/tools/keytool/CloneKeyAskPassword.sh Mon Aug 10 09:47:21 2009 -0700
@@ -55,6 +55,10 @@
PATHSEP=":"
FILESEP="/"
;;
+ CYGWIN* )
+ PATHSEP=";"
+ FILESEP="/"
+ ;;
Windows* )
PATHSEP=";"
FILESEP="\\"
--- a/jdk/test/sun/security/tools/keytool/NoExtNPE.sh Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/test/sun/security/tools/keytool/NoExtNPE.sh Mon Aug 10 09:47:21 2009 -0700
@@ -48,6 +48,9 @@
Linux )
FILESEP="/"
;;
+ CYGWIN* )
+ FILESEP="/"
+ ;;
Windows* )
FILESEP="\\"
;;
--- a/jdk/test/sun/security/tools/keytool/SecretKeyKS.sh Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/test/sun/security/tools/keytool/SecretKeyKS.sh Mon Aug 10 09:47:21 2009 -0700
@@ -51,6 +51,12 @@
FS="/"
TMP=/tmp
;;
+ CYGWIN* )
+ NULL=/dev/null
+ PS=";"
+ FS="/"
+ TMP=/tmp
+ ;;
Windows_* )
NULL=NUL
PS=";"
--- a/jdk/test/sun/security/tools/keytool/StandardAlgName.sh Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/test/sun/security/tools/keytool/StandardAlgName.sh Mon Aug 10 09:47:21 2009 -0700
@@ -52,6 +52,12 @@
FS="/"
TMP=/tmp
;;
+ CYGWIN* )
+ NULL=/dev/null
+ PS=";"
+ FS="/"
+ TMP=/tmp
+ ;;
Windows_* )
NULL=NUL
PS=";"
--- a/jdk/test/sun/security/tools/keytool/i18n.sh Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/test/sun/security/tools/keytool/i18n.sh Mon Aug 10 09:47:21 2009 -0700
@@ -52,6 +52,12 @@
FS="/"
TMP=/tmp
;;
+ CYGWIN* )
+ NULL=/dev/null
+ PS=";"
+ FS="/"
+ TMP=/tmp
+ ;;
Windows* )
NULL=NUL
PS=";"
--- a/jdk/test/sun/security/tools/keytool/printssl.sh Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/test/sun/security/tools/keytool/printssl.sh Mon Aug 10 09:47:21 2009 -0700
@@ -40,6 +40,9 @@
SunOS | Linux )
FS="/"
;;
+ CYGWIN* )
+ FS="/"
+ ;;
Windows_* )
FS="\\"
;;
--- a/jdk/test/sun/security/tools/keytool/resource.sh Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/test/sun/security/tools/keytool/resource.sh Mon Aug 10 09:47:21 2009 -0700
@@ -48,6 +48,11 @@
FS="/"
TMP=/tmp
;;
+ CYGWIN* )
+ NULL=/dev/null
+ FS="/"
+ TMP=/tmp
+ ;;
Windows_* )
NULL=NUL
FS="\\"
--- a/jdk/test/sun/security/tools/keytool/standard.sh Fri Aug 07 11:32:04 2009 -0700
+++ b/jdk/test/sun/security/tools/keytool/standard.sh Mon Aug 10 09:47:21 2009 -0700
@@ -44,11 +44,15 @@
# set platform-dependent variables
OS=`uname -s`
case "$OS" in
+ SunOS | Linux | CYGWIN* )
+ FS="/"
+ ;;
Windows_* )
FS="\\"
;;
* )
- FS="/"
+ echo "Unrecognized system!"
+ exit 1;
;;
esac
--- a/langtools/.hgtags Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/.hgtags Mon Aug 10 09:47:21 2009 -0700
@@ -41,3 +41,4 @@
d8f23a81d46f47a4186f1044dd9e44841bbeab84 jdk7-b64
7e0056ded28c802609d2bd79bfcda551d72a3fec jdk7-b65
634f519d6f9a602b16bba1c7cd4a17242a8f6889 jdk7-b66
+14b1a8ede95493fc53c37ff2626f1f98ce94d108 jdk7-b67
--- a/langtools/make/build.properties Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/make/build.properties Mon Aug 10 09:47:21 2009 -0700
@@ -60,15 +60,15 @@
bootstrap.full.version = ${bootstrap.release}-${build.number}
# options for the <javac> tasks used to compile the tools
-javac.source = 5
-javac.target = 5
+javac.source = 7
+javac.target = 7
javac.debug = true
javac.debuglevel = source,lines
javac.no.jdk.warnings = -XDignore.symbol.file=true
# set the following to -version to verify the versions of javac being used
javac.version.opt =
# in time, there should be no exceptions to -Xlint:all
-javac.lint.opts = -Xlint:all -Werror
+javac.lint.opts = -Xlint:all,-deprecation -Werror
# options for the <javadoc> task for javac
javadoc.jls3.url=http://java.sun.com/docs/books/jls/
--- a/langtools/src/share/classes/com/sun/mirror/apt/AnnotationProcessor.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/apt/AnnotationProcessor.java Mon Aug 10 09:47:21 2009 -0700
@@ -50,11 +50,17 @@
* annotations of those types. It may freely examine any other program
* elements in the course of its processing.
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. The replacement for the
+ * functionality of this interface is {@link
+ * javax.annotation.processing.Processor}.
+ *
* @author Joseph D. Darcy
* @author Scott Seligman
* @since 1.5
*/
-
+@Deprecated
+@SuppressWarnings("deprecation")
public interface AnnotationProcessor {
/**
--- a/langtools/src/share/classes/com/sun/mirror/apt/AnnotationProcessorEnvironment.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/apt/AnnotationProcessorEnvironment.java Mon Aug 10 09:47:21 2009 -0700
@@ -48,11 +48,17 @@
* provides a simple way to select just the items of interest
* when a method returns a collection of declarations.
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. The replacement for the
+ * functionality of this interface is {@link
+ * javax.annotation.processing.ProcessingEnvironment}.
+ *
* @author Joseph D. Darcy
* @author Scott Seligman
* @since 1.5
*/
-
+@Deprecated
+@SuppressWarnings("deprecation")
public interface AnnotationProcessorEnvironment {
/**
@@ -87,7 +93,6 @@
Filer getFiler();
-
/**
* Returns the declarations of the types specified when the
* annotation processing tool was invoked.
--- a/langtools/src/share/classes/com/sun/mirror/apt/AnnotationProcessorFactory.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/apt/AnnotationProcessorFactory.java Mon Aug 10 09:47:21 2009 -0700
@@ -42,11 +42,17 @@
* must provide a public no-argument constructor to be used by tools to
* instantiate the factory.
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. The replacement for the
+ * functionality of this interface is {@link
+ * javax.annotation.processing.Processor}.
+ *
* @author Joseph D. Darcy
* @author Scott Seligman
* @since 1.5
*/
-
+@Deprecated
+@SuppressWarnings("deprecation")
public interface AnnotationProcessorFactory {
/**
--- a/langtools/src/share/classes/com/sun/mirror/apt/AnnotationProcessorListener.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/apt/AnnotationProcessorListener.java Mon Aug 10 09:47:21 2009 -0700
@@ -28,8 +28,15 @@
/**
* Superinterface for all annotation processor event listeners.
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. This interface has no
+ * direct analog in the standardized API because the different round
+ * model renders it unnecessary.
+ *
* @author Joseph D. Darcy
* @author Scott Seligman
* @since 1.5
*/
+@Deprecated
+@SuppressWarnings("deprecation")
public interface AnnotationProcessorListener extends java.util.EventListener {}
--- a/langtools/src/share/classes/com/sun/mirror/apt/AnnotationProcessors.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/apt/AnnotationProcessors.java Mon Aug 10 09:47:21 2009 -0700
@@ -31,10 +31,16 @@
/**
* Utilities to create specialized annotation processors.
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. There is no direct analog
+ * of the functionality of this class in the standardized API.
+ *
* @since 1.5
* @author Joseph D. Darcy
* @author Scott Seligman
*/
+@Deprecated
+@SuppressWarnings("deprecation")
public class AnnotationProcessors {
static class NoOpAP implements AnnotationProcessor {
NoOpAP() {}
--- a/langtools/src/share/classes/com/sun/mirror/apt/Filer.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/apt/Filer.java Mon Aug 10 09:47:21 2009 -0700
@@ -51,11 +51,17 @@
* be deleted. Any subsequent attempt to create the same file during
* a run will fail.
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. The replacement for the
+ * functionality of this interface is {@link
+ * javax.annotation.processing.Filer}.
+ *
* @author Joseph D. Darcy
* @author Scott Seligman
* @since 1.5
*/
-
+@Deprecated
+@SuppressWarnings("deprecation")
public interface Filer {
/**
@@ -140,7 +146,13 @@
/**
* Locations (subtrees within the file system) where new files are created.
+ *
+ * @deprecated All components of this API have been superseded by
+ * the standardized annotation processing API. The replacement
+ * for the functionality of this enum is {@link
+ * javax.tools.StandardLocation}.
*/
+ @Deprecated
enum Location {
/** The location of new source files. */
SOURCE_TREE,
--- a/langtools/src/share/classes/com/sun/mirror/apt/Messager.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/apt/Messager.java Mon Aug 10 09:47:21 2009 -0700
@@ -25,20 +25,24 @@
package com.sun.mirror.apt;
-
import com.sun.mirror.util.SourcePosition;
-
/**
* A <tt>Messager</tt> provides the way for
* an annotation processor to report error messages, warnings, and
* other notices.
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. The replacement for the
+ * functionality of this interface is {@link
+ * javax.annotation.processing.Messager}.
+ *
* @author Joseph D. Darcy
* @author Scott Seligman
* @since 1.5
*/
-
+@Deprecated
+@SuppressWarnings("deprecation")
public interface Messager {
/**
--- a/langtools/src/share/classes/com/sun/mirror/apt/RoundCompleteEvent.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/apt/RoundCompleteEvent.java Mon Aug 10 09:47:21 2009 -0700
@@ -32,10 +32,17 @@
* cannot meaningfully be serialized because all of the annotation
* processing tool's internal state would potentially be needed.
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. This class has no direct
+ * analog in the standardized API because the different round model
+ * renders it unnecessary.
+ *
* @author Joseph D. Darcy
* @author Scott Seligman
* @since 1.5
*/
+@Deprecated
+@SuppressWarnings("deprecation")
public abstract class RoundCompleteEvent extends java.util.EventObject {
private RoundState rs;
--- a/langtools/src/share/classes/com/sun/mirror/apt/RoundCompleteListener.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/apt/RoundCompleteListener.java Mon Aug 10 09:47:21 2009 -0700
@@ -28,10 +28,17 @@
/**
* Listener for the completion of a round of annotation processing.
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. This interface has no
+ * direct analog in the standardized API because the different round
+ * model renders it unnecessary.
+ *
* @author Joseph D. Darcy
* @author Scott Seligman
* @since 1.5
*/
+@Deprecated
+@SuppressWarnings("deprecation")
public interface RoundCompleteListener extends AnnotationProcessorListener {
/**
* Invoked after all processors for a round have run to completion.
--- a/langtools/src/share/classes/com/sun/mirror/apt/RoundState.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/apt/RoundState.java Mon Aug 10 09:47:21 2009 -0700
@@ -28,10 +28,17 @@
/**
* Represents the status of a completed round of annotation processing.
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. The replacement for the
+ * functionality of this interface is {@link
+ * javax.annotation.processing.RoundEnvironment}.
+ *
* @author Joseph D. Darcy
* @author Scott Seligman
* @since 1.5
*/
+@Deprecated
+@SuppressWarnings("deprecation")
public interface RoundState {
/**
* Returns <tt>true</tt> if this was the last round of annotation
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/src/share/classes/com/sun/mirror/apt/package-info.java Mon Aug 10 09:47:21 2009 -0700
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2004 Sun Microsystems, Inc. All Rights Reserved.
+ * 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. Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/**
+ * Classes used to communicate information between {@linkplain
+ * com.sun.mirror.apt.AnnotationProcessor annotation processors} and
+ * an annotation processing tool.
+ *
+ * <p>The {@code apt} tool and its associated API have been superseded
+ * by the standardized annotation processing API. The replacement for
+ * the functionality in this package is {@link
+ * javax.annotation.processing}.
+ *
+ * @since 1.5
+ */
+package com.sun.mirror.apt;
--- a/langtools/src/share/classes/com/sun/mirror/apt/package.html Fri Aug 07 11:32:04 2009 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<html>
-<head>
-<!--
-
-Copyright 2004 Sun Microsystems, Inc. All Rights Reserved.
-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. Sun designates this
-particular file as subject to the "Classpath" exception as provided
-by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
-CA 95054 USA or visit www.sun.com if you need additional information or
-have any questions.
--->
-
-</head>
-<body bgcolor="white">
-
-Classes used to communicate information between
-{@linkplain com.sun.mirror.apt.AnnotationProcessor annotation processors}
-and an annotation processing tool.
-
-<p>Note that the <code>apt</code> tool and its associated APIs may be
-changed or superseded in future j2se releases.
-
-@since 1.5
-</body>
-</html>
--- a/langtools/src/share/classes/com/sun/mirror/declaration/AnnotationMirror.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/declaration/AnnotationMirror.java Mon Aug 10 09:47:21 2009 -0700
@@ -38,11 +38,17 @@
* ("<tt>==</tt>"). There is no guarantee that any particular
* annotation will always be represented by the same object.
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. The replacement for the
+ * functionality of this interface is {@link
+ * javax.lang.model.element.AnnotationMirror}.
+ *
* @author Joseph D. Darcy
* @author Scott Seligman
* @since 1.5
*/
-
+@Deprecated
+@SuppressWarnings("deprecation")
public interface AnnotationMirror {
/**
--- a/langtools/src/share/classes/com/sun/mirror/declaration/AnnotationTypeDeclaration.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/declaration/AnnotationTypeDeclaration.java Mon Aug 10 09:47:21 2009 -0700
@@ -32,11 +32,17 @@
/**
* Represents the declaration of an annotation type.
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. The replacement for the
+ * functionality of this interface is included in {@link
+ * javax.lang.model.element.TypeElement}.
+ *
* @author Joseph D. Darcy
* @author Scott Seligman
* @since 1.5
*/
-
+@Deprecated
+@SuppressWarnings("deprecation")
public interface AnnotationTypeDeclaration extends InterfaceDeclaration {
/**
--- a/langtools/src/share/classes/com/sun/mirror/declaration/AnnotationTypeElementDeclaration.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/declaration/AnnotationTypeElementDeclaration.java Mon Aug 10 09:47:21 2009 -0700
@@ -29,11 +29,17 @@
/**
* Represents an element of an annotation type.
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. The replacement for the
+ * functionality of this interface is included in {@link
+ * javax.lang.model.element.ExecutableElement}.
+ *
* @author Joe Darcy
* @author Scott Seligman
* @since 1.5
*/
-
+@Deprecated
+@SuppressWarnings("deprecation")
public interface AnnotationTypeElementDeclaration extends MethodDeclaration {
/**
--- a/langtools/src/share/classes/com/sun/mirror/declaration/AnnotationValue.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/declaration/AnnotationValue.java Mon Aug 10 09:47:21 2009 -0700
@@ -30,11 +30,17 @@
/**
* Represents a value of an annotation type element.
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. The replacement for the
+ * functionality of this interface is {@link
+ * javax.lang.model.element.AnnotationValue}.
+ *
* @author Joseph D. Darcy
* @author Scott Seligman
* @since 1.5
*/
-
+@Deprecated
+@SuppressWarnings("deprecation")
public interface AnnotationValue {
/**
--- a/langtools/src/share/classes/com/sun/mirror/declaration/ClassDeclaration.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/declaration/ClassDeclaration.java Mon Aug 10 09:47:21 2009 -0700
@@ -46,13 +46,19 @@
* provides a simple way to select just the items of interest
* when a method returns a collection of declarations.
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. The replacement for the
+ * functionality of this interface is included in {@link
+ * javax.lang.model.element.TypeElement}.
+ *
* @author Joseph D. Darcy
* @author Scott Seligman
*
* @see ClassType
* @since 1.5
*/
-
+@Deprecated
+@SuppressWarnings("deprecation")
public interface ClassDeclaration extends TypeDeclaration {
/**
--- a/langtools/src/share/classes/com/sun/mirror/declaration/ConstructorDeclaration.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/declaration/ConstructorDeclaration.java Mon Aug 10 09:47:21 2009 -0700
@@ -29,10 +29,16 @@
/**
* Represents a constructor of a class or interface.
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. The replacement for the
+ * functionality of this interface is included in {@link
+ * javax.lang.model.element.ExecutableElement}.
+ *
* @author Joe Darcy
* @author Scott Seligman
* @since 1.5
*/
-
+@Deprecated
+@SuppressWarnings("deprecation")
public interface ConstructorDeclaration extends ExecutableDeclaration {
}
--- a/langtools/src/share/classes/com/sun/mirror/declaration/Declaration.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/declaration/Declaration.java Mon Aug 10 09:47:21 2009 -0700
@@ -44,6 +44,11 @@
* method. There is no guarantee that any particular declaration will
* always be represented by the same object.
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. The replacement for the
+ * functionality of this interface is {@link
+ * javax.lang.model.element.Element}.
+ *
* @author Joseph D. Darcy
* @author Scott Seligman
*
@@ -51,7 +56,8 @@
* @see TypeMirror
* @since 1.5
*/
-
+@Deprecated
+@SuppressWarnings("deprecation")
public interface Declaration {
/**
--- a/langtools/src/share/classes/com/sun/mirror/declaration/EnumConstantDeclaration.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/declaration/EnumConstantDeclaration.java Mon Aug 10 09:47:21 2009 -0700
@@ -29,11 +29,17 @@
/**
* Represents an enum constant declaration.
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. The replacement for the
+ * functionality of this interface is included in {@link
+ * javax.lang.model.element.VariableElement}.
+ *
* @author Joseph D. Darcy
* @author Scott Seligman
* @since 1.5
*/
-
+@Deprecated
+@SuppressWarnings("deprecation")
public interface EnumConstantDeclaration extends FieldDeclaration {
/**
* {@inheritDoc}
--- a/langtools/src/share/classes/com/sun/mirror/declaration/EnumDeclaration.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/declaration/EnumDeclaration.java Mon Aug 10 09:47:21 2009 -0700
@@ -32,11 +32,17 @@
/**
* Represents the declaration of an enum type.
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. The replacement for the
+ * functionality of this interface is included in {@link
+ * javax.lang.model.element.TypeElement}.
+ *
* @author Joseph D. Darcy
* @author Scott Seligman
* @since 1.5
*/
-
+@Deprecated
+@SuppressWarnings("deprecation")
public interface EnumDeclaration extends ClassDeclaration {
/**
--- a/langtools/src/share/classes/com/sun/mirror/declaration/ExecutableDeclaration.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/declaration/ExecutableDeclaration.java Mon Aug 10 09:47:21 2009 -0700
@@ -34,11 +34,17 @@
/**
* Represents a method or constructor of a class or interface.
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. The replacement for the
+ * functionality of this interface is {@link
+ * javax.lang.model.element.ExecutableElement}.
+ *
* @author Joseph D. Darcy
* @author Scott Seligman
* @since 1.5
*/
-
+@Deprecated
+@SuppressWarnings("deprecation")
public interface ExecutableDeclaration extends MemberDeclaration {
/**
--- a/langtools/src/share/classes/com/sun/mirror/declaration/FieldDeclaration.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/declaration/FieldDeclaration.java Mon Aug 10 09:47:21 2009 -0700
@@ -32,11 +32,17 @@
/**
* Represents a field of a type declaration.
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. The replacement for the
+ * functionality of this interface is included in {@link
+ * javax.lang.model.element.VariableElement}.
+ *
* @author Joseph D. Darcy
* @author Scott Seligman
* @since 1.5
*/
-
+@Deprecated
+@SuppressWarnings("deprecation")
public interface FieldDeclaration extends MemberDeclaration {
/**
--- a/langtools/src/share/classes/com/sun/mirror/declaration/InterfaceDeclaration.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/declaration/InterfaceDeclaration.java Mon Aug 10 09:47:21 2009 -0700
@@ -40,12 +40,18 @@
* represents an interface <i>type</i>.
* See {@link TypeDeclaration} for more on this distinction.
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. The replacement for the
+ * functionality of this interface is included in {@link
+ * javax.lang.model.element.TypeElement}.
+ *
* @author Joseph D. Darcy
* @author Scott Seligman
*
* @see InterfaceType
* @since 1.5
*/
-
+@Deprecated
+@SuppressWarnings("deprecation")
public interface InterfaceDeclaration extends TypeDeclaration {
}
--- a/langtools/src/share/classes/com/sun/mirror/declaration/MemberDeclaration.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/declaration/MemberDeclaration.java Mon Aug 10 09:47:21 2009 -0700
@@ -31,11 +31,17 @@
* type. This includes fields, constructors, methods, and (since they
* may be nested) declared types themselves.
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. The replacement for the
+ * functionality of this interface is {@link
+ * javax.lang.model.element.Element}.
+ *
* @author Joseph D. Darcy
* @author Scott Seligman
* @since 1.5
*/
-
+@Deprecated
+@SuppressWarnings("deprecation")
public interface MemberDeclaration extends Declaration {
/**
--- a/langtools/src/share/classes/com/sun/mirror/declaration/MethodDeclaration.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/declaration/MethodDeclaration.java Mon Aug 10 09:47:21 2009 -0700
@@ -36,11 +36,17 @@
* {@linkplain AnnotationTypeElementDeclaration annotation type element}
* is a kind of method.
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. The replacement for the
+ * functionality of this interface is included in {@link
+ * javax.lang.model.element.ExecutableElement}.
+ *
* @author Joseph D. Darcy
* @author Scott Seligman
* @since 1.5
*/
-
+@Deprecated
+@SuppressWarnings("deprecation")
public interface MethodDeclaration extends ExecutableDeclaration {
/**
--- a/langtools/src/share/classes/com/sun/mirror/declaration/Modifier.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/declaration/Modifier.java Mon Aug 10 09:47:21 2009 -0700
@@ -35,11 +35,16 @@
* then it is customary, though not required, that they appear in the same
* order as the constants listed in the detail section below.
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. The replacement for the
+ * functionality of this enum is {@link javax.lang.model.element.Modifier}.
+ *
* @author Joseph D. Darcy
* @author Scott Seligman
* @since 1.5
*/
-
+@Deprecated
+@SuppressWarnings("deprecation")
public enum Modifier {
// See JLS2 sections 8.1.1, 8.3.1, 8.4.3, 8.8.3, and 9.1.1.
--- a/langtools/src/share/classes/com/sun/mirror/declaration/PackageDeclaration.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/declaration/PackageDeclaration.java Mon Aug 10 09:47:21 2009 -0700
@@ -37,11 +37,17 @@
* provides a simple way to select just the items of interest
* when a method returns a collection of declarations.
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. The replacement for the
+ * functionality of this interface is {@link
+ * javax.lang.model.element.PackageElement}.
+ *
* @author Joseph D. Darcy
* @author Scott Seligman
* @since 1.5
*/
-
+@Deprecated
+@SuppressWarnings("deprecation")
public interface PackageDeclaration extends Declaration {
/**
--- a/langtools/src/share/classes/com/sun/mirror/declaration/ParameterDeclaration.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/declaration/ParameterDeclaration.java Mon Aug 10 09:47:21 2009 -0700
@@ -32,11 +32,17 @@
/**
* Represents a formal parameter of a method or constructor.
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. The replacement for the
+ * functionality of this interface is included in {@link
+ * javax.lang.model.element.VariableElement}.
+ *
* @author Joseph D. Darcy
* @author Scott Seligman
* @since 1.5
*/
-
+@Deprecated
+@SuppressWarnings("deprecation")
public interface ParameterDeclaration extends Declaration {
/**
--- a/langtools/src/share/classes/com/sun/mirror/declaration/TypeDeclaration.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/declaration/TypeDeclaration.java Mon Aug 10 09:47:21 2009 -0700
@@ -54,13 +54,19 @@
* provides a simple way to select just the items of interest
* when a method returns a collection of declarations.
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. The replacement for the
+ * functionality of this interface is included in {@link
+ * javax.lang.model.element.TypeElement}.
+ *
* @author Joseph D. Darcy
* @author Scott Seligman
*
* @see DeclaredType
* @since 1.5
*/
-
+@Deprecated
+@SuppressWarnings("deprecation")
public interface TypeDeclaration extends MemberDeclaration {
/**
--- a/langtools/src/share/classes/com/sun/mirror/declaration/TypeParameterDeclaration.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/declaration/TypeParameterDeclaration.java Mon Aug 10 09:47:21 2009 -0700
@@ -36,11 +36,17 @@
* or constructor declaration.
* A type parameter declares a {@link TypeVariable}.
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. The replacement for the
+ * functionality of this interface is {@link
+ * javax.lang.model.element.TypeParameterElement}.
+ *
* @author Joseph D. Darcy
* @author Scott Seligman
* @since 1.5
*/
-
+@Deprecated
+@SuppressWarnings("deprecation")
public interface TypeParameterDeclaration extends Declaration {
/**
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/src/share/classes/com/sun/mirror/declaration/package-info.java Mon Aug 10 09:47:21 2009 -0700
@@ -0,0 +1,40 @@
+/*
+ * Copyright 2004 Sun Microsystems, Inc. All Rights Reserved.
+ * 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. Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/**
+ * Interfaces used to model program element declarations. A
+ * declaration is represented by the appropriate subinterface of
+ * {@link com.sun.mirror.declaration.Declaration}, and an annotation
+ * is represented as an {@link
+ * com.sun.mirror.declaration.AnnotationMirror}.
+ *
+ * <p>The {@code apt} tool and its associated API have been superseded
+ * by the standardized annotation processing API. The replacement for
+ * the functionality in this package is {@link
+ * javax.lang.model.element}.
+ *
+ * @since 1.5
+ */
+package com.sun.mirror.declaration;
--- a/langtools/src/share/classes/com/sun/mirror/declaration/package.html Fri Aug 07 11:32:04 2009 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<html>
-<head>
-<!--
-
-Copyright 2004 Sun Microsystems, Inc. All Rights Reserved.
-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. Sun designates this
-particular file as subject to the "Classpath" exception as provided
-by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
-CA 95054 USA or visit www.sun.com if you need additional information or
-have any questions.
--->
-
-</head>
-<body bgcolor="white">
-
-Interfaces used to model program element declarations.
-A declaration is represented by the appropriate subinterface of
-{@link com.sun.mirror.declaration.Declaration},
-and an annotation is represented as an
-{@link com.sun.mirror.declaration.AnnotationMirror}.
-
-<p>Note that the <code>apt</code> tool and its associated APIs may be
-changed or superseded in future j2se releases.
-
-@since 1.5
-</body>
-</html>
--- a/langtools/src/share/classes/com/sun/mirror/type/AnnotationType.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/type/AnnotationType.java Mon Aug 10 09:47:21 2009 -0700
@@ -32,11 +32,17 @@
/**
* Represents an annotation type.
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. The replacement for the
+ * functionality of this interface is included in {@link
+ * javax.lang.model.type.DeclaredType}.
+ *
* @author Joseph D. Darcy
* @author Scott Seligman
* @since 1.5
*/
-
+@Deprecated
+@SuppressWarnings("deprecation")
public interface AnnotationType extends InterfaceType {
/**
--- a/langtools/src/share/classes/com/sun/mirror/type/ArrayType.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/type/ArrayType.java Mon Aug 10 09:47:21 2009 -0700
@@ -31,11 +31,17 @@
* A multidimensional array type is represented as an array type
* whose component type is also an array type.
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. The replacement for the
+ * functionality of this interface is {@link
+ * javax.lang.model.type.ArrayType}.
+ *
* @author Joseph D. Darcy
* @author Scott Seligman
* @since 1.5
*/
-
+@Deprecated
+@SuppressWarnings("deprecation")
public interface ArrayType extends ReferenceType {
/**
--- a/langtools/src/share/classes/com/sun/mirror/type/ClassType.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/type/ClassType.java Mon Aug 10 09:47:21 2009 -0700
@@ -38,11 +38,17 @@
* of a class, a <tt>ClassType</tt> represents a class <i>type</i>.
* See {@link TypeDeclaration} for more on this distinction.
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. The replacement for the
+ * functionality of this interface is included in {@link
+ * javax.lang.model.type.DeclaredType}.
+ *
* @author Joseph D. Darcy
* @author Scott Seligman
* @since 1.5
*/
-
+@Deprecated
+@SuppressWarnings("deprecation")
public interface ClassType extends DeclaredType {
/**
--- a/langtools/src/share/classes/com/sun/mirror/type/DeclaredType.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/type/DeclaredType.java Mon Aug 10 09:47:21 2009 -0700
@@ -48,11 +48,17 @@
* Other method invocations on such an unknown type will not, in general,
* return meaningful results.
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. The replacement for the
+ * functionality of this interface is included in {@link
+ * javax.lang.model.type.DeclaredType}.
+ *
* @author Joseph D. Darcy
* @author Scott Seligman
* @since 1.5
*/
-
+@Deprecated
+@SuppressWarnings("deprecation")
public interface DeclaredType extends ReferenceType {
/**
--- a/langtools/src/share/classes/com/sun/mirror/type/EnumType.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/type/EnumType.java Mon Aug 10 09:47:21 2009 -0700
@@ -32,11 +32,17 @@
/**
* Represents an enum type.
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. The replacement for the
+ * functionality of this interface is included in {@link
+ * javax.lang.model.type.DeclaredType}.
+ *
* @author Joseph D. Darcy
* @author Scott Seligman
* @since 1.5
*/
-
+@Deprecated
+@SuppressWarnings("deprecation")
public interface EnumType extends ClassType {
/**
--- a/langtools/src/share/classes/com/sun/mirror/type/InterfaceType.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/type/InterfaceType.java Mon Aug 10 09:47:21 2009 -0700
@@ -39,11 +39,17 @@
* represents an interface <i>type</i>.
* See {@link TypeDeclaration} for more on this distinction.
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. The replacement for the
+ * functionality of this interface is included in {@link
+ * javax.lang.model.type.DeclaredType}.
+ *
* @author Joseph D. Darcy
* @author Scott Seligman
* @since 1.5
*/
-
+@Deprecated
+@SuppressWarnings("deprecation")
public interface InterfaceType extends DeclaredType {
/**
--- a/langtools/src/share/classes/com/sun/mirror/type/MirroredTypeException.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/type/MirroredTypeException.java Mon Aug 10 09:47:21 2009 -0700
@@ -35,9 +35,16 @@
* Thrown when an application attempts to access the {@link Class} object
* corresponding to a {@link TypeMirror}.
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. The replacement for the
+ * functionality of this exception is {@link
+ * javax.lang.model.type.MirroredTypeException}.
+ *
* @see MirroredTypesException
* @see Declaration#getAnnotation(Class)
*/
+@Deprecated
+@SuppressWarnings("deprecation")
public class MirroredTypeException extends RuntimeException {
private static final long serialVersionUID = 1;
--- a/langtools/src/share/classes/com/sun/mirror/type/MirroredTypesException.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/type/MirroredTypesException.java Mon Aug 10 09:47:21 2009 -0700
@@ -38,9 +38,16 @@
* Thrown when an application attempts to access a sequence of {@link Class}
* objects each corresponding to a {@link TypeMirror}.
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. The replacement for the
+ * functionality of this exception is {@link
+ * javax.lang.model.type.MirroredTypesException}.
+ *
* @see MirroredTypeException
* @see Declaration#getAnnotation(Class)
*/
+@Deprecated
+@SuppressWarnings("deprecation")
public class MirroredTypesException extends RuntimeException {
private static final long serialVersionUID = 1;
--- a/langtools/src/share/classes/com/sun/mirror/type/PrimitiveType.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/type/PrimitiveType.java Mon Aug 10 09:47:21 2009 -0700
@@ -31,11 +31,17 @@
* <tt>boolean</tt>, <tt>byte</tt>, <tt>short</tt>, <tt>int</tt>,
* <tt>long</tt>, <tt>char</tt>, <tt>float</tt>, and <tt>double</tt>.
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. The replacement for the
+ * functionality of this interface is {@link
+ * javax.lang.model.type.PrimitiveType}.
+ *
* @author Joseph D. Darcy
* @author Scott Seligman
* @since 1.5
*/
-
+@Deprecated
+@SuppressWarnings("deprecation")
public interface PrimitiveType extends TypeMirror {
/**
@@ -47,7 +53,13 @@
/**
* An enumeration of the different kinds of primitive types.
+ *
+ * @deprecated All components of this API have been superseded by
+ * the standardized annotation processing API. The replacement
+ * for the functionality of this enum is {@link
+ * javax.lang.model.type.TypeKind}.
*/
+ @Deprecated
enum Kind {
/** The primitive type <tt>boolean</tt> */ BOOLEAN,
/** The primitive type <tt>byte</tt> */ BYTE,
--- a/langtools/src/share/classes/com/sun/mirror/type/ReferenceType.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/type/ReferenceType.java Mon Aug 10 09:47:21 2009 -0700
@@ -30,10 +30,16 @@
* Represents a reference type.
* These include class and interface types, array types, and type variables.
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. The replacement for the
+ * functionality of this interface is {@link
+ * javax.lang.model.type.ReferenceType}.
+ *
* @author Joseph D. Darcy
* @author Scott Seligman
* @since 1.5
*/
-
+@Deprecated
+@SuppressWarnings("deprecation")
public interface ReferenceType extends TypeMirror {
}
--- a/langtools/src/share/classes/com/sun/mirror/type/TypeMirror.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/type/TypeMirror.java Mon Aug 10 09:47:21 2009 -0700
@@ -43,6 +43,11 @@
* There is no guarantee that any particular type will
* always be represented by the same object.
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. The replacement for the
+ * functionality of this interface is {@link
+ * javax.lang.model.type.TypeMirror}.
+ *
* @author Joseph D. Darcy
* @author Scott Seligman
*
@@ -50,7 +55,8 @@
* @see Types
* @since 1.5
*/
-
+@Deprecated
+@SuppressWarnings("deprecation")
public interface TypeMirror {
/**
--- a/langtools/src/share/classes/com/sun/mirror/type/TypeVariable.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/type/TypeVariable.java Mon Aug 10 09:47:21 2009 -0700
@@ -35,11 +35,17 @@
* {@linkplain TypeParameterDeclaration type parameter} of a
* type, method, or constructor.
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. The replacement for the
+ * functionality of this interface is {@link
+ * javax.lang.model.type.TypeVariable}.
+ *
* @author Joe Darcy
* @author Scott Seligman
* @since 1.5
*/
-
+@Deprecated
+@SuppressWarnings("deprecation")
public interface TypeVariable extends ReferenceType {
/**
--- a/langtools/src/share/classes/com/sun/mirror/type/VoidType.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/type/VoidType.java Mon Aug 10 09:47:21 2009 -0700
@@ -35,9 +35,15 @@
* @author Joseph D. Darcy
* @author Scott Seligman
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. The replacement for the
+ * functionality of this interface is included in {@link
+ * javax.lang.model.type.NoType}.
+ *
* @see MethodDeclaration#getReturnType()
* @since 1.5
*/
-
+@Deprecated
+@SuppressWarnings("deprecation")
public interface VoidType extends TypeMirror {
}
--- a/langtools/src/share/classes/com/sun/mirror/type/WildcardType.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/type/WildcardType.java Mon Aug 10 09:47:21 2009 -0700
@@ -41,11 +41,17 @@
* <tt>extends</tt> clause, its lower bound explicitly set by a
* <tt>super</tt> clause, or neither (but not both).
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. The replacement for the
+ * functionality of this interface is {@link
+ * javax.lang.model.type.WildcardType}.
+ *
* @author Joseph D. Darcy
* @author Scott Seligman
* @since 1.5
*/
-
+@Deprecated
+@SuppressWarnings("deprecation")
public interface WildcardType extends TypeMirror {
/**
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/src/share/classes/com/sun/mirror/type/package-info.java Mon Aug 10 09:47:21 2009 -0700
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2004 Sun Microsystems, Inc. All Rights Reserved.
+ * 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. Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/**
+ * Interfaces used to model types. A type is represented by the
+ * appropriate subinterface of {@link com.sun.mirror.type.TypeMirror}.
+ *
+ * <p>The {@code apt} tool and its associated API have been
+ * superseded by the standardized annotation processing API. The
+ * replacement for the functionality in this package is {@link
+ * javax.lang.model.type}.
+ *
+ * @since 1.5
+ */
+package com.sun.mirror.type;
--- a/langtools/src/share/classes/com/sun/mirror/type/package.html Fri Aug 07 11:32:04 2009 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<html>
-<head>
-<!--
-
-Copyright 2004 Sun Microsystems, Inc. All Rights Reserved.
-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. Sun designates this
-particular file as subject to the "Classpath" exception as provided
-by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
-CA 95054 USA or visit www.sun.com if you need additional information or
-have any questions.
--->
-
-</head>
-<body bgcolor="white">
-
-Interfaces used to model types.
-A type is represented by the appropriate subinterface of
-{@link com.sun.mirror.type.TypeMirror}.
-
-<p>Note that the <code>apt</code> tool and its associated APIs may be
-changed or superseded in future j2se releases.
-
-@since 1.5
-</body>
-</html>
--- a/langtools/src/share/classes/com/sun/mirror/util/DeclarationFilter.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/util/DeclarationFilter.java Mon Aug 10 09:47:21 2009 -0700
@@ -69,11 +69,17 @@
* };
* result = nameFilter.filter(decls); </pre></blockquote>
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. The replacement for the
+ * functionality of this class is {@link
+ * javax.lang.model.util.ElementFilter}.
+ *
* @author Joseph D. Darcy
* @author Scott Seligman
* @since 1.5
*/
-
+@Deprecated
+@SuppressWarnings("deprecation")
public class DeclarationFilter {
// Predefined filters for convenience.
--- a/langtools/src/share/classes/com/sun/mirror/util/DeclarationScanner.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/util/DeclarationScanner.java Mon Aug 10 09:47:21 2009 -0700
@@ -39,11 +39,17 @@
* are scanned; the postprocessing visitor is called after the
* contained declarations are scanned.
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. The replacement for the
+ * functionality of this class is {@link
+ * javax.lang.model.util.ElementScanner6}.
+ *
* @author Joseph D. Darcy
* @author Scott Seligman
* @since 1.5
*/
-
+@Deprecated
+@SuppressWarnings("deprecation")
class DeclarationScanner implements DeclarationVisitor {
protected DeclarationVisitor pre;
protected DeclarationVisitor post;
--- a/langtools/src/share/classes/com/sun/mirror/util/DeclarationVisitor.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/util/DeclarationVisitor.java Mon Aug 10 09:47:21 2009 -0700
@@ -37,11 +37,17 @@
* <tt>visit<i>Xxx</i></tt> method applicable to that declaration is
* invoked.
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. The replacement for the
+ * functionality of this interface is {@link
+ * javax.lang.model.element.ElementVisitor}.
+ *
* @author Joseph D. Darcy
* @author Scott Seligman
* @since 1.5
*/
-
+@Deprecated
+@SuppressWarnings("deprecation")
public interface DeclarationVisitor {
/**
--- a/langtools/src/share/classes/com/sun/mirror/util/DeclarationVisitors.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/util/DeclarationVisitors.java Mon Aug 10 09:47:21 2009 -0700
@@ -28,10 +28,17 @@
/**
* Utilities to create specialized <tt>DeclarationVisitor</tt> instances.
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. There is no direct
+ * replacement for the functionality of this class in the standardized
+ * API due to that API's different visitor structure.
+ *
* @author Joseph D. Darcy
* @author Scott Seligman
* @since 1.5
*/
+@Deprecated
+@SuppressWarnings("deprecation")
public class DeclarationVisitors {
private DeclarationVisitors(){} // do not instantiate.
--- a/langtools/src/share/classes/com/sun/mirror/util/Declarations.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/util/Declarations.java Mon Aug 10 09:47:21 2009 -0700
@@ -32,11 +32,17 @@
/**
* Utility methods for operating on declarations.
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. The replacement for the
+ * functionality of this interface is {@link
+ * javax.lang.model.util.Elements}.
+ *
* @author Joseph D. Darcy
* @author Scott Seligman
* @since 1.5
*/
-
+@Deprecated
+@SuppressWarnings("deprecation")
public interface Declarations {
/**
--- a/langtools/src/share/classes/com/sun/mirror/util/SimpleDeclarationVisitor.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/util/SimpleDeclarationVisitor.java Mon Aug 10 09:47:21 2009 -0700
@@ -37,11 +37,17 @@
* methods that correspond to the kinds of declarations on which it
* will operate.
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. The replacement for the
+ * functionality of this class is {@link
+ * javax.lang.model.util.SimpleElementVisitor6}.
+ *
* @author Joseph D. Darcy
* @author Scott Seligman
* @since 1.5
*/
-
+@Deprecated
+@SuppressWarnings("deprecation")
public class SimpleDeclarationVisitor implements DeclarationVisitor {
/**
--- a/langtools/src/share/classes/com/sun/mirror/util/SimpleTypeVisitor.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/util/SimpleTypeVisitor.java Mon Aug 10 09:47:21 2009 -0700
@@ -37,11 +37,17 @@
* methods that correspond to the kinds of types on which it will
* operate.
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. The replacement for the
+ * functionality of this class is {@link
+ * javax.lang.model.util.SimpleTypeVisitor6}.
+ *
* @author Joseph D. Darcy
* @author Scott Seligman
* @since 1.5
*/
-
+@Deprecated
+@SuppressWarnings("deprecation")
public class SimpleTypeVisitor implements TypeVisitor {
/**
--- a/langtools/src/share/classes/com/sun/mirror/util/SourceOrderDeclScanner.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/util/SourceOrderDeclScanner.java Mon Aug 10 09:47:21 2009 -0700
@@ -42,10 +42,17 @@
* are scanned; the postprocessing visitor is called after the
* contained declarations are scanned.
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. The replacement for the
+ * functionality of this class is {@link
+ * javax.lang.model.util.SimpleElementVisitor6}.
+ *
* @author Joseph D. Darcy
* @author Scott Seligman
* @since 1.5
*/
+@Deprecated
+@SuppressWarnings("deprecation")
class SourceOrderDeclScanner extends DeclarationScanner {
static class SourceOrderComparator implements java.util.Comparator<Declaration> {
SourceOrderComparator(){}
--- a/langtools/src/share/classes/com/sun/mirror/util/SourcePosition.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/util/SourcePosition.java Mon Aug 10 09:47:21 2009 -0700
@@ -32,11 +32,20 @@
/**
* Represents a position in a source file.
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. There is no direct
+ * replacement for the functionality of this interface since the
+ * standardized {@link javax.annotation.processing.Messager Messager}
+ * API implicitly takes a source position argument via any element,
+ * annotation mirror, or annotation value passed along with the
+ * message.
+ *
* @author Joseph D. Darcy
* @author Scott Seligman
* @since 1.5
*/
-
+@Deprecated
+@SuppressWarnings("deprecation")
public interface SourcePosition {
/**
--- a/langtools/src/share/classes/com/sun/mirror/util/TypeVisitor.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/util/TypeVisitor.java Mon Aug 10 09:47:21 2009 -0700
@@ -38,11 +38,17 @@
* the most specific <tt>visit<i>Xxx</i></tt> method applicable to
* that type is invoked.
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. The replacement for the
+ * functionality of this interface is {@link
+ * javax.lang.model.element.TypeVisitor}.
+ *
* @author Joseph D. Darcy
* @author Scott Seligman
* @since 1.5
*/
-
+@Deprecated
+@SuppressWarnings("deprecation")
public interface TypeVisitor {
/**
--- a/langtools/src/share/classes/com/sun/mirror/util/Types.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/mirror/util/Types.java Mon Aug 10 09:47:21 2009 -0700
@@ -35,11 +35,17 @@
/**
* Utility methods for operating on types.
*
+ * @deprecated All components of this API have been superseded by the
+ * standardized annotation processing API. The replacement for the
+ * functionality of this interface is {@link
+ * javax.lang.model.util.Types}.
+ *
* @author Joseph D. Darcy
* @author Scott Seligman
* @since 1.5
*/
-
+@Deprecated
+@SuppressWarnings("deprecation")
public interface Types {
/**
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/src/share/classes/com/sun/mirror/util/package-info.java Mon Aug 10 09:47:21 2009 -0700
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2004 Sun Microsystems, Inc. All Rights Reserved.
+ * 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. Sun designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/**
+ * Utilities to assist in the processing of {@linkplain
+ * com.sun.mirror.declaration declarations} and {@linkplain
+ * com.sun.mirror.type types}.
+ *
+ * <p>The {@code apt} tool and its associated API have been superseded
+ * by the standardized annotation processing API. The replacement for
+ * the functionality in this package is {@link javax.lang.model.util}.
+ *
+ * @since 1.5
+ */
+package com.sun.mirror.util;
--- a/langtools/src/share/classes/com/sun/mirror/util/package.html Fri Aug 07 11:32:04 2009 -0700
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
-<html>
-<head>
-<!--
-
-Copyright 2004 Sun Microsystems, Inc. All Rights Reserved.
-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. Sun designates this
-particular file as subject to the "Classpath" exception as provided
-by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
-CA 95054 USA or visit www.sun.com if you need additional information or
-have any questions.
--->
-
-</head>
-<body bgcolor="white">
-
-Utilities to assist in the processing of {@linkplain
-com.sun.mirror.declaration declarations} and {@linkplain
-com.sun.mirror.type types}.
-
-<p>Note that the <code>apt</code> tool and its associated APIs may be
-changed or superseded in future j2se releases.
-
-@since 1.5
-</body>
-</html>
--- a/langtools/src/share/classes/com/sun/tools/apt/comp/Apt.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/apt/comp/Apt.java Mon Aug 10 09:47:21 2009 -0700
@@ -65,6 +65,7 @@
* risk. This code and its internal interfaces are subject to change
* or deletion without notice.</b>
*/
+@SuppressWarnings("deprecation")
public class Apt extends ListBuffer<Env<AttrContext>> {
java.util.Set<String> genSourceFileNames = new java.util.LinkedHashSet<String>();
public java.util.Set<String> getSourceFileNames() {
--- a/langtools/src/share/classes/com/sun/tools/apt/comp/BootstrapAPF.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/apt/comp/BootstrapAPF.java Mon Aug 10 09:47:21 2009 -0700
@@ -29,6 +29,7 @@
import com.sun.mirror.apt.*;
import com.sun.mirror.declaration.AnnotationTypeDeclaration;
+@SuppressWarnings("deprecation")
public class BootstrapAPF implements AnnotationProcessorFactory {
static final Collection<String> supportedOptions =
--- a/langtools/src/share/classes/com/sun/tools/apt/comp/PrintAP.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/apt/comp/PrintAP.java Mon Aug 10 09:47:21 2009 -0700
@@ -36,6 +36,7 @@
/**
* Class used to implement "-print" option.
*/
+@SuppressWarnings("deprecation")
public class PrintAP implements AnnotationProcessor {
--- a/langtools/src/share/classes/com/sun/tools/apt/main/JavaCompiler.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/apt/main/JavaCompiler.java Mon Aug 10 09:47:21 2009 -0700
@@ -50,6 +50,7 @@
* risk. This code and its internal interfaces are subject to change
* or deletion without notice.</b>
*/
+@SuppressWarnings("deprecation")
public class JavaCompiler extends com.sun.tools.javac.main.JavaCompiler {
/** The context key for the compiler. */
protected static final Context.Key<JavaCompiler> compilerKey =
--- a/langtools/src/share/classes/com/sun/tools/apt/main/Main.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/apt/main/Main.java Mon Aug 10 09:47:21 2009 -0700
@@ -64,6 +64,7 @@
* risk. This code and its internal interfaces are subject to change
* or deletion without notice.</b>
*/
+@SuppressWarnings("deprecation")
public class Main {
/** For testing: enter any options you want to be set implicitly
@@ -780,7 +781,6 @@
// prefixed to command line arguments.
processArgs(forcedOpts);
-
/*
* A run of apt only gets passed the most recently generated
* files; the initial run of apt gets passed the files from
@@ -792,6 +792,11 @@
// assign args the result of parse to capture results of
// '@file' expansion
origFilenames = processArgs((args=CommandLine.parse(args)));
+
+ if (options.get("suppress-tool-api-removal-message") == null) {
+ Bark.printLines(out, getLocalizedString("misc.Deprecation"));
+ }
+
if (origFilenames == null) {
return EXIT_CMDERR;
} else if (origFilenames.size() == 0) {
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/AptEnv.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/apt/mirror/AptEnv.java Mon Aug 10 09:47:21 2009 -0700
@@ -39,7 +39,7 @@
/**
* The environment for a run of apt.
*/
-
+@SuppressWarnings("deprecation")
public class AptEnv {
public Names names; // javac's name table
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/apt/AnnotationProcessorEnvironmentImpl.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/apt/mirror/apt/AnnotationProcessorEnvironmentImpl.java Mon Aug 10 09:47:21 2009 -0700
@@ -47,6 +47,7 @@
/*
* Annotation Processor Environment implementation.
*/
+@SuppressWarnings("deprecation")
public class AnnotationProcessorEnvironmentImpl implements AnnotationProcessorEnvironment {
Collection<TypeDeclaration> spectypedecls;
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/apt/FilerImpl.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/apt/mirror/apt/FilerImpl.java Mon Aug 10 09:47:21 2009 -0700
@@ -45,7 +45,7 @@
/**
* Implementation of Filer.
*/
-
+@SuppressWarnings("deprecation")
public class FilerImpl implements Filer {
/*
* The Filer class must maintain a number of constraints. First,
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/apt/MessagerImpl.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/apt/mirror/apt/MessagerImpl.java Mon Aug 10 09:47:21 2009 -0700
@@ -38,7 +38,7 @@
/**
* Implementation of Messager.
*/
-
+@SuppressWarnings("deprecation")
public class MessagerImpl implements Messager {
private final Bark bark;
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/apt/RoundCompleteEventImpl.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/apt/mirror/apt/RoundCompleteEventImpl.java Mon Aug 10 09:47:21 2009 -0700
@@ -29,6 +29,7 @@
import com.sun.mirror.apt.RoundCompleteEvent;
import com.sun.mirror.apt.RoundState;
+@SuppressWarnings("deprecation")
public class RoundCompleteEventImpl extends RoundCompleteEvent {
private static final long serialVersionUID = 7067621446720784300L;
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/apt/RoundStateImpl.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/apt/mirror/apt/RoundStateImpl.java Mon Aug 10 09:47:21 2009 -0700
@@ -28,6 +28,7 @@
import com.sun.mirror.apt.RoundState;
import java.util.Map;
+@SuppressWarnings("deprecation")
public class RoundStateImpl implements RoundState {
private final boolean finalRound;
private final boolean errorRaised;
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/AnnotationMirrorImpl.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/AnnotationMirrorImpl.java Mon Aug 10 09:47:21 2009 -0700
@@ -42,7 +42,7 @@
/**
* Implementation of AnnotationMirror
*/
-
+@SuppressWarnings("deprecation")
public class AnnotationMirrorImpl implements AnnotationMirror {
protected final AptEnv env;
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/AnnotationProxyMaker.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/AnnotationProxyMaker.java Mon Aug 10 09:47:21 2009 -0700
@@ -49,7 +49,7 @@
* <p> The "dynamic proxy return form" of an attribute element value is
* the form used by sun.reflect.annotation.AnnotationInvocationHandler.
*/
-
+@SuppressWarnings("deprecation")
class AnnotationProxyMaker {
private final AptEnv env;
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/AnnotationTypeDeclarationImpl.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/AnnotationTypeDeclarationImpl.java Mon Aug 10 09:47:21 2009 -0700
@@ -37,7 +37,7 @@
/**
* Implementation of AnnotationTypeDeclaration
*/
-
+@SuppressWarnings("deprecation")
public class AnnotationTypeDeclarationImpl extends InterfaceDeclarationImpl
implements AnnotationTypeDeclaration
{
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/AnnotationTypeElementDeclarationImpl.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/AnnotationTypeElementDeclarationImpl.java Mon Aug 10 09:47:21 2009 -0700
@@ -35,7 +35,7 @@
/**
* Implementation of AnnotationTypeElementDeclaration
*/
-
+@SuppressWarnings("deprecation")
public class AnnotationTypeElementDeclarationImpl extends MethodDeclarationImpl
implements AnnotationTypeElementDeclaration {
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/AnnotationValueImpl.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/AnnotationValueImpl.java Mon Aug 10 09:47:21 2009 -0700
@@ -40,7 +40,7 @@
/**
* Implementation of AnnotationValue
*/
-
+@SuppressWarnings("deprecation")
public class AnnotationValueImpl implements AnnotationValue {
protected final AptEnv env;
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/ClassDeclarationImpl.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/ClassDeclarationImpl.java Mon Aug 10 09:47:21 2009 -0700
@@ -42,7 +42,7 @@
/**
* Implementation of ClassDeclaration
*/
-
+@SuppressWarnings("deprecation")
public class ClassDeclarationImpl extends TypeDeclarationImpl
implements ClassDeclaration {
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/Constants.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/Constants.java Mon Aug 10 09:47:21 2009 -0700
@@ -39,6 +39,7 @@
/**
* Utility class for operating on constant expressions.
*/
+@SuppressWarnings("deprecation")
class Constants {
/**
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/ConstructorDeclarationImpl.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/ConstructorDeclarationImpl.java Mon Aug 10 09:47:21 2009 -0700
@@ -39,7 +39,7 @@
/**
* Implementation of ConstructorDeclaration
*/
-
+@SuppressWarnings("deprecation")
public class ConstructorDeclarationImpl extends ExecutableDeclarationImpl
implements ConstructorDeclaration {
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/DeclarationImpl.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/DeclarationImpl.java Mon Aug 10 09:47:21 2009 -0700
@@ -52,7 +52,7 @@
/**
* Implementation of Declaration
*/
-
+@SuppressWarnings("deprecation")
public abstract class DeclarationImpl implements Declaration {
protected final AptEnv env;
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/DeclarationMaker.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/DeclarationMaker.java Mon Aug 10 09:47:21 2009 -0700
@@ -40,7 +40,7 @@
/**
* Utilities for constructing and caching declarations.
*/
-
+@SuppressWarnings("deprecation")
public class DeclarationMaker {
private AptEnv env;
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/EnumConstantDeclarationImpl.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/EnumConstantDeclarationImpl.java Mon Aug 10 09:47:21 2009 -0700
@@ -35,7 +35,7 @@
/**
* Implementation of EnumConstantDeclaration
*/
-
+@SuppressWarnings("deprecation")
public class EnumConstantDeclarationImpl extends FieldDeclarationImpl
implements EnumConstantDeclaration {
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/EnumDeclarationImpl.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/EnumDeclarationImpl.java Mon Aug 10 09:47:21 2009 -0700
@@ -37,7 +37,7 @@
/**
* Implementation of EnumDeclaration
*/
-
+@SuppressWarnings("deprecation")
public class EnumDeclarationImpl extends ClassDeclarationImpl
implements EnumDeclaration {
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/ExecutableDeclarationImpl.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/ExecutableDeclarationImpl.java Mon Aug 10 09:47:21 2009 -0700
@@ -39,7 +39,7 @@
/**
* Implementation of ExecutableDeclaration
*/
-
+@SuppressWarnings("deprecation")
public abstract class ExecutableDeclarationImpl extends MemberDeclarationImpl
implements ExecutableDeclaration {
public MethodSymbol sym;
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/FieldDeclarationImpl.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/FieldDeclarationImpl.java Mon Aug 10 09:47:21 2009 -0700
@@ -40,7 +40,7 @@
/**
* Implementation of FieldDeclaration
*/
-
+@SuppressWarnings("deprecation")
class FieldDeclarationImpl extends MemberDeclarationImpl
implements FieldDeclaration {
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/InterfaceDeclarationImpl.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/InterfaceDeclarationImpl.java Mon Aug 10 09:47:21 2009 -0700
@@ -35,7 +35,7 @@
/**
* Implementation of InterfaceDeclaration
*/
-
+@SuppressWarnings("deprecation")
public class InterfaceDeclarationImpl extends TypeDeclarationImpl
implements InterfaceDeclaration {
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/MemberDeclarationImpl.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/MemberDeclarationImpl.java Mon Aug 10 09:47:21 2009 -0700
@@ -40,7 +40,7 @@
/**
* Implementation of MemberDeclaration
*/
-
+@SuppressWarnings("deprecation")
public abstract class MemberDeclarationImpl extends DeclarationImpl
implements MemberDeclaration {
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/MethodDeclarationImpl.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/MethodDeclarationImpl.java Mon Aug 10 09:47:21 2009 -0700
@@ -36,7 +36,7 @@
/**
* Implementation of MethodDeclaration
*/
-
+@SuppressWarnings("deprecation")
public class MethodDeclarationImpl extends ExecutableDeclarationImpl
implements MethodDeclaration {
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/PackageDeclarationImpl.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/PackageDeclarationImpl.java Mon Aug 10 09:47:21 2009 -0700
@@ -39,7 +39,7 @@
/**
* Implementation of PackageDeclaration.
*/
-
+@SuppressWarnings("deprecation")
public class PackageDeclarationImpl extends DeclarationImpl
implements PackageDeclaration {
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/ParameterDeclarationImpl.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/ParameterDeclarationImpl.java Mon Aug 10 09:47:21 2009 -0700
@@ -39,7 +39,7 @@
/**
* Implementation of ParameterDeclaration
*/
-
+@SuppressWarnings("deprecation")
public class ParameterDeclarationImpl extends DeclarationImpl
implements ParameterDeclaration
{
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/TypeDeclarationImpl.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/TypeDeclarationImpl.java Mon Aug 10 09:47:21 2009 -0700
@@ -40,7 +40,7 @@
/**
* Implementation of TypeDeclaration
*/
-
+@SuppressWarnings("deprecation")
public class TypeDeclarationImpl extends MemberDeclarationImpl
implements TypeDeclaration {
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/TypeParameterDeclarationImpl.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/apt/mirror/declaration/TypeParameterDeclarationImpl.java Mon Aug 10 09:47:21 2009 -0700
@@ -40,7 +40,7 @@
/**
* Implementation of TypeParameterDeclaration
*/
-
+@SuppressWarnings("deprecation")
public class TypeParameterDeclarationImpl extends DeclarationImpl
implements TypeParameterDeclaration
{
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/type/AnnotationTypeImpl.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/apt/mirror/type/AnnotationTypeImpl.java Mon Aug 10 09:47:21 2009 -0700
@@ -36,7 +36,7 @@
/**
* Implementation of AnnotationType
*/
-
+@SuppressWarnings("deprecation")
public class AnnotationTypeImpl extends InterfaceTypeImpl
implements AnnotationType {
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/type/ArrayTypeImpl.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/apt/mirror/type/ArrayTypeImpl.java Mon Aug 10 09:47:21 2009 -0700
@@ -35,7 +35,7 @@
/**
* Implementation of ArrayType
*/
-
+@SuppressWarnings("deprecation")
public class ArrayTypeImpl extends TypeMirrorImpl implements ArrayType {
protected Type.ArrayType type;
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/type/ClassTypeImpl.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/apt/mirror/type/ClassTypeImpl.java Mon Aug 10 09:47:21 2009 -0700
@@ -36,7 +36,7 @@
/**
* Implementation of ClassType
*/
-
+@SuppressWarnings("deprecation")
public class ClassTypeImpl extends DeclaredTypeImpl implements ClassType {
ClassTypeImpl(AptEnv env, Type.ClassType type) {
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/type/DeclaredTypeImpl.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/apt/mirror/type/DeclaredTypeImpl.java Mon Aug 10 09:47:21 2009 -0700
@@ -38,7 +38,7 @@
/**
* Implementation of DeclaredType
*/
-
+@SuppressWarnings("deprecation")
abstract class DeclaredTypeImpl extends TypeMirrorImpl
implements DeclaredType {
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/type/EnumTypeImpl.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/apt/mirror/type/EnumTypeImpl.java Mon Aug 10 09:47:21 2009 -0700
@@ -36,7 +36,7 @@
/**
* Implementation of EnumType
*/
-
+@SuppressWarnings("deprecation")
public class EnumTypeImpl extends ClassTypeImpl implements EnumType {
EnumTypeImpl(AptEnv env, Type.ClassType type) {
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/type/InterfaceTypeImpl.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/apt/mirror/type/InterfaceTypeImpl.java Mon Aug 10 09:47:21 2009 -0700
@@ -36,7 +36,7 @@
/**
* Implementation of InterfaceType
*/
-
+@SuppressWarnings("deprecation")
public class InterfaceTypeImpl extends DeclaredTypeImpl
implements InterfaceType {
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/type/PrimitiveTypeImpl.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/apt/mirror/type/PrimitiveTypeImpl.java Mon Aug 10 09:47:21 2009 -0700
@@ -38,7 +38,7 @@
/**
* Implementation of PrimitiveType.
*/
-
+@SuppressWarnings("deprecation")
class PrimitiveTypeImpl extends TypeMirrorImpl implements PrimitiveType {
private final Kind kind; // the kind of primitive
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/type/TypeMaker.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/apt/mirror/type/TypeMaker.java Mon Aug 10 09:47:21 2009 -0700
@@ -41,7 +41,7 @@
/**
* Utilities for constructing type objects.
*/
-
+@SuppressWarnings("deprecation")
public class TypeMaker {
private final AptEnv env;
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/type/TypeMirrorImpl.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/apt/mirror/type/TypeMirrorImpl.java Mon Aug 10 09:47:21 2009 -0700
@@ -35,7 +35,7 @@
/**
* Implementation of TypeMirror
*/
-
+@SuppressWarnings("deprecation")
public abstract class TypeMirrorImpl implements TypeMirror {
protected final AptEnv env;
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/type/TypeVariableImpl.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/apt/mirror/type/TypeVariableImpl.java Mon Aug 10 09:47:21 2009 -0700
@@ -40,7 +40,7 @@
/**
* Implementation of TypeVariable
*/
-
+@SuppressWarnings("deprecation")
public class TypeVariableImpl extends TypeMirrorImpl implements TypeVariable {
protected Type.TypeVar type;
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/type/VoidTypeImpl.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/apt/mirror/type/VoidTypeImpl.java Mon Aug 10 09:47:21 2009 -0700
@@ -34,7 +34,7 @@
/**
* Implementation of VoidType.
*/
-
+@SuppressWarnings("deprecation")
class VoidTypeImpl extends TypeMirrorImpl implements VoidType {
VoidTypeImpl(AptEnv env) {
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/type/WildcardTypeImpl.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/apt/mirror/type/WildcardTypeImpl.java Mon Aug 10 09:47:21 2009 -0700
@@ -41,7 +41,7 @@
/**
* Implementation of WildcardType
*/
-
+@SuppressWarnings("deprecation")
public class WildcardTypeImpl extends TypeMirrorImpl implements WildcardType {
protected Type.WildcardType type;
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/util/DeclarationsImpl.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/apt/mirror/util/DeclarationsImpl.java Mon Aug 10 09:47:21 2009 -0700
@@ -42,7 +42,7 @@
/**
* Implementation of Declarations utility methods for annotation processors
*/
-
+@SuppressWarnings("deprecation")
public class DeclarationsImpl implements Declarations {
private final AptEnv env;
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/util/SourcePositionImpl.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/apt/mirror/util/SourcePositionImpl.java Mon Aug 10 09:47:21 2009 -0700
@@ -36,7 +36,7 @@
/**
* Implementation of SourcePosition
*/
-
+@SuppressWarnings("deprecation")
public class SourcePositionImpl implements SourcePosition {
private JavaFileObject sourcefile;
--- a/langtools/src/share/classes/com/sun/tools/apt/mirror/util/TypesImpl.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/apt/mirror/util/TypesImpl.java Mon Aug 10 09:47:21 2009 -0700
@@ -44,7 +44,7 @@
/**
* Implementation of Types utility methods for annotation processors
*/
-
+@SuppressWarnings("deprecation")
public class TypesImpl implements Types {
private final AptEnv env;
--- a/langtools/src/share/classes/com/sun/tools/apt/resources/apt.properties Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/apt/resources/apt.properties Mon Aug 10 09:47:21 2009 -0700
@@ -111,6 +111,14 @@
## miscellaneous strings
##
+apt.misc.Deprecation=\
+ \nwarning:\u0020The apt tool and its associated API are planned to be\n\
+ removed in the next major JDK release. These features have been\n\
+ superseded by javac and the standardized annotation processing API,\n\
+ javax.annotation.processing and javax.lang.model. Users are\n\
+ recommended to migrate to the annotation processing features of\n\
+ javac; see the javac man page for more information.\n
+
apt.misc.Problem=\
Problem encountered during annotation processing; \nsee stacktrace below for more information.
--- a/langtools/src/share/classes/com/sun/tools/classfile/ExtendedAnnotation.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/classfile/ExtendedAnnotation.java Mon Aug 10 09:47:21 2009 -0700
@@ -357,6 +357,7 @@
sb.append(type_index);
break;
case CLASS_LITERAL:
+ case CLASS_LITERAL_GENERIC_OR_ARRAY:
sb.append(", offset = ");
sb.append(offset);
break;
--- a/langtools/src/share/classes/com/sun/tools/javac/api/DiagnosticFormatter.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/api/DiagnosticFormatter.java Mon Aug 10 09:47:21 2009 -0700
@@ -32,6 +32,11 @@
/**
* Provides simple functionalities for javac diagnostic formatting.
* @param <D> type of diagnostic handled by this formatter
+ *
+ * <p><b>This is NOT part of any API supported by Sun Microsystems.
+ * If you write code that depends on this, you do so at your own risk.
+ * This code and its internal interfaces are subject to change or
+ * deletion without notice.</b>
*/
public interface DiagnosticFormatter<D extends Diagnostic<?>> {
--- a/langtools/src/share/classes/com/sun/tools/javac/api/Formattable.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/api/Formattable.java Mon Aug 10 09:47:21 2009 -0700
@@ -31,6 +31,11 @@
* This interface must be implemented by any javac class that has non-trivial
* formatting needs (e.g. where toString() does not apply because of localization).
*
+ * <p><b>This is NOT part of any API supported by Sun Microsystems.
+ * If you write code that depends on this, you do so at your own risk.
+ * This code and its internal interfaces are subject to change or
+ * deletion without notice.</b>
+ *
* @author Maurizio Cimadamore
*/
public interface Formattable {
--- a/langtools/src/share/classes/com/sun/tools/javac/api/Messages.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/api/Messages.java Mon Aug 10 09:47:21 2009 -0700
@@ -32,6 +32,11 @@
* This interface defines the minimum requirements in order to provide support
* for localized formatted strings.
*
+ * <p><b>This is NOT part of any API supported by Sun Microsystems.
+ * If you write code that depends on this, you do so at your own risk.
+ * This code and its internal interfaces are subject to change or
+ * deletion without notice.</b>
+ *
* @author Maurizio Cimadamore
*/
public interface Messages {
--- a/langtools/src/share/classes/com/sun/tools/javac/code/BoundKind.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/code/BoundKind.java Mon Aug 10 09:47:21 2009 -0700
@@ -25,7 +25,13 @@
package com.sun.tools.javac.code;
-
+/**
+ *
+ * <p><b>This is NOT part of any API supported by Sun Microsystems.
+ * If you write code that depends on this, you do so at your own risk.
+ * This code and its internal interfaces are subject to change or
+ * deletion without notice.</b>
+ */
public enum BoundKind {
EXTENDS("? extends "),
SUPER("? super "),
--- a/langtools/src/share/classes/com/sun/tools/javac/code/Printer.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/code/Printer.java Mon Aug 10 09:47:21 2009 -0700
@@ -40,6 +40,11 @@
/**
* A combined type/symbol visitor for generating non-trivial localized string
* representation of types and symbols.
+ *
+ * <p><b>This is NOT part of any API supported by Sun Microsystems.
+ * If you write code that depends on this, you do so at your own risk.
+ * This code and its internal interfaces are subject to change or
+ * deletion without notice.</b>
*/
public abstract class Printer implements Type.Visitor<String, Locale>, Symbol.Visitor<String, Locale> {
--- a/langtools/src/share/classes/com/sun/tools/javac/comp/Resolve.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/comp/Resolve.java Mon Aug 10 09:47:21 2009 -0700
@@ -251,7 +251,8 @@
return true;
else {
Symbol s2 = ((MethodSymbol)sym).implementation(site.tsym, types, true);
- return (s2 == null || s2 == sym);
+ return (s2 == null || s2 == sym ||
+ !types.isSubSignature(types.memberType(site, s2), types.memberType(site, sym)));
}
}
//where
--- a/langtools/src/share/classes/com/sun/tools/javac/file/BaseFileObject.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/file/BaseFileObject.java Mon Aug 10 09:47:21 2009 -0700
@@ -36,6 +36,12 @@
import static javax.tools.JavaFileObject.Kind.*;
+/**
+ * <p><b>This is NOT part of any API supported by Sun Microsystems.
+ * If you write code that depends on this, you do so at your own risk.
+ * This code and its internal interfaces are subject to change or
+ * deletion without notice.</b>
+*/
public abstract class BaseFileObject implements JavaFileObject {
protected BaseFileObject(JavacFileManager fileManager) {
this.fileManager = fileManager;
--- a/langtools/src/share/classes/com/sun/tools/javac/file/CacheFSInfo.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/file/CacheFSInfo.java Mon Aug 10 09:47:21 2009 -0700
@@ -34,7 +34,12 @@
import java.util.concurrent.ConcurrentHashMap;
/**
- * Caching implementation of FSInfo
+ * Caching implementation of FSInfo.
+ *
+ * <p><b>This is NOT part of any API supported by Sun Microsystems.
+ * If you write code that depends on this, you do so at your own risk.
+ * This code and its internal interfaces are subject to change or
+ * deletion without notice.</b>
*/
public class CacheFSInfo extends FSInfo {
--- a/langtools/src/share/classes/com/sun/tools/javac/file/FSInfo.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/file/FSInfo.java Mon Aug 10 09:47:21 2009 -0700
@@ -16,6 +16,11 @@
/**
* Get meta-info about files. Default direct (non-caching) implementation.
* @see CacheFSInfo
+ *
+ * <p><b>This is NOT part of any API supported by Sun Microsystems.
+ * If you write code that depends on this, you do so at your own risk.
+ * This code and its internal interfaces are subject to change or
+ * deletion without notice.</b>
*/
public class FSInfo {
--- a/langtools/src/share/classes/com/sun/tools/javac/file/JavacFileManager.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/file/JavacFileManager.java Mon Aug 10 09:47:21 2009 -0700
@@ -82,6 +82,11 @@
/**
* This class provides access to the source, class and other files
* used by the compiler and related tools.
+ *
+ * <p><b>This is NOT part of any API supported by Sun Microsystems.
+ * If you write code that depends on this, you do so at your own risk.
+ * This code and its internal interfaces are subject to change or
+ * deletion without notice.</b>
*/
public class JavacFileManager implements StandardJavaFileManager {
--- a/langtools/src/share/classes/com/sun/tools/javac/file/RegularFileObject.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/file/RegularFileObject.java Mon Aug 10 09:47:21 2009 -0700
@@ -42,6 +42,11 @@
/**
* A subclass of JavaFileObject representing regular files.
+ *
+ * <p><b>This is NOT part of any API supported by Sun Microsystems.
+ * If you write code that depends on this, you do so at your own risk.
+ * This code and its internal interfaces are subject to change or
+ * deletion without notice.</b>
*/
class RegularFileObject extends BaseFileObject {
--- a/langtools/src/share/classes/com/sun/tools/javac/file/RelativePath.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/file/RelativePath.java Mon Aug 10 09:47:21 2009 -0700
@@ -34,6 +34,11 @@
* Used to represent a platform-neutral path within a platform-specific
* container, such as a directory or zip file.
* Internally, the file separator is always '/'.
+ *
+ * <p><b>This is NOT part of any API supported by Sun Microsystems.
+ * If you write code that depends on this, you do so at your own risk.
+ * This code and its internal interfaces are subject to change or
+ * deletion without notice.</b>
*/
public abstract class RelativePath implements Comparable<RelativePath> {
/**
--- a/langtools/src/share/classes/com/sun/tools/javac/file/SymbolArchive.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/file/SymbolArchive.java Mon Aug 10 09:47:21 2009 -0700
@@ -35,6 +35,12 @@
import com.sun.tools.javac.file.RelativePath.RelativeFile;
import com.sun.tools.javac.util.List;
+/**
+ * <p><b>This is NOT part of any API supported by Sun Microsystems.
+ * If you write code that depends on this, you do so at your own risk.
+ * This code and its internal interfaces are subject to change or
+ * deletion without notice.</b>
+*/
public class SymbolArchive extends ZipArchive {
final File origFile;
--- a/langtools/src/share/classes/com/sun/tools/javac/file/ZipArchive.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/file/ZipArchive.java Mon Aug 10 09:47:21 2009 -0700
@@ -48,6 +48,12 @@
import com.sun.tools.javac.file.RelativePath.RelativeFile;
import com.sun.tools.javac.util.List;
+/**
+ * <p><b>This is NOT part of any API supported by Sun Microsystems.
+ * If you write code that depends on this, you do so at your own risk.
+ * This code and its internal interfaces are subject to change or
+ * deletion without notice.</b>
+ */
public class ZipArchive implements Archive {
public ZipArchive(JavacFileManager fm, ZipFile zdir) throws IOException {
--- a/langtools/src/share/classes/com/sun/tools/javac/file/ZipFileIndex.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/file/ZipFileIndex.java Mon Aug 10 09:47:21 2009 -0700
@@ -67,6 +67,11 @@
* If nonBatchMode option is specified (-XDnonBatchMode) the compiler will use timestamp
* checking to reindex the zip files if it is needed. In batch mode the timestamps are not checked
* and the compiler uses the cached indexes.
+ *
+ * <p><b>This is NOT part of any API supported by Sun Microsystems.
+ * If you write code that depends on this, you do so at your own risk.
+ * This code and its internal interfaces are subject to change or
+ * deletion without notice.</b>
*/
public class ZipFileIndex {
private static final String MIN_CHAR = String.valueOf(Character.MIN_VALUE);
--- a/langtools/src/share/classes/com/sun/tools/javac/file/ZipFileIndexArchive.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/file/ZipFileIndexArchive.java Mon Aug 10 09:47:21 2009 -0700
@@ -44,6 +44,12 @@
import com.sun.tools.javac.file.RelativePath.RelativeFile;
import com.sun.tools.javac.util.List;
+/**
+ * <p><b>This is NOT part of any API supported by Sun Microsystems.
+ * If you write code that depends on this, you do so at your own risk.
+ * This code and its internal interfaces are subject to change or
+ * deletion without notice.</b>
+ */
public class ZipFileIndexArchive implements Archive {
private final ZipFileIndex zfIndex;
--- a/langtools/src/share/classes/com/sun/tools/javac/parser/ParserFactory.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/parser/ParserFactory.java Mon Aug 10 09:47:21 2009 -0700
@@ -34,6 +34,11 @@
/**
* A factory for creating parsers.
+ *
+ * <p><b>This is NOT part of any API supported by Sun Microsystems.
+ * If you write code that depends on this, you do so at your own risk.
+ * This code and its internal interfaces are subject to change or
+ * deletion without notice.</b>
*/
public class ParserFactory {
--- a/langtools/src/share/classes/com/sun/tools/javac/util/AbstractDiagnosticFormatter.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/util/AbstractDiagnosticFormatter.java Mon Aug 10 09:47:21 2009 -0700
@@ -57,6 +57,10 @@
* <li> Provides the formatting logic for rendering the arguments of a JCDiagnostic object.
* <ul>
*
+ * <p><b>This is NOT part of any API supported by Sun Microsystems.
+ * If you write code that depends on this, you do so at your own risk.
+ * This code and its internal interfaces are subject to change or
+ * deletion without notice.</b>
*/
public abstract class AbstractDiagnosticFormatter implements DiagnosticFormatter<JCDiagnostic> {
--- a/langtools/src/share/classes/com/sun/tools/javac/util/BasicDiagnosticFormatter.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/util/BasicDiagnosticFormatter.java Mon Aug 10 09:47:21 2009 -0700
@@ -57,6 +57,11 @@
* <li>%m: the text or the diagnostic, including any appropriate arguments
* <li>%_: space delimiter, useful for formatting purposes
* </ul>
+ *
+ * <p><b>This is NOT part of any API supported by Sun Microsystems.
+ * If you write code that depends on this, you do so at your own risk.
+ * This code and its internal interfaces are subject to change or
+ * deletion without notice.</b>
*/
public class BasicDiagnosticFormatter extends AbstractDiagnosticFormatter {
--- a/langtools/src/share/classes/com/sun/tools/javac/util/ForwardingDiagnosticFormatter.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/util/ForwardingDiagnosticFormatter.java Mon Aug 10 09:47:21 2009 -0700
@@ -37,6 +37,11 @@
/**
* A delegated diagnostic formatter delegates all formatting
* actions to an underlying formatter (aka the delegated formatter).
+ *
+ * <p><b>This is NOT part of any API supported by Sun Microsystems.
+ * If you write code that depends on this, you do so at your own risk.
+ * This code and its internal interfaces are subject to change or
+ * deletion without notice.</b>
*/
public class ForwardingDiagnosticFormatter<D extends Diagnostic<?>, F extends DiagnosticFormatter<D>>
implements DiagnosticFormatter<D> {
--- a/langtools/src/share/classes/com/sun/tools/javac/util/RawDiagnosticFormatter.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/util/RawDiagnosticFormatter.java Mon Aug 10 09:47:21 2009 -0700
@@ -39,6 +39,11 @@
* The raw formatter will format a diagnostic according to one of two format patterns, depending on whether
* or not the source name and position are set. This formatter provides a standardized, localize-independent
* implementation of a diagnostic formatter; as such, this formatter is best suited for testing purposes.
+ *
+ * <p><b>This is NOT part of any API supported by Sun Microsystems.
+ * If you write code that depends on this, you do so at your own risk.
+ * This code and its internal interfaces are subject to change or
+ * deletion without notice.</b>
*/
public final class RawDiagnosticFormatter extends AbstractDiagnosticFormatter {
--- a/langtools/src/share/classes/com/sun/tools/javac/util/RichDiagnosticFormatter.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/util/RichDiagnosticFormatter.java Mon Aug 10 09:47:21 2009 -0700
@@ -58,6 +58,11 @@
* formatted and (iii) type-variable disambiguation - when the diagnostic refers
* to two different type-variables with the same name, their representation is
* disambiguated by appending an index to the type variable name.
+ *
+ * <p><b>This is NOT part of any API supported by Sun Microsystems.
+ * If you write code that depends on this, you do so at your own risk.
+ * This code and its internal interfaces are subject to change or
+ * deletion without notice.</b>
*/
public class RichDiagnosticFormatter extends
ForwardingDiagnosticFormatter<JCDiagnostic, AbstractDiagnosticFormatter> {
@@ -569,7 +574,8 @@
@Override
public Void visitMethodSymbol(MethodSymbol s, Void ignored) {
visit(s.owner, null);
- typePreprocessor.visit(s.type);
+ if (s.type != null)
+ typePreprocessor.visit(s.type);
return null;
}
};
--- a/langtools/src/share/classes/com/sun/tools/javac/util/Warner.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javac/util/Warner.java Mon Aug 10 09:47:21 2009 -0700
@@ -31,10 +31,10 @@
* An interface to support optional warnings, needed for support of
* unchecked conversions and unchecked casts.
*
- * <p>Nothing described in this source file is part of any supported
- * API. If you write code that depends on this, you do so at your own
- * risk. This code and its internal interfaces are subject to change
- * or deletion without notice.
+ * <p><b>This is NOT part of any API supported by Sun Microsystems.
+ * If you write code that depends on this, you do so at your own risk.
+ * This code and its internal interfaces are subject to change or
+ * deletion without notice.</b>
*/
public class Warner {
public static final Warner noWarnings = new Warner();
--- a/langtools/src/share/classes/com/sun/tools/javap/JavapFileManager.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javap/JavapFileManager.java Mon Aug 10 09:47:21 2009 -0700
@@ -44,6 +44,7 @@
class JavapFileManager extends JavacFileManager {
private JavapFileManager(Context context, Charset charset) {
super(context, true, charset);
+ setIgnoreSymbolFile(true);
}
static JavapFileManager create(final DiagnosticListener<? super JavaFileObject> dl, PrintWriter log, Options options) {
--- a/langtools/src/share/classes/com/sun/tools/javap/JavapTask.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javap/JavapTask.java Mon Aug 10 09:47:21 2009 -0700
@@ -235,12 +235,6 @@
}
},
- new Option(false, "-XDignore.symbol.file") {
- void process(JavapTask task, String opt, String arg) {
- task.options.ignoreSymbolFile = true;
- }
- },
-
new Option(false, "-XDdetails") {
void process(JavapTask task, String opt, String arg) {
task.options.details = EnumSet.allOf(InstructionDetailWriter.Kind.class);
@@ -477,9 +471,6 @@
throw new BadArgs("err.incompatible.options", sb);
}
- if (options.ignoreSymbolFile && fileManager instanceof JavapFileManager)
- ((JavapFileManager) fileManager).setIgnoreSymbolFile(true);
-
if ((classes == null || classes.size() == 0) &&
!(noArgs || options.help || options.version || options.fullVersion)) {
throw new BadArgs("err.no.classes.specified");
--- a/langtools/src/share/classes/com/sun/tools/javap/Options.java Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/src/share/classes/com/sun/tools/javap/Options.java Mon Aug 10 09:47:21 2009 -0700
@@ -88,5 +88,4 @@
public boolean compat; // bug-for-bug compatibility mode with old javap
public boolean jsr277;
- public boolean ignoreSymbolFile; // file manager should ignore ct.sym
}
--- a/langtools/test/tools/apt/Basics/apt.sh Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/test/tools/apt/Basics/apt.sh Mon Aug 10 09:47:21 2009 -0700
@@ -43,7 +43,7 @@
esac
# Construct path to apt executable
-APT="${TESTJAVA}/bin/apt ${TESTTOOLVMOPTS}"
+APT="${TESTJAVA}/bin/apt ${TESTTOOLVMOPTS} -XDsuppress-tool-api-removal-message "
printf "%s\n" "-classpath ${TESTCLASSES}" > options
printf "%s\n" "-factorypath ./nullap.jar" >> options
@@ -58,6 +58,7 @@
printf "%s\n" "-XListAnnotationTypes" >> options1
printf "%s\n" "-XclassesAsDecls" >> options1
+
# Construct path to javac executable
JAVAC="${TESTJAVA}/bin/javac ${TESTTOOLVMOPTS} -source 1.5 -sourcepath ${TESTSRC} -classpath ${TESTJAVA}/lib/tools.jar -d . "
JAR="${TESTJAVA}/bin/jar "
--- a/langtools/test/tools/apt/Compile/compile.sh Fri Aug 07 11:32:04 2009 -0700
+++ b/langtools/test/tools/apt/Compile/compile.sh Mon Aug 10 09:47:21 2009 -0700
@@ -67,7 +67,7 @@
esac
-APT="${TESTJAVA}/bin/apt ${TESTTOOLVMOPTS} "
+APT="${TESTJAVA}/bin/apt ${TESTTOOLVMOPTS} -XDsuppress-tool-api-removal-message "
JAVA="${TESTJAVA}/bin/java ${TESTVMOPTS} "
JAVAC="${TESTJAVA}/bin/javac ${TESTTOOLVMOPTS} "
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/Diagnostics/6860795/T6860795.java Mon Aug 10 09:47:21 2009 -0700
@@ -0,0 +1,34 @@
+/*
+ * Copyright 2009 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/**
+ * @test
+ * @bug 6860795
+ * @summary NullPointerException when compiling a negative java source
+ * @author mcimadamore
+ * @compile/fail/ref=T6860795.out -XDrawDiagnostics T6860795.java
+ */
+
+class Test {
+ void foo(float x, int x) {}
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/Diagnostics/6860795/T6860795.out Mon Aug 10 09:47:21 2009 -0700
@@ -0,0 +1,2 @@
+T6860795.java:33:27: compiler.err.already.defined: x, foo
+1 error
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/generics/rawOverride/T6846972.java Mon Aug 10 09:47:21 2009 -0700
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2009 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/*
+ * @test
+ * @bug 6846972
+ * @summary cannot access member of raw type when erasure change overriding into overloading
+ * @author mcimadamore
+ * @compile T6846972.java
+ */
+
+import java.util.EnumMap;
+
+public class T6846972 {
+
+ enum Suit {
+ CLUBS, DIAMONDS;
+ }
+
+ static Object [] array = {
+ Suit.CLUBS, "value1",
+ Suit.DIAMONDS, "value2"
+ };
+
+ static void test() {
+ EnumMap map = new EnumMap(Suit.class);
+ map.put(array[0], array[1]);
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javap/T6863746.java Mon Aug 10 09:47:21 2009 -0700
@@ -0,0 +1,52 @@
+/*
+ * Copyright 2009 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+import java.io.*;
+
+/*
+ * @test
+ * @bug 6863746
+ * @summary javap should not scan ct.sym by default
+ */
+
+public class T6863746 {
+ public static void main(String... args) throws Exception{
+ new T6863746().run();
+ }
+
+ public void run() throws Exception {
+ String[] args = { "-c", "java.lang.Object" };
+ StringWriter sw = new StringWriter();
+ PrintWriter pw = new PrintWriter(sw);
+ int rc = com.sun.tools.javap.Main.run(args, pw);
+ pw.close();
+ String out = sw.toString();
+ System.out.println(out);
+ String[] lines = out.split("\n");
+ // If ct.sym is being read, the output does not include
+ // Code attributes, so check for Code attributes as a
+ // way of detecting that ct.sym is not being used.
+ if (lines.length < 50 || out.indexOf("Code:") == -1)
+ throw new Exception("unexpected output from javap");
+ }
+}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javap/typeAnnotations/ArrayClassLiterals.java Mon Aug 10 09:47:21 2009 -0700
@@ -0,0 +1,183 @@
+/*
+ * Copyright 2009 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+import java.io.*;
+import com.sun.tools.classfile.*;
+
+/*
+ * @test ArrayClassLiterals
+ * @bug 6863814
+ * @summary test that class literals array doesn't crash javap
+ */
+
+public class ArrayClassLiterals {
+ public static void main(String[] args) throws Exception {
+ new ArrayClassLiterals().run();
+ }
+
+ public void run() throws Exception {
+ File javaFile = writeTestFile();
+ File classFile = compileTestFile(javaFile);
+
+ ClassFile cf = ClassFile.read(classFile);
+ test(cf);
+ for (Field f : cf.fields) {
+ test(cf, f);
+ }
+ for (Method m: cf.methods) {
+ test(cf, m);
+ }
+
+ countAnnotations();
+
+ if (errors > 0)
+ throw new Exception(errors + " errors found");
+ System.out.println("PASSED");
+ }
+
+ void test(ClassFile cf) {
+ test(cf, Attribute.RuntimeVisibleTypeAnnotations, true);
+ test(cf, Attribute.RuntimeInvisibleTypeAnnotations, false);
+ }
+
+ void test(ClassFile cf, Method m) {
+ test(cf, m, Attribute.RuntimeVisibleTypeAnnotations, true);
+ test(cf, m, Attribute.RuntimeInvisibleTypeAnnotations, false);
+ }
+
+ void test(ClassFile cf, Field m) {
+ test(cf, m, Attribute.RuntimeVisibleTypeAnnotations, true);
+ test(cf, m, Attribute.RuntimeInvisibleTypeAnnotations, false);
+ }
+
+ // test the result of Attributes.getIndex according to expectations
+ // encoded in the method's name
+ void test(ClassFile cf, String name, boolean visible) {
+ int index = cf.attributes.getIndex(cf.constant_pool, name);
+ if (index != -1) {
+ Attribute attr = cf.attributes.get(index);
+ assert attr instanceof RuntimeTypeAnnotations_attribute;
+ RuntimeTypeAnnotations_attribute tAttr = (RuntimeTypeAnnotations_attribute)attr;
+ all += tAttr.annotations.length;
+ if (visible)
+ visibles += tAttr.annotations.length;
+ else
+ invisibles += tAttr.annotations.length;
+
+ for (ExtendedAnnotation anno : tAttr.annotations)
+ anno.position.toString();
+ }
+ }
+
+ // test the result of Attributes.getIndex according to expectations
+ // encoded in the method's name
+ void test(ClassFile cf, Method m, String name, boolean visible) {
+ int index = m.attributes.getIndex(cf.constant_pool, name);
+ if (index != -1) {
+ Attribute attr = m.attributes.get(index);
+ assert attr instanceof RuntimeTypeAnnotations_attribute;
+ RuntimeTypeAnnotations_attribute tAttr = (RuntimeTypeAnnotations_attribute)attr;
+ all += tAttr.annotations.length;
+ if (visible)
+ visibles += tAttr.annotations.length;
+ else
+ invisibles += tAttr.annotations.length;
+
+ for (ExtendedAnnotation anno : tAttr.annotations)
+ anno.position.toString();
+ }
+ }
+
+ // test the result of Attributes.getIndex according to expectations
+ // encoded in the method's name
+ void test(ClassFile cf, Field m, String name, boolean visible) {
+ int index = m.attributes.getIndex(cf.constant_pool, name);
+ if (index != -1) {
+ Attribute attr = m.attributes.get(index);
+ assert attr instanceof RuntimeTypeAnnotations_attribute;
+ RuntimeTypeAnnotations_attribute tAttr = (RuntimeTypeAnnotations_attribute)attr;
+ all += tAttr.annotations.length;
+ if (visible)
+ visibles += tAttr.annotations.length;
+ else
+ invisibles += tAttr.annotations.length;
+
+ for (ExtendedAnnotation anno : tAttr.annotations)
+ anno.position.toString();
+ }
+ }
+
+ File writeTestFile() throws IOException {
+ File f = new File("Testa.java");
+ PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(f)));
+ out.println("import java.util.*;");
+ out.println("class Testa { ");
+ out.println(" @interface A { }");
+
+ out.println(" void test() {");
+ out.println(" Object a = @A String.class;");
+ out.println(" Object b = @A String @A [] @A [].class;");
+ out.println(" }");
+ out.println("}");
+
+ out.close();
+ return f;
+ }
+
+ File compileTestFile(File f) {
+ int rc = com.sun.tools.javac.Main.compile(new String[] { "-source", "1.7", "-g", f.getPath() });
+ if (rc != 0)
+ throw new Error("compilation failed. rc=" + rc);
+ String path = f.getPath();
+ return new File(path.substring(0, path.length() - 5) + ".class");
+ }
+
+ void countAnnotations() {
+ int expected_visibles = 0, expected_invisibles = 4;
+ int expected_all = expected_visibles + expected_invisibles;
+
+ if (expected_all != all) {
+ errors++;
+ System.err.println("expected " + expected_all
+ + " annotations but found " + all);
+ }
+
+ if (expected_visibles != visibles) {
+ errors++;
+ System.err.println("expected " + expected_visibles
+ + " visibles annotations but found " + visibles);
+ }
+
+ if (expected_invisibles != invisibles) {
+ errors++;
+ System.err.println("expected " + expected_invisibles
+ + " invisibles annotations but found " + invisibles);
+ }
+
+ }
+
+ int errors;
+ int all;
+ int visibles;
+ int invisibles;
+}
--- a/make/README.pre-components Fri Aug 07 11:32:04 2009 -0700
+++ b/make/README.pre-components Mon Aug 10 09:47:21 2009 -0700
@@ -18,7 +18,7 @@
ALT_LANGTOOLS_DIST The dist area from a langtools build to use, if provided
ALT_OUTPUTDIR Parent dir of build and dist directories, if provided
VARIANT If DBG, debug build, if OPT, optimized build
- TARGET_CLASS_VERSION The classfile version number (currently 5)
+ TARGET_CLASS_VERSION The classfile version number (currently 7)
ANT_HOME Home of ant to use, if provided
QUIET If defined, be quiet
VERBOSE If defined, be verbose