From 93ef0a630b90d832d92be659786b44ecbc52bac4 Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Wed, 7 Jun 2017 16:20:36 +0200 Subject: [PATCH] error handling for problems with cache improved --- .../annotation/services/DrugbankHTMLParser.java | 9 +++++++-- .../src/main/java/lcsb/mapviewer/common/XmlParser.java | 7 ++++++- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/annotation/src/main/java/lcsb/mapviewer/annotation/services/DrugbankHTMLParser.java b/annotation/src/main/java/lcsb/mapviewer/annotation/services/DrugbankHTMLParser.java index 07b0a36856..6eac22a514 100644 --- a/annotation/src/main/java/lcsb/mapviewer/annotation/services/DrugbankHTMLParser.java +++ b/annotation/src/main/java/lcsb/mapviewer/annotation/services/DrugbankHTMLParser.java @@ -9,6 +9,7 @@ import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern; +import org.apache.commons.lang3.SerializationException; import org.apache.commons.lang3.StringEscapeUtils; import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; @@ -474,8 +475,12 @@ public class DrugbankHTMLParser extends DrugAnnotation implements IExternalServi @Override public Drug findDrug(String drugName) throws DrugSearchException { String query = DRUG_NAME_PREFIX + drugName; - - Drug drug = getDrugSerializer().xmlToObject(getCacheNode(query)); + Drug drug = null; + try { + drug = getDrugSerializer().xmlToObject(getCacheNode(query)); + } catch (SerializationException e) { + logger.error("Problem with deserializing element by query: " + query); + } if (drug != null) { return drug; } diff --git a/commons/src/main/java/lcsb/mapviewer/common/XmlParser.java b/commons/src/main/java/lcsb/mapviewer/common/XmlParser.java index 0f0530880c..4df8104320 100644 --- a/commons/src/main/java/lcsb/mapviewer/common/XmlParser.java +++ b/commons/src/main/java/lcsb/mapviewer/common/XmlParser.java @@ -210,7 +210,12 @@ public class XmlParser { protected Document getXmlDocumentFromString(final String text) throws InvalidXmlSchemaException { InputSource is = new InputSource(); is.setCharacterStream(new StringReader(text)); - return getXmlDocumentFromInputSource(is); + try { + return getXmlDocumentFromInputSource(is); + } catch (NullPointerException e) { + logger.error("Problem with input xml: " + text); + throw new InvalidXmlSchemaException(e); + } } /** -- GitLab