Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8152684

MidiSystem.getSequencer() throws NullPointerException in MacOSX since Java 8

XMLWordPrintable

      FULL PRODUCT VERSION :
      Java(TM) SE Runtime Environment (build 1.8.0_73-b02)
      Java HotSpot(TM) 64-Bit Server VM (build 25.73-b02, mixed mode)

      ADDITIONAL OS VERSION INFORMATION :
      Darwin 14.5.0 Darwin Kernel Version 14.5.0: Tue Sep 1 21:23:09 PDT 2015; root:xnu-2782.50.1~1/RELEASE_X86_64 x86_64

      EXTRA RELEVANT SYSTEM CONFIGURATION :
      Since Java 8 in all MacOSX I tried, this bug occurred.

      A DESCRIPTION OF THE PROBLEM :
      Since Java 8 (all versions), MidiSystem.getSequencer() throws a NullPointerException. This did not occur in earlier versions of Java on a MacOSX system.

      REGRESSION. Last worked in version 7u80

      ADDITIONAL REGRESSION INFORMATION:
      Any Java earlier than V8 worked.

      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      Try to instantiate a Sequencer variable by using MidiSystem.getSequencer()

      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      Sequencer should be available and instantiated in variable 'sequencer'.
      ACTUAL -
      Program terminates with a NullPointerException.

      ERROR MESSAGES/STACK TRACES THAT OCCUR :
      Exception in thread "main" java.lang.NullPointerException
      at javax.sound.midi.MidiSystem.getFirstDevice(MidiSystem.java:1355)
      at javax.sound.midi.MidiSystem.getFirstDevice(MidiSystem.java:1411)
      at javax.sound.midi.MidiSystem.getFirstDevice(MidiSystem.java:1378)
      at javax.sound.midi.MidiSystem.getDefaultDevice(MidiSystem.java:1165)
      at javax.sound.midi.MidiSystem.getDefaultDeviceWrapper(MidiSystem.java:1115)
      at javax.sound.midi.MidiSystem.getSynthesizer(MidiSystem.java:351)
      at javax.sound.midi.MidiSystem.getSequencer(MidiSystem.java:458)
      at javax.sound.midi.MidiSystem.getSequencer(MidiSystem.java:392)
      at midi.Midi.main(Midi.java:7)

      REPRODUCIBILITY :
      This bug can be reproduced always.

      ---------- BEGIN SOURCE ----------
      package midi;
      import javax.sound.midi.*;

      public class Midi {
      public static void main(String[] args) {
      try {
      Sequencer sequencer = MidiSystem.getSequencer();
      } catch (MidiUnavailableException e) {
      e.printStackTrace();
      }
      }
      }
      ---------- END SOURCE ----------

      CUSTOMER SUBMITTED WORKAROUND :
      No workaround found (except sticking with older versions 6/7).

      SUPPORT :
      YES

            serb Sergey Bylokhov
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: