[ 
https://issues.apache.org/jira/browse/JSPWIKI-649?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Magnus Lindberg updated JSPWIKI-649:
------------------------------------

    Description: 
Hi JSPWiki developers,

The function
  public void deleteVersion( String pageName, int version )
in class CachingProvider does not always update the page history cache 
appropriately.
As a result, NoSuchVersionException:s can be thrown, if it's later assumed that 
a page exists,
because it's present in the (cached) history list.

Below patch should fix the bug. (Works for me.)

Regards, Magnus

<pre>
Index: src/com/ecyrd/jspwiki/providers/CachingProvider.java
===================================================================
--- src/com/ecyrd/jspwiki/providers/CachingProvider.java        (revision 
938415)
+++ src/com/ecyrd/jspwiki/providers/CachingProvider.java        (working copy)
@@ -815,10 +815,10 @@
             {
                 m_cache.removeEntry( pageName );
                 m_textCache.removeEntry( pageName );
-                m_historyCache.removeEntry( pageName );
             }
 
             m_provider.deleteVersion( pageName, version );
+            m_historyCache.removeEntry( pageName );
         }
     }
</pre>

  was:
Hi JSPWiki developers,

The function
  public void deleteVersion( String pageName, int version )
in class CachingProvider does not always update the page history cache 
appropriately.
As a result, NoSuchVersionException:s can be thrown, if it's later assumed that 
a page exists,
because it's present in the (cached) history list.

Below patch should fix the bug. (Works for me.)

Regards, Magnus


Index: src/com/ecyrd/jspwiki/providers/CachingProvider.java
===================================================================
--- src/com/ecyrd/jspwiki/providers/CachingProvider.java        (revision 
938415)
+++ src/com/ecyrd/jspwiki/providers/CachingProvider.java        (working copy)
@@ -815,10 +815,10 @@
             {
                 m_cache.removeEntry( pageName );
                 m_textCache.removeEntry( pageName );
-                m_historyCache.removeEntry( pageName );
             }
 
             m_provider.deleteVersion( pageName, version );
+            m_historyCache.removeEntry( pageName );
         }
     }



> CachingProvider.deleteVersion leaves a stale m_historyCache
> -----------------------------------------------------------
>
>                 Key: JSPWIKI-649
>                 URL: https://issues.apache.org/jira/browse/JSPWIKI-649
>             Project: JSPWiki
>          Issue Type: Bug
>          Components: Core & storage
>    Affects Versions: 2.8.3, 2.8.4
>         Environment: Ubuntu, Sun Java 1.6
>            Reporter: Magnus Lindberg
>            Priority: Minor
>
> Hi JSPWiki developers,
> The function
>   public void deleteVersion( String pageName, int version )
> in class CachingProvider does not always update the page history cache 
> appropriately.
> As a result, NoSuchVersionException:s can be thrown, if it's later assumed 
> that a page exists,
> because it's present in the (cached) history list.
> Below patch should fix the bug. (Works for me.)
> Regards, Magnus
> <pre>
> Index: src/com/ecyrd/jspwiki/providers/CachingProvider.java
> ===================================================================
> --- src/com/ecyrd/jspwiki/providers/CachingProvider.java      (revision 
> 938415)
> +++ src/com/ecyrd/jspwiki/providers/CachingProvider.java      (working copy)
> @@ -815,10 +815,10 @@
>              {
>                  m_cache.removeEntry( pageName );
>                  m_textCache.removeEntry( pageName );
> -                m_historyCache.removeEntry( pageName );
>              }
>  
>              m_provider.deleteVersion( pageName, version );
> +            m_historyCache.removeEntry( pageName );
>          }
>      }
> </pre>

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to