Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cu-dev] unchanged JNDI in CompletableFuture.thenAcceptAsync() created from ManageExecutorService

Hello,


I'm looking at test ManagedExecutorDefinitionTests/ManagedExecutorDefinitionServlet.testCompletedFuture, using "java:module/concurrent/ExecutorB" ManagedExecutorService, which is configured to use this context:

@ContextServiceDefinition(name = "java:module/concurrent/ContextB",
                          cleared = TRANSACTION,
                          unchanged = { APPLICATION, IntContext.NAME },
                          propagated = ALL_REMAINING)

E.g. the implementation must keep APPLICATION (JNDI search) unchanged during the thenAcceptAsync() call.

This test expects, that the thread's context doesn't recognize java:module JNDI lookup. As I understand, Open Liberty starts threads with "empty contexts", so JNDI calls fail and TCK test succeeds.

This is not the case of Payara/Glassfish, which shares the context of launching thread, so the JNDI call succeed. I fear, that changing the behavior of thread in MES may break compatibility with existing application.


I would like to ask, if there is described the requirement of failing JNDI search for java:module if using ContextServiceDefinition.unchanged(APPLICATION). I haven't found any. APPLICATION javadoc only describes behavior for cleared.


Thank you,

Petr



Back to the top