serens
Returning Observer

MediaStore-Element lässt sich nicht laden / löschen

Jump to solution

Hallo liebe Community. Hat jemand eine Idee wie ich ein Objekt löschen (oder besser: retten) kann, wenn FS es nicht mehr aus dem Store laden kann?

Anbei der Stacktrace, wenn ich das Element über die Medienverwaltung anzeigen möchte:

de.espirit.firstspirit.access.DataAccessException: couldn't load store-element 725904, revision 221217

    at de.espirit.firstspirit.server.storemanagement.StoreImpl.loadStoreElement(StoreImpl.java:991)

    at de.espirit.firstspirit.server.storemanagement.StoreImpl._getElement(StoreImpl.java:1143)

    at de.espirit.firstspirit.server.storemanagement.StoreImpl.getElement(StoreImpl.java:1126)

    at de.espirit.firstspirit.server.storemanagement.StoreImpl.getElement(StoreImpl.java:1080)

    at de.espirit.firstspirit.server.storemanagement.StoreManagerImpl.getSubTree(StoreManagerImpl.java:210)

    at sun.reflect.GeneratedMethodAccessor110109.invoke(Unknown Source)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

    at java.lang.reflect.Method.invoke(Method.java:606)

    at de.espirit.firstspirit.io.DefaultServerHandler.callManager(DefaultServerHandler.java:67)

    at de.espirit.firstspirit.server.io.handler.ManagerCall.doCall(ManagerCall.java:139)

    at de.espirit.firstspirit.server.io.handler.CompactCall.handle(CompactCall.java:73)

    at de.espirit.firstspirit.server.io.MessageWorker.run(MessageWorker.java:31)

    at de.espirit.firstspirit.server.ExecutionManagerImpl$RunnableWrapper.call(ExecutionManagerImpl.java:634)

    at de.espirit.firstspirit.server.ExecutionManagerImpl$ExtendedCallable.call(ExecutionManagerImpl.java:600)

    at java.util.concurrent.FutureTask.run(FutureTask.java:262)

    at de.espirit.common.util.BoundedExecutorService$RunnableWrapper.run(BoundedExecutorService.java:436)

    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)

    at java.util.concurrent.FutureTask.run(FutureTask.java:262)

    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)

    at java.lang.Thread.run(Thread.java:745)

    at de.espirit.common.util.SuspendableThread.run(SuspendableThread.java:56)

Caused by: java.lang.IllegalArgumentException: illegal utf8 byte 240

    at de.espirit.common.xml.SimpleXmlParser.utf8bytes2chars(SimpleXmlParser.java:940)

    at de.espirit.common.xml.SimpleXmlParser.setXml(SimpleXmlParser.java:76)

    at de.espirit.common.xml.SimpleXmlParser.create(SimpleXmlParser.java:48)

    at de.espirit.firstspirit.server.storemanagement.StoreUtil.parse(StoreUtil.java:577)

    at de.espirit.firstspirit.store.access.StoreElementDTO.<init>(StoreElementDTO.java:46)

    at de.espirit.firstspirit.server.storemanagement.StoreImpl.loadStoreElement(StoreImpl.java:975)

    at de.espirit.firstspirit.server.storemanagement.StoreImpl._getElement(StoreImpl.java:1143)

    at de.espirit.firstspirit.server.storemanagement.StoreImpl.getElement(StoreImpl.java:1126)

    at de.espirit.firstspirit.server.storemanagement.StoreImpl.getElement(StoreImpl.java:1080)

    at de.espirit.firstspirit.server.storemanagement.StoreManagerImpl.getSubTree(StoreManagerImpl.java:210)

    at sun.reflect.GeneratedMethodAccessor110109.invoke(Unknown Source)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

    at java.lang.reflect.Method.invoke(Method.java:606)

    at de.espirit.firstspirit.io.DefaultServerHandler.callManager(DefaultServerHandler.java:67)

    at de.espirit.firstspirit.server.io.handler.ManagerCall.doCall(ManagerCall.java:139)

    at de.espirit.firstspirit.server.io.handler.CompactCall.handle(CompactCall.java:73)

    at de.espirit.firstspirit.server.io.MessageWorker.run(MessageWorker.java:31)

    at de.espirit.firstspirit.server.ExecutionManagerImpl$RunnableWrapper.call(ExecutionManagerImpl.java:634)

    at de.espirit.firstspirit.server.ExecutionManagerImpl$ExtendedCallable.call(ExecutionManagerImpl.java:600)

    at java.util.concurrent.FutureTask.run(FutureTask.java:262)

    at de.espirit.common.util.BoundedExecutorService$RunnableWrapper.run(BoundedExecutorService.java:436)

    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)

    at java.util.concurrent.FutureTask.run(FutureTask.java:262)

    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)

    at de.espirit.firstspirit.client.io.ServerCaller.callManager(ServerCaller.java:507)

    at de.espirit.firstspirit.io.DefaultClientHandler.callManager(DefaultClientHandler.java:58)

    at de.espirit.firstspirit.client.io.RemoteManagerCaller.invoke(RemoteManagerCaller.java:53)

    at de.espirit.firstspirit.server.$Proxy34.getSubTree(Unknown Source)

    at de.espirit.firstspirit.store.access.ClientStoreElementCache.doLoadStoreElement(ClientStoreElementCache.java:61)

    at de.espirit.firstspirit.store.access.StoreElementCacheImpl.loadStoreElement(StoreElementCacheImpl.java:102)

    at de.espirit.firstspirit.store.access.StoreElementCacheImpl.getStoreElementOrNull(StoreElementCacheImpl.java:75)

    at de.espirit.firstspirit.store.access.DefaultStoreRoot.getStoreElement(DefaultStoreRoot.java:398)

    at de.espirit.firstspirit.store.access.DefaultStoreRoot.getStoreElement(DefaultStoreRoot.java:380)

    at de.espirit.firstspirit.store.access.DefaultStoreRoot.getStoreElement(DefaultStoreRoot.java:367)

    at de.espirit.firstspirit.store.access.DefaultStoreRoot.getStoreElement(DefaultStoreRoot.jbsh % ava:49)

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

    at java.lang.reflect.Method.invoke(Method.java:498)

    at bsh.Reflect.invokeMethod(Reflect.java:166)

    at bsh.Reflect.invokeObjectMethod(Reflect.java:99)

    at bsh.BSHPrimarySuffix.doName(BSHPrimarySuffix.java:176)

    at bsh.BSHPrimarySuffix.doSuffix(BSHPrimarySuffix.java:120)

    at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:80)

    at bsh.BSHPrimaryExpression.eval(BSHPrimaryExpression.java:47)

    at bsh.BSHCastExpression.eval(BSHCastExpression.java:60)

    at bsh.BSHVariableDeclarator.eval(BSHVariableDeclarator.java:86)

    at bsh.BSHTypedVariableDeclaration.eval(BSHTypedVariableDeclaration.java:84)

    at bsh.Interpreter.run(Interpreter.java:479)

Ich habe es auch schon über die BeanShell versucht, allerdings auch hier der selbe Fehler, wenn ich das Objekt selektieren möchte.

import de.espirit.firstspirit.access.store.Store.Type;

import de.espirit.firstspirit.access.store.mediastore.*;

Media mediaElement = (Media) context.getProject().getUserService().getStore(Type.MEDIASTORE, false).getStoreElement(725904);

Leider kann ich nicht sagen wie der Fehler ursprünglich entstanden ist.

Beste Grüße, Sven

0 Kudos
1 Solution

Accepted Solutions
felix_reinhold
Returning Responder

Hi Sven,

dem Fehler nach scheint ja wirklich das XML des StoreElements korrupt zu sein. Arbeitet ihr mit den FsDevTools oder hat da ggf. jemand im RepositoryViewer rumgespielt? Kommt die Fehlermeldung im beanshell auch, wenn du den Cast weglässt? Wenn nicht könntest du wenigstens mit

context.getProject().getUserService().getStore(Type.MEDIASTORE, false).getStoreElement(725904).toXml(false);

mal schauen, wie das XML aussieht. Ansonsten wäre das am ehesten ein Fall für den RepoViewer - einmal kurz reinschauen wie das XML aussieht und im Bestenfall lässt es sich dann einfach korrigieren oder Löschen. Im WorstCase kriegst du dort die gleiche Meldung. Wenn du keine Erfahrung mit dem Tool hast, dann aber am besten mit dem Helpdesk zusammen und vorher das Projekt sichern 😉

Viele Grüße

Felix

View solution in original post

0 Kudos
3 Replies
felix_reinhold
Returning Responder

Hi Sven,

dem Fehler nach scheint ja wirklich das XML des StoreElements korrupt zu sein. Arbeitet ihr mit den FsDevTools oder hat da ggf. jemand im RepositoryViewer rumgespielt? Kommt die Fehlermeldung im beanshell auch, wenn du den Cast weglässt? Wenn nicht könntest du wenigstens mit

context.getProject().getUserService().getStore(Type.MEDIASTORE, false).getStoreElement(725904).toXml(false);

mal schauen, wie das XML aussieht. Ansonsten wäre das am ehesten ein Fall für den RepoViewer - einmal kurz reinschauen wie das XML aussieht und im Bestenfall lässt es sich dann einfach korrigieren oder Löschen. Im WorstCase kriegst du dort die gleiche Meldung. Wenn du keine Erfahrung mit dem Tool hast, dann aber am besten mit dem Helpdesk zusammen und vorher das Projekt sichern 😉

Viele Grüße

Felix

0 Kudos

Hi Felix,
danke zunächst für Deine Antwort!

FsDevTools und RepoViewer sind hier nicht im Einsatz. Tatsächlich handelt es sich um eine Kundenmeldung und das sind reine Redakteure.

Die Exception wird auch geworfen, wenn ich nicht caste oder mittels .toXml(false) den Aufruf starte.

Ich werde allerdings mal die Idee mit dem RepoViewer genauer betrachten.

Beste Grüße, Sven

0 Kudos
serens
Returning Observer

Zusammen mit dem Helpdesk und dem RepoViewer konnte das defekte Element gerettet werden. Hier waren Sonderzeichen in der Beschreibung eines Bildes gelangt.

0 Kudos