code: private SparseDoubleVector getRowVector(int row, boolean shouldLock) {
          int c = cols.get();
          if (shouldLock)
              lockRow(row, c);
          // Ensure that the column data is up to date 
          while (lastVectorCacheUpdate.get() != modifications.get()) 
              updateVectorCache();
          int[] colArr = rowToColsCache[row];
          SparseDoubleVector rowVec = new SparseHashDoubleVector(c);
          for (int column : colArr)
              rowVec.set(column, matrixEntries.get(new Entry(row, column)));
          if (shouldLock)
              unlockRow(row, c);
          return rowVec;
      }
docs: Returns the row vector, locking the data if {@code shouldLock} is {@code
  true}.