[jboss-jira] [JBoss JIRA] (WFLY-13051) provide setRemoveOnCancelPolicy on ManagedScheduledExecutorService

Eduardo Martins (Jira) issues at jboss.org
Mon Jun 1 10:35:01 EDT 2020


    [ https://issues.redhat.com/browse/WFLY-13051?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14127882#comment-14127882 ] 

Eduardo Martins commented on WFLY-13051:
----------------------------------------

[~nimo22] Such object is the scheduled executor adapter, which locks the lifecycle methods according to the spec, and even if it was the executor itself (which ours actually comes from the spec Reference Implementation), it's not an extension of a ScheduledThreadPoolExecutor either (it uses one internally tho).

> 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 at 17.0.1.Final//org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:246)
> 	at org.jboss.as.ejb3 at 17.0.1.Final//org.jboss.as.ejb3.tx.CMTTxInterceptor.requiresNew(CMTTxInterceptor.java:388)
> 	at org.jboss.as.ejb3 at 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)


More information about the jboss-jira mailing list