Details
Description
Passing the name of an inner class in the form <name of outer class>.<name of inner class> (i.e. "Map.Entry") yields an incorrect result from JavaSource.resovleType. The reason is that it ends up in resolveTypeInternal which finds the '.' in the name and hence assumes it to be fully qualified.
The correct behavior is propably to always strip of the leaf name and check if the remaining name resolves to a class or a package.
Activity
Mike Williams
made changes -
Field | Original Value | New Value |
---|---|---|
Assignee | Mike Williams [ mdub ] |
Mike Williams
made changes -
Fix Version/s | 1.4 [ 10304 ] | |
Description |
Passing the name of an inner class in the form <name of outer class>.<name of inner class> (i.e. "Map.Entry") yields an incorrect result from JavaSource.resovleType. The reason is that it ends up in resolveTypeInternal which finds the '.' in the name and hence assumes it to be fully qualified. The correct behavior is propably to always strip of the leaf name and check if the remaining name resolves to a class or a package. |
Passing the name of an inner class in the form <name of outer class>.<name of inner class> (i.e. "Map.Entry") yields an incorrect result from JavaSource.resovleType. The reason is that it ends up in resolveTypeInternal which finds the '.' in the name and hence assumes it to be fully qualified. The correct behavior is propably to always strip of the leaf name and check if the remaining name resolves to a class or a package. |
Mike Williams
made changes -
Status | Open [ 1 ] | Resolved [ 5 ] |
Resolution | Fixed [ 1 ] |
Mike Williams
made changes -
Status | Resolved [ 5 ] | Closed [ 6 ] |
As Thomas suggested, the fix was simply to replace the last '.' with '$' and re-try.