Erro de perda de sessão com Websphere

0 respostas
Juliano_Pedroso_da_S

É o seguinte tenho a seguinte classe que monitora todas as sesssões mas estou perdendo a sessão e gerando um erro muito estranho pois o erro é gerado em uma só tela da aplicação no restante não gera erro nenhum e passa pelo mesmo trecho do código.
Já verifiquei que a o action está vindo com o valor correto, só não consegui verificar o valor da sessão mesmo.

/* (non-Javadoc)
	 * @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)
	 */
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
															throws IOException, ServletException {
		
		logger.debug("Entering filter");
		try {
			if(request instanceof HttpServletRequest) {
				HttpServletRequest httpRequest = (HttpServletRequest) request;
				String servletPath = httpRequest.getServletPath();
				//Linha do código onde a sessão é perdida
                                                                HttpSession session = httpRequest.getSession();
				boolean isSessionInvalid = false;
				logger.debug("Chaining...");
				chain.doFilter(request, response);
				logger.debug("After filter chain...");
				return;	
				if(session == null) {
					logger.warn("Session is null.");
					isSessionInvalid = true;
				} else if(session.getAttribute("geduser") == null) {
					if(servletPath.indexOf("Login.do") == (-1) && 
						servletPath.indexOf("Logout.do") == (-1)&& 
						servletPath.indexOf("FastLogin.do") == (-1)) {
						logger.warn("User is null or is not logged in.");
						isSessionInvalid = true;
					}
				}
				if(isSessionInvalid) {
					logger.warn("Cancelling request...");
					request.getRequestDispatcher("/logout.jsp").forward(request, response);
					return;
				}
				
			}
			
			logger.debug("Chaining...");
			chain.doFilter(request, response);
			logger.debug("After filter chain...");
			return;	
		} catch (Exception e) {
			logger.error("Error in session filter", e);
		}	

	}

Log de Erro --> Muito estranho

=[DEBUG] 10/09/08 16:49:00 SessionMonitorFilter::doFilter - After filter chain...
=[DEBUG] 10/09/08 16:49:00 SessionMonitorFilter::doFilter - Entering filter
=[ERROR] 10/09/08 16:49:00 SessionMonitorFilter::doFilter - Error in session filter
java.lang.NullPointerException
	at com.pac.ged.business.Document.hashCode(Document.java:527)
	at java.lang.Object.toString(Object.java(Compiled Code))
	at com.ibm.ws.webcontainer.util.SimpleHashtable.toString(SimpleHashtable.java:378)
	at com.ibm.ws.webcontainer.httpsession.SessionData.toString(SessionData.java:1044)
	at java.lang.String.valueOf(String.java(Inlined Compiled Code))
	at java.lang.StringBuffer.append(StringBuffer.java(Compiled Code))
	at com.ibm.ws.webcontainer.httpsession.SessionContext.getIHttpSession(SessionContext.java:1487)
	at com.ibm.ws.webcontainer.httpsession.SessionContext.getIHttpSession(SessionContext.java:2387)
	at com.ibm.ws.webcontainer.webapp.WebAppDispatcherContext.getSession(WebAppDispatcherContext.java:182)
	at com.ibm.ws.webcontainer.srt.SRTServletRequestContext.getSession(SRTServletRequestContext.java:219)
	at com.ibm.ws.webcontainer.srt.SRTServletRequest.getSession(SRTServletRequest.java:716)
	at com.ibm.ws.webcontainer.srt.SRTServletRequest.getSession(SRTServletRequest.java:707)
	at com.pac.web.SessionMonitorFilter.doFilter(SessionMonitorFilter.java:48)
	at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:132)
	at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:71)
	at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispatch(WebAppRequestDispatcher.java:1161)
	at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:666)
	at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:209)
	at com.ibm.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java:90)
	at com.ibm.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:249)
	at com.ibm.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:71)
	at com.ibm.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:246)
	at com.ibm.ws.webcontainer.oselistener.OSEListenerDispatcher.service(OSEListener.java:334)
	at com.ibm.ws.webcontainer.http.HttpConnection.handleRequest(HttpConnection.java:56)
	at com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:622)
	at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:457)
	at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:681)
=[INFO] 10/09/08 16:51:46 ApplicationInit::contextDestroyed - Closing application
Criado 10 de setembro de 2008
Respostas 0
Participantes 1