commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Csaba Győrffy <csab...@gmail.com>
Subject Re: [Jelly] XML ForEach tag hangs
Date Sat, 30 Apr 2011 20:35:41 GMT
Hi Paul, please see my answers below.

> Can you try:
>
> <x:parse var="doc">
>  <a>
>   <b v="1"/>
>   <b v="2"/>
>   <b v="3"/>
>  </a>
> </x:parse>
>
> <x:set select="$doc/a/b" var="x"/>
>
> x is ${x} of class ${x.getClass()} and of size ${size(x)}
>
>
> does it also spin 100%?
>
Yes, it is:/

> Also, could you please try to see the origin a jaxen class? (e.g. org.jaxen.Context ?)
Origin of org.jaxen.Context is: bundleresource://106/org/jaxen/Context.class
I'm afraid this is not in the form you'd like to see...

> What about the version of the jelly xml tag? e.g org.apache.commons.jelly.tags.xml.SetTag
?
SetTag is in commons-jelly-tags-xml-1.1.jar. Is this the version
you're interested in?

Many thanks, Paul!

Csaba

2011/4/30 Paul Libbrecht <paul@hoplahup.net>:
> Csaba,
>
> this sounds real dark...
>
> Can you try:
>
> <x:parse var="doc">
>  <a>
>   <b v="1"/>
>   <b v="2"/>
>   <b v="3"/>
>  </a>
> </x:parse>
>
> <x:set select="$doc/a/b" var="x"/>
>
> x is ${x} of class ${x.getClass()} and of size ${size(x)}
>
>
> does it also spin 100%?
>
> Also, could you please try to see the origin a jaxen class? (e.g. org.jaxen.Context ?)
> What about the version of the jelly xml tag? e.g org.apache.commons.jelly.tags.xml.SetTag
?
>
> thanks in advance
>
> paul
>
>
>
> Le 30 avr. 2011 à 20:16, Csaba Győrffy a écrit :
>
>> If I'm running Paul's script from a standard Java app, DefaultHandler
>> gets loaded from an xml.jar different than the one I mentioned
>> earlier. So, I tried to replace WebSphere's version with the "good"
>> version of xml.jar, but the result is the same: processing of a script
>> with foreach tag hangs, 100% CPU utilization.
>>
>> Origin of DefaultDocument class is the same, no matter if using app
>> server or not. Do you have any idea why it's not working inside the
>> app server?
>>
>> Thanks.
>>
>> Csaba
>>
>> 2011/4/30 Csaba Győrffy <csabeee@gmail.com>:
>>> DefaultDocument comes from a Jelly library, while DefaultHandler is
>>> from a WebSphere jar:
>>>
>>> class org.dom4j.tree.DefaultDocument loaded from
>>> wsjar:file:/C:/Documents and
>>> Settings/usr/Desktop/commons-jelly-1.0/lib/dom4j-1.5.2.jar!/org/dom4j/tree/DefaultDocument.class
>>> class org.xml.sax.helpers.DefaultHandler loaded from
>>> jar:file:/C:/Program%20Files/ibm/WebSphere/AppServer1/java/jre/lib/xml.jar!/org/xml/sax/helpers/DefaultHandler.class
>>>
>>> 2011/4/30 Paul Libbrecht <paul@hoplahup.net>:
>>>> Here's a little script that will tell you the URL of classes of interest:
>>>>
>>>> <j:jelly trim="false" xmlns:j="jelly:core">
>>>>
>>>>  <j:new var="x" className="org.dom4j.tree.DefaultDocument"/>
>>>>  class ${x.getClass()} loaded from ${x.getClass().getResource('DefaultDocument.class')}
>>>>
>>>>  <j:new var="x" className="org.xml.sax.helpers.DefaultHandler"/>
>>>>  class ${x.getClass()} loaded from ${x.getClass().getResource('DefaultHandler.class')}
>>>>
>>>> </j:jelly>
>>>>
>>>> With some chances, your URLs are of the form file:///xxxxx.jar!a/b/c/d/e.class
>>>> If you have a special protocol-handler, it may be harder.
>>>>
>>>> paul
>>>>
>>>>
>>>> Le 30 avr. 2011 à 15:40, Csaba Győrffy a écrit :
>>>>
>>>>> Hi,
>>>>>
>>>>> thank you very much for your responses. I'm already trying to
>>>>> determine the version of xml parser without much success yet.
>>>>>
>>>>> Csaba
>>>>>
>>>>> 2011/4/30 Martin Gainty <mgainty@hotmail.com>:
>>>>>>
>>>>>> trying not to point fingers (at least until we have ALL the facts)
>>>>>> a similar incident happened on another apache project and an older
version of xml-parser was at fault
>>>>>> trying to determine the implemented xml-parser and the version in
this case would *at least* isolate the problem to that parser
>>>>>>
>>>>>> thanks paul!
>>>>>> Martin
>>>>>> ______________________________________________
>>>>>> Jogi és Bizalmassági kinyilatkoztatás
>>>>>>  Ez az
>>>>>> üzenet bizalmas.  Ha nem ön az akinek szánva volt, akkor kérjük,
hogy
>>>>>> jelentse azt nekünk vissza. Semmiféle továbbítása vagy másolatának
>>>>>> készítése nem megengedett.  Ez az üzenet csak ismeret cserét
szolgál és
>>>>>> semmiféle jogi alkalmazhatósága sincs.  Mivel az electronikus
üzenetek
>>>>>> könnyen megváltoztathatóak, ezért minket semmi felelöség nem
terhelhet
>>>>>> ezen üzenet tartalma miatt.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>> Subject: Re: [Jelly] XML ForEach tag hangs
>>>>>>> From: paul@hoplahup.net
>>>>>>> Date: Sat, 30 Apr 2011 09:44:27 +0200
>>>>>>> To: user@commons.apache.org
>>>>>>>
>>>>>>> Csaba,
>>>>>>>
>>>>>>> As Martin has suggested, the underlying XML parser could be guilty.
>>>>>>> I would rather suspect an overly old dom4j or jaxen (that would
be in the container's classpath hence overriding the webapp's).
>>>>>>>
>>>>>>> Are you able to find their version?
>>>>>>> Otherwise I can dig out a form of jwhich in jelly.
>>>>>>>
>>>>>>> paul
>>>>>>>
>>>>>>>
>>>>>>> Le 30 avr. 2011 à 03:02, Csaba Győrffy a écrit :
>>>>>>>
>>>>>>>> Hello there!
>>>>>>>>
>>>>>>>> I'm trying to use the ForEach tag in Jelly's XML tag library.
The
>>>>>>>> following script works fine in a standard Java console application:
>>>>>>>>
>>>>>>>> <x:parse var="doc">
>>>>>>>>  <a>
>>>>>>>>    <b v="1"/>
>>>>>>>>    <b v="2"/>
>>>>>>>>    <b v="3"/>
>>>>>>>>  </a>
>>>>>>>> </x:parse>
>>>>>>>>
>>>>>>>> <x:forEach select="$doc/a/b" var="x">
>>>>>>>>  ...
>>>>>>>> </x:forEach>
>>>>>>>>
>>>>>>>> However, if using Jelly on an application server, from inside
an EJB
>>>>>>>> container (session bean), running the script above hangs,
and 100% CPU
>>>>>>>> utilisation comes. I realized while debugging that NodeComparator
>>>>>>>> class' getDepth method gets into an infinite loop and never
returns.
>>>>>>>>
>>>>>>>> If I remove two "b" elements from the xml fragment above
(so only one
>>>>>>>> remains), it works fine. It also works if I change the second
part of
>>>>>>>> the above script to the following:
>>>>>>>>
>>>>>>>> <x:forEach select="$doc/a">
>>>>>>>>  <x:forEach select="b">
>>>>>>>>    ...
>>>>>>>>  </x:forEach>
>>>>>>>> </x:forEach>
>>>>>>>>
>>>>>>>> Does anyone have any idea why is that happening? Any help
is much appreciated.
>>>>>>>>
>>>>>>>> Thank you:
>>>>>>>> Csaba
>>>>>>>>
>>>>>>>> ---------------------------------------------------------------------
>>>>>>>> To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
>>>>>>>> For additional commands, e-mail: user-help@commons.apache.org
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> ---------------------------------------------------------------------
>>>>>>> To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
>>>>>>> For additional commands, e-mail: user-help@commons.apache.org
>>>>>>>
>>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
>>>>> For additional commands, e-mail: user-help@commons.apache.org
>>>>>
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
>>>> For additional commands, e-mail: user-help@commons.apache.org
>>>>
>>>>
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
>> For additional commands, e-mail: user-help@commons.apache.org
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
> For additional commands, e-mail: user-help@commons.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
For additional commands, e-mail: user-help@commons.apache.org


Mime
View raw message