code: public final void execute () throws InternetSCSIException {
  
          final ProtocolDataUnit protocolDataUnit = protocolDataUnitFactory.create(false, true, OperationCode.SCSI_COMMAND, connection.getSetting(OperationalTextKey.HEADER_DIGEST), connection.getSetting(OperationalTextKey.DATA_DIGEST));
          final SCSICommandParser scsi = (SCSICommandParser) protocolDataUnit.getBasicHeaderSegment().getParser();
  
          scsi.setReadExpectedFlag(true);
          scsi.setWriteExpectedFlag(false);
          scsi.setTaskAttributes(taskAttributes);
          scsi.setExpectedDataTransferLength(expectedDataTransferLength);
          scsi.setCommandDescriptorBlock(SCSICommandDescriptorBlockParser.createReadMessage(logicalBlockAddress, transferLength));
  
          connection.send(protocolDataUnit);
          connection.nextState(new ReadResponseState(connection, buffer, 0, 0));
          super.stateFollowing = true;
          // return true;
      }
docs: {@inheritDoc}