IN PROGRESS - BATCH-601: Findbugs code audit

This commit is contained in:
robokaso
2008-04-24 14:23:42 +00:00
parent a66bbd69c9
commit 8f90970a08
8 changed files with 21 additions and 262 deletions

View File

@@ -48,11 +48,11 @@ import org.springframework.util.StringUtils;
*/ */
public class DefaultJobParametersConverter implements JobParametersConverter { public class DefaultJobParametersConverter implements JobParametersConverter {
public static String DATE_TYPE = "(date)"; public static final String DATE_TYPE = "(date)";
public static String STRING_TYPE = "(string)"; public static final String STRING_TYPE = "(string)";
public static String LONG_TYPE = "(long)"; public static final String LONG_TYPE = "(long)";
private DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd"); private DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
@@ -104,7 +104,7 @@ public class DefaultJobParametersConverter implements JobParametersConverter {
} else if (StringUtils.endsWithIgnoreCase(key, STRING_TYPE)) { } else if (StringUtils.endsWithIgnoreCase(key, STRING_TYPE)) {
propertiesBuilder.addString(StringUtils.replace(key, STRING_TYPE, ""), value); propertiesBuilder.addString(StringUtils.replace(key, STRING_TYPE, ""), value);
} else { } else {
propertiesBuilder.addString(key.toString(), value.toString()); propertiesBuilder.addString(key, value.toString());
} }
} }
@@ -124,9 +124,10 @@ public class DefaultJobParametersConverter implements JobParametersConverter {
Map parameters = params.getParameters(); Map parameters = params.getParameters();
Properties result = new Properties(); Properties result = new Properties();
for (Iterator iterator = parameters.keySet().iterator(); iterator.hasNext();) { for (Iterator iterator = parameters.entrySet().iterator(); iterator.hasNext();) {
String key = (String) iterator.next(); Entry entry = (Entry) iterator.next();
Object value = parameters.get(key); String key = (String) entry.getKey();
Object value = entry.getValue();
if (value instanceof Date) { if (value instanceof Date) {
result.setProperty(key + DATE_TYPE, dateFormat.format(value)); result.setProperty(key + DATE_TYPE, dateFormat.format(value));
} else if (value instanceof Long) { } else if (value instanceof Long) {

View File

@@ -34,7 +34,7 @@ import org.springframework.batch.core.converter.JobParametersConverter;
*/ */
public class ScheduledJobParametersFactory implements JobParametersConverter { public class ScheduledJobParametersFactory implements JobParametersConverter {
public static String SCHEDULE_DATE_KEY = "schedule.date"; public static final String SCHEDULE_DATE_KEY = "schedule.date";
private DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd"); private DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
@@ -82,13 +82,13 @@ public class ScheduledJobParametersFactory implements JobParametersConverter {
Map parameters = params.getParameters(); Map parameters = params.getParameters();
Properties result = new Properties(); Properties result = new Properties();
for (Iterator iterator = parameters.keySet().iterator(); iterator.hasNext();) { for (Iterator iterator = parameters.entrySet().iterator(); iterator.hasNext();) {
String key = (String) iterator.next(); Entry entry = (Entry) iterator.next();
Object value = parameters.get(key); String key = (String) entry.getKey();
if (key.equals(SCHEDULE_DATE_KEY)) { if (key.equals(SCHEDULE_DATE_KEY)) {
result.setProperty(key, dateFormat.format(value)); result.setProperty(key, dateFormat.format(entry.getValue()));
} else { } else {
result.setProperty(key, "" + value); result.setProperty(key, "" + entry.getValue());
} }
} }
return result; return result;

View File

@@ -310,11 +310,9 @@ public abstract class AbstractStep implements Step, InitializingBean, BeanNameAw
} }
else { else {
String message = ""; String message = "";
if (ex != null) { StringWriter writer = new StringWriter();
StringWriter writer = new StringWriter(); ex.printStackTrace(new PrintWriter(writer));
ex.printStackTrace(new PrintWriter(writer)); message = writer.toString();
message = writer.toString();
}
exitStatus = ExitStatus.FAILED.addExitDescription(message); exitStatus = ExitStatus.FAILED.addExitDescription(message);
} }
@@ -326,7 +324,7 @@ public abstract class AbstractStep implements Step, InitializingBean, BeanNameAw
* rollback transaction. Throwing this exception will result in storing * rollback transaction. Throwing this exception will result in storing
* {@link BatchStatus#UNKNOWN} as step's status. * {@link BatchStatus#UNKNOWN} as step's status.
*/ */
protected class FatalException extends RuntimeException { protected static class FatalException extends RuntimeException {
public FatalException(String string, Exception e) { public FatalException(String string, Exception e) {
super(string, e); super(string, e);
} }

View File

@@ -110,7 +110,7 @@ public class CommandLineJobRunnerTests extends TestCase {
} }
} }
public static class StubJobLauncher implements JobLauncher { private static class StubJobLauncher implements JobLauncher {
public static JobExecution jobExecution; public static JobExecution jobExecution;

View File

@@ -103,7 +103,7 @@ public class JobRepositoryFactoryBeanTests extends TestCase {
incrementerControl.verify(); incrementerControl.verify();
} }
private class StubIncrementer implements DataFieldMaxValueIncrementer { private static class StubIncrementer implements DataFieldMaxValueIncrementer {
public int nextIntValue() throws DataAccessException { public int nextIntValue() throws DataAccessException {
return 0; return 0;

View File

@@ -68,8 +68,6 @@ public class SimpleJobRepositoryTests extends TestCase {
StepExecutionDao stepExecutionDao; StepExecutionDao stepExecutionDao;
MockStepDao mockStepDao = new MockStepDao();
JobInstance databaseJob; JobInstance databaseJob;
String databaseStep1; String databaseStep1;
@@ -78,7 +76,6 @@ public class SimpleJobRepositoryTests extends TestCase {
List steps; List steps;
ExecutionContext executionContext;
public void setUp() throws Exception { public void setUp() throws Exception {
@@ -113,147 +110,6 @@ public class SimpleJobRepositoryTests extends TestCase {
steps.add(databaseStep1); steps.add(databaseStep1);
steps.add(databaseStep2); steps.add(databaseStep2);
executionContext = new ExecutionContext();
}
/*
* Test a restartable job, that has not been run before.
*/
public void testCreateRestartableJob() throws Exception {
// List jobExecutions = new ArrayList();
//
// jobInstanceDao.findJobInstances(jobConfiguration.getName(), jobParameters);
// jobInstanceDaoControl.setReturnValue(jobExecutions);
// jobInstanceDao.createJobInstance(jobConfiguration.getName(), jobParameters);
// jobInstanceDaoControl.setReturnValue(databaseJob);
//// stepInstanceDao.createStepInstance(databaseJob, "TestStep1");
//// stepInstanceDaoControl.setReturnValue(databaseStep1);
//// stepInstanceDao.createStepInstance(databaseJob, "TestStep2");
//// stepInstanceDaoControl.setReturnValue(databaseStep2);
// jobExecutionDao.saveJobExecution(new JobExecution(databaseJob));
// jobExecutionDaoControl.setMatcher(new ArgumentsMatcher() {
// public boolean matches(Object[] expected, Object[] actual) {
// return ((JobExecution) actual[0]).getJobInstance().equals(databaseJob);
// }
//
// public String toString(Object[] arguments) {
// return "" + arguments[0];
// }
// });
// stepExecutionDaoControl.replay();
//// stepInstanceDaoControl.replay();
// jobExecutionDaoControl.replay();
// jobInstanceDaoControl.replay();
// JobInstance job = jobRepository.createJobExecution(jobConfiguration, jobParameters).getJobInstance();
// assertTrue(job.equals(databaseJob));
// List jobSteps = job.getStepNames();
// Iterator it = jobSteps.iterator();
// String step = (String) it.next();
// assertTrue(step.equals(databaseStep1));
// step = (String) it.next();
// assertTrue(step.equals(databaseStep2));
}
public void testRestartedJob() throws Exception {
// final List executions = new ArrayList();
// JobExecution execution = databaseJob.createJobExecution();
// executions.add(execution);
// // For this test it is important that the execution is finished
// // and the executions in the list contain one with an end date
// execution.setEndTime(new Date(System.currentTimeMillis()));
//
// StepExecution databaseStep1Exec = new StepExecution(databaseStep1, execution, new Long(1));
// StepExecution databaseStep2Exec = new StepExecution(databaseStep2, execution, new Long(2));
//
// List jobs = new ArrayList();
// jobInstanceDao.findJobInstances(jobConfiguration.getName(), jobParameters);
// jobs.add(databaseJob);
// jobInstanceDaoControl.setReturnValue(jobs);
//// stepInstanceDao.findStepInstance(databaseJob, "TestStep1");
//// stepInstanceDaoControl.setReturnValue(databaseStep1);
//// stepExecutionDao.getLastStepExecution(databaseStep1, jobExecution);
//// stepExecutionDaoControl.setReturnValue(databaseStep1Exec);
// stepExecutionDao.findExecutionContext(databaseStep1Exec);
// stepExecutionDaoControl.setReturnValue(executionContext);
// //stepExecutionDao.getStepExecutionCount(databaseStep1);
//// stepExecutionDaoControl.setReturnValue(1);
//// stepInstanceDao.findStepInstance(databaseJob, "TestStep2");
//// stepInstanceDaoControl.setReturnValue(databaseStep2);
//// stepExecutionDao.getLastStepExecution(databaseStep2, jobExecution);
//// stepExecutionDaoControl.setReturnValue(databaseStep2Exec);
// stepExecutionDao.findExecutionContext(databaseStep2Exec);
// stepExecutionDaoControl.setReturnValue(executionContext);
//// stepExecutionDao.getStepExecutionCount(databaseStep2);
//// stepExecutionDaoControl.setReturnValue(1);
// stepExecutionDaoControl.replay();
//// stepInstanceDaoControl.replay();
// jobExecutionDao.getJobExecutionCount(databaseJob);
// jobExecutionDaoControl.setReturnValue(1);
// jobExecutionDao.findJobExecutions(databaseJob);
// jobExecutionDaoControl.setReturnValue(executions);
// jobExecutionDao.saveJobExecution(new JobExecution(databaseJob));
// jobExecutionDaoControl.setMatcher(new ArgumentsMatcher() {
// public boolean matches(Object[] expected, Object[] actual) {
// JobExecution execution = (JobExecution) actual[0];
// return execution.getJobInstance().equals(databaseJob);
// }
//
// public String toString(Object[] arguments) {
// return "" + arguments[0];
// }
// });
// jobExecutionDaoControl.setVoidCallable();
// jobExecutionDaoControl.replay();
// jobInstanceDaoControl.replay();
// JobInstance job = jobRepository.createJobExecution(jobConfiguration, jobParameters).getJobInstance();
// assertTrue(job.equals(databaseJob));
// List jobSteps = job.getStepNames();
// Iterator it = jobSteps.iterator();
// String step = (String) it.next();
// assertTrue(step.equals(databaseStep1));
//// assertTrue(step.getStepExecutionCount() == 1);
// step = (String) it.next();
// assertTrue(step.equals(databaseStep2));
//// assertTrue(step.getStepExecutionCount() == 1);
}
public void testCreateNonRestartableJob() throws Exception {
// List jobs = new ArrayList();
// jobConfiguration.setRestartable(false);
//
// jobInstanceDao.findJobInstances(jobConfiguration.getName(), jobParameters);
// jobInstanceDaoControl.setReturnValue(jobs);
// jobInstanceDao.createJobInstance(jobConfiguration.getName(), jobParameters);
// jobInstanceDaoControl.setReturnValue(databaseJob);
//// stepInstanceDao.createStepInstance(databaseJob, "TestStep1");
//// stepInstanceDaoControl.setReturnValue(databaseStep1);
//// stepInstanceDao.createStepInstance(databaseJob, "TestStep2");
//// stepInstanceDaoControl.setReturnValue(databaseStep2);
// jobExecutionDao.saveJobExecution(new JobExecution(databaseJob));
// jobExecutionDaoControl.setMatcher(new ArgumentsMatcher() {
// public boolean matches(Object[] expected, Object[] actual) {
// return ((JobExecution) actual[0]).getJobInstance().equals(databaseJob);
// }
//
// public String toString(Object[] arguments) {
// return "" + arguments[0];
// }
// });
// stepExecutionDaoControl.replay();
//// stepInstanceDaoControl.replay();
// jobExecutionDaoControl.replay();
// jobInstanceDaoControl.replay();
// JobInstance job = jobRepository.createJobExecution(jobConfiguration, jobParameters).getJobInstance();
// assertTrue(job.equals(databaseJob));
// List jobSteps = job.getStepNames();
// Iterator it = jobSteps.iterator();
// String step = (String) it.next();
// assertTrue(step.equals(databaseStep1));
// step = (String) it.next();
// assertTrue(step.equals(databaseStep2));
} }
@@ -301,99 +157,4 @@ public class SimpleJobRepositoryTests extends TestCase {
} }
} }
/*
* Test to ensure that if a StepDao returns invalid restart data, it is
* corrected.
*/
public void testCreateStepsFixesInvalidExecutionContext() throws Exception {
// List jobs = new ArrayList();
//
// jobInstanceDao.findJobInstances(jobConfiguration.getName(), jobParameters);
// jobInstanceDaoControl.setReturnValue(jobs);
// jobInstanceDao.createJobInstance(jobConfiguration.getName(), jobParameters);
// jobInstanceDaoControl.setReturnValue(databaseJob);
//// stepInstanceDao.createStepInstance(databaseJob, "TestStep1");
//// stepInstanceDaoControl.setReturnValue(databaseStep1);
//// stepInstanceDao.createStepInstance(databaseJob, "TestStep2");
//// stepInstanceDaoControl.setReturnValue(databaseStep2);
// jobExecutionDao.saveJobExecution(new JobExecution(databaseJob));
// jobExecutionDaoControl.setMatcher(new ArgumentsMatcher() {
// public boolean matches(Object[] expected, Object[] actual) {
// return ((JobExecution) actual[0]).getJobInstance().equals(databaseJob);
// }
//
// public String toString(Object[] arguments) {
// return "" + arguments[0];
// }
// });
// stepExecutionDaoControl.replay();
//// stepInstanceDaoControl.replay();
// jobExecutionDaoControl.replay();
// jobInstanceDaoControl.replay();
// JobInstance job = jobRepository.createJobExecution(jobConfiguration, jobParameters).getJobInstance();
// List jobSteps = job.getStepNames();
// Iterator it = jobSteps.iterator();
// String step = (String) it.next();
// assertTrue(step.equals(databaseStep1));
// step = (String) it.next();
// assertTrue(step.equals(databaseStep2));
}
public void testFindStepsFixesInvalidExecutionContext() throws Exception {
// StepExecution databaseStep1Exec = new StepExecution(databaseStep1, null, new Long(1));
// StepExecution databaseStep2Exec = new StepExecution(databaseStep2, null, new Long(2));
//
// List jobs = new ArrayList();
// jobInstanceDao.findJobInstances(jobConfiguration.getName(), jobParameters);
// jobs.add(databaseJob);
// jobInstanceDaoControl.setReturnValue(jobs);
//// stepInstanceDao.findStepInstance(databaseJob, "TestStep1");
//// stepInstanceDaoControl.setReturnValue(databaseStep1);
//// stepExecutionDao.getLastStepExecution(databaseStep1, null);
//// stepExecutionDaoControl.setReturnValue(databaseStep1Exec);
// stepExecutionDao.findExecutionContext(databaseStep1Exec);
// stepExecutionDaoControl.setReturnValue(executionContext);
//// stepExecutionDao.getStepExecutionCount(databaseStep1);
//// stepExecutionDaoControl.setReturnValue(1);
//// stepInstanceDao.findStepInstance(databaseJob, "TestStep2");
//// stepInstanceDaoControl.setReturnValue(databaseStep2);
//// stepExecutionDao.getLastStepExecution(databaseStep2, null);
//// stepExecutionDaoControl.setReturnValue(databaseStep2Exec);
// stepExecutionDao.findExecutionContext(databaseStep2Exec);
// stepExecutionDaoControl.setReturnValue(executionContext);
//// stepExecutionDao.getStepExecutionCount(databaseStep2);
//// stepExecutionDaoControl.setReturnValue(1);
// stepExecutionDaoControl.replay();
//// stepInstanceDaoControl.replay();
//
// jobExecutionDao.getJobExecutionCount(databaseJob);
// jobExecutionDaoControl.setReturnValue(1);
// jobExecutionDao.findJobExecutions(databaseJob);
// jobExecutionDaoControl.setReturnValue(new ArrayList());
// jobExecutionDao.saveJobExecution(new JobExecution(databaseJob));
// jobExecutionDaoControl.setMatcher(new ArgumentsMatcher() {
// public boolean matches(Object[] expected, Object[] actual) {
// return ((JobExecution) actual[0]).getJobInstance().equals(databaseJob);
// }
//
// public String toString(Object[] arguments) {
// return "" + arguments[0];
// }
// });
// jobExecutionDaoControl.replay();
// jobInstanceDaoControl.replay();
// JobInstance job = jobRepository.createJobExecution(jobConfiguration, jobParameters).getJobInstance();
// assertTrue(job.equals(databaseJob));
// List jobSteps = job.getStepNames();
// Iterator it = jobSteps.iterator();
// String step = (String) it.next();
// assertTrue(step.equals(databaseStep1));
//// assertTrue(step.getLastExecution().getExecutionContext().isEmpty());
// step = (String) it.next();
//// assertTrue(step.getLastExecution().getExecutionContext().isEmpty());
// assertTrue(step.equals(databaseStep2));
}
} }

View File

@@ -37,7 +37,6 @@ import org.springframework.test.AbstractTransactionalDataSourceSpringContextTest
*/ */
public class StepExecutionPreparedStatementSetterTests extends AbstractTransactionalDataSourceSpringContextTests { public class StepExecutionPreparedStatementSetterTests extends AbstractTransactionalDataSourceSpringContextTests {
JdbcTemplate jdbcTemplate;
StepExecutionPreparedStatementSetter pss; StepExecutionPreparedStatementSetter pss;
StepExecution stepExecution; StepExecution stepExecution;

View File

@@ -198,7 +198,7 @@ public class TaskletStepTests extends TestCase {
} }
private class StubTasklet extends StepExecutionListenerSupport implements Tasklet { private static class StubTasklet extends StepExecutionListenerSupport implements Tasklet {
private final boolean exitFailure; private final boolean exitFailure;