IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Message d'erreur "Timer-0"


Sujet :

Java

  1. #1
    Membre éclairé
    Inscrit en
    Août 2010
    Messages
    416
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 416
    Points : 828
    Points
    828
    Par défaut Message d'erreur "Timer-0"
    Bonjour, j'ai une application que j'ai reussi a la lancer sous windows et sous linux sans prb,la quand je la lance avec un serveur linux j'obtient ce message d'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Exception in thread "Timer-0" java.lang.NullPointerException
    	at marouene.TestPerformance$1RemindTask.run(TestPerformance.java:65)
    	at java.util.TimerThread.mainLoop(Unknown Source)
    	at java.util.TimerThread.run(Unknown Source)
    apparament c'est en relation avec le timer que j'ai dans ma classe main qui est celle ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    package marouene;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.text.DecimalFormat;
     
    import java.util.Timer;
    import java.util.Vector;
    import java.io.BufferedWriter;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.TimerTask;
    import java.text.*;
    import java.util.Locale;
     
     
    public class TestPerformance  {
     
    	  static int i = 0;
    	  static Timer timer;
          static Connection con;
         static double perte;
    	public static void main(String[] args) {
     
             class RemindTask extends TimerTask {
     
    				public void run() {
     
     
     
    					//TestFtp ftp = new TestFtp();
    					//HttpClient http = new HttpClient();
    					Ping avg = new Ping();
    					Dns dns = new Dns();
    					 Vector t=dns.tableau();
     
    					 try {
    						double perte=dns.taux(t.size());
    					} catch (IllegalStateException e1) {
     
    					} catch (IOException e1) {
     
     
    				}
    					tableau tab = new tableau();
     
    					try {
    						Class.forName("com.mysql.jdbc.Driver");
    						 try {
    							con DriverManager.getConnection("jdbc:mysql://localhost:3306newdata","root","root");
    					} catch (SQLException e) {
     
    						}
     
    					} catch (ClassNotFoundException e) {
     
    						e.printStackTrace();
    					}
     
    					//capture cc = new capture();
     
    					try {
    						Statement stm=con.createStatement();
    					//	int res1=stm.executeUpdate("insert into httptable(date,heure,http) values (now(),now(),"+http.debithttp("http://41.228.192.9/30M")+")");
    						//int res2=stm.executeUpdate("insert into ftptable(date,heure,ftp) values (now(),now(),"+ftp.calculdebitftp("otn","otnotn","41.228.192.9","/30M")+")");
    						int res4=stm.executeUpdate("insert into dnstable(date,heure,min,moy,max,perte) values (now(),now(),"+tab.minimum(t)+","+tab.moyenne(t)+","+tab.maximum(t)+","+perte+")");
     
    							try {
    								int res3=stm.executeUpdate("insert into pingtable(date,heure,avg) values (now(),now(),"+avg.time()+")");
    							} catch (IllegalStateException e) {
     
    							} catch (IOException e) {
     
    							}
     
     
     
    						//cc.start();
     
     
    					} catch (SQLException e) {
     
    					}
     
     
     
    			    }
    		 }
    					 timer = new Timer();
    					 timer.scheduleAtFixedRate(new RemindTask(), 0, 900 * 1000);
     
     
     
     
    	}
     
     
    }

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	} catch (SQLException e) {
     
    						}
    Commencez par afficher vos exceptions plutot que de les cacher, et vous saurez quel est le problème. Aussi, fait un traitement approprié dans votre excpetion. Si vous n'arrivez pas à établir la connexion, inutile d'espérer arriver à l'utiliser après

  3. #3
    Membre éclairé
    Inscrit en
    Août 2010
    Messages
    416
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 416
    Points : 828
    Points
    828
    Par défaut
    c'est en prb avec ma base de donnée c ca ? je vais voir le catch pour afficher

  4. #4
    Membre éclairé
    Inscrit en
    Août 2010
    Messages
    416
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 416
    Points : 828
    Points
    828
    Par défaut
    je dois afficher quoi dans mon catch pour isoler le prb ?

  5. #5
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    ben au minimum affichez le stacktrace.

    vous avez des catch vides partout et c'est une très très très mauvais habitude.

  6. #6
    Rédacteur/Modérateur
    Avatar de Logan Mauzaize
    Homme Profil pro
    Architecte technique
    Inscrit en
    Août 2005
    Messages
    2 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Transports

    Informations forums :
    Inscription : Août 2005
    Messages : 2 894
    Points : 7 083
    Points
    7 083
    Par défaut
    Citation Envoyé par marouene_ Voir le message
    j'ai reussi a la lancer sous windows et sous linux sans prb,la quand je la lance avec un serveur linux j'obtient ce message d'erreur
    Je pense que le bug est dans la phrase
    Java : Cours et tutoriels - FAQ - Java SE 8 API - Programmation concurrente
    Ceylon : Installation - Concepts de base - Typage - Appels et arguments

    ECM = Exemple(reproduit le problème) Complet (code compilable) Minimal (ne postez pas votre application !)
    Une solution vous convient ? N'oubliez pas le tag
    Signature par pitipoisson

  7. #7
    Membre éclairé
    Inscrit en
    Août 2010
    Messages
    416
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 416
    Points : 828
    Points
    828
    Par défaut
    voila j'ai ajouté du e.printstacktrace() dans tous mes catch..

    ca m'affiche l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    Error : empty String
     
    java.io.IOException: Bad file descriptor
    	at java.io.FileInputStream.close0(Native Method)
    	at java.io.FileInputStream.close(Unknown Source)
    	at sun.nio.cs.StreamDecoder.implClose(Unknown Source)
    	at sun.nio.cs.StreamDecoder.close(Unknown Source)
    	at java.io.InputStreamReader.close(Unknown Source)
    	at com.developpez.adiguba.shell.ProcessConsumer.tryToClose(ProcessConsumer.java:588)
    	at com.developpez.adiguba.shell.ProcessConsumer.dump(ProcessConsumer.java:644)
    	at com.developpez.adiguba.shell.ProcessConsumer.access$0(ProcessConsumer.java:622)
    	at com.developpez.adiguba.shell.ProcessConsumer$4.call(ProcessConsumer.java:664)
    	at com.developpez.adiguba.shell.ProcessConsumer$4.call(ProcessConsumer.java:1)
    	at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
    	at java.util.concurrent.FutureTask.run(Unknown Source)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    	at java.lang.Thread.run(Unknown Source)

  8. #8
    Membre éclairé
    Inscrit en
    Août 2010
    Messages
    416
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 416
    Points : 828
    Points
    828
    Par défaut
    sachant que j'utilise la bibliotheque shell dans une de mes classes comme ici :

    p
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    ackage marouene;
     
    import java.io.BufferedReader;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.LineNumberReader;
    import java.util.Vector;
     
    import com.developpez.adiguba.shell.Shell;
    public class Dns {
     
    	String myLine= null;
    static tableau tab = new tableau();
    int s =0;
    double perte;
    public double taux (int t) throws IllegalStateException, IOException
    {
    	InputStreamReader flog	= null;
    	LineNumberReader llog	= null;
    flog = new InputStreamReader(new FileInputStream("/home/otn/application/Liste.txt" +"") );
    	llog = new LineNumberReader(flog);
     
    	Shell sh =new Shell();
    	while ((myLine = llog.readLine()) != null) { 
    		String msg = sh.command("dig @adresse"+myLine+"|grep status |awk -F':' '{print $3}' |awk -F ',' '{print $1}'").consumeAsString();
    		 if (msg == "SERVFAIL")
             {
          	   s=s+1;
             }
    	}
    		 perte = s/(t);
    	return(perte);
     
     
     
     
    	}
    public  Vector tableau() {
    	InputStreamReader flog	= null;
    	LineNumberReader llog	= null;
     
    	 Vector<Double> valeur=new Vector<Double>();
    try{ 
     
    	flog = new InputStreamReader(new FileInputStream("/home/otn/application/Liste.txt") );
    	llog = new LineNumberReader(flog);
     
     
    	Shell sh =new Shell();
    	int i=0;
    	while ((myLine = llog.readLine()) != null) { 
     
    			String resultat = sh.command("dig @adresse "+myLine+"|grep time | awk -F':' '{ print $2}' |awk  '{print $1}'").consumeAsString();
     
    			double query = Double.parseDouble(resultat);
     
    			valeur.add(query);
     
               }
     
        }catch (Exception e){
               // --- Gestion erreur lecture du fichier (fichier non existant, illisible, etc.)
               System.err.println("Error : "+e.getMessage());
        }	
     
     
        return(valeur);
    }
     
    }

  9. #9
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    on pourrait avoir la sortie complete de votre programme jusque et y compris votre nullpointerexception? L'erreur que vous donnez arrive uniquement quand on essaie de fermer un stream qui n'est pas valide, ce qu'on ne peux pas savoir tant qu'on essaie pas de le fermer, donc a mon avis, vous pouvez l'ignorer.

  10. #10
    Membre éclairé
    Inscrit en
    Août 2010
    Messages
    416
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 416
    Points : 828
    Points
    828
    Par défaut
    enfet il parait qu'au debut le probleme etait lié a ma base ( ligne 65), donc j'ai corrigé quelques truc, et voila maintenant ca m'affiche ca...
    Mon application ne se lance pas enfet aprés ce message d'erreur , je pense que c'est lié à la bibliotheque shell ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/05/2002, 19h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo