protected NotifyFuture<WriteResult> processWrite ( final SessionCommon session, final String itemId, final Variant value, final org.eclipse.scada.core.server.OperationParameters effectiveOperationParameters ) { logger.debug ( "Processing write - granted - itemId: {}, value: {}", itemId, value ); final DataItem item = retrieveItem ( itemId ); if ( item == null ) { return new InstantErrorFuture<WriteResult> ( new InvalidItemException ( itemId ).fillInStackTrace () ); } // stats if ( this.statisticsGenerator != null ) { this.statisticsGenerator.startWrite ( session, itemId, value ); } // go final NotifyFuture<WriteResult> future = item.startWriteValue ( value, effectiveOperationParameters ); try { session.addFuture ( future ); return future; } catch ( final InvalidSessionException e ) { return new InstantErrorFuture<WriteResult> ( e ); } }