/* package whatever; // don't place package name! */
import java.util.* ;
import java.lang.* ;
import java.io.* ;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
private static void sop
( String s
) { System .
out .
println ( s
) ; } {
sop( "ANONYMOUS, NO EXCEPTION" ) ;
) {
System .
out .
println ( br.
toString ( ) ) ; e.printStackTrace ( ) ;
}
sop( "ANONYMOUS, EXCEPTION" ) ;
) {
System .
out .
println ( br.
toString ( ) ) ; e.printStackTrace ( ) ;
}
sop( "NAMED, NO EXCEPTION" ) ;
try (
final Reader mr
= new MyReader
( ) ; ) {
System .
out .
println ( br.
toString ( ) ) ; e.printStackTrace ( ) ;
}
sop( "NAMED, EXCEPTION" ) ;
try (
final Reader mr
= new MyReader
( ) ; ) {
System .
out .
println ( br.
toString ( ) ) ; e.printStackTrace ( ) ;
}
}
private static final class MyReader
extends Reader {
public MyReader( ) {
super ( ) ;
System .
out .
println ( "hello from reader" ) ; }
@Override
public void close( ) {
System .
out .
println ( "bye from reader" ) ; }
@Override
public int read( char [ ] c, int m, int n) {
return 37 ;
}
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXByaXZhdGUgc3RhdGljIHZvaWQgc29wKFN0cmluZyBzKSB7IFN5c3RlbS5vdXQucHJpbnRsbihzKTsgfQoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uCgl7CgkJc29wKCJBTk9OWU1PVVMsIE5PIEVYQ0VQVElPTiIpOwoJCXRyeSAoZmluYWwgQnVmZmVyZWRSZWFkZXIgYnIgPSBuZXcgQnVmZmVyZWRSZWFkZXIobmV3IE15UmVhZGVyKCksIDQyKQoJCSkgewoJCQlTeXN0ZW0ub3V0LnByaW50bG4oYnIudG9TdHJpbmcoKSk7CgkJfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKCQkJZS5wcmludFN0YWNrVHJhY2UoKTsKCQl9CgkJCgkJc29wKCJBTk9OWU1PVVMsIEVYQ0VQVElPTiIpOwoJCXRyeSAoZmluYWwgQnVmZmVyZWRSZWFkZXIgYnIgPSBuZXcgQnVmZmVyZWRSZWFkZXIobmV3IE15UmVhZGVyKCksIC00MikKCQkpIHsKCQkJU3lzdGVtLm91dC5wcmludGxuKGJyLnRvU3RyaW5nKCkpOwoJCX0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CgkJCWUucHJpbnRTdGFja1RyYWNlKCk7CgkJfQoJCQoJCXNvcCgiTkFNRUQsIE5PIEVYQ0VQVElPTiIpOwoJCXRyeSAoCgkJCWZpbmFsIFJlYWRlciBtciA9IG5ldyBNeVJlYWRlcigpOwoJCQlmaW5hbCBCdWZmZXJlZFJlYWRlciBiciA9IG5ldyBCdWZmZXJlZFJlYWRlcihtciwgNDIpCgkJKSB7CgkJCVN5c3RlbS5vdXQucHJpbnRsbihici50b1N0cmluZygpKTsKCQl9IGNhdGNoIChFeGNlcHRpb24gZSkgewoJCQllLnByaW50U3RhY2tUcmFjZSgpOwoJCX0KCQkKCQlzb3AoIk5BTUVELCBFWENFUFRJT04iKTsKCQl0cnkgKAoJCQlmaW5hbCBSZWFkZXIgbXIgPSBuZXcgTXlSZWFkZXIoKTsKCQkJZmluYWwgQnVmZmVyZWRSZWFkZXIgYnIgPSBuZXcgQnVmZmVyZWRSZWFkZXIobXIsIC00MikKCQkpIHsKCQkJU3lzdGVtLm91dC5wcmludGxuKGJyLnRvU3RyaW5nKCkpOwoJCX0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7CgkJCWUucHJpbnRTdGFja1RyYWNlKCk7CgkJfQoJfQoJCglwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyBNeVJlYWRlciBleHRlbmRzIFJlYWRlcgoJewoJCXB1YmxpYyBNeVJlYWRlcigpIHsKCQkJc3VwZXIoKTsKCQkJU3lzdGVtLm91dC5wcmludGxuKCJoZWxsbyBmcm9tIHJlYWRlciIpOwoJCX0KCQlAT3ZlcnJpZGUKCQlwdWJsaWMgdm9pZCBjbG9zZSgpIHsKCQkJU3lzdGVtLm91dC5wcmludGxuKCJieWUgZnJvbSByZWFkZXIiKTsKCQl9CgkJQE92ZXJyaWRlCgkJcHVibGljIGludCByZWFkKGNoYXJbXSBjLCBpbnQgbSwgaW50IG4pIHsKCQkJcmV0dXJuIDM3OwoJCX0KCX0KfQ==
stdout
ANONYMOUS, NO EXCEPTION
hello from reader
java.io.BufferedReader@52e922
bye from reader
ANONYMOUS, EXCEPTION
hello from reader
NAMED, NO EXCEPTION
hello from reader
java.io.BufferedReader@10dea4e
bye from reader
bye from reader
NAMED, EXCEPTION
hello from reader
bye from reader
stderr
java.lang.IllegalArgumentException: Buffer size <= 0
at java.io.BufferedReader.<init>(BufferedReader.java:103)
at Ideone.main(Main.java:22)
java.lang.IllegalArgumentException: Buffer size <= 0
at java.io.BufferedReader.<init>(BufferedReader.java:103)
at Ideone.main(Main.java:42)