Summary: | SystemFilter.getPersistableChildren() returns ArrayStoreException | ||
---|---|---|---|
Product: | [Tools] Target Management | Reporter: | Ankit Pasricha <ankitp> |
Component: | RSE | Assignee: | David Dykstal <ddykstal.eclipse> |
Status: | RESOLVED FIXED | QA Contact: | Martin Oberhuber <mober.at+eclipse> |
Severity: | normal | ||
Priority: | P3 | CC: | ddykstal.eclipse, dmcknigh |
Version: | 2.0.1 | Keywords: | api, core |
Target Milestone: | 3.0 M4 | ||
Hardware: | PC | ||
OS: | Windows XP | ||
Whiteboard: |
Description
Ankit Pasricha
2007-10-19 10:55:51 EDT
I believe this is happening because the profiles have not yet finished loading. See the reply to Bug 202040 and see if that helps. I took a look at the RSE code. In getPersistableChildren() it does: if (filterStringVector != null) { children.addAll(filterStringVector); } children.addAll(Arrays.asList(getPropertySets())); IRSEPersistableContainer[] result = new IRSEPersistableContainer[children.size()]; children.toArray(result); return result; The "children" list is filled with the filterStringVector elements. These elements are strings. However, the children list is expected to contain elements of type IRSEPersistableContainer. I think that is the source of the problem. Please let me know if I am missing something. I was wondering if there is any progress on this problem? This is probably the direct cause of the exception. I'm having a hard time writing a test case to confirm a fix. Can you give some hints as to what sort of filter is causing this problem? This bug was probably also caused by the SystemHostPool not being thread-safe. My fix in bug 206742 might thus also fix this issue -- the traceback in that bug was also rooted on SystemRegistry.getLocalHost(). Was this problem ever reproducable? Is it still reproducable with the latest TM I-build? I am integrating changes that simplify the internal structure of the classes and that should take care of the initial problem that Ankit found. There is one API change in SystemFilterSimple -- some fields were changed from protected to private visibility. All method signatures remain the same. I will be cleanup up commented out code in both classes later today as [cleanup]. |