From 09b4f6cee781c29be8fc66d847691a1f1d615587 Mon Sep 17 00:00:00 2001
From: dkayiwa <dkayiwa@openmrs.org>
Date: Fri, 30 Aug 2024 16:18:42 +0300
Subject: [PATCH] TRUNK-6188 fix failing tests

---
 .../serializer/ReportingSerializer.java       | 48 +++++++++++--------
 1 file changed, 27 insertions(+), 21 deletions(-)

diff --git a/api/src/main/java/org/openmrs/module/reporting/serializer/ReportingSerializer.java b/api/src/main/java/org/openmrs/module/reporting/serializer/ReportingSerializer.java
index 981383811..da4e3e7bb 100644
--- a/api/src/main/java/org/openmrs/module/reporting/serializer/ReportingSerializer.java
+++ b/api/src/main/java/org/openmrs/module/reporting/serializer/ReportingSerializer.java
@@ -9,15 +9,12 @@
  */
 package org.openmrs.module.reporting.serializer;
 
-import com.thoughtworks.xstream.XStream;
-import com.thoughtworks.xstream.converters.ConverterLookup;
-import com.thoughtworks.xstream.converters.DataHolder;
-import com.thoughtworks.xstream.core.MapBackedDataHolder;
-import com.thoughtworks.xstream.io.HierarchicalStreamReader;
-import com.thoughtworks.xstream.io.xml.DomDriver;
-import com.thoughtworks.xstream.mapper.Mapper;
-import com.thoughtworks.xstream.mapper.MapperWrapper;
+import java.io.OutputStream;
+import java.io.OutputStreamWriter;
+import java.io.UnsupportedEncodingException;
+import java.lang.reflect.Method;
 
+import org.openmrs.api.APIException;
 import org.openmrs.api.context.Context;
 import org.openmrs.module.serialization.xstream.XStreamShortSerializer;
 import org.openmrs.module.serialization.xstream.mapper.CGLibMapper;
@@ -27,10 +24,14 @@
 import org.openmrs.serialization.SerializationException;
 import org.openmrs.serialization.SimpleXStreamSerializer;
 
-import java.io.OutputStream;
-import java.io.OutputStreamWriter;
-import java.io.UnsupportedEncodingException;
-import java.lang.reflect.Method;
+import com.thoughtworks.xstream.XStream;
+import com.thoughtworks.xstream.converters.ConverterLookup;
+import com.thoughtworks.xstream.converters.DataHolder;
+import com.thoughtworks.xstream.core.MapBackedDataHolder;
+import com.thoughtworks.xstream.io.HierarchicalStreamReader;
+import com.thoughtworks.xstream.io.xml.DomDriver;
+import com.thoughtworks.xstream.mapper.Mapper;
+import com.thoughtworks.xstream.mapper.MapperWrapper;
 
 
 public class ReportingSerializer extends XStreamShortSerializer {
@@ -118,15 +119,20 @@ public void serializeToStream(Object object, OutputStream out) {
     }
 
     private void setupXStreamSecurity(XStream xstream) throws SerializationException {
-		SimpleXStreamSerializer serializer = Context.getRegisteredComponent("simpleXStreamSerializer", SimpleXStreamSerializer.class);
-		if (serializer != null) {
-			try {
-				Method method = serializer.getClass().getMethod("initXStream", XStream.class);
-				method.invoke(serializer, xstream);
-			}
-			catch (Exception ex) {
-				throw new SerializationException("Failed to set up XStream Security", ex);
+    	try {
+			SimpleXStreamSerializer serializer = Context.getRegisteredComponent("simpleXStreamSerializer", SimpleXStreamSerializer.class);
+			if (serializer != null) {
+				try {
+					Method method = serializer.getClass().getMethod("initXStream", XStream.class);
+					method.invoke(serializer, xstream);
+				}
+				catch (Exception ex) {
+					throw new SerializationException("Failed to set up XStream Security", ex);
+				}
 			}
-		}
+    	}
+    	catch (APIException ex) {
+    		//Ignore APIException("Error during getting registered component) for platform versions below 2.7.0
+    	}
 	}
 }