Last modified by Normann P. Nielsen on 2025/12/12 15:11

From version 1.1
edited by Normann P. Nielsen
on 2025/12/12 15:11
Change comment: There is no comment for this version
To version 2.1
edited by Normann P. Nielsen
on 2025/12/12 15:11
Change comment: There is no comment for this version

Summary

Details

Blog.BlogPostClass[0]
Category
... ... @@ -1,0 +1,1 @@
1 +News
Content
... ... @@ -1,0 +1,129 @@
1 +Thursday night on the couch, having a day off friday, I decided to do some layout work on the Confluence we use at my workplace (just for the fun of it, as my work is my hobby - sort of anyway).
2 +
3 +I had created a new User Macro, that I wanted to implement on the Dashboard, so I started editing in the Global Layouts in Confluence to place it on the Dashboard:
4 +
5 +[[image:Screen Shot 2014-02-02 at 20.01.39.jpg||width="842"||height="296"]]
6 +
7 +As part of the changing of the Dashboard code, I entered:
8 +
9 +
10 +{{code}}
11 +{html}<font size="4">Space Quick Select</font>{html}
12 +{{/code}}
13 +
14 +pressed "Save" and:
15 +
16 +[[image:bam_logo.jpg]]
17 +
18 +the Confluence went down - just giving me a "Service Unavailable" from the Traffic Manager.
19 +
20 +Shit, I restarted the instance- no improvement.....so starting to diagnose:
21 +
22 +
23 +{{code}}
24 +npn@docs01:~$ wget -O - localhost:8080
25 +--2014-01-30 21:46:27-- http://localhost:8080/
26 +Resolving localhost... ::1, 127.0.0.1
27 +Connecting to localhost|::1|:8080... connected.
28 +HTTP request sent, awaiting response... 500 Internal Server Error
29 +2014-01-30 21:46:28 ERROR 500: Internal Server Error.
30 +
31 +npn@docs01:~$
32 +{{/code}}
33 +
34 +
35 +
36 +Hm, error 500, diagnosting further:
37 +
38 +
39 +{{code}}
40 +root@docs01:/pack/confluence-data/logs# tail -f atlassian-confluence.log
41 +caused by: java.lang.RuntimeException: Error rendering template for decorator global
42 +at com.atlassian.confluence.setup.velocity.ApplyDecoratorDirective.render(ApplyDecoratorDirective.java:186)
43 +caused by: org.apache.velocity.exception.ParseErrorException: Encountered "4" at /decorators/global.vmd[line 38, column 87]
44 +Was expecting one of:
45 + "," ...
46 + ")" ...
47 + <WHITESPACE> ...
48 +
49 +at org.apache.velocity.Template.process(Template.java:141)
50 +{{/code}}
51 +
52 +
53 +
54 +So, It seems the code I put in the Global layout makes the Confluence crash totally, not just rendering the Dashboard, but TOTALLY!!!
55 +
56 +I fired up for MySQL and looked at the DECORATORS table:
57 +
58 +
59 +{{code}}
60 +mysql> select DECORATORID,DECORATORNAME FROM DECORATOR;
61 ++-------------+-----------------------+
62 +| DECORATORID | DECORATORNAME |
63 ++-------------+-----------------------+
64 +| 64913409 | decorators/global.vmd |
65 +| 48300036 | decorators/page.vmd |
66 +| 59080705 | decorators/page.vmd |
67 ++-------------+-----------------------+
68 +3 rows in set (0.00 sec)
69 +
70 +mysql>
71 +{{/code}}
72 +
73 +
74 +
75 +Now, 2 choises are available:
76 +
77 +1. Fix It
78 +1. Delete the DECORATORID=64913409 record.
79 +All though I am pretty sure number 2 works (same as using "Reset Default"), I went for number 1:
80 +
81 +
82 +
83 +First, I shut down Confluence completely.
84 +
85 +Then I made a complete dump of the Confluence Database:
86 +
87 +
88 +{{code}}
89 +mysqldump -uconfluence -p confluence > confluence.sql
90 +{{/code}}
91 +
92 +
93 +
94 +After securing the backup, I dumped the DECORATOR table:
95 +
96 +
97 +{{code}}
98 +mysqldump -uconfluence -p confluence DECORATOR > DECORATOR.sql
99 +{{/code}}
100 +
101 +
102 +
103 +After that, I changed the DECORATOR.sql file i the "vim" editor - stripping off everything but the record for DECORATORID=64913409, and change the "INSERT INTO" to an "UPDATE"  so it looked like:
104 +
105 +
106 +{{code}}
107 +UPDATE DECORATORS SET body='### ...code...code...code.' WHERE DECORATORID=64913409
108 +{{/code}}
109 +
110 +And the whole point being that I removed the "{html}<font size=\"4\">Space Quick Select</font>{html}" from the body code.
111 +
112 +
113 +
114 +Finally, I put back the decorator:
115 +
116 +
117 +{{code}}
118 +mysql -uconfluence -p confluence < DECORATOR.sql
119 +{{/code}}
120 +
121 +
122 +
123 +And started the Confluence Instance:
124 +
125 +
126 +
127 +[[image:success.jpg||width="300"]]
128 +
129 +- up and running again
Is hidden
... ... @@ -1,0 +1,1 @@
1 +No
Publish date
... ... @@ -1,0 +1,1 @@
1 +2014-02-02 20:13:00.0
Is published
... ... @@ -1,0 +1,1 @@
1 +Yes
Title
... ... @@ -1,0 +1,1 @@
1 +Busting the Work Confluence