diff -r ad2ca2a4ab5e -r 0e5899f09dab src/share/classes/com/sun/tools/javac/api/MultiTaskListener.java --- a/src/share/classes/com/sun/tools/javac/api/MultiTaskListener.java Tue Sep 25 11:56:46 2012 +0100 +++ b/src/share/classes/com/sun/tools/javac/api/MultiTaskListener.java Tue Sep 25 13:06:58 2012 -0700 @@ -79,10 +79,8 @@ if (ccw.unwrap(l) == listener) throw new IllegalStateException(); } - TaskListener[] newListeners = new TaskListener[listeners.length + 1]; - System.arraycopy(listeners, 0, newListeners, 0, listeners.length); - newListeners[newListeners.length - 1] = ccw.wrap(listener); - listeners = newListeners; + listeners = Arrays.copyOf(listeners, listeners.length + 1); + listeners[listeners.length - 1] = ccw.wrap(listener); } public void remove(TaskListener listener) {