I've had a consistent issue with an instance of CQ 5.4 that I haven't been able to resolve. I don't know if something is broken or misconfigured.
After I make changes to a component's script and save it, the updates simply aren't reflected in the output. Clearing or disabling my brower's cache make no difference. I eventually get CQ to pay attention to my change by purposely breaking the script, usually by creating a syntax error (like not closing a <%).
When I refresh the page, I get the exception error and traceback. I fix the syntax error and the component then renders with my changes. The cycle then repeats itself. My next change won't show again in the output until I "invalidate" the component again by breaking its syntax to cause an exception.
Any ideas what could be doing this?
I've never identified a root cause, but I've experienced the issue. I think it's fairly common in CQ5.4 and my theory is that it's a memory issue. Anyway, to solve it you generally will need to "invalidate" the compiled Java files that your JSPs create. These are the Java servlets that are actually executed when CQ handles a page request. In CRXDE, if you look under /var/classes/org/apache/jsp/ and you will see a folder structure that mimics your component structure. In those folders will be .java and .class files for the compiled JSPs (compiled into Java servlets). Either delete all of your app-specific folders (if the problem is fairly widespread) or just the folder related to the one component and make sure you save changes. The next time you request a page with that/those component(s), it will force CQ to recompile.
I've only really experienced this issue when making changes in CRXDE, not when writing the application in Eclipse and deploying via Maven/Package Manager and I think this is less of a problem in 5.5. I would also make sure you install all available hotfixes.
Hope this helps.
Please report this issue on Daycare. AFAIK there is a hotfix available for CQ 5.4 which adresses this issue.