qexo-general
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qexo-general] Exception while using Extensions with 1.7beta2


From: Seshukumar Venkata Adiraju
Subject: [Qexo-general] Exception while using Extensions with 1.7beta2
Date: Mon, 19 May 2003 12:07:48 +0530

I needed to implement distinct value of a list of names, for which I'm
using the 1.7beta2 extensions feature. I'm getting a
StackOverflowException

Please find details below,

I wrote a Util class as below
************************************************************************
**********************
public class XQueryExtensionsUtil 
{
        public static List getDistinctNames(gnu.mapping.Values vals)
        {
                System.out.println("vals: class:
"+vals.getClass().getName());
                TreeSet ts = new TreeSet();
                Object [] oArr = vals.toArray();
                System.out.println("oArr.length: "+oArr.length);
                for (int i=0;i<oArr.length;i++ )
                {
                        Object obj = oArr[i];
                        String str = obj.toString();
                        System.out.println("Doint: "+i+"  Adding:
"+str);
                        ts.add(str);
                }
                System.out.println("Done Returning");
                return new Vector(ts);
        }
}
************************************************************************
**********************


In the xQuery I have the following code
************************************************************************
*******************
declare namespace ExtUtil =
"uci.Influx.reportingtool.XQueryExtensionsUtil"

define function getDistinctNames($names)
{
  let $distnames := list-items(ExtUtil:getDistinctNames($names))
  return $distnames
}


define function getNames($books)
{
        for $book in $books/book
        let $name := string($book/@id)
        return  $name
}

<books>
{
        let $books := document("books.xml")/books
        let $names := getNames($books)
        let $distnames := getDistinctNames($names)
        for $name in $distnames
        return
        <p>{ $name}</p>
}
</books>
************************************************************************
*******************

In the books.xml is as below
************************************************************************
*******************
<books>
<book id="book1"/>
<book id="book2"/>
<book id="book3"/>
<!-- repeating name -->
<book id="book2"/>
</books>

************************************************************************
*******************
The stack Trace is as below,

Starting log at: Mon May 19 11:34:51 GMT+05:30 2003
java.lang.StackOverflowError
        at java.lang.reflect.Field.doSecurityCheck(Field.java:804)
        at java.lang.reflect.Field.getFieldAccessor(Field.java:758)
        at java.lang.reflect.Field.get(Field.java:228)
        at
gnu.kawa.reflect.ClassMemberConstraint.get(ClassMemberConstraint.java:80
)
        at gnu.mapping.Symbol.get(Symbol.java:61)
        at gnu.expr.Interpreter.getSymbolProcedure(Interpreter.java:651)
        at lambda.getDistinctNames$T(Unknown Source)
        at lambda.apply(Unknown Source)
        at gnu.mapping.CpsMethodProc.apply(CpsMethodProc.java:49)
        at gnu.mapping.CallContext.runUntilDone(CallContext.java:258)
        at gnu.mapping.CallContext.runUntilValue(CallContext.java:272)
        at gnu.mapping.CpsProcedure.applyV(CpsProcedure.java:49)
        at gnu.mapping.CpsProcedure.applyN(CpsProcedure.java:25)
        at gnu.mapping.ProcedureN.apply1(ProcedureN.java:29)
        at lambda.getDistinctNames$T(Unknown Source)
        at lambda.apply(Unknown Source)
        .............................................................
        ............................................................
        ..........................................................
        at gnu.mapping.CpsMethodProc.apply(CpsMethodProc.java:49)
        at gnu.mapping.CallContext.runUntilDone(CallContext.java:258)
        at gnu.mapping.CallContext.runUntilValue(CallContext.java:272)
        at gnu.mapping.CpsProcedure.applyV(CpsProcedure.java:49)
        at gnu.mapping.CpsProcedure.applyN(CpsProcedure.java:25)
        at gnu.mapping.ProcedureN.apply1(ProcedureN.java:29)
        at lambda.getDistinctNames$T(Unknown Source)
        at lambda.apply(Unknown Source)

Seshu Kumar Adiraju
SETLabs, Infosys Technologies Limited
 
   In all chaos there is a cosmos,           
   in all disorder a secret order."             
                    --  Carl Jung                     
   

-----Original Message-----
From: Per Bothner [mailto:address@hidden 
Sent: Saturday, May 17, 2003 6:45 AM
To: Seshukumar Venkata Adiraju
Cc: address@hidden
Subject: Re: [Qexo-general] string function in 1.7 beta1

Seshukumar Venkata Adiraju wrote:
> now (with 1.7)
> string($book/@id)    ==>   ""
> i.e. empty
>
> Is this a bug?

Well, the following does work in the CVS version:

$ java kawa.repl --xquery
(:  1:) let $book := <book id="book1"/>
(: l2:) return string($book/@id)
book1
(:  3:)

I'm aiming for the second (and last) beta this wekend.
-- 
        --Per Bothner
address@hidden   http://per.bothner.com/







reply via email to

[Prev in Thread] Current Thread [Next in Thread]