Buggy code:
public abstract class AbstractTestElement implements Serializable , Searchable , TestElement { private static final long serialVersionUID = 240L ; private static final Logger log = LoggingManager . getLoggerForClass ( ) ; private final Map < String , JMeterProperty > propMap = Collections . synchronizedMap ( new LinkedHashMap < String , JMeterProperty > ( ) ) ; private transient Set < JMeterProperty > temporaryProperties ; private transient boolean runningVersion = false ; private transient JMeterContext threadContext = null ; private transient String threadName = null ; @ Override public Object clone ( ) { try { TestElement clonedElement = this . getClass ( ) . newInstance ( ) ; PropertyIterator iter = propertyIterator ( ) ; while ( iter . hasNext ( ) ) { <START_BUG> clonedElement . setProperty ( ( ( JMeterProperty ) ( iter . next ( ) . clone ( ) ) ) ) ; <END_BUG> } clonedElement . setRunningVersion ( runningVersion ) ; return clonedElement ; } catch ( InstantiationException e ) { throw new AssertionError ( e ) ; } catch ( IllegalAccessException e ) { throw new AssertionError ( e ) ; } } public void clear ( ) { } public void clearTestElementChildren ( ) { } public void removeProperty ( String key ) { } @ Override public boolean equals ( Object o ) { } @ Override public int hashCode ( ) { } public void addTestElement ( TestElement el ) { } public void setName ( String name ) { } public String getName ( ) { } public void setComment ( String comment ) { } public String getComment ( ) { } public JMeterProperty getProperty ( String key ) { } public void traverse ( TestElementTraverser traverser ) { } protected void traverseProperty ( TestElementTraverser traverser , JMeterProperty value ) { } protected void traverseMap ( MapProperty map , TestElementTraverser traverser ) { } protected void traverseCollection ( CollectionProperty col , TestElementTraverser traverser ) { } public int getPropertyAsInt ( String key ) { } public int getPropertyAsInt ( String key , int defaultValue ) { } public boolean getPropertyAsBoolean ( String key ) { } public boolean getPropertyAsBoolean ( String key , boolean defaultVal ) { } public float getPropertyAsFloat ( String key ) { } public long getPropertyAsLong ( String key ) { } public long getPropertyAsLong ( String key , long defaultValue ) { } public double getPropertyAsDouble ( String key ) { } public String getPropertyAsString ( String key ) { } public String getPropertyAsString ( String key , String defaultValue ) { } protected void addProperty ( JMeterProperty property ) { } protected void clearTemporary ( JMeterProperty property ) { } protected void logProperties ( ) { } public void setProperty ( JMeterProperty property ) { } public void setProperty ( String name , String value ) { } public void setProperty ( String name , String value , String dflt ) { } public void setProperty ( String name , boolean value ) { } public void setProperty ( String name , boolean value , boolean dflt ) { } public void setProperty ( String name , int value ) { } public void setProperty ( String name , int value , int dflt ) { } public PropertyIterator propertyIterator ( ) { } protected void mergeIn ( TestElement element ) { } public boolean isRunningVersion ( ) { } public void setRunningVersion ( boolean runningVersion ) { } public void recoverRunningVersion ( ) { } protected void emptyTemporary ( ) { } public boolean isTemporary ( JMeterProperty property ) { } public void setTemporary ( JMeterProperty property ) { } public JMeterContext getThreadContext ( ) { } public void setThreadContext ( JMeterContext inthreadContext ) { } public String getThreadName ( ) { } public void setThreadName ( String inthreadName ) { } public AbstractTestElement ( ) { } public boolean canRemove ( ) { } public boolean isEnabled ( ) { } public boolean searchContent ( String textToSearch ) throws Exception { } protected boolean testField ( String value , String searchedTextLowerCase ) { } }

Fix:
clonedElement . setProperty ( iter . next ( ) . clone ( ) ) ;