apoorvmittal10 commented on code in PR #20144:
URL: https://github.com/apache/kafka/pull/20144#discussion_r2212729400


##########
clients/src/main/java/org/apache/kafka/common/telemetry/internals/ClientTelemetryReporter.java:
##########
@@ -713,14 +716,23 @@ private Optional<Builder<?>> 
createPushRequest(ClientTelemetrySubscription local
                 return Optional.empty();
             }
 
-            CompressionType compressionType = 
ClientTelemetryUtils.preferredCompressionType(localSubscription.acceptedCompressionTypes());
+            CompressionType compressionType = 
ClientTelemetryUtils.preferredCompressionType(localSubscription.acceptedCompressionTypes(),
 unsupportedCompressionTypes);
             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 e) {
+                log.debug("Failed to compress telemetry payload for 
compression: {}, sending uncompressed data", compressionType, e);
                 compressedPayload = ByteBuffer.wrap(payload.toByteArray());
                 compressionType = CompressionType.NONE;
+            } catch (Throwable e) { 
+                if (e instanceof NoClassDefFoundError || e.getCause() 
instanceof NoClassDefFoundError) {
+                    log.debug("Compression library {} not found, sending 
uncompressed data", compressionType, e);
+                    unsupportedCompressionTypes.add(compressionType);

Review Comment:
   Why the unsupportedCompressionType is not added in `IOException`?



##########
clients/src/main/java/org/apache/kafka/common/telemetry/internals/ClientTelemetryUtils.java:
##########
@@ -181,13 +182,22 @@ public static boolean 
validateRequiredResourceLabels(Map<String, String> metadat
         return validateResourceLabel(metadata, MetricsContext.NAMESPACE);
     }
 
-    public static CompressionType 
preferredCompressionType(List<CompressionType> acceptedCompressionTypes) {
-        if (acceptedCompressionTypes != null && 
!acceptedCompressionTypes.isEmpty()) {
-            // Broker is providing the compression types in order of 
preference. Grab the
-            // first one.
+    public static CompressionType 
preferredCompressionType(List<CompressionType> acceptedCompressionTypes, 
Set<CompressionType> unsupportedCompressionTypes) {
+        if (acceptedCompressionTypes == null || 
acceptedCompressionTypes.isEmpty()) {
+            return CompressionType.NONE;
+        }
+
+        // If no unsupported types, return the first accepted type (broker's 
preference)
+        if (unsupportedCompressionTypes == null || 
unsupportedCompressionTypes.isEmpty()) {
             return acceptedCompressionTypes.get(0);
         }

Review Comment:
   Can unsupported compression types be ever null? If not then this code is not 
required. And a comment on top of method can be that 
`unsupportedCompressionTypes` can never be null.



-- 
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