Minuterie déjà annulée

J'ai deux minuteries pour gérer la saisie(en file d'attente) et de sortie (file d'attente) à partir d'une file d'attente FIFO, mais je reçois une exception pour le dequeueing java.lang.IllegalStateException: Minuterie déjà annulé. Je ne peux pas placer un stop de débogage de la ligne où l'erreur est revendiquée pour produire de la ligne 83. Je ne sais pas ce que je suis absent de sorte que toute aide serait appréciée.

import java.util.Random;
import java.util.Timer;
import java.util.TimerTask;
/**
* RunSim
*/
public class RunSim {
private double arrivalRate = 600;
private double y;
private Timer t;
private Timer t2;
private Queue fifoQueue;
private long xy;
private long fact = 10;
private int count;
private int pId;
public RunSim() {
Random r = new Random();
long n = System.currentTimeMillis();
r.setSeed(n);
double i = r.nextDouble();
y = ((1 / arrivalRate) * (Math.log(i)));
xy = (long) y;
t = new Timer();
t2 = new Timer();
fifoQueue = new Queue();
count = 0;
pId = 0;
}
public static void main() {
RunSim rs = new RunSim();
rs.start();
}
public void start() {
class sendPacket extends TimerTask {
public void run() {
Packet p = new Packet();
p.setId(pId);
fifoQueue.insert(p);
p.setArrivalTime();
System.out.println("ID: " + p.getId() + " Arrival Time: "
+ p.getArrivalTime() / fact);
pId++;
}
}
class removePacket extends TimerTask {
public void run() {
fifoQueue.first().setDepartureTime();
System.out.println("ID: " + fifoQueue.first().getId()
+ " Departure Time: "
+ fifoQueue.first().getDepartureTime() / fact);
fifoQueue.remove();
}
}
while (count < 1000) {
long v = fact * (1 + Math.abs(xy));
t.schedule(new sendPacket(), 0, v);
count++;
t2.schedule(new removePacket(), 5, 5);
}
}
}
Et le full stack trace de l'exception est...? Et ligne 83 est... ?
java.lang.IllegalStateException: Minuterie déjà annulé. à java.util.Minuterie.sched(Minuterie.java:354) at java.util.Minuterie.horaire(Timer.java:222) à RunSim.start(RunSim.java:83) à RunSim.principale(RunSim.java:47) de la Ligne 83: t2.annexe(nouveau removePacket(),5,5);

OriginalL'auteur Vhas | 2012-11-25