You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@marmotta.apache.org by ss...@apache.org on 2013/09/30 18:44:48 UTC
[11/50] [abbrv] git commit: MARMOTTA-155: Add test for invalid
language and use Locale.Builder
MARMOTTA-155: Add test for invalid language and use Locale.Builder
Locale.Builder throws an exception instead of returning a partial representation for illformed BCP47 language tags
Project: http://git-wip-us.apache.org/repos/asf/incubator-marmotta/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-marmotta/commit/58baf97f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-marmotta/tree/58baf97f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-marmotta/diff/58baf97f
Branch: refs/heads/master
Commit: 58baf97fc49549f4b6fcc149459c5429abd538a9
Parents: 87ec95a
Author: Peter Ansell <p_...@yahoo.com>
Authored: Wed Sep 11 13:01:43 2013 +1000
Committer: Peter Ansell <p_...@yahoo.com>
Committed: Wed Sep 11 13:01:43 2013 +1000
----------------------------------------------------------------------
.../apache/marmotta/kiwi/persistence/KiWiConnection.java | 10 ++++++++--
.../org/apache/marmotta/kiwi/sail/KiWiValueFactory.java | 6 ++++--
.../apache/marmotta/kiwi/test/sesame/KiWiLocaleTest.java | 10 ++++++++++
3 files changed, 22 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/58baf97f/libraries/kiwi/kiwi-triplestore/src/main/java/org/apache/marmotta/kiwi/persistence/KiWiConnection.java
----------------------------------------------------------------------
diff --git a/libraries/kiwi/kiwi-triplestore/src/main/java/org/apache/marmotta/kiwi/persistence/KiWiConnection.java b/libraries/kiwi/kiwi-triplestore/src/main/java/org/apache/marmotta/kiwi/persistence/KiWiConnection.java
index 81041e3..a8ddbd1 100644
--- a/libraries/kiwi/kiwi-triplestore/src/main/java/org/apache/marmotta/kiwi/persistence/KiWiConnection.java
+++ b/libraries/kiwi/kiwi-triplestore/src/main/java/org/apache/marmotta/kiwi/persistence/KiWiConnection.java
@@ -1711,8 +1711,14 @@ public class KiWiConnection {
protected static Locale getLocale(String language) {
Locale locale = localeMap.get(language);
if(locale == null && language != null) {
- locale = Locale.forLanguageTag(language);
- localeMap.put(language, locale);
+ try {
+ Locale.Builder builder = new Locale.Builder();
+ builder.setLanguageTag(language);
+ locale = builder.build();
+ localeMap.put(language, locale);
+ } catch (IllformedLocaleException ex) {
+ throw new IllegalArgumentException("Language was not a valid BCP47 language: " + language, ex);
+ }
}
return locale;
}
http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/58baf97f/libraries/kiwi/kiwi-triplestore/src/main/java/org/apache/marmotta/kiwi/sail/KiWiValueFactory.java
----------------------------------------------------------------------
diff --git a/libraries/kiwi/kiwi-triplestore/src/main/java/org/apache/marmotta/kiwi/sail/KiWiValueFactory.java b/libraries/kiwi/kiwi-triplestore/src/main/java/org/apache/marmotta/kiwi/sail/KiWiValueFactory.java
index 78f630e..9ec70fb 100644
--- a/libraries/kiwi/kiwi-triplestore/src/main/java/org/apache/marmotta/kiwi/sail/KiWiValueFactory.java
+++ b/libraries/kiwi/kiwi-triplestore/src/main/java/org/apache/marmotta/kiwi/sail/KiWiValueFactory.java
@@ -392,8 +392,10 @@ public class KiWiValueFactory implements ValueFactory {
Locale locale;
if(lang != null) {
try {
- locale = Locale.forLanguageTag(lang);
- } catch (IllegalArgumentException ex) {
+ Locale.Builder builder = new Locale.Builder();
+ builder.setLanguageTag(lang);
+ locale = builder.build();
+ } catch (IllformedLocaleException ex) {
log.warn("malformed language literal (language: {})", lang);
locale = null;
lang = null;
http://git-wip-us.apache.org/repos/asf/incubator-marmotta/blob/58baf97f/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/KiWiLocaleTest.java
----------------------------------------------------------------------
diff --git a/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/KiWiLocaleTest.java b/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/KiWiLocaleTest.java
index 5c97e59..4ce351b 100644
--- a/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/KiWiLocaleTest.java
+++ b/libraries/kiwi/kiwi-triplestore/src/test/java/org/apache/marmotta/kiwi/test/sesame/KiWiLocaleTest.java
@@ -74,6 +74,16 @@ public class KiWiLocaleTest {
Assert.assertEquals("war", warLiteral.getLanguage());
}
+ /**
+ * Tests creating invalid BCP47 literals (see MARMOTTA-115 for further details)
+ */
+ @Test
+ public void createBCP47LiteralsInvalidTests() {
+ Literal invalidLangLiteral = vf.createLiteral("Hungary", "invalid");
+ Assert.assertEquals("Hungary", invalidLangLiteral.getLabel());
+ Assert.assertNull(invalidLangLiteral.getLanguage());
+ }
+
// /**
// * Tests adding BCP47 literals (see MARMOTTA-115 for further details)
// */