stackoverflow due to recursion

"Matthias L. Jugel" <[email protected]>
Newsgroups gmane.comp.jakarta.oro.devel
Message-ID <[email protected]>
Hello Daniel,

while working on our project I found the following problem which
might either be my stupidity or there's a bug in oro.

consider the following expression which matches text lists:

^[[:space:]]*([- 
*][[:space:]]+|[iIaA1ghHkKj]\\.[[:space:]]+)(\r?\n[[:space:]]*(?:([- 
*][[:space:]]+)|([iIaA1ghHkKj]\\.[[:space:]]+))|.)*$

We use the Perl5Matcher etc. and if you want to see the source it's  
here:
http://snipsnap.org/. The Idea for the last part with to match over end  
of a line
is something I got from the old Friedl book. Strangely a single change  
by using |.*
instead of |. at the end of the expression works. Maybe you know what  
happens.

Now let's get to the source:
I get a nice recursion appended below when parsing it.

-- SNIP --
[SnipSnap] 0.3

1 Changes since 0.2.7

- Added feature: Sky and Oranges themes
- Added feature: NullCodeFilter, \{code:none}\ will now display the  
content  without colorization, useful for e.g. pre formatted texts like  
shell examples
- Added feature: UserCountMacro displays number of registered users
- Added feature: SnipCountMacro displays number of snips (all)
- Added feature: TypographyFilter will replace "..." with ellepsis  
entity
- Added feature: \{api}\ now reads from conf/apidocs.txt so \{api}\ can  
point to other online api documentation
- Added feature: \{backlinks}\ macro lists backlinks, e.g.  
\{backlinks:10}\
- Added feature: \{sniplinks}\ macro lists sniplinks, e.g.  
\{sniplinks:4}\
- Added feature: Introduced themes for SnipSnap, using a more Weblog  
like theme similiar to MovableType
- Added feature: Interwiki (e.g. [Wiki@MoinMoin]) reads from a standard  
intermap file in conf/intermap.txt
- Added Feature: \{isbn}\ macro now reads books services from  
conf/bookservices.txt
- Added feature: import/export from web interface
- Added Feature: \{image}\ tag allows positioned and floating images
- Added feature: bullet, square, numerated (numbers, alpha, greek,  
japanese)
- Added feature: Introduced portlet snip snipsnap-portlet-<number>
- Added feature: VerticalListFormatter introduced
- Added feature: \{logins}\ macro
- Added feature: \{calendar}\ macro
- Fixed bug: correct context path in cookies
- Fixed bug: escape '\-' and '\*' within code macro
- Fixed bug: first start on a different port than 8668
- Fixed bug: list detection
- Fixed a lot of smaller bugs
- Fixed bug: SnipSnap now uses <dc:title> in RSS and DC.Title in HTML

- Changed to newer versions of McKoi and ORO Regex
- We use RSS/XHTML/CSS buttons from http://www.antipixel.com and icons  
from chris http://www.langreiter.com , thanks.
- Required JAR libararies are now included in snipsnap-template.war

- re-validated XHTML 1.0
- Changed logo/validation images
- Introduced snipsnap-copyright snip for page bottom
- Changed semantics of \{image}\ macro, expect images as image-name-id
- Changed macro interface: User Writer instead of StringBuffer and  
Refactoring
   Introduce Parameter Object
- Added snipsnap-help to default snips (contains text formatting)
- Introduced: \{list-of-macros}\
- Replaced \{snips-by-recent}\ by \{recent-changes}\ macro
- Defaults snips are now loaded from conf/snipsnap.snip
- Changed feature: Post blog prepends to the post
- Changed <s:snip> JSTL tag
- Switched to DIV from TABLE layout
- Worked on Accessibility

__Download__:
- [snipsnap-download]
-- SNIP --

java.lang.StackOverflowError
	at org.apache.oro.text.regex.OpCode._getNext(OpCode.java:203)
	at  
org.apache.oro.text.regex.Perl5Matcher.__match(Perl5Matcher.java:877)
	at  
org.apache.oro.text.regex.Perl5Matcher.__match(Perl5Matcher.java:1212)
	at  
org.apache.oro.text.regex.Perl5Matcher.__match(Perl5Matcher.java:1184)
	at  
org.apache.oro.text.regex.Perl5Matcher.__match(Perl5Matcher.java:1212)
	at  
org.apache.oro.text.regex.Perl5Matcher.__match(Perl5Matcher.java:1184)
	at  
org.apache.oro.text.regex.Perl5Matcher.__match(Perl5Matcher.java:1212)
	at  
org.apache.oro.text.regex.Perl5Matcher.__match(Perl5Matcher.java:1184)
	at  
org.apache.oro.text.regex.Perl5Matcher.__match(Perl5Matcher.java:1212)
	at  
org.apache.oro.text.regex.Perl5Matcher.__match(Perl5Matcher.java:1184)
     ...


Leo.
--
Matthias L. Jugel -- [email protected]
Telephone +49 30 6392 1822, Fax +49 30 6392 1805
There are two kinds of fool, on says "This is old and there-
fore good", and one says "This is new and therefore better".
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.