Hallo zusammen,
habe ein Object von der Klasse QueryResponse, das ich in einem File zwischen speichern möchte.
Einige QueryRespond's lassen sich fehlerfrei abspeichern, andere aber nicht und ich erkenne keinen Grund dafür.
Die Datenstruktur ist eigentlich gleich.
Bitte um Hilfe
Gruß
Ahnungslos
habe ein Object von der Klasse QueryResponse, das ich in einem File zwischen speichern möchte.
Einige QueryRespond's lassen sich fehlerfrei abspeichern, andere aber nicht und ich erkenne keinen Grund dafür.
Die Datenstruktur ist eigentlich gleich.
Bitte um Hilfe
Gruß
Ahnungslos
Code:
void flushQueryResponseToPipe(String componentname, QueryResponse response) {
try {
FileOutputStream fs = new FileOutputStream("cache/" + componentname
+ ".pick");
ObjectOutputStream os = new ObjectOutputStream(fs);
try {
os.writeObject((Object) response);
os.flush();
os.close();
fs.close();
} catch (Exception e2) {
System.out.println("---> BEIM SCHREIBEN VON: " + componentname
+ " IST EIN FEHLER AUFGETRETEN <---");
e2.printStackTrace();
}
} catch (Exception e1) {
e1.printStackTrace();
}
}
Dazugehörige Exception beim Schreiben:
java.io.IOException: Write error
at java.io.FileOutputStream.writeBytes(Native Method)
at java.io.FileOutputStream.write(FileOutputStream.java(Compiled Code))
at java.io.ObjectOutputStream$BlockDataOutputStream.drain(ObjectOutputStream.java:1729)
at java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode(ObjectOutputStream.java:1638
at java.io.ObjectOutputStream.writeNonProxyDesc(ObjectOutputStream.java:1198)
at java.io.ObjectOutputStream.writeClassDesc(ObjectOutputStream.java:1129)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1328)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1081)
at java.io.ObjectOutputStream.writeFatalException(ObjectOutputStream.java:1445)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:310)
at versata.vfc.XDAClientConnectorImpl.flushQueryResponseToPipe(XDAClientConnectorImpl.java:491)
at versata.vfc.XDAClientConnectorImpl.executeQuery(XDAClientConnectorImpl.java:351)
at versata.vfc.XDAClientConnectorImpl.execute(XDAClientConnectorImpl.java:308)
at versata.vfc.VSQuery.execute(VSQuery.java:425)
at versata.vfc.VSQuery.execute(VSQuery.java:395)
at versata.vfc.VSJavaDataControl.runQuery(VSJavaDataControl.java:2665)
at versata.vfc.VSJavaDataControl.executeQuery(VSJavaDataControl.java:2489)
at versata.vfc.VSPick.executePickQuery(VSPick.java:839)
at versata.vfc.VSPick$VSPickPanel.initialize(VSPick.java:2146)
at versata.vfc.VSPick.showPickList(VSPick.java:644)
at com.vlag.client.VLAGPick.showPickList(VLAGPick.java:230)
at versata.vfc.VSPickChoice.displayChoiceWindow(VSPickChoice.java:571)
at com.vlag.client.VLAGPickChoice.displayChoiceWindow(VLAGPickChoice.java:193)
at versata.vfc.VSChoiceBase$VSChoiceBaseButton.mouseReleased(VSChoiceBase.java:1009)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:255)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:255)
at java.awt.Component.processMouseEvent(Component.java:5261)
at java.awt.Component.processEvent(Component.java:5059)
at java.awt.Container.processEvent(Container.java:1607)
at versata.vfc.VSChoiceBase$VSChoiceBaseButton.processEvent(VSChoiceBase.java:980)
at java.awt.Component.dispatchEventImpl(Component.java:3754)
at java.awt.Container.dispatchEventImpl(Container.java(Compiled Code))
at java.awt.Component.dispatchEvent(Component.java(Inlined Compiled Code))
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java(Compiled Code))
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3206)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3136)
at java.awt.Container.dispatchEventImpl(Container.java(Compiled Code))
at java.awt.Component.dispatchEvent(Component.java(Inlined Compiled Code))
at java.awt.EventQueue.dispatchEvent(EventQueue.java(Compiled Code))
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java(Compiled Code))
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java(Compiled Code))
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:176)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:131)
public QueryResponse readQueryResponseFromPipe(String componentName) {
QueryResponse response = null;
try {
FileInputStream fs = new FileInputStream("cache/" + componentName + ".pick");
ObjectInputStream is = new ObjectInputStream(fs);
response = (QueryResponse) is.readObject();
is.close();
} catch (FileNotFoundException e1) {
System.out.println("---> FILE " + componentName + ".pick KONNTE NICHT GEFUNDEN WERDEN <--- ");
} catch (Exception ex) {
System.out.println("---> FILE " + componentName + ".pick KONNTE NICHT AUSGELESEN WERDEN <--- ");
ex.printStackTrace();
}
return response;
}
Dazugehörige Exception beim Lesen von fehlerhaft weggeschriebenem File:
java.io.IOException: Die angegebene Prozedur wurde nicht gefunden
at java.io.FileInputStream.read(Native Method)
at java.io.ObjectInputStream$PeekInputStream.peek(ObjectInputStream.java(Inlined Compiled Code))
at java.io.ObjectInputStream$BlockDataInputStream.peek(ObjectInputStream.java(Compiled Code))
at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java(Inlined Compiled Code))
at java.io.ObjectInputStream.skipCustomData(ObjectInputStream.java(Compiled Code))
at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:1727)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java(Compiled Code))
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java(Compiled Code))
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java(Compiled Code))
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java(Compiled Code))
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java(Compiled Code))
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java(Compiled Code))
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java(Compiled Code))
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java(Compiled Code))
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java(Compiled Code))
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java(Compiled Code))
at java.io.ObjectInputStream.readObject(ObjectInputStream.java(Compiled Code))
at versata.vfc.XDAClientConnectorImpl.readQueryResponseFromPipe(XDAClientConnectorImpl.java:557)
at versata.vfc.XDAClientConnectorImpl.executeQuery(XDAClientConnectorImpl.java:354)
at versata.vfc.XDAClientConnectorImpl.execute(XDAClientConnectorImpl.java:308)
at versata.vfc.VSQuery.execute(VSQuery.java:425)
at versata.vfc.VSQuery.execute(VSQuery.java:395)
at versata.vfc.VSJavaDataControl.runQuery(VSJavaDataControl.java:2665)
at versata.vfc.VSJavaDataControl.executeQuery(VSJavaDataControl.java:2489)
at versata.vfc.VSPick.executePickQuery(VSPick.java:839)
at versata.vfc.VSPick$VSPickPanel.initialize(VSPick.java:2146)
at versata.vfc.VSPick.showPickList(VSPick.java:644)
at com.vlag.client.VLAGPick.showPickList(VLAGPick.java:230)
at versata.vfc.VSPickChoice.displayChoiceWindow(VSPickChoice.java:571)
at com.vlag.client.VLAGPickChoice.displayChoiceWindow(VLAGPickChoice.java:193)
at versata.vfc.VSChoiceBase$VSChoiceBaseButton.mouseReleased(VSChoiceBase.java:1009)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:255)
at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:255)
at java.awt.Component.processMouseEvent(Component.java:5261)
at java.awt.Component.processEvent(Component.java:5059)
at java.awt.Container.processEvent(Container.java:1607)
at versata.vfc.VSChoiceBase$VSChoiceBaseButton.processEvent(VSChoiceBase.java:980)
at java.awt.Component.dispatchEventImpl(Component.java:3754)
at java.awt.Container.dispatchEventImpl(Container.java:1664)
at java.awt.Component.dispatchEvent(Component.java(Inlined Compiled Code))
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java(Compiled Code))
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3206)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3136)
at java.awt.Container.dispatchEventImpl(Container.java:1650)
at java.awt.Component.dispatchEvent(Component.java:3582)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:531)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:238)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:182)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:176)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:131)