I am trying to run cdi 1.2 tck:
In test:
org.jboss.cdi.tck.tests.event.observer.conditional.ConditionalObserverTest
Method: testConditionalObserverMethodNotInvokedIfNoActiveContext
I got this following failure:
java.lang.IllegalStateException: Singleton not set for STATIC_INSTANCE =>
[29478a84-0d13-49f5-b140-34a6cd92ab71,
0dd30cdc-10f4-4ec0-a8c5-d8fa3a82fc25, bbc59ac1-4747-49d0-96a3-12f0d4987829,
3459400f-dd41-473c-a4db-94d60fe5899b, 10795c17-3611-41d5-b7ca-497709c2ad53,
f10c929f-5314-44ba-aeb4-99888f6b4611, a22c5a8f-bf26-4f54-a847-d1c7b5532426,
00c3de8d-65d9-4ba7-804a-9c3c515e59d7, d7c8be7e-8b52-4c88-97e1-5ba6925fb794,
72ac8455-7c21-4090-b7ec-13d70c75a7d7, dbe7255d-5485-4c2a-b547-058815660144,
d3bb3d00-3214-48a5-b662-499010197e12]
at
org.jboss.weld.bootstrap.api.helpers.RegistrySingletonProvider$RegistrySingleton.get(RegistrySingletonProvider.java:28)
at org.jboss.weld.Container.instance(Container.java:55)
at org.jboss.weld.tck.ContextsImpl.getRequestContext(ContextsImpl.java:33)
at org.jboss.weld.tck.ContextsImpl.getRequestContext(ContextsImpl.java:30)
at
org.jboss.cdi.tck.tests.event.observer.conditional.ConditionalObserverTest.testConditionalObserverMethodNotInvokedIfNoActiveContext(ConditionalObserverTest.java:96)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
From the stack trace, two strange things are happening:
1) the TCK code is calling into org.jboss.weld.Container which is an
internal Weld class which should not be visible to application so the
application should not need to load them
2) the TCK code is calling Container.instance() with no arguments, which
should not be called. We always use Container.instance(contextId), in
accordance with Weld doc A.3.2.4. Singleton SPI (this should be used in
OSGi environment).
Can someone help to explain why the tck test was done this way? Is it
accurate?
--
Thanks
Emily
=================
Emily Jiang
ejiang(a)apache.org