This is adapted from a blog posting here
I’d been going through Declan Lynch’s XPages tutorial, and encountered an issue with Themes. Having used the one in the tutorial for about thirty odd lessons, IBM’s OneUI them, I decided to use my own modified version of it. Whoops.
It broke.
Revisiting the application this afternoon, a week or so later all the layout had disappeared. When I looked at the source, it was still trying to use the old theme, which was bizarre, since I’d not just changed the app to use the new one, but removed the old one from the list of themes available.
OK, I thought, maybe it’s being cached, so I did what no-one should EVER do on a production server, and removed the CSS files for the old theme.
Eh-Ehhh!!! Wrong move, now there was no styling being applied at all, yet when I looked at the source, it was still trying to load the old files. OK, remove them from the development environment entirely, ie the Domino Designer client, in case there’s some funny caching going on there.
No.
This was seriously annoying me now, especially since we’d just submitted a bid to build an application using XPages, so I needed to know how to fix this problem. Out came the packet sniffer, so I could see what the browser was asking for, and yes, it was asking for the old files, as one would expect, for the simple reason that it’s been told by the server to ask for them.
I went over the application, local and server copies using every interface the Designer client provides that I thought I could use. Nothing.
Then I had a brainwave - back to using something that has rarely let me down in over ten years of using Lotus software either as administrator or as developer, NotesPeek.
Fired it up and opened up the Design note collection, and there, at the bottom, I saw this:
This is not good. There is only supposed to be one each of WEB-INF/face-config.xml and WEB-INF/xsp.properties, and there were two. Lo and behold, the reference to the old theme was in the copies that shouldn’t have been there. I suspect that there was somehow a replication conflict between local and server replicas that wasn’t handled properly, and the older version was taking precedence.
Anyway, one quick Kill agent using a bit of Lotuscript (something else that has served me very well in the past) using the NoteID, and all was right again.
All in all, it was intensely frustrating, up until the point where I found the problem and resolved it.