【问题标题】:StackOverflowError in CruiseControl with java.util.regex.PatternCruiseControl 中的 StackOverflowError 与 java.util.regex.Pattern
【发布时间】: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


    【解决方案1】:

    不是最好的答案,而是一个有效的答案。我注释掉了“修改集”元素并重新启动了 CruiseControl。它现在似乎正在构建我的新项目。构建完成后,我将取消注释该元素。 如果有人有,我仍然想要一个更好的答案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-21
      • 2018-11-29
      • 2010-09-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多