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) {