Duvidas replaceAll

Pessoal, boa tarde.

Dentro do meu cadastro de fornecedores, eu tenho contato que contem ; porque possui mais de 1 contato, exemplo:

contato@conta.com.br; contato2@conta.com.br; ...

conforme o codigo abaixo funciona nesse cadastro:

if (obj.getListaNfse().getCompNfse().getTcCompNfse(i).getNfse().getInfNfse().getTomadorServico().getContato() != null) {
  contatoemailTomadorServico = obj.getListaNfse().getCompNfse().getTcCompNfse(i).getNfse().getInfNfse().getTomadorServico().getContato().getEmail().replaceAll(";", " ");
}

Mas no meu outro cadastro que está ocorrendo null porem, ja identifiquei se adicionar ; funciona, porém, eu queria tratar isso inserindo normalmente sem precisar colocar ;

Como posso fazer uma segunda validação? Se não existir no meio da minha variavel o caracter ; ele buscar somente ::

contatoemailTomadorServico = obj.getListaNfse().getCompNfse().getTcCompNfse(i).getNfse().getInfNfse().getTomadorServico().getContato().getEmail();

Meio confusa sua dúvida. Pq vc tem que adicionar ; para funcionar? Vc adiciona no final? Se não adicionar que dá o erro de nullPointer?

Mas após receber os dados do webservice, que conversão é essa que vc está fazendo para dá esse erro? Como está o código dessa conversão?

estou enviando a nota para um json variavel = " "
estou convertendo ela para um xml usando
org.json.JSONObject json = new org.json.JSONObject(jsonStr);
String xmlretorno = + XML.toString(json);

porém uma nota funciona com replaceAll por ter mais de um e-mail cadastrado.

ja a outra nota tem somente 1 e-mail cadastrado.

o problema está no caractere ; em uma nota.

e a outra nota nao tem caractere

O que to achando estranho é que, se o json for, por exemplo:

{
  "email": "email@teste.com;email@teste.com"
}

Isso é válido, não tem pq ter erro de parse. Mesmo para XML, acredito que isso seja correto. Qual o valor da variável jsonStr quando ocorre erro?