From 6b725fb2d7a66e1c60305f2c7d2f5360f50440c7 Mon Sep 17 00:00:00 2001 From: Kevin Day Date: Fri, 11 Oct 2024 15:46:17 -0500 Subject: [PATCH] Add additional logs and change some of the code logic for testing purposes. Eventually that changed logic may become code to resolve the issue. --- .../iiif/exception/NotFoundException.java | 4 +++ .../iiif/service/AbstractManifestService.java | 29 +++++++++---------- .../AbstractFedoraPcdmManifestService.java | 11 ++++++- .../edu/tamu/iiif/utility/StringUtility.java | 12 ++++---- 4 files changed, 33 insertions(+), 23 deletions(-) diff --git a/src/main/java/edu/tamu/iiif/exception/NotFoundException.java b/src/main/java/edu/tamu/iiif/exception/NotFoundException.java index a62a8a9..d6b2d95 100644 --- a/src/main/java/edu/tamu/iiif/exception/NotFoundException.java +++ b/src/main/java/edu/tamu/iiif/exception/NotFoundException.java @@ -10,4 +10,8 @@ public NotFoundException(String message) { super(message); } + public NotFoundException(String message, Exception e) { + super(message, e); + } + } diff --git a/src/main/java/edu/tamu/iiif/service/AbstractManifestService.java b/src/main/java/edu/tamu/iiif/service/AbstractManifestService.java index ebaae23..2269f45 100644 --- a/src/main/java/edu/tamu/iiif/service/AbstractManifestService.java +++ b/src/main/java/edu/tamu/iiif/service/AbstractManifestService.java @@ -170,26 +170,23 @@ protected Model getRdfModel(String url) throws NotFoundException { } private String getRdf(String url) throws NotFoundException { - try { - String doDecode = System.getenv("DEBUG_DISABLE_URL_DECODE"); - System.out.print("\n\n\nDEBUG: getRdf(), url = " + url + ", url decoded = " + URLDecoder.decode(url, StandardCharsets.UTF_8) + ", (decoding is " + (doDecode == "true" ? "enabled" : "disabled") + ")\n\n\n"); - if (doDecode == "true") { - url = URLDecoder.decode(url, StandardCharsets.UTF_8); - } + String disableDecode = System.getenv("DEBUG_DISABLE_URL_DECODE"); + System.out.println("\n\n\nDEBUG: DEBUG_DISABLE_URL_DECODE: " + disableDecode + "\n\n\n"); + System.out.print("\n\n\nDEBUG: getRdf(), url = " + url + ", url decoded = " + URLDecoder.decode(url, StandardCharsets.UTF_8) + ", (decoding is " + (disableDecode != "true" ? "enabled" : "disabled") + ")\n\n\n"); + String decodedUrl = (disableDecode == "true") ? url : URLDecoder.decode(url, StandardCharsets.UTF_8); - logger.debug("Requesting RDF for {}", url); - String rdf = restTemplate.getForObject(url, String.class); - if (rdf != null) { - logger.debug("RDF for {}: \n{}\n", url, rdf); - return rdf; - } + logger.debug("Requesting RDF for {}", decodedUrl); - logger.debug("RDF for {}: is not present\n", url); + try { + String rdf = restTemplate.getForObject(decodedUrl, String.class); + logger.debug("RDF for {}: \n{}\n", decodedUrl, rdf); + + return rdf; } catch (RestClientException e) { - logger.error("Failed to get RDF for {}: {}", url, e.getMessage()); - logger.debug("Error while requesting RDF for {}: {}", url, e.getMessage(), e); + logger.error("Failed to get RDF for {}: {}", decodedUrl, e.getMessage(), e); + + throw new NotFoundException("RDF not found for " + decodedUrl, e); } - throw new NotFoundException("RDF not found! " + url); } protected URI buildId(String path) throws URISyntaxException { diff --git a/src/main/java/edu/tamu/iiif/service/fedora/pcdm/AbstractFedoraPcdmManifestService.java b/src/main/java/edu/tamu/iiif/service/fedora/pcdm/AbstractFedoraPcdmManifestService.java index 0820d8c..61b8e39 100644 --- a/src/main/java/edu/tamu/iiif/service/fedora/pcdm/AbstractFedoraPcdmManifestService.java +++ b/src/main/java/edu/tamu/iiif/service/fedora/pcdm/AbstractFedoraPcdmManifestService.java @@ -37,7 +37,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression; import com.fasterxml.jackson.core.JsonProcessingException; - +import com.fasterxml.jackson.databind.JsonNode; import de.digitalcollections.iiif.presentation.model.api.v2.Canvas; import de.digitalcollections.iiif.presentation.model.api.v2.ImageResource; import de.digitalcollections.iiif.presentation.model.api.v2.Metadata; @@ -199,13 +199,18 @@ private List getCanvases(ManifestRequest request, RdfResource rdfResourc NodeIterator nodes = rdfResource.getNodesOfPropertyWithId(PCDM_HAS_MEMBER_PREDICATE); while (nodes.hasNext()) { RDFNode node = nodes.next(); + System.out.print("\n\n\nDEBUG: getCanvases() using from PCDM_HAS_MEMBER_PREDICATE node: " + node.toString() + "\n\n\n"); Model fileModel = getFedoraRdfModel(node.toString()); + System.out.print("\n\n\nDEBUG: getCanvases() resulting file model is: " + fileModel.toString() + "\n\n\n"); RdfResource fileRdfResource = new RdfResource(fileModel, node.toString()); + System.out.print("\n\n\nDEBUG: getCanvases() resulting fileRdfResource is: " + fileRdfResource.toString() + "\n\n\n"); if (fileRdfResource.getResourceById(PCDM_HAS_FILE_PREDICATE) != null) { CanvasWithInfo canvas = generateCanvas(request, fileRdfResource, 0); + String debugData = canvas.getCanvasInfo().isPresent() ? canvas.getCanvasInfo().get().toPrettyString() : ""; + System.out.print("\n\n\nDEBUG: getCanvases() file has canvas: '" + debugData + "'\n\n\n"); if (canvas.getCanvas().getImages().size() > 0) { canvases.add(canvas.getCanvas()); } @@ -275,10 +280,13 @@ private RdfCanvas getFedoraRdfCanvas(ManifestRequest request, RdfResource rdfRes NodeIterator nodeItr = parentRdfResource.getNodesOfPropertyWithId(LDP_CONTAINS_PREDICATE); while (nodeItr.hasNext()) { RDFNode node = nodeItr.next(); + System.out.print("\n\n\nDEBUG: getFedoraRdfCanvas() using from LDP_HAS_MEMBER_RELATION_PREDICATE, PCDM_HAS_FILE_PREDICATE node: " + node.toString() + "\n\n\n"); Model fileModel = getFedoraRdfModel(node.toString()); + System.out.print("\n\n\nDEBUG: getFedoraRdfCanvas() fileModel: " + fileModel.toString() + "\n\n\n"); RdfResource fileRdfResource = new RdfResource(fileModel, node.toString()); + System.out.print("\n\n\nDEBUG: getFedoraRdfCanvas() fileRdfResource: " + fileRdfResource.toString() + "\n\n\n"); if (fileRdfResource.containsStatement(RDF_TYPE_PREDICATE, PCDM_FILE)) { OptionalImageWithInfo imageWithInfo = generateImage(request, fileRdfResource, parameterizedCanvasId, page); @@ -288,6 +296,7 @@ private RdfCanvas getFedoraRdfCanvas(ManifestRequest request, RdfResource rdfRes Optional imageResource = Optional.ofNullable(imageWithInfo.get().getImage().getResource()); if (imageResource.isPresent()) { + System.out.print("\n\n\nDEBUG: getFedoraRdfCanvas() imageResource = " + imageResource.get().getWidth() + "x" + imageResource.get().getHeight() + ", " + imageResource.get().getType() + ", " + imageResource.get().getId() + ", canvas = " + rdfCanvas.getWidth() + "x" + rdfCanvas.getHeight() + "\n\n\n"); int height = imageResource.get().getHeight(); if (height > rdfCanvas.getHeight()) { rdfCanvas.setHeight(height); diff --git a/src/main/java/edu/tamu/iiif/utility/StringUtility.java b/src/main/java/edu/tamu/iiif/utility/StringUtility.java index e7d1aaf..b38d13b 100644 --- a/src/main/java/edu/tamu/iiif/utility/StringUtility.java +++ b/src/main/java/edu/tamu/iiif/utility/StringUtility.java @@ -17,14 +17,14 @@ public static String decode(String value) { } public static String encodeSpaces(String value) { - String doEncode = System.getenv("DEBUG_DISABLE_SPACE_ENCODE"); - if (doEncode == "true") { - System.out.print("\n\n\nDEBUG: replacing spaces, from '" + value + "' to '" + value.replace(" ", "%20") + "'\n\n\n"); - return value.replace(" ", "%20"); + String disableEncode = System.getenv("DEBUG_DISABLE_SPACE_ENCODE"); + if (disableEncode == "true") { + System.out.print("\n\n\nDEBUG: not replacing spaces, from '" + value + "'\n\n\n"); + return value; } - System.out.print("\n\n\nDEBUG: not replacing spaces, from '" + value + "'\n\n\n"); - return value; + System.out.print("\n\n\nDEBUG: replacing spaces, from '" + value + "' to '" + value.replace(" ", "%20") + "'\n\n\n"); + return value.replace(" ", "%20"); } }