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