Re: Crash while retrieving Results from a Reportquery and query.setEndAtIndex()

2005-02-14 Thread Christoph Hermann
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()

2005-02-14 Thread Antonio Gallardo
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()

2005-02-14 Thread Christoph Hermann
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()

2005-02-14 Thread Jakob Braeuchi
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()

2005-02-14 Thread Christoph Hermann
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