[jboss-dev-forums] [Design the new POJO MicroContainer] - Re: UnwrapValueUnitTestCase.testCollectionUnwrap failure on
adrian@jboss.org
do-not-reply at jboss.com
Thu Nov 20 08:23:52 EST 2008
"alesj" wrote :
| And you're 'unlucky' that weak value is still cached under "interface java.util.Set".
| Hence you get integer Set --> Integer component type.
|
I don't know that luck comes into it, since AFAIK java requires the
ParameterizedType to be held as a strong reference until the testCollectionUnWrap
method finishes (that is its scope of definition).
Just in case that is not true, I changed the method to ensure that a strong ref is held
| public void testCollectionUnwrap() throws Exception
| {
| Integer i1 = 123;
| Integer i2 = 123;
| Type hold = getType("Integer", Set.class);
| checkCollection(new HashSet<Integer>(), i1, i2);
| checkCollection(new HashSet<Integer>(), Set.class, i1, i2);
| checkCollection(new HashSet<Integer>(), hold, i1, i2);
|
| TestEnum one = TestEnum.ONE;
| TestEnum two = TestEnum.TWO;
| TestEnum three = TestEnum.THREE;
| checkCollection(new HashSet<TestEnum>(), one, two, three, one);
| checkCollection(new HashSet<TestEnum>(), Set.class, one, two, three, one);
| checkCollection(new HashSet<TestEnum>(), getType("Enum", Set.class), one, two, three, one);
|
| System.out.println(hold); // We still hold a reference
| }
|
And I still can't reproduce the problem.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4190878#4190878
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4190878
More information about the jboss-dev-forums
mailing list