Uploaded image for project: 'JSPWiki'
  1. JSPWiki
  2. JSPWIKI-919

FileSystemProvider created pages not displayed by VersioningFileProvider if page caching turned off

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 2.10.1
    • Fix Version/s: None
    • Component/s: Core & storage
    • Labels:
      None
    • Environment:

      Windows 7 Professional SP1

      Description

      I have an install of JSPWiki (2.10.1) that has been preloaded with a set
      of (my own) wiki pages. These pages are dropped into the
      ${jspwiki.fileSystemProvider.pageDir} directory as just .txt files. There
      are no property files and I have no OLD directory. The page provider is
      set to the VersioningFileProvider.

      With page caching on all works as expected.

      When I turn page caching off [*] none of my pages get displayed and
      instead I get "This page does not exist. Why don’t you go and create it?".
      If I say yes the page is loaded for me to edit. If I change the page and
      save it it then becomes visible.

      It seems that the issue is with
      org.apache.wiki.providers.VersioningFileProvider.pageExists(String, int)
      and org.apache.wiki.providers.CachingProvider.pageExists(String, int)
      returning different values if page caching is on or off.

      With caching on

      org.apache.wiki.providers.CachingProvider.pageExists(String, int) returns
      true

      With caching off

      org.apache.wiki.providers.VersioningFileProvider.pageExists(String, int)
      returns false

      It seems that this is because the OLD/pageName directory does not exist
      (e.g. for the MAIN page jspwiki/pages/OLD/Main does not exist) and
      org.apache.wiki.providers.VersioningFileProvider.pageExists(String, int)
      does not handle this situation.

      Can be "fixed" by replacing pageExists(...) in VersioningPageProvider with

      public boolean pageExists(String pageName, int version)
      {
      try

      { WikiPage p = getPageInfo(pageName, version); return p != null; }

      catch (ProviderException e)

      { return false; }

      }

      although I am not sure of the implications of this.

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              pillingworth Paul Illingworth
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated: