SecretKey
object from the provided key
* specification (key material).
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/DESKeyGenerator.java b/jdk/src/share/classes/com/sun/crypto/provider/DESKeyGenerator.java
index 2a7ac8e0771..cd028d4ac73 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/DESKeyGenerator.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/DESKeyGenerator.java
@@ -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 @@ public final class DESKeyGenerator extends KeyGeneratorSpi {
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.");
- }
}
/**
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/DESedeCipher.java b/jdk/src/share/classes/com/sun/crypto/provider/DESedeCipher.java
index 1514f44eddb..394a784215a 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/DESedeCipher.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/DESedeCipher.java
@@ -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 @@ public final class DESedeCipher extends CipherSpi {
/**
* 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);
}
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/DESedeKeyFactory.java b/jdk/src/share/classes/com/sun/crypto/provider/DESedeKeyFactory.java
index 831ca8cd7ad..fcd619b7af6 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/DESedeKeyFactory.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/DESedeKeyFactory.java
@@ -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 @@ import java.security.spec.InvalidKeySpecException;
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.");
- }
}
/**
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/DESedeKeyGenerator.java b/jdk/src/share/classes/com/sun/crypto/provider/DESedeKeyGenerator.java
index 439c8facc91..333375e3edb 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/DESedeKeyGenerator.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/DESedeKeyGenerator.java
@@ -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 @@ public final class DESedeKeyGenerator extends KeyGeneratorSpi {
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.");
- }
}
/**
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/DESedeWrapCipher.java b/jdk/src/share/classes/com/sun/crypto/provider/DESedeWrapCipher.java
index 48cbb1edbc3..c3a36d1e9ce 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/DESedeWrapCipher.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/DESedeWrapCipher.java
@@ -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 @@ public final class DESedeWrapCipher extends CipherSpi {
/**
* 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());
}
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/DHKeyAgreement.java b/jdk/src/share/classes/com/sun/crypto/provider/DHKeyAgreement.java
index 30bec726117..e2a3cf08daf 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/DHKeyAgreement.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/DHKeyAgreement.java
@@ -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 @@ extends KeyAgreementSpi {
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.");
- }
}
/**
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/DHKeyFactory.java b/jdk/src/share/classes/com/sun/crypto/provider/DHKeyFactory.java
index e7c5f53b4d4..01a449c6a2f 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/DHKeyFactory.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/DHKeyFactory.java
@@ -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 @@ import javax.crypto.spec.DHParameterSpec;
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.");
- }
}
/**
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/HmacCore.java b/jdk/src/share/classes/com/sun/crypto/provider/HmacCore.java
index 9950d112ff1..87d9e04bc0e 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/HmacCore.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/HmacCore.java
@@ -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 @@ final class HmacCore implements Cloneable {
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 @@ final class HmacCore implements Cloneable {
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 @@ final class HmacCore implements Cloneable {
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 {
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/HmacMD5.java b/jdk/src/share/classes/com/sun/crypto/provider/HmacMD5.java
index 26e76389d4f..ce3793c917a 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/HmacMD5.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/HmacMD5.java
@@ -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 @@ public final class HmacMD5 extends MacSpi implements Cloneable {
/**
* 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);
}
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/HmacMD5KeyGenerator.java b/jdk/src/share/classes/com/sun/crypto/provider/HmacMD5KeyGenerator.java
index c1b65264571..1f73f32c7e9 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/HmacMD5KeyGenerator.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/HmacMD5KeyGenerator.java
@@ -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 @@ public final class HmacMD5KeyGenerator extends KeyGeneratorSpi {
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.");
- }
}
/**
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/HmacPKCS12PBESHA1.java b/jdk/src/share/classes/com/sun/crypto/provider/HmacPKCS12PBESHA1.java
index 150477c5ea1..4508c242e96 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/HmacPKCS12PBESHA1.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/HmacPKCS12PBESHA1.java
@@ -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 @@ public final class HmacPKCS12PBESHA1 extends MacSpi implements Cloneable {
/**
* 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);
}
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/HmacSHA1.java b/jdk/src/share/classes/com/sun/crypto/provider/HmacSHA1.java
index 1421e855b9b..0b4bea2c7f7 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/HmacSHA1.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/HmacSHA1.java
@@ -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 @@ public final class HmacSHA1 extends MacSpi implements Cloneable {
/**
* 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);
}
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/HmacSHA1KeyGenerator.java b/jdk/src/share/classes/com/sun/crypto/provider/HmacSHA1KeyGenerator.java
index 561e4f1593c..2bf214280ce 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/HmacSHA1KeyGenerator.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/HmacSHA1KeyGenerator.java
@@ -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 @@ public final class HmacSHA1KeyGenerator extends KeyGeneratorSpi {
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.");
- }
}
/**
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/JarVerifier.java b/jdk/src/share/classes/com/sun/crypto/provider/JarVerifier.java
deleted file mode 100644
index ea5f856955a..00000000000
--- a/jdk/src/share/classes/com/sun/crypto/provider/JarVerifier.java
+++ /dev/null
@@ -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;
- }
-}
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/KeyGeneratorCore.java b/jdk/src/share/classes/com/sun/crypto/provider/KeyGeneratorCore.java
index 242db61d83f..6864dad5f7b 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/KeyGeneratorCore.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/KeyGeneratorCore.java
@@ -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 @@ final class KeyGeneratorCore {
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 @@ final class KeyGeneratorCore {
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 @@ final class KeyGeneratorCore {
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 @@ final class KeyGeneratorCore {
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 @@ final class KeyGeneratorCore {
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) {
diff --git a/jdk/src/share/classes/com/sun/crypto/provider/PBEKeyFactory.java b/jdk/src/share/classes/com/sun/crypto/provider/PBEKeyFactory.java
index 23478f8fc0e..f86dad561bf 100644
--- a/jdk/src/share/classes/com/sun/crypto/provider/PBEKeyFactory.java
+++ b/jdk/src/share/classes/com/sun/crypto/provider/PBEKeyFactory.java
@@ -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 @@ abstract class PBEKeyFactory extends SecretKeyFactorySpi {
private static HashSetNote that the detail message associated with
+ * {@code cause} is not automatically incorporated in
+ * this exception's detail message.
+ *
+ * @param message the detail message (which is saved for later retrieval
+ * by the {@link #getMessage()} method).
+ * @param cause the cause (which is saved for later retrieval by the
+ * {@link #getCause()} method). (A {@code null} value is
+ * permitted, and indicates that the cause is nonexistent or
+ * unknown.)
+ */
+ public ReflectiveOperationException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ /**
+ * Constructs a new exception with the specified cause and a detail
+ * message of {@code (cause==null ? null : cause.toString())} (which
+ * typically contains the class and detail message of {@code cause}).
+ *
+ * @param cause the cause (which is saved for later retrieval by the
+ * {@link #getCause()} method). (A {@code null} value is
+ * permitted, and indicates that the cause is nonexistent or
+ * unknown.)
+ */
+ public ReflectiveOperationException(Throwable cause) {
+ super(cause);
+ }
+}
diff --git a/jdk/src/share/classes/java/lang/reflect/InvocationTargetException.java b/jdk/src/share/classes/java/lang/reflect/InvocationTargetException.java
index 28f3b206297..048d04cacbf 100644
--- a/jdk/src/share/classes/java/lang/reflect/InvocationTargetException.java
+++ b/jdk/src/share/classes/java/lang/reflect/InvocationTargetException.java
@@ -39,7 +39,7 @@ package java.lang.reflect;
* @see Method
* @see Constructor
*/
-public class InvocationTargetException extends Exception {
+public class InvocationTargetException extends ReflectiveOperationException {
/**
* Use serialVersionUID from JDK 1.1.X for interoperability
*/
diff --git a/jdk/src/share/classes/java/security/cert/CertPathHelperImpl.java b/jdk/src/share/classes/java/security/cert/CertPathHelperImpl.java
index a9998282a25..b279392d442 100644
--- a/jdk/src/share/classes/java/security/cert/CertPathHelperImpl.java
+++ b/jdk/src/share/classes/java/security/cert/CertPathHelperImpl.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2002-2006 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
@@ -46,7 +46,7 @@ class CertPathHelperImpl extends CertPathHelper {
/**
* Initialize the helper framework. This method must be called from
* the static initializer of each class that is the target of one of
- * the methods in this class. This ensures that the helper if initialized
+ * the methods in this class. This ensures that the helper is initialized
* prior to a tunneled call from the Sun provider.
*/
synchronized static void initialize() {
@@ -59,4 +59,8 @@ class CertPathHelperImpl extends CertPathHelper {
Set