jerolba commented on code in PR #1035:
URL: https://github.com/apache/parquet-mr/pull/1035#discussion_r1129276294
##
parquet-column/src/main/java/org/apache/parquet/column/ParquetProperties.java:
##
@@ -477,15 +477,15 @@ public Builder withMaxBloomFilterBytes(int
maxBloomFilterBytes) {
* @return this builder for method chaining
*/
public Builder withBloomFilterNDV(String columnPath, long ndv) {
- Preconditions.checkArgument(ndv > 0, "Invalid NDV for column \"%s\":
%d", columnPath, ndv);
+ Preconditions.checkArgument(ndv > 0, "Invalid NDV for column \"%s\":
%s", columnPath, ndv);
this.bloomFilterNDVs.withValue(columnPath, ndv);
// Setting an NDV for a column implies writing a bloom filter
this.bloomFilterEnabled.withValue(columnPath, true);
return this;
}
public Builder withBloomFilterFPP(String columnPath, double fpp) {
- Preconditions.checkArgument(fpp > 0.0 && fpp < 1.0, "Invalid FPP for
column \"%s\": %d", columnPath, fpp);
+ Preconditions.checkArgument(fpp > 0.0 && fpp < 1.0, "Invalid FPP for
column \"%s\": %s", columnPath, fpp);
Review Comment:
The changed code was incorrect and in case of failure in the check, the code
throws a `java.util.IllegalFormatConversionException`
The existing [code behind checkArgument
method](https://github.com/jerolba/parquet-mr/blob/5078cc629074046b5699544c33256ca980ab2761/parquet-common/src/main/java/org/apache/parquet/Preconditions.java#L243)
converts all parameters to String before applying the String.format.
If String.format finds an incorrect type, throws
`IllegalFormatConversionException`.
For example try this:
```java
String output = String.format("Integer value: %d", "10");
```
Then, existing Preconditions implementation forces to use Strings messages
with %s.
I reviewed all calls to `checkArgument` to fix the incorrect format.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: dev-unsubscr...@parquet.apache.org
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org