Skip to content

Commit c891da3

Browse files
aubiPetr Aubrecht
authored andcommitted
fix managed thread factory tests - context is saved before execution, not jndi lookup
1 parent 1acd002 commit c891da3

File tree

2 files changed

+19
-17
lines changed

2 files changed

+19
-17
lines changed

tck/src/main/java/ee/jakarta/tck/concurrent/spec/ManagedThreadFactory/resourcedef/ManagedThreadFactoryDefinitionOnEJBServlet.java

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -80,17 +80,14 @@ public void testManagedThreadFactoryDefinitionAllAttributesEJB() throws Throwabl
8080

8181
ManagedThreadFactory threadFactory = InitialContext.doLookup("java:app/concurrent/EJBThreadFactoryA");
8282

83-
IntContext.set(162);
84-
StringContext.set("testManagedThreadFactoryDefinitionAllAttributesEJB-2");
85-
8683
Thread thread1 = threadFactory.newThread(() -> {});
8784
assertEquals(thread1.getPriority(), 4,
8885
"New threads must be created with the priority that is specified on " +
8986
"ManagedThreadFactoryDefinition");
9087

9188
BlockingQueue<Object> results = new LinkedBlockingQueue<Object>();
9289

93-
threadFactory.newThread(() -> {
90+
Thread thread2 = threadFactory.newThread(() -> {
9491
results.add(Thread.currentThread().getPriority());
9592
results.add(StringContext.get());
9693
results.add(IntContext.get());
@@ -99,7 +96,12 @@ public void testManagedThreadFactoryDefinitionAllAttributesEJB() throws Throwabl
9996
} catch (Throwable x) {
10097
results.add(x);
10198
}
102-
}).start();
99+
});
100+
101+
IntContext.set(162);
102+
StringContext.set("testManagedThreadFactoryDefinitionAllAttributesEJB-2");
103+
104+
thread2.start();
103105

104106
assertEquals(results.poll(MAX_WAIT_SECONDS, TimeUnit.SECONDS), Integer.valueOf(4),
105107
"ManagedThreadFactory must start threads with the configured priority.");
@@ -203,14 +205,8 @@ public void testParallelStreamBackedByManagedThreadFactoryEJB() throws Throwable
203205

204206
ManagedThreadFactory threadFactory = InitialContext.doLookup("java:app/concurrent/EJBThreadFactoryA");
205207

206-
IntContext.set(2000);
207-
StringContext.set("testParallelStreamBackedByManagedThreadFactoryEJB-2");
208-
209208
fj = new ForkJoinPool(4, threadFactory, null, false);
210209

211-
IntContext.set(3000);
212-
StringContext.set("testParallelStreamBackedByManagedThreadFactoryEJB-3");
213-
214210
ForkJoinTask<Optional<Integer>> task = fj.submit(() -> {
215211
return Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9)
216212
.parallelStream()
@@ -229,6 +225,9 @@ public void testParallelStreamBackedByManagedThreadFactoryEJB() throws Throwable
229225
.reduce(Integer::sum);
230226
});
231227

228+
IntContext.set(3000);
229+
StringContext.set("testParallelStreamBackedByManagedThreadFactoryEJB-3");
230+
232231
Optional<Integer> result = task.join();
233232
assertEquals(result.get(), Integer.valueOf(9180),
234233
"Third-party context type IntContext must propagated to ForkJoin threads " +

tck/src/main/java/ee/jakarta/tck/concurrent/spec/ManagedThreadFactory/resourcedef/ManagedThreadFactoryDefinitionServlet.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -70,17 +70,15 @@ public void testManagedThreadFactoryDefinitionAllAttributes() throws Throwable {
7070

7171
ManagedThreadFactory threadFactory = InitialContext.doLookup("java:app/concurrent/ThreadFactoryA");
7272

73-
IntContext.set(162);
74-
StringContext.set("testManagedThreadFactoryDefinitionAllAttributes-2");
75-
76-
Thread thread1 = threadFactory.newThread(() -> {});
73+
Thread thread1 = threadFactory.newThread(() -> {
74+
});
7775
assertEquals(thread1.getPriority(), 4,
7876
"New threads must be created with the priority that is specified on " +
7977
"ManagedThreadFactoryDefinition");
8078

8179
BlockingQueue<Object> results = new LinkedBlockingQueue<Object>();
8280

83-
threadFactory.newThread(() -> {
81+
Thread thread2 = threadFactory.newThread(() -> {
8482
results.add(Thread.currentThread().getPriority());
8583
results.add(StringContext.get());
8684
results.add(IntContext.get());
@@ -89,7 +87,12 @@ public void testManagedThreadFactoryDefinitionAllAttributes() throws Throwable {
8987
} catch (Throwable x) {
9088
results.add(x);
9189
}
92-
}).start();
90+
});
91+
92+
thread2.start();
93+
94+
IntContext.set(162);
95+
StringContext.set("testManagedThreadFactoryDefinitionAllAttributes-2");
9396

9497
assertEquals(results.poll(MAX_WAIT_SECONDS, TimeUnit.SECONDS), Integer.valueOf(4),
9598
"ManagedThreadFactory must start threads with the configured priority.");

0 commit comments

Comments
 (0)