Buggy code:
public class ProjectHelper2 extends ProjectHelper { public static final String REFID_TARGETS = "ant.targets" ; private static ProjectHelper2 . AntHandler elementHandler = new ProjectHelper2 . ElementHandler ( ) ; private static ProjectHelper2 . AntHandler targetHandler = new ProjectHelper2 . TargetHandler ( ) ; private static ProjectHelper2 . AntHandler mainHandler = new ProjectHelper2 . MainHandler ( ) ; private static ProjectHelper2 . AntHandler projectHandler = new ProjectHelper2 . ProjectHandler ( ) ; private static final String REFID_CONTEXT = "ant.parsing.context" ; private static final FileUtils FILE_UTILS = FileUtils . getFileUtils ( ) ; public boolean canParseAntlibDescriptor ( Resource resource ) { } public UnknownElement parseAntlibDescriptor ( Project containingProject , Resource resource ) { } public UnknownElement parseUnknownElement ( Project project , URL source ) throws BuildException { } public void parse ( Project project , Object source ) throws BuildException { } public void parse ( Project project , Object source , ProjectHelper2 . RootHandler handler ) throws BuildException { AntXMLContext context = handler . context ; File buildFile = null ; URL url = null ; String buildFileName = null ; if ( source instanceof File ) { buildFile = ( ( File ) ( source ) ) ; } else if ( source instanceof URL ) { url = ( ( URL ) ( source ) ) ; } else if ( source instanceof Resource ) { FileProvider fp = ( ( FileProvider ) ( ( ( Resource ) ( source ) ) . as ( FileProvider . class ) ) ) ; if ( fp != null ) { buildFile = fp . getFile ( ) ; } else { URLProvider up = ( ( URLProvider ) ( ( ( Resource ) ( source ) ) . as ( URLProvider . class ) ) ) ; if ( up != null ) { url = up . getURL ( ) ; } } } if ( buildFile != null ) { buildFile = ProjectHelper2 . FILE_UTILS . normalize ( buildFile . getAbsolutePath ( ) ) ; context . setBuildFile ( buildFile ) ; buildFileName = buildFile . toString ( ) ; } else if ( url != null ) { try { context . setBuildFile ( ( ( File ) ( null ) ) ) ; context . setBuildFile ( url ) ; } catch ( MalformedURLException ex ) { throw new BuildException ( ex ) ; } buildFileName = url . toString ( ) ; } else { throw new BuildException ( ( ( "Source<seq2seq4repair_space>" + ( source . getClass ( ) . getName ( ) ) ) + "<seq2seq4repair_space>not<seq2seq4repair_space>supported<seq2seq4repair_space>by<seq2seq4repair_space>this<seq2seq4repair_space>plugin" ) ) ; } InputStream inputStream = null ; InputSource inputSource = null ; ZipFile zf = null ; try { XMLReader parser = JAXPUtils . getNamespaceXMLReader ( ) ; String uri = null ; if ( buildFile != null ) { uri = ProjectHelper2 . FILE_UTILS . toURI ( buildFile . getAbsolutePath ( ) ) ; inputStream = new FileInputStream ( buildFile ) ; } else { uri = url . toString ( ) ; int pling = - 1 ; <START_BUG> if ( ( uri . startsWith ( "jar:file" ) ) && ( ( pling = uri . indexOf ( "!" ) ) > ( - 1 ) ) ) { <END_BUG> zf = new ZipFile ( Locator . fromJarURI ( uri ) , "UTF-8" ) ; inputStream = zf . getInputStream ( zf . getEntry ( uri . substring ( ( pling + 1 ) ) ) ) ; } else { inputStream = url . openStream ( ) ; } } inputSource = new InputSource ( inputStream ) ; if ( uri != null ) { inputSource . setSystemId ( uri ) ; } project . log ( ( ( ( ( "parsing<seq2seq4repair_space>buildfile<seq2seq4repair_space>" + buildFileName ) + "<seq2seq4repair_space>with<seq2seq4repair_space>URI<seq2seq4repair_space>=<seq2seq4repair_space>" ) + uri ) + ( zf != null ? "<seq2seq4repair_space>from<seq2seq4repair_space>a<seq2seq4repair_space>zip<seq2seq4repair_space>file" : "" ) ) , MSG_VERBOSE ) ; DefaultHandler hb = handler ; parser . setContentHandler ( hb ) ; parser . setEntityResolver ( hb ) ; parser . setErrorHandler ( hb ) ; parser . setDTDHandler ( hb ) ; parser . parse ( inputSource ) ; } catch ( SAXParseException exc ) { Location location = new Location ( exc . getSystemId ( ) , exc . getLineNumber ( ) , exc . getColumnNumber ( ) ) ; Throwable t = exc . getException ( ) ; if ( t instanceof BuildException ) { BuildException be = ( ( BuildException ) ( t ) ) ; if ( ( be . getLocation ( ) ) == ( Location . UNKNOWN_LOCATION ) ) { be . setLocation ( location ) ; } throw be ; } throw new BuildException ( exc . getMessage ( ) , ( t == null ? exc : t ) , location ) ; } catch ( SAXException exc ) { Throwable t = exc . getException ( ) ; if ( t instanceof BuildException ) { throw ( ( BuildException ) ( t ) ) ; } throw new BuildException ( exc . getMessage ( ) , ( t == null ? exc : t ) ) ; } catch ( FileNotFoundException exc ) { throw new BuildException ( exc ) ; } catch ( UnsupportedEncodingException exc ) { throw new BuildException ( ( ( "Encoding<seq2seq4repair_space>of<seq2seq4repair_space>project<seq2seq4repair_space>file<seq2seq4repair_space>" + buildFileName ) + "<seq2seq4repair_space>is<seq2seq4repair_space>invalid." ) , exc ) ; } catch ( IOException exc ) { throw new BuildException ( ( ( ( "Error<seq2seq4repair_space>reading<seq2seq4repair_space>project<seq2seq4repair_space>file<seq2seq4repair_space>" + buildFileName ) + ":<seq2seq4repair_space>" ) + ( exc . getMessage ( ) ) ) , exc ) ; } finally { FileUtils . close ( inputStream ) ; ZipFile . closeQuietly ( zf ) ; } } protected static ProjectHelper2 . AntHandler getMainHandler ( ) { } protected static void setMainHandler ( ProjectHelper2 . AntHandler handler ) { } protected static ProjectHelper2 . AntHandler getProjectHandler ( ) { } protected static void setProjectHandler ( ProjectHelper2 . AntHandler handler ) { }

Fix:
if ( ( uri . startsWith ( "jar:file" ) ) && ( ( pling = uri . indexOf ( "!//" ) ) > ( - 1 ) ) ) {