diff --git a/buildtools/src/main/resources/checkstyle/checkstyle.xml b/buildtools/src/main/resources/checkstyle/checkstyle.xml index 0a8d4e7d..e878a128 100644 --- a/buildtools/src/main/resources/checkstyle/checkstyle.xml +++ b/buildtools/src/main/resources/checkstyle/checkstyle.xml @@ -60,10 +60,7 @@ - - - diff --git a/db/src/main/java/org/trellisldp/ext/db/DBNamespaceService.java b/db/src/main/java/org/trellisldp/ext/db/DBNamespaceService.java index 0563f6e9..291db6fe 100644 --- a/db/src/main/java/org/trellisldp/ext/db/DBNamespaceService.java +++ b/db/src/main/java/org/trellisldp/ext/db/DBNamespaceService.java @@ -13,6 +13,8 @@ */ package org.trellisldp.ext.db; +import static org.slf4j.LoggerFactory.getLogger; + import java.util.AbstractMap.SimpleImmutableEntry; import java.util.HashMap; import java.util.Map; @@ -21,6 +23,8 @@ import javax.sql.DataSource; import org.jdbi.v3.core.Jdbi; +import org.jdbi.v3.core.statement.StatementException; +import org.slf4j.Logger; import org.trellisldp.api.NamespaceService; /** @@ -28,6 +32,8 @@ */ public class DBNamespaceService implements NamespaceService { + private static final Logger LOGGER = getLogger(DBNamespaceService.class); + private final Jdbi jdbi; /** @@ -59,8 +65,15 @@ public Map getNamespaces() { @Override public boolean setPrefix(final String prefix, final String namespace) { - jdbi.useHandle(handle -> - handle.execute("INSERT INTO namespaces (prefix, namespace) VALUES (?, ?)", prefix, namespace)); - return true; + if (!prefix.isEmpty()) { + try { + jdbi.useHandle(handle -> + handle.execute("INSERT INTO namespaces (prefix, namespace) VALUES (?, ?)", prefix, namespace)); + return true; + } catch (final StatementException ex) { + LOGGER.warn("Could not save prefix {} with namespace {}: {}", prefix, namespace, ex.getMessage()); + } + } + return false; } } diff --git a/db/src/test/java/org/trellisldp/ext/db/DBNamespaceServiceTest.java b/db/src/test/java/org/trellisldp/ext/db/DBNamespaceServiceTest.java index fc9de3fd..990a5c85 100644 --- a/db/src/test/java/org/trellisldp/ext/db/DBNamespaceServiceTest.java +++ b/db/src/test/java/org/trellisldp/ext/db/DBNamespaceServiceTest.java @@ -14,8 +14,7 @@ package org.trellisldp.ext.db; import static java.io.File.separator; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.*; import static org.junit.jupiter.api.condition.OS.WINDOWS; import static org.slf4j.LoggerFactory.getLogger; @@ -75,6 +74,8 @@ public void testNamespaceService() { assertTrue(svc.setPrefix("ex", "http://example.com/")); assertEquals(size + 1, svc.getNamespaces().size()); assertEquals("http://example.com/", svc.getNamespaces().get("ex")); + assertFalse(svc.setPrefix("ex", "http://example.com/Other/")); + assertFalse(svc.setPrefix("", "http://example.com/Resource/")); } }