Buggy code:
private PopItem popItem ; private POP3PreProcessingFilterPluginHandler handler ; private Hashtable filterCache ; private StatusObservableImpl observable ; private UidListEntry [ ] uidMap ; private ScanListEntry [ ] sizes ; private String [ ] capas ; private boolean usingSSL ; public POP3Store ( PopItem popItem ) { } public int getState ( ) { } public void setState ( int state ) { } public List getUIDList ( ) throws Exception { } public int getSize ( Object uid ) throws Exception { } protected void fetchMessageSizeList ( ) throws Exception { } public int getMessageCount ( ) throws Exception { } public boolean deleteMessage ( Object uid ) throws Exception { } protected String modifyMessage ( String rawString ) { } protected int getIndex ( Object uid ) throws IOException , CommandCancelledException , POP3Exception { } public ColumbaMessage fetchMessage ( Object uid ) throws Exception { } public void logout ( ) throws IOException , POP3Exception { } protected void fetchCapas ( ) throws IOException { } protected boolean isSupported ( String command ) { } public void login ( ) throws IOException , CommandCancelledException , POP3Exception { PasswordDialog dialog ; boolean login = false ; char [ ] password = new char [ 0 ] ; String user = "" ; String method = "" ; boolean save = false ; protocol . openPort ( ) ; fetchCapas ( ) ; if ( popItem . getBoolean ( "enable_ssl" ) ) { if ( ( isSupported ( "STLS" ) ) || ( ( capas . length ) == 0 ) ) { try { protocol . switchToSSL ( ) ; usingSSL = true ; POP3Store . LOG . info ( "Switched<seq2seq4repair_space>to<seq2seq4repair_space>SSL" ) ; } catch ( IOException e ) { Object [ ] options = new String [ ] { MailResourceLoader . getString ( "" , "global" , "ok" ) . replaceAll ( "&" , "" ) , MailResourceLoader . getString ( "" , "global" , "cancel" ) . replaceAll ( "&" , "" ) } ; int result = JOptionPane . showOptionDialog ( null , ( ( ( ( ( MailResourceLoader . getString ( "dialog" , "error" , "ssl_handshake_error" ) ) + ":<seq2seq4repair_space>" ) + ( e . getLocalizedMessage ( ) ) ) + "\n" ) + ( MailResourceLoader . getString ( "dialog" , "error" , "ssl_turn_off" ) ) ) , "Warning" , JOptionPane . DEFAULT_OPTION , JOptionPane . WARNING_MESSAGE , null , options , options [ 0 ] ) ; if ( result == 1 ) { throw new CommandCancelledException ( ) ; } popItem . set ( "enable_ssl" , false ) ; protocol . openPort ( ) ; } catch ( POP3Exception e ) { Object [ ] options = new String [ ] { MailResourceLoader . getString ( "" , "global" , "ok" ) . replaceAll ( "&" , "" ) , MailResourceLoader . getString ( "" , "global" , "cancel" ) . replaceAll ( "&" , "" ) } ; int result = JOptionPane . showOptionDialog ( null , ( ( ( MailResourceLoader . getString ( "dialog" , "error" , "ssl_not_supported" ) ) + "\n" ) + ( MailResourceLoader . getString ( "dialog" , "error" , "ssl_turn_off" ) ) ) , "Warning" , JOptionPane . DEFAULT_OPTION , JOptionPane . WARNING_MESSAGE , null , options , options [ 0 ] ) ; if ( result == 1 ) { throw new CommandCancelledException ( ) ; } popItem . set ( "enable_ssl" , false ) ; } } else { Object [ ] options = new String [ ] { MailResourceLoader . getString ( "" , "global" , "ok" ) . replaceAll ( "&" , "" ) , MailResourceLoader . getString ( "" , "global" , "cancel" ) . replaceAll ( "&" , "" ) } ; int result = JOptionPane . showOptionDialog ( null , ( ( ( MailResourceLoader . getString ( "dialog" , "error" , "ssl_not_supported" ) ) + "\n" ) + ( MailResourceLoader . getString ( "dialog" , "error" , "ssl_turn_off" ) ) ) , "Warning" , JOptionPane . DEFAULT_OPTION , JOptionPane . WARNING_MESSAGE , null , options , options [ 0 ] ) ; if ( result == 1 ) { throw new CommandCancelledException ( ) ; } popItem . set ( "enable_ssl" , false ) ; } } int loginMethod = getLoginMethod ( ) ; while ( ! login ) { <START_BUG> if ( ( ( password = popItem . get ( "password" , "" ) . toCharArray ( ) ) . length ) == 0 ) { <END_BUG> dialog = new PasswordDialog ( ) ; dialog . showDialog ( popItem . get ( "user" ) , popItem . get ( "host" ) , popItem . get ( "password" ) , popItem . getBoolean ( "save_password" ) ) ; if ( dialog . success ( ) ) { password = dialog . getPassword ( ) ; save = dialog . getSave ( ) ; } else { protocol . cancelCurrent ( ) ; throw new CommandCancelledException ( ) ; } } else { save = popItem . getBoolean ( "save_password" ) ; } try { switch ( loginMethod ) { case POP3Store . USER : { login = protocol . userPass ( popItem . get ( "user" ) , password ) ; break ; } case POP3Store . APOP : { login = protocol . apop ( popItem . get ( "user" ) , password ) ; break ; } } } catch ( POP3Exception e ) { JOptionPane . showMessageDialog ( null , e . getMessage ( ) , "Authorization<seq2seq4repair_space>failed!" , JOptionPane . ERROR_MESSAGE ) ; popItem . set ( "password" , "" ) ; state = POP3Store . STATE_NONAUTHENTICATE ; } POP3Store . LOG . info ( ( "login=" + login ) ) ; } popItem . set ( "save_password" , save ) ; state = POP3Store . STATE_AUTHENTICATE ; if ( save ) { popItem . set ( "password" , new String ( password ) ) ; } }

Fix:
if ( ( ( password = popItem . getRoot ( ) . getAttribute ( "password" , "" ) . toCharArray ( ) ) . length ) == 0 ) {