JDK-5047795 : clips and recording report negative time in millisecond after 13 hours run
  • Type: Bug
  • Component: client-libs
  • Sub-Component: javax.sound
  • Affected Version: 5.0
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • OS: windows_xp
  • CPU: x86
  • Submitted: 2004-05-14
  • Updated: 2004-07-14
  • Resolved: 2004-05-28
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 b54Fixed
Related Reports
Relates :  
Description
When doing the Sound Reliability test run, I found the following errors in clips and recording functions:

--------------------------
lt 2 audio [2]: ## Error: Line DirectAudioDevice$DirectClip@1027b4d's getMicrose
condPosition did not advance enough:^M
lt 2 audio [2]:           Actual: -48693540  Expected: 48698004millis^M
lt 2 audio [2]: ## Error: Line DirectAudioDevice$DirectClip@1027b4d's getFramePo
sition did not advance enough!^M
lt 3 audio [3]: ## Error: Line DirectAudioDevice$DirectTDL@1ffb8dc's getMicrosec
ondPosition did not advance enough:^M
lt 3 audio [3]:           Actual: -48687385  Expected: 48704044millis^M
lt 3 audio [3]: ## Error: Line DirectAudioDevice$DirectTDL@1ffbd68's getMicrosec
ondPosition did not advance enough:^M
lt 3 audio [3]:           Actual: -48686961  Expected: 48704465millis^M
lt 3 audio [3]: ## Error: Line DirectAudioDevice$DirectTDL@13a328f's getMicrosec
ondPosition did not advance enough:^M
lt 3 audio [3]:           Actual: -48693049  Expected: 48698374millis^M

-------------------------
The error happens after test runs after Duration: 13h31m31s.

The Autual time report was a negative in millisecond.

Attached is the log for reliability test run.

###@###.### 2004-05-14
-------------------------------
Verified with reliability test run for 24hours.

I don't see tne negative time reported after 13 hours run.
13:31:56 lt 2 audio [2]: ## Error: Line DirectAudioDevice$DirectClip@16672d6's getFramePosition did not advance enough!^M
13:31:56 lt 2 audio [2]: ## Error: Line DirectAudioDevice$DirectClip@1ccb029's getFramePosition did not advance enough!^M
13:31:56 lt 2 audio [2]: ## Error: Line DirectAudioDevice$DirectClip@121cc40's getFramePosition did not advance enough!^M

The getFramePosition() API should be getLongFranePosition() with the updated test case.

###@###.### 2004-07-14

Comments
CONVERTED DATA BugTraq+ Release Management Values COMMIT TO FIX: tiger-beta2 tiger-rc FIXED IN: tiger-rc INTEGRATED IN: tiger-b54 tiger-rc VERIFIED IN: tiger-rc
13-09-2004

PUBLIC COMMENTS Scheduled to be fixed for tiger-rc.
13-09-2004

EVALUATION The implementation uses getFramePosition() to return a calculated microsecond position. Now, unfortunately, getFramePosition returns an int value, which wraps around after 2 billion samples. This is an API design flaw, and tracked in RFE 5049129: RFE: DataLine.getFramePosition() should return long. The fix consists of using internally a function getLongFramePosition() that has a long range. ###@###.### 2004-05-18
18-05-2004