Buggy code:
public class Manifest { public static final String ATTRIBUTE_MANIFEST_VERSION = "Manifest-Version" ; public static final String ATTRIBUTE_SIGNATURE_VERSION = "Signature-Version" ; public static final String ATTRIBUTE_NAME = "Name" ; public static final String ATTRIBUTE_FROM = "From" ; public static final String ATTRIBUTE_CLASSPATH = "class-path" ; public static final String DEFAULT_MANIFEST_VERSION = "1.0" ; public static final int MAX_LINE_LENGTH = 70 ; public static class Attribute { private String name = null ; private String value = null ; public Attribute ( ) { } public Attribute ( String line ) throws ManifestException { } public Attribute ( String name , String value ) { } public boolean equals ( Object rhs ) { } public void parse ( String line ) throws ManifestException { } public void setName ( String name ) { } public String getName ( ) { } public void setValue ( String value ) { } public String getValue ( ) { } public void addContinuation ( String line ) { } public void write ( PrintWriter writer ) throws IOException { } } public static class Section { private Vector warnings = new Vector ( ) ; private String name = null ; private Hashtable attributes = new Hashtable ( ) ; public void setName ( String name ) { } public String getName ( ) { } public String read ( BufferedReader reader ) throws IOException , ManifestException { Manifest . Attribute attribute = null ; while ( true ) { String line = reader . readLine ( ) ; <START_BUG> if ( ( line == null ) || ( ( line . length ( ) ) == 0 ) ) { <END_BUG> return null ; } if ( ( line . charAt ( 0 ) ) == '<seq2seq4repair_space>' ) { if ( attribute == null ) { if ( ( name ) != null ) { name += line . substring ( 1 ) ; } else { throw new ManifestException ( ( "Can't<seq2seq4repair_space>start<seq2seq4repair_space>an<seq2seq4repair_space>attribute<seq2seq4repair_space>with<seq2seq4repair_space>a<seq2seq4repair_space>continuation<seq2seq4repair_space>line<seq2seq4repair_space>" + line ) ) ; } } else { attribute . addContinuation ( line ) ; } } else { attribute = new Manifest . Attribute ( line ) ; String nameReadAhead = addAttributeAndCheck ( attribute ) ; if ( nameReadAhead != null ) { return nameReadAhead ; } } } } public void merge ( Manifest . Section section ) throws ManifestException { } public void write ( PrintWriter writer ) throws IOException { } public String getAttributeValue ( String attributeName ) { } public void removeAttribute ( String attributeName ) { } public void addConfiguredAttribute ( Manifest . Attribute attribute ) throws ManifestException { } public String addAttributeAndCheck ( Manifest . Attribute attribute ) throws ManifestException { } public Enumeration getWarnings ( ) { } public boolean equals ( Object rhs ) { } } private String manifestVersion = Manifest . DEFAULT_MANIFEST_VERSION ; private Manifest . Section mainSection = new Manifest . Section ( ) ; private Hashtable sections = new Hashtable ( ) ; public Manifest ( ) { } public Manifest ( InputStream is ) throws IOException , ManifestException { } public void addConfiguredSection ( Manifest . Section section ) throws ManifestException { } public void addConfiguredAttribute ( Manifest . Attribute attribute ) throws ManifestException { } public void merge ( Manifest other ) throws ManifestException { } public void write ( PrintWriter writer ) throws IOException { } public String toString ( ) { } public Enumeration getWarnings ( ) { } public boolean equals ( Object rhs ) { } }

Fix:
if ( ( line == null ) || ( ( line . trim ( ) . length ( ) ) == 0 ) ) {