[jboss-jira] [JBoss JIRA] (WFLY-6300) Batch extension fails module deployment if JobOperator provider not found
Arcadiy Ivanov (JIRA)
issues at jboss.org
Mon Feb 29 16:09:00 EST 2016
Arcadiy Ivanov created WFLY-6300:
------------------------------------
Summary: Batch extension fails module deployment if JobOperator provider not found
Key: WFLY-6300
URL: https://issues.jboss.org/browse/WFLY-6300
Project: WildFly
Issue Type: Bug
Components: Class Loading
Affects Versions: 9.0.2.Final
Reporter: Arcadiy Ivanov
Assignee: David Lloyd
I'm a maintainer for JBOSGI, trying to bring the plugin up to 9.x and 10.x.
Unfortunately, WildFly batch extension assumes that ANY module being inspected will have a classloader capable of finding a JobOperator provider, and if it doesn't the module will not be deployed.
This assumption is, obviously, wrong.
Generally the error looks like this:
{noformat}
15:55:56,679 INFO [org.jboss.as.server] (management-handler-thread - 3) WFLYSRV0010: Deployed "arquillian-service" (runtime-name : "arquillian-service")
15:55:57,049 INFO [org.jboss.as.repository] (management-handler-thread - 4) WFLYDR0001: Content added at location /Users/arcivanov/Documents/src/jbosgi/jbosgi/wildfly/build/target/wildfly-9.0.2.Final/standalone/data/content/13/040c763e3f044cd7bbf3475a137bb620158bc1/content
15:55:57,055 INFO [org.jboss.as.server.deployment] (MSC service thread 1-7) WFLYSRV0027: Starting deployment of "simple-bundle" (runtime-name: "simple-bundle")
15:55:57,070 INFO [org.jboss.osgi.framework] (MSC service thread 1-7) JBOSGI011001: Bundle installed: simple-bundle:0.0.0
15:55:57,112 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-6) MSC000001: Failed to start service jboss.deployment.unit.simple-bundle.batch.job-operator: org.jboss.msc.service.StartException in service jboss.deployment.unit.simple-bundle.batch.job-operator: Failed to start service
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1904)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: javax.batch.operations.BatchRuntimeException: The ServiceLoader was unable to find an implemenation for JobOperator. Check classpath for META-INF/services/javax.batch.operations.JobOperator file.
at javax.batch.runtime.BatchRuntime.getJobOperator(BatchRuntime.java:73)
at org.wildfly.extension.batch.deployment.JobOperatorService.start(JobOperatorService.java:90)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881)
... 3 more
15:55:57,112 INFO [org.jboss.as.arquillian] (MSC service thread 1-8) Arquillian deployment detected: ArquillianConfig[service=jboss.arquillian.config.simple-bundle,unit=simple-bundle,tests=[org.jboss.test.osgi.build.SimpleBundleLifecycleTestCase]]
15:55:57,118 INFO [org.jboss.osgi.framework] (MSC service thread 1-4) JBOSGI011002: Bundle started: simple-bundle:0.0.0
15:55:57,120 ERROR [org.jboss.as.controller.management-operation] (management-handler-thread - 4) WFLYCTL0013: Operation ("deploy") failed - address: ([("deployment" => "simple-bundle")]) - failure description: {"WFLYCTL0080: Failed services" => {"jboss.deployment.unit.simple-bundle.batch.job-operator" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.simple-bundle.batch.job-operator: Failed to start service
{noformat}
In more detail, the error looks like this:
The HostBundleClassLoader is asked by BatchRuntime to enumerate JobOperator services via ServiceLoader.load, returning no providers which triggers an exception.
{noformat}
2016-02-29 15:55:57,110 TRACE [org.wildfly.extension.batch] (MSC service thread 1-1) Processing deployment 'simple-bundle' for the batch deployment resources.
2016-02-29 15:55:57,111 TRACE [org.jboss.modules] (MSC service thread 1-8) Finding class org.jboss.as.arquillian.service.ArquillianConfig from Module "deployment.arquillian-service:main" from Service Module Loader
2016-02-29 15:55:57,111 TRACE [org.jboss.modules] (MSC service thread 1-8) Finding local class org.jboss.as.arquillian.service.ArquillianConfig from Module "deployment.arquillian-service:main" from Service Module Loader
2016-02-29 15:55:57,111 TRACE [org.jboss.security] (MSC service thread 1-2) PBOX00337: nextState for action getPolicyConfiguration: open
2016-02-29 15:55:57,111 TRACE [org.jboss.modules] (MSC service thread 1-8) Loading class org.jboss.as.arquillian.service.ArquillianConfig locally from Module "deployment.arquillian-service:main" from Service Module Loader
2016-02-29 15:55:57,111 DEBUG [org.jboss.security] (MSC service thread 1-2) PBOX00307: Constructing JBossPolicyConfiguration with contextID simple-bundle
2016-02-29 15:55:57,111 TRACE [org.jboss.as.naming] (MSC service thread 1-5) Bound resource env into naming store org.jboss.as.naming.ServiceBasedNamingStore at 63739568 (service name service jboss.naming.context.java.app.simple-bundle.env)
2016-02-29 15:55:57,111 TRACE [org.jboss.as.naming] (MSC service thread 1-7) Bound resource env into naming store org.jboss.as.naming.ServiceBasedNamingStore at 63739568 (service name service jboss.naming.context.java.module.simple-bundle.simple-bundle.env)
2016-02-29 15:55:57,111 TRACE [org.jboss.security] (MSC service thread 1-2) PBOX00337: nextState for action getPolicyConfiguration: open
2016-02-29 15:55:57,111 DEBUG [org.jboss.as.security] (MSC service thread 1-2) Cannot create permissions with 'null' metaData for id=simple-bundle
2016-02-29 15:55:57,111 TRACE [org.jboss.modules] (MSC service thread 1-8) Attempting to define class org.jboss.as.arquillian.service.ArquillianConfig in Module "deployment.arquillian-service:main" from Service Module Loader
2016-02-29 15:55:57,111 TRACE [org.jboss.osgi.framework] (MSC service thread 1-4) LockManager locked: (START) [simple-bundle:0.0.0, simple-bundle:0.0.0]
2016-02-29 15:55:57,111 TRACE [org.jboss.modules] (MSC service thread 1-6) Attempting to find all resources META-INF/services/javax.batch.operations.JobOperator in Module "deployment.simple-bundle:main" from Service Module Loader
2016-02-29 15:55:57,111 DEBUG [org.jboss.osgi.framework] (MSC service thread 1-4) Starting bundle: simple-bundle:0.0.0
2016-02-29 15:55:57,111 TRACE [org.jboss.security] (MSC service thread 1-2) PBOX00314: commit, contextID: simple-bundle
2016-02-29 15:55:57,111 TRACE [org.jboss.osgi.framework] (MSC service thread 1-6) Class [META-INF/services/javax.batch.operations.JobOperator] does not match Dynamic-ImportPackage patterns
2016-02-29 15:55:57,112 TRACE [org.jboss.modules] (MSC service thread 1-8) Defined class org.jboss.as.arquillian.service.ArquillianConfig in Module "deployment.arquillian-service:main" from Service Module Loader
2016-02-29 15:55:57,111 TRACE [org.jboss.security] (MSC service thread 1-2) PBOX00337: nextState for action commit: inService
2016-02-29 15:55:57,112 TRACE [org.jboss.osgi.framework] (MSC service thread 1-4) changeState: simple-bundle:0.0.0 -> STARTING
2016-02-29 15:55:57,113 TRACE [org.jboss.osgi.deployment] (MSC service thread 1-4) Invoke: [org.jboss.as.osgi.web.WebContextLifecycleInterceptor,order=1000] with state STARTING on simple-bundle
2016-02-29 15:55:57,112 INFO [org.jboss.as.arquillian] (MSC service thread 1-8) Arquillian deployment detected: ArquillianConfig[service=jboss.arquillian.config.simple-bundle,unit=simple-bundle,tests=[org.jboss.test.osgi.build.SimpleBundleLifecycleTestCase]]
2016-02-29 15:55:57,112 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-6) MSC000001: Failed to start service jboss.deployment.unit.simple-bundle.batch.job-operator: org.jboss.msc.service.StartException in service jboss.deployment.unit.simple-bundle.batch.job-operator: Failed to start service
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1904)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: javax.batch.operations.BatchRuntimeException: The ServiceLoader was unable to find an implemenation for JobOperator. Check classpath for META-INF/services/javax.batch.operations.JobOperator file.
at javax.batch.runtime.BatchRuntime.getJobOperator(BatchRuntime.java:73)
at org.wildfly.extension.batch.deployment.JobOperatorService.start(JobOperatorService.java:90)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881)
... 3 more
{noformat}
The questions, therefore, are:
# Any way for module to indicate it doesn't want to be inspected by WildFly Batch Extension?
# Should this behavior be fixed in principle?
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
More information about the jboss-jira
mailing list