From 5c2f3fa9ce4e46406cc2d3fa606f28ef153a93b7 Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Thu, 24 Jan 2013 16:05:15 +0100 Subject: Stop nullpointerexception if a missing resource was requested --- .../c2kernel/persistency/XMLDBClusterStorage.java | 23 +++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) (limited to 'src/main/java/com/c2kernel/persistency') diff --git a/src/main/java/com/c2kernel/persistency/XMLDBClusterStorage.java b/src/main/java/com/c2kernel/persistency/XMLDBClusterStorage.java index 205876d..8521a17 100644 --- a/src/main/java/com/c2kernel/persistency/XMLDBClusterStorage.java +++ b/src/main/java/com/c2kernel/persistency/XMLDBClusterStorage.java @@ -152,15 +152,20 @@ public class XMLDBClusterStorage extends ClusterStorage { if (itemColl == null) return null; // doesn't exist try { - String resource = path.replace('/', '.'); - String objString = (String)itemColl.getResource(resource).getContent(); - itemColl.close(); - if (type.equals("Outcome")) - return new Outcome(path, objString); - else { - C2KLocalObject obj = (C2KLocalObject)Gateway.getMarshaller().unmarshall(objString); - return obj; - } + String resourceName = path.replace('/', '.'); + Resource resource = itemColl.getResource(resourceName); + if (resource != null) { + String objString = (String)resource.getContent(); + itemColl.close(); + if (type.equals("Outcome")) + return new Outcome(path, objString); + else { + C2KLocalObject obj = (C2KLocalObject)Gateway.getMarshaller().unmarshall(objString); + return obj; + } + } + else + return null; } catch (Exception e) { Logger.error(e); throw new ClusterStorageException("XMLDB error"); -- cgit v1.2.3