Treating null pointer exception

0

I'm getting a json object from the screen in my back end like this:

{
    "pessoa": {
        "nome": "aa",
        "nomeSocial": "aa",
        "tipoPessoa": "F",
        "nomePai":"",
        "dataNascimento": "15/06/1983",
        "nomeMae": "a"
    },
    "cns": "aa",

    "pessoasEnderecos": {
        "cep": "a", 
        "nomeLogradouro": "a",
        "nomeBairro": "a"
    }
}

The issue is that I'm having a nullPointerException because, of course, my json nomePai is empty, how do I handle this error and persist the data in the database by passing the namePai null, since it is not mandatory by rule of business?

There are several attributes that fall into this rule, I've just added one for demonstration.

My method:

@RequestMapping(method = RequestMethod.POST, value = "/pacientes")
    public HttpStatus cadastrarPacientes(@RequestBody ObjectNode json) throws ParseException  {

        SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yyyy");

            entidades.setIdEntidade(json.get("pessoa").get("entidade").get("idEntidade").asLong());

            Pessoas pessoas = new Pessoas();
            pessoas.setNome(json.get("pessoa").get("nome").textValue());
            pessoas.setNomeSocial(json.get("pessoa").get("nomeSocial").textValue());

            pessoas.setNomePai(json.get("pessoa").get("nomePai").textValue());
            pessoas.setNomeMae(json.get("pessoa").get("nomeMae").textValue());
            pessoas.setDataNascimento(formato.parse(json.get("pessoa").get("dataNascimento").textValue()));

            pessoas.setTipoPessoa(json.get("pessoa").get("tipoPessoa").textValue());
}
    
asked by anonymous 30.11.2017 / 12:43

1 answer

2

A simple resolution would be to use ternary operation to avoid attempting to access a null return:

pessoas.setNomePai(json.get("pessoa").get("nomePai") == null ? null : json.get("pessoa").get("nomePai").textValue());

In this way, the null return is maintained if the returned value is empty, but the textValue() will only be called if it is not null.

    
30.11.2017 / 13:01