[Sérialisation] StackOverFlowError levée
J'ai une structure en arbre d'objet à sérialiser. Lorsque la structure atteint une taille critique, j'ai une erreur de type StackOverFlowError qui est levée.
Code pour sérialiser mon objet :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| public static void serialize(Serializable serializable, OutputStream outputStream)
throws ATypeOfException {
try {
ObjectOutputStream objectOutputStream = new ObjectOutputStream(
outputStream);
objectOutputStream.writeObject(serializable);
objectOutputStream.close();
} catch (IOException e) {
throw new ATypeOfException(e);
} catch(StackOverflowError e){
throw new ATypeOfException(e);
}
} |
En cherchant un peu sur Google, j'ai trouvé ceci (pour ceux que ça intéresse) :
http://forum.java.sun.com/thread.jsp?forum=4&thread=320056
Sur la base de cette discussion, j'ai implémenté les méthodes suivantes dans les objets intervenant dans ma structure
Code:
1 2 3 4 5 6 7 8
| private void writeObject(ObjectOutputStream out) throws IOException {
//Ecriture sur le flux des attributs de mon objets
}
private void readObject(ObjectInputStream in) throws IOException,
ClassNotFoundException {
//Lecture depuis le flux des attributs de mon objets
} |
Exactement même comportement que sans leur implémentation. :?
J'ai aussi réfléchi aux champs contenus dans mes objets pour définir ceux qui ne m'intéressent pas comme transient afin de ne pas les sérialiser... Mais toujours même comportement. :?
Je pose donc la question suivante, est-ce que quelqu'un est déjà tombé sur un cas semblable, si oui, alors comment l'a-t'il résolu...
Merci @+