From 9b80d157a801cc4a35c61bc383aebf9d1d7dd69a Mon Sep 17 00:00:00 2001
From: Atanas Gegov <atanas.gegov.oss@gmail.com>
Date: Thu, 31 Oct 2024 17:45:12 +0100
Subject: [PATCH 1/2] Return immutable Set for a Collection

Fixes https://github.com/jwtk/jjwt/issues/965
---
 .../main/java/io/jsonwebtoken/lang/Collections.java  | 12 +++---------
 1 file changed, 3 insertions(+), 9 deletions(-)

diff --git a/api/src/main/java/io/jsonwebtoken/lang/Collections.java b/api/src/main/java/io/jsonwebtoken/lang/Collections.java
index 01768fc64..326267da2 100644
--- a/api/src/main/java/io/jsonwebtoken/lang/Collections.java
+++ b/api/src/main/java/io/jsonwebtoken/lang/Collections.java
@@ -86,19 +86,13 @@ public static <T> List<T> of(T... elements) {
     /**
      * Returns the specified collection as a {@link Set} instance.
      *
-     * @param c   the collection to represent as a set
+     * @param c   the collection to be converted
      * @param <T> collection element type
-     * @return a type-safe immutable {@code Set} containing the specified collection elements.
+     * @return    a type-safe immutable {@code Set} containing the specified collection elements.
      * @since 0.12.0
      */
     public static <T> Set<T> asSet(Collection<T> c) {
-        if (c instanceof Set) {
-            return (Set<T>) c;
-        }
-        if (isEmpty(c)) {
-            return java.util.Collections.emptySet();
-        }
-        return java.util.Collections.unmodifiableSet(new LinkedHashSet<>(c));
+        return java.util.Collections.unmodifiableSet(new LinkedHashSet<T>(c));
     }
 
     /**

From 34e36ed1f57e3adaa7869203088729433e62406a Mon Sep 17 00:00:00 2001
From: Atanas Gegov <atanas.gegov.oss@gmail.com>
Date: Thu, 31 Oct 2024 18:01:27 +0100
Subject: [PATCH 2/2] Revert null or empty case

Still immutable set is returned in every case
---
 api/src/main/java/io/jsonwebtoken/lang/Collections.java | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/api/src/main/java/io/jsonwebtoken/lang/Collections.java b/api/src/main/java/io/jsonwebtoken/lang/Collections.java
index 326267da2..ead04ac3e 100644
--- a/api/src/main/java/io/jsonwebtoken/lang/Collections.java
+++ b/api/src/main/java/io/jsonwebtoken/lang/Collections.java
@@ -92,6 +92,9 @@ public static <T> List<T> of(T... elements) {
      * @since 0.12.0
      */
     public static <T> Set<T> asSet(Collection<T> c) {
+        if (isEmpty(c)) {
+            return java.util.Collections.emptySet();
+        }
         return java.util.Collections.unmodifiableSet(new LinkedHashSet<T>(c));
     }