2015-04-09 55 views
0

Nous utilisons CruiseControl 2.8.4 avec TFS. Chaque fois que dans un certain temps lorsque nous ajoutons un nouveau projet (une branche TFS) au config.xml et redémarrez CruiseControl, nous obtenons un StackOverflowError qui ressemble à ceci:StackOverflowError dans CruiseControl avec 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) 

J'ai téléchargé le code source CruiseControl et constaté qu'il y a relativement peu d'endroits où la classe Pattern est utilisée. Le plus pertinent pour nous est une classe appelée TeamFoundationServer (il y a aussi des classes similaires pour Git et Mercurial). On dirait que l'erreur se produit lorsque la classe tente de récupérer les modifications depuis la dernière construction en appelant la ligne de commande client comme ceci:

tf.exe history "itemspec" /noprompt /server:http://mytfsserver:8080/tfs/ /recursive /format:detailed /version:D2015-04-08T16:45:00Z~D2015-04-08T23:59:59Z 

Je devine que, puisque c'est la première construction du projet CruiseControl, ça a quelque chose à voir avec ça, mais je ne sais pas pourquoi. Je pense que j'ai eu la plupart du temps à travers ce problème, mais je suis coincé à ce stade.

Comment puis-je contourner ce problème?

Répondre

0

Pas la meilleure réponse, mais celle qui fonctionne. J'ai commenté l'élément "modificationset" et redémarré CruiseControl. Il semble construire mon nouveau projet maintenant. Je décommenterai l'élément après la fin de la construction. Je voudrais toujours une meilleure réponse si quelqu'un en a un.