Bug Reports

Bug reports can be made here or on the Feedback page. The Known Issues page also contains a list of bug and feature requests (if anyone has ideas for better organization, let's hear 'em!). When adding a bug report, please include the database version (if any), JDBC driver (if any), and application server version in your report. It would be easiest if any new discussion was listed under its own heading, which can be done by entering the following code:

==Description of Issue==

For resolved bug reports please see Bug Reports/Resolved. For old bug reports that were not resolved due to lack of information or other issues see Bug Reports/Unresolved.

[Edit]Timestamp error

I upgraded my version of jamwiki from 0.6.6 to 0.8.2. Foor safety reasons I went thru all of the versions step by step. The version I have installed works fine until we try to save a topic. When doing so we get the following error:

 
org.jamwiki.DataAccessException: java.sql.SQLException: Cannot insert an explicit value into a timestamp column. 
Use INSERT with a column list to exclude the timestamp column, or insert a DEFAULT into the timestamp column..

I have installed the wiki on the following systems: wiki database is installed on a SQL 2008 server on windows 2003 OS wiki webpages are installed on on windows 2003 OS with Tomcat 5.5 webserver JDBC version is 3.0 (used different versions to check if that was the problem

--Angel 25-Feb-2010 03:12 PST

Other users have reported success with SQL Server and JAMWiki 0.8.2, so I'm not sure what in your environment might cause issues. Can you provide part of the stack trace that generated that error so I can see where in the code it is being generated? Thanks! -- Ryan • (comments) • 25-Feb-2010 06:36 PST

I found the problem. Wile upgrading to the current version I had to manually execute the sql statement. When doing so I use the guidelines in de upgrade.txt file. In this file there where some non ms sql satements which I thought I translated correctly. Today I looked at the sql.mssql.properties file and found my mistake on the timestamp column. Maybe you can reffer to taht file in de upgrade.txt so the correct statement can be used is upgrading manually

--Angel 05-Mar-2010 02:21 PST

[Edit]Wrong Path for Uploads

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.

[Edit]Error installing with DB2

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

[Edit]Upgrate from 0.6.7 to 0.8.1 failed

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

[Edit]Upgrade from 0.6.7 to 0.8.2 failed

I followed the upgrade instructions. The automatic upgrade failed with an java out of memory error. I checked the manual instructions. All mysql tables seemed to have been changed. So I only changed the version number from 0.6.7 to 0.8.2. The files all have tomca55 as user. The server now tells me:

HTTP Status 404 - /SMwiki/error.jsp

type Status report

message /SMwiki/error.jsp

description The requested resource (/SMwiki/error.jsp) is not available. Apache Tomcat/5.5

I deleted the Tomcat/work/Catalina/wiki directory which did not help. Any ideas?

Do you have a large wiki? I haven't heard of anyone getting an OOM error on upgrade before and would be curious if there were any specific errors in the logs. That said, the manual upgrade requires following ALL of the upgrade steps from the UPGRADE.txt version for versions after 0.6.7. If you just change the version to 0.8.2 (which is the step for upgrading from 0.8.1 to 0.8.2) then the database will be out of sync with the code, and random errors will be generated. -- Ryan • (comments) • 16-Feb-2010 21:35 PST
The database.sql is about 6 MB with Data in Hex, I do not consider that a large database, but who knows. I tried to do the manual backup step by step. but I had to notice that the mysql updates already had happened. So I went up in the list and tried to find the last update that had happened. I am sure all of them are in place. There were only two other changes in the list, as far as I can see: Change the version number and some css thing I did not really understand (and not do).
The CSS upgrade is merely to update the StyleSheet topic to the latest version, but that's optional. Also, 6MB is tiny, so I'm surprised by the OOM error (jamwiki.org is well over 100MB, and I run a test database locally that is about 2GB). Could you paste any errors from your jamwiki.log file here so I can see what is generating the error page? Hopefully that will reveal the problem. -- Ryan • (comments) • 17-Feb-2010 11:48 PST
Where is that jamwiki.log file meant to be. I have a feeling that it all goes to syslog (Debian) Should I change the logging.properties file somehow?
See FAQ#I've encountered a problem / bug / error with JAMWiki. Help!. The /WEB-INF/classes/logging.properties file configures where log messages are sent. -- Ryan • (comments) • 23-Feb-2010 14:15 PST

There is the part that happened on my last attempt. I must admit that I did not use chown -R tomcat55 this time, but I did it before and it had no influence. The old log is gone though.


2010-02-23 18:29:50,987 SEVERE: org.jamwiki.servlets.JAMWikiServlet - Servlet error
net.sf.ehcache.CacheException: org.jamwiki.db.AnsiDataHandler.CACHE_VIRTUAL_WIKICache: Could not create disk store. Initial cause was /opt/SMwiki/cache/org.jamwiki.db.AnsiDataHandler.CACHE_VIRTUAL_WIKI.data (Permission denied)
	at net.sf.ehcache.store.DiskStore.<init>(DiskStore.java:175)
	at net.sf.ehcache.Cache.createDiskStore(Cache.java:675)
	at net.sf.ehcache.Cache.initialise(Cache.java:640)
	at net.sf.ehcache.CacheManager.addCacheNoCheck(CacheManager.java:697)
	at java.lang.Thread.run(Thread.java:619)
Caused by: java.io.FileNotFoundException: /opt/SMwiki/cache/org.jamwiki.db.AnsiDataHandler.CACHE_VIRTUAL_WIKI.data (Permission denied)
	at java.io.RandomAccessFile.open(Native Method)
	at java.io.RandomAccessFile.<init>(RandomAccessFile.java:212)
	at net.sf.ehcache.store.DiskStore.initialiseFiles(DiskStore.java:219)
	at net.sf.ehcache.store.DiskStore.<init>(DiskStore.java:163)
	... 45 more
2010-02-23 18:29:50,987 SEVERE: org.jamwiki.servlets.JAMWikiServlet - Servlet error
net.sf.ehcache.CacheException: org.jamwiki.db.AnsiDataHandler.CACHE_VIRTUAL_WIKICache: Could not create disk store. Initial cause was /opt/SMwiki/cache/org.jamwiki.db.AnsiDataHandler.CACHE_VIRTUAL_WIKI.data (Permission denied)
	at net.sf.ehcache.store.DiskStore.<init>(DiskStore.java:175)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
	at java.lang.Thread.run(Thread.java:619)
Caused by: java.io.FileNotFoundException: /opt/SMwiki/cache/org.jamwiki.db.AnsiDataHandler.CACHE_VIRTUAL_WIKI.data (Permission denied)
	at java.io.RandomAccessFile.open(Native Method)
	at java.io.RandomAccessFile.<init>(RandomAccessFile.java:212)
	at net.sf.ehcache.store.DiskStore.initialiseFiles(DiskStore.java:219)
	at net.sf.ehcache.store.DiskStore.<init>(DiskStore.java:163)
	... 45 more
2010-02-23 18:29:50,989 SEVERE: org.jamwiki.servlets.JAMWikiServlet - Unable to load default layout
net.sf.ehcache.CacheException: org.jamwiki.db.AnsiDataHandler.CACHE_VIRTUAL_WIKICache: Could not create disk store. Initial cause was /opt/SMwiki/cache/org.jamwiki.db.AnsiDataHandler.CACHE_VIRTUAL_WIKI.data (Permission denied)
	at net.sf.ehcache.store.DiskStore.<init>(DiskStore.java:175)
	at net.sf.ehcache.Cache.createDiskStore(Cache.java:675)
	at net.sf.ehcache.Cache.initialise(Cache.java:640)
Caused by: java.io.FileNotFoundException: /opt/SMwiki/cache/org.jamwiki.db.AnsiDataHandler.CACHE_VIRTUAL_WIKI.data (Permission denied)
	at java.io.RandomAccessFile.open(Native Method)
	at java.io.RandomAccessFile.<init>(RandomAccessFile.java:212)
	at net.sf.ehcache.store.DiskStore.initialiseFiles(DiskStore.java:219)
	at net.sf.ehcache.store.DiskStore.<init>(DiskStore.java:163)
	... 43 more
2010-02-23 18:29:50,989 SEVERE: org.jamwiki.servlets.JAMWikiServlet - Unable to load default layout
net.sf.ehcache.CacheException: org.jamwiki.db.AnsiDataHandler.CACHE_VIRTUAL_WIKICache: Could not create disk store. Initial cause was /opt/SMwiki/cache/org.jamwiki.db.AnsiDataHandler.CACHE_VIRTUAL_WIKI.data (Permission denied)
	at net.sf.ehcache.store.DiskStore.<init>(DiskStore.java:175)
Caused by: java.io.FileNotFoundException: /opt/SMwiki/cache/org.jamwiki.db.AnsiDataHandler.CACHE_VIRTUAL_WIKI.data (Permission denied)
	at java.io.RandomAccessFile.open(Native Method)
	at java.io.RandomAccessFile.<init>(RandomAccessFile.java:212)
	at net.sf.ehcache.store.DiskStore.initialiseFiles(DiskStore.java:219)
	at net.sf.ehcache.store.DiskStore.<init>(DiskStore.java:163)
	... 43 more
2010-02-23 18:30:18,020 SEVERE: org.jamwiki.jsp - Error in JSP page
java.lang.OutOfMemoryError: Java heap space
	at java.util.Arrays.copyOf(Arrays.java:2882)
	at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:100)
	at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:390)
	at java.lang.StringBuilder.append(StringBuilder.java:119)
	at org.jamwiki.utils.LinkUtil.appendQueryParam(LinkUtil.java:73)
	at org.jamwiki.utils.LinkUtil.buildEditLinkUrl(LinkUtil.java:99)
	at org.jamwiki.utils.LinkUtil.buildTopicUrl(LinkUtil.java:359)

PS: the /cache directory is empty.

During wiki setup there is a step to configure a "file-system directory" which the JAMWiki process must have access to write to. It looks like you've configured /opt/SMwiki/, but that the permissions on that directory are such that JAMWiki cannot write data there. Fixing the permissions should resolve the problem, which can be done by updating the "File-system directory" parameter on Special:Admin or by directly editing the . Inability to write to the homeDir property in your jamwiki.properties file. An invalid file-system directory is a fatal error for JAMWiki, although I'll investigate to see if I can determine why it would result in a OOM error rather than a more user-friendly message. -- Ryan • (comments) • 24-Feb-2010 07:27 PST
resolved. I did it all again and it worked. So yes, the error message could be nicer. thanks a lot!

[Edit]Capitalization of article names MATTERS the first letter

JAMWiki 0.8, Tomcat 6.0.20, Sun JVM 1.6.0_14

From Wiki Syntax (adapted):

The ''first letter'' of articles is automatically capitalized, 
so [[startingPoints]] goes to the same place as [[StartingPoints]]. 
Capitalization matters after the first letter.

This's not true, even in this wiki:

The first letter of articles is automatically capitalized, so startingPoints goes to the same place as StartingPoints. Capitalization matters after the first letter.

Thanks, this was probably overlooked in the initial implementation and no one has called it out. I'll look into getting it fixed as soon as possible. -- Ryan • (comments) • 19-Nov-2009 07:25 PST
Thanks. Interestingly, for links to templates or images it works:
 The link {{todo|something}} or {{Todo|something}} points right to [[Template:Todo]] 
The link TODO something or TODO something point rights to Template:Todo
Looking forward to new version :) 2009-11-30, 17:58 CET
I would like to slightly increase the priority of this bug. It's little bit annoying for me... Thank you.
-- mschayna 02-Mar-2010 02:06 PST

[Edit]Running Tomcat as a proxy for Apache httpd

I just installed JAMWicki (0.7.2) in a Tomcat that is not directly accessible, but is being called via "ReverseProxy" directives from a Apache2 httpd. As normal only one ProxyPath directive for the root: / were added to the Apache2 site description. This resulted in a garbled home-page and inaccessible links, since JAMWicki always adds the name of the web-app to all links. To overcome this problem a second ProxyPath directive had to be added before the first that handles sub-pages. Thus the directive:

 ProxyPass       / http://localhost:8080/<tomcat-webapp-name>/

has to be supplemented by:

 ProxyPass       /<tomcat-webapp-name>/ http://localhost:8080/<tomcat-webapp-name>/
 ProxyPass       / http://localhost:8080/<tomcat-webapp-name>/

All slashes are required.

Thanks for the report. It may be possible to implement a workaround to allow configuring an "override" or the webapp context. This won't be something that makes it in for the upcoming 0.8.0 release, but might be possible for 0.9.0. In the meantime the instructions for the workaround are much appreciated! -- Ryan • (comments) • 17-Oct-2009 10:35 PDT

[Edit]Ghost Page

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

[Edit]Hypersonic DB throws NullPointerException on Startup

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

[Edit]Cached Pages with Incorrect Links

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

[Edit]Application hangs on Tomcat shutdown

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

[Edit]Large Number of Sessions

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

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

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

[Edit]Configuration forgotten every redeploy

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...

[Edit]Links to non-image files broken

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

[Edit]Odd category behaviour

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

[Edit]Deleted pages in search results

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

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

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

[Edit]Possible classpath issue

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

[Edit]counting problem on Category-page

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

[Edit]Default Virtual Wiki

I added a new virtual wiki (de) to my wiki and wanted this to make default redirect for http://www.myserver.com/jamwiki/ There is unfortunately no option for. It always redirects to the en version.

My suggestions:

  1. let me change my default wiki just like I want in Special:Maintanence for the default /jamwiki/ mapping
  2. let me set the default wiki loaded depending on browser locale (like wikipedia.org)
  3. let me set a new startpage which shows all wikis available like wikipedia.org does
  4. load en wiki if no other appropriate wiki is available
  5. opening a non existing wiki like /jamwiki/fd displays a regular tomcat 404 instead informing me that this virtual wiki does not exist!
This is definitely a feature that is needed - it has been requested before (see Roadmap#Rename Default Virtual Wiki) and will definitely appear in a future release, there just needs to be someone who has the time to implement it. Apologies for the inconveniences it's causing now. -- Ryan 21-Jun-2007 10:44 PDT
Ryan, sounds great. However, the roadmap refers to point 1 only. I hope the other 4 points are being taken into account too ( to some extent).

[Edit]Default Language Page

I just installed JAMWiki and en virtual wiki has been created automatically. What confused me that the en part has been loaded with german translation since my firefox is set to de_DE primary. I think this is false behavior becaause en implies that the person wants to have the entire site presented in english. Language settings should only be changed if the user does so in his account settings.

[Edit]Cannot register new users in protected wiki

I have a wiki that can only be viewed by registered users. To achieve this, I took all privileges from anonymous and registered users and assigned the 'view' privilege to individual users. Unfortunately, without the 'view' privilege, you can also not view the register page which means that I have to unlock the wiki everytime I want to add another user. The introduction of a new privilege would help... --87.167.28.136 21-Nov-2007 03:04 PST

Thanks for the suggestion. It's a long holiday weekend here this weekend, but when I get a chance I'll see if this is feasible for the 0.6.2 release or if it's something that would need to be done for 0.6.3. If you don't see an update by Monday please add a gentle reminder note so that I don't forget! -- Ryan 21-Nov-2007 22:06 PST

[Edit]Signatures don't work in some cases

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

[Edit]Linebreak in Tablecell

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

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

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

[Edit]File not found: /j_spring_security_logout

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

[Edit]Slow access to wiki database

I am using 0.7.0 running under WebSphere 6.1 on Windows. There are other applications running on this server -- all Web services. I don't think any other applications load the spring libraries, though. The application also seems to be unloaded by WebSphere after a certain amount of inactivity. If it has not been accessed for a few minutes (around 10 minutes), we find it takes 56 seconds to load the home page. There is an warning message in the log about the slow page load time (I assume this is being written by Jamwiki). This is unacceptable. I am probably going to install Resin on this server and serve Jamwiki from Resin. Bob White 27-May-2009 14:54 PDT
OK, I'll need to dig into this issue further - Websphere hasn't been a problem in the past, but I haven't tested on it in a while. For now I'd recommend going back to Resin and hopefully someone will be able to shed some light on the situation soon. If you find that it's anything specific to your local setup I'd be interested in knowing more as it seems unusual for the app to be automatically unloaded and to have interaction problems with Spring Security. Thanks for the bug report. -- Ryan • (comments) • 27-May-2009 16:11 PDT
I switched the wiki resin running on the same server as WebSphere. We still notice a 40-50 second delay when we access the wiki. It's strange. We see the page loading delay, but then subsequent pages load fast. But if we stop accessing the wiki for a few minutes (5 or 10 minutes -- have not bothered to narrow it down), the delay comes back for the first page loaded. This happens with both resin and WebSphere, but only for jamwiki. I can load other jsps from resin and they load instantly. Also, with WebSphere, our web services load almost instantly. The only app showing this delay is jamwiki. My recollection is that this did not happen when I initially installed jamwiki on another server, but it now happens even on my backup server after I transferred the database from our main wiki to the backup wiki. I can't help but wonder if either I messed up the configuration somehow. I have no idea how to debug this. All the log says is that the page loaded slowly, but only the the first page. Bob White 31-Aug-2009 17:04 PDT
Could you copy the relevant lines from your jamwiki.log file here? It would help to determine if the slowdown is coming from a slow database query, a slow JSP, or some other source. Thanks! -- Ryan • (comments) • 31-Aug-2009 19:25 PDT
Here is the log
2009-09-01 09:35:35,853 WARNING: org.jamwiki.servlets.JAMWikiServlet - Slow page loading time: /jamwiki/en/POS_Development_Home (31.423 s.)
2009-09-01 11:09:37,034 WARNING: org.jamwiki.servlets.JAMWikiServlet - Slow page loading time: /jamwiki/en/POS_Development_Home (43.375 s.)
2009-09-01 11:29:37,237 WARNING: org.jamwiki.servlets.JAMWikiServlet - Slow page loading time: /jamwiki/en/POS_Development_Home (42.782 s.)
2009-09-01 11:44:29,123 WARNING: org.jamwiki.servlets.JAMWikiServlet - Slow page loading time: /jamwiki/en/POS_Development_Home (43.0 s.)
2009-09-01 11:44:29,139 WARNING: org.jamwiki.servlets.JAMWikiServlet - Slow page loading time: /jamwiki/en/POS_Development_Home (37.922 s.)
2009-09-01 11:44:29,139 WARNING: org.jamwiki.servlets.JAMWikiServlet - Slow page loading time: /jamwiki/en/POS_Development_Home (29.938 s.)
2009-09-01 12:05:55,624 WARNING: org.jamwiki.db.WikiPreparedStatement - Slow query: select password from jam_users where username = ? (42.813 s.)
2009-09-01 12:05:55,624 WARNING: org.jamwiki.db.WikiPreparedStatement - Slow query: select password from jam_users where username = ? (35.844 s.)
2009-09-01 12:05:55,640 WARNING: org.jamwiki.utils.WikiUtil - No topic in URL: /jamwiki/en
2009-09-01 12:05:55,640 WARNING: org.jamwiki.utils.WikiUtil - No topic in URL: /jamwiki/en
2009-09-01 13:17:06,132 WARNING: org.jamwiki.utils.WikiUtil - No topic in URL: /jamwiki/en
2009-09-01 13:17:49,148 WARNING: org.jamwiki.servlets.JAMWikiServlet - Slow page loading time: /jamwiki/en (43.016 s.)
Thanks Bob - the "slow query" line would be my best guess of where the problem lies... for a query that simple, a time of anything more than a few milliseconds looks suspicious. Do you have access to a DBA who could trace the call to see what is going on? My guess is that either JAMWiki is unable to get a database connection and thus spins for a while, or else there is some issue within the database that is taking an ungodly long time to execute a simple query. There could of course be another issue somewhere, but those would be the two that strike me as most likely.
If you don't have a DBA who could help debug you might try modifying some of the database settings from Special:Admin. For example, try changing the "Action to take when pool is exhausted" option to "Fail" and see if pages return immediately with a database error. Or try increasing the connection pool size and decreasing the minimum idle times to see if that has any effect. Alternatively, if you notice anything else that might shed more light on the situation please let me know. -- Ryan • (comments) • 01-Sep-2009 21:05 PDT

We are using the internal HSQL database with default config.

  • 10 connections
  • 3 idle connections
  • Test connections on borrow - Checked
  • Test connections on return - Checked
  • Test idle connections - Checked
  • Min idle eviction time
    • 600 seconds
  • Time (in seconds) between eviction runs
    • 120 seconds
  • Number of tests per eviction run
    • 5
  • Action to take when pool is exhausted
    • Grow

I have set the Action to Fail. If it turns out that the pool is being exhausted, that is counter-intuitive since the problem happens after periods of inactivity. I am not sure what "idle eviction time" or "eviction runs" are. The eviction time of 600 seconds is conspicuous since the slow query generally takes place after 10 minutes of inactivity. Bob White • 18-Sep-2009 10:04 PDT

Thanks for following up Bob. I'm currently on vacation and quite far from home, but when I return I'll take a closer look and see if I can figure out any way to reproduce these issues locally. -- Ryan • (comments) • 23-Sep-2009 17:57 PDT
Just a quick update to say that I'm back but I haven't yet figured out how to reproduce this issue. Could you try using HSQL 1.8.1.1 from http://hsqldb.org/ (delete the hsqldb-1.8.0.7.jar in your /WEB-INF/lib/ folder and replace it with the newer version) and see if maybe that helps? I'm suspicious of whether the problem might be something specific to your setup, but am baffled as to what it could be. -- Ryan • (comments) • 08-Oct-2009 21:22 PDT

[Edit]Test of HSQL 1.8.1.1

Initial test substituting HSQL 1.8.1.1 shows some diminished delay on the initial access of the wiki after waiting 10 minutes.

Prior to testing HSQL 1.8.1.1, I tried out 1.9.0-rc6 just for kicks. While it did seem to load faster than 1.8.0.7, it modified the tables in some way so that I could not go back to a 1.8.x.x version. I reverted the tables to a backup copy and reloaded jamwiki with 1.8.1.1. The errors trying to switch from 1.9.9-rc6 to 1.8.1.1 were like this:

Caused by: org.apache.commons.dbcp.SQLNestedException: 
  Cannot create PoolableConnectionFactory (error in script file line: 
   1 Unexpected token UNIQUE, requires COLLATION in statement [SET DATABASE UNIQUE])

Thank goodness for backups. Bob White:12-Oct-2009 15:16 PDT

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. Bob White::16-Oct-2009 13:29 PDT

[Edit]Migration to MySQL

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.359] {http--8080-1} at org.jamwiki.authentication.JAMWikiAuthenticationConfiguration.getJamwikiAnonymousAuthorities(JAMWikiAuthenticationConfiguration.java:68) [16:07:12.359] {http--8080-1} at org.jamwiki.authentication.JAMWikiPostAuthenticationFilter.handleAnonymousUser(JAMWikiPostAuthenticationFilter.java:106) [16:07:12.359] {http--8080-1} at org.jamwiki.authentication.JAMWikiPostAuthenticationFilter.doFilter(JAMWikiPostAuthenticationFilter.java:87) [16:07:12.359] {http--8080-1} at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390) [16:07:12.359] {http--8080-1} at org.springframework.security.providers.anonymous.AnonymousProcessingFilter.doFilterHttp(AnonymousProcessingFilter.java:105) [16:07:12.359] {http--8080-1} at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) [16:07:12.359] {http--8080-1} at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390) [16:07:12.359] {http--8080-1} at org.springframework.security.ui.rememberme.RememberMeProcessingFilter.doFilterHttp(RememberMeProcessingFilter.java:109) [16:07:12.359] {http--8080-1} at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) [16:07:12.359] {http--8080-1} at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390) [16:07:12.359] {http--8080-1} at org.springframework.security.wrapper.SecurityContextHolderAwareRequestFilter.doFilterHttp(SecurityContextHolderAwareRequestFilter.java:91) [16:07:12.359] {http--8080-1} at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) [16:07:12.359] {http--8080-1} at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390) [16:07:12.359] {http--8080-1} at org.springframework.security.ui.AbstractProcessingFilter.doFilterHttp(AbstractProcessingFilter.java:277) [16:07:12.359] {http--8080-1} at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) [16:07:12.359] {http--8080-1} at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390) [16:07:12.359] {http--8080-1} at org.springframework.security.ui.logout.LogoutFilter.doFilterHttp(LogoutFilter.java:89) [16:07:12.359] {http--8080-1} at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) [16:07:12.359] {http--8080-1} at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390) [16:07:12.359] {http--8080-1} at org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:235) [16:07:12.359] {http--8080-1} at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) [16:07:12.359] {http--8080-1} at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390) [16:07:12.359] {http--8080-1} at org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:175) [16:07:12.359] {http--8080-1} at org.springframework.security.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:99) [16:07:12.359] {http--8080-1} at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:87) [16:07:12.359] {http--8080-1} at org.jamwiki.servlets.JAMWikiFilter.doFilter(JAMWikiFilter.java:59) [16:07:12.359] {http--8080-1} at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:87) [16:07:12.359] {http--8080-1} at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:189) [16:07:12.359] {http--8080-1} at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:266) [16:07:12.359] {http--8080-1} at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:292) [16:07:12.359] {http--8080-1} at com.caucho.server.port.TcpConnection.handleRequests(TcpConnection.java:577) [16:07:12.359] {http--8080-1} at com.caucho.server.port.TcpConnection$AcceptTask.doAccept(TcpConnection.java:1211) [16:07:12.359] {http--8080-1} at com.caucho.server.port.TcpConnection$AcceptTask.run(TcpConnection.java:1152) [16:07:12.359] {http--8080-1} at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:759) [16:07:12.359] {http--8080-1} at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:681) [16:07:12.359] {http--8080-1} at java.lang.Thread.run(Thread.java:619) [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.484] {http--8080-1} at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390) [16:07:12.484] {http--8080-1} at org.springframework.security.providers.anonymous.AnonymousProcessingFilter.doFilterHttp(AnonymousProcessingFilter.java:105) [16:07:12.484] {http--8080-1} at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) [16:07:12.484] {http--8080-1} at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390) [16:07:12.484] {http--8080-1} at org.springframework.security.ui.rememberme.RememberMeProcessingFilter.doFilterHttp(RememberMeProcessingFilter.java:109) [16:07:12.484] {http--8080-1} at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) [16:07:12.484] {http--8080-1} at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390) [16:07:12.484] {http--8080-1} at org.springframework.security.wrapper.SecurityContextHolderAwareRequestFilter.doFilterHttp(SecurityContextHolderAwareRequestFilter.java:91) [16:07:12.484] {http--8080-1} at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) [16:07:12.484] {http--8080-1} at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390) [16:07:12.484] {http--8080-1} at org.springframework.security.ui.AbstractProcessingFilter.doFilterHttp(AbstractProcessingFilter.java:277) [16:07:12.484] {http--8080-1} at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) [16:07:12.484] {http--8080-1} at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390) [16:07:12.484] {http--8080-1} at org.springframework.security.ui.logout.LogoutFilter.doFilterHttp(LogoutFilter.java:89) [16:07:12.484] {http--8080-1} at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) [16:07:12.484] {http--8080-1} at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390) [16:07:12.484] {http--8080-1} at org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:235) [16:07:12.484] {http--8080-1} at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) [16:07:12.484] {http--8080-1} at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390) [16:07:12.484] {http--8080-1} at org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:175) [16:07:12.484] {http--8080-1} at org.springframework.security.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:99) [16:07:12.484] {http--8080-1} at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:87) [16:07:12.484] {http--8080-1} at org.jamwiki.servlets.JAMWikiFilter.doFilter(JAMWikiFilter.java:59) [16:07:12.484] {http--8080-1} at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:87) [16:07:12.484] {http--8080-1} at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:189) [16:07:12.484] {http--8080-1} at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:266) [16:07:12.484] {http--8080-1} at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:292) [16:07:12.484] {http--8080-1} at com.caucho.server.port.TcpConnection.handleRequests(TcpConnection.java:577) [16:07:12.484] {http--8080-1} at com.caucho.server.port.TcpConnection$AcceptTask.doAccept(TcpConnection.java:1211) [16:07:12.484] {http--8080-1} at com.caucho.server.port.TcpConnection$AcceptTask.run(TcpConnection.java:1152) [16:07:12.484] {http--8080-1} at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:759) [16:07:12.484] {http--8080-1} at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:681) [16:07:12.484] {http--8080-1} at java.lang.Thread.run(Thread.java:619) [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.640] {http--8080-4} at org.springframework.security.providers.anonymous.AnonymousProcessingFilter.doFilterHttp(AnonymousProcessingFilter.java:105) [16:07:12.640] {http--8080-4} at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) [16:07:12.640] {http--8080-4} at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390) [16:07:12.640] {http--8080-4} at org.springframework.security.ui.rememberme.RememberMeProcessingFilter.doFilterHttp(RememberMeProcessingFilter.java:109) [16:07:12.640] {http--8080-4} at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) [16:07:12.640] {http--8080-4} at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390) [16:07:12.640] {http--8080-4} at org.springframework.security.wrapper.SecurityContextHolderAwareRequestFilter.doFilterHttp(SecurityContextHolderAwareRequestFilter.java:91) [16:07:12.640] {http--8080-4} at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) [16:07:12.640] {http--8080-4} at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390) [16:07:12.640] {http--8080-4} at org.springframework.security.ui.AbstractProcessingFilter.doFilterHttp(AbstractProcessingFilter.java:277) [16:07:12.640] {http--8080-4} at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) [16:07:12.640] {http--8080-4} at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390) [16:07:12.640] {http--8080-4} at org.springframework.security.ui.logout.LogoutFilter.doFilterHttp(LogoutFilter.java:89) [16:07:12.640] {http--8080-4} at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) [16:07:12.640] {http--8080-4} at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390) [16:07:12.640] {http--8080-4} at org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:235) [16:07:12.640] {http--8080-4} at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) [16:07:12.640] {http--8080-4} at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390) [16:07:12.640] {http--8080-4} at org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:175) [16:07:12.640] {http--8080-4} at org.springframework.security.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:99) [16:07:12.640] {http--8080-4} at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:87) [16:07:12.640] {http--8080-4} at org.jamwiki.servlets.JAMWikiFilter.doFilter(JAMWikiFilter.java:59) [16:07:12.640] {http--8080-4} at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:87) [16:07:12.640] {http--8080-4} at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:189) [16:07:12.640] {http--8080-4} at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:266) [16:07:12.640] {http--8080-4} at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:292) [16:07:12.640] {http--8080-4} at com.caucho.server.port.TcpConnection.handleRequests(TcpConnection.java:577) [16:07:12.640] {http--8080-4} at com.caucho.server.port.TcpConnection$AcceptTask.doAccept(TcpConnection.java:1211) [16:07:12.640] {http--8080-4} at com.caucho.server.port.TcpConnection$AcceptTask.run(TcpConnection.java:1152) [16:07:12.640] {http--8080-4} at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:759) [16:07:12.640] {http--8080-4} at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:681) [16:07:12.640] {http--8080-4} at java.lang.Thread.run(Thread.java:619) [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) [16:07:12.828] {http--8080-4} at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390) [16:07:12.828] {http--8080-4} at org.springframework.security.providers.anonymous.AnonymousProcessingFilter.doFilterHttp(AnonymousProcessingFilter.java:105) [16:07:12.828] {http--8080-4} at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) [16:07:12.828] {http--8080-4} at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390) [16:07:12.828] {http--8080-4} at org.springframework.security.ui.rememberme.RememberMeProcessingFilter.doFilterHttp(RememberMeProcessingFilter.java:109) [16:07:12.828] {http--8080-4} at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) [16:07:12.828] {http--8080-4} at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390) [16:07:12.828] {http--8080-4} at org.springframework.security.wrapper.SecurityContextHolderAwareRequestFilter.doFilterHttp(SecurityContextHolderAwareRequestFilter.java:91) [16:07:12.828] {http--8080-4} at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) [16:07:12.828] {http--8080-4} at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390) [16:07:12.828] {http--8080-4} at org.springframework.security.ui.AbstractProcessingFilter.doFilterHttp(AbstractProcessingFilter.java:277) [16:07:12.828] {http--8080-4} at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) [16:07:12.828] {http--8080-4} at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390) [16:07:12.828] {http--8080-4} at org.springframework.security.ui.logout.LogoutFilter.doFilterHttp(LogoutFilter.java:89) [16:07:12.828] {http--8080-4} at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) [16:07:12.828] {http--8080-4} at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390) [16:07:12.828] {http--8080-4} at org.springframework.security.context.HttpSessionContextIntegrationFilter.doFilterHttp(HttpSessionContextIntegrationFilter.java:235) [16:07:12.828] {http--8080-4} at org.springframework.security.ui.SpringSecurityFilter.doFilter(SpringSecurityFilter.java:53) [16:07:12.828] {http--8080-4} at org.springframework.security.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:390) [16:07:12.828] {http--8080-4} at org.springframework.security.util.FilterChainProxy.doFilter(FilterChainProxy.java:175) [16:07:12.828] {http--8080-4} at org.springframework.security.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:99) [16:07:12.828] {http--8080-4} at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:87) [16:07:12.828] {http--8080-4} at org.jamwiki.servlets.JAMWikiFilter.doFilter(JAMWikiFilter.java:59) [16:07:12.828] {http--8080-4} at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:87) [16:07:12.828] {http--8080-4} at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:189) [16:07:12.828] {http--8080-4} at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:266) [16:07:12.828] {http--8080-4} at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:292) [16:07:12.828] {http--8080-4} at com.caucho.server.port.TcpConnection.handleRequests(TcpConnection.java:577) [16:07:12.828] {http--8080-4} at com.caucho.server.port.TcpConnection$AcceptTask.doAccept(TcpConnection.java:1211) [16:07:12.828] {http--8080-4} at com.caucho.server.port.TcpConnection$AcceptTask.run(TcpConnection.java:1152) [16:07:12.828] {http--8080-4} at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:759) [16:07:12.828] {http--8080-4} at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:681) [16:07:12.828] {http--8080-4} at java.lang.Thread.run(Thread.java:619)

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.

[Edit]upgrade from 0.6.5 to 0.6.6

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'

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

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

[Edit]Paragraph Parsing

{|
|-
A single newline
has no effect
on the layout.
But an empty line

starts a new paragraph.
|}

...should generate two paragraphs, but the following is the actual output:

A single newline has no effect on the layout. But an empty line starts a new paragraph.

Note that it works fine when not in a table. -- Ryan 30-Aug-2008 00:24 PDT

Note that this may be related to http://jamwiki.org/wiki/en/Bug_Reports#Whitespace_Collapses_Paragraphs j_teer 08-Jan-2009 21:13 PST

[Edit]Unable to open Office 2007 files

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

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

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

[Edit]Error message from Special:Manage for non-existent topic

When clicking on the "Manage" tab from a non-existent topic (which happens frequently with comment pages) the error message "Invalid or missing topic name" is displayed. Mediawiki allows protection of topics that have not yet been created, so this case should eventually be handled. At a minimum, either the tab should be hidden or a better error message should be displayed. The code in question is ManageServlet.view(). -- Ryan 02-Jan-2009 12:07 PST

[Edit]# in topic name results in error

Editing a topic section such as "#" results in a "invalid topic name" error. -- Ryan • (comments) • 24-Jan-2009 23:26 PST

[Edit]Section editing & templates

When a template contains a wikiheading it throws off the "edit" links for each section. See Latest News for an example. -- Ryan • (comments) • 03-Feb-2009 19:23 PST


[Edit]Unable to Get WebAppRoot

JAMWiki 0.7, Jboss 5, CentOS 5.2

Complete newbie in Jboss and JAMWiki. I installed all following basic installation guides. Deployed JAMWiki in JBoss in the default server configuration. Opened up the Jamwiki setup page easily. Noticed that the Data Type drop down list is empty. Upon further inspection, I found that the sql.*.properties files in the classes directory are not being found. Any attempt to set the database properties fail becuase there are no sql properties to use (I assume). Is there something I must do to specify the web app root? Either in Jboss or JAMWiki? Some relevant errors follow:

2009-03-23 18:24:42,521 SEVERE: org.jamwiki.Environment - Failure while trying t o retrieve default file upload directory java.io.FileNotFoundException: Found invalid root class loader for file Applicat ionResources.properties

      at org.jamwiki.utils.Utilities.getClassLoaderFile(Utilities.java:357)
      at org.jamwiki.utils.Utilities.getClassLoaderRoot(Utilities.java:372)
      at org.jamwiki.utils.Utilities.getWebappRoot(Utilities.java:397)
      at org.jamwiki.Environment.retrieveDefaultUploadDirectory(Environment.java:350)
      at org.jamwiki.Environment.initDefaultProperties(Environment.java:186


2009-03-23 18:24:42,544 WARNING: org.jamwiki.Environment - Property file jamwiki.properties does not exist 2009-03-23 18:24:42,595 SEVERE: org.jamwiki.Environment - Error while searching for resource sql.ansi.properties java.io.FileNotFoundException: Found invalid root class loader for file ApplicationResources.properties at org.jamwiki.utils.Utilities.getClassLoaderFile(Utilities.java:357) at org.jamwiki.utils.Utilities.getClassLoaderRoot(Utilities.java:372) at org.jamwiki.Environment.retrievePropertyFile(Environment.java:376) at org.jamwiki.Environment.findProperties(Environment.java:143)

Update: downgraded Jboss to 4.2.3 and the problem went away.

Thanks for the detailed bug report. I don't personally use JBoss, but time permitting I'll try to install and investigate this weekend and see if I can find a workaround. If you find out anything more in the mean time please let me know! -- Ryan • (comments) • 23-Mar-2009 20:06 PDT
I still haven't had a chance to look at this issue - if anyone finds out any further info and can help resolve the problem it would be much appreciated. -- Ryan • (comments) • 12-Apr-2009 15:41 PDT

[Edit]Edit section on page with template

This appears to be a known issue (cp. here): "Template inclusion breaks section edit links (numbering off). Update: for now I've disabled section editing on pages that use template inclusion. This isn't a long-term solution, but thus far I haven't come up with a good way to handle this issue." Not being able to edit individual sections created from templates renders the whole template concept unusable for us. We need something like a form which shall be used by many different (technically unexperienced) users; editing the entire page and using variables is a lot less intuitive than just clicking a section's "Edit" link.

Disabling section editing for template generated pages entirely would be a (not too beautiful) workaround (cp. Feedback# NOEDITSECTION not working). --tapaya 30-Mar-2009 02:36 PDT

This is actually a really tough bug to solve cleanly - the only workarounds I've come up with have been some pretty ugly hacks to the parsing code. The Latest News page on jamwiki.org suffers from the same issue you've described. I'll try to bump the priority for getting this resolved, but I'd first like to get a 0.7.1 bugfix release out so it may take a while to get resolved. Sorry! If you're comfortable with Java feel free to have a look at WikiHeadingTag.java as well as the parseSlice and parseSplice functions in JFlexParser and see if you've got any ideas. -- Ryan • (comments) • 31-Mar-2009 08:38 PDT

[Edit]Search Results Summary Format

In Jamwiki 0.7.1 (and on this wiki) search results do not show a properly formatted summary for each result. The summary shows the wiki formatting etc.

I have not been able to find reports of this anywhere which surprised me, especially as the Jamwiki site has the same problem!

Initially this was by design, since users are often searching for a term that might not appear in the parsed text. I can take a look and see how hard it would be to add a configuration option to parse the search summary result. Thanks for the report. -- Ryan • (comments) • 17-Apr-2009 08:26 PDT

[Edit]Custom Group Roles and Access to Virtual Wikis

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

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

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

[Edit]Login "Remember Me"

The state of the "Remember Me" checkbox is not remembered on a failed login. -- Ryan • (comments) • 29-Jun-2009 08:22 PDT

[Edit]Numbering Problem in TOC

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

[Edit]Moving pages with MySQL

MySQL is not case-sensitive by default, which causes problems when moving a topic such as "TOPIC" to "Topic". I encountered this issue after importing User:Wrh2 and trying to move it to User:wrh2 - the imported topic history was mangled and the new topic could not be properly updated or deleted. -- Ryan • (comments) • 01-Oct-2009 21:48 PDT

[Edit]Upload files success , but download fail

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

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

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

[Edit]Still the old problem with the StartPage

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>

<div class="contents">
	<div class="message">Ein Systemfehler ist aufgetreten. Die Fehlermeldung lautet:</div>
	<div class="message red">Ein unbekannter Systemfehler ist aufgetreten.  Die Fehlermeldung lautet: java.lang.NullPointerException.</div>

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

	<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

[Edit]Version 0.7.0 Problem with the login

Archived from the Feedback page:

Hi Ryan, I just made the post and did login with my account. It seem to work, but wenn I did my post and signed with:

~~~~

it was not recognized as my account-shorts... And with the save action I was loged out. -- 95.114.106.229 04-Jan-2009 07:03 PST

Hi Ryan, its seems to be related to the cookies. If I allow the firefox to accept cookies from my lokal installation the session goes on. But this is different than bevor, right? -- greetings Mbert
I've never done any testing with cookies disabled, so I'll need to check it out. It's possible that disabling cookies might prevent Spring Security from tracking login status, which would explain the behavior you're seeing. -- Ryan 04-Jan-2009 08:09 PST

Hi Ryan, this is afaik an acceptable behavior - if expected and documented. I wonder that I do not pass that way earlier ;-). -- mbert 04-Jan-2009 09:03 PST

[Edit]File Links with Spaces

Archived from the Feedback page:

I'm creating an internal website and am new to jamwiki. Attempting to link to existing internal files [File://], but folders and file names have spaces. Is there a way to get around the spaces for File links. I tried + and %20, but those must only work with external links.

I believe that this is the same issue as this bug report. I will try to get it fixed for the next release. Thanks for the feedback! -- Ryan 09-Jan-2009 07:20 PST

[Edit]File Links

I have a similar problem accessing files links that belong to a network and local drive. I have tried by putting the internal URL link File://device/path/fileName, and I was surprised to see that it doesn't work with firefox but it does work with explorer. This link http://kb.mozillazine.org/Links_to_local_pages_don%27t_work#Firefox_1.5.2C_Mozilla_1.8.2C_and_newer gives some solutions that require firefox extensions. Is there any other known solution for this issue?

12-Jan-2009 Alessandra

[Edit]Maven build fails under Eclipse

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

[Edit]Search For Users by Role Not Returning Users

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":

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:

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

[Edit]"Remember Me" broken on trunk

Per this post, "remember me" functionality is broken in Spring Security 3.0.1, which is the version currently in use on the JAMWiki trunk and on jamwiki.org (but not in any released versions). Upgrading to the next bugfix version of Spring Security should presumably solve this issue. -- Ryan • (comments) • 07-Feb-2010 16:42 PST

revision 2875 downgrades to version 3.0.0 of Spring Security - the "remember me" issue was proving extremely annoying so it wasn't worthwhile waiting for a fixed version. -- Ryan • (comments) • 08-Feb-2010 21:16 PST

[Edit]Section links (on same page) broken

Links of the form [[Bug Reports#Wrong Path for Uploads]] (Bug Reports#Wrong Path for Uploads) are currently parsing incorrectly. Leaving out the topic name works - [[#Wrong Path for Uploads]] (#Wrong Path for Uploads). -- Ryan • (comments) • 10-Feb-2010 11:53 PST

[Edit]Text after <references/> keeps indented

The text after the <references/> tag keeps indented.
Example in this wiki: Help:Footnotes#What is produced at the points of insertion. I marked it with +++ End of references +++. Same behaviour in my wiki on 0.8.1. Kind regards, Rudi Wiesmayr (AT) 02-Mar-2010 00:43 PST

Sorry, I missed this bug report initially. I'll queue it up as something to resolve for the next release. -- Ryan • (comments) • 04-Mar-2010 19:15 PST

[Edit]XSS problem on login form

The login has an xss problem:

http://jamwiki.org/wiki/en/Special:Login?message=<script>alert("xss")</script>

frafu 04-Mar-2010 00:10 PST

Thanks, I'll make sure that is fixed for the next release. I'll credit you in the CHANGELOG as "frafu" unless you'd prefer something different. -- Ryan • (comments) • 04-Mar-2010 17:44 PST

[Edit]Interwiki Links with no topic

Interwiki links of the form Wikipedia are currently parsing incorrectly. -- Ryan • (comments) • 10-Mar-2010 22:30 PST

[Edit]Lists & Tables

See Test Table indent. Reported by User:RudiWiesmayr. -- Ryan • (comments) • 10-Mar-2010 22:30 PST