Ich erhalte diese Ausnahme auf meinem Tomcat-Server (+ liferay)
java.util.concurrent.RejectedExecutionException
Meine Klasse ist so:
public class SingleExecutor extends ThreadPoolExecutor {
public SingleExecutor(){
super(1, 1,0L, TimeUnit.MILLISECONDS,new LinkedBlockingQueue<Runnable>());
}
@Override
public void execute(Runnable command) {
if(command instanceof AccessLogInsert){
AccessLogInsert ali = (AccessLogInsert)command;
ali.setConn(conn);
ali.setPs(ps);
}
super.execute(command);
}
}
Ich erhalte diese Ausnahme in der Zeile. super.execute(command);
Dieser Fehler kann auftreten, wenn die Warteschlange voll ist, die LinkedBlockingQueueGröße jedoch 2 ^ 31 beträgt, und ich bin sicher, dass nicht so viele Befehle warten.
Am Anfang ist alles stabil, aber nachdem ich einen Krieg neu eingesetzt habe, beginnt er aufzutreten. Diese Klasse ist nicht Teil des Krieges, sondern in einem Glas in Tomcat / Lib.
Haben Sie eine Idee, warum dies passiert ist und wie Sie es beheben können?