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

GWT et Vaadin Java Discussion :

Passage de paramètre dans une méthode mis à NULL.


Sujet :

GWT et Vaadin Java

  1. #1
    Membre du Club
    Femme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2013
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2013
    Messages : 32
    Points : 46
    Points
    46
    Par défaut Passage de paramètre dans une méthode mis à NULL.
    Bonjour,

    Je réalise un logiciel en Java et GWT.
    Suite au remplissage d'un formulaire par l'utilisateur, celui-ci appuie sur le bouton "enregistrer" pour enregistrer les données mais cet enregistrement échoue.
    En effet, je fais appel à plusieurs DTO qui sont non NULL avant l'appel de la méthode de mise à jour: je l'ai vérifié.
    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
    systemService.updateSensor(DataCacheService.getInstance()
     
    				.getActiveSystem(), sensor,sensor.getAssociatedSensorFam(), new AsyncCallback<Void>() {
     
    			@Override
    			public void onSuccess(Void result) {
    				eventBus.closeDialog();
    			}
     
    			@Override
    			public void onFailure(Throwable caught) {
    				Toast.makeText(String.valueOf(sensor.getAssociatedSensorFam().getId()), Toast.Length.LONG)
    						.show();
    			}
    		});
    LE système, le sensorDTO et le sensorFamilyDTO sont non nuls.
    J'appelle donc cette méthode updateSensor qui se trouve dans le fichier de service contenu sur le serveur.
    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
    @Override
    	public void updateSensor(SystemDTO system, SensorDTO sensorDTO, SensorFamilyDTO sensorFamDTO) {
     
    		Sensor sensor = null;
    		SensorFamily sensorFam = null;
     
    		if(sensorDTO.getId() <0) {
    			sensor = new Sensor();
    			sensor.fillFromDTO(sensorDTO);
    			sensor.create();
    		}
    		else {
    			sensor = Sensor.queryById(sensorDTO.getId());
    			sensor.fillFromDTO(sensorDTO);
    			sensor.update();
    		}
     
    		SystemSensorLink link = SystemSensorLink.queryByIds(sensor.getId(), system.getId());
    		if(link == null) {
    			link = new SystemSensorLink();
    			link.setSensorId(sensor.getId());
    			link.setSystemId(system.getId());
    			link.create();
    		}
    		else {
    			link.setSensorId(sensor.getId());
    			link.setSystemId(system.getId());
    			link.update();
    		}
    		// sensorDTO est non null par contre sensorDTO.getAssociatedSensorFam est null
    		sensorFam = SensorFamily.queryById(sensorDTO.getAssociatedSensorFam().getId());
    Et cette fois, que ce soit sensorFam ou sensorDTO.getAssociatedSensorFam() que j'ai rempli précédemment dans le Presenter, est null.
    Je n'arrive pas à comprendre comment d'un paramètre non null, je passe à un paramètre null. A quoi cela pourrait-il être dû?
    Si vous avez besoin d'informations supplémentaires pour comprendre le problème, je vous les donnerais.
    Merci encore pour votre aide.

  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
    Citation Envoyé par alineas1 Voir le message
    Et cette fois, que ce soit sensorFam ou sensorDTO.getAssociatedSensorFam() que j'ai rempli précédemment dans le Presenter, est null.
    Je n'arrive pas à comprendre comment d'un paramètre non null, je passe à un paramètre null. A quoi cela pourrait-il être dû?
    sensnorFarm: facile celui là, tu le définis à null dans ta méthode:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SensorFamily sensorFam = null;
    C'est sensorFamDTO qu'il faut regarder.

    sensorDTO.getAssociatedSensorFam(): pour celui là, montre nous ta définition de SensorDTO.
    Aussi: comment as-tu vérifié que tes DTO étaient non null avant l'appel? Peux-tu nous donner copier de ta requête HTTP (accessible via la console chrome par exemple)

  3. #3
    Membre du Club
    Femme Profil pro
    Développeur Java
    Inscrit en
    Décembre 2013
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2013
    Messages : 32
    Points : 46
    Points
    46
    Par défaut Réponse
    Bonjour,

    En fait, j'ai vérifié que les paramètres étaient non null en les affichant à la place du message d'erreur de l'utilisateur. Il m'affichait par exemple sensorFamiluDTO @ 271 par example.
    J'ai réussi à corriger le problème en faisant passer le nom du sensorFamDTO plutôt que de faire passer le DTO directement et je fais la recherche du DTO après le passage à la méthode de mise à jour.
    J'ai bien regardé avec Google Chrome la requête Http: le résultat est 500 ( erreur interne du serveur) et les paramètres passés étaient bien non nuls. Par contre, avec le pas à pas au-niveau de la gestion de l'erreur - car je n'arrive pas à aller plus profond dans le code- indiquait bien que le paramètre était à null.
    Bref, même si c'est corrigé, cela reste un mystère.
    D'autant plus que j'ai remarqué que si l'utilisateur appuyait une deuxième fois sur le bouton"enregistrer", l'enregistrement ne présentait plus d'erreur...

Discussions similaires

  1. erreur de passage de paramètre dans une urL
    Par lodan dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 25/02/2007, 12h29
  2. Réponses: 3
    Dernier message: 20/03/2006, 17h46
  3. [Excel]Passage de paramètres dans une formule
    Par fbench dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/02/2006, 12h16
  4. Réponses: 9
    Dernier message: 13/05/2005, 03h13
  5. Passage de paramètres dans une requête imbriquée
    Par DrakkoFR dans le forum Langage SQL
    Réponses: 2
    Dernier message: 07/02/2005, 12h46

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