Wichtiger Hinweis für das Inplace-Update von 4.2 -> 5.x:
- FirstSpirit-Module sollten noch unter FS 4.2 deinstalliert werden (besonders dann wenn die Klasse "StoreElementFilter" darin enthalten ist). Vorab die Konfigurationseinstellungen sichern!
Hintergrund: die Implementierung von "de.espirit.firstspirit.access.store.StoreElementFilter" ist nicht bytecode-kompatibel zwischen FS 4.2 R4 und FS 5.x da ihre Signatur
von (unter FirstSpirit FS 4.2 R4):
public abstract class StoreElementFilter extends TypedFilter<StoreElement>
nach (unter FS 5.x):
public abstract class StoreElementFilter implements Filter.TypedFilter<StoreElement>
verändert wurde. FS 4.2 R4-spezifische Module, die nach einem Inplace-Update mit dieser Klasse zu entfernen versucht werden, erzeugen folgenden Fehler:
ERROR 28.07.2014 16:31:58.531 (de.espirit.firstspirit.client.AbstractGuiHost): ExceptionHandler.uncaughtException() - java.lang.VerifyError: Bad type on operand stack
Exception Details:
Location:
de/espirit/ps/bosch/reports/projectapp/ReportProjectApp.iterateImportTree(Lde/espirit/ps/bosch/reports/xml/pojo/fsimport/ObjectFactory;Lde/espirit/ps/bosch/reports/xml/pojo/fsimport/ImportElement;Lde/espirit/firstspirit/access/store/StoreElement;)V @5: invokeinterface
Reason:
Type 'de/espirit/firstspirit/access/store/StoreElementFilter' (current frame, stack[1]) is not assignable to 'de/espirit/common/TypedFilter'
Current Frame:
bci: @5
flags: { }
locals: { 'de/espirit/ps/bosch/reports/projectapp/ReportProjectApp', 'de/espirit/ps/bosch/reports/xml/pojo/fsimport/ObjectFactory', 'de/espirit/ps/bosch/reports/xml/pojo/fsimport/ImportElement', 'de/espirit/firstspirit/access/store/StoreElement' }
stack: { 'de/espirit/firstspirit/access/store/StoreElement', 'de/espirit/firstspirit/access/store/StoreElementFilter', integer }
Bytecode:
...
Hier hilft nur folgender Trick:
- das bestehende noch installierte FS 4.2 R4-spezifische FirstSpirit-Modul nach dem Inplace-Update auf FS 5.x aus "data/modules" in separatem Verzeichnis entpacken und die bereits FS 5.x-kompatible Bibliothek der Komponenten verwenden
- das Modul wieder zusammenpacken
- FirstSpirit 5.x herunterfahren
- die Moduldatei unter "data/modules" austauschen
- FirstSpirit 5.x starten
- Modul deinstallieren
Kapitel 4.2 der Inplace-Update-Anleitung aus Dokument "FirstSpirit Release Notes", Version 1.1 wäre deshalb um den Punkt "Deinstallation von FS 4.2-Modulen vor dem eigentlichen Inplace-Update" zwingend zu ergänzen.