[
https://issues.redhat.com/browse/WFLY-13051?page=com.atlassian.jira.plugi...
]
nimo stephan commented on WFLY-13051:
-------------------------------------
Ok thanks for the information.
If you really need to remove tasks when canceled (instead of when
these expire)
The problem is that even if the task is expired it will be within the scheduled queue for
the next time and then will be fired again when I use
{code:java}
// no possibility to cancel tasks after it was submitted
executor.scheduleWithFixedDelay(..)
{code}
Hence there is a need to cancel the task..the spec lacks for such cases..
However, thanks for that info..maybe you can keep this in mind when discussing to improve
the spec..
provide setRemoveOnCancelPolicy on ManagedScheduledExecutorService
------------------------------------------------------------------
Key: WFLY-13051
URL:
https://issues.redhat.com/browse/WFLY-13051
Project: WildFly
Issue Type: Enhancement
Components: Concurrency Utilities
Affects Versions: 19.0.0.Beta1
Reporter: nimo stephan
Assignee: Eduardo Martins
Priority: Major
Using
{code:java}
@Resource
private ManagedScheduledExecutorService executor;
{code}
provides no possiblity to setRemoveOnCancelPolicy to true.
A casting within a method:
{code:java}
((ScheduledThreadPoolExecutor) executor).setRemoveOnCancelPolicy(true);
{code}
throws the error:
{code:java}
Caused by: javax.ejb.EJBException: java.lang.ClassCastException: class
org.glassfish.enterprise.concurrent.ManagedScheduledExecutorServiceAdapter cannot be cast
to class java.util.concurrent.ScheduledThreadPoolExecutor
(org.glassfish.enterprise.concurrent.ManagedScheduledExecutorServiceAdapter is in unnamed
module of loader 'org.glassfish.javax.enterprise.concurrent' @a93b7af;
java.util.concurrent.ScheduledThreadPoolExecutor is in module java.base of loader
'bootstrap')
at
org.jboss.as.ejb3@17.0.1.Final//org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:246)
at
org.jboss.as.ejb3@17.0.1.Final//org.jboss.as.ejb3.tx.CMTTxInterceptor.requiresNew(CMTTxInterceptor.java:388)
at
org.jboss.as.ejb3@17.0.1.Final//org.jboss.as.ejb3.tx.LifecycleCMTTxInterceptor.processInvocation(LifecycleCMTTxInterceptor.java:68)
{code}
Please provide option to cast or if not possible to add the property
{code:java}
setRemoveOnCancelPolicy()
{code}
within the object ManagedScheduledExecutorService. Because without it, we cannot remove
a task from the queue with "future.cancel(false)".
--
This message was sent by Atlassian Jira
(v7.13.8#713008)