public class TrickyJSR {

	private static final boolean P = Boolean.getBoolean("P");
	private static final boolean PP = Boolean.getBoolean("PP");
	private static final boolean QQ = Boolean.getBoolean("QQ");
	private static final boolean ZZ = Boolean.getBoolean("ZZ");

	public static void main(String[] argv) throws Throwable {

		int count = 0;

	loop:
		for (int i = 0; i < 10; ++i) {
			try {
				try {
					count++;

					if (PP) {
						System.out.println("MMM");
						throw new Throwable("X");
					}

					if (QQ)
						break loop;

					if (ZZ)
						throw new Throwable("ZX");


				} finally {
					count++;
					count += Math.max(count, ((count ^ 0xff) & 0x3) != 0 ? 10 : 20);
					if (P) throw new Exception("hah!");
				}
			} catch (Exception e) {
				System.out.println("Yeah");
			}
		}	

		System.out.println("count="+count);

	}
}

// vim:ts=4

@@ -19,32 +19,32 @@
 yJSR %7B%0A%0A
+%0A
 %09p
-rivate
+ublic
  static 
 final bo
@@ -27,32 +27,79 @@
 %0A%09public static 
+void main(String%5B%5D argv) throws Throwable %7B%0A%0A%09%09
 final boolean P 
@@ -122,39 +122,25 @@
 lean(%22P%22);%0A%09
-private static 
+%09
 final boolea
@@ -169,39 +169,25 @@
 ean(%22PP%22);%0A%09
-private static 
+%09
 final boolea
@@ -224,23 +224,9 @@
 );%0A%09
-private static 
+%09
 fina
@@ -271,68 +271,8 @@
 );%0A%0A
-%09public static void main(String%5B%5D argv) throws Throwable %7B%0A%0A
 %09%09in

Simplified slightly.