Possible deadlock in GUI mode if Next button is locked from a panel implementation

Description

This bug has been found while implementing a fix for IZPACK-1464:

If a panel implementation calls com.izforge.izpack.installer.gui.InstallerFrame#lockNextButton(true) during the execution of the com.izforge.izpack.panels.userinput.UserInputPanel#panelActivate event this can lead to a deadlock in GUI mode - the first panel appears empty, the Next button is disabled and the Quit button enabled. If pressing Quit this results in a stack trace:

but the installer is still open (must be killed, for example by CTRL-C from the terminal).

The thread dump while hanging is:

Environment

None

Activity

Show:
René Krell
November 16, 2016, 12:08 AM
Edited

The according pull request brings also a change on the abstract Panels API:

The method declarations

  • setNextEnabled

  • isNextEnabled

  • setPreviousEnabled

  • isPreviousEnabled

of the com.izforge.izpack.installer.panel.Panels interface and their implementations have been removed and replaced in the according GUI installer mode implementation, since they have been used exclusively for the GUI installation mode, which is in opposite to their abstract nature.

René Krell
November 16, 2016, 11:49 AM

Pull request merged.

Fixed

Assignee

René Krell

Reporter

René Krell

Impact

None

Components

Sprint

None

Fix versions

Affects versions

Priority

High
Configure