diff -r f35effa10297 -r dac1b0a17386 src/share/classes/com/sun/tools/javac/jvm/Code.java --- a/src/share/classes/com/sun/tools/javac/jvm/Code.java Wed Mar 19 17:42:22 2014 +0000 +++ b/src/share/classes/com/sun/tools/javac/jvm/Code.java Wed Jan 15 13:49:57 2014 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -2189,9 +2189,9 @@ // Keep local variables if // 1) we need them for debug information // 2) it is an exception type and it contains type annotations - if (!varDebugInfo && - (!var.sym.isExceptionParameter() || - var.sym.hasTypeAnnotations())) return; + boolean keepLocalVariables = varDebugInfo || + (var.sym.isExceptionParameter() && var.sym.hasTypeAnnotations()); + if (!keepLocalVariables) return; if ((var.sym.flags() & Flags.SYNTHETIC) != 0) return; if (varBuffer == null) varBuffer = new LocalVar[20];