zeschke
I'm new here

Auf im MediaStore angezeigte Medien/Ordner kann nicht mit getStoreElement(uid, uidType) zugegriffen werden

Hallo Community,

aktuell haben wir ein Problem mit der API von FirstSpirit.

Ausgangssituation:

Über eine Schnittstelle werden zahlreiche Medieninhalte importiert und durch das Modul werden die Inhalte ihren ensptechneden Ordnern und Unterordnern zugewiesen.

Für das Zuordnen von Medien werden entweder vorhandene Ordner gesucht und dann verwendet, oder wenn keine Vorhanden sind Neue angelegt.

Problem:

Es kommt vor, dass Unterordner durch das Modul nicht gefunden werden, obwohl diese eindeutig im Strukturbaum der Medien-Verwaltung sichtbar sind. In diesem Fall kommt es dann zu einer DuplicateReferenceNameException.

Für das Finden eines Ordners verwenden wir getStoreElement auf den jeweiligen Vaterknoten, der ebenfalls ein MediaOrdner ist.

Zum Vergleich findet eine Suche nach Kindern dieses Knotens mit getChildren() auch solche Elemente, für die getStoreElement null liefert.

Fragen:

Die Frage ist nun, warum es zu einer Differenz bei den beiden Methoden kommen kann?

Woran kann es liegen das das Element durch eine gefunden wird, durch eine andere jedoch ignoriert wird?

Und warum liefert getStoreElement manchmal das richtige Element zurück?

Codebeispiel:

(MediaFolder) rootMediaFolder.getStore().getStoreElement(uid, UidType.MEDIASTORE_FOLDER);

      -> gibt null zurück

for(StoreElement se : rootMediaFolder.getChildren())

     -> gibt Element mit aus

danke schonmal für das Feedback und viele Grüße,

Robert

0 Kudos
3 Replies
feddersen
Community Manager

Hallo Robert,

wahrscheinlich ist es sinnvoll, dass du dich mit einem konkreten Fall des Problems an unseren Helpdesk wendest, damit man untersuchen kann, wieso es an dem konkreten Medium/Ordner zu Problemen kommt. So allgemein wird man die Frage wohl nicht beantworten können.

Viele Grüße

Christoph

0 Kudos
Peter_Jodeleit
Crownpeak employee

Hast du folgenden Code benutzt?

for(StoreElement se : rootMediaFolder.getChildren()) {

     if (uid.equals(se.get(uid)) && UidType.MEDIASTORE_FOLDER.equals(se.getUidType())) {

          System.out.println("found " + se);

     }

}

System.out.println("found? " + rootMediaFolder.getStore().getStoreElement(uid, UidType.MEDIASTORE_FOLDER));

Peter
0 Kudos

Danke für die Hinweise,

ein Ticket mit weiteren Einzelheiten zum Projekt habe ich beim Helpdesk erstellt.

Für unsrenen Test haben wir uns einige Attribute wie den Namen des Kindes ausgeben lassen, eine Prüfung haben wir nicht eingebaut.

Inzwischen haben wir erfahren, dass der Zustand auch an den verschiedenen Stores für Freigegebene und nicht freigegebene Elemente im FirstSpirit liegen könnte.

0 Kudos