Details
-
Type:
Improvement
-
Status:
Resolved
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: 1.4.1
-
Fix Version/s: 1.4.x Maintenance
-
Component/s: None
-
Labels:None
Description
Switching from the eclipse compiler to oracle or vice versa leads to a failure when unmarshaling a non-static object. The compilers generate different indexes for the this$N fields which causes a field not found exception.
I've attached a patch with a testcase which illustrates the problem and a stab at fixing it. The solution is to always put "defined-in" attribute for the this$N fields and at unmarshaling time completely ignore the name of the field in XML and find it by looking at the class fields.
Activity

Field | Original Value | New Value |
---|---|---|
Resolution | Fixed [ 1 ] | |
Fix Version/s | 1.4.x Maintenance [ 19602 ] | |
Status | Open [ 1 ] | Resolved [ 5 ] |
Thanks for the interesting example. I took a little different approach in the mapper only, based on the fact that the declaration sequence of the fields will be the same independent of the used compiler.