Special characters in the commit message causes Bamboo to crash if the file encoding is wrong
Platform Notice: Data Center Only - This article only applies to Atlassian products on the Data Center platform.
Note that this KB was created for the Data Center version of the product. Data Center KBs for non-Data-Center-specific features may also work for Server versions of the product, however they have not been tested. Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.
*Except Fisheye and Crucible
Symptoms
Committing a changeset with special characters causes Bamboo to fail with the following error message in the atlassian-bamboo.log
file:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
java.lang.RuntimeException: com.atlassian.bamboo.plugins.hg.HgCommandException: command [C:\Program
Files\TortoiseHg\hg.exe, log, --follow, --style,
C:\Windows\Temp\hg.style5963527991958284672.tmp, --rev,
89b03bf5695c60657b57a7a817317632deafe4c2:0, --config, ui.ssh=ssh -o
StrictHostKeyChecking=no -o BatchMode=yes, --limit, 1] failed.
Working directory was `C:\Program Files\Atlassian\Application
Data\Bamboo\xml-data\build-dir_hg-repositories-cache\7294473af8196ac76d70c34d76732c6012ae1153'.
stderr: stdout: <?xml version="1.0"?><log><logentry
revision="25"
node="89b03bf5695c60657b57a7a817317632deafe4c2"><author
email="gcraimundo">gcraimundo</author><date>2012-07-02T11:52:39+01:00</date><parents></parents><msg
xml:space="preserve">Teste com caracteres Tugas e não só - Coração,
pé, sofá, à, ó, über, è,
€</msg><paths><path>SaphetyTab/UnitTests/UnitTest1.cs</path></paths></logentry>
at com.atlassian.bamboo.executor.RetryingTaskExecutor.rerun(RetryingTaskExecutor.java:119)
at com.atlassian.bamboo.executor.RetryingTaskExecutor.runTask(RetryingTaskExecutor.java:79)
at com.atlassian.bamboo.executor.RetryingTaskExecutor.retry(RetryingTaskExecutor.java:174)
at
com.atlassian.bamboo.v2.trigger.DefaultChangeDetectionManager.collectionChangesWithRetry(DefaultChangeDetectionManager.java:396)
at
com.atlassian.bamboo.v2.trigger.DefaultChangeDetectionManager.collectChangesSinceLastBuild(DefaultChangeDetectionManager.java:256)
at
com.atlassian.bamboo.v2.trigger.DefaultChangeDetectionManager.collectChangesSinceRevisions(DefaultChangeDetectionManager.java:214)
at
com.atlassian.bamboo.v2.trigger.DefaultChangeDetectionManager.collectChangesSinceRevisions(DefaultChangeDetectionManager.java:139)
at
com.atlassian.bamboo.v2.trigger.DefaultChangeDetectionManager.collectChangesSinceLastBuildIfTriggered(DefaultChangeDetectionManager.java:118)
at com.atlassian.bamboo.v2.trigger.ChangeDetectionListenerAction.process(ChangeDetectionListenerAction.java:95)
at com.atlassian.bamboo.chains.ChainExecutionManagerImpl.createChainState(ChainExecutionManagerImpl.java:245)
at com.atlassian.bamboo.chains.ChainExecutionManagerImpl.start(ChainExecutionManagerImpl.java:168)
at sun.reflect.GeneratedMethodAccessor290.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:304)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy81.start(Unknown Source)
at sun.reflect.GeneratedMethodAccessor290.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:304)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:198)
at $Proxy82.start(Unknown Source)
at com.atlassian.bamboo.plan.PlanExecutionManagerImpl.startWithLockTaken(PlanExecutionManagerImpl.java:249)
at com.atlassian.bamboo.plan.PlanExecutionManagerImpl.access$100(PlanExecutionManagerImpl.java:40)
at com.atlassian.bamboo.plan.PlanExecutionManagerImpl$1.call(PlanExecutionManagerImpl.java:236)
at com.atlassian.bamboo.plan.PlanExecutionManagerImpl$1.call(PlanExecutionManagerImpl.java:230)
at com.atlassian.util.concurrent.ManagedLocks$ManagedLockImpl.withLock(ManagedLocks.java:324)
at com.atlassian.bamboo.plan.PlanExecutionLockServiceImpl.lock(PlanExecutionLockServiceImpl.java:68)
at com.atlassian.bamboo.plan.PlanExecutionManagerImpl.doWithProcessLock(PlanExecutionManagerImpl.java:360)
at com.atlassian.bamboo.plan.PlanExecutionManagerImpl.start(PlanExecutionManagerImpl.java:229)
at com.atlassian.bamboo.plan.NonBlockingPlanExecutionServiceImpl$1.call(NonBlockingPlanExecutionServiceImpl.java:70)
at com.atlassian.bamboo.plan.NonBlockingPlanExecutionServiceImpl$1.call(NonBlockingPlanExecutionServiceImpl.java:61)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at com.atlassian.bamboo.build.pipeline.concurrent.NamedThreadFactory$2.run(NamedThreadFactory.java:50)
at java.lang.Thread.run(Unknown Source)
Caused by: com.atlassian.bamboo.plugins.hg.HgCommandException: command [C:\Program
Files\TortoiseHg\hg.exe, log, --follow, --style,
C:\Windows\Temp\hg.style5963527991958284672.tmp, --rev,
89b03bf5695c60657b57a7a817317632deafe4c2:0, --config, ui.ssh=ssh -o
StrictHostKeyChecking=no -o BatchMode=yes, --limit, 1] failed.
Working directory was `C:\Program Files\Atlassian\Application
Data\Bamboo\xml-data\build-dir_hg-repositories-cache\7294473af8196ac76d70c34d76732c6012ae1153'.
stderr: stdout: <?xml version="1.0"?><log><logentry
revision="25"
node="89b03bf5695c60657b57a7a817317632deafe4c2"><author
email="gcraimundo">gcraimundo</author><date>2012-07-02T11:52:39+01:00</date><parents></parents><msg
xml:space="preserve">Teste com caracteres Tugas e não só - Coração,
pé, sofá, à, ó, über, è,
€</msg><paths><path>SaphetyTab/UnitTests/UnitTest1.cs</path></paths></logentry>
at com.atlassian.bamboo.plugins.hg.HgCommandProcessor.runCommand(HgCommandProcessor.java:488)
at com.atlassian.bamboo.plugins.hg.HgCommandProcessor.runCommand(HgCommandProcessor.java:446)
at com.atlassian.bamboo.plugins.hg.HgCommandProcessor.getChangesetsSinceRevision(HgCommandProcessor.java:339)
Cause
This is usually the case of wrong file encoding in the OS bamboo wrapper config.
Resolution
Add the parameter wrapper.java.additional.x=-Dfile.encoding=UTF-8
to your $BAMBOO_INSTALL/conf/wrapper.cnf
file, where x
represents the next available digit in the list of additional configurable.
Was this helpful?