Questions & Answers

S_Kochhan
I'm new here

Keine connection in uninstalling Methode mehr vorhanden seit Release 4.2.437

Hallo,

ich habe heute auf Version 4.2.437 upgedated. Dabei ist mir aufgefallen, dass in der uninstalling Methode eines Services keine Connection mehr zur Verfรผgung steht.

Hintergrund ist der, dass wir in einigen Modulen wรคhrend der Installation automatisch Auftrรคge in die Auftragsverwaltung schreiben.

Beim uninstalling sopllten diese dann auch wieder gelรถscht werden.

Um an den ScheduleStorage zu kommen rufe ich

ScheduleStorage scheduleStorage = environment.getConnection().getService(AdminService.class).getScheduleStorage();

auf. Debugging hat ergeben, dass an dieser Stelle environment.getConnection() null zurรผck liefert und somit eine NullPointerException geworfen wird.

Interessant ist auch, dass im LogFile einige Zeilen zuvor ein Disconnect Eintrag erscheint (s.u.).

Ist das wirklich so beabsichtigt, dass man in der uninstalling Methode keinen zugriff mehr auf die Connection hat?

Oder hat sich da ein Bug eingeschlichen?

MfG

Sebastian Kochhan

Auszug aus dem LogFile:

28 Apr 2011 15:12:24  DEBUG [Queue[6:NIOSocketServer,BOUNDED]:ClientRequestHandler.ManagerCallWorker] [de.espirit.firstspirit.server.module.ServiceManagerImpl] [] stopping service 'ConfigurationService'...

28 Apr 2011 15:12:24  DEBUG [Queue[6:NIOSocketServer,BOUNDED]:ClientRequestHandler.ManagerCallWorker] [de.espirit.firstspirit.server.io.AbstractServerConnection] [] disconnect - de.espirit.firstspirit.server.io.ServerConnectionImpl@1565551

28 Apr 2011 15:12:24   INFO [Queue[6:NIOSocketServer,BOUNDED]:ClientRequestHandler.ManagerCallWorker] [de.espirit.firstspirit.server.sessionmanagement.SessionManagerImpl] [] close dummy session (ID=8290446994047343467, user=ConfigurationService)

28 Apr 2011 15:12:24  ERROR [Queue[6:NIOSocketServer,BOUNDED]:ClientRequestHandler.ManagerCallWorker] [de.espirit.firstspirit.server.event.EventManagerImpl] [] error occured during event handling!

java.lang.NullPointerException

    at com.commerzbank.firstspirit.basis2.common.configuration.server.Basis2ServerConfigurationService.deleteScheduleEntries(Basis2ServerConfigurationService.java:855)

    at com.commerzbank.firstspirit.basis2.common.configuration.server.Basis2ServerConfigurationService.uninstalling(Basis2ServerConfigurationService.java:225)

0 Kudos
6 Replies
Peter_Jodeleit
Crownpeak employee

Die Methode wird erst seit 4.2.437 aufgerufen (Ticket #98315). Und ja, zu dem Zeitpunkt ist das Environment bereits geschlossen. Statt des Rรผckgabewertes "null" wรคre da wohl eine Exception angebrachter gewesen (z.B. EnvrionmentAlreadyClosed). Hรคtte aber auch nichts daran geรคndert, das der von dir angedachte Anwendungsfall nicht umsetzbar wรคre.

Wir werden daher wohl die Aufrufreihenfolge von "Schliessen der Connection" und "Aufruf von 'uninstall'" umdrehen. Die interne ID dafรผr werde ich (oder ein Kollege) dann hier posten. Stay tuned.. Smiley Wink

Peter
0 Kudos

Hallo Herr Kochhan,

den Punkt habe ich aufgenommen. Die interne ID lautet: #99975.

Viele GrรผรŸe,

Sascha Rusch.

0 Kudos

Hallo Herr Rusch,

wann kรถnnen wir denn so in etwa mit einem Fix rechnen?

MfG

Sebastian Kochhan

0 Kudos

Hallo Herr Kochhan,

ab FirstSpirit Version 4.2.439 wird eine ร„nderung enthalten sein, die das Schliessen der Connection vor dem Aufruf der uninstalling()-Methode verhindert. Somit sollte dann die Connection in der uninstalling()-Methode zur Verfรผgung stehen.

Eine Ergรคnzung: Um die NPE zu vermeiden kรถnnen Sie die Connection auf Null prรผfen, z. B.

final Connection connection = environment.getConnection();

if (connection != null) {

    ...

}

Viele GrรผรŸe,

Sascha Rusch

0 Kudos

Hallo Herr Rusch,

wann ist denn voraussichtlich mit der Version 4.2.439 zu rechnen?

MfG

Sebastian Kochhan

0 Kudos

Hallo Herr Kochhan,

die nรคchste Freigabe fรผr einen FirstSpirit 4.2R4 Build ist fรผr Ende Juni geplant.

Viele GrรผรŸe,

   Andreas Knoor

0 Kudos

Type a product name