>I am using Oro 2.0.1. I get a StackOverflowError and it looks to me like 
>the problem that was described in the Thread "Stack Overflow Problem" 
...
>I tried several changes for the regular expressions but I always got the 
>following StackOverflowError if the input String is quite long (see 
>attached test program):

I ran your test program with no problems using jakarta-oro 2.0.8 and
JDK's 1.2, 1.3, and 1.4 for Linux.  I then downloaded the 2.0.1
distribution and tried the same thing with that with the same result.
What Java runtime are you using and on what OS?  You have a few
of options if the problem can't be reproduced.  One is to increase
your stack size.  Another is to try a different JVM or fiddle with
options like JIT optimizations.  Yet another is to rewrite the
regular expression to the more compact and efficient:
  String regexp_pattern = "{(\\d+):([^}]*)(?!-})";
Basically, you never want to use the form ((foo)*) when (foo*) will do.
I'm not entirely sure of your requirements, but if the input will
never be empty (always at least be a "-" before ending "}"), then
+ instead of * is preferable:
  String regexp_pattern = "{(\\d+):([^}]+)(?!-})";

Hope that helps.

daniel



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to