| /* |
| * @test /nodynamiccopyright/ |
| * @bug 6356530 |
| * @summary -Xlint:serial does not flag abstract classes with concrete methods/members |
| * @compile/fail/ref=FinalVariableAssignedToInCatchBlockTest.out -XDrawDiagnostics FinalVariableAssignedToInCatchBlockTest.java |
| */ |
| |
| import java.io.IOException; |
| |
| public class FinalVariableAssignedToInCatchBlockTest { |
| public void m1(int o) |
| { |
| final int i; |
| try { |
| if (o == 1) { |
| throw new IOException(); |
| } else if (o == 2) { |
| throw new InterruptedException(); |
| } else { |
| throw new Exception(); |
| } |
| } catch (IOException e) { |
| i = 1; |
| } catch (InterruptedException ie) { |
| i = 2; |
| } catch (Exception e) { |
| i = 3; |
| } finally { |
| i = 4; |
| } |
| } |
| |
| public void m2(int o) |
| { |
| final int i; |
| try { |
| if (o == 1) { |
| throw new IOException(); |
| } else if (o == 2) { |
| throw new InterruptedException(); |
| } else { |
| throw new Exception(); |
| } |
| } catch (IOException e) { |
| i = 1; |
| } catch (InterruptedException ie) { |
| i = 2; |
| } catch (Exception e) { |
| i = 3; |
| } |
| } |
| |
| public void m3(int o) throws Exception |
| { |
| final int i; |
| try { |
| if (o == 1) { |
| throw new IOException(); |
| } else if (o == 2) { |
| throw new InterruptedException(); |
| } else { |
| throw new Exception(); |
| } |
| } catch (IOException e) { |
| i = 1; |
| } catch (InterruptedException ie) { |
| i = 2; |
| } |
| i = 3; |
| } |
| } |