1 /* 2 * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. 8 * 9 * This code is distributed in the hope that it will be useful, but WITHOUT 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 12 * version 2 for more details (a copy is included in the LICENSE file that 13 * accompanied this code). 14 * 15 * You should have received a copy of the GNU General Public License version 16 * 2 along with this work; if not, write to the Free Software Foundation, 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20 * or visit www.oracle.com if you need additional information or have any 21 * questions. 22 */ 23 24 /* 25 * @test 26 * @bug 8003280 27 * @summary Add lambda tests 28 * check that Object methods are dispatched accordingly 29 * @author Maurizio Cimadamore 30 * @run main MethodReference12 31 */ 32 33 public class MethodReference12 { 34 foo(int i)35 interface SAM { void foo(int i); } 36 print(int i)37 static void print(int i) { 38 System.out.println(i); 39 } 40 main(String[] args)41 public static void main(String[] args) { 42 try { 43 test(MethodReference12::print); 44 test(i -> { System.out.println(i); } ); 45 } 46 catch (Throwable t) { 47 t.printStackTrace(); 48 throw new AssertionError("An error occurred"); 49 } 50 } 51 test(SAM s)52 static void test(SAM s) throws Throwable { 53 s.hashCode(); 54 s.equals(null); 55 s.toString(); 56 try { 57 s.notify(); //will throw IllegalMonitorStateException 58 } 59 catch (final IllegalMonitorStateException e) { } 60 try { 61 s.notifyAll(); //will throw IllegalMonitorStateException 62 } 63 catch (final IllegalMonitorStateException e) { } 64 try { 65 s.wait(1); //will throw IllegalMonitorStateException 66 } 67 catch (final IllegalMonitorStateException | InterruptedException e) { } 68 try { 69 s.wait(1,1); //will throw IllegalMonitorStateException 70 } 71 catch (final IllegalMonitorStateException | InterruptedException e) { } 72 try { 73 s.wait(); //will throw IllegalMonitorStateException 74 } 75 catch (final IllegalMonitorStateException | InterruptedException e) { } 76 } 77 } 78