Buggy code:
xMove . setSelection ( 10 ) ; xMove . addListener ( Selection , new Listener ( ) { public void handleEvent ( Event e ) { xPos = ( xMove . getSelection ( ) ) - 10 ; } } ) ; new Label ( movementGroup , SWT . NONE ) . setText ( "Y:" ) ; final Slider yMove = new Slider ( movementGroup , SWT . NONE ) ; yMove . setIncrement ( 1 ) ; yMove . setMaximum ( 22 ) ; yMove . setMinimum ( 0 ) ; yMove . setThumb ( 2 ) ; yMove . setPageIncrement ( 2 ) ; yMove . setSelection ( 10 ) ; yMove . addListener ( Selection , new Listener ( ) { public void handleEvent ( Event e ) { yPos = ( yMove . getSelection ( ) ) - 10 ; } } ) ; new Label ( movementGroup , SWT . NONE ) . setText ( "Z:" ) ; final Slider zMove = new Slider ( movementGroup , SWT . NONE ) ; zMove . setIncrement ( 1 ) ; zMove . setMaximum ( 22 ) ; zMove . setMinimum ( 0 ) ; zMove . setThumb ( 2 ) ; zMove . setPageIncrement ( 2 ) ; zMove . setSelection ( 10 ) ; zMove . addListener ( Selection , new Listener ( ) { public void handleEvent ( Event e ) { zPos = ( zMove . getSelection ( ) ) - 20 ; } } ) ; Composite textGroup = new Composite ( composite , SWT . NONE ) ; GridLayout layout = new GridLayout ( 2 , false ) ; layout . marginHeight = 0 ; layout . marginWidth = 0 ; textGroup . setLayout ( layout ) ; textGroup . setLayoutData ( new GridData ( GridData . HORIZONTAL_ALIGN_FILL ) ) ; new Label ( textGroup , SWT . NONE ) . setText ( "Text:" ) ; messageText = new Text ( textGroup , SWT . BORDER ) ; GridData data = new GridData ( GridData . HORIZONTAL_ALIGN_FILL ) ; data . grabExcessHorizontalSpace = true ; messageText . setLayoutData ( data ) ; messageText . setText ( "OpenGL<seq2seq4repair_space>-<seq2seq4repair_space>SWT" ) ; new Label ( composite , SWT . NONE ) . setText ( "Extrude:" ) ; final Slider extrudeSlider = new Slider ( composite , SWT . NONE ) ; extrudeSlider . setIncrement ( 1 ) ; extrudeSlider . setMaximum ( 22 ) ; extrudeSlider . setMinimum ( 0 ) ; extrudeSlider . setThumb ( 2 ) ; extrudeSlider . setPageIncrement ( 2 ) ; extrudeSlider . setSelection ( 0 ) ; extrudeSlider . addListener ( Selection , new Listener ( ) { public void handleEvent ( Event e ) { extrude = ( ( float ) ( extrudeSlider . getSelection ( ) ) ) // 10 ; getContext ( ) . loadOutlineFont ( fontData , extrudeSlider . getDisplay ( ) , listIndexBase , 0 , 255 , 0.0F , extrude , ( fill ? GL . GL_POLYGON : GL . GL_LINE ) , null ) ; } } ) ; final Button fontSelectButton = new Button ( composite , SWT . NONE ) ; fontSelectButton . setText ( "Set<seq2seq4repair_space>Font" ) ; final ColorSelectionGroup colorGroup = new ColorSelectionGroup ( composite , SWT . NONE ) ; colorGroup . setText ( "Text<seq2seq4repair_space>color" ) ; colorGroup . addColorSelectionListener ( new IColorSelectionListener ( ) { public void handleColorSelection ( RGB rgb ) { GL . glColor3ub ( ( ( byte ) ( rgb . red ) ) , ( ( byte ) ( rgb . green ) ) , ( ( byte ) ( rgb . blue ) ) ) ; } } ) ; fontSelectButton . addListener ( Selection , new Listener ( ) { public void handleEvent ( Event e ) { FontDialog fontDialog = new FontDialog ( fontSelectButton . getShell ( ) ) ; fontDialog . setText ( "Choose<seq2seq4repair_space>Font<seq2seq4repair_space>Options" ) ; double [ ] currentColor = new double [ 4 ] ; GL . glGetDoublev ( GL_CURRENT_COLOR , currentColor ) ; fontDialog . setRGB ( new RGB ( ( ( ( int ) ( currentColor [ 0 ] ) ) * 255 ) , ( ( ( int ) ( currentColor [ 1 ] ) ) * 255 ) , ( ( ( int ) ( currentColor [ 2 ] ) ) * 255 ) ) ) ; <START_BUG> fontDialog . setFontData ( fontData ) ; <END_BUG> FontData result = fontDialog . open ( ) ; if ( result != null ) { fontData = result ; RGB rgb = fontDialog . getRGB ( ) ; GL . glColor3ub ( ( ( byte ) ( rgb . red ) ) , ( ( byte ) ( rgb . green ) ) , ( ( byte ) ( rgb . blue ) ) ) ; colorGroup . setRGB ( rgb ) ; getContext ( ) . loadOutlineFont ( fontData , fontSelectButton . getDisplay ( ) , listIndexBase , 0 , 255 , 0.0F , extrude , ( fill ? GL . GL_POLYGON : GL . GL_LINE ) , null ) ; } } } ) ; final Button fillButton = new Button ( composite , SWT . CHECK ) ; fillButton . setText ( "Fill" ) ; fillButton . setSelection ( true ) ; fillButton . addListener ( Selection , new Listener ( ) { public void handleEvent ( Event e ) { fill = fillButton . getSelection ( ) ; getContext ( ) . loadOutlineFont ( fontData , fillButton . getDisplay ( ) , listIndexBase , 0 , 255 , 0.0F , extrude , ( fill ? GL . GL_POLYGON : GL . GL_LINE ) , null ) ; } } ) ; } void dispose ( ) { } void drawText ( String string ) { } int getSleepLength ( ) { } String getTabText ( ) { } void init ( ) { } void renderScene ( ) { } }

Fix:
fontDialog . setFontList ( new FontData [ ] { fontData } ) ;