Source:
<code>public void aboutToBeShown() { super.aboutToBeShown(); this.modifyListener = new ModifyListener() { @Override public void modifyText(ModifyEvent e) { if (!EEFSpinnerLifecycleManager.this.container.isRenderingInProgress() && !updateInProgress.get()) { EEFSpinnerLifecycleManager.this.isDirty = true; } } }; this.spinner.addModifyListener(this.modifyListener); this.focusListener = new FocusListener() { @Override public void focusLost(FocusEvent e) { if (!EEFSpinnerLifecycleManager.this.container.isRenderingInProgress() && EEFSpinnerLifecycleManager.this.isDirty) { EEFSpinnerLifecycleManager.this.updateValue(false); } } @Override public void focusGained(FocusEvent e) { } }; this.spinner.addFocusListener(this.focusListener); this.keyListener = new KeyListener() { @Override public void keyReleased(KeyEvent e) { if (e.character == '\r' || e.character == '\n') { EEFSpinnerLifecycleManager.this.updateValue(false); } } @Override public void keyPressed(KeyEvent e) { } }; this.spinner.addKeyListener(this.keyListener); this.controller.onNewSpinnerValue(new IConsumer<Object>() { @Override public void apply(Object value) { if (!spinner.isDisposed()) { String display = ""; if (value != null) { display = Util.firstNonNull(value.toString(), display); } if (!(spinner.getText() != null && spinner.getText().equals(display))) { try { BigDecimal textBigDecimalValue = new <START> BigDecimal(display); <END> spinner.setSelection(textBigDecimalValue.movePointRight(spinner.getDigits()).intValue()); referenceValue = spinner.getText(); EEFSpinnerLifecycleManager.this.setStyle(); if (!spinner.isEnabled()) { spinner.setEnabled(true); } } catch (NumberFormatException e) { EEFIdeUiPlugin.INSTANCE.log(e); } } } } }); }</code><technical_language>NumberFormatException display equals empty string ""</technical_language>

Target:
public void aboutToBeShown() { super.aboutToBeShown(); this.modifyListener = new ModifyListener() { @Override public void modifyText(ModifyEvent e) { if (!EEFSpinnerLifecycleManager.this.container.isRenderingInProgress() && !updateInProgress.get()) { EEFSpinnerLifecycleManager.this.isDirty = true; } } }; this.spinner.addModifyListener(this.modifyListener); this.focusListener = new FocusListener() { @Override public void focusLost(FocusEvent e) { if (!EEFSpinnerLifecycleManager.this.container.isRenderingInProgress() && EEFSpinnerLifecycleManager.this.isDirty) { EEFSpinnerLifecycleManager.this.updateValue(false); } } @Override public void focusGained(FocusEvent e) { } }; this.spinner.addFocusListener(this.focusListener); this.keyListener = new KeyListener() { @Override public void keyReleased(KeyEvent e) { if (e.character == '\r' || e.character == '\n') { EEFSpinnerLifecycleManager.this.updateValue(false); } } @Override public void keyPressed(KeyEvent e) { } }; this.spinner.addKeyListener(this.keyListener); this.controller.onNewSpinnerValue(new IConsumer<Object>() { @Override public void apply(Object value) { if (!spinner.isDisposed()) { String display = ""; if (value != null) { display = Util.firstNonNull(value.toString(), display); } if (!display.equals("") && !(spinner.getText() != null && spinner.getText().equals(display))) { try { BigDecimal textBigDecimalValue = new BigDecimal(display); spinner.setSelection(textBigDecimalValue.movePointRight(spinner.getDigits()).intValue()); referenceValue = spinner.getText(); EEFSpinnerLifecycleManager.this.setStyle(); if (!spinner.isEnabled()) { spinner.setEnabled(true); } } catch (NumberFormatException e) { EEFIdeUiPlugin.INSTANCE.log(e); } } } } }); }