You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by tr...@apache.org on 2005/04/26 12:04:33 UTC
svn commit: r164770 - in
/incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core:
CachingHierarchyManager.java HierarchyManagerImpl.java ItemImpl.java
ItemManager.java NodeImpl.java state/ItemStateCache.java
Author: tripod
Date: Tue Apr 26 03:04:31 2005
New Revision: 164770
URL: http://svn.apache.org/viewcvs?rev=164770&view=rev
Log:
- minor performance improvements
Modified:
incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/CachingHierarchyManager.java
incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/HierarchyManagerImpl.java
incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/ItemImpl.java
incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/ItemManager.java
incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/NodeImpl.java
incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/state/ItemStateCache.java
Modified: incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/CachingHierarchyManager.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/CachingHierarchyManager.java?rev=164770&r1=164769&r2=164770&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/CachingHierarchyManager.java (original)
+++ incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/CachingHierarchyManager.java Tue Apr 26 03:04:31 2005
@@ -148,19 +148,8 @@
*/
public boolean isAncestor(NodeId nodeId, ItemId itemId)
throws ItemNotFoundException, RepositoryException {
- if (pathCache.containsKey(nodeId) && pathCache.containsKey(itemId)) {
- // use cached Path objects rather than calling delegatee
- try {
- return getPath(nodeId).isAncestorOf(getPath(itemId));
- } catch (MalformedPathException mpe) {
- // should never get here...
- String msg = "failed to determine degree of relationship of "
- + nodeId + " and " + itemId;
- throw new ItemNotFoundException(msg, mpe);
- }
- } else {
- return delegatee.isAncestor(nodeId, itemId);
- }
+ // do not used cached paths. calculating paths is more expesive
+ return delegatee.isAncestor(nodeId, itemId);
}
/**
Modified: incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/HierarchyManagerImpl.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/HierarchyManagerImpl.java?rev=164770&r1=164769&r2=164770&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/HierarchyManagerImpl.java (original)
+++ incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/HierarchyManagerImpl.java Tue Apr 26 03:04:31 2005
@@ -389,10 +389,10 @@
throws ItemNotFoundException, RepositoryException {
try {
int depth = 0;
- ItemState state = getItemState(id);
+ ItemState state = getItemState(id, true);
String parentUUID = state.getParentUUID();
while (parentUUID != null) {
- state = (NodeState) getItemState(new NodeId(parentUUID));
+ state = getItemState(new NodeId(parentUUID), true);
parentUUID = state.getParentUUID();
depth++;
}
@@ -517,18 +517,12 @@
*/
private ItemState getItemState(ItemId id, boolean includeZombies)
throws NoSuchItemStateException, ItemStateException {
- if (!includeZombies || attic == null) {
- // get transient/persistent state
- return provider.getItemState(id);
- }
-
- try {
+ if (includeZombies && attic != null && attic.hasItemState(id)) {
// try attic first
return attic.getItemState(id);
- } catch (NoSuchItemStateException e) {
- // fallback: get transient/persistent state
- return provider.getItemState(id);
}
+ // fallback: get transient/persistent state
+ return provider.getItemState(id);
}
/**
Modified: incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/ItemImpl.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/ItemImpl.java?rev=164770&r1=164769&r2=164770&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/ItemImpl.java (original)
+++ incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/ItemImpl.java Tue Apr 26 03:04:31 2005
@@ -365,7 +365,7 @@
if (isNode()) {
// build list of 'new' or 'modified' descendents
- Iterator iter = stateMgr.getDescendantTransientItemStates(id);
+ Iterator iter = stateMgr.getDescendantTransientItemStates((NodeId) id);
while (iter.hasNext()) {
transientState = (ItemState) iter.next();
switch (transientState.getStatus()) {
@@ -416,7 +416,7 @@
ItemState transientState;
if (isNode()) {
- Iterator iter = stateMgr.getDescendantTransientItemStatesInAttic(id);
+ Iterator iter = stateMgr.getDescendantTransientItemStatesInAttic((NodeId) id);
while (iter.hasNext()) {
transientState = (ItemState) iter.next();
// check if stale
@@ -1375,7 +1375,7 @@
if (isNode()) {
// build list of 'new', 'modified' or 'stale' descendents
- Iterator iter = stateMgr.getDescendantTransientItemStates(id);
+ Iterator iter = stateMgr.getDescendantTransientItemStates((NodeId) id);
while (iter.hasNext()) {
transientState = (ItemState) iter.next();
switch (transientState.getStatus()) {
@@ -1405,14 +1405,16 @@
stateMgr.disposeTransientItemState(transientState);
}
- // discard all transient descendents in the attic (i.e. those marked
- // as 'removed'); this will resurrect the removed items
- iter = stateMgr.getDescendantTransientItemStatesInAttic(id);
- while (iter.hasNext()) {
- transientState = (ItemState) iter.next();
- // dispose the transient state; this will indirectly (through
- // stateDiscarded listener method) resurrect the wrapping Item instances
- stateMgr.disposeTransientItemStateInAttic(transientState);
+ if (isNode()) {
+ // discard all transient descendents in the attic (i.e. those marked
+ // as 'removed'); this will resurrect the removed items
+ iter = stateMgr.getDescendantTransientItemStatesInAttic((NodeId) id);
+ while (iter.hasNext()) {
+ transientState = (ItemState) iter.next();
+ // dispose the transient state; this will indirectly (through
+ // stateDiscarded listener method) resurrect the wrapping Item instances
+ stateMgr.disposeTransientItemStateInAttic(transientState);
+ }
}
}
Modified: incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/ItemManager.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/ItemManager.java?rev=164770&r1=164769&r2=164770&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/ItemManager.java (original)
+++ incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/ItemManager.java Tue Apr 26 03:04:31 2005
@@ -613,7 +613,9 @@
if (itemCache.containsKey(id)) {
log.warn("overwriting cached item " + id);
}
- log.debug("caching item " + id);
+ if (log.isDebugEnabled()) {
+ log.debug("caching item " + id);
+ }
itemCache.put(id, item);
}
@@ -623,7 +625,9 @@
* @param id id of the item to remove from the cache
*/
private void evictItem(ItemId id) {
- log.debug("removing item " + id + " from cache");
+ if (log.isDebugEnabled()) {
+ log.debug("removing item " + id + " from cache");
+ }
itemCache.remove(id);
}
@@ -667,7 +671,9 @@
* {@inheritDoc}
*/
public void itemCreated(ItemImpl item) {
- log.debug("created item " + item.getId());
+ if (log.isDebugEnabled()) {
+ log.debug("created item " + item.getId());
+ }
// add instance to cache
cacheItem(item);
}
@@ -676,7 +682,9 @@
* {@inheritDoc}
*/
public void itemInvalidated(ItemId id, ItemImpl item) {
- log.debug("invalidated item " + id);
+ if (log.isDebugEnabled()) {
+ log.debug("invalidated item " + id);
+ }
// remove instance from cache
evictItem(id);
}
@@ -685,7 +693,9 @@
* {@inheritDoc}
*/
public void itemDestroyed(ItemId id, ItemImpl item) {
- log.debug("destroyed item " + id);
+ if (log.isDebugEnabled()) {
+ log.debug("destroyed item " + id);
+ }
// we're no longer interested in this item
item.removeLifeCycleListener(this);
// remove instance from cache
Modified: incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/NodeImpl.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/NodeImpl.java?rev=164770&r1=164769&r2=164770&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/NodeImpl.java (original)
+++ incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/NodeImpl.java Tue Apr 26 03:04:31 2005
@@ -255,7 +255,7 @@
if (isTransient()) {
return true;
}
- Iterator iter = stateMgr.getDescendantTransientItemStates(id);
+ Iterator iter = stateMgr.getDescendantTransientItemStates((NodeId) id);
return iter.hasNext();
}
Modified: incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/state/ItemStateCache.java
URL: http://svn.apache.org/viewcvs/incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/state/ItemStateCache.java?rev=164770&r1=164769&r2=164770&view=diff
==============================================================================
--- incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/state/ItemStateCache.java (original)
+++ incubator/jackrabbit/trunk/src/java/org/apache/jackrabbit/core/state/ItemStateCache.java Tue Apr 26 03:04:31 2005
@@ -102,7 +102,9 @@
if (cache.containsKey(id)) {
log.warn("overwriting cached entry " + id);
}
- log.debug("caching " + id);
+ if (log.isDebugEnabled()) {
+ log.debug("caching " + id);
+ }
cache.put(id, state);
}
@@ -113,7 +115,9 @@
* reference should be removed from the cache.
*/
protected void evict(ItemId id) {
- log.debug("removing entry " + id + " from cache");
+ if (log.isDebugEnabled()) {
+ log.debug("removing entry " + id + " from cache");
+ }
cache.remove(id);
}
@@ -121,7 +125,9 @@
* Clears all entries from the cache.
*/
protected void evictAll() {
- log.debug("removing all entries from cache");
+ if (log.isDebugEnabled()) {
+ log.debug("removing all entries from cache");
+ }
cache.clear();
}