You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2013/11/21 10:51:46 UTC

svn commit: r1544077 - /syncope/branches/1_1_X/core/src/main/java/org/apache/syncope/core/sync/impl/SyncJob.java

Author: ilgrosso
Date: Thu Nov 21 09:51:46 2013
New Revision: 1544077

URL: http://svn.apache.org/r1544077
Log:
[SYNCOPE-440] Calling getLastSyncToken() before actual sync()

Modified:
    syncope/branches/1_1_X/core/src/main/java/org/apache/syncope/core/sync/impl/SyncJob.java

Modified: syncope/branches/1_1_X/core/src/main/java/org/apache/syncope/core/sync/impl/SyncJob.java
URL: http://svn.apache.org/viewvc/syncope/branches/1_1_X/core/src/main/java/org/apache/syncope/core/sync/impl/SyncJob.java?rev=1544077&r1=1544076&r2=1544077&view=diff
==============================================================================
--- syncope/branches/1_1_X/core/src/main/java/org/apache/syncope/core/sync/impl/SyncJob.java (original)
+++ syncope/branches/1_1_X/core/src/main/java/org/apache/syncope/core/sync/impl/SyncJob.java Thu Nov 21 09:51:46 2013
@@ -46,6 +46,7 @@ import org.apache.syncope.core.sync.Sync
 import org.apache.syncope.core.util.ApplicationContextProvider;
 import org.apache.syncope.core.workflow.role.RoleWorkflowAdapter;
 import org.identityconnectors.framework.common.objects.ObjectClass;
+import org.identityconnectors.framework.common.objects.SyncToken;
 import org.quartz.JobExecutionException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.support.AbstractBeanDefinition;
@@ -386,7 +387,7 @@ public class SyncJob extends AbstractTas
         final SyncopeSyncResultHandler handler =
                 (SyncopeSyncResultHandler) ((DefaultListableBeanFactory) ApplicationContextProvider.
                 getApplicationContext().getBeanFactory()).createBean(
-                SyncopeSyncResultHandler.class, AbstractBeanDefinition.AUTOWIRE_BY_NAME, false);
+                        SyncopeSyncResultHandler.class, AbstractBeanDefinition.AUTOWIRE_BY_NAME, false);
         handler.setConnector(connector);
         handler.setActions(actions);
         handler.setDryRun(dryRun);
@@ -396,6 +397,15 @@ public class SyncJob extends AbstractTas
 
         actions.beforeAll(handler);
         try {
+            SyncToken latestUSyncToken = null;
+            if (uMapping != null && !syncTask.isFullReconciliation()) {
+                latestUSyncToken = connector.getLatestSyncToken(ObjectClass.ACCOUNT);
+            }
+            SyncToken latestRSyncToken = null;
+            if (rMapping != null && !syncTask.isFullReconciliation()) {
+                latestRSyncToken = connector.getLatestSyncToken(ObjectClass.GROUP);
+            }
+
             if (syncTask.isFullReconciliation()) {
                 if (uMapping != null) {
                     connector.getAllObjects(ObjectClass.ACCOUNT, handler,
@@ -420,10 +430,10 @@ public class SyncJob extends AbstractTas
                 try {
                     ExternalResource resource = resourceDAO.find(syncTask.getResource().getName());
                     if (uMapping != null) {
-                        resource.setUsyncToken(connector.getLatestSyncToken(ObjectClass.ACCOUNT));
+                        resource.setUsyncToken(latestUSyncToken);
                     }
                     if (rMapping != null) {
-                        resource.setRsyncToken(connector.getLatestSyncToken(ObjectClass.GROUP));
+                        resource.setRsyncToken(latestRSyncToken);
                     }
                     resourceDAO.save(resource);
                 } catch (Exception e) {