Copilot commented on code in PR #7052: URL: https://github.com/apache/hbase/pull/7052#discussion_r2119755889
########## hbase-diagnostics/src/main/java/org/apache/hadoop/hbase/PerformanceEvaluation.java: ########## @@ -2843,7 +2845,71 @@ protected static void printUsage(final String shortName, final String message) { * arguments. */ static TestOptions parseOpts(Queue<String> args) { - TestOptions opts = new TestOptions(); + final TestOptions opts = new TestOptions(); + + final Map<String, Consumer<Boolean>> flagHandlers = new HashMap<>(); + flagHandlers.put("nomapred", v -> opts.nomapred = v); + flagHandlers.put("flushCommits", v -> opts.flushCommits = v); + flagHandlers.put("writeToWAL", v -> opts.writeToWAL = v); + flagHandlers.put("inmemory", v -> opts.inMemoryCF = v); + flagHandlers.put("autoFlush", v -> opts.autoFlush = v); + flagHandlers.put("oneCon", v -> opts.oneCon = v); + flagHandlers.put("latency", v -> opts.reportLatency = v); + flagHandlers.put("usetags", v -> opts.useTags = v); + flagHandlers.put("filterAll", v -> opts.filterAll = v); + flagHandlers.put("valueRandom", v -> opts.valueRandom = v); + flagHandlers.put("valueZipf", v -> opts.valueZipf = v); + flagHandlers.put("addColumns", v -> opts.addColumns = v); + flagHandlers.put("asyncPrefetch", v -> opts.asyncPrefetch = v); + flagHandlers.put("cacheBlocks", v -> opts.cacheBlocks = v); + + final Map<String, Consumer<String>> handlers = new HashMap<>(); + handlers.put("rows", v -> opts.perClientRunRows = Long.parseLong(v)); + handlers.put("cycles", v -> opts.cycles = Integer.parseInt(v)); + handlers.put("sampleRate", v -> opts.sampleRate = Float.parseFloat(v)); + handlers.put("table", v -> opts.tableName = v); + handlers.put("startRow", v -> opts.startRow = Long.parseLong(v)); + handlers.put("compress", v -> opts.compression = Compression.Algorithm.valueOf(v)); + handlers.put("encryption", v -> opts.encryption = v); + handlers.put("traceRate", v -> opts.traceRate = Double.parseDouble(v)); + handlers.put("blockEncoding", v -> opts.blockEncoding = DataBlockEncoding.valueOf(v)); + handlers.put("presplit", v -> opts.presplitRegions = Integer.parseInt(v)); + handlers.put("connCount", v -> opts.connCount = Integer.parseInt(v)); + handlers.put("latencyThreshold", v -> opts.latencyThreshold = Integer.parseInt(v)); + handlers.put("multiGet", v -> opts.multiGet = Integer.parseInt(v)); + handlers.put("multiPut", v -> opts.multiPut = Integer.parseInt(v)); + handlers.put("numoftags", v -> opts.noOfTags = Integer.parseInt(v)); + handlers.put("replicas", v -> opts.replicas = Integer.parseInt(v)); + handlers.put("size", v -> { + opts.size = Float.parseFloat(v); + if (opts.size <= 1.0f) { + throw new IllegalStateException("Size must be > 1; i.e. 1GB"); + } + }); + handlers.put("splitPolicy", v -> opts.splitPolicy = v); + handlers.put("randomSleep", v -> opts.randomSleep = Integer.parseInt(v)); + handlers.put("measureAfter", v -> opts.measureAfter = Integer.parseInt(v)); + handlers.put("bloomFilter", v -> opts.bloomType = BloomType.valueOf(v)); + handlers.put("blockSize", v -> opts.blockSize = Integer.parseInt(v)); + handlers.put("valueSize", v -> opts.valueSize = Integer.parseInt(v)); + handlers.put("period", v -> opts.period = Integer.parseInt(v)); + handlers.put("inmemoryCompaction", + v -> opts.inMemoryCompaction = MemoryCompactionPolicy.valueOf(v)); + handlers.put("columns", v -> opts.columns = Integer.parseInt(v)); + handlers.put("families", v -> opts.families = Integer.parseInt(v)); + handlers.put("caching", v -> opts.caching = Integer.parseInt(v)); + handlers.put("scanReadType", v -> opts.scanReadType = Scan.ReadType.valueOf(v.toUpperCase())); + handlers.put("bufferSize", v -> opts.bufferSize = Long.parseLong(v)); + handlers.put("commandPropertiesFile", fileName -> { + final Properties properties = new Properties(); + try { + properties.load(PerformanceEvaluation.class.getClassLoader().getResourceAsStream(fileName)); Review Comment: Consider adding a null-check after getResourceAsStream(fileName) before calling properties.load to avoid a potential NullPointerException. ```suggestion var resourceStream = PerformanceEvaluation.class.getClassLoader().getResourceAsStream(fileName); if (resourceStream == null) { throw new IllegalStateException("Resource file not found: " + fileName); } properties.load(resourceStream); ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@hbase.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org