Home Forum Nuclos Bedienung Organisieren ClassCastException beim Oeffnen von Aufgaben

Ansicht von 2 Beiträgen - 1 bis 2 (von insgesamt 2)
  • Autor
    Beiträge
  • #3938

    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

    #3939
    Ramin Goettlich
    Teilnehmer

    Hallo Daniel,

    danke für die Beschreibung, in der 3.1 haben wir das auch schon vor ein paar Tagen behoben. Die 3.1 wird im Laufe der nächsten 2 Wochen als Beta veröffentlicht (und bringt übrigens auch die erste Stufe einer Mehrfachnucletfähigkeit mit).

    Grüsse,
    nuclosian

Ansicht von 2 Beiträgen - 1 bis 2 (von insgesamt 2)