< prev index next >

test/java/lang/String/concat/StringConcatFactoryInvariants.java

Print this page

        

@@ -64,11 +64,11 @@
 
     private static final char TAG_ARG   = '\u0001';
     private static final char TAG_CONST = '\u0002';
 
     public static void main(String[] args) throws Throwable {
-        MethodHandles.Lookup lookup = MethodHandles.publicLookup();
+        MethodHandles.Lookup lookup = MethodHandles.lookup();
         String methodName = "foo";
         MethodType mt = MethodType.methodType(String.class, String.class, int.class);
         String recipe = "" + TAG_ARG + TAG_ARG + TAG_CONST;
         String[] constants = new String[]{"bar"};
 

@@ -234,10 +234,18 @@
                 () -> StringConcatFactory.makeConcat(lookup, methodName, mtEmpty));
 
         // Advanced factory: test empty arguments
         ok("Ok to pass empty arguments",
                 () -> StringConcatFactory.makeConcatWithConstants(lookup, methodName, mtEmpty, recipeEmpty));
+
+        // Simple factory: public Lookup is rejected
+        fail("Passing public Lookup",
+                () -> StringConcatFactory.makeConcat(MethodHandles.publicLookup(), methodName, mtEmpty));
+
+        // Advanced factory: public Lookup is rejected
+        fail("Passing public Lookup",
+                () -> StringConcatFactory.makeConcatWithConstants(MethodHandles.publicLookup(), methodName, mtEmpty, recipeEmpty));
     }
 
     public static void ok(String msg, Callable runnable) {
         try {
             runnable.call();
< prev index next >