Pessoal, alguém pode me ajudar a encontrar onde pode estar ocorrendo esta exceção?
Quando eu rodo no browser do eclipse, nenhum erro acontece e roda tudo certo, mas qdo rodo no servidor aparece sempre uma exceção do tipo java.lang.nullPointerException.
Não estou conseguindo achar onde pode estar o problema no código. Por favor me ajudem, não consigo mais escutar reclamação dos usuários, pois sempre qdo executado o sistema roda e de repente sai fora e lança a exceção na tela. O interssante é que qdo se atualiza a tela pelo (F5), de vez enquando roda tudo certo, o que pode ser isso.
Esse é o meu código.
package servletsPortalAc;
import java.sql.Statement;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
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 javax.servlet.http.HttpSession;
import util.*;
public class PesquisaSql extends HttpServlet {
@SuppressWarnings("deprecation")
protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, SQLException, ParseException {
response.setContentType("text/html;charset=ISO-8859-1");
PrintWriter out = response.getWriter();
//INICIA AS VARIÁVEIS PARA RECEBER OS VALORES
String retorno = "";
String bgcolorPrazo = "";
String dataPreFormatada = "";
//String tdpPos = "";
String dt_pesq = "";
String dt_pesq1 = "";
String reu_pre = "";
String nbrPos = "";
String nbrMe = "";
String antecipa = "";
String emissor = "";
String status = "";
String projeto = "";
String tecnologia = "";
String tipo = "";
String modoFalha = "";
String motivo = "";
dt_pesq = request.getParameter("dt_pesq");
dt_pesq1 = request.getParameter("dt_pesq1");
reu_pre = request.getParameter("reu_pre");
nbrPos = request.getParameter("pos");
nbrMe = request.getParameter("me");
antecipa = request.getParameter("antecipa");
emissor = request.getParameter("emissor");
status = request.getParameter("status");
projeto = request.getParameter("projeto");
tecnologia = request.getParameter("negocio");
tipo = request.getParameter("tipo");
modoFalha = request.getParameter("modoFalha");
motivo = request.getParameter("motivo");
//INICIA DATA DE HOJE
String hoje = util.FormatadorDatas.data_hora();
try{
if (dt_pesq==null && dt_pesq1==null && nbrPos==null && nbrMe==null && antecipa==null && emissor==null && status==null && projeto==null && tecnologia==null){
//retorno = (String) request.getParameter("retorno");
retorno = (String) request.getSession().getAttribute("retornoSession");
//retorno = (String) session.getValue("retornoSession");
//out.println(retorno);
}
else
{
String dataFormPesq = "";
String dataFormPesq1 = "";
if (!dt_pesq.equals("") && !dt_pesq1.equals("")){
Date data_pesq = new SimpleDateFormat("dd-MM-yyyy").parse(dt_pesq);
dataFormPesq = new SimpleDateFormat("yyyy-MM-dd").format(data_pesq);
Date data_pesq1 = new SimpleDateFormat("dd-MM-yyyy").parse(dt_pesq1);
dataFormPesq1 = new SimpleDateFormat("yyyy-MM-dd").format(data_pesq1);
}
// monta um array com as opções de pesquisa
List<String> lista = new ArrayList<String>();
if(dataFormPesq!=null && reu_pre==null)
lista.add("data>='"+dataFormPesq+"'");
if(dataFormPesq1!=null && reu_pre==null)
lista.add("data<='"+dataFormPesq1+"'");
if(dataFormPesq!=null && reu_pre!=null)
lista.add("data_pre>='"+dataFormPesq+"'");
if(dataFormPesq1!=null && reu_pre!=null)
lista.add("data_pre<='"+dataFormPesq1+"'");
if(!nbrPos.equals(""))
lista.add("pos = '"+nbrPos+"'");
if(!nbrMe.equals(""))
lista.add("me like '%"+nbrMe+"%'");
if(!antecipa.equals(""))
lista.add("antecipa = '"+antecipa+"'");
if(!emissor.equals(""))
lista.add("emissor = '"+emissor+"'");
if(!status.equals("Todos")&& !status.equals(""))
lista.add("status = '"+status+"'");
if(status.equals("Todos"))
lista.add("status != '-' and status!='' ");
if(!tecnologia.equals(""))
lista.add("negocio = '"+tecnologia+"'");
if(motivo.equals("Todos"))
lista.add("motivo != '-' and motivo!='' ");
if(!motivo.equals("Todos") && !motivo.equals(""))
lista.add("motivo = '"+motivo+"'");
if(!tipo.equals(""))
lista.add("tipo = '"+tipo+"'");
StringBuilder sb = new StringBuilder();
for(String s : lista){
sb.append(" and ").append(s);
}
retorno = sb.toString().replaceFirst("and", "");
}
request.getSession().setAttribute("retornoSession", retorno);
//out.println(retorno);
} catch (Exception e) {
e.printStackTrace();
}
//ABRE CONEXÃO COM O BANCO
ConexaoUtil c = new ConexaoUtil();
String totalRows = "";
Integer limit = 50;
List<AcAta> listaConsulta = new ArrayList<AcAta>();
List<AcAta> listaConsultaWf = new ArrayList<AcAta>();
try{
ResultSet rs_count = c.executeConsulta("SELECT COUNT(*) AS c FROM ac_ata where" +retorno+ "");
rs_count.next();
totalRows = (rs_count.getString("c"));
ResultSet rs_lista = c.executeConsulta("SELECT * FROM ac_ata where" +retorno+ " order by data LIMIT " + limit);
while(rs_lista.next()){
AcAta acAta = new AcAta();
acAta.setNbrAc(rs_lista.getString("id_ata"));
acAta.setDtCriacao(rs_lista.getDate("data"));
acAta.setPos(rs_lista.getString("pos"));
acAta.setMe(rs_lista.getString("me"));
acAta.setAntecipaAta(rs_lista.getString("antecipa"));
acAta.setAssuntoAta(rs_lista.getString("assunto"));
acAta.setEmissorAta(rs_lista.getString("emissor"));
acAta.setStatusAta(rs_lista.getString("status"));
acAta.setNegocioAta(rs_lista.getString("negocio"));
acAta.setProjetoAta(rs_lista.getString("projeto"));
acAta.setTipoRet(rs_lista.getString("tipo_ret"));
acAta.setTipoAta(rs_lista.getString("tipo"));
acAta.setChaveAta(rs_lista.getString("chave"));
acAta.setModoFalhaAta(rs_lista.getString("modo_falha"));
acAta.setMotivoAta(rs_lista.getString("motivo"));
acAta.setDataPre(rs_lista.getDate("data_pre"));
//listaConsulta.add(acAta);
//for(AcAta resultado : listaConsulta){
try{
if(acAta.getDataPre()==null){
acAta.setBgcolorPrazo("class=rowpos");
//listaConsulta.add(acAta);
}
} catch (Exception e) {
e.printStackTrace();
}
try{
if(acAta.getDataPre()!=null){
acAta.setDataPreFormatada(FormatadorDatas.formatoBrasil_sem_hora(acAta.getDataPre()));
acAta.setFarolDataPre(FormatadorDatas.getDiferencaDiasPrazo(acAta.getDataPre()));
}
} catch (Exception e) {
e.printStackTrace();
}
try{
if (acAta.getFarolDataPre() > 5){
acAta.setBgcolorPrazo("bgcolor=#00FF00");
}
if (acAta.getFarolDataPre() <= 5 && acAta.getFarolDataPre() >= 1){
acAta.setBgcolorPrazo("bgcolor=#FFFF00");
}
if (acAta.getFarolDataPre() <= 0){
acAta.setBgcolorPrazo("bgcolor=#FF0000");
}
} catch (Exception e) {
e.printStackTrace();
}
//inicio 2º try/catch consulta
/*try{
ResultSet rs_tdp = c.executeConsulta("SELECT * FROM tdp_ata where pos='"+acAta.getPos()+"' order by pos");
if(rs_tdp.first()){
tdpPos = "Sim";
}
} catch (SQLException e) {
e.printStackTrace();
}*/
//fim 2º try/catch consulta
//inicio 3º try/catch consulta
int total_com_emi = 0;
try{
ResultSet rs_emissor = c.executeConsulta("SELECT COUNT(*) AS com_emi FROM ac_historico where (id_ata = '"+acAta.getNbrAc()+"' and area='Emissor') order by area");
if (rs_emissor.next()){
acAta.setTotalCommentEmi(Integer.parseInt(rs_emissor.getString("com_emi")));
//out.println(acAta.getTotalCommentEmi());
}
} catch (SQLException e) {
e.printStackTrace();
}
//fim 3º try/catch consulta
//inicio 4º try/catch consulta
String en = "";
try{
ResultSet rs_en = null;
rs_en = c.executeConsulta("SELECT * FROM cqa where (en = '"+acAta.getMe()+"') order by en");
if(rs_en.first())
{
en = rs_en.getString("en");
}
else {
en = "none";
}
} catch (SQLException e) {
e.printStackTrace();
}
//out.println(en);
//fim 4º try/catch consulta
//inicio 5º try/catch consulta
if (!en.equals("none")){
//Date data_max = null;
String dataCqa = "";
try{
ResultSet rs_max = null;
rs_max = c.executeConsulta("SELECT max(prazo) as data_max FROM cqa_workflow where (en = '"+en+"') and prazo IS NOT NULL GROUP BY en ORDER BY max(prazo)ASC");
if(rs_max.first()){
Date data_max = rs_max.getDate("data_max");
//fim 5º try/catch consulta
//inicio 6º try/catch consulta
String dataPreMaior = "";
try{
if (data_max!=null && !data_max.equals("")){
dataCqa = FormatadorDatas.formatoBrasil_sem_hora(data_max);
acAta.setFarolDataMax(FormatadorDatas.getDiferencaDiasPrazo(data_max));
//out.println(bgcolorPrazo);
}
} catch (Exception e) {
e.printStackTrace();
}
try{
if(acAta.getDataPre()==null && data_max==null){
dataPreMaior = "-";
//out.println("1");
}
} catch (Exception e) {
e.printStackTrace();
}
try{
if(data_max==null){
dataPreMaior = dataPreFormatada;
//out.println("3");
}
} catch (Exception e) {
e.printStackTrace();
}
try{
if(acAta.getDataPre()==null){
dataPreMaior = dataCqa;
if (dataCqa==null){
dataPreMaior = "-";
}
//out.println("4");
}
} catch (Exception e) {
e.printStackTrace();
}
try{
if(acAta.getDataPre()!=null && data_max!=null){
//out.println(data_max);
//out.println(acAta.getDataPre());
if(data_max.after(acAta.getDataPre())||data_max==null){
dataPreMaior = dataCqa;
//out.println("5");
}
else{
dataPreMaior = dataPreFormatada;
//out.println("6");
}
}
} catch (Exception e) {
e.printStackTrace();
}
try{
if (dataPreMaior==null){
dataPreMaior = "-";
//out.println("7");
}
} catch (Exception e) {
e.printStackTrace();
}
out.println(data_max);
}
} catch (SQLException e) {
e.printStackTrace();
}
}
listaConsulta.add(acAta);
}
for(AcAta resultado : listaConsulta){
//out.println(resultado.getAreaAc()+"<br/>");
//out.println(resultado.getStatusAc()+"<br/>");
try{
ResultSet rs_areas = c.executeConsulta("SELECT * FROM ac_workflow where (id_ata = '"+resultado.getNbrAc()+"') order by id_wf asc");
while(rs_areas.next()){
AcAta acAta = new AcAta();
acAta.setNbrAcWf(rs_areas.getString("id_ata"));
acAta.setAreaAc(rs_areas.getString("area"));
//out.println(rs_areas.getString("area"));
acAta.setStatusAc(rs_areas.getString("status"));
ResultSet rs_com = c.executeConsulta("SELECT COUNT(*) AS com FROM ac_historico where (id_ata = '"+resultado.getNbrAc()+"' and area='"+acAta.getAreaAc()+"') order by area");
if (rs_com.next()){
acAta.setTotalComment(Integer.parseInt(rs_com.getString("com")));
//out.println(acAta.getTotalComment());
}
listaConsultaWf.add(acAta);
}
} catch (SQLException e) {
//out.println("Data Nula ou não existe");
e.printStackTrace();
}
}
} catch (SQLException e) {
//out.println("Data Nula ou não existe");
e.printStackTrace();
}
c.fechaConexao();
//HttpSession session=request.getSession(true);
request.setAttribute("listaConsulta",listaConsulta);
request.setAttribute("listaConsultaWf",listaConsultaWf);
String nextJSP = "/ac/acPesquisa_sql.jsp?totalRows="+totalRows;
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(nextJSP);
dispatcher.forward(request,response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
try {
processRequest(request, response);
} catch (SQLException e) {
e.printStackTrace();
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
try {
processRequest(request, response);
} catch (SQLException e) {
e.printStackTrace();
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Desde já agradeço a ajuda