Author: areshetnyak
Date: 2009-11-13 12:17:55 -0500 (Fri, 13 Nov 2009)
New Revision: 666
Modified:
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jbosscache/JDBCCacheLoader.java
Log:
EXOJCR-201 : The JDBCCacheLoader was changed.
Modified:
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jbosscache/JDBCCacheLoader.java
===================================================================
---
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jbosscache/JDBCCacheLoader.java 2009-11-13
16:54:22 UTC (rev 665)
+++
jcr/branches/1.12.0-JBC/component/core/src/main/java/org/exoplatform/services/jcr/impl/storage/jbosscache/JDBCCacheLoader.java 2009-11-13
17:17:55 UTC (rev 666)
@@ -18,14 +18,20 @@
*/
package org.exoplatform.services.jcr.impl.storage.jbosscache;
+import java.util.LinkedHashMap;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import javax.jcr.RepositoryException;
+
import org.exoplatform.services.jcr.config.RepositoryConfigurationException;
import org.exoplatform.services.jcr.datamodel.IllegalNameException;
import org.exoplatform.services.jcr.datamodel.ItemData;
import org.exoplatform.services.jcr.datamodel.NodeData;
import org.exoplatform.services.jcr.datamodel.PropertyData;
import org.exoplatform.services.jcr.datamodel.QPathEntry;
-import org.exoplatform.services.jcr.impl.Constants;
-import
org.exoplatform.services.jcr.impl.storage.jbosscache.ModificationEx.JCROperaionType;
import org.exoplatform.services.jcr.impl.storage.jdbc.JDBCStorageConnection;
import org.exoplatform.services.jcr.storage.WorkspaceDataContainer;
import org.exoplatform.services.jcr.storage.WorkspaceStorageConnection;
@@ -39,14 +45,6 @@
import org.jboss.cache.factories.annotations.Inject;
import org.jboss.cache.loader.AbstractCacheLoader;
-import java.util.LinkedHashMap;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import javax.jcr.RepositoryException;
-
/**
* Created by The eXo Platform SAS.
*
@@ -244,51 +242,56 @@
*/
private void prepareModifications(List<Modification> modifications) throws
RepositoryException
{
-
JDBCStorageConnection jdbcConnection = (JDBCStorageConnection)
dataContainer.openConnection();
- for (int i = 0; i < modifications.size(); i++)
- {
- Modification m = modifications.get(i);
- if (m.getType() == ModificationType.PUT_KEY_VALUE)
+ try {
+ for (int i = 0; i < modifications.size(); i++)
{
- ItemData itemData = null;
-
- //Check add or update node data.
- if (m.getValue() instanceof NodeData)
+ Modification m = modifications.get(i);
+ if (m.getType() == ModificationType.PUT_KEY_VALUE)
{
- NodeData nodeData = (NodeData) m.getValue();
- itemData = jdbcConnection.getItemData(nodeData.getIdentifier());
-
- // Set oldValueData for update node.
- if (itemData != null)
- modifications.get(i).setOldValue(itemData);
+ ItemData itemData = null;
+
+ //Check add or update node data.
+ if (m.getValue() instanceof NodeData)
+ {
+ NodeData nodeData = (NodeData) m.getValue();
+ itemData = jdbcConnection.getItemData(nodeData.getIdentifier());
+
+ // Set oldValueData for update node.
+ if (itemData != null)
+ modifications.get(i).setOldValue(itemData);
+ }
+ else if (m.getValue() instanceof PropertyData)
+ {
+ PropertyData propertyData = (PropertyData) m.getValue();
+ itemData = jdbcConnection.getItemData(propertyData.getIdentifier());
+
+ // Set oldValueData for update property.
+ if (itemData != null)
+ modifications.get(i).setOldValue(itemData);
+ }
}
- else if (m.getValue() instanceof PropertyData)
+ else if (m.getType() == ModificationType.REMOVE_NODE)
{
- PropertyData propertyData = (PropertyData) m.getValue();
- itemData = jdbcConnection.getItemData(propertyData.getIdentifier());
-
- // Set oldValueData for update property.
- if (itemData != null)
- modifications.get(i).setOldValue(itemData);
- }
- }
- else if (m.getType() == ModificationType.REMOVE_NODE)
- {
- if (m.getFqn().size() == 2
- && (m.getFqn().get(0).equals(JBossCacheStorage.NODES)
- || m.getFqn().get(0).equals(JBossCacheStorage.PROPS)))
- {
- String id = (String) m.getFqn().get(1);
- ItemData removedItemData = jdbcConnection.getItemData(id);
-
- // Set valueData for update property or node.
- if (removedItemData != null)
- modifications.get(i).setValue(removedItemData);
+ if (m.getFqn().size() == 2
+ && (m.getFqn().get(0).equals(JBossCacheStorage.NODES)
+ || m.getFqn().get(0).equals(JBossCacheStorage.PROPS)))
+ {
+ String id = (String) m.getFqn().get(1);
+ ItemData removedItemData = jdbcConnection.getItemData(id);
+
+ // Set valueData for update property or node.
+ if (removedItemData != null)
+ modifications.get(i).setValue(removedItemData);
+ }
}
}
}
+ finally
+ {
+ jdbcConnection.close();
+ }
}
protected QPathEntry[] makeNodePath(Fqn<String> nodeFqn) throws
NumberFormatException, IllegalNameException
@@ -339,7 +342,7 @@
}
finally
{
- conn.close();
+ conn.close();
}
}
// /$NODES/<NODE_ID>/<SUB_NODE_NAME>
Show replies by date