Zum Hauptinhalt gehen

GenericConfig bring Fehlermeldung: Unhandled exception: de.espirit.firstspirit.access.schedule.CancelSchedule: connection is closed

Kommentare

4 Kommentare

  • Zendesk API User
    Author: mbergmann - 7/2/2020 18:38

    Hallo Timo,

    eine Antwort hierauf habe ich leider auch nicht (ich hatte die GenericConfig ja damals gebaut).

    Was mir allerdings auffällt: Der Stacktrace passt irgendwie nicht zu deinem Code - im Trace kommt der Aufruf aus dem SessionBuilder, der Code zeigt aber das DataAccessPlugin. Oder fehlen hier nur ein paar Zeile?

    Im GenConfig code nutze ich letztlich nur normale FirstSpirit API um zu schauen ob die ProjectApp im Projekt hinzugefügt ist, das ist eine reine Convenience-Methode.

    Viele Grüße

    Michael

    0
  • Zendesk API User
    Author: tfuchs - 7/3/2020 6:02

    Hi Michael,

    ja, sorry, der Code ist aus Versehen von der falschen Stelle, im SessionBuilder mache ich aber dasselbe:

    public class ChannelDataAccessSessionBuilder implements DataAccessSessionBuilder<Channel>, GomConfigurable {

            private SessionBuilderAspectMap _aspects;

            private SemtagGomElement _semtagGomElement;

            private SpecialistsBroker _context;

            public ChannelDataAccessSessionBuilder(SpecialistsBroker specialistsBroker) {

                    this._context = specialistsBroker;

                    if (NewsletterConfig.isInstalled(NewsletterApp.class, specialistsBroker)) {

                            this._aspects = new SessionBuilderAspectMap();

                            this._aspects.put(GomConfigurable.TYPE, this);

                    }

            }

    Wir haben den Fehler aktuell tatsächlich auch nur bei einem Kunden. Ich frage mich, ob die Abfrage beim Session Builder überhaupt nötig ist oder ob es reicht, wenn ich einfach im DataAccessPlugin prüfe, ob die Projektkomponente installiert ist

    Grüße

    Timo

    0
  • Zendesk API User
    Author: tfuchs - 7/3/2020 6:21

    Der SessionBuilder wird ja nur aufgerufen, wenn ein konkreter Zugriff auf die Daten durchgeführt wird, also bspw. wenn ich auf eine Eingabekomponente zugreife, die das DAP verwendet, oder? In dem Fall bräuchte ich die Abfrage, ob die Komponente installiert ist, ja nicht.

    Aber dann könnte ja einfach jemand das DAP in einer Eingabekomponente in einem Projekt verwenden, das die Projektkomponente nicht installiert hat. Wie würde ich das dann verhindern?

    0
  • Zendesk API User
    Author: mbergmann - 7/3/2020 7:10

    Hallo Timo,

    wirklich verhindern dass jemand (also ein Template-Entwickler) das nutzt kannst du eh nicht - höchstens für eine Fehler sorgen wenn das passiert. Der „Startpunkt“ ist ja sowieso die DataAccessPlugin-Klasse. Von daher würde ich den Aufruf nur dort machen wo er wirklich nötig ist bzw. die Infos WENN du sie „weiter unten“ haben willst einfach durchreichen anstatt jedes Mal neu zu ermitteln.

    Viele Grüße

    Michael

    0

Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.