[
https://issues.apache.org/jira/browse/ISIS-780?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Daniel Keir Haywood reassigned ISIS-780:
----------------------------------------
Fix Version/s: (was: 2.3.0)
2.0.0-M3
Assignee: Daniel Keir Haywood
Addressed by moving to Spring Boot
> @Inject on field and @RequestScoped are incompatible - use a
> MetaModelValidator to detect
> -----------------------------------------------------------------------------------------
>
> Key: ISIS-780
> URL: https://issues.apache.org/jira/browse/ISIS-780
> Project: Isis
> Issue Type: Improvement
> Components: Isis Core
> Affects Versions: core-1.4.0
> Reporter: Daniel Keir Haywood
> Assignee: Daniel Keir Haywood
> Priority: Major
> Fix For: 2.0.0-M3
>
>
> Our support for @RequestScoped annotation is home-grown; we create a
> Javassist proxy for the service, which then delegates to dynamically created
> instances of the actual service bound on a thread-local.
> The Javassist proxy automatically forwards all method calls to the underlying
> service for the current thread.
> If the request-scoped service has other services injected into it via methods
> (ie setXxx(...) or injectXxx(...), then these method calls are forwarded just
> like any other, and everything works fine.
> However, if the request-scoped service has its other services injected via a
> field annotated with @RequestScoped, then the service will be injected into
> the Javassist proxy and the underlying service will get a null pointer.
> One day we might replace our home-grown injection with a more sophisticated
> third-party library (eg a CDI impl?) that can handle the above. But until
> such time, as a workaround we should fail-fast: detect the situation and
> through an exception on start-up.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)