From e1a27d6063d8b8f1eb0512df6c0c206a22acd31c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Euzenat?= <Jerome.Euzenat@inria.fr>
Date: Sat, 19 Nov 2011 15:49:27 +0000
Subject: [PATCH] - trapped null pointer exception when a URI cannot be
 derefenced in the ontology (toObjectAlignment)

---
 .../exmo/align/impl/ObjectAlignment.java      | 20 ++++++++++++++-----
 1 file changed, 15 insertions(+), 5 deletions(-)

diff --git a/src/fr/inrialpes/exmo/align/impl/ObjectAlignment.java b/src/fr/inrialpes/exmo/align/impl/ObjectAlignment.java
index 4e2af6f1..24820d7d 100644
--- a/src/fr/inrialpes/exmo/align/impl/ObjectAlignment.java
+++ b/src/fr/inrialpes/exmo/align/impl/ObjectAlignment.java
@@ -150,13 +150,23 @@ public class ObjectAlignment extends BasicAlignment {
 	alignment.setExtensions( al.convertExtension( "ObjectURIConverted", "fr.inrialpes.exmo.align.ObjectAlignment#toObject" ) );
 	LoadedOntology<Object> o1 = (LoadedOntology<Object>)alignment.getOntologyObject1(); // [W:unchecked]
 	LoadedOntology<Object> o2 = (LoadedOntology<Object>)alignment.getOntologyObject2(); // [W:unchecked]
+	Object obj1 = null;
+	Object obj2 = null;
+
 	try {
 	    for ( Cell c : al ) {
-		Cell newc = alignment.addAlignCell( c.getId(), 
-						    o1.getEntity( c.getObject1AsURI(alignment) ),
-						    o2.getEntity( c.getObject2AsURI(alignment) ),
-						    c.getRelation(), 
-						    c.getStrength() );
+		try {
+		    obj1 = o1.getEntity( c.getObject1AsURI( alignment ) );
+		} catch ( NullPointerException npe ) {
+		    throw new AlignmentException( "Cannot dereference entity "+c.getObject1AsURI( alignment ), npe );
+		}
+		try {
+		    obj2 = o2.getEntity( c.getObject2AsURI( alignment ) );
+		} catch ( NullPointerException npe ) {
+		    throw new AlignmentException( "Cannot dereference entity "+c.getObject2AsURI( alignment ), npe );
+		}
+		Cell newc = alignment.addAlignCell( c.getId(), obj1, obj2,
+						    c.getRelation(), c.getStrength() );
 		Collection<String[]> exts = c.getExtensions();
 		if ( exts != null ) {
 		    for ( String[] ext : exts ){
-- 
GitLab