From e7d70118dfd34dc84bd6d48a36291e7a11be1570 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vanesa=20Smo=C4=BEakov=C3=A1?= Date: Tue, 12 May 2026 00:28:30 +0200 Subject: [PATCH] MID-10911 Fix generic "Fatal error" message in object tables --- .../data/provider/SelectableBeanDataProvider.java | 12 +++++++++++- .../data/column/ContainerableNameColumn.java | 4 +++- release-notes.adoc | 1 + 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/component/data/provider/SelectableBeanDataProvider.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/component/data/provider/SelectableBeanDataProvider.java index c9dfbb2d72d..f701a5ba384 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/component/data/provider/SelectableBeanDataProvider.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/impl/component/data/provider/SelectableBeanDataProvider.java @@ -10,6 +10,8 @@ import java.util.*; import java.util.stream.Collectors; +import org.apache.commons.lang3.StringUtils; + import com.evolveum.midpoint.gui.api.component.data.provider.ISelectableDataProvider; import com.evolveum.midpoint.gui.api.util.WebComponentUtil; import com.evolveum.midpoint.model.api.authentication.CompiledObjectCollectionView; @@ -127,7 +129,7 @@ public Iterator> internalIterator(long offset, long pageSize) } catch (Exception ex) { setupUserFriendlyMessage(result, ex); - result.recordFatalError(getPageBase().createStringResource("ObjectDataProvider.message.listObjects.fatalError").getString(), ex); + result.recordFatalError(createListObjectsErrorMessage(ex), ex); LoggingUtils.logUnexpectedException(LOGGER, "Couldn't list objects", ex); return handleNotSuccessOrHandledErrorInIterator(result); } finally { @@ -179,6 +181,14 @@ protected SelectableBean createDataObjectWrapperForError() { return new SelectableBeanImpl<>(); } + private String createListObjectsErrorMessage(Exception ex) { + String message = getPageBase().createStringResource("ObjectDataProvider.message.listObjects.fatalError").getString(); + if (StringUtils.isBlank(ex.getMessage())) { + return message; + } + return message + ": " + ex.getMessage(); + } + protected abstract List searchObjects(Class type, ObjectQuery query, Collection> options, diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/ContainerableNameColumn.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/ContainerableNameColumn.java index ab0913c9d92..4f45f765fdd 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/ContainerableNameColumn.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/column/ContainerableNameColumn.java @@ -8,6 +8,7 @@ import java.io.Serial; +import org.apache.commons.lang3.StringUtils; import org.apache.wicket.Component; import org.apache.wicket.RestartResponseException; import org.apache.wicket.ajax.AjaxRequestTarget; @@ -89,7 +90,8 @@ private String getResultAsString(SR selectableBean) { if (selectableBean instanceof SelectableBean) { OperationResult result = ((SelectableBean) selectableBean).getResult(); OperationResultStatusPresentationProperties props = OperationResultStatusPresentationProperties.parseOperationalResultStatus(result.getStatus()); - return getPageBase().getString(props.getStatusLabelKey()); + String status = getPageBase().getString(props.getStatusLabelKey()); + return StringUtils.isBlank(result.getMessage()) ? status : status + ": " + result.getMessage(); } return ""; } diff --git a/release-notes.adoc b/release-notes.adoc index c606d71c93d..70d731850c4 100644 --- a/release-notes.adoc +++ b/release-notes.adoc @@ -102,6 +102,7 @@ Overall, midPoint 4.10 opens up the world of identity management and governance * Delineation suggestions: filter parsing broken after recent GUI change. See bug:MID-11175[] * Fixed work item search by name causing repository mapping error. See bug:MID-8834[] * Fixed translation of archetype display labels in assignment picker and summary panel. See bug:MID-11177[] +* Fixed generic "Fatal error" message in object tables to show available list/search error details. See bug:MID-10911[] === Releases Of Other Components