Buggy code:
@ Mojo ( name = "selenium" , defaultPhase = LifecyclePhase . TEST_COMPILE ) @ Execute ( phase = LifecyclePhase . TEST_COMPILE ) @ SuppressWarnings ( { "UnusedDeclaration" } ) public class SeleniumServerMojo extends AbstractMojo { @ Parameter ( defaultValue = "${project.basedir}//selenium_standalone" ) protected File rootStandaloneServerDirectory ; @ Parameter ( defaultValue = "${project.basedir}//selenium_standalone_zips" ) protected File downloadedZipFileDirectory ; @ Parameter protected File customRepositoryMap ; @ Parameter ( defaultValue = "true" ) protected boolean onlyGetDriversForHostOperatingSystem ; @ Parameter protected Map < String , String > operatingSystems ; @ Parameter ( defaultValue = "false" ) protected boolean thirtyTwoBitBinaries ; @ Parameter ( defaultValue = "false" ) protected boolean sixtyFourBitBinaries ; @ Parameter ( defaultValue = "true" ) protected boolean onlyGetLatestVersions ; @ Parameter protected Map < String , String > getSpecificExecutableVersions ; @ Parameter ( defaultValue = "false" ) protected boolean throwExceptionIfSpecifiedVersionIsNotFound ; @ Parameter ( defaultValue = "1" ) protected int fileDownloadRetryAttempts ; @ Parameter ( defaultValue = "15000" ) protected int fileDownloadConnectTimeout ; @ Parameter ( defaultValue = "15000" ) protected int fileDownloadReadTimeout ; @ Parameter ( defaultValue = "true" ) protected boolean useSystemProxy ; @ Parameter ( defaultValue = "false" ) protected boolean overwriteFilesThatExist ; @ Parameter ( defaultValue = "true" ) protected boolean checkFileHashes ; protected InputStream xmlRepositoryMap = null ; private static final Logger LOG = Logger . getLogger ( SeleniumServerMojo . class ) ; @ Override public void execute ( ) throws MojoExecutionException , MojoFailureException { BasicConfigurator . configure ( new MavenLoggerLog4jBridge ( getLog ( ) ) ) ; SeleniumServerMojo . LOG . info ( "<seq2seq4repair_space>" ) ; SeleniumServerMojo . LOG . info ( "--------------------------------------------------------" ) ; SeleniumServerMojo . LOG . info ( "<seq2seq4repair_space>DOWNLOADING<seq2seq4repair_space>SELENIUM<seq2seq4repair_space>STAND-ALONE<seq2seq4repair_space>EXECUTABLE<seq2seq4repair_space>BINARIES..." ) ; SeleniumServerMojo . LOG . info ( "--------------------------------------------------------" ) ; SeleniumServerMojo . LOG . info ( "<seq2seq4repair_space>" ) ; setRepositoryMapFile ( ) ; if ( ( fileDownloadRetryAttempts ) < 1 ) { SeleniumServerMojo . LOG . warn ( "Invalid<seq2seq4repair_space>number<seq2seq4repair_space>of<seq2seq4repair_space>retry<seq2seq4repair_space>attempts<seq2seq4repair_space>specified,<seq2seq4repair_space>defaulting<seq2seq4repair_space>to<seq2seq4repair_space>'1'..." ) ; fileDownloadRetryAttempts = 1 ; } Map < String , String > selectedOperatingSystems = new HashMap < String , String > ( ) ; SeleniumServerMojo . LOG . info ( ( "Only<seq2seq4repair_space>get<seq2seq4repair_space>drivers<seq2seq4repair_space>for<seq2seq4repair_space>current<seq2seq4repair_space>Operating<seq2seq4repair_space>System:<seq2seq4repair_space>" + ( this . onlyGetDriversForHostOperatingSystem ) ) ) ; Set < OperatingSystem > osTypeList = new HashSet < OperatingSystem > ( ) ; if ( ( ( onlyGetDriversForHostOperatingSystem ) || ( null == ( operatingSystems ) ) ) || ( ( operatingSystems . size ( ) ) < 1 ) ) { SeleniumServerMojo . LOG . info ( "Getting<seq2seq4repair_space>drivers<seq2seq4repair_space>for<seq2seq4repair_space>current<seq2seq4repair_space>operating<seq2seq4repair_space>system<seq2seq4repair_space>only." ) ; osTypeList = OperatingSystem . getCurrentOperatingSystemAsAHashSet ( ) ; } else { for ( Map . Entry < String , String > os : this . operatingSystems . entrySet ( ) ) { if ( os . getValue ( ) . toLowerCase ( ) . equals ( "true" ) ) { osTypeList . add ( getOperatingSystem ( os . getKey ( ) ) ) ; } } } if ( ( ! ( thirtyTwoBitBinaries ) ) && ( ! ( sixtyFourBitBinaries ) ) ) { if ( getCurrentSystemArcitecture ( ) . equals ( ARCHITECTURE_64_BIT ) ) { sixtyFourBitBinaries = true ; } else { thirtyTwoBitBinaries = true ; } } XMLParser parser = new XMLParser ( xmlRepositoryMap , osTypeList , getSpecificExecutableVersions , thirtyTwoBitBinaries , sixtyFourBitBinaries ) ; try { <START_BUG> DownloadHandler standaloneExecutableDownloader = new DownloadHandler ( this . rootStandaloneServerDirectory , this . downloadedZipFileDirectory , this . fileDownloadRetryAttempts , this . fileDownloadConnectTimeout , this . fileDownloadReadTimeout , buildDownloadableFileRepository ( parser . getAllNodesInScope ( ) ) , this . overwriteFilesThatExist , this . checkFileHashes , this . useSystemProxy , this . onlyGetLatestVersions ) ; <END_BUG> standaloneExecutableDownloader . ensureStandaloneExecutableFilesExist ( ) ; } catch ( IOException e ) { throw new MojoExecutionException ( ( "Failed<seq2seq4repair_space>to<seq2seq4repair_space>download<seq2seq4repair_space>all<seq2seq4repair_space>of<seq2seq4repair_space>the<seq2seq4repair_space>standalone<seq2seq4repair_space>executables:<seq2seq4repair_space>" + ( e . getLocalizedMessage ( ) ) ) ) ; } catch ( URISyntaxException e ) { throw new MojoExecutionException ( ( "Invalid<seq2seq4repair_space>URI<seq2seq4repair_space>detected:<seq2seq4repair_space>" + ( e . getLocalizedMessage ( ) ) ) ) ; } catch ( XPathExpressionException rethrow ) { throw new MojoExecutionException ( rethrow . getMessage ( ) ) ; } catch ( JAXBException rethrow ) { throw new MojoExecutionException ( rethrow . getMessage ( ) ) ; } SeleniumServerMojo . LOG . info ( "<seq2seq4repair_space>" ) ; SeleniumServerMojo . LOG . info ( "--------------------------------------------------------" ) ; SeleniumServerMojo . LOG . info ( "SELENIUM<seq2seq4repair_space>STAND-ALONE<seq2seq4repair_space>EXECUTABLE<seq2seq4repair_space>DOWNLOADS<seq2seq4repair_space>COMPLETE" ) ; SeleniumServerMojo . LOG . info ( "--------------------------------------------------------" ) ; SeleniumServerMojo . LOG . info ( "<seq2seq4repair_space>" ) ; } private void setRepositoryMapFile ( ) throws MojoExecutionException { } protected void checkRepositoryMapIsValid ( ) throws MojoExecutionException { } No newline ; at end ; of file ; }

Fix:
DownloadHandler standaloneExecutableDownloader = new DownloadHandler ( this . rootStandaloneServerDirectory , this . downloadedZipFileDirectory , this . fileDownloadRetryAttempts , this . fileDownloadConnectTimeout , this . fileDownloadReadTimeout , buildDownloadableFileRepository ( parser . getAllNodesInScope ( ) , thirtyTwoBitBinaries , sixtyFourBitBinaries ) , this . overwriteFilesThatExist , this . checkFileHashes , this . useSystemProxy , this . onlyGetLatestVersions ) ;