GERONIMO-5152 fix usage of timer tasks
git-svn-id: https://svn.apache.org/repos/asf/geronimo/components/txmanager/trunk@912468 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/CommitTask.java b/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/CommitTask.java
index b189683..af95279 100644
--- a/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/CommitTask.java
+++ b/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/CommitTask.java
@@ -38,7 +38,7 @@
/**
* @version $Rev$ $Date$
*/
-public class CommitTask extends TimerTask {
+public class CommitTask implements Runnable {
private static final Logger log = LoggerFactory.getLogger(CommitTask.class);
private final Xid xid;
private final List<TransactionBranch> rms;
diff --git a/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/ExponentialtIntervalRetryScheduler.java b/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/ExponentialtIntervalRetryScheduler.java
index 9c3e8c6..77bf114 100644
--- a/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/ExponentialtIntervalRetryScheduler.java
+++ b/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/ExponentialtIntervalRetryScheduler.java
@@ -32,8 +32,22 @@
private final int base = 2;
- public void retry(TimerTask task, int count) {
+ public void retry(Runnable task, int count) {
long interval = Math.round(Math.pow(base, count)) * 1000;
- timer.schedule(task, interval);
+ timer.schedule(new TaskWrapper(task), interval);
+ }
+
+ private static class TaskWrapper extends TimerTask {
+
+ private final Runnable delegate;
+
+ private TaskWrapper(Runnable delegate) {
+ this.delegate = delegate;
+ }
+
+ @Override
+ public void run() {
+ delegate.run();
+ }
}
}
diff --git a/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/RecoverTask.java b/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/RecoverTask.java
index 3d32b29..2ce0294 100644
--- a/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/RecoverTask.java
+++ b/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/RecoverTask.java
@@ -28,7 +28,7 @@
/**
* @version $Rev$ $Date$
*/
-public class RecoverTask extends TimerTask {
+public class RecoverTask implements Runnable {
private final RetryScheduler retryScheduler;
private final NamedXAResourceFactory namedXAResourceFactory;
diff --git a/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/RetryScheduler.java b/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/RetryScheduler.java
index 4fcdd54..356a8dd 100644
--- a/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/RetryScheduler.java
+++ b/geronimo-transaction/src/main/java/org/apache/geronimo/transaction/manager/RetryScheduler.java
@@ -27,5 +27,5 @@
*/
public interface RetryScheduler {
- void retry(TimerTask task, int count);
+ void retry(Runnable task, int count);
}