]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-3910 Handle the case of rule not translated
authorFabrice Bellingard <fabrice.bellingard@sonarsource.com>
Tue, 30 Oct 2012 16:11:34 +0000 (17:11 +0100)
committerFabrice Bellingard <fabrice.bellingard@sonarsource.com>
Tue, 30 Oct 2012 16:13:51 +0000 (17:13 +0100)
sonar-core/src/main/java/org/sonar/core/i18n/I18nManager.java
sonar-core/src/test/java/org/sonar/core/i18n/I18nManagerTest.java

index 694536a23dfb15ed4464261db28f1ee774b81036..ccdc1fffb255e9866df20955562362a23354e276 100644 (file)
@@ -110,6 +110,11 @@ public class I18nManager implements I18n, ServerExtension, BatchExtension {
 
     String result = null;
     String bundleBase = propertyToBundles.get(relatedProperty);
+    if (bundleBase == null) {
+      // this property has no translation
+      return null;
+    }
+
     String filePath = bundleBase.replace('.', '/');
     if (!"en".equals(locale.getLanguage())) {
       filePath += "_" + locale.getLanguage();
@@ -155,7 +160,6 @@ public class I18nManager implements I18n, ServerExtension, BatchExtension {
     return MessageFormat.format(message.replaceAll("'", "''"), parameters);
   }
 
-
   ClassLoader getBundleClassLoader() {
     return i18nClassloader;
   }
index 2e7b527c66df249466527799cb68380cb5f924d1..44d62b709561b7578f317e0754529fb7f5036281 100644 (file)
@@ -61,7 +61,7 @@ public class I18nManagerTest {
     List<PluginMetadata> plugins = Arrays.asList(newPlugin("sqale"), newPlugin("frpack"), newPlugin("core"), newPlugin("checkstyle"), newPlugin("other"));
     when(pluginRepository.getMetadata()).thenReturn(plugins);
 
-    I18nClassloader i18nClassloader = new I18nClassloader(new ClassLoader[]{
+    I18nClassloader i18nClassloader = new I18nClassloader(new ClassLoader[] {
       newCoreClassloader(), newFrenchPackClassloader(), newSqaleClassloader(), newCheckstyleClassloader()
     });
     manager = new I18nManager(pluginRepository);
@@ -109,7 +109,6 @@ public class I18nManagerTest {
     assertThat(manager.message(Locale.CHINA, "sqale.page", null)).isEqualTo("Sqale page title");
   }
 
-
   @Test
   public void should_return_default_value_if_missing_key() {
     assertThat(manager.message(Locale.ENGLISH, "unknown", "default")).isEqualTo("default");
@@ -145,6 +144,12 @@ public class I18nManagerTest {
     assertThat(html).isNull();
   }
 
+  @Test
+  public void should_return_null_if_rule_not_internationalized() {
+    String html = manager.messageFromFile(Locale.ENGLISH, "UnknownRule.html", "foo.rule1.name", false);
+    assertThat(html).isNull();
+  }
+
   @Test
   public void should_locate_french_file() {
     String html = manager.messageFromFile(Locale.FRENCH, "ArchitectureRule.html", "checkstyle.rule1.name", false);