Ajuda com erro em Calendar e Date (Resolvido)

Boa tarde, tudo bem pessoal ? Estou com um erro aqui no aplicativo que estou criando, aonde o usuário digita os dados de um contrato e estes dados deveriam persistir no banco de dados.O erro acusou Null Pointer Exception para um date e não estou conseguindo achar o erro. O atributo dataNegociação é um calendar e por isso precisei passar ele pra Date.Gostaria da ajuda de vocês se possível pra encontrar o erro, pois já bati cabeça e não achei !

Erro:

jan 09, 2018 8:48:13 AM org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() for servlet [Spring MVC Dispatcher Servlet] in context with path 
[/CereaisSulWeb] threw exception [Request processing failed; nested exception is 
java.lang.NullPointerException] with root cause
java.lang.NullPointerException

at br.com.cereaissul.DAO.ContratosDao.adiciona(ContratosDao.java:35)
at br.com.cereaissul.controller.ContradoDeCompraController.adicionaContrato(ContradoDeCompraController.java:24)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:214)

O método que esta acusando erro (ContratoDaoJava Linha 35). A linha marcada **** setDate é a linha 35, que está causando o erro. :

public void adiciona(ContratoDeCompra contrato) {
	try {
		PreparedStatement stmt = connection.prepareStatement("insert into contratos "
				+ "(nomeProdutor, produto, quantidadeKg, dataNegociacao, valor) " + "values (?,?,?,?,?)");
		stmt.setString(1, contrato.getNomeProdutor());
		stmt.setString(2, contrato.getProduto());
		stmt.setLong(3, contrato.getQuantidadeKg());
		*****stmt.setDate(4, new Date(contrato.getDataNegociacao().getTimeInMillis()));
		stmt.setDouble(5, contrato.getValor());
		stmt.execute();
		stmt.close();
	} catch (SQLException e) {
		throw new RuntimeException(e);
	}
}

Obs: Estou usando Spring MVC,

Se está estourando NullPointerException aqui provavelmente o contrato.getDataNegociacao() está retornando null, aí não tem como chamar o getTimeInMillis().

Entendi Staroski, então provavelmente meu problema está acontecendo em outro lugar, acho que o Spring não está populando o Objeto, se não for pedir muito tem como você dar uma olhada no código abaixo e ver onde errei ?

Formulário Preenchido pelo usuário:

<section>
				<header>
				<font size="5">Contrato de Compra</font>
				<br>
				<br>
					<form action="codigoDeCompra" method="post">
						<label for="nomeProdutor">Nome do Produtor: </label><br> <input type="text" name="nomeProdutor" /><br>
						Produto: <br> <input type="text" name="produto" /><br>
						Quantidade em Kilos: <br> <input type="text"
							name="quantidadeKg" /><br>
                        Data da Negociação : <br>
						<campod:campoData id="dataNegociacao" />
						<br> Valor (Liquido): <br> <input type="text" name="valor" /><br>
						<br> <input type="submit" value="Gerar Contrato" />
					</form>

					
				</header>
			</section>

Código do Controller que deveria popular o objeto, adicionar no DB pela dao e redirecionar para uma jsp:

@Controller
public class ContradoDeCompraController {
	@RequestMapping("codigoDeCompra")
	public String compra(ContratoDeCompra contrato) {
		ContratosDao dao = new ContratosDao();
		dao.adiciona(contrato);
		return "ContratosDeCompra/contrato-adicionado";
	}
	

	@RequestMapping("novoContratoDeCompra")
	public String contratoDeCompra() {
		return "ContratosDeCompra/contrato-de-compra";
	}

}

Então o usuário acessa …/novoContratoDeCompra que cai no formulário (até aqui funcionando OK), depois preenche e envia que tem action codigoDeCompra e deveria cair no Controller para popular e adicionar porém não está funcionando, esta dando erro 400 The request sent by the client was syntactically incorrect.

Consegui resolver, faltava uma anotação @DateTimeFormat(pattern=“dd/MM/yyyy”) em cima do calendar na classe Bean.