Hallo, ich habe da eine Frage wegen eines Heap Space Problems.
Wir haben hier ein kleines Java-Tool, welches Firmendaten aufnimmt und diese dann in einer XML-Datei abspeichert. (mit XMLEncoder und Fileoutputstream,...).
Das ging soweit.
Nun sollte es möglich sein eine PDF mit anzuhängen.
Ich lese also die PDF (~200KB) als byte-Array ein. Soweit erstmal keine Probleme.
Beim Speichern der Daten als XML-Datei kommt dabei immer:
Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
at java.util.IdentityHashMap.resize(IdentityHashMap.java:452)
at java.util.IdentityHashMap.put(IdentityHashMap.java:428)
at java.beans.XMLEncoder.getValueData(XMLEncoder.java:447)
at java.beans.XMLEncoder.writeExpression(XMLEncoder.java:371)
at java.beans.PersistenceDelegate.writeObject(PersistenceDelegate.java:97)
at java.beans.Encoder.writeObject(Encoder.java:54)
at java.beans.XMLEncoder.writeObject(XMLEncoder.java:257)
at java.beans.Encoder.writeObject1(Encoder.java:206)
at java.beans.Encoder.cloneStatement(Encoder.java:219)
at java.beans.Encoder.writeExpression(Encoder.java:278)
at java.beans.XMLEncoder.writeExpression(XMLEncoder.java:372)
at java.beans.ArrayPersistenceDelegate.initialize(MetaData.java:106)
at java.beans.PersistenceDelegate.writeObject(PersistenceDelegate.java:100)
at java.beans.Encoder.writeObject(Encoder.java:54)
at java.beans.XMLEncoder.writeObject(XMLEncoder.java:257)
at java.beans.Encoder.writeExpression(Encoder.java:279)
at java.beans.XMLEncoder.writeExpression(XMLEncoder.java:372)
at java.beans.PersistenceDelegate.writeObject(PersistenceDelegate.java:97)
at java.beans.Encoder.writeObject(Encoder.java:54)
at java.beans.XMLEncoder.writeObject(XMLEncoder.java:257)
at java.beans.Encoder.writeExpression(Encoder.java:279)
at java.beans.XMLEncoder.writeExpression(XMLEncoder.java:372)
at java.beans.DefaultPersistenceDelegate.doProperty(DefaultPersistenceDelegate.java:212)
at java.beans.DefaultPersistenceDelegate.initBean(DefaultPersistenceDelegate.java:247)
at java.beans.DefaultPersistenceDelegate.initialize(DefaultPersistenceDelegate.java:391)
at java.beans.PersistenceDelegate.writeObject(PersistenceDelegate.java:100)
at java.beans.Encoder.writeObject(Encoder.java:54)
at java.beans.XMLEncoder.writeObject(XMLEncoder.java:257)
at java.beans.Encoder.writeExpression(Encoder.java:279)
at java.beans.XMLEncoder.writeExpression(XMLEncoder.java:372)
at java.beans.PersistenceDelegate.writeObject(PersistenceDelegate.java:97)
at java.beans.Encoder.writeObject(Encoder.java:54)
Ich habe mit dem XMLEncoder noch nie gearbeitet.
Es hiess, ich müsste nur das byte-Array in das Objekt stopfen und das wars.
Derjenige der das Programm geschrieben ist leider in Urlaub
Kann mir jemand sagen, was da schiefläuft?
Wir haben hier ein kleines Java-Tool, welches Firmendaten aufnimmt und diese dann in einer XML-Datei abspeichert. (mit XMLEncoder und Fileoutputstream,...).
Das ging soweit.
Nun sollte es möglich sein eine PDF mit anzuhängen.
Ich lese also die PDF (~200KB) als byte-Array ein. Soweit erstmal keine Probleme.
Beim Speichern der Daten als XML-Datei kommt dabei immer:
Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
at java.util.IdentityHashMap.resize(IdentityHashMap.java:452)
at java.util.IdentityHashMap.put(IdentityHashMap.java:428)
at java.beans.XMLEncoder.getValueData(XMLEncoder.java:447)
at java.beans.XMLEncoder.writeExpression(XMLEncoder.java:371)
at java.beans.PersistenceDelegate.writeObject(PersistenceDelegate.java:97)
at java.beans.Encoder.writeObject(Encoder.java:54)
at java.beans.XMLEncoder.writeObject(XMLEncoder.java:257)
at java.beans.Encoder.writeObject1(Encoder.java:206)
at java.beans.Encoder.cloneStatement(Encoder.java:219)
at java.beans.Encoder.writeExpression(Encoder.java:278)
at java.beans.XMLEncoder.writeExpression(XMLEncoder.java:372)
at java.beans.ArrayPersistenceDelegate.initialize(MetaData.java:106)
at java.beans.PersistenceDelegate.writeObject(PersistenceDelegate.java:100)
at java.beans.Encoder.writeObject(Encoder.java:54)
at java.beans.XMLEncoder.writeObject(XMLEncoder.java:257)
at java.beans.Encoder.writeExpression(Encoder.java:279)
at java.beans.XMLEncoder.writeExpression(XMLEncoder.java:372)
at java.beans.PersistenceDelegate.writeObject(PersistenceDelegate.java:97)
at java.beans.Encoder.writeObject(Encoder.java:54)
at java.beans.XMLEncoder.writeObject(XMLEncoder.java:257)
at java.beans.Encoder.writeExpression(Encoder.java:279)
at java.beans.XMLEncoder.writeExpression(XMLEncoder.java:372)
at java.beans.DefaultPersistenceDelegate.doProperty(DefaultPersistenceDelegate.java:212)
at java.beans.DefaultPersistenceDelegate.initBean(DefaultPersistenceDelegate.java:247)
at java.beans.DefaultPersistenceDelegate.initialize(DefaultPersistenceDelegate.java:391)
at java.beans.PersistenceDelegate.writeObject(PersistenceDelegate.java:100)
at java.beans.Encoder.writeObject(Encoder.java:54)
at java.beans.XMLEncoder.writeObject(XMLEncoder.java:257)
at java.beans.Encoder.writeExpression(Encoder.java:279)
at java.beans.XMLEncoder.writeExpression(XMLEncoder.java:372)
at java.beans.PersistenceDelegate.writeObject(PersistenceDelegate.java:97)
at java.beans.Encoder.writeObject(Encoder.java:54)
Ich habe mit dem XMLEncoder noch nie gearbeitet.
Es hiess, ich müsste nur das byte-Array in das Objekt stopfen und das wars.
Derjenige der das Programm geschrieben ist leider in Urlaub
Kann mir jemand sagen, was da schiefläuft?