You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by mg...@apache.org on 2015/03/24 12:23:21 UTC
isis git commit: IsisISIS-1111 Trying to load an entity with
wrong/non-existing OID fails with NullPointerException
Repository: isis
Updated Branches:
refs/heads/master 4a00684e5 -> 737c0a2c5
IsisISIS-1111 Trying to load an entity with wrong/non-existing OID fails with NullPointerException
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/737c0a2c
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/737c0a2c
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/737c0a2c
Branch: refs/heads/master
Commit: 737c0a2c58c90b288f21f7d3c7f34f0a28ad1947
Parents: 4a00684
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Tue Mar 24 13:22:57 2015 +0200
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Tue Mar 24 13:22:57 2015 +0200
----------------------------------------------------------------------
.../viewer/wicket/model/models/EntityModel.java | 2 +-
.../wicket/ui/pages/entity/EntityPage.java | 22 ++++++++++++++++++--
2 files changed, 21 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/737c0a2c/core/viewer-wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java b/core/viewer-wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
index 2b88467..85107cf 100644
--- a/core/viewer-wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
+++ b/core/viewer-wicket/model/src/main/java/org/apache/isis/viewer/wicket/model/models/EntityModel.java
@@ -162,7 +162,7 @@ public class EntityModel extends BookmarkableModel<ObjectAdapter> {
this.pendingModel = new PendingModel(this);
}
- private static String oidStr(final PageParameters pageParameters) {
+ public static String oidStr(final PageParameters pageParameters) {
return PageParameterNames.OBJECT_OID.getStringFrom(pageParameters);
}
http://git-wip-us.apache.org/repos/asf/isis/blob/737c0a2c/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java b/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java
index cfd0d7d..83c5872 100644
--- a/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java
+++ b/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/pages/entity/EntityPage.java
@@ -20,10 +20,13 @@
package org.apache.isis.viewer.wicket.ui.pages.entity;
import java.util.List;
+import org.apache.wicket.Application;
+import org.apache.wicket.RestartResponseException;
import org.apache.wicket.authroles.authorization.strategies.role.annotations.AuthorizeInstantiation;
import org.apache.wicket.event.Broadcast;
import org.apache.wicket.markup.html.link.BookmarkablePageLink;
import org.apache.wicket.request.mapper.parameter.PageParameters;
+import org.apache.wicket.util.string.Strings;
import org.apache.isis.applib.annotation.Where;
import org.apache.isis.core.commons.authentication.AuthenticationSession;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
@@ -64,9 +67,24 @@ public class EntityPage extends PageAbstract {
* {@link BookmarkablePageLink bookmarkable} links.
*/
public EntityPage(final PageParameters pageParameters) {
- this(pageParameters, new EntityModel(pageParameters));
+ this(pageParameters, createEntityModel(pageParameters));
}
-
+
+ /**
+ * Creates an EntityModel from the given page parameters.
+ * Redirects to the application home page if there is no OID in the parameters.
+ *
+ * @param parameters The page parameters with the OID
+ * @return An EntityModel for the requested OID
+ */
+ private static EntityModel createEntityModel(final PageParameters parameters) {
+ String oid = EntityModel.oidStr(parameters);
+ if (Strings.isEmpty(oid)) {
+ throw new RestartResponseException(Application.get().getHomePage());
+ }
+ return new EntityModel(parameters);
+ }
+
private EntityPage(final PageParameters pageParameters, final EntityModel entityModel) {
this(pageParameters, entityModel, null);
}