Author: taylor
Date: Wed Oct 11 16:39:33 2006
New Revision: 463069
URL: http://svn.apache.org/viewvc?view=rev&rev=463069
Log:
http://issues.apache.org/jira/browse/JS2-571
patch applied, unit tests pass
Modified:
portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/page/impl/DatabasePageManager.java
Modified:
portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/page/impl/DatabasePageManager.java
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/page/impl/DatabasePageManager.java?view=diff&rev=463069&r1=463068&r2=463069
==============================================================================
---
portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/page/impl/DatabasePageManager.java
(original)
+++
portals/jetspeed-2/trunk/components/page-manager/src/java/org/apache/jetspeed/page/impl/DatabasePageManager.java
Wed Oct 11 16:39:33 2006
@@ -940,7 +940,8 @@
page = (Page)ProxyHelper.getRealObject(page);
// look up and set parent folder if necessary
- if (page.getParent() == null)
+ FolderImpl parent = (FolderImpl)page.getParent();
+ if (parent == null)
{
// access folder by path
String pagePath = page.getPath();
@@ -949,7 +950,6 @@
{
parentPath = Folder.PATH_SEPARATOR;
}
- FolderImpl parent = null;
try
{
parent = (FolderImpl)getFolder(parentPath);
@@ -969,7 +969,10 @@
DatabasePageManagerCache.addTransaction(new
TransactionedOperation(page.getPath(), TransactionedOperation.ADD_OPERATION));
// reset parent folder pages cache
- parent.resetPages(false);
+ if (parent != null)
+ {
+ parent.resetPages(false);
+ }
// notify page manager listeners
delegator.notifyNewNode(page);
@@ -983,6 +986,15 @@
getPersistenceBrokerTemplate().store(page);
DatabasePageManagerCache.addTransaction(new
TransactionedOperation(page.getPath(),
TransactionedOperation.UPDATE_OPERATION));
+ // reset parent folder pages cache in case
+ // parent is holding an out of date copy of
+ // this page that was removed from the cache
+ // before this one was accessed
+ if (parent != null)
+ {
+ parent.resetPages(false);
+ }
+
// notify page manager listeners
delegator.notifyUpdatedNode(page);
}
@@ -1027,7 +1039,10 @@
getPersistenceBrokerTemplate().delete(page);
// reset parent folder pages cache
- parent.resetPages(false);
+ if (parent != null)
+ {
+ parent.resetPages(false);
+ }
}
else
{
@@ -1068,7 +1083,8 @@
folder = (Folder)ProxyHelper.getRealObject(folder);
// look up and set parent folder if required
- if ((folder.getParent() == null) &&
!folder.getPath().equals(Folder.PATH_SEPARATOR))
+ FolderImpl parent = (FolderImpl)folder.getParent();
+ if ((parent == null) &&
!folder.getPath().equals(Folder.PATH_SEPARATOR))
{
// access folder by path
String folderPath = folder.getPath();
@@ -1077,7 +1093,6 @@
{
parentPath = Folder.PATH_SEPARATOR;
}
- FolderImpl parent = null;
try
{
parent = (FolderImpl)getFolder(parentPath);
@@ -1097,7 +1112,10 @@
DatabasePageManagerCache.addTransaction(new
TransactionedOperation(folder.getPath(), TransactionedOperation.ADD_OPERATION));
// reset parent folder folders cache
- parent.resetFolders(false);
+ if (parent != null)
+ {
+ parent.resetFolders(false);
+ }
// notify page manager listeners
delegator.notifyNewNode(folder);
@@ -1126,6 +1144,15 @@
DatabasePageManagerCache.addTransaction(new
TransactionedOperation(folder.getPath(),
TransactionedOperation.UPDATE_OPERATION));
}
+ // reset parent folder folders cache in case
+ // parent is holding an out of date copy of
+ // this folder that was removed from the cache
+ // before this one was accessed
+ if (parent != null)
+ {
+ parent.resetFolders(false);
+ }
+
// notify page manager listeners
if (newFolder && !folder.getId().equals("0"))
{
@@ -1258,7 +1285,10 @@
getPersistenceBrokerTemplate().delete(folder);
// reset parent folder folders cache
- parent.resetPages(false);
+ if (parent != null)
+ {
+ parent.resetFolders(false);
+ }
}
else
{
@@ -1362,7 +1392,8 @@
link = (Link)ProxyHelper.getRealObject(link);
// look up and set parent folder if necessary
- if (link.getParent() == null)
+ FolderImpl parent = (FolderImpl)link.getParent();
+ if (parent == null)
{
// access folder by path
String linkPath = link.getPath();
@@ -1371,7 +1402,6 @@
{
parentPath = Folder.PATH_SEPARATOR;
}
- FolderImpl parent = null;
try
{
parent = (FolderImpl)getFolder(parentPath);
@@ -1391,7 +1421,10 @@
DatabasePageManagerCache.addTransaction(new
TransactionedOperation(link.getPath(), TransactionedOperation.ADD_OPERATION));
// reset parent folder links cache
- parent.resetLinks(false);
+ if (parent != null)
+ {
+ parent.resetLinks(false);
+ }
// notify page manager listeners
delegator.notifyNewNode(link);
@@ -1405,6 +1438,15 @@
getPersistenceBrokerTemplate().store(link);
DatabasePageManagerCache.addTransaction(new
TransactionedOperation(link.getPath(),
TransactionedOperation.UPDATE_OPERATION));
+ // reset parent folder links cache in case
+ // parent is holding an out of date copy of
+ // this link that was removed from the cache
+ // before this one was accessed
+ if (parent != null)
+ {
+ parent.resetLinks(false);
+ }
+
// notify page manager listeners
delegator.notifyUpdatedNode(link);
}
@@ -1445,7 +1487,10 @@
getPersistenceBrokerTemplate().delete(link);
// reset parent folder links cache
- parent.resetLinks(false);
+ if (parent != null)
+ {
+ parent.resetLinks(false);
+ }
}
else
{
@@ -1477,7 +1522,8 @@
pageSecurity =
(PageSecurity)ProxyHelper.getRealObject(pageSecurity);
// look up and set parent folder if necessary
- if (pageSecurity.getParent() == null)
+ FolderImpl parent = (FolderImpl)pageSecurity.getParent();
+ if (parent == null)
{
// access folder by path
String pageSecurityPath = pageSecurity.getPath();
@@ -1486,7 +1532,6 @@
{
parentPath = Folder.PATH_SEPARATOR;
}
- FolderImpl parent = null;
try
{
parent = (FolderImpl)getFolder(parentPath);
@@ -1514,7 +1559,10 @@
DatabasePageManagerCache.addTransaction(new
TransactionedOperation(pageSecurity.getPath(),
TransactionedOperation.ADD_OPERATION));
// reset parent folder page security cache
- parent.resetPageSecurity((PageSecurityImpl)pageSecurity,
true);
+ if (parent != null)
+ {
+
parent.resetPageSecurity((PageSecurityImpl)pageSecurity, true);
+ }
}
catch (Exception e)
{
@@ -1533,6 +1581,15 @@
getPersistenceBrokerTemplate().store(pageSecurity);
DatabasePageManagerCache.addTransaction(new
TransactionedOperation(pageSecurity.getPath(),
TransactionedOperation.UPDATE_OPERATION));
+ // reset parent folder page security cache in case
+ // parent is holding an out of date copy of this
+ // page security that was removed from the cache
+ // before this one was accessed
+ if (parent != null)
+ {
+ parent.resetPageSecurity((PageSecurityImpl)pageSecurity,
true);
+ }
+
// notify page manager listeners
delegator.notifyUpdatedNode(pageSecurity);
}
@@ -1576,7 +1633,10 @@
getPersistenceBrokerTemplate().delete(pageSecurity);
// reset parent folder page security cache
- parent.resetPageSecurity(null, true);
+ if (parent != null)
+ {
+ parent.resetPageSecurity(null, true);
+ }
}
else
{
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]