[ https://issues.apache.org/jira/browse/LANG-686?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13071533#comment-13071533 ]
Henri Yandell commented on LANG-686: ------------------------------------ For this regexp; and I suspect it's the worst, yet vaguely sane, case; the TTL would have needed to have been text.length() - 1. For large text that's going to offer no protection against StackOverflowError. Options would seem to be: 1) Leave as is, improve IllegalStateException message (and update in javadoc which says IllegalArgumentException). 2) Stop protecting against StackOverflowError. 3) Increase the size by a marginal, yet arbitrary, amount. I'm going to continue to go with #1. > StringUtils.replaceEachRepeatedly("aaa", new String[]{"aa"}, new > String[]{"aXa"}); throw an exception > ----------------------------------------------------------------------------------------------------- > > Key: LANG-686 > URL: https://issues.apache.org/jira/browse/LANG-686 > Project: Commons Lang > Issue Type: Bug > Components: lang.* > Affects Versions: 2.6 > Environment: jdk 1.6.24, windows xp pro sp3, eclipse helios > Reporter: qed > Fix For: 3.0.1 > > > After executing line > StringUtils.replaceEachRepeatedly("aaa", new String[]{"aa"}, new > String[]{"aXa"}); > exception is thrown: > Exception in thread "main" java.lang.IllegalStateException: TimeToLive of -1 > is less than 0: aXaXa > at > org.apache.commons.lang.StringUtils.replaceEach(StringUtils.java:3986) > at > org.apache.commons.lang.StringUtils.replaceEach(StringUtils.java:4099) > at > org.apache.commons.lang.StringUtils.replaceEach(StringUtils.java:4099) > at > org.apache.commons.lang.StringUtils.replaceEachRepeatedly(StringUtils.java:3920) -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira