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/06/02 06:11:37 UTC
[isis] branch master updated: ISIS-3049: fixes prev. commit
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 13e29e3eb7 ISIS-3049: fixes prev. commit
13e29e3eb7 is described below
commit 13e29e3eb7e6b1daea62b45341003a56a0afea03
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu Jun 2 08:11:32 2022 +0200
ISIS-3049: fixes prev. commit
---
.../apache/isis/applib/services/bookmark/Bookmark.java | 9 ++++++---
.../apache/isis/applib/services/hint/HintIdProvider.java | 2 +-
.../isis/applib/services/bookmark/BookmarkTest.java | 15 +++++++++++++--
3 files changed, 20 insertions(+), 6 deletions(-)
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/bookmark/Bookmark.java b/api/applib/src/main/java/org/apache/isis/applib/services/bookmark/Bookmark.java
index 81ab96d2b9..f5bce4590a 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/bookmark/Bookmark.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/bookmark/Bookmark.java
@@ -118,14 +118,17 @@ public final class Bookmark implements Oid {
*/
public static Optional<Bookmark> parse(final @Nullable String str) {
- if(str==null) {
+ if(_Strings.isNullOrEmpty(str)) {
return Optional.empty();
}
val tokenizer = new StringTokenizer(str, SEPARATOR);
int tokenCount = tokenizer.countTokens();
if(tokenCount==1) {
- return Optional.of(Bookmark.emptyForLogicalTypeName(
- tokenizer.nextToken()));
+ return str.endsWith(SEPARATOR)
+ || str.startsWith(SEPARATOR)
+ ? Optional.empty() // invalid
+ : Optional.of(Bookmark.emptyForLogicalTypeName(
+ tokenizer.nextToken()));
}
if(tokenCount==2) {
return Optional.of(Bookmark.forLogicalTypeNameAndIdentifier(
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/hint/HintIdProvider.java b/api/applib/src/main/java/org/apache/isis/applib/services/hint/HintIdProvider.java
index d0e24c768b..f35d643a66 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/hint/HintIdProvider.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/hint/HintIdProvider.java
@@ -19,7 +19,7 @@
package org.apache.isis.applib.services.hint;
/**
- * Provides an SPI for view models to implement to represent
+ * Provides a SPI for view models to implement to represent
* their "logical" identity (stable even if the view model's state changes).
*
* <p>
diff --git a/api/applib/src/test/java/org/apache/isis/applib/services/bookmark/BookmarkTest.java b/api/applib/src/test/java/org/apache/isis/applib/services/bookmark/BookmarkTest.java
index fcbe901dc1..9319cac1e2 100644
--- a/api/applib/src/test/java/org/apache/isis/applib/services/bookmark/BookmarkTest.java
+++ b/api/applib/src/test/java/org/apache/isis/applib/services/bookmark/BookmarkTest.java
@@ -23,6 +23,7 @@ import java.util.Optional;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
import lombok.val;
@@ -39,17 +40,27 @@ class BookmarkTest {
}
@Test
- void shouldNotParse_whenNotAtLeast2Token() {
+ void shouldNotParse_whenNotAtLeast1TokenOrInvalid() {
assertEquals(Optional.empty(), Bookmark.parse(null));
assertEquals(Optional.empty(), Bookmark.parse(""));
- assertEquals(Optional.empty(), Bookmark.parse("a"));
+ //assertEquals(Optional.empty(), Bookmark.parse("a"));
assertEquals(Optional.empty(), Bookmark.parse("a:"));
assertEquals(Optional.empty(), Bookmark.parse(":"));
assertEquals(Optional.empty(), Bookmark.parse(":b"));
}
+ @Test
+ void shouldParse_when1Token() {
+
+ val bookmark = Bookmark.parse("a").get();
+
+ assertEquals("a", bookmark.getLogicalTypeName());
+ assertTrue(bookmark.isEmpty());
+ assertEquals(null, bookmark.getIdentifier());
+
+ }
@Test
void shouldParse_whenMoreThan2Token() {