解决 Confluence 5.10 中文补丁导致的 web 界面 UI 错误

Posted by Echo on October 23, 2016

最近把公司原来用的 Confluence 从 3.4.5 升到了 5.10.7 。

虽然这两个版本跨了六年,但是整个升级过程还是挺顺利的,就是麻烦了一些,根据官网要求,要按照 3.4.5 => 3.5 => 5.0 => 5.10 这样一步步进行升级。

然后在使用的时候发现了一些问题,花了不少时间排错。

起初是发现无法发送通知邮件,虽然测试邮件可以成功发送,但是一直收不到通知邮件。

后来 Google 了一下,大概了解是中文补丁导致的,卸载了中文补丁,果然可以收到邮件了。

当时那个中文补丁是上网随便下的,于是我又从官网下了一个,直接在插件页面上传上去,发现可以收到通知邮件了。

但是发现首页的布局却出现了问题。

打开 web 控制台,发现报了一个错误。

[Error] SyntaxError: Unexpected EOF (匿名函数) (batch.js:392)

跳到源代码看了一下,非常明显,那行多了一个换行符导致了代码解析出现了问题。

既然是中文补丁导致的,那出错的代码肯定是在中文补丁里了。

我打开了补丁包,试着过滤了一下代码的关键字。

$ unzip Confluence-5.10.0-rc1-language-pack-zh_CN.jar
$ grep -r start ./
.//atlassian-plugin.xml:    <resource name="i18n-101" type="i18n" location="com/atlassian/confluence/plugins/gettingstarted/i18n"/>
.//com/atlassian/confluence/plugins/gettingstarted/i18n_zh_CN.properties:confluence.gettingstarted.movie=//www.atlassian.com/software/confluence/videos/{0}.html\n
...

果然发现了问题所在。

于是将文件中多余的换行符去掉,重新打包。

$ jar cvf ../Confluence-5.10.0-rc1-language-pack-zh_CN.jar ./

将修改后的中文补丁传上去,刷新主页面,咦,居然错误还在?

不应该啊。。。尝试停用了浏览器的缓存。

刷新页面,果然,恢复正常!