23
23
24
24
import org .slf4j .Logger ;
25
25
import org .slf4j .LoggerFactory ;
26
+ import org .springframework .beans .BeanUtils ;
26
27
27
28
import software .xdev .spring .data .eclipse .store .exceptions .MergeFailedException ;
28
29
import software .xdev .spring .data .eclipse .store .repository .IdSetterProvider ;
@@ -199,22 +200,23 @@ private <E> void mergeValueOfField(
199
200
{
200
201
// If the class is part of the java package, some fields are final and not changeable.
201
202
// These special cases are properly handled through the EclipseStore Serialization.
202
- // But to prevent our system to through an error when setting a final field in the java package,
203
+ // But to prevent our system to throw an error when setting a final field in the java package,
203
204
// we use this parameter.
204
- final boolean isPartOfJavaPackage = targetObject .getClass ().getPackageName ().startsWith ("java." );
205
+ final boolean targetObjectIsPartOfJavaPackage =
206
+ targetObject .getClass ().getPackageName ().startsWith ("java." );
205
207
// Something in the containingObject has changed
206
208
changedCollector .collectChangedObject (targetObject );
207
209
if (DataTypeUtil .isPrimitiveType (field .getType ()))
208
210
{
209
211
if (!Objects .equals (valueOfTargetObject , valueOfSourceObject ))
210
212
{
211
- fam .writeValueOfField (targetObject , valueOfSourceObject , !isPartOfJavaPackage );
213
+ fam .writeValueOfField (targetObject , valueOfSourceObject , !targetObjectIsPartOfJavaPackage );
212
214
}
213
215
}
214
216
else if (DataTypeUtil .isPrimitiveArray (valueOfSourceObject ))
215
217
{
216
218
// Copy complete Array
217
- fam .writeValueOfField (targetObject , valueOfSourceObject , !isPartOfJavaPackage );
219
+ fam .writeValueOfField (targetObject , valueOfSourceObject , !targetObjectIsPartOfJavaPackage );
218
220
}
219
221
else if (DataTypeUtil .isObjectArray (valueOfSourceObject ))
220
222
{
@@ -225,7 +227,7 @@ else if(DataTypeUtil.isObjectArray(valueOfSourceObject))
225
227
alreadyMergedTargets ,
226
228
changedCollector
227
229
);
228
- fam .writeValueOfField (targetObject , newArray , !isPartOfJavaPackage );
230
+ fam .writeValueOfField (targetObject , newArray , !targetObjectIsPartOfJavaPackage );
229
231
}
230
232
else
231
233
{
@@ -240,7 +242,10 @@ else if(DataTypeUtil.isObjectArray(valueOfSourceObject))
240
242
if (valueOfTargetObject != originalValueObjectOfSource )
241
243
{
242
244
// If the reference is new, it must be set
243
- fam .writeValueOfField (targetObject , originalValueObjectOfSource , !isPartOfJavaPackage );
245
+ fam .writeValueOfField (
246
+ targetObject ,
247
+ originalValueObjectOfSource ,
248
+ !targetObjectIsPartOfJavaPackage );
244
249
}
245
250
// Merge after setting reference to avoid endless loops
246
251
this .mergeValues (
0 commit comments