Writes are not cached, so they go directly to the persistence store. Does it help if your users shift-refreshes once he's saved things? Does the content end up in the repository, ie. is the page history still correct? This could be a browser caching issue as well, if they've got very aggressive caching set up.
/Janne On Mon, Apr 20, 2009 at 04:22:36PM +0100, Weijian Fang wrote: > I see JSPWiki uses some caching mechanism. How is the consistency > between the in-memory cache and the persisted wiki page versions? If > just after the save button in a wiki page edit tab is successfully > returned, tomcat/jspwiki is restarted, will the new edits be safely > recorded in the file system? I am using jspwiki 2.6.2 with > VersioningFileProvider. > > Cheers, > > Weijian > > > > 2009/4/20 Weijian Fang <[email protected]>: > > Hi, > > > > One of my JSPWiki users reported that one of his saved wiki pages (it > > means he did see the "save" button returns successfully) has reverted > > to its previous version. Because he complained this for quite a few > > times (for different pages), and this time he even got a witness, so I > > really believe him. Has anyone experienced this kind of lost versions > > as well? > > > > Quite a lot "Tag failed" errors have been recorded by my log4j. > > Usually they burst out in a very short period. Please see the log4j > > record below. Will it have anything to do with the lost version > > problem? Many thanks in advance! > > > > <log4j:event logger="com.ecyrd.jspwiki.tags.WikiTagBase" > > timestamp="1239931142106" level="ERROR" thread="TP-Processor14"> > > <log4j:message><![CDATA[Tag failed]]></log4j:message> > > <log4j:NDC><![CDATA[OMII-UK:/wiki/PrivateWIKIADMINSystemInfo > > OMII-UK:http://www.omii.ac.uk/wiki/PrivateWIKIADMINSystemInfo]]></log4j:NDC> > > <log4j:throwable><![CDATA[javax.servlet.jsp.JspException: WikiContext > > may not be NULL - serious internal problem! > > at com.ecyrd.jspwiki.tags.WikiTagBase.doStartTag(WikiTagBase.java:86) > > at > > org.apache.jsp.Error_jsp._jspx_meth_wiki_005fMessages_005f0(Error_jsp.java:178) > > at org.apache.jsp.Error_jsp._jspService(Error_jsp.java:125) > > at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) > > at > > org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331) > > at > > org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329) > > at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) > > at > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) > > at > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) > > at > > org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:679) > > at > > org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:461) > > at > > org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:399) > > at > > org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301) > > at > > org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:686) > > at > > org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:656) > > at > > org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:801) > > at > > org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:774) > > at org.apache.jsp.Wiki_jsp._jspService(Wiki_jsp.java:135) > > at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) > > at > > org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331) > > at > > org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329) > > at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) > > at > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) > > at > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) > > at > > org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:679) > > at > > org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:461) > > at > > org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:399) > > at > > org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301) > > at com.ecyrd.jspwiki.WikiServlet.doGet(WikiServlet.java:100) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:690) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) > > at > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269) > > at > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) > > at > > com.ecyrd.jspwiki.ui.WikiServletFilter.doFilter(WikiServletFilter.java:99) > > at com.ecyrd.jspwiki.ui.WikiJSPFilter.doFilter(WikiJSPFilter.java:91) > > at > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) > > at > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) > > at > > org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:738) > > at > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215) > > at > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188) > > at > > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) > > at > > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174) > > at > > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) > > at > > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) > > at > > org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:548) > > at > > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108) > > at > > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174) > > at > > org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200) > > at > > org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283) > > at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773) > > at > > org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703) > > at > > org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895) > > at > > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689) > > at java.lang.Thread.run(Thread.java:595) > > ]]></log4j:throwable> > > </log4j:event> > > > > Cheers, > > > > Weijian > >
