code: @Override
      protected final void checkIntegrity () throws InternetSCSIException {
  
          String exceptionMessage;
          do {
              Utils.isReserved(logicalUnitNumber);
  
              if (response != ServiceResponse.COMMAND_COMPLETED_AT_TARGET) {
                  if (bidirectionalReadResidualOverflow || bidirectionalReadResidualUnderflow || residualOverflow || residualUnderflow) {
                      exceptionMessage = "Theses bits must to be 0, because the command is not completed at the target.";
                      break;
                  }
  
                  if (status != SCSIStatus.GOOD) {
                      exceptionMessage = "Status Code is only valid, because the command is not completed at the target.";
                      break;
                  }
              }
  
              if (bidirectionalReadResidualOverflow && bidirectionalReadResidualUnderflow) {
                  exceptionMessage = "The 'o' and 'u' bits must be set mutal exclusion.";
                  break;
              }
  
              if (residualOverflow && residualUnderflow) {
                  exceptionMessage = "The 'O' and 'U' bits must be set mutal exclusion.";
                  break;
              }
  
              if ((!residualOverflow && !residualUnderflow) && residualCount != 0) {
                  exceptionMessage = "ResidualCount is only valid either the ResidualOverflow or ResidualUnderflow-Flag is set.";
                  break;
              }
  
              if ((!bidirectionalReadResidualOverflow && !bidirectionalReadResidualUnderflow) && bidirectionalReadResidualCount != 0) {
                  exceptionMessage = "BidirectionalResidualCount is only valid either the " + "BidirectionalResidualOverflow or BidirectionalResidualUnderflow-Flag is set.";
                  break;
              }
  
              if (response != ServiceResponse.COMMAND_COMPLETED_AT_TARGET && expectedDataSequenceNumber != 0) {
                  exceptionMessage = "The ExpectedDataSequenceNumber is not valid, because the command is not " + "completed at the target.";
                  break;
              }
  
              // message is checked correctly
              return;
          } while (false);
  
          throw new InternetSCSIException(exceptionMessage);
      }
docs: {@inheritDoc}