Author: bpapez
Date: Sat Nov 17 22:00:42 2007
New Revision: 19207

URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D19207&repname=
=3Djahia
Log:
Prevent calling the getReverseObjectXRefs two times

Modified:
    branches/JAHIA-4-1-BRANCH/src/java/org/jahia/engines/core/Core_Engine.j=
ava

Modified: branches/JAHIA-4-1-BRANCH/src/java/org/jahia/engines/core/Core_En=
gine.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/branches/JAHIA-4-1-BR=
ANCH/src/java/org/jahia/engines/core/Core_Engine.java&rev=3D19207&repname=
=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- branches/JAHIA-4-1-BRANCH/src/java/org/jahia/engines/core/Core_Engine.j=
ava (original)
+++ branches/JAHIA-4-1-BRANCH/src/java/org/jahia/engines/core/Core_Engine.j=
ava Sat Nov 17 22:00:42 2007
@@ -22,9 +22,14 @@
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.Set;
+import java.util.TreeSet;
 =

+import org.jahia.content.ContentContainerListKey;
 import org.jahia.content.ContentContainerListsXRefManager;
+import org.jahia.content.ContentFieldKey;
 import org.jahia.content.ContentFieldXRefManager;
+import org.jahia.content.ContentPageKey;
+import org.jahia.content.CrossReferenceManager;
 import org.jahia.content.ObjectKey;
 import org.jahia.data.JahiaData;
 import org.jahia.data.events.JahiaEvent;
@@ -283,10 +288,24 @@
         // now we must compare it to the database store to see if there are
         // differences, and if so update the database...
 =

-        Set fieldKeys =3D ContentFieldXRefManager.getInstance ().getAbsolu=
teFieldsFromPageID (
-                jData.params ().getPageID ());
-        Set containerListKeys =3D ContentContainerListsXRefManager.getInst=
ance ()
-                .getAbsoluteContainerListsFromPageID (jData.params ().getP=
ageID ());
+        Set fieldKeys =3D new TreeSet();
+        Set containerListKeys =3D new TreeSet();
+
+        ContentPageKey pageKey =3D new ContentPageKey( jData.getParamBean(=
).getPageID() );
+        Set objectRefs =3D CrossReferenceManager.getInstance().getReverseO=
bjectXRefs(pageKey);
+        if (objectRefs !=3D null) {
+            Iterator objectRefIter =3D objectRefs.iterator();
+            while (objectRefIter.hasNext()) {
+                Object source =3D objectRefIter.next();
+                if (source instanceof ContentContainerListKey) {
+                    containerListKeys.add(source);
+                } else if (source instanceof ContentFieldKey) {
+                    fieldKeys.add(source);
+                } else {
+                    logger.debug("Invalid key object in cross reference li=
st, ignoring... ");
+                }
+            }
+        }
 =

         // first let's convert the keys into IDs.
         Set databaseAbsoluteFieldIDs =3D new HashSet ();

_______________________________________________
cvs_list mailing list
[email protected]
http://lists.jahia.org/cgi-bin/mailman/listinfo/cvs_list

Reply via email to