Re: Crash while retrieving Results from a Reportquery and query.setEndAtIndex()
Antonio Gallardo schrieb: Hello, > Line 318): > > java.util.NoSuchElementException: Could not obtain next object: > > inner > > hasNext was false > > > 317: while ( it.hasNext() ) { > > 318: var o = it.next(); // crashes here > > 319: suggestions.add(o); > > 320: } > > Thanks. This is inside Cocoon Flow. Seems that OJB has nothing to do > in this case. Please send more code of this Javascript. I would > recommend to move this business code to a java code and call it from > your Flow function. There are some small incompatibilities while > manipulating Java object inside Javascript. > > I have interest in know how is declared "it". Which kind of object it > is. Same Thing happens when i use it in a java Class. Javascript is just easier to Debug for me, because i'm not using a java IDE. My workaround is to put a try/catch block into the while-loop. My Java-Code: import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import java.io.*; import java.text.*; import java.util.*; import org.apache.ojb.broker.query.*; ... Criteria crit = new Criteria(); crit.addEqualToField("logs.menuLinkId","id"); crit.addEqualToField("stylesheet.id","stylesheetId"); ReportQueryByCriteria q = new ReportQueryByCriteria(MenuLink.class,crit); String[] attributes = new String[4]; attributes[0] = "logs.menuLinkId"; attributes[1] = "count(*)"; attributes[2] = "name"; attributes[3] = "stylesheet.type"; q.setAttributes(attributes); q.addGroupBy("logs.menuLinkId"); q.addGroupBy("name"); q.addGroupBy("stylesheet.type"); q.addOrderByDescending("count(*)"); // top 10 q.setEndAtIndex(10); ArrayList menulinks = new ArrayList(); dao.begin(); Iterator it = dao.getReport (q); while ( it != null && it.hasNext() ) { // Catch Exception try { Object[] o = (Object[]) it.next(); menulinks.add(o); } catch (Exception e) { //nothing } } dao.commit(); Christoph pgp2U6j5MIt9Y.pgp Description: PGP signature
Re: Crash while retrieving Results from a Reportquery and query.setEndAtIndex()
On Lun, 14 de Febrero de 2005, 14:23, Christoph Hermann dijo: > Jakob Braeuchi schrieb: > > Hello, > >> what do you mean by 'crash' ? could you please post the exception. > > hmm of course, sorry that i forgot this :/ > > The Exception is: > > org.apache.cocoon.ProcessingException: Failed to execute pipeline.: java.lang.RuntimeException: java.lang.RuntimeException: > org.apache.avalon.framework.CascadingRuntimeException: > "file:/usr/local/jakarta-tomcat-4.1.31/webapps/cocoon_2.1.6/samples/guschtel/nymphoon/flow/authentication.js", line 318: uncaught JavaScript exception: at displayMenu > (file:/usr/local/jakarta-tomcat-4.1.31/webapps/cocoon_2.1.6/samples/guschtel/nymphoon/flow/authentication.js, Line 318): > > java.util.NoSuchElementException: Could not obtain next object: inner hasNext was false > > 317: while ( it.hasNext() ) { > 318: var o = it.next(); // crashes here > 319: suggestions.add(o); > 320: } Thanks. This is inside Cocoon Flow. Seems that OJB has nothing to do in this case. Please send more code of this Javascript. I would recommend to move this business code to a java code and call it from your Flow function. There are some small incompatibilities while manipulating Java object inside Javascript. I have interest in know how is declared "it". Which kind of object it is. Best Regards, Antonio Gallardo - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Crash while retrieving Results from a Reportquery and query.setEndAtIndex()
Jakob Braeuchi schrieb: Hello, > what do you mean by 'crash' ? could you please post the exception. hmm of course, sorry that i forgot this :/ The Exception is: org.apache.cocoon.ProcessingException: Failed to execute pipeline.: java.lang.RuntimeException: java.lang.RuntimeException: org.apache.avalon.framework.CascadingRuntimeException: "file:/usr/local/jakarta-tomcat-4.1.31/webapps/cocoon_2.1.6/samples/guschtel/nymphoon/flow/authentication.js", line 318: uncaught JavaScript exception: at displayMenu (file:/usr/local/jakarta-tomcat-4.1.31/webapps/cocoon_2.1.6/samples/guschtel/nymphoon/flow/authentication.js, Line 318): java.util.NoSuchElementException: Could not obtain next object: inner hasNext was false 317: while ( it.hasNext() ) { 318: var o = it.next(); // crashes here 319: suggestions.add(o); 320: } Christoph pgpOsS4vqFqk2.pgp Description: PGP signature
Re: Crash while retrieving Results from a Reportquery and query.setEndAtIndex()
hi christoph, what do you mean by 'crash' ? could you please post the exception. jakob Christoph Hermann schrieb: Hello, i'm having Problems when retrieving Results with a Reportquery. I set the max number of results to 10 and on the 9th row my loop crashes (because in the database there are only 8 rows). I would expect ojb to only return 8 Rows. Code snippet: var crit = new Packages.org.apache.ojb.broker.query.Criteria(); crit.addEqualToField("logs.menuLinkId","id"); var q = new Packages.org.apache.ojb.broker.query.ReportQueryByCriteria(Packages.nymphoon.MenuLink, crit); var attributes = new Array(3); attributes[0] = "logs.menuLinkId"; attributes[1] = "count(*)"; attributes[2] = "name"; q.setAttributes(attributes); q.addGroupBy("logs.menuLinkId"); q.addGroupBy("name"); q.addOrderByDescending("count(*)"); q.setEndAtIndex(10); dao.begin(); var it = dao.getReport (q); while ( it.hasNext() ) { var o = it.next(); // crash suggestions.add(o); } dao.commit(); The while loop crashes after the 8th Element. An Iterator of Type broker.accesslayer.PagingIterator (it) is instanciated correctly. I thought that if there are only 8 Rows it.hasNext() would return false? I could add a try/catch in the inner loop, but i don't think this is a good solution. Can anyone help me with this? The loop works fine when i set "q.setEndAtIndex(5);" i.e. Christoph - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Crash while retrieving Results from a Reportquery and query.setEndAtIndex()
Hello, i'm having Problems when retrieving Results with a Reportquery. I set the max number of results to 10 and on the 9th row my loop crashes (because in the database there are only 8 rows). I would expect ojb to only return 8 Rows. Code snippet: var crit = new Packages.org.apache.ojb.broker.query.Criteria(); crit.addEqualToField("logs.menuLinkId","id"); var q = new Packages.org.apache.ojb.broker.query.ReportQueryByCriteria(Packages.nymphoon.MenuLink, crit); var attributes = new Array(3); attributes[0] = "logs.menuLinkId"; attributes[1] = "count(*)"; attributes[2] = "name"; q.setAttributes(attributes); q.addGroupBy("logs.menuLinkId"); q.addGroupBy("name"); q.addOrderByDescending("count(*)"); q.setEndAtIndex(10); dao.begin(); var it = dao.getReport (q); while ( it.hasNext() ) { var o = it.next(); // crash suggestions.add(o); } dao.commit(); The while loop crashes after the 8th Element. An Iterator of Type broker.accesslayer.PagingIterator (it) is instanciated correctly. I thought that if there are only 8 Rows it.hasNext() would return false? I could add a try/catch in the inner loop, but i don't think this is a good solution. Can anyone help me with this? The loop works fine when i set "q.setEndAtIndex(5);" i.e. Christoph pgpcucCVfioa7.pgp Description: PGP signature