Current development on JAMWiki is primarily focused on maintenance rather than new features due to a lack of developer availability. If you are interested in working on JAMWiki please join the jamwiki-devel mailing list.

Bug Reports/Unresolved

This page lists bugs that were reported but never resolved due to lack of information, inability to reproduce, or other issues. In general, bug reports that are not reproducible and that have not received further attention after a long period of time may be moved here. If you have additional information to provide on any of these bugs please move it to the main Bug Reports page.

Contents

navigation updating problems[edit]

Hi Ryan, congratulations to your new release 0.5.0! I, will update my local version soon. But working with jamwiki-0.4.2 I recognized a strange behavior. I changed the left-navigation (added a new entry), saved the changed navigation and second clicked on the new link on the left-navigation. After entering some input on the new site I saved. But surprisingly the left-navigation last unchanged - means: colour red - so I thing the navigation does not recognize that I did save the page. -- Michael Habbert 04-Jan-2007 03:18 PST

Is this reproducible with JAMWiki 0.5.0? It sounds like a caching issue to me, and the caching code was rewritten for JAMWiki 0.5.0. Thanks for the report! -- Ryan 04-Jan-2007 09:18 PST

Properties cannot load[edit]

Application server:tomcat 5.5 OS: FreeBsd 6.2 Context Path: "" DocBase : /usr/local/tomcat5.5/webapps/news/jamwiki

error information: An unknown system error has occurred. The error message is: java.io.FileNotFoundException: /usr/local/tomcat5.5/./webapps/news/jamwiki/WEB-INF/classes/ApplicationResources.properties (Permission denied).

log: java.io.FileNotFoundException: /usr/local/tomcat5.5/./webapps/news/jamwiki/WEB-INF/classes/ApplicationResources.properties (Permission denied)

       at java.io.FileOutputStream.open(Native Method)
       at java.io.FileOutputStream.<init>(FileOutputStream.java:179)
       at java.io.FileOutputStream.<init>(FileOutputStream.java:131)
       at org.jamwiki.Environment.saveProperties(Environment.java:394)
       at org.jamwiki.servlets.TranslationServlet.translate(TranslationServlet.java:134)
       at org.jamwiki.servlets.TranslationServlet.handleJAMWikiRequest(TranslationServlet.java:62)
       at org.jamwiki.servlets.JAMWikiServlet.handleRequestInternal(JAMWikiServlet.java:74)
       at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
       at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
       at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:839)
       at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:774)
       at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:460)
       at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:425)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
       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.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:264)
       at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
       at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
       at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
       at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:110)
       at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
       at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
       at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
       at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
       at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
       at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:217)
       at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
       at org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:106)
       at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
       at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:229)
       at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
       at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:148)
       at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)

...

It looks like the file permission level is incorrect. Please verify that Tomcat has permission to read the files within the deployed war file. If you are running a system with SELinux then this can get rather complex - a lot of people tend to give up and simply assign full permissions to Tomcat, which isn't recommended but works. -- Ryan 27-Aug-2007 09:11 PDT
Sorry, just noticed that you're using BSD. I don't know anything about BSD file permissions, but provided Tomcat can read and write all files within the WAR then everything should run correctly. Let me know if that works for you. -- Ryan 27-Aug-2007 09:18 PDT

...

ApplicationResource.properties file's path is incorrect

not /usr/local/tomcat5.5/webapps/news/jamwiki/WEB-INF/classes/ApplicationResources.properties that is : /usr/local/tomcat5.5/./webapps/news/jamwiki/WEB-INF/classes/ApplicationResources.properties

Centering images looks ugly[edit]

There is a css problem when centering images. It's not that easy to relove when there are frames round the image. Works on mediawiki but with very different html output then jamwiki image handling.

--olat 31-Jan-2007 07:05 PST

Sorry, can you clarify what you mean by "relove" - I'm not sure I understand the problem. Thanks! -- Ryan 31-Jan-2007 12:28 PST

Connection Reset Exception[edit]

Moved from the Feedback page:

Hi Ryan, I am now testing jamwiki on Weblogic 8.1 SP5 with Oracle9i and got the following error in the logs. However in the webpage, I do not notice any error.

2007-01-26 13:29:44,765 SEVERE: org.jamwiki.jsp - Error in JSP page
java.net.SocketException: Connection reset by peer: socket write error
  at java.net.SocketOutputStream.socketWrite0(Native Method)
  at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
  at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
  at weblogic.servlet.internal.ChunkUtils.writeHeaderChunk(ChunkUtils.java:218)
  at weblogic.servlet.internal.ChunkUtils.writeChunkTransfer(ChunkUtils.java:259)
  at weblogic.servlet.internal.ChunkUtils.writeChunks(ChunkUtils.java:243)
  at weblogic.servlet.internal.ChunkOutput.flush(ChunkOutput.java:311)
  at weblogic.servlet.internal.ChunkOutputWrapper.flush(ChunkOutputWrapper.java:156)
  at weblogic.servlet.jsp.JspWriterImpl.flush(JspWriterImpl.java:114)
  at jsp_servlet._web_45_inf._jsp.__wiki._jspService(__wiki.java:2670)
  at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)
  at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1072)
  at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:465)
  at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)
  at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
  at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:264)
  at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:97)
  at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
  at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
  at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:110)
  at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
  at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
  at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
  at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
  at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
  at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:217)
  at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
  at org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:106)
  at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
  at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:153)
  at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
  at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:148)
  at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
  at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
  at org.jamwiki.servlets.JAMWikiFilter.doFilter(JAMWikiFilter.java:56)
  at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
  at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:326)
  at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:142)
  at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:247)
  at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1105)
  at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:841)
  at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:755)
  at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:396)
  at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:350)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
  at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1072)
  at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:465)
  at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:28)
  at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
  at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:264)
  at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
  at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
  at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
  at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:110)
  at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
  at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
  at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
  at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
  at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
  at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:217)
  at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
  at org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:106)
  at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
  at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:229)
  at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
  at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:148)
  at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
  at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
  at org.jamwiki.servlets.JAMWikiFilter.doFilter(JAMWikiFilter.java:56)
  at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:27)
  at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6987)
  at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
  at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
  at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3892)
  at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2766)
  at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:224)
  at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:183)

-- Kwee Tin 25-Jan-2007 22:25 PST

Socket errors are generally fairly evil to diagnose - they can be due to a request being canceled, a firewall issue, something internal to the server, or an actual problem. I can take a look through the code to make sure there aren't any files being left un-closed or anything similar going amiss, but this one will probably also be tough to diagnose. Do you see a lot of these errors, or is it a fairly random issue? -- Ryan 25-Jan-2007 22:36 PST

Hi Ryan, it seems like a random issue currently. Will update you if this happens too often. Thanks! -- Kwee Tin 25-Jan-2007 22:39 PST

WikiLogger[edit]

All log messages have as source org.jamwiki.utils.WikiLogger instead of the real class. Maybe it's just a configuration issue? Mike 30-Jul-2007 06:24 PDT

Jul 30, 2007 3:36:53 PM org.jamwiki.utils.WikiLogger info
INFO: Loaded page /jamwiki/en/StartingPoints (1.299 s.)
On both my laptop (Windows, Tomcat 5, JDK 1.4) and the jamwiki.org box (Debian, Tomcat 5.5, JDK 1.4(?)) I see the actual class name, so whatever the problem is it does not seem to occur on all platforms. What app server are you using? -- Ryan 30-Jul-2007 09:00 PDT

Error saving any page change[edit]

Moved from the Feedback page:

We are running version 0.5.2. After a Tomcat outage began receiving the following error whenever an attempt is made to update an existing page:

A system error has occurred. The error message is:
An unknown system error has occurred. The error message is: net.sf.ehcache.CacheException: 
org.jamwiki.WikiBase.CACHE_PARSED_TOPIC_CONTENTCache: Could not remove disk store entry for en/Main Page. Error was 
org.jamwiki.WikiBase.CACHE_PARSED_TOPIC_CONTENT Cache: The Disk store is not active..

Oracle database fully functional. Other JSP's that access the same database server work successfully. Have stopped and restarted Tomcat several times. Have checked all jamwiki webapps folder to verify appropriate permissions. HELP!

I've never seen this issue, but this link seems to describe a similar problem. I'm at work right now so I can't give exactly the correct paths, but if you look inside of your JAMWiki file system directory (specified in Special:Admin) there should be a "cache" directory (or something similarly named). If you delete the contents of that directory and restart Tomcat it may solve the problem. Please let me know if that helps. -- Ryan 17-Apr-2007 18:30 PDT

No WebApplicationContext found: no ContextLoaderListener registered[edit]

Moved from the Feedback page:

Hi. Don't know exactly what has changed in my tomcat 6.0.2 environment? But with the latest SVN sources I get the following stacktrace. Any idea what's going wrong? -- Axel Kramer 25-Feb-2007 13:02 PST

25.02.2007 21:59:20 org.apache.catalina.core.StandardContext filterStart
SCHWERWIEGEND: Exception starting filter securityFilter
java.lang.IllegalStateException: No WebApplicationContext found: no ContextLoaderListener registered?
	at org.springframework.web.context.support.WebApplicationContextUtils.getRequiredWebApplicationContext(WebApplicationContextUtils.java:84)
	at org.acegisecurity.util.FilterToBeanProxy.getContext(FilterToBeanProxy.java:169)
	at org.acegisecurity.util.FilterToBeanProxy.doInit(FilterToBeanProxy.java:111)
	at org.acegisecurity.util.FilterToBeanProxy.init(FilterToBeanProxy.java:181)
	at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:274)
	at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:396)
	at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:107)
	at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3693)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4342)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:760)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
	at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:626)
	at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:553)
	at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488)
	at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
	at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1022)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1014)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
	at org.apache.catalina.core.StandardService.start(StandardService.java:451)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
25.02.2007 21:59:20 org.apache.catalina.core.StandardContext start
SCHWERWIEGEND: Error filterStart
25.02.2007 21:59:20 org.apache.catalina.core.StandardContext start
SCHWERWIEGEND: Context [/jamwiki] startup failed due to previous errors
I can't think of anything obvious based on this stack trace. Have you modified the web.xml file in any way? Acegi needs to be able to find its configuration file, so removing the following lines might cause a problem like the one above:
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/applicationContext-acegi-security.xml</param-value>
</context-param>
Otherwise I'm not sure what might be causing the problem - most of the latest Subversion changes have been either look & feel changes or in the UploadServlet, neither of which would affect startup... -- Ryan 25-Feb-2007 13:25 PST

Unable to find a value for "editable" in object of class "org.jamwiki.servlets.WikiPageInfo"[edit]

Application server:tomcat 5.5 OS: FreeBsd 6.2 Context Path: "" DocBase : /usr/local/tomcat5.5/webapps/news/jamwiki I upgraded jamwiki version 0.5.4 to 0.6.0. When I view topic error was occurs.


javax.servlet.jsp.el.ELException: Unable to find a value for "editable" in object of class "org.jamwiki.servlets.WikiPageInfo" using operator "."
javax.servlet.jsp.el.ELException: Unable to find a value for "editable" in object of class "org.jamwiki.servlets.WikiPageInfo" using operator "."
        at org.apache.commons.el.Logger.logError(Logger.java:481)
        at org.apache.commons.el.Logger.logError(Logger.java:498)
        at org.apache.commons.el.Logger.logError(Logger.java:611)
        at org.apache.commons.el.ArraySuffix.evaluate(ArraySuffix.java:340)
        at org.apache.commons.el.ComplexValue.evaluate(ComplexValue.java:145)
        at org.apache.commons.el.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:263)
        at org.apache.commons.el.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:190)
        at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:929)
        at org.apache.jsp.WEB_002dINF.jsp.wiki_jsp._jspx_meth_c_005fif_005f6(wiki_jsp.java:2062)
        at org.apache.jsp.WEB_002dINF.jsp.wiki_jsp._jspx_meth_c_005fif_005f5(wiki_jsp.java:1905)
        at org.apache.jsp.WEB_002dINF.jsp.wiki_jsp._jspService(wiki_jsp.java:254)
        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:328)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
        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:691)
        at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:469)
        at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:403)
        at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
        at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:142)
        at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:243)
        at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1141)
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:878)
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:792)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:475)
        at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:430)
        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 org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265)
        at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
        at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.jamwiki.authentication.JAMWikiExceptionMessageFilter.doFilter(JAMWikiExceptionMessageFilter.java:70)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:110)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
I've seen a lot of errors like this one on Tomcat that were a result of Tomcat using old cached files. If you delete everything from Tomcat's /work/ directory (where cached JSPs are stored) does the issue go away? If not I'll need to investigate further. Thanks for the report! -- Ryan 23-Sep-2007 20:12 PDT

Data Lost[edit]

I use Jamwiki (0.6.1) and I lost my wiki pages after a shutdown. I'm using the internal database. Is it safe to use the internal database? The same problem also happened with version 0.5.4.

When you deployed the WAR file, was it deployed as an exploded WAR? If not the jamwiki.properties file will be overwritten on every restart. The internal database is safe to use, and many people use it without issue, so there may be something unusual in your configuration. If your WAR file _was_ deployed as an exploded WAR can you provide the directory that you specified as your JAMWiki File-system directory? Thanks! -- Ryan 22-Oct-2007 15:07 PDT
The war is exploded and deployed to Tomcat. The JAMWiki system directory is "/home/jpox/htdocs/wiki/jamwiki/system". I see 3 folders inside: cache, database and search. In database folder I have the following files: jamwiki.backup, jamwiki.lck, jamwiki.properties, jamwiki.data, jamwiki.log and jamwiki.script. Thanks! -- Erik 23-Oct-2007 17:38 GMT+1
Prior shutdown I did backup the "/home/jpox/htdocs/wiki/jamwiki/system" folder, and using "more jamwiki.log | grep MyWikiTextOfPage" I could find my wiki page, however after starting up tomcat the wiki page text is not displayed. Thanks! -- Erik 23-Oct-2007 17:54 GMT+1
Provided I have time I'll look at this one when I get home today. I haven't heard of anyone else having this issue, but there might be something specific in your setup that is causing issues. Thanks for the detailed report! -- Ryan 23-Oct-2007 10:48 PDT
The files and paths you provided look OK, so I'm not entirely sure what the problem is. Some possibilities that might cause an issue (and these are all just guesses):
  1. Is it possible there could be either a permission issue or an SELinux problem?
  2. Are there any conflicting JAR files in your Tomcat /shared/lib/ directory? In particular, is there another HSQL JAR file?
  3. Does the JAMWiki log show any relevant errors? (Log file location is specified in /WEB-INF/classes/logging.properties by the org.jamwiki.pattern property)
For reference, I just tried running in internal database mode on Windows with numerous and frequent stops and restarts without issue. My paths are:
webapps: C:\Program Files\Apache Software Foundation\Tomcat 5.0\webapps\wiki
JAMWiki file system: D:\tmp\wiki
Web server docroot: D:\www\jamwiki.org
Sorry I can't provide more concrete assistance, but you've apparently hit a problem that I haven't seen before... -- Ryan 23-Oct-2007 20:30 PDT

javax.servlet.jsp.JspException: Parsing of JSP EL expression "${change.topicVersionId}" failed[edit]

I upgraded to versio 0.6.7 right now. If looking at version histories I get the above error.

That is how it looks in the logs:

11-Nov-2008 23:32:23 org.jamwiki.utils.WikiLogger severe SEVERE: Error in JSP page javax.servlet.jsp.JspException: Parsing of JSP EL expression "${change.topicVersionId}" failed

       at org.springframework.web.util.ExpressionEvaluationUtils$Jsp20ExpressionEvaluationHelper.evaluate(ExpressionEvaluati
       at org.springframework.web.util.ExpressionEvaluationUtils.doEvaluate(ExpressionEvaluationUtils.java:276)
       at org.springframework.web.util.ExpressionEvaluationUtils.evaluate(ExpressionEvaluationUtils.java:173)
       at org.jamwiki.taglib.LinkParamTag.doEndTag(LinkParamTag.java:49)
       at org.apache.jsp.WEB_002dINF.jsp.history_jsp._jspx_meth_jamwiki_linkParam_0(history_jsp.java:832)
       at org.apache.jsp.WEB_002dINF.jsp.history_jsp._jspx_meth_jamwiki_link_2(history_jsp.java:798)
       at org.apache.jsp.WEB_002dINF.jsp.history_jsp._jspx_meth_c_forEach_0(history_jsp.java:373)
       at org.apache.jsp.WEB_002dINF.jsp.history_jsp._jspService(history_jsp.java:160)
       at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
       at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
       at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
       at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
       at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
       at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
       at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
       at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574)
       at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499)
       at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:966)
       at org.apache.jsp.WEB_002dINF.jsp.wiki_jsp._jspService(wiki_jsp.java:274)
       at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
       at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
       at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
       at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
       at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
trimmed
Two questions: from the stack trace it looks like you're using Tomcat - which version of Tomcat? Second, what version of JAMWiki did you upgrade from? One thing to try is to clear your Tomcat cache (on windows it is found in /work/Catalina/localhost/) just to make sure you aren't seeing cached JSP pages. Note that I run Tomcat on both my local machine and on jamwiki.org, so it should definitely work... -- Ryan 11-Nov-2008 16:17 PST

I deleted that work-directory already. Also the error did not occur in the old version. It runs on Tomcat 5.5. I upgraded from version 0.5.1. The first time the upgrade failed for whatever reason. I had to restore my backed up database and run it again. The second time it went through. I have copied the whole WEB-INF directory before the upgrade, if that is needed. What exactly is the JSP EL expression "${change.topicVersionId}"? Could it be a problem that went into the database while I was running the old version? I upgraded because it was throwing errors now and then, example (old version!) INFO: Unable to parse == java.lang.StringIndexOutOfBoundsException: String index out of range: -2

       at java.lang.String.substring(String.java:1938)
       at org.jamwiki.parser.jflex.WikiHeadingTag.parse(WikiHeadingTag.java:76)
       at org.jamwiki.parser.jflex.AbstractLexer.parseToken(AbstractLexer.java:106)
       at org.jamwiki.parser.jflex.JAMWikiProcessor.yylex(JAMWikiProcessor.java:1410)
       at org.jamwiki.parser.jflex.JFlexParser.lex(JFlexParser.java:114)
       at org.jamwiki.parser.jflex.JFlexParser.parseProcess(JFlexParser.java:220)
       at org.jamwiki.parser.jflex.JFlexParser.parseHTML(JFlexParser.java:164)
       at org.jamwiki.utils.Utilities.parse(Utilities.java:746)
       at org.jamwiki.servlets.ServletUtil.viewTopic(ServletUtil.java:488)
       at org.jamwiki.servlets.ServletUtil.viewTopic(ServletUtil.java:447)
       at org.jamwiki.servlets.TopicServlet.view(TopicServlet.java:59)
       at org.jamwiki.servlets.TopicServlet.handleJAMWikiRequest(TopicServlet.java:45)
       at org.jamwiki.servlets.JAMWikiServlet.handleRequestInternal(JAMWikiServlet.java:74)
trimmed

or (also old version!)

29-Oct-2008 16:10:07 org.jamwiki.utils.WikiLogger severe SEVERE: Servlet error java.lang.NullPointerException

       at org.jamwiki.servlets.HistoryServlet.viewVersion(HistoryServlet.java:85)
       at org.jamwiki.servlets.HistoryServlet.handleJAMWikiRequest(HistoryServlet.java:47)
       at org.jamwiki.servlets.JAMWikiServlet.handleRequestInternal(JAMWikiServlet.java:74)
       at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
       at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:45)
trimmed

Thankyou for your help and please tell me, if you need more info. --SquadStein 12-Nov-2008 12:18 PST

The EL expression is simply getting the version ID for an older version of the topic, so that when you do a diff it knows what to compare against. I checked the Subversion repository, and that particular expression has been there for quite a while. Unfortunately my work schedule is currently pretty heavy, but if you don't need this issue fixed immediately and can upload your old and new log files I can take a look and see if I can figure out what is going on. As you've suggested, it sounds like there might be bad data, but I'm not sure where things would be going wrong. One last question - what database are you using? I do most of my testing with Postgres, but we use Oracle at work, I've done a lot of testing with HSQL and MySQL, and I know there are a lot of users out there using a variety of other databases. -- Ryan 12-Nov-2008 20:56 PST
I use MySQL, which log files? The tomcat ones? I do not keep them :(. I created a new topic and only entered test. Then I clicked on that versions tab. It also throws the error message. So it can't be the normal data. --SquadStein 13-Nov-2008 12:23 PST
If you can upload your jamwiki.log file it might at least give me an idea of what's going right and what's going wrong. Something has obviously gone wrong, but it may be a simple matter of executing a few SQL statements to resolve it. The first step would be figuring out what failed, and that is always tough to do remotely. -- Ryan 13-Nov-2008 23:12 PST
Is there a chance for me to get the SQL query it runs in history.jsp to get that topic_version_id? I would run that in phpMyAdmin and see, if it throws errors. --84.185.57.209 14-Nov-2008 02:06 PST
The query is:
    select * from jam_recent_change \
    where topic_id = ? \
    order by edit_date desc \
    limit ? offset ?
Replace the first question mark with the ID for your topic, and the last two by 0 and 50, respectively. I'm guessing that this query may execute successfully, so more than likely there is a data issue in your database after upgrading. Have a look at /WEB-INF/UPGRADE.txt and verify that all upgrades steps completed successfully. -- Ryan 17-Nov-2008 07:31 PST

I set up a new jamwiki and had the community copy the data over by hand. That solved the problem, but does not find the bug, sorry. --SquadStein 25-Nov-2008 22:35 PST

jamwiki.js[edit]

Hi,Ryan

Environment: Jamwiki 0.6.6, Database - hsql, Application Server - Apache Tomcat 5.5.26 There is a mistake , when login, the page is not the StartingPoints,but

 jamwiki.js:

var noOverwrite=false; var alertText; var clientPC = navigator.userAgent.toLowerCase(); // Get client info var is_gecko = ((clientPC.indexOf('gecko')!=-1) && (clientPC.indexOf('spoofer')==-1) && (clientPC.indexOf('khtml') == -1) && (clientPC.indexOf('netscape/7.0')==-1)); var is_safari = ((clientPC.indexOf('AppleWebKit')!=-1) && (clientPC.indexOf('spoofer')==-1)); var is_khtml = (navigator.vendor == 'KDE' || ( document.childNodes && !document.all && !navigator.taintEnabled )); if (clientPC.indexOf('opera')!=-1) { var is_opera = true; var is_opera_preseven = (window.opera && !document.childNodes); var is_opera_seven = (window.opera && document.childNodes); } function addButton(imageFile, speedTip, tagOpen, tagClose, sampleText) { speedTip=escapeQuotes(speedTip); tagOpen=escapeQuotes(tagOpen); tagClose=escapeQuotes(tagClose); sampleText=escapeQuotes(sampleText); var mouseOver=""; // we can't change the selection, so we show example texts // when moving the mouse instead, until the first button is clicked if(!document.selection && !is_gecko) { // filter backslashes so it can be shown in the infobox var re=new RegExp("\\\\n","g"); tagOpen=tagOpen.replace(re,""); tagClose=tagClose.replace(re,""); mouseOver = "onMouseover=\"if(!noOverwrite) {document.infoform.infobox.value='"+tagOpen+sampleText+tagClose+"'};\""; } document.write(""); document.write(""); document.write(""); return; } function addInfobox(infoText,text_alert) { alertText=text_alert; var clientPC = navigator.userAgent.toLowerCase(); // Get client info var re=new RegExp("\\\\n","g"); alertText=alertText.replace(re,"\n"); // if no support for changing selection, add a small copy & paste field // document.selection is an IE-only property. The full toolbar works in IE and // Gecko-based browsers. if(!document.selection && !is_gecko) { infoText=escapeQuotesHTML(infoText); document.write(" "+ " "); } } function escapeQuotes(text) { var re=new RegExp("'","g"); text=text.replace(re,"\\'"); re=new RegExp('"',"g"); text=text.replace(re,'"'); re=new RegExp("\\n","g"); text=text.replace(re,"\\n"); return text; } function escapeQuotesHTML(text) { var re=new RegExp('"',"g"); text=text.replace(re,"""); return text; } // apply tagOpen/tagClose to selection in textarea, // use sampleText instead of selection if there is none // copied and adapted from phpBB function insertTags(tagOpen, tagClose, sampleText) { var txtarea = document.form.contents; // IE if(document.selection && !is_gecko) { var theSelection = document.selection.createRange().text; if(!theSelection) { theSelection=sampleText;} txtarea.focus(); if(theSelection.charAt(theSelection.length - 1) == " "){// exclude ending space char, if any theSelection = theSelection.substring(0, theSelection.length - 1); document.selection.createRange().text = tagOpen + theSelection + tagClose + " "; } else { document.selection.createRange().text = tagOpen + theSelection + tagClose; } // Mozilla } else if(txtarea.selectionStart || txtarea.selectionStart == '0') { var startPos = txtarea.selectionStart; var endPos = txtarea.selectionEnd; var scrollTop=txtarea.scrollTop; var myText = (txtarea.value).substring(startPos, endPos); if(!myText) { myText=sampleText;} if(myText.charAt(myText.length - 1) == " "){ // exclude ending space char, if any subst = tagOpen + myText.substring(0, myText.length - 1) + tagClose + " "; } else { subst = tagOpen + myText + tagClose; } txtarea.value = txtarea.value.substring(0, startPos) + subst + txtarea.value.substring(endPos); txtarea.focus(); var cPos=startPos+(tagOpen.length+myText.length+tagClose.length); txtarea.selectionStart=cPos; txtarea.selectionEnd=cPos; txtarea.scrollTop=scrollTop; // All others } else { var copy_alertText=alertText; var re1=new RegExp("\\$1","g"); var re2=new RegExp("\\$2","g"); copy_alertText=copy_alertText.replace(re1,sampleText); copy_alertText=copy_alertText.replace(re2,tagOpen+sampleText+tagClose); var text; if (sampleText) { text=prompt(copy_alertText); } else { text=""; } if(!text) { text=sampleText;} text=tagOpen+text+tagClose; document.infoform.infobox.value=text; // in Safari this causes scrolling if(!is_safari) { txtarea.focus(); } noOverwrite=true; } // reposition cursor if possible if (txtarea.createTextRange) txtarea.caretPos = document.selection.createRange().duplicate(); } // enable/disable radio buttons before or after the current element function historyRadio(element, siblingName, disableLower) { // since revision numbers are chronological this code compares revision // numbers to determine whether to display or hide a radio button var revisionId = parseInt(element.value); var siblings = document.getElementsByName(siblingName); for (var i = 0; i < siblings.length; i++) { // make sure the element is a radio button, if not skip it if (siblings[i].type != 'radio') { continue; } // now make the button visible or hidden as appropriate if (disableLower && parseInt(siblings[i].value) <= revisionId) { siblings[i].style.visibility = 'hidden'; } else if (!disableLower && parseInt(siblings[i].value) >= revisionId) { siblings[i].style.visibility = 'hidden'; } else { siblings[i].style.visibility = 'visible'; } } }

  • that's a bug? when I login again, that's O.K. DS. May 30
Thanks for the report. I haven't seen this behavior in my local testing but will try to reproduce it. -- Ryan 31-May-2008 12:08 PDT
I'm unable to reproduce this problem, but revision 2233 may resolve it. -- Ryan 01-Jun-2008 14:05 PDT

Upload can't be a Linux symbolic links[edit]

I'm not able to get JAMWiki 0.6.2 to display or access files placed in a directory other then the web root, even if i create a linux symbolic link. Can this issue be fixed?

I suspect that this may be a configuration issue with your app server - most app servers require specific permission to follow symlinks. Can you confirm that the files can be accessed using symlinks without JAMWiki to help verify that this is a JAMWiki issue? Thanks! -- Ryan 31-Dec-2007 18:29 PST

Keychain drive issues[edit]

Copied from the Feedback page:

I installed JAMWiki in Jetty, all on a 1 gb keychain drive. Booted first on a pc, added some content, then plugged the drive into my MacBook. When I booted it, the startup screen came up. I duplicated the data and password values, got a warning that the data already exists. I clicked "continue". All my data was there. I added some new content, then moved back to the pc and got, again, the startup screen. Again, configuring the same, warning screen, continue. All my data is still there. It seems that something happens in the way JamWiki is functioning that is not compatible with moving its database between computers; it's not behaving in a portable way. Of course, that's not a use case one would expect, but it's a reasonable one. I am wondering what is changed that renders the database not visible on startup, requiring a pass through setup. -- Jack 12-Mar-2007 09:16 PDST

Is it possible that you're hitting this issue? Some app servers apparently overwrite configuration information every restart. See Installation#Web_Application Server Configuration for workarounds for other app servers. I'd like to solve this problem permanently, but thus far haven't found a way to do so. -- Ryan 12-Mar-2007 08:58 PST

That would be the issue. I tried this. Jetty doesn't open the war file, whereas Tomcat does. So, I opened the war file and moved the guts into /wiki and booted. After the usual alzheimers (this is in the pc), it started running. I shut down then restarted and it appears to run fine. When I plugged that same installation into my MacBook, it didn't have alzheimers; it crashed. SQLException Table not found in statement [select * from jam_virtual_wiki]. Now I have to wonder if it would work if I renamed /wiki to /jamwiki. Just tried that. It didn't help. --Jack 12-Mar-2007 10:38 PDST

Interesting observation: if you empty the data directory completely, and reboot, JAMWiki still thinks it is there and tries to interact with the database. This strongly suggests that it writes a virtualwiki somewhere, apparently somewhere other than the data directory, and it goes there on startup. Some of that is hinted at from looking at the code in WikiDatabase.setupDefaultVirtualWiki(). One wonders how JAMWiki remembers it has a database when the database has been removed. --Jack 12-Mar-2007 12:43 PDST
Found it! JAMWiki makes a file WEB-INF/classes/jamwiki-properties. Remove that and the system goes brain dead. --Jack 12-Mar-2007 13:00 PDST
Jack, I'd be really interested in exactly how you got this all up and running with Jetty on a thumb drive. I've been using TiddlyWiki for portable reference material, but it just... lacks something that a more traditional wiki offers. If you could post some instructional / tutorial material somewhere on how you got this running that'd be super! - DanR

Categories[edit]

Copied from the Feedback page:

Hi recently I added a new page on my local installation and closed the page with a category-tag. After saving I noticed a writing-mistake in the category-tag. Is there a possibility to correct the mistake? My correction was not substituted it was added, so the Category points to the wrong and to the right-written category-item. -- Michael.Habbert 17.11.2006 15:54 EST

Hi Michael - I'm not sure I understand the problem. If you have two category tags for a topic the topic will show up in both categories. If one of the category tags is removed the topic will be removed from that category. Can you provide a specific example of where that might not work? -- Ryan 17-Nov-2006 07:29 PST
Hi Ryan - lets write an example: I wrote: [[Category:Techik]] at the bottom of a page. So when I noticed the writing mistake I corrected my tag to: [[Category:Technik]] and got on the saved page Kategorien: Techik Technik! I found no way to erase or correct the wrong written Category, because on the source-code of the page i only found: [[Category:Technik]]. So is there a possibility to erase the wrong Category? -- Michael Habbert 20:24 CET
Did you customize the namespace names in your /WEB-INF/classes/namespaces.properties file? I'm assuming the answer is yes since your category namespace is "Kategorien". If that's the case then there is probably a bug in the code that is causing categories to not be updated properly. I'll add it to the to-do list and investigate. -- Ryan 18-Nov-2006 17:18 PST
Hi Ryan, funny but no! I switched to german language, yes your right, but I did not change the /WEB-INF/classes/namespaces.properties file! So I write inside the page: [[Category:Technik]] and see on the rendered page Kategorien: Technik. Any Ideas? -- Michael Habbert 10:30 CET
OK, sorry - I misread your earlier comment. I suspect that if you click on the "Rebuild Search Index" button (not sure what it reads in German) from the Special:Admin page on your Wiki that it may resolve the issue. I know that category addition and removal works when I test, but I'll investigate more tonight to see if I can find any possible problems. Sorry for the trouble! -- Ryan 19-Nov-2006 08:00 PST
Hi Ryan, Not a real problem for me but still a mistake;-). My Category-Page shows the two items: Technik and the unused one: Techik. A rebuild fo the Search Index had no effect. not so disturbing at all... Michael Habbert 17-Dec-2006 11:58 PST
I'm unable to reproduce this problem, so it's possible that whatever is wrong was solved in a later JAMWiki version. I'd feel better if I could reproduce the problem and KNOW it's solved, however, so if there's any additional information you can provide I'd be grateful. In the mean time, to fix your wiki you should be able to delete the offending category from the jam_category table (delete from jam_category where category_name = 'Category:Techik'). -- Ryan 18-Dec-2006 22:38 PST

Tomcat Virtual Host Problem[edit]

I am running JamWiki on a Gentoo machine, with Apache2, Tomcat 5.5, Java 1.5.0 with JamWiki version 0.6.3 I have configured a virtual host in Apache and Tomcat that forwards requests for a particular subdomain to my JamWiki instance. ex. wiki.mydomain.com -> mydomain.com/jamwiki

When I attempt to access JamWiki using wiki.mydomain.com, it returns the following error:

javax.servlet.jsp.JspException: The database is already in use by another process: org.hsqldb.persist.NIOLockFile@8e77b054[file =/var/lib/tomcat-5.5/webapps/jamwiki/database/jamwiki.lck, exists=true, locked=false, valid=false, fl =null]: java.lang.Exception: checkHeartbeat(): lock file [/var/lib/tomcat-5.5/webapps/jamwiki/database/jamwiki.lck] is presumably locked by another process.

However, if I access JamWiki using the server's IP address and port 8080 (where Tomcat is listening by default), then it works fine. I have stopped/restarted Tomcat and the lock clears each time, so it is not an issue of the lock file not being removed on shutdown.

I have also tried JamWiki version 0.6.2. When I attempt to access it using the subdomain name, I get nothing. When I access it by IP, it works fine. My first guess was that I had misconfigured the Apache or Tomcat virtual host settings, but I can't find anything wrong with the way it is -- the setup is quite minimal.

Any feedback would be appreciated.

Thanks for the report. I'm not sure if this is something that I'll be able to easily reproduce, so it may be tough to debug. One request (if possible) - could you download the latest version of HSQL from http://internap.dl.sourceforge.net/sourceforge/hsqldb/hsqldb_1_8_0_9.zip and see if the problem still occurs? It seems like if this is a database locking issue then the latest version might address the problem. -- Ryan 12-Feb-2008 18:25 PST
I believe that this issue may be resolved by the changes dallas made, including revision 2091 through revision 2095. These changes will be included in JAMWiki 0.6.5. Once it is released (which hopefully will be before the end of this weekend) any confirmation about whether the problem still occurs would be appreciated. -- Ryan 15-Mar-2008 11:08 PDT

Search Indexing[edit]

Moved from the Feedback page:

Hi Ryan, I am running JamWiki 0.5.1. And I realised that the search does not return the results correctly. I have tried to search for a topic that was created, however the search results does not show the topic. I will have to click on "Go To" then it will direct me to the topic. I am unable to upgrade the JamWiki version because it has been customised before. Do you have any solutions to this? Thanks. -- Kwee Tin 17-May-2007 00:59 PDT

What is the term you're searching for, and how does it appear in the page? Could you create that same topic here on jamwiki.org so that we can see if the bug is reproducible? -- Ryan 17-May-2007 08:54 PDT

Hi Ryan, after I did some testing, I realised that I have to edit all the pages in order to generate the search index. After that, the search results display all related topics to the search term. May I know if there is a way to generate the search index by one click? Thanks. -- Kwee Tin 20-May-2007 17:58 PDT

Pages should be automatically added to the index when they are created, but if you are using some other method to create pages then you can use the "Rebuild search index" option from the Special:Maintenance page. Note that if you have a lot of pages it will be slow. -- Ryan 20-May-2007 18:08 PDT

strange <form> tag on RecentChanges page[edit]

A snippet of the HTML delivered by "Special:RecentChanges" on my jamwiki instance looks like this:

<form name="num-changes" method="get" action="&lt;a href=" jamwiki="" en="" special:recentchanges="" title="Special:RecentChanges">RSS Feed"&gt;

that's obviously not right ;) it's produced by the following line in "recent-changes.jsp":

<form name="num-changes" method="get" action="<jamwiki:link value="Special:RecentChanges" />">

It looks to me like the jamwiki:link tag will produce a complete HTML link instead of just an URL (as required for the "action" attribute).

Any ideas what went wrong here? (This occured first on a 0.6.1 install, and i still see it after upgrading to 0.6.6) -- Luzi 25-Jul-2008 02:15 PDT

Thanks, looks like there may be a typo in the JSP - it should be quick to fix, but I'll have to take a look at it later as it's been a while since I looked at the tag libraries and I can't remember what parameter is used to spit out just a URL instead of a full <a> tag. -- Ryan 25-Jul-2008 07:37 PDT
If the original reporter is still around, what application server are you using? This code seems OK on my local Tomcat 5.0 installation. -- Ryan 06-Sep-2008 14:18 PDT

0.6.0 Upgrade Issues[edit]

  1. When a "Remember Me" cookie is set the upgrade process can fail with the message "You do not have permission to access Special:Upgrade". Clearing cookies fixes the problem.
  2. After upgrading today with Oracle the system was not using the correct SQL file - restarting Tomcat resolved the issue.

-- Ryan 30-Aug-2007 09:44 PDT

I've been staring at the code for a while now trying to figure out how either or the two issues above could occur, and so far I haven't found anything. I'm suspicious about whether the problem was perhaps a failure to clear cached Tomcat files, which would allow old code to run. I'll leave this issue open, but it may be a non-issue. -- Ryan 03-Sep-2007 00:14 PDT
Changes to the code in the past two years (specifically the Spring Security 2.0 upgrade and some modifications to how SQL properties are loaded) have likely fixed this issue, although I'm marking it unresolved as the bug was difficult to reproduce in the original report. -- Ryan • (comments) • 30-Aug-2009 18:58 PDT

Character set problem[edit]

Moved from the Feedback page:

I am installed jamwiki 0.6.0 on FreeBsd6.2, tomcat5.5, mysql5; And backup jamwiki webapps, database, upload directory and changed my system to ubuntu 7. After that i restore mysql, and jamwiki webapps to ubuntu. And configure tomcat uriencoding, mysql database character set to utf8, some configure on jamwiki.properties. Now encoding is not work. Old articles are colored "RED". My Tomcat URI configuration is:

    <Connector port="8009" 
              enableLookups="false" redirectPort="8443" protocol="AJP/1.3" URIEncoding="UTF-8" 
               maxThreads="350" connectionTimeout="15000" compression="on"/>

Is there any error;

Are the old topics showing up in your wiki? It sounds like JAMWiki is not finding its data in the database, but I may not be understanding the problem correctly. -- Ryan 26-Oct-2007 19:23 PDT

Jboss logging problems[edit]

Moved from the Feedback page:

Hi everybody, running JamWiki on jboss 4.0.5, I experienced some problems regarding logging. Fisrt: during deployment, the server complained with class cast exception on creating logger appenders and handlers

...
2008-04-08 08:26:54,249 ERROR [STDERR] log4j:ERROR A "org.jboss.logging.util.OnlyOnceErrorHandler" object is not assignable to a "org.apache.log4j.spi.ErrorHandler" variable.
2008-04-08 08:26:54,249 ERROR [STDERR] log4j:ERROR The class "org.apache.log4j.spi.ErrorHandler" was loaded by 
2008-04-08 08:26:54,250 ERROR [STDERR] log4j:ERROR [WebappClassLoader
  delegate: false
  repositories:
    /WEB-INF/classes/
----------> Parent Classloader:
java.net.FactoryURLClassLoader@6343c4
] whereas object of type 
2008-04-08 08:26:54,251 ERROR [STDERR] log4j:ERROR "org.jboss.logging.util.OnlyOnceErrorHandler" was loaded by [org.jboss.system.server.NoAnnotationURLClassLoader@c2a132].
2008-04-08 08:26:54,375 ERROR [STDERR] log4j:ERROR Could not create an Appender. Reported error follows.
2008-04-08 08:26:54,376 ERROR [STDERR] java.lang.ClassCastException: org.jboss.logging.appender.DailyRollingFileAppender
...

After I deleted log4j-1.2.9.jar from the lib directory of wiki, the deployment was successful without problems. however during runtime of application, the log messages are send with wrong level. example :

...
09:32:39,292 INFO  [Server] JBoss (MX MicroKernel) [4.0.5.GA (build: CVSTag=Branch_4_0 date=200610162339)] Started in 42s:876ms
09:33:35,731 ERROR [STDERR] Apr 8, 2008 9:33:35 AM org.jamwiki.utils.WikiLogger info
INFO: Parse time (parseHTML) for SandBox (0.14 s.)
09:33:35,747 ERROR [STDERR] Apr 8, 2008 9:33:35 AM org.jamwiki.utils.WikiLogger info
INFO: Parse time (parseHTML) for LeftMenu (0.016 s.)
09:33:35,762 ERROR [STDERR] Apr 8, 2008 9:33:35 AM org.jamwiki.utils.WikiLogger info
INFO: Parse time (parseHTML) for BottomArea (0.0 s.)
09:33:35,762 ERROR [STDERR] Apr 8, 2008 9:33:35 AM org.jamwiki.utils.WikiLogger info
INFO: Loaded page /wiki/en/SandBox (0.25 s.)
...

it seems like the actual message is included into jboss error message As I have noticed several users around here running jamwiki on jboss, I would be grateful for any advice. Thanks Aryan

This is the first report I've seen like this, and unfortunately the only installation notes that JBoss users have provided is Installation#JBoss. Based on the log messages you've provided it looks like something in the JBoss shared lib or configuration settings is conflicting with JAMWiki's logging settings, but I don't use JBoss regularly so I'm not sure. Hopefully another JBoss user can provide some insight, and if you figure out the issue please feel free to update the Installation#JBoss notes with any relevant information. -- Ryan 08-Apr-2008 08:00 PDT

fowlks: I'm using JBoss 4.2 and am experiencing the same issue with no resolve. Any updates on this issue would be much appreciated. Thanks -

Problem with german umlaut in article and category title[edit]

Hello, i am running JamWiki v0.6.6 on Tomcat v6.0.16. I'm using SQL Server 2005 with the following JDBC-driver: com.microsoft.sqlserver.jdbc.SQLServerDriver . Although I found lots of articles about resolved issues with german umlaut, i still encounter problems in article and category titles. Any solutions I probably haven't found?

My internet access is going to be limited so I may not be able to respond for a bit, but can you provide a bit more information? Is it only umlaut characters? If you copy & paste similar content to jamwiki.org do you see the same problem? Finally, do you see the problem when you preview a topic, or only when it is saved? As far as I'm aware all UTF-8 issues have been resolved, but it's possible that there is something specific to either the character set you're using or else SQL Server that might be causing issues. -- Ryan 12-Jun-2008 05:08 PDT

Logout doesn't log user out[edit]

I'm running JAMWiki v0.6.6 on Tomcat 5.x with MySQL and the JConnector.

Once a use is logged in they cannot log out. Click on the logout link on the top of the page does not appear to do anything. As Admin, I clicked on Log out and then was still able to goto the admin page.

Michael 12-Jun-2008 11:16 EDT

Do you see any error messages in the log? I haven't personally experienced this problem, and your report is the first I've seen of it. Can you also verify whether you can logout correctly on jamwiki.org so that we can try to narrow it down? I'm currently on vacation (this is being written from a hotel in Iceland) and will have spotty internet access for the next four weeks, but I will definitely investigate as time permits. -- Ryan 13-Jun-2008 02:21 PDT

Users with '_' in the nickname cannot edit pages[edit]

Hi, with my nickname (alex_custov) I can login in Jamwiki, but I cannot edit any page. There is no 'Edit' link at the top of the page.

My name "Alex Custov" and "User comments" are highligted with red at the top of the page.

Also, when trying to upload a file, it gives "You do not have permission to access Special:Upload."

Also, when trying to update account it gives "Неизвестная ошибка системы (Unknown system error): java.lang.Exception: Failure while executing update jam_wiki_user set login = ?, display_name = ?, last_login_date = ?, last_login_ip_address = ?, default_locale = ? where wiki_user_id = ?."

Jamwiki is 0.6.3, server configuration is PostgreSQL 8.2, Apache2 2.2, Sun Java SDK 1.5, Apache Tomcat 5.5, memcached 1.2

Jamwiki is installed at http://www.linux.org.ru/wiki

How to fix it? Thanks.

Thanks for the report. I am in the processing of flying home after a long vacation, and will investigate after I get back home (in the next 1-2 days). I suspect this one will be easy to solve and is related to the fact that JAMWiki converts underscores in topic names to spaces. Please add a reminder comment if this bug report isn't updated by end-of-day Sunday July 13. -- Ryan 11-Jul-2008 18:11 PDT
I'm not going to get a chance to investigate this issue today, but hopefully in the next day or two I'll have more time. Please remind me if I forget, as things are busy after being on vacation for so long. -- Ryan 13-Jul-2008 11:09 PDT
Hi Ryan, how is it going? :)
Thanks for the reminder. This issue is #1 on my to-do list when I get some time for JAMWiki development, but sadly I haven't had a chance yet. Hopefully this weekend, although I just got drafted to do some work for a side project on Saturday. In terms of when this fix would be available in a release, 0.7.0 won't happen for a long time, so if this issue can be safely fixed it might be worth putting a 0.6.7 release together that includes it. Sorry for the delay, and thanks for following up! -- Ryan 17-Jul-2008 20:33 PDT
I finally got a chance to try to reproduce this issue, but when I create the login alex_custov on my local machine it seems to work for me with both the current JAMWiki code and the 0.6.3 version. A few questions:
  • Just to verify, can users without underscores edit pages?
  • Have you made any changes to the /WEB-INF/applicationContext-acegi-security.xml file?
  • Are there any other customizations you might have made that would affect editing pages?
Sorry for taking so long to investigate this problem - hopefully once I'm able to reproduce the issue the fix will be easy to make. -- Ryan 20-Jul-2008 20:33 PDT
Sorry, Ryan. Probably there is a bug in jamwiki configuration. I'm not an administrator of that site, and the main problem is that administrators don't want to investigate and fix this problem. They use different tricks to not to do this. Sorry, and consider this bug to be closed.
No need to apologize - I suspect that there might actually be a real bug here, but without knowing how to reproduce it I'm probably not going to be able to fix it. Let's leave this bug report open and see if anyone else encounters the same issue and can provide more detail on how to reproduce it. -- Ryan 22-Jul-2008 08:12 PDT

Edit Toolbar is Missing in 0.6.6[edit]

I just upgraded from 0.6.2 to 0.6.6 and have found all Edit Toolbars missing. I have verified that the Toolbar Button Images are intact within the images folder.

Environment: Tomcat 5.5.25 Database: JAMWiki Internal

Thanks - Scott

What browser are you using? IE6? -- Ryan 19-Sep-2008 13:26 PDT
I just tried IE6, and it seems OK. Is your wiki publicly available? I'm curious if maybe there is a CSS or other issue specific to your setup. -- Ryan 19-Sep-2008 14:43 PDT

Unable to Move or Delete Page, "Invalid or missing topic name" message[edit]

This page (note underscores and lower case letters in topic title) displays OK, but Im unable to move or delete it: http://benhutchison.com/en/Tools_And_Technologies

The topic name "Tools_Frameworks_and_Platforms" seems to be invalid as I get message "Invalid or missing topic name." (why?). Once something has an invalid name, you dont seem to be able to get out of that situation by moving it to a valid name.

What version of JAMWiki are you using? Also, what steps did you take to create a topic with underscores in it? I think the code should automatically escape those to spaces. I don't think I've seen this problem before, but will do some investigation when time permits. -- Ryan 18-Nov-2008 07:57 PST
To answer your questions: version 0.6.7. I did nothing special to create topic with underscores, I wanted to get spaces. The fact that it hasnt escaped is part of the bug, I think. I moved to the topic to another name - Could that be related?
Sorry for taking so long to get back to you. I havent' had any time at all this week to devote to JAMWiki, but I'm hoping to be able to investigate this issue this weekend. If I can reproduce the problem then it should be reasonably easy to make a fix available. -- Ryan 21-Nov-2008 10:54 PST

I tried reproducing this issue in the following ways, but all of them worked as expected. Can you provide the exact steps to reproduce? It may be platform-specific, or there may be another issue, but without being able to reproduce it will be next to impossible for me to fix:

  • Enter a topic name in the URL for a topic that doesn't exist (Ryan_Test) and then edit using the edit tab of the resulting page.
  • Enter a topic name in the URL for a topic that doesn't exist (Ryan_Test) and then edit using the edit link of the resulting page.
  • Enter a non-existent topic name in an existing topic, then click on the resulting link.
  • Search for a non-existent topic name then click on the resulting link in the "not found" page.

-- Ryan 23-Nov-2008 19:40 PST

Not able to upgrade from 0.6.7 to 0.7.2[edit]

i m trying to upgrade to 0.7.2 and got following Upgrade from JAMWiki 0.6.7 to JAMWiki 0.7.2 An unknown system error has occurred. The error message is: java.sql.SQLException: Table not found in statement [select 1 from jam_wiki_user_info where login = ? and encoded_password = ?].

i m using internal database only. and tomcat version is apache_tomcat_6.0.16

i have already taken a backup of my data before destroying 0.6.7

now getting that error so not sure how to resolve.

Can you confirm that you followed all of the steps in Installation#Upgrades? That message is indicating that JAMWiki can't find the old database information which shouldn't happen if the HSQL files are still present and the jamwiki.properties file is still pointing to the same locations. If all steps in the upgrade have been followed could you add any error messages from your jamwiki.log file to this bug report? Thanks! -- Ryan • (comments) • 17-Aug-2009 09:31 PDT

ok so in a way now i m totally lost. I am just left with the database backup of 0.6.7. I do not mind setting up a new installation. But i want my data/pages created in 0.6.7. So, how can i do that?

Issues/questions after migration from 0.6.7 to 0.7.2[edit]

hie i recently migrated to 0.7.2 Before this when i was using 0.6.7 after downlading 0.6.7 i renamed the exploded war name to wiki from jamwiki_0.6.7 and then did the installaton. So i got a default url as http://localhost:8080/wiki/en i created the data folder named jamwikidata also inside wiki folder.

So while upgrading i downloaded and exploded jamwiki_0.7.2 war and copied req files to upgrade. Finally after everything now my url is http://localhost:8080/jamwiki_0.7.2/en So, this is bad as what i want is old url wit this upgraded version. how to do this?

Unfortunately this isn't enough information for me to diagnose the problem, but it sounds like something that will need to be solved with your web application server as JAMWiki has no control over the root web context ("wiki"). Hope that helps! -- Ryan • (comments) • 20-Aug-2009 07:59 PDT


INSTALL PROBLEMS[edit]

Moved from the Feedback page:

Hi there, I hope I'm posting this in the right place and I'm not missing something that is already documented but I am having a real issue installing JAMWiki. I'm a complete newbie (sorry). My system details are:

  • Windows XP
  • Tomcat 5.0.28
  • JDK 1.6.0
  • ORACLE 9.2

I download the jamiwiki-0.5.2.WAR file and place it in the webapps folder in my Tomcat directory. I then start the Tomcat service and the .war is made into a folder. I then navigate my browser (MSIE7) to http://localhost:8080/jamwiki and I am faced with the config screen. I then complete the details thus:

  • C:\Tomcat\Tomcat 5.0\webapps\jamwiki\WIKIFILES
  • External Database
  • oracle.jdbc.driver.OracleDriver
  • oracle
  • jdbc:oracle:thin:@192.9.200.55:1521:oracl
  • JAM
  • password
  • C:\Tomcat\Tomcat 5.0\webapps\jamwiki\DOCS
  • /DOCS/
  • administrator
  • password
  • password

I then click Save Changes and in red writing at the top of the screen I get a message saying: An unknown system error has occurred. The error message is: Failure while executing insert into jam_topic_version ( topic_version_id, topic_id, edit_comment, version_content, wiki_user_id, edit_type, wiki_user_ip_address, edit_date, previous_topic_version_id ) values ( ?, ?, ?, ?, ?, ?, ?, ?, ? ). If I then continue with the installation I have to re-enter the administrator u/n and p/s then I get a warning stating that I am about install though there is already a JAMWiki set-up, I then click Continue Install and I am faced with what looks the the starting page of JAMWiki (though not loaded properly) and in edit mode. If I try to type something in and click Save I then get this message: An unknown system error has occurred. The error message is: java.lang.Exception: Failure while executing insert into jam_topic ( topic_id, virtual_wiki_id, topic_name, topic_type, topic_read_only, current_version_id, delete_date, topic_admin_only, redirect_to ) values ( ?, ?, ?, ?, ?, ?, ?, ?, ? ). I know there is an issue somewhere with the Oracle connection but I have no idea how to resolve it. If I go into the Oracle Enterprise Manage Console I can see that JAMWiki has created the schema though the tables are all empty. Do I need to give the user JAM any special system privileges other than those included in Connect and Resource roles? I hope I have given enough information for someone to help me? though if not PLEASE contact me at ben@lynxinfo.co.uk. Many thanks for reading my problem, Ben Sayers- 15-Mar-2007 14:41 GMT

Thanks, I'll take a look this weekend. Let me know if you have any other information you think might be relevant. -- Ryan 15-Mar-2007 22:31 PST

Hi Ryan, I can't think of anything that may help you but do not hesitate to e-mail me if you need any details at all. Many thanks for your time in looking in to this, Ben- 16-Mar-2007 12:48 GMT

Sorry, I haven't had a chance to look at this yet. One question though - which Oracle driver are you using? classes12.zip won't work - you need to use the ojdbc14.jar file to avoid a problem with CLOB support. Also, let me know if there are any messages in the logs that look relevant - the log file is configured from /WEB-INF/logging.properties. Last of all, there have been some problem reports when deploying the application from a WAR file, so you might try exploding the war file and deploying that way. Hopefully one of those will shed some light on the problem! -- Ryan 19-Mar-2007 21:37 PST

Where does the Oracle driver need to be installed? I have put ojdbc14.jar here: C:\oracle\ora92\jdbc\lib is this right? I have looked through the log file and don't seem to have any database errors. I will try another fresh install using an exploded version of the WAR file and I'll post what happens. Many thanks for your support, Ben- 20-Mar-2007 11:10 GMT

Hi Ben, you have to place the Oracle driver (ojdbc14.jar) in C:\Tomcat\Tomcat 5.0\common\lib. You will have to drop all the tables that were already created in your oracle server then do a fresh install again. Hope this helps. -- Kwee Tin 21-Mar-2007 17:56 PST

I already had the ojdbc14.jar in the right directory but it's good to know that it's in the right place. Ryan, How do I use the exploded version? I unzip it and place the folder/files that are created in the webapps folder and then how do I go about setting it up and seeing it in my browser? Many thanks for your continued help, Ben- 23-Mar-2007 09:46 GMT

Hi. I too have the exact same problem, I'm on WebSphere Application Server v6.0.21 + Oracle 9.2.0.8. Any update on this particular problem? My guess is that it has to do with the "exploded WAR" installation. I thought that by getting the first configuration screen the webapp was installed correctly. Any step-by-step instruction for installing the WAR file on WAS v6.0? Thx, Bruf- 22-Jul-2008 11:28 EST

MORE INSTALL PROBLEMS[edit]

Moved from the Feedback page:

Hi, I am having an issue installing JAMWiki. I'm a complete newbie (imagine that). My system details are:

  • Fedora Core release 6 (Zod)
  • apache-tomcat-6.0.13
  • Java 1.5.0_06-b05
  • embedded version of the HSQL database

I downloaded the latest revision 1520 using svn. Built it, started tomcat, and deployed the war to tomcat. navigated to http://localhost:8080/jamwiki-0.6.0 and ended up at http://localhost:8080/jamwiki-0.6.0/en/Special:Setup

So far so good. Here is the config info i entered:

  • /full/path/to/apache-tomcat-6.0.13/webapps/ROOT/jw
  • Internal Database
  • org.hsqldb.jdbcDriver
  • hsql
  • jdbc:hsqldb:file:/full/path/to/apache-tomcat-6.0.13/webapps/ROOT/jw/database/jamwiki
  • sa
  • /full/path/to/apache-tomcat-6.0.13/webapps/ROOT/jw_files
  • /jw_files/.
  • jamwiki
  • jamwiki
  • jamwiki

I then click Save Changes and I got the following red letter error: A connection could not be established with the database; please re-check the settings: Cannot get a connection, pool error: Could not create a validated object, cause: ValidateObject failed

And the following error from the /full/path/to/apache-tomcat-6.0.13/temp/jamwiki.log.0 file:

2007-07-08 01:58:14,063 CONFIG: org.jamwiki.Environment - Loading properties from /home/vds/downloads/apache-tomcat-6.0.13/webapps/jamwiki-0.6.0/WEB-INF/classes/sql.ansi.properties 2007-07-08 01:58:18,318 SEVERE: org.jamwiki.utils.Utilities - Invalid database settings org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool error: Could not create a validated object, cause: ValidateObject failed at org.apache.commons.dbcp.PoolingDriver.connect(PoolingDriver.java:184) at java.sql.DriverManager.getConnection(DriverManager.java:525) at java.sql.DriverManager.getConnection(DriverManager.java:193) at org.jamwiki.db.DatabaseConnection.setUpConnectionPool(DatabaseConnection.java:315) at org.jamwiki.db.DatabaseConnection.testDatabase(DatabaseConnection.java:334) at org.jamwiki.utils.Utilities.validateSystemSettings(Utilities.java:1236) at org.jamwiki.servlets.SetupServlet.validate(SetupServlet.java:199) at org.jamwiki.servlets.SetupServlet.initialize(SetupServlet.java:120)

If anyone can help me understand what I've done wrong, it would be greatly appreciated.

Just to confirm, the "File-system directory" that you specified is a directory that already exists on your system, and the permissions are such that the JAMWiki install will be able to create files and directories within it? If the file exists and permissions are OK it's possible that there's some other security issue - I was surprised during a recent install on the latest Debian by some additional permissions that had to be updated before new webapps could be installed - I ended up making significant modifications to my catalina.policy file that can be found within the Tomcat install directory. If that is the problem you're facing you may want to google for "java.security.AllPermission" and "Tomcat". Hope that helps! -- Ryan 07-Jul-2007 23:10 PDT

Ok, I tried adding the following to my catalina.policy file:

grant codeBase "file:${catalina.home}/webapps/jamwiki-0.6.0.war" {
  permission java.security.AllPermission;
};

grant codeBase "file:${catalina.home}/webapps/jamwiki-0.6.0/WEB-INF/lib/-" {
  permission java.security.AllPermission;
};

grant codeBase "file:${catalina.home}/webapps/jamwiki-0.6.0/WEB-INF/lib/commons-dbcp-1.2.2.jar" {
  permission java.security.AllPermission;
};

Still getting the same error :-/ I'm clueless.

I'm not sure if this would help, but here are a few sample entries I would use for an internal-database setup:
File-system directory
/home/wrh2/wiki/ - Note, make sure this directory exists and that permissions are set so that the installer can write to it (777 if you want to be completely sure)
Persistence
Internal database
File upload directory
path-to-webapp/files/ - Note that this directory should already be created when the install is started.
Relative path from web server root to file upload directory
webapp-name/files/
Not sure if that will help - sorry for all of the trouble! I swear installs are usually a very simple process! -- Ryan 08-Jul-2007 10:45 PDT

Well, ok, I tried chmod 0777 on both the File-system directory and the upload dir. And I know they are there before I hit any jsps. My File-system directory is /full/path/to/apache-tomcat-6.0.13/webapps/ROOT/jw

And we know that the app can write into it ... here are the files that it has written so far :

$ ls -l jw/database/
total 32
-rw-rw-r-- 1 vds vds  16 Jul  8 16:47 jamwiki.lck
-rw-rw-r-- 1 vds vds 153 Jul  8 16:46 jamwiki.log
-rw-rw-r-- 1 vds vds 419 Jul  8 16:27 jamwiki.properties
-rw-rw-r-- 1 vds vds 101 Jul  8 16:27 jamwiki.script

I then tried changing to -R 777 permissions on the sub directory /full/path/to/apache-tomcat-6.0.13/webapps/ROOT/jw/database that it created ... still getting the same error shown above.

And I can see I'm getting a NoSuchElementException when the db connection pool executes the pool.borrowObject() method. The trace shows it near the bottom as follows:

Caused by: java.util.NoSuchElementException: Could not create a validated object, cause: ValidateObject failed at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:871) at org.apache.commons.dbcp.PoolingDriver.connect(PoolingDriver.java:176) ... 54 more

Thanks for the help so far ... maybe I should just try an use an external DB ... Anymore advice would be appreciated?

I'm out of ideas. If anyone else has run into this issue perhaps they can contribute, but when it comes to catalina.policy issues (assuming that's what this is) I'm pretty clueless about what needs to be done. Sorry! -- Ryan 08-Jul-2007 18:34 PDT

I went ahead and posted this issue on the apache common mailing list for dbcp to see if anyone there can help me with this issue: click here to go to the mailing list archive of this issue

Maybe some folks more familiar with the apis throwing the exception know what this is :-/

Phil, over on the commons-user list, gave the following comment. It appears quite insightful, but I'm not smart enough to make use of his comment:

Looks like you have the pool configured to validate objects when they

are borrowed (testOnBorrow = true) and the validation is failing. This appears to be configured in the setupConnectionPool method here: in the source code of jamwiki Most likely the validation query is incorrect or failing to return at least one row.

hth, Phil

I can confirm that the validation query is correct. It's likely that it's failing to return a row, but that would probably be due to a setup problem of some sort. Again, I'm suspicious of the Fedora security implementation and suspect that some permission needs to be enabled, but I'm at a loss to say what permission is needed. -- Ryan 09-Jul-2007 09:11 PDT

Well, I just got it installed ... sigh ... why is life so difficult? Here is what I did to "fix" the issue.

  1. I compiled my own commons-pool and commons-dbcp jar files
  2. stuck them into the lib directory of jamwiki
  3. moved the old ones out of the way
  4. built a new jamwiki war file
  5. undeployed the old war from tomcat
  6. restarted tomcat
  7. deployed the new jamwiki war.

I went thru the exact same steps outlined above with the setup jsp, and this time got "further" along than the last. It failed when trying to insert a new role :-/, but it got past all of the create steps. Then I remembered that I had set export CATALINA_OPTS=-Djava.security.debug=all in order to try to figure out the "security" issue I was having before, and that was throwing _lots_ of spew into the catalina.log which I felt might be masking an error that I cared about, so I ...

  1. shutdown tomcat again
  2. unset CATALINA_OPTS
  3. restarted tomcat again.

Then I went throught the exact same steps above with the setup jsp for jamwiki, and this time I got the warning that I should UPGRADE if I was upgrading, and to only hit continue if I wanted to continue with this new install because a database had already been created, so I hit continue, and got the edit page for the topic startingPoints ... yay!

Anyway ... it's very unclear to me what the actual problem was earlier. I did not change any permissions at all. Although I did add the "grant" statements noted above to the catalina.policy file, but it was still failing with that until I compiled my own pool and dbcp jars :-/ Makes no sense to me.

Now I am getting the following error: Error A system error has occurred. The error message is: An unknown system error has occurred. The error message is: java.lang.Exception: Failure while executing insert into jam_topic ( topic_id, virtual_wiki_id, topic_name, topic_type, topic_read_only, current_version_id, delete_date, topic_admin_only, redirect_to ) values ( ?, ?, ?, ?, ?, ?, ?, ?, ? ).

Not sure why ... but it's: Caused by: java.sql.SQLException: Integrity constraint violation - no parent JAM_FK_TOPIC_VWIKI table: JAM_VIRTUAL_WIKI in statement [insert into jam_topic ( topic_id, virtual_wiki_id, topic_name, topic_type, topic_read_only, current_version_id, delete_date, topic_admin_only, redirect_to ) values ( ?, ?, ?, ?, ?, ?, ?, ?, ? )]

If anyone understands this issue, let me know ... thanks.

More bugs[edit]

Hi Ryan, I have summarized some of the bugs i found.
  • While editing null text validation is not done properly. It does accepts null text in all editing.
  • I am using JAMWiki with an external database(MSSQL) and JBoss(4.0.5GA) and jtds driver. The problem i have is during setup. After filling the fields required for external dbconnection and click setup, it goes halfway and stops, later the page cannot be displayed message is seen. Also the dbconnection is working fine with initial setup, configured with local db and then again configuring to external db using admin login. For that the data in the hsql db must be loaded into the external db(here mssql).
  • The all users link is throwing error while using external database.Below is the error.

An unknown system error has occurred. The error message is: java.lang.Exception: Failure while executing BEGIN DECLARE @COUNT int DECLARE @TOP int DECLARE @OFFSET int DECLARE @LIMIT int DECLARE @SQL varchar(300) SET @LIMIT = ? SET @OFFSET = ? SET @TOP = @LIMIT SET @COUNT = (select count(*) from jam_wiki_user_info) IF (@OFFSET > @COUNT) SET @OFFSET = @COUNT IF (@COUNT < @OFFSET + @LIMIT) SET @TOP = @COUNT - @OFFSET SET @SQL = 'select * from ( ' + 'select top '+CONVERT(VARCHAR, @TOP)+' * from ( ' + 'select top '+CONVERT(VARCHAR, @OFFSET + @LIMIT)+' login ' + 'from jam_wiki_user_info + 'order by login ' + ') a ' + 'order by login desc ' + ') b ' + ' order by login ' EXEC(@SQL) END.

  • Deleting topics is handled by passive deletion. After deletion of a particular topic, if user wants to re-create the same topic again, following error is thrown.

An unknown system error has occurred. The error message is: java.lang.Exception: Failure while executing insert into jam_topic ( topic_id, virtual_wiki_id, topic_name, topic_type, topic_read_only, current_version_id, delete_date, topic_admin_only, redirect_to ) values ( ?, ?, ?, ?, ?, ?, ?, ?, ? ).

  • LDAP authentication is not working properly.(Anyone who have used LDAP in JAMWiki help me!!!)
  • Anonymous users are able to upload file upon which restriction must be posed.

(Note: I have tried 0.6.0 beta2 release also. In that too i deselected the ROLE_UPLOAD for anonymous users. But still anonymously file is being uploaded.)

  • Regarding DB2 database, it does not support constraint and index names greater than 18 characters. Some of the constraint is more than the specified length.

Hope u would look into these issues before the final release.

--yesesnono 20-Aug-2007 02:52 PDT

Thanks for the report - I'll definitely look through each of these later tonight. If there are any log messages related to the setup issue that you can provide it would be a big help. As to the LDAP issue, the current implementation is very basic (I just installed OpenLDAP and made sure I could connect/authenticate) so I may need to wait until someone with an actual LDAP setup is able to update the implementation. The rest of your issues are things that I think can be addressed, so hopefully a beta3 can be prepared soon that addresses them, with a final release to follow shortly after that. Thanks again for the detailed report! -- Ryan 20-Aug-2007 09:17 PDT
Some responses:
  1. It should be OK to edit a topic and remove all content - this saves an empty string as the topic content. I know that Oracle converts empty string to null values, which caused problems in earlier JAMWiki versions. Is that same problem occurring with another database?
  2. Please let me know any message from the logs - I don't have a DB2 or MSSQL database to test with, so it is possible a setup bug has been introduced that affects on of those databases.
  3. This error is definitely specific to MS SQL - I didn't have a chance to investigate further yet, but if there are any additional errors in the logs they might contain additional detail. If not I suspect it will be possible to address the issue after looking more closely at the code.
  4. Again, I suspect that this might be database-specific as I haven't seen it before using Oracle, Postgres, HSQL or MySQL. Was this error seen with MS SQL or DB2?
  5. See the comment above about LDAP - I'll need help to get that working, so anyone willing to write code or act as a guineau pig, speak up!
  6. AWESOME catch on the permission issue. It turns out that the new code would add new permissions for anonymous users, but did not remove them without a restart or the expiration of some cached objects. revision 1800 should fix the problem.
  7. Unless someone else does it first I'll go through the /WEB-INF/classes/db2.properties file and trim constraint names within the next few days - I may be busy tomorrow night, but hopefully by Wednesday or Thursday.
Thanks again for the thorough bug reports - there aren't a lot of people that use DB2 or MS SQL with JAMWiki, so unfortunately those databases are likely to be a bit buggier than others. -- Ryan 20-Aug-2007 23:19 PDT

Hi Ryan,

  • There is no bug occuring in database due to null text in MSSQL or DB2 but it is still saved as an empty content.
  • Below is the log occured while trying to connect directly to the external DB(MSSQL) during set up.
Server Log:
2007-08-22 19:42:34,212 INFO  [org.jboss.system.server.Server] JBoss (MX MicroKernel) [4.0.5.GA (build: CVSTag=Branch_4_0 date=200610162339)] Started in 1m:1s:736ms
2007-08-22 19:43:38,509 ERROR [STDERR] Aug 22, 2007 7:43:38 PM org.jamwiki.utils.WikiLogger warning
WARNING: Property file C:\Program Files\jboss-4.0.5.GA\server\default\.\deploy\JAMWiki.war\WEB-INF\classes\jamwiki.properties does not exist
2007-08-22 19:43:38,525 DEBUG [org.acegisecurity.intercept.web.PathBasedFilterInvocationDefinitionMap] Candidate is: '/en/Special:Setup'; pattern is /**; matched=true
2007-08-22 19:43:38,525 DEBUG [org.springframework.beans.factory.support.DefaultListableBeanFactory] Returning cached instance of singleton bean 'httpSessionContextIntegrationFilter'
2007-08-22 19:43:38,525 DEBUG [org.springframework.beans.factory.support.DefaultListableBeanFactory] Returning cached instance of singleton bean 'logoutFilter'
2007-08-22 19:43:38,525 DEBUG [org.springframework.beans.factory.support.DefaultListableBeanFactory] Returning cached instance of singleton bean 'authenticationProcessingFilter'
2007-08-22 19:43:38,525 DEBUG [org.springframework.beans.factory.support.DefaultListableBeanFactory] Returning cached instance of singleton bean 'rememberMeProcessingFilter'
2007-08-22 19:43:38,525 DEBUG [org.springframework.beans.factory.support.DefaultListableBeanFactory] Returning cached instance of singleton bean 'anonymousProcessingFilter'
2007-08-22 19:43:38,525 DEBUG [org.springframework.beans.factory.support.DefaultListableBeanFactory] Returning cached instance of singleton bean 'exceptionTranslationFilter'
2007-08-22 19:43:38,525 DEBUG [org.springframework.beans.factory.support.DefaultListableBeanFactory] Returning cached instance of singleton bean 'filterInvocationInterceptor'
2007-08-22 19:43:38,525 DEBUG [org.acegisecurity.util.FilterChainProxy] /en/Special:Setup at position 1 of 7 in additional filter chain; firing Filter: 'org.acegisecurity.context.HttpSessionContextIntegrationFilter@12abadc'

2007-08-22 19:43:38,525 DEBUG [org.acegisecurity.context.HttpSessionContextIntegrationFilter] No HttpSession currently exists - new SecurityContext instance associated with SecurityContextHolder
2007-08-22 19:43:38,525 DEBUG [org.acegisecurity.util.FilterChainProxy] /en/Special:Setup at position 2 of 7 in additional filter chain; firing Filter: 'org.jamwiki.authentication.JAMWikiLogoutFilter@162bd90'
2007-08-22 19:43:38,525 DEBUG [org.acegisecurity.util.FilterChainProxy] /en/Special:Setup at position 3 of 7 in additional filter chain; firing Filter: 'org.jamwiki.authentication.JAMWikiAuthenticationProcessingFilter@18b41da'
2007-08-22 19:43:38,525 DEBUG [org.acegisecurity.util.FilterChainProxy] /en/Special:Setup at position 4 of 7 in additional filter chain; firing Filter: 'org.acegisecurity.ui.rememberme.RememberMeProcessingFilter@1908558'
2007-08-22 19:43:38,525 DEBUG [org.acegisecurity.util.FilterChainProxy] /en/Special:Setup at position 5 of 7 in additional filter chain; firing Filter: 'org.acegisecurity.providers.anonymous.AnonymousProcessingFilter@1226fe1'
2007-08-22 19:43:38,525 DEBUG [org.acegisecurity.providers.anonymous.AnonymousProcessingFilter] Populated SecurityContextHolder with anonymous token: 'org.acegisecurity.providers.anonymous.AnonymousAuthenticationToken@9055e4a6: Username: anonymousUser; Password: [PROTECTED]; Authenticated: true; Details: org.acegisecurity.ui.WebAuthenticationDetails@957e: RemoteIpAddress: 127.0.0.1; SessionId: null; Granted Authorities: ROLE_ANONYMOUS'
2007-08-22 19:43:38,525 DEBUG [org.acegisecurity.util.FilterChainProxy] /en/Special:Setup at position 6 of 7 in additional filter chain; firing Filter: 'org.acegisecurity.ui.ExceptionTranslationFilter@1df2ecc'
2007-08-22 19:43:38,525 DEBUG [org.acegisecurity.util.FilterChainProxy] /en/Special:Setup at position 7 of 7 in additional filter chain; firing Filter: 'org.acegisecurity.intercept.web.FilterSecurityInterceptor@179688d'
2007-08-22 19:43:38,540 DEBUG [org.acegisecurity.intercept.AbstractSecurityInterceptor] Public object - authentication not attempted
2007-08-22 19:43:38,540 DEBUG [org.springframework.web.context.support.XmlWebApplicationContext] Publishing event in context [org.springframework.web.context.support.XmlWebApplicationContext@6742d0]: org.acegisecurity.event.authorization.PublicInvocationEvent[source=FilterInvocation: URL: /en/Special:Setup]
2007-08-22 19:43:38,540 DEBUG [org.acegisecurity.util.FilterChainProxy] /en/Special:Setup reached end of additional filter chain; proceeding with original chain
2007-08-22 19:43:38,540 DEBUG [org.springframework.web.servlet.DispatcherServlet] Testing handler map [org.springframework.web.servlet.handler.SimpleUrlHandlerMapping@3f983f] in DispatcherServlet with name 'jamwiki'
2007-08-22 19:43:38,540 DEBUG [org.springframework.web.servlet.handler.SimpleUrlHandlerMapping] Looking up handler for [/Special:Setup]
2007-08-22 19:43:38,540 DEBUG [org.springframework.web.servlet.DispatcherServlet] Testing handler adapter [org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter@1246bec]
2007-08-22 19:43:38,540 DEBUG [org.springframework.web.servlet.DispatcherServlet] Testing handler adapter [org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter@38ebc3]
2007-08-22 19:43:38,540 DEBUG [org.springframework.web.servlet.DispatcherServlet] Last-Modified value for [/JAMWiki/en/Special:Setup] is [-1]
2007-08-22 19:43:38,540 DEBUG [org.springframework.web.servlet.DispatcherServlet] DispatcherServlet with name 'jamwiki' received request for [/JAMWiki/en/Special:Setup]
2007-08-22 19:43:38,556 DEBUG [org.springframework.web.servlet.DispatcherServlet] Bound request context to thread: org.apache.catalina.connector.RequestFacade@17dc299
2007-08-22 19:43:38,587 DEBUG [org.springframework.web.servlet.DispatcherServlet] Testing handler adapter [org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter@1246bec]
2007-08-22 19:43:38,587 DEBUG [org.springframework.web.servlet.DispatcherServlet] Testing handler adapter [org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter@38ebc3]
2007-08-22 19:43:38,712 ERROR [STDERR] Aug 22, 2007 7:43:38 PM org.jamwiki.utils.WikiLogger info
INFO: Loaded page /JAMWiki/en/Special:Setup (0.125 s.)
2007-08-22 19:43:38,728 DEBUG [org.springframework.web.servlet.view.InternalResourceViewResolver] Cached view [setup]
2007-08-22 19:43:38,728 DEBUG [org.springframework.web.servlet.DispatcherServlet] Rendering view [org.springframework.web.servlet.view.JstlView: name 'setup'; URL [/WEB-INF/jsp/setup.jsp]] in DispatcherServlet with name 'jamwiki'
2007-08-22 19:43:38,728 DEBUG [org.springframework.web.servlet.view.JstlView] Rendering view with name 'setup' with model {dataHandlers=[org.jamwiki.model.WikiConfigurationObject@a06577, org.jamwiki.model.WikiConfigurationObject@65a686, org.jamwiki.model.WikiConfigurationObject@197c457, org.jamwiki.model.WikiConfigurationObject@db38e1, org.jamwiki.model.WikiConfigurationObject@7359f7, org.jamwiki.model.WikiConfigurationObject@1176e8a, org.jamwiki.model.WikiConfigurationObject@15a4247, org.jamwiki.model.WikiConfigurationObject@b57646]} and static attributes {}
2007-08-22 19:43:38,728 DEBUG [org.springframework.web.servlet.view.JstlView] Added model object 'dataHandlers' of type [java.util.Vector] to request in view with name 'setup'
2007-08-22 19:43:39,087 DEBUG [org.jboss.web.tomcat.tc5.jasper.TagLibCache] Scanning for tlds in: file:/C:/Program Files/jboss-4.0.5.GA/server/default/deploy/jbossweb-tomcat55.sar/jsf-libs/myfaces-impl.jar
2007-08-22 19:43:43,712 DEBUG [org.springframework.web.servlet.view.JstlView] Forwarded to resource [/WEB-INF/jsp/setup.jsp] in InternalResourceView 'setup'
2007-08-22 19:43:43,712 DEBUG [org.springframework.web.servlet.DispatcherServlet] Cleared thread-bound request context: org.apache.catalina.connector.RequestFacade@17dc299
2007-08-22 19:43:43,712 DEBUG [org.springframework.web.servlet.DispatcherServlet] Successfully completed request
2007-08-22 19:43:43,712 DEBUG [org.springframework.web.context.support.XmlWebApplicationContext] Publishing event in context [org.springframework.web.context.support.XmlWebApplicationContext@17aaeec]: ServletRequestHandledEvent: url=[/JAMWiki/en/Special:Setup]; client=[127.0.0.1]; method=[GET]; servlet=[jamwiki]; session=[7A4B4C089FADFDB5A9F7494307ACB5BF]; user=[null]; time=[5172ms]; status=[OK]
2007-08-22 19:43:43,712 DEBUG [org.springframework.web.context.support.XmlWebApplicationContext] Publishing event in context [org.springframework.web.context.support.XmlWebApplicationContext@6742d0]: ServletRequestHandledEvent: url=[/JAMWiki/en/Special:Setup]; client=[127.0.0.1]; method=[GET]; servlet=[jamwiki]; session=[7A4B4C089FADFDB5A9F7494307ACB5BF]; user=[null]; time=[5172ms]; status=[OK]
2007-08-22 19:43:43,712 DEBUG [org.acegisecurity.ui.ExceptionTranslationFilter] Chain processed normally
2007-08-22 19:43:43,712 DEBUG [org.acegisecurity.context.HttpSessionContextIntegrationFilter] SecurityContext stored to HttpSession: 'org.acegisecurity.context.SecurityContextImpl@9055e4a6: Authentication: org.acegisecurity.providers.anonymous.AnonymousAuthenticationToken@9055e4a6: Username: anonymousUser; Password: [PROTECTED]; Authenticated: true; Details: org.acegisecurity.ui.WebAuthenticationDetails@957e: RemoteIpAddress: 127.0.0.1; SessionId: null; Granted Authorities: ROLE_ANONYMOUS'
2007-08-22 19:43:43,712 DEBUG [org.acegisecurity.context.HttpSessionContextIntegrationFilter] SecurityContextHolder set to new context, as request processing completed
2007-08-22 19:47:35,887 DEBUG [org.acegisecurity.intercept.web.PathBasedFilterInvocationDefinitionMap] Candidate is: '/en/Special:Setup'; pattern is /**; matched=true
2007-08-22 19:47:35,887 DEBUG [org.springframework.beans.factory.support.DefaultListableBeanFactory] Returning cached instance of singleton bean 'httpSessionContextIntegrationFilter'
2007-08-22 19:47:35,887 DEBUG [org.springframework.beans.factory.support.DefaultListableBeanFactory] Returning cached instance of singleton bean 'logoutFilter'
2007-08-22 19:47:35,887 DEBUG [org.springframework.beans.factory.support.DefaultListableBeanFactory] Returning cached instance of singleton bean 'authenticationProcessingFilter'
2007-08-22 19:47:35,887 DEBUG [org.springframework.beans.factory.support.DefaultListableBeanFactory] Returning cached instance of singleton bean 'rememberMeProcessingFilter'
2007-08-22 19:47:35,887 DEBUG [org.springframework.beans.factory.support.DefaultListableBeanFactory] Returning cached instance of singleton bean 'anonymousProcessingFilter'
2007-08-22 19:47:35,887 DEBUG [org.springframework.beans.factory.support.DefaultListableBeanFactory] Returning cached instance of singleton bean 'exceptionTranslationFilter'
2007-08-22 19:47:35,887 DEBUG [org.springframework.beans.factory.support.DefaultListableBeanFactory] Returning cached instance of singleton bean 'filterInvocationInterceptor'
2007-08-22 19:47:35,887 DEBUG [org.acegisecurity.util.FilterChainProxy] /en/Special:Setup at position 1 of 7 in additional filter chain; firing Filter: 'org.acegisecurity.context.HttpSessionContextIntegrationFilter@12abadc'
2007-08-22 19:47:35,887 DEBUG [org.acegisecurity.context.HttpSessionContextIntegrationFilter] Obtained from ACEGI_SECURITY_CONTEXT a valid SecurityContext and set to SecurityContextHolder: 'org.acegisecurity.context.SecurityContextImpl@9055e4a6: Authentication: org.acegisecurity.providers.anonymous.AnonymousAuthenticationToken@9055e4a6: Username: anonymousUser; Password: [PROTECTED]; Authenticated: true; Details: org.acegisecurity.ui.WebAuthenticationDetails@957e: RemoteIpAddress: 127.0.0.1; SessionId: null; Granted Authorities: ROLE_ANONYMOUS'
2007-08-22 19:47:35,887 DEBUG [org.acegisecurity.util.FilterChainProxy] /en/Special:Setup at position 2 of 7 in additional filter chain; firing Filter: 'org.jamwiki.authentication.JAMWikiLogoutFilter@162bd90'
2007-08-22 19:47:35,887 DEBUG [org.acegisecurity.util.FilterChainProxy] /en/Special:Setup at position 3 of 7 in additional filter chain; firing Filter: 'org.jamwiki.authentication.JAMWikiAuthenticationProcessingFilter@18b41da'
2007-08-22 19:47:35,887 DEBUG [org.acegisecurity.util.FilterChainProxy] /en/Special:Setup at position 4 of 7 in additional filter chain; firing Filter: 'org.acegisecurity.ui.rememberme.RememberMeProcessingFilter@1908558'
2007-08-22 19:47:35,887 DEBUG [org.acegisecurity.ui.rememberme.RememberMeProcessingFilter] SecurityContextHolder not populated with remember-me token, as it already contained: 'org.acegisecurity.providers.anonymous.AnonymousAuthenticationToken@9055e4a6: Username: anonymousUser; Password: [PROTECTED]; Authenticated: true; Details: org.acegisecurity.ui.WebAuthenticationDetails@957e: RemoteIpAddress: 127.0.0.1; SessionId: null; Granted Authorities: ROLE_ANONYMOUS'
2007-08-22 19:47:35,887 DEBUG [org.acegisecurity.util.FilterChainProxy] /en/Special:Setup at position 5 of 7 in additional filter chain; firing Filter: 'org.acegisecurity.providers.anonymous.AnonymousProcessingFilter@1226fe1'
2007-08-22 19:47:35,887 DEBUG [org.acegisecurity.providers.anonymous.AnonymousProcessingFilter] SecurityContextHolder not populated with anonymous token, as it already contained: 'org.acegisecurity.providers.anonymous.AnonymousAuthenticationToken@9055e4a6: Username: anonymousUser; Password: [PROTECTED]; Authenticated: true; Details: org.acegisecurity.ui.WebAuthenticationDetails@957e: RemoteIpAddress: 127.0.0.1; SessionId: null; Granted Authorities: ROLE_ANONYMOUS'
2007-08-22 19:47:35,887 DEBUG [org.acegisecurity.util.FilterChainProxy] /en/Special:Setup at position 6 of 7 in additional filter chain; firing Filter: 'org.acegisecurity.ui.ExceptionTranslationFilter@1df2ecc'
2007-08-22 19:47:35,887 DEBUG [org.acegisecurity.util.FilterChainProxy] /en/Special:Setup at position 7 of 7 in additional filter chain; firing Filter: 'org.acegisecurity.intercept.web.FilterSecurityInterceptor@179688d'
2007-08-22 19:47:35,887 DEBUG [org.acegisecurity.intercept.AbstractSecurityInterceptor] Public object - authentication not attempted
2007-08-22 19:47:35,887 DEBUG [org.springframework.web.context.support.XmlWebApplicationContext] Publishing event in context [org.springframework.web.context.support.XmlWebApplicationContext@6742d0]: org.acegisecurity.event.authorization.PublicInvocationEvent[source=FilterInvocation: URL: /en/Special:Setup]
2007-08-22 19:47:35,887 DEBUG [org.acegisecurity.util.FilterChainProxy] /en/Special:Setup reached end of additional filter chain; proceeding with original chain
2007-08-22 19:47:35,887 DEBUG [org.springframework.web.servlet.DispatcherServlet] DispatcherServlet with name 'jamwiki' received request for [/JAMWiki/en/Special:Setup]
2007-08-22 19:47:35,887 DEBUG [org.springframework.web.servlet.DispatcherServlet] Bound request context to thread: org.apache.catalina.connector.RequestFacade@3002b9
2007-08-22 19:47:35,887 DEBUG [org.springframework.web.servlet.DispatcherServlet] Testing handler map [org.springframework.web.servlet.handler.SimpleUrlHandlerMapping@3f983f] in DispatcherServlet with name 'jamwiki'
2007-08-22 19:47:35,887 DEBUG [org.springframework.web.servlet.handler.SimpleUrlHandlerMapping] Looking up handler for [/Special:Setup]
2007-08-22 19:47:35,887 DEBUG [org.springframework.web.servlet.DispatcherServlet] Testing handler adapter [org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter@1246bec]
2007-08-22 19:47:35,887 DEBUG [org.springframework.web.servlet.DispatcherServlet] Testing handler adapter [org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter@38ebc3]
2007-08-22 19:47:36,606 DEBUG [net.sf.ehcache.config.DiskStoreConfiguration] Disk Store Path: F:\Softwares\JAMWikiFiles\cache
2007-08-22 19:47:36,606 DEBUG [net.sf.ehcache.config.ConfigurationHelper] No CacheManagerEventListenerFactory class specified. Skipping...
2007-08-22 19:47:36,606 DEBUG [net.sf.ehcache.config.ConfigurationHelper] No CachePeerListenerFactoryConfiguration specified. Not configuring a CacheManagerPeerListener.
2007-08-22 19:47:36,606 DEBUG [net.sf.ehcache.config.ConfigurationHelper] No CachePeerProviderFactoryConfiguration specified. Not configuring a CacheManagerPeerProvider.
2007-08-22 19:47:36,606 DEBUG [net.sf.ehcache.config.ConfigurationHelper] No BootstrapCacheLoaderFactory class specified. Skipping...
2007-08-22 19:47:36,606 DEBUG [net.sf.ehcache.config.DiskStoreConfiguration] Disk Store Path: F:\Softwares\JAMWikiFiles\cache
2007-08-22 19:47:36,606 DEBUG [net.sf.ehcache.config.ConfigurationHelper] No CacheManagerEventListenerFactory class specified. Skipping...
2007-08-22 19:47:36,606 DEBUG [net.sf.ehcache.config.ConfigurationHelper] No CachePeerListenerFactoryConfiguration specified. Not configuring a CacheManagerPeerListener.
2007-08-22 19:47:36,606 DEBUG [net.sf.ehcache.config.ConfigurationHelper] No CachePeerProviderFactoryConfiguration specified. Not configuring a CacheManagerPeerProvider.
2007-08-22 19:47:36,622 DEBUG [net.sf.ehcache.config.ConfigurationHelper] No BootstrapCacheLoaderFactory class specified. Skipping...
2007-08-22 19:47:36,684 ERROR [STDERR] Aug 22, 2007 7:47:36 PM org.jamwiki.utils.WikiLogger info
INFO: Executing SQL: CREATE TABLE jam_virtual_wiki ( virtual_wiki_id INTEGER NOT NULL, virtual_wiki_name VARCHAR(100) NOT NULL, default_topic_name VARCHAR(200) NOT NULL, create_date DATETIME DEFAULT GETDATE() NOT NULL, CONSTRAINT jam_pk_vwiki PRIMARY KEY (virtual_wiki_id), CONSTRAINT jam_unique_vwiki_name UNIQUE (virtual_wiki_name) )
2007-08-22 19:47:36,700 ERROR [STDERR] Aug 22, 2007 7:47:36 PM org.jamwiki.utils.WikiLogger info
INFO: Executing SQL: CREATE TABLE jam_wiki_user ( wiki_user_id INTEGER NOT NULL, login VARCHAR(100) NOT NULL, display_name VARCHAR(100), create_date DATETIME DEFAULT GETDATE() NOT NULL, last_login_date DATETIME DEFAULT GETDATE() NOT NULL, create_ip_address VARCHAR(15) NOT NULL, last_login_ip_address VARCHAR(15) NOT NULL, is_admin INTEGER DEFAULT 0 NOT NULL, remember_key VARCHAR(100) NOT NULL, default_locale VARCHAR(8), CONSTRAINT jam_pk_wiki_user PRIMARY KEY (wiki_user_id) )
2007-08-22 19:47:36,700 ERROR [STDERR] Aug 22, 2007 7:47:36 PM org.jamwiki.utils.WikiLogger info
INFO: Executing SQL: CREATE TABLE jam_wiki_user_info ( wiki_user_id INTEGER NOT NULL, login VARCHAR(100) NOT NULL, email VARCHAR(100), first_name VARCHAR(100), last_name VARCHAR(100), encoded_password VARCHAR(100) NOT NULL, CONSTRAINT jam_pk_wiki_uinfo PRIMARY KEY (wiki_user_id), CONSTRAINT jam_fk_wiki_uinfo_wiki_user FOREIGN KEY (wiki_user_id) REFERENCES jam_wiki_user(wiki_user_id), CONSTRAINT jam_unique_wiki_uinfo_login UNIQUE (login) )
2007-08-22 19:47:36,715 ERROR [STDERR] Aug 22, 2007 7:47:36 PM org.jamwiki.utils.WikiLogger info
INFO: Executing SQL: CREATE UNIQUE INDEX jam_unique_wiki_user_login on jam_wiki_user (login)
2007-08-22 19:47:36,715 ERROR [STDERR] Aug 22, 2007 7:47:36 PM org.jamwiki.utils.WikiLogger info
INFO: Executing SQL: CREATE TABLE jam_topic ( topic_id INTEGER NOT NULL, virtual_wiki_id INTEGER NOT NULL, topic_name VARCHAR(200) NOT NULL, delete_date DATETIME, topic_read_only INTEGER DEFAULT 0 NOT NULL, topic_admin_only INTEGER DEFAULT 0 NOT NULL, current_version_id INTEGER, topic_type INTEGER NOT NULL, redirect_to VARCHAR(200), CONSTRAINT jam_pk_topic PRIMARY KEY (topic_id), CONSTRAINT jam_fk_topic_vwiki FOREIGN KEY (virtual_wiki_id) REFERENCES jam_virtual_wiki(virtual_wiki_id), CONSTRAINT jam_unique_topic_name_vwiki UNIQUE (topic_name, virtual_wiki_id) )
2007-08-22 19:47:36,715 ERROR [STDERR] Aug 22, 2007 7:47:36 PM org.jamwiki.utils.WikiLogger info
INFO: Executing SQL: CREATE TABLE jam_topic_version ( topic_version_id INTEGER NOT NULL, topic_id INTEGER NOT NULL, edit_comment VARCHAR(200), version_content TEXT, wiki_user_id INTEGER, wiki_user_ip_address VARCHAR(15) NOT NULL, edit_date DATETIME DEFAULT GETDATE() NOT NULL, edit_type INTEGER NOT NULL, previous_topic_version_id INTEGER, CONSTRAINT jam_pk_topic_ver PRIMARY KEY (topic_version_id), CONSTRAINT jam_fk_topic_ver_topic FOREIGN KEY (topic_id) REFERENCES jam_topic(topic_id), CONSTRAINT jam_fk_topic_ver_wiki_user FOREIGN KEY (wiki_user_id) REFERENCES jam_wiki_user(wiki_user_id), CONSTRAINT jam_fk_topic_ver_prv_topic_ver FOREIGN KEY (previous_topic_version_id) REFERENCES jam_topic_version(topic_version_id) ) 
2007-08-22 19:47:36,715 ERROR [STDERR] Aug 22, 2007 7:47:36 PM org.jamwiki.utils.WikiLogger info
INFO: Executing SQL: ALTER TABLE jam_topic add constraint jam_fk_topic_topic_ver FOREIGN KEY (current_version_id) REFERENCES jam_topic_version(topic_version_id) 
2007-08-22 19:47:36,715 ERROR [STDERR] Aug 22, 2007 7:47:36 PM org.jamwiki.utils.WikiLogger info
INFO: Executing SQL: CREATE TABLE jam_file ( file_id INTEGER NOT NULL, virtual_wiki_id INTEGER NOT NULL, file_name VARCHAR(200) NOT NULL, delete_date DATETIME, file_read_only INTEGER DEFAULT 0 NOT NULL, file_admin_only INTEGER DEFAULT 0 NOT NULL, file_url VARCHAR(200) NOT NULL, mime_type VARCHAR(100) NOT NULL, topic_id INTEGER NOT NULL, file_size INTEGER NOT NULL, CONSTRAINT jam_pk_file PRIMARY KEY (file_id), CONSTRAINT jam_fk_file_vwiki FOREIGN KEY (virtual_wiki_id) REFERENCES jam_virtual_wiki(virtual_wiki_id), CONSTRAINT jam_fk_file_topic FOREIGN KEY (topic_id) REFERENCES jam_topic(topic_id), CONSTRAINT jam_unique_file_url UNIQUE (file_url), CONSTRAINT jam_unique_file_topic_vwiki UNIQUE (virtual_wiki_id, topic_id) )
2007-08-22 19:47:36,731 ERROR [STDERR] Aug 22, 2007 7:47:36 PM org.jamwiki.utils.WikiLogger info
INFO: Executing SQL: CREATE TABLE jam_file_version ( file_version_id INTEGER NOT NULL, file_id INTEGER NOT NULL, upload_comment VARCHAR(200), file_url VARCHAR(200) NOT NULL, wiki_user_id INTEGER, wiki_user_ip_address VARCHAR(15) NOT NULL, upload_date DATETIME DEFAULT GETDATE() NOT NULL, mime_type VARCHAR(100) NOT NULL, file_size INTEGER NOT NULL, CONSTRAINT jam_pk_file_ver PRIMARY KEY (file_version_id), CONSTRAINT jam_fk_file_ver_file FOREIGN KEY (file_id) REFERENCES jam_file(file_id), CONSTRAINT jam_fk_file_ver_wiki_user FOREIGN KEY (wiki_user_id) REFERENCES jam_wiki_user(wiki_user_id), CONSTRAINT jam_unique_file_ver_url UNIQUE (file_url) )
2007-08-22 19:47:36,731 ERROR [STDERR] Aug 22, 2007 7:47:36 PM org.jamwiki.utils.WikiLogger info
INFO: Executing SQL: CREATE TABLE jam_category ( child_topic_id INTEGER NOT NULL, category_name VARCHAR(200) NOT NULL, sort_key VARCHAR(200), CONSTRAINT jam_pk_category PRIMARY KEY (child_topic_id, category_name), CONSTRAINT jam_fk_category_child_id FOREIGN KEY (child_topic_id) REFERENCES jam_topic(topic_id) )
2007-08-22 19:47:36,731 ERROR [STDERR] Aug 22, 2007 7:47:36 PM org.jamwiki.utils.WikiLogger info
INFO: Executing SQL: CREATE TABLE jam_recent_change ( topic_version_id INTEGER NOT NULL, previous_topic_version_id INTEGER, topic_id INTEGER NOT NULL, topic_name VARCHAR(200) NOT NULL, edit_date DATETIME DEFAULT GETDATE() NOT NULL, edit_comment VARCHAR(200), wiki_user_id INTEGER, display_name VARCHAR(200) NOT NULL, edit_type INTEGER NOT NULL, virtual_wiki_id INTEGER NOT NULL, virtual_wiki_name VARCHAR(100) NOT NULL, CONSTRAINT jam_pk_rchange PRIMARY KEY (topic_version_id), CONSTRAINT jam_fk_rchange_topic_ver FOREIGN KEY (topic_version_id) REFERENCES jam_topic_version(topic_version_id), CONSTRAINT jam_fk_rchange_prv_topic_ver FOREIGN KEY (previous_topic_version_id) REFERENCES jam_topic_version(topic_version_id), CONSTRAINT jam_fk_rchange_topic FOREIGN KEY (topic_id) REFERENCES jam_topic(topic_id), CONSTRAINT jam_fk_rchange_wiki_user FOREIGN KEY (wiki_user_id) REFERENCES jam_wiki_user(wiki_user_id), CONSTRAINT jam_fk_rchange_vwiki FOREIGN KEY (virtual_wiki_id) REFERENCES jam_virtual_wiki(virtual_wiki_id) )
2007-08-22 19:47:36,731 ERROR [STDERR] Aug 22, 2007 7:47:36 PM org.jamwiki.utils.WikiLogger info
INFO: Executing SQL: CREATE TABLE jam_watchlist ( wiki_user_id INTEGER NOT NULL, topic_name VARCHAR(200), virtual_wiki_id INTEGER NOT NULL, CONSTRAINT jam_pk_watchlist PRIMARY KEY (wiki_user_id, topic_name, virtual_wiki_id), CONSTRAINT jam_fk_watchlist_user_id FOREIGN KEY (wiki_user_id) REFERENCES jam_wiki_user(wiki_user_id), CONSTRAINT jam_fk_watchlist_vwiki FOREIGN KEY (virtual_wiki_id) REFERENCES jam_virtual_wiki(virtual_wiki_id) )
2007-08-22 19:47:36,778 DEBUG [net.sf.ehcache.store.DiskStore] Deleting data file org.jamwiki.db.AnsiDataHandler.CACHE_VIRTUAL_WIKI.data
2007-08-22 19:47:36,778 DEBUG [net.sf.ehcache.store.MemoryStore] Initialized net.sf.ehcache.store.LruMemoryStore for org.jamwiki.db.AnsiDataHandler.CACHE_VIRTUAL_WIKI
2007-08-22 19:47:36,778 DEBUG [net.sf.ehcache.store.LruMemoryStore] org.jamwiki.db.AnsiDataHandler.CACHE_VIRTUAL_WIKI Cache: Using SpoolingLinkedHashMap implementation
2007-08-22 19:47:36,778 DEBUG [net.sf.ehcache.Cache] Initialised cache: org.jamwiki.db.AnsiDataHandler.CACHE_VIRTUAL_WIKI
2007-08-22 19:47:36,778 DEBUG [net.sf.ehcache.store.MemoryStore] org.jamwiki.db.AnsiDataHandler.CACHE_VIRTUAL_WIKICache: Cannot remove entry as key en was not found
2007-08-22 19:47:36,794 DEBUG [net.sf.ehcache.store.MemoryStore] org.jamwiki.db.AnsiDataHandler.CACHE_VIRTUAL_WIKICache: Cannot remove entry as key 1 was not found
2007-08-22 19:47:36,794 ERROR [STDERR] Aug 22, 2007 7:47:36 PM org.jamwiki.utils.WikiLogger info
INFO: Setting up special page en / StartingPoints
2007-08-22 19:47:36,809 ERROR [STDERR] Aug 22, 2007 7:47:36 PM org.jamwiki.utils.WikiLogger info
INFO: File pages\en_US\StartingPoints.txt does not exist
2007-08-22 19:47:36,809 ERROR [STDERR] Aug 22, 2007 7:47:36 PM org.jamwiki.utils.WikiLogger info
INFO: File pages\en\StartingPoints.txt does not exist
2007-08-22 19:49:55,514 DEBUG [org.jboss.resource.connectionmanager.IdleRemover] run: IdleRemover notifying pools, interval: 450000
2007-08-22 19:52:32,032 INFO  [STDOUT] 19:52:32,032 WARN  [PingQueueProcessor] WARNING: Skipping current ping queue processing round because we cannot yet determine the site's absolute context url.
2007-08-22 19:57:25,520 DEBUG [org.jboss.resource.connectionmanager.IdleRemover] run: IdleRemover notifying pools, interval: 450000
2007-08-22 19:57:32,036 INFO  [STDOUT] 19:57:32,036 WARN  [PingQueueProcessor] WARNING: Skipping current ping queue processing round because we cannot yet determine the site's absolute context url.
2007-08-22 20:00:10,397 INFO  [net.sf.ehcache.CacheManager] VM shutting down with the CacheManager still active. Calling shutdown.
2007-08-22 20:00:10,397 INFO  [net.sf.ehcache.CacheManager] VM shutting down with the CacheManager still active. Calling shutdown.
2007-08-22 20:00:10,397 INFO  [net.sf.ehcache.CacheManager] VM shutting down with the CacheManager still active. Calling shutdown.
2007-08-22 20:00:10,397 DEBUG [net.sf.ehcache.store.MemoryStore] org.jamwiki.db.AnsiDataHandler.CACHE_VIRTUAL_WIKI is persistent. Spooling 2 elements to the disk store.
2007-08-22 20:00:10,397 INFO  [net.sf.ehcache.CacheManager] VM shutting down with the CacheManager still active. Calling shutdown.
2007-08-22 20:00:10,397 DEBUG [net.sf.ehcache.store.MemoryStore] userCache is persistent. Spooling 0 elements to the disk store.
2007-08-22 20:00:10,413 INFO  [net.sf.ehcache.CacheManager] VM shutting down with the CacheManager still active. Calling shutdown.
2007-08-22 20:00:10,413 INFO  [org.jboss.system.server.Server] Runtime shutdown hook called, forceHalt: true
2007-08-22 20:00:10,413 DEBUG [net.sf.ehcache.store.MemoryStore] org.jamwiki.db.AnsiDataHandler.CACHE_VIRTUAL_WIKICache: spool to disk done for: 1
2007-08-22 20:00:10,413 INFO  [net.sf.ehcache.CacheManager] VM shutting down with the CacheManager still active. Calling shutdown.
2007-08-22 20:00:10,413 DEBUG [net.sf.ehcache.store.MemoryStore] userCache is persistent. Spooling 0 elements to the disk store.
2007-08-22 20:00:10,413 DEBUG [net.sf.ehcache.store.DiskStore] Spool Thread interrupted.
2007-08-22 20:00:10,413 DEBUG [net.sf.ehcache.store.DiskStore] Deleting file userCache.data
2007-08-22 20:00:10,413 DEBUG [org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread] Notified to shutdown
2007-08-22 20:00:10,413 DEBUG [net.sf.ehcache.store.MemoryStore] org.jamwiki.db.AnsiDataHandler.CACHE_VIRTUAL_WIKICache: spool to disk done for: en
2007-08-22 20:00:10,413 INFO  [org.jboss.system.server.Server] JBoss SHUTDOWN: Undeploying all packages
2007-08-22 20:00:10,413 DEBUG [net.sf.ehcache.store.MemoryStore] userCache is persistent. Spooling 0 elements to the disk store.
2007-08-22 20:00:10,413 DEBUG [net.sf.ehcache.store.DiskStore] Deleting file userCache.data
2007-08-22 20:00:10,413 DEBUG [net.sf.ehcache.store.DiskStore] Deleting file org.jamwiki.db.AnsiDataHandler.CACHE_VIRTUAL_WIKI.data
2007-08-22 20:00:10,413 DEBUG [net.sf.ehcache.store.MemoryStore] userCache is persistent. Spooling 0 elements to the disk store.
2007-08-22 20:00:10,413 DEBUG [net.sf.ehcache.store.DiskStore] Spool Thread interrupted.
2007-08-22 20:00:10,413 DEBUG [net.sf.ehcache.store.DiskStore] Spool Thread interrupted.
2007-08-22 20:00:10,428 DEBUG [net.sf.ehcache.store.DiskStore] Deleting file userCache.data

Wiki Log:

2007-08-22 19:42:21,055 CONFIG: org.jamwiki.utils.WikiLogger - JAMWiki log initialized from C:\Program Files\jboss-4.0.5.GA\server\default\.\deploy\jamwiki-0.6.0-beta2.war\WEB-INF\classes\logging.properties with pattern %t/jamwiki.log.%g
2007-08-22 19:42:21,321 CONFIG: org.jamwiki.Environment - Loading properties from C:\Program Files\jboss-4.0.5.GA\server\default\.\deploy\jamwiki-0.6.0-beta2.war\WEB-INF\classes\jamwiki.properties
2007-08-22 19:42:21,352 CONFIG: org.jamwiki.Environment - Loading properties from C:\Program Files\jboss-4.0.5.GA\server\default\.\deploy\jamwiki-0.6.0-beta2.war\WEB-INF\classes\sql.ansi.properties
2007-08-22 19:42:21,352 CONFIG: org.jamwiki.Environment - Loading properties from C:\Program Files\jboss-4.0.5.GA\server\default\.\deploy\jamwiki-0.6.0-beta2.war\WEB-INF\classes\sql.ansi.properties
2007-08-22 19:42:21,352 CONFIG: org.jamwiki.Environment - Loading properties from C:\Program Files\jboss-4.0.5.GA\server\default\.\deploy\jamwiki-0.6.0-beta2.war\WEB-INF\classes\sql.ansi.properties
2007-08-22 19:42:21,352 CONFIG: org.jamwiki.Environment - Loading properties from C:\Program Files\jboss-4.0.5.GA\server\default\.\deploy\jamwiki-0.6.0-beta2.war\WEB-INF\classes\sql.hsql.properties
2007-08-22 19:43:38,494 WARNING: org.jamwiki.Environment - Property file C:\Program Files\jboss-4.0.5.GA\server\default\.\deploy\JAMWiki.war\WEB-INF\classes\jamwiki.properties does not exist
2007-08-22 19:43:38,712 INFO: org.jamwiki.servlets.JAMWikiServlet - Loaded page /JAMWiki/en/Special:Setup (0.125 s.)
2007-08-22 19:43:38,712 INFO: org.jamwiki.servlets.JAMWikiServlet - Loaded page /JAMWiki/en/Special:Setup (0.125 s.)
2007-08-22 19:47:36,528 CONFIG: org.jamwiki.Environment - Loading properties from C:\Program Files\jboss-4.0.5.GA\server\default\.\deploy\JAMWiki.war\WEB-INF\classes\sql.ansi.properties
2007-08-22 19:47:36,528 CONFIG: org.jamwiki.Environment - Loading properties from C:\Program Files\jboss-4.0.5.GA\server\default\.\deploy\JAMWiki.war\WEB-INF\classes\sql.ansi.properties
2007-08-22 19:47:36,528 CONFIG: org.jamwiki.Environment - Loading properties from C:\Program Files\jboss-4.0.5.GA\server\default\.\deploy\JAMWiki.war\WEB-INF\classes\sql.ansi.properties
2007-08-22 19:47:36,544 CONFIG: org.jamwiki.Environment - Loading properties from C:\Program Files\jboss-4.0.5.GA\server\default\.\deploy\JAMWiki.war\WEB-INF\classes\sql.mssql.properties
2007-08-22 19:47:36,606 CONFIG: org.jamwiki.Environment - Loading properties from C:\Program Files\jboss-4.0.5.GA\server\default\.\deploy\JAMWiki.war\WEB-INF\classes\sql.ansi.properties
2007-08-22 19:47:36,606 CONFIG: org.jamwiki.Environment - Loading properties from C:\Program Files\jboss-4.0.5.GA\server\default\.\deploy\JAMWiki.war\WEB-INF\classes\sql.ansi.properties
2007-08-22 19:47:36,606 CONFIG: org.jamwiki.Environment - Loading properties from C:\Program Files\jboss-4.0.5.GA\server\default\.\deploy\JAMWiki.war\WEB-INF\classes\sql.ansi.properties
2007-08-22 19:47:36,606 CONFIG: org.jamwiki.Environment - Loading properties from C:\Program Files\jboss-4.0.5.GA\server\default\.\deploy\JAMWiki.war\WEB-INF\classes\sql.mssql.properties
2007-08-22 19:47:36,684 INFO: org.jamwiki.db.DatabaseConnection - Executing SQL: CREATE TABLE jam_virtual_wiki ( virtual_wiki_id INTEGER NOT NULL, virtual_wiki_name VARCHAR(100) NOT NULL, default_topic_name VARCHAR(200) NOT NULL, create_date DATETIME DEFAULT GETDATE() NOT NULL, CONSTRAINT jam_pk_vwiki PRIMARY KEY (virtual_wiki_id), CONSTRAINT jam_unique_vwiki_name UNIQUE (virtual_wiki_name) )
2007-08-22 19:47:36,700 INFO: org.jamwiki.db.DatabaseConnection - Executing SQL: CREATE TABLE jam_wiki_user ( wiki_user_id INTEGER NOT NULL, login VARCHAR(100) NOT NULL, display_name VARCHAR(100), create_date DATETIME DEFAULT GETDATE() NOT NULL, last_login_date DATETIME DEFAULT GETDATE() NOT NULL, create_ip_address VARCHAR(15) NOT NULL, last_login_ip_address VARCHAR(15) NOT NULL, is_admin INTEGER DEFAULT 0 NOT NULL, remember_key VARCHAR(100) NOT NULL, default_locale VARCHAR(8), CONSTRAINT jam_pk_wiki_user PRIMARY KEY (wiki_user_id) )
2007-08-22 19:47:36,700 INFO: org.jamwiki.db.DatabaseConnection - Executing SQL: CREATE TABLE jam_wiki_user_info ( wiki_user_id INTEGER NOT NULL, login VARCHAR(100) NOT NULL, email VARCHAR(100), first_name VARCHAR(100), last_name VARCHAR(100), encoded_password VARCHAR(100) NOT NULL, CONSTRAINT jam_pk_wiki_uinfo PRIMARY KEY (wiki_user_id), CONSTRAINT jam_fk_wiki_uinfo_wiki_user FOREIGN KEY (wiki_user_id) REFERENCES jam_wiki_user(wiki_user_id), CONSTRAINT jam_unique_wiki_uinfo_login UNIQUE (login) )
2007-08-22 19:47:36,700 INFO: org.jamwiki.db.DatabaseConnection - Executing SQL: CREATE UNIQUE INDEX jam_unique_wiki_user_login on jam_wiki_user (login)
2007-08-22 19:47:36,715 INFO: org.jamwiki.db.DatabaseConnection - Executing SQL: CREATE TABLE jam_topic ( topic_id INTEGER NOT NULL, virtual_wiki_id INTEGER NOT NULL, topic_name VARCHAR(200) NOT NULL, delete_date DATETIME, topic_read_only INTEGER DEFAULT 0 NOT NULL, topic_admin_only INTEGER DEFAULT 0 NOT NULL, current_version_id INTEGER, topic_type INTEGER NOT NULL, redirect_to VARCHAR(200), CONSTRAINT jam_pk_topic PRIMARY KEY (topic_id), CONSTRAINT jam_fk_topic_vwiki FOREIGN KEY (virtual_wiki_id) REFERENCES jam_virtual_wiki(virtual_wiki_id), CONSTRAINT jam_unique_topic_name_vwiki UNIQUE (topic_name, virtual_wiki_id) )
2007-08-22 19:47:36,715 INFO: org.jamwiki.db.DatabaseConnection - Executing SQL: CREATE TABLE jam_topic_version ( topic_version_id INTEGER NOT NULL, topic_id INTEGER NOT NULL, edit_comment VARCHAR(200), version_content TEXT, wiki_user_id INTEGER, wiki_user_ip_address VARCHAR(15) NOT NULL, edit_date DATETIME DEFAULT GETDATE() NOT NULL, edit_type INTEGER NOT NULL, previous_topic_version_id INTEGER, CONSTRAINT jam_pk_topic_ver PRIMARY KEY (topic_version_id), CONSTRAINT jam_fk_topic_ver_topic FOREIGN KEY (topic_id) REFERENCES jam_topic(topic_id), CONSTRAINT jam_fk_topic_ver_wiki_user FOREIGN KEY (wiki_user_id) REFERENCES jam_wiki_user(wiki_user_id), CONSTRAINT jam_fk_topic_ver_prv_topic_ver FOREIGN KEY (previous_topic_version_id) REFERENCES jam_topic_version(topic_version_id) ) 
2007-08-22 19:47:36,715 INFO: org.jamwiki.db.DatabaseConnection - Executing SQL: ALTER TABLE jam_topic add constraint jam_fk_topic_topic_ver FOREIGN KEY (current_version_id) REFERENCES jam_topic_version(topic_version_id) 
2007-08-22 19:47:36,715 INFO: org.jamwiki.db.DatabaseConnection - Executing SQL: CREATE TABLE jam_file ( file_id INTEGER NOT NULL, virtual_wiki_id INTEGER NOT NULL, file_name VARCHAR(200) NOT NULL, delete_date DATETIME, file_read_only INTEGER DEFAULT 0 NOT NULL, file_admin_only INTEGER DEFAULT 0 NOT NULL, file_url VARCHAR(200) NOT NULL, mime_type VARCHAR(100) NOT NULL, topic_id INTEGER NOT NULL, file_size INTEGER NOT NULL, CONSTRAINT jam_pk_file PRIMARY KEY (file_id), CONSTRAINT jam_fk_file_vwiki FOREIGN KEY (virtual_wiki_id) REFERENCES jam_virtual_wiki(virtual_wiki_id), CONSTRAINT jam_fk_file_topic FOREIGN KEY (topic_id) REFERENCES jam_topic(topic_id), CONSTRAINT jam_unique_file_url UNIQUE (file_url), CONSTRAINT jam_unique_file_topic_vwiki UNIQUE (virtual_wiki_id, topic_id) )
2007-08-22 19:47:36,731 INFO: org.jamwiki.db.DatabaseConnection - Executing SQL: CREATE TABLE jam_file_version ( file_version_id INTEGER NOT NULL, file_id INTEGER NOT NULL, upload_comment VARCHAR(200), file_url VARCHAR(200) NOT NULL, wiki_user_id INTEGER, wiki_user_ip_address VARCHAR(15) NOT NULL, upload_date DATETIME DEFAULT GETDATE() NOT NULL, mime_type VARCHAR(100) NOT NULL, file_size INTEGER NOT NULL, CONSTRAINT jam_pk_file_ver PRIMARY KEY (file_version_id), CONSTRAINT jam_fk_file_ver_file FOREIGN KEY (file_id) REFERENCES jam_file(file_id), CONSTRAINT jam_fk_file_ver_wiki_user FOREIGN KEY (wiki_user_id) REFERENCES jam_wiki_user(wiki_user_id), CONSTRAINT jam_unique_file_ver_url UNIQUE (file_url) )
2007-08-22 19:47:36,731 INFO: org.jamwiki.db.DatabaseConnection - Executing SQL: CREATE TABLE jam_category ( child_topic_id INTEGER NOT NULL, category_name VARCHAR(200) NOT NULL, sort_key VARCHAR(200), CONSTRAINT jam_pk_category PRIMARY KEY (child_topic_id, category_name), CONSTRAINT jam_fk_category_child_id FOREIGN KEY (child_topic_id) REFERENCES jam_topic(topic_id) )
2007-08-22 19:47:36,731 INFO: org.jamwiki.db.DatabaseConnection - Executing SQL: CREATE TABLE jam_recent_change ( topic_version_id INTEGER NOT NULL, previous_topic_version_id INTEGER, topic_id INTEGER NOT NULL, topic_name VARCHAR(200) NOT NULL, edit_date DATETIME DEFAULT GETDATE() NOT NULL, edit_comment VARCHAR(200), wiki_user_id INTEGER, display_name VARCHAR(200) NOT NULL, edit_type INTEGER NOT NULL, virtual_wiki_id INTEGER NOT NULL, virtual_wiki_name VARCHAR(100) NOT NULL, CONSTRAINT jam_pk_rchange PRIMARY KEY (topic_version_id), CONSTRAINT jam_fk_rchange_topic_ver FOREIGN KEY (topic_version_id) REFERENCES jam_topic_version(topic_version_id), CONSTRAINT jam_fk_rchange_prv_topic_ver FOREIGN KEY (previous_topic_version_id) REFERENCES jam_topic_version(topic_version_id), CONSTRAINT jam_fk_rchange_topic FOREIGN KEY (topic_id) REFERENCES jam_topic(topic_id), CONSTRAINT jam_fk_rchange_wiki_user FOREIGN KEY (wiki_user_id) REFERENCES jam_wiki_user(wiki_user_id), CONSTRAINT jam_fk_rchange_vwiki FOREIGN KEY (virtual_wiki_id) REFERENCES jam_virtual_wiki(virtual_wiki_id) )
2007-08-22 19:47:36,731 INFO: org.jamwiki.db.DatabaseConnection - Executing SQL: CREATE TABLE jam_watchlist ( wiki_user_id INTEGER NOT NULL, topic_name VARCHAR(200), virtual_wiki_id INTEGER NOT NULL, CONSTRAINT jam_pk_watchlist PRIMARY KEY (wiki_user_id, topic_name, virtual_wiki_id), CONSTRAINT jam_fk_watchlist_user_id FOREIGN KEY (wiki_user_id) REFERENCES jam_wiki_user(wiki_user_id), CONSTRAINT jam_fk_watchlist_vwiki FOREIGN KEY (virtual_wiki_id) REFERENCES jam_virtual_wiki(virtual_wiki_id) )
2007-08-22 19:47:36,794 INFO: org.jamwiki.db.WikiDatabase - Setting up special page en / StartingPoints
2007-08-22 19:47:36,809 INFO: org.jamwiki.utils.Utilities - File pages\en_US\StartingPoints.txt does not exist
2007-08-22 19:47:36,809 INFO: org.jamwiki.utils.Utilities - File pages\en\StartingPoints.txt does not exist
2007-08-22 19:47:37,090 CONFIG: org.jamwiki.Environment - Loading properties from C:\Program Files\jboss-4.0.5.GA\server\default\.\deploy\JAMWiki.war\WEB-INF\classes\interwiki.properties
  • All users link
Log
2007-08-22 20:48:35,101 SEVERE: org.jamwiki.servlets.ServletUtil - Servlet error
java.lang.Exception: Failure while executing BEGIN DECLARE @COUNT int DECLARE @TOP int DECLARE @OFFSET int DECLARE @LIMIT int DECLARE @SQL varchar(300) SET @LIMIT = ? SET @OFFSET = ? SET @TOP = @LIMIT SET @COUNT = (select count(*) from jam_wiki_user_info) IF (@OFFSET > @COUNT) SET @OFFSET = @COUNT IF (@COUNT < @OFFSET + @LIMIT) SET @TOP = @COUNT - @OFFSET SET @SQL = 'select * from ( ' + 'select top '+CONVERT(VARCHAR, @TOP)+' * from ( ' + 'select top '+CONVERT(VARCHAR, @OFFSET + @LIMIT)+' login ' + 'from jam_wiki_user_info + 'order by login ' + ') a ' + 'order by login desc ' + ') b ' + ' order by login ' EXEC(@SQL) END
	at org.jamwiki.db.WikiPreparedStatement.executeQuery(WikiPreparedStatement.java:84)
	at org.jamwiki.db.WikiPreparedStatement.executeQuery(WikiPreparedStatement.java:61)
	at org.jamwiki.db.AnsiQueryHandler.lookupWikiUsers(AnsiQueryHandler.java:771)
	at org.jamwiki.db.AnsiDataHandler.lookupWikiUsers(AnsiDataHandler.java:986)
	at org.jamwiki.servlets.ItemsServlet.viewUsers(ItemsServlet.java:86)
	at org.jamwiki.servlets.ItemsServlet.handleJAMWikiRequest(ItemsServlet.java:57)
	at org.jamwiki.servlets.JAMWikiServlet.handleRequestInternal(JAMWikiServlet.java:74)
	at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
	at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:839)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:774)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:460)
	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:415)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
''trimmed''
Caused by: java.sql.SQLException: Invalid SQL statement or JDBC escape, terminating ''' not found.
	at net.sourceforge.jtds.jdbc.SQLParser.parse(SQLParser.java:1155)
	at net.sourceforge.jtds.jdbc.SQLParser.parse(SQLParser.java:156)
	at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.<init>(JtdsPreparedStatement.java:104)
	at net.sourceforge.jtds.jdbc.ConnectionJDBC2.prepareStatement(ConnectionJDBC2.java:2221)
	at net.sourceforge.jtds.jdbc.ConnectionJDBC2.prepareStatement(ConnectionJDBC2.java:2179)
	at org.apache.commons.dbcp.DelegatingConnection.prepareStatement(DelegatingConnection.java:248)
	at org.apache.commons.dbcp.PoolingDriver$PoolGuardConnectionWrapper.prepareStatement(PoolingDriver.java:367)
	at org.jamwiki.db.WikiPreparedStatement.executeQuery(WikiPreparedStatement.java:74)
	... 56 more
  • Trying to re-create a topic that has been deleted:
Log:
2007-08-22 20:41:48,549 SEVERE: org.jamwiki.servlets.ServletUtil - Servlet error
java.lang.Exception: Failure while executing insert into jam_topic ( topic_id, virtual_wiki_id, topic_name, topic_type, topic_read_only, current_version_id, delete_date, topic_admin_only, redirect_to ) values ( ?, ?, ?, ?, ?, ?, ?, ?, ? )
	at org.jamwiki.db.WikiPreparedStatement.executeUpdate(WikiPreparedStatement.java:119)
	at org.jamwiki.db.AnsiQueryHandler.insertTopic(AnsiQueryHandler.java:509)
	at org.jamwiki.db.AnsiDataHandler.addTopic(AnsiDataHandler.java:91)
	at org.jamwiki.db.AnsiDataHandler.writeTopic(AnsiDataHandler.java:1229)
	at org.jamwiki.servlets.EditServlet.save(EditServlet.java:330)
	at org.jamwiki.servlets.EditServlet.handleJAMWikiRequest(EditServlet.java:59)
	at org.jamwiki.servlets.JAMWikiServlet.handleRequestInternal(JAMWikiServlet.java:74)
	at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
''trimmed''
Caused by: java.sql.SQLException: Violation of UNIQUE KEY constraint 'jam_unique_topic_name_vwiki'. Cannot insert duplicate key in object 'jam_topic'.
	at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:365)
	at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2781)
	at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2224)
	at net.sourceforge.jtds.jdbc.TdsCore.getMoreResults(TdsCore.java:628)
	at net.sourceforge.jtds.jdbc.JtdsStatement.processResults(JtdsStatement.java:525)
	at net.sourceforge.jtds.jdbc.JtdsStatement.executeSQL(JtdsStatement.java:487)
	at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.executeUpdate(JtdsPreparedStatement.java:421)
	at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:102)
	at org.jamwiki.db.WikiPreparedStatement.executeUpdate(WikiPreparedStatement.java:111)
	... 56 more
  • It doesn't so far cause any problem by editing the constraint names in DB2 as i am using like that.
Sorry for sending the logs like this. I am running out of time thats why. Kindly bear with it. Thank you for your response.
Thanks! The information you've provided is extremely helpful. I should have some time tonight to investigate, so hopefully these can get fixed soon. Again, thank you very much for the detailed bug reports. -- Ryan 22-Aug-2007 09:09 PDT
Here's the status:
  1. Empty topic content should be OK as that's the same behavior as what is allowed by Mediawiki. Provided there aren't any bugs generated then I think this one is OK for the 0.6.0 release.
  2. I'm still looking into the setup issue.
  3. The Special:Listusers issue should be fixed by revision 1803.
  4. The failure re-creating previously deleted topics should be fixed by revision 1804. Existing MS SQL setups will need to modify the jam_unique_topic_name_vwiki constraint on the jam_topic table as follows: CONSTRAINT jam_unique_topic_name_vwiki UNIQUE (topic_name, virtual_wiki_id, delete_date).
  5. LDAP will probably remain problematic for the 0.6.0 release. Hopefully it can be improved in a future release.
  6. revision 1800 should fix the anonymous upload issue.
  7. I still need to update the constraint name lengths for DB2.
I'll keep plugging away at these a bit longer, although I'm only capable of staring at code for about 18 hours a day :) -- Ryan 22-Aug-2007 21:57 PDT
Hi Ryan,
  • Yes that's OK with empty content.
  • During the setup first it goes to the ANSI query handler properties file. Also it creates the cache folder in the file system directory and it have one ansi cache file with no data. So what I am doing to connect it to MSSQL(or DB2) is first do the setup with internal database, and I use the log it creates while setup for creating the tables and inserting the data in the external db by modifying the syntax according to the DB. After that in the configuration tab, in the persistence settings i provide all the required values and save it. From then it works fine with the external DB.
  • I'll try the modification to be done for handling the deleted topics.
  • I am now working on the LDAP code too. Once it is through i hope it may be of some help to you.
Thank you. --yesesnono 24-Aug-2007 13:13 PDT
Just to clarify, why is the additional step of choosing "internal database" and then converting to "MS SQL" necessary, as opposed to just selecting the "MS SQL" database type from the setup screen? I don't have access to either an MS SQL database or DB2 database to test with, but I think that there were success reports with both databases during past JAMWiki releases. I'm still trying to understand the problem, so apologies for all of the questions.
Regarding LDAP, the original implementation was done prior to using Acegi with JAMWiki, so if that's something that interests you then you may want to look at the Acegi LDAP support. I'd like to let Acegi handle as much as possible, so an implementationg that utilized the Acegi LDAP framework would be best.
I'm planning on spending a good deal of time on JAMWiki this weekend, so hopefully there will be a new beta by Sunday at the latest that addresses the remaining problems. -- Ryan 24-Aug-2007 13:28 PDT
I've installed JBoss, but the documentation is apparently behind a Redhat login screen so I've only been able to do some basic testing. I'm able to install the latest JAMWiki code in both internal database mode and external database mode using MySQL, but since the WAR file is not deployed as an exploded war then JBoss loses the property configuration information after restarting. Installing as an exploded WAR should resolve that issue.
I'd be willing to continue looking into the problem, but at this point I don't want to hold up the final 0.6.0 release much longer, so I'll probably defer to someone who knows JBoss better to say how best to address any problems. Hopefully that sounds reasonable! -- Ryan 26-Aug-2007 20:07 PDT
Regarding the DB2 18 character index name limit, having looked at the SQL there are a LOT of indexes that exceed 18 characters in length. I think the best way to address that problem is to update the ANSI SQL file to limit all index names to 18 characters - doing so limits the amount of SQL that will be different for DB2; however, since that affects all databases I'd like to make sure it goes through thorough testing, so I think it would be best to delay the change until 0.6.1. Hopefully that won't cause too much inconvenience. -- Ryan 26-Aug-2007 21:22 PDT
  • The additional step of choosing internal first and then going for MS SQL is because if we choose the external database first using MS SQL, the setup could not be completed. It just stops half way and a page cannot be displayed is seen in the browser. The log is already provided before.
  • I could not figure out why the external database connection could not be established at the configuration time.
  • JAMWiki is deployed in exploded form only in the JBoss. It retains the properties as such. No problem in that. --yesesnono 29-Aug-2007 03:35 PDT
revision 1827 trims all SQL constraint names to less than 18 characters, which should hopefully resolve the DB2 issues. I don't have a DB2 database to test with, so any confirmation about whether or not this solves the problem would be greatly appreciated! -- Ryan 04-Sep-2007 23:22 PDT
There was a comment added about the Special:Listusers page still not working with MS SQL that was later removed. Is that page still broken in 0.6.0? I'm hoping that issue is resolved, but if not I'll continue to investigate. Thanks! -- Ryan 09-Sep-2007 22:32 PDT

Hi Ryan,

Here are another set of issues for your reference.
  • Regarding the Listusers Page in MSSQL, it is working fine.
  • Setup issue is yet to be resolved.
DB2 Issues
  • The trimmed constraints are replaced as such. No problem with the constraint names.
  • DB2 doesn't allow null values in the unique constraints. So the follwing modifications are required. But it affects the constraints
    • In jam_topic table, delete_date is removed from the unique constraint jam_u_topic_name. Since delete_date can contain null values it is not allowed to be a column in the unique key.
    • In jam_role_map table,the unique constraint jam_u_rmap is removed for the similar reason.
    • In jam_watchlist table, topic name has been made as not null.
  • Apart from this, the recent changes and history link are throwing error in DB2.
Recent changes(Error):
   An unknown system error has occurred. The error message is: java.lang.Exception: Failure while executing select * from ( select *, rownumber() over (order by edit_date desc) as rownum from jam_recent_change where virtual_wiki_name = ? ) as jam_recent_change where rownum > ? and rownum <= ? order by rownum .
History(Error):
  An unknown system error has occurred. The error message is: java.lang.Exception: Failure while executing select * from ( select *, rownumber() over (order by edit_date desc) as rownum from jam_recent_change where topic_id = ? order by edit_date desc ) as jam_recent_change where rownum > ? and rownum <= ? order by rownum .

--yesesnono 18-Sep-2007 05:23 PDT

Thanks for continuing to provide these updates. I'll need to give some thought to how to work around the "no null values in primary keys" restriction, since that's how JAMWiki allows topics to be deleted and undeleted. It looks like I may be able to download a trial copy of DB2 from this site, and if that works hopefully the remainder of the issues can be quickly resolved. I'm extremely busy for the next week, but with luck will be able to try it out in the next two weeks. -- Ryan 18-Sep-2007 21:34 PDT
I finally got around to trying to install DB2, and it won't install on Windows XP (requires XP professional). I'll continue trying to make updates based on your reports (which are very helpful, thanks!), but obviously that approach will take a bit longer, so full DB2 support may not be possible for the next release. -- Ryan 29-Sep-2007 10:25 PDT

StartingPoints message[edit]

Hi Ryan, I did start my webtests - all green. Then I called localhost:8080/jamwiki-war/ and got a strange StartingPoints-page.

StartingPoints;jsessionid=10rrk4la97wt4
Der Artikel "StartingPoints;jsessionid=10rrk4la97wt4" existiert zur Zeit noch nicht. Um ihn anzulegen folgen Sie bitte diesem Link: <a href="/jamwiki-war/en/Special:Edit?topic=StartingPoints%3Bjsessionid%3D10rrk4la97wt4" class="edit" title="StartingPoints;jsessionid=10rrk4la97wt4">StartingPoints;jsessionid=10rrk4la97wt4</a>.

<br>

Dont know what this kind of message means to me? Anyway is this the right place to post such messages? -- mbert 19-Oct-2008 11:12 PDT

And wenn I login as the user admin I do get a clean StartingPoints page. -- mbert 19-Oct-2008 11:13 PDT
Thanks for the report - current trunk has some issues related to the storing of passwords (I'm working on fixing it) that may be causing the issue above. I'll try to get a fix checked in soon. -- Ryan 19-Oct-2008 20:26 PDT

Error while clicking the link All Pages/All Topics[edit]

When the link All Pages is clicked the below error message are seen in version JAMWiki0.6.7


Below error message is seen: 

java.lang.IllegalArgumentException: Topic name not specified in decodeTopicName


Server log:

SEVERE: Error in JSP page
java.lang.IllegalArgumentException: Topic name not specified in decodeTopicName
	at org.jamwiki.utils.Utilities.decodeTopicName(Utilities.java:106)
	at org.jamwiki.utils.LinkUtil.parseWikiLink(LinkUtil.java:441)
	at org.jamwiki.taglib.LinkTag.doEndTag(LinkTag.java:66)
	at org.apache.jsp.WEB_002dINF.jsp.items_jsp._jspx_meth_jamwiki_link_0(items_jsp.java:258)
	at org.apache.jsp.WEB_002dINF.jsp.items_jsp._jspx_meth_c_forEach_0(items_jsp.java:225)
	at org.apache.jsp.WEB_002dINF.jsp.items_jsp._jspService(items_jsp.java:119)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
  trimmed
	at java.lang.Thread.run(Thread.java:595)
2008-12-02 17:45:36,743 ERROR [STDERR] java.lang.IllegalArgumentException: Topic name not specified in decodeTopicName
2008-12-02 17:45:36,743 ERROR [STDERR] 	at org.jamwiki.utils.Utilities.decodeTopicName(Utilities.java:106)
2008-12-02 17:45:36,743 ERROR [STDERR] 	at org.jamwiki.utils.LinkUtil.parseWikiLink(LinkUtil.java:441)
2008-12-02 17:45:36,743 ERROR [STDERR] 	at org.jamwiki.taglib.LinkTag.doEndTag(LinkTag.java:66)
2008-12-02 17:45:36,743 ERROR [STDERR] 	at org.apache.jsp.WEB_002dINF.jsp.items_jsp._jspx_meth_jamwiki_link_0(items_jsp.java:258)
2008-12-02 17:45:36,743 ERROR [STDERR] 	at org.apache.jsp.WEB_002dINF.jsp.items_jsp._jspx_meth_c_forEach_0(items_jsp.java:225)
2008-12-02 17:45:36,743 ERROR [STDERR] 	at org.apache.jsp.WEB_002dINF.jsp.items_jsp._jspService(items_jsp.java:119)
2008-12-02 17:45:36,743 ERROR [STDERR] 	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
  trimmed

--yesesnono 02-Dec-2008 04:29 PST

I think there is bad data in your database - Special:Allpages works on jamwiki.org, and that error should only be triggered by null values. I can add a check in the code for empty topic names, but in the meantime to fix your wiki you can run the following query against your database to remove any blank topic names:
update jam_topic set topic_name = 'Empty Topic Name' where topic_name is null or topic_name = '';
Hopefully that will resolve the problem. -- Ryan 02-Dec-2008 20:12 PST
I tried to run the query in my DB. No rows were affected. Anyway will check it again and update you at the earliest. Thanks for your reply. --yesesnono 03-Dec-2008 22:16 PST

Maven build fails under Eclipse[edit]

I've checked out trunk code from svn repository using Eclipse 3.5.1, Subclipse 3.0 and M2Clipse 0.9.8 and JDK 1.6. SVN works fine but when I build top project using maven package it fails with the following output. I'm new to maven so please suggest a solution. -- Seba

10/11/09 15:45:50 CET: C:\projects\workspace\jamwiki
10/11/09 15:45:50 CET: Build type none : package
10/11/09 15:45:50 CET:  mvn -B -s "C:\Documents and Settings\sms85451\.m2\settings.xml" package
10/11/09 15:45:51 CET: Build type none : package
...
[INFO] [war:war]
[INFO] Packaging webapp
[INFO] Assembling webapp[jamwiki-war] in [C:\projects\workspace\jamwiki\jamwiki-war\target\jamwiki-war]
[INFO] Processing war project
[INFO] 
[INFO] 
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO] ------------------------------------------------------------------------
[INFO] Jamwiki Super POM ..................................... SUCCESS [1.734s]
[INFO] Javadiff .............................................. SUCCESS [1.984s]
[INFO] JAMWiki Core .......................................... SUCCESS [8.829s]
[INFO] JAMWiki Web ........................................... SUCCESS [3.718s]
[INFO] JAMWiki Addons ........................................ SUCCESS [0.063s]
[INFO] Bliki Parser .......................................... SUCCESS [1.015s]
[INFO] JAMWiki WAR ........................................... FAILED [3.485s]
[INFO] ------------------------------------------------------------------------
[ERROR] 

The following mojo encountered an error while executing:
Group-Id: org.apache.maven.plugins
Artifact-Id: maven-war-plugin
Version: 2.1-alpha-1
Mojo: war
brought in via: packaging: war

While building project:
Group-Id: org.jamwiki
Artifact-Id: jamwiki-war
Version: 0.8.0-SNAPSHOT
From file: C:\projects\workspace\jamwiki\jamwiki-war\pom.xml
Reason: Failed to copy file for artifact[active project artifact:
	artifact = org.jamwiki:jamwiki-core:jar:0.8.0-SNAPSHOT:compile;
	project: MavenProject: org.jamwiki:jamwiki-core:0.8.0-SNAPSHOT @ C:\projects\workspace\jamwiki\jamwiki-core\pom.xml]



[INFO] ------------------------------------------------------------------------
[INFO] For more information, run with the -e flag
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILED
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 23 seconds
[INFO] Finished at: Tue Nov 10 15:46:18 CET 2009
[INFO] Final Memory: 3M/21M
[INFO] ------------------------------------------------------------------------
I don't personally use Eclipse, but this problem report sounds like a similar issue and suggests an Eclipse configuration change that might help. Let me know if that solves the problem, and thanks for the report. -- Ryan • (comments) • 10-Nov-2009 07:45 PST

Upgrate from 0.6.7 to 0.8.1 failed[edit]

Sorry but I did not upgrate for a long time. To bussy at work. Finally I decided to do it (with upgrade to ubuntu 9.10) ....

I asked myself: Should I upgrade in two steps from 0.6.7 to 0.7.2 and then in a second turn to 0.8.1? Or in one step such a big upgrade-step?

Anyway both ways did not work for me (System: ubuntu 9.10, mysql 5.1, tomcat6 and java 6). I do have backups from the old system. How do I avoid to start with a new empty system? -- So Ryan, (happy new year btw), what do I do? mbert 01-Jan-2010 06:11 PST

right now after the second upgrade the jamwiki-installation wants to start a new Installation. hm, wonder.
tried it again, after cleaning the tomcat/work dir. -- Message: "Die Fehlermeldung lautet: Table 'jamwiki.jam_wiki_user_info' doesn't exist" the jamwiki-log shows no messages.
Do you have any messages in your logs from the initial upgrade? There were a lot of changes that occurred from 0.6.8 to 0.8.1 so it might be tough to track down exactly what failed without a log message. For what it's worth, I'm fairly certain I tested upgrading from 0.6.x to 0.8.x with Postgres, but I think the only MySQL upgrade testing I did was from later versions. -- Ryan • (comments) • 01-Jan-2010 09:05 PST

Ghost Page[edit]

JAMWiki 0.6.7

I created a page named Page_Name with content and a category tag. Subsequently I moved it and deleted the original. However when you go to Category:Page_Name or Special:Allpages it still appears in the listings.

  • if you go directly to /en/Page_Name it does not exist and opens the edit view
  • restarting the server to clear the cache does not remove the ghost entry
  • trying to recreate the page and delete it again does not work

If I can't resolve the bug I may recreate the wiki. Is their an way to export/dump the text from the wiki pages? I am currently using the internal database.

j_teer 06-Jan-2009 17:55 PST

See Configuration#System_Maintenance for discussions about migrating databases. At present there isn't a well-tested way of exporting an HSQL database. Alternatively you can manually clear the cache from the Special:Maintenance page and see if that resolves the issues. -- Ryan • (comments) • 10-Jan-2009 19:25 PST
Thanks Ryan, I tried the manual cache clearing without success. But I am unclear if it's a real bug or possible corruption from earlier issues I had. I am going to manually copy the pages when 0.7 comes out in case it is corruption. If I can't duplicate the Ghost Page then I'll close this bug. j_teer 21-Jan-2009 17:21 PST

Cached Pages with Incorrect Links[edit]

JAMWiki 0.6.7

Some wiki codes such as

[[:Category:Test]]

are parsed to display

/en/Special:Edit?topic=Catagory:Test

instead of

/en/Category:Test

if that page does not exist. If you create or delete the page, links are not quickly updated on other pages. It's likely a cache issue.

Possible fixes include

  • immediately expire the cache for pages with redirected links
  • rather than rewriting the link displayed, do a http redirect
  • Change the default behavior for certain special pages. Many users may not want special pages to default to edit. The wiki should display listings with the standard 'this page doesn't exist'.

j_teer

I think you're right that it's probably a cache issue, and I suspect that other links starting with colons (such as [[:Image:MyImage.gif]]) will have the same issue. I'll try to get a fix together. Regarding changing behavior, as much as possible I try to follow Mediawiki, so if they behave differently then I'll update JAMWiki to match. -- Ryan 05-Jan-2009 19:33 PST
Thanks, I am also noticing that deleted or moved pages continue to be listed on Category:Page for some time after they are deleted. It's possibly related to the same issue. j_teer 06-Jan-2009 12:24 PST
I actually just tried to recreate this issue on my local (Windows) box and on jamwiki.org (Linux). Both are running some version of the 0.7.0 code, but there hasn't been any significant changes to the caching code, so the behavior should be the same as 0.6.7. In both cases things worked as expected - the link was red when the category didn't exist, and blue after the category was created. The exact steps I followed were:
  1. Add [[:Category:JAMWiki Test Category]] to the Sandbox topic.
  2. Preview. Link is red.
  3. Save the topic. Link is red.
  4. Click on the link, taking me to the category page.
  5. Save the category without entering any content.
  6. Return to the Sandbox page. Link is now blue.
If you followed different steps could you let me know how to reproduce the bug? If not, have you made any changes to the default cache settings from the Special:Admin pages? Can you reproduce this issue on jamwiki.org? Thanks! -- Ryan 09-Jan-2009 10:04 PST

Deleted pages in search results[edit]

When I delete a page then search for the title, it shows up in the search results as a red link (non-existing page). It only vanishes completely when I go to the admin section and refresh the search index manually. I don't know how Lucene works, is it possible to refresh the index outside of JamWiki (e.g. in a cron job) do you know?

JamWiki version 0.5, postgres database.

Oliver 24-Jan-2007 03:54 PST

I'll make sure I can reproduce, and provided the same bug exists in my environment this should be an easy issue to resolve. I'm not sure if there's a way to refresh the index from a CRON job - you'd basically have to run Java commands from the shell, which would be ugly if it even worked. The best option is probably just to wait for a fix in 0.5.1 and occasionally refresh the search index manually until then. -- Ryan 24-Jan-2007 09:10 PST
I added a document, searched for it, then deleted it and repeated the search. After deletion it was gone, so this issue might be a bit harder to track down than I initially assumed. Are there any error messages in your log after deleting the page? -- Ryan 24-Jan-2007 20:30 PST
Nothing in the log. Don't worry about it if it doesn't affect others. I can rebuild the index manually now and again. Oliver 25-Jan-2007 03:39 PST
This may be related to the issue of Ghost Page. j_teer 08-Jan-2009 21:06 PST

Signatures don't work in some cases[edit]

If the user hasn't maintained his EMail or display name the signature will not be generated. See the WikiSignatureTag#buildWikiSignature() method. Is this intentionally? I think most users won't configure their EMail and display name in the first step and might wonder, why the signature doesn't work. -- Axel Kramer 08-May-2008 13:37 PDT

Definitely not intentional, but should be easy to fix. -- Ryan 08-May-2008 13:57 PDT
I just tried this with a user who had no display name or email and the signature came up properly. Can you let me know what you see, and what the signature patterns are in your Special:Admin#parser settings? -- Ryan 08-May-2008 19:28 PDT
For reference, here are my signatures after deleting the display name and email on my account:
~~~ wrh2
~~~~ wrh2 08-May-2008 19:36 PDT
~~~~~ 08-May-2008 19:36 PDT
Oh sorry, yes you are right, if I'm creating a new user in my development environment it works. Could it be, that only the first admin user sees this effect, because in the debugging I've seen thet email == null and displayName == null? Nethertheless I think you can close this issue. -- Axel Kramer 09-May-2008 09:20 PDT
I'll try to reproduce the issue with a new install. I'm (hopefully) going to be able to spend some time bug fixing this weekend with the goal of getting a beta release ready by the end of the weekend, so I'll add this bug to the list of things to investigate. -- Ryan 09-May-2008 11:03 PDT

Wrong Path for Uploads[edit]

In the method buildUploadUrl (UploadServlet) a directory under the upload folder e.g. /jamwiki/upload/2010/1 is beeing created but the file itself is saved under /jamwiki/upload. If you return "subdirectory + '/' + url;" instead of "url;" in line 115, everything works as expected.

This is working for me locally, so I think any issue that might have existed has been fixed by recent changes. -- Ryan • (comments) • 12-May-2010 20:16 PDT

Upload files success , but download fail[edit]

I am change the default upload folder , I am setting it out of the webapp ,

I am point it to my data folder (D:\myWiki\upload)

I am try to upload file , upload is success , and I can find the upload file is in D:\myWiki\upload sub-folder , but if I try to use page link to download the file , it will be fail ...

Have a look at Configuration#File upload settings. Whatever directory you specify for file uploads (such as D:\myWiki\upload) MUST be accessible to either your web server or app server. Additionally, you will need to specify the "Relative file upload root" value as discussed in the documentation. If the documentation is unclear please let me know or (even better!) go ahead and update it to be clearer. Thanks for the report! -- Ryan • (comments) • 21-Oct-2009 10:15 PDT

Still the old problem with the StartPage[edit]

Archived from the Feedback page:

Hi Ryan, there is still the old problem with the StartingPage. I did install the jamwiki 0.6.7 on my local computer and everything went fine but the StartingPoints - Page had a questionmark and also the link in the left-navigation bar! Wenn I did change the web.xml to use the german context - changed en to de - I got a really strange StartingPoints-page after the restart of the tomcat6.

<script type="text/javascript">
function cancel() {
	history.go(-1);
}
</script>
Ein Systemfehler ist aufgetreten. Die Fehlermeldung lautet:
Ein unbekannter Systemfehler ist aufgetreten. Die Fehlermeldung lautet: java.lang.NullPointerException.

<form><input type="button" onClick="cancel();" value="Zurück" /></form>

<br />

</div> </div>

and the logs say:

2009-01-04 15:39:47,259 CONFIG: org.jamwiki.utils.WikiLogger - JAMWiki log initialized from /var/lib/tomcat6/webapps/jamwiki/WEB-INF/classes/logging.properties with pattern %t/jamwiki.log.%g
2009-01-04 15:39:47,401 CONFIG: org.jamwiki.Environment - Loading properties from /var/lib/tomcat6/webapps/jamwiki/WEB-INF/classes/jamwiki.properties
2009-01-04 15:39:47,467 CONFIG: org.jamwiki.Environment - Loading properties from /var/lib/tomcat6/webapps/jamwiki/WEB-INF/classes/sql.ansi.properties
2009-01-04 15:39:47,474 CONFIG: org.jamwiki.Environment - Loading properties from /var/lib/tomcat6/webapps/jamwiki/WEB-INF/classes/sql.ansi.properties
2009-01-04 15:39:47,476 CONFIG: org.jamwiki.Environment - Loading properties from /var/lib/tomcat6/webapps/jamwiki/WEB-INF/classes/sql.ansi.properties
2009-01-04 15:39:47,479 CONFIG: org.jamwiki.Environment - Loading properties from /var/lib/tomcat6/webapps/jamwiki/WEB-INF/classes/sql.mysql.properties
2009-01-04 15:40:22,903 SEVERE: org.jamwiki.servlets.ServletUtil - Servlet error
java.lang.NullPointerException
       at org.jamwiki.servlets.TopicServlet.view(TopicServlet.java:57)
       at org.jamwiki.servlets.TopicServlet.handleJAMWikiRequest(TopicServlet.java:45)
       at org.jamwiki.servlets.JAMWikiServlet.handleRequestInternal(JAMWikiServlet.java:74)
       at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
       at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
trimmed
       at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
       at java.lang.Thread.run(Thread.java:636)
2009-01-04 15:40:22,981 SEVERE: org.jamwiki.servlets.ServletUtil - No virtual wiki found for de
2009-01-04 15:40:23,078 CONFIG: org.jamwiki.WikiConfiguration - Configuration values loaded from /var/lib/tomcat6/webapps/jamwiki/WEB-INF/classes/jamwiki-configuration.xml
2009-01-04 15:40:23,096 WARNING: org.jamwiki.servlets.ServletUtil - error getting cached page de / LeftMenu
java.lang.NullPointerException
       at org.jamwiki.servlets.ServletUtil.cachedContent(ServletUtil.java:254)
       at org.jamwiki.servlets.ServletUtil.buildLayout(ServletUtil.java:101)
       at org.jamwiki.servlets.ServletUtil.loadDefaults(ServletUtil.java:563)
       at org.jamwiki.servlets.ServletUtil.viewError(ServletUtil.java:771)
       at org.jamwiki.servlets.JAMWikiServlet.handleRequestInternal(JAMWikiServlet.java:79)
       at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
trimmed
       at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
       at java.lang.Thread.run(Thread.java:636)
2009-01-04 15:40:23,260 INFO: org.jamwiki.parser.jflex.JFlexParser - Parse time (parseHTML) for BottomArea (0.066 s.)
2009-01-04 15:40:24,927 CONFIG: org.jamwiki.Environment - Loading properties from /var/lib/tomcat6/webapps/jamwiki/WEB-INF/classes/interwiki.properties

So, is this the old bug - we talked about earlier (identified with my first webtests?). Anyway I will install the 0.7.0 version now and try again. -- greetings from 95.114.106.229 04-Jan-2009 06:51 PST

This seems to be very serious! A lot of pages are defekt or only work if I login as registered user - but most of the time I get forwarded to the englisch context. -- greetings Mbert.

2009-01-04 16:21:42,740 SEVERE: org.jamwiki.servlets.ServletUtil - No virtual wiki found for de
2009-01-04 16:21:42,741 WARNING: org.jamwiki.servlets.ServletUtil - error getting cached page de / LeftMenu
java.lang.NullPointerException
       at org.jamwiki.servlets.ServletUtil.cachedContent(ServletUtil.java:254)
       at org.jamwiki.servlets.ServletUtil.buildLayout(ServletUtil.java:101)
       at org.jamwiki.servlets.ServletUtil.loadDefaults(ServletUtil.java:563)
       at org.jamwiki.servlets.ServletUtil.viewError(ServletUtil.java:771)
       at org.jamwiki.servlets.JAMWikiServlet.handleRequestInternal(JAMWikiServlet.java:79)
       at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
       at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
trimmed
       at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
       at java.lang.Thread.run(Thread.java:636)

Hi Ryan, for me it is at this moment impossible to use the german context (de) with jamwiki 0.6.7. can you please fix it? After my update to ubuntu 8.10 I'm a little bit lost in space with my jamwiki installation - upgrading to 0.6.7 .... ;-/ -- mbert 05-Jan-2009 00:55 PST

I'll take a closer look at this issue after I get off of work. From the stack traces it isn't immediately obvious to me what's wrong, although one thing to check might be verifying that permissions on all JAMWiki directories (particularly the "File System Directory") are allowing read/write access to Tomcat. -- Ryan 05-Jan-2009 07:41 PST
The line in TopicServlet that is failing is the following:
VirtualWiki virtualWiki = WikiBase.getDataHandler().lookupVirtualWiki(virtualWikiName);
topic = virtualWiki.getDefaultTopicName();
It appears that there isn't a database record for your "de" virtual wiki... just to confirm, the web.xml should probably look something like the following:
<servlet-mapping>
     <servlet-name>jamwiki</servlet-name>
     <url-pattern>/en/*</url-pattern> 
</servlet-mapping>
<servlet-mapping>
     <servlet-name>jamwiki</servlet-name>
     <url-pattern>/de/*</url-pattern> 
</servlet-mapping>
And if you go to Special:Maintenance on your wiki (using "en" or "de") you should see records for both of these virtual wikis:
Name Default Topic
en StartingPoints
de StartingPoints
If you've changed the default topic then it would show something different. Anyhow, let me know if you've got anything different from what's shown above. -- Ryan 05-Jan-2009 19:30 PST

Links with Whitespace[edit]

Hi! Test Links with Whitespace shows some accidentaly weird syntax which may be correct and its effects. Kind regards, Rudi Rudi Wiesmayr (AT) 01-Apr-2010 02:55 PDT

I just tried this on a Mediawiki installation and I think the behavior of JAMWiki is the same as Mediawiki - both parsers appear to assume that a link must be on a single line. Let me know if that seems reasonable. -- Ryan • (comments) • 03-Apr-2010 20:34 PDT

Help with Moving Wiki to new server - Image issue[edit]

I have just moved our Wiki from one old server to a newer one. All is well except for the images are not found - the error message is:- java.lang.IllegalArgumentException: Not a directory!

so I am assuming there is an issue with finding the directory where files are stored. I have reconfigured the server with

  • the new Server URL (http://servername:8080/);
  • a new file system directory (e:\Jamwiki\);
  • new file upload directory (E:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\jamwiki\upload);
  • relative file upload root(/jamwiki/upload/);
  • File server URL (http://servername:8080/)...

Can any help explain what the problem is and how to resolve it? The plan is to change the new server URL to match the old one in DNS -- will that help? I have tried to upload test image files but this fails with the same error message. Any help appreciated.. I am running 0.8.1

The file server URL shouldn't cause the exception here - I'd guess that the error is solely related to the system not being able to find the image files. Are all of your image in the E:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\jamwiki\upload folder and using the same paths as on your old server? If so, can you provide a couple of lines from the exception stack in your log so I can see the actual error message and the code that is throwing it? Thanks. -- Ryan • (comments) • 28-Apr-2010 07:48 PDT

Ryan..thanks for the prompt response, the original installation was on the C:\drive of the a server, unfortunately this isnt available for applications on the new server and the path has different folder structure.

From tomcat log

ava.lang.IllegalArgumentException: Not a directory!
	at javax.imageio.stream.FileCacheImageInputStream.<init>(Unknown Source)
	at com.sun.imageio.spi.InputStreamImageInputStreamSpi.createInputStreamInstance(Unknown Source)
	at javax.imageio.ImageIO.createImageInputStream(Unknown Source)
	at javax.imageio.ImageIO.read(Unknown Source)
	at org.jamwiki.utils.ImageUtil.loadImage(ImageUtil.java:164)
	at org.jamwiki.utils.ImageUtil.initializeImage(ImageUtil.java:131)
	at org.jamwiki.utils.LinkUtil.buildImageLinkHtml(LinkUtil.java:190)
	at org.jamwiki.taglib.ImageLinkTag.doEndTag(ImageLinkTag.java:52)
	at org.apache.jsp.WEB_002dINF.jsp.topic_jsp._jspx_meth_jamwiki_005fimage_005f0(topic_jsp.java:315)
	at org.apache.jsp.WEB_002dINF.jsp.topic_jsp._jspx_meth_c_005fif_005f2(topic_jsp.java:290)
	at org.apache.jsp.WEB_002dINF.jsp.topic_jsp._jspx_meth_c_005fif_005f1(topic_jsp.java:246)
	at org.apache.jsp.WEB_002dINF.jsp.topic_jsp._jspx_meth_c_005fif_005f0(topic_jsp.java:202)

I get the same error if I try to upload any new images...

That particular code is simply trying to read an image off of the filesystem to determine its dimensions - it does so by concatenating the file upload directory with the relative path stored for the image record. So for example, if the file upload directory is E:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\jamwiki\upload and the image url is 2010/4/myImage.jpg it will try to find an image named E:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\jamwiki\upload\2010\4\myImage.jpg. Are you sure your upload directory path is correct, and that there aren't any permissions issues that would prevent it from being read? For what it's worth, I've copied the jamwiki.org database & filesystem (Linux) to my laptop (Windows) in the past, and provided the directories are set up correctly everything works as expected, so this should work without any special effort. -- Ryan • (comments) • 28-Apr-2010 08:54 PDT

This is really weird, I can download files from the upload directory so the path is correct as you can see it on the screen, but not open any images. I have set user permissions to be 'full control' on the directories... stumped now..

.. In desperation reinstalled Tomcat to directory E:\Tomcat 5.5\, all now works, images now found... could this be something to do with the depth of the path???

I'll keep this report open and do some investigation... on my laptop the path is the same as yours but on the "c" drive, so the depth should be fine, although it's always possible that there's some obscure bug in the code that is getting triggered. In any case, thanks for the report and glad that it's working for you now! -- Ryan • (comments) • 29-Apr-2010 07:43 PDT

File Upload Problem[edit]

Moved from the Feedback page:

I cannot seem to upload a file that is 45MB in size. It just shows .45 and is corrupted. I have set my settings to a larger file size but it does'nt seem to work.

Can you provide any additional details? Are there error messages in the logs? What type of file is it? What OS and web application server are you using? At my previous employer we routinely uploaded files that were up to 100MB in size, so I suspect the problem may be environment-related. -- Ryan • (comments) • 03-Feb-2010 07:41 PST

Security Hole?[edit]

Moved from the Feedback page:

The method of disabling all permissions that you describe above basically works for me, thanks, but I notice that when I'm logged out it still appears to be possible to access images and other uploaded files. --Floating World 28-Dec-2009 03:42 PST Oh, wait, I was totally wrong about that. It must have been the browser caching or something. --Floating World 28-Dec-2009 04:04 PST

No search results[edit]

Hello, just started workin g with Jamwiki, so far everthing is fine, but after a while I don't get any search results... Even if I enter the complete name of a topic it says that it's not existing with a Link to create the topic. If I click on that link, the existing topic shows up fine. Can anybody help me? Thx alot!

Are there any messages in your logs? What happens if you rebuild the search index from Special:Maintenance? -- Ryan • (comments) • 11-Aug-2010 07:26 PDT
I already did that - without any result.... Just deleted the data in folder cache folder -> it works now...

Configuration forgotten every redeploy[edit]

I'm trying to use JAMWiki under Jetty. Everything seems to work fine. Then I restart jetty, and all the installation configuration options like the directories and admin passwords seem lost. That is, after a jetty restart, I have to fill out the installation fields again. JAMWiki warns me that there is an existing installation, and I say to continue.

Previous reports like this one have required changes in the way that the WAR is deployed on the application server - see Installation#Web Application Server Configuration, specifically BEA and JBoss. Apparently some application servers clear properties files if the application is not deployed in an exploded form. Hopefully that helps. -- Ryan 08-Feb-2007 21:48 PST
Could you provide a way to pass the needed information in initialization parameters or something like that? I believe it's init-param or context-param or something like that when the context is started.
A conjecture: Jetty does not appear to open War files as Tomcat does. This might mean that the /classes/jamwiki.properties file is not actually being written (which is where JAMWiki remembers its configuration); if there is a file error thrown, it's not being reported. Try opening the War file and dropping it into a directory, say, webapps/wiki and then clear the data area and start over. -- Jack 12-Mar-2007 13:49 PDST

This comment copied from the FAQ page:

Each time I re-start the server, JAMWiki goes through the .../en/Special:Setup webpage requiring that I re-setup the File-System directory, File upload directory and also resetting the admin user login and password. Is there a way to prevent this from happening? I want the admin user/password to be able survive a stop/restart of the server. Thanks...

Links to non-image files broken[edit]

I am trying upload a VCF-file (text) and create a link to it from a page.

The upload itself works, but the file is assumed to be an image. (An Image:myfile.vcf page is generated). When I try to use this link on a page, it is rendered as href="null".

--Jens 02-Feb-2007 01:53 PST

The "Image:" prefix is used by-design for all file uploads, and is consistent with MediaWiki. There are discussions to change that behavior (see the Feedback page) but nothing has yet been implemented. Note that the MediaWiki syntax for displaying an image is [[Image:Example.jpg]], but since files can't be displayed that syntax won't display anything for non-images. Using [[:Image:Example.jpg]] is the recommended syntax for linking to an image page. Let me know if that resolves the problem for you, and thanks for the report. -- Ryan 02-Feb-2007 07:43 PST

Hi, this bug description matches what I encounter too. In essence, I can upload non-image text files, but can't make a link to them or retrieve them. Note that all works fine for images, though.

In detail, here is what I do on my 0.5.2 install, internal database, Tomcat 6.0:

  • upload example.txt using the Upload File page
  • check in E:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\JAMWikiUploads\2007\3 : the file has been uploaded there
  • check that my Relative path from web server root to file upload directory is set to ../../JAMWikiUploads/, while my server root is E:\Program Files\Apache Software Foundation\Tomcat 6.0\webapps\wiki\WEB-INF (Note: I wouldn't actually call that a server root, perhaps change the name ?)
  • on the Image: web page that I get after the upload, there is the "View/Download this file: Image:example.txt" link; however, it is rendered in HTML as anchor with href="", which is bad: I can't retrieve the original file.
  • if in another page, I insert
    [[:Image:example.txt]]
    

    , the hlink is href="/wiki/en/Image:TCM_6A09.doc", which is OK

  • if in another page, I insert
    [[Image:example.txt]]
    

    , the hlink is href="null", which is bad

Thanks for your comments.

-- SB 27-Mar-2007

Thanks for the detailed bug report. I suspect the problem may be related to serving images from within the Tomcat application directory (I use a separate Apache directory in my local testing), so I'll see if I can reproduce the problem and get a fix ready. I can't promise that I'll get to this issue soon, so if anyone else is seeing this issue and is interested in working on a fix please let me know. -- Ryan 27-Mar-2007 22:04 PST
Idem with 0.5.3 -- SB 12-Apr-2007

Odd category behaviour[edit]

Sometimes during my usage of JamWiki I created a category whose name is starting with uppercase letter, e.g. Health. Later on, I accidentally created one of the articles to belong to the same category, but with lowercase starting letter, health. After that, on Special:Categories page these got displayed as distinct categories, but with same articles lists. Then I tried to move one category to the other, health -> Health, and got the following error:

An unknown system error has occurred. The error message is: java.lang.StringIndexOutOfBoundsException: String index out of range: -1.

Now, this error message is displayed whenever I try to select either of the categories involved.

I believe these could be two different issues:

  1. handling capitalization in category names, and
  2. trying to move (rename) one category into another one that already exists;

Using JAMWiki 0.5.0 with internal HSQLdb on Tomcat 5.5.17.

-- Vlada 26-Jan-2007 00:33 PST

Thanks, I'll see if I can reproduce this problem & hopefully get a fix in the next day or two. -- Ryan 27-Jan-2007 01:46 PST
After a bit of investigation I'm going to hold off on changing anything prior to the 0.5.1 release. There may be more than one issue here, but at least one problem is that it's not consistent how the case-sensitivity for categories is handled. For example:
  • A topic named "Category:Uppercase" is edited and created.
  • JAMWiki will now prevent you from creating a second category named "Category:UpPeRcAsE".
  • However, adding tags such as "Category:Uppercase" and "Category:UpPeRcAsE" to topics is still valid, and results in two separate categories being displayed on Special:Categories.
The solution would be either to remove the case-insensitive condition for categories or to add some logic to determine that "Uppercase" and "UpPeRcAsE" are the same; the difficulty in the latter approach is determining which value to use when displaying the category name. In either case, there may be some issues with backwards-compatibility to deal with. -- Ryan 27-Jan-2007 14:57 PST

Editing virtual wiki start page doesn't work[edit]

when trying to edit the default page for any virtual wiki (on the admin screen), it comes back with "Failure while adding virtual wiki: null."

I'm unable to reproduce this problem - if possible, can you provide the following?
  • Your JAMWiki version.
  • Your database version.
  • Any log messages produced when this error occurs.
  • The default page name and virtual wiki name you're using when you get this error.
Thanks! -- Ryan 01-Jan-2007 12:20 PST
I'm having the same problem. I'm currently running Jamwiki 0.4.3 on Postgres 8.0 on a Fedora Core 4 server on Tomcat 5.0.28 if this helps. I don't have time to look into the server logs right now but when I get some time I will post them here. Alexander Boyd 18-Feb-2007 23:19 PST
The name of the virtual wiki is eportal and the start page was StartingPoints and I was attempting to change it to Evaluation Portal. The entire wiki system is located at http://trivergia.com Alexander Boyd 18-Feb-2007 23:23 PST
Thanks for the additional report. Any messages from the logs would be helpful, and provided I can pin down what's breaking I'll try to get this issue resolved for 0.5.2. -- Ryan 19-Feb-2007 00:10 PST
As of 01 April I'm still unable to reproduce this problem, so anyone who is experiencing this issue please let me know any additional information about your setup, particulary the app server being used, any log messages, and the path to your JAMWiki system directory.
Hi, I had the same problem (tomcat, hsql & mysql, 0.6.6) , so I checked the code in the repo (0.7 or so). As far as I can tell, the AdminServlet.properties() function does update the properties file, but doesn't update the default virtualWiki in the DB. Attila - Wed Jul 16 01:56:55 CEST 2008
Thanks, that's helpful! I've been swamped with other stuff since getting back from vacation, but hopefully will be able to investigate this further soon. -- Ryan 16-Jul-2008 22:15 PDT

counting problem on Category-page[edit]

Moved from the Feedback page:

Hi Ryan, if I view the Special:Categories page and click the 10 (10 items on one page) then I see 9 elements, even though I do have 11 Categories. Looks like the old Problem with counting from sero;-)

btw: the update worked fine. Michael Habbert 04-Jan-2007 06:50 PST
Glad to hear the update to 0.5.0 went smoothly - the upgrade code is difficult to test, so it's always good to get feedback. What database are you using (I know you've reported this before, but I'm lazy ;) )? There are some known problems with pagination when, for example, ten results are displayed per page and there are a total of 10, 20, 30, 40, etc results, but it doesn't sound like that's the problem you're running into. -- Ryan 04-Jan-2007 09:21 PST
Hi Ryan, Im using MySQL - 5.0.18 Michael Habbert 04-Jan-2007 13:03 PST
Hi Ryan, I think your are right and wrong;-).
Sicht: Vorherige 25 | Nächste 25  (Ergebnisse je Seite: 10 | 25 | 50 | 100 | 250 | 500)
 
   1. Dokumentation
   2. Weisheit
   3. Techik
   4. Netpioneer
   5. Finanzen
   6. Technik Datenbank
   7. Technik
   8. Suedendschule
   9. Beruf 
  10. Canoo Webtest
  11. PD Help

This is my Category-Page. You see, it looks like 11 entries but check 3 and 7 - my old Problem of a misspelled Category: Technik and Techik. I think the real number is in fact 10 and my Problem is in fact related to your '10 | 20 | etc problem' you mentioned already. And my Problem is still how to get rid of the Category 3 (named: Techik). -- Michael Habbert 07-Jan-2007 01:29 PST

Good catch! I'm still trying to figure out how to reproduce your problem with the "Technik" and "Techik" category - at the moment I'm not sure what would cause that issue, but this report may help narrow it down. I've got a handful of issues to investigate for the 0.5.1 release, so hopefully both the 10, 20, 30 issue and your phantom category issue will get fixed. Thanks for being patient! -- Ryan 07-Jan-2007 09:46 PST

Migration to MySQL[edit]

I have also been trying to migrate to mysql to see if that helps. I tried the migration script from the Admin page and it created four tables in the mysql database. When I export my database to csv files, it creates many more than four tables. Also, I am not clear on two aspects of db migration.
  • After migration, is the wiki running with the new database or the old one? What are the other tables? Is there a DDL script to create those?
  • It looks like the jamwiki.properties file needs to be updated after migration to switch to the new db. Some property values look obvious:
  • db-password
  • db-user
  • persistenceType=EXTERNAL
  • url=jdbc:mysql://localhost:3306/jamwiki
But what value should be set for
  • database-type? Default value of org.jamwiki.db.HSqlDataHandler does not seem appropriate. Drop down box on admin page lists "mysql", but that does not seem appropriate. Bob White:12-Oct-2009 12:23 PDT
I just found the value for database-type in jamwiki-configuration.xml:
  • database-type=org.jamwiki.db.MySqlDataHandler
I will try to restart wiki with these changes, but still wondering how to create full schema in the mysql database. I am testing this on our test wiki server and will have to import wiki into the mysql database using the csv files. But must create tables prior to import.
After restarting with mysql properties in jamwiki.properties, Jamwiki recognizes the mysql database, but I get the following error:
javax.servlet.jsp.JspException: java.lang.IllegalStateException: Failure while encrypting value
[16:07:12.359] {http--8080-1} Encryption failure
[16:07:12.359] {http--8080-1} javax.crypto.IllegalBlockSizeException: Input length must be multiple of 8 when decrypting with padded cipher
[16:07:12.359] {http--8080-1} 	at com.sun.crypto.provider.SunJCE_f.b(DashoA13*..)
[16:07:12.359] {http--8080-1} 	at com.sun.crypto.provider.SunJCE_f.b(DashoA13*..)
[16:07:12.359] {http--8080-1} 	at com.sun.crypto.provider.DESCipher.engineDoFinal(DashoA13*..)
[16:07:12.359] {http--8080-1} 	at javax.crypto.Cipher.doFinal(DashoA13*..)
[16:07:12.359] {http--8080-1} 	at org.jamwiki.utils.Encryption.decrypt64(Encryption.java:122)
[16:07:12.359] {http--8080-1} 	at org.jamwiki.utils.Encryption.getEncryptedProperty(Encryption.java:163)
[16:07:12.359] {http--8080-1} 	at org.jamwiki.db.LocalDataSource.<init>(LocalDataSource.java:49)
[16:07:12.359] {http--8080-1} 	at org.jamwiki.db.DatabaseConnection.configDataSource(DatabaseConnection.java:256)
[16:07:12.359] {http--8080-1} 	at org.jamwiki.db.DatabaseConnection.getConnection(DatabaseConnection.java:239)
[16:07:12.359] {http--8080-1} 	at org.jamwiki.db.WikiPreparedStatement.executeQuery(WikiPreparedStatement.java:61)
[16:07:12.359] {http--8080-1} 	at org.jamwiki.db.AnsiQueryHandler.getRoleMapGroup(AnsiQueryHandler.java:409)
[16:07:12.359] {http--8080-1} 	at org.jamwiki.db.AnsiDataHandler.getRoleMapGroup(AnsiDataHandler.java:455)
[16:07:12.484] {http--8080-1} Failure while initializing JAMWiki anonymous user authorities
[16:07:12.484] {http--8080-1} java.lang.IllegalStateException: Failure while encrypting value
[16:07:12.484] {http--8080-1} 	at org.jamwiki.utils.Encryption.getEncryptedProperty(Encryption.java:166)
[16:07:12.484] {http--8080-1} 	at org.jamwiki.db.LocalDataSource.<init>(LocalDataSource.java:49)
[16:07:12.484] {http--8080-1} 	at org.jamwiki.db.DatabaseConnection.configDataSource(DatabaseConnection.java:256)
[16:07:12.484] {http--8080-1} 	at org.jamwiki.db.DatabaseConnection.getConnection(DatabaseConnection.java:239)
[16:07:12.484] {http--8080-1} 	at org.jamwiki.db.WikiPreparedStatement.executeQuery(WikiPreparedStatement.java:61)
[16:07:12.484] {http--8080-1} 	at org.jamwiki.db.AnsiQueryHandler.getRoleMapGroup(AnsiQueryHandler.java:409)
[16:07:12.484] {http--8080-1} 	at org.jamwiki.db.AnsiDataHandler.getRoleMapGroup(AnsiDataHandler.java:455)
[16:07:12.484] {http--8080-1} 	at org.jamwiki.authentication.JAMWikiAuthenticationConfiguration.getJamwikiAnonymousAuthorities(JAMWikiAuthenticationConfiguration.java:68)
[16:07:12.484] {http--8080-1} 	at org.jamwiki.authentication.JAMWikiPostAuthenticationFilter.handleAnonymousUser(JAMWikiPostAuthenticationFilter.java:106)
[16:07:12.484] {http--8080-1} 	at org.jamwiki.authentication.JAMWikiPostAuthenticationFilter.doFilter(JAMWikiPostAuthenticationFilter.java:87)
[16:07:12.640] {http--8080-4} Encryption failure
[16:07:12.640] {http--8080-4} javax.crypto.IllegalBlockSizeException: Input length must be multiple of 8 when decrypting with padded cipher
[16:07:12.640] {http--8080-4} 	at com.sun.crypto.provider.SunJCE_f.b(DashoA13*..)
[16:07:12.640] {http--8080-4} 	at com.sun.crypto.provider.SunJCE_f.b(DashoA13*..)
[16:07:12.640] {http--8080-4} 	at com.sun.crypto.provider.DESCipher.engineDoFinal(DashoA13*..)
[16:07:12.640] {http--8080-4} 	at javax.crypto.Cipher.doFinal(DashoA13*..)
[16:07:12.640] {http--8080-4} 	at org.jamwiki.utils.Encryption.decrypt64(Encryption.java:122)
[16:07:12.640] {http--8080-4} 	at org.jamwiki.utils.Encryption.getEncryptedProperty(Encryption.java:163)
[16:07:12.640] {http--8080-4} 	at org.jamwiki.db.LocalDataSource.<init>(LocalDataSource.java:49)
[16:07:12.640] {http--8080-4} 	at org.jamwiki.db.DatabaseConnection.configDataSource(DatabaseConnection.java:256)
[16:07:12.640] {http--8080-4} 	at org.jamwiki.db.DatabaseConnection.getConnection(DatabaseConnection.java:239)
[16:07:12.640] {http--8080-4} 	at org.jamwiki.db.WikiPreparedStatement.executeQuery(WikiPreparedStatement.java:61)
[16:07:12.640] {http--8080-4} 	at org.jamwiki.db.AnsiQueryHandler.getRoleMapGroup(AnsiQueryHandler.java:409)
[16:07:12.640] {http--8080-4} 	at org.jamwiki.db.AnsiDataHandler.getRoleMapGroup(AnsiDataHandler.java:455)
[16:07:12.640] {http--8080-4} 	at org.jamwiki.authentication.JAMWikiAuthenticationConfiguration.getJamwikiAnonymousAuthorities(JAMWikiAuthenticationConfiguration.java:68)
[16:07:12.640] {http--8080-4} 	at org.jamwiki.authentication.JAMWikiPostAuthenticationFilter.handleAnonymousUser(JAMWikiPostAuthenticationFilter.java:106)
[16:07:12.640] {http--8080-4} 	at org.jamwiki.authentication.JAMWikiPostAuthenticationFilter.doFilter(JAMWikiPostAuthenticationFilter.java:87)
[16:07:12.640] {http--8080-4} 	at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390)
[16:07:12.828] {http--8080-4} Failure while initializing JAMWiki anonymous user authorities
[16:07:12.828] {http--8080-4} java.lang.IllegalStateException: Failure while encrypting value
[16:07:12.828] {http--8080-4} 	at org.jamwiki.utils.Encryption.getEncryptedProperty(Encryption.java:166)
[16:07:12.828] {http--8080-4} 	at org.jamwiki.db.LocalDataSource.<init>(LocalDataSource.java:49)
[16:07:12.828] {http--8080-4} 	at org.jamwiki.db.DatabaseConnection.configDataSource(DatabaseConnection.java:256)
[16:07:12.828] {http--8080-4} 	at org.jamwiki.db.DatabaseConnection.getConnection(DatabaseConnection.java:239)
[16:07:12.828] {http--8080-4} 	at org.jamwiki.db.WikiPreparedStatement.executeQuery(WikiPreparedStatement.java:61)
[16:07:12.828] {http--8080-4} 	at org.jamwiki.db.AnsiQueryHandler.getRoleMapGroup(AnsiQueryHandler.java:409)
[16:07:12.828] {http--8080-4} 	at org.jamwiki.db.AnsiDataHandler.getRoleMapGroup(AnsiDataHandler.java:455)
[16:07:12.828] {http--8080-4} 	at org.jamwiki.authentication.JAMWikiAuthenticationConfiguration.getJamwikiAnonymousAuthorities(JAMWikiAuthenticationConfiguration.java:68)
[16:07:12.828] {http--8080-4} 	at org.jamwiki.authentication.JAMWikiPostAuthenticationFilter.handleAnonymousUser(JAMWikiPostAuthenticationFilter.java:106)
[16:07:12.828] {http--8080-4} 	at org.jamwiki.authentication.JAMWikiPostAuthenticationFilter.doFilter(JAMWikiPostAuthenticationFilter.java:87)
I'll take a look at the migration scripts prior to the release of 0.8.0. As to the error above, I suspect it's due to manually changing the database password to an unencrypted value - prior to JAMWiki 0.8.0 the database password in the jamwiki.properties file MUST be encrypted. Starting with JAMWiki 0.8.0 if the password is unencrypted then the it will automatically be re-saved as an encrypted value. I'll take a closer look at your other comments either tonight when I get home or tomorrow if I get stuck late at work. The patience and follow-up is very much appreciated, and I'm sorry that this isn't proving easier to resolve. -- Ryan • (comments) • 12-Oct-2009 13:29 PDT
Thanks for your help. Bob White:12-Oct-2009 15:16 PDT
Is there a way to encrypt the database password? Bob White:12-Oct-2009 15:18 PDT
Hi Bob - I just installed JAMWiki 0.7.2 on my laptop (Windows, Tomcat, Java 5), created several files with the default HSQL settings, and then used the migration tool to migrate to MySQL. With the caveat that it was a very limited data set, everything migrated properly, the system automatically populated all MySQL tables, and when finished the property files were automatically updated with the MySQL settings (I didn't have to edit jamwiki.properties). Since remote debugging doesn't seem to be solving your problem, is there any chance you would be comfortable sending me a copy of your HSQL files? I won't look at any of the data other than to resolve any issues, but I'd like to see if I can reproduce the problems you've had with slowness and also try to migrate it to my local MySQL setup. If you're OK with this then I'd like to do the following:
  • Backup your database files (everything in the directory specified by the Special:Admin#database "File-system directory" property).
  • Create a user account on your wiki and grant it ROLE_SYSADMIN privileges so that I will be able to administer the wiki copy. This can be done through the Special:Roles interface on your local instance.
  • Zip up the "File-system directory" contents as well as your wiki webapp folder. Feel free to delete or exclude anything that is sensitive information.
  • Email me at ryan dot holliday at gmail dot com and I'll set up a directory on jamwiki.org that you can FTP the files to.
  • I'll then try to reproduce the problems you're facing, and hopefully come up with a solution.
If you're not comfortable sending me your data that's totally understandable, but if you are comfortable with this proposal then I think it will be the best chance of figuring out the problem; alternatively we can try to work with your logs and debug remotely. Note that I work 10-12 hours a day during the week, so I probably won't get a chance to look at anything before the weekend. -- Ryan • (comments) • 12-Oct-2009 21:10 PDT
I suspect that the data migrated properly to MySQL but there's a password problem. The migration does not seem to be immediately necessary, however, since the newer HSQL library works pretty well. We only see a 3-second delay the first time we access the wiki and that is fine. Thanks for all of your help.

upgrade from 0.6.5 to 0.6.6[edit]

Hi,

Environment: jamwiki 0.6.5, Apache Tomcat 6.0.16.0., PostgreSql 8.1.10, SUN JDK 1.6.0_04.

I'm running 4 instances of jamwiki 0.6.5 in one Tomcat, each with it's own database. After I updated one instance to 0.6.6 all instances showed the data from the jamwiki I updated. After I rolled the updated instance back to 0.6.5 everything was fine again, all instances showed their own content.

I'm currently on vacation with very limited internet access so I won't be able to try to reproduce this issue until I return in mid-July, but could you let me know a bit more about your setup? I'm guessing that the upgrade process may have read the wrong jamwiki.properties file, so can you let me know what folder you jamwiki.properties file appears in? Thanks for the report! -- Ryan 19-Jun-2008 10:38 PDT

All four wikis are installed in the webapps directory of the tomcat (actually the directory is a softlink to an other place). Each wiki has it's unique directory. This is the actual directory structure:

 wlanadmin@mysticserver - Fri Jun 20 19:35:59
 /data/www/webapps>ls
 MatzWiki/     host-manager/  jamwiki/     rkFrontend/     rkWebservice.war
 MatzWiki.war  TanjaWiki/       hotelwiki/     jamwiki.war  rkFrontend.war
 TanjaWiki.war        hotelwiki.war  manager/     rkWebservice/

When I looked at the admin Page of the wikis, they all had the content of the updated wiki. When I changed the configuration and tried to save it, I think I got a java.io.file error saying 'permission denied'

no link to create a new page after a search[edit]

with v 0.6.6, it's not possible to create a new page after an unsuccessfull search as described in the help page ; no link appears but {1}

"search_bug" n'a été trouvé dans aucun sujet.
Le sujet "search_bug" n'existe pas actuellement; il peut être crée en cliquant sur {1}.
Thanks for the bug report. It appears that the English text is processed properly, but other languages are not. I'll investigate and make sure a fix is included in the next release. -- Ryan 11-Aug-2008 21:14 PDT

Unable to open Office 2007 files[edit]

When Office2007 files i.e. with extension .docx, .pptx, etc are uploaded it is getting saved properly. But when we try to view/save the uploaded file it is opening or saving with .zip extension by default. So could not view those files.

--yesesnono 02-Dec-2008 04:29 PST

I don't have Office 2007 - could you upload one of these documents to jamwiki.org so that I can try to figure out what's going on? Thanks! -- Ryan 02-Dec-2008 20:06 PST
I think this could be a "feature" of Microsofts Internet Explorer. This also happens often with odf-files as they are ziped as well.
I have uploaded a word document with extension (.docx). I tried to upload a Excel Sheet(2007 extension - xslx) and ppt(2007 extension - pptx) but it is giving the below error message.
An unknown system error has occurred. The error message is: java.lang.IllegalArgumentException: Topic name not specified in decodeAndEscapeTopicName.

--yesesnono 03-Dec-2008 22:16 PST

Numbering Problem in TOC[edit]

Kind regards Rudi Wiesmayr (AT) 08-Sep-2009 02:54 PDT

I believe that this is the behavior currently implemented in Mediawiki - I cut and pasted your sample page into Wikipedia and saw the same TOC display. While this does seem like a bug, a number of users expect JAMWiki to parse syntax in the same way that Mediawiki does so the best way to address this would most likely be to implement some sort of configuration option for the TOC to allow "skipping" a header level. Would that make sense? Thanks for the bug report! -- Ryan • (comments) • 08-Sep-2009 07:41 PDT

How To Execute SQL Statements for intern hsql datase[edit]

Can anybody tell me how I can execute SQL statements in order to upgrade jamwiki manually to the intern hsql datase? Thx Martin

You can try something like HSQL's SqlTool utility (be sure to make backups of your data first!), but the automated upgrade process should handle upgrading HSQL without any intervention - if you're getting an error could you copy the relevant messages from your logs to this bug report? -- Ryan • (comments) • 22-Oct-2009 08:19 PDT

I want wo upgrade from 0.5.4 to 0.7.1 / 0.7.2 and I get this error after entering the admin login and pass: "A unknown System error occured: java.sql.SQLException: Table not found in statement [delete from jam_group_authorities where group_id = ?]."

If you are upgrading to 0.7.1 then it sounds like you might be hitting this bug. Do you get the same issue when upgrading to 0.7.2? -- Ryan • (comments) • 22-Oct-2009 08:59 PDT

For upgrading to 0.7.2 I get the following errors:

  • First time (try to login at the upgrade page with admin account): "java.sql.SQLException: Violation of unique constraint $$: duplicate value(s) for column(s) $$: JAM_P_USERS."
  • If I try once more I get: "java.sql.SQLException: Table already exists: JAM_GROUP in statement [CREATE CACHED TABLE jam_group]."
  • and for the third time I get: "java.sql.SQLException: Column not found: IS_ADMIN in statement [insert into jam_role_map ( role_name, wiki_user_id ) select 'ROLE_ADMIN', wiki_user_id from jam_wiki_user where is_admin = 1 ]."
That's the same issue Eric had - JAMWiki changed to require that logins were unique in a case-insensitive manner, and this causes issues for people upgrading versions older than 0.6.0 who had multiple logins such as "login" and "LOGIN". We resolved the problem for him by having him send me a zipped copy of his HSQL files which I then hacked to remove the duplicate logins. If you're willing to do the same then I'll have time this weekend to take a look - basically I would need your HSQL database files (zipped) which I'll then install locally with a modified version of the JAMWiki code so that I can clean them up and upgrade to 0.7.2, after which you can install a clean JAMWiki 0.7.2 installation and swap in the upgraded HSQL files. Let me know if that's something you're interested in (email me at ryan dot holliday at gmail dot com) and if so where I can download your database files from, or if you prefer I could set up an FTP directory for you to push them to. -- Ryan • (comments) • 22-Oct-2009 22:42 PDT
I've added code in revision 2739 to prevent HSQL from trying to update the characters_changed column when upgrading from versions older than 0.7.0 as this step seems to hang for a lot of users. The problem with duplicate user IDs that vary only by case is more difficult to deal with, and since this should hopefully be a relatively rare situation it's probably best to continue handling that on a user-by-user basis. -- Ryan • (comments) • 23-Oct-2009 21:47 PDT

Search For Users by Role Not Returning Users[edit]

I've seen this in a few version now (just upgraded to 0.8.2) just got around to listing it. I've tried picking each group from the drop down list on the User/Group Roles page under Assign User Roles but I never get any users listed. Entering a specific user and hitting the Search button works fine. --Tom Schueller 28-Jan-2010 22:05 PST

What database are you using? If I understand the problem correctly then this works for me, so it may be a problem with the database-specific SQL. -- Ryan • (comments) • 28-Jan-2010 22:19 PST

I'm using the built-in Java persistance, no external database. I checked this on both a windows box and on a Mac and I get the same results. For example, if I pick "ROLE_VIEW" from the "Search for Users by Role:" drop down box there are no results returned. --Tom Schueller 29-Jan-2010 11:10 PST

I tried this with Postgres and HSQL just now and both seemed to work, so it might be worth clarifying the problem. If I search for "wrh2" I get results. Similarly, if I search for "ROLE_ADMIN" (from the drop-down) I get results showing that my account has explicitly been assigned ROLE_ADMIN. However, if I search for "ROLE_VIEW" (from the drop-down) then I get no results since there are no users that have been explicitly assigned ROLE_VIEW (they inherit it from the group). If I explicitly assign ROLE_VIEW to my account and then search for "ROLE_VIEW" (from the drop-down) then my account is the lone result. Does that match what you're seeing? If not let me know, otherwise that functionality probably needs some additional help text to avoid confusion. -- Ryan • (comments) • 09-Feb-2010 20:14 PST

Ryan, sorry it took me so long to respond to your query. I was not aware that the Role Search was only for directly assigned roles. I checked and I still have the same problem even for roles that are not inhereted from a group. In the screen shot you can see my account which has the directly assigned role "ROLE_TFS_RESTRICTED":

tfs user search.jpg

Then I picked the role "ROLE_TFS_RESTRICTED" from the drop down list and I would expect to see my account and possibly others but I get no results:

tfs role search.jpg

I thought it might be a problem with my version of IE (I have to use a modifed version provided by my company) but I used Firefox for these tests so I don't think it is a browser problem. --Tom Schueller 03-Mar-2010 20:25 PST

Thanks for the follow-up. I'll look into this again soon, but please give me a gentle reminder if this bug report isn't updated within the next week as it's easy to forget about things while working on other tasks. -- Ryan • (comments) • 04-Mar-2010 22:13 PST
Hi Tom - are you using LDAP, or have you made any customizations to the database? Based on the foreign keys that are in place I'm still struggling to find any way that a user could be assigned a role but the "search by role" functionality would return no results. If you search by role using other (non-custom) roles are results returned? I'll keep an eye out to see if this error ever occurs for me on my wiki instances, but thus far I've been unable to reproduce and I'm not seeing anything in the code that would cause the error. -- Ryan • (comments) • 25-Mar-2010 19:48 PDT
Ryan, I just upgraded to 0.9.0 beta 2 and the Search by Role function works. To answer your follow up question no I'm not using LDAP on any of the installations of Jamwiki. I have four separate installations. I also checked search by role for both custom and non-custom roles on my install of 0.8.3 and it was not working there. I'm using both Windows and Mac and I've run Tomcat 5 and Tomcat 6 as well as Java 1.5 and 1.6 but until I upgraded to 0.9.0 it has never worked for me.
Anyway it works now so thanks. --Tom Schueller 12-Jun-2010 16:58 PDT

MIME Type[edit]

Uploading a SVG File makes jam_file_version.mime_type = "application/x-bittorrent" instead of "image/svg+xml" (only in v0.9.1, not 0.8.3, 0.8.4 and I didn't check for 0.9.0)

Odd, I don't think anything changed that should affect MIME type parsing. I'll investigate. -- Ryan • (comments) • 12-Sep-2010 07:12 PDT
I dug into this, and the code that determines MIME type simply calls org.apache.commons.fileupload.FileItem.getContentType, which supposedly determines the content type based on the MIME type sent by the browser. Did you by any chance use different browsers or different files for the tests above, or has your browser configuration changed in any way? I tried testing this on jamwiki.org (Image:sample.svg) and got the correct MIME type. (Note: jamwiki.org is using the latest code which includes commons-fileupload 1.2.2, but per http://commons.apache.org/fileupload/changes-report.html there haven't been any changes since 1.2.0 that would affect MIME type handling). -- Ryan • (comments) • 12-Sep-2010 10:27 PDT

weblogic 10.3.3.0 installation issue[edit]

Im trying deploy jamwiki 0.9.2 on weblogic 10.3.3.0 but I got an Spring error: NoSuchMethodError: org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.getLocalName(Lorg/w3c/dom/Node;)Ljava/lang/String;

I dont understand, I deployed this like exploded war just tutorial says and it doesnt works.

thanks

Does your instance of Weblogic have another version of Spring already in its classpath? I don't use Weblogic, but did some testing with it about two years ago and everything seemed to work properly. -- Ryan • (comments) • 21-Sep-2010 08:35 PDT

Looking for a term works wrong[edit]

Suche nach "Wiki Update" "Wiki Update" wurde in keinem Thema gefunden. Der Artikel "Wiki Update" existiert zur Zeit noch nicht. Um ihn anzulegen folgen Sie bitte diesem Link: Wiki Update.

But the "Wiki Update" exists and is shown blue.

Looking for "wiki update" brings the result, too, but the link is red and if you click on it you can write a new article. So I can count the hours when we will get two article with identical terms in different cases and contents.

To use case sensivity anywhere in the wiki is a very bad idea.

The version is 0.9.2, Tomcat 5.5 and Java jre 1.5.0_12. matthias 29-Sep-2010 2:38 PDT

If understand correctly the problem is that "Wiki Update" and "wiki update" are treated as different topics? If so, this behavior is the same as in Mediawiki. Implementing case-insensitive topic names would be a helpful feature, so I'll move this report to Feature Requests. -- Ryan • (comments) • 29-Sep-2010 07:34 PDT
Sorry, I only speak a handful of German, but with the help of Google translate I think I understand now. It looks like there are two issues - one feature request for case-insensitive topic names, and a problem with search reporting that a topic doesn't exist when it actually does. I'll look into the latter issue. -- Ryan • (comments) • 29-Sep-2010 07:54 PDT
The application and the application server were freshly started. After two hours the application crashed and I restarted both. Then the search engine worked fine until now. No configuration was changed or anything else. Before the strange behavior I updated from 0.8.3 to 0.9.2 where I only unzipped the new war file in a new directory with the same name (the old directory was renamed). matthias 29-Sep-2010 22:38 PDT
Ah, that may actually explain the problem. One of the changes in the JAMWiki 0.9.x series was an update to the Lucene search, changing the default index format. Per JAMWiki 0.9.0#Upgrades, you may need to rebuild your search index from the Special:Maintenance page. Let me know if that resolves the issue, and if not I'll look into this over the coming days and see what I can figure out. -- Ryan • (comments) • 29-Sep-2010 22:57 PDT

release 0.9.3 build problem[edit]

Hi there, Great soft! I'm trying to build 0.9.3 from source and keep getting the following Plexus error when the core package is being unpacked for war file creation:

[INFO] [dependency:unpack {execution: unpack}]
[INFO] Configured Artifact: org.jamwiki:jamwiki-core:?:jar
[INFO] Unpacking D:\_IDE\workspace\jamwiki\jamwiki-core\target\classes to
  D:\_IDE\workspace\jamwiki\jamwiki-war\target\classes
   with includes **/sql.*.properties,pages/** and excludes:null
org.codehaus.plexus.archiver.ArchiverException: The source must not be a directory.
	at org.codehaus.plexus.archiver.AbstractUnArchiver.validate(AbstractUnArchiver.java:174)
	at org.codehaus.plexus.archiver.AbstractUnArchiver.extract(AbstractUnArchiver.java:107)
	at org.apache.maven.plugin.dependency.AbstractDependencyMojo.unpack(AbstractDependencyMojo.java:260)
	at org.apache.maven.plugin.dependency.fromConfiguration.UnpackMojo.unpackArtifact(UnpackMojo.java:122)
	at org.apache.maven.plugin.dependency.fromConfiguration.UnpackMojo.execute(UnpackMojo.java:95)
	at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556)
	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535)
	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)
	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348)
	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
	at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
	at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:592)
	at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
	at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
	at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
	at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Error unpacking file: D:\_IDE\workspace\jamwiki\jamwiki-core\target\classes to: D:\_IDE\workspace\jamwiki\jamwiki-war\target\classes
org.codehaus.plexus.archiver.ArchiverException: The source must not be a directory.

[INFO] ------------------------------------------------------------------------

I tried to force maven-dependency-plugin version to 2.1 in jamwiki-war/pom.xml but it is not getting any better.

I'm trying to build on XP with eclipse Galileo and tried both m2eclipse internal and external 2.2.1 runtimes. I aslo checked out with all modules in the same project. Cheers, Roland

Are you using an Eclipse plugin to build, or do you get this when executing "mvn package" from the command line? I don't personally use Eclipse although I know that some people have reported success using it to build, but if I execute "mvn package" from the root directory in trunk then everything builds as expected. -- Ryan • (comments) • 21-Oct-2010 02:27 PDT
Hi Ryan, bull's eye, it's working fine from the command line. This might be another side effect from running maven from eclipse. I should know better ;-) Thanks for your help and carry on the good job.
Cheers,
Roland
I believe that User:mosipov's changes may have also fixed the case with the Maven Eclipse plugin, but since I don't use Eclipse I can't confirm. In either case, barring objection I'd like to mark this issue closed. -- Ryan • (comments) • 05-Jan-2011 10:01 PST
I already eased this issue in 1.0.0-SNAPSHOT but this one isn't really fixable. This is a known bug: http://jira.codehaus.org/browse/MDEP-194 and http://jira.codehaus.org/browse/MDEP-98. The only thing you can do right now is to build from parent. Avoid building modules directly, always do a reactor build. -- Michael Osipov 05-Jan-2011 14:14 PST

{{SERVERNAME}}[edit]

In v 0.8.3 {{SERVERNAME}} returns http://localhost:8080 but! in v 0.8.4 it returns http://localhost

Thanks, I'll took a look. I don't recall any changes that would have affected that functionality (minor releases tend to have very few changes) but it's possible something may have been incorrectly merged. -- Ryan 19-Apr-2010 09:16 PDT
I haven't been able to reproduce this issue, and on jamwiki.org {{SERVERNAME}} yields: jamwiki.org. If anyone else has any additional information or can verify that this bug occurs in their setup please let me know. -- Ryan • (comments) • 04-Jun-2010 17:20 PDT

Linebreak in Tablecell[edit]

Moved from the Feedback page:

Is there a way to put a linebreak in a tablecell?
<br> works for Firefox but in Internet Explorer (6) the tables are cutted (a whole colom is cut) and the following topics are right of the table where they shouldn't be. Is there a better way to put a linebreak in a table cell? --- Martin

I don't have a copy of IE6 available on this machine, but I would expect the following to work:

{| style="border:1px dashed black"
|-
| heading1
| heading2
|-
| column1
| column2 <br /> line 2
|}

Producing:
heading1 heading2
column1 column2
line 2
-- Ryan 14-Sep-2007 06:26 PDT

The linebreak works in the table - BUT the following text and headlines are misplaced and disordered. I need a way to avoid this confusion to make the text readable in IE6. -- Martin 17-Sep-2007

Link to Uploaded file with '+' in file name[edit]

I successfully uploaded a .pdf file with '+' in the document name, but was then unable to link to it. After I changed the file name all was OK. Is it possible to link to file with other characters in the name or filter them out when uploading so you are forced to rename file before uploading it?? I am running the latest release, with default database on windows.

I'll need to investigate Mediawiki to see how they handle file names with a "+" in them - most likely the solution will simply be some sort of renaming when the file is saved. This should be easy to fix for 0.7.0. Thanks for the report! -- Ryan 17-Dec-2008 07:19 PST
I just tried uploading two files on JAMWiki, one with a "+" in the name, the other with a space in the name - I also tried uploading on my local (Windows) machine. Both files uploaded successfully, although the file with the "+" sign had its name converted to a space. I then tried uploading the file with the "+" in the name to Wikitravel (which uses Mediawiki) and that upload actually failed - the file was not accessible after upload. The two JAMWiki files I uploaded are: Image:Space Test.gif and Image:Plus Test.gif. As a result I think JAMWiki is behaving properly, unless I'm mis-understanding your report. If you can provide more details about what is wrong it would help in tracking down the issue, although based on the tests I've done I think the current behavior is correct. -- Ryan 09-Jan-2009 08:38 PST

Unable to determine namespace for topic[edit]

I got this message suddenly,

A system error has occurred. The error message is:
An unknown system error has occurred. The error message is: java.lang.IllegalStateException: Unable to determine namespace for topic. This error generally indicates a configuration or database issue. Check the logs for additional information..

Any idea? What might go wrong? The database is working since other web-app works well. What is a normal namespace for .../en/StartingPoints? jack 28-Aug-2010 15:05 PDT

Is there any message in your logs? I'd need to see where in the code that's being thrown from to figure out what might be going wrong. -- Ryan • (comments) • 27-Aug-2010 08:00 PDT
I will have to get the logs since I have no access to the tomcat temp directory. It was hosted some where, so it is not convenient for me to find out what went wrong.
By the way, can we change the location of log files, currently, you use
String logFile = System.getProperty("java.io.tmpdir") + System.getProperty("file.separator") + DEFAULT_LOG_FILENAME;

Rather than java.io.tmpdir, can we change the default location to $homeDir$/logs/ where the $homeDir$ is the directory specified during the setup? jack 28-Aug-2010 15:05 PDT

See Configuration#Logging and Installation#New Installs for logging configuration information. It might be possible to change the default during installation, but I'll need to investigate. -- Ryan • (comments) • 28-Aug-2010 21:21 PDT
finally, I got the message: Table 'jam_namespace_translation' doesn't exist, so the database lost some data suddenly. I don't know what happened over there. jack 30-Aug-2010 11:23 PDT

Upload fails when running tomcat within low privileged user[edit]

I am unable to upload files under Mac OS X (10.5) and Jamwiki 0.6.3. The file appears to upload into the upload directory so I can see that all is well there. However I get a java.lang.InternalError thrown as follows:

2008-03-07 15:19:43,035 SEVERE: org.jamwiki.servlets.ServletUtil - Servlet error
java.lang.InternalError: Can't connect to window server - not enough permissions.
	at java.lang.ClassLoader$NativeLibrary.load(Native Method)
	at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1822)
	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1723)
	at java.lang.Runtime.loadLibrary0(Runtime.java:822)
	at java.lang.System.loadLibrary(System.java:993)
	at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:50)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.awt.image.ColorModel.loadLibraries(ColorModel.java:188)
	at java.awt.image.ColorModel.<clinit>(ColorModel.java:196)
	at javax.imageio.ImageTypeSpecifier$Packed.<init>(ImageTypeSpecifier.java:275)
	at javax.imageio.ImageTypeSpecifier.createPacked(ImageTypeSpecifier.java:327)
	at javax.imageio.ImageTypeSpecifier.<clinit>(ImageTypeSpecifier.java:63)
	at com.sun.imageio.plugins.jpeg.JPEGImageReader.<clinit>(JPEGImageReader.java:202)
	at com.sun.imageio.plugins.jpeg.JPEGImageReaderSpi.createReaderInstance(JPEGImageReaderSpi.java:89)
''trimmed''

Any advice? --huntc 06-Mar-2008 20:10 PST

Thanks for the detailed bug report. I don't have a Mac to try to reproduce this with, and haven't heard any similar bug reports, but I'll try to find some time to investigate this weekend and will let you know if there is an obvious solution. If anyone else with a Mac has seen this issue and can provide a solution it would be much appreciated. -- Ryan 07-Mar-2008 06:59 PST
No progress? Still can't upload images. :-( --huntc 10-Jul-2008 05:07 PDT

Found one reason, when running with a openjdk this seems to happen, as jamwiki tries to use sun specific classes.

Large Number of Sessions[edit]

Environment: Jamwiki 0.6.3, Database - hsql, Application Server - Apache Tomcat 6.0

Description: Our local wiki page has been having a very large number of open sessions (anywhere from 1,000, to 6,500 sessions). Most of the sessions seemed to be only used for a few seconds. My first thought was the RSS feed due to the low used times of the sessions, however, I removed that ability and no changes where seen. I also don't believe this is a Tomcat issue because all of the other applications have normal session numbers (anywhere from 0 to 50).

I believe this may be the cause our application server running out of memory on occasion as well. This is a major problem because Tomcat has to be restarted to reset the memory, which inturn logs out all users.

I am still investigating other probable causes to the issue and I will post an update if a solution is found. -- wbryan 04-Apr-2008 08:18 EST

- At work I've seen out of memory conditions in Tomcat when the database is having problems, but I'm not sure if that causes extra sessions to be generated. If you find anything please let me know, and I'll try to see if the same issue is occurring on jamwiki.org or on my laptop when I get a chance. -- Ryan 14-Apr-2008 08:29 PDT
- I am having no luck finding out the problem with the high number of sessions. Our tomcat manager is now show 13,000+ open sessions. At the extreme maximum there should be no more than 100 open sessions. If anyone has any suggestions or ideas I am open and ready. Thank you. -- wbryan 01-May-2008 07:52 EST
There are a few bug reports that I need to investigate more fully before putting out the final 0.6.6 release, and this is one of them. I haven't had much time to look into this yet, but will definitely provide an update if I discover anything. Sorry about your troubles, and thanks for the continued feedback. -- Ryan 01-May-2008 08:05 PDT
Just an update to say that I've (finally) installed the Tomcat manager on jamwiki.org and will keep an eye on sessions. At the moment it's pretty stead at 100-120, although that seems a bit high. I've noticed that if I click on numerous links that new sessions are opened, despite the fact that it should be using the existing session, so I'll have to investigate to see what might be going on. -- Ryan 13-May-2008 21:22 PDT
72 sessions on jamwiki.org at the moment (Tomcat 5.5, Java 5, JAMWiki 0.6.6). Is there anything specific to your setup that might cause the number of sessions to increase greatly? A search spider or anything similar? -- Ryan 14-May-2008 22:19 PDT
no search spiders or anything out of the ordinary that I am aware of. I am going to try two things. 1. talk to our network guy and see if he can tell me anything. 2. upgrade to the newest version of jamwiki (currently running 0.6.3, tried to update before but had some issues). Thanks for the updates, your doing a great job here. -- wbryan 15-May-2008 07:55 EST
Thanks - let me know if you find anything, and I'll keep investigating. The number of sessions on jamwiki.org after a server restart (the 100-120 number above) seems high, so I'll try to figure out what might be causing that, and hopefully this issue will eventually get resolved. -- Ryan 15-May-2008 08:06 PDT

Lost data after restart[edit]

Hi we are still running Jamiki 0.7.0 on a Solaris sparc box with WebSphere 6.0 (java 1.4) and the build-in hsql database. We had to restart the server yesterday, and after restart all changes to the wiki since June first were lost. After looking at the backup from night before, I saw that there is a jamwiki.log file size 83M (in location storage/database) which contains a lot of SQL which apparantly wasn't properly committed first place or not execute at restart. Shutting down the app server, copying the file from the backup and restarting didn't help. Any ideas how I can get the lost data into the system, apart from trying to manually run all the SQL in that log file into the hsqldb, and what the problem is here? Do I need to change something in the config? (We are planning to move to java 1.5 and tomcat and latest version 0.9 but haven't managed yet). Any help much appreciated.

added by cmasuch on Jun 24th

This is the first I've ever heard of a problem like this one, provided the initial installation was done using an exploded WAR. When you restarted did you have to reconfigure this server? If that's the case then the jamwiki.properties file wasn't on the file system (indicating initial install didn't use an exploded WAR) and re-configuring the server would have tried to set up a new database. If that happened then you might research how to restore HSQL using your existing files or whatever backup you have available, but unfortunately that's something I'm not particularly familiar with. If on the other hand you restarted, didn't reconfigure, and things still went awry then your database should be fine and I'll need to give this some more thought. -- Ryan • (comments) • 24-Jun-2010 07:46 PDT
Ryan, thanks for quick reply. The problems seem to be with the HSQLDB engine, it doesn't for whatever reason properly reload the transaction log. I've done that now manually and it looks like we've recovered. One note though - when shutting down WebSphere gracefully it doesn't look like the HSQLDB is shutdown properly, as the "modified" flag in the database jamwiki.propoerties file stays on "yes". This is despite the "shutdown=true" setting in the DB url. Workaround for me now is to regularily use the "export to CSV" button which seems to force a checkpoint in the hsqldb. Not sure if this is a problem with WebSphere only. I'll take a look the shutdown code, maybe WebSphere isn't calling the "proper" destroy.
cmasuch • 24-Jun-2010 10:57 am BST
Thanks for the additional investigation and follow-up. There have been sporadic reports of various issues on Websphere, generally related to transaction handling, but this sounds like it's similar. I haven't had access to a Websphere server for testing in quite some time, but I'll see if I can get an evaluation copy running and try to replicate the issue you've described. Thanks again for following up. -- Ryan • (comments) • 25-Jun-2010 07:31 PDT
Just one more - I started that hsqldb outside WebSphere in a standalone small java app to run the transaction logs in manually. I was hoping the DB recovery to work outside websphere but it didn't, which is strange. Anyway, thanks. cmasuch • 24-Jun-2010 16:23 BST

Error installing with DB2[edit]

When installing with DB2 as external database errors occur in the database creation script, this has to do with NULL values in constrains and some other issues. Are there any specific things to do when installing for DB2 or is this just a bug.

That's a bug - I don't have a DB2 database to test with, so support tends to be spotty depending on how many DB2 users are testing and reporting bugs. Is there a specific error message being generated so that I can check the SQL? Alternatively, if you are willing to fix SQL yourself look at the /WEB-INF/classes/sql.db2.properties file and make any modifications necessary. Patches are very welcome :) -- Ryan • (comments) • 07-Jan-2010 22:01 PST
Ok changed some scripts and got it up and running but when clicking links like 'Recent Changes' the following error occurs 'org.jamwiki.DataAccessException: com.ibm.db2.jcc.b.nm: DB2 SQL Error: SQLCODE=-104, SQLSTATE=42601, SQLERRMC=*;lect * from ( select;CURRENT_USER, DRIVER=3.50.152. '
Any idea ?--Arco 08-Jan-2010 05:38 PST

Hypersonic DB throws NullPointerException on Startup[edit]

JAMWiki 0.6.7 Tomcat 6.0.16 Java 1.6.0_06 Linux Slackware

When using the internal database occasionally on start up the Hypersonic Database throws a NullPointerException. The application continues to function. This only happens occasionally.

Exception in thread "HSQLDB Timer @ad40a0" java.lang.NullPointerException
	at org.hsqldb.lib.HsqlTimer.nextTask(Unknown Source)
	at org.hsqldb.lib.HsqlTimer$TaskRunner.run(Unknown Source)
	at java.lang.Thread.run(Thread.java:619)

j_teer 06-Jan-2009 15:19 PST

JNDI datasource[edit]

2 locations: DatabaseConnection.java, for the method getTestConnection and the method configDataSource

Context ctx = new InitialContext();
// TODO: Try appending "java:comp/env/" to the JNDI Name if it is missing?
testDataSource = (DataSource) ctx.lookup(url);

Please just replace the TODO line with the line as follows.

ctx = (Context) ctx.lookup("java:comp/env");

then the JNDI datasource can be used.

By the way, to use JNDI datasource, then we will have to edit META-INF/context.xml to define the datasource. But then the Database type things become useless. jack 28-Aug-2010 15:04 PDT

The nightmare of Migrating Wiki to PostgreSQL[edit]

I have experienced a horrible migration process. I hope anyone who wants to Migrate the JamWiki from HSQL(Default DB Provider) to PostgreSQL can notice this issue. And I also hope the guys of JamWiki can fix this issue in the next version.

I'm using jamwiki-0.9.4.

A few days ago, I tried to install the jamwiki on my computer. At the begging, it was very easy to do. I just follow the setup page and the wiki showed. I'm very happy. I've tried to add some pages and categories. It's very good!

Two days ago, I realized that the database can be changed. The default one is HSQL, which has only 1-2 weak DB managers, and which is not very convenient for me. So I tried to change the database, to PostgreSQL. After I changed the settings in the Maintenance page and submitted, the error occurred. Something like NullPointerException showed when calling loadLayout by the WikiServlet. After I rebooted the Servlet Container(JBoss), the error was still there. The error log shows that the jamwiki was using PostgreSQL already. It seems like the migration is failed but the jamwiki cannot rollback to HSQL.

After I checked sql.postgres.properties and compared it with sql.hsql.properties, I fount that the table scheme is not marched. I realized that the jamwiki is crashed, so I try to re-install the war folder, by deleting the old one and extract a new one. After I done that, the error was still.

It's very strange, I tried to find where jamwiki stored it's database configuration but nothing can be found. Only the source code shows that the database configuration can be loaded from jamwiki.properties, which version 0.9.4 didn't contain.

So it left me only one choice, by migrating the data from HQSL to PostgreSQL by myself. I re-wrote the sql statements for PostgreSQL to create the tables, and wrote a application to extract the insert sql statement from HSQL, and executed these sql statements into the PostgreSQL database. Finally, I make the jamwiki work with PostgreSQL.

The question is, where exactly the jamwiki store it's database configuration? Can we re-install the jamwiki if the wiki crashed?

Database settings are stored in the /WEB-INF/classes/jamwiki.properties file. When I get a chance I'll try to reproduce your migration error, but if you happen to have the stack trace from that error available it might be possible to debug the problem more quickly. Sorry that this was a painful experience for you. -- Ryan • (comments) • 07-Dec-2010 20:15 PST
Thus far I haven't been able to reproduce the problems mentioned above, but I'll keep trying. If anyone encounters similar problems please provide any messages from the logs as it makes it much simpler to track down issues. -- Ryan • (comments) • 04-Jan-2011 17:01 PST

Error: registering user twice[edit]

A system error has occurred. The error message is: An unknown system error has occurred. The error message is: org.jamwiki.DataAccessException: org.postgresql.util.PSQLException: ERROR: duplicate key value violates unique constraint "jam_unique_wiki_user_login" / org.postgresql.util.PSQLException: ERROR: duplicate key value violates unique constraint "jam_unique_wiki_user_login".

I think, the would be more convenient to show human readable reason —The preceding comment was added by 78.36.217.57 (commentscontribs) .

What version of JAMWiki are you using? Can you provide details on how to reproduce this issue? If I try to register an account that already exists either via Special:Account or Special:Maintenance using current code I'm getting the message "An User with Login wrh2 already exists!". -- Ryan • (comments) • 01-Jan-2011 17:55 PST

Display Problems for Tables in IE 6.x[edit]

We are faced general formatting problems when we use tables in IE 6(.0.2900.5512.xpsp_sp3_gdr.080814-1236) when we change the allignment from "center" to "left". While in Firefox everything works fine and the table is justified left the IE does NOT display the table at all. In some cases the table is displayed but corrupted on the right side of the screen; means left is the menu, on the screen the normal page and you could scroll to the right where beside the normal page are parts of the table displayed.

{| border="1" cellspacing="2" cellpadding="5" align="center" ... ...works ok.

But IE has problems with {| border="1" cellspacing="2" cellpadding="5" align="left" ...

Thanks for the report - it's probably a CSS thing, so I'll take a look at work where I have access to IE6 and try to get a fix ready for 0.7.2. -- Ryan • (comments) • 05-May-2009 22:20 PDT

Custom Group Roles and Access to Virtual Wikis[edit]

Jamwiki 0.7.1 Tomcat 6.0.18

This may be a bug, or it could me my ignorance (I have only just started using Jamwiki). I have created a new group role called LIBRARY_STAFF, and I have created a virtual wiki called libstaff. I want to limit access to the libstaff virtual wiki, so only users who belong to the LIBRARY_STAFF, can access it. I tried to do this with the following entry in the applicationContext-security.xml file:

<intercept-url pattern="/libstaff/**" access="LIBRARY_STAFF" />

When I restart Tomcat, Jamwiki isn’t loaded successfully. I just get a 404 error. However, if I change the access value to a “pre-loaded ” user, it works fine e.g.

<intercept-url pattern="/libstaff/**" access="ROLE_SYSADMIN" />

Is this a bug, should I be able to restrict a virtual wiki like this, or am I missing out an important configuration step?

Just to clarify, is "LIBRARY_STAFF" a new group, or is it a new role created from Special:Roles? And is there any error in the JAMWiki or server logs when the server starts with a 404 (I would expect there would be an error somewhere...)? The functionality you've described should be possible although I haven't actually tried restricting at a virtual wiki level, so it's possible that there is a problem - I'll try to reproduce later. Also, apologies for the admittedly poor documentation - updating with examples is high on my to-do list. -- Ryan • (comments) • 20-Apr-2009 07:29 PDT

Sorry, "LIBRARY_STAFF" is a new role created from Special:Roles. I'm not that familiar with all the different logging features of Tomcat. Looking in the "catalina.2009-04-21.log! on my server I simply see:

21-Apr-2009 10:20:20 org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive jamwiki.war
21-Apr-2009 10:20:22 org.apache.catalina.core.StandardContext start
SEVERE: Error listenerStart
21-Apr-2009 10:20:22 org.apache.catalina.core.StandardContext start
SEVERE: Context [/jamwiki] startup failed due to previous errors 

I've tried changing the "org.jamwiki.level" value in the Jamwiki logging.properties file from CONFIG to ALL, but there's nothing really recorded in the log that seems useful, and that explains where it is failing. It's mainly stuff like:

2009-04-21 10:47:07,966 CONFIG: org.jamwiki.Environment - Loading properties fro
m sql.ansi.properties
2009-04-21 10:47:07,967 CONFIG: org.jamwiki.Environment - Loading properties fro
m sql.postgres.properties

Let me know if I can change anything else, so I can provide better log info.

I just tried a few different ways of reproducing this problem but was unsuccessful. First I tried:

	<intercept-url pattern="/en/Special:Login" access="IS_AUTHENTICATED_ANONYMOUSLY" />
	<intercept-url pattern="/en/**" access="ROLE_SYSADMIN" />

Note that the login page needs to be unprotected so that if access is denied you can still login. As you indicated, this worked for users with ROLE_SYSADMIN. I then created a new role, assigned it to my login, and tried:

	<intercept-url pattern="/en/Special:Login" access="IS_AUTHENTICATED_ANONYMOUSLY" />
	<intercept-url pattern="/en/**" access="ROLE_VIRTUAL_WIKI" />

This also worked. If the jamwiki.log file isn't showing any useful info you might check the Tomcat 5.5/logs directory (assuming you are using Tomcat) to see if there are any startup errors. Hopefully unprotecting the login page will help, but if not let me know if you find out anything further. If I can come up with any other reasons why the configuration above wouldn't work I'll update this discussion. -- Ryan • (comments) • 21-Apr-2009 21:15 PDT

Ryan - I created another role called ROLE_LIBRARY_STAFF, and added this to the applicationContext-security.xml file i.e.

 <intercept-url pattern="/libstaff/**" access="ROLE_LIBRARY_STAFF" />

This works successfully. Maybe the bug (or it may be a requirement?) is that roles that don't have a ROLE prefix do not work, and stop jamwiki from working? Anyway, this works for me. Is there anyway to delete a role? If the LIBRARY_STAFF role doesn't work then I don't need it.

Thanks for following up, and glad it's working. There isn't anything in the JAMWiki code that requires "ROLE_" in the name, but it could be a Spring Security thing so I'll investigate and update the docs as necessary. Sorry it took so long to get this resolved, but your patience is much appreciated! -- Ryan • (comments) • 23-Apr-2009 07:31 PDT

Application hangs on Tomcat shutdown[edit]

New installation using defaults and the internal database starts up and operates correctly. But hangs when you shutdown Tomcat forcing you to kill the processes. Also a new installation where the configuration was not completed by filling parameters on the installation page also hangs on shutdown.

Tomcat 6.0.16 JAMWiki 0.6.7 Java 1.6.0_06 Linux Slackware

Jan 3, 2009 1:13:10 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 2645 ms
Jan 3, 2009 1:16:38 PM org.apache.coyote.http11.Http11Protocol pause
INFO: Pausing Coyote HTTP/1.1
Jan 3, 2009 1:16:39 PM org.apache.catalina.core.StandardService stop
INFO: Stopping service Catalina
Jan 3, 2009 1:16:39 PM org.apache.catalina.core.ApplicationContext log
INFO: Destroying Spring FrameworkServlet 'jamwiki'
Jan 3, 2009 1:16:39 PM org.apache.catalina.core.ApplicationContext log
INFO: Closing Spring root WebApplicationContext
Jan 3, 2009 1:16:40 PM org.apache.coyote.http11.Http11Protocol destroy
INFO: Stopping Coyote HTTP/1.1

If you have some ideas and I can test them. j_teer

This issue sounds similar to Tech comments:Transactions, although I thought that problem was resolved. I haven't personally seen this - are you using an external database or the JAMWiki internal database? -- Ryan 05-Jan-2009 19:37 PST
It's the internal database and mostly default settings. I read the previous transaction issues, it is consistent with the problem. j_teer 06-Jan-2009 12:24 PST

Possible classpath issue[edit]

While playing with various configurations of Jetty, I finally started getting an exception tossed by Utilities.readFile: "File pages/StartingPoints.txt is not available for reading". This configuration is the same I have been using in several other trials: the conventional Jetty distribution, with JAMWiki installed in a directory inside /webapps and starting Jetty with the commandline "java -jar start.jar etc/jetty.xml". Just reporting the event. Not sure what changed yet. -- Jack 12-Mar-2007 13:55 PDST

A test of a classpath issue calls for moving the /pages directory out to the root server directory. Doing just that removed the problem. The hint seems to be that "pages/StartingPoints.txt" is somehow very sensitive to how the server is booted. In the present case, a path such as "webapps/wiki/WEB-INF/classes/pages/StartingPoints.txt" would seem appropriate. It is not presently clear what is behind this issue, but simply moving /pages to where JAMWiki is looking for them solves the problem. Don't tell anybody I said that ;) -- Jack 12-Mar-2007 14:07 PDST

File not found: /j_spring_security_logout[edit]

I get the following error when trying to log out from WebSphere:

Error 404: SRVE0190E: File not found: /j_spring_security_logout

I just moved my wiki to WebSphere from resin. I did not see this error under resin. I think it might be related to this error from the log:

2009-05-26 20:12:34,939 SEVERE: org.jamwiki.servlets.JAMWikiServlet
 - Unable to load default layout org.springframework.security.AuthenticationCredentialsNotFoundException: 
  No authentication credential available
 at org.jamwiki.authentication.WikiUserDetails.initWikiUserDetails(WikiUserDetails.java:212)
 at org.jamwiki.servlets.ServletUtil.currentUserDetails(ServletUtil.java:176)
 at org.jamwiki.servlets.JAMWikiServlet.buildUserMenu(JAMWikiServlet.java:169)
 at org.jamwiki.servlets.JAMWikiServlet.loadLayout(JAMWikiServlet.java:290)
 at org.jamwiki.servlets.JAMWikiServlet.viewError(JAMWikiServlet.java:317)

Bob White 26-May-2009 17:49 PDT

Can you clarify what JAMWiki version you're using? I don't think that /j_spring_security_logout is included in JAMWiki 0.7.x or greater, so is it possible you've got an older version or another copy of Spring Security being triggered by another application? -- Ryan • (comments) • 26-May-2009 19:13 PDT

Xavier 20-Jan-2010 23:50 PST

I have the same problem with JAMWiki 0.8.1 running on WebSphere 6.1.0.25. As soon as I try to logout, I'm redirected to "jamwiki/j_spring_security_logout?logoutSuccessUrl=%2Fen%2FStartingPoints" and receive a 404 error. Is there a solution?
Do you know if Websphere ships with an included version of Spring Security? It's possible there may be a conflict internally. If not I'll need to set up a WebSphere server to see if I can reproduce. -- Ryan • (comments) • 21-Jan-2010 07:40 PST
It looks like there is no Spring security classes included with WebSphere 6.1. However, I found the following thread on the spring forum, it could solve the problem I'm facing. http://forum.springsource.org/showthread.php?t=52372
I'll try next week and see if it works. -- Xavier 23-Jan-2010 06:53 PST
Unfortunately, it doesn't solve the problem. Any idea? Xavier 02-Feb-2010 08:27 PST

jamwiki.org: short idle time for logged in users[edit]

Moved from the Feedback page:

Very often I have the problem to be thrown out by jamwiki.org in the middle of a time-consuming thinking and editing process.... ;) So after saving my masterpieces ;) I notice that my IP adress was 007.123.898.255.... there should be a way to work around this. Maybe if someone wants to save an edited article JW should ask in general for logging in, an additional step for Mr./Mrs. Anonymous, but maybe that will lead to more registered JWians. -- Frank 12-Sep-2007 05:05 PDT

I'll have to take a look to see where the Acegi code sets its default idle times. Please give me a gentle reminder if I haven't responded to this issue with a solution within the next 3-5 days. In the mean time, since it sounds like you want to enable anonymous editing, modifying the anonymous group permissions from Special:Roles will likely resolve this problem in the short term. -- Ryan 12-Sep-2007 08:06 PDT
No, I just want jamwiki.org to not forget me in the middle of a..... -- Frank 13-Sep-2007 02:28 PDT
I had given this to Feedback, but there I've seen this entry moved to Bug Reports... To keep the sessions open as long as my users are working with jamwiki (without defining days for session-timeout...), I put the following script into the html-head (top.jsp):
	<script language="javascript">
	      function reloadpixel() {
	         mypixel = document.getElementById('mypixel');
	         if (mypixel) mypixel.src = mypixel.src.replace(/\?.*$/, '?' + Math.random());
	      }
	      window.setInterval("reloadpixel()", 200000);
	</script>
and anywhere in body, I am loading this pixel (I did this also in top.jsp):
<img src="/iktwiki/images/mypixel.png" id="mypixel" height="1" width="1" />
I think the attachment of Math.random() is quite necessary, so that browsers don't use their cache. --hp 03-Jun-2009 02:46 PDT
Thanks, this is probably a good idea to implement for 0.8.0. Thanks for the code! -- Ryan • (comments) • 03-Jun-2009 10:15 PDT
It would be great to find this feature in 0.8, perhaps it could be an option in Special:Admin if anyone doesn't like it... --hp 03-Jun-2009 23:12 PDT