Buggy code:
public class PointLinkRT implements PointLinkSetPointSource , DataPointListener { public static final String CONTEXT_VAR_NAME = "source" ; private final PointLinkVO vo ; private final SystemEventType eventType ; private final SystemEventType alreadyRunningEvent ; private volatile Boolean ready ; public PointLinkRT ( PointLinkVO vo ) { } public void initialize ( ) { } public void terminate ( ) { } public int getId ( ) { } private void checkSource ( ) { } private void raiseFailureEvent ( TranslatableMessage message ) { } private void raiseFailureEvent ( long time , TranslatableMessage message ) { } private void returnToNormal ( ) { } private void execute ( PointValueTime newValue ) { synchronized ( ready ) { if ( ! ( ready ) ) { <START_BUG> SystemEventType . raiseEvent ( eventType , newValue . getTime ( ) , true , new TranslatableMessage ( "event.pointLink.duplicateRuns" ) ) ; <END_BUG> return ; } else { ready = false ; SystemEventType . returnToNormal ( alreadyRunningEvent , System . currentTimeMillis ( ) ) ; } } DataPointRT targetPoint = runtimeManager . getDataPoint ( vo . getTargetPointId ( ) ) ; if ( targetPoint == null ) { raiseFailureEvent ( newValue . getTime ( ) , new TranslatableMessage ( "event.pointLink.targetUnavailable" ) ) ; return ; } if ( ! ( targetPoint . getPointLocator ( ) . isSettable ( ) ) ) { raiseFailureEvent ( newValue . getTime ( ) , new TranslatableMessage ( "event.pointLink.targetNotSettable" ) ) ; return ; } int targetDataType = targetPoint . getVO ( ) . getPointLocator ( ) . getDataTypeId ( ) ; if ( ! ( StringUtils . isBlank ( vo . getScript ( ) ) ) ) { ScriptExecutor scriptExecutor = new ScriptExecutor ( ) ; Map < String , IDataPointValueSource > context = new HashMap < String , IDataPointValueSource > ( ) ; DataPointRT source = runtimeManager . getDataPoint ( vo . getSourcePointId ( ) ) ; context . put ( PointLinkRT . CONTEXT_VAR_NAME , source ) ; try { PointValueTime pvt = scriptExecutor . execute ( vo . getScript ( ) , context , newValue . getTime ( ) , targetDataType , newValue . getTime ( ) ) ; if ( ( pvt . getValue ( ) ) == null ) { raiseFailureEvent ( newValue . getTime ( ) , new TranslatableMessage ( "event.pointLink.nullResult" ) ) ; return ; } newValue = pvt ; } catch ( ScriptException e ) { raiseFailureEvent ( newValue . getTime ( ) , new TranslatableMessage ( "common.default" , e . getMessage ( ) ) ) ; return ; } catch ( ResultTypeException e ) { raiseFailureEvent ( newValue . getTime ( ) , e . getTranslatableMessage ( ) ) ; return ; } } if ( ( DataTypes . getDataType ( newValue . getValue ( ) ) ) != targetDataType ) { raiseFailureEvent ( newValue . getTime ( ) , new TranslatableMessage ( "event.pointLink.convertError" ) ) ; return ; } backgroundProcessing . addWorkItem ( new PointLinkSetPointWorkItem ( vo . getTargetPointId ( ) , newValue , this ) ) ; returnToNormal ( ) ; } @ Override public void pointInitialized ( ) { } @ Override public void pointTerminated ( ) { } @ Override public void pointChanged ( PointValueTime oldValue , PointValueTime newValue ) { } @ Override public void pointSet ( PointValueTime oldValue , PointValueTime newValue ) { } @ Override public void pointBackdated ( PointValueTime value ) { } @ Override public void pointUpdated ( PointValueTime newValue ) { } @ Override public int getSetPointSourceId ( ) { } @ Override public String getSetPointSourceType ( ) { } @ Override public TranslatableMessage getSetPointSourceMessage ( ) { } @ Override public void raiseRecursionFailureEvent ( ) { } @ Override public void pointSetComplete ( ) { } }

Fix:
SystemEventType . raiseEvent ( alreadyRunningEvent , newValue . getTime ( ) , true , new TranslatableMessage ( "event.pointLink.duplicateRuns" ) ) ;