Lukas: NullPointerException

Beitrag lesen

Hi

Ich hab ein Problem mit einer NullPointerException. Den Fehler konnte ich bereits orten, jedoch weiss ich nicht, wie ich ihn beheben kann. Die Methode Constant() gibt Werte aus dem Config-File zurück, welche beim Start des Programmes von einer weiteren Methode in eine Hashtable gespeichert wurden. In der Methode DetermineDatabases() sollen also die Datenbanken ausgelesen und einer Verbindung hergestllt werden, jedoch taucht da immer eine NullPointerException auf, obwohl ich die Schleife abbreche, wenn ein Wert null ist (sh erste IF-Bedingung in der Schleife). Wie kann ich diese Exception verhindern?

Mfg
Lukas

/**
 * Gibt eine Konstante zurück
 *
 * @param Schlüssel
 */
public static String Constant(String key)
{
    if(config.containsKey(key))
    {
        return (String)config.get(key);
    }
    else
    {
        return null;
    }
}

/**
 * Ermittelt die in der Konfiguration beschriebenen Datenbanken
 * und lädt diese
 */
public void DetermineDatabases()
{
    databasePane.removeAll();
    try
    {
        for(int i = 0;true;i++)
        {
            String database = Constant("EMA_DB_PROFILE_" + i);
            String user;
            String pass;
            if(database == null)
            {
                break;
            }
            user = Constant("EMA_DB_PROFILE_" + i + "_USER");
            if(user == null)
            {
                user = Constant("EMA_DB_DEF_USER");
                pass = Constant("EMA_DB_DEF_PASS");
            }
            else
            {
                pass = Constant("EMA_DB_PROFILE_" + i + "_PASS");
                if(pass == null)
                {
                    pass = "";
                }
            }
            MySqlDatabase db = new MySqlDatabase(database,user,pass);
            databasePane.addTab(database,db.GetTab());
            itemDatabaseCreateTable.setEnabled(true);
            itemDatabaseDropTable.setEnabled(true);
            itemDatabaseRenameTable.setEnabled(true);
            itemDatabaseManageRights.setEnabled(true);
            itemEmaSql.setEnabled(true);
            databaseList.put(String.valueOf(i),db);
        }
    }
    catch(Exception exc)
    {
        System.out.println("Main.DetermineDatabases()");
        System.out.println(exc.toString() + "\r\n");
    }
}