Buggy code:
@ SuppressWarnings ( "serial" ) public class IndexerFrame extends JFrame implements BatchStateListener { public int port = 39460 ; public String hostname = "localhost" ; BatchState batchState ; private LoginDialog loginDialog ; private DownloadBatchDialog downloadBatchDialog ; JMenuItem exitMenuItem ; JMenuItem downloadBatchMenuItem ; JMenuItem logoutMenuItem ; ButtonPanel buttonPanel ; ImagePanel imagePanel ; JTabbedPane BLentryPanel ; JTabbedPane BRentryPanel ; TableEntryPanel tableEntryPanel ; FormEntryPanel formEntryPanel ; FieldHelpPanel fieldHelpPanel ; ImageNavigatorPanel imageNavigatorPanel ; JSplitPane horizontalSplit ; JSplitPane verticalSplit ; IndexerFrame ( String title , String [ ] args ) { } private void createComponents ( ) { JMenuBar menuBar = new JMenuBar ( ) ; setJMenuBar ( menuBar ) ; JMenu menu = new JMenu ( "File" ) ; menu . setMnemonic ( 'c' ) ; menuBar . add ( menu ) ; downloadBatchMenuItem = new JMenuItem ( "Download<seq2seq4repair_space>Batch" ) ; downloadBatchMenuItem . addActionListener ( actionListener ) ; menu . add ( downloadBatchMenuItem ) ; logoutMenuItem = new JMenuItem ( "Logout" ) ; logoutMenuItem . addActionListener ( actionListener ) ; menu . add ( logoutMenuItem ) ; exitMenuItem = new JMenuItem ( "Exit" ) ; exitMenuItem . addActionListener ( actionListener ) ; menu . add ( exitMenuItem ) ; buttonPanel = new ButtonPanel ( this ) ; imagePanel = new ImagePanel ( batchState , null ) ; imagePanel . setPreferredSize ( new Dimension ( 800 , 500 ) ) ; imagePanel . setMinimumSize ( new Dimension ( 300 , 250 ) ) ; tableEntryPanel = new TableEntryPanel ( batchState ) ; formEntryPanel = new FormEntryPanel ( batchState ) ; <START_BUG> fieldHelpPanel = new FieldHelpPanel ( ) ; <END_BUG> imageNavigatorPanel = new ImageNavigatorPanel ( ) ; BLentryPanel = new JTabbedPane ( ) ; BLentryPanel . setMinimumSize ( new Dimension ( 300 , 100 ) ) ; BLentryPanel . setPreferredSize ( new Dimension ( 400 , 200 ) ) ; JScrollPane tableScroll = new JScrollPane ( tableEntryPanel ) ; tableScroll . getVerticalScrollBar ( ) . setUnitIncrement ( 10 ) ; BLentryPanel . addTab ( "Table<seq2seq4repair_space>Entry" , tableScroll ) ; BLentryPanel . addTab ( "Form<seq2seq4repair_space>Entry" , formEntryPanel ) ; BRentryPanel = new JTabbedPane ( ) ; BRentryPanel . setMinimumSize ( new Dimension ( 200 , 100 ) ) ; BRentryPanel . setPreferredSize ( new Dimension ( 400 , 200 ) ) ; BRentryPanel . addTab ( "Field<seq2seq4repair_space>Help" , fieldHelpPanel ) ; BRentryPanel . addTab ( "Image<seq2seq4repair_space>Navigator" , imageNavigatorPanel ) ; horizontalSplit = new JSplitPane ( JSplitPane . HORIZONTAL_SPLIT , BLentryPanel , BRentryPanel ) ; horizontalSplit . setPreferredSize ( new Dimension ( 100 , 100 ) ) ; verticalSplit = new JSplitPane ( JSplitPane . VERTICAL_SPLIT , imagePanel , horizontalSplit ) ; JPanel rootPanel = new JPanel ( ) ; rootPanel . setLayout ( new BorderLayout ( ) ) ; rootPanel . add ( buttonPanel , BorderLayout . NORTH ) ; rootPanel . add ( verticalSplit , BorderLayout . CENTER ) ; this . pack ( ) ; this . add ( rootPanel ) ; } private ActionListener actionListener = new ActionListener ( ) { public void actionPerformed ( ActionEvent e ) { } } ; private WindowAdapter windowAdapter = new WindowAdapter ( ) { public void windowClosing ( WindowEvent e ) { } } ; private void logout ( ) { } private void downloadBatch ( ) { } private void saveWindowLocation ( ) { } public static void main ( final String [ ] args ) { } public BatchState getBatchState ( ) { } public void setBatchState ( BatchState batchState ) { } @ Override public void stateChanged ( ) { } }

Fix:
fieldHelpPanel = new FieldHelpPanel ( batchState ) ;