我们正在使用带有TFS的CruiseControl 2.8.4。每当我们将一个新项目(即TFS分支)添加到config.xml并重新启动CruiseControl时,我们会得到一个如下所示的StackOverflowError:
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中项目的第一个版本,这与它有关,但我不确定为什么。我想我已经完成了这个问题的大部分工作,但我现在陷入困境。
我该如何解决这个问题?
答案 0 :(得分:0)
不是最好的答案,而是有效的答案。我评论了"修改集"元素并重新启动CruiseControl。它似乎正在建立我的新项目。构建完成后,我将取消注释该元素。 如果有人有,我仍然想要一个更好的答案。