From 5bcc393376380a5a09e8a43d11dd38811845ce84 Mon Sep 17 00:00:00 2001 From: Martin Mauch Date: Tue, 19 Aug 2025 00:55:37 +0200 Subject: [PATCH] Handle empty String nextPageToken correctly in DeltaSharingClient According to PROTOCOL.md, an empty String also means end of the list, so it should be handled identically to None. --- .../scala/io/delta/sharing/client/DeltaSharingClient.scala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/client/src/main/scala/io/delta/sharing/client/DeltaSharingClient.scala b/client/src/main/scala/io/delta/sharing/client/DeltaSharingClient.scala index 640e32309..21895822d 100644 --- a/client/src/main/scala/io/delta/sharing/client/DeltaSharingClient.scala +++ b/client/src/main/scala/io/delta/sharing/client/DeltaSharingClient.scala @@ -261,7 +261,7 @@ class DeltaSharingRestClient( if (response != null && response.items != null) { shares ++= response.items } - while (response.nextPageToken.nonEmpty) { + while (response.nextPageToken.exists(_.nonEmpty)) { val encodedPageToken = URLEncoder.encode(response.nextPageToken.get, "UTF-8") val target = getTargetUrl(s"/shares?pageToken=$encodedPageToken") response = getJson[ListSharesResponse](target) @@ -280,7 +280,7 @@ class DeltaSharingRestClient( if (response != null && response.items != null) { tables ++= response.items } - while (response.nextPageToken.nonEmpty) { + while (response.nextPageToken.exists(_.nonEmpty)) { val encodedPageToken = URLEncoder.encode(response.nextPageToken.get, "UTF-8") val target = getTargetUrl(s"/shares/$encodedShareName/all-tables?pageToken=$encodedPageToken")