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 ( ) { } 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 , boolean clone ) { } 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 ) { PropertyIterator iter = element . propertyIterator ( ) ; while ( iter . hasNext ( ) ) { JMeterProperty prop = iter . next ( ) ; <START_BUG> addProperty ( prop , false ) ; <END_BUG> } } 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 List < String > getSearchableTokens ( ) throws Exception { } }

Fix:
addProperty ( prop , true ) ;