<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>RequestContext em cenário de concorrência</title>
    <link>https://www.frameworkdemoiselle.gov.br/c/message_boards/find_thread?p_l_id=&amp;threadId=431251</link>
    <description>RequestContext em cenário de concorrência</description>
    <item>
      <title>RequestContext em cenário de concorrência</title>
      <link>https://www.frameworkdemoiselle.gov.br/c/message_boards/find_message?p_l_id=&amp;messageId=431250</link>
      <description>Em um projeto estou utilizando o componente &amp;#034;demoiselle-scheduler-quartz&amp;#034;. Neste projeto várias threads são disparadas e executadas concorrentemente.&lt;br /&gt;O componente &amp;#034;demoiselle-scheduler-quartz&amp;#034; injeta os contextos do Demoiselle (RequestContext, SessionContext, ViewContext, ConversationContext), ativa-os, invoca a execução da tarefa e desativa-os. Mas esporadicamente ocorre ContextNotActiveException.&lt;br /&gt;&lt;br /&gt;Olhando o código fonte do Demoiselle observei a classe &amp;#034;br.gov.frameworkdemoiselle.internal.context.AbstractCustomContext&amp;#034;:&lt;div class="code"&gt;&lt;span class="code-lines"&gt;1&lt;/span&gt;public abstract class AbstractCustomContext implements CustomContext {&lt;br /&gt;&lt;span class="code-lines"&gt;2&lt;/span&gt;&lt;br /&gt;&lt;span class="code-lines"&gt;3&lt;/span&gt;&amp;nbsp; &amp;nbsp; private boolean active;&lt;br /&gt;&lt;span class="code-lines"&gt;4&lt;/span&gt;&amp;nbsp; &amp;nbsp; ...&lt;br /&gt;&lt;span class="code-lines"&gt;5&lt;/span&gt;}&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;e comparei com a classe &amp;#034;org.jboss.weld.context.AbstractManagedContext&amp;#034;:&lt;div class="code"&gt;&lt;span class="code-lines"&gt;1&lt;/span&gt;public abstract class AbstractManagedContext extends AbstractContext implements ManagedContext {&lt;br /&gt;&lt;span class="code-lines"&gt;2&lt;/span&gt;&lt;br /&gt;&lt;span class="code-lines"&gt;3&lt;/span&gt;&amp;nbsp; &amp;nbsp; private final ThreadLocal&amp;lt;Boolean&amp;gt; active;&lt;br /&gt;&lt;span class="code-lines"&gt;4&lt;/span&gt;&amp;nbsp; &amp;nbsp; ...&lt;br /&gt;&lt;span class="code-lines"&gt;5&lt;/span&gt;}&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Não sei se a implementação foi intencional ou um bug, mas existe alguma forma de tornar a RequestContext thread-safe?&lt;br /&gt;Tentei implementar uma @Alternative RequestContext, mas sempre é injetada a &amp;#034;br.gov.frameworkdemoiselle.internal.context.TemporaryRequestContextImpl&amp;#034;.&lt;br /&gt;Também tentei definir um método @Produces RequesteContext, mas também não funcionou.</description>
      <pubDate>Tue, 11 Oct 2016 19:20:53 GMT</pubDate>
      <guid isPermaLink="false">https://www.frameworkdemoiselle.gov.br/c/message_boards/find_message?p_l_id=&amp;messageId=431250</guid>
      <dc:creator>Eugenio Ferreira Lima</dc:creator>
      <dc:date>2016-10-11T19:20:53Z</dc:date>
    </item>
  </channel>
</rss>

