novomind
I'm new here

DuplicateReferenceNameException

Hallo,

wir haben ein Modul, das für eine gepflegte Seite automatisch Referenzen in der Seitenstruktur erstellt. Dabei werden evtl. bestehende Referenzen gelöscht und mit demselben Referenznamen angelegt. Das Pattern für den Referenzname ist <referenzname_page>_<inhaltsbereich> (z.B. homepage_content). Das Modul wird über einen Workflow aufgerufen.

Jetzt haben wir das Problem, dass beim Erstellen der Seitenreferenzen DuplicateReferenceNameExceptions auftreten (siehe unten). Der Referenznamen ist aber definitiv nicht vorhanden. Weder über Suche noch API kann ein Element mit dem entsprechenden Referenznamen gefunden werden. In der Struktur sind alle Elemente freigeben.

Woran kann es liegen, dass ein Referenzname nicht wiederverwendet werden kann? Ändert man den Referenznamen der Seite z.B. homepage_a, kann der Eintrag in der Seiten Struktur (homepage_a_content) angelegt werden. Das Problem betrifft nur bestimmte Seiten.

     

Caused by: de.espirit.firstspirit.access.DuplicateReferenceNameException: duplicate uniquedescription: 'homepage_content' for element with id 1312498 (used for id 1311791)

          at de.espirit.firstspirit.server.storemanagement.ReferenceNameValidator.checkUid(ReferenceNameValidator.java:135)

          at de.espirit.firstspirit.server.storemanagement.ReferenceNameValidator.beforeInsert(ReferenceNameValidator.java:122)

          at de.espirit.firstspirit.server.storemanagement.StoreImpl.beforeInsert(StoreImpl.java:2562)

          at de.espirit.firstspirit.server.storemanagement.StoreImpl.insertElement(StoreImpl.java:1944)

          at de.espirit.firstspirit.server.storemanagement.StoreManagerImpl.insertElement(StoreManagerImpl.java:476)

          at de.espirit.firstspirit.store.access.StoreElementDtoCacheImpl.insertElement(StoreElementDtoCacheImpl.java:64)

          at de.espirit.firstspirit.store.access.StoreElementCacheImpl.insertElement(StoreElementCacheImpl.java:420)

          at de.espirit.firstspirit.store.access.StoreElementFactory.insertElement(StoreElementFactory.java:262)

          at de.espirit.firstspirit.store.access.StoreElementFactory.commit(StoreElementFactory.java:173)

          at de.espirit.firstspirit.store.access.StoreElementFactory.createAndCommit(StoreElementFactory.java:60)

          at de.espirit.firstspirit.store.access.StoreElementFactory.createAndCommit(StoreElementFactory.java:54)

          at de.espirit.firstspirit.store.access.StoreElementFactory.createAndCommit(StoreElementFactory.java:49)

          at de.espirit.firstspirit.store.access.sitestore.SiteStoreElementFactory.createPageRef(SiteStoreElementFactory.java:69)

          at de.espirit.firstspirit.store.access.sitestore.PageRefFolderImpl.createPageRef(PageRefFolderImpl.java:135)

Server-Version: 5.0.318

0 Kudos
8 Replies
marro
Crownpeak employee

Hallo Ronny,

in der Fehlermeldung steht ja die ID des Elements drin, welches den Referenznamen noch zu verwenden scheint (used for id 1311791). Kannst Du nach dieser ID suchen bzw. exisitiert dieses Element denn noch?

Viele Grüße

Donato

0 Kudos

nein, ein Element mit dieser ID können wir nicht finden.

Viele Grüße.

0 Kudos
marro
Crownpeak employee

Wenn eine Referenz gelöscht und der übergeordnete Ordner freigegeben wird, sollte der Referenzname eigentlich wieder zur Verfügung stehen.

Kannst Du vielleicht Teile eures Codes posten, in dem ihr die Referenzen löscht, die Ordner freigebt und neue Referenzen anlegt?

Viele Grüße

Donato

0 Kudos

Hallo Ronny,

besteht das von dir beschriebene Problem noch? Wenn du eine Lösung gefunden hast, wäre es schön, wenn du die Lösung hier postest.

Grüße

Jan

0 Kudos

Hallo,

nein, dieses Problem besteht noch.

Viele Grüße

0 Kudos

Eventuell liegt der Fehler beim Löschen/Freigeben der Referenzen. Vielleicht können wir dir weiterhelfen, wenn du uns die entsprechenden Code-Schnippsel postest.

Grüße

Jan

0 Kudos

Hallo Ronny,

besteht diese Frage noch oder konntest Du sie inzwischen lösen? In diesem Fall wäre es super, wenn Du deine Lösung hier erläutern würdest, um sie auch den anderen Community-Teilnehmern bereitzustellen.

Viele Grüße

Michaela

0 Kudos

Hallo,

leider haben wir die Ursache nicht ermitteln können. Das Problem trat auch nur für wenige Elemente/Referenznamen auf. Wir haben unser Modul dahingehend angepasst, das wir beim Erzeugen von Seitenreferenzen den Parameter unifyNameOnServer auf 'true' setzen können. Somit umgehen wir das Problem der DuplicateReferenceNameExceptions.

Viele Grüße,

Ronny

0 Kudos