Buggy code:
public class Launcher { private static final Logger LOG = LoggerFactory . getLogger ( Launcher . class ) ; private static final String OPTION_DNSSEC = "dnssec" ; private static final String OPTION_PORT = "port" ; private static final String OPTION_HELP = "help" ; private static final String OPTION_MITM = "mitm" ; private static final String OPTION_SSL = "ssl" ; private static final String OPTION_FILE = "file" ; public static void main ( final String ... args ) { Launcher . pollLog4JConfigurationFileIfAvailable ( ) ; Launcher . LOG . info ( "Running<seq2seq4repair_space>LittleProxy<seq2seq4repair_space>with<seq2seq4repair_space>args:<seq2seq4repair_space>{}" , Arrays . asList ( args ) ) ; final Options options = new Options ( ) ; options . addOption ( null , Launcher . OPTION_DNSSEC , true , "Request<seq2seq4repair_space>and<seq2seq4repair_space>verify<seq2seq4repair_space>DNSSEC<seq2seq4repair_space>signatures." ) ; options . addOption ( null , Launcher . OPTION_PORT , true , "Run<seq2seq4repair_space>on<seq2seq4repair_space>the<seq2seq4repair_space>specified<seq2seq4repair_space>port." ) ; options . addOption ( null , Launcher . OPTION_HELP , false , "Display<seq2seq4repair_space>command<seq2seq4repair_space>line<seq2seq4repair_space>help." ) ; options . addOption ( null , Launcher . OPTION_MITM , false , "Run<seq2seq4repair_space>as<seq2seq4repair_space>man<seq2seq4repair_space>in<seq2seq4repair_space>the<seq2seq4repair_space>middle." ) ; options . addOption ( null , Launcher . OPTION_SSL , false , "Encript<seq2seq4repair_space>inbond<seq2seq4repair_space>connection." ) ; <START_BUG> options . addOption ( null , Launcher . OPTION_FILE , false , "Config<seq2seq4repair_space>file." ) ; <END_BUG> final CommandLineParser parser = new PosixParser ( ) ; final CommandLine cmd ; try { cmd = parser . parse ( options , args ) ; if ( ( cmd . getArgs ( ) . length ) > 0 ) { throw new UnrecognizedOptionException ( ( "Extra<seq2seq4repair_space>arguments<seq2seq4repair_space>were<seq2seq4repair_space>provided<seq2seq4repair_space>in<seq2seq4repair_space>" + ( Arrays . asList ( args ) ) ) ) ; } } catch ( final ParseException e ) { Launcher . printHelp ( options , ( "Could<seq2seq4repair_space>not<seq2seq4repair_space>parse<seq2seq4repair_space>command<seq2seq4repair_space>line:<seq2seq4repair_space>" + ( Arrays . asList ( args ) ) ) ) ; return ; } if ( cmd . hasOption ( Launcher . OPTION_HELP ) ) { Launcher . printHelp ( options , null ) ; return ; } final int defaultPort = 8080 ; int port ; if ( cmd . hasOption ( Launcher . OPTION_PORT ) ) { final String val = cmd . getOptionValue ( Launcher . OPTION_PORT ) ; try { port = Integer . parseInt ( val ) ; } catch ( final NumberFormatException e ) { Launcher . printHelp ( options , ( "Unexpected<seq2seq4repair_space>port<seq2seq4repair_space>" + val ) ) ; return ; } } else { port = defaultPort ; } System . out . println ( ( "About<seq2seq4repair_space>to<seq2seq4repair_space>start<seq2seq4repair_space>server<seq2seq4repair_space>on<seq2seq4repair_space>port:<seq2seq4repair_space>" + port ) ) ; String configFile = ( cmd . hasOption ( Launcher . OPTION_FILE ) ) ? cmd . getOptionValue ( Launcher . OPTION_FILE ) : ".//littleproxy.properties" ; HttpProxyServerBootstrap bootstrap = DefaultHttpProxyServer . bootstrapFromFile ( configFile ) . withPort ( port ) . withAllowLocalOnly ( false ) ; if ( cmd . hasOption ( Launcher . OPTION_MITM ) ) { Launcher . LOG . info ( "Running<seq2seq4repair_space>as<seq2seq4repair_space>Man<seq2seq4repair_space>in<seq2seq4repair_space>the<seq2seq4repair_space>Middle" ) ; bootstrap . withManInTheMiddle ( new SelfSignedMitmManager ( ) ) ; } if ( cmd . hasOption ( Launcher . OPTION_SSL ) ) { Launcher . LOG . info ( "Encript<seq2seq4repair_space>inbond<seq2seq4repair_space>connection." ) ; bootstrap . withSslEngineSource ( new SelfSignedSslEngineSource ( ".//littleproxy_keystore.jks" ) ) ; } if ( cmd . hasOption ( Launcher . OPTION_DNSSEC ) ) { final String val = cmd . getOptionValue ( Launcher . OPTION_DNSSEC ) ; if ( ProxyUtils . isTrue ( val ) ) { Launcher . LOG . info ( "Using<seq2seq4repair_space>DNSSEC" ) ; bootstrap . withUseDnsSec ( true ) ; } else if ( ProxyUtils . isFalse ( val ) ) { Launcher . LOG . info ( "Not<seq2seq4repair_space>using<seq2seq4repair_space>DNSSEC" ) ; bootstrap . withUseDnsSec ( false ) ; } else { Launcher . printHelp ( options , ( ( ( "Unexpected<seq2seq4repair_space>value<seq2seq4repair_space>for<seq2seq4repair_space>" + ( Launcher . OPTION_DNSSEC ) ) + "=:" ) + val ) ) ; return ; } } System . out . println ( "About<seq2seq4repair_space>to<seq2seq4repair_space>start..." ) ; bootstrap . start ( ) ; } private static void printHelp ( final Options options , final String errorMessage ) { } private static void pollLog4JConfigurationFileIfAvailable ( ) { } }

Fix:
options . addOption ( null , Launcher . OPTION_FILE , true , "Config<seq2seq4repair_space>file." ) ;