JDK-8043641 : ExtensionInstallerService.updateProgress() doesn't force the progress bar to be visible after calling hideProgressBar() as specified
  • Type: Bug
  • Component: deploy
  • Sub-Component: webstart
  • Affected Version: 8u20
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • Submitted: 2014-05-21
  • Updated: 2014-07-29
  • Resolved: 2014-06-10
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.
JDK 8 JDK 9
8u20 b19Fixed 9Fixed
Description
The specification

http://docs.oracle.com/javase/8/docs/jre/api/javaws/jnlp/javax/jnlp/ExtensionInstallerService.html#hideProgressBar--

says:

--------------------------------
void hideProgressBar()
Hides the progress bar. Any subsequent calls to updateProgress will force it to be visible.
--------------------------------
void updateProgress(int value)
Updates the progress bar.
Parameters:
value - progress bar value - should be between 0 and 100.
--------------------------------

Experiments with the interactive tests show that it seems like the progress bar gets shown by updateProgressBar() method after getting hidden only is the passed value is different from previously set - then the progress bar gets painted again after hiding.
This behavior contradicts the spec and causes failure of the following interactive test from JNLP TCK 8.0.20

api/javax_jnlp/ExtensionInstallerService/index.html#statusWindow

Please see the attached screenshot.








Comments
I don't have really minimal test, however here's the source code of the problematic test belonging to the JNLP TCK http://jre.us.oracle.com/java/re/jnlp_tck/8.0.20/promoted/latest/binaries/TCK-JNLP-8.0.20/tests/api/javax_jnlp/ExtensionInstallerService/statusWindowTests.java Other sources and classes required for compilation could be found in the TCK bundle: http://jre.us.oracle.com/java/re/jnlp_tck/8.0.20/promoted/latest/bundles/jnlp_tck-8_0_20-beta.jar
27-05-2014

Do you have repro case that I can run on my local machine?
21-05-2014