Hi Scott,

Voil� the Test Case (it's a stripped-down version of
my test class...)


/**
 * Created on 12-set-2002
 * $Id$
 *
 * To change this generated comment edit the template variable "filecomment":
 * Window>Preferences>Java>Templates.
 */
package it.trento.trytorque;

/**
 * @author $Author$
 * @version $Revision$ $Date$
 *
 */
import java.io.InputStreamReader;
import java.util.*;


import org.apache.torque.Torque;

import org.apache.torque.util.BasePeer;
import org.apache.torque.util.Criteria;
import org.apache.torque.util.LargeSelect;
import com.workingdogs.village.Record;


//My om, you can put here your own ...
import it.trento.comune.anagrafe.om.*;

public class Prova {
  public static void main(String[] args) {
    try {
      /*
       * Initializing Torque
       */
      Torque.init("Torque.properties");

      LargeSelect ls = null;

      Criteria c = new Criteria();

      //Retrieving only 2  columns  ...

      c.addSelectColumn(CITIZENPeer.CITIZEN_MATR);
      c.addSelectColumn(CITIZENPeer.CITIZEN_NAME);

      ls =
        new LargeSelect(
          c,
          10,
          1); //memoryLimit == pageSize


      //Doesn't works!!!
      //ls.setMemoryPageLimit(1);


      java.io.BufferedReader br =
        new java.io.BufferedReader(new InputStreamReader(System.in));

      int nPage = 0;
      String cmd = null;
      boolean isEnd = false;

      while (!isEnd) {
        System.out.println("<- p previous |e : end| n -> next ");
        cmd = br.readLine();

        if (cmd.equals("n")) {
          if (ls.getNextResultsAvailable()) {
            nPage++;
            System.out.println(
              "=============\tPAGE " + nPage + "\t===============");

            printPage(ls.getNextResults(), ls.getFirstRecordNoForPage());
          }
        }

        else
          if (cmd.equals("p")) {
            if (ls.getPreviousResultsAvailable()) {
              nPage--;
              System.out.println(
                "=============\tPAGE " + nPage + "\t===============");
              printPage(ls.getPreviousResults(), ls.getFirstRecordNoForPage());
            }
          }


        isEnd = (cmd.equals("e"));
      }

    }
    catch (Exception e) {
      e.printStackTrace();
    }
  }


  private static void printPage(List recordList, int n) throws Exception
{
    Iterator i = recordList.iterator();
    while (i.hasNext()) {

      Object obj = i.next();
      if (obj instanceof Record){
          System.out.println(
            n++
              + ") "
              + ((Record) obj).getValue("CITIZEN_MATR")
              + " "
              + ((Record) obj).getValue("CITIZEN_NAME"));

      }
      System.out.println();
  }

}

>-- Messaggio Originale --
>Reply-To: "Turbine Torque Developers List" <[EMAIL PROTECTED]>
>Date: Mon, 07 Oct 2002 19:30:22 +1000
>Subject: Re: LargeSelect bug?
>From: Scott Eade <[EMAIL PROTECTED]>
>To: Turbine Torque Developers List <[EMAIL PROTECTED]>
>
>
>> From: [EMAIL PROTECTED]
>>
>> I think there is a bug in class LargeSelect.
>> result set pagination cycles into the first memoryLimit block.
>> This is evident choosing memoryPageLimit=1 in LargeSelect constructor;
>> (by the way, method setMemoryPageLimit() does not works); in this
>> case, the page returned is alway the first.
>> In mehod getResults(int start, int size), fromIndex and toIndex
>> variables indicates results List portion to return as a page.
>> fromIndex is set to:
>> fromIndex = start - blockBegin; when block size is equal to
>> page size (memoryLimit == pageSize), fromIndex is always 0.
>> The page is always the same.
>> This would be correct if results List wolud contain ONLY block
>> results, but this is not true; results List contains all query
>> results, including current block.
>
>I will look into these when I get a free moment.  It would help greatly
if
>you could provide some additional test cases that illustrate the problems
>and raise a defect issue in Scarab.
>
>Cheers,
>
>Scott
>--
>Scott Eade
>Backstage Technologies Pty. Ltd.
>http://www.backstagetech.com.au
>
>
>
>--
>To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
>For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
>


__________________________________________________________________
Tiscali ADSL, l'offerta su misura per te a partire da 24,95 euro al mese!
Scopri la tua adsl ideale con il TEST ON LINE
http://point.tiscali.it/adsl/




--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to