Buggy code:
String [ ] headers = null ; switch ( style ) { case 0 : headers = new String [ ] { "Subject" , "Date" , "From" , "To" , "Cc" } ; header = folder . getHeaderFields ( uid , headers ) ; for ( int i = 0 ; i < ( headers . length ) ; i ++ ) { String key = headers [ i ] ; JComponent [ ] value = transformHeaderField ( header , key ) ; JButton trailingItem = new JButton ( "more..." ) ; trailingItem = HeaderViewer . createLinkButton ( trailingItem ) ; trailingItem . addActionListener ( new ActionListener ( ) { public void actionPerformed ( ActionEvent event ) { showAddressListDialog ( ) ; } } ) ; DynamicItemListPanel p = new DynamicItemListPanel ( 2 , trailingItem , true ) ; p . setOpaque ( false ) ; for ( int j = 0 ; j < ( value . length ) ; j ++ ) { p . addItem ( value [ j ] ) ; } if ( ( value . length ) > 0 ) map . put ( key , p ) ; } break ; case 1 : String list = headerviewerElement . getAttribute ( "headerfields" ) ; StringTokenizer tok = new StringTokenizer ( list , "<seq2seq4repair_space>" ) ; headers = new String [ tok . countTokens ( ) ] ; for ( int i = 0 ; i < ( headers . length ) ; i ++ ) { headers [ i ] = tok . nextToken ( ) ; } header = folder . getHeaderFields ( uid , headers ) ; for ( int i = 0 ; i < ( headers . length ) ; i ++ ) { String key = headers [ i ] ; JComponent [ ] value = transformHeaderField ( header , key ) ; if ( ( value . length ) > 0 ) map . put ( key , value ) ; } break ; case 2 : headers = new String [ ] { "From" } ; header = folder . getHeaderFields ( uid , headers ) ; for ( int i = 0 ; i < ( headers . length ) ; i ++ ) { String key = headers [ i ] ; JComponent [ ] value = transformHeaderField ( header , key ) ; JButton trailingItem = new JButton ( "more..." ) ; trailingItem = HeaderViewer . createLinkButton ( trailingItem ) ; trailingItem . addActionListener ( new ActionListener ( ) { public void actionPerformed ( ActionEvent event ) { showAddressListDialog ( ) ; } } ) ; DynamicItemListPanel p = new DynamicItemListPanel ( 2 , trailingItem , true ) ; p . setOpaque ( false ) ; for ( int j = 0 ; j < ( value . length ) ; j ++ ) { p . addItem ( value [ j ] ) ; } if ( ( value . length ) > 0 ) map . put ( key , p ) ; } break ; } hasAttachment = ( ( Boolean ) ( folder . getAttribute ( uid , "columba.attachment" ) ) ) . booleanValue ( ) ; if ( hasAttachment ) { JComponent [ ] value = createAttachmentComponentArray ( folder , uid ) ; JButton moreButton = createAttachmentMoreButton ( ) ; DynamicItemListPanel p = new DynamicItemListPanel ( 2 , null , true ) ; p . setShowLastSeparator ( false ) ; p . setOpaque ( false ) ; for ( int j = 0 ; j < ( value . length ) ; j ++ ) { p . addItem ( value [ j ] ) ; } p . addItem ( moreButton ) ; if ( ( value . length ) > 0 ) map . put ( "Attachments" , p ) ; } headerTextPane . setHeader ( map ) ; attachmentViewer . view ( folder , uid , mediator ) ; if ( mediator instanceof ThreePaneMailFrameController ) { final ThreePaneMailFrameController c = ( ( ThreePaneMailFrameController ) ( mediator ) ) ; final String title = ( ( String ) ( folder . getAttribute ( uid , "columba.subject" ) ) ) ; SwingUtilities . invokeLater ( new Runnable ( ) { public void run ( ) { <START_BUG> c . getMessageViewerPanel ( ) . setTitle ( title ) ; <END_BUG> } } ) ; } visible = true ; } private JComponent [ ] createAttachmentComponentArray ( final IMailbox folder , final Object uid ) throws Exception { } private JButton createAttachmentMoreButton ( ) { } private JButton createAttachmentItem ( final StreamableMimePart mp ) { } private void removeBodyParts ( MimeTree model , List displayedMimeParts ) { } private void toggleAttachmentPopupVisibility ( ) { } private JPanel createAttachmentViewerPanel ( ) { } class PopupListener extends MouseAdapter { private JPopupMenu menu ; public PopupListener ( JPopupMenu menu ) { } public void mousePressed ( MouseEvent e ) { } public void mouseReleased ( MouseEvent e ) { } private void maybeShowPopup ( MouseEvent e ) { } } private JPopupMenu createAttachmentPopupMenu ( Integer [ ] address ) { } private JPopupMenu createAddressPopupMenu ( String emailAddress ) { } class AttachmentImageIconLoader { private AttachmentImageIconLoader ( ) { } public ImageIcon getImageIcon ( String contentType , String contentSubtype ) { } } public JComponent getView ( ) { } protected JComponent [ ] transformHeaderField ( Header header , String key ) { } private JComponent [ ] createRecipientComponentArray ( Address [ ] addressArray ) { } public boolean isVisible ( ) { } public void updateGUI ( ) throws Exception { } private void showAddressListDialog ( ) { } class HeaderPanel extends JPanel { private Map keys ; public HeaderPanel ( ) { } public void updateUI ( ) { } public void setHeader ( Map keys ) { } public void updateGUI ( ) { } } private class ListItem { String name ; JComponent component ; ImageIcon icon ; }

Fix:
c . getMessageViewerDockable ( ) . setTitle ( title ) ;