title: Servlet returns data from database only once after deployment
body: <p>I'm building a web portal and i'm using Hibernate to access MySQL and push the data fetched to a JSP to print it in a tabular form. I'm using Tomcat for servlet deployment. my servlet has to make 3 HQL queries and then push the data retrieved to the JSP. after i deploy the servlet,it works fine the first time i make a query using HTML form. moreover,in the Eclipse console,i can see all the 3 HQL queries being executed. but when i try to make a query again, even the same query as last time from my HTML form, I dont get any data on the JSP page(the table i was trying to fill contains only zeroes). checking the Eclipse console,i found that only the first HQL query was executed,and nothing else comes up,not even an error message. If i restart Tomcat,or just redeploy the servlet,it works,but only once again. please help</p>
  
  <p>The flow is like-
  HTML form -> Servlet -> JSP</p>
  
  <pre><code>         String major,date,minor,ip;
           double[][][] transactionTime = new double[2][50][10];
           int[] testCaseId = new int[10];
           String[] activityName = new String[10];
           major=req.getParameter("major");
           date=req.getParameter("date");
           minor=req.getParameter("minor");
           ip=req.getParameter("ip");
           String testCaseName=req.getParameter("testCaseName");
           Session session = null;
  
  
        try{
  
        SessionFactory sessionFactory = new 
  
      Configuration().configure()
      .buildSessionFactory();
        session =sessionFactory.openSession();
  
        //Create Select Clause HQL
  
  
           String SQL_QUERY2 ="Select testCases.activityName,testCases.testCaseID from TestCases testCases where testCases.testcaseName like \'" + testCaseName + "\'";
           Query query2 = session.createQuery(SQL_QUERY2);
           for(Iterator it2=query2.iterate();it2.hasNext();ctr2++)
                {
                Object[] act = (Object[]) it2.next();
                activityName[ctr2]=(String) act[0];
                testCaseId[ctr2] = (Integer) act[1];
                }
  
  
          for(int j=0;j&lt;ctr2;j++){
              ctr=0;
           String SQL_QUERY3 ="Select tran.transactionTime from Transactions tran where tran.samples.builds.buildMajorVersion like " + major + " and tran.samples.builds.buildMinorVersion like " + minor + " and tran.samples.runDate like \'" + date + "\' and tran.testCases.testCaseID like " + testCaseId[j] + " and tran.samples.testbeds.server.ipv4Address like \'" + ip + "\'";
           Query query3 = session.createQuery(SQL_QUERY3);
           for(Iterator it3=query3.iterate();it3.hasNext();ctr++)
                {
                Object time = (Object) it3.next();
                transactionTime[0][j][ctr]=(Double) time;
                int precision = 100;
                transactionTime[0][j][ctr] = Math.floor(transactionTime[0][j][ctr]*precision+0.5)/precision;
                }
          }
  
  
  
          for(int j=0;j&lt;ctr2;j++){
              ctr3=0;
           String SQL_QUERY5 ="Select tran.transactionTime from Transactions tran where tran.samples.builds.buildMajorVersion like " + major + " and tran.samples.builds.buildMinorVersion like " + minor + " and tran.samples.baseline=1";
           Query query5 = session.createQuery(SQL_QUERY5);
           for(Iterator it5=query5.iterate();it5.hasNext();ctr3++)
                {
                Object time = (Object) it5.next();
                transactionTime[1][j][ctr3]=(Double) time;
                int precision = 100;
                transactionTime[1][j][ctr3] = Math.floor(transactionTime[1][j][ctr3]*precision+0.5)/precision;
                }
          }
  
  
  
  
  
   session.close();
        }
        catch(Exception e){
            System.out.println(e.getMessage());
        }
        finally{
  
        }
  
  
  
  
  
  
  
      req.setAttribute("major",major);
      req.setAttribute("minor",minor);
      req.setAttribute("date",date);
      req.setAttribute("ip",ip);
      req.setAttribute("testCaseName",testCaseName);
      req.setAttribute("transactionTime", transactionTime);
      req.setAttribute("activityName", activityName);
      req.setAttribute("sampleNumBase", ctr3);
      req.setAttribute("sampleNumRun", ctr);
        req.getRequestDispatcher("/WEB-INF/src/BaselineRawData.jsp").forward(req, res);  
   }
  </code></pre>
  
  <p>}</p>
  
  <p>Console output in Eclipse on First and successful run</p>
  
  <pre><code>Hibernate: 
      select
          testcases0_.activityName as col_0_0_,
          testcases0_.testCaseID as col_1_0_ 
      from
          TestCases testcases0_ 
      where
          testcases0_.testcaseName like 'Deploy 200 tunings on 10 devices with 0 tunings' Hibernate: 
      select
          transactio0_.transactionTime as col_0_0_ 
      from
          Transactions transactio0_ cross 
      join
          Samples samples1_ cross 
      join
          Builds builds2_ cross 
      join
          TestBeds testbeds7_ cross 
      join
          Machines server8_ 
      where
          transactio0_.sampleId=samples1_.sampleId 
          and samples1_.buildId=builds2_.buildId 
          and samples1_.testBedId=testbeds7_.testBedId 
          and testbeds7_.serverId=server8_.machineId 
          and (
              builds2_.buildMajorVersion like 4
          ) 
          and (
              builds2_.buildMinorVersion like 4434
          ) 
          and (
              samples1_.runDate like '2012-02-25'
          ) 
          and (
              transactio0_.testCaseId like 1
          ) 
          and (
              server8_.ipv4Address like '10.104.52.200'
          ) Hibernate: 
      select
          transactio0_.transactionTime as col_0_0_ 
      from
          Transactions transactio0_ cross 
      join
          Samples samples1_ cross 
      join
          Builds builds2_ cross 
      join
          TestBeds testbeds7_ cross 
      join
          Machines server8_ 
      where
          transactio0_.sampleId=samples1_.sampleId 
          and samples1_.buildId=builds2_.buildId 
          and samples1_.testBedId=testbeds7_.testBedId 
          and testbeds7_.serverId=server8_.machineId 
          and (
              builds2_.buildMajorVersion like 4
          ) 
          and (
              builds2_.buildMinorVersion like 4434
          ) 
          and (
              samples1_.runDate like '2012-02-25'
          ) 
          and (
              transactio0_.testCaseId like 2
          ) 
          and (
              server8_.ipv4Address like '10.104.52.200'
          ) Hibernate: 
      select
          transactio0_.transactionTime as col_0_0_ 
      from
          Transactions transactio0_ cross 
      join
          Samples samples1_ cross 
      join
          Builds builds2_ cross 
      join
          TestBeds testbeds7_ cross 
      join
          Machines server8_ 
      where
          transactio0_.sampleId=samples1_.sampleId 
          and samples1_.buildId=builds2_.buildId 
          and samples1_.testBedId=testbeds7_.testBedId 
          and testbeds7_.serverId=server8_.machineId 
          and (
              builds2_.buildMajorVersion like 4
          ) 
          and (
              builds2_.buildMinorVersion like 4434
          ) 
          and (
              samples1_.runDate like '2012-02-25'
          ) 
          and (
              transactio0_.testCaseId like 3
          ) 
          and (
              server8_.ipv4Address like '10.104.52.200'
          ) Hibernate: 
      select
          transactio0_.transactionTime as col_0_0_ 
      from
          Transactions transactio0_ cross 
      join
          Samples samples1_ cross 
      join
          Builds builds2_ cross 
      join
          TestBeds testbeds7_ cross 
      join
          Machines server8_ 
      where
          transactio0_.sampleId=samples1_.sampleId 
          and samples1_.buildId=builds2_.buildId 
          and samples1_.testBedId=testbeds7_.testBedId 
          and testbeds7_.serverId=server8_.machineId 
          and (
              builds2_.buildMajorVersion like 4
          ) 
          and (
              builds2_.buildMinorVersion like 4434
          ) 
          and (
              samples1_.runDate like '2012-02-25'
          ) 
          and (
              transactio0_.testCaseId like 4
          ) 
          and (
              server8_.ipv4Address like '10.104.52.200'
          ) Hibernate: 
      select
          transactio0_.transactionTime as col_0_0_ 
      from
          Transactions transactio0_ cross 
      join
          Samples samples1_ cross 
      join
          Builds builds2_ cross 
      join
          TestBeds testbeds7_ cross 
      join
          Machines server8_ 
      where
          transactio0_.sampleId=samples1_.sampleId 
          and samples1_.buildId=builds2_.buildId 
          and samples1_.testBedId=testbeds7_.testBedId 
          and testbeds7_.serverId=server8_.machineId 
          and (
              builds2_.buildMajorVersion like 4
          ) 
          and (
              builds2_.buildMinorVersion like 4434
          ) 
          and (
              samples1_.runDate like '2012-02-25'
          ) 
          and (
              transactio0_.testCaseId like 5
          ) 
          and (
              server8_.ipv4Address like '10.104.52.200'
          ) Hibernate: 
      select
          transactio0_.transactionTime as col_0_0_ 
      from
          Transactions transactio0_ cross 
      join
          Samples samples1_ cross 
      join
          Builds builds2_ cross 
      join
          TestBeds testbeds7_ cross 
      join
          Machines server8_ 
      where
          transactio0_.sampleId=samples1_.sampleId 
          and samples1_.buildId=builds2_.buildId 
          and samples1_.testBedId=testbeds7_.testBedId 
          and testbeds7_.serverId=server8_.machineId 
          and (
              builds2_.buildMajorVersion like 4
          ) 
          and (
              builds2_.buildMinorVersion like 4434
          ) 
          and (
              samples1_.runDate like '2012-02-25'
          ) 
          and (
              transactio0_.testCaseId like 6
          ) 
          and (
              server8_.ipv4Address like '10.104.52.200'
          ) Hibernate: 
      select
          transactio0_.transactionTime as col_0_0_ 
      from
          Transactions transactio0_ cross 
      join
          Samples samples1_ cross 
      join
          Builds builds2_ 
      where
          transactio0_.sampleId=samples1_.sampleId 
          and samples1_.buildId=builds2_.buildId 
          and (
              builds2_.buildMajorVersion like 4
          ) 
          and (
              builds2_.buildMinorVersion like 4434
          ) 
          and samples1_.baseline=1 10
  </code></pre>
  
  <p>Console output in Eclipse on Subsequent and unsuccessful runs</p>
  
  <pre><code>Hibernate: 
      select
          testcases0_.activityName as col_0_0_,
          testcases0_.testCaseID as col_1_0_ 
      from
          TestCases testcases0_ 
      where
          testcases0_.testcaseName like 'Deploy 200 tunings on 10 devices with 0 tunings'
  10
  </code></pre>