Buggy code:
public class SIPCommunicator { private static final String [ ] LEGACY_DIR_NAMES = new String [ ] { ".sip-communicator" , "SIP<seq2seq4repair_space>Communicator" } ; public static final String PNAME_SC_CACHE_DIR_LOCATION = "net.java.sip.communicator.SC_CACHE_DIR_LOCATION" ; public static final String PNAME_SC_LOG_DIR_LOCATION = "net.java.sip.communicator.SC_LOG_DIR_LOCATION" ; private static final String [ ] LEGACY_CONFIGURATION_FILE_NAMES = new String [ ] { "sip-communicator.properties" , "jitsi.properties" , "sip-communicator.xml" , "jitsi.xml" } ; private static final String OVERRIDABLE_DIR_NAME = "Jitsi" ; public static final String PNAME_SC_HOME_DIR_LOCATION = "net.java.sip.communicator.SC_HOME_DIR_LOCATION" ; public static final String PNAME_SC_HOME_DIR_NAME = "net.java.sip.communicator.SC_HOME_DIR_NAME" ; public static void main ( String [ ] args ) throws Exception { String version = System . getProperty ( "java.version" ) ; String vmVendor = System . getProperty ( "java.vendor" ) ; String osName = System . getProperty ( "os.name" ) ; SIPCommunicator . setSystemProperties ( osName ) ; SIPCommunicator . setScHomeDir ( osName ) ; File f = new File ( System . getProperty ( SIPCommunicator . PNAME_SC_HOME_DIR_LOCATION ) , ( ( ( System . getProperty ( SIPCommunicator . PNAME_SC_HOME_DIR_NAME ) ) + ( File . separator ) ) + ".usednsjava" ) ) ; if ( f . exists ( ) ) { System . setProperty ( "sun.net.spi.nameservice.provider.1" , "dns,dnsjava" ) ; } <START_BUG> if ( ( ( version . startsWith ( "1.4" ) ) || ( vmVendor . startsWith ( "Gnu" ) ) ) || ( vmVendor . startsWith ( "Free" ) ) ) { <END_BUG> String os = "" ; if ( osName . startsWith ( "Mac" ) ) os = ChangeJVMFrame . MAC_OSX ; else if ( osName . startsWith ( "Linux" ) ) os = ChangeJVMFrame . LINUX ; else if ( osName . startsWith ( "Windows" ) ) os = ChangeJVMFrame . WINDOWS ; ChangeJVMFrame changeJVMFrame = new ChangeJVMFrame ( os ) ; Dimension screenSize = Toolkit . getDefaultToolkit ( ) . getScreenSize ( ) ; changeJVMFrame . setLocation ( ( ( ( screenSize . width ) // 2 ) - ( ( changeJVMFrame . getWidth ( ) ) // 2 ) ) , ( ( ( screenSize . height ) // 2 ) - ( ( changeJVMFrame . getHeight ( ) ) // 2 ) ) ) ; changeJVMFrame . setVisible ( true ) ; return ; } LaunchArgHandler argHandler = LaunchArgHandler . getInstance ( ) ; int argHandlerRes = argHandler . handleArgs ( args ) ; if ( ( argHandlerRes == ( LaunchArgHandler . ACTION_EXIT ) ) || ( argHandlerRes == ( LaunchArgHandler . ACTION_ERROR ) ) ) { System . exit ( argHandler . getErrorCode ( ) ) ; } if ( argHandlerRes != ( LaunchArgHandler . ACTION_CONTINUE_LOCK_DISABLED ) ) { switch ( new SipCommunicatorLock ( ) . tryLock ( args ) ) { case SipCommunicatorLock . LOCK_ERROR : System . err . println ( ( "Failed<seq2seq4repair_space>to<seq2seq4repair_space>lock<seq2seq4repair_space>Jitsi's<seq2seq4repair_space>" + ( "configuration<seq2seq4repair_space>directory.\n" + "Try<seq2seq4repair_space>launching<seq2seq4repair_space>with<seq2seq4repair_space>the<seq2seq4repair_space>--multiple<seq2seq4repair_space>param." ) ) ) ; System . exit ( LOCK_ERROR ) ; break ; case SipCommunicatorLock . ALREADY_STARTED : System . out . println ( ( "Jitsi<seq2seq4repair_space>is<seq2seq4repair_space>already<seq2seq4repair_space>running<seq2seq4repair_space>and<seq2seq4repair_space>will<seq2seq4repair_space>" + ( ( "handle<seq2seq4repair_space>your<seq2seq4repair_space>parameters<seq2seq4repair_space>(if<seq2seq4repair_space>any).\n" + "Launch<seq2seq4repair_space>with<seq2seq4repair_space>the<seq2seq4repair_space>--multiple<seq2seq4repair_space>param<seq2seq4repair_space>to<seq2seq4repair_space>override<seq2seq4repair_space>this<seq2seq4repair_space>" ) + "behaviour." ) ) ) ; System . exit ( SUCCESS ) ; break ; case SipCommunicatorLock . SUCCESS : break ; } } String currentVersion = ( ( VersionImpl . VERSION_MAJOR ) + "." ) + ( VersionImpl . VERSION_MINOR ) ; File jitsiVersion = new File ( new File ( System . getProperty ( SIPCommunicator . PNAME_SC_CACHE_DIR_LOCATION ) , System . getProperty ( SIPCommunicator . PNAME_SC_HOME_DIR_NAME ) ) , ".lastversion" ) ; if ( jitsiVersion . exists ( ) ) { BufferedReader r = new BufferedReader ( new FileReader ( jitsiVersion ) ) ; String lastVersion = r . readLine ( ) ; r . close ( ) ; if ( ! ( currentVersion . equals ( lastVersion ) ) ) { File felixCache = new File ( new File ( System . getProperty ( SIPCommunicator . PNAME_SC_CACHE_DIR_LOCATION ) , System . getProperty ( SIPCommunicator . PNAME_SC_HOME_DIR_NAME ) ) , "sip-communicator.bin" ) ; if ( felixCache . exists ( ) ) { SIPCommunicator . deleteRecursive ( felixCache ) ; } } } FileWriter fw = new FileWriter ( jitsiVersion ) ; fw . write ( currentVersion ) ; fw . close ( ) ; System . setOut ( new ScStdOut ( System . out ) ) ; Main . main ( new String [ 0 ] ) ; } private static void deleteRecursive ( File f ) throws IOException { } static void setScHomeDir ( String osName ) { } static boolean checkHomeFolderExist ( String parent , String name , String osName ) { } private static void setSystemProperties ( String osName ) { } }

Fix:
if ( ( ( version . startsWith ( "1.5" ) ) || ( vmVendor . startsWith ( "Gnu" ) ) ) || ( vmVendor . startsWith ( "Free" ) ) ) {