Мы используем CruiseControl 2.8.4 с TFS. Каждый раз в то время, когда мы добавим новый проект (т.е. филиал TFS) в config.xml и перезапустите CruiseControl, мы получаем StackOverflowError, который выглядит следующим образом:StackOverflowError в CruiseControl с java.util.regex.Pattern
2015-04-08 16:52:14,755 [Thread-57] ERROR ThreadQueue - uncaught exception in Thread-57
java.lang.StackOverflowError
at java.util.regex.Pattern$Single.isSatisfiedBy(Pattern.java:3742)
at java.util.regex.Pattern$BmpCharProperty.match(Pattern.java:3715)
at java.util.regex.Pattern$GroupHead.match(Pattern.java:4556)
at java.util.regex.Pattern$Loop.match(Pattern.java:4683)
at java.util.regex.Pattern$GroupTail.match(Pattern.java:4615)
at java.util.regex.Pattern$Curly.match0(Pattern.java:4170)
at java.util.regex.Pattern$Curly.match(Pattern.java:4132)
at java.util.regex.Pattern$BmpCharProperty.match(Pattern.java:3715)
at java.util.regex.Pattern$GroupHead.match(Pattern.java:4556)
at java.util.regex.Pattern$Loop.match(Pattern.java:4683)
at java.util.regex.Pattern$GroupTail.match(Pattern.java:4615)
Я загрузил исходный код CruiseControl и обнаружили, что существует относительно небольшое количество мест, где используется класс Pattern. Для нас это класс под названием TeamFoundationServer (есть также аналогичные классы для Git и Mercurial). Похоже, что ошибка происходит, когда класс пытается принести модификации с момента последней сборки путем вызова клиента командной строки, как это:
tf.exe history "itemspec" /noprompt /server:http://mytfsserver:8080/tfs/ /recursive /format:detailed /version:D2015-04-08T16:45:00Z~D2015-04-08T23:59:59Z
Я предполагаю, что так как это первая сборка проекта в CruiseControl, что-то с этим связано, но я не уверен, почему. Я думаю, что я получил большую часть этой проблемы, но застрял на этом.
Как мне обойти это?