You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2020/01/18 09:27:16 UTC
[isis] branch master updated: ISIS-2223: Mitigate Reliability and
Security Issues as detected by Code Quality Analysis
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/master by this push:
new a461219 ISIS-2223: Mitigate Reliability and Security Issues as detected by Code Quality Analysis
a461219 is described below
commit a46121937d183e4aeb191db3dff08a01f687244a
Author: Andi Huber <ah...@apache.org>
AuthorDate: Sat Jan 18 10:27:01 2020 +0100
ISIS-2223: Mitigate Reliability and Security Issues as detected by Code
Quality Analysis
Task-Url: https://issues.apache.org/jira/browse/ISIS-2223
---
.../org/apache/isis/core/commons/collections/Can.java | 15 +++++++++++++++
.../isis/core/commons/collections/Can_Singleton.java | 3 ++-
...ionParameterDefaultsFacetFromAssociatedCollection.java | 2 +-
3 files changed, 18 insertions(+), 2 deletions(-)
diff --git a/core/commons/src/main/java/org/apache/isis/core/commons/collections/Can.java b/core/commons/src/main/java/org/apache/isis/core/commons/collections/Can.java
index 9ea69a4..687df33 100644
--- a/core/commons/src/main/java/org/apache/isis/core/commons/collections/Can.java
+++ b/core/commons/src/main/java/org/apache/isis/core/commons/collections/Can.java
@@ -35,6 +35,7 @@ import javax.annotation.Nullable;
import javax.enterprise.inject.Instance;
import org.apache.isis.core.commons.internal.base._NullSafe;
+import org.apache.isis.core.commons.internal.exceptions._Exceptions;
import static org.apache.isis.core.commons.internal.base._With.requires;
@@ -99,9 +100,23 @@ public interface Can<T> extends Iterable<T> {
Optional<T> getFirst();
/**
+ * Shortcut for {@code getFirst().orElseThrow(_Exceptions::unexpectedCodeReach)}
+ */
+ default T getFirstOrFail() {
+ return getFirst().orElseThrow(_Exceptions::unexpectedCodeReach);
+ }
+
+ /**
* @return this Can's single element or an empty Optional if this Can has any cardinality other than ONE
*/
Optional<T> getSingleton();
+
+ /**
+ * Shortcut for {@code getSingleton().orElseThrow(_Exceptions::unexpectedCodeReach)}
+ */
+ default T getSingletonOrFail() {
+ return getSingleton().orElseThrow(_Exceptions::unexpectedCodeReach);
+ }
// -- FACTORIES
diff --git a/core/commons/src/main/java/org/apache/isis/core/commons/collections/Can_Singleton.java b/core/commons/src/main/java/org/apache/isis/core/commons/collections/Can_Singleton.java
index 57a1a23..bd694d6 100644
--- a/core/commons/src/main/java/org/apache/isis/core/commons/collections/Can_Singleton.java
+++ b/core/commons/src/main/java/org/apache/isis/core/commons/collections/Can_Singleton.java
@@ -29,6 +29,7 @@ import java.util.function.Supplier;
import java.util.stream.Stream;
import org.apache.isis.core.commons.internal.base._Casts;
+import org.apache.isis.core.commons.internal.exceptions._Exceptions;
import lombok.Getter;
import lombok.NonNull;
@@ -84,7 +85,7 @@ final class Can_Singleton<T> implements Can<T> {
return this;
}
if(other.isCardinalityOne()) {
- return add(other.getSingleton().get());
+ return add(other.getSingleton().orElseThrow(_Exceptions::unexpectedCodeReach));
}
val newElements = new ArrayList<T>(other.size()+1);
newElements.add(element);
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/param/ActionParameterDefaultsFacetFromAssociatedCollection.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/param/ActionParameterDefaultsFacetFromAssociatedCollection.java
index 67820c5..5260a45 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/param/ActionParameterDefaultsFacetFromAssociatedCollection.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/postprocessors/param/ActionParameterDefaultsFacetFromAssociatedCollection.java
@@ -43,7 +43,7 @@ public class ActionParameterDefaultsFacetFromAssociatedCollection extends Action
} catch (Exception e) {
throw new ApplicationException(e);
} finally {
- _selectedPojos.set(Can.empty());
+ _selectedPojos.remove();
}
}