Null Pointer Exeption

Daniel Klassen

Grünschnabel
Hallo alle zusammen :)

ich benötige (wieder mal) eure Hilfe bei einem Fehler in meiner Bachelorarbeit... :(

Vermutlich werden in meinem Projekt zuviele Verbindungen zur Datenbank aufgebaut,
wenn man die Seite zu oft refreshed (f5)

Dann kommt es häufig vor dass die Null-Pointer-Exeption angezeigt wird.

Ich gehe wie folgt vor:
In der Bean habe ich ein Opjekt der klasse Manager erstellt, in der die Exeption auftritt,
erstelle anschließend Objekte des DatabaseConnectors und öffne die Verbindung.

Code:
private Manager manager;

	public LoginBean() {

		databaseConnector = new DatabaseConnector();
		connection = databaseConnector.loadDriver();
		manager = new Manager(connection);
}

Der Fehler tritt (erst nach vielen Zugriffen) beim Erstellen des Statements auf!

Code:
public Manager(Connection connection) {
		this.connection = connection;
		try {
			statement = connection.createStatement(); //hier tritt der Fehler auf
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}


Code:
java.lang.NullPointerException
	de.program2design.manager.Manager.<init>(Manager.java:41)
	de.program2design.bean.LoginBean.<init>(LoginBean.java:40)

Hab die Fehlermeldung angehängt damit der Post übersichtlich bleibt!
Freue mich auf einige Tipps, was ich besser machen könnte!!
 

Anhänge

  • nullpointer.txt
    5,6 KB · Aufrufe: 12
Zuletzt bearbeitet:
Du solltest vorher "connection" auf null prüfen.
Evtl ist es auch sinnvoll "this.connection" nur zu setzen (line 2) wenn "connection" tatsächlich != null ist.

Im Zweifelsfall mal mit dem Debugger durch gehen.
 
Funktioniert leider so nicht :(

hatte schon vorher versucht:
Code:
if (connection == null) {
				databaseConnector = new DatabaseConnector();
				connection = databaseConnector.loadDriver();
			}
			statement = connection.createStatement();

Das problem dürfte sein, dass keine Verbindung mehr zur Datenbank aufgebaut werden kann,
weil bei jedem Aufruf der Seite eine Datenbankverbindung geöffnet wird (dadurch dass ich in der Bean die Connection öffne)

Gibt es da eine Möglichkeit, dass die Verbindung nur über seitenaufrufe hinweg besteht?
 
Stellt sich die Frage warum du immer wieder ein öffnest. Wenn die LoginBean sich in der Session befindet, sollte das eigentlich kein Problem sein und der new-Aufruf bei != null sollte reichen.
 

Neue Beiträge

Zurück