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.

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

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)
	at javax.imageio.spi.ImageReaderSpi.createReaderInstance(ImageReaderSpi.java:296)
	at javax.imageio.ImageIO$ImageReaderIterator.next(ImageIO.java:488)
	at javax.imageio.ImageIO$ImageReaderIterator.next(ImageIO.java:472)
	at javax.imageio.ImageIO.read(ImageIO.java:1397)
	at javax.imageio.ImageIO.read(ImageIO.java:1322)
	at org.jamwiki.utils.ImageUtil.loadImage(ImageUtil.java:126)
	at org.jamwiki.utils.ImageUtil.isImage(ImageUtil.java:109)
	at org.jamwiki.servlets.UploadServlet.upload(UploadServlet.java:199)
	at org.jamwiki.servlets.UploadServlet.handleJAMWikiRequest(UploadServlet.java:63)
	at org.jamwiki.servlets.JAMWikiServlet.handleRequestInternal(JAMWikiServlet.java:74)
	at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
	at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:476)
	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:441)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265)
	at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
	at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
	at org.jamwiki.authentication.JAMWikiExceptionMessageFilter.doFilter(JAMWikiExceptionMessageFilter.java:70)
	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
	at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:124)
	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
	at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
	at org.jamwiki.authentication.JAMWikiAnonymousProcessingFilter.doFilter(JAMWikiAnonymousProcessingFilter.java:62)
	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
	at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
	at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
	at org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
	at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
	at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149)
	at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
	at org.jamwiki.servlets.JAMWikiFilter.doFilter(JAMWikiFilter.java:58)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
	at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)
	at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
	at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:773)
	at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703)
	at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:895)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
	at java.lang.Thread.run(Thread.java:613)

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

Upload can't be a Linux symbolic links

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

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

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

Keychain drive issues

Copied from the Feedback page:

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

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

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

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

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

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

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

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.

Potential session hijack

If you go to the site for the first time (or after enough time that your previous session has expired), you are given a new session. For example, go to: http://www.jamwiki.org (include the www subdomain), you get forwarded to the homepage and it includes the session ID in the query string, like this: http://jamwiki.org/wiki/en/StartingPoints;jsessionid=67431F28377CD519F0A668A582AA4745

If someone were to sniff it off your traffic, they could potentially hijack your session. -- scroco 25-Aug-2006 11:12 PDT

I'll take a look, although do you know of a way that other sites handle this? I think the session ID is always stored in either a cookie or in the URL, so don't most application servers check both the session ID and the origin address to verify that a session is valid? In addition, login credentials are stored in an (encrypted) cookie, so I'm not sure how much damage could be done by stealing the session ID. That said, I'm not very knowledgeable in this area, so any advice is appreciated. -- Ryan 25-Aug-2006 12:20 PDT
jsessionid is a mechanism for making sessions work even if the client doesn't support cookies. It has some problems, though. In my web applications, I use the filter described in http://randomcoder.com/articles/jsessionid-considered-harmful . It works well. The downside, of course, is that stuff breaks for clients who don't support cookies. But a huge number of sites on the web are breaking for those clients.

Categories

Copied from the Feedback page:

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

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

Funny Formatting

Copied from the Feedback page:

Hi Ryan, I started editing my private Wiki-page. While I was entering some webtest-documentation I hit the preview-button on the bottom (please try to edit my Notes and press the preview-button). The whole page looked funny;-) I found the reason: the ":" in front of the last line. OK the content of the line is quite unusual, I agree.

MichaelHabbert, 2006-12-13 21:23 ECT

  • Eine Abhänigkeit über IDs - auch wenn sie über das Properties.file referenziert werden - müssen vermieden werden! Die Lösung

für diese Problem stellt der storeReqEx-Task von Webtest dar. Hiermit lassen sich auch IDs aus der Antwortseite bestimmen und für die weitere Arbeit verwenden (mittels #{visibleTaskID}):

<storeRegEx description="Extract visibleTaskID." text="Task-Nummer</td>\W*<.*>(\w{1,3}-[0-9]{5})</td>" group="1" property="visibleTaskID" />

Wow - that is a crazy line. I'll see if I can get the parser fixed, but in the mean time you can wrap <nowiki> tags around the troublesome content and that should temporarily solve the problem. -- Ryan 13-Dec-2006 13:51 PST
Hi Ryan, Yes of course, it's no problem at all, if you save the page. But still a funny parsing ...;-) Michael Habbert 17-Dec-2006 06:24 PST
Btw: The funny line is part of a regular Expression to grep a html-page for a special ID;-). Michael Habbert 17-Dec-2006 12:00 PST
Turns out that this issue is pretty difficult to solve - so long as a site has allowed HTML, JAMWiki doesn't do any checking to make sure that HTML tags are properly closed. As a result, adding a </div> or </td> can really screw up the page layout. It's a fairly serious problem, but I don't know if it's one that can be easily solved so I think the solution might have to wait until JAMWiki 0.5.1, rather than disrupting things so late in the 0.5.0 release cycle... -- Ryan 18-Dec-2006 22:32 PST
I think that some of the changes made in revision 2111 should make it tougher for unbalanced tags to break page layout, and the 0.6.6 release cycle should solve this problem entirely. Note that the changes aren't yet on jamwiki.org but will show up here once they're a bit further along. -- Ryan 23-Mar-2008 22:41 PDT

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

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

Definition Lists

Copied from the Feedback page:

Definition lists do render different depending on whether the colon is on the same line or not:

Definition 1
colon is on same line
Definition 2
colon is on new line

For Definition 1 only

tags are created, no
tags. Is this the intended behavior? -- Rainer 10-Jan-2007 01:19 PST
I just never realized Mediawiki supported the first format :) I'll put it on my to-do list for 0.5.1. Thanks! -- Ryan 10-Jan-2007 22:44 PST

Did you get the solution, i have the same problem

I haven't gotten around to this one yet - the fix isn't as easy as I had hoped, and since there is an alternative (lists on two lines) I've been pushing it down my to-do list for a while. If enough people feel this is important I'll make an effort to get to it sooner. -- Ryan 14-Nov-2007 21:13 PST
revision 2118 adds support for definition lists of the form "; term : definition". The code isn't yet on jamwiki.org (as of 26-March) but will be once the current round of parser changes is further along and has been more thoroughly tested. -- Ryan 26-Mar-2008 21:12 PDT

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

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.

INSTALL PROBLEMS

Moved from the Feedback page:

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

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

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

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

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

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

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

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

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

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

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

MORE INSTALL PROBLEMS

Moved from the Feedback page:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

hth, Phil

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

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

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

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

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

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

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

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

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

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

More bugs

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

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

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

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

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

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

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

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

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

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

Hi Ryan,

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

Wiki Log:

2007-08-22 19:42:21,055 CONFIG: org.jamwiki.utils.WikiLogger - JAMWiki log initialized from C:\Program Files\jboss-4.0.5.GA\server\default\.\deploy\jamwiki-0.6.0-beta2.war\WEB-INF\classes\logging.properties with pattern %t/jamwiki.log.%g
2007-08-22 19:42:21,321 CONFIG: org.jamwiki.Environment - Loading properties from C:\Program Files\jboss-4.0.5.GA\server\default\.\deploy\jamwiki-0.6.0-beta2.war\WEB-INF\classes\jamwiki.properties
2007-08-22 19:42:21,352 CONFIG: org.jamwiki.Environment - Loading properties from C:\Program Files\jboss-4.0.5.GA\server\default\.\deploy\jamwiki-0.6.0-beta2.war\WEB-INF\classes\sql.ansi.properties
2007-08-22 19:42:21,352 CONFIG: org.jamwiki.Environment - Loading properties from C:\Program Files\jboss-4.0.5.GA\server\default\.\deploy\jamwiki-0.6.0-beta2.war\WEB-INF\classes\sql.ansi.properties
2007-08-22 19:42:21,352 CONFIG: org.jamwiki.Environment - Loading properties from C:\Program Files\jboss-4.0.5.GA\server\default\.\deploy\jamwiki-0.6.0-beta2.war\WEB-INF\classes\sql.ansi.properties
2007-08-22 19:42:21,352 CONFIG: org.jamwiki.Environment - Loading properties from C:\Program Files\jboss-4.0.5.GA\server\default\.\deploy\jamwiki-0.6.0-beta2.war\WEB-INF\classes\sql.hsql.properties
2007-08-22 19:43:38,494 WARNING: org.jamwiki.Environment - Property file C:\Program Files\jboss-4.0.5.GA\server\default\.\deploy\JAMWiki.war\WEB-INF\classes\jamwiki.properties does not exist
2007-08-22 19:43:38,712 INFO: org.jamwiki.servlets.JAMWikiServlet - Loaded page /JAMWiki/en/Special:Setup (0.125 s.)
2007-08-22 19:43:38,712 INFO: org.jamwiki.servlets.JAMWikiServlet - Loaded page /JAMWiki/en/Special:Setup (0.125 s.)
2007-08-22 19:47:36,528 CONFIG: org.jamwiki.Environment - Loading properties from C:\Program Files\jboss-4.0.5.GA\server\default\.\deploy\JAMWiki.war\WEB-INF\classes\sql.ansi.properties
2007-08-22 19:47:36,528 CONFIG: org.jamwiki.Environment - Loading properties from C:\Program Files\jboss-4.0.5.GA\server\default\.\deploy\JAMWiki.war\WEB-INF\classes\sql.ansi.properties
2007-08-22 19:47:36,528 CONFIG: org.jamwiki.Environment - Loading properties from C:\Program Files\jboss-4.0.5.GA\server\default\.\deploy\JAMWiki.war\WEB-INF\classes\sql.ansi.properties
2007-08-22 19:47:36,544 CONFIG: org.jamwiki.Environment - Loading properties from C:\Program Files\jboss-4.0.5.GA\server\default\.\deploy\JAMWiki.war\WEB-INF\classes\sql.mssql.properties
2007-08-22 19:47:36,606 CONFIG: org.jamwiki.Environment - Loading properties from C:\Program Files\jboss-4.0.5.GA\server\default\.\deploy\JAMWiki.war\WEB-INF\classes\sql.ansi.properties
2007-08-22 19:47:36,606 CONFIG: org.jamwiki.Environment - Loading properties from C:\Program Files\jboss-4.0.5.GA\server\default\.\deploy\JAMWiki.war\WEB-INF\classes\sql.ansi.properties
2007-08-22 19:47:36,606 CONFIG: org.jamwiki.Environment - Loading properties from C:\Program Files\jboss-4.0.5.GA\server\default\.\deploy\JAMWiki.war\WEB-INF\classes\sql.ansi.properties
2007-08-22 19:47:36,606 CONFIG: org.jamwiki.Environment - Loading properties from C:\Program Files\jboss-4.0.5.GA\server\default\.\deploy\JAMWiki.war\WEB-INF\classes\sql.mssql.properties
2007-08-22 19:47:36,684 INFO: org.jamwiki.db.DatabaseConnection - Executing SQL: CREATE TABLE jam_virtual_wiki ( virtual_wiki_id INTEGER NOT NULL, virtual_wiki_name VARCHAR(100) NOT NULL, default_topic_name VARCHAR(200) NOT NULL, create_date DATETIME DEFAULT GETDATE() NOT NULL, CONSTRAINT jam_pk_vwiki PRIMARY KEY (virtual_wiki_id), CONSTRAINT jam_unique_vwiki_name UNIQUE (virtual_wiki_name) )
2007-08-22 19:47:36,700 INFO: org.jamwiki.db.DatabaseConnection - Executing SQL: CREATE TABLE jam_wiki_user ( wiki_user_id INTEGER NOT NULL, login VARCHAR(100) NOT NULL, display_name VARCHAR(100), create_date DATETIME DEFAULT GETDATE() NOT NULL, last_login_date DATETIME DEFAULT GETDATE() NOT NULL, create_ip_address VARCHAR(15) NOT NULL, last_login_ip_address VARCHAR(15) NOT NULL, is_admin INTEGER DEFAULT 0 NOT NULL, remember_key VARCHAR(100) NOT NULL, default_locale VARCHAR(8), CONSTRAINT jam_pk_wiki_user PRIMARY KEY (wiki_user_id) )
2007-08-22 19:47:36,700 INFO: org.jamwiki.db.DatabaseConnection - Executing SQL: CREATE TABLE jam_wiki_user_info ( wiki_user_id INTEGER NOT NULL, login VARCHAR(100) NOT NULL, email VARCHAR(100), first_name VARCHAR(100), last_name VARCHAR(100), encoded_password VARCHAR(100) NOT NULL, CONSTRAINT jam_pk_wiki_uinfo PRIMARY KEY (wiki_user_id), CONSTRAINT jam_fk_wiki_uinfo_wiki_user FOREIGN KEY (wiki_user_id) REFERENCES jam_wiki_user(wiki_user_id), CONSTRAINT jam_unique_wiki_uinfo_login UNIQUE (login) )
2007-08-22 19:47:36,700 INFO: org.jamwiki.db.DatabaseConnection - Executing SQL: CREATE UNIQUE INDEX jam_unique_wiki_user_login on jam_wiki_user (login)
2007-08-22 19:47:36,715 INFO: org.jamwiki.db.DatabaseConnection - Executing SQL: CREATE TABLE jam_topic ( topic_id INTEGER NOT NULL, virtual_wiki_id INTEGER NOT NULL, topic_name VARCHAR(200) NOT NULL, delete_date DATETIME, topic_read_only INTEGER DEFAULT 0 NOT NULL, topic_admin_only INTEGER DEFAULT 0 NOT NULL, current_version_id INTEGER, topic_type INTEGER NOT NULL, redirect_to VARCHAR(200), CONSTRAINT jam_pk_topic PRIMARY KEY (topic_id), CONSTRAINT jam_fk_topic_vwiki FOREIGN KEY (virtual_wiki_id) REFERENCES jam_virtual_wiki(virtual_wiki_id), CONSTRAINT jam_unique_topic_name_vwiki UNIQUE (topic_name, virtual_wiki_id) )
2007-08-22 19:47:36,715 INFO: org.jamwiki.db.DatabaseConnection - Executing SQL: CREATE TABLE jam_topic_version ( topic_version_id INTEGER NOT NULL, topic_id INTEGER NOT NULL, edit_comment VARCHAR(200), version_content TEXT, wiki_user_id INTEGER, wiki_user_ip_address VARCHAR(15) NOT NULL, edit_date DATETIME DEFAULT GETDATE() NOT NULL, edit_type INTEGER NOT NULL, previous_topic_version_id INTEGER, CONSTRAINT jam_pk_topic_ver PRIMARY KEY (topic_version_id), CONSTRAINT jam_fk_topic_ver_topic FOREIGN KEY (topic_id) REFERENCES jam_topic(topic_id), CONSTRAINT jam_fk_topic_ver_wiki_user FOREIGN KEY (wiki_user_id) REFERENCES jam_wiki_user(wiki_user_id), CONSTRAINT jam_fk_topic_ver_prv_topic_ver FOREIGN KEY (previous_topic_version_id) REFERENCES jam_topic_version(topic_version_id) ) 
2007-08-22 19:47:36,715 INFO: org.jamwiki.db.DatabaseConnection - Executing SQL: ALTER TABLE jam_topic add constraint jam_fk_topic_topic_ver FOREIGN KEY (current_version_id) REFERENCES jam_topic_version(topic_version_id) 
2007-08-22 19:47:36,715 INFO: org.jamwiki.db.DatabaseConnection - Executing SQL: CREATE TABLE jam_file ( file_id INTEGER NOT NULL, virtual_wiki_id INTEGER NOT NULL, file_name VARCHAR(200) NOT NULL, delete_date DATETIME, file_read_only INTEGER DEFAULT 0 NOT NULL, file_admin_only INTEGER DEFAULT 0 NOT NULL, file_url VARCHAR(200) NOT NULL, mime_type VARCHAR(100) NOT NULL, topic_id INTEGER NOT NULL, file_size INTEGER NOT NULL, CONSTRAINT jam_pk_file PRIMARY KEY (file_id), CONSTRAINT jam_fk_file_vwiki FOREIGN KEY (virtual_wiki_id) REFERENCES jam_virtual_wiki(virtual_wiki_id), CONSTRAINT jam_fk_file_topic FOREIGN KEY (topic_id) REFERENCES jam_topic(topic_id), CONSTRAINT jam_unique_file_url UNIQUE (file_url), CONSTRAINT jam_unique_file_topic_vwiki UNIQUE (virtual_wiki_id, topic_id) )
2007-08-22 19:47:36,731 INFO: org.jamwiki.db.DatabaseConnection - Executing SQL: CREATE TABLE jam_file_version ( file_version_id INTEGER NOT NULL, file_id INTEGER NOT NULL, upload_comment VARCHAR(200), file_url VARCHAR(200) NOT NULL, wiki_user_id INTEGER, wiki_user_ip_address VARCHAR(15) NOT NULL, upload_date DATETIME DEFAULT GETDATE() NOT NULL, mime_type VARCHAR(100) NOT NULL, file_size INTEGER NOT NULL, CONSTRAINT jam_pk_file_ver PRIMARY KEY (file_version_id), CONSTRAINT jam_fk_file_ver_file FOREIGN KEY (file_id) REFERENCES jam_file(file_id), CONSTRAINT jam_fk_file_ver_wiki_user FOREIGN KEY (wiki_user_id) REFERENCES jam_wiki_user(wiki_user_id), CONSTRAINT jam_unique_file_ver_url UNIQUE (file_url) )
2007-08-22 19:47:36,731 INFO: org.jamwiki.db.DatabaseConnection - Executing SQL: CREATE TABLE jam_category ( child_topic_id INTEGER NOT NULL, category_name VARCHAR(200) NOT NULL, sort_key VARCHAR(200), CONSTRAINT jam_pk_category PRIMARY KEY (child_topic_id, category_name), CONSTRAINT jam_fk_category_child_id FOREIGN KEY (child_topic_id) REFERENCES jam_topic(topic_id) )
2007-08-22 19:47:36,731 INFO: org.jamwiki.db.DatabaseConnection - Executing SQL: CREATE TABLE jam_recent_change ( topic_version_id INTEGER NOT NULL, previous_topic_version_id INTEGER, topic_id INTEGER NOT NULL, topic_name VARCHAR(200) NOT NULL, edit_date DATETIME DEFAULT GETDATE() NOT NULL, edit_comment VARCHAR(200), wiki_user_id INTEGER, display_name VARCHAR(200) NOT NULL, edit_type INTEGER NOT NULL, virtual_wiki_id INTEGER NOT NULL, virtual_wiki_name VARCHAR(100) NOT NULL, CONSTRAINT jam_pk_rchange PRIMARY KEY (topic_version_id), CONSTRAINT jam_fk_rchange_topic_ver FOREIGN KEY (topic_version_id) REFERENCES jam_topic_version(topic_version_id), CONSTRAINT jam_fk_rchange_prv_topic_ver FOREIGN KEY (previous_topic_version_id) REFERENCES jam_topic_version(topic_version_id), CONSTRAINT jam_fk_rchange_topic FOREIGN KEY (topic_id) REFERENCES jam_topic(topic_id), CONSTRAINT jam_fk_rchange_wiki_user FOREIGN KEY (wiki_user_id) REFERENCES jam_wiki_user(wiki_user_id), CONSTRAINT jam_fk_rchange_vwiki FOREIGN KEY (virtual_wiki_id) REFERENCES jam_virtual_wiki(virtual_wiki_id) )
2007-08-22 19:47:36,731 INFO: org.jamwiki.db.DatabaseConnection - Executing SQL: CREATE TABLE jam_watchlist ( wiki_user_id INTEGER NOT NULL, topic_name VARCHAR(200), virtual_wiki_id INTEGER NOT NULL, CONSTRAINT jam_pk_watchlist PRIMARY KEY (wiki_user_id, topic_name, virtual_wiki_id), CONSTRAINT jam_fk_watchlist_user_id FOREIGN KEY (wiki_user_id) REFERENCES jam_wiki_user(wiki_user_id), CONSTRAINT jam_fk_watchlist_vwiki FOREIGN KEY (virtual_wiki_id) REFERENCES jam_virtual_wiki(virtual_wiki_id) )
2007-08-22 19:47:36,794 INFO: org.jamwiki.db.WikiDatabase - Setting up special page en / StartingPoints
2007-08-22 19:47:36,809 INFO: org.jamwiki.utils.Utilities - File pages\en_US\StartingPoints.txt does not exist
2007-08-22 19:47:36,809 INFO: org.jamwiki.utils.Utilities - File pages\en\StartingPoints.txt does not exist
2007-08-22 19:47:37,090 CONFIG: org.jamwiki.Environment - Loading properties from C:\Program Files\jboss-4.0.5.GA\server\default\.\deploy\JAMWiki.war\WEB-INF\classes\interwiki.properties
  • All users link
Log
2007-08-22 20:48:35,101 SEVERE: org.jamwiki.servlets.ServletUtil - Servlet error
java.lang.Exception: Failure while executing BEGIN DECLARE @COUNT int DECLARE @TOP int DECLARE @OFFSET int DECLARE @LIMIT int DECLARE @SQL varchar(300) SET @LIMIT = ? SET @OFFSET = ? SET @TOP = @LIMIT SET @COUNT = (select count(*) from jam_wiki_user_info) IF (@OFFSET > @COUNT) SET @OFFSET = @COUNT IF (@COUNT < @OFFSET + @LIMIT) SET @TOP = @COUNT - @OFFSET SET @SQL = 'select * from ( ' + 'select top '+CONVERT(VARCHAR, @TOP)+' * from ( ' + 'select top '+CONVERT(VARCHAR, @OFFSET + @LIMIT)+' login ' + 'from jam_wiki_user_info + 'order by login ' + ') a ' + 'order by login desc ' + ') b ' + ' order by login ' EXEC(@SQL) END
	at org.jamwiki.db.WikiPreparedStatement.executeQuery(WikiPreparedStatement.java:84)
	at org.jamwiki.db.WikiPreparedStatement.executeQuery(WikiPreparedStatement.java:61)
	at org.jamwiki.db.AnsiQueryHandler.lookupWikiUsers(AnsiQueryHandler.java:771)
	at org.jamwiki.db.AnsiDataHandler.lookupWikiUsers(AnsiDataHandler.java:986)
	at org.jamwiki.servlets.ItemsServlet.viewUsers(ItemsServlet.java:86)
	at org.jamwiki.servlets.ItemsServlet.handleJAMWikiRequest(ItemsServlet.java:57)
	at org.jamwiki.servlets.JAMWikiServlet.handleRequestInternal(JAMWikiServlet.java:74)
	at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
	at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:839)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:774)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:460)
	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:415)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:264)
	at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
	at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
	at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:110)
	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
	at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
	at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
	at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:217)
	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
	at org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:106)
	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
	at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:229)
	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
	at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:148)
	at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.jamwiki.servlets.JAMWikiFilter.doFilter(JAMWikiFilter.java:58)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
	at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
	at java.lang.Thread.run(Thread.java:595)
Caused by: java.sql.SQLException: Invalid SQL statement or JDBC escape, terminating ''' not found.
	at net.sourceforge.jtds.jdbc.SQLParser.parse(SQLParser.java:1155)
	at net.sourceforge.jtds.jdbc.SQLParser.parse(SQLParser.java:156)
	at net.sourceforge.jtds.jdbc.JtdsPreparedStatement.<init>(JtdsPreparedStatement.java:104)
	at net.sourceforge.jtds.jdbc.ConnectionJDBC2.prepareStatement(ConnectionJDBC2.java:2221)
	at net.sourceforge.jtds.jdbc.ConnectionJDBC2.prepareStatement(ConnectionJDBC2.java:2179)
	at org.apache.commons.dbcp.DelegatingConnection.prepareStatement(DelegatingConnection.java:248)
	at org.apache.commons.dbcp.PoolingDriver$PoolGuardConnectionWrapper.prepareStatement(PoolingDriver.java:367)
	at org.jamwiki.db.WikiPreparedStatement.executeQuery(WikiPreparedStatement.java:74)
	... 56 more
  • Trying to re-create a topic that has been deleted:
Log:
2007-08-22 20:41:48,549 SEVERE: org.jamwiki.servlets.ServletUtil - Servlet error
java.lang.Exception: Failure while executing insert into jam_topic ( topic_id, virtual_wiki_id, topic_name, topic_type, topic_read_only, current_version_id, delete_date, topic_admin_only, redirect_to ) values ( ?, ?, ?, ?, ?, ?, ?, ?, ? )
	at org.jamwiki.db.WikiPreparedStatement.executeUpdate(WikiPreparedStatement.java:119)
	at org.jamwiki.db.AnsiQueryHandler.insertTopic(AnsiQueryHandler.java:509)
	at org.jamwiki.db.AnsiDataHandler.addTopic(AnsiDataHandler.java:91)
	at org.jamwiki.db.AnsiDataHandler.writeTopic(AnsiDataHandler.java:1229)
	at org.jamwiki.servlets.EditServlet.save(EditServlet.java:330)
	at org.jamwiki.servlets.EditServlet.handleJAMWikiRequest(EditServlet.java:59)
	at org.jamwiki.servlets.JAMWikiServlet.handleRequestInternal(JAMWikiServlet.java:74)
	at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
	at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:839)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:774)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:460)
	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:425)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:264)
	at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
	at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
	at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:110)
	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
	at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
	at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
	at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:217)
	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
	at org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:106)
	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
	at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:229)
	at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:274)
	at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:148)
	at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.jamwiki.servlets.JAMWikiFilter.doFilter(JAMWikiFilter.java:58)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	at org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
	at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
	at java.lang.Thread.run(Thread.java:595)
Caused by: java.sql.SQLException: Violation of UNIQUE KEY constraint 'jam_unique_topic_name_vwiki'. Cannot insert duplicate