@SuppressFBWarnings(value = "EI_EXPOSE_REP2", justification = "Intentional") public BulkWriteAction( byte[] tableName, BulkWrites writes, WriteConfiguration writeConfiguration, ActionStatusReporter statusReporter, BulkWriterFactory writerFactory, PipelineExceptionFactory pipelineExceptionFactory, PartitionFactory partitionFactory, Clock clock) { assert writes != null : "writes passed into BWA are null"; this.tableName = tableName; this.bulkWrites = writes; this.writeConfiguration = writeConfiguration; this.statusReporter = statusReporter; this.writerFactory = writerFactory; MetricFactory possibleMetricFactory = writeConfiguration.getMetricFactory(); this.metricFactory = possibleMetricFactory == null ? Metrics.noOpMetricFactory() : possibleMetricFactory; this.clock = clock; this.rejectedCounter = metricFactory.newCounter(); this.globalErrorCounter = metricFactory.newCounter(); this.partialFailureCounter = metricFactory.newCounter(); this.writtenCounter = metricFactory.newCounter(); this.retryCounter = metricFactory.newCounter(); this.writeTimer = metricFactory.newTimer(); this.pipelineExceptionFactory = pipelineExceptionFactory; this.partitionFactory = partitionFactory; thrownErrorsRows = metricFactory.newCounter(); retriedRows = metricFactory.newCounter(); partialRows = metricFactory.newCounter(); partialThrownErrorRows = metricFactory.newCounter(); partialRetriedRows = metricFactory.newCounter(); partialIgnoredRows = metricFactory.newCounter(); partialWrite = metricFactory.newCounter(); ignoredRows = metricFactory.newCounter(); catchThrownRows = metricFactory.newCounter(); catchRetriedRows = metricFactory.newCounter(); regionTooBusy = metricFactory.newCounter(); }