Bug 501843 - Unsettable attributes with default value 0 do not get migrated correctly

Unsettable attributes which are boxed primitive types (int,
boolean, char) and for which the "=="-comparison of the boxed references
yield true (also see here
https://docs.oracle.com/javase/specs/jls/se8/html/jls-5.html#jls-5.1.7)
are not set correctly if the actual value is the default value,
because oldValue == newValue and the slot for the attribute is not
set correctly.

In this case, oldValue is the default value, newValue is the to-be-set
value (== default value) => the objects are identical, so the if-block
is not entered.

The fix is to perform the necessary step in any case if the feature is
unsettable, this adds the newValue to the slot of the attribute.

Change-Id: Iff5f78ad548981c302c65ed2d7a1e529324d4bc6
Signed-off-by: Roman Karlstetter <roman.karlstetter@googlemail.com>
1 file changed
tree: 5d1e56014a537880714b7def7be0d94ec9de8ea7
  1. builds/
  2. examples/
  3. features/
  4. plugins/
  5. tests/
  6. .gitignore