/* * @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; } }