| public class ArrayStore |
| { |
| public static void main(String[] args) |
| { |
| ArrayStore s = new ArrayStore(); |
| |
| /* Check that bounds check takes precedence over array store check. */ |
| try |
| { |
| s.a(new String[1]); |
| } |
| catch (Exception x) |
| { |
| System.out.println (x.getClass().getName()); |
| } |
| |
| try |
| { |
| s.a(new String[2]); |
| } |
| catch (Exception x) |
| { |
| System.out.println (x.getClass().getName()); |
| } |
| |
| /* Check that += operator on String[] element works and throws bounds |
| exception. */ |
| try |
| { |
| s.b(new String[1]); |
| } |
| catch (Exception x) |
| { |
| System.out.println (x.getClass().getName()); |
| } |
| |
| String[] sb = new String[2]; |
| sb[1] = "foo"; |
| s.b(sb); |
| System.out.println (sb[1]); |
| } |
| |
| void a(Object[] oa) |
| { |
| oa[1] = new Integer(2); |
| } |
| |
| void b(String[] sa) |
| { |
| sa[1] += "bar"; |
| } |
| } |