void (int row, int col, Object value) { Future<ArrayChunk> chunk = myChunkCache.getIfPresent(itemToChunkKey(row, col)); if (chunk != null && chunk.isDone()) { try { chunk.get().getData()[row - getPageRowStart(row)][col - getPageColStart(col)] = value; } catch (Exception e) { throw new IllegalStateException(e); } } else { throw new IllegalArgumentException("Forced to change empty cell in " + row + " row and " + col + " column."); } }