Mon prog ne rend plus la main

Mon prog ne rend plus la main - Java - Programmation

Marsh Posté le 29-10-2003 à 18:56:35    

Bonjour a tous , j'ai un petit probleme avec mon prog java qui ne reagis plus a System.exit(0),je m'explique:
 
j'ai une interface Plugin ( start(),..., stop() )
la partie principale du soft appel start() de chaque plugin et lorsque je ferme l'appli elle appel stop() ( entre autre)
 
le probleme, c'est qu'apres avoir stopé tout ces plugins, j'appel System.exit(0); et celui si ne semble pas "tuer" le programme  :heink:  
 

Code :
  1. public void windowClosing(WindowEvent e) {
  2.         //plusieurs traitements ici
  3.         System.out.print("avant System.exit\n" );
  4.         System.exit(0);
  5.         System.out.print("apres System.exit\n" );
  6.     }


 
Dans la console je vois apparaitre "avant System.exit" et le curseur de la console clignote  et le prog est toujours en memoire et apparait ds gestionnaire de tache  [:totoz]  
 
Si je parle des plugins c'est parce que je suis certains que le probleme viens d'eux...
J'aimerait savoir si vous avez une piste, une petite idée de ce qui pourrait empecher le prog de rendre l'ame :jap:


Message édité par veryfree le 29-10-2003 à 19:00:44
Reply

Marsh Posté le 29-10-2003 à 18:56:35   

Reply

Marsh Posté le 29-10-2003 à 19:05:23    

ben t'as des threads pas tués [:spamafote]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 29-10-2003 à 19:10:16    

http://java.sun.com/products/jdk/1 [...] #exit(int)
 
t'es sur que t'as le droit de faire ton exit() ?

Reply

Marsh Posté le 29-10-2003 à 19:20:18    

the real moins moins>>jles tue tous, et y'en a souvent qu'un (pour les tests en tt cas)
nraynaud>>ce que je peux te dire c'est qu'aucune exception n'est levé...Dans quel cas n'aurait je pas le droit de l'utiliser au juste ?
 
je decouvre juste  runFinalization() ca peux donner quelque chose ce truc [:dawa]

Reply

Marsh Posté le 29-10-2003 à 19:38:31    

je vien d'essayé avec
Runtime.getRuntime().runFinalization();
et ca resoud pas le probleme  
 
sinon j'ai oublier de preciser que parfois le prog se ferme sans soucis , mais qu'environs 2 fois sur 3 il refuse de se fermer :/

Reply

Marsh Posté le 29-10-2003 à 20:25:46    

veryfree a écrit :

the real moins  
nraynaud>>Dans quel cas n'aurait je pas le droit de l'utiliser au juste ?


Citation :


Throws:
    SecurityException - if a security manager exists and its checkExit method doesn't allow exit with the specified status.


J'ai aucune idée de la gueule du handler d'exception par défaut dans ce cas, vu que d'habitude il quitte en gerbant la pile d'exceptions dans le canal d'erreur, mais là c'est précisément ce comportement qui serait interdit.
Et je ne connais rien au modèle de sécurité de java.
 
 
Sinon, t'es en multithread ?

Reply

Marsh Posté le 29-10-2003 à 20:32:04    

oui; pour simplifier chaque plugincorrespond a un thread  
vu que pour l'instant il n'existe qu'un seul plugin et que c le seul thread lancé, c certain que le probleme viens de lui mais dans sa methode stop je fait le necessaire :/


Message édité par veryfree le 29-10-2003 à 20:32:37
Reply

Marsh Posté le 29-10-2003 à 20:50:20    

prouve le :o
parce que manifestement, non.


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 29-10-2003 à 20:59:39    

J'ai eu un problème dans le genre y'a un bout de temps. Je ne me souviens plus bien du pourquoi du comment, mais je sais que dans un premier temps ca s'était resolu à grand coup de Thread.sleep() et de System.gc(). Mais bon à la base c'était quand même un gros problème dans la gestion de mes threads.


---------------
Au royaume des sourds, les borgnes sont sourds.
Reply

Marsh Posté le 29-10-2003 à 21:22:17    

.sleep() c'est pas deprecated ? :heink:
 
t'utilise quel version de la jdk ? la 1.0 alpha ?


Message édité par ToxicAvenger le 29-10-2003 à 21:22:37
Reply

Marsh Posté le 29-10-2003 à 21:22:17   

Reply

Marsh Posté le 29-10-2003 à 21:25:39    

ToxicAvenger a écrit :

.sleep() c'est pas deprecated ? :heink:
 
t'utilise quel version de la jdk ? la 1.0 alpha ?

Thread.sleep(long millis), bien sur. Au temps pour moi :jap:


---------------
Au royaume des sourds, les borgnes sont sourds.
Reply

Marsh Posté le 29-10-2003 à 21:43:51    

the real moins moins a écrit :

ben t'as des threads pas tués [:spamafote]


un System.exit(),ca quite. qu'il y ait des threads en cours ou pas ...
 
vraiment bizarre ...
 
t'as essayé un Runtime.getRuntime().halt() ?
 
sinon, je sais qu'il y a moyen d'envoyer un signal au process qui peremt d'afficher l'état (stacktrace) de tous les threads. mais je connais plus la commande :( c'est con, ca pourrait te servir là ...


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 29-10-2003 à 21:44:49    

benou a écrit :


un System.exit(),ca quite. qu'il y ait des threads en cours ou pas ...
 

alors là j'en mettrais pas ma main au feu :)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 29-10-2003 à 21:45:31    

ben un pti coup de debugger sinon..


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 29-10-2003 à 21:50:17    

the real moins moins a écrit :

alors là j'en mettrais pas ma main au feu :)


en lisant bien la javadoc, en fait c'est plus le halt qui force le exit ... mais pour faire foirer le exit, d'après ce que j'ai compris, faut avoir mit des ShutdownHook. Je pense pas qu'il ait fait ca l'ami veryfree ...
 
sinon, j'ai retouvé pour l'envoie de signal : Ctrl+pause !
 
essaye de faire ca dans la shell dos de ton appli quand elle refuse de s'arrêter ...


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 30-10-2003 à 00:58:31    

ola, ca fait beaucoup de reponse, je tiens a vous remercié tous :jap:
 
voila ce que me donne ctrol pause:
 

Citation :

Full thread dump Java HotSpot(TM) Client VM (1.4.1_04-b01 mixed mode):
 
"Thread-3" prio=7 tid=0x0AE414F8 nid=0x4ec runnable [10a9f000..10a9fd8c]
        at sun.awt.windows.WGlobalCursorManager.findHeavyweightUnderCursor(Nativ
e Method)
        at sun.awt.GlobalCursorManager._updateCursor(GlobalCursorManager.java:16
6)
        at sun.awt.GlobalCursorManager.updateCursorImmediately(GlobalCursorManag
er.java:82)
        at sun.awt.windows.WComponentPeer.updateCursorImmediately(WComponentPeer
.java:434)
        at java.awt.Component.updateCursorImmediately(Component.java:2250)
        at java.awt.Container.validate(Container.java:1073)
        at rath.jmsn.MainFrame.logout(MainFrame.java:371)
        at rath.jmsn.MainFrame.close(MainFrame.java:128)
        at org.jchat.ui.JChat.stopAll(JChat.java:504)
        at org.jchat.ui.JChat$1.run(JChat.java:192)
        at java.lang.Thread.run(Thread.java:536)
 
"DestroyJavaVM" prio=5 tid=0x00234A58 nid=0x5b0 waiting on condition [0..6fadc]
 
"TimerQueue" daemon prio=5 tid=0x0AE3F108 nid=0x404 in Object.wait() [f5ef000..f
5efd8c]
        at java.lang.Object.wait(Native Method)
        - waiting on <030EBBB0> (a javax.swing.TimerQueue)
        at javax.swing.TimerQueue.run(TimerQueue.java:231)
        - locked <030EBBB0> (a javax.swing.TimerQueue)
        at java.lang.Thread.run(Thread.java:536)
 
"AWT-EventQueue-0" prio=7 tid=0x0F2D54C8 nid=0x6a4 in Object.wait() [f5af000..f5
afd8c]
        at java.lang.Object.wait(Native Method)
        - waiting on <03236AA8> (a java.lang.Thread)
        at java.lang.Thread.join(Thread.java:1008)
        - locked <03236AA8> (a java.lang.Thread)
        at java.lang.Thread.join(Thread.java:1061)
        at java.lang.Shutdown.runHooks(Shutdown.java:130)
        at java.lang.Shutdown.sequence(Shutdown.java:165)
        at java.lang.Shutdown.exit(Shutdown.java:210)
        - locked <06AA1178> (a java.lang.Class)
        at java.lang.Runtime.exit(Runtime.java:90)
        at java.lang.System.exit(System.java:713)
        at org.jchat.ui.JChat.windowClosing(JChat.java:680)
        at java.awt.Window.processWindowEvent(Window.java:1107)
        at javax.swing.JFrame.processWindowEvent(JFrame.java:266)
        at java.awt.Window.processEvent(Window.java:1066)
        at java.awt.Component.dispatchEventImpl(Component.java:3639)
        at java.awt.Container.dispatchEventImpl(Container.java:1623)
        at java.awt.Window.dispatchEventImpl(Window.java:1590)
        at java.awt.Component.dispatchEvent(Component.java:3480)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:450)
        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
read.java:197)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:150)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:144)
 
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:136)
 
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:99)
 
"AWT-Shutdown" prio=5 tid=0x0AE13020 nid=0x580 in Object.wait() [f56f000..f56fd8
c]
        at java.lang.Object.wait(Native Method)
        - waiting on <02F65068> (a java.lang.Object)
        at java.lang.Object.wait(Object.java:426)
        at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:259)
        - locked <02F65068> (a java.lang.Object)
        at java.lang.Thread.run(Thread.java:536)
 
"Java2D Disposer" daemon prio=10 tid=0x0ADE8950 nid=0x628 in Object.wait() [f05f
000..f05fd8c]
        at java.lang.Object.wait(Native Method)
        - waiting on <02F82998> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
        - locked <02F82998> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
        at sun.java2d.Disposer.run(Disposer.java:99)
        at java.lang.Thread.run(Thread.java:536)
 
"Signal Dispatcher" daemon prio=10 tid=0x008F8238 nid=0x52c waiting on condition
 [0..0]
 
"Finalizer" daemon prio=9 tid=0x0023E878 nid=0x61c in Object.wait() [ab4f000..ab
4fd8c]
        at java.lang.Object.wait(Native Method)
        - waiting on <02F0A7C0> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:111)
        - locked <02F0A7C0> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:127)
        at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
 
"Reference Handler" daemon prio=10 tid=0x0023D450 nid=0x5ac in Object.wait() [ab
0f000..ab0fd8c]
        at java.lang.Object.wait(Native Method)
        - waiting on <02F0A828> (a java.lang.ref.Reference$Lock)
        at java.lang.Object.wait(Object.java:426)
        at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:113)
        - locked <02F0A828> (a java.lang.ref.Reference$Lock)
 
"VM Thread" prio=5 tid=0x008F5220 nid=0x3f4 runnable
 
"VM Periodic Task Thread" prio=10 tid=0x008F6C88 nid=0x530 waiting on condition
 
"Suspend Checker Thread" prio=10 tid=0x008F7880 nid=0x5a8 runnable


 
sinon j'utilise effectivement un ShutdownHook , je pensait que ca servais lorsque la jvm se scratch mais ca me pose pas de probleme de l'enlever si c'est la source du probleme ; j'essaye ca :jap:
 
 

Reply

Marsh Posté le 30-10-2003 à 00:59:55    

le shutdownhook si je ne m'abuse c'est un "truc" qui est "executé" quand la vm est arreté, donc aussi qd tu fais un system.exit ;)
 
sinon si t'as un debugger sous la main t'auras un truc plus lisible que ce que tu viens de nous paster là ;)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 30-10-2003 à 01:01:48    

oui , c clair que c'est un peu flou leur truc :/
 
mais j'ai pas de debugger :p

Reply

Marsh Posté le 30-10-2003 à 07:50:21    

Ca y est je me souviens de mon problème ; c'était avec un java.util.Timer. En fait je lançait le timer sans jamais lui attribuer de TimerTask, et du coup le thread ne s'arrêtait pas. Tu utilises des Timer ?


---------------
Au royaume des sourds, les borgnes sont sourds.
Reply

Marsh Posté le 30-10-2003 à 09:05:21    

on voit ton thread principal :  

Citation :

"AWT-EventQueue-0" prio=7 tid=0x0F2D54C8 nid=0x6a4 in Object.wait() [f5af000..f5  
afd8c]  
        at java.lang.Object.wait(Native Method)  
        - waiting on <03236AA8> (a java.lang.Thread)  
        at java.lang.Thread.join(Thread.java:1008)  
        - locked <03236AA8> (a java.lang.Thread)  
        at java.lang.Thread.join(Thread.java:1061)  
        at java.lang.Shutdown.runHooks(Shutdown.java:130)  
        at java.lang.Shutdown.sequence(Shutdown.java:165)  
        at java.lang.Shutdown.exit(Shutdown.java:210)  
        - locked <06AA1178> (a java.lang.Class)  
        at java.lang.Runtime.exit(Runtime.java:90)  
        at java.lang.System.exit(System.java:713)  
        at org.jchat.ui.JChat.windowClosing(JChat.java:680)  


et on voit qu'il bloque lors de l'excution des hooks.
T'as de la synchronization dans ton ShutdownHook ? parce que ton truc ca ressemble à un deadloack à l'intérieur du ShutdownHook ...
qu'est ce que tu faus dedans ?


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 30-10-2003 à 09:24:46    

the real moins moins a écrit :

ben t'as des threads pas tués [:spamafote]


 
 :pfff:
 
Edit: veryfree je peux regarder ce soir si tu veux. Le shutdown hook c'est le machin qui sauve les settings et tout le bordel?


Message édité par darklord le 30-10-2003 à 09:25:11

---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 30-10-2003 à 09:43:15    

en fait j'avais mal regardé : ce qui pose problème c'est ca :  

Citation :


"Thread-3" prio=7 tid=0x0AE414F8 nid=0x4ec runnable [10a9f000..10a9fd8c]  
        at sun.awt.windows.WGlobalCursorManager.findHeavyweightUnderCursor(Nativ  
e Method)  
        at sun.awt.GlobalCursorManager._updateCursor(GlobalCursorManager.java:16  
6)  
        at sun.awt.GlobalCursorManager.updateCursorImmediately(GlobalCursorManag  
er.java:82)  
        at sun.awt.windows.WComponentPeer.updateCursorImmediately(WComponentPeer  
.java:434)  
        at java.awt.Component.updateCursorImmediately(Component.java:2250)  
        at java.awt.Container.validate(Container.java:1073)  
        at rath.jmsn.MainFrame.logout(MainFrame.java:371)  
        at rath.jmsn.MainFrame.close(MainFrame.java:128)  
        at org.jchat.ui.JChat.stopAll(JChat.java:504)  
        at org.jchat.ui.JChat$1.run(JChat.java:192)  
        at java.lang.Thread.run(Thread.java:536)  
 


ca ca ressemble à ton thread 'ShutdownHook' (c'est bien de leur donner des noms à tes threads :o)
donc visiblement quand tu fais le logout, ca essaye de faire des rafraichissement de l'interface. Le problème c'est que ce refresh appelle à un moment la méthode findHeavyweightUnderCursor qui doit attendre le déclenchement de quelque chose qui ne doit jamais se produire du fait que la jvm est en train de s'arrêter.
 
bref, faire des modifs de la gui dans un 'ShutdownHook', c'est mal !
 
en plus d'après ce que je vois, tu peux très bien l'éviter : c'est juste que tu fais un System.exit(0) "à la porc", alors que tu devrais dans un premier temps appeler le traitement de fermeture (le traitement que fait ton 'ShutdownHook'), et ensuite faire un exit().


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 30-10-2003 à 10:28:02    

oui mais non le shutdown hook est là à la base le user fait un kill sur le process.
 
(Mais je suis d'accord qu'il y a des trucs là dedans qui n'ont pas lieu d'être)  
 
Je vais regarder j'ai dit :o


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 30-10-2003 à 10:45:09    

DarkLord a écrit :

oui mais non le shutdown hook est là à la base le user fait un kill sur le process.


 :??: tu peux refaire ta phrase en français ??


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 30-10-2003 à 11:37:38    

le shutdown hook a été implémenté si le user fait un kill du process, pas si ON décide de quitter l'appli.
 
Donc il faut que je regarde ce que fous ce shutdown hook ;)


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 30-10-2003 à 12:08:32    

DarkLord a écrit :


 
 :pfff:
 
Edit: veryfree je peux regarder ce soir si tu veux. Le shutdown hook c'est le machin qui sauve les settings et tout le bordel?


 
oui voila ;)
 
 
sinon,jl'ai temporairement mis en commentaire et j'ai ajouté  
Runtime.getRuntime().halt(0) ;
avant le System.exit(0) qui lui n'est plus appelé du coup.
 
et ca semble marché :jap:
 
je met semble car le probleme est aleatoire et jve pas parler trop vite :D
 
 
 
 
 

Reply

Marsh Posté le 30-10-2003 à 12:17:06    

benou a écrit :

en fait j'avais mal regardé : ce qui pose problème c'est ca :  

Citation :


"Thread-3" prio=7 tid=0x0AE414F8 nid=0x4ec runnable [10a9f000..10a9fd8c]  
        at sun.awt.windows.WGlobalCursorManager.findHeavyweightUnderCursor(Nativ  
e Method)  
        at sun.awt.GlobalCursorManager._updateCursor(GlobalCursorManager.java:16  
6)  
        at sun.awt.GlobalCursorManager.updateCursorImmediately(GlobalCursorManag  
er.java:82)  
        at sun.awt.windows.WComponentPeer.updateCursorImmediately(WComponentPeer  
.java:434)  
        at java.awt.Component.updateCursorImmediately(Component.java:2250)  
        at java.awt.Container.validate(Container.java:1073)  
        at rath.jmsn.MainFrame.logout(MainFrame.java:371)  
        at rath.jmsn.MainFrame.close(MainFrame.java:128)  
        at org.jchat.ui.JChat.stopAll(JChat.java:504)  
        at org.jchat.ui.JChat$1.run(JChat.java:192)  
        at java.lang.Thread.run(Thread.java:536)  
 


ca ca ressemble à ton thread 'ShutdownHook' (c'est bien de leur donner des noms à tes threads :o)
donc visiblement quand tu fais le logout, ca essaye de faire des rafraichissement de l'interface. Le problème c'est que ce refresh appelle à un moment la méthode findHeavyweightUnderCursor qui doit attendre le déclenchement de quelque chose qui ne doit jamais se produire du fait que la jvm est en train de s'arrêter.
 
bref, faire des modifs de la gui dans un 'ShutdownHook', c'est mal !
 
 (le traitement que fait ton 'ShutdownHook'), et ensuite faire un exit().


voila a quoi ressemble maintenant ShutdownHook:

Code :
  1. Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {
  2.             public void run() {
  3.                 manager.saveProperties();
  4.                 chanFolder.save();
  5. /** ici y'avait une methode qui modifiait la GUI */
  6.             }
  7.         }));


ca explique pourquoi il a pas de nom j'imagine  :whistle:  
 

Citation :

en plus d'après ce que je vois, tu peux très bien l'éviter : c'est juste que tu fais un System.exit(0) "à la porc", alors que tu devrais dans un premier temps appeler le traitement de fermeture


 
non non, avant d'appelé System.exit(0) y'a plein de traitements (fermer les logs, arreter chaque thread...)
 

Citation :

Faire des modifs de la gui dans un 'ShutdownHook', c'est mal !


oui le voila le probleme ; je crois que j'ai compris maintenant  :ange:  

Reply

Marsh Posté le 30-10-2003 à 12:28:44    

[:autobot]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 30-10-2003 à 12:29:32    


 
bin ca n'a rien à voir ce que tu as mis :o


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 30-10-2003 à 12:30:22    

veryfree a écrit :


 
je met semble car le probleme est aleatoire et jve pas parler trop vite :D
 

stoi qu'est aléatoire :o


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 30-10-2003 à 12:48:35    

DarkLord a écrit :


 
bin ca n'a rien à voir ce que tu as mis :o

on peut savoir pourquoi?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 30-10-2003 à 13:00:51    

the real moins moins a écrit :

on peut savoir pourquoi?


 
Regarde la Javadoc de System.exit
La raison qui fait qu'il ne sort pas est que le code dans son shutdown hook est blocké. Je te l'accorde c'est un thread mais je suppose que ce n'est pas ca que tu as voulu dire, pas vrai? ;)


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 30-10-2003 à 13:11:30    

the real moins moins a écrit :

stoi qu'est aléatoire :o


 
oui voila c'est ca mr je sais tout :pfff:  
 
 
 

Reply

Marsh Posté le 30-10-2003 à 13:24:59    

DarkLord a écrit :


 
Regarde la Javadoc de System.exit
La raison qui fait qu'il ne sort pas est que le code dans son shutdown hook est blocké. Je te l'accorde c'est un thread mais je suppose que ce n'est pas ca que tu as voulu dire, pas vrai? ;)

euh, ben j'ai vu qu'il y avait son shutdown hook qui trainait, mais ça j'aurais pas pu le deviner.
et la javadoc ne dit absolument pas comment cette methode ce comporte si des threads sont toujours en train de tourner.
 
 
:o


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 30-10-2003 à 13:25:55    

veryfree a écrit :


 
oui voila c'est ca mr je sais tout :pfff:  
 
 
 
 

oh putain quel sens de l'humour et de la dérision [:prosterne]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 30-10-2003 à 13:37:31    

[:snoozy]


Message édité par veryfree le 22-03-2004 à 19:48:51
Reply

Marsh Posté le 30-10-2003 à 13:47:22    

bah quoi putain ct pour rire que je disais ça :o


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 30-10-2003 à 14:02:46    

oui, mais dit toi que parfois on a du mal a te suivre ;)

Reply

Marsh Posté le 30-10-2003 à 14:13:36    

si ça commence par "stoi..." c que c pour rire :o


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 30-10-2003 à 15:03:07    

oki [:dawa]

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed