[
https://issues.redhat.com/browse/WFLY-13051?page=com.atlassian.jira.plugi...
]
nimo stephan edited comment on WFLY-13051 at 6/1/20 2:52 PM:
-------------------------------------------------------------
I thought that the _ManagedScheduledExecutorServiceAdapter_ can be casted to
{code:java}
((ScheduledThreadPoolExecutor) executor).setRemoveOnCancelPolicy(true);
{code}
because of
{code:java}
public interface ManagedScheduledExecutorService extends
ManagedExecutorService, ScheduledExecutorService
{code}
{code:java}
public class ScheduledThreadPoolExecutor
extends ThreadPoolExecutor
implements ScheduledExecutorService {
{code}
I see no reason why the user is not allowed to use _setRemoveOnCancelPolicy()_ on jee
containers.
Is there a way to make it possible to use "setRemoveOnCancelPolicy(true)" on the
injected _ManagedScheduledExecutorService_ instance?
was (Author: nimo22):
I thought that the _ManagedScheduledExecutorServiceAdapter_ can be casted to
{code:java}
((ScheduledThreadPoolExecutor) executor).setRemoveOnCancelPolicy(true);
{code}
because of
{code:java}
public interface ManagedScheduledExecutorService extends
ManagedExecutorService, ScheduledExecutorService
{code}
I see no reason why the user is not allowed to use _setRemoveOnCancelPolicy()_ on jee
containers.
Is there a way to make it possible to use "setRemoveOnCancelPolicy(true)" on the
injected _ManagedScheduledExecutorService_ instance?
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)