[
https://issues.apache.org/jira/browse/ISIS-2296?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Daniel Keir Haywood updated ISIS-2296:
--------------------------------------
Description:
@RequestScoped isn't honoured (don't see new instance each request)
The services are:
* AcceptHeadersService
* CommandContext
* InteractionContext
* Scratchpad
* PublisherDispatchServiceDefault
That's a big problem... I would expect them to be instantiated (and call
@PostConstruct/@PreDestroy) for each request. As it is, they seem to be
singletons.
Also, these three further domain services are annotated with @RequestScoped,
but also implement WithTransactionScope:
* ChangedObjectService
* QueryResultsCacheDefault
* MetricsServiceDefault
This callback is being called, so they are not memory leaking over time, but
they are not thread-safe for concurrent transactions. At any rate, we should
get rid of this home-grown transaction stuff and instead use Spring's
@TransactionScope
~~~
Also, AcceptHeadersServiceForRest (the RO implementation) although it is
annotated with @RequestScoped, seems to have its own thread-local. This could
probably be removed if it can be made to be properly request-scoped.
was:
@RequestScoped isn't honoured (don't see new instance each request)
The services are:
* AcceptHeadersService
* CommandContext
* InteractionContext
* Scratchpad
* PublisherDispatchServiceDefault
That's a big problem... I would expect them to be instantiated (and call
@PostConstruct/@PreDestroy) for each request. As it is, they seem to be
singletons.
Also, these three further domain services are annotated with @RequestScoped,
but also implement WithTransactionScope:
* ChangedObjectService
* QueryResultsCacheDefault
* MetricsServiceDefault
This callback is being called, so they are not memory leaking over time, but
they are not thread-safe for concurrent transactions. At any rate, we should
get rid of this home-grown transaction stuff and instead use Spring's
@TransactionScope
> @RequestScoped isn't honoured ... also use @TransactionScope instead of our
> home-grown WithTransactionScope
> -----------------------------------------------------------------------------------------------------------
>
> Key: ISIS-2296
> URL: https://issues.apache.org/jira/browse/ISIS-2296
> Project: Isis
> Issue Type: Bug
> Reporter: Daniel Keir Haywood
> Assignee: Andi Huber
> Priority: Critical
> Fix For: 2.0.0-M3
>
>
> @RequestScoped isn't honoured (don't see new instance each request)
> The services are:
> * AcceptHeadersService
> * CommandContext
> * InteractionContext
> * Scratchpad
> * PublisherDispatchServiceDefault
> That's a big problem... I would expect them to be instantiated (and call
> @PostConstruct/@PreDestroy) for each request. As it is, they seem to be
> singletons.
> Also, these three further domain services are annotated with @RequestScoped,
> but also implement WithTransactionScope:
> * ChangedObjectService
> * QueryResultsCacheDefault
> * MetricsServiceDefault
> This callback is being called, so they are not memory leaking over time, but
> they are not thread-safe for concurrent transactions. At any rate, we should
> get rid of this home-grown transaction stuff and instead use Spring's
> @TransactionScope
> ~~~
> Also, AcceptHeadersServiceForRest (the RO implementation) although it is
> annotated with @RequestScoped, seems to have its own thread-local. This
> could probably be removed if it can be made to be properly request-scoped.
>
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)