From 15e39ecd2036aad8dd92f94b7d96129c6a6da3a5 Mon Sep 17 00:00:00 2001 From: Brian Kroth Date: Thu, 7 Dec 2023 22:49:07 +0000 Subject: [PATCH 01/56] enable compiler warnings and linting --- pom.xml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pom.xml b/pom.xml index 04d1d5877..b7d0c9caa 100644 --- a/pom.xml +++ b/pom.xml @@ -282,6 +282,14 @@ ${maven.compiler.source} ${maven.compiler.target} + true + + + + -Xlint:all,-processing + + -Werror + From d66eaba578ff8dfa437c79cc7754fcd73de9e63e Mon Sep 17 00:00:00 2001 From: Brian Kroth Date: Thu, 7 Dec 2023 22:47:53 +0000 Subject: [PATCH 02/56] address some trailing whitespace warnings --- .../tpcc/procedures/OrderStatus.java | 32 +++++++++---------- .../benchmarks/tpcc/procedures/Payment.java | 2 +- .../tpcc/procedures/StockLevel.java | 6 ++-- 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/src/main/java/com/oltpbenchmark/benchmarks/tpcc/procedures/OrderStatus.java b/src/main/java/com/oltpbenchmark/benchmarks/tpcc/procedures/OrderStatus.java index 0dc158b69..7ab943e51 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/tpcc/procedures/OrderStatus.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/tpcc/procedures/OrderStatus.java @@ -40,17 +40,17 @@ public class OrderStatus extends TPCCProcedure { public SQLStmt ordStatGetNewestOrdSQL = new SQLStmt( """ - SELECT O_ID, O_CARRIER_ID, O_ENTRY_D + SELECT O_ID, O_CARRIER_ID, O_ENTRY_D FROM %s - WHERE O_W_ID = ? - AND O_D_ID = ? - AND O_C_ID = ? + WHERE O_W_ID = ? + AND O_D_ID = ? + AND O_C_ID = ? ORDER BY O_ID DESC LIMIT 1 """.formatted(TPCCConstants.TABLENAME_OPENORDER)); public SQLStmt ordStatGetOrderLinesSQL = new SQLStmt( """ - SELECT OL_I_ID, OL_SUPPLY_W_ID, OL_QUANTITY, OL_AMOUNT, OL_DELIVERY_D + SELECT OL_I_ID, OL_SUPPLY_W_ID, OL_QUANTITY, OL_AMOUNT, OL_DELIVERY_D FROM %s WHERE OL_O_ID = ? AND OL_D_ID = ? @@ -59,24 +59,24 @@ public class OrderStatus extends TPCCProcedure { public SQLStmt payGetCustSQL = new SQLStmt( """ - SELECT C_FIRST, C_MIDDLE, C_LAST, C_STREET_1, C_STREET_2, - C_CITY, C_STATE, C_ZIP, C_PHONE, C_CREDIT, C_CREDIT_LIM, - C_DISCOUNT, C_BALANCE, C_YTD_PAYMENT, C_PAYMENT_CNT, C_SINCE + SELECT C_FIRST, C_MIDDLE, C_LAST, C_STREET_1, C_STREET_2, + C_CITY, C_STATE, C_ZIP, C_PHONE, C_CREDIT, C_CREDIT_LIM, + C_DISCOUNT, C_BALANCE, C_YTD_PAYMENT, C_PAYMENT_CNT, C_SINCE FROM %s - WHERE C_W_ID = ? - AND C_D_ID = ? + WHERE C_W_ID = ? + AND C_D_ID = ? AND C_ID = ? """.formatted(TPCCConstants.TABLENAME_CUSTOMER)); public SQLStmt customerByNameSQL = new SQLStmt( """ - SELECT C_FIRST, C_MIDDLE, C_ID, C_STREET_1, C_STREET_2, C_CITY, - C_STATE, C_ZIP, C_PHONE, C_CREDIT, C_CREDIT_LIM, C_DISCOUNT, - C_BALANCE, C_YTD_PAYMENT, C_PAYMENT_CNT, C_SINCE + SELECT C_FIRST, C_MIDDLE, C_ID, C_STREET_1, C_STREET_2, C_CITY, + C_STATE, C_ZIP, C_PHONE, C_CREDIT, C_CREDIT_LIM, C_DISCOUNT, + C_BALANCE, C_YTD_PAYMENT, C_PAYMENT_CNT, C_SINCE FROM %s - WHERE C_W_ID = ? - AND C_D_ID = ? - AND C_LAST = ? + WHERE C_W_ID = ? + AND C_D_ID = ? + AND C_LAST = ? ORDER BY C_FIRST """.formatted(TPCCConstants.TABLENAME_CUSTOMER)); diff --git a/src/main/java/com/oltpbenchmark/benchmarks/tpcc/procedures/Payment.java b/src/main/java/com/oltpbenchmark/benchmarks/tpcc/procedures/Payment.java index 2a55c6d5c..1531a87eb 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/tpcc/procedures/Payment.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/tpcc/procedures/Payment.java @@ -41,7 +41,7 @@ public class Payment extends TPCCProcedure { """ UPDATE %s SET W_YTD = W_YTD + ? - WHERE W_ID = ? + WHERE W_ID = ? """.formatted(TPCCConstants.TABLENAME_WAREHOUSE)); public SQLStmt payGetWhseSQL = new SQLStmt( diff --git a/src/main/java/com/oltpbenchmark/benchmarks/tpcc/procedures/StockLevel.java b/src/main/java/com/oltpbenchmark/benchmarks/tpcc/procedures/StockLevel.java index ca5f836b4..307014450 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/tpcc/procedures/StockLevel.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/tpcc/procedures/StockLevel.java @@ -36,15 +36,15 @@ public class StockLevel extends TPCCProcedure { public SQLStmt stockGetDistOrderIdSQL = new SQLStmt( """ - SELECT D_NEXT_O_ID + SELECT D_NEXT_O_ID FROM %s - WHERE D_W_ID = ? + WHERE D_W_ID = ? AND D_ID = ? """.formatted(TPCCConstants.TABLENAME_DISTRICT)); public SQLStmt stockGetCountStockSQL = new SQLStmt( """ - SELECT COUNT(DISTINCT (S_I_ID)) AS STOCK_COUNT + SELECT COUNT(DISTINCT (S_I_ID)) AS STOCK_COUNT FROM %s, %s WHERE OL_W_ID = ? AND OL_D_ID = ? From 3b3906c1065777daebd0f2ff61908dcb6b7490d4 Mon Sep 17 00:00:00 2001 From: Brian Kroth Date: Fri, 8 Dec 2023 16:49:10 +0000 Subject: [PATCH 03/56] compiler fixups --- .../benchmarks/auctionmark/AuctionMarkProfile.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkProfile.java b/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkProfile.java index fb3a38f00..d985f9273 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkProfile.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkProfile.java @@ -108,6 +108,8 @@ public class AuctionMarkProfile { */ protected transient Histogram items_per_category = new Histogram<>(); + class ItemInfoList extends LinkedList {} + /** * Three status types for an item: * (1) Available - The auction of this item is still open @@ -117,13 +119,13 @@ public class AuctionMarkProfile { * (3) Complete (The auction is closed and (There is no bid winner or * the bid winner has already purchased the item) */ - private transient final LinkedList items_available = new LinkedList<>(); - private transient final LinkedList items_endingSoon = new LinkedList<>(); - private transient final LinkedList items_waitingForPurchase = new LinkedList<>(); - private transient final LinkedList items_completed = new LinkedList<>(); + private transient final ItemInfoList items_available = new ItemInfoList(); + private transient final ItemInfoList items_endingSoon = new ItemInfoList(); + private transient final ItemInfoList items_waitingForPurchase = new ItemInfoList(); + private transient final ItemInfoList items_completed = new ItemInfoList(); + - @SuppressWarnings("unchecked") - protected transient final LinkedList[] allItemSets = new LinkedList[]{ + protected transient final ItemInfoList allItemSets[] = new ItemInfoList[]{ this.items_available, this.items_endingSoon, this.items_waitingForPurchase, From 092e06d94572e9cf5297307b2575437b5e194a83 Mon Sep 17 00:00:00 2001 From: Brian Kroth Date: Fri, 8 Dec 2023 16:49:25 +0000 Subject: [PATCH 04/56] compiler fixups --- src/main/java/com/oltpbenchmark/benchmarks/tpcc/pojo/Stock.java | 1 + src/main/java/com/oltpbenchmark/catalog/Index.java | 2 ++ src/main/java/com/oltpbenchmark/util/RandomGenerator.java | 1 + 3 files changed, 4 insertions(+) diff --git a/src/main/java/com/oltpbenchmark/benchmarks/tpcc/pojo/Stock.java b/src/main/java/com/oltpbenchmark/benchmarks/tpcc/pojo/Stock.java index acdd52686..fde832b1e 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/tpcc/pojo/Stock.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/tpcc/pojo/Stock.java @@ -21,6 +21,7 @@ import java.io.Serializable; public class Stock implements Serializable { + static final long serialVersionUID = 0; public int s_i_id; // PRIMARY KEY 2 public int s_w_id; // PRIMARY KEY 1 diff --git a/src/main/java/com/oltpbenchmark/catalog/Index.java b/src/main/java/com/oltpbenchmark/catalog/Index.java index e0b2bc5c0..5fb00d3fd 100644 --- a/src/main/java/com/oltpbenchmark/catalog/Index.java +++ b/src/main/java/com/oltpbenchmark/catalog/Index.java @@ -33,6 +33,8 @@ public class Index extends AbstractCatalogObject { private final boolean unique; static class IndexColumn implements Serializable { + static final long serialVersionUID = 0; + private final String name; private final SortDirectionType dir; diff --git a/src/main/java/com/oltpbenchmark/util/RandomGenerator.java b/src/main/java/com/oltpbenchmark/util/RandomGenerator.java index e25e526b0..3e1fa627f 100644 --- a/src/main/java/com/oltpbenchmark/util/RandomGenerator.java +++ b/src/main/java/com/oltpbenchmark/util/RandomGenerator.java @@ -21,6 +21,7 @@ import java.util.Random; public class RandomGenerator extends Random { + static final long serialVersionUID = 0; /** * Constructor From 803863602da25a3fc92d53d7c48dc615da32875c Mon Sep 17 00:00:00 2001 From: Brian Kroth Date: Fri, 8 Dec 2023 17:21:55 +0000 Subject: [PATCH 05/56] add some warning suppressions for unused variables --- .../benchmarks/auctionmark/AuctionMarkBenchmark.java | 5 +---- .../benchmarks/auctionmark/AuctionMarkLoader.java | 1 + .../benchmarks/auctionmark/AuctionMarkWorker.java | 6 ++++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkBenchmark.java b/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkBenchmark.java index 1fbeebf1c..c2aade760 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkBenchmark.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkBenchmark.java @@ -34,10 +34,9 @@ import java.util.List; public class AuctionMarkBenchmark extends BenchmarkModule { - + @SuppressWarnings("unused") private static final Logger LOG = LoggerFactory.getLogger(AuctionMarkBenchmark.class); - private final RandomGenerator rng = new RandomGenerator((int) System.currentTimeMillis()); public AuctionMarkBenchmark(WorkloadConfiguration workConf) { @@ -70,6 +69,4 @@ protected List> makeWorkersImpl() { protected Loader makeLoaderImpl() { return new AuctionMarkLoader(this); } - - } diff --git a/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkLoader.java b/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkLoader.java index dae155a5e..6572c1a7c 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkLoader.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkLoader.java @@ -1195,6 +1195,7 @@ protected class ItemBidGenerator extends SubTableGenerator { private LoaderItemInfo.Bid bid = null; private float currentBidPriceAdvanceStep; private long currentCreateDateAdvanceStep; + @SuppressWarnings("unused") // spurious private float currentPrice; private boolean new_item; diff --git a/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkWorker.java b/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkWorker.java index 6aa9d6181..604852be5 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkWorker.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkWorker.java @@ -404,8 +404,10 @@ protected TransactionStatus executeWork(Connection conn, TransactionType txnType public ItemId processItemRecord(Object[] row) { int col = 0; ItemId i_id = new ItemId(SQLUtil.getString(row[col++])); // i_id - String i_u_id = SQLUtil.getString(row[col++]); // i_u_id - String i_name = (String) row[col++]; // i_name + @SuppressWarnings("unused") + String i_u_id = SQLUtil.getString(row[col++]); // i_u_id + @SuppressWarnings("unused") + String i_name = (String) row[col++]; // i_name double i_current_price = SQLUtil.getDouble(row[col++]); // i_current_price long i_num_bids = SQLUtil.getLong(row[col++]); // i_num_bids Timestamp i_end_date = SQLUtil.getTimestamp(row[col++]);// i_end_date From 139c95343b3ae8c2729afc6edb7d991e4ee30197 Mon Sep 17 00:00:00 2001 From: Brian Kroth Date: Fri, 8 Dec 2023 17:22:35 +0000 Subject: [PATCH 06/56] omit those entirely --- .../oltpbenchmark/benchmarks/auctionmark/AuctionMarkWorker.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkWorker.java b/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkWorker.java index 604852be5..8f14f6044 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkWorker.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkWorker.java @@ -404,10 +404,12 @@ protected TransactionStatus executeWork(Connection conn, TransactionType txnType public ItemId processItemRecord(Object[] row) { int col = 0; ItemId i_id = new ItemId(SQLUtil.getString(row[col++])); // i_id + /* @SuppressWarnings("unused") String i_u_id = SQLUtil.getString(row[col++]); // i_u_id @SuppressWarnings("unused") String i_name = (String) row[col++]; // i_name + */ double i_current_price = SQLUtil.getDouble(row[col++]); // i_current_price long i_num_bids = SQLUtil.getLong(row[col++]); // i_num_bids Timestamp i_end_date = SQLUtil.getTimestamp(row[col++]);// i_end_date From 259cca6a8467c5deec00ef8542b675fdda5a2f51 Mon Sep 17 00:00:00 2001 From: Brian Kroth Date: Fri, 8 Dec 2023 17:22:53 +0000 Subject: [PATCH 07/56] fixups --- .../benchmarks/auctionmark/AuctionMarkProfile.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkProfile.java b/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkProfile.java index d985f9273..0190c5305 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkProfile.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkProfile.java @@ -76,6 +76,7 @@ public class AuctionMarkProfile { // ---------------------------------------------------------------- // SERIALIZABLE DATA MEMBERS // ---------------------------------------------------------------- + static final long serialVersionUID = 0; /** * Database Scale Factor @@ -108,7 +109,9 @@ public class AuctionMarkProfile { */ protected transient Histogram items_per_category = new Histogram<>(); - class ItemInfoList extends LinkedList {} + class ItemInfoList extends LinkedList { + static final long serialVersionUID = 0; + } /** * Three status types for an item: From 77c74ae19ee175a7e1dc177f3e7ee89a2abfcd46 Mon Sep 17 00:00:00 2001 From: Brian Kroth Date: Fri, 8 Dec 2023 17:23:04 +0000 Subject: [PATCH 08/56] whitespace --- .../benchmarks/auctionmark/AuctionMarkProfile.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkProfile.java b/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkProfile.java index 0190c5305..6d2f78f99 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkProfile.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkProfile.java @@ -291,7 +291,7 @@ private AuctionMarkProfile copyProfile(AuctionMarkWorker worker, AuctionMarkProf this.items_per_category = other.items_per_category; this.gag_ids = other.gag_ids; - // Initialize the UserIdGenerator so we can figure out whether our + // Initialize the UserIdGenerator so we can figure out whether our // client should even have these ids this.initializeUserIdGenerator(this.client_id); @@ -866,7 +866,7 @@ private ItemInfo getRandomItem(LinkedList itemSet, boolean needCurrent continue; } - // If they want an item that is ending in the future, then we compare it with + // If they want an item that is ending in the future, then we compare it with // the current timestamp if (needFutureEndDate) { boolean compareTo = (temp.getEndDate().compareTo(currentTime) < 0); From 7abe2e892b126288f0f23422b7a0a6ae3989277e Mon Sep 17 00:00:00 2001 From: Brian Kroth Date: Fri, 8 Dec 2023 17:23:13 +0000 Subject: [PATCH 09/56] use autoclose --- .../oltpbenchmark/benchmarks/tatp/procedures/GetAccessData.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/oltpbenchmark/benchmarks/tatp/procedures/GetAccessData.java b/src/main/java/com/oltpbenchmark/benchmarks/tatp/procedures/GetAccessData.java index 466391c7a..886dd0668 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/tatp/procedures/GetAccessData.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/tatp/procedures/GetAccessData.java @@ -39,7 +39,7 @@ public void run(Connection conn, long s_id, byte ai_type) throws SQLException { stmt.setLong(1, s_id); stmt.setByte(2, ai_type); try (ResultSet results = stmt.executeQuery()) { - + assert results != null; } } } From a3f7fec53eed4009ef3ea95cc8456191d921950b Mon Sep 17 00:00:00 2001 From: Brian Kroth Date: Fri, 8 Dec 2023 17:24:57 +0000 Subject: [PATCH 10/56] remove more suppressed cast issues --- .../wikipedia/WikipediaBenchmark.java | 19 +++++++++---------- .../util/RandomDistribution.java | 7 +++++++ 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/oltpbenchmark/benchmarks/wikipedia/WikipediaBenchmark.java b/src/main/java/com/oltpbenchmark/benchmarks/wikipedia/WikipediaBenchmark.java index 18ea0e70c..445c13cc7 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/wikipedia/WikipediaBenchmark.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/wikipedia/WikipediaBenchmark.java @@ -23,7 +23,7 @@ import com.oltpbenchmark.api.Worker; import com.oltpbenchmark.benchmarks.wikipedia.data.RevisionHistograms; import com.oltpbenchmark.benchmarks.wikipedia.procedures.AddWatchList; -import com.oltpbenchmark.util.RandomDistribution.FlatHistogram; +import com.oltpbenchmark.util.RandomDistribution.IntegerFlatHistogram; import com.oltpbenchmark.util.TextGenerator; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -34,22 +34,21 @@ public class WikipediaBenchmark extends BenchmarkModule { private static final Logger LOG = LoggerFactory.getLogger(WikipediaBenchmark.class); - protected final FlatHistogram commentLength; - protected final FlatHistogram minorEdit; - private final FlatHistogram[] revisionDeltas; + protected final IntegerFlatHistogram commentLength; + protected final IntegerFlatHistogram minorEdit; + private final IntegerFlatHistogram[] revisionDeltas; protected final int num_users; protected final int num_pages; - @SuppressWarnings("unchecked") public WikipediaBenchmark(WorkloadConfiguration workConf) { super(workConf); - this.commentLength = new FlatHistogram<>(this.rng(), RevisionHistograms.COMMENT_LENGTH); - this.minorEdit = new FlatHistogram<>(this.rng(), RevisionHistograms.MINOR_EDIT); - this.revisionDeltas = new FlatHistogram[RevisionHistograms.REVISION_DELTA_SIZES.length]; + this.commentLength = new IntegerFlatHistogram(this.rng(), RevisionHistograms.COMMENT_LENGTH); + this.minorEdit = new IntegerFlatHistogram(this.rng(), RevisionHistograms.MINOR_EDIT); + this.revisionDeltas = new IntegerFlatHistogram[RevisionHistograms.REVISION_DELTA_SIZES.length]; for (int i = 0; i < this.revisionDeltas.length; i++) { - this.revisionDeltas[i] = new FlatHistogram<>(this.rng(), RevisionHistograms.REVISION_DELTAS[i]); + this.revisionDeltas[i] = new IntegerFlatHistogram(this.rng(), RevisionHistograms.REVISION_DELTAS[i]); } this.num_users = (int) Math.ceil(WikipediaConstants.USERS * this.getWorkloadConfiguration().getScaleFactor()); @@ -72,7 +71,7 @@ protected char[] generateRevisionText(char[] orig_text) { // Where is your god now? // There is probably some sort of minimal size that we should adhere to, // but it's 12:30am and I simply don't feel like dealing with that now - FlatHistogram h = null; + IntegerFlatHistogram h = null; for (int i = 0; i < this.revisionDeltas.length - 1; i++) { if (orig_text.length <= RevisionHistograms.REVISION_DELTA_SIZES[i]) { h = this.revisionDeltas[i]; diff --git a/src/main/java/com/oltpbenchmark/util/RandomDistribution.java b/src/main/java/com/oltpbenchmark/util/RandomDistribution.java index b77000294..c102dfea5 100644 --- a/src/main/java/com/oltpbenchmark/util/RandomDistribution.java +++ b/src/main/java/com/oltpbenchmark/util/RandomDistribution.java @@ -240,6 +240,13 @@ protected long nextLongImpl() { } } + public static class IntegerFlatHistogram extends FlatHistogram { + private static final long serialVersionUID = 1L; + public IntegerFlatHistogram(Random random, Histogram histogram) { + super(random, histogram); + } + } + /** * Gaussian Distribution */ From 554406df6984891f99eef06d03378f8f5b211e84 Mon Sep 17 00:00:00 2001 From: Brian Kroth Date: Fri, 8 Dec 2023 18:20:47 +0000 Subject: [PATCH 11/56] unnecessary cast --- .../oltpbenchmark/benchmarks/otmetrics/OTMetricsBenchmark.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/oltpbenchmark/benchmarks/otmetrics/OTMetricsBenchmark.java b/src/main/java/com/oltpbenchmark/benchmarks/otmetrics/OTMetricsBenchmark.java index 86e9cc42b..cad30ccc4 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/otmetrics/OTMetricsBenchmark.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/otmetrics/OTMetricsBenchmark.java @@ -45,7 +45,7 @@ public OTMetricsBenchmark(WorkloadConfiguration workConf) { // Compute the number of records per table. this.num_sources = (int) Math.round(OTMetricsConstants.NUM_SOURCES * workConf.getScaleFactor()); this.num_sessions = (int) Math.round(OTMetricsConstants.NUM_SESSIONS * workConf.getScaleFactor()); - this.num_observations = (long) Math.round(OTMetricsConstants.NUM_OBSERVATIONS * workConf.getScaleFactor()); + this.num_observations = Math.round(OTMetricsConstants.NUM_OBSERVATIONS * workConf.getScaleFactor()); } @Override From 79e71875295e06143872661678306db6fe1d7c6f Mon Sep 17 00:00:00 2001 From: Brian Kroth Date: Fri, 8 Dec 2023 18:21:23 +0000 Subject: [PATCH 12/56] avoid unused errors --- .../benchmarks/resourcestresser/procedures/CPU1.java | 1 + .../benchmarks/resourcestresser/procedures/CPU2.java | 1 + .../benchmarks/tatp/procedures/GetNewDestination.java | 2 +- .../benchmarks/tatp/procedures/GetSubscriberData.java | 2 +- .../benchmarks/tatp/procedures/InsertCallForwarding.java | 2 +- .../benchmarks/twitter/procedures/GetFollowers.java | 1 + .../oltpbenchmark/benchmarks/twitter/procedures/GetTweet.java | 1 + .../benchmarks/twitter/procedures/GetTweetsFromFollowing.java | 1 + .../benchmarks/twitter/procedures/GetUserTweets.java | 1 + 9 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/oltpbenchmark/benchmarks/resourcestresser/procedures/CPU1.java b/src/main/java/com/oltpbenchmark/benchmarks/resourcestresser/procedures/CPU1.java index 95fe70c49..2df497786 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/resourcestresser/procedures/CPU1.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/resourcestresser/procedures/CPU1.java @@ -53,6 +53,7 @@ public void run(Connection conn, int howManyPerTransaction, int sleepLength, int // TODO: Is this the right place to sleep? With rs open??? try (ResultSet rs = stmt.executeQuery()) { + assert rs != null; try { Thread.sleep(sleepLength); } catch (InterruptedException e) { diff --git a/src/main/java/com/oltpbenchmark/benchmarks/resourcestresser/procedures/CPU2.java b/src/main/java/com/oltpbenchmark/benchmarks/resourcestresser/procedures/CPU2.java index b6d515f12..194bb6279 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/resourcestresser/procedures/CPU2.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/resourcestresser/procedures/CPU2.java @@ -52,6 +52,7 @@ public void run(Connection conn, int howManyPerTransaction, int sleepLength, int // TODO: Is this the right place to sleep? With rs open??? try (ResultSet rs = stmt.executeQuery()) { + assert rs != null; try { Thread.sleep(sleepLength); } catch (InterruptedException e) { diff --git a/src/main/java/com/oltpbenchmark/benchmarks/tatp/procedures/GetNewDestination.java b/src/main/java/com/oltpbenchmark/benchmarks/tatp/procedures/GetNewDestination.java index d0ea2dc94..ee9a833b5 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/tatp/procedures/GetNewDestination.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/tatp/procedures/GetNewDestination.java @@ -49,7 +49,7 @@ public void run(Connection conn, long s_id, byte sf_type, byte start_time, byte stmt.setByte(3, start_time); stmt.setByte(4, end_time); try (ResultSet results = stmt.executeQuery()) { - + assert results != null; } } } diff --git a/src/main/java/com/oltpbenchmark/benchmarks/tatp/procedures/GetSubscriberData.java b/src/main/java/com/oltpbenchmark/benchmarks/tatp/procedures/GetSubscriberData.java index 77fd0ec7c..a0c95144b 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/tatp/procedures/GetSubscriberData.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/tatp/procedures/GetSubscriberData.java @@ -35,7 +35,7 @@ public void run(Connection conn, long s_id) throws SQLException { try (PreparedStatement stmt = this.getPreparedStatement(conn, getSubscriber)) { stmt.setLong(1, s_id); try (ResultSet results = stmt.executeQuery()) { - + assert results != null; } } } diff --git a/src/main/java/com/oltpbenchmark/benchmarks/tatp/procedures/InsertCallForwarding.java b/src/main/java/com/oltpbenchmark/benchmarks/tatp/procedures/InsertCallForwarding.java index 0f21e0ef9..7239186a5 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/tatp/procedures/InsertCallForwarding.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/tatp/procedures/InsertCallForwarding.java @@ -56,7 +56,7 @@ public long run(Connection conn, String sub_nbr, byte sf_type, byte start_time, try (PreparedStatement stmt = this.getPreparedStatement(conn, getSpecialFacility)) { stmt.setLong(1, s_id); try (ResultSet results = stmt.executeQuery()) { - + assert results != null; } } diff --git a/src/main/java/com/oltpbenchmark/benchmarks/twitter/procedures/GetFollowers.java b/src/main/java/com/oltpbenchmark/benchmarks/twitter/procedures/GetFollowers.java index 12eb175f9..e78b5b3e2 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/twitter/procedures/GetFollowers.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/twitter/procedures/GetFollowers.java @@ -52,6 +52,7 @@ public void run(Connection conn, long uid) throws SQLException { getFollowerNamesstmt.setLong(ctr, last); } try (ResultSet getFollowerNamesrs = getFollowerNamesstmt.executeQuery()) { + assert getFollowerNamesrs != null; } } } diff --git a/src/main/java/com/oltpbenchmark/benchmarks/twitter/procedures/GetTweet.java b/src/main/java/com/oltpbenchmark/benchmarks/twitter/procedures/GetTweet.java index 8c94295d8..ae72db178 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/twitter/procedures/GetTweet.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/twitter/procedures/GetTweet.java @@ -36,6 +36,7 @@ public void run(Connection conn, long tweet_id) throws SQLException { try (PreparedStatement stmt = this.getPreparedStatement(conn, getTweet)) { stmt.setLong(1, tweet_id); try (ResultSet rs = stmt.executeQuery()) { + assert rs != null; } } } diff --git a/src/main/java/com/oltpbenchmark/benchmarks/twitter/procedures/GetTweetsFromFollowing.java b/src/main/java/com/oltpbenchmark/benchmarks/twitter/procedures/GetTweetsFromFollowing.java index d29492dce..c726ab571 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/twitter/procedures/GetTweetsFromFollowing.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/twitter/procedures/GetTweetsFromFollowing.java @@ -54,6 +54,7 @@ public void run(Connection conn, int uid) throws SQLException { stmt.setLong(ctr, last); } try (ResultSet getTweetsResult = stmt.executeQuery()) { + assert getTweetsResult != null; } } else { // LOG.debug("No followers for user: "+uid); // so what .. ? diff --git a/src/main/java/com/oltpbenchmark/benchmarks/twitter/procedures/GetUserTweets.java b/src/main/java/com/oltpbenchmark/benchmarks/twitter/procedures/GetUserTweets.java index 6815f4095..cd5e633c2 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/twitter/procedures/GetUserTweets.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/twitter/procedures/GetUserTweets.java @@ -34,6 +34,7 @@ public void run(Connection conn, long uid) throws SQLException { try (PreparedStatement stmt = this.getPreparedStatement(conn, getTweets)) { stmt.setLong(1, uid); try (ResultSet rs = stmt.executeQuery()) { + assert rs != null; } } } From d93caf76bf23d44bb99471a08b7267b16d34cb4d Mon Sep 17 00:00:00 2001 From: Brian Kroth Date: Fri, 8 Dec 2023 18:21:43 +0000 Subject: [PATCH 13/56] add serialization requirements --- .../java/com/oltpbenchmark/benchmarks/tpcc/pojo/District.java | 1 + .../java/com/oltpbenchmark/benchmarks/tpcc/pojo/NewOrder.java | 1 + .../java/com/oltpbenchmark/benchmarks/tpcc/pojo/Warehouse.java | 1 + 3 files changed, 3 insertions(+) diff --git a/src/main/java/com/oltpbenchmark/benchmarks/tpcc/pojo/District.java b/src/main/java/com/oltpbenchmark/benchmarks/tpcc/pojo/District.java index 2b95eaeed..f60fce86e 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/tpcc/pojo/District.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/tpcc/pojo/District.java @@ -21,6 +21,7 @@ import java.io.Serializable; public class District implements Serializable { + static final long serialVersionUID = 0; public int d_id; public int d_w_id; diff --git a/src/main/java/com/oltpbenchmark/benchmarks/tpcc/pojo/NewOrder.java b/src/main/java/com/oltpbenchmark/benchmarks/tpcc/pojo/NewOrder.java index 8f09c0ad9..2614bb881 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/tpcc/pojo/NewOrder.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/tpcc/pojo/NewOrder.java @@ -21,6 +21,7 @@ import java.io.Serializable; public class NewOrder implements Serializable { + private static final long serialVersionUID = 1L; public int no_w_id; public int no_d_id; diff --git a/src/main/java/com/oltpbenchmark/benchmarks/tpcc/pojo/Warehouse.java b/src/main/java/com/oltpbenchmark/benchmarks/tpcc/pojo/Warehouse.java index 2f4b4b5ea..6e5a9d22e 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/tpcc/pojo/Warehouse.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/tpcc/pojo/Warehouse.java @@ -21,6 +21,7 @@ import java.io.Serializable; public class Warehouse implements Serializable { + static final long serialVersionUID = 0; public int w_id; // PRIMARY KEY public float w_ytd; From 7f89237decde9c7b9648be3e8bc60d736f39bd6c Mon Sep 17 00:00:00 2001 From: Brian Kroth Date: Fri, 8 Dec 2023 18:22:14 +0000 Subject: [PATCH 14/56] whitespace --- .../benchmarks/twitter/procedures/GetFollowers.java | 2 +- src/main/java/com/oltpbenchmark/util/JSONUtil.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/oltpbenchmark/benchmarks/twitter/procedures/GetFollowers.java b/src/main/java/com/oltpbenchmark/benchmarks/twitter/procedures/GetFollowers.java index e78b5b3e2..93fad32ab 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/twitter/procedures/GetFollowers.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/twitter/procedures/GetFollowers.java @@ -58,7 +58,7 @@ public void run(Connection conn, long uid) throws SQLException { } } } - // LOG.warn("No followers for user : "+uid); //... so what ? + // LOG.warn("No followers for user : "+uid); //... so what ? } } diff --git a/src/main/java/com/oltpbenchmark/util/JSONUtil.java b/src/main/java/com/oltpbenchmark/util/JSONUtil.java index 81ea84beb..56c10b019 100644 --- a/src/main/java/com/oltpbenchmark/util/JSONUtil.java +++ b/src/main/java/com/oltpbenchmark/util/JSONUtil.java @@ -362,7 +362,7 @@ protected static void readMapField(final JSONObject json_object, final Map map, @SuppressWarnings("unchecked") protected static void readCollectionField(final JSONArray json_array, final Collection collection, final Stack inner_classes) throws Exception { // We need to figure out what the inner type of the collection is - // If it's a Collection or a Map, then we need to instantiate it before + // If it's a Collection or a Map, then we need to instantiate it before // we can call readFieldValue() again for it. Class inner_class = inner_classes.pop(); Collection> inner_interfaces = ClassUtil.getInterfaces(inner_class); From ff5507de6a424b0ec56eb3133aef4072592e6b3d Mon Sep 17 00:00:00 2001 From: Brian Kroth Date: Fri, 8 Dec 2023 18:22:41 +0000 Subject: [PATCH 15/56] more minor avoid raw type issues --- .../benchmarks/wikipedia/data/RevisionHistograms.java | 11 ++++++----- src/main/java/com/oltpbenchmark/util/StringUtil.java | 5 ++++- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/oltpbenchmark/benchmarks/wikipedia/data/RevisionHistograms.java b/src/main/java/com/oltpbenchmark/benchmarks/wikipedia/data/RevisionHistograms.java index 17c28eb18..f7a65f7c7 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/wikipedia/data/RevisionHistograms.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/wikipedia/data/RevisionHistograms.java @@ -290,12 +290,13 @@ public abstract class RevisionHistograms { */ public static final int[] REVISION_DELTA_SIZES = {1000, 10000, 100000}; + public static class IntHistogram extends Histogram {} + /** * */ - @SuppressWarnings("unchecked") - public static final Histogram[] REVISION_DELTAS = (Histogram[]) new Histogram[]{ - new Histogram() { + public static final IntHistogram[] REVISION_DELTAS = new IntHistogram[]{ + new IntHistogram() { { this.put(-1000, 237); this.put(-900, 237); @@ -499,7 +500,7 @@ public abstract class RevisionHistograms { this.put(100000, 4); } }, - new Histogram() { + new IntHistogram() { { this.put(-10000, 15); this.put(-9900, 19); @@ -776,7 +777,7 @@ public abstract class RevisionHistograms { this.put(100000, 1); } }, - new Histogram() { + new IntHistogram() { { this.put(-985000, 1); this.put(-982000, 1); diff --git a/src/main/java/com/oltpbenchmark/util/StringUtil.java b/src/main/java/com/oltpbenchmark/util/StringUtil.java index 459515f5f..a5361d6e3 100644 --- a/src/main/java/com/oltpbenchmark/util/StringUtil.java +++ b/src/main/java/com/oltpbenchmark/util/StringUtil.java @@ -110,7 +110,10 @@ public static String formatMaps(String delimiter, boolean upper, boolean box, bo // Figure out the largest key size so we can get spacing right int max_key_size = 0; int max_title_size = 0; - final Map[] map_keys = (Map[]) new Map[maps.length]; + class Obj2StrArrMap extends HashMap { + static final long serialVersionUID = 0; + } + final Map[] map_keys = new Obj2StrArrMap[maps.length]; final boolean[] map_titles = new boolean[maps.length]; for (int i = 0; i < maps.length; i++) { Map m = maps[i]; From fc97c1eac1805fac27e4fcbb67c1b633f22f046c Mon Sep 17 00:00:00 2001 From: Brian Kroth Date: Fri, 8 Dec 2023 18:23:02 +0000 Subject: [PATCH 16/56] in the couple of utility classes, just suppress more warnings --- src/main/java/com/oltpbenchmark/util/ClassUtil.java | 1 + src/main/java/com/oltpbenchmark/util/JSONUtil.java | 6 +++--- src/main/java/com/oltpbenchmark/util/StringUtil.java | 1 - 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/oltpbenchmark/util/ClassUtil.java b/src/main/java/com/oltpbenchmark/util/ClassUtil.java index 9963b6a33..80a00933f 100644 --- a/src/main/java/com/oltpbenchmark/util/ClassUtil.java +++ b/src/main/java/com/oltpbenchmark/util/ClassUtil.java @@ -150,6 +150,7 @@ public static Constructor getConstructor(Class target_class, Class. LOG.debug("TARGET PARAMS: {}", Arrays.toString(params)); } + @SuppressWarnings("rawtypes") List>[] paramSuper = (List>[]) new List[params.length]; for (int i = 0; i < params.length; i++) { paramSuper[i] = ClassUtil.getSuperClasses(params[i]); diff --git a/src/main/java/com/oltpbenchmark/util/JSONUtil.java b/src/main/java/com/oltpbenchmark/util/JSONUtil.java index 56c10b019..ae6619c79 100644 --- a/src/main/java/com/oltpbenchmark/util/JSONUtil.java +++ b/src/main/java/com/oltpbenchmark/util/JSONUtil.java @@ -313,7 +313,7 @@ public static void writeFieldValue(JSONStringer stringer, Class field_class, * @param inner_classes * @throws Exception */ - @SuppressWarnings("unchecked") + @SuppressWarnings({"unchecked", "rawtypes"}) protected static void readMapField(final JSONObject json_object, final Map map, final Stack inner_classes) throws Exception { Class key_class = inner_classes.pop(); Class val_class = inner_classes.pop(); @@ -359,7 +359,7 @@ protected static void readMapField(final JSONObject json_object, final Map map, * @param inner_classes * @throws Exception */ - @SuppressWarnings("unchecked") + @SuppressWarnings({"unchecked", "rawtypes"}) protected static void readCollectionField(final JSONArray json_array, final Collection collection, final Stack inner_classes) throws Exception { // We need to figure out what the inner type of the collection is // If it's a Collection or a Map, then we need to instantiate it before @@ -404,7 +404,7 @@ protected static void readCollectionField(final JSONArray json_array, final Coll * @param object * @throws Exception */ - @SuppressWarnings("unchecked") + @SuppressWarnings("rawtypes") public static void readFieldValue(final JSONObject json_object, final String json_key, Field field_handle, Object object) throws Exception { Class field_class = field_handle.getType(); diff --git a/src/main/java/com/oltpbenchmark/util/StringUtil.java b/src/main/java/com/oltpbenchmark/util/StringUtil.java index a5361d6e3..380c3c817 100644 --- a/src/main/java/com/oltpbenchmark/util/StringUtil.java +++ b/src/main/java/com/oltpbenchmark/util/StringUtil.java @@ -102,7 +102,6 @@ public static String formatMaps(Map... maps) { * @param maps * @return */ - @SuppressWarnings("unchecked") public static String formatMaps(String delimiter, boolean upper, boolean box, boolean border_top, boolean border_bottom, boolean recursive, boolean first_element_title, Map... maps) { boolean need_divider = (maps.length > 1 || border_bottom || border_top); From 5220c3f857c9d01289bdf39de332f3b86a0cb239 Mon Sep 17 00:00:00 2001 From: Brian Kroth Date: Fri, 8 Dec 2023 18:23:17 +0000 Subject: [PATCH 17/56] convert throw type to avoid InterruptedException handling warnings --- src/main/java/com/oltpbenchmark/util/TableDataIterable.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/oltpbenchmark/util/TableDataIterable.java b/src/main/java/com/oltpbenchmark/util/TableDataIterable.java index d1cb8c4ef..80019099d 100644 --- a/src/main/java/com/oltpbenchmark/util/TableDataIterable.java +++ b/src/main/java/com/oltpbenchmark/util/TableDataIterable.java @@ -24,6 +24,7 @@ import java.io.InputStream; import java.io.InputStreamReader; +import java.io.IOException; import java.util.Iterator; /** @@ -80,7 +81,7 @@ public Iterator iterator() { } @Override - public void close() throws Exception { + public void close() throws IOException { if (this.in != null) { in.close(); } From df432f36406dd918016420426296d3eb0af6af4d Mon Sep 17 00:00:00 2001 From: Brian Kroth Date: Fri, 8 Dec 2023 18:32:53 +0000 Subject: [PATCH 18/56] docs --- .../benchmarks/auctionmark/AuctionMarkProfile.java | 4 ++++ .../wikipedia/data/RevisionHistograms.java | 3 +++ .../com/oltpbenchmark/util/RandomDistribution.java | 4 ++++ src/main/java/com/oltpbenchmark/util/StringUtil.java | 12 +++++++++--- 4 files changed, 20 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkProfile.java b/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkProfile.java index 6d2f78f99..bd2d9b08d 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkProfile.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkProfile.java @@ -109,7 +109,11 @@ public class AuctionMarkProfile { */ protected transient Histogram items_per_category = new Histogram<>(); + /** + * Simple generic class overload to avoid some cast warnings below. + */ class ItemInfoList extends LinkedList { + // Required serialization field. static final long serialVersionUID = 0; } diff --git a/src/main/java/com/oltpbenchmark/benchmarks/wikipedia/data/RevisionHistograms.java b/src/main/java/com/oltpbenchmark/benchmarks/wikipedia/data/RevisionHistograms.java index f7a65f7c7..6abd4f6fb 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/wikipedia/data/RevisionHistograms.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/wikipedia/data/RevisionHistograms.java @@ -290,6 +290,9 @@ public abstract class RevisionHistograms { */ public static final int[] REVISION_DELTA_SIZES = {1000, 10000, 100000}; + /** + * Simple generic class overload to avoid some cast warnings below. + */ public static class IntHistogram extends Histogram {} /** diff --git a/src/main/java/com/oltpbenchmark/util/RandomDistribution.java b/src/main/java/com/oltpbenchmark/util/RandomDistribution.java index c102dfea5..c6f0b8918 100644 --- a/src/main/java/com/oltpbenchmark/util/RandomDistribution.java +++ b/src/main/java/com/oltpbenchmark/util/RandomDistribution.java @@ -240,7 +240,11 @@ protected long nextLongImpl() { } } + /** + * Simple generic class overload to avoid some cast warnings below. + */ public static class IntegerFlatHistogram extends FlatHistogram { + // Required serialization field. private static final long serialVersionUID = 1L; public IntegerFlatHistogram(Random random, Histogram histogram) { super(random, histogram); diff --git a/src/main/java/com/oltpbenchmark/util/StringUtil.java b/src/main/java/com/oltpbenchmark/util/StringUtil.java index 380c3c817..0babfdf21 100644 --- a/src/main/java/com/oltpbenchmark/util/StringUtil.java +++ b/src/main/java/com/oltpbenchmark/util/StringUtil.java @@ -80,6 +80,14 @@ public static String formatMaps(Map... maps) { return (formatMaps(":", false, false, false, false, true, true, maps)); } + /** + * Simple generic class overload to avoid some cast warnings below. + */ + public static class Obj2StrArrMap extends HashMap { + // Required serialization field. + static final long serialVersionUID = 0; + } + /** * Return key/value maps into a nicely formatted table * The maps are displayed in order from first to last, and there will be a @@ -109,9 +117,7 @@ public static String formatMaps(String delimiter, boolean upper, boolean box, bo // Figure out the largest key size so we can get spacing right int max_key_size = 0; int max_title_size = 0; - class Obj2StrArrMap extends HashMap { - static final long serialVersionUID = 0; - } + final Map[] map_keys = new Obj2StrArrMap[maps.length]; final boolean[] map_titles = new boolean[maps.length]; for (int i = 0; i < maps.length; i++) { From d93c61d7253611c691ec89ac11c83dc254106df2 Mon Sep 17 00:00:00 2001 From: Brian Kroth Date: Fri, 8 Dec 2023 18:48:44 +0000 Subject: [PATCH 19/56] enable deprecations --- pom.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/pom.xml b/pom.xml index 1cdcb2dd6..edb6b30e7 100644 --- a/pom.xml +++ b/pom.xml @@ -336,6 +336,7 @@ ${maven.compiler.source} ${maven.compiler.target} + true true From b0398b136c1de5656031a33ad31909902f8d4073 Mon Sep 17 00:00:00 2001 From: Brian Kroth Date: Fri, 8 Dec 2023 20:17:35 +0000 Subject: [PATCH 20/56] more compiler warning fixups --- src/test/java/com/oltpbenchmark/api/AbstractTestCase.java | 1 + .../benchmarks/auctionmark/TestAuctionMarkWorker.java | 5 ++--- .../benchmarks/auctionmark/util/TestUserId.java | 2 +- src/test/java/com/oltpbenchmark/util/TestCollectionUtil.java | 1 + 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/test/java/com/oltpbenchmark/api/AbstractTestCase.java b/src/test/java/com/oltpbenchmark/api/AbstractTestCase.java index 479f9a9ca..2356215da 100644 --- a/src/test/java/com/oltpbenchmark/api/AbstractTestCase.java +++ b/src/test/java/com/oltpbenchmark/api/AbstractTestCase.java @@ -175,6 +175,7 @@ private int findAvailablePort() throws IOException { } try (ServerSocket testSocket = new ServerSocket(port)) { + assert testSocket != null; return port; } catch (BindException e) { // This port is already in use. Continue to next port. diff --git a/src/test/java/com/oltpbenchmark/benchmarks/auctionmark/TestAuctionMarkWorker.java b/src/test/java/com/oltpbenchmark/benchmarks/auctionmark/TestAuctionMarkWorker.java index 8458dd356..ca902418a 100644 --- a/src/test/java/com/oltpbenchmark/benchmarks/auctionmark/TestAuctionMarkWorker.java +++ b/src/test/java/com/oltpbenchmark/benchmarks/auctionmark/TestAuctionMarkWorker.java @@ -23,7 +23,6 @@ import com.oltpbenchmark.api.AbstractTestWorker; import com.oltpbenchmark.api.Procedure; -import com.oltpbenchmark.api.Worker; import com.oltpbenchmark.benchmarks.auctionmark.util.UserId; import java.io.IOException; @@ -61,9 +60,9 @@ public void testUniqueSellers() throws Exception { Set all_users = new HashSet(); Set worker_users = new TreeSet(); Integer last_num_users = null; - for (Worker w : this.workers) { - AuctionMarkWorker worker = (AuctionMarkWorker) w; + for (var w : this.workers) { assertNotNull(w); + AuctionMarkWorker worker = (AuctionMarkWorker) w; // Get the uninitialized profile AuctionMarkProfile profile = worker.getProfile(); diff --git a/src/test/java/com/oltpbenchmark/benchmarks/auctionmark/util/TestUserId.java b/src/test/java/com/oltpbenchmark/benchmarks/auctionmark/util/TestUserId.java index 14961dc94..8fb16662c 100644 --- a/src/test/java/com/oltpbenchmark/benchmarks/auctionmark/util/TestUserId.java +++ b/src/test/java/com/oltpbenchmark/benchmarks/auctionmark/util/TestUserId.java @@ -17,7 +17,7 @@ package com.oltpbenchmark.benchmarks.auctionmark.util; -import static junit.framework.Assert.assertFalse; +import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; diff --git a/src/test/java/com/oltpbenchmark/util/TestCollectionUtil.java b/src/test/java/com/oltpbenchmark/util/TestCollectionUtil.java index 924d15d2d..c2ebecbec 100644 --- a/src/test/java/com/oltpbenchmark/util/TestCollectionUtil.java +++ b/src/test/java/com/oltpbenchmark/util/TestCollectionUtil.java @@ -122,6 +122,7 @@ public void testPop() { expected[i] = rng.astring(1, 32); } // FOR + @SuppressWarnings("rawtypes") Collection[] collections = new Collection[]{ CollectionUtil.addAll(new ListOrderedSet(), expected), CollectionUtil.addAll(new HashSet(), expected), From c53ea80abc64caf739dbfe7e95a2949530b30235 Mon Sep 17 00:00:00 2001 From: Brian Kroth Date: Fri, 8 Dec 2023 20:40:38 +0000 Subject: [PATCH 21/56] revert order --- .../benchmarks/auctionmark/TestAuctionMarkWorker.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/com/oltpbenchmark/benchmarks/auctionmark/TestAuctionMarkWorker.java b/src/test/java/com/oltpbenchmark/benchmarks/auctionmark/TestAuctionMarkWorker.java index ca902418a..1973d03ac 100644 --- a/src/test/java/com/oltpbenchmark/benchmarks/auctionmark/TestAuctionMarkWorker.java +++ b/src/test/java/com/oltpbenchmark/benchmarks/auctionmark/TestAuctionMarkWorker.java @@ -61,8 +61,8 @@ public void testUniqueSellers() throws Exception { Set worker_users = new TreeSet(); Integer last_num_users = null; for (var w : this.workers) { - assertNotNull(w); AuctionMarkWorker worker = (AuctionMarkWorker) w; + assertNotNull(w); // Get the uninitialized profile AuctionMarkProfile profile = worker.getProfile(); From e5e9c0013a8c67d03c4c82f91950fd429b98a636 Mon Sep 17 00:00:00 2001 From: Brian Kroth Date: Fri, 8 Dec 2023 20:42:05 +0000 Subject: [PATCH 22/56] need the col++ --- .../oltpbenchmark/benchmarks/auctionmark/AuctionMarkWorker.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkWorker.java b/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkWorker.java index 8f14f6044..604852be5 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkWorker.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkWorker.java @@ -404,12 +404,10 @@ protected TransactionStatus executeWork(Connection conn, TransactionType txnType public ItemId processItemRecord(Object[] row) { int col = 0; ItemId i_id = new ItemId(SQLUtil.getString(row[col++])); // i_id - /* @SuppressWarnings("unused") String i_u_id = SQLUtil.getString(row[col++]); // i_u_id @SuppressWarnings("unused") String i_name = (String) row[col++]; // i_name - */ double i_current_price = SQLUtil.getDouble(row[col++]); // i_current_price long i_num_bids = SQLUtil.getLong(row[col++]); // i_num_bids Timestamp i_end_date = SQLUtil.getTimestamp(row[col++]);// i_end_date From 94385e7107385878f8a5ff703b0d7cf6521056ed Mon Sep 17 00:00:00 2001 From: Brian Kroth Date: Fri, 8 Dec 2023 20:53:49 +0000 Subject: [PATCH 23/56] address some unused and other lint issues --- .../com/oltpbenchmark/api/StatementDialects.java | 2 -- .../auctionmark/AuctionMarkProfile.java | 2 +- .../benchmarks/auctionmark/AuctionMarkWorker.java | 15 +++++++++------ .../auctionmark/util/AuctionMarkUtil.java | 1 + .../auctionmark/util/CategoryParser.java | 2 +- .../benchmarks/chbenchmark/CHBenCHmarkLoader.java | 10 ---------- .../benchmarks/epinions/EpinionsWorker.java | 4 +--- .../benchmarks/hyadapt/HYADAPTLoader.java | 1 + .../benchmarks/otmetrics/OTMetricsBenchmark.java | 2 +- .../resourcestresser/ResourceStresserLoader.java | 1 + 10 files changed, 16 insertions(+), 24 deletions(-) diff --git a/src/main/java/com/oltpbenchmark/api/StatementDialects.java b/src/main/java/com/oltpbenchmark/api/StatementDialects.java index 5e5826ea0..cb63eb2aa 100644 --- a/src/main/java/com/oltpbenchmark/api/StatementDialects.java +++ b/src/main/java/com/oltpbenchmark/api/StatementDialects.java @@ -20,7 +20,6 @@ import com.oltpbenchmark.WorkloadConfiguration; import com.oltpbenchmark.api.dialects.*; import com.oltpbenchmark.types.DatabaseType; -import com.oltpbenchmark.types.State; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.xml.sax.SAXException; @@ -30,7 +29,6 @@ import javax.xml.transform.stream.StreamSource; import javax.xml.validation.Schema; import javax.xml.validation.SchemaFactory; -import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.StringWriter; diff --git a/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkProfile.java b/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkProfile.java index bd2d9b08d..3b2777cf6 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkProfile.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkProfile.java @@ -464,7 +464,6 @@ private static void loadItems(AuctionMarkProfile profile, List vt) { private static void loadPendingItemComments(AuctionMarkProfile profile, List vt) { for (Object[] row : vt) { - int col = 1; long ic_id = SQLUtil.getLong(row[0]); String ic_i_id = SQLUtil.getString(row[1]); String ic_u_id = SQLUtil.getString(row[2]); @@ -721,6 +720,7 @@ private boolean addItem(LinkedList items, ItemInfo itemInfo) { // HACK: Always swap existing ItemInfos with our new one, since it will // more up-to-date information ItemInfo existing = items.set(idx, itemInfo); + assert existing != null; return (true); } diff --git a/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkWorker.java b/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkWorker.java index 604852be5..5c40d121e 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkWorker.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkWorker.java @@ -404,10 +404,10 @@ protected TransactionStatus executeWork(Connection conn, TransactionType txnType public ItemId processItemRecord(Object[] row) { int col = 0; ItemId i_id = new ItemId(SQLUtil.getString(row[col++])); // i_id - @SuppressWarnings("unused") String i_u_id = SQLUtil.getString(row[col++]); // i_u_id - @SuppressWarnings("unused") + assert i_u_id != null; String i_name = (String) row[col++]; // i_name + assert i_name != null; double i_current_price = SQLUtil.getDouble(row[col++]); // i_current_price long i_num_bids = SQLUtil.getLong(row[col++]); // i_num_bids Timestamp i_end_date = SQLUtil.getTimestamp(row[col++]);// i_end_date @@ -454,7 +454,7 @@ protected boolean executeCloseAuctions(Connection conn, CloseAuctions proc) thro for (Object[] row : results) { ItemId itemId = this.processItemRecord(row); - + assert itemId != null; } profile.updateItemQueues(); @@ -478,7 +478,7 @@ protected boolean executeGetItem(Connection conn, GetItem proc) throws SQLExcept // The first row will have our item data that we want // We don't care about the user information... ItemId itemId = this.processItemRecord(results[0]); - + assert itemId != null; return (true); } @@ -536,14 +536,17 @@ protected boolean executeGetUserInfo(Connection conn, GetUserInfo proc) throws S for (Object[] row : results.getSellerItems()) { ItemId itemId = this.processItemRecord(row); + assert itemId != null; } for (Object[] row : results.getBuyerItems()) { ItemId itemId = this.processItemRecord(row); + assert itemId != null; } for (Object[] row : results.getWatchedItems()) { ItemId itemId = this.processItemRecord(row); + assert itemId != null; } @@ -616,7 +619,7 @@ protected boolean executeNewBid(Connection conn, NewBid proc) throws SQLExceptio itemInfo.getEndDate()); ItemId itemId = this.processItemRecord(results); - + assert itemId != null; return (true); } @@ -799,7 +802,7 @@ protected boolean executeNewPurchase(Connection conn, NewPurchase proc) throws S buyer_credit); ItemId itemId = this.processItemRecord(results); - + assert itemId != null; return (true); } diff --git a/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/util/AuctionMarkUtil.java b/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/util/AuctionMarkUtil.java index e6625dfc4..5821e2b35 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/util/AuctionMarkUtil.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/util/AuctionMarkUtil.java @@ -25,6 +25,7 @@ import java.sql.Timestamp; public abstract class AuctionMarkUtil { + @SuppressWarnings("unused") private static final Logger LOG = LoggerFactory.getLogger(AuctionMarkUtil.class); private static final long ITEM_ID_MASK = 0xFFFFFFFFFFFFFFL; // 56 bits (ITEM_ID) diff --git a/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/util/CategoryParser.java b/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/util/CategoryParser.java index d98e7d348..a1de14819 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/util/CategoryParser.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/util/CategoryParser.java @@ -22,7 +22,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.io.File; import java.io.InputStream; import java.nio.charset.Charset; import java.util.List; @@ -31,6 +30,7 @@ public class CategoryParser { + @SuppressWarnings("unused") private static final Logger LOG = LoggerFactory.getLogger(CategoryParser.class); Map _categoryMap; diff --git a/src/main/java/com/oltpbenchmark/benchmarks/chbenchmark/CHBenCHmarkLoader.java b/src/main/java/com/oltpbenchmark/benchmarks/chbenchmark/CHBenCHmarkLoader.java index 5eaf2c300..4f891aa38 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/chbenchmark/CHBenCHmarkLoader.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/chbenchmark/CHBenCHmarkLoader.java @@ -26,8 +26,6 @@ import com.oltpbenchmark.util.RandomGenerator; import org.apache.commons.io.IOUtils; -import java.io.BufferedReader; -import java.io.File; import java.io.InputStream; import java.nio.charset.Charset; import java.sql.Connection; @@ -143,11 +141,7 @@ private void truncateTable(Connection conn, String strTable) { } private int loadRegions(Connection conn, PreparedStatement statement) throws SQLException { - int k = 0; - int t = 0; - BufferedReader br = null; - truncateTable(conn, "region"); truncateTable(conn, "nation"); @@ -208,9 +202,7 @@ private int loadRegions(Connection conn, PreparedStatement statement) throws SQL } private int loadNations(Connection conn, PreparedStatement statement) { - int k = 0; - int t = 0; Nation nation = new Nation(); @@ -274,9 +266,7 @@ private int loadNations(Connection conn, PreparedStatement statement) { } private int loadSuppliers(Connection conn, PreparedStatement statement) { - int k = 0; - int t = 0; try { diff --git a/src/main/java/com/oltpbenchmark/benchmarks/epinions/EpinionsWorker.java b/src/main/java/com/oltpbenchmark/benchmarks/epinions/EpinionsWorker.java index dade16956..100d72fc4 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/epinions/EpinionsWorker.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/epinions/EpinionsWorker.java @@ -30,15 +30,13 @@ import java.sql.Connection; import java.sql.SQLException; import java.util.ArrayList; -import java.util.Random; public class EpinionsWorker extends Worker { - + @SuppressWarnings("unused") private static final Logger LOG = LoggerFactory.getLogger(EpinionsWorker.class); private final ArrayList user_ids; private final ArrayList item_ids; - private final Random rand = new Random(System.currentTimeMillis()); public EpinionsWorker(EpinionsBenchmark benchmarkModule, int id, ArrayList user_ids, ArrayList item_ids) { super(benchmarkModule, id); diff --git a/src/main/java/com/oltpbenchmark/benchmarks/hyadapt/HYADAPTLoader.java b/src/main/java/com/oltpbenchmark/benchmarks/hyadapt/HYADAPTLoader.java index 3afd19fb2..0021d38f1 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/hyadapt/HYADAPTLoader.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/hyadapt/HYADAPTLoader.java @@ -82,6 +82,7 @@ public void load(Connection conn) throws SQLException { total++; if (++batch >= workConf.getBatchSize()) { int[] result = stmt.executeBatch(); + assert result != null; batch = 0; LOG.info(String.format("Records Loaded %d / %d", total, num_record)); diff --git a/src/main/java/com/oltpbenchmark/benchmarks/otmetrics/OTMetricsBenchmark.java b/src/main/java/com/oltpbenchmark/benchmarks/otmetrics/OTMetricsBenchmark.java index cad30ccc4..c1894bd3c 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/otmetrics/OTMetricsBenchmark.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/otmetrics/OTMetricsBenchmark.java @@ -32,7 +32,7 @@ * @author pavlo */ public class OTMetricsBenchmark extends BenchmarkModule { - + @SuppressWarnings("unused") private static final Logger LOG = LoggerFactory.getLogger(OTMetricsBenchmark.class); protected final int num_sources; diff --git a/src/main/java/com/oltpbenchmark/benchmarks/resourcestresser/ResourceStresserLoader.java b/src/main/java/com/oltpbenchmark/benchmarks/resourcestresser/ResourceStresserLoader.java index cbd0c96ff..be8933129 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/resourcestresser/ResourceStresserLoader.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/resourcestresser/ResourceStresserLoader.java @@ -97,6 +97,7 @@ private void loadTable(Connection conn, String tableName) throws SQLException { stmt.addBatch(); if (++batch >= workConf.getBatchSize()) { int[] result = stmt.executeBatch(); + assert result != null; batch = 0; if (LOG.isDebugEnabled()) { From 448ca2413a4d5adb5df5336baf7a7eddeffdecdb Mon Sep 17 00:00:00 2001 From: Brian Kroth Date: Fri, 8 Dec 2023 20:58:54 +0000 Subject: [PATCH 24/56] fixup --- .../oltpbenchmark/benchmarks/auctionmark/AuctionMarkWorker.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkWorker.java b/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkWorker.java index 5c40d121e..70b51c117 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkWorker.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkWorker.java @@ -406,8 +406,8 @@ public ItemId processItemRecord(Object[] row) { ItemId i_id = new ItemId(SQLUtil.getString(row[col++])); // i_id String i_u_id = SQLUtil.getString(row[col++]); // i_u_id assert i_u_id != null; + @SuppressWarnings("unused") String i_name = (String) row[col++]; // i_name - assert i_name != null; double i_current_price = SQLUtil.getDouble(row[col++]); // i_current_price long i_num_bids = SQLUtil.getLong(row[col++]); // i_num_bids Timestamp i_end_date = SQLUtil.getTimestamp(row[col++]);// i_end_date From 1e411d4978271d731d5893dd2deb222cd272b629 Mon Sep 17 00:00:00 2001 From: Brian Kroth Date: Fri, 8 Dec 2023 21:15:43 +0000 Subject: [PATCH 25/56] fixup --- src/main/java/com/oltpbenchmark/util/StringUtil.java | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/oltpbenchmark/util/StringUtil.java b/src/main/java/com/oltpbenchmark/util/StringUtil.java index 0babfdf21..263d08384 100644 --- a/src/main/java/com/oltpbenchmark/util/StringUtil.java +++ b/src/main/java/com/oltpbenchmark/util/StringUtil.java @@ -80,14 +80,6 @@ public static String formatMaps(Map... maps) { return (formatMaps(":", false, false, false, false, true, true, maps)); } - /** - * Simple generic class overload to avoid some cast warnings below. - */ - public static class Obj2StrArrMap extends HashMap { - // Required serialization field. - static final long serialVersionUID = 0; - } - /** * Return key/value maps into a nicely formatted table * The maps are displayed in order from first to last, and there will be a @@ -117,8 +109,8 @@ public static String formatMaps(String delimiter, boolean upper, boolean box, bo // Figure out the largest key size so we can get spacing right int max_key_size = 0; int max_title_size = 0; - - final Map[] map_keys = new Obj2StrArrMap[maps.length]; + @SuppressWarnings({"unchecked", "rawtypes"}) + final Map[] map_keys = (Map[]) new Map[maps.length]; final boolean[] map_titles = new boolean[maps.length]; for (int i = 0; i < maps.length; i++) { Map m = maps[i]; From 8e01aa7d91d64165537b9884f34b37f6e4ab38a6 Mon Sep 17 00:00:00 2001 From: Brian Kroth Date: Fri, 8 Dec 2023 21:39:01 +0000 Subject: [PATCH 26/56] start to enforce dependency management --- pom.xml | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index edb6b30e7..903dad36f 100644 --- a/pom.xml +++ b/pom.xml @@ -299,6 +299,7 @@ + org.hsqldb hsqldb 2.7.2 @@ -342,11 +343,29 @@ -Xlint:all,-processing + -Werror + org.apache.maven.plugins maven-jar-plugin @@ -443,7 +462,9 @@ analyze-only - false + + true @@ -458,5 +479,4 @@ - From 2937b469f3e21d5bc1e5580b9f5ec969321e0c32 Mon Sep 17 00:00:00 2001 From: Brian Kroth Date: Mon, 11 Dec 2023 16:15:52 +0000 Subject: [PATCH 27/56] add a readme with additional developer notes per PR suggestion --- CONTRIBUTING.md | 58 +++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 6 +++-- 2 files changed, 62 insertions(+), 2 deletions(-) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..8f2759f54 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,58 @@ +# Contributing + +We welcome all contributions! Please open a [pull request](https://github.com/cmu-db/benchbase/pulls). Common contributions may include: + +- Adding support for a new DBMS. +- Adding more tests of existing benchmarks. +- Fixing any bugs or known issues. + +## Contents + + + +- [Contributing](#contributing) + - [Contents](#contents) + - [IDE](#ide) + - [Adding a new DBMS](#adding-a-new-dbms) + - [Java Development Notes](#java-development-notes) + - [Compiler Warnings](#compiler-warnings) + - [Alternatives to arrays of generics](#alternatives-to-arrays-of-generics) + + + +## IDE + +Although you can use any IDE you prefer, there are some configurations for [VSCode](https://code.visualstudio.com/) that you may find useful included in the repository, including [Github Codespaces](https://github.com/features/codespaces) and [VSCode devcontainer](https://code.visualstudio.com/docs/remote/containers) support to automatically handle dependencies, environment setup, code formatting, and more. + +## Adding a new DBMS + +Please see the existing MySQL and PostgreSQL code for an example. + +## Java Development Notes + +### Compiler Warnings + +In an effort to enforce clean, safe, maintainable code, [PR #413](https://github.com/cmu-db/benchbase/pull/413) enabled the `-Werror` and `-Xlint:all` options for the `javac` compiler. + +This means that any compiler warnings will cause the build to fail. + +If you are seeing a build failure due to a compiler warning, please fix the warning or (on rare occassions) add an exception to the line causing the issue. + +#### Alternatives to arrays of generics + +Per the [Java Language Specification](https://docs.oracle.com/javase/tutorial/java/generics/restrictions.html#createArrays), arrays of generic types are not allowed and will cause compiler warnings (e.g., `unchecked cast`) + +In some cases, you can extend a generic type to create a non-generic type that can be used in an array. + +For instance, + +```java +// Simple generic class overload to avoid some cast warnings. +class SomeTypeList extends LinkedList {} + +SomeTypeList[] someTypeLists = new SomeTypeList[] { + new SomeTypeList(), + new SomeTypeList(), + new SomeTypeList(), +}; +``` diff --git a/README.md b/README.md index 801a3abd3..8dd5b8574 100644 --- a/README.md +++ b/README.md @@ -221,15 +221,17 @@ Please see the existing MySQL and PostgreSQL code for an example. ## Contributing -We welcome all contributions! Please open a pull request. Common contributions may include: +We welcome all contributions! Please open a [pull request](https://github.com/cmu-db/benchbase/pulls). Common contributions may include: - Adding support for a new DBMS. - Adding more tests of existing benchmarks. - Fixing any bugs or known issues. +Please see the [CONTRIBUTING.md](./CONTRIBUTING.md) for addition notes. + ## Known Issues -Please use GitHub's issue tracker for all issues. +Please use [GitHub's issue tracker](https://github.com/cmu-db/benchbase/issues) for all issues. ## Credits From 4b22f8dacc35e1d50c859ba27dbd424822b8a915 Mon Sep 17 00:00:00 2001 From: Brian Kroth Date: Mon, 11 Dec 2023 16:16:16 +0000 Subject: [PATCH 28/56] tweak comment --- .../oltpbenchmark/benchmarks/auctionmark/AuctionMarkLoader.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkLoader.java b/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkLoader.java index 6572c1a7c..00e5a0321 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkLoader.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkLoader.java @@ -1195,7 +1195,7 @@ protected class ItemBidGenerator extends SubTableGenerator { private LoaderItemInfo.Bid bid = null; private float currentBidPriceAdvanceStep; private long currentCreateDateAdvanceStep; - @SuppressWarnings("unused") // spurious + @SuppressWarnings("unused") // only ever assigned private float currentPrice; private boolean new_item; From fa34754de5c6139e7da3e7aa13a4f7ce2bf8250f Mon Sep 17 00:00:00 2001 From: Brian Kroth Date: Mon, 11 Dec 2023 16:26:16 +0000 Subject: [PATCH 29/56] add more developer notes --- CONTRIBUTING.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8f2759f54..6d181ae70 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -15,6 +15,7 @@ We welcome all contributions! Please open a [pull request](https://github.com/cm - [IDE](#ide) - [Adding a new DBMS](#adding-a-new-dbms) - [Java Development Notes](#java-development-notes) + - [Avoid var keyword](#avoid-var-keyword) - [Compiler Warnings](#compiler-warnings) - [Alternatives to arrays of generics](#alternatives-to-arrays-of-generics) @@ -38,6 +39,10 @@ This means that any compiler warnings will cause the build to fail. If you are seeing a build failure due to a compiler warning, please fix the warning or (on rare occassions) add an exception to the line causing the issue. +### Avoid `var` keyword + +In general, we prefer to avoid the `var` keyword in favor of explicit types. + #### Alternatives to arrays of generics Per the [Java Language Specification](https://docs.oracle.com/javase/tutorial/java/generics/restrictions.html#createArrays), arrays of generic types are not allowed and will cause compiler warnings (e.g., `unchecked cast`) From be0f41472a1a78c8035a1d81b568e3c37baa1bff Mon Sep 17 00:00:00 2001 From: Brian Kroth Date: Mon, 11 Dec 2023 16:29:45 +0000 Subject: [PATCH 30/56] include some extension recommendations --- .vscode/extensions.json | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 .vscode/extensions.json diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 000000000..842cbfef9 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,8 @@ +{ + "recommendations": [ + "EditorConfig.EditorConfig", + "github.vscode-pull-request-github", + "huntertran.auto-markdown-toc", + "vscjava.vscode-java-pack" + ] +} \ No newline at end of file From 43b5ceedf34c52166a8a3d9de50f84198f9156f2 Mon Sep 17 00:00:00 2001 From: Brian Kroth Date: Mon, 11 Dec 2023 16:30:56 +0000 Subject: [PATCH 31/56] update extensions --- .devcontainer/devcontainer.json | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index a4d313bd9..f38d12ce5 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -40,11 +40,13 @@ "settings": {}, // Add the IDs of extensions you want installed when the container is created. "extensions": [ - "github.vscode-github-actions", + "EditorConfig.EditorConfig", "GitHub.copilot", "eamodio.gitlens", - "vscjava.vscode-java-pack", - "EditorConfig.EditorConfig" + "github.vscode-github-actions", + "github.vscode-pull-request-github", + "huntertran.auto-markdown-toc", + "vscjava.vscode-java-pack" ] } }, From cbfe70a67bf68b3dfe2ecb0f9f9d18986fa7e643 Mon Sep 17 00:00:00 2001 From: Brian Kroth Date: Mon, 11 Dec 2023 16:58:58 +0000 Subject: [PATCH 32/56] add dependency analysis extension --- .devcontainer/devcontainer.json | 1 + .vscode/extensions.json | 1 + 2 files changed, 2 insertions(+) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index f38d12ce5..b5773b3b9 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -46,6 +46,7 @@ "github.vscode-github-actions", "github.vscode-pull-request-github", "huntertran.auto-markdown-toc", + "redhat.fabric8-analytics", "vscjava.vscode-java-pack" ] } diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 842cbfef9..55e37ed1a 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -3,6 +3,7 @@ "EditorConfig.EditorConfig", "github.vscode-pull-request-github", "huntertran.auto-markdown-toc", + "redhat.fabric8-analytics", "vscjava.vscode-java-pack" ] } \ No newline at end of file From 0f4729f8963aa033b17e3d30fe9346d813721a96 Mon Sep 17 00:00:00 2001 From: Brian Kroth Date: Mon, 11 Dec 2023 18:19:45 +0000 Subject: [PATCH 33/56] enforce validation of dependencies at build time --- .github/workflows/maven.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index 07bcd3a51..ead30e136 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -70,8 +70,9 @@ jobs: cache: 'maven' distribution: 'temurin' - - name: Package with Maven - run: mvn -B package -P ${{matrix.profile}} --file pom.xml -DskipTests -D descriptors=src/main/assembly/tgz.xml + - name: Package and verify with Maven + run: | + mvn -B package verify -P ${{matrix.profile}} --file pom.xml -DskipTests -D descriptors=src/main/assembly/tgz.xml - name: Upload TGZ artifact uses: actions/upload-artifact@v3 From 3e85401dbab47f69ac85147062c5a8c716463868 Mon Sep 17 00:00:00 2001 From: Brian Kroth Date: Mon, 11 Dec 2023 18:20:29 +0000 Subject: [PATCH 34/56] add some dependencies and exceptions --- pom.xml | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 903dad36f..21a34813c 100644 --- a/pom.xml +++ b/pom.xml @@ -103,6 +103,7 @@ mysql mysql-connector-java 8.0.30 + runtime @@ -462,9 +463,19 @@ analyze-only - true + + + + org.glassfish.jaxb:jaxb-runtime:jar + + org.slf4j:slf4j-reload4j:jar + + + mysql:mysql-connector-java:jar + From 910fdd1dc47604c51dd94b44703c05700fa87d25 Mon Sep 17 00:00:00 2001 From: Brian Kroth Date: Mon, 11 Dec 2023 18:21:01 +0000 Subject: [PATCH 35/56] comments about some exceptions --- pom.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pom.xml b/pom.xml index 21a34813c..0b88000f5 100644 --- a/pom.xml +++ b/pom.xml @@ -234,6 +234,7 @@ + org.slf4j slf4j-reload4j 2.0.7 @@ -294,6 +295,7 @@ + org.glassfish.jaxb jaxb-runtime 4.0.4 From 91a1350080e14e4374bd88d8fd9f101ed87c77f2 Mon Sep 17 00:00:00 2001 From: Brian Kroth Date: Mon, 11 Dec 2023 18:21:15 +0000 Subject: [PATCH 36/56] remove an unused dependency --- pom.xml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/pom.xml b/pom.xml index 0b88000f5..bbeaecf9b 100644 --- a/pom.xml +++ b/pom.xml @@ -246,12 +246,6 @@ 2.9.0 - - commons-jxpath - commons-jxpath - 1.3 - - org.apache.commons commons-lang3 From 63a678eace571a442a71ead26547f84491d63f55 Mon Sep 17 00:00:00 2001 From: Brian Kroth Date: Mon, 11 Dec 2023 18:21:27 +0000 Subject: [PATCH 37/56] add an undeclared dependency --- pom.xml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pom.xml b/pom.xml index bbeaecf9b..5cea14671 100644 --- a/pom.xml +++ b/pom.xml @@ -264,6 +264,13 @@ 2.15.1 + + org.apache.commons + commons-text + 1.10.0 + compile + + org.apache.commons commons-collections4 From cdd30a27f2293c8707be8a4ec0b67ca416d6df6c Mon Sep 17 00:00:00 2001 From: Brian Kroth Date: Mon, 11 Dec 2023 18:21:58 +0000 Subject: [PATCH 38/56] mark a dependency as test scope only --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 5cea14671..df4bac977 100644 --- a/pom.xml +++ b/pom.xml @@ -303,10 +303,10 @@ - org.hsqldb hsqldb 2.7.2 + test From af8f624ae0c28a4acf2e12bcefff6233c63d8035 Mon Sep 17 00:00:00 2001 From: Brian Kroth Date: Mon, 11 Dec 2023 18:22:12 +0000 Subject: [PATCH 39/56] mark a dependency as compile time only --- pom.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/pom.xml b/pom.xml index df4bac977..8df3e41fc 100644 --- a/pom.xml +++ b/pom.xml @@ -300,6 +300,7 @@ org.glassfish.jaxb jaxb-runtime 4.0.4 + compile From bf50f744c999aa5866724c87dd05ccd934bdf01d Mon Sep 17 00:00:00 2001 From: Brian Kroth Date: Mon, 11 Dec 2023 18:22:28 +0000 Subject: [PATCH 40/56] remove an unused dependency --- pom.xml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/pom.xml b/pom.xml index 8df3e41fc..61b4a754c 100644 --- a/pom.xml +++ b/pom.xml @@ -324,12 +324,6 @@ provided - - org.codehaus.janino - janino - 3.1.11 - - From 95a75ef238f0b3ae0540512664dd3f5e3afc1865 Mon Sep 17 00:00:00 2001 From: Brian Kroth Date: Mon, 11 Dec 2023 18:23:17 +0000 Subject: [PATCH 41/56] Revert "remove an unused dependency" This reverts commit bf50f744c999aa5866724c87dd05ccd934bdf01d. --- pom.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pom.xml b/pom.xml index 61b4a754c..8df3e41fc 100644 --- a/pom.xml +++ b/pom.xml @@ -324,6 +324,12 @@ provided + + org.codehaus.janino + janino + 3.1.11 + + From a63fccb2cea00c9afab0b2f272c521800636542e Mon Sep 17 00:00:00 2001 From: Brian Kroth Date: Mon, 11 Dec 2023 18:32:58 +0000 Subject: [PATCH 42/56] mark runtime dependencies --- pom.xml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/pom.xml b/pom.xml index 8df3e41fc..ddd7e6cec 100644 --- a/pom.xml +++ b/pom.xml @@ -84,6 +84,7 @@ org.postgresql postgresql 42.6.0 + runtime @@ -145,6 +146,7 @@ org.mariadb.jdbc mariadb-java-client 3.1.4 + runtime @@ -164,6 +166,7 @@ com.google.cloud google-cloud-spanner-jdbc 2.10.0 + runtime @@ -183,6 +186,7 @@ org.postgresql postgresql 42.6.0 + runtime @@ -202,6 +206,7 @@ org.apache.phoenix phoenix-client-hbase-2.4 5.1.3 + runtime @@ -221,6 +226,7 @@ com.microsoft.sqlserver mssql-jdbc 11.2.3.jre17 + runtime @@ -478,7 +484,13 @@ + org.postgresql:postgresql:jar mysql:mysql-connector-java:jar + com.oracle.database.jdbc:ojdbc11:jar + org.mariadb.jdbc:mariadb-java-client:jar + com.google.cloud:google-cloud-spanner-jdbc:jar + org.apache.phoenix:phoenix-client-hbase-2.4:jar + com.microsoft.sqlserver:mssql-jdbc:jar From 504bfe9b4d2c9f12e9839f604d4f976a79f42874 Mon Sep 17 00:00:00 2001 From: Brian Kroth Date: Mon, 11 Dec 2023 18:33:06 +0000 Subject: [PATCH 43/56] more dependency fixups --- pom.xml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pom.xml b/pom.xml index ddd7e6cec..03c5a914f 100644 --- a/pom.xml +++ b/pom.xml @@ -331,6 +331,13 @@ + org.codehaus.janino + commons-compiler + 3.1.11 + + + + org.codehaus.janino janino 3.1.11 @@ -480,6 +487,8 @@ org.glassfish.jaxb:jaxb-runtime:jar org.slf4j:slf4j-reload4j:jar + + org.codehaus.janino:janino:jar commons-jxpath commons-jxpath 1.3 @@ -495,6 +496,8 @@ org.slf4j:slf4j-reload4j:jar org.codehaus.janino:janino:jar + + commons-jxpath:commons-jxpath:jar -Xlint:all,-processing + + -implicit:class From 5939e2dbd55595fd4938cbb32b6c55d943f95b01 Mon Sep 17 00:00:00 2001 From: Brian Kroth Date: Mon, 11 Dec 2023 22:25:40 +0000 Subject: [PATCH 49/56] ignore another error --- pom.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pom.xml b/pom.xml index edb6b30e7..37710a7f4 100644 --- a/pom.xml +++ b/pom.xml @@ -342,6 +342,11 @@ -Xlint:all,-processing + + -implicit:class + -Werror From ebb52de5436880f76cd11105fa0032cdde450823 Mon Sep 17 00:00:00 2001 From: Brian Kroth Date: Wed, 13 Dec 2023 17:22:09 +0000 Subject: [PATCH 50/56] addressing some new serialization warnings (need concrete types for the serialization methods to be resolvable) --- .../benchmarks/twitter/util/NameHistogram.java | 1 + .../benchmarks/twitter/util/TweetHistogram.java | 1 + .../wikipedia/data/RevisionHistograms.java | 4 +++- src/main/java/com/oltpbenchmark/catalog/Index.java | 2 +- src/main/java/com/oltpbenchmark/catalog/Table.java | 4 ++-- .../java/com/oltpbenchmark/util/Histogram.java | 14 ++++++++------ .../com/oltpbenchmark/util/JSONSerializable.java | 3 ++- .../com/oltpbenchmark/util/RandomDistribution.java | 2 +- 8 files changed, 19 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/oltpbenchmark/benchmarks/twitter/util/NameHistogram.java b/src/main/java/com/oltpbenchmark/benchmarks/twitter/util/NameHistogram.java index 8f897b08c..6d41cd840 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/twitter/util/NameHistogram.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/twitter/util/NameHistogram.java @@ -26,6 +26,7 @@ * @author pavlo */ public class NameHistogram extends Histogram { + private static final long serialVersionUID = 0L; { this.put(1, 2); diff --git a/src/main/java/com/oltpbenchmark/benchmarks/twitter/util/TweetHistogram.java b/src/main/java/com/oltpbenchmark/benchmarks/twitter/util/TweetHistogram.java index 525bf8173..daa5e8dd3 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/twitter/util/TweetHistogram.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/twitter/util/TweetHistogram.java @@ -29,6 +29,7 @@ * @author pavlo */ public class TweetHistogram extends Histogram { + private static final long serialVersionUID = 0L; { this.put(4, 2); diff --git a/src/main/java/com/oltpbenchmark/benchmarks/wikipedia/data/RevisionHistograms.java b/src/main/java/com/oltpbenchmark/benchmarks/wikipedia/data/RevisionHistograms.java index 6abd4f6fb..9712a51ef 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/wikipedia/data/RevisionHistograms.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/wikipedia/data/RevisionHistograms.java @@ -293,7 +293,9 @@ public abstract class RevisionHistograms { /** * Simple generic class overload to avoid some cast warnings below. */ - public static class IntHistogram extends Histogram {} + public static class IntHistogram extends Histogram { + private static final long serialVersionUID = 0L; + } /** * diff --git a/src/main/java/com/oltpbenchmark/catalog/Index.java b/src/main/java/com/oltpbenchmark/catalog/Index.java index 5fb00d3fd..e5f2118d0 100644 --- a/src/main/java/com/oltpbenchmark/catalog/Index.java +++ b/src/main/java/com/oltpbenchmark/catalog/Index.java @@ -28,7 +28,7 @@ public class Index extends AbstractCatalogObject { private static final long serialVersionUID = 1L; private final Table table; - private final SortedMap columns = new TreeMap<>(); + private final TreeMap columns = new TreeMap<>(); private final int type; private final boolean unique; diff --git a/src/main/java/com/oltpbenchmark/catalog/Table.java b/src/main/java/com/oltpbenchmark/catalog/Table.java index 8e545eb20..587ff3cd3 100644 --- a/src/main/java/com/oltpbenchmark/catalog/Table.java +++ b/src/main/java/com/oltpbenchmark/catalog/Table.java @@ -34,8 +34,8 @@ public class Table extends AbstractCatalogObject { private static final long serialVersionUID = 1L; - private final List columns = new ArrayList<>(); - private final List indexes = new ArrayList<>(); + private final ArrayList columns = new ArrayList<>(); + private final ArrayList indexes = new ArrayList<>(); public Table(String name, String separator) { super(name, separator); diff --git a/src/main/java/com/oltpbenchmark/util/Histogram.java b/src/main/java/com/oltpbenchmark/util/Histogram.java index 9abc35243..8e884fb12 100644 --- a/src/main/java/com/oltpbenchmark/util/Histogram.java +++ b/src/main/java/com/oltpbenchmark/util/Histogram.java @@ -38,6 +38,8 @@ public class Histogram> implements JSONSerializable { private static final Logger LOG = LoggerFactory.getLogger(Histogram.class); + private static final long serialVersionUID = 0L; + private static final String MARKER = "*"; private static final Integer MAX_CHARS = 80; private static final Integer MAX_VALUE_LENGTH = 80; @@ -49,7 +51,7 @@ public enum Members { KEEP_ZERO_ENTRIES, } - protected final SortedMap histogram = new TreeMap<>(); + protected final TreeMap histogram = new TreeMap<>(); protected int num_samples = 0; private transient boolean dirty = false; @@ -62,17 +64,17 @@ public enum Members { * The Min/Max values are the smallest/greatest values we have seen based * on some natural ordering */ - protected Comparable min_value; - protected Comparable max_value; + protected transient Comparable min_value; + protected transient Comparable max_value; /** * The Min/Max counts are the values that have the smallest/greatest number of * occurences in the histogram */ protected int min_count = 0; - protected List min_count_values; + protected ArrayList min_count_values; protected int max_count = 0; - protected List max_count_values; + protected ArrayList max_count_values; /** * A switchable flag that determines whether non-zero entries are kept or removed @@ -173,7 +175,7 @@ private synchronized void calculateInternalValues() { } // New Min/Max Counts - // The reason we have to loop through and check every time is that our + // The reason we have to loop through and check every time is that our // value may be the current min/max count and thus it may or may not still // be after the count is changed this.max_count = 0; diff --git a/src/main/java/com/oltpbenchmark/util/JSONSerializable.java b/src/main/java/com/oltpbenchmark/util/JSONSerializable.java index e43b22f5e..332208d4f 100644 --- a/src/main/java/com/oltpbenchmark/util/JSONSerializable.java +++ b/src/main/java/com/oltpbenchmark/util/JSONSerializable.java @@ -23,8 +23,9 @@ import org.json.JSONStringer; import java.io.IOException; +import java.io.Serializable; -public interface JSONSerializable extends JSONString { +public interface JSONSerializable extends JSONString, Serializable { void save(String output_path) throws IOException; void load(String input_path) throws IOException; diff --git a/src/main/java/com/oltpbenchmark/util/RandomDistribution.java b/src/main/java/com/oltpbenchmark/util/RandomDistribution.java index c6f0b8918..559ce67f6 100644 --- a/src/main/java/com/oltpbenchmark/util/RandomDistribution.java +++ b/src/main/java/com/oltpbenchmark/util/RandomDistribution.java @@ -184,7 +184,7 @@ protected long nextLongImpl() { public static class FlatHistogram> extends DiscreteRNG { private static final long serialVersionUID = 1L; private final Flat inner; - private final SortedMap value_rle = new TreeMap<>(); + private final TreeMap value_rle = new TreeMap<>(); private Histogram history; /** From adb1a961f469ae1eb928350ab1810e031e4c8438 Mon Sep 17 00:00:00 2001 From: Brian Kroth Date: Wed, 13 Dec 2023 17:24:09 +0000 Subject: [PATCH 51/56] comments --- src/main/java/com/oltpbenchmark/util/Histogram.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/com/oltpbenchmark/util/Histogram.java b/src/main/java/com/oltpbenchmark/util/Histogram.java index 8e884fb12..d3c246c51 100644 --- a/src/main/java/com/oltpbenchmark/util/Histogram.java +++ b/src/main/java/com/oltpbenchmark/util/Histogram.java @@ -64,6 +64,8 @@ public enum Members { * The Min/Max values are the smallest/greatest values we have seen based * on some natural ordering */ + // Note: marked as transient to avoid serialization warnings due to missing + // explicit Serializable interface on base types like X == Integer protected transient Comparable min_value; protected transient Comparable max_value; From acd47aabfd66c64f17de3742fe02f388ff37b093 Mon Sep 17 00:00:00 2001 From: Brian Kroth Date: Wed, 13 Dec 2023 17:50:46 +0000 Subject: [PATCH 52/56] adjust constructor to avoid this-escape errors --- src/main/java/com/oltpbenchmark/api/BenchmarkModule.java | 5 +++-- .../benchmarks/templated/TemplatedBenchmark.java | 5 +++-- src/test/java/com/oltpbenchmark/api/AbstractTestCase.java | 5 ++++- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/oltpbenchmark/api/BenchmarkModule.java b/src/main/java/com/oltpbenchmark/api/BenchmarkModule.java index 16a844e5e..6f5fa69f6 100644 --- a/src/main/java/com/oltpbenchmark/api/BenchmarkModule.java +++ b/src/main/java/com/oltpbenchmark/api/BenchmarkModule.java @@ -77,14 +77,15 @@ public abstract class BenchmarkModule { public BenchmarkModule(WorkloadConfiguration workConf) { this.workConf = workConf; this.dialects = new StatementDialects(workConf); - initClassLoader(); + // setClassLoader(); + this.classLoader = ClassLoader.getSystemClassLoader(); } /** * Instantiates the classLoader variable, needs to be overwritten if * benchmark uses a custom implementation. */ - protected void initClassLoader() { + protected void setClassLoader() { this.classLoader = ClassLoader.getSystemClassLoader(); } diff --git a/src/main/java/com/oltpbenchmark/benchmarks/templated/TemplatedBenchmark.java b/src/main/java/com/oltpbenchmark/benchmarks/templated/TemplatedBenchmark.java index 01ed0ec91..4e138603d 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/templated/TemplatedBenchmark.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/templated/TemplatedBenchmark.java @@ -67,11 +67,12 @@ public class TemplatedBenchmark extends BenchmarkModule { public TemplatedBenchmark(WorkloadConfiguration workConf) { super(workConf); + this.setClassLoader(); } @Override - protected void initClassLoader() { - super.initClassLoader(); + protected void setClassLoader() { + super.setClassLoader(); if (workConf != null && workConf.getXmlConfig().containsKey("query_templates_file")) { this.classLoader = this.loadQueryTemplates( diff --git a/src/test/java/com/oltpbenchmark/api/AbstractTestCase.java b/src/test/java/com/oltpbenchmark/api/AbstractTestCase.java index 2356215da..8e6b3e376 100644 --- a/src/test/java/com/oltpbenchmark/api/AbstractTestCase.java +++ b/src/test/java/com/oltpbenchmark/api/AbstractTestCase.java @@ -16,6 +16,7 @@ package com.oltpbenchmark.api; +import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.fail; @@ -140,7 +141,9 @@ public final void setUp() throws Exception { // tests, but actually ensures that the procedures list is populated // for the TestTemplatedWorker test which doesn't know its procedures // until after the benchmark is initialized and the config is loaded. - assertNotNull(this.procedures()); + var proceedures = this.procedures(); + assertNotNull(proceedures); + assertFalse(proceedures.isEmpty()); this.conn = this.benchmark.makeConnection(); assertNotNull(this.conn); From d350c6e1eb725d8e5f39271cb079afe4a96ca171 Mon Sep 17 00:00:00 2001 From: Brian Kroth Date: Wed, 13 Dec 2023 17:53:09 +0000 Subject: [PATCH 53/56] convert a pile of classes to 'final' to avoid this-escape errors --- src/main/java/com/oltpbenchmark/api/StatementDialects.java | 2 +- .../benchmarks/auctionmark/AuctionMarkBenchmark.java | 2 +- .../oltpbenchmark/benchmarks/auctionmark/AuctionMarkLoader.java | 2 +- .../oltpbenchmark/benchmarks/auctionmark/AuctionMarkWorker.java | 2 +- .../benchmarks/auctionmark/util/CategoryParser.java | 2 +- .../benchmarks/auctionmark/util/GlobalAttributeGroupId.java | 2 +- .../com/oltpbenchmark/benchmarks/auctionmark/util/ItemId.java | 2 +- .../com/oltpbenchmark/benchmarks/auctionmark/util/UserId.java | 2 +- .../benchmarks/auctionmark/util/UserIdGenerator.java | 2 +- .../com/oltpbenchmark/benchmarks/chbenchmark/CHBenCHmark.java | 2 +- .../oltpbenchmark/benchmarks/chbenchmark/CHBenCHmarkLoader.java | 2 +- .../oltpbenchmark/benchmarks/chbenchmark/CHBenCHmarkWorker.java | 2 +- .../oltpbenchmark/benchmarks/epinions/EpinionsBenchmark.java | 2 +- .../com/oltpbenchmark/benchmarks/epinions/EpinionsLoader.java | 2 +- .../com/oltpbenchmark/benchmarks/epinions/EpinionsWorker.java | 2 +- .../com/oltpbenchmark/benchmarks/hyadapt/HYADAPTBenchmark.java | 2 +- .../com/oltpbenchmark/benchmarks/hyadapt/HYADAPTLoader.java | 2 +- .../com/oltpbenchmark/benchmarks/hyadapt/HYADAPTWorker.java | 2 +- .../java/com/oltpbenchmark/benchmarks/noop/NoOpBenchmark.java | 2 +- src/main/java/com/oltpbenchmark/benchmarks/noop/NoOpLoader.java | 2 +- src/main/java/com/oltpbenchmark/benchmarks/noop/NoOpWorker.java | 2 +- .../oltpbenchmark/benchmarks/otmetrics/OTMetricsBenchmark.java | 2 +- .../com/oltpbenchmark/benchmarks/otmetrics/OTMetricsLoader.java | 2 +- .../com/oltpbenchmark/benchmarks/otmetrics/OTMetricsWorker.java | 2 +- .../benchmarks/resourcestresser/ResourceStresserBenchmark.java | 2 +- .../benchmarks/resourcestresser/ResourceStresserLoader.java | 2 +- .../benchmarks/resourcestresser/ResourceStresserWorker.java | 2 +- .../java/com/oltpbenchmark/benchmarks/seats/SEATSBenchmark.java | 2 +- .../java/com/oltpbenchmark/benchmarks/seats/SEATSLoader.java | 2 +- .../java/com/oltpbenchmark/benchmarks/seats/SEATSWorker.java | 2 +- .../com/oltpbenchmark/benchmarks/seats/util/CustomerId.java | 2 +- .../java/com/oltpbenchmark/benchmarks/seats/util/FlightId.java | 2 +- .../java/com/oltpbenchmark/benchmarks/sibench/SIBenchmark.java | 2 +- .../java/com/oltpbenchmark/benchmarks/sibench/SILoader.java | 2 +- .../java/com/oltpbenchmark/benchmarks/sibench/SIWorker.java | 2 +- .../oltpbenchmark/benchmarks/smallbank/SmallBankBenchmark.java | 2 +- .../com/oltpbenchmark/benchmarks/smallbank/SmallBankLoader.java | 2 +- .../com/oltpbenchmark/benchmarks/smallbank/SmallBankWorker.java | 2 +- .../java/com/oltpbenchmark/benchmarks/tatp/TATPBenchmark.java | 2 +- src/main/java/com/oltpbenchmark/benchmarks/tatp/TATPLoader.java | 2 +- src/main/java/com/oltpbenchmark/benchmarks/tatp/TATPWorker.java | 2 +- .../oltpbenchmark/benchmarks/templated/TemplatedBenchmark.java | 2 +- .../com/oltpbenchmark/benchmarks/templated/TemplatedWorker.java | 2 +- .../java/com/oltpbenchmark/benchmarks/tpcc/TPCCBenchmark.java | 2 +- src/main/java/com/oltpbenchmark/benchmarks/tpcc/TPCCLoader.java | 2 +- src/main/java/com/oltpbenchmark/benchmarks/tpcc/TPCCWorker.java | 2 +- .../java/com/oltpbenchmark/benchmarks/tpcds/TPCDSBenchmark.java | 2 +- .../java/com/oltpbenchmark/benchmarks/tpcds/TPCDSLoader.java | 2 +- .../java/com/oltpbenchmark/benchmarks/tpcds/TPCDSWorker.java | 2 +- .../java/com/oltpbenchmark/benchmarks/tpch/TPCHBenchmark.java | 2 +- src/main/java/com/oltpbenchmark/benchmarks/tpch/TPCHLoader.java | 2 +- src/main/java/com/oltpbenchmark/benchmarks/tpch/TPCHWorker.java | 2 +- .../com/oltpbenchmark/benchmarks/twitter/TwitterBenchmark.java | 2 +- .../com/oltpbenchmark/benchmarks/twitter/TwitterLoader.java | 2 +- .../com/oltpbenchmark/benchmarks/twitter/TwitterWorker.java | 2 +- .../oltpbenchmark/benchmarks/twitter/util/NameHistogram.java | 2 +- .../oltpbenchmark/benchmarks/twitter/util/TweetHistogram.java | 2 +- .../java/com/oltpbenchmark/benchmarks/voter/VoterBenchmark.java | 2 +- .../java/com/oltpbenchmark/benchmarks/voter/VoterLoader.java | 2 +- .../java/com/oltpbenchmark/benchmarks/voter/VoterWorker.java | 2 +- .../oltpbenchmark/benchmarks/wikipedia/WikipediaBenchmark.java | 2 +- .../com/oltpbenchmark/benchmarks/wikipedia/WikipediaLoader.java | 2 +- .../com/oltpbenchmark/benchmarks/wikipedia/WikipediaWorker.java | 2 +- .../java/com/oltpbenchmark/benchmarks/ycsb/YCSBBenchmark.java | 2 +- src/main/java/com/oltpbenchmark/catalog/HSQLDBCatalog.java | 2 +- .../java/com/oltpbenchmark/distributions/CounterGenerator.java | 2 +- .../java/com/oltpbenchmark/distributions/ZipfianGenerator.java | 2 +- src/test/java/com/oltpbenchmark/api/MockBenchmark.java | 2 +- 68 files changed, 68 insertions(+), 68 deletions(-) diff --git a/src/main/java/com/oltpbenchmark/api/StatementDialects.java b/src/main/java/com/oltpbenchmark/api/StatementDialects.java index cb63eb2aa..aed1cfbcb 100644 --- a/src/main/java/com/oltpbenchmark/api/StatementDialects.java +++ b/src/main/java/com/oltpbenchmark/api/StatementDialects.java @@ -38,7 +38,7 @@ /** * @author pavlo */ -public class StatementDialects { +public final class StatementDialects { private static final Logger LOG = LoggerFactory.getLogger(StatementDialects.class); private static final DatabaseType DEFAULT_DB_TYPE = DatabaseType.MYSQL; diff --git a/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkBenchmark.java b/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkBenchmark.java index c2aade760..12703b76b 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkBenchmark.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkBenchmark.java @@ -33,7 +33,7 @@ import java.util.ArrayList; import java.util.List; -public class AuctionMarkBenchmark extends BenchmarkModule { +public final class AuctionMarkBenchmark extends BenchmarkModule { @SuppressWarnings("unused") private static final Logger LOG = LoggerFactory.getLogger(AuctionMarkBenchmark.class); diff --git a/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkLoader.java b/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkLoader.java index 00e5a0321..5fa073cbb 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkLoader.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkLoader.java @@ -46,7 +46,7 @@ * @author pavlo * @author visawee */ -public class AuctionMarkLoader extends Loader { +public final class AuctionMarkLoader extends Loader { // ----------------------------------------------------------------- // INTERNAL DATA MEMBERS diff --git a/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkWorker.java b/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkWorker.java index 70b51c117..55074346e 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkWorker.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/AuctionMarkWorker.java @@ -37,7 +37,7 @@ import java.util.*; import java.util.concurrent.atomic.AtomicBoolean; -public class AuctionMarkWorker extends Worker { +public final class AuctionMarkWorker extends Worker { private static final Logger LOG = LoggerFactory.getLogger(AuctionMarkWorker.class); // ----------------------------------------------------------------- diff --git a/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/util/CategoryParser.java b/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/util/CategoryParser.java index a1de14819..c06f25e42 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/util/CategoryParser.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/util/CategoryParser.java @@ -29,7 +29,7 @@ import java.util.TreeMap; -public class CategoryParser { +public final class CategoryParser { @SuppressWarnings("unused") private static final Logger LOG = LoggerFactory.getLogger(CategoryParser.class); diff --git a/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/util/GlobalAttributeGroupId.java b/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/util/GlobalAttributeGroupId.java index bf52b26e2..1df7f063a 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/util/GlobalAttributeGroupId.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/util/GlobalAttributeGroupId.java @@ -24,7 +24,7 @@ import java.util.Objects; import java.util.stream.IntStream; -public class GlobalAttributeGroupId extends CompositeId implements Comparable { +public final class GlobalAttributeGroupId extends CompositeId implements Comparable { private static final int[] COMPOSITE_BITS = { INT_MAX_DIGITS, // CATEGORY diff --git a/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/util/ItemId.java b/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/util/ItemId.java index d3444c9ce..ddd99b00d 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/util/ItemId.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/util/ItemId.java @@ -30,7 +30,7 @@ * * @author pavlo */ -public class ItemId extends CompositeId implements Comparable { +public final class ItemId extends CompositeId implements Comparable { private static final int[] COMPOSITE_BITS = { UserId.ID_LENGTH, // SELLER_ID diff --git a/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/util/UserId.java b/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/util/UserId.java index 662ee0554..428fca04d 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/util/UserId.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/util/UserId.java @@ -24,7 +24,7 @@ import java.util.Objects; import java.util.stream.IntStream; -public class UserId extends CompositeId implements Comparable { +public final class UserId extends CompositeId implements Comparable { private static final int[] COMPOSITE_BITS = { INT_MAX_DIGITS, // ITEM_COUNT diff --git a/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/util/UserIdGenerator.java b/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/util/UserIdGenerator.java index f9800788f..7fe6097bc 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/util/UserIdGenerator.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/auctionmark/util/UserIdGenerator.java @@ -27,7 +27,7 @@ import java.util.Iterator; import java.util.Map; -public class UserIdGenerator implements Iterator { +public final class UserIdGenerator implements Iterator { private final int numClients; private final Integer clientId; diff --git a/src/main/java/com/oltpbenchmark/benchmarks/chbenchmark/CHBenCHmark.java b/src/main/java/com/oltpbenchmark/benchmarks/chbenchmark/CHBenCHmark.java index 1ef007372..33de1ab11 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/chbenchmark/CHBenCHmark.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/chbenchmark/CHBenCHmark.java @@ -29,7 +29,7 @@ import java.util.ArrayList; import java.util.List; -public class CHBenCHmark extends BenchmarkModule { +public final class CHBenCHmark extends BenchmarkModule { private static final Logger LOG = LoggerFactory.getLogger(CHBenCHmark.class); public CHBenCHmark(WorkloadConfiguration workConf) { diff --git a/src/main/java/com/oltpbenchmark/benchmarks/chbenchmark/CHBenCHmarkLoader.java b/src/main/java/com/oltpbenchmark/benchmarks/chbenchmark/CHBenCHmarkLoader.java index 4f891aa38..6112318be 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/chbenchmark/CHBenCHmarkLoader.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/chbenchmark/CHBenCHmarkLoader.java @@ -37,7 +37,7 @@ import java.util.StringTokenizer; import java.util.concurrent.CountDownLatch; -public class CHBenCHmarkLoader extends Loader { +public final class CHBenCHmarkLoader extends Loader { private static final RandomGenerator ran = new RandomGenerator(0); diff --git a/src/main/java/com/oltpbenchmark/benchmarks/chbenchmark/CHBenCHmarkWorker.java b/src/main/java/com/oltpbenchmark/benchmarks/chbenchmark/CHBenCHmarkWorker.java index ee3eb79d6..c7b6024b0 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/chbenchmark/CHBenCHmarkWorker.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/chbenchmark/CHBenCHmarkWorker.java @@ -26,7 +26,7 @@ import java.sql.Connection; import java.sql.SQLException; -public class CHBenCHmarkWorker extends Worker { +public final class CHBenCHmarkWorker extends Worker { public CHBenCHmarkWorker(CHBenCHmark benchmarkModule, int id) { super(benchmarkModule, id); } diff --git a/src/main/java/com/oltpbenchmark/benchmarks/epinions/EpinionsBenchmark.java b/src/main/java/com/oltpbenchmark/benchmarks/epinions/EpinionsBenchmark.java index 770c73af5..991236988 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/epinions/EpinionsBenchmark.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/epinions/EpinionsBenchmark.java @@ -36,7 +36,7 @@ import java.util.ArrayList; import java.util.List; -public class EpinionsBenchmark extends BenchmarkModule { +public final class EpinionsBenchmark extends BenchmarkModule { private static final Logger LOG = LoggerFactory.getLogger(EpinionsBenchmark.class); diff --git a/src/main/java/com/oltpbenchmark/benchmarks/epinions/EpinionsLoader.java b/src/main/java/com/oltpbenchmark/benchmarks/epinions/EpinionsLoader.java index fc26f296e..837c81b2a 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/epinions/EpinionsLoader.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/epinions/EpinionsLoader.java @@ -32,7 +32,7 @@ import java.util.*; import java.util.concurrent.CountDownLatch; -public class EpinionsLoader extends Loader { +public final class EpinionsLoader extends Loader { private final int num_users; private final int num_items; diff --git a/src/main/java/com/oltpbenchmark/benchmarks/epinions/EpinionsWorker.java b/src/main/java/com/oltpbenchmark/benchmarks/epinions/EpinionsWorker.java index 100d72fc4..fb774a904 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/epinions/EpinionsWorker.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/epinions/EpinionsWorker.java @@ -31,7 +31,7 @@ import java.sql.SQLException; import java.util.ArrayList; -public class EpinionsWorker extends Worker { +public final class EpinionsWorker extends Worker { @SuppressWarnings("unused") private static final Logger LOG = LoggerFactory.getLogger(EpinionsWorker.class); diff --git a/src/main/java/com/oltpbenchmark/benchmarks/hyadapt/HYADAPTBenchmark.java b/src/main/java/com/oltpbenchmark/benchmarks/hyadapt/HYADAPTBenchmark.java index 63150752d..4d85c1ad5 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/hyadapt/HYADAPTBenchmark.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/hyadapt/HYADAPTBenchmark.java @@ -34,7 +34,7 @@ import java.util.ArrayList; import java.util.List; -public class HYADAPTBenchmark extends BenchmarkModule { +public final class HYADAPTBenchmark extends BenchmarkModule { private static final Logger LOG = LoggerFactory.getLogger(HYADAPTBenchmark.class); public HYADAPTBenchmark(WorkloadConfiguration workConf) { diff --git a/src/main/java/com/oltpbenchmark/benchmarks/hyadapt/HYADAPTLoader.java b/src/main/java/com/oltpbenchmark/benchmarks/hyadapt/HYADAPTLoader.java index 0021d38f1..2a9a5f241 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/hyadapt/HYADAPTLoader.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/hyadapt/HYADAPTLoader.java @@ -29,7 +29,7 @@ import java.util.List; import java.util.Random; -public class HYADAPTLoader extends Loader { +public final class HYADAPTLoader extends Loader { private final int num_record; private static final Random rand = new Random(); diff --git a/src/main/java/com/oltpbenchmark/benchmarks/hyadapt/HYADAPTWorker.java b/src/main/java/com/oltpbenchmark/benchmarks/hyadapt/HYADAPTWorker.java index 0fab60e66..b82a9a61f 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/hyadapt/HYADAPTWorker.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/hyadapt/HYADAPTWorker.java @@ -31,7 +31,7 @@ import java.sql.SQLException; import java.util.HashMap; -public class HYADAPTWorker extends Worker { +public final class HYADAPTWorker extends Worker { private static final Logger LOG = LoggerFactory.getLogger(HYADAPTWorker.class); private static CounterGenerator insertRecord; diff --git a/src/main/java/com/oltpbenchmark/benchmarks/noop/NoOpBenchmark.java b/src/main/java/com/oltpbenchmark/benchmarks/noop/NoOpBenchmark.java index 58c211095..9d0b502bd 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/noop/NoOpBenchmark.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/noop/NoOpBenchmark.java @@ -33,7 +33,7 @@ * @author pavlo * @author eric-haibin-lin */ -public class NoOpBenchmark extends BenchmarkModule { +public final class NoOpBenchmark extends BenchmarkModule { public NoOpBenchmark(WorkloadConfiguration workConf) { super(workConf); diff --git a/src/main/java/com/oltpbenchmark/benchmarks/noop/NoOpLoader.java b/src/main/java/com/oltpbenchmark/benchmarks/noop/NoOpLoader.java index a9a2ce039..9e69074f8 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/noop/NoOpLoader.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/noop/NoOpLoader.java @@ -29,7 +29,7 @@ * @author pavlo * @author eric-haibin-lin */ -public class NoOpLoader extends Loader { +public final class NoOpLoader extends Loader { public NoOpLoader(NoOpBenchmark benchmark) { super(benchmark); } diff --git a/src/main/java/com/oltpbenchmark/benchmarks/noop/NoOpWorker.java b/src/main/java/com/oltpbenchmark/benchmarks/noop/NoOpWorker.java index 2af31d0de..1fbee1442 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/noop/NoOpWorker.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/noop/NoOpWorker.java @@ -31,7 +31,7 @@ * @author pavlo * @author eric-haibin-lin */ -public class NoOpWorker extends Worker { +public final class NoOpWorker extends Worker { private static final Logger LOG = LoggerFactory.getLogger(NoOpWorker.class); private final NoOp procNoOp; diff --git a/src/main/java/com/oltpbenchmark/benchmarks/otmetrics/OTMetricsBenchmark.java b/src/main/java/com/oltpbenchmark/benchmarks/otmetrics/OTMetricsBenchmark.java index c1894bd3c..d129d43b1 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/otmetrics/OTMetricsBenchmark.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/otmetrics/OTMetricsBenchmark.java @@ -31,7 +31,7 @@ * OtterTune Metrics Timeseries Benchmark * @author pavlo */ -public class OTMetricsBenchmark extends BenchmarkModule { +public final class OTMetricsBenchmark extends BenchmarkModule { @SuppressWarnings("unused") private static final Logger LOG = LoggerFactory.getLogger(OTMetricsBenchmark.class); diff --git a/src/main/java/com/oltpbenchmark/benchmarks/otmetrics/OTMetricsLoader.java b/src/main/java/com/oltpbenchmark/benchmarks/otmetrics/OTMetricsLoader.java index 5e9972991..f1a3a6de4 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/otmetrics/OTMetricsLoader.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/otmetrics/OTMetricsLoader.java @@ -38,7 +38,7 @@ * OtterTune Metrics Timeseries Benchmark * @author pavlo */ -public class OTMetricsLoader extends Loader { +public final class OTMetricsLoader extends Loader { public OTMetricsLoader(OTMetricsBenchmark benchmark) { super(benchmark); diff --git a/src/main/java/com/oltpbenchmark/benchmarks/otmetrics/OTMetricsWorker.java b/src/main/java/com/oltpbenchmark/benchmarks/otmetrics/OTMetricsWorker.java index 202c82756..fe8936bc3 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/otmetrics/OTMetricsWorker.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/otmetrics/OTMetricsWorker.java @@ -34,7 +34,7 @@ * OtterTune Metrics Timeseries Benchmark * @author pavlo */ -public class OTMetricsWorker extends Worker { +public final class OTMetricsWorker extends Worker { private static final Logger LOG = LoggerFactory.getLogger(OTMetricsWorker.class); diff --git a/src/main/java/com/oltpbenchmark/benchmarks/resourcestresser/ResourceStresserBenchmark.java b/src/main/java/com/oltpbenchmark/benchmarks/resourcestresser/ResourceStresserBenchmark.java index ac17f3fca..86c79308b 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/resourcestresser/ResourceStresserBenchmark.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/resourcestresser/ResourceStresserBenchmark.java @@ -29,7 +29,7 @@ import java.util.ArrayList; import java.util.List; -public class ResourceStresserBenchmark extends BenchmarkModule { +public final class ResourceStresserBenchmark extends BenchmarkModule { private static final Logger LOG = LoggerFactory.getLogger(ResourceStresserBenchmark.class); public ResourceStresserBenchmark(WorkloadConfiguration workConf) { diff --git a/src/main/java/com/oltpbenchmark/benchmarks/resourcestresser/ResourceStresserLoader.java b/src/main/java/com/oltpbenchmark/benchmarks/resourcestresser/ResourceStresserLoader.java index be8933129..a39dc2f88 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/resourcestresser/ResourceStresserLoader.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/resourcestresser/ResourceStresserLoader.java @@ -29,7 +29,7 @@ import java.util.ArrayList; import java.util.List; -public class ResourceStresserLoader extends Loader { +public final class ResourceStresserLoader extends Loader { private final int numEmployees; diff --git a/src/main/java/com/oltpbenchmark/benchmarks/resourcestresser/ResourceStresserWorker.java b/src/main/java/com/oltpbenchmark/benchmarks/resourcestresser/ResourceStresserWorker.java index 1e7e5da60..dffed7b8a 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/resourcestresser/ResourceStresserWorker.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/resourcestresser/ResourceStresserWorker.java @@ -28,7 +28,7 @@ import java.sql.SQLException; import java.util.Random; -public class ResourceStresserWorker extends Worker { +public final class ResourceStresserWorker extends Worker { public static final int CONTENTION1_howManyKeys = 10; public static final int CONTENTION1_howManyUpdates = 20; public static final int CONTENTION1_sleepLength = 1; diff --git a/src/main/java/com/oltpbenchmark/benchmarks/seats/SEATSBenchmark.java b/src/main/java/com/oltpbenchmark/benchmarks/seats/SEATSBenchmark.java index b2ed1bb3e..35a032e5a 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/seats/SEATSBenchmark.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/seats/SEATSBenchmark.java @@ -29,7 +29,7 @@ import java.util.ArrayList; import java.util.List; -public class SEATSBenchmark extends BenchmarkModule { +public final class SEATSBenchmark extends BenchmarkModule { private final RandomGenerator rng = new RandomGenerator((int) System.currentTimeMillis()); diff --git a/src/main/java/com/oltpbenchmark/benchmarks/seats/SEATSLoader.java b/src/main/java/com/oltpbenchmark/benchmarks/seats/SEATSLoader.java index 74c5b90ca..31b5e7226 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/seats/SEATSLoader.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/seats/SEATSLoader.java @@ -39,7 +39,7 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.regex.Matcher; -public class SEATSLoader extends Loader { +public final class SEATSLoader extends Loader { // ----------------------------------------------------------------- // INTERNAL DATA MEMBERS // ----------------------------------------------------------------- diff --git a/src/main/java/com/oltpbenchmark/benchmarks/seats/SEATSWorker.java b/src/main/java/com/oltpbenchmark/benchmarks/seats/SEATSWorker.java index 4d9b2e3d9..afdced159 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/seats/SEATSWorker.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/seats/SEATSWorker.java @@ -58,7 +58,7 @@ import java.sql.Timestamp; import java.util.*; -public class SEATSWorker extends Worker { +public final class SEATSWorker extends Worker { private static final Logger LOG = LoggerFactory.getLogger(SEATSWorker.class); /** diff --git a/src/main/java/com/oltpbenchmark/benchmarks/seats/util/CustomerId.java b/src/main/java/com/oltpbenchmark/benchmarks/seats/util/CustomerId.java index 7b5ed86de..517737b0e 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/seats/util/CustomerId.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/seats/util/CustomerId.java @@ -23,7 +23,7 @@ import java.util.Comparator; import java.util.Objects; -public class CustomerId extends CompositeId implements Comparable { +public final class CustomerId extends CompositeId implements Comparable { private static final int[] COMPOSITE_BITS = { INT_MAX_DIGITS, // ID diff --git a/src/main/java/com/oltpbenchmark/benchmarks/seats/util/FlightId.java b/src/main/java/com/oltpbenchmark/benchmarks/seats/util/FlightId.java index c30e6172e..a749a7964 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/seats/util/FlightId.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/seats/util/FlightId.java @@ -25,7 +25,7 @@ import java.util.Comparator; import java.util.Objects; -public class FlightId extends CompositeId implements Comparable { +public final class FlightId extends CompositeId implements Comparable { private static final int[] COMPOSITE_BITS = { LONG_MAX_DIGITS, // AIRLINE_ID diff --git a/src/main/java/com/oltpbenchmark/benchmarks/sibench/SIBenchmark.java b/src/main/java/com/oltpbenchmark/benchmarks/sibench/SIBenchmark.java index e0490b426..65930f06f 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/sibench/SIBenchmark.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/sibench/SIBenchmark.java @@ -34,7 +34,7 @@ import java.util.ArrayList; import java.util.List; -public class SIBenchmark extends BenchmarkModule { +public final class SIBenchmark extends BenchmarkModule { private static final Logger LOG = LoggerFactory.getLogger(SIBenchmark.class); diff --git a/src/main/java/com/oltpbenchmark/benchmarks/sibench/SILoader.java b/src/main/java/com/oltpbenchmark/benchmarks/sibench/SILoader.java index 942b391f2..22aa4bbfd 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/sibench/SILoader.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/sibench/SILoader.java @@ -29,7 +29,7 @@ import java.util.List; import java.util.Random; -public class SILoader extends Loader { +public final class SILoader extends Loader { private final int num_record; public SILoader(SIBenchmark benchmark) { diff --git a/src/main/java/com/oltpbenchmark/benchmarks/sibench/SIWorker.java b/src/main/java/com/oltpbenchmark/benchmarks/sibench/SIWorker.java index 58a2653ac..e38144f8c 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/sibench/SIWorker.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/sibench/SIWorker.java @@ -29,7 +29,7 @@ import java.sql.SQLException; import java.util.Random; -public class SIWorker extends Worker { +public final class SIWorker extends Worker { private static Random updateRecordIdGenerator = null; private final int recordCount; diff --git a/src/main/java/com/oltpbenchmark/benchmarks/smallbank/SmallBankBenchmark.java b/src/main/java/com/oltpbenchmark/benchmarks/smallbank/SmallBankBenchmark.java index 5e17ace12..998731a0e 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/smallbank/SmallBankBenchmark.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/smallbank/SmallBankBenchmark.java @@ -29,7 +29,7 @@ import java.util.ArrayList; import java.util.List; -public class SmallBankBenchmark extends BenchmarkModule { +public final class SmallBankBenchmark extends BenchmarkModule { protected final long numAccounts; diff --git a/src/main/java/com/oltpbenchmark/benchmarks/smallbank/SmallBankLoader.java b/src/main/java/com/oltpbenchmark/benchmarks/smallbank/SmallBankLoader.java index 2bdde99a0..33026f87b 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/smallbank/SmallBankLoader.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/smallbank/SmallBankLoader.java @@ -35,7 +35,7 @@ * * @author pavlo */ -public class SmallBankLoader extends Loader { +public final class SmallBankLoader extends Loader { private final Table catalogAccts; private final Table catalogSavings; private final Table catalogChecking; diff --git a/src/main/java/com/oltpbenchmark/benchmarks/smallbank/SmallBankWorker.java b/src/main/java/com/oltpbenchmark/benchmarks/smallbank/SmallBankWorker.java index fae17179e..1f5af8588 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/smallbank/SmallBankWorker.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/smallbank/SmallBankWorker.java @@ -38,7 +38,7 @@ * * @author pavlo */ -public class SmallBankWorker extends Worker { +public final class SmallBankWorker extends Worker { private static final Logger LOG = LoggerFactory.getLogger(SmallBankWorker.class); private final Amalgamate procAmalgamate; diff --git a/src/main/java/com/oltpbenchmark/benchmarks/tatp/TATPBenchmark.java b/src/main/java/com/oltpbenchmark/benchmarks/tatp/TATPBenchmark.java index fd94d0487..6d94f78b8 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/tatp/TATPBenchmark.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/tatp/TATPBenchmark.java @@ -27,7 +27,7 @@ import java.util.ArrayList; import java.util.List; -public class TATPBenchmark extends BenchmarkModule { +public final class TATPBenchmark extends BenchmarkModule { public TATPBenchmark(WorkloadConfiguration workConf) { super(workConf); diff --git a/src/main/java/com/oltpbenchmark/benchmarks/tatp/TATPLoader.java b/src/main/java/com/oltpbenchmark/benchmarks/tatp/TATPLoader.java index 5780d72e5..14401fd34 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/tatp/TATPLoader.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/tatp/TATPLoader.java @@ -30,7 +30,7 @@ import java.util.List; import java.util.concurrent.CountDownLatch; -public class TATPLoader extends Loader { +public final class TATPLoader extends Loader { private final long subscriberSize; public TATPLoader(TATPBenchmark benchmark) { diff --git a/src/main/java/com/oltpbenchmark/benchmarks/tatp/TATPWorker.java b/src/main/java/com/oltpbenchmark/benchmarks/tatp/TATPWorker.java index b84a08392..d27f301a6 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/tatp/TATPWorker.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/tatp/TATPWorker.java @@ -33,7 +33,7 @@ import java.util.HashMap; import java.util.Map; -public class TATPWorker extends Worker { +public final class TATPWorker extends Worker { private static final Logger LOG = LoggerFactory.getLogger(TATPWorker.class); /** diff --git a/src/main/java/com/oltpbenchmark/benchmarks/templated/TemplatedBenchmark.java b/src/main/java/com/oltpbenchmark/benchmarks/templated/TemplatedBenchmark.java index 4e138603d..2f5448f7a 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/templated/TemplatedBenchmark.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/templated/TemplatedBenchmark.java @@ -62,7 +62,7 @@ * about the structure of the expected template can be found in the local * readme file. */ -public class TemplatedBenchmark extends BenchmarkModule { +public final class TemplatedBenchmark extends BenchmarkModule { private static final Logger LOG = LoggerFactory.getLogger(TemplatedBenchmark.class); public TemplatedBenchmark(WorkloadConfiguration workConf) { diff --git a/src/main/java/com/oltpbenchmark/benchmarks/templated/TemplatedWorker.java b/src/main/java/com/oltpbenchmark/benchmarks/templated/TemplatedWorker.java index c1fcdfc7e..4f2a5f0e4 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/templated/TemplatedWorker.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/templated/TemplatedWorker.java @@ -28,7 +28,7 @@ import com.oltpbenchmark.api.Worker; import com.oltpbenchmark.types.TransactionStatus; -public class TemplatedWorker extends Worker { +public final class TemplatedWorker extends Worker { protected final Map, TraceTransactionGenerator> generators; diff --git a/src/main/java/com/oltpbenchmark/benchmarks/tpcc/TPCCBenchmark.java b/src/main/java/com/oltpbenchmark/benchmarks/tpcc/TPCCBenchmark.java index 8bd162ffc..fdf8d7af5 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/tpcc/TPCCBenchmark.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/tpcc/TPCCBenchmark.java @@ -31,7 +31,7 @@ import java.util.Arrays; import java.util.List; -public class TPCCBenchmark extends BenchmarkModule { +public final class TPCCBenchmark extends BenchmarkModule { private static final Logger LOG = LoggerFactory.getLogger(TPCCBenchmark.class); public TPCCBenchmark(WorkloadConfiguration workConf) { diff --git a/src/main/java/com/oltpbenchmark/benchmarks/tpcc/TPCCLoader.java b/src/main/java/com/oltpbenchmark/benchmarks/tpcc/TPCCLoader.java index daaabc7b7..f0c448533 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/tpcc/TPCCLoader.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/tpcc/TPCCLoader.java @@ -33,7 +33,7 @@ /** * TPC-C Benchmark Loader */ -public class TPCCLoader extends Loader { +public final class TPCCLoader extends Loader { private static final int FIRST_UNPROCESSED_O_ID = 2101; diff --git a/src/main/java/com/oltpbenchmark/benchmarks/tpcc/TPCCWorker.java b/src/main/java/com/oltpbenchmark/benchmarks/tpcc/TPCCWorker.java index bd75874db..9cbb4643c 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/tpcc/TPCCWorker.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/tpcc/TPCCWorker.java @@ -30,7 +30,7 @@ import java.sql.SQLException; import java.util.Random; -public class TPCCWorker extends Worker { +public final class TPCCWorker extends Worker { private static final Logger LOG = LoggerFactory.getLogger(TPCCWorker.class); diff --git a/src/main/java/com/oltpbenchmark/benchmarks/tpcds/TPCDSBenchmark.java b/src/main/java/com/oltpbenchmark/benchmarks/tpcds/TPCDSBenchmark.java index 0ad4d34ea..66d3b1b26 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/tpcds/TPCDSBenchmark.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/tpcds/TPCDSBenchmark.java @@ -28,7 +28,7 @@ import java.util.ArrayList; import java.util.List; -public class TPCDSBenchmark extends BenchmarkModule { +public final class TPCDSBenchmark extends BenchmarkModule { private static final Logger LOG = LoggerFactory.getLogger(TPCDSBenchmark.class); public TPCDSBenchmark(WorkloadConfiguration workConf) { diff --git a/src/main/java/com/oltpbenchmark/benchmarks/tpcds/TPCDSLoader.java b/src/main/java/com/oltpbenchmark/benchmarks/tpcds/TPCDSLoader.java index ff927eaf9..770469c39 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/tpcds/TPCDSLoader.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/tpcds/TPCDSLoader.java @@ -34,7 +34,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; -public class TPCDSLoader extends Loader { +public final class TPCDSLoader extends Loader { public TPCDSLoader(TPCDSBenchmark benchmark) { super(benchmark); } diff --git a/src/main/java/com/oltpbenchmark/benchmarks/tpcds/TPCDSWorker.java b/src/main/java/com/oltpbenchmark/benchmarks/tpcds/TPCDSWorker.java index 76b1d3e72..6216e76f1 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/tpcds/TPCDSWorker.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/tpcds/TPCDSWorker.java @@ -25,7 +25,7 @@ import java.sql.Connection; -public class TPCDSWorker extends Worker { +public final class TPCDSWorker extends Worker { public TPCDSWorker(TPCDSBenchmark benchmarkModule, int id) { super(benchmarkModule, id); } diff --git a/src/main/java/com/oltpbenchmark/benchmarks/tpch/TPCHBenchmark.java b/src/main/java/com/oltpbenchmark/benchmarks/tpch/TPCHBenchmark.java index e1eeeb016..36a680c44 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/tpch/TPCHBenchmark.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/tpch/TPCHBenchmark.java @@ -36,7 +36,7 @@ import java.util.ArrayList; import java.util.List; -public class TPCHBenchmark extends BenchmarkModule { +public final class TPCHBenchmark extends BenchmarkModule { private static final Logger LOG = LoggerFactory.getLogger(TPCHBenchmark.class); public TPCHBenchmark(WorkloadConfiguration workConf) { diff --git a/src/main/java/com/oltpbenchmark/benchmarks/tpch/TPCHLoader.java b/src/main/java/com/oltpbenchmark/benchmarks/tpch/TPCHLoader.java index 919ea10cd..81b64ea29 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/tpch/TPCHLoader.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/tpch/TPCHLoader.java @@ -44,7 +44,7 @@ import java.util.List; import java.util.concurrent.CountDownLatch; -public class TPCHLoader extends Loader { +public final class TPCHLoader extends Loader { public TPCHLoader(TPCHBenchmark benchmark) { super(benchmark); } diff --git a/src/main/java/com/oltpbenchmark/benchmarks/tpch/TPCHWorker.java b/src/main/java/com/oltpbenchmark/benchmarks/tpch/TPCHWorker.java index fa26f8e32..9c115c93a 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/tpch/TPCHWorker.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/tpch/TPCHWorker.java @@ -27,7 +27,7 @@ import java.sql.Connection; import java.sql.SQLException; -public class TPCHWorker extends Worker { +public final class TPCHWorker extends Worker { private final RandomGenerator rand; diff --git a/src/main/java/com/oltpbenchmark/benchmarks/twitter/TwitterBenchmark.java b/src/main/java/com/oltpbenchmark/benchmarks/twitter/TwitterBenchmark.java index bda1c6386..f48cd7821 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/twitter/TwitterBenchmark.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/twitter/TwitterBenchmark.java @@ -34,7 +34,7 @@ import java.util.ArrayList; import java.util.List; -public class TwitterBenchmark extends BenchmarkModule { +public final class TwitterBenchmark extends BenchmarkModule { private final TwitterConfiguration twitterConf; diff --git a/src/main/java/com/oltpbenchmark/benchmarks/twitter/TwitterLoader.java b/src/main/java/com/oltpbenchmark/benchmarks/twitter/TwitterLoader.java index 2077b666e..7e0d80311 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/twitter/TwitterLoader.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/twitter/TwitterLoader.java @@ -35,7 +35,7 @@ import java.util.List; import java.util.concurrent.CountDownLatch; -public class TwitterLoader extends Loader { +public final class TwitterLoader extends Loader { private final int num_users; private final long num_tweets; private final int num_follows; diff --git a/src/main/java/com/oltpbenchmark/benchmarks/twitter/TwitterWorker.java b/src/main/java/com/oltpbenchmark/benchmarks/twitter/TwitterWorker.java index cb4609563..5f08756e8 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/twitter/TwitterWorker.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/twitter/TwitterWorker.java @@ -33,7 +33,7 @@ import java.sql.SQLException; import java.sql.Time; -public class TwitterWorker extends Worker { +public final class TwitterWorker extends Worker { private final TransactionGenerator generator; private final FlatHistogram tweet_len_rng; diff --git a/src/main/java/com/oltpbenchmark/benchmarks/twitter/util/NameHistogram.java b/src/main/java/com/oltpbenchmark/benchmarks/twitter/util/NameHistogram.java index 6d41cd840..ddeb3cedb 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/twitter/util/NameHistogram.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/twitter/util/NameHistogram.java @@ -25,7 +25,7 @@ * * @author pavlo */ -public class NameHistogram extends Histogram { +public final class NameHistogram extends Histogram { private static final long serialVersionUID = 0L; { diff --git a/src/main/java/com/oltpbenchmark/benchmarks/twitter/util/TweetHistogram.java b/src/main/java/com/oltpbenchmark/benchmarks/twitter/util/TweetHistogram.java index daa5e8dd3..7740c30c7 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/twitter/util/TweetHistogram.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/twitter/util/TweetHistogram.java @@ -28,7 +28,7 @@ * * @author pavlo */ -public class TweetHistogram extends Histogram { +public final class TweetHistogram extends Histogram { private static final long serialVersionUID = 0L; { diff --git a/src/main/java/com/oltpbenchmark/benchmarks/voter/VoterBenchmark.java b/src/main/java/com/oltpbenchmark/benchmarks/voter/VoterBenchmark.java index 04dfc93b6..521caa0d5 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/voter/VoterBenchmark.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/voter/VoterBenchmark.java @@ -26,7 +26,7 @@ import java.util.ArrayList; import java.util.List; -public class VoterBenchmark extends BenchmarkModule { +public final class VoterBenchmark extends BenchmarkModule { public final int numContestants; diff --git a/src/main/java/com/oltpbenchmark/benchmarks/voter/VoterLoader.java b/src/main/java/com/oltpbenchmark/benchmarks/voter/VoterLoader.java index 04b3ef9e5..f5d486f27 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/voter/VoterLoader.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/voter/VoterLoader.java @@ -28,7 +28,7 @@ import java.util.ArrayList; import java.util.List; -public class VoterLoader extends Loader { +public final class VoterLoader extends Loader { public VoterLoader(VoterBenchmark benchmark) { super(benchmark); diff --git a/src/main/java/com/oltpbenchmark/benchmarks/voter/VoterWorker.java b/src/main/java/com/oltpbenchmark/benchmarks/voter/VoterWorker.java index 658bd1196..c82a6f90b 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/voter/VoterWorker.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/voter/VoterWorker.java @@ -28,7 +28,7 @@ import java.sql.Connection; import java.sql.SQLException; -public class VoterWorker extends Worker { +public final class VoterWorker extends Worker { private final PhoneCallGenerator switchboard; diff --git a/src/main/java/com/oltpbenchmark/benchmarks/wikipedia/WikipediaBenchmark.java b/src/main/java/com/oltpbenchmark/benchmarks/wikipedia/WikipediaBenchmark.java index 445c13cc7..bb6c597a3 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/wikipedia/WikipediaBenchmark.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/wikipedia/WikipediaBenchmark.java @@ -31,7 +31,7 @@ import java.util.ArrayList; import java.util.List; -public class WikipediaBenchmark extends BenchmarkModule { +public final class WikipediaBenchmark extends BenchmarkModule { private static final Logger LOG = LoggerFactory.getLogger(WikipediaBenchmark.class); protected final IntegerFlatHistogram commentLength; diff --git a/src/main/java/com/oltpbenchmark/benchmarks/wikipedia/WikipediaLoader.java b/src/main/java/com/oltpbenchmark/benchmarks/wikipedia/WikipediaLoader.java index fe2ead717..b3c895127 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/wikipedia/WikipediaLoader.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/wikipedia/WikipediaLoader.java @@ -45,7 +45,7 @@ * @author pavlo * @author djellel */ -public class WikipediaLoader extends Loader { +public final class WikipediaLoader extends Loader { /** * UserId -> # of Revisions diff --git a/src/main/java/com/oltpbenchmark/benchmarks/wikipedia/WikipediaWorker.java b/src/main/java/com/oltpbenchmark/benchmarks/wikipedia/WikipediaWorker.java index 73e2ac67d..90193675b 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/wikipedia/WikipediaWorker.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/wikipedia/WikipediaWorker.java @@ -36,7 +36,7 @@ import java.util.HashSet; import java.util.Set; -public class WikipediaWorker extends Worker { +public final class WikipediaWorker extends Worker { private static final Logger LOG = LoggerFactory.getLogger(WikipediaWorker.class); private Set addedWatchlistPages = new HashSet<>(); diff --git a/src/main/java/com/oltpbenchmark/benchmarks/ycsb/YCSBBenchmark.java b/src/main/java/com/oltpbenchmark/benchmarks/ycsb/YCSBBenchmark.java index 155e087eb..7a472c3ab 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/ycsb/YCSBBenchmark.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/ycsb/YCSBBenchmark.java @@ -34,7 +34,7 @@ import java.util.ArrayList; import java.util.List; -public class YCSBBenchmark extends BenchmarkModule { +public final class YCSBBenchmark extends BenchmarkModule { private static final Logger LOG = LoggerFactory.getLogger(YCSBBenchmark.class); diff --git a/src/main/java/com/oltpbenchmark/catalog/HSQLDBCatalog.java b/src/main/java/com/oltpbenchmark/catalog/HSQLDBCatalog.java index 2000406d6..876dcf530 100644 --- a/src/main/java/com/oltpbenchmark/catalog/HSQLDBCatalog.java +++ b/src/main/java/com/oltpbenchmark/catalog/HSQLDBCatalog.java @@ -15,7 +15,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; -public class HSQLDBCatalog implements AbstractCatalog { +public final class HSQLDBCatalog implements AbstractCatalog { private static final String DB_CONNECTION = "jdbc:hsqldb:mem:"; private static final String DB_JDBC = "org.hsqldb.jdbcDriver"; diff --git a/src/main/java/com/oltpbenchmark/distributions/CounterGenerator.java b/src/main/java/com/oltpbenchmark/distributions/CounterGenerator.java index bd1cb5d42..bbcadf452 100644 --- a/src/main/java/com/oltpbenchmark/distributions/CounterGenerator.java +++ b/src/main/java/com/oltpbenchmark/distributions/CounterGenerator.java @@ -23,7 +23,7 @@ /** * Generates a sequence of integers 0, 1, ... */ -public class CounterGenerator extends IntegerGenerator { +public final class CounterGenerator extends IntegerGenerator { final AtomicInteger counter; /** diff --git a/src/main/java/com/oltpbenchmark/distributions/ZipfianGenerator.java b/src/main/java/com/oltpbenchmark/distributions/ZipfianGenerator.java index 5697d4532..11961f8ec 100644 --- a/src/main/java/com/oltpbenchmark/distributions/ZipfianGenerator.java +++ b/src/main/java/com/oltpbenchmark/distributions/ZipfianGenerator.java @@ -40,7 +40,7 @@ *

* The algorithm used here is from "Quickly Generating Billion-Record Synthetic Databases", Jim Gray et al, SIGMOD 1994. */ -public class ZipfianGenerator extends IntegerGenerator { +public final class ZipfianGenerator extends IntegerGenerator { public static final double ZIPFIAN_CONSTANT = 0.99; private static final Logger LOG = LoggerFactory.getLogger(ZipfianGenerator.class); diff --git a/src/test/java/com/oltpbenchmark/api/MockBenchmark.java b/src/test/java/com/oltpbenchmark/api/MockBenchmark.java index 82cffdb9d..5db859b6f 100644 --- a/src/test/java/com/oltpbenchmark/api/MockBenchmark.java +++ b/src/test/java/com/oltpbenchmark/api/MockBenchmark.java @@ -21,7 +21,7 @@ import java.io.IOException; import java.util.List; -public class MockBenchmark extends BenchmarkModule { +public final class MockBenchmark extends BenchmarkModule { public MockBenchmark() { super(new WorkloadConfiguration()); this.workConf.setBenchmarkName("mockbenchmark"); From 3437b2d41967facd595c0104a845be50cb1573cd Mon Sep 17 00:00:00 2001 From: Brian Kroth Date: Wed, 13 Dec 2023 17:53:26 +0000 Subject: [PATCH 54/56] auto-whitespace --- .../com/oltpbenchmark/benchmarks/smallbank/SmallBankWorker.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/oltpbenchmark/benchmarks/smallbank/SmallBankWorker.java b/src/main/java/com/oltpbenchmark/benchmarks/smallbank/SmallBankWorker.java index 1f5af8588..407f6ef4c 100644 --- a/src/main/java/com/oltpbenchmark/benchmarks/smallbank/SmallBankWorker.java +++ b/src/main/java/com/oltpbenchmark/benchmarks/smallbank/SmallBankWorker.java @@ -58,7 +58,7 @@ public SmallBankWorker(SmallBankBenchmark benchmarkModule, int id) { super(benchmarkModule, id); // This is a minor speed-up to avoid having to invoke the hashmap look-up - // everytime we want to execute a txn. This is important to do on + // everytime we want to execute a txn. This is important to do on // a client machine with not a lot of cores this.procAmalgamate = this.getProcedure(Amalgamate.class); this.procBalance = this.getProcedure(Balance.class); From b2e7489fc5068cc631e2a0a93f0bd3fb13faa121 Mon Sep 17 00:00:00 2001 From: Brian Kroth Date: Wed, 13 Dec 2023 18:27:48 +0000 Subject: [PATCH 55/56] comments about this-escape warnings --- CONTRIBUTING.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6d181ae70..b8d8c6e69 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -61,3 +61,12 @@ SomeTypeList[] someTypeLists = new SomeTypeList[] { new SomeTypeList(), }; ``` + +#### `this-escape` warnings + +`possible 'this' escape before subclass is fully initialized` + +The `this-escape` warning above is caused by passing using `this.someOverridableMethod()` in a constructor. +This could in theory cause problems with a subclass not being fully initialized when the method is called. + +Since many of our classes are not designed to be subclassed, we can safely ignore this warning by marking the class as `final` rather than completely rewrite the class initialization. From 62d1e153e2bc4994ad6e84d5847bcd957432187c Mon Sep 17 00:00:00 2001 From: Brian Kroth Date: Wed, 13 Dec 2023 20:23:39 +0000 Subject: [PATCH 56/56] bad merge --- src/test/java/com/oltpbenchmark/api/AbstractTestCase.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/test/java/com/oltpbenchmark/api/AbstractTestCase.java b/src/test/java/com/oltpbenchmark/api/AbstractTestCase.java index 161a047d4..5f7f2fcd8 100644 --- a/src/test/java/com/oltpbenchmark/api/AbstractTestCase.java +++ b/src/test/java/com/oltpbenchmark/api/AbstractTestCase.java @@ -143,7 +143,6 @@ public final void setUp() throws Exception { // until after the benchmark is initialized and the config is loaded. var proceedures = this.procedures(); assertNotNull(proceedures); - assertFalse(proceedures.isEmpty()); if (!(this instanceof TestDDLOverride)) { assertFalse(proceedures.isEmpty()); }