Hallo,
eigentlich sollte dieser Eintrag in den Bug Tracker. Da ich dafuer aber keinen Zugang habe, stelle ich den Beitrag hier ein.
Nuclos 3.0.8 und 3.0.9 (andere Versionen kann ich nicht testen)
Problem: beim Oeffnen einer Aufgabe wird eine ClassCastException geworfen. Im Stacktrace steht, das Long nicht nach Integer gecastet werden kann.
Ursache: In den Codeteilen zu den persoenlichen Aufgaben, wird viel mit Integer gearbeitet. Es sollte aber Long verwendet werden, da die Ids Instanzen dieser Klasse sind.
Loesung: Zumindast um die laestige Exception „abzuschalten“, kann der folgende Patch angewendet werden. Es gibt dann noch weitere Problemchen bei der Darstellung, aber das Programm laeuft ohne Unterbrechung. Sobald ich mehr habe, werde ich es wieder veroeffentlichen.
Index: src/java/org/nuclos/client/task/PersonalTaskCollectController.java
===================================================================
--- src/java/org/nuclos/client/task/PersonalTaskCollectController.java (.../http://localhost:4680/svn/vendor/novabit/nuclos/src/current/src/java/org/nuclos/client/task/PersonalTaskCollectController.java) (revision 31)
+++ src/java/org/nuclos/client/task/PersonalTaskCollectController.java (.../home/redneck/workspace-nuclos/nuclos/src/java/org/nuclos/client/task/PersonalTaskCollectController.java) (working copy)
@@ -193,17 +193,7 @@
new Transformer(){
@Override
public Integer transform(CollectableMasterData clmd) {
- return (Integer)clmd.getField("user").getValueId();
+ // Fix ClassCastException when opening a personal task.
+ // There are more issues with this around, but the annoying
+ // exception does not appear anymore.
+// return (Integer)clmd.getField("user").getValueId();
+ // TODO use Long instead of Integer
+ Object valueId = clmd.getField("user").getValueId();
+ if (valueId instanceof Number) {
+ return ((Number) valueId).intValue();
+ } else {
+ return null;
+ }
}}
);
return new HashSet(userIds);
Daniel