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 2022/12/14 05:36:29 UTC

[isis] branch master updated: ISIS-3304: [Commons] rename Can random accessor methods ('orFail' -> 'elseFail')

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 74329d3c0d ISIS-3304: [Commons] rename Can random accessor methods ('orFail' -> 'elseFail')
74329d3c0d is described below

commit 74329d3c0dddd9756c851df4574e1888d2571495
Author: Andi Huber <ah...@apache.org>
AuthorDate: Wed Dec 14 06:36:23 2022 +0100

    ISIS-3304: [Commons] rename Can random accessor methods ('orFail' ->
    'elseFail')
---
 .../apache/causeway/commons/collections/Can.java   |  4 +--
 .../commons/collections/Can_Singleton.java         |  2 +-
 .../commons/internal/ioc/_IocContainer.java        |  2 +-
 .../org/apache/causeway/commons/io/DataSink.java   |  2 +-
 .../org/apache/causeway/commons/io/DtoMapper.java  | 22 +++++-----------
 .../_testing/MetaModelContext_forTesting.java      |  2 +-
 .../_testing/ServiceRegistry_forTesting.java       |  2 +-
 .../core/metamodel/facetapi/FacetRanking.java      |  2 +-
 .../core/metamodel/facets/ImperativeAspect.java    |  2 +-
 ...ctionInvocationFacetForDomainEventAbstract.java |  4 +--
 .../ActionParameterValidationFacetViaMethod.java   |  2 +-
 .../method/ActionValidationFacetViaMethod.java     |  2 +-
 .../CollectionAccessorFacetViaAccessor.java        |  2 +-
 .../method/DisableForContextFacetViaMethod.java    |  2 +-
 .../method/HideForContextFacetViaMethod.java       |  2 +-
 .../ActionParameterAutoCompleteFacetViaMethod.java |  2 +-
 .../ActionParameterChoicesFacetViaMethod.java      |  2 +-
 .../ActionParameterDefaultsFacetViaMethod.java     |  2 +-
 .../ActionParameterDisabledFacetViaMethod.java     |  2 +-
 .../ActionParameterHiddenFacetViaMethod.java       |  2 +-
 .../ActionParameterValidationFacetViaMethod.java   |  2 +-
 .../accessor/PropertyAccessorFacetViaAccessor.java |  2 +-
 .../method/PropertyAutoCompleteFacetMethod.java    |  2 +-
 .../method/PropertyChoicesFacetViaMethod.java      |  2 +-
 .../method/PropertyDefaultFacetViaMethod.java      |  2 +-
 .../clear/PropertyClearFacetViaClearMethod.java    |  2 +-
 .../clear/PropertyClearFacetViaSetterMethod.java   |  2 +-
 ...PropertyInitializationFacetViaSetterMethod.java |  2 +-
 .../modify/PropertySetterFacetViaSetterMethod.java |  2 +-
 .../services/layout/LayoutServiceDefault.java      |  2 +-
 .../services/metamodel/DomainMemberDefault.java    |  2 +-
 ...etaModelValidatorForConflictingOptionality.java |  2 +-
 .../actions/ActionMethodsFacetFactoryTest.java     | 16 ++++++------
 ...nnotationFacetFactoryTest_ActionInvocation.java |  8 +++---
 .../CollectionFieldMethodsFacetFactoryTest.java    | 12 ++++-----
 .../title/TitleFacetViaMethodsFactoryTest.java     |  2 +-
 .../PropertyMethodsFacetFactoryTest.java           | 30 +++++++++++-----------
 .../metamodel/services/grid/GridLoadingTest.java   |  2 +-
 .../core/runtimeservices/executor/_Xray.java       |  8 +++---
 .../core/runtimeservices/publish/_Xray.java        | 10 ++++----
 .../menubars/bootstrap/MenuBarsServiceBSTest.java  |  2 +-
 .../jpa/integration/changetracking/_Xray.java      |  4 +--
 .../DomainModelTest_usingGoodDomain.java           |  6 ++---
 .../actionresponse/ActionResultResponseType.java   |  2 +-
 44 files changed, 91 insertions(+), 99 deletions(-)

diff --git a/commons/src/main/java/org/apache/causeway/commons/collections/Can.java b/commons/src/main/java/org/apache/causeway/commons/collections/Can.java
index 42e1b62b48..3004042630 100644
--- a/commons/src/main/java/org/apache/causeway/commons/collections/Can.java
+++ b/commons/src/main/java/org/apache/causeway/commons/collections/Can.java
@@ -107,7 +107,7 @@ extends ImmutableCollection<T>, Comparable<Can<T>>, Serializable {
      * Shortcut for {@code getFirst().orElseThrow(_Exceptions::noSuchElement)}
      * @throws NoSuchElementException if result is empty
      */
-    default T getFirstOrFail() {
+    default T getFirstElseFail() {
         return getFirst().orElseThrow(_Exceptions::noSuchElement);
     }
 
@@ -120,7 +120,7 @@ extends ImmutableCollection<T>, Comparable<Can<T>>, Serializable {
      * Shortcut for {@code getLast().orElseThrow(_Exceptions::noSuchElement)}
      * @throws NoSuchElementException if result is empty
      */
-    default T getLastOrFail() {
+    default T getLastElseFail() {
         return getLast().orElseThrow(_Exceptions::noSuchElement);
     }
 
diff --git a/commons/src/main/java/org/apache/causeway/commons/collections/Can_Singleton.java b/commons/src/main/java/org/apache/causeway/commons/collections/Can_Singleton.java
index eb5c3766a0..0103f1f755 100644
--- a/commons/src/main/java/org/apache/causeway/commons/collections/Can_Singleton.java
+++ b/commons/src/main/java/org/apache/causeway/commons/collections/Can_Singleton.java
@@ -286,7 +286,7 @@ final class Can_Singleton<T> implements Can<T> {
         }
         final int firstElementComparison = _Objects.compareNonNull(
                 this.element,
-                other.getFirstOrFail());
+                other.getFirstElseFail());
         if(firstElementComparison!=0
                 || other.isCardinalityOne()) {
             return firstElementComparison; // when both Cans are singletons, just compare by their contained values
diff --git a/commons/src/main/java/org/apache/causeway/commons/internal/ioc/_IocContainer.java b/commons/src/main/java/org/apache/causeway/commons/internal/ioc/_IocContainer.java
index 2ce17efac5..b867ba390c 100644
--- a/commons/src/main/java/org/apache/causeway/commons/internal/ioc/_IocContainer.java
+++ b/commons/src/main/java/org/apache/causeway/commons/internal/ioc/_IocContainer.java
@@ -118,7 +118,7 @@ public interface _IocContainer {
         if (candidates.getCardinality() == Cardinality.ZERO) {
             throw _Exceptions.noSuchElement("Cannot resolve singleton '%s'", type);
         }
-        return candidates.getFirstOrFail();
+        return candidates.getFirstElseFail();
     }
 
     // -- FACTORIES
diff --git a/commons/src/main/java/org/apache/causeway/commons/io/DataSink.java b/commons/src/main/java/org/apache/causeway/commons/io/DataSink.java
index bdba665d68..a6eac0a622 100644
--- a/commons/src/main/java/org/apache/causeway/commons/io/DataSink.java
+++ b/commons/src/main/java/org/apache/causeway/commons/io/DataSink.java
@@ -44,7 +44,7 @@ public interface DataSink {
      * Re-throws any {@link Exception} from the mapped {@link Try},
      * when the Try is a failure case.
      */
-    void writeAll(@NonNull Function<OutputStream, Try<Void>> consumingMapper);
+    void writeAll(@NonNull Function<OutputStream, Try<Void>> producingMapper);
 
     // -- FACTORIES
 
diff --git a/commons/src/main/java/org/apache/causeway/commons/io/DtoMapper.java b/commons/src/main/java/org/apache/causeway/commons/io/DtoMapper.java
index 9e84aabc33..c341a92cd1 100644
--- a/commons/src/main/java/org/apache/causeway/commons/io/DtoMapper.java
+++ b/commons/src/main/java/org/apache/causeway/commons/io/DtoMapper.java
@@ -19,7 +19,7 @@
 package org.apache.causeway.commons.io;
 
 import java.io.PrintStream;
-import java.util.function.Consumer;
+import java.util.ArrayList;
 
 import org.springframework.lang.Nullable;
 
@@ -42,13 +42,9 @@ public interface DtoMapper<T> {
     @Nullable
     default String toString(final @Nullable T dto) {
         if(dto==null) return null;
-        class StringHolder implements Consumer<String> {
-            String s;
-            @Override public void accept(final String s) { this.s = s; }
-        }
-        val sh = new StringHolder();
-        write(dto, DataSink.ofStringUtf8Consumer(sh));
-        return sh.s;
+        val stringHolder = new ArrayList<String>(1);
+        write(dto, DataSink.ofStringUtf8Consumer(stringHolder::add));
+        return stringHolder.get(0);
     }
 
     // -- CLONE
@@ -59,13 +55,9 @@ public interface DtoMapper<T> {
 
     default T clone(final @Nullable T dto) {
         if(dto==null) return dto;
-        class BytesHolder implements Consumer<byte[]> {
-            byte[] b;
-            @Override public void accept(final byte[] b) { this.b = b; }
-        }
-        val bh = new BytesHolder();
-        write(dto, DataSink.ofByteArrayConsumer(bh));
-        return read(DataSource.ofBytes(bh.b));
+        val bytesHolder = new ArrayList<byte[]>(1);
+        write(dto, DataSink.ofByteArrayConsumer(bytesHolder::add));
+        return read(DataSource.ofBytes(bytesHolder.get(0)));
     }
 
     // -- DEBUG
diff --git a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/_testing/MetaModelContext_forTesting.java b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/_testing/MetaModelContext_forTesting.java
index 23205ff485..3d292eb612 100644
--- a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/_testing/MetaModelContext_forTesting.java
+++ b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/_testing/MetaModelContext_forTesting.java
@@ -436,7 +436,7 @@ implements MetaModelContext {
         return getSingletonProviders().stream()
                 .filter(provider->provider.isCandidateFor(MenuBarsService.class))
                 .findFirst()
-                .map(provider->(MenuBarsService)provider.getInstance().getFirstOrFail())
+                .map(provider->(MenuBarsService)provider.getInstance().getFirstElseFail())
                 .orElseGet(MenuBarsService::forTesting);
     }
 
diff --git a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/_testing/ServiceRegistry_forTesting.java b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/_testing/ServiceRegistry_forTesting.java
index abaa64ada1..b229b47389 100644
--- a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/_testing/ServiceRegistry_forTesting.java
+++ b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/_testing/ServiceRegistry_forTesting.java
@@ -68,7 +68,7 @@ class ServiceRegistry_forTesting implements ServiceRegistry {
 
         Optional<T> match = streamBeans()
                 .filter(beanAdapter->type.isAssignableFrom(beanAdapter.getBeanClass()))
-                .map(beanAdapter->beanAdapter.getInstance().getFirstOrFail())
+                .map(beanAdapter->beanAdapter.getInstance().getFirstElseFail())
                 .map(_Casts::<T>uncheckedCast)
                 .findFirst();
 
diff --git a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facetapi/FacetRanking.java b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facetapi/FacetRanking.java
index b67f2404de..09da906811 100644
--- a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facetapi/FacetRanking.java
+++ b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facetapi/FacetRanking.java
@@ -273,7 +273,7 @@ public final class FacetRanking {
 
         if(topRankingFacets.isCardinalityMultiple()) {
 
-            val firstOfTopRanking = topRankingFacets.getFirstOrFail();
+            val firstOfTopRanking = topRankingFacets.getFirstElseFail();
 
             topRankingFacets
             .stream()
diff --git a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/ImperativeAspect.java b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/ImperativeAspect.java
index 7208504244..93dd82b1c6 100644
--- a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/ImperativeAspect.java
+++ b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/ImperativeAspect.java
@@ -57,7 +57,7 @@ public class ImperativeAspect {
     }
 
     public Object invokeSingleMethod(final ManagedObject domainObject) {
-        val method = methods.getFirstOrFail();
+        val method = methods.getFirstElseFail();
         final Object returnValue = MmInvokeUtil.invoke(method, domainObject);
         return returnValue;
     }
diff --git a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventAbstract.java b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventAbstract.java
index 9f351ea9ca..2510bed6fe 100644
--- a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventAbstract.java
@@ -126,7 +126,7 @@ implements ImperativeFacet {
         _Assert.assertEquals(owningAction.getParameterCount(), argumentAdapters.size(),
                 "action's parameter count and provided argument count must match");
 
-        val method = methods.getFirstOrFail();
+        val method = methods.getFirstElseFail();
 
         val resultAdapter = getMemberExecutor()
                 .invokeAction(
@@ -145,7 +145,7 @@ implements ImperativeFacet {
             final Can<ManagedObject> arguments)
                     throws IllegalAccessException, InvocationTargetException {
 
-        val method = methods.getFirstOrFail();
+        val method = methods.getFirstElseFail();
 
         final Object[] executionParameters = MmUnwrapUtil.multipleAsArray(arguments);
         final Object targetPojo = MmUnwrapUtil.single(head.getTarget());
diff --git a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/actions/validate/method/ActionParameterValidationFacetViaMethod.java b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/actions/validate/method/ActionParameterValidationFacetViaMethod.java
index 6200ec6d67..cc4b206fe3 100644
--- a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/actions/validate/method/ActionParameterValidationFacetViaMethod.java
+++ b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/actions/validate/method/ActionParameterValidationFacetViaMethod.java
@@ -58,7 +58,7 @@ implements ImperativeFacet {
 
     @Override
     public String invalidReason(final ManagedObject owningAdapter, final ManagedObject proposedArgumentAdapter) {
-        val method = methods.getFirstOrFail();
+        val method = methods.getFirstElseFail();
         final Object returnValue = MmInvokeUtil.invoke(method, owningAdapter, proposedArgumentAdapter);
         if(returnValue instanceof String) {
             return (String) returnValue;
diff --git a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/actions/validate/method/ActionValidationFacetViaMethod.java b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/actions/validate/method/ActionValidationFacetViaMethod.java
index e507cf13c2..5ac78eb0c3 100644
--- a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/actions/validate/method/ActionValidationFacetViaMethod.java
+++ b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/actions/validate/method/ActionValidationFacetViaMethod.java
@@ -63,7 +63,7 @@ implements ImperativeFacet {
     @Override
     public String invalidReason(final ManagedObject owningAdapter, final Can<ManagedObject> proposedArgumentAdapters) {
 
-        val method = methods.getFirstOrFail();
+        val method = methods.getFirstElseFail();
         final Object returnValue = patConstructor.isPresent()
                 ? MmInvokeUtil.invokeWithPAT(patConstructor.get(), method, owningAdapter, proposedArgumentAdapters)
                 : MmInvokeUtil.invoke(method, owningAdapter, proposedArgumentAdapters);
diff --git a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/collections/accessor/CollectionAccessorFacetViaAccessor.java b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/collections/accessor/CollectionAccessorFacetViaAccessor.java
index 18d5ac1a24..095b6cfe44 100644
--- a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/collections/accessor/CollectionAccessorFacetViaAccessor.java
+++ b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/collections/accessor/CollectionAccessorFacetViaAccessor.java
@@ -59,7 +59,7 @@ implements ImperativeFacet {
             final ManagedObject owningAdapter,
             final InteractionInitiatedBy interactionInitiatedBy) {
 
-        val method = methods.getFirstOrFail();
+        val method = methods.getFirstElseFail();
         final Object collectionOrArray = MmInvokeUtil.invoke(method, owningAdapter);
         if(collectionOrArray == null) {
             return null;
diff --git a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/members/disabled/method/DisableForContextFacetViaMethod.java b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/members/disabled/method/DisableForContextFacetViaMethod.java
index a067565d19..5f813413bb 100644
--- a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/members/disabled/method/DisableForContextFacetViaMethod.java
+++ b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/members/disabled/method/DisableForContextFacetViaMethod.java
@@ -63,7 +63,7 @@ implements ImperativeFacet {
         if (target == null) {
             return null;
         }
-        val method = methods.getFirstOrFail();
+        val method = methods.getFirstElseFail();
         final Object returnValue = MmInvokeUtil.invokeAutofit(method, target);
         if(returnValue instanceof String) {
             return (String) returnValue;
diff --git a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/members/hidden/method/HideForContextFacetViaMethod.java b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/members/hidden/method/HideForContextFacetViaMethod.java
index 6f961dd0e9..5a495a0cce 100644
--- a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/members/hidden/method/HideForContextFacetViaMethod.java
+++ b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/members/hidden/method/HideForContextFacetViaMethod.java
@@ -54,7 +54,7 @@ implements ImperativeFacet {
         if (target == null) {
             return null;
         }
-        val method = methods.getFirstOrFail();
+        val method = methods.getFirstElseFail();
         final Boolean isHidden = (Boolean) MmInvokeUtil.invokeAutofit(method, target);
         return isHidden.booleanValue() ? "Hidden" : null;
     }
diff --git a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethod.java b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethod.java
index 1daa7e866f..e624090786 100644
--- a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethod.java
+++ b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/param/autocomplete/method/ActionParameterAutoCompleteFacetViaMethod.java
@@ -81,7 +81,7 @@ implements ImperativeFacet {
             final String searchArg,
             final InteractionInitiatedBy interactionInitiatedBy) {
 
-        val method = methods.getFirstOrFail();
+        val method = methods.getFirstElseFail();
         final Object collectionOrArray = patConstructor.isPresent()
                 ? MmInvokeUtil.invokeWithPAT(
                         patConstructor.get(), method, owningAdapter, pendingArgs, Collections.singletonList(searchArg))
diff --git a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/param/choices/methodnum/ActionParameterChoicesFacetViaMethod.java b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/param/choices/methodnum/ActionParameterChoicesFacetViaMethod.java
index 2b137f70bd..f1efa533f0 100644
--- a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/param/choices/methodnum/ActionParameterChoicesFacetViaMethod.java
+++ b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/param/choices/methodnum/ActionParameterChoicesFacetViaMethod.java
@@ -72,7 +72,7 @@ implements ImperativeFacet {
             final Can<ManagedObject> pendingArgs,
             final InteractionInitiatedBy interactionInitiatedBy) {
 
-        val method = methods.getFirstOrFail();
+        val method = methods.getFirstElseFail();
         final Object collectionOrArray = patConstructor.isPresent()
                 ? MmInvokeUtil.invokeWithPAT(patConstructor.get(), method, head.getTarget(), pendingArgs)
                 : MmInvokeUtil.invokeAutofit(method, head.getTarget(), pendingArgs);
diff --git a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/param/defaults/methodnum/ActionParameterDefaultsFacetViaMethod.java b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/param/defaults/methodnum/ActionParameterDefaultsFacetViaMethod.java
index cf6d7d7bd4..9159d7192f 100644
--- a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/param/defaults/methodnum/ActionParameterDefaultsFacetViaMethod.java
+++ b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/param/defaults/methodnum/ActionParameterDefaultsFacetViaMethod.java
@@ -71,7 +71,7 @@ implements ImperativeFacet {
     @Override
     public Can<ManagedObject> getDefault(@NonNull final ParameterNegotiationModel pendingArgs) {
 
-        val method = methods.getFirstOrFail();
+        val method = methods.getFirstElseFail();
         val managedParam = pendingArgs.getParamModels().getElseFail(paramNum);
 
         // call with args: defaultNAct(X x, Y y, ...)
diff --git a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/param/disable/method/ActionParameterDisabledFacetViaMethod.java b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/param/disable/method/ActionParameterDisabledFacetViaMethod.java
index b0a5beeb9e..cbf6159ede 100644
--- a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/param/disable/method/ActionParameterDisabledFacetViaMethod.java
+++ b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/param/disable/method/ActionParameterDisabledFacetViaMethod.java
@@ -65,7 +65,7 @@ implements ImperativeFacet {
             final ManagedObject owningAdapter,
             final Can<ManagedObject> pendingArgs) {
 
-        val method = methods.getFirstOrFail();
+        val method = methods.getFirstElseFail();
         final Object returnValue = patConstructor.isPresent()
                 ? MmInvokeUtil.invokeWithPAT(patConstructor.get(), method, owningAdapter, pendingArgs)
                 : MmInvokeUtil.invokeAutofit(method, owningAdapter, pendingArgs);
diff --git a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/param/hide/method/ActionParameterHiddenFacetViaMethod.java b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/param/hide/method/ActionParameterHiddenFacetViaMethod.java
index 5799e2725d..335943f642 100644
--- a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/param/hide/method/ActionParameterHiddenFacetViaMethod.java
+++ b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/param/hide/method/ActionParameterHiddenFacetViaMethod.java
@@ -62,7 +62,7 @@ implements ImperativeFacet {
             final ManagedObject owningAdapter,
             final Can<ManagedObject> argumentAdapters) {
 
-        val method = methods.getFirstOrFail();
+        val method = methods.getFirstElseFail();
         final Object returnValue = patConstructor.isPresent()
                 ? MmInvokeUtil.invokeWithPAT(patConstructor.get(), method, owningAdapter, argumentAdapters)
                 : MmInvokeUtil.invokeAutofit(method, owningAdapter, argumentAdapters);
diff --git a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/param/validate/method/ActionParameterValidationFacetViaMethod.java b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/param/validate/method/ActionParameterValidationFacetViaMethod.java
index 91c0babe8e..d626f12bc1 100644
--- a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/param/validate/method/ActionParameterValidationFacetViaMethod.java
+++ b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/param/validate/method/ActionParameterValidationFacetViaMethod.java
@@ -66,7 +66,7 @@ implements ImperativeFacet {
             final Can<ManagedObject> pendingArgs,
             final ManagedObject proposedArgument) {
 
-        val method = methods.getFirstOrFail();
+        val method = methods.getFirstElseFail();
         final Object returnValue = patConstructor.isPresent()
                 ? MmInvokeUtil.invokeWithPAT(patConstructor.get(), method, owningAdapter, pendingArgs)
                 : MmInvokeUtil.invoke(method, owningAdapter, proposedArgument);
diff --git a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/properties/accessor/PropertyAccessorFacetViaAccessor.java b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/properties/accessor/PropertyAccessorFacetViaAccessor.java
index 895c2134cf..ece1d08400 100644
--- a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/properties/accessor/PropertyAccessorFacetViaAccessor.java
+++ b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/properties/accessor/PropertyAccessorFacetViaAccessor.java
@@ -60,7 +60,7 @@ implements ImperativeFacet {
     public Object getProperty(
             final ManagedObject owningAdapter,
             final InteractionInitiatedBy interactionInitiatedBy) {
-        val method = methods.getFirstOrFail();
+        val method = methods.getFirstElseFail();
         final Object referencedObject = MmInvokeUtil.invoke(method, owningAdapter);
 
         if(referencedObject == null) {
diff --git a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/properties/autocomplete/method/PropertyAutoCompleteFacetMethod.java b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/properties/autocomplete/method/PropertyAutoCompleteFacetMethod.java
index 9439c27eaf..4eacf749d4 100644
--- a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/properties/autocomplete/method/PropertyAutoCompleteFacetMethod.java
+++ b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/properties/autocomplete/method/PropertyAutoCompleteFacetMethod.java
@@ -69,7 +69,7 @@ implements ImperativeFacet {
             final String searchArg,
             final InteractionInitiatedBy interactionInitiatedBy) {
 
-        val method = methods.getFirstOrFail();
+        val method = methods.getFirstElseFail();
         final Object collectionOrArray = MmInvokeUtil.invoke(method, owningAdapter, searchArg);
         if (collectionOrArray == null) {
             return null;
diff --git a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/properties/choices/method/PropertyChoicesFacetViaMethod.java b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/properties/choices/method/PropertyChoicesFacetViaMethod.java
index 90e19a9889..1e2f029630 100644
--- a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/properties/choices/method/PropertyChoicesFacetViaMethod.java
+++ b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/properties/choices/method/PropertyChoicesFacetViaMethod.java
@@ -62,7 +62,7 @@ implements ImperativeFacet {
             final ManagedObject owningAdapter,
             final InteractionInitiatedBy interactionInitiatedBy) {
 
-        val method = methods.getFirstOrFail();
+        val method = methods.getFirstElseFail();
         val elementSpec = ((FacetedMethod) getFacetHolder()).getElementSpecification();
         val optionPojos = MmInvokeUtil.invoke(method, owningAdapter);
         val visibleChoices = ManagedObjects
diff --git a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/properties/defaults/method/PropertyDefaultFacetViaMethod.java b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/properties/defaults/method/PropertyDefaultFacetViaMethod.java
index 1f3a3c916e..ee12e25ccc 100644
--- a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/properties/defaults/method/PropertyDefaultFacetViaMethod.java
+++ b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/properties/defaults/method/PropertyDefaultFacetViaMethod.java
@@ -53,7 +53,7 @@ implements ImperativeFacet {
 
     @Override
     public ManagedObject getDefault(final ManagedObject owningAdapter) {
-        val method = methods.getFirstOrFail();
+        val method = methods.getFirstElseFail();
         final Object result = MmInvokeUtil.invoke(method, owningAdapter);
         if (result == null) {
             return null;
diff --git a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/properties/update/clear/PropertyClearFacetViaClearMethod.java b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/properties/update/clear/PropertyClearFacetViaClearMethod.java
index cc498372a2..87f2166e85 100644
--- a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/properties/update/clear/PropertyClearFacetViaClearMethod.java
+++ b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/properties/update/clear/PropertyClearFacetViaClearMethod.java
@@ -54,7 +54,7 @@ implements ImperativeFacet {
             final OneToOneAssociation owningProperty,
             final ManagedObject targetAdapter,
             final InteractionInitiatedBy interactionInitiatedBy) {
-        val method = methods.getFirstOrFail();
+        val method = methods.getFirstElseFail();
         MmInvokeUtil.invoke(method, targetAdapter);
         return targetAdapter;
     }
diff --git a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/properties/update/clear/PropertyClearFacetViaSetterMethod.java b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/properties/update/clear/PropertyClearFacetViaSetterMethod.java
index ca074bb5cc..8037f55954 100644
--- a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/properties/update/clear/PropertyClearFacetViaSetterMethod.java
+++ b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/properties/update/clear/PropertyClearFacetViaSetterMethod.java
@@ -55,7 +55,7 @@ implements ImperativeFacet {
             final ManagedObject targetAdapter,
             final InteractionInitiatedBy interactionInitiatedBy) {
 
-        val method = methods.getFirstOrFail();
+        val method = methods.getFirstElseFail();
         MmInvokeUtil.invoke(method, targetAdapter);
         return targetAdapter;
     }
diff --git a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/properties/update/init/PropertyInitializationFacetViaSetterMethod.java b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/properties/update/init/PropertyInitializationFacetViaSetterMethod.java
index ee113af5c7..722eeb492a 100644
--- a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/properties/update/init/PropertyInitializationFacetViaSetterMethod.java
+++ b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/properties/update/init/PropertyInitializationFacetViaSetterMethod.java
@@ -51,7 +51,7 @@ implements ImperativeFacet {
 
     @Override
     public void initProperty(final ManagedObject owningAdapter, final ManagedObject initialAdapter) {
-        val method = methods.getFirstOrFail();
+        val method = methods.getFirstElseFail();
         MmInvokeUtil.invoke(method, owningAdapter, initialAdapter);
     }
 
diff --git a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/properties/update/modify/PropertySetterFacetViaSetterMethod.java b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/properties/update/modify/PropertySetterFacetViaSetterMethod.java
index c3781a8c59..3eeb8834fc 100644
--- a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/properties/update/modify/PropertySetterFacetViaSetterMethod.java
+++ b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/facets/properties/update/modify/PropertySetterFacetViaSetterMethod.java
@@ -56,7 +56,7 @@ implements ImperativeFacet {
             final ManagedObject valueAdapter,
             final InteractionInitiatedBy interactionInitiatedBy) {
 
-        val method = methods.getFirstOrFail();
+        val method = methods.getFirstElseFail();
         MmInvokeUtil.invoke(method, targetAdapter, valueAdapter);
         return targetAdapter;
     }
diff --git a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/services/layout/LayoutServiceDefault.java b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/services/layout/LayoutServiceDefault.java
index e9e2893e30..5958f4dd78 100644
--- a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/services/layout/LayoutServiceDefault.java
+++ b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/services/layout/LayoutServiceDefault.java
@@ -140,7 +140,7 @@ public class LayoutServiceDefault implements LayoutService {
         final String fqn = objectSpec.getFullIdentifier();
         return fqn.replace(".", File.separator)
                 + ".layout."
-                + format.getProposedFileExtensions().getFirstOrFail();
+                + format.getProposedFileExtensions().getFirstElseFail();
     }
 
 }
diff --git a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/services/metamodel/DomainMemberDefault.java b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/services/metamodel/DomainMemberDefault.java
index ef2bff185e..faa221e415 100644
--- a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/services/metamodel/DomainMemberDefault.java
+++ b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/services/metamodel/DomainMemberDefault.java
@@ -273,7 +273,7 @@ public class DomainMemberDefault implements DomainMember {
         }
         if (facet instanceof ImperativeFacet) {
             ImperativeFacet imperativeFacet = (ImperativeFacet) facet;
-            return imperativeFacet.getMethods().getFirstOrFail().getName();
+            return imperativeFacet.getMethods().getFirstElseFail().getName();
         }
         final String name = facet.getClass().getSimpleName();
         if (ignore(name)) {
diff --git a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/specloader/validator/MetaModelValidatorForConflictingOptionality.java b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/specloader/validator/MetaModelValidatorForConflictingOptionality.java
index b2f6a81d00..78e35315ef 100644
--- a/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/specloader/validator/MetaModelValidatorForConflictingOptionality.java
+++ b/core/metamodel/src/main/java/org/apache/causeway/core/metamodel/specloader/validator/MetaModelValidatorForConflictingOptionality.java
@@ -65,7 +65,7 @@ public class MetaModelValidatorForConflictingOptionality {
                 facetRanking.getTopPrecedence().orElse(null));
 
         val topRankingFacets = facetRanking.getTopRank(mandatoryFacet.facetType());
-        val firstOfTopRanking = topRankingFacets.getFirstOrFail();
+        val firstOfTopRanking = topRankingFacets.getFirstElseFail();
 
         // the top ranking mandatory facets should semantically agree
 
diff --git a/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/actions/ActionMethodsFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/actions/ActionMethodsFacetFactoryTest.java
index c6562c300d..9fb95934b6 100644
--- a/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/actions/ActionMethodsFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/actions/ActionMethodsFacetFactoryTest.java
@@ -87,7 +87,7 @@ class ActionMethodsFacetFactoryTest extends AbstractFacetFactoryTest {
         assertNotNull(facet);
         assertTrue(facet instanceof ActionValidationFacetViaMethod);
         final ActionValidationFacetViaMethod actionValidationFacetViaMethod = (ActionValidationFacetViaMethod) facet;
-        assertEquals(validateMethod, actionValidationFacetViaMethod.getMethods().getFirstOrFail());
+        assertEquals(validateMethod, actionValidationFacetViaMethod.getMethods().getFirstElseFail());
 
         assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(validateMethod));
     }
@@ -115,7 +115,7 @@ class ActionMethodsFacetFactoryTest extends AbstractFacetFactoryTest {
         assertNotNull(facet);
         assertTrue(facet instanceof ActionValidationFacetViaMethod);
         final ActionValidationFacetViaMethod actionValidationFacetViaMethod = (ActionValidationFacetViaMethod) facet;
-        assertEquals(validateMethod, actionValidationFacetViaMethod.getMethods().getFirstOrFail());
+        assertEquals(validateMethod, actionValidationFacetViaMethod.getMethods().getFirstElseFail());
 
         assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(validateMethod));
     }
@@ -153,7 +153,7 @@ class ActionMethodsFacetFactoryTest extends AbstractFacetFactoryTest {
         assertNotNull(facet0);
         assertTrue(facet0 instanceof ActionParameterDefaultsFacetViaMethod);
         final ActionParameterDefaultsFacetViaMethod actionDefaultFacetViaMethod0 = (ActionParameterDefaultsFacetViaMethod) facet0;
-        assertEquals(default0Method, actionDefaultFacetViaMethod0.getMethods().getFirstOrFail());
+        assertEquals(default0Method, actionDefaultFacetViaMethod0.getMethods().getFirstElseFail());
 
         assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(default0Method));
 
@@ -161,7 +161,7 @@ class ActionMethodsFacetFactoryTest extends AbstractFacetFactoryTest {
         assertNotNull(facet1);
         assertTrue(facet1 instanceof ActionParameterDefaultsFacetViaMethod);
         final ActionParameterDefaultsFacetViaMethod actionDefaultFacetViaMethod1 = (ActionParameterDefaultsFacetViaMethod) facet1;
-        assertEquals(default1Method, actionDefaultFacetViaMethod1.getMethods().getFirstOrFail());
+        assertEquals(default1Method, actionDefaultFacetViaMethod1.getMethods().getFirstElseFail());
 
         assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(default1Method));
 
@@ -206,7 +206,7 @@ class ActionMethodsFacetFactoryTest extends AbstractFacetFactoryTest {
         assertNotNull(facet0);
         assertTrue(facet0 instanceof ActionParameterChoicesFacetViaMethod);
         final ActionParameterChoicesFacetViaMethod actionChoicesFacetViaMethod0 = (ActionParameterChoicesFacetViaMethod) facet0;
-        assertEquals(choices0Method, actionChoicesFacetViaMethod0.getMethods().getFirstOrFail());
+        assertEquals(choices0Method, actionChoicesFacetViaMethod0.getMethods().getFirstElseFail());
 
         assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(choices0Method));
 
@@ -214,7 +214,7 @@ class ActionMethodsFacetFactoryTest extends AbstractFacetFactoryTest {
         assertNotNull(facet1);
         assertTrue(facet1 instanceof ActionParameterChoicesFacetViaMethod);
         final ActionParameterChoicesFacetViaMethod actionChoicesFacetViaMethod1 = (ActionParameterChoicesFacetViaMethod) facet1;
-        assertEquals(choices1Method, actionChoicesFacetViaMethod1.getMethods().getFirstOrFail());
+        assertEquals(choices1Method, actionChoicesFacetViaMethod1.getMethods().getFirstElseFail());
 
         assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(choices1Method));
 
@@ -222,7 +222,7 @@ class ActionMethodsFacetFactoryTest extends AbstractFacetFactoryTest {
         assertNotNull(facet2);
         assertTrue(facet2 instanceof ActionParameterChoicesFacetViaMethod);
         final ActionParameterChoicesFacetViaMethod actionChoicesFacetViaMethod2 = (ActionParameterChoicesFacetViaMethod) facet2;
-        assertEquals(choices2Method, actionChoicesFacetViaMethod2.getMethods().getFirstOrFail());
+        assertEquals(choices2Method, actionChoicesFacetViaMethod2.getMethods().getFirstElseFail());
 
         assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(choices2Method));
 
@@ -256,7 +256,7 @@ class ActionMethodsFacetFactoryTest extends AbstractFacetFactoryTest {
         assertNotNull(facet0);
         assertTrue(facet0 instanceof ActionParameterAutoCompleteFacetViaMethod);
         final ActionParameterAutoCompleteFacetViaMethod actionAutoCompleteFacetViaMethod0 = (ActionParameterAutoCompleteFacetViaMethod) facet0;
-        assertEquals(autoComplete0Method, actionAutoCompleteFacetViaMethod0.getMethods().getFirstOrFail());
+        assertEquals(autoComplete0Method, actionAutoCompleteFacetViaMethod0.getMethods().getFirstElseFail());
 
         assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(autoComplete0Method));
     }
diff --git a/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest_ActionInvocation.java b/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest_ActionInvocation.java
index 02ee1823bf..87792fcb9f 100644
--- a/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest_ActionInvocation.java
+++ b/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest_ActionInvocation.java
@@ -84,7 +84,7 @@ extends AbstractFacetFactoryTest {
         assertNotNull(facet);
         assertTrue(facet instanceof ActionInvocationFacetForDomainEventAbstract);
         final ActionInvocationFacetForDomainEventAbstract actionInvocationFacetViaMethod = (ActionInvocationFacetForDomainEventAbstract) facet;
-        assertEquals(actionMethod, actionInvocationFacetViaMethod.getMethods().getFirstOrFail());
+        assertEquals(actionMethod, actionInvocationFacetViaMethod.getMethods().getFirstElseFail());
 
         assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(actionMethod));
     }
@@ -221,18 +221,18 @@ extends AbstractFacetFactoryTest {
         assertNotNull(facet1);
         assertTrue(facet1 instanceof ActionParameterChoicesFacetViaMethod);
         final ActionParameterChoicesFacetViaMethod actionChoicesFacetViaMethod0 = (ActionParameterChoicesFacetViaMethod) facet1;
-        assertEquals(choices0Method, actionChoicesFacetViaMethod0.getMethods().getFirstOrFail());
+        assertEquals(choices0Method, actionChoicesFacetViaMethod0.getMethods().getFirstElseFail());
 
         final Facet facet2 = facetHolderWithParms.getParameters().getElseFail(1).getFacet(ActionParameterChoicesFacet.class);
         assertNotNull(facet2);
         assertTrue(facet2 instanceof ActionParameterChoicesFacetViaMethod);
         final ActionParameterChoicesFacetViaMethod actionChoicesFacetViaMethod1 = (ActionParameterChoicesFacetViaMethod) facet2;
-        assertEquals(choices1Method, actionChoicesFacetViaMethod1.getMethods().getFirstOrFail());
+        assertEquals(choices1Method, actionChoicesFacetViaMethod1.getMethods().getFirstElseFail());
 
         final Facet facet3 = facetHolderWithParms.getFacet(DisableForContextFacet.class);
         assertNotNull(facet3);
         assertTrue(facet3 instanceof DisableForContextFacetViaMethod);
         final DisableForContextFacetViaMethod disableFacetViaMethod = (DisableForContextFacetViaMethod) facet3;
-        assertEquals(disableMethod, disableFacetViaMethod.getMethods().getFirstOrFail());
+        assertEquals(disableMethod, disableFacetViaMethod.getMethods().getFirstElseFail());
     }
 }
diff --git a/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/collections/CollectionFieldMethodsFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/collections/CollectionFieldMethodsFacetFactoryTest.java
index 9acd982f47..81a9082fba 100644
--- a/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/collections/CollectionFieldMethodsFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/collections/CollectionFieldMethodsFacetFactoryTest.java
@@ -62,7 +62,7 @@ extends AbstractFacetFactoryTest {
         assertNotNull(facet);
         assertTrue(facet instanceof CollectionAccessorFacetViaAccessor);
         final CollectionAccessorFacetViaAccessor propertyAccessorFacetViaAccessor = (CollectionAccessorFacetViaAccessor) facet;
-        assertEquals(collectionAccessorMethod, propertyAccessorFacetViaAccessor.getMethods().getFirstOrFail());
+        assertEquals(collectionAccessorMethod, propertyAccessorFacetViaAccessor.getMethods().getFirstElseFail());
 
         assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(collectionAccessorMethod));
     }
@@ -87,7 +87,7 @@ extends AbstractFacetFactoryTest {
         assertNotNull(facet);
         assertTrue(facet instanceof CollectionAccessorFacetViaAccessor);
         final CollectionAccessorFacetViaAccessor propertyAccessorFacetViaAccessor = (CollectionAccessorFacetViaAccessor) facet;
-        assertEquals(collectionAccessorMethod, propertyAccessorFacetViaAccessor.getMethods().getFirstOrFail());
+        assertEquals(collectionAccessorMethod, propertyAccessorFacetViaAccessor.getMethods().getFirstElseFail());
 
         assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(collectionAccessorMethod));
     }
@@ -110,7 +110,7 @@ extends AbstractFacetFactoryTest {
         assertNotNull(facet);
         assertTrue(facet instanceof CollectionAccessorFacetViaAccessor);
         final CollectionAccessorFacetViaAccessor propertyAccessorFacetViaAccessor = (CollectionAccessorFacetViaAccessor) facet;
-        assertEquals(collectionAccessorMethod, propertyAccessorFacetViaAccessor.getMethods().getFirstOrFail());
+        assertEquals(collectionAccessorMethod, propertyAccessorFacetViaAccessor.getMethods().getFirstElseFail());
 
         assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(collectionAccessorMethod));
     }
@@ -133,7 +133,7 @@ extends AbstractFacetFactoryTest {
         assertNotNull(facet);
         assertTrue(facet instanceof CollectionAccessorFacetViaAccessor);
         final CollectionAccessorFacetViaAccessor propertyAccessorFacetViaAccessor = (CollectionAccessorFacetViaAccessor) facet;
-        assertEquals(collectionAccessorMethod, propertyAccessorFacetViaAccessor.getMethods().getFirstOrFail());
+        assertEquals(collectionAccessorMethod, propertyAccessorFacetViaAccessor.getMethods().getFirstElseFail());
 
         assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(collectionAccessorMethod));
     }
@@ -159,7 +159,7 @@ extends AbstractFacetFactoryTest {
         assertNotNull(facet);
         assertTrue(facet instanceof CollectionAccessorFacetViaAccessor);
         final CollectionAccessorFacetViaAccessor propertyAccessorFacetViaAccessor = (CollectionAccessorFacetViaAccessor) facet;
-        assertEquals(collectionAccessorMethod, propertyAccessorFacetViaAccessor.getMethods().getFirstOrFail());
+        assertEquals(collectionAccessorMethod, propertyAccessorFacetViaAccessor.getMethods().getFirstElseFail());
 
         assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(collectionAccessorMethod));
     }
@@ -189,7 +189,7 @@ extends AbstractFacetFactoryTest {
         assertNotNull(facet);
         assertTrue(facet instanceof CollectionAccessorFacetViaAccessor);
         final CollectionAccessorFacetViaAccessor collectionAccessorFacetViaMethod = (CollectionAccessorFacetViaAccessor) facet;
-        assertEquals(collectionAccessorMethod, collectionAccessorFacetViaMethod.getMethods().getFirstOrFail());
+        assertEquals(collectionAccessorMethod, collectionAccessorFacetViaMethod.getMethods().getFirstElseFail());
     }
 
     static class Order {
diff --git a/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/object/ident/title/TitleFacetViaMethodsFactoryTest.java b/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/object/ident/title/TitleFacetViaMethodsFactoryTest.java
index 2134d3cd73..c214e71c64 100644
--- a/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/object/ident/title/TitleFacetViaMethodsFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/object/ident/title/TitleFacetViaMethodsFactoryTest.java
@@ -63,7 +63,7 @@ extends ObjectSupportFacetFactoryTestAbstract {
         assertNotNull(facet);
         assertTrue(facet instanceof TitleFacetFromToStringMethod);
         final TitleFacetFromToStringMethod titleFacetViaTitleMethod = (TitleFacetFromToStringMethod) facet;
-        assertEquals(toStringMethod, titleFacetViaTitleMethod.getMethods().getFirstOrFail());
+        assertEquals(toStringMethod, titleFacetViaTitleMethod.getMethods().getFirstElseFail());
 
         assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(toStringMethod));
     }
diff --git a/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/properties/PropertyMethodsFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/properties/PropertyMethodsFacetFactoryTest.java
index d096a89d50..8e231d851f 100644
--- a/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/properties/PropertyMethodsFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/facets/properties/PropertyMethodsFacetFactoryTest.java
@@ -87,7 +87,7 @@ extends AbstractFacetFactoryTest {
         assertNotNull(facet);
         assertTrue(facet instanceof PropertyAccessorFacetViaAccessor);
         final PropertyAccessorFacetViaAccessor propertyAccessorFacetViaAccessor = (PropertyAccessorFacetViaAccessor) facet;
-        assertEquals(propertyAccessorMethod, propertyAccessorFacetViaAccessor.getMethods().getFirstOrFail());
+        assertEquals(propertyAccessorMethod, propertyAccessorFacetViaAccessor.getMethods().getFirstElseFail());
 
         assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(propertyAccessorMethod));
     }
@@ -115,7 +115,7 @@ extends AbstractFacetFactoryTest {
         assertNotNull(facet);
         assertTrue(facet instanceof PropertySetterFacetViaSetterMethod);
         final PropertySetterFacetViaSetterMethod propertySetterFacet = (PropertySetterFacetViaSetterMethod) facet;
-        assertEquals(propertySetterMethod, propertySetterFacet.getMethods().getFirstOrFail());
+        assertEquals(propertySetterMethod, propertySetterFacet.getMethods().getFirstElseFail());
 
         assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(propertySetterMethod));
     }
@@ -143,7 +143,7 @@ extends AbstractFacetFactoryTest {
         assertNotNull(facet);
         assertTrue(facet instanceof PropertyInitializationFacet);
         final PropertyInitializationFacetViaSetterMethod propertySetterFacet = (PropertyInitializationFacetViaSetterMethod) facet;
-        assertEquals(propertySetterMethod, propertySetterFacet.getMethods().getFirstOrFail());
+        assertEquals(propertySetterMethod, propertySetterFacet.getMethods().getFirstElseFail());
 
         assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(propertySetterMethod));
     }
@@ -193,7 +193,7 @@ extends AbstractFacetFactoryTest {
         assertNotNull(facet);
         assertTrue(facet instanceof PropertyClearFacetViaSetterMethod);
         final PropertyClearFacetViaSetterMethod propertyClearFacet = (PropertyClearFacetViaSetterMethod) facet;
-        assertEquals(propertySetterMethod, propertyClearFacet.getMethods().getFirstOrFail());
+        assertEquals(propertySetterMethod, propertyClearFacet.getMethods().getFirstElseFail());
     }
 
     public void testChoicesFacetFoundAndMethodRemoved() {
@@ -220,7 +220,7 @@ extends AbstractFacetFactoryTest {
         assertNotNull(facet);
         assertTrue(facet instanceof PropertyChoicesFacetViaMethod);
         final PropertyChoicesFacetViaMethod propertyChoicesFacet = (PropertyChoicesFacetViaMethod) facet;
-        assertEquals(propertyChoicesMethod, propertyChoicesFacet.getMethods().getFirstOrFail());
+        assertEquals(propertyChoicesMethod, propertyChoicesFacet.getMethods().getFirstElseFail());
 
         assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(propertyChoicesMethod));
     }
@@ -250,7 +250,7 @@ extends AbstractFacetFactoryTest {
         assertNotNull(facet);
         assertTrue(facet instanceof PropertyAutoCompleteFacetMethod);
         final PropertyAutoCompleteFacetMethod propertyAutoCompleteFacet = (PropertyAutoCompleteFacetMethod) facet;
-        assertEquals(propertyAutoCompleteMethod, propertyAutoCompleteFacet.getMethods().getFirstOrFail());
+        assertEquals(propertyAutoCompleteMethod, propertyAutoCompleteFacet.getMethods().getFirstElseFail());
 
         assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(propertyAutoCompleteMethod));
     }
@@ -279,7 +279,7 @@ extends AbstractFacetFactoryTest {
         assertNotNull(facet);
         assertTrue(facet instanceof PropertyDefaultFacetViaMethod);
         final PropertyDefaultFacetViaMethod propertyDefaultFacet = (PropertyDefaultFacetViaMethod) facet;
-        assertEquals(propertyDefaultMethod, propertyDefaultFacet.getMethods().getFirstOrFail());
+        assertEquals(propertyDefaultMethod, propertyDefaultFacet.getMethods().getFirstElseFail());
 
         assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(propertyDefaultMethod));
     }
@@ -308,7 +308,7 @@ extends AbstractFacetFactoryTest {
         assertNotNull(facet);
         assertTrue(facet instanceof PropertyValidateFacetViaMethod);
         final PropertyValidateFacetViaMethod propertyValidateFacet = (PropertyValidateFacetViaMethod) facet;
-        assertEquals(propertyValidateMethod, propertyValidateFacet.getMethods().getFirstOrFail());
+        assertEquals(propertyValidateMethod, propertyValidateFacet.getMethods().getFirstElseFail());
 
         assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(propertyValidateMethod));
     }
@@ -337,7 +337,7 @@ extends AbstractFacetFactoryTest {
         assertNotNull(facet);
         assertTrue(facet instanceof DisableForContextFacetViaMethod);
         final DisableForContextFacetViaMethod disableForContextFacet = (DisableForContextFacetViaMethod) facet;
-        assertEquals(propertyDisableMethod, disableForContextFacet.getMethods().getFirstOrFail());
+        assertEquals(propertyDisableMethod, disableForContextFacet.getMethods().getFirstElseFail());
 
         assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(propertyDisableMethod));
     }
@@ -367,7 +367,7 @@ extends AbstractFacetFactoryTest {
         assertNotNull(facet);
         assertTrue(facet instanceof DisableForContextFacetViaMethod);
         final DisableForContextFacetViaMethod disableForContextFacet = (DisableForContextFacetViaMethod) facet;
-        assertEquals(propertyDisableMethod, disableForContextFacet.getMethods().getFirstOrFail());
+        assertEquals(propertyDisableMethod, disableForContextFacet.getMethods().getFirstElseFail());
 
         assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(propertyDisableMethod));
     }
@@ -396,7 +396,7 @@ extends AbstractFacetFactoryTest {
         assertNotNull(facet);
         assertTrue(facet instanceof HideForContextFacetViaMethod);
         final HideForContextFacetViaMethod hideForContextFacet = (HideForContextFacetViaMethod) facet;
-        assertEquals(propertyHideMethod, hideForContextFacet.getMethods().getFirstOrFail());
+        assertEquals(propertyHideMethod, hideForContextFacet.getMethods().getFirstElseFail());
 
         assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(propertyHideMethod));
     }
@@ -425,7 +425,7 @@ extends AbstractFacetFactoryTest {
         assertNotNull(facet);
         assertTrue(facet instanceof HideForContextFacetViaMethod);
         final HideForContextFacetViaMethod hideForContextFacet = (HideForContextFacetViaMethod) facet;
-        assertEquals(propertyHideMethod, hideForContextFacet.getMethods().getFirstOrFail());
+        assertEquals(propertyHideMethod, hideForContextFacet.getMethods().getFirstElseFail());
 
         assertTrue(methodRemover.getRemovedMethodMethodCalls().contains(propertyHideMethod));
     }
@@ -452,7 +452,7 @@ extends AbstractFacetFactoryTest {
         assertNotNull(facet);
         assertTrue(facet instanceof PropertyAccessorFacetViaAccessor);
         final PropertyAccessorFacetViaAccessor accessorFacet = (PropertyAccessorFacetViaAccessor) facet;
-        assertEquals(propertyAccessorMethod, accessorFacet.getMethods().getFirstOrFail());
+        assertEquals(propertyAccessorMethod, accessorFacet.getMethods().getFirstElseFail());
     }
 
     public void testPropertyFoundOnSuperclassButHelperMethodFoundOnSubclass() {
@@ -494,13 +494,13 @@ extends AbstractFacetFactoryTest {
         assertNotNull(facet);
         assertTrue(facet instanceof HideForContextFacetViaMethod);
         final HideForContextFacetViaMethod hideForContextFacet = (HideForContextFacetViaMethod) facet;
-        assertEquals(propertyHideMethod, hideForContextFacet.getMethods().getFirstOrFail());
+        assertEquals(propertyHideMethod, hideForContextFacet.getMethods().getFirstElseFail());
 
         final Facet facet2 = facetedMethod.getFacet(DisableForContextFacet.class);
         assertNotNull(facet2);
         assertTrue(facet2 instanceof DisableForContextFacetViaMethod);
         final DisableForContextFacetViaMethod disableForContextFacet = (DisableForContextFacetViaMethod) facet2;
-        assertEquals(propertyDisableMethod, disableForContextFacet.getMethods().getFirstOrFail());
+        assertEquals(propertyDisableMethod, disableForContextFacet.getMethods().getFirstElseFail());
     }
 
 
diff --git a/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/services/grid/GridLoadingTest.java b/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/services/grid/GridLoadingTest.java
index f772b65655..61e1059fd3 100644
--- a/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/services/grid/GridLoadingTest.java
+++ b/core/metamodel/src/test/java/org/apache/causeway/core/metamodel/services/grid/GridLoadingTest.java
@@ -101,7 +101,7 @@ extends MetaModelTestAbstract {
 
         // verify winning facet is the same object as the last one added from latest layout.xml reload,
         // to make sure we are not feed the winner from an outdated cache
-        assertSame(facetRanking.getWinnerNonEvent(MemberNamedFacet.class).get(), xmlFacetRank.getLastOrFail());
+        assertSame(facetRanking.getWinnerNonEvent(MemberNamedFacet.class).get(), xmlFacetRank.getLastElseFail());
 
     }
 
diff --git a/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/executor/_Xray.java b/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/executor/_Xray.java
index 969e697eb0..800b844558 100644
--- a/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/executor/_Xray.java
+++ b/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/executor/_Xray.java
@@ -96,8 +96,8 @@ final class _Xray {
 
                 sequenceData.alias("executor", "Member-\nExecutorService-\n(Default)");
 
-                val callee1 = handle.getCallees().getFirstOrFail();
-                val callee2 = handle.getCallees().getLastOrFail();
+                val callee1 = handle.getCallees().getFirstElseFail();
+                val callee2 = handle.getCallees().getLastElseFail();
 
                 sequenceData.enter(handle.getCaller(), callee1);
                 sequenceData.activate(callee1);
@@ -119,8 +119,8 @@ final class _Xray {
 
         handle.submit(sequenceData->{
 
-            val callee1 = handle.getCallees().getFirstOrFail();
-            val callee2 = handle.getCallees().getLastOrFail();
+            val callee1 = handle.getCallees().getFirstElseFail();
+            val callee2 = handle.getCallees().getLastElseFail();
 
             sequenceData.exit(callee2, callee1);
             sequenceData.deactivate(callee2);
diff --git a/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/publish/_Xray.java b/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/publish/_Xray.java
index 5a5dbc9472..edbd162bc2 100644
--- a/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/publish/_Xray.java
+++ b/core/runtimeservices/src/main/java/org/apache/causeway/core/runtimeservices/publish/_Xray.java
@@ -77,7 +77,7 @@ final class _Xray {
                     sequenceData.setConnectionLabelColor(Color.GRAY);
                 }
 
-                val callee = handle.getCallees().getFirstOrFail();
+                val callee = handle.getCallees().getFirstElseFail();
                 sequenceData.enter(handle.getCaller(), callee, enteringLabel);
                 sequenceData.activate(callee);
             });
@@ -120,7 +120,7 @@ final class _Xray {
                     sequenceData.setConnectionLabelColor(Color.GRAY);
                 }
 
-                val callee = handle.getCallees().getFirstOrFail();
+                val callee = handle.getCallees().getFirstElseFail();
                 sequenceData.enter(handle.getCaller(), callee, enteringLabel);
                 sequenceData.activate(callee);
             });
@@ -163,7 +163,7 @@ final class _Xray {
                     sequenceData.setConnectionLabelColor(Color.GRAY);
                 }
 
-                val callee = handle.getCallees().getFirstOrFail();
+                val callee = handle.getCallees().getFirstElseFail();
                 sequenceData.enter(handle.getCaller(), callee, enteringLabel);
                 sequenceData.activate(callee);
             });
@@ -206,7 +206,7 @@ final class _Xray {
                     sequenceData.setConnectionLabelColor(Color.GRAY);
                 }
 
-                val callee = handle.getCallees().getFirstOrFail();
+                val callee = handle.getCallees().getFirstElseFail();
                 sequenceData.enter(handle.getCaller(), callee, enteringLabel);
                 sequenceData.activate(callee);
             });
@@ -226,7 +226,7 @@ final class _Xray {
         }
 
         handle.submit(sequenceData->{
-            val callee = handle.getCallees().getFirstOrFail();
+            val callee = handle.getCallees().getFirstElseFail();
             sequenceData.exit(callee, handle.getCaller());
             sequenceData.deactivate(callee);
 
diff --git a/core/runtimeservices/src/test/java/org/apache/causeway/core/runtimeservices/menubars/bootstrap/MenuBarsServiceBSTest.java b/core/runtimeservices/src/test/java/org/apache/causeway/core/runtimeservices/menubars/bootstrap/MenuBarsServiceBSTest.java
index 12dc23c8b0..c9524deb5a 100644
--- a/core/runtimeservices/src/test/java/org/apache/causeway/core/runtimeservices/menubars/bootstrap/MenuBarsServiceBSTest.java
+++ b/core/runtimeservices/src/test/java/org/apache/causeway/core/runtimeservices/menubars/bootstrap/MenuBarsServiceBSTest.java
@@ -159,7 +159,7 @@ extends RuntimeServicesTestAbstract {
 
         // verify winning facet is the same object as the last one added from latest menubars.xml reload,
         // to make sure we are not feed the winner from an outdated cache
-        assertSame(facetRanking.getWinnerNonEvent(MemberNamedFacet.class).get(), xmlFacetRank.getLastOrFail());
+        assertSame(facetRanking.getWinnerNonEvent(MemberNamedFacet.class).get(), xmlFacetRank.getLastElseFail());
 
     }
 
diff --git a/persistence/commons/src/main/java/org/apache/causeway/persistence/jpa/integration/changetracking/_Xray.java b/persistence/commons/src/main/java/org/apache/causeway/persistence/jpa/integration/changetracking/_Xray.java
index 6684f40287..e6f3792e0d 100644
--- a/persistence/commons/src/main/java/org/apache/causeway/persistence/jpa/integration/changetracking/_Xray.java
+++ b/persistence/commons/src/main/java/org/apache/causeway/persistence/jpa/integration/changetracking/_Xray.java
@@ -59,7 +59,7 @@ final class _Xray {
                     sequenceData.setConnectionLabelColor(Color.GRAY);
                 }
 
-                val callee = handle.getCallees().getFirstOrFail();
+                val callee = handle.getCallees().getFirstElseFail();
                 sequenceData.enter(handle.getCaller(), callee, enteringLabel);
                 //sequenceData.activate(callee);
             });
@@ -120,7 +120,7 @@ final class _Xray {
 
                 sequenceData.alias("ec-tracker", "EntityChange-\nTracker-\n(Default)");
 
-                val callee = handle.getCallees().getFirstOrFail();
+                val callee = handle.getCallees().getFirstElseFail();
                 sequenceData.enter(handle.getCaller(), callee, enteringLabel);
                 //sequenceData.activate(callee);
             });
diff --git a/regressiontests/stable-domainmodel/src/test/java/org/apache/causeway/testdomain/domainmodel/DomainModelTest_usingGoodDomain.java b/regressiontests/stable-domainmodel/src/test/java/org/apache/causeway/testdomain/domainmodel/DomainModelTest_usingGoodDomain.java
index 58236d09c9..977f7ad33c 100644
--- a/regressiontests/stable-domainmodel/src/test/java/org/apache/causeway/testdomain/domainmodel/DomainModelTest_usingGoodDomain.java
+++ b/regressiontests/stable-domainmodel/src/test/java/org/apache/causeway/testdomain/domainmodel/DomainModelTest_usingGoodDomain.java
@@ -477,7 +477,7 @@ class DomainModelTest_usingGoodDomain {
         val spec = specificationLoader.specForTypeElseFail(ProperChoicesWhenChoicesFrom.class);
 
         val action = spec.getActionElseFail("appendACharacterToCandidates");
-        val param0 = action.getParameters().getFirstOrFail();
+        val param0 = action.getParameters().getFirstElseFail();
 
         assertEquals(
                 ActionParameterChoicesFacetFromChoicesFromFacet.class,
@@ -498,7 +498,7 @@ class DomainModelTest_usingGoodDomain {
         val spec = specificationLoader.specForTypeElseFail(ProperChoicesWhenActionHasParamSupportingMethodTypeOfString.class);
 
         val action = spec.getActionElseFail("remove");
-        val param0 = action.getParameters().getFirstOrFail();
+        val param0 = action.getParameters().getFirstElseFail();
 
         assertEquals(
                 ActionParameterChoicesFacetViaMethod.class,
@@ -514,7 +514,7 @@ class DomainModelTest_usingGoodDomain {
                 .specForTypeElseFail(ProperChoicesWhenActionHasParamSupportingMethodTypeOfReference.class);
 
         val action = spec.getActionElseFail("remove");
-        val param0 = action.getParameters().getFirstOrFail();
+        val param0 = action.getParameters().getFirstElseFail();
 
         assertEquals(
                 ActionParameterChoicesFacetViaMethod.class,
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/actionresponse/ActionResultResponseType.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/actionresponse/ActionResultResponseType.java
index 8a33444eae..744c0d06d0 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/actionresponse/ActionResultResponseType.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/actionresponse/ActionResultResponseType.java
@@ -317,7 +317,7 @@ public enum ActionResultResponseType {
             final int cardinality = unpacked.size();
             switch (cardinality) {
             case 1:
-                val firstElement = unpacked.getFirstOrFail();
+                val firstElement = unpacked.getFirstElseFail();
                 // recursively unwrap
                 return determineFor(firstElement, targetIfAny);
             default: