Eclipse "pula" linhas no debug

17 respostas
Y

Pessoal, importei um projeto que baixei na internet para o eclipse. Eu coloquei um breakpoint na classe, porém quando eu aperto F6 para ir para a próxima linha o eclipse pula algumas linhas. É como se estivesse debugando uma classe diferente sei lá. Testei em várias versões do eclipse, e nos projetos que eu desenvolvo funciona normalmente o debug. Alguém já passou por essa situação? É alguma configuração do projeto será?

17 Respostas

guisantogui

Provavelmente as linhas que estão sendo “puladas” são após um if ou for certo!? Isso é por que a condição que foi estabelecida no if retorna um valor falso, dae o compilador não passa dentro do bloco de código do if!

Y

Não não, são linhas simples de código. Inclusive a linha de debug entra em blocos de comentário.

ctj

Ola pessoal estou começando a mecher com java e ja estou tentando fazer um menu de cadastro de produto simples, alguem poderia me achudar passando algum codigo, dica, etc…OBRIGADO.

Y

ctj, aconselho primeiro você dar uma lida nas regras do fórum e abrir um tópico específico para as suas dúvidas.

Z111

isso acontece quando vc alterou o código e ainda não recompilou.

Dê um clean no projeto [Project -> Clean …]

Veja se [Build automatically] está marcado.

guisantogui

Posta o código então para gent dar uma olhada e marca onde vc ta debugando!

lina

Oi,

Acho que você alterou o código enquanto debugava…
Obs: a tecla F6 faz o que? Step into ou Step over?

Tchauzin!

Y

Esse é o método que deveria estar sendo debugado. Eu coloquei um System.out ali só para testar e coloquei um breakpoint nessa linha.
Ele parava na primeira linha e quando dava um F6 pulava algumas linhas, ía para a linha que tem “String agree = request.getParameter(“agree”);” se eu não me engano e não aparecia a mensagem do sysout no console.
Agora eu fiz alguma coisa que nem está mais parando no breakpoint hehehe
Está muito estranho isso

@Override
	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,
			IOException {
		System.out.println("AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA");
		AE ae;
		ServletContext servletContext = getServletContext();
		ServerConfiguration serverConfiguration;
		EchoService echoService;

		String agree = request.getParameter("agree");

		if (agree != null && agree.equals("agree")) {
			Cookie agreeCookie = new Cookie("agree", "agree");
			agreeCookie.setMaxAge(60 * 60 * 24 * 365);
			response.addCookie(agreeCookie);
		}

		try {
			String contextPath = request.getContextPath().replaceAll("/", "");
			ServerXmlConfiguration.fname = contextPath + "-config.xml";

			ae = new AE();
			// assigns the serverConfiguration instance.
			serverConfiguration = ae.getServerConfiguration();
			/*
			 * writes the serverConfiguration instance in the servletContext
			 * (application scope). So all the SERVLET classes and JSP pages can
			 * access the serverConfig attribute. User can use either
			 * <jsp:useBean> tag or ${applicationScope.serverConfig} EL to
			 * access the serverConfig attribute. From SERVLET classes the User
			 * can use the getServletContext().getAttribute("serverConfig") to
			 * access the serverConfiguration attribute.
			 */
			servletContext.setAttribute("serverConfig", serverConfiguration);

			echoService = new EchoService();
			echoService.checkEcho();
			/*
			 * If the status of EchoService is failed then the request will be
			 * forwarded to EchoFailed.jsp. Otherwise, request is forwarded to
			 * oviyam7.jsp
			 */
			if (echoService.getStatus().equals("Echo failed")) {
				/*
				 * writes the echoURL(dcmProtocol://aeTitle@hostName:port)
				 * attribute in request instance. and forwards the request and
				 * response object to EchoFailed.jsp . echoFailed attribute can
				 * be accessed through either ${request.echoURL} or <%
				 * request.getAttribute("echoURL")%>
				 */
				request.setAttribute("echoURL", ae.toString());
				request.getRequestDispatcher("EchoFailed.jsp").forward(request, response);
			} else {
				// forwards the request and response to oviyam7.jsp
				String studyUID = request.getParameter("studyUID");
				String seriesUID = request.getParameter("seriesUID");
				String patientID = request.getParameter("patientID");
				if (studyUID != null && studyUID.length() <= 0) {
					request.setAttribute("param", "studyUID");
					request.getRequestDispatcher("InvalidParam.jsp").forward(request, response);
					log.error("Invalid studyUID parameter for Oviyam.");
				} else if (seriesUID != null && seriesUID.length() <= 0) {
					request.setAttribute("param", "seriesUID");
					request.getRequestDispatcher("InvalidParam.jsp").forward(request, response);
					log.error("Invalid seriesUID parameter for Oviyam.");
				} else if (patientID != null && patientID.length() <= 0) {
					request.setAttribute("param", "patientID");
					request.getRequestDispatcher("InvalidParam.jsp").forward(request, response);
					log.error("Invalid patientID parameter for Oviyam.");
				} else {
					request.getRequestDispatcher("oviyam7.jsp").forward(request, response);
				}
			}

		} catch (Exception e) {
			log.error(e.getMessage());

		}
	}
ViniGodoy

Z:
isso acontece quando vc alterou o código e ainda não recompilou.

Dê um clean no projeto [Project -> Clean …]

Veja se [Build automatically] está marcado.

[2]

Y

Sim, isso foi a primeira coisa que eu fiz =]

Y

Colocando breakpoint na primeira linha não funciona, mas coloquei vários breakpoints nas linhas abaixos e em alguns deles parou. Parece que o eclipse está debugando um outro código fonte e abrindo para a visualização o que eu realmente quero…

ViniGodoy

E deve ser isso mesmo que ele está fazendo. Verifique se no seu projeto não tem um .jar com os mesmos arquivos dentro.

Y

Então… nesse projeto que eu baixei veio junto os .class (WEB-INF/classes) será que é por isso? Se eu tiro os .class do projeto não funciona mais.

Z111

é por isso mesmo…

vc tem q recompilar as classes para o seu debug funcionar adequadamente.

Y

Pois é, nos projetos que eu trabalho aqui eu não tenho que fazer isso. Apenas salvo o .java e roda normalmente o debug. Nesse eu tive que gerar o .war e copiar a pasta classes para o projeto e aí sim funcionar a minha alteração. Com certeza devo estar fazendo alguma coisa errada mas enfim… já enxi o saco desse projeto em servlet puro, vou passar ele para o VRaptor hehehehe

J

Sei que o post já ta antigo mas para quem vir a ler futuramente procurando uma solução aí vai uma dica,

isso já aconteceu comigo 2 vezes, e as duas foram pelo mesmo motivo,

a primeira vez que tentei usar JDBC e ainda não sabia muito bem como usar bibliotecas no projeto, e outra ontem quando estava usando o Window Builder pra criar umas telas e resolvi experimentar um layout manager que nunca tinha visto, o JGoodiesLayout, foi importado uma biblioteca automaticamente e na hora de referenciar deve ter havido algum erro, bug sei lá, e a referencia da biblioteca ficou como “missing” o que ocasionou esse erro bizarro durante um debug ou execução…

verifique se o projeto não contém nenhuma biblioteca referenciada que não pode ser localizada, isso impede o compilador de compilar o fonte, porém o programa executa como se tivesse tudo perfeito…

caso exista, delete a biblioteca e pronto, dê Run ou Debug novamente que vai funcionar perfeito

P

Estou com este mesmo problema. Eu fiz o que o yuripodho fez: gerar o .war e copiar a pasta classes para o projeto, más também não funcionou. E as minhas libs estão todas corretas. Será que alguém tem outra solução?

Criado 20 de julho de 2010
Ultima resposta 14 de nov. de 2013
Respostas 17
Participantes 8