Before reporting an issue
Environment information
{
"ehrbase_version": "2.24.0",
"openehr_sdk_version": "2.27.0",
"archie_version": "3.13.0",
"jvm_version": "Eclipse Adoptium 21.0.8+9-LTS",
"os_version": "Linux amd64 6.8.0-53-generic",
"postgres_version": "PostgreSQL 17.6 on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14+deb12u1) 12.2.0, 64-bit"
}
Steps to reproduce
- Deploy the latest EHRbase version using Redis for caching.
# ...
spring:
cache:
type: redis
data:
redis:
host: redis
port: 6379
- Upload a template using:
POST http://localhost:8080/ehrbase/rest/openehr/v1/definition/template/adl1.4
Alternative:
- Run the following main class
package org.ehrbase.test;
import org.ehrbase.openehr.sdk.webtemplate.model.WebTemplate;
import org.ehrbase.openehr.sdk.webtemplate.parser.OPTParser;
import org.openehr.schemas.v1.OPERATIONALTEMPLATE;
import org.openehr.schemas.v1.TemplateDocument;
import org.springframework.core.io.ClassPathResource;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
public class WebTemplateSerialization {
public static void main(String[] args) {
ClassPathResource resource = new ClassPathResource("KDS_Diagnose.opt");
TemplateDocument document;
try {
document = TemplateDocument.Factory.parse(resource.getInputStream());
} catch (Exception ex) {
throw new IllegalArgumentException("Failed to parse template", ex);
}
OPERATIONALTEMPLATE operationalTemplate = document.getTemplate();
WebTemplate webTemplate = new OPTParser(operationalTemplate).parse();
try (ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream("template.dat"))) {
os.writeObject(webTemplate);
} catch (IOException ex) {
throw new IllegalStateException("Failed to serialize web template", ex);
}
}
}
Expected behavior
Template should be uploaded and added into the cache.
Actual result
ehrbase-ehrbase-8c6dcdb9-hxlfj-ehrbase.log
> Task :org.ehrbase.test.WebTemplateSerialization.main() FAILED
Exception in thread "main" java.lang.IllegalStateException: Failed to serialize web template
at org.ehrbase.test.WebTemplateSerialization.main(WebTemplateSerialization.java:32)
Caused by: java.io.NotSerializableException: org.ehrbase.openehr.sdk.aql.dto.operand.StringPrimitive
at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1200)
at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1585)
at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1542)
at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1451)
at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1194)
Caused by: java.io.NotSerializableException: org.ehrbase.openehr.sdk.aql.dto.operand.StringPrimitive
at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:358)
at java.base/java.util.CollSer.writeObject(ImmutableCollections.java:1472)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1072)
at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1529)
at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1451)
at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1194)
at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1585)
at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1542)
at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1451)
at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1194)
at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1585)
at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1542)
at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1451)
at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1194)
at java.base/java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1394)
at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1190)
at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1585)
at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1542)
at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1451)
at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1194)
at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1585)
at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1542)
at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1451)
at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1194)
at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:358)
at java.base/java.util.ArrayList.writeObject(ArrayList.java:948)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1072)
at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1529)
at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1451)
at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1194)
at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1585)
at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1542)
at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1451)
at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1194)
at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:358)
at java.base/java.util.ArrayList.writeObject(ArrayList.java:948)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1072)
at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1529)
at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1451)
at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1194)
at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1585)
at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1542)
at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1451)
at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1194)
at java.base/java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1585)
at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1542)
at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1451)
at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1194)
at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:358)
at org.ehrbase.test.WebTemplateSerialization.main(WebTemplateSerialization.java:30)
Further information
No response
Before reporting an issue
Environment information
{ "ehrbase_version": "2.24.0", "openehr_sdk_version": "2.27.0", "archie_version": "3.13.0", "jvm_version": "Eclipse Adoptium 21.0.8+9-LTS", "os_version": "Linux amd64 6.8.0-53-generic", "postgres_version": "PostgreSQL 17.6 on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14+deb12u1) 12.2.0, 64-bit" }Steps to reproduce
POST http://localhost:8080/ehrbase/rest/openehr/v1/definition/template/adl1.4Alternative:
Expected behavior
Template should be uploaded and added into the cache.
Actual result
ehrbase-ehrbase-8c6dcdb9-hxlfj-ehrbase.log
Further information
No response