static void javaSound_closeClipOnStop(final Clip clip) { javaSound_closeClipOnStop(clip, null); } static void javaSound_closeClipOnStop(final Clip clip, final Flag flag) { clip.addLineListener(new LineListener { public void update(LineEvent event) { if (event.getType() == LineEvent.Type.STOP) { print("javaSound closing clip"); clip.close(); if (flag != null) flag.raise(); } } }); }