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

Reply via email to