Servlet com erro

Bom dia,

Estou montando uma aplicação para um projeto da faculdade. E agora me deparei com um problema e gostaria de saber se alguém tem alguma sugestão.
Na hora de fazer um cadastro na parte de estoque, o sistema está retornando o seguinte erro:

HTTP Status 500 - null
type Exception report
message null
description The server encountered an internal error that prevented it from fulfilling this request.
exception
java.lang.NumberFormatException: null
java.lang.Integer.parseInt(Unknown Source)
java.lang.Integer.parseInt(Unknown Source)
br.com.odontbasic.controle.instrumentista.estoque.SalvarEstoqueServlet.doPost(SalvarEstoqueServlet.java:29)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
br.com.odontbasic.controle.LoginFilter.doFilter(LoginFilter.java:47)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.36 logs.

Pelo que pude pesquisei, isso está acontecendo por eu estar tentando converter um valor null ou uma string para int. Eu fiz algumas alterações mas o erro persistiu.
Segue o código da Servlet, se alguém tiver alguma sugestão que possa ajudar eu agradeço.

package br.com.odontbasic.controle.instrumentista.estoque;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import br.com.odontbasic.modelo.Estoque;
import br.com.odontbasic.modelo.Fornecedor;
import br.com.odontbasic.modelo.Produto;
import br.com.odontbasic.modelo.dao.EstoqueDao;

public class SalvarEstoqueServlet extends HttpServlet {

   	private static final long serialVersionUID = 1L;

   	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
                RequestDispatcher dispatcher = null;
                Estoque estoque = new Estoque();
                List<String> erros = new ArrayList<String>();
                
                String id = request.getParameter("id");
                if(id != null && !id.isEmpty()) {
                         estoque.setIdestoque(Integer.parseInt(id));
                }
        	estoque.setQuantidade(Integer.parseInt(request.getParameter("quantidade")));
        	estoque.setEstoque(Integer.parseInt(request.getParameter("estoque")));
        	estoque.setProduto(new Produto(Integer.parseInt("idproduto")));
        	estoque.setFornecedor(new Fornecedor(Integer.parseInt("idfornecedor")));
       	
                if(estoque.getQuantidade()==null) {
                        erros.add("O campo Quantidade é de preenchimento obrigatório.");
                }
                if(estoque.getEstoque()==null) {
                        erros.add("O campo Estoque é de preenchimento obrigatório.");
                }
                if(estoque.getProduto().getIdProduto()==null) {
                    erros.add("O campo Produto é de preenchimento obrigatório.");
                }
                if(estoque.getFornecedor().getIdFornecedor()==null) {
                    erros.add("O campo Produto é de preenchimento obrigatório.");
                }

                if(!erros.isEmpty()) {
                         request.setAttribute("estoqueEditado", estoque);
                         request.setAttribute("erros", erros);
                         dispatcher = request.getRequestDispatcher("/dinamico/instrumentista/estoque/editar.jsp");
                         
                       //Calcula a operação sobre o estoque
                     	String operacao = request.getParameter("operacao");
                     	String quantidade = request.getParameter("quantidade");
                     	if(!quantidade.isEmpty()) {
                     	       estoque.setEstoque(Integer.parseInt(request.getParameter( operacao + quantidade)));
                     	}
                     	// Fim do calculo de estoque
                         
                } else {
                         EstoqueDao estoqueDao = new EstoqueDao();
                         if(estoque.getIdestoque() == null) {//criacao
                                  estoqueDao.criar(estoque);
                         } else {//atualizacao
                                  estoqueDao.atualizar(estoque);                         
                         }
                         request.setAttribute("mensagem", "Estoque " + estoque.getProduto().getNomeProduto() + " salvo com sucesso.");
                         request.setAttribute("estoques", estoqueDao.obterTodos());
                         dispatcher = request.getRequestDispatcher("/dinamico/instrumentista/estoque/listar.jsp");
                }
                dispatcher.forward(request, response);
       }
}

cara
todo o valor que vir da tela tem que ser tratado para não dar exceçao.
ex:

no lugar disso

Integer.parseInt(request.getParameter(“quantidade”))

colocar isso

Integer.parseInt(request.getParameter(“quantidade”)==null?“0”:request.getParameter(“quantidade”))

ou vc pode criar um metodo aparte para tratar valores nulos ou vazios retornando dados corretos

ex: metodoQueTrataRequest(request.getParameter(“quantidade”));

Edu, fiz a alteração e acho que deu certo. Digo acho porque eu troquei de erro agora…rs
Alterei as linhas para fazer o tratamento, só que agora está dando null pointer. Estou rodando o debug pra ver se acho o que está dando esse erro.

HTTP Status 500 - Erro ao cadastrar estoque

type Exception report

message Erro ao cadastrar estoque

description The server encountered an internal error that prevented it from fulfilling this request.

exception

java.lang.RuntimeException: Erro ao cadastrar estoque
br.com.odontbasic.modelo.dao.EstoqueDao.criar(EstoqueDao.java:36)
br.com.odontbasic.controle.instrumentista.estoque.SalvarEstoqueServlet.doPost(SalvarEstoqueServlet.java:64)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
br.com.odontbasic.controle.LoginFilter.doFilter(LoginFilter.java:47)
root cause

java.lang.NullPointerException
br.com.odontbasic.modelo.dao.EstoqueDao.toResultSet(EstoqueDao.java:177)
br.com.odontbasic.modelo.dao.EstoqueDao.criar(EstoqueDao.java:28)
br.com.odontbasic.controle.instrumentista.estoque.SalvarEstoqueServlet.doPost(SalvarEstoqueServlet.java:64)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
br.com.odontbasic.controle.LoginFilter.doFilter(LoginFilter.java:47)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.36 logs.

Obrigado pela ajuda!!

cara ali tem a pilha com o erro
vc pode clicar nela que ela te leva a linha que está mostrando na pilha

veja
br.com.odontbasic.modelo.dao.EstoqueDao.criar(EstoqueDao.java:36)

clique nesse link e vc verá a linha e saberá qual o erro, nesse caso está na classe EstoqueDao.java na linha 36.