You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2015/09/10 18:12:11 UTC

[11/34] isis git commit: ISIS-1194: PersistenceSession: tiny refactor of instantiateAndInjectServices(...)

ISIS-1194: PersistenceSession: tiny refactor of instantiateAndInjectServices(...)


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/3a5eb39e
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/3a5eb39e
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/3a5eb39e

Branch: refs/heads/ISIS-1194
Commit: 3a5eb39e844b421429354c702e9e4cdce45ad26e
Parents: 4776d59
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 10 15:39:47 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 10 15:39:47 2015 +0100

----------------------------------------------------------------------
 .../system/persistence/PersistenceSession.java  | 34 +++++++++-----------
 1 file changed, 15 insertions(+), 19 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/3a5eb39e/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java
index 08b45f0..9258a4c 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java
@@ -60,7 +60,6 @@ import org.apache.isis.core.metamodel.services.ServiceUtil;
 import org.apache.isis.core.metamodel.services.ServicesInjectorSpi;
 import org.apache.isis.core.metamodel.services.container.query.QueryCardinality;
 import org.apache.isis.core.metamodel.spec.FreeStandingList;
-import org.apache.isis.core.metamodel.spec.ObjectInstantiationException;
 import org.apache.isis.core.metamodel.spec.ObjectSpecId;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpi;
@@ -424,27 +423,24 @@ public class PersistenceSession implements TransactionalResource, SessionScopedC
             return Array.newInstance(correspondingClass.getComponentType(), 0);
         }
 
-        try {
-            final Class<?> cls = correspondingClass;
-
-            if (Modifier.isAbstract(cls.getModifiers())) {
-                throw new ObjectInstantiationException("Cannot create an instance of an abstract class: " + cls);
-            }
-            final Object newInstance;
-            if (Modifier.isAbstract(cls.getModifiers())) {
-                throw new ObjectInstantiationException("Cannot create an instance of an abstract class: " + cls);
-            }
-            try {
-                newInstance = cls.newInstance();
-            } catch (final IllegalAccessException | InstantiationException e) {
-                throw new ObjectInstantiationException(e);
-            }
+        final Class<?> cls = correspondingClass;
+        if (Modifier.isAbstract(cls.getModifiers())) {
+            throw new IsisException("Cannot create an instance of an abstract class: " + cls);
+        }
+        final Object newInstance;
+        if (Modifier.isAbstract(cls.getModifiers())) {
+            throw new IsisException("Cannot create an instance of an abstract class: " + cls);
+        }
 
-            servicesInjector.injectServicesInto(newInstance);
-            return newInstance;
-        } catch (final ObjectInstantiationException e) {
+        try {
+            newInstance = cls.newInstance();
+        } catch (final IllegalAccessException | InstantiationException e) {
             throw new IsisException("Failed to create instance of type " + objectSpec.getFullIdentifier(), e);
         }
+
+        servicesInjector.injectServicesInto(newInstance);
+        return newInstance;
+
     }
 
     private ObjectAdapter initializePropertiesAndDoCallback(final ObjectAdapter adapter) {