-
Bug
-
Resolution: Done
-
Critical
-
None
-
None
-
Release Notes
-
-
-
-
-
-
Documented as Known Issue
-
EAP 7.0.1
Description of problem:
Server is unable to invoke @Timeout method after 10 methods are called on Asynchronous bean
Test:
for (int i = 0; i < 10; i++) { AsyncBean bean = lookup(AsyncBean.class); bean.asyncMethod(); } InitialContext iniCtx = new InitialContext(); TimeoutBean bean = (TimeoutBean) iniCtx.lookup("java:module/" + TimeoutBean.class.getSimpleName()); bean.createTimer();
Asynchronous bean:
@Stateless @Asynchronous @LocalBean public class AsyncBean{ public void asyncMethod() { System.out.println("asynch bean execution"); } }
Timeout bean:
@Stateless public class TimeoutBean { @Resource private TimerService timerService; public void createTimer() { timerService.createTimer(100, null); } @Timeout private void timeout(Timer timer) { System.out.println("in timeout method"); } }
Customer Impact:
Customers can not use default persistence timer with Asynchronous bean.
How reproducible:
Always on IBM JDK
Steps to Reproduce: (use attached reproducer)
- get fresh EAP
- mvn test -Djboss.home=${EAP_HOME}
Actual results:
12:26:57,462 ERROR [org.jboss.as.ejb3] (EJB default - 9) WFLYEJB0164: Exception running timer task for timer [id=03aa7a93-ee6f-483e-bf6b-caff56a13fc0 timedObjectId=test.test.TimeoutBean auto-timer?:false persistent?:true timerService=org.jboss.as.ejb3.timerservice.TimerServiceImpl@f1cd0789 initialExpiration=Mon Apr 11 12:26:57 CEST 2016 intervalDuration(in milli sec)=0 nextExpiration=null timerState=IN_TIMEOUT info=null] on EJB test.test.TimeoutBean: java.lang.RuntimeException: javax.xml.stream.FactoryConfigurationError: Provider __redirected.__XMLOutputFactory not found at org.jboss.as.ejb3.timerservice.TimerServiceImpl.persistTimer(TimerServiceImpl.java:614) at org.jboss.as.ejb3.timerservice.TimerTask.run(TimerTask.java:148) at org.jboss.as.ejb3.timerservice.TimerServiceImpl$Task$1.run(TimerServiceImpl.java:1214) at org.wildfly.extension.requestcontroller.RequestController$QueuedTask$1.run(RequestController.java:497) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1153) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at java.lang.Thread.run(Thread.java:785) at org.jboss.threads.JBossThread.run(JBossThread.java:320) Caused by: javax.xml.stream.FactoryConfigurationError: Provider __redirected.__XMLOutputFactory not found at javax.xml.stream.XMLOutputFactory.newFactory(Unknown Source) at javax.xml.stream.XMLOutputFactory.newInstance(Unknown Source) at org.jboss.as.ejb3.timerservice.persistence.filestore.FileTimerPersistence.writeFile(FileTimerPersistence.java:497) at org.jboss.as.ejb3.timerservice.persistence.filestore.FileTimerPersistence.persistTimer(FileTimerPersistence.java:225) at org.jboss.as.ejb3.timerservice.persistence.filestore.FileTimerPersistence.persistTimer(FileTimerPersistence.java:193) at org.jboss.as.ejb3.timerservice.TimerServiceImpl.persistTimer(TimerServiceImpl.java:609) ... 7 more Caused by: java.lang.ClassNotFoundException: __redirected.__XMLOutputFactory at java.lang.Class.forNameImpl(Native Method) at java.lang.Class.forName(Class.java:273) at javax.xml.stream.FactoryFinder.newInstance(Unknown Source) at javax.xml.stream.FactoryFinder.find(Unknown Source) at javax.xml.stream.FactoryFinder.find(Unknown Source) ... 13 more
Expected results:
No exception on output
Additional info:
Number of EJB call depends on max-threads attribute of EJB3 subsystem. It can be configured by this CLI command:
/subsystem=ejb3/thread-pool=default:write-attribute(name=max-threads,value=10)
- causes
-
JBEAP-2902 Ejb tests fails with IBM JDK
- Closed
- is cloned by
-
WFLY-6528 Server is unable to invoke @Timeout method after 10 methods are called on Asynchronous bean on IBM JDK
- Closed
- is duplicated by
-
JBEAP-2902 Ejb tests fails with IBM JDK
- Closed