Merged V2.1 to HEAD

6580: AVM bulk import performance tweaks.
   6582: WCM-767, WCM-768
   6583: Fix for AWC-1528 (potential NPE in ErrorsRenderer)
   6584: Fix for AWC-1256 (Links produced by inline HTML editor are incorrect)
   6585: AR-1635: event listeners added in a beforeCommit event are now executed successfully
   6586: AR-1561 Update Web Scripts readme.html to be consistent with "Category Search Sample" (or vice-versa)
   6587: Fix for AWC-1390 (Paste all doesn't work for forum items)
   6588: AR-1701 Script getDocument call doesn't check for non-existent content
   6589: Fix for AWC-1530 - Saved search does not work for custom properties of type d:text with list constraint
   6591: Improvement for submit speed.
   6592: Removed obsolete tests.
   6594: Index tracking sample to include AVM index tracking
   6595: Added the AVM helpers methods from the FreeMarker AVM API that were missing from the JavaScript API
   6597: Rationalize post commit execution hooks for deployment receiver
   6598: Properly escape path names for ProgramRunnable.
   6599: AVM store name lookup cache is (theoretically) clusterable.
   6600: Some or other gramatically incorrect stuff about Chiba.
   6601: Fix for AR-1121 and AR-1673
   6602: AR-1655: Versioning is not MLText aware
   6603: Updated messages from lang packs
   6604: Fixed AR-1476: JCR import end element escaping
   6605: Updated Japanese lang messages


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@6746 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Derek Hulley
2007-09-11 03:03:50 +00:00
parent 19e1af2314
commit 57554088ae
33 changed files with 638 additions and 85 deletions

View File

@@ -24,14 +24,13 @@
package org.alfresco.repo.avm.hibernate;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.alfresco.repo.avm.AVMNode;
import org.alfresco.repo.avm.AVMStore;
import org.alfresco.repo.avm.AVMStoreDAO;
import org.alfresco.repo.avm.AVMStoreImpl;
import org.alfresco.repo.cache.SimpleCache;
import org.hibernate.Query;
import org.hibernate.proxy.HibernateProxy;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
@@ -46,7 +45,7 @@ class AVMStoreDAOHibernate extends HibernateDaoSupport implements
/**
* An in memory cache of name to primary key mappings.
*/
private Map<String, Long> fNameCache;
private SimpleCache<String, Long> fNameCache;
/**
* Do nothing constructor.
@@ -54,7 +53,11 @@ class AVMStoreDAOHibernate extends HibernateDaoSupport implements
public AVMStoreDAOHibernate()
{
super();
fNameCache = new HashMap<String, Long>();
}
public void setCache(SimpleCache<String, Long> cache)
{
fNameCache = cache;
}
/**
@@ -100,10 +103,7 @@ class AVMStoreDAOHibernate extends HibernateDaoSupport implements
public AVMStore getByName(String name)
{
Long id = null;
synchronized (this)
{
id = fNameCache.get(name);
}
id = fNameCache.get(name);
if (id != null)
{
return forceNonLazy((AVMStore)getSession().get(AVMStoreImpl.class, id));
@@ -112,12 +112,9 @@ class AVMStoreDAOHibernate extends HibernateDaoSupport implements
"where st.name = :name");
query.setParameter("name", name);
AVMStore result = (AVMStore)query.uniqueResult();
synchronized (this)
if (result != null)
{
if (result != null)
{
fNameCache.put(name, result.getId());
}
fNameCache.put(name, result.getId());
}
return forceNonLazy(result);
}