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 :
En cherchant un peu sur Google, j'ai trouvé ceci (pour ceux que ça intéresse) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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); } }
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
Exactement même comportement que sans leur implémentation.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 }
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 @+
Partager