In some sophisticated context there can appear NPE (not breaking though) on IssueLicenseDialog initialization.
It is cause by surplus of confience on a late-init piece of data in general LabeledField class: widget is designed to be nullable but in several places assumed to be already initialized.
Consistent approach shoul be implemented, there must be no assumptions on late-init widget state.
java.lang.NullPointerException: Cannot invoke "org.eclipse.swt.widgets.Control.isEnabled()" because "this.widget" is null
at org.eclipse.passage.loc.dashboard.ui.wizards.license.LabeledField.errorIfAny(LabeledField.java:76)
at org.eclipse.passage.loc.dashboard.ui.wizards.license.LicenseDataPage.validatePage(LicenseDataPage.java:61)
at org.eclipse.passage.loc.dashboard.ui.wizards.license.LicenseDataPage.validate(LicenseDataPage.java:55)
at org.eclipse.passage.loc.dashboard.ui.wizards.license.PageFields.modified(PageFields.java:99)
at org.eclipse.passage.loc.dashboard.ui.wizards.license.SelectableField.lambda$1(SelectableField.java:67)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:183)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4273)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1066)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1090)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1071)
at org.eclipse.swt.widgets.Text.wmCommandChild(Text.java:3106)
at org.eclipse.swt.widgets.Control.WM_COMMAND(Control.java:4895)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:4747)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:5039)
at org.eclipse.swt.internal.win32.OS.CallWindowProc(Native Method)
at org.eclipse.swt.widgets.Text.callWindowProc(Text.java:295)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:4845)
at org.eclipse.swt.widgets.Text.windowProc(Text.java:2687)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:5039)
at org.eclipse.swt.internal.win32.OS.SetWindowText(Native Method)
at org.eclipse.swt.internal.win32.OS.SetWindowText(OS.java:2282)
at org.eclipse.swt.widgets.Text.setText(Text.java:2348)
at org.eclipse.passage.loc.dashboard.ui.wizards.license.SelectableField.reflectData(SelectableField.java:61)
at org.eclipse.passage.loc.dashboard.ui.wizards.license.LabeledField.lambda$1(LabeledField.java:66)
at java.base/java.util.Optional.ifPresent(Optional.java:178)
at org.eclipse.passage.loc.dashboard.ui.wizards.license.LabeledField.installData(LabeledField.java:64)
at org.eclipse.passage.loc.dashboard.ui.wizards.license.LabeledField.installControll(LabeledField.java:48)
at org.eclipse.passage.loc.dashboard.ui.wizards.license.LicenseDataPage.lambda$0(LicenseDataPage.java:43)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at org.eclipse.passage.loc.dashboard.ui.wizards.license.LicenseDataPage.createControl(LicenseDataPage.java:43)
at org.eclipse.jface.wizard.Wizard.createPageControls(Wizard.java:180)
at org.eclipse.jface.wizard.WizardDialog.createPageControls(WizardDialog.java:744)
at org.eclipse.jface.wizard.WizardDialog.createContents(WizardDialog.java:636)
at org.eclipse.jface.window.Window.create(Window.java:431)
at org.eclipse.jface.dialogs.Dialog.create(Dialog.java:1094)
In some sophisticated context there can appear NPE (not breaking though) on
IssueLicenseDialog
initialization. It is cause by surplus of confience on a late-init piece of data in generalLabeledField
class:widget
is designed to be nullable but in several places assumed to be already initialized.Consistent approach shoul be implemented, there must be no assumptions on late-init
widget
state.