Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
5518 connectés 

 


 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  79  80  81  ..  327  328  329  330  331  332
Auteur Sujet :

BlaBlaTech@JAVA [ELITE, viendez les boobs]

n°926294
kadreg
profil: Utilisateur
Posté le 17-12-2004 à 18:26:42  profilanswer
 

Reprise du message précédent :
oui


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
mood
Publicité
Posté le 17-12-2004 à 18:26:42  profilanswer
 

n°926325
the real m​oins moins
Posté le 17-12-2004 à 19:11:47  profilanswer
 

putain la citation [:ula]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°926365
Jubijub
Parce que je le VD bien
Posté le 17-12-2004 à 19:37:30  profilanswer
 

c en hommage à Pierre Tramo ;)
 
là ce serait plutot J2EE developper en apprentissage


Message édité par Jubijub le 17-12-2004 à 19:37:57

---------------
Jubi Photos : Flickr - 500px
n°926756
the real m​oins moins
Posté le 18-12-2004 à 02:29:59  profilanswer
 

the real moins moins a écrit :

bon, si qqun à déjà fait de la serialization, vous feriez ça comment:

Code :
  1. private byte[] objectToByteArray(Object o) throws java.io.IOException {
  2.         java.io.ByteArrayOutputStream byteArrayOutputStream = null;
  3.         java.io.ObjectOutputStream objectOutputStream = null;
  4.         try {
  5.             byteArrayOutputStream = new java.io.ByteArrayOutputStream();
  6.             objectOutputStream = new java.io.ObjectOutputStream(byteArrayOutputStream);
  7.             objectOutputStream.writeObject(o);
  8.             objectOutputStream.flush();
  9.             byteArrayOutputStream.flush();
  10.             return byteArrayOutputStream.toByteArray();
  11.         } finally {
  12.             try {
  13.                 byteArrayOutputStream.close();
  14.             } catch(Exception e) {
  15.             }
  16.             try {
  17.                 objectOutputStream.close();
  18.             } catch(Exception e) {
  19.             }
  20.         }
  21.     }



ça n'inspire personne? :whistle:
 
(la méthode ci-dessus marche, mais à tendance à faire explorer le profiler quand la charge monte)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°926799
benou
Posté le 18-12-2004 à 11:06:39  profilanswer
 

ouais comme ca, sauf que tu gères bizarement tes exceptions ...

Code :
  1. private byte[] objectToByteArray(Object o) throws java.io.IOException {
  2.         ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); 
  3.         ObjectOutputStream objectOutputStream = new ObjectOutputStream(byteArrayOutputStream);
  4.         try {
  5.           objectOutputStream.writeObject(o);
  6.           byte[] b = byteArrayOutputStream.toByteArray();               
  7.           objectOutputStream.close();
  8.           return b;
  9.         } catch (IOException e) {
  10.            try {
  11.               objectOutputStream.close();
  12.            } catch(Exception ex) {
  13.              //could not close. throws original exception
  14.            }
  15.            throw e;
  16.         }
  17.     }


nab, en fait c'est pas top :/
j'arrive pas à reflechir ce matin :/


Message édité par benou le 18-12-2004 à 15:47:25

---------------
ma vie, mon oeuvre - HomePlayer
n°926845
uriel
blood pt.2
Posté le 18-12-2004 à 12:29:50  profilanswer
 

benou a écrit :

ouais comme ca, sauf que tu gères bizarement tes exceptions ...


 
+1, j'osais pas demander... je comprends pas trop :??:


---------------
IVG en france
n°926925
benou
Posté le 18-12-2004 à 15:51:28  profilanswer
 

dans un bloc finally, dans le cas où une exception a été lancée, y a moyen de le savoir et éventuellement de la récupérer ?
 
parce que j'arrive pas à faire une gestion d'exception parfaite sans ca :/
 
je bloque sur 2 mauvaise solutions :  
* le catch (la version que j'ai écrit au dessus :  si writeObject() balance une Runtime, ca ferme pas le flux :/ Et si pour éviter ca je catch Throwable, déjà c'est mal, mais en plus je ne peux plus balancer l'exception parce que ca colle plus avec la clause throws :/ y a la possibilité de tester la classe de l'exception (io, runtime, error, mais c'est trop laid !)
* le finally mais si le close crache une exception, on perd l'éventuelle exception lancée dans le try :/


---------------
ma vie, mon oeuvre - HomePlayer
n°926929
nraynaud
lol
Posté le 18-12-2004 à 15:58:58  profilanswer
 

benou > tu comptes tenter de fermer un flux qui a déjà craché une exception ?


---------------
trainoo.com, c'est fini
n°926934
benou
Posté le 18-12-2004 à 16:08:29  profilanswer
 

nraynaud a écrit :

benou > tu comptes tenter de fermer un flux qui a déjà craché une exception ?


bha oui vaut mieux ...


---------------
ma vie, mon oeuvre - HomePlayer
n°926935
nraynaud
lol
Posté le 18-12-2004 à 16:10:47  profilanswer
 

benou a écrit :

bha oui vaut mieux ...


selon quel principe ?


---------------
trainoo.com, c'est fini
mood
Publicité
Posté le 18-12-2004 à 16:10:47  profilanswer
 

n°926936
benou
Posté le 18-12-2004 à 16:14:56  profilanswer
 

en fait dans l'idéal faudrait un truc comme ca :  
 

Code :
  1. private byte[] objectToByteArray(Object o) throws java.io.IOException { 
  2.    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); 
  3.    ObjectOutputStream objectOutputStream = new ObjectOutputStream(byteArrayOutputStream); 
  4.    try {
  5.       objectOutputStream.writeObject(o); 
  6.       objectOutputStream.flush();
  7.       return byteArrayOutputStream.toByteArray();     
  8.    } finally {
  9.       try
  10.          objectOutputStream.close(); 
  11.       } catch(IOException e) {
  12.          if (! yAEuUneExceptionDansLe1erTry) {
  13.             throw e;
  14.          }
  15.       }
  16.    } 
  17. }


---------------
ma vie, mon oeuvre - HomePlayer
n°926937
benou
Posté le 18-12-2004 à 16:16:44  profilanswer
 

nraynaud a écrit :

selon quel principe ?


ben la libération de ressource ...
 
exemple : tu es en train de lire le contenu d'un fichier. ca plante (prb temporaire d'accès au fichier, outofmemory, etc.), si je close pas après, ca liberera pas le lock sur le fichier [:spamafote]
 
pkoi tu penses qu'il faut pas closer ? je comprends pas là ...


Message édité par benou le 18-12-2004 à 16:17:09

---------------
ma vie, mon oeuvre - HomePlayer
n°926940
nraynaud
lol
Posté le 18-12-2004 à 16:27:47  profilanswer
 

benou a écrit :


pkoi tu penses qu'il faut pas closer ? je comprends pas là ...


ben soit le problème est circonscrit finement et on sait l'état du fichier et cet état n'est pas incompatible avec une fermeture, soit on a un IOExcpetion et on aaucune idée du pb, ou alors on sait finement le pb, mais on sait qu'il nous empêchera de fermer, et là on y touche plus.


---------------
trainoo.com, c'est fini
n°926941
benou
Posté le 18-12-2004 à 16:31:29  profilanswer
 

bha dans le pire des cas, au close ca te recrache une IO ... spagrave ... mais je vois pas pkoi ne pas tenter de closer


---------------
ma vie, mon oeuvre - HomePlayer
n°926944
nraynaud
lol
Posté le 18-12-2004 à 16:39:58  profilanswer
 

parce que tu n'as aucune idée de la sémantique du close, que si c'est plus ou moins transactionné en-dessous, pas la peine de committer des conneries, et que le close lui-même a toutes les chances de foirer, et t'as pas l'air con avec tes 2 exceptions (celle de l'opération et celle du close) à remonter dans un seul tuyau (encore que tu es sensé wrapper au niveau métier, tu peux donc en mettre une dans la cause, et celle du close dans une variable d'instance).


---------------
trainoo.com, c'est fini
n°926949
benou
Posté le 18-12-2004 à 16:44:06  profilanswer
 

nraynaud a écrit :

parce que tu n'as aucune idée de la sémantique du close, que si c'est plus ou moins transactionné en-dessous, pas la peine de committer des conneries


ben si y a une exception, le close a qu'à pas faire de commit ... c'est à lui de voir ...
 
sérieux tu ferais quoi toi ? ca ?  

Code :
  1. private byte[] objectToByteArray(Object o) throws java.io.IOException { 
  2.    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();   
  3.    ObjectOutputStream objectOutputStream = new ObjectOutputStream(byteArrayOutputStream); 
  4.    objectOutputStream.writeObject(o); 
  5.    objectOutputStream.close();         
  6.    return byteArrayOutputStream.toByteArray();
  7. }



---------------
ma vie, mon oeuvre - HomePlayer
n°926984
nraynaud
lol
Posté le 18-12-2004 à 17:44:21  profilanswer
 

voyons benou, sois raisonnable, ton stream, tu es tout seul à le voir et il ne représente pas une ressource physique => pas de close.
 
D'autre part cette clause throws n'a rien à foutre là, le client il en a rien à battre que tu utilises un Stream ou un chausse-pied pour faire rentrer ton objet dans un tableau d'octets.
 
Dans ce cas, c'est clair -> wrapping dans une runtime exception, si un bout de code aussi bateau plante, c'est que l'heure est très grave.


Message édité par nraynaud le 18-12-2004 à 17:51:10

---------------
trainoo.com, c'est fini
n°927001
benou
Posté le 18-12-2004 à 18:05:19  profilanswer
 

bha non, ca peut planter très facilement si l'objet contient un objet non sérializable [:spamafote]
 
puis bon, pour le close, je parlais dans le cas générale ...
 
sinon t'as vu ma question sur le finally ? tu sais si c'est faisable de récupérer l'exception courante ?


---------------
ma vie, mon oeuvre - HomePlayer
n°927006
the real m​oins moins
Posté le 18-12-2004 à 18:15:05  profilanswer
 

benou a écrit :

ouais comme ca, sauf que tu gères bizarement tes exceptions ...

c'est pas moi hein [:joce]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°927008
the real m​oins moins
Posté le 18-12-2004 à 18:17:41  profilanswer
 

putain mais on s'en bat les couilles de la gestion d'exception dans ce bout de code, c'est pas ça le problème [:sisicaivrai]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°927013
nraynaud
lol
Posté le 18-12-2004 à 18:25:25  profilanswer
 

benou a écrit :


sinon t'as vu ma question sur le finally ? tu sais si c'est faisable de récupérer l'exception courante ?


non, c'est pas faisable. Tu n'a qu'à la mettre dans une variable dans le catch et aller lire la variable dans le finally.

Code :
  1. void f() {
  2.   Exception e;
  3. try {
  4. ...
  5. } catch( MonCulException ex){
  6.     e = ex;
  7. } finally {
  8.     System.out.println(e);
  9. }
  10. }


---------------
trainoo.com, c'est fini
n°927017
the real m​oins moins
Posté le 18-12-2004 à 18:36:46  profilanswer
 

:/


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°927022
nraynaud
lol
Posté le 18-12-2004 à 18:43:44  profilanswer
 

benou a écrit :

bha non, ca peut planter très facilement si l'objet contient un objet non sérializable [:spamafote]


oui, mais c'est une erreur en rapport avec le métier.  
Et puis d'abord tu n'as qu'à typer ta fonction par Serializable.


---------------
trainoo.com, c'est fini
n°927041
benou
Posté le 18-12-2004 à 19:05:18  profilanswer
 

nraynaud a écrit :

oui, mais c'est une erreur en rapport avec le métier.  
Et puis d'abord tu n'as qu'à typer ta fonction par Serializable.


ca changera rien si c'est un objet contenu dans l'objet qui l'est pas ...


---------------
ma vie, mon oeuvre - HomePlayer
n°927047
benou
Posté le 18-12-2004 à 19:06:47  profilanswer
 

nraynaud a écrit :

non, c'est pas faisable. Tu n'a qu'à la mettre dans une variable dans le catch et aller lire la variable dans le finally.

Code :
  1. void f() {
  2.   Exception e;
  3. try {
  4. ...
  5. } catch( MonCulException ex){
  6.     e = ex;
  7. } finally {
  8.     System.out.println(e);
  9. }
  10. }



 
ouais mais ca me va pas : faudrait que je catch Throwable et je ne peux pas relancer une Throwable (clause throws = IO)
 
nul que ce soit pa faisable :/


---------------
ma vie, mon oeuvre - HomePlayer
n°927050
the real m​oins moins
Posté le 18-12-2004 à 19:08:26  profilanswer
 

ON S'EN FOUT DES EXCEPTIONS DANS MON TRUC!!!!


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°927051
benou
Posté le 18-12-2004 à 19:09:30  profilanswer
 

the real moins moins a écrit :

ON S'EN FOUT DES EXCEPTIONS DANS MON TRUC!!!!


ben quoi alors ? tu sais pas sérialiser un objet ?


---------------
ma vie, mon oeuvre - HomePlayer
n°927052
nraynaud
lol
Posté le 18-12-2004 à 19:09:33  profilanswer
 

benou a écrit :

ca changera rien si c'est un objet contenu dans l'objet qui l'est pas ...


ah oui tiens.
Mais c'est pas grave là c'est une exception du domaine, c'est déclarable en throws.


---------------
trainoo.com, c'est fini
n°927056
nraynaud
lol
Posté le 18-12-2004 à 19:11:09  profilanswer
 

the real moins moins a écrit :

ON S'EN FOUT DES EXCEPTIONS DANS MON TRUC!!!!


http://test1ng.free.fr/yvelepanos/panos/8346a83199ba4f73ed5bcb20de85a54e.png


---------------
trainoo.com, c'est fini
n°927060
nraynaud
lol
Posté le 18-12-2004 à 19:13:21  profilanswer
 

c'est quelle ligne qui bouffe le temps d'exécution ?
le profil de mémoire dit quoi pendant le pic ?
qui a fait le code de sérialisation ?
peut-tu estimer à l'avance la taille finale du tableau d'octets ?


---------------
trainoo.com, c'est fini
n°927062
the real m​oins moins
Posté le 18-12-2004 à 19:13:38  profilanswer
 

benou a écrit :

ben quoi alors ? tu sais pas sérialiser un objet ?


tain mais oscour, tu souffres d'ADD?
 

the real moins moins a écrit :

(la méthode ci-dessus marche, mais à tendance à faire explorer le profiler quand la charge monte)


 
je cherche un truc optimisé au poil de cul près.


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°927075
the real m​oins moins
Posté le 18-12-2004 à 19:37:27  profilanswer
 

quand vous aurez fini de vous branler la nouille sur la gestion d'exception minable:
http://www.theserverside.com/news/ [...] d_id=23485


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°927076
benou
Posté le 18-12-2004 à 19:38:10  profilanswer
 

the real moins moins a écrit :

tain mais oscour, tu souffres d'ADD?


 :heink: hein ?
 
 
qu'est ce que tu faire de plus optimizé que ca ? y a pas 36 façons de sérialiser un objet [:kiki]


---------------
ma vie, mon oeuvre - HomePlayer
n°927081
the real m​oins moins
Posté le 18-12-2004 à 19:50:12  profilanswer
 

[:mlc]
 
faut sortir, de temps en temps [:mlc]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°927085
benou
Posté le 18-12-2004 à 19:55:02  profilanswer
 

the real moins moins a écrit :

[:mlc]
faut sortir, de temps en temps [:mlc]


je parlais de la sérialisation du JDK ... c'est celle là que tu utilises dans ton exemple non ?
 
Si ce que tu veux c'est d'autres API de sérialization dis le clairement !


---------------
ma vie, mon oeuvre - HomePlayer
n°927089
the real m​oins moins
Posté le 18-12-2004 à 20:07:25  profilanswer
 

mais peu importe, je cherche un truc qui marche mieux, c'est tout.
déjà le machin qui fait le toByteArray() sur le stream, il sent le paté.
ensuite, détail qui à son importance, je dois pas sérializer des objets arbitrairement, mais un graphe plus ou moins non-arbitraire (ie, il se pourrait que des objets "inconnus" arrivent dans une map, par exemple, mais ça devrait pas etre le cas chez nous)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°927094
nraynaud
lol
Posté le 18-12-2004 à 20:21:55  profilanswer
 

fais pêter le code, réponds à mes questions, file-nous le profil.


---------------
trainoo.com, c'est fini
n°927096
benou
Posté le 18-12-2004 à 20:39:08  profilanswer
 

le toByteArray fais une copie du tableau de Byte.
 
Si tu veux éviter cette copie, ne passe pas par un byte[], passe par un stream. J'avais filé le code d'une classe  ByteArrayStream que j'avais fait qui permettait de récupérer un InputStream depuis un objet genre ByteArrayOutputStream : ca évite de recréer un tableau de byte inutile
 
y a moyen de faire ca avec des classes de java.io (les Piped machin) mais c'est déconseillé dans un environnement multithreadé je crois ...


---------------
ma vie, mon oeuvre - HomePlayer
n°927104
lorill
Posté le 18-12-2004 à 20:52:31  profilanswer
 

:hello:
 
z'avez déja joué avec javahelp ?

n°927120
the real m​oins moins
Posté le 18-12-2004 à 21:10:59  profilanswer
 

benou >> en sortie, pour l'instant, j'ai pas vraiment le choix, l'objet est serialisé en base par l'intermediaire d'un ejb, et les champs de type *Stream, ça marchait pas fort la derniere fois que j'ai essayé.
 
sinon bah va sans doute falloir implementer les readObject et writeObject, ça risque d'etre un poil lourd, et personne à jamais fait ça chez nous, à mon avis.
(si y'en a un qui l'a fait, c'etait surement mauvais :D)
 
nraynaud > j'ai pas vu de question; le code tu l'as, si tu veux le code des objets à serializé, c'est la WorkingMemory de drools, et le profil, euh pête pas les couilles. Tout ce que je sais pour l'instant c'est que y'a genre 80% du process qu'on testait vendredi qui etait passé dans la methode mentionnée ci-dessus. j'ai pas profilé moi meme, j'ai juste maté l'ecran de mon collegue


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°927195
nraynaud
lol
Posté le 18-12-2004 à 23:05:48  profilanswer
 

tiens, il parraît que la nouvelle application de Mentor Graphics est en java. Je suis pas sûr parce que c'est le commercial qui me l'a dit, et que ça ressemblait étrangement à MS Visual studio dans l'esprit.


---------------
trainoo.com, c'est fini
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  79  80  81  ..  327  328  329  330  331  332

Aller à :
Ajouter une réponse
 

Sujets relatifs
[java]Ouvrir un fichier dans la fenetre principaleformation pour developpeurs Java
crontab : programme java[JAVA] Aide pour packager un jar
[java] copie de fichier et progressbarinstallation java
[JAVA]Comment insérer un texte dans un fichier audio?[JAVA] Intégrer ANT : API ou ligne de commande ?
[Java][Bouley]Serializable : mauvaise instanciation des champs[JAVA : JNI] Pb a l'execution avec library
Plus de sujets relatifs à : BlaBlaTech@JAVA [ELITE, viendez les boobs]


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)