title: httprequest.getsession is returning null
body: <p>I have written one filter which would invalidate current session and create new session and copy attributes of old session into new session.
  This is working fine in tomcat5 and jdk 1,4 but when i switched it to tomcat6 and jdk 1.6
  once the filter is running then for next request <code>httprequest.getsession(false )</code> is <code>null</code>. Why its behaving differently in tomcat 6 .
  Please help.
  here is the code snippet</p>
  
  <pre><code>public void doFilter(ServletRequest request, ServletResponse response,
                          FilterChain chain) throws IOException, ServletException 
                          { 
          HttpServletRequest httpRequest = (HttpServletRequest) request;
          System.out.println("within GenerteNewSessionFilter");
          System.out.println("within GenerteNewSessionFilter getRequestURI"+httpRequest.getRequestURI());
          System.out.println("within GenerteNewSessionFilter getRequestURL"+httpRequest.getRequestURL());
  
          System.out.println("within GenerteNewSessionFilter session false"+httpRequest.getSession(false));
  
          String reqUrl=httpRequest.getRequestURL().toString();
          if (reqUrl==null){
              reqUrl="";
          }
          int idxLogin=reqUrl.indexOf("LoginSubmit.jsp");
          int idxReg=reqUrl.indexOf("RegistrationSubmit.jsp");
          int idxErr=reqUrl.indexOf("Error");
  
      int idxSave=-1;
      System.out.println("within GenerteNewSessionFilter reqUrl "+reqUrl);
      System.out.println("within GenerteNewSessionFilter idxLogin index"+idxLogin);
      System.out.println("within GenerteNewSessionFilter idxReg index"+idxReg);
      System.out.println("within GenerteNewSessionFilter idxErr index"+idxErr);
  
      if (httpRequest.getSession(false) != null  &amp;&amp;  (idxLogin &gt;0 || idxReg &gt;0) &amp;&amp; idxErr &lt;0 ){
        //copy session attributes from old session to a map. 
          System.out.println("copy session attributes from old session to a map");
          HttpSession session = httpRequest.getSession();
  
        HashMap old=new HashMap();
        Enumeration keys = (Enumeration) session.getAttributeNames();
        while (keys.hasMoreElements()) {
          String key = (String) keys.nextElement();
  
         old.put(key, session.getAttribute(key));
            session.removeAttribute(key);
  
  
        }
        System.out.println("old  session id  "+session.getId());
  
        //invalidate session and create new session.
        session.invalidate();
        //create new session
        session = httpRequest.getSession(true);
  
        //copy session attributes from map session to new session
        Iterator it = old.entrySet().iterator(); //iterator
        while (it.hasNext()) {
            Map.Entry pairs = (Map.Entry)it.next();
            //putitng old attributes in to new session
            session.setAttribute((String) pairs.getKey(), pairs.getValue());
  
        }//end while loop
            System.out.println("end copy  session attributes");
            System.out.println("new session id status "+httpRequest.getSession(false));
            System.out.println("final new   session session id  "+session.getId());
      }
      chain.doFilter(request, response);
      }
        public void init(FilterConfig filterConfig) throws ServletException {
  
  
      }
  
  }         
  </code></pre>