diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml
index e39f36e..c627cdf 100644
--- a/.github/workflows/maven.yml
+++ b/.github/workflows/maven.yml
@@ -43,7 +43,7 @@
         with:
           fetch-depth: 0
       - name: Set up compile JDK
-        uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5.7.0
+        uses: actions/setup-java@dd06d9cba3e5552c54d9f8ea23572deb30010f7c # v6.0.0
         with: #Compile java needs to be the highest to ensure proper compilation of the multi-release jar
           distribution: 'temurin'
           java-version: 17
diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml
index 7977c1f..ec7b4fe 100644
--- a/.github/workflows/performance.yml
+++ b/.github/workflows/performance.yml
@@ -33,7 +33,7 @@
               with:
                 fetch-depth: 0
             - name: Set up compile JDK
-              uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5.7.0
+              uses: actions/setup-java@dd06d9cba3e5552c54d9f8ea23572deb30010f7c # v6.0.0
               with: #Compile java needs to be the highest to ensure proper compilation of the multi-release jar
                 distribution: 'temurin'
                 java-version: 17
diff --git a/.github/workflows/verify.yml b/.github/workflows/verify.yml
index fb7b194..829508c 100644
--- a/.github/workflows/verify.yml
+++ b/.github/workflows/verify.yml
@@ -33,7 +33,7 @@
               with:
                 fetch-depth: 0
             - name: Set up compile JDK
-              uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5.7.0
+              uses: actions/setup-java@dd06d9cba3e5552c54d9f8ea23572deb30010f7c # v6.0.0
               with: #Compile java needs to be the highest to ensure proper compilation of the multi-release jar
                 distribution: 'temurin'
                 java-version: 17
diff --git a/pom.xml b/pom.xml
index 752bbf0..e07d71e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -62,11 +62,11 @@
         <!--Plugins-->
         <build-helper-maven-plugin.version>3.6.0</build-helper-maven-plugin.version>
         <buildnumber-maven-plugin.version>3.3.0</buildnumber-maven-plugin.version>
-        <spotbugs-maven-plugin.version>4.10.3.0</spotbugs-maven-plugin.version>
+        <spotbugs-maven-plugin.version>4.10.4.0</spotbugs-maven-plugin.version>
         <glassfish-copyright-maven-plugin.version>2.4</glassfish-copyright-maven-plugin.version>
         <maven-bundle-plugin.version>5.1.9</maven-bundle-plugin.version>
         <maven-checkstyle-plugin.version>3.3.1</maven-checkstyle-plugin.version>
-        <maven-compiler-plugin.version>3.15.0</maven-compiler-plugin.version>
+        <maven-compiler-plugin.version>3.16.0</maven-compiler-plugin.version>
         <maven-enforcer-plugin.version>3.4.1</maven-enforcer-plugin.version>
         <maven-jar-plugin.version>3.4.1</maven-jar-plugin.version>
         <maven-javadoc-plugin.version>3.6.3</maven-javadoc-plugin.version>
diff --git a/src/main/java/org/eclipse/yasson/internal/serializer/types/SqlDateSerializer.java b/src/main/java/org/eclipse/yasson/internal/serializer/types/SqlDateSerializer.java
index aad680f..684511d 100644
--- a/src/main/java/org/eclipse/yasson/internal/serializer/types/SqlDateSerializer.java
+++ b/src/main/java/org/eclipse/yasson/internal/serializer/types/SqlDateSerializer.java
@@ -28,7 +28,7 @@
 
     @Override
     protected Instant toInstant(Date value) {
-        if (value instanceof java.sql.Date) {
+        if (value instanceof java.sql.Date || value instanceof java.sql.Time) {
             // java.sql.Date doesn't have a time component, so do our best if TIME_IN_MILLIS is requested
             // In the future (at a breaking change boundary) we should probably reject this code path
             return Instant.ofEpochMilli(value.getTime());
diff --git a/src/main/resources/yasson-messages.properties b/src/main/resources/yasson-messages.properties
index a059313..244df20 100644
--- a/src/main/resources/yasson-messages.properties
+++ b/src/main/resources/yasson-messages.properties
@@ -82,7 +82,7 @@
 nonParametrizedType=Type: {0} is not a parametrized type.
 propertyNameClash=Property {0} clashes with property {1} by read or write name in class {2}.
 sqlDateIJsonError=java.sql.Date is not supported in STRICT_IJSON mode.
-recursiveReference=Recursive reference has been found in class {0}.
+recursiveReference=Recursive reference has been found in {0}.
 datatypeFactoryCreationFailed=An error occurred while DatatypeFactory creation.
 multipleConstructorPropertiesCreators=More than one constructor annotated with @ConstructorProperties declared in class {0}.
 annotationNotAvailable=Annotation {0} is not visible in modules or classpath. Annotation will be ignored.
diff --git a/src/test/java/org/eclipse/yasson/defaultmapping/specific/RecursiveReferenceTest.java b/src/test/java/org/eclipse/yasson/defaultmapping/specific/RecursiveReferenceTest.java
index b70ae39..67872ab 100644
--- a/src/test/java/org/eclipse/yasson/defaultmapping/specific/RecursiveReferenceTest.java
+++ b/src/test/java/org/eclipse/yasson/defaultmapping/specific/RecursiveReferenceTest.java
@@ -52,7 +52,7 @@
                     "Unable to serialize property 'linksTo' from org.eclipse.yasson.adapters.model.Chain",
                     e.getMessage());
             assertEquals(
-                    "Recursive reference has been found in class class org.eclipse.yasson.adapters.model.Chain.",
+                    "Recursive reference has been found in class org.eclipse.yasson.adapters.model.Chain.",
                     e.getCause().getMessage());
         }
     }
@@ -79,7 +79,7 @@
             userSerializerJsonb.toJson(recursive);
             fail("Exception should be caught");
         } catch (JsonbException e) {
-            assertEquals("Recursive reference has been found in class class org.eclipse.yasson.adapters.model.Chain.",
+            assertEquals("Recursive reference has been found in class org.eclipse.yasson.adapters.model.Chain.",
                          e.getMessage());
         }
     }
diff --git a/src/test/java/org/eclipse/yasson/serializers/SerializersTest.java b/src/test/java/org/eclipse/yasson/serializers/SerializersTest.java
index 21da05b..8214b88 100644
--- a/src/test/java/org/eclipse/yasson/serializers/SerializersTest.java
+++ b/src/test/java/org/eclipse/yasson/serializers/SerializersTest.java
@@ -71,6 +71,7 @@
 import org.eclipse.yasson.serializers.model.RecursiveSerializer;
 import org.eclipse.yasson.serializers.model.SimpleAnnotatedSerializedArrayContainer;
 import org.eclipse.yasson.serializers.model.SimpleContainer;
+import org.eclipse.yasson.serializers.model.SqlTimeBean;
 import org.eclipse.yasson.serializers.model.StringWrapper;
 import org.eclipse.yasson.serializers.model.SupertypeSerializerPojo;
 import org.junit.jupiter.api.Test;
@@ -205,6 +206,19 @@
     }
 
     @Test
+    public void testSerializerSerializationOfSqlTime() {
+        JsonbConfig config = new JsonbConfig().withSerializers(new CrateSerializer());
+        Jsonb jsonb = JsonbBuilder.create(config);
+        String expected = "{\"time\":\"1970-01-01T11:00:00Z[UTC]\"}";
+
+        SqlTimeBean value = new SqlTimeBean();
+        TimeZone.setDefault(TimeZone.getTimeZone("UTC"));
+        value.setTime(java.sql.Time.valueOf("11:00:00"));
+
+        assertEquals(expected, jsonb.toJson(value));
+    }
+
+    @Test
     public void testSerializerSerializationOfTypeWithExplicitType() {
         JsonbConfig config = new JsonbConfig().withSerializers(new CrateSerializer());
         Jsonb jsonb = JsonbBuilder.create(config);
diff --git a/src/test/java/org/eclipse/yasson/serializers/model/SqlTimeBean.java b/src/test/java/org/eclipse/yasson/serializers/model/SqlTimeBean.java
new file mode 100644
index 0000000..4ff2ac6
--- /dev/null
+++ b/src/test/java/org/eclipse/yasson/serializers/model/SqlTimeBean.java
@@ -0,0 +1,28 @@
+/*
+ * Copyright (c) 2025 Red Hat, Inc. and/or its affiliates.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0 which is available at
+ * http://www.eclipse.org/legal/epl-2.0,
+ * or the Eclipse Distribution License v. 1.0 which is available at
+ * http://www.eclipse.org/org/documents/edl-v10.php.
+ *
+ * SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
+ */
+
+package org.eclipse.yasson.serializers.model;
+
+import java.sql.Time;
+
+public class SqlTimeBean {
+
+    private java.sql.Time time;
+
+    public Time getTime() {
+        return time;
+    }
+
+    public void setTime(Time time) {
+        this.time = time;
+    }
+}
