Buggy code:
lbl_separator . setLayoutData ( new org . eclipse . swt . layout . GridData ( SWT . FILL , SWT . CENTER , false , false , 1 , 1 ) ) ; Label lbl_colourCodes = new Label ( cmp_container , SWT . NONE ) ; lbl_colourCodes . setText ( "Colour<seq2seq4repair_space>codes:\n\n1\t=<seq2seq4repair_space>Path<seq2seq4repair_space>1\n2\t=<seq2seq4repair_space>Path<seq2seq4repair_space>2\n4\t=<seq2seq4repair_space>Shape<seq2seq4repair_space>1<seq2seq4repair_space>Direction<seq2seq4repair_space>Vector\n5\t=<seq2seq4repair_space>Shape<seq2seq4repair_space>1\n13\t=<seq2seq4repair_space>Shape<seq2seq4repair_space>2<seq2seq4repair_space>Direction<seq2seq4repair_space>Vector<seq2seq4repair_space>[optional]\n14\t=<seq2seq4repair_space>Shape<seq2seq4repair_space>2<seq2seq4repair_space>[optional]\n7\t=<seq2seq4repair_space>Line<seq2seq4repair_space>Indicators<seq2seq4repair_space>[optional]\n0\t=<seq2seq4repair_space>Line<seq2seq4repair_space>Ending<seq2seq4repair_space>Normal<seq2seq4repair_space>Indicators<seq2seq4repair_space>[optional]\n" ) ; Label lbl_use180deg = new Label ( cmp_container , SWT . NONE ) ; lbl_use180deg . setText ( "Define<seq2seq4repair_space>maximum<seq2seq4repair_space>path<seq2seq4repair_space>segment<seq2seq4repair_space>length.<seq2seq4repair_space>Longer<seq2seq4repair_space>segments<seq2seq4repair_space>are<seq2seq4repair_space>split<seq2seq4repair_space>(100000,<seq2seq4repair_space>default):" ) ; BigDecimalSpinner spn_maxPathSegmentLength = new BigDecimalSpinner ( cmp_container , SWT . NONE ) ; this . spn_maxPathSegmentLength [ 0 ] = spn_maxPathSegmentLength ; spn_maxPathSegmentLength . setLayoutData ( new org . eclipse . swt . layout . GridData ( SWT . FILL , SWT . CENTER , false , false , 1 , 1 ) ) ; spn_maxPathSegmentLength . setMaximum ( new BigDecimal ( 100000 ) ) ; spn_maxPathSegmentLength . setMinimum ( new BigDecimal ( "0.0001" ) ) ; spn_maxPathSegmentLength . setValue ( ps . getMaxPathSegmentLength ( ) ) ; Label lbl_transitions = new Label ( cmp_container , SWT . NONE ) ; lbl_transitions . setText ( "Sets<seq2seq4repair_space>the<seq2seq4repair_space>number<seq2seq4repair_space>of<seq2seq4repair_space>transitions<seq2seq4repair_space>from<seq2seq4repair_space>shape1<seq2seq4repair_space>to<seq2seq4repair_space>shape2<seq2seq4repair_space>and<seq2seq4repair_space>vice<seq2seq4repair_space>versa<seq2seq4repair_space>(1,<seq2seq4repair_space>default):" ) ; IntegerSpinner spn_transitions = new IntegerSpinner ( cmp_container , SWT . NONE ) ; this . spn_transitions [ 0 ] = spn_transitions ; spn_transitions . setLayoutData ( new org . eclipse . swt . layout . GridData ( SWT . FILL , SWT . CENTER , false , false , 1 , 1 ) ) ; spn_transitions . setMaximum ( 1000000 ) ; spn_transitions . setMinimum ( 1 ) ; spn_transitions . setValue ( ps . getTransitionCount ( ) ) ; Label lbl_transCurve = new Label ( cmp_container , SWT . NONE ) ; lbl_transCurve . setText ( "Control<seq2seq4repair_space>transition<seq2seq4repair_space>curve,<seq2seq4repair_space>from<seq2seq4repair_space>1<seq2seq4repair_space>(linear)<seq2seq4repair_space>to<seq2seq4repair_space>10<seq2seq4repair_space>(s-shape,<seq2seq4repair_space>default)<seq2seq4repair_space>to<seq2seq4repair_space>100<seq2seq4repair_space>(step):" ) ; BigDecimalSpinner spn_transCurve = new BigDecimalSpinner ( cmp_container , SWT . NONE ) ; this . spn_transCurve [ 0 ] = spn_transCurve ; spn_transCurve . setLayoutData ( new org . eclipse . swt . layout . GridData ( SWT . FILL , SWT . CENTER , false , false , 1 , 1 ) ) ; spn_transCurve . setMaximum ( new BigDecimal ( 100 ) ) ; spn_transCurve . setMinimum ( BigDecimal . ONE ) ; spn_transCurve . setValue ( ps . getTransitionCurveControl ( ) ) ; Label lbl_centerCurve = new Label ( cmp_container , SWT . NONE ) ; lbl_centerCurve . setText ( "Control<seq2seq4repair_space>transition<seq2seq4repair_space>curve<seq2seq4repair_space>centering.<seq2seq4repair_space>0<seq2seq4repair_space><=<seq2seq4repair_space>position<seq2seq4repair_space><=<seq2seq4repair_space>1.<seq2seq4repair_space>Default<seq2seq4repair_space>is<seq2seq4repair_space>0.5,<seq2seq4repair_space>centered:" ) ; BigDecimalSpinner spn_centerCurve = new BigDecimalSpinner ( cmp_container , SWT . NONE ) ; this . spn_centerCurve [ 0 ] = spn_centerCurve ; spn_centerCurve . setLayoutData ( new org . eclipse . swt . layout . GridData ( SWT . FILL , SWT . CENTER , false , false , 1 , 1 ) ) ; spn_centerCurve . setMaximum ( BigDecimal . ONE ) ; spn_centerCurve . setMinimum ( new BigDecimal ( 0 ) ) ; spn_centerCurve . setValue ( ps . getTransitionCurveCenter ( ) ) ; Label lbl_lineThreshold = new Label ( cmp_container , SWT . NONE ) ; lbl_lineThreshold . setText ( "If<seq2seq4repair_space>path<seq2seq4repair_space>has<seq2seq4repair_space>a<seq2seq4repair_space>sharper<seq2seq4repair_space>angle,<seq2seq4repair_space>a<seq2seq4repair_space>line<seq2seq4repair_space>is<seq2seq4repair_space>created<seq2seq4repair_space>at<seq2seq4repair_space>the<seq2seq4repair_space>junction.<seq2seq4repair_space>Default<seq2seq4repair_space>is<seq2seq4repair_space>180°<seq2seq4repair_space>(no<seq2seq4repair_space>line).\nUse<seq2seq4repair_space>a<seq2seq4repair_space>negative<seq2seq4repair_space>value<seq2seq4repair_space>to<seq2seq4repair_space>force<seq2seq4repair_space>line<seq2seq4repair_space>creation:" ) ; BigDecimalSpinner spn_lineThreshold = new BigDecimalSpinner ( cmp_container , SWT . NONE ) ; this . spn_lineThreshold [ 0 ] = spn_lineThreshold ; spn_lineThreshold . setLayoutData ( new org . eclipse . swt . layout . GridData ( SWT . FILL , SWT . CENTER , false , false , 1 , 1 ) ) ; spn_lineThreshold . setMaximum ( new BigDecimal ( 180 ) ) ; spn_lineThreshold . setMinimum ( new BigDecimal ( ( - 1 ) ) ) ; spn_lineThreshold . setValue ( ps . getPathAngleForLine ( ) ) ; Label lbl_rotationAngle = new Label ( cmp_container , SWT . NONE ) ; lbl_rotationAngle . setText ( "Specify<seq2seq4repair_space>rotation<seq2seq4repair_space>of<seq2seq4repair_space>shape<seq2seq4repair_space>direction<seq2seq4repair_space>vector<seq2seq4repair_space>around<seq2seq4repair_space>path1<seq2seq4repair_space>as<seq2seq4repair_space>it<seq2seq4repair_space>sweeps<seq2seq4repair_space>along<seq2seq4repair_space>the<seq2seq4repair_space>path.<seq2seq4repair_space>Default<seq2seq4repair_space>is<seq2seq4repair_space>0°:" ) ; BigDecimalSpinner spn_rotationAngle = new BigDecimalSpinner ( cmp_container , SWT . NONE ) ; this . spn_rotationAngle [ 0 ] = spn_rotationAngle ; spn_rotationAngle . setLayoutData ( new org . eclipse . swt . layout . GridData ( SWT . FILL , SWT . CENTER , false , false , 1 , 1 ) ) ; <START_BUG> spn_rotationAngle . setMaximum ( BigDecimal . ONE ) ; <END_BUG> spn_rotationAngle . setMinimum ( new BigDecimal ( 0 ) ) ; spn_rotationAngle . setValue ( ps . getRotation ( ) ) ; Label lbl_af = new Label ( cmp_container , SWT . NONE ) ; lbl_af . setText ( "Compensation<seq2seq4repair_space>at<seq2seq4repair_space>sharp<seq2seq4repair_space>path<seq2seq4repair_space>angles:" ) ; Combo cmb_shapeCompensation = new Combo ( cmp_container , SWT . READ_ONLY ) ; this . cmb_shapeCompensation [ 0 ] = cmb_shapeCompensation ; cmb_shapeCompensation . setItems ( new String [ ] { "No<seq2seq4repair_space>compensation<seq2seq4repair_space>(default)." , "The<seq2seq4repair_space>shape<seq2seq4repair_space>is<seq2seq4repair_space>elongated<seq2seq4repair_space>to<seq2seq4repair_space>compensate<seq2seq4repair_space>for<seq2seq4repair_space>flattening<seq2seq4repair_space>at<seq2seq4repair_space>sharp<seq2seq4repair_space>path<seq2seq4repair_space>angles." } ) ; cmb_shapeCompensation . setLayoutData ( new org . eclipse . swt . layout . GridData ( SWT . FILL , SWT . CENTER , false , false , 1 , 1 ) ) ; cmb_shapeCompensation . setText ( ( ps . isCompensation ( ) ? cmb_shapeCompensation . getItem ( 1 ) : cmb_shapeCompensation . getItem ( 0 ) ) ) ; cmb_shapeCompensation . select ( ( ps . isCompensation ( ) ? 1 : 0 ) ) ; Label lbl_bfcinvert = new Label ( cmp_container , SWT . NONE ) ; lbl_bfcinvert . setText ( "Invert<seq2seq4repair_space>shape<seq2seq4repair_space>winding:" ) ; Combo cmb_bfcInvert = new Combo ( cmp_container , SWT . READ_ONLY ) ; this . cmb_bfcInvert [ 0 ] = cmb_bfcInvert ; cmb_bfcInvert . setItems ( new String [ ] { "Use<seq2seq4repair_space>original<seq2seq4repair_space>winding<seq2seq4repair_space>(default)." , "Invert<seq2seq4repair_space>winding." } ) ; cmb_bfcInvert . setLayoutData ( new org . eclipse . swt . layout . GridData ( SWT . FILL , SWT . CENTER , false , false , 1 , 1 ) ) ; cmb_bfcInvert . setText ( ( ps . isInverted ( ) ? cmb_bfcInvert . getItem ( 1 ) : cmb_bfcInvert . getItem ( 0 ) ) ) ; cmb_bfcInvert . select ( ( ps . isInverted ( ) ? 1 : 0 ) ) ; cmp_container . pack ( ) ; return cmp_container ; } @ Override protected void createButtonsForButtonBar ( Composite parent ) { }

Fix:
spn_rotationAngle . setMaximum ( new BigDecimal ( 1000000 ) ) ;