diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/LinkedReferencePanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/LinkedReferencePanel.java index 664ff478685..f2f5d596505 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/LinkedReferencePanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/LinkedReferencePanel.java @@ -14,6 +14,7 @@ import com.evolveum.midpoint.gui.api.util.WebModelServiceUtils; import com.evolveum.midpoint.prism.PrismObject; import com.evolveum.midpoint.prism.PrismReferenceValue; +import com.evolveum.midpoint.prism.Referencable; import com.evolveum.midpoint.schema.result.OperationResult; import com.evolveum.midpoint.web.component.data.column.ImagePanel; import com.evolveum.midpoint.web.component.util.EnableBehaviour; @@ -31,7 +32,7 @@ /** * Created by honchar */ -public class LinkedReferencePanel extends BasePanel { +public class LinkedReferencePanel extends BasePanel { private static final long serialVersionUID = 1L; private static final String ID_ICON = "icon"; @@ -43,7 +44,7 @@ public class LinkedReferencePanel extends BasePanel referencedObjectModel = null; - public LinkedReferencePanel(String id, IModel objectReferenceModel){ + public LinkedReferencePanel(String id, IModel objectReferenceModel){ super(id, objectReferenceModel); } @@ -65,10 +66,11 @@ protected ObjectType load() { && getModelObject().asReferenceValue().getObject().asObjectable() instanceof ObjectType ){ return (ObjectType)getModelObject().asReferenceValue().getObject().asObjectable(); } - if (StringUtils.isNotEmpty(getModelObject().getOid()) && getModelObject().getType() != null) { + if (StringUtils.isNotEmpty(getModelObject().getOid()) && getModelObject().getType() != null && + getModelObject() instanceof ObjectReferenceType) { PageBase pageBase = LinkedReferencePanel.this.getPageBase(); OperationResult result = new OperationResult(OPERATION_LOAD_REFERENCED_OBJECT); - PrismObject referencedObject = WebModelServiceUtils.loadObject(getModelObject(), pageBase, + PrismObject referencedObject = WebModelServiceUtils.loadObject((ObjectReferenceType) getModelObject(), pageBase, pageBase.createSimpleTask(OPERATION_LOAD_REFERENCED_OBJECT), result); return referencedObject != null ? referencedObject.asObjectable() : null; } diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/cases/PageCaseWorkItem.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/cases/PageCaseWorkItem.java index b13cd3ad962..54ad9e9c37b 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/cases/PageCaseWorkItem.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/cases/PageCaseWorkItem.java @@ -32,6 +32,7 @@ import org.apache.wicket.Component; import org.apache.wicket.RestartResponseException; import org.apache.wicket.ajax.AjaxRequestTarget; +import org.apache.wicket.feedback.FeedbackMessage; import org.apache.wicket.request.mapper.parameter.PageParameters; import java.util.ArrayList; @@ -98,6 +99,10 @@ public class PageCaseWorkItem extends PageAdminCaseWorkItems { private WorkItemId workItemId; private PageParameters pageParameters; + public PageCaseWorkItem() { + this(null); + } + public PageCaseWorkItem(CaseWorkItemType workItem) { this(workItem, null); } @@ -108,7 +113,12 @@ public PageCaseWorkItem(CaseWorkItemType workItem, PageParameters parameters) { caseWorkItemModel = new LoadableModel(false) { @Override protected CaseWorkItemType load() { - return workItem; + if (workItem != null) { + return workItem; + } else { + getSession().error("Workitem model cannot be null"); + throw redirectBackViaRestartResponseException(); + } } };