This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/causeway.git
The following commit(s) were added to refs/heads/main by this push:
new b0a8187ef4a CAUSEWAY-3958: Clob content is required to be UTF-8
b0a8187ef4a is described below
commit b0a8187ef4ab61ebff875806ba6d227aee8ccb0f
Author: andi-huber <[email protected]>
AuthorDate: Sun Jan 18 16:58:07 2026 +0100
CAUSEWAY-3958: Clob content is required to be UTF-8
for other use-cases use Blob
---
.../attributes/blobclob/ClobAttributePanel.java | 16 +++++++++-------
.../viewer/wicket/ui/exec/LobRequestHandler.java | 5 +++--
2 files changed, 12 insertions(+), 9 deletions(-)
diff --git
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/attributes/blobclob/ClobAttributePanel.java
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/attributes/blobclob/ClobAttributePanel.java
index c4251c6610b..150d500f7b9 100644
---
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/attributes/blobclob/ClobAttributePanel.java
+++
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/components/attributes/blobclob/ClobAttributePanel.java
@@ -23,20 +23,19 @@
import org.apache.wicket.markup.html.form.upload.FileUpload;
import org.apache.wicket.model.IModel;
-import org.apache.wicket.request.resource.CharSequenceResource;
+import org.apache.wicket.request.resource.ByteArrayResource;
import org.apache.wicket.request.resource.IResource;
+import org.apache.causeway.applib.value.Blob;
import org.apache.causeway.applib.value.Clob;
import org.apache.causeway.viewer.wicket.model.models.FileUploadModels;
import org.apache.causeway.viewer.wicket.model.models.UiAttributeWkt;
/**
* Panel for rendering scalars of type {@link Clob}.
- *
- * <p>
- * TODO: for now, this only handles {@link Clob}s encoded as UTF-8.
- * One option might be to 'guess' the character encoding, eg akin to
cpdetector?
- * </p>
+ *
+ * <p>WARNING only handles {@link Clob}s encoded as UTF-8.
+ * For different use-cases use {@link Blob} instead.
*/
class ClobAttributePanel extends BlobOrClobAttributePanel<Clob> {
@@ -53,7 +52,10 @@ protected IModel<List<FileUpload>> fileUploadModel() {
@Override
protected IResource newResource(final Clob clob) {
- return new CharSequenceResource(clob.mimeType().getBaseType(),
clob.chars(), clob.name());
+ var blob = clob.toBlobUtf8();
+ return new ByteArrayResource(blob.mimeType().getBaseType(),
blob.bytes(), blob.name());
+ //[CAUSEWAY-3958] has issues with CSV files
+ //return new CharSequenceResource(clob.mimeType().getBaseType(),
clob.chars(), clob.name());
}
}
diff --git
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/exec/LobRequestHandler.java
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/exec/LobRequestHandler.java
index 134c1862487..4264a5bc45e 100644
---
a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/exec/LobRequestHandler.java
+++
b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/exec/LobRequestHandler.java
@@ -31,7 +31,6 @@
import org.apache.wicket.util.resource.AbstractResourceStream;
import org.apache.wicket.util.resource.IResourceStream;
import org.apache.wicket.util.resource.ResourceStreamNotFoundException;
-import org.apache.wicket.util.resource.StringResourceStream;
import org.jspecify.annotations.Nullable;
import org.apache.causeway.applib.value.Blob;
@@ -91,7 +90,9 @@ private IResourceStream resourceStream(Blob blob) {
}
private IResourceStream resourceStream(Clob clob) {
- return new StringResourceStream(clob.chars(),
clob.mimeType().toString());
+ return resourceStream(clob.toBlobUtf8());
+ // [CAUSEWAY-3958] has issues with CSV files
+ // return new StringResourceStream(clob.chars(),
clob.mimeType().toString());
}
private IResourceStream resourceStreamUnmatched() {