public Object clone() {
    BlockUntilStepsFinishMeta retval = (BlockUntilStepsFinishMeta) super.clone();

    int nrfields = stepName.length;

    retval.allocate( nrfields );
    System.arraycopy( stepName, 0, retval.stepName, 0, nrfields );
    System.arraycopy( stepCopyNr, 0, retval.stepCopyNr, 0, nrfields );
    return retval;
  }
@Test
  public void cloneTest() throws Exception {
    BlockUntilStepsFinishMeta meta = new BlockUntilStepsFinishMeta();
    meta.allocate( 2 );
    meta.setStepName( new String[] { "step1", "step2" } );
    meta.setStepCopyNr( new String[] { "copy1", "copy2" } );
    BlockUntilStepsFinishMeta aClone = (BlockUntilStepsFinishMeta) meta.clone();
    assertFalse( aClone == meta );
    assertTrue( Arrays.equals( meta.getStepName(), aClone.getStepName() ) );
    assertTrue( Arrays.equals( meta.getStepCopyNr(), aClone.getStepCopyNr() ) );
    assertEquals( meta.getXML(), aClone.getXML() );
  }