[240230]
[240860]
[238050]
[238049]
[237441]
[237126]
Merge bug fixes from R1_2_maintenance branch
diff --git a/plugins/org.eclipse.ocl.ecore/src/org/eclipse/ocl/ecore/internal/UMLReflectionImpl.java b/plugins/org.eclipse.ocl.ecore/src/org/eclipse/ocl/ecore/internal/UMLReflectionImpl.java
index 92bf912..f85a37a 100644
--- a/plugins/org.eclipse.ocl.ecore/src/org/eclipse/ocl/ecore/internal/UMLReflectionImpl.java
+++ b/plugins/org.eclipse.ocl.ecore/src/org/eclipse/ocl/ecore/internal/UMLReflectionImpl.java
@@ -1,7 +1,7 @@
 /**
  * <copyright>
  *
- * Copyright (c) 2006, 2007 IBM Corporation and others.
+ * Copyright (c) 2006, 2008 IBM Corporation, Zeligsoft Inc. and others.
  * All rights reserved.   This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v1.0
  * which accompanies this distribution, and is available at
@@ -9,10 +9,11 @@
  *
  * Contributors:
  *   IBM - Initial API and implementation
+ *   Zeligsoft - Bug 240230
  *
  * </copyright>
  *
- * $Id: UMLReflectionImpl.java,v 1.6 2007/10/15 22:23:10 cdamus Exp $
+ * $Id: UMLReflectionImpl.java,v 1.7 2008/08/05 00:37:24 cdamus Exp $
  */
 
 package org.eclipse.ocl.ecore.internal;
@@ -541,29 +542,30 @@
     
         Class<?> instanceClass = dataType.getInstanceClass();
     
-        // Boolean/boolean -> OCL_BOOLEAN
-        if (instanceClass == Boolean.class
-            || instanceClass == boolean.class) {
-            return OCLStandardLibraryImpl.INSTANCE.getBoolean();
-        } else if (instanceClass == Double.class
-            || instanceClass == double.class
-            || instanceClass == Float.class || instanceClass == float.class) {
-            return OCLStandardLibraryImpl.INSTANCE.getReal();
-        } else if (instanceClass == String.class) {
-            return OCLStandardLibraryImpl.INSTANCE.getString();
-        } else if (instanceClass == Integer.class
-            || instanceClass == int.class || instanceClass == Long.class
-            || instanceClass == long.class || instanceClass == Short.class
-            || instanceClass == short.class) {
-            return OCLStandardLibraryImpl.INSTANCE.getInteger();
-        } else if (List.class.isAssignableFrom(instanceClass)) {
-            return OCLStandardLibraryImpl.INSTANCE.getSequence();
-        } else if (Set.class.isAssignableFrom(instanceClass)) {
-            return OCLStandardLibraryImpl.INSTANCE.getSet();
-        } else if (Collection.class.isAssignableFrom(instanceClass)) {
-            return OCLStandardLibraryImpl.INSTANCE.getCollection();
-        } else if (instanceClass == Object.class) {
-            return OCLStandardLibraryImpl.INSTANCE.getOclAny();
+        if (instanceClass != null) {
+	        if (instanceClass == Boolean.class
+	            || instanceClass == boolean.class) {
+	            return OCLStandardLibraryImpl.INSTANCE.getBoolean();
+	        } else if (instanceClass == Double.class
+	            || instanceClass == double.class
+	            || instanceClass == Float.class || instanceClass == float.class) {
+	            return OCLStandardLibraryImpl.INSTANCE.getReal();
+	        } else if (instanceClass == String.class) {
+	            return OCLStandardLibraryImpl.INSTANCE.getString();
+	        } else if (instanceClass == Integer.class
+	            || instanceClass == int.class || instanceClass == Long.class
+	            || instanceClass == long.class || instanceClass == Short.class
+	            || instanceClass == short.class) {
+	            return OCLStandardLibraryImpl.INSTANCE.getInteger();
+	        } else if (List.class.isAssignableFrom(instanceClass)) {
+	            return OCLStandardLibraryImpl.INSTANCE.getSequence();
+	        } else if (Set.class.isAssignableFrom(instanceClass)) {
+	            return OCLStandardLibraryImpl.INSTANCE.getSet();
+	        } else if (Collection.class.isAssignableFrom(instanceClass)) {
+	            return OCLStandardLibraryImpl.INSTANCE.getCollection();
+	        } else if (instanceClass == Object.class) {
+	            return OCLStandardLibraryImpl.INSTANCE.getOclAny();
+	        }
         }
         
         // All other data types map to themselves