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 >
