Buggy code:
public class ExtendedProperties extends Hashtable < String , Object > { private static final long serialVersionUID = - 4064305575636043822L ; private ExtendedProperties defaults ; protected String file ; protected String basePath ; protected String fileSeparator = System . getProperty ( "file.separator" ) ; protected boolean isInitialized = false ; private String includePropertyName = "include" ; protected ArrayList < String > keysAsListed = new ArrayList < String > ( ) ; protected static final String START_TOKEN = "${" ; protected static final String END_TOKEN = "}" ; protected String interpolate ( final String base ) { } protected String interpolateHelper ( final String base , List < String > priorVariables ) { } private static String escape ( final String s ) { } private static String unescape ( final String s ) { } private static int countPreceding ( final String line , final int index , final char ch ) { } private static boolean endsWithSlash ( final String line ) { } static class PropertiesReader extends LineNumberReader { public PropertiesReader ( final Reader reader ) { } public String readProperty ( ) throws IOException { } } static class PropertiesTokenizer extends StringTokenizer { static final String DELIMITER = "," ; public PropertiesTokenizer ( final String string ) { } @ Override public boolean hasMoreTokens ( ) { } @ Override public String nextToken ( ) { } } public ExtendedProperties ( ) { } public ExtendedProperties ( final String file ) throws IOException { } public ExtendedProperties ( final String file , final String defaultFile ) throws IOException { } public boolean isInitialized ( ) { } public String getInclude ( ) { } public void setInclude ( final String inc ) { } public void load ( final InputStream input ) throws IOException { } public synchronized void load ( final InputStream input , final String enc ) throws IOException { } public Object getProperty ( final String key ) { } public void addProperty ( final String key , final Object value ) { } private void addPropertyDirect ( final String key , final Object value ) { } private void addPropertyInternal ( final String key , final Object value ) { } public void setProperty ( final String key , final Object value ) { } public synchronized void save ( final OutputStream output , final String header ) throws IOException { } public void combine ( final ExtendedProperties props ) { } public void clearProperty ( final String key ) { } public Iterator < String > getKeys ( ) { } public Iterator < String > getKeys ( final String prefix ) { } public ExtendedProperties subset ( final String prefix ) { } public void display ( ) { } public String getString ( final String key ) { } public String getString ( final String key , final String defaultValue ) { } public Properties getProperties ( final String key ) { } public Properties getProperties ( final String key , final Properties defaults ) { } public String [ ] getStringArray ( final String key ) { } public Vector < String > getVector ( final String key ) { } public Vector < String > getVector ( final String key , final Vector < String > defaultValue ) { } public List < String > getList ( final String key ) { } public List < String > getList ( final String key , final List < String > defaultValue ) { } public boolean getBoolean ( final String key ) { } public boolean getBoolean ( final String key , final boolean defaultValue ) { } public Boolean getBoolean ( final String key , final Boolean defaultValue ) { } public String testBoolean ( final String value ) { } public byte getByte ( final String key ) { } public byte getByte ( final String key , final byte defaultValue ) { } public Byte getByte ( final String key , final Byte defaultValue ) { } public short getShort ( final String key ) { } public short getShort ( final String key , final short defaultValue ) { } public Short getShort ( final String key , final Short defaultValue ) { } public int getInt ( final String name ) { } public int getInt ( final String name , final int def ) { } public int getInteger ( final String key ) { } public int getInteger ( final String key , final int defaultValue ) { } public Integer getInteger ( final String key , final Integer defaultValue ) { } public long getLong ( final String key ) { } public long getLong ( final String key , final long defaultValue ) { <START_BUG> return getLong ( key , new Long ( defaultValue ) ) . longValue ( ) ; <END_BUG> } public Long getLong ( final String key , final Long defaultValue ) { } public float getFloat ( final String key ) { } public float getFloat ( final String key , final float defaultValue ) { } public Float getFloat ( final String key , final Float defaultValue ) { } public double getDouble ( final String key ) { } public double getDouble ( final String key , final double defaultValue ) { } public Double getDouble ( final String key , final Double defaultValue ) { } public static ExtendedProperties convertProperties ( final Properties props ) { } @ Override public Object put ( final String key , final Object value ) { } @ Override public void putAll ( final Map < ? extends String , ? extends Object > map ) { } @ Override public Object remove ( final Object key ) { } }

Fix:
return getLong ( key , Long . valueOf ( defaultValue ) ) . longValue ( ) ;