diff --git a/extensions/vw/pdfjs/wicket/ui/src/main/java/org/apache/causeway/extensions/pdfjs/wkt/ui/components/PdfJsViewerPanel.java b/extensions/vw/pdfjs/wicket/ui/src/main/java/org/apache/causeway/extensions/pdfjs/wkt/ui/components/PdfJsViewerPanel.java index 167f10c0d1f..27c86dbaac0 100644 --- a/extensions/vw/pdfjs/wicket/ui/src/main/java/org/apache/causeway/extensions/pdfjs/wkt/ui/components/PdfJsViewerPanel.java +++ b/extensions/vw/pdfjs/wicket/ui/src/main/java/org/apache/causeway/extensions/pdfjs/wkt/ui/components/PdfJsViewerPanel.java @@ -182,17 +182,20 @@ protected MarkupContainer createRegularFrame() { return createShallowRegularFrame(); } - val scalarModel = scalarModel(); + val attributeModel = scalarModel(); val regularFrame = new WebMarkupContainer(ID_SCALAR_IF_REGULAR); + var documentUrl = urlFor( + new ListenerRequestHandler( + new PageAndComponentProvider(getPage(), this))) + // adds a hash to the URL, such that browser caching works as desired + + "&md5=" + blob.md5Hex(); val pdfJsConfig = - scalarModel.getMetaModel().lookupFacet(PdfJsViewerFacet.class) + attributeModel.getMetaModel().lookupFacet(PdfJsViewerFacet.class) .map(pdfJsViewerFacet->pdfJsViewerFacet.configFor(buildKey())) .orElseGet(PdfJsConfig::new) - .withDocumentUrl(urlFor( - new ListenerRequestHandler( - new PageAndComponentProvider(getPage(), this)))); + .withDocumentUrl(documentUrl); val pdfJsPanel = new PdfJsPanel(ID_SCALAR_VALUE, pdfJsConfig); diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/util/Wkt.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/util/Wkt.java index 2bbf5569ee0..504c3ae8fc5 100644 --- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/util/Wkt.java +++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/util/Wkt.java @@ -22,6 +22,7 @@ import java.io.File; import java.io.Serializable; +import java.time.Duration; import java.util.List; import java.util.Optional; import java.util.OptionalInt; @@ -651,6 +652,7 @@ public void fileDownloadClickHandler(final IModel model, final CommonMimeT RequestCycle.get().scheduleRequestHandlerAfterCurrent( Wkt.fileResourceStreamRequestHandler(file, mime) .setFileName(fileName) + .setCacheDuration(Duration.ZERO) .setContentDisposition(ContentDisposition.ATTACHMENT)); }