<Sound Dev> JDK 9 RFR of JDK-8044553: Fix raw and unchecked lint warnings in javax.sound.*

Joe Darcy joe.darcy at oracle.com
Wed Jun 4 07:25:16 UTC 2014


Hello,

Please review these changes to address

     JDK-8044553: Fix raw and unchecked lint warnings in javax.sound.*
     http://cr.openjdk.java.net/~darcy/8044553.0/

Patch below.

Thanks,

-Joe

--- old/src/share/classes/javax/sound/midi/MidiFileFormat.java 
2014-06-04 00:19:41.000000000 -0700
+++ new/src/share/classes/javax/sound/midi/MidiFileFormat.java 
2014-06-04 00:19:41.000000000 -0700
@@ -266,6 +266,7 @@
       * @see #getProperty(String)
       * @since 1.5
       */
+    @SuppressWarnings("unchecked") // Cast of result of clone
      public Map<String,Object> properties() {
          Map<String,Object> ret;
          if (properties == null) {
--- old/src/share/classes/javax/sound/midi/MidiSystem.java 2014-06-04 
00:19:41.000000000 -0700
+++ new/src/share/classes/javax/sound/midi/MidiSystem.java 2014-06-04 
00:19:41.000000000 -0700
@@ -187,17 +187,17 @@
       * an array of length 0 is returned.
       */
      public static MidiDevice.Info[] getMidiDeviceInfo() {
-        List allInfos = new ArrayList();
-        List providers = getMidiDeviceProviders();
+        List<MidiDevice.Info> allInfos = new ArrayList<>();
+        List<MidiDeviceProvider> providers = getMidiDeviceProviders();

          for(int i = 0; i < providers.size(); i++) {
-            MidiDeviceProvider provider = (MidiDeviceProvider) 
providers.get(i);
+            MidiDeviceProvider provider = providers.get(i);
              MidiDevice.Info[] tmpinfo = provider.getDeviceInfo();
              for (int j = 0; j < tmpinfo.length; j++) {
                  allInfos.add( tmpinfo[j] );
              }
          }
-        MidiDevice.Info[] infosArray = (MidiDevice.Info[]) 
allInfos.toArray(new MidiDevice.Info[0]);
+        MidiDevice.Info[] infosArray = allInfos.toArray(new 
MidiDevice.Info[0]);
          return infosArray;
      }

@@ -214,10 +214,10 @@
       * @see #getMidiDeviceInfo
       */
      public static MidiDevice getMidiDevice(MidiDevice.Info info) 
throws MidiUnavailableException {
-        List providers = getMidiDeviceProviders();
+        List<MidiDeviceProvider> providers = getMidiDeviceProviders();

          for(int i = 0; i < providers.size(); i++) {
-            MidiDeviceProvider provider = (MidiDeviceProvider) 
providers.get(i);
+            MidiDeviceProvider provider = providers.get(i);
              if (provider.isDeviceSupported(info)) {
                  MidiDevice device = provider.getDevice(info);
                  return device;
@@ -528,10 +528,10 @@
          SoundbankReader sp = null;
          Soundbank s = null;

-        List providers = getSoundbankReaders();
+        List<SoundbankReader> providers = getSoundbankReaders();

          for(int i = 0; i < providers.size(); i++) {
-            sp = (SoundbankReader)providers.get(i);
+            sp = providers.get(i);
              s = sp.getSoundbank(stream);

              if( s!= null) {
@@ -559,10 +559,10 @@
          SoundbankReader sp = null;
          Soundbank s = null;

-        List providers = getSoundbankReaders();
+        List<SoundbankReader> providers = getSoundbankReaders();

          for(int i = 0; i < providers.size(); i++) {
-            sp = (SoundbankReader)providers.get(i);
+            sp = providers.get(i);
              s = sp.getSoundbank(url);

              if( s!= null) {
@@ -591,10 +591,10 @@
          SoundbankReader sp = null;
          Soundbank s = null;

-        List providers = getSoundbankReaders();
+        List<SoundbankReader> providers = getSoundbankReaders();

          for(int i = 0; i < providers.size(); i++) {
-            sp = (SoundbankReader)providers.get(i);
+            sp = providers.get(i);
              s = sp.getSoundbank(file);

              if( s!= null) {
@@ -641,11 +641,11 @@
      public static MidiFileFormat getMidiFileFormat(InputStream stream)
          throws InvalidMidiDataException, IOException {

-        List providers = getMidiFileReaders();
+        List<MidiFileReader> providers = getMidiFileReaders();
          MidiFileFormat format = null;

          for(int i = 0; i < providers.size(); i++) {
-            MidiFileReader reader = (MidiFileReader) providers.get(i);
+            MidiFileReader reader =  providers.get(i);
              try {
                  format = reader.getMidiFileFormat( stream ); // throws 
IOException
                  break;
@@ -687,11 +687,11 @@
      public static MidiFileFormat getMidiFileFormat(URL url)
          throws InvalidMidiDataException, IOException {

-        List providers = getMidiFileReaders();
+        List<MidiFileReader> providers = getMidiFileReaders();
          MidiFileFormat format = null;

          for(int i = 0; i < providers.size(); i++) {
-            MidiFileReader reader = (MidiFileReader) providers.get(i);
+            MidiFileReader reader = providers.get(i);
              try {
                  format = reader.getMidiFileFormat( url ); // throws 
IOException
                  break;
@@ -733,11 +733,11 @@
      public static MidiFileFormat getMidiFileFormat(File file)
          throws InvalidMidiDataException, IOException {

-        List providers = getMidiFileReaders();
+        List<MidiFileReader> providers = getMidiFileReaders();
          MidiFileFormat format = null;

          for(int i = 0; i < providers.size(); i++) {
-            MidiFileReader reader = (MidiFileReader) providers.get(i);
+            MidiFileReader reader = providers.get(i);
              try {
                  format = reader.getMidiFileFormat( file ); // throws 
IOException
                  break;
@@ -788,11 +788,11 @@
      public static Sequence getSequence(InputStream stream)
          throws InvalidMidiDataException, IOException {

-        List providers = getMidiFileReaders();
+        List<MidiFileReader> providers = getMidiFileReaders();
          Sequence sequence = null;

          for(int i = 0; i < providers.size(); i++) {
-            MidiFileReader reader = (MidiFileReader) providers.get(i);
+            MidiFileReader reader = providers.get(i);
              try {
                  sequence = reader.getSequence( stream ); // throws 
IOException
                  break;
@@ -832,11 +832,11 @@
      public static Sequence getSequence(URL url)
          throws InvalidMidiDataException, IOException {

-        List providers = getMidiFileReaders();
+        List<MidiFileReader> providers = getMidiFileReaders();
          Sequence sequence = null;

          for(int i = 0; i < providers.size(); i++) {
-            MidiFileReader reader = (MidiFileReader) providers.get(i);
+            MidiFileReader reader = providers.get(i);
              try {
                  sequence = reader.getSequence( url ); // throws 
IOException
                  break;
@@ -876,11 +876,11 @@
      public static Sequence getSequence(File file)
          throws InvalidMidiDataException, IOException {

-        List providers = getMidiFileReaders();
+        List<MidiFileReader> providers = getMidiFileReaders();
          Sequence sequence = null;

          for(int i = 0; i < providers.size(); i++) {
-            MidiFileReader reader = (MidiFileReader) providers.get(i);
+            MidiFileReader reader = providers.get(i);
              try {
                  sequence = reader.getSequence( file ); // throws 
IOException
                  break;
@@ -905,13 +905,13 @@
       */
      public static int[] getMidiFileTypes() {

-        List providers = getMidiFileWriters();
-        Set allTypes = new HashSet();
+        List<MidiFileWriter> providers = getMidiFileWriters();
+        Set<Integer> allTypes = new HashSet<>();

          // gather from all the providers

          for (int i = 0; i < providers.size(); i++ ) {
-            MidiFileWriter writer = (MidiFileWriter) providers.get(i);
+            MidiFileWriter writer = providers.get(i);
              int[] types = writer.getMidiFileTypes();
              for (int j = 0; j < types.length; j++ ) {
                  allTypes.add(new Integer(types[j]));
@@ -919,9 +919,9 @@
          }
          int resultTypes[] = new int[allTypes.size()];
          int index = 0;
-        Iterator iterator = allTypes.iterator();
+        Iterator<Integer> iterator = allTypes.iterator();
          while (iterator.hasNext()) {
-            Integer integer = (Integer) iterator.next();
+            Integer integer = iterator.next();
              resultTypes[index++] = integer.intValue();
          }
          return resultTypes;
@@ -937,10 +937,10 @@
       */
      public static boolean isFileTypeSupported(int fileType) {

-        List providers = getMidiFileWriters();
+        List<MidiFileWriter> providers = getMidiFileWriters();

          for (int i = 0; i < providers.size(); i++ ) {
-            MidiFileWriter writer = (MidiFileWriter) providers.get(i);
+            MidiFileWriter writer = providers.get(i);
              if( writer.isFileTypeSupported(fileType)) {
                  return true;
              }
@@ -959,13 +959,13 @@
       */
      public static int[] getMidiFileTypes(Sequence sequence) {

-        List providers = getMidiFileWriters();
-        Set allTypes = new HashSet();
+        List<MidiFileWriter> providers = getMidiFileWriters();
+        Set<Integer> allTypes = new HashSet<>();

          // gather from all the providers

          for (int i = 0; i < providers.size(); i++ ) {
-            MidiFileWriter writer = (MidiFileWriter) providers.get(i);
+            MidiFileWriter writer = providers.get(i);
              int[] types = writer.getMidiFileTypes(sequence);
              for (int j = 0; j < types.length; j++ ) {
                  allTypes.add(new Integer(types[j]));
@@ -973,9 +973,9 @@
          }
          int resultTypes[] = new int[allTypes.size()];
          int index = 0;
-        Iterator iterator = allTypes.iterator();
+        Iterator<Integer> iterator = allTypes.iterator();
          while (iterator.hasNext()) {
-            Integer integer = (Integer) iterator.next();
+            Integer integer = iterator.next();
              resultTypes[index++] = integer.intValue();
          }
          return resultTypes;
@@ -993,10 +993,10 @@
       */
      public static boolean isFileTypeSupported(int fileType, Sequence 
sequence) {

-        List providers = getMidiFileWriters();
+        List<MidiFileWriter> providers = getMidiFileWriters();

          for (int i = 0; i < providers.size(); i++ ) {
-            MidiFileWriter writer = (MidiFileWriter) providers.get(i);
+            MidiFileWriter writer = providers.get(i);
              if( writer.isFileTypeSupported(fileType,sequence)) {
                  return true;
              }
@@ -1020,12 +1020,12 @@
       */
      public static int write(Sequence in, int fileType, OutputStream 
out) throws IOException {

-        List providers = getMidiFileWriters();
+        List<MidiFileWriter> providers = getMidiFileWriters();
          //$$fb 2002-04-17: Fix for 4635287: Standard MidiFileWriter 
cannot write empty Sequences
          int bytesWritten = -2;

          for (int i = 0; i < providers.size(); i++ ) {
-            MidiFileWriter writer = (MidiFileWriter) providers.get(i);
+            MidiFileWriter writer = providers.get(i);
              if( writer.isFileTypeSupported( fileType, in ) ) {

                  bytesWritten = writer.write(in, fileType, out);
@@ -1054,12 +1054,12 @@
       */
      public static int write(Sequence in, int type, File out) throws 
IOException {

-        List providers = getMidiFileWriters();
+        List<MidiFileWriter> providers = getMidiFileWriters();
          //$$fb 2002-04-17: Fix for 4635287: Standard MidiFileWriter 
cannot write empty Sequences
          int bytesWritten = -2;

          for (int i = 0; i < providers.size(); i++ ) {
-            MidiFileWriter writer = (MidiFileWriter) providers.get(i);
+            MidiFileWriter writer = providers.get(i);
              if( writer.isFileTypeSupported( type, in ) ) {

                  bytesWritten = writer.write(in, type, out);
@@ -1075,24 +1075,24 @@


      // HELPER METHODS
-
-    private static List getMidiDeviceProviders() {
-        return getProviders(MidiDeviceProvider.class);
+    @SuppressWarnings("unchecked")
+    private static List<MidiDeviceProvider> getMidiDeviceProviders() {
+        return (List<MidiDeviceProvider>) 
getProviders(MidiDeviceProvider.class);
      }

-
-    private static List getSoundbankReaders() {
-        return getProviders(SoundbankReader.class);
+    @SuppressWarnings("unchecked")
+    private static List<SoundbankReader> getSoundbankReaders() {
+        return (List<SoundbankReader>) getProviders(SoundbankReader.class);
      }

-
-    private static List getMidiFileWriters() {
-        return getProviders(MidiFileWriter.class);
+    @SuppressWarnings("unchecked")
+    private static List<MidiFileWriter> getMidiFileWriters() {
+        return (List<MidiFileWriter>) getProviders(MidiFileWriter.class);
      }

-
-    private static List getMidiFileReaders() {
-        return getProviders(MidiFileReader.class);
+    @SuppressWarnings("unchecked")
+    private static List<MidiFileReader> getMidiFileReaders() {
+        return (List<MidiFileReader>) getProviders(MidiFileReader.class);
      }


@@ -1109,7 +1109,7 @@
       * Sequencer.class, Receiver.class or Transmitter.class.
       * @throws  MidiUnavalableException on failure.
       */
-    private static MidiDevice getDefaultDeviceWrapper(Class deviceClass)
+    private static MidiDevice getDefaultDeviceWrapper(Class<?> deviceClass)
          throws MidiUnavailableException{
          try {
              return getDefaultDevice(deviceClass);
@@ -1128,8 +1128,8 @@
       * Sequencer.class, Receiver.class or Transmitter.class.
       * @throws  IllegalArgumentException on failure.
       */
-    private static MidiDevice getDefaultDevice(Class deviceClass) {
-        List providers = getMidiDeviceProviders();
+    private static MidiDevice getDefaultDevice(Class<?> deviceClass) {
+        List<MidiDeviceProvider> providers = getMidiDeviceProviders();
          String providerClassName = 
JDK13Services.getDefaultProviderClassName(deviceClass);
          String instanceName = 
JDK13Services.getDefaultInstanceName(deviceClass);
          MidiDevice device;
@@ -1179,9 +1179,10 @@
          @return A MidiDeviceProvider of the requested class, or null 
if none
          is found.
      */
-    private static MidiDeviceProvider getNamedProvider(String 
providerClassName, List providers) {
+    private static MidiDeviceProvider getNamedProvider(String 
providerClassName,
+ List<MidiDeviceProvider> providers) {
          for(int i = 0; i < providers.size(); i++) {
-            MidiDeviceProvider provider = (MidiDeviceProvider) 
providers.get(i);
+            MidiDeviceProvider provider = providers.get(i);
              if (provider.getClass().getName().equals(providerClassName)) {
                  return provider;
              }
@@ -1200,7 +1201,7 @@
      */
      private static MidiDevice getNamedDevice(String deviceName,
                                               MidiDeviceProvider provider,
-                                             Class deviceClass) {
+                                             Class<?> deviceClass) {
          MidiDevice device;
          // try to get MIDI port
          device = getNamedDevice(deviceName, provider, deviceClass,
@@ -1232,7 +1233,7 @@
       */
      private static MidiDevice getNamedDevice(String deviceName,
                                               MidiDeviceProvider provider,
-                                             Class deviceClass,
+                                             Class<?> deviceClass,
                                               boolean allowSynthesizer,
                                               boolean allowSequencer) {
          MidiDevice.Info[] infos = provider.getDeviceInfo();
@@ -1259,8 +1260,8 @@
          @return A Mixer matching the requirements, or null if none is 
found.
      */
      private static MidiDevice getNamedDevice(String deviceName,
-                                             List providers,
-                                             Class deviceClass) {
+ List<MidiDeviceProvider> providers,
+                                             Class<?> deviceClass) {
          MidiDevice device;
          // try to get MIDI port
          device = getNamedDevice(deviceName, providers, deviceClass,
@@ -1292,12 +1293,12 @@
          @return A Mixer matching the requirements, or null if none is 
found.
       */
      private static MidiDevice getNamedDevice(String deviceName,
-                                             List providers,
-                                             Class deviceClass,
+ List<MidiDeviceProvider> providers,
+                                             Class<?> deviceClass,
                                               boolean allowSynthesizer,
                                               boolean allowSequencer) {
          for(int i = 0; i < providers.size(); i++) {
-            MidiDeviceProvider provider = (MidiDeviceProvider) 
providers.get(i);
+            MidiDeviceProvider provider = providers.get(i);
              MidiDevice device = getNamedDevice(deviceName, provider,
                                                 deviceClass,
                                                 allowSynthesizer,
@@ -1318,7 +1319,7 @@
          appropriate device is found.
      */
      private static MidiDevice getFirstDevice(MidiDeviceProvider provider,
-                                             Class deviceClass) {
+                                             Class<?> deviceClass) {
          MidiDevice device;
          // try to get MIDI port
          device = getFirstDevice(provider, deviceClass,
@@ -1348,7 +1349,7 @@
          appropriate device is found.
       */
      private static MidiDevice getFirstDevice(MidiDeviceProvider provider,
-                                             Class deviceClass,
+                                             Class<?> deviceClass,
                                               boolean allowSynthesizer,
                                               boolean allowSequencer) {
          MidiDevice.Info[] infos = provider.getDeviceInfo();
@@ -1371,8 +1372,8 @@
          @return A MidiDevice that is considered appropriate, or null
          if none is found.
      */
-    private static MidiDevice getFirstDevice(List providers,
-                                             Class deviceClass) {
+    private static MidiDevice getFirstDevice(List<MidiDeviceProvider> 
providers,
+                                             Class<?> deviceClass) {
          MidiDevice device;
          // try to get MIDI port
          device = getFirstDevice(providers, deviceClass,
@@ -1402,12 +1403,12 @@
          @return A MidiDevice that is considered appropriate, or null
          if none is found.
       */
-    private static MidiDevice getFirstDevice(List providers,
-                                             Class deviceClass,
+    private static MidiDevice getFirstDevice(List<MidiDeviceProvider> 
providers,
+                                             Class<?> deviceClass,
                                               boolean allowSynthesizer,
                                               boolean allowSequencer) {
          for(int i = 0; i < providers.size(); i++) {
-            MidiDeviceProvider provider = (MidiDeviceProvider) 
providers.get(i);
+            MidiDeviceProvider provider = providers.get(i);
              MidiDevice device = getFirstDevice(provider, deviceClass,
                                                 allowSynthesizer,
                                                 allowSequencer);
@@ -1441,11 +1442,11 @@
          rules given above, false otherwise.
      */
      private static boolean isAppropriateDevice(MidiDevice device,
-                                               Class deviceClass,
+                                               Class<?> deviceClass,
                                                 boolean allowSynthesizer,
                                                 boolean allowSequencer) {
          if (deviceClass.isInstance(device)) {
-            // This clause is for deviceClass being either Synthesizer
+           // This clause is for deviceClass being either Synthesizer
              // or Sequencer.
              return true;
          } else {
@@ -1479,7 +1480,7 @@
       * @return a List of instances of providers for the requested service.
       * If no providers are available, a List of length 0 will be returned.
       */
-    private static List getProviders(Class providerClass) {
-        return JDK13Services.getProviders(providerClass);
+     private static List<?> getProviders(Class<?> providerClass) {
+         return JDK13Services.getProviders(providerClass);
      }
  }
--- old/src/share/classes/javax/sound/midi/SoundbankResource.java 
2014-06-04 00:19:42.000000000 -0700
+++ new/src/share/classes/javax/sound/midi/SoundbankResource.java 
2014-06-04 00:19:42.000000000 -0700
@@ -83,7 +83,7 @@
      /**
       * The class used to represent the sample's data.
       */
-    private final Class dataClass;
+    private final Class<?> dataClass;


      /**
--- old/src/share/classes/javax/sound/midi/Track.java    2014-06-04 
00:19:42.000000000 -0700
+++ new/src/share/classes/javax/sound/midi/Track.java    2014-06-04 
00:19:42.000000000 -0700
@@ -66,10 +66,10 @@
      // TODO: use arrays for faster access

      // the list containing the events
-    private ArrayList eventsList = new ArrayList();
+    private ArrayList<MidiEvent> eventsList = new ArrayList<>();

      // use a hashset to detect duplicate events in add(MidiEvent)
-    private HashSet set = new HashSet();
+    private HashSet<MidiEvent> set = new HashSet<>();

      private MidiEvent eotEvent;

@@ -108,7 +108,7 @@
                  // get the last event
                  MidiEvent lastEvent = null;
                  if (eventsCount > 0) {
-                    lastEvent = (MidiEvent) eventsList.get(eventsCount 
- 1);
+                    lastEvent = eventsList.get(eventsCount - 1);
                  }
                  // sanity check that we have a correct end-of-track
                  if (lastEvent != eotEvent) {
@@ -148,7 +148,7 @@
                  // tick order
                  int i = eventsCount;
                  for ( ; i > 0; i--) {
-                    if (event.getTick() >= 
((MidiEvent)eventsList.get(i-1)).getTick()) {
+                    if (event.getTick() >= 
(eventsList.get(i-1)).getTick()) {
                          break;
                      }
                  }
@@ -220,7 +220,7 @@
      public MidiEvent get(int index) throws 
ArrayIndexOutOfBoundsException {
          try {
              synchronized(eventsList) {
-                return (MidiEvent)eventsList.get(index);
+                return eventsList.get(index);
              }
          } catch (IndexOutOfBoundsException ioobe) {
              throw new ArrayIndexOutOfBoundsException(ioobe.getMessage());
@@ -253,7 +253,7 @@
          long ret = 0;
          synchronized (eventsList) {
              if (eventsList.size() > 0) {
-                ret = ((MidiEvent)eventsList.get(eventsList.size() - 
1)).getTick();
+                ret = (eventsList.get(eventsList.size() - 1)).getTick();
              }
          }
          return ret;
--- old/src/share/classes/javax/sound/sampled/AudioFileFormat.java 
2014-06-04 00:19:43.000000000 -0700
+++ new/src/share/classes/javax/sound/sampled/AudioFileFormat.java 
2014-06-04 00:19:43.000000000 -0700
@@ -244,10 +244,11 @@
       * @see #getProperty(String)
       * @since 1.5
       */
+    @SuppressWarnings("unchecked") // Cast of result of clone
      public Map<String,Object> properties() {
          Map<String,Object> ret;
          if (properties == null) {
-            ret = new HashMap<String,Object>(0);
+            ret = new HashMap<>(0);
          } else {
              ret = (Map<String,Object>) (properties.clone());
          }
--- old/src/share/classes/javax/sound/sampled/AudioFormat.java 
2014-06-04 00:19:43.000000000 -0700
+++ new/src/share/classes/javax/sound/sampled/AudioFormat.java 
2014-06-04 00:19:43.000000000 -0700
@@ -396,10 +396,11 @@
       * @see #getProperty(String)
       * @since 1.5
       */
+    @SuppressWarnings("unchecked") // Cast of result of clone.
      public Map<String,Object> properties() {
          Map<String,Object> ret;
          if (properties == null) {
-            ret = new HashMap<String,Object>(0);
+            ret = new HashMap<>(0);
          } else {
              ret = (Map<String,Object>) (properties.clone());
          }
--- old/src/share/classes/javax/sound/sampled/AudioSystem.java 
2014-06-04 00:19:44.000000000 -0700
+++ new/src/share/classes/javax/sound/sampled/AudioSystem.java 
2014-06-04 00:19:44.000000000 -0700
@@ -196,8 +196,8 @@
       */
      public static Mixer.Info[] getMixerInfo() {

-        List infos = getMixerInfoList();
-        Mixer.Info[] allInfos = (Mixer.Info[]) infos.toArray(new 
Mixer.Info[infos.size()]);
+        List<Mixer.Info> infos = getMixerInfoList();
+        Mixer.Info[] allInfos = infos.toArray(new 
Mixer.Info[infos.size()]);
          return allInfos;
      }

@@ -216,12 +216,12 @@
      public static Mixer getMixer(Mixer.Info info) {

          Mixer mixer = null;
-        List providers = getMixerProviders();
+        List<MixerProvider> providers = getMixerProviders();

          for(int i = 0; i < providers.size(); i++ ) {

              try {
-                return ((MixerProvider)providers.get(i)).getMixer(info);
+                return providers.get(i).getMixer(info);

              } catch (IllegalArgumentException e) {
              } catch (NullPointerException e) {
@@ -238,7 +238,7 @@
          if (info == null) {
              for(int i = 0; i < providers.size(); i++ ) {
                  try {
-                    MixerProvider provider = (MixerProvider) 
providers.get(i);
+                    MixerProvider provider = providers.get(i);
                      Mixer.Info[] infos = provider.getMixerInfo();
                      // start from 0 to last device (do not reverse 
this order)
                      for (int ii = 0; ii < infos.length; ii++) {
@@ -274,7 +274,7 @@
       */
      public static Line.Info[] getSourceLineInfo(Line.Info info) {

-        Vector vector = new Vector();
+        Vector<Line.Info> vector = new Vector<>();
          Line.Info[] currentInfoArray;

          Mixer mixer;
@@ -294,7 +294,7 @@
          Line.Info[] returnedArray = new Line.Info[vector.size()];

          for (int i = 0; i < returnedArray.length; i++) {
-            returnedArray[i] = (Line.Info)vector.get(i);
+            returnedArray[i] = vector.get(i);
          }

          return returnedArray;
@@ -314,7 +314,7 @@
       */
      public static Line.Info[] getTargetLineInfo(Line.Info info) {

-        Vector vector = new Vector();
+        Vector<Line.Info> vector = new Vector<>();
          Line.Info[] currentInfoArray;

          Mixer mixer;
@@ -334,7 +334,7 @@
          Line.Info[] returnedArray = new Line.Info[vector.size()];

          for (int i = 0; i < returnedArray.length; i++) {
-            returnedArray[i] = (Line.Info)vector.get(i);
+            returnedArray[i] = vector.get(i);
          }

          return returnedArray;
@@ -408,7 +408,7 @@
       */
      public static Line getLine(Line.Info info) throws 
LineUnavailableException {
          LineUnavailableException lue = null;
-        List providers = getMixerProviders();
+        List<MixerProvider> providers = getMixerProviders();


          // 1: try from default mixer for this line class
@@ -427,7 +427,7 @@

          // 2: if that doesn't work, try to find any mixing mixer
          for(int i = 0; i < providers.size(); i++) {
-            MixerProvider provider = (MixerProvider) providers.get(i);
+            MixerProvider provider = providers.get(i);
              Mixer.Info[] infos = provider.getMixerInfo();

              for (int j = 0; j < infos.length; j++) {
@@ -449,7 +449,7 @@

          // 3: if that didn't work, try to find any non-mixing mixer
          for(int i = 0; i < providers.size(); i++) {
-            MixerProvider provider = (MixerProvider) providers.get(i);
+            MixerProvider provider = providers.get(i);
              Mixer.Info[] infos = provider.getMixerInfo();
              for (int j = 0; j < infos.length; j++) {
                  try {
@@ -764,14 +764,14 @@
       */
      public static AudioFormat.Encoding[] 
getTargetEncodings(AudioFormat.Encoding sourceEncoding) {

-        List codecs = getFormatConversionProviders();
-        Vector encodings = new Vector();
+        List<FormatConversionProvider> codecs = 
getFormatConversionProviders();
+        Vector<AudioFormat.Encoding> encodings = new Vector<>();

          AudioFormat.Encoding encs[] = null;

          // gather from all the codecs
          for(int i=0; i<codecs.size(); i++ ) {
-            FormatConversionProvider codec = (FormatConversionProvider) 
codecs.get(i);
+            FormatConversionProvider codec = codecs.get(i);
              if( codec.isSourceEncodingSupported( sourceEncoding ) ) {
                  encs = codec.getTargetEncodings();
                  for (int j = 0; j < encs.length; j++) {
@@ -779,7 +779,7 @@
                  }
              }
          }
-        AudioFormat.Encoding encs2[] = (AudioFormat.Encoding[]) 
encodings.toArray(new AudioFormat.Encoding[0]);
+        AudioFormat.Encoding encs2[] = encodings.toArray(new 
AudioFormat.Encoding[0]);
          return encs2;
      }

@@ -799,8 +799,8 @@
      public static AudioFormat.Encoding[] 
getTargetEncodings(AudioFormat sourceFormat) {


-        List codecs = getFormatConversionProviders();
-        Vector encodings = new Vector();
+        List<FormatConversionProvider> codecs = 
getFormatConversionProviders();
+        Vector<AudioFormat.Encoding[]> encodings = new Vector<>();

          int size = 0;
          int index = 0;
@@ -809,7 +809,7 @@
          // gather from all the codecs

          for(int i=0; i<codecs.size(); i++ ) {
-            encs = ((FormatConversionProvider) 
codecs.get(i)).getTargetEncodings(sourceFormat);
+            encs = codecs.get(i).getTargetEncodings(sourceFormat);
              size += encs.length;
              encodings.addElement( encs );
          }
@@ -818,7 +818,7 @@

          AudioFormat.Encoding encs2[] = new AudioFormat.Encoding[size];
          for(int i=0; i<encodings.size(); i++ ) {
-            encs = (AudioFormat.Encoding [])(encodings.get(i));
+            encs = encodings.get(i);
              for(int j=0; j<encs.length; j++ ) {
                  encs2[index++] = encs[j];
              }
@@ -839,10 +839,10 @@
      public static boolean isConversionSupported(AudioFormat.Encoding 
targetEncoding, AudioFormat sourceFormat) {


-        List codecs = getFormatConversionProviders();
+        List<FormatConversionProvider> codecs = 
getFormatConversionProviders();

          for(int i=0; i<codecs.size(); i++ ) {
-            FormatConversionProvider codec = (FormatConversionProvider) 
codecs.get(i);
+            FormatConversionProvider codec = codecs.get(i);
if(codec.isConversionSupported(targetEncoding,sourceFormat) ) {
                  return true;
              }
@@ -866,10 +866,10 @@
      public static AudioInputStream 
getAudioInputStream(AudioFormat.Encoding targetEncoding,
AudioInputStream sourceStream) {

-        List codecs = getFormatConversionProviders();
+        List<FormatConversionProvider> codecs = 
getFormatConversionProviders();

          for(int i = 0; i < codecs.size(); i++) {
-            FormatConversionProvider codec = (FormatConversionProvider) 
codecs.get(i);
+            FormatConversionProvider codec = codecs.get(i);
              if( codec.isConversionSupported( targetEncoding, 
sourceStream.getFormat() ) ) {
                  return codec.getAudioInputStream( targetEncoding, 
sourceStream );
              }
@@ -890,8 +890,8 @@
       */
      public static AudioFormat[] getTargetFormats(AudioFormat.Encoding 
targetEncoding, AudioFormat sourceFormat) {

-        List codecs = getFormatConversionProviders();
-        Vector formats = new Vector();
+        List<FormatConversionProvider> codecs = 
getFormatConversionProviders();
+        Vector<AudioFormat[]> formats = new Vector<>();

          int size = 0;
          int index = 0;
@@ -900,7 +900,7 @@
          // gather from all the codecs

          for(int i=0; i<codecs.size(); i++ ) {
-            FormatConversionProvider codec = (FormatConversionProvider) 
codecs.get(i);
+            FormatConversionProvider codec = codecs.get(i);
              fmts = codec.getTargetFormats(targetEncoding, sourceFormat);
              size += fmts.length;
              formats.addElement( fmts );
@@ -910,7 +910,7 @@

          AudioFormat fmts2[] = new AudioFormat[size];
          for(int i=0; i<formats.size(); i++ ) {
-            fmts = (AudioFormat [])(formats.get(i));
+            fmts = formats.get(i);
              for(int j=0; j<fmts.length; j++ ) {
                  fmts2[index++] = fmts[j];
              }
@@ -930,10 +930,10 @@

      public static boolean isConversionSupported(AudioFormat 
targetFormat, AudioFormat sourceFormat) {

-        List codecs = getFormatConversionProviders();
+        List<FormatConversionProvider> codecs = 
getFormatConversionProviders();

          for(int i=0; i<codecs.size(); i++ ) {
-            FormatConversionProvider codec = (FormatConversionProvider) 
codecs.get(i);
+            FormatConversionProvider codec = codecs.get(i);
              if(codec.isConversionSupported(targetFormat, sourceFormat) ) {
                  return true;
              }
@@ -961,10 +961,10 @@
              return sourceStream;
          }

-        List codecs = getFormatConversionProviders();
+        List<FormatConversionProvider> codecs = 
getFormatConversionProviders();

          for(int i = 0; i < codecs.size(); i++) {
-            FormatConversionProvider codec = (FormatConversionProvider) 
codecs.get(i);
+            FormatConversionProvider codec = codecs.get(i);
if(codec.isConversionSupported(targetFormat,sourceStream.getFormat()) ) {
                  return 
codec.getAudioInputStream(targetFormat,sourceStream);
              }
@@ -995,11 +995,11 @@
      public static AudioFileFormat getAudioFileFormat(InputStream stream)
          throws UnsupportedAudioFileException, IOException {

-        List providers = getAudioFileReaders();
+        List<AudioFileReader> providers = getAudioFileReaders();
          AudioFileFormat format = null;

          for(int i = 0; i < providers.size(); i++ ) {
-            AudioFileReader reader = (AudioFileReader) providers.get(i);
+            AudioFileReader reader = providers.get(i);
              try {
                  format = reader.getAudioFileFormat( stream ); // 
throws IOException
                  break;
@@ -1028,11 +1028,11 @@
      public static AudioFileFormat getAudioFileFormat(URL url)
          throws UnsupportedAudioFileException, IOException {

-        List providers = getAudioFileReaders();
+        List<AudioFileReader> providers = getAudioFileReaders();
          AudioFileFormat format = null;

          for(int i = 0; i < providers.size(); i++ ) {
-            AudioFileReader reader = (AudioFileReader) providers.get(i);
+            AudioFileReader reader = providers.get(i);
              try {
                  format = reader.getAudioFileFormat( url ); // throws 
IOException
                  break;
@@ -1061,11 +1061,11 @@
      public static AudioFileFormat getAudioFileFormat(File file)
          throws UnsupportedAudioFileException, IOException {

-        List providers = getAudioFileReaders();
+        List<AudioFileReader> providers = getAudioFileReaders();
          AudioFileFormat format = null;

          for(int i = 0; i < providers.size(); i++ ) {
-            AudioFileReader reader = (AudioFileReader) providers.get(i);
+            AudioFileReader reader = providers.get(i);
              try {
                  format = reader.getAudioFileFormat( file ); // throws 
IOException
                  break;
@@ -1090,7 +1090,7 @@
       * be able to mark the stream, read enough data to determine 
whether they
       * support the stream, and, if not, reset the stream's read 
pointer to its original
       * position.  If the input stream does not support these 
operation, this method may fail
-     * with an <code>IOException</code>.
+     * with an <code>IOExcEption</code>.
       * @param stream the input stream from which the 
<code>AudioInputStream</code> should be
       * constructed
       * @return an <code>AudioInputStream</code> object based on the 
audio file data contained
@@ -1104,11 +1104,11 @@
      public static AudioInputStream getAudioInputStream(InputStream stream)
          throws UnsupportedAudioFileException, IOException {

-        List providers = getAudioFileReaders();
+        List<AudioFileReader> providers = getAudioFileReaders();
          AudioInputStream audioStream = null;

          for(int i = 0; i < providers.size(); i++ ) {
-            AudioFileReader reader = (AudioFileReader) providers.get(i);
+            AudioFileReader reader = providers.get(i);
              try {
                  audioStream = reader.getAudioInputStream( stream ); // 
throws IOException
                  break;
@@ -1138,11 +1138,11 @@
      public static AudioInputStream getAudioInputStream(URL url)
          throws UnsupportedAudioFileException, IOException {

-        List providers = getAudioFileReaders();
+        List<AudioFileReader> providers = getAudioFileReaders();
          AudioInputStream audioStream = null;

          for(int i = 0; i < providers.size(); i++ ) {
-            AudioFileReader reader = (AudioFileReader) providers.get(i);
+            AudioFileReader reader = providers.get(i);
              try {
                  audioStream = reader.getAudioInputStream( url ); // 
throws IOException
                  break;
@@ -1172,11 +1172,11 @@
      public static AudioInputStream getAudioInputStream(File file)
          throws UnsupportedAudioFileException, IOException {

-        List providers = getAudioFileReaders();
+        List<AudioFileReader> providers = getAudioFileReaders();
          AudioInputStream audioStream = null;

          for(int i = 0; i < providers.size(); i++ ) {
-            AudioFileReader reader = (AudioFileReader) providers.get(i);
+            AudioFileReader reader = providers.get(i);
              try {
                  audioStream = reader.getAudioInputStream( file ); // 
throws IOException
                  break;
@@ -1199,17 +1199,17 @@
       * an array of length 0 is returned.
       */
      public static AudioFileFormat.Type[] getAudioFileTypes() {
-        List providers = getAudioFileWriters();
-        Set returnTypesSet = new HashSet();
+        List<AudioFileWriter> providers = getAudioFileWriters();
+        Set<AudioFileFormat.Type> returnTypesSet = new HashSet<>();

          for(int i=0; i < providers.size(); i++) {
-            AudioFileWriter writer = (AudioFileWriter) providers.get(i);
+            AudioFileWriter writer = providers.get(i);
              AudioFileFormat.Type[] fileTypes = writer.getAudioFileTypes();
              for(int j=0; j < fileTypes.length; j++) {
                  returnTypesSet.add(fileTypes[j]);
              }
          }
-        AudioFileFormat.Type returnTypes[] = (AudioFileFormat.Type[])
+        AudioFileFormat.Type returnTypes[] =
              returnTypesSet.toArray(new AudioFileFormat.Type[0]);
          return returnTypes;
      }
@@ -1224,10 +1224,10 @@
       */
      public static boolean isFileTypeSupported(AudioFileFormat.Type 
fileType) {

-        List providers = getAudioFileWriters();
+        List<AudioFileWriter> providers = getAudioFileWriters();

          for(int i=0; i < providers.size(); i++) {
-            AudioFileWriter writer = (AudioFileWriter) providers.get(i);
+            AudioFileWriter writer = providers.get(i);
              if (writer.isFileTypeSupported(fileType)) {
                  return true;
              }
@@ -1245,17 +1245,17 @@
       * an array of length 0 is returned.
       */
      public static AudioFileFormat.Type[] 
getAudioFileTypes(AudioInputStream stream) {
-        List providers = getAudioFileWriters();
-        Set returnTypesSet = new HashSet();
+        List<AudioFileWriter> providers = getAudioFileWriters();
+        Set<AudioFileFormat.Type> returnTypesSet = new HashSet<>();

          for(int i=0; i < providers.size(); i++) {
-            AudioFileWriter writer = (AudioFileWriter) providers.get(i);
+            AudioFileWriter writer = providers.get(i);
              AudioFileFormat.Type[] fileTypes = 
writer.getAudioFileTypes(stream);
              for(int j=0; j < fileTypes.length; j++) {
                  returnTypesSet.add(fileTypes[j]);
              }
          }
-        AudioFileFormat.Type returnTypes[] = (AudioFileFormat.Type[])
+        AudioFileFormat.Type returnTypes[] =
              returnTypesSet.toArray(new AudioFileFormat.Type[0]);
          return returnTypes;
      }
@@ -1272,10 +1272,10 @@
      public static boolean isFileTypeSupported(AudioFileFormat.Type 
fileType,
                                                AudioInputStream stream) {

-        List providers = getAudioFileWriters();
+        List<AudioFileWriter> providers = getAudioFileWriters();

          for(int i=0; i < providers.size(); i++) {
-            AudioFileWriter writer = (AudioFileWriter) providers.get(i);
+            AudioFileWriter writer = providers.get(i);
              if(writer.isFileTypeSupported(fileType, stream)) {
                  return true;
              }
@@ -1306,12 +1306,12 @@
      public static int write(AudioInputStream stream, 
AudioFileFormat.Type fileType,
                              OutputStream out) throws IOException {

-        List providers = getAudioFileWriters();
+        List<AudioFileWriter> providers = getAudioFileWriters();
          int bytesWritten = 0;
          boolean flag = false;

          for(int i=0; i < providers.size(); i++) {
-            AudioFileWriter writer = (AudioFileWriter) providers.get(i);
+            AudioFileWriter writer = providers.get(i);
              try {
                  bytesWritten = writer.write( stream, fileType, out ); 
// throws IOException
                  flag = true;
@@ -1346,12 +1346,12 @@
      public static int write(AudioInputStream stream, 
AudioFileFormat.Type fileType,
                              File out) throws IOException {

-        List providers = getAudioFileWriters();
+        List<AudioFileWriter> providers = getAudioFileWriters();
          int bytesWritten = 0;
          boolean flag = false;

          for(int i=0; i < providers.size(); i++) {
-            AudioFileWriter writer = (AudioFileWriter) providers.get(i);
+            AudioFileWriter writer = providers.get(i);
              try {
                  bytesWritten = writer.write( stream, fileType, out ); 
// throws IOException
                  flag = true;
@@ -1374,8 +1374,9 @@
      /**
       * Obtains the set of MixerProviders on the system.
       */
-    private static List getMixerProviders() {
-        return getProviders(MixerProvider.class);
+    @SuppressWarnings("unchecked")
+    private static List<MixerProvider> getMixerProviders() {
+        return (List<MixerProvider>) getProviders(MixerProvider.class);
      }


@@ -1389,8 +1390,9 @@
       * converters readers are available on the system, an array of 
length 0 is
       * returned.
       */
-    private static List getFormatConversionProviders() {
-        return getProviders(FormatConversionProvider.class);
+    @SuppressWarnings("unchecked")
+    private static List<FormatConversionProvider> 
getFormatConversionProviders() {
+        return (List<FormatConversionProvider>) 
getProviders(FormatConversionProvider.class);
      }


@@ -1402,8 +1404,9 @@
       * objects representing the installed audio file readers.  If no 
audio file
       * readers are available on the system, an empty List is returned.
       */
-    private static List getAudioFileReaders() {
-        return getProviders(AudioFileReader.class);
+    @SuppressWarnings("unchecked")
+    private static List<AudioFileReader> getAudioFileReaders() {
+        return (List<AudioFileReader>)getProviders(AudioFileReader.class);
      }


@@ -1414,8 +1417,9 @@
       * objects representing the available audio file writers.  If no 
audio file
       * writers are available on the system, an empty List is returned.
       */
-    private static List getAudioFileWriters() {
-        return getProviders(AudioFileWriter.class);
+    @SuppressWarnings("unchecked")
+    private static List<AudioFileWriter> getAudioFileWriters() {
+        return (List<AudioFileWriter>)getProviders(AudioFileWriter.class);
      }


@@ -1428,8 +1432,8 @@
       * TargetDataLine.class, Clip.class or Port.class.
       * @return a Mixer that matches the requirements, or null if no 
default mixer found
       */
-    private static Mixer getDefaultMixer(List providers, Line.Info info) {
-        Class lineClass = info.getLineClass();
+    private static Mixer getDefaultMixer(List<MixerProvider> providers, 
Line.Info info) {
+        Class<?> lineClass = info.getLineClass();
          String providerClassName = 
JDK13Services.getDefaultProviderClassName(lineClass);
          String instanceName = 
JDK13Services.getDefaultInstanceName(lineClass);
          Mixer mixer;
@@ -1481,9 +1485,9 @@
          found.
       */
      private static MixerProvider getNamedProvider(String 
providerClassName,
-                                                  List providers) {
+ List<MixerProvider> providers) {
          for(int i = 0; i < providers.size(); i++) {
-            MixerProvider provider = (MixerProvider) providers.get(i);
+            MixerProvider provider = providers.get(i);
              if (provider.getClass().getName().equals(providerClassName)) {
                  return provider;
              }
@@ -1526,10 +1530,10 @@
          @return A Mixer matching the requirements, or null if none is 
found.
       */
      private static Mixer getNamedMixer(String mixerName,
-                                       List providers,
+                                       List<MixerProvider> providers,
                                         Line.Info info) {
          for(int i = 0; i < providers.size(); i++) {
-            MixerProvider provider = (MixerProvider) providers.get(i);
+            MixerProvider provider = providers.get(i);
              Mixer mixer = getNamedMixer(mixerName, provider, info);
              if (mixer != null) {
                  return mixer;
@@ -1578,7 +1582,7 @@
          if (! mixer.isLineSupported(lineInfo)) {
              return false;
          }
-        Class lineClass = lineInfo.getLineClass();
+        Class<?> lineClass = lineInfo.getLineClass();
          if (isMixingRequired
              && (SourceDataLine.class.isAssignableFrom(lineClass) ||
                  Clip.class.isAssignableFrom(lineClass))) {
@@ -1593,8 +1597,8 @@
      /**
       * Like getMixerInfo, but return List
       */
-    private static List getMixerInfoList() {
-        List providers = getMixerProviders();
+    private static List<Mixer.Info> getMixerInfoList() {
+        List<MixerProvider> providers = getMixerProviders();
          return getMixerInfoList(providers);
      }

@@ -1602,14 +1606,14 @@
      /**
       * Like getMixerInfo, but return List
       */
-    private static List getMixerInfoList(List providers) {
-        List infos = new ArrayList();
+    private static List<Mixer.Info> 
getMixerInfoList(List<MixerProvider> providers) {
+        List<Mixer.Info> infos = new ArrayList<>();

          Mixer.Info[] someInfos; // per-mixer
          Mixer.Info[] allInfos;  // for all mixers

          for(int i = 0; i < providers.size(); i++ ) {
-            someInfos = ((MixerProvider)providers.get(i)).getMixerInfo();
+            someInfos = providers.get(i).getMixerInfo();

              for (int j = 0; j < someInfos.length; j++) {
                  infos.add(someInfos[j]);
@@ -1626,7 +1630,7 @@
       * @return a List of instances of providers for the requested service.
       * If no providers are available, a vector of length 0 will be 
returned.
       */
-    private static List getProviders(Class providerClass) {
+    private static List<?> getProviders(Class<?> providerClass) {
          return JDK13Services.getProviders(providerClass);
      }
  }
--- old/src/share/classes/javax/sound/sampled/Line.java 2014-06-04 
00:19:44.000000000 -0700
+++ new/src/share/classes/javax/sound/sampled/Line.java 2014-06-04 
00:19:44.000000000 -0700
@@ -242,7 +242,7 @@
          /**
           * The class of the line described by the info object.
           */
-        private final Class lineClass;
+        private final Class<?> lineClass;


          /**



More information about the sound-dev mailing list