Hello,

FYI, over on core-libs

http://mail.openjdk.java.net/pipermail/core-libs-dev/2014-January/024375.html

there is a review discussion of removing old -source and -target settings from regression tests ahead of dropping javac support for source/target 1.5 and earlier later in JDK 9. The changes include the following modifications to two cert tests:

--- old/test/java/security/cert/PKIXBuilderParameters/InvalidParameters.java 2014-01-13 16:54:10.000000000 -0800 +++ new/test/java/security/cert/PKIXBuilderParameters/InvalidParameters.java 2014-01-13 16:54:10.000000000 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2014, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -21,16 +21,17 @@
  * questions.
  */

-/**
+/*
  * @test
  * @test 4422738
- * @compile -source 1.4 InvalidParameters.java
+ * @compile InvalidParameters.java
  * @run main InvalidParameters
  * @summary Make sure PKIXBuilderParameters(Set) detects invalid
  *          parameters and throws correct exceptions
  */
 import java.security.InvalidAlgorithmParameterException;
 import java.security.cert.PKIXBuilderParameters;
+import java.security.cert.TrustAnchor;
 import java.util.Collections;
 import java.util.Set;

@@ -53,8 +54,10 @@

         // make sure Set of invalid objects throws ClassCastException
         try {
+            @SuppressWarnings("unchecked") // Knowingly do something bad
+ Set<TrustAnchor> badSet = (Set<TrustAnchor>) (Set) Collections.singleton(new String());
             PKIXBuilderParameters p =
- new PKIXBuilderParameters(Collections.singleton(new String()), null);
+                new PKIXBuilderParameters(badSet, null);
             throw new Exception("should have thrown ClassCastException");
         } catch (ClassCastException cce) { }
     }
--- old/test/java/security/cert/PKIXParameters/InvalidParameters.java 2014-01-13 16:54:11.000000000 -0800 +++ new/test/java/security/cert/PKIXParameters/InvalidParameters.java 2014-01-13 16:54:10.000000000 -0800
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001, 2004, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2014, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -24,7 +24,7 @@
 /**
  * @test
  * @test 4422738
- * @compile -source 1.4 InvalidParameters.java
+ * @compile InvalidParameters.java
  * @run main InvalidParameters
* @summary Make sure PKIXParameters(Set) and setTrustAnchors() detects invalid
  *          parameters and throws correct exceptions
@@ -64,12 +64,14 @@
         } catch (NullPointerException npe) { }

         // make sure Set of invalid objects throws ClassCastException
+        @SuppressWarnings("unchecked") // Knowingly do something bad
+ Set<TrustAnchor> badSet = (Set<TrustAnchor>) (Set) Collections.singleton(new String());
         try {
- PKIXParameters p = new PKIXParameters(Collections.singleton(new String()));
+            PKIXParameters p = new PKIXParameters(badSet);
             throw new Exception("should have thrown ClassCastException");
         } catch (ClassCastException cce) { }
         try {
-            params.setTrustAnchors(Collections.singleton(new String()));
+            params.setTrustAnchors(badSet);
             throw new Exception("should have thrown ClassCastException");
         } catch (ClassCastException cce) { }
     }

In brief, raw types and unsafe casts are used to construct the corrupted sets without needing source 1.4.

Thanks,

-Joe

Reply via email to