-
Bug
-
Resolution: Not an Issue
-
P3
-
None
-
8
-
x86_64
-
windows_7
FULL PRODUCT VERSION :
java version "1.8.0"
Java(TM) SE Runtime Environment (build 1.8.0-b132)
Java HotSpot(TM) 64-Bit Server VM (build 25.0-b70, mixed mode)
ADDITIONAL OS VERSION INFORMATION :
Win 7 x64. Latest updates are applied.
EXTRA RELEVANT SYSTEM CONFIGURATION :
Nothing special
A DESCRIPTION OF THE PROBLEM :
X509CertInfo instanse of the class cannot add CertificateSubjectName instance.
REGRESSION. Last worked in version 7u51
ADDITIONAL REGRESSION INFORMATION:
java version "1.8.0"
Java(TM) SE Runtime Environment (build 1.8.0-b132)
Java HotSpot(TM) 64-Bit Server VM (build 25.0-b70, mixed mode)
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Execute following sample code. Result will be visible on the screen.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
X509CertInfo.add(...) method can add CertificateSubjectName instance as it could under JDK_7.
ACTUAL -
X509CertInfo.add(...) method cannot add CertificateSubjectName instance. Exception is thrown. This method works fine under JDK_7.
ERROR MESSAGES/STACK TRACES THAT OCCUR :
Exception in thread "main" java.security.cert.CertificateException: Subject class type invalid.
at sun.security.x509.X509CertInfo.setSubject(X509CertInfo.java:888)
at sun.security.x509.X509CertInfo.set(X509CertInfo.java:415)
at azdefault.Jdk8Bug.main(Jdk8Bug.java:22)
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
package azdefault;
import sun.security.x509.CertificateSubjectName;
import sun.security.x509.X500Name;
import sun.security.x509.X509CertInfo;
public class Jdk8Bug {
public static void main( String[] args ) throws Exception {
X500Name sampleX500Name = new X500Name( "CN=Sample Common Name" );
CertificateSubjectName subjNameVariable = new CertificateSubjectName( sampleX500Name );
X509CertInfo info = new X509CertInfo();
// This line works fine under JDK7 not only in such simple demo program but also in real world
// certificate manipulation program.
// This line fails under JDK8 with following exception:
// Exception in thread "main" java.security.cert.CertificateException: Subject class type invalid.
// at sun.security.x509.X509CertInfo.setSubject(X509CertInfo.java:888)
// at sun.security.x509.X509CertInfo.set(X509CertInfo.java:415)
// at azdefault.Jdk8Bug.main(Jdk8Bug.java:22)
info.set( X509CertInfo.SUBJECT, subjNameVariable );
}
}
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
Use previous version of JDK.
java version "1.8.0"
Java(TM) SE Runtime Environment (build 1.8.0-b132)
Java HotSpot(TM) 64-Bit Server VM (build 25.0-b70, mixed mode)
ADDITIONAL OS VERSION INFORMATION :
Win 7 x64. Latest updates are applied.
EXTRA RELEVANT SYSTEM CONFIGURATION :
Nothing special
A DESCRIPTION OF THE PROBLEM :
X509CertInfo instanse of the class cannot add CertificateSubjectName instance.
REGRESSION. Last worked in version 7u51
ADDITIONAL REGRESSION INFORMATION:
java version "1.8.0"
Java(TM) SE Runtime Environment (build 1.8.0-b132)
Java HotSpot(TM) 64-Bit Server VM (build 25.0-b70, mixed mode)
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Execute following sample code. Result will be visible on the screen.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
X509CertInfo.add(...) method can add CertificateSubjectName instance as it could under JDK_7.
ACTUAL -
X509CertInfo.add(...) method cannot add CertificateSubjectName instance. Exception is thrown. This method works fine under JDK_7.
ERROR MESSAGES/STACK TRACES THAT OCCUR :
Exception in thread "main" java.security.cert.CertificateException: Subject class type invalid.
at sun.security.x509.X509CertInfo.setSubject(X509CertInfo.java:888)
at sun.security.x509.X509CertInfo.set(X509CertInfo.java:415)
at azdefault.Jdk8Bug.main(Jdk8Bug.java:22)
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
package azdefault;
import sun.security.x509.CertificateSubjectName;
import sun.security.x509.X500Name;
import sun.security.x509.X509CertInfo;
public class Jdk8Bug {
public static void main( String[] args ) throws Exception {
X500Name sampleX500Name = new X500Name( "CN=Sample Common Name" );
CertificateSubjectName subjNameVariable = new CertificateSubjectName( sampleX500Name );
X509CertInfo info = new X509CertInfo();
// This line works fine under JDK7 not only in such simple demo program but also in real world
// certificate manipulation program.
// This line fails under JDK8 with following exception:
// Exception in thread "main" java.security.cert.CertificateException: Subject class type invalid.
// at sun.security.x509.X509CertInfo.setSubject(X509CertInfo.java:888)
// at sun.security.x509.X509CertInfo.set(X509CertInfo.java:415)
// at azdefault.Jdk8Bug.main(Jdk8Bug.java:22)
info.set( X509CertInfo.SUBJECT, subjNameVariable );
}
}
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
Use previous version of JDK.
- relates to
-
JDK-7198416 CertificateIssuerName and CertificateSubjectName are redundant
-
- Closed
-