Index: grails-app/services/com/lemans/correspondence/forms/DomainFormService.groovy =================================================================== diff -u -r75c1874d6dd0213527d1449d619d18ef22f15263 -ra6338bba7a41d8aeda0b3ddb21073b0a9f9048d4 --- grails-app/services/com/lemans/correspondence/forms/DomainFormService.groovy (.../DomainFormService.groovy) (revision 75c1874d6dd0213527d1449d619d18ef22f15263) +++ grails-app/services/com/lemans/correspondence/forms/DomainFormService.groovy (.../DomainFormService.groovy) (revision a6338bba7a41d8aeda0b3ddb21073b0a9f9048d4) @@ -66,12 +66,32 @@ clauses } - private void transformformDetailXmlClobToMap(List forms) { + /*private void transformformDetailXmlClobToMap(List forms) { forms.each { Map form -> Clob clob = form.formDetailXml String xml = clob.characterStream.text form.form = transformer.formFromXml(xml) form.remove 'formDetailXml' } + }*/ + + private void transformformDetailXmlClobToMap(List forms) { + forms.each { Map form -> + def formDetailXml = form.formDetailXml + + String xml + if (formDetailXml instanceof String) { + xml = formDetailXml // Handle as String directly + } else if (formDetailXml instanceof Clob) { + xml = formDetailXml.characterStream.text + } else { + // Handle unexpected type + throw new IllegalArgumentException("Unexpected type for formDetailXml: ${formDetailXml.getClass()}") + } + + form.form = transformer.formFromXml(xml) + form.remove 'formDetailXml' + } } + }