chia7712 commented on code in PR #20144: URL: https://github.com/apache/kafka/pull/20144#discussion_r2205875694
########## clients/src/main/java/org/apache/kafka/common/telemetry/internals/ClientTelemetryReporter.java: ########## @@ -717,8 +718,8 @@ private Optional<Builder<?>> createPushRequest(ClientTelemetrySubscription local ByteBuffer compressedPayload; try { compressedPayload = ClientTelemetryUtils.compress(payload, compressionType); - } catch (Throwable e) { - log.debug("Failed to compress telemetry payload for compression: {}, sending uncompressed data", compressionType); + } catch (IOException | NoClassDefFoundError e) { + log.debug("Failed to compress telemetry payload for compression: {}, sending uncompressed data", compressionType, e); compressedPayload = ByteBuffer.wrap(payload.toByteArray()); compressionType = CompressionType.NONE; Review Comment: Perhaps we could have an `unsupportedTypes` collection to filter out types according to `NoClassDefFoundError`? for example: ```java if (e instanceof NoClassDefFoundError) unsupportedTypes.add(compressionType); ``` `ClientTelemetryUtils.preferredCompressionType` could leverage the collection `compressionType` to avoid using unsupported compression. for example: ```java public static CompressionType preferredCompressionType(List<CompressionType> acceptedCompressionTypes, Set<CompressionType> unsupportedTypes) { if (acceptedCompressionTypes == null) return CompressionType.NONE; // Broker is providing the compression types in order of preference. Grab the // first one. return acceptedCompressionTypes.stream() .filter(t -> !unsupportedTypes.contains(t)) .findFirst() .orElse(CompressionType.NONE); } ```` -- 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: jira-unsubscr...@kafka.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org