-
Task
-
Resolution: Done
-
Major
-
None
-
None
Some tck tests (com.ibm.jbatch.tck.tests.jslxml.CDITests#testCDILazyInject) currently failed with:
jakarta.batch.operations.BatchRuntimeException: JBERET000618: Failed to inject value It's a parm into field jakarta.enterprise.inject.Instance com.ibm.jbatch.tck.artifacts.cdi.ApplicationScopedBatchlet.prop1Inst, because the field type interface jakarta.enterprise.inject.Instance is not supported for property injection. at org.jberet.creation.ValueConverter.convertFieldValue(ValueConverter.java:237) at org.jberet.creation.BatchBeanProducer.getProperty(BatchBeanProducer.java:420) at org.jberet.creation.BatchBeanProducer.getString(BatchBeanProducer.java:215)
It's no longer valid to infer the injection target type (e.g., the field type of a field injection) from the injection point, now that the injection can be lazy. For example,
@Inject
@BatchProperty
private Instance<String> val;
The type inferred from the injection point is Instance, which is wrong; the expected injection target value type is String.