diff --git a/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/internal/TableServiceImpl.java b/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/internal/TableServiceImpl.java index b668d98aa1..114c3d45fd 100644 --- a/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/internal/TableServiceImpl.java +++ b/java/bundles/org.eclipse.set.feature.table/src/org/eclipse/set/feature/table/internal/TableServiceImpl.java @@ -728,7 +728,7 @@ public Table createDiffTable(final TableInfo tableInfo, } catch (final Exception e) { logger.error("Transformation Error: {} : {}", //$NON-NLS-1$ tableInfo.shortcut(), e.getMessage()); - tableStatus.setNonTransformable(true); + tableStatus.setErrorMessages(e.getMessage()); broker.post(Events.TABLEERROR_CHANGED, null); // Give empty table back return createEmptyTable(tableInfo); diff --git a/java/bundles/org.eclipse.set.services/src/org/eclipse/set/services/table/TableStatus.java b/java/bundles/org.eclipse.set.services/src/org/eclipse/set/services/table/TableStatus.java index f850cb7e42..9e94137bed 100644 --- a/java/bundles/org.eclipse.set.services/src/org/eclipse/set/services/table/TableStatus.java +++ b/java/bundles/org.eclipse.set.services/src/org/eclipse/set/services/table/TableStatus.java @@ -10,6 +10,8 @@ */ package org.eclipse.set.services.table; +import java.util.Optional; + /** * The status of the Pt1 table by each table state/control area * @@ -19,7 +21,7 @@ public class TableStatus { private boolean containsErrors; private boolean containsStateChanged; private boolean containsPlanChanged; - private boolean nonTransformable; + private Optional errorMessages; private boolean isEmpty; /** @@ -36,7 +38,7 @@ public void reset() { containsErrors = false; containsPlanChanged = false; containsStateChanged = false; - nonTransformable = false; + errorMessages = Optional.empty(); isEmpty = false; } @@ -89,15 +91,15 @@ public void setContainsPlanChanged(final boolean containsPlanChanged) { * @return true, if table non transformable */ public boolean isNonTransformable() { - return nonTransformable; + return errorMessages.isPresent(); } /** - * @param nonTransformable - * true, if table non transformable + * @param errorMessages + * the error messages by table transformation */ - public void setNonTransformable(final boolean nonTransformable) { - this.nonTransformable = nonTransformable; + public void setErrorMessages(final String errorMessages) { + this.errorMessages = Optional.ofNullable(errorMessages); } /** diff --git a/java/bundles/org.eclipse.set.utils.table/src/org/eclipse/set/utils/table/sorting/CompareRouteAndKmCriterion.java b/java/bundles/org.eclipse.set.utils.table/src/org/eclipse/set/utils/table/sorting/CompareRouteAndKmCriterion.java index a62a89b5a8..bcf846c503 100644 --- a/java/bundles/org.eclipse.set.utils.table/src/org/eclipse/set/utils/table/sorting/CompareRouteAndKmCriterion.java +++ b/java/bundles/org.eclipse.set.utils.table/src/org/eclipse/set/utils/table/sorting/CompareRouteAndKmCriterion.java @@ -222,6 +222,9 @@ public int compareKm(final Set firstKms, } private boolean kmPatternCheck(final String km) { + if (km == null) { + return true; + } final Matcher matcher = PunktObjektStreckeExtensions.KILOMETRIERUNG_PATTERN .matcher(km); if (!matcher.matches()) { diff --git a/java/bundles/org.eclipse.set.utils/src/org/eclipse/set/utils/widgets/Banderole.java b/java/bundles/org.eclipse.set.utils/src/org/eclipse/set/utils/widgets/Banderole.java index a33a180b06..978aaf7f24 100644 --- a/java/bundles/org.eclipse.set.utils/src/org/eclipse/set/utils/widgets/Banderole.java +++ b/java/bundles/org.eclipse.set.utils/src/org/eclipse/set/utils/widgets/Banderole.java @@ -139,6 +139,9 @@ public boolean isOutdated() { * whether to enable the export button */ public void setEnableExport(final boolean enabled) { + if (exportButton.isDisposed()) { + return; + } exportButton.setEnabled(enabled); }