Komische Reihenfolge mit dynamischem Proxy

gizmo

Bekanntes Mitglied
Im InvocationHandler habe ich folgenden Code:
Java:
	public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
		Object ret = null;
		Transaction transaction = transactionFactory.createTransaction();
		try {
			transaction.begin();
			System.out.println("Begin Meth1: " + Thread.currentThread().getId());
			ret = method.invoke(delegate, args);
			System.out.println("Begin Comm1: " + Thread.currentThread().getId());
			transaction.commit();
			System.out.println("End Comm1: " + Thread.currentThread().getId());
		} catch (Throwable t) {
			transaction.rollback();
			throw t;
		}
		return ret;
	}

Im Log finde ich folgendes:
Java:
Begin Comm1: 17
16:21:30,953 DEBUG JDBCTransaction:134 - commit
16:21:30,953 DEBUG JDBCTransaction:147 - committed JDBC Connection
16:21:30,953 DEBUG ConnectionManager:427 - aggressively releasing JDBC connection
16:21:30,953 DEBUG ConnectionManager:464 - releasing JDBC connection [ (open PreparedStatements: 0, globally: 0) (open ResultSets: 0, globally: 0)]
End Comm1: 17
Begin Comm1: 17
Exception in thread "AWT-EventQueue-0" org.hibernate.SessionException: Session is closed!

Kann mir das jemand erklären? Ich sehe nicht wie es sein kann, dass nach "End Comm1: 17" wieder "Begin Comm1: 17" kommt, ohne dass dazwischen ein "Begin Meth1: 17" steht.
 

FArt

Top Contributor
Vermutung: der Fehler sitzt davor und diese Meldung gibt es woanders auch noch ?!?

Einfach mal den Debugger anwerfen, dürfte nicht so schwer sein...

Tipp: nimm eine Logging-API, das ist nicht schwerer, ist aber besser zu lesen und enthält bei richtiger Konfiguration wichtige Informationen (ausführender Thread, Klasse, Zeilennummer, ....)
 
Zuletzt bearbeitet:

gizmo

Bekanntes Mitglied
Ich habe schon einige Zeit im Debugger verbracht und bin 100% sicher, dass es diese Meldung nirgends sonst gibt.

Daher verwirrt es mich, wie kann ein Thread bei Begin Comm1 sein, ohne bei Begin Meth1 gewesen zu sein.
 

FArt

Top Contributor
Ich habe schon einige Zeit im Debugger verbracht und bin 100% sicher, dass es diese Meldung nirgends sonst gibt.

Das würde mich auch verwundern. Was sagt denn der Debugger? Da musst du doch zwei mal dran vorbeikommen an dieser Stelle... und dann würde man ja auch den Call-Stack sehen, das sollte die Lösung ein sehr gutes Stück näher bringen...
 

gizmo

Bekanntes Mitglied
Ausser dass es beim zweiten Mal eine andere Methode war, welche im Proxy aufgerufen wurde, ist mir nichts aufgefallen.

Java:
Begin Comm1: 17 getSubFoldersOf
21:53:36,681 DEBUG JDBCTransaction:134 - commit
21:53:36,681 DEBUG JDBCTransaction:147 - committed JDBC Connection
21:53:36,681 DEBUG ConnectionManager:427 - aggressively releasing JDBC connection
21:53:36,681 DEBUG ConnectionManager:464 - releasing JDBC connection [ (open PreparedStatements: 0, globally: 0) (open ResultSets: 0, globally: 0)]
End Comm1: 17 getSubFoldersOf
Begin Comm1: 17 deleteFolder
 

FArt

Top Contributor
Hast du einen Breakpoint auf die Logmeldung Begin Comm1? Und der zieht zwei mal? Hast du einen Breakpoint auf den Methodenanfang (Objet ret = null)? Und zieht nur einmal?
Ne, oder?

Poste doch mal die Callstacks der invoke-Methode wenn der Debugger anhält.
 

gizmo

Bekanntes Mitglied
Habe den Fehler nun doch noch finden und beheben können.

War ein Problem mit den Benachrichtigungen, die Observer wurden zu früh benachrichtigt und wollten sich dann updaten, was wiederum über den InvocationHandler ging. Danach war die Transaction geschlossen.
 

FArt

Top Contributor
Habe den Fehler nun doch noch finden und beheben können.

War ein Problem mit den Benachrichtigungen, die Observer wurden zu früh benachrichtigt und wollten sich dann updaten, was wiederum über den InvocationHandler ging. Danach war die Transaction geschlossen.

Verstehe ich nicht. Das erklärt zwar das Fehlverhalten bzgl. der Transaktion bzw. der Connection, aber nicht die fehlende Logmeldung. Auch wenn eine andere Methode über den InvocationHandler abgefrühstückt wird, muss doch die Logmeldung kommen, oder?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Queenman Interface Mein Microsoft Visual Studio Code zeigt komische Dinge & Menüs an Allgemeine Java-Themen 9
T Komische Zeichen im Zusammenhang mit Serializable interface Allgemeine Java-Themen 13
Arif Math.cos liefert komische Werte Allgemeine Java-Themen 8
Q GregorianCalendar Methode add liefert komische Werte Allgemeine Java-Themen 3
B Komische Exception Allgemeine Java-Themen 4
T Komische Verhaltensweise Allgemeine Java-Themen 5
S Reihenfolge umkehren Allgemeine Java-Themen 6
E Fibonacci Reihenfolge dividieren Allgemeine Java-Themen 3
M Methoden werden in falscher Reihenfolge bearbeitet Allgemeine Java-Themen 10
T datei auslesen ind der richtigen reihenfolge Allgemeine Java-Themen 2
J Beanshell Classpath Reihenfolge Allgemeine Java-Themen 2
J JSONObject Reihenfolge der Werte? Allgemeine Java-Themen 4
TheWhiteShadow Listener Reihenfolge Allgemeine Java-Themen 4
S Methoden Class.forName() >> Methoden - Reihenfolge Allgemeine Java-Themen 5
turmaline Reihenfolge von Parametern Allgemeine Java-Themen 7
F Multidimensionales Array ohne linare Reihenfolge! Allgemeine Java-Themen 8
C Reihenfolge einer SortedMap/TreeMap umkehren Allgemeine Java-Themen 3
N ArrayList nach Reihenfolge prüfen Allgemeine Java-Themen 2
C Netbeans - Aufruf-Reihenfolge Allgemeine Java-Themen 5
Daniel_L Map/HashMap - Reihenfolge von Einträgen Allgemeine Java-Themen 4
L HashMap Key Reihenfolge umkehren Allgemeine Java-Themen 8
T Thread Reihenfolge Allgemeine Java-Themen 11
G synchronized-Sclüsselwort: welche Reihenfolge zum Betreten? Allgemeine Java-Themen 6
V JFilechooser, mehrere Datein selektieren und Reihenfolge? Allgemeine Java-Themen 2
T HashMap#values Reihenfolge Allgemeine Java-Themen 13
G Buchstaben in umkekehrter Reihenfolge ausgeben Allgemeine Java-Themen 4
E Reihenfolge der Initialisierungen eines Objekts Allgemeine Java-Themen 17
V Reihenfolge ? Allgemeine Java-Themen 26
E Reihenfolge der Elemente einer ArrayList? Allgemeine Java-Themen 4
G ständig Iterator über Kollektion --> falsche Reihenfolge? Allgemeine Java-Themen 2
G Map oder List mit festgelegter Reihenfolge Allgemeine Java-Themen 4
A Reihenfolge bei KeyListner Allgemeine Java-Themen 3
T HashMap, sortiert nach Reihenfolge Allgemeine Java-Themen 7
K Pdf mit dynamischem Text mit iText Allgemeine Java-Themen 0
F Tests mit dynamischem Datum Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben