From a887a9fc3d9877563d3d6fa1e14b69e0aa53bb54 Mon Sep 17 00:00:00 2001 From: Marios Hadjimichael Date: Wed, 12 Oct 2016 21:08:59 -0700 Subject: [PATCH 1/6] ExperimentHubMigrationJob: Only loop through public experiments, and also handle npe exception for date parsing --- .../jobs/ExperimentHubMigrationJob.java | 37 ++++++++++++------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/Paco-Server/src/com/google/sampling/experiential/server/migration/jobs/ExperimentHubMigrationJob.java b/Paco-Server/src/com/google/sampling/experiential/server/migration/jobs/ExperimentHubMigrationJob.java index f0b0ce737..f852daabe 100644 --- a/Paco-Server/src/com/google/sampling/experiential/server/migration/jobs/ExperimentHubMigrationJob.java +++ b/Paco-Server/src/com/google/sampling/experiential/server/migration/jobs/ExperimentHubMigrationJob.java @@ -8,6 +8,15 @@ import java.util.List; import java.util.logging.Logger; +import com.google.appengine.api.datastore.DatastoreService; +import com.google.appengine.api.datastore.DatastoreServiceFactory; +import com.google.appengine.api.datastore.Key; +import com.google.appengine.api.datastore.KeyFactory; +import com.google.appengine.api.datastore.Entity; +import com.google.appengine.api.datastore.Transaction; +import com.google.appengine.api.datastore.TransactionOptions; + + import com.google.sampling.experiential.server.ExperimentServiceFactory; import com.pacoapp.paco.shared.model2.*; @@ -25,8 +34,7 @@ public class ExperimentHubMigrationJob implements MigrationJob { public boolean doMigrationPublicExperiments(){ //1. Loop through public experiments and fill in "modify_date" - - ExperimentQueryResult experimentsQueryResults = ExperimentServiceFactory.getExperimentService().getAllExperiments(null); + ExperimentQueryResult experimentsQueryResults = ExperimentServiceFactory.getExperimentService().getExperimentsPublishedPublicly(null, null, null, null); List experimentList = experimentsQueryResults.getExperiments(); if (experimentList != null) { @@ -34,19 +42,20 @@ public boolean doMigrationPublicExperiments(){ List> experimentsWithModifyDates = Lists.newArrayList(); for (ExperimentDAO e : experimentList) { - if (e.getPublished()) { - Date date; - try{ - date = df.parse(e.getModifyDate()); - }catch(ParseException ex){ - log.info("Could not parse date for " + e.getId() + " " + ex.toString()); - date = new Date(); //fallback to "now" - } - - experimentsWithModifyDates.add( - new Pair(e.getId(), date) - ); + Date date; + try{ + date = df.parse(e.getModifyDate()); + }catch(ParseException ex){ + log.info("Could not parse date for " + e.getId() + " " + ex.toString()); + date = new Date(); //fallback to "now" + }catch(NullPointerException ex){ + log.info("Could not parse date (npe) for " + e.getId() + " " + ex.toString()); + date = new Date(); //fallback to "now" } + + experimentsWithModifyDates.add( + new Pair(e.getId(), date) + ); } updateDatastore(experimentsWithModifyDates); From 5f6f8f1e8c6097d6c8adcbfeb7f162e794edbe76 Mon Sep 17 00:00:00 2001 From: Marios Hadjimichael Date: Wed, 12 Oct 2016 23:10:27 -0700 Subject: [PATCH 2/6] ExperimentHubMigration: Fixed null date npe when getting all public experiments --- .../migration/jobs/ExperimentHubMigrationJob.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/Paco-Server/src/com/google/sampling/experiential/server/migration/jobs/ExperimentHubMigrationJob.java b/Paco-Server/src/com/google/sampling/experiential/server/migration/jobs/ExperimentHubMigrationJob.java index f852daabe..611c09969 100644 --- a/Paco-Server/src/com/google/sampling/experiential/server/migration/jobs/ExperimentHubMigrationJob.java +++ b/Paco-Server/src/com/google/sampling/experiential/server/migration/jobs/ExperimentHubMigrationJob.java @@ -8,6 +8,9 @@ import java.util.List; import java.util.logging.Logger; +import org.joda.time.DateTime; +import org.joda.time.DateTimeZone; + import com.google.appengine.api.datastore.DatastoreService; import com.google.appengine.api.datastore.DatastoreServiceFactory; import com.google.appengine.api.datastore.Key; @@ -34,7 +37,8 @@ public class ExperimentHubMigrationJob implements MigrationJob { public boolean doMigrationPublicExperiments(){ //1. Loop through public experiments and fill in "modify_date" - ExperimentQueryResult experimentsQueryResults = ExperimentServiceFactory.getExperimentService().getExperimentsPublishedPublicly(null, null, null, null); + + ExperimentQueryResult experimentsQueryResults = ExperimentServiceFactory.getExperimentService().getExperimentsPublishedPublicly(DateTimeZone.getDefault(), null, null, null); List experimentList = experimentsQueryResults.getExperiments(); if (experimentList != null) { @@ -43,12 +47,12 @@ public boolean doMigrationPublicExperiments(){ for (ExperimentDAO e : experimentList) { Date date; - try{ + try { date = df.parse(e.getModifyDate()); - }catch(ParseException ex){ + } catch (ParseException ex) { log.info("Could not parse date for " + e.getId() + " " + ex.toString()); date = new Date(); //fallback to "now" - }catch(NullPointerException ex){ + } catch (NullPointerException ex) { log.info("Could not parse date (npe) for " + e.getId() + " " + ex.toString()); date = new Date(); //fallback to "now" } @@ -65,7 +69,7 @@ public boolean doMigrationPublicExperiments(){ HubStatsCronJob cj = new HubStatsCronJob(); try { cj.run(); - }catch(IOException e){ + } catch (IOException e) { log.warning("Exception occurred while running the HubStatsCronJob during Migration: " + e.toString()); } From c0e154f8ae2dcd6ce6a2636c01e6e30ed28cb9d0 Mon Sep 17 00:00:00 2001 From: Marios Hadjimichael Date: Wed, 12 Oct 2016 23:27:00 -0700 Subject: [PATCH 3/6] Merging ExperimentHubMigrationJob changes from Bob (mostly logging) --- .../jobs/ExperimentHubMigrationJob.java | 30 ++-- .../jobs/ExperimentHubMigrationJob.java.orig | 148 ++++++++++++++++++ 2 files changed, 164 insertions(+), 14 deletions(-) create mode 100644 Paco-Server/src/com/google/sampling/experiential/server/migration/jobs/ExperimentHubMigrationJob.java.orig diff --git a/Paco-Server/src/com/google/sampling/experiential/server/migration/jobs/ExperimentHubMigrationJob.java b/Paco-Server/src/com/google/sampling/experiential/server/migration/jobs/ExperimentHubMigrationJob.java index 611c09969..efe02b1db 100644 --- a/Paco-Server/src/com/google/sampling/experiential/server/migration/jobs/ExperimentHubMigrationJob.java +++ b/Paco-Server/src/com/google/sampling/experiential/server/migration/jobs/ExperimentHubMigrationJob.java @@ -1,36 +1,32 @@ package com.google.sampling.experiential.server.migration.jobs; import java.io.IOException; +import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; -import java.text.DateFormat; import java.util.List; import java.util.logging.Logger; -import org.joda.time.DateTime; -import org.joda.time.DateTimeZone; - import com.google.appengine.api.datastore.DatastoreService; import com.google.appengine.api.datastore.DatastoreServiceFactory; +import com.google.appengine.api.datastore.Entity; import com.google.appengine.api.datastore.Key; import com.google.appengine.api.datastore.KeyFactory; -import com.google.appengine.api.datastore.Entity; import com.google.appengine.api.datastore.Transaction; import com.google.appengine.api.datastore.TransactionOptions; - - -import com.google.sampling.experiential.server.ExperimentServiceFactory; -import com.pacoapp.paco.shared.model2.*; - import com.google.common.collect.Lists; +import com.google.sampling.experiential.server.ExperimentServiceFactory; import com.google.sampling.experiential.server.migration.MigrationJob; +import com.google.sampling.experiential.server.stats.hub.HubStatsCronJob; import com.google.sampling.experiential.shared.TimeUtil; -import com.google.sampling.experiential.server.hub.HubStatsCronJob; +import com.pacoapp.paco.shared.model2.ExperimentDAO; +import com.pacoapp.paco.shared.model2.ExperimentQueryResult; +import com.pacoapp.paco.shared.model2.Pair; public class ExperimentHubMigrationJob implements MigrationJob { - public static final Logger log = Logger.getLogger(EventStatsCounterMigrationJob.class.getName()); + public static final Logger log = Logger.getLogger(ExperimentHubMigrationJob.class.getName()); public static String PUBLIC_EXPERIMENT_KIND = "public_experiment"; private static final String MODIFY_DATE_PROPERTY ="modify_date"; @@ -40,8 +36,10 @@ public boolean doMigrationPublicExperiments(){ ExperimentQueryResult experimentsQueryResults = ExperimentServiceFactory.getExperimentService().getExperimentsPublishedPublicly(DateTimeZone.getDefault(), null, null, null); List experimentList = experimentsQueryResults.getExperiments(); + log.fine("HbMigration retrieved " + experimentList.size() + "experiments"); if (experimentList != null) { + int modifiedExperimentCount = 0; DateFormat df = new SimpleDateFormat(TimeUtil.DATE_FORMAT); List> experimentsWithModifyDates = Lists.newArrayList(); @@ -52,16 +50,18 @@ public boolean doMigrationPublicExperiments(){ } catch (ParseException ex) { log.info("Could not parse date for " + e.getId() + " " + ex.toString()); date = new Date(); //fallback to "now" + modifiedExperimentCount++; } catch (NullPointerException ex) { log.info("Could not parse date (npe) for " + e.getId() + " " + ex.toString()); date = new Date(); //fallback to "now" + modifiedExperimentCount++; } experimentsWithModifyDates.add( new Pair(e.getId(), date) ); } - + log.fine("Added modifyDates to " + modifiedExperimentCount + " experiments"); updateDatastore(experimentsWithModifyDates); } @@ -77,12 +77,13 @@ public boolean doMigrationPublicExperiments(){ } private void updateDatastore(List> experimentsWithModifyDates){ + log.fine("Updating modified experiments"); DatastoreService ds = DatastoreServiceFactory.getDatastoreService(); TransactionOptions options = TransactionOptions.Builder.withXG(true); final int bucketSize = 5; int count = 0; - Transaction tx = tx = ds.beginTransaction(options); + Transaction tx = ds.beginTransaction(options); try { for (Pair curExp : experimentsWithModifyDates) { count++; @@ -104,6 +105,7 @@ private void updateDatastore(List> experimentsWithModifyDates){ tx.rollback(); } } + log.fine("Finished ExperimentHub migration"); } @Override diff --git a/Paco-Server/src/com/google/sampling/experiential/server/migration/jobs/ExperimentHubMigrationJob.java.orig b/Paco-Server/src/com/google/sampling/experiential/server/migration/jobs/ExperimentHubMigrationJob.java.orig new file mode 100644 index 000000000..a609c8725 --- /dev/null +++ b/Paco-Server/src/com/google/sampling/experiential/server/migration/jobs/ExperimentHubMigrationJob.java.orig @@ -0,0 +1,148 @@ +package com.google.sampling.experiential.server.migration.jobs; + +import java.io.IOException; +import java.text.DateFormat; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; +import java.util.logging.Logger; + +<<<<<<< HEAD +import org.joda.time.DateTime; +import org.joda.time.DateTimeZone; + +import com.google.appengine.api.datastore.DatastoreService; +import com.google.appengine.api.datastore.DatastoreServiceFactory; +import com.google.appengine.api.datastore.Key; +import com.google.appengine.api.datastore.KeyFactory; +import com.google.appengine.api.datastore.Entity; +import com.google.appengine.api.datastore.Transaction; +import com.google.appengine.api.datastore.TransactionOptions; + + +import com.google.sampling.experiential.server.ExperimentServiceFactory; +import com.pacoapp.paco.shared.model2.*; + +======= +import com.google.appengine.api.datastore.DatastoreService; +import com.google.appengine.api.datastore.DatastoreServiceFactory; +import com.google.appengine.api.datastore.Entity; +import com.google.appengine.api.datastore.Key; +import com.google.appengine.api.datastore.KeyFactory; +import com.google.appengine.api.datastore.Transaction; +import com.google.appengine.api.datastore.TransactionOptions; +>>>>>>> develop +import com.google.common.collect.Lists; +import com.google.sampling.experiential.server.ExperimentServiceFactory; +import com.google.sampling.experiential.server.migration.MigrationJob; +import com.google.sampling.experiential.server.stats.hub.HubStatsCronJob; +import com.google.sampling.experiential.shared.TimeUtil; +import com.pacoapp.paco.shared.model2.ExperimentDAO; +import com.pacoapp.paco.shared.model2.ExperimentQueryResult; +import com.pacoapp.paco.shared.model2.Pair; + +public class ExperimentHubMigrationJob implements MigrationJob { + + public static final Logger log = Logger.getLogger(ExperimentHubMigrationJob.class.getName()); + + public static String PUBLIC_EXPERIMENT_KIND = "public_experiment"; + private static final String MODIFY_DATE_PROPERTY ="modify_date"; + + public boolean doMigrationPublicExperiments(){ + //1. Loop through public experiments and fill in "modify_date" + + ExperimentQueryResult experimentsQueryResults = ExperimentServiceFactory.getExperimentService().getExperimentsPublishedPublicly(DateTimeZone.getDefault(), null, null, null); + List experimentList = experimentsQueryResults.getExperiments(); + log.fine("HbMigration retrieved " + experimentList.size() + "experiments"); + + if (experimentList != null) { + int modifiedExperimentCount = 0; + DateFormat df = new SimpleDateFormat(TimeUtil.DATE_FORMAT); + List> experimentsWithModifyDates = Lists.newArrayList(); + + for (ExperimentDAO e : experimentList) { +<<<<<<< HEAD + Date date; + try { + date = df.parse(e.getModifyDate()); + } catch (ParseException ex) { + log.info("Could not parse date for " + e.getId() + " " + ex.toString()); + date = new Date(); //fallback to "now" + } catch (NullPointerException ex) { + log.info("Could not parse date (npe) for " + e.getId() + " " + ex.toString()); + date = new Date(); //fallback to "now" +======= + if (e.getPublished()) { + Date date; + try{ + date = df.parse(e.getModifyDate()); + }catch(ParseException ex){ + log.info("Could not parse date for " + e.getId() + " " + ex.toString()); + date = new Date(); //fallback to "now" + modifiedExperimentCount++; + } + + experimentsWithModifyDates.add( + new Pair(e.getId(), date) + ); +>>>>>>> develop + } + + experimentsWithModifyDates.add( + new Pair(e.getId(), date) + ); + } + log.fine("Added modifyDates to " + modifiedExperimentCount + " experiments"); + updateDatastore(experimentsWithModifyDates); + } + + //2. Run cron job to count participants in each experiment + HubStatsCronJob cj = new HubStatsCronJob(); + try { + cj.run(); + } catch (IOException e) { + log.warning("Exception occurred while running the HubStatsCronJob during Migration: " + e.toString()); + } + + return true; + } + + private void updateDatastore(List> experimentsWithModifyDates){ + log.fine("Updating modified experiments"); + DatastoreService ds = DatastoreServiceFactory.getDatastoreService(); + TransactionOptions options = TransactionOptions.Builder.withXG(true); + + final int bucketSize = 5; + int count = 0; + Transaction tx = ds.beginTransaction(options); + try { + for (Pair curExp : experimentsWithModifyDates) { + count++; + Key key = KeyFactory.createKey(PUBLIC_EXPERIMENT_KIND, curExp.first); + Entity entity = ds.get(key); + entity.setProperty(MODIFY_DATE_PROPERTY, curExp.second); + ds.put(entity); + if(count % bucketSize == 0){ + tx.commit(); + tx = ds.beginTransaction(options); + } + } + tx.commit(); + } catch (Exception e) { + e.printStackTrace(); + throw new IllegalStateException(e); + } finally { + if (tx.isActive()) { + tx.rollback(); + } + } + log.fine("Finished ExperimentHub migration"); + } + + @Override + public boolean doMigration() { + return doMigrationPublicExperiments(); + } + +} From bf1211fcefeb0cb431a00310e9a09f296310b2bc Mon Sep 17 00:00:00 2001 From: Marios Hadjimichael Date: Wed, 12 Oct 2016 23:31:47 -0700 Subject: [PATCH 4/6] Deleted old ExperimentHubMigrationJob.java.orig (pre-merge) --- .../jobs/ExperimentHubMigrationJob.java.orig | 148 ------------------ 1 file changed, 148 deletions(-) delete mode 100644 Paco-Server/src/com/google/sampling/experiential/server/migration/jobs/ExperimentHubMigrationJob.java.orig diff --git a/Paco-Server/src/com/google/sampling/experiential/server/migration/jobs/ExperimentHubMigrationJob.java.orig b/Paco-Server/src/com/google/sampling/experiential/server/migration/jobs/ExperimentHubMigrationJob.java.orig deleted file mode 100644 index a609c8725..000000000 --- a/Paco-Server/src/com/google/sampling/experiential/server/migration/jobs/ExperimentHubMigrationJob.java.orig +++ /dev/null @@ -1,148 +0,0 @@ -package com.google.sampling.experiential.server.migration.jobs; - -import java.io.IOException; -import java.text.DateFormat; -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.List; -import java.util.logging.Logger; - -<<<<<<< HEAD -import org.joda.time.DateTime; -import org.joda.time.DateTimeZone; - -import com.google.appengine.api.datastore.DatastoreService; -import com.google.appengine.api.datastore.DatastoreServiceFactory; -import com.google.appengine.api.datastore.Key; -import com.google.appengine.api.datastore.KeyFactory; -import com.google.appengine.api.datastore.Entity; -import com.google.appengine.api.datastore.Transaction; -import com.google.appengine.api.datastore.TransactionOptions; - - -import com.google.sampling.experiential.server.ExperimentServiceFactory; -import com.pacoapp.paco.shared.model2.*; - -======= -import com.google.appengine.api.datastore.DatastoreService; -import com.google.appengine.api.datastore.DatastoreServiceFactory; -import com.google.appengine.api.datastore.Entity; -import com.google.appengine.api.datastore.Key; -import com.google.appengine.api.datastore.KeyFactory; -import com.google.appengine.api.datastore.Transaction; -import com.google.appengine.api.datastore.TransactionOptions; ->>>>>>> develop -import com.google.common.collect.Lists; -import com.google.sampling.experiential.server.ExperimentServiceFactory; -import com.google.sampling.experiential.server.migration.MigrationJob; -import com.google.sampling.experiential.server.stats.hub.HubStatsCronJob; -import com.google.sampling.experiential.shared.TimeUtil; -import com.pacoapp.paco.shared.model2.ExperimentDAO; -import com.pacoapp.paco.shared.model2.ExperimentQueryResult; -import com.pacoapp.paco.shared.model2.Pair; - -public class ExperimentHubMigrationJob implements MigrationJob { - - public static final Logger log = Logger.getLogger(ExperimentHubMigrationJob.class.getName()); - - public static String PUBLIC_EXPERIMENT_KIND = "public_experiment"; - private static final String MODIFY_DATE_PROPERTY ="modify_date"; - - public boolean doMigrationPublicExperiments(){ - //1. Loop through public experiments and fill in "modify_date" - - ExperimentQueryResult experimentsQueryResults = ExperimentServiceFactory.getExperimentService().getExperimentsPublishedPublicly(DateTimeZone.getDefault(), null, null, null); - List experimentList = experimentsQueryResults.getExperiments(); - log.fine("HbMigration retrieved " + experimentList.size() + "experiments"); - - if (experimentList != null) { - int modifiedExperimentCount = 0; - DateFormat df = new SimpleDateFormat(TimeUtil.DATE_FORMAT); - List> experimentsWithModifyDates = Lists.newArrayList(); - - for (ExperimentDAO e : experimentList) { -<<<<<<< HEAD - Date date; - try { - date = df.parse(e.getModifyDate()); - } catch (ParseException ex) { - log.info("Could not parse date for " + e.getId() + " " + ex.toString()); - date = new Date(); //fallback to "now" - } catch (NullPointerException ex) { - log.info("Could not parse date (npe) for " + e.getId() + " " + ex.toString()); - date = new Date(); //fallback to "now" -======= - if (e.getPublished()) { - Date date; - try{ - date = df.parse(e.getModifyDate()); - }catch(ParseException ex){ - log.info("Could not parse date for " + e.getId() + " " + ex.toString()); - date = new Date(); //fallback to "now" - modifiedExperimentCount++; - } - - experimentsWithModifyDates.add( - new Pair(e.getId(), date) - ); ->>>>>>> develop - } - - experimentsWithModifyDates.add( - new Pair(e.getId(), date) - ); - } - log.fine("Added modifyDates to " + modifiedExperimentCount + " experiments"); - updateDatastore(experimentsWithModifyDates); - } - - //2. Run cron job to count participants in each experiment - HubStatsCronJob cj = new HubStatsCronJob(); - try { - cj.run(); - } catch (IOException e) { - log.warning("Exception occurred while running the HubStatsCronJob during Migration: " + e.toString()); - } - - return true; - } - - private void updateDatastore(List> experimentsWithModifyDates){ - log.fine("Updating modified experiments"); - DatastoreService ds = DatastoreServiceFactory.getDatastoreService(); - TransactionOptions options = TransactionOptions.Builder.withXG(true); - - final int bucketSize = 5; - int count = 0; - Transaction tx = ds.beginTransaction(options); - try { - for (Pair curExp : experimentsWithModifyDates) { - count++; - Key key = KeyFactory.createKey(PUBLIC_EXPERIMENT_KIND, curExp.first); - Entity entity = ds.get(key); - entity.setProperty(MODIFY_DATE_PROPERTY, curExp.second); - ds.put(entity); - if(count % bucketSize == 0){ - tx.commit(); - tx = ds.beginTransaction(options); - } - } - tx.commit(); - } catch (Exception e) { - e.printStackTrace(); - throw new IllegalStateException(e); - } finally { - if (tx.isActive()) { - tx.rollback(); - } - } - log.fine("Finished ExperimentHub migration"); - } - - @Override - public boolean doMigration() { - return doMigrationPublicExperiments(); - } - -} From ab64f96c6dbcfd219749f728b39f9f9cf0f9f001 Mon Sep 17 00:00:00 2001 From: Marios Hadjimichael Date: Wed, 12 Oct 2016 23:50:53 -0700 Subject: [PATCH 5/6] ExperimentHubMigrationJob - fixed some dependencies and improved logging --- .../server/migration/jobs/ExperimentHubMigrationJob.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Paco-Server/src/com/google/sampling/experiential/server/migration/jobs/ExperimentHubMigrationJob.java b/Paco-Server/src/com/google/sampling/experiential/server/migration/jobs/ExperimentHubMigrationJob.java index efe02b1db..7b8eca348 100644 --- a/Paco-Server/src/com/google/sampling/experiential/server/migration/jobs/ExperimentHubMigrationJob.java +++ b/Paco-Server/src/com/google/sampling/experiential/server/migration/jobs/ExperimentHubMigrationJob.java @@ -8,6 +8,9 @@ import java.util.List; import java.util.logging.Logger; +import org.joda.time.DateTime; +import org.joda.time.DateTimeZone; + import com.google.appengine.api.datastore.DatastoreService; import com.google.appengine.api.datastore.DatastoreServiceFactory; import com.google.appengine.api.datastore.Entity; @@ -36,9 +39,9 @@ public boolean doMigrationPublicExperiments(){ ExperimentQueryResult experimentsQueryResults = ExperimentServiceFactory.getExperimentService().getExperimentsPublishedPublicly(DateTimeZone.getDefault(), null, null, null); List experimentList = experimentsQueryResults.getExperiments(); - log.fine("HbMigration retrieved " + experimentList.size() + "experiments"); if (experimentList != null) { + log.fine("HubMigration retrieved " + experimentList.size() + " experiments"); int modifiedExperimentCount = 0; DateFormat df = new SimpleDateFormat(TimeUtil.DATE_FORMAT); List> experimentsWithModifyDates = Lists.newArrayList(); @@ -63,6 +66,8 @@ public boolean doMigrationPublicExperiments(){ } log.fine("Added modifyDates to " + modifiedExperimentCount + " experiments"); updateDatastore(experimentsWithModifyDates); + }else{ + log.severe("ExperimentHubMigrationJob got a null experimentList"); } //2. Run cron job to count participants in each experiment From 45125178f9c62977fa9f77c4aa06057feb1530a3 Mon Sep 17 00:00:00 2001 From: Marios Hadjimichael Date: Wed, 12 Oct 2016 23:55:05 -0700 Subject: [PATCH 6/6] Fixed code indentation --- .../server/migration/jobs/ExperimentHubMigrationJob.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Paco-Server/src/com/google/sampling/experiential/server/migration/jobs/ExperimentHubMigrationJob.java b/Paco-Server/src/com/google/sampling/experiential/server/migration/jobs/ExperimentHubMigrationJob.java index 7b8eca348..270dc3d2c 100644 --- a/Paco-Server/src/com/google/sampling/experiential/server/migration/jobs/ExperimentHubMigrationJob.java +++ b/Paco-Server/src/com/google/sampling/experiential/server/migration/jobs/ExperimentHubMigrationJob.java @@ -53,11 +53,11 @@ public boolean doMigrationPublicExperiments(){ } catch (ParseException ex) { log.info("Could not parse date for " + e.getId() + " " + ex.toString()); date = new Date(); //fallback to "now" - modifiedExperimentCount++; + modifiedExperimentCount++; } catch (NullPointerException ex) { log.info("Could not parse date (npe) for " + e.getId() + " " + ex.toString()); date = new Date(); //fallback to "now" - modifiedExperimentCount++; + modifiedExperimentCount++; } experimentsWithModifyDates.add(