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)
 //     */