public class Main {
public Main() {
Runtime.
getRuntime().
addShutdownHook( public void run() {
try {
close();
}
}
})
);
}
public static void main
(String[] args
) { System.
out.
println("Enter main"); Main m = new Main();
m = new Main();
m = null;
System.
out.
println("Before System.exit(0);"); }
protected void finalize() {
System.
out.
println("Call finalize()"); }
protected void close() {
finalize();
}
}
cHVibGljIGNsYXNzIE1haW4gewoKICAgIHB1YmxpYyBNYWluKCkgewogICAgICAgIFJ1bnRpbWUuZ2V0UnVudGltZSgpLmFkZFNodXRkb3duSG9vaygKICAgICAgICAgICAgbmV3IFRocmVhZCgKICAgICAgICAgICAgICAgIG5ldyBSdW5uYWJsZSgpIHsKICAgICAgICAgICAgICAgICAgICBwdWJsaWMgdm9pZCBydW4oKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZSgpOwogICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChUaHJvd2FibGUgZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKGUpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KQogICAgICAgICk7CiAgICB9CgogICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgewogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRW50ZXIgbWFpbiIpOwogICAgICAgIE1haW4gbSA9IG5ldyBNYWluKCk7CiAgICAgICAgbSA9IG5ldyBNYWluKCk7CiAgICAgICAgbSA9IG51bGw7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJCZWZvcmUgU3lzdGVtLmV4aXQoMCk7Iik7CiAgICAgICAgU3lzdGVtLmV4aXQoMCk7CiAgICB9CgogICAgcHJvdGVjdGVkIHZvaWQgZmluYWxpemUoKSB7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJDYWxsIGZpbmFsaXplKCkiKTsKICAgIH0KCiAgICBwcm90ZWN0ZWQgdm9pZCBjbG9zZSgpIHsKICAgICAgICBmaW5hbGl6ZSgpOwogICAgfQp9