Partage
  • Partager sur Facebook
  • Partager sur Twitter

NullPointerException - SpotBugs

    17 août 2022 à 21:29:32

    Bonjour,

    Je suis entrain de suivre les Projets d'OCR et dans un projet de gestion de parking, après analyse avec SpotBugs j'ai cette erreur que je n'arrive pas à résoudre : 

    NP_NULL_PARAM_DEREF_ALL_TARGETS_DANGEROUS : 

    Une valeur éventuellement nulle est transmise à un site d'appel où toutes les méthodes cibles connues exigent que le paramètre soit non nul. Soit le paramètre est annoté comme un paramètre qui doit toujours être non nul, soit l'analyse a montré qu'il sera toujours déréférencé.

    https://spotbugs.readthedocs.io/en/latest/bugDescriptions.html#NP_NULL_PARAM_DEREF_ALL_TARGETS_DANGEROUS

    Voici un ticket qui possède l'objet ParkingSpot en attribut privé, voici son getter et son setter: 

    Le constructeur de ParkingSpot : 

    Et enfin le test qui échoue : 

    Je pense que c'est la ligne ticket.setParkingSpot(parkingSpot) qui pose soucis mais je ne vois pas trop comment faire passer le test au vert.

    Je prends toutes pistes ^^

    Merci

    • Partager sur Facebook
    • Partager sur Twitter
      18 août 2022 à 8:45:25

      Ton getter permet de retourner du null, donc ton objet l'est forcement potentiellement
      • Partager sur Facebook
      • Partager sur Twitter
        18 août 2022 à 16:28:05

        En fait ParkingSpot ne doit jamais avoir de paramètres null dans l'application et je souhaite que quand je test avec un ticket dont je ne sais pas quel véhicule veut se garer, je retourne l'exception.
        • Partager sur Facebook
        • Partager sur Twitter
          18 août 2022 à 16:51:07

          c'est parkingspot qui peut etre null en parametre de ton setter, vu que tu le dereference sans check, ca peut mal se passer

          PS les get/set a proscrire tant que possible, mieux vaut avoir une encapsulation solide pour eviter les effets de bord

          • Partager sur Facebook
          • Partager sur Twitter
            19 août 2022 à 13:36:15

            Erreur résolue, elle n'était pas ici mais dans mes méthodes de mon ticket : 

            Lorsqu'il était passer nul, une erreur se levée

            public void setOutTime(Date outTime) {
                    this.outTime = outTime;
                }


            Maintenant c'est bon : 

            public void setOutTime(Date outTime) {
                    this.outTime = outTime == null ? null : new Date(outTime.getTime());
                }


            Merci pour tes réponses pxl

            -
            Edité par Community Technologie 19 août 2022 à 13:36:53

            • Partager sur Facebook
            • Partager sur Twitter

            NullPointerException - SpotBugs

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown