You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-user@db.apache.org by Antonio Gallardo <ag...@agssa.net> on 2005/02/15 03:50:28 UTC

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: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org


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

Posted by Christoph Hermann <ch...@tu-clausthal.de>.
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