- Affected App
- WoltLab Suite Core
Hallo,
Dieses Fehler ist etwas schwierig zu erklären und es ist eigentlich kein Fehler vom WCF, aber es könnte eine Überprüfung geben.
Es geht darum, ich habe gerade eine eigene Quelle für Plugins programmiert ( worüber meine eigenen Plugins laufen ) und hatte im Bezeichner einen Schreibfehler.
Gehen wir davon aus, dass wir folgende tar.gz ausliefern:
test.tar.gz
Darin befindet sich eine gültige file.tar und eine gültige Package.xml mit der Verlinkungen zur file.tar und dem Bezeichner:
de.test.wcf.plugin
Der eigene Packetserver liefert diese Datei jedoch durch einen Fehler mit einem anderem Bezeichner aus:
de.test.plugin
Das erste installieren ist nicht dramatisch und läuft durch. Alles installiert. Wenn man jetzt jedoch "vergessen" hat, dass dieses Plugin installiert ist und sucht nach dem Plugin, bekommt man dieses angezeigt, weil der Bezeichner ja nicht installiert ist.
Klickt man nun auf das Plugin "Installieren" fängt das WCF an und bricht dann mit der "logischen" Meldung "Datei kann nicht ersetzt werden da die Datei zum Plugin de.test.plugin gehört" ab.
Jetzt habe ich das Plugin 2x im Paketmanager. Das Deinstallieren, wird die Datei löschen und im schlimmsten Falle (da ja dann noch 1x installiert) einen Fehler werfen, da die Dateien fehlen.
Mein Vorschlag:
Das WCF vertraut nicht allein auf den Paket-Server, sondern überprüft nach dem Download der tar.gz:
1.) Ist der Bezeichner, der von dem Paket-Server genannt wurde, identisch mit dem im Paket?
2.) ist das Plugin bereits installiert.
Auch wenn der Fehler unwahrscheinlich ist, kann er auftreten und bei Benutzern die eben wirklich nur "Anwender" sind, das system durch Installieren von einer Fehlerhaft arbeitenden Quelle auf den Kopf stellen.
Ich hoffe es war verständlich.
Jetzt noch:
Mehrmals getestet unter WCF 2.0.8
Gruß Stephan