【发布时间】:2015-04-09 00:07:33
【问题描述】:
我们正在使用带有 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 中项目的第一次构建,这与它有关,但我不知道为什么。我想我已经解决了这个问题的大部分,但我卡在了这一点上。
我该如何解决这个问题?
【问题讨论】:
标签: tfs cruisecontrol