JDK-4917200 : REGRESSION: 5 sound regression tests fail on Windows
  • Type: Bug
  • Component: client-libs
  • Sub-Component: javax.sound
  • Affected Version: 5.0
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • OS: windows_xp
  • CPU: x86
  • Submitted: 2003-09-04
  • Updated: 2003-10-17
  • Resolved: 2003-10-13
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Other
5.0 b24Fixed
Related Reports
Relates :  
Relates :  
Relates :  
Description

Name: mmR10223			Date: 09/04/2003


Filed By       : J2SE-SQA [###@###.###
JDK            : JDK1.5.0-b17, JDK1.5.0-b16 (passes using JDK1.5.0-b14, JDK1.4.2-b28)
Testbase       : Regression-test
Platform[s]    : Windows
switch/Mode    : default
Falling test[s]: 
        javax/sound/sampled/Controls/ReverbControl/SimpleMidiPlayer.java 
        javax/sound/midi/Sequencer/TickLength.java
        javax/sound/midi/Soundbanks/ExtraCharInSoundbank.java
        javax/sound/sampled/Clip/Duration/ClipDuration.java
	javax/sound/midi/Sequencer/MidiCrash.java 
	
These tests fail on Windows platforms only if a sound device is not available. 
But there are multimedia drivers which are installed in Windows by default 
(for example: Audio Codec, Legacy Audio Drivers, Media Control Devices)
Therefore the method "public static boolean isSoundcardInstalled()" works incorrect in these tests. 

Test source location:
=====================
/java/re/jdk/1.5.0/promoted/latest/ws/j2se/test/javax/sound/sampled/Controls/ReverbControl/SimpleMidiPlayer.java
/java/re/jdk/1.5.0/promoted/latest/ws/j2se/test/javax/sound/midi/Sequencer/TickLength.java
/java/re/jdk/1.5.0/promoted/latest/ws/j2se/test/javax/sound/midi/Soundbanks/ExtraCharInSoundbank.java
/java/re/jdk/1.5.0/promoted/latest/ws/j2se/test/javax/sound/sampled/Clip/Duration/ClipDuration.java
/java/re/jdk/1.5.0/promoted/latest/ws/j2se/test/javax/sound/midi/Sequencer/MidiCrash.java

jtr file location:
==================
/net/jtgb4u4c.sfbay/export/sail15/results.2/tiger/b17/regtest/win32/winXP_linux-16/workDir/test/javax/sound/sampled/Controls/ReverbControl/SimpleMidiPlayer.jtr
/net/jtgb4u4c.sfbay/export/sail15/results.2/tiger/b17/regtest/win32/winXP_linux-16/workDir/test/javax/sound/midi/Sequencer/TickLength.jtr
/net/jtgb4u4c.sfbay/export/sail15/results.2/tiger/b17/regtest/win32/winXP_linux-16/workDir/test/javax/sound/midi/Soundbanks/ExtraCharInSoundbank.jtr
/net/jtgb4u4c.sfbay/export/sail15/results.2/tiger/b17/regtest/win32/winXP_linux-16/workDir/test/javax/sound/sampled/Clip/Duration/ClipDuration.jtr
/net/jtgb4u4c.sfbay/export/sail15/results.2/tiger/b17/regtest/win32/winXP_linux-16/workDir/test/javax/sound/midi/Sequencer/MidiCrash.jtr

How to reproduce:
=================
Run the following script (you may need to change its variables)
 
--- script start ---
#!/bin/sh
RESULT_DIR=`pwd`
WORK_DIR=$RESULT_DIR/workDir/test
REPORT_DIR=$RESULT_DIR/reportDir
JT_HOME="h:/java/jct"
JAVA_HOME="h:/java/jdk1.5.0/win32"
TEST_BASE_PATH="h:/java/regtest.tiger/test"
CLASSPATH="$JT_HOME/classes;$JT_HOME/lib/javatest.jar;$JT_HOME/lib/jtreg.jar"

TEST="javax/sound/sampled/Controls/ReverbControl/SimpleMidiPlayer.java"
#TEST="javax/sound/midi/Sequencer/TickLength.java"
#TEST="javax/sound/midi/Soundbanks/ExtraCharInSoundbank.java"

mkdir -p $WORK_DIR/scratch 2>&1
mkdir -p $WORK_DIR/jtData 2>&1
mkdir -p $REPORT_DIR 2>&1

#rm $WORK_DIR/jtData/ResultCache.jtw 2>&1

cd $WORK_DIR/scratch

$JAVA_HOME/bin/java -server -cp $CLASSPATH -DenvVars=TESTJAVAHOME=$JAVA_HOME,TESTVMOPTS=$TESTVMOPTS,DISPLAY=:0,windir=$windir,SystemRoot=$SystemRoot,PATH=${SHELL%/*},CPAPPEND=$JT_HOME/jemmy/jemmy.jar,TZ=,LC_ALL=en_US,LC_CTYPE=en_US,LANG=en_US,LPDEST= -DDISPLAY=:0 -DlocalHost="linux-16" -Dprogram=jtreg com.sun.javatest.regtest.Main -a -v default -batch -params -w "$WORK_DIR" -r "$REPORT_DIR" -t "$TEST_BASE_PATH" "$TEST_BASE_PATH/$TEST"

--- script end ---

Script output:
==============

Test output (jtr part):
=======================
----------System.out:(0/0)----------
----------System.err:(14/952)----------
javax.sound.midi.MidiUnavailableException: no audio device available for Java Sound Audio Engine
	at com.sun.media.sound.AbstractPlayer.open(AbstractPlayer.java:139)
	at SimpleMidiPlayer.main(SimpleMidiPlayer.java:161)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:324)
	at com.sun.javatest.regtest.MainWrapper$MainThread.run(MainWrapper.java:82)
	at java.lang.Thread.run(Thread.java:549)

JavaTest Message: Test threw exception: javax.sound.midi.MidiUnavailableException: no audio device available for Java Sound Audio Engine
JavaTest Message: shutting down test

STATUS:Failed.`main' threw exception: javax.sound.midi.MidiUnavailableException: no audio device available for Java Sound Audio Engine
result: Failed. Execution failed: `main' threw exception: javax.sound.midi.MidiUnavailableException: no audio device available for Java Sound Audio Engine


test result: Failed. Execution failed: `main' threw exception: javax.sound.midi.MidiUnavailableException: no audio device available for Java Sound Audio Engine


Specific machine info:
======================
Hostname: linux-16
OS: Windows XP Pro
Hostname: linux-18
OS: Windows 98
Hostname: linux-19
OS: Windows 2003

======================================================================

Comments
CONVERTED DATA BugTraq+ Release Management Values COMMIT TO FIX: tiger tiger-beta FIXED IN: tiger-beta INTEGRATED IN: tiger-b24 tiger-beta VERIFIED IN: tiger-beta
14-06-2004

EVALUATION ###@###.### 2003-09-26 Easy fix of the reg tests only. ###@###.### 2003-10-12 On Windows, the function isSoundCardInstalled still reports devices, even if no devices are installed, due to bug 4936397. The "other" devices, like codecs, should not appear in Java Sound's list of mixers. Since the implementation should now always return 0 mixers if no sound hardware is installed, the implementation of isSoundCardInstalled can be made much simpler, by e.g. calling AudioSystem.getTargetDataLine.
11-06-2004

PUBLIC COMMENTS 5 sound regression tests fail on Windows
10-06-2004