I need to be able to build a junit test case that reproduces the problem behaviour. Attached is a patch to LargeSelectTest that would seem to indicate that there is no problem. Can you please give me some further direction as to how to reproduce the problem.
Thanks, Scott -- Scott Eade Backstage Technologies Pty. Ltd. http://www.backstagetech.com.au > From: [EMAIL PROTECTED] > > 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
LargeSelectTest-diff.txt
Description: Binary data
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
