Hallo,
ich habe ein sehr seltsames Problem mit meinen Managed Beans. Alle Beans mit Session Scope besitzen eine Methode, die mit der Annotation @PreDestroy aufgerufen wird. Die Methoden brauche ich um externe Resourcen freizugeben.
Ich bekam allerdings immer Exceptions, das die Resourcen schon entfernt seien. Nach etwas herumexperimentieren hab ich herausgefunden, das die @PreDestroy Methoden meiner Beans immer 2 mal direkt hintereinander nach dem Ausloggen aufgerufen werden.
Bei Aufruf Nr.1 werden meine Resourcen ordnungsgemäß freiegeben aber beim 2. Mal knallt es natürlich. Durch Tests habe ich auch herausgefunden, das es nicht etwas 2 Instanzen der Beans gibt sondern wirklich eine Instanz direkt 2 mal hintereinander diese Methode aufruft.
Hat jemand eine Idee warum das so ist oder kann dieses Verhalten nachvollziehen?
Oh bevor jemand auf die Idee kommt: Ich rufe diese Methoden natürlich nicht! innerhalb meines Codes auf, da die Methoden automatisch ausgeführt werden bevor das Bean entfernt wird.
ich habe ein sehr seltsames Problem mit meinen Managed Beans. Alle Beans mit Session Scope besitzen eine Methode, die mit der Annotation @PreDestroy aufgerufen wird. Die Methoden brauche ich um externe Resourcen freizugeben.
Ich bekam allerdings immer Exceptions, das die Resourcen schon entfernt seien. Nach etwas herumexperimentieren hab ich herausgefunden, das die @PreDestroy Methoden meiner Beans immer 2 mal direkt hintereinander nach dem Ausloggen aufgerufen werden.
Bei Aufruf Nr.1 werden meine Resourcen ordnungsgemäß freiegeben aber beim 2. Mal knallt es natürlich. Durch Tests habe ich auch herausgefunden, das es nicht etwas 2 Instanzen der Beans gibt sondern wirklich eine Instanz direkt 2 mal hintereinander diese Methode aufruft.
Hat jemand eine Idee warum das so ist oder kann dieses Verhalten nachvollziehen?
Oh bevor jemand auf die Idee kommt: Ich rufe diese Methoden natürlich nicht! innerhalb meines Codes auf, da die Methoden automatisch ausgeführt werden bevor das Bean entfernt wird.
Zuletzt bearbeitet: