test_class.declarator: log = LoggerFactory.getLogger(BlobGCTest.class)
test_class.modifier: protected static final
test_class.original_string: protected static final Logger log = LoggerFactory.getLogger(BlobGCTest.class);
test_class.type: Logger
test_class.var_name: log
test_class.declarator: folder = new TemporaryFolder(new File("target"))
test_class.modifier: @Rule
      public
test_class.original_string: @Rule
      public TemporaryFolder folder = new TemporaryFolder(new File("target"));
test_class.type: TemporaryFolder
test_class.var_name: folder
test_class.declarator: wb
test_class.modifier: protected
test_class.original_string: protected Whiteboard wb;
test_class.type: Whiteboard
test_class.var_name: wb
test_class.declarator: closer
test_class.modifier: protected
test_class.original_string: protected Closer closer;
test_class.type: Closer
test_class.var_name: closer
test_class.declarator: cluster
test_class.modifier: protected
test_class.original_string: protected Cluster cluster;
test_class.type: Cluster
test_class.var_name: cluster
test_class.declarator: clock
test_class.modifier: protected
test_class.original_string: protected Clock clock;
test_class.type: Clock
test_class.var_name: clock
test_class.file: oak-blob-plugins/src/test/java/org/apache/jackrabbit/oak/plugins/blob/BlobGCTest.java
test_class.identifier: BlobGCTest
test_case.body: @Test
      public void checkConsistencyFailure() throws Exception {
          log.info("Starting checkConsistencyFailure()");
  
          long afterSetupTime = clock.getTime();
          log.info("after setup time {}", afterSetupTime);
  
          cluster.blobStore
              .countDeleteChunks(Lists.newArrayList(Iterators.getLast(cluster.blobStoreState.blobsPresent.iterator())),
                  0);
          MarkSweepGarbageCollector collector = cluster.getCollector(0);
          long missing = collector.checkConsistency();
  
          assertEquals(1, missing);
          assertStats(cluster.statsProvider, 1, 1, 1, 0, CONSISTENCY_NAME);
          assertStatsBean(collector.getConsistencyOperationStats(), 1, 1, 1);
      }
test_case.class_method_signature: BlobGCTest.checkConsistencyFailure()
test_case.full_signature: @Test public void checkConsistencyFailure()
test_case.identifier: checkConsistencyFailure
test_case.invocations: info getTime info countDeleteChunks newArrayList getLast iterator getCollector checkConsistency assertEquals assertStats assertStatsBean getConsistencyOperationStats
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void checkConsistencyFailure()
focal_class.declarator: log = LoggerFactory.getLogger(BlobGC.class)
focal_class.modifier: private static final
focal_class.original_string: private static final Logger log = LoggerFactory.getLogger(BlobGC.class);
focal_class.type: Logger
focal_class.var_name: log
focal_class.declarator: OP_NAME = "Blob garbage collection"
focal_class.modifier: public static final
focal_class.original_string: public static final String OP_NAME = "Blob garbage collection";
focal_class.type: String
focal_class.var_name: OP_NAME
focal_class.declarator: blobGarbageCollector
focal_class.modifier: private final
focal_class.original_string: private final BlobGarbageCollector blobGarbageCollector;
focal_class.type: BlobGarbageCollector
focal_class.var_name: blobGarbageCollector
focal_class.declarator: executor
focal_class.modifier: private final
focal_class.original_string: private final Executor executor;
focal_class.type: Executor
focal_class.var_name: executor
focal_class.declarator: gcOp = done(OP_NAME, "")
focal_class.modifier: private
focal_class.original_string: private ManagementOperation<String> gcOp = done(OP_NAME, "");
focal_class.type: ManagementOperation<String>
focal_class.var_name: gcOp
focal_class.declarator: CONSISTENCY_OP_NAME = "Blob consistency check"
focal_class.modifier: public static final
focal_class.original_string: public static final String CONSISTENCY_OP_NAME = "Blob consistency check";
focal_class.type: String
focal_class.var_name: CONSISTENCY_OP_NAME
focal_class.declarator: consistencyOp = done(CONSISTENCY_OP_NAME, "")
focal_class.modifier: private
focal_class.original_string: private ManagementOperation<String> consistencyOp = done(CONSISTENCY_OP_NAME, "");
focal_class.type: ManagementOperation<String>
focal_class.var_name: consistencyOp
focal_class.declarator: MARK_FIELD_NAMES = new String[] {
              "repositoryId",
              "markStartTime",
              "markEndTime",
              "referenceFileSizeBytes",
              "referencesFileSize",
              "numReferences",
      }
focal_class.modifier: private static final
focal_class.original_string: private static final String[] MARK_FIELD_NAMES = new String[] {
              "repositoryId",
              "markStartTime",
              "markEndTime",
              "referenceFileSizeBytes",
              "referencesFileSize",
              "numReferences",
      };
focal_class.type: String[]
focal_class.var_name: MARK_FIELD_NAMES
focal_class.declarator: MARK_FIELD_DESCRIPTIONS = new String[] {
             "Repository ID",
             "Start time of mark",
             "End time of mark",
             "References file size in bytes",
             "References file size in human readable format",
             "Number of references"
      }
focal_class.modifier: private static final
focal_class.original_string: private static final String[] MARK_FIELD_DESCRIPTIONS = new String[] {
             "Repository ID",
             "Start time of mark",
             "End time of mark",
             "References file size in bytes",
             "References file size in human readable format",
             "Number of references"
      };
focal_class.type: String[]
focal_class.var_name: MARK_FIELD_DESCRIPTIONS
focal_class.declarator: MARK_FIELD_TYPES = new OpenType[] {
              SimpleType.STRING,
              SimpleType.STRING,
              SimpleType.STRING,
              SimpleType.LONG,
              SimpleType.STRING,
              SimpleType.INTEGER
      }
focal_class.modifier: private static final
focal_class.original_string: private static final OpenType[] MARK_FIELD_TYPES = new OpenType[] {
              SimpleType.STRING,
              SimpleType.STRING,
              SimpleType.STRING,
              SimpleType.LONG,
              SimpleType.STRING,
              SimpleType.INTEGER
      };
focal_class.type: OpenType[]
focal_class.var_name: MARK_FIELD_TYPES
focal_class.declarator: MARK_TYPE = createMarkCompositeType()
focal_class.modifier: private static final
focal_class.original_string: private static final CompositeType MARK_TYPE = createMarkCompositeType();
focal_class.type: CompositeType
focal_class.var_name: MARK_TYPE
focal_class.declarator: OP_STATS_FIELD_NAMES = new String[] {
          "count",
          "failureCount",
          "duration"
      }
focal_class.modifier: private static final
focal_class.original_string: private static final String[] OP_STATS_FIELD_NAMES = new String[] {
          "count",
          "failureCount",
          "duration"
      };
focal_class.type: String[]
focal_class.var_name: OP_STATS_FIELD_NAMES
focal_class.declarator: OP_STATS_FIELD_DESCRIPTIONS = new String[] {
          "Count",
          "Failure Count",
          "Duration"
      }
focal_class.modifier: private static final
focal_class.original_string: private static final String[] OP_STATS_FIELD_DESCRIPTIONS = new String[] {
          "Count",
          "Failure Count",
          "Duration"
      };
focal_class.type: String[]
focal_class.var_name: OP_STATS_FIELD_DESCRIPTIONS
focal_class.declarator: OP_STATS_FIELD_TYPES = new OpenType[] {
          SimpleType.LONG,
          SimpleType.LONG,
          SimpleType.LONG
      }
focal_class.modifier: private static final
focal_class.original_string: private static final OpenType[] OP_STATS_FIELD_TYPES = new OpenType[] {
          SimpleType.LONG,
          SimpleType.LONG,
          SimpleType.LONG
      };
focal_class.type: OpenType[]
focal_class.var_name: OP_STATS_FIELD_TYPES
focal_class.declarator: OP_STATS_TYPE = createOpStatsCompositeType()
focal_class.modifier: private static final
focal_class.original_string: private static final CompositeType OP_STATS_TYPE = createOpStatsCompositeType();
focal_class.type: CompositeType
focal_class.var_name: OP_STATS_TYPE
focal_class.file: oak-blob-plugins/src/main/java/org/apache/jackrabbit/oak/plugins/blob/BlobGC.java
focal_class.identifier: BlobGC
focal_class.interfaces: implements BlobGCMBean
focal_class.class_method_signature: BlobGC.BlobGC(
              @NotNull BlobGarbageCollector blobGarbageCollector,
              @NotNull Executor executor)
focal_class.full_signature: public  BlobGC(
              @NotNull BlobGarbageCollector blobGarbageCollector,
              @NotNull Executor executor)
focal_class.identifier: BlobGC
focal_class.modifiers: public
focal_class.parameters: (
              @NotNull BlobGarbageCollector blobGarbageCollector,
              @NotNull Executor executor)
focal_class.signature:  BlobGC(
              @NotNull BlobGarbageCollector blobGarbageCollector,
              @NotNull Executor executor)
focal_class.class_method_signature: BlobGC.startBlobGC(final boolean markOnly)
focal_class.full_signature: @NotNull @Override public CompositeData startBlobGC(final boolean markOnly)
focal_class.identifier: startBlobGC
focal_class.modifiers: @NotNull @Override public
focal_class.parameters: (final boolean markOnly)
focal_class.return: CompositeData
focal_class.signature: CompositeData startBlobGC(final boolean markOnly)
focal_class.class_method_signature: BlobGC.startBlobGC(final boolean markOnly, final boolean forceBlobIdRetrieve)
focal_class.full_signature: @Override public CompositeData startBlobGC(final boolean markOnly, final boolean forceBlobIdRetrieve)
focal_class.identifier: startBlobGC
focal_class.modifiers: @Override public
focal_class.parameters: (final boolean markOnly, final boolean forceBlobIdRetrieve)
focal_class.return: CompositeData
focal_class.signature: CompositeData startBlobGC(final boolean markOnly, final boolean forceBlobIdRetrieve)
focal_class.class_method_signature: BlobGC.getBlobGCStatus()
focal_class.full_signature: @NotNull @Override public CompositeData getBlobGCStatus()
focal_class.identifier: getBlobGCStatus
focal_class.modifiers: @NotNull @Override public
focal_class.parameters: ()
focal_class.return: CompositeData
focal_class.signature: CompositeData getBlobGCStatus()
focal_class.class_method_signature: BlobGC.checkConsistency()
focal_class.full_signature: @Override public CompositeData checkConsistency()
focal_class.identifier: checkConsistency
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: CompositeData
focal_class.signature: CompositeData checkConsistency()
focal_class.class_method_signature: BlobGC.getConsistencyCheckStatus()
focal_class.full_signature: @NotNull @Override public CompositeData getConsistencyCheckStatus()
focal_class.identifier: getConsistencyCheckStatus
focal_class.modifiers: @NotNull @Override public
focal_class.parameters: ()
focal_class.return: CompositeData
focal_class.signature: CompositeData getConsistencyCheckStatus()
focal_class.class_method_signature: BlobGC.getGlobalMarkStats()
focal_class.full_signature: @Override public TabularData getGlobalMarkStats()
focal_class.identifier: getGlobalMarkStats
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: TabularData
focal_class.signature: TabularData getGlobalMarkStats()
focal_class.class_method_signature: BlobGC.toCompositeData(GarbageCollectionRepoStats statObj)
focal_class.full_signature: private CompositeDataSupport toCompositeData(GarbageCollectionRepoStats statObj)
focal_class.identifier: toCompositeData
focal_class.modifiers: private
focal_class.parameters: (GarbageCollectionRepoStats statObj)
focal_class.return: CompositeDataSupport
focal_class.signature: CompositeDataSupport toCompositeData(GarbageCollectionRepoStats statObj)
focal_class.class_method_signature: BlobGC.createMarkCompositeType()
focal_class.full_signature: private static CompositeType createMarkCompositeType()
focal_class.identifier: createMarkCompositeType
focal_class.modifiers: private static
focal_class.parameters: ()
focal_class.return: CompositeType
focal_class.signature: CompositeType createMarkCompositeType()
focal_class.class_method_signature: BlobGC.getOperationStats()
focal_class.full_signature: @Override public TabularData getOperationStats()
focal_class.identifier: getOperationStats
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: TabularData
focal_class.signature: TabularData getOperationStats()
focal_class.class_method_signature: BlobGC.toCompositeData(OperationsStatsMBean statObj)
focal_class.full_signature: private CompositeData toCompositeData(OperationsStatsMBean statObj)
focal_class.identifier: toCompositeData
focal_class.modifiers: private
focal_class.parameters: (OperationsStatsMBean statObj)
focal_class.return: CompositeData
focal_class.signature: CompositeData toCompositeData(OperationsStatsMBean statObj)
focal_class.class_method_signature: BlobGC.createOpStatsCompositeType()
focal_class.full_signature: private static CompositeType createOpStatsCompositeType()
focal_class.identifier: createOpStatsCompositeType
focal_class.modifiers: private static
focal_class.parameters: ()
focal_class.return: CompositeType
focal_class.signature: CompositeType createOpStatsCompositeType()
focal_class.superclass: extends AnnotatedStandardMBean
focal_method.body: @Override
      public CompositeData checkConsistency() {
          if (consistencyOp.isDone()) {
              consistencyOp = newManagementOperation(CONSISTENCY_OP_NAME, new Callable<String>() {
                  @Override
                  public String call() throws Exception {
                      long t0 = nanoTime();
                      long missing = blobGarbageCollector.checkConsistency();
                      return "Consistency check completed in "
                          + formatTime(nanoTime() - t0) + ". " +
                          + missing + " missing blobs found (details in the log).";
                  }
              });
              executor.execute(consistencyOp);
          }
          return getConsistencyCheckStatus();
      }
focal_method.class_method_signature: BlobGC.checkConsistency()
focal_method.full_signature: @Override public CompositeData checkConsistency()
focal_method.identifier: checkConsistency
focal_method.invocations: isDone newManagementOperation nanoTime checkConsistency formatTime nanoTime execute getConsistencyCheckStatus
focal_method.modifiers: @Override public
focal_method.parameters: ()
focal_method.return: CompositeData
focal_method.signature: CompositeData checkConsistency()