Program: 92168
Project: 92168
Buggy source:
/** 
 * Tests   {@link Parameters#copy(ParameterValueGroup,ParameterValueGroup)}.
 */
@Test public void testCopy(){
  final ParameterValueGroup source=DefaultParameterDescriptorGroupTest.M1_M1_O1_O2.createValue();
  final ParameterValue<?> o1=source.parameter("String_Node_Str");
  final ParameterValue<?> o2=o1.getDescriptor().createValue();
  source.parameter("String_Node_Str").setValue(20);
  source.values().add(o2);
  o1.setValue(40);
  o2.setValue(50);
  final ParameterValueGroup destination=DefaultParameterDescriptorGroupTest.M1_M1_O1_O2.createValue();
  destination.parameter("String_Node_Str").setValue(-10);
  destination.parameter("String_Node_Str").setValue(30);
  Parameters.copy(source,destination);
  assertEquals("String_Node_Str",10,destination.parameter("String_Node_Str").intValue());
  assertEquals("String_Node_Str",20,destination.parameter("String_Node_Str").intValue());
  assertEquals("String_Node_Str",30,destination.parameter("String_Node_Str").intValue());
  assertEquals("String_Node_Str",40,destination.parameter("String_Node_Str").intValue());
  assertEquals("String_Node_Str",50,((ParameterValue<?>)destination.values().get(4)).intValue());
}

Fixed version (ground truth):
/** 
 * Tests   {@link Parameters#copy(ParameterValueGroup,ParameterValueGroup)}.
 * @see <a href="https://issues.apache.org/jira/browse/SIS-202">SIS-202</a>
 */
@Test public void testCopy(){
  final String subgroupName=DefaultParameterDescriptorGroupTest.M1_M1_O1_O2.getName().getCode();
  final DefaultParameterDescriptorGroup descriptor=new DefaultParameterDescriptorGroup(Collections.singletonMap(DefaultParameterDescriptorGroup.NAME_KEY,"String_Node_Str"),1,1,DefaultParameterDescriptorTest.createSimpleOptional("String_Node_Str",String.class),DefaultParameterDescriptorGroupTest.M1_M1_O1_O2);
  final ParameterValueGroup source=descriptor.createValue();
  final ParameterValueGroup sourceSubgroup=source.addGroup(subgroupName);
  final ParameterValue<?> o1=sourceSubgroup.parameter("String_Node_Str");
  final ParameterValue<?> o2=o1.getDescriptor().createValue();
  sourceSubgroup.parameter("String_Node_Str").setValue(20);
  sourceSubgroup.values().add(o2);
  o1.setValue(40);
  o2.setValue(50);
  source.parameter("String_Node_Str").setValue("String_Node_Str");
  final ParameterValueGroup target=descriptor.createValue();
  final ParameterValueGroup targetSubgroup=target.addGroup(subgroupName);
  targetSubgroup.parameter("String_Node_Str").setValue(-10);
  targetSubgroup.parameter("String_Node_Str").setValue(30);
  target.parameter("String_Node_Str").setValue("String_Node_Str");
  Parameters.copy(source,target);
  assertSame(sourceSubgroup,TestUtilities.getSingleton(source.groups(subgroupName)));
  assertSame(targetSubgroup,TestUtilities.getSingleton(target.groups(subgroupName)));
  assertEquals("String_Node_Str",target.parameter("String_Node_Str").getValue());
  assertEquals("String_Node_Str",10,targetSubgroup.parameter("String_Node_Str").intValue());
  assertEquals("String_Node_Str",20,targetSubgroup.parameter("String_Node_Str").intValue());
  assertEquals("String_Node_Str",30,targetSubgroup.parameter("String_Node_Str").intValue());
  assertEquals("String_Node_Str",40,targetSubgroup.parameter("String_Node_Str").intValue());
  assertEquals("String_Node_Str",50,((ParameterValue<?>)targetSubgroup.values().get(4)).intValue());
}