From 7c674c9a6b72f2385b4d664f9a3ce29866a590c7 Mon Sep 17 00:00:00 2001 From: Andrea Vacondio Date: Fri, 30 May 2025 19:11:20 +0200 Subject: [PATCH] Avoid looping through all the page tree if there is no destination page (#3396) * Avoid looping through all the page tree if there is no destination page Fixes: #3396 Auto-cherry-pick to 1.0.x Signed-off-by: torakiki --- .../ai/reader/pdf/config/ParagraphManager.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/document-readers/pdf-reader/src/main/java/org/springframework/ai/reader/pdf/config/ParagraphManager.java b/document-readers/pdf-reader/src/main/java/org/springframework/ai/reader/pdf/config/ParagraphManager.java index b5065afa0..f3e5eb69c 100644 --- a/document-readers/pdf-reader/src/main/java/org/springframework/ai/reader/pdf/config/ParagraphManager.java +++ b/document-readers/pdf-reader/src/main/java/org/springframework/ai/reader/pdf/config/ParagraphManager.java @@ -140,11 +140,13 @@ public class ParagraphManager { return -1; } PDPage currentPage = current.findDestinationPage(this.document); - PDPageTree pages = this.document.getDocumentCatalog().getPages(); - for (int i = 0; i < pages.getCount(); i++) { - var page = pages.get(i); - if (page.equals(currentPage)) { - return i + 1; + if (currentPage != null) { + PDPageTree pages = this.document.getDocumentCatalog().getPages(); + for (int i = 0; i < pages.getCount(); i++) { + var page = pages.get(i); + if (page.equals(currentPage)) { + return i + 1; + } } } return -1;