Erro 500

Guys
não estou entendo o que esta acontecendo na minha pagina, podem me ajudar. Tento fazer uma alteração mas esta complicado. Segue o erro e o meu código.

ERRO

Type Exception Report

Message For input string: ""

Description The server encountered an unexpected condition that prevented it from fulfilling the request.

Exception

java.lang.NumberFormatException: For input string: ""
	java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:68)
	java.base/java.lang.Integer.parseInt(Integer.java:662)
	java.base/java.lang.Integer.valueOf(Integer.java:983)
	br.com.alura.gerenciadorr.servelet.AlteraEmpresaServlet.doPost(AlteraEmpresaServlet.java:26)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:652)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
Note The full stack trace of the root cause is available in the server logs.

CODIGO

import java.io.IOException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import br.com.alura.gerenciador.modelo.Banco;
import br.com.alura.gerenciador.modelo.Empresa;

@WebServlet("/alteraEmpresa")
public class AlteraEmpresaServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
  
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		System.out.println("Alterando empresa");
		
		String nomeEmpresa = request.getParameter("nome");//leitura de parametro 
		String dataCadastro = request.getParameter("data");
		String paramID = request.getParameter("id");
		Integer id = Integer.valueOf(paramID);
		
		Date dataAbertura = null;
		
		try {//Definição da data 
			SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
			dataAbertura = sdf.parse(dataCadastro);
		} catch (ParseException e) {
			throw new ServletException(e);
		}
		
		System.out.println(id);
		
		Banco banco = new Banco();
		Empresa empresa = banco.buscaEmpresa(id);
		empresa.setNome(nomeEmpresa);
		empresa.setDataAbertura(dataAbertura);
		
		response.sendRedirect("listaEmpresas");
	}
}
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri = "http://java.sun.com/jsp/jstl/fmt" prefix = "fmt"%>

<c:url value="/alteraEmpresa" var="linkAlteraEmpresaServelet"/>

<!DOCTYPE html>
<html>

<head>
	<meta charset="ISO-8859-1">
	<title>Formulário nova empresa</title>
</head>

<body>
	<form action="${linkAlteraEmpresaServelet}" method="post">
		Nome: <input type="text" name="nome" value="${empresa.nome }" />
		Data cadastrada: <input type="text" name="data" value="<fmt:formatDate value="${empresa.dataAbertura }" pattern="dd/MM/yyyy"/>"/>
		
		<input type="hidden" name="id" value="${empresa.id}">
		<input type="submit">
	</form>
</body>

</html>

Esse ID tá vazio: “”

como assim ?? o “id” pega “automaticamente” do parâmetro

Como vc passou esse objeto empresa pra cá? Veja se o ID tá setado nele antes de passar.

Muito obrigado por me ajudar eu estava errando o parâmetro da classe (por incrivel que pareça), o meu id estava correto