From 6cf072076830f21ab91758a416556d07728823ca Mon Sep 17 00:00:00 2001 From: robokaso Date: Thu, 4 Dec 2008 21:37:45 +0000 Subject: [PATCH] RESOLVED - BATCH-951: MapJobInstanceDao.getLastJobInstances doesn't return the last job instance reverted list ordering --- .../repository/dao/MapJobInstanceDao.java | 22 +------------------ .../dao/AbstractJobInstanceDaoTests.java | 9 +++++++- 2 files changed, 9 insertions(+), 22 deletions(-) diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/MapJobInstanceDao.java b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/MapJobInstanceDao.java index 4de4b568c..7a77653de 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/MapJobInstanceDao.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/MapJobInstanceDao.java @@ -47,13 +47,6 @@ public class MapJobInstanceDao implements JobInstanceDao { } - /* - * (non-Javadoc) - * - * @see - * org.springframework.batch.core.repository.dao.JobInstanceDao#getJobInstance - * (java.lang.Long) - */ public JobInstance getJobInstance(Long instanceId) { for (JobInstance instance : jobInstances) { if (instance.getId().equals(instanceId)) { @@ -63,13 +56,6 @@ public class MapJobInstanceDao implements JobInstanceDao { return null; } - /* - * (non-Javadoc) - * - * @see - * org.springframework.batch.core.repository.dao.JobInstanceDao#getJobNames - * () - */ public List getJobNames() { List result = new ArrayList(); for (JobInstance instance : jobInstances) { @@ -79,12 +65,6 @@ public class MapJobInstanceDao implements JobInstanceDao { return result; } - /* - * (non-Javadoc) - * - * @seeorg.springframework.batch.core.repository.dao.JobInstanceDao# - * getLastJobInstances(java.lang.String, int) - */ public List getLastJobInstances(String jobName, int count) { List result = new ArrayList(); for (JobInstance instance : jobInstances) { @@ -95,7 +75,7 @@ public class MapJobInstanceDao implements JobInstanceDao { Collections.sort(result, new Comparator() { // sort by ID descending public int compare(JobInstance o1, JobInstance o2) { - return Long.signum(o1.getId() - o2.getId()); + return Long.signum(o2.getId() - o1.getId()); } }); int length = count > result.size() ? result.size() : count; diff --git a/spring-batch-core/src/test/java/org/springframework/batch/core/repository/dao/AbstractJobInstanceDaoTests.java b/spring-batch-core/src/test/java/org/springframework/batch/core/repository/dao/AbstractJobInstanceDaoTests.java index d37dda098..b96c5b810 100644 --- a/spring-batch-core/src/test/java/org/springframework/batch/core/repository/dao/AbstractJobInstanceDaoTests.java +++ b/spring-batch-core/src/test/java/org/springframework/batch/core/repository/dao/AbstractJobInstanceDaoTests.java @@ -122,11 +122,18 @@ public abstract class AbstractJobInstanceDaoTests extends AbstractTransactionalJ // unrelated job instance that should be ignored by the query dao.createJobInstance("anotherJob", new JobParameters()); + + // we need two instances of the same job to check ordering + dao.createJobInstance(fooJob, new JobParameters()); List jobInstances = dao.getLastJobInstances(fooJob, 2); - assertEquals(1, jobInstances.size()); + assertEquals(2, jobInstances.size()); assertEquals(fooJob, jobInstances.get(0).getJobName()); + assertEquals(fooJob, jobInstances.get(1).getJobName()); assertEquals(Integer.valueOf(0), jobInstances.get(0).getVersion()); + assertEquals(Integer.valueOf(0), jobInstances.get(1).getVersion()); + + assertTrue("Last instance should be first on the list", jobInstances.get(0).getId() > jobInstances.get(1).getId()); }