ISIS-903: reducing logging noise / improving flow control if translations 
accessed from RO viewer (when locale not available).


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/e32e2e03
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/e32e2e03
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/e32e2e03

Branch: refs/heads/master
Commit: e32e2e03b72a28c24e2cac0ed13bf9f922ffdf48
Parents: 362a5bf
Author: Dan Haywood <[email protected]>
Authored: Wed Feb 18 11:54:47 2015 +0000
Committer: Dan Haywood <[email protected]>
Committed: Wed Feb 18 14:07:55 2015 +0000

----------------------------------------------------------------------
 .../viewer/wicket/viewer/services/LocaleProviderWicket.java  | 5 +++++
 .../org/apache/isis/applib/services/i18n/LocaleProvider.java | 1 -
 .../isis/core/runtime/services/i18n/po/ContextAndMsgId.java  | 8 ++++++++
 .../apache/isis/core/runtime/services/i18n/po/PoReader.java  | 8 +++++++-
 4 files changed, 20 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/e32e2e03/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/services/LocaleProviderWicket.java
----------------------------------------------------------------------
diff --git 
a/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/services/LocaleProviderWicket.java
 
b/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/services/LocaleProviderWicket.java
index 966f8fb..1b94cb6 100644
--- 
a/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/services/LocaleProviderWicket.java
+++ 
b/component/viewer/wicket/impl/src/main/java/org/apache/isis/viewer/wicket/viewer/services/LocaleProviderWicket.java
@@ -19,6 +19,7 @@
 package org.apache.isis.viewer.wicket.viewer.services;
 
 import java.util.Locale;
+import org.apache.wicket.Application;
 import org.apache.wicket.Session;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -38,6 +39,10 @@ public class LocaleProviderWicket implements LocaleProvider {
     @Programmatic
     @Override
     public Locale getLocale() {
+        if(!Application.exists()) {
+            // eg if request from RO viewer
+            return null;
+        }
         return getSession().getLocale();
     }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/e32e2e03/core/applib/src/main/java/org/apache/isis/applib/services/i18n/LocaleProvider.java
----------------------------------------------------------------------
diff --git 
a/core/applib/src/main/java/org/apache/isis/applib/services/i18n/LocaleProvider.java
 
b/core/applib/src/main/java/org/apache/isis/applib/services/i18n/LocaleProvider.java
index 9fe73d3..9bb5c3d 100644
--- 
a/core/applib/src/main/java/org/apache/isis/applib/services/i18n/LocaleProvider.java
+++ 
b/core/applib/src/main/java/org/apache/isis/applib/services/i18n/LocaleProvider.java
@@ -25,5 +25,4 @@ public interface LocaleProvider {
 
     @Programmatic
     Locale getLocale();
-
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/e32e2e03/core/runtime/src/main/java/org/apache/isis/core/runtime/services/i18n/po/ContextAndMsgId.java
----------------------------------------------------------------------
diff --git 
a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/i18n/po/ContextAndMsgId.java
 
b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/i18n/po/ContextAndMsgId.java
index d00d08a..c20058b 100644
--- 
a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/i18n/po/ContextAndMsgId.java
+++ 
b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/i18n/po/ContextAndMsgId.java
@@ -87,4 +87,12 @@ public class ContextAndMsgId implements 
Comparable<ContextAndMsgId> {
         }
         return context.compareTo(o.context);
     }
+
+    @Override
+    public String toString() {
+        return "ContextAndMsgId{" +
+                "context='" + context + '\'' +
+                ", msgId='" + msgId + '\'' +
+                '}';
+    }
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/e32e2e03/core/runtime/src/main/java/org/apache/isis/core/runtime/services/i18n/po/PoReader.java
----------------------------------------------------------------------
diff --git 
a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/i18n/po/PoReader.java
 
b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/i18n/po/PoReader.java
index 03cb9ed..6eb2c3f 100644
--- 
a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/i18n/po/PoReader.java
+++ 
b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/i18n/po/PoReader.java
@@ -94,6 +94,10 @@ class PoReader extends PoAbstract {
         final Locale targetLocale;
         try {
             targetLocale = 
translationServicePo.getLocaleProvider().getLocale();
+            if(targetLocale == null) {
+                // eg if request from RO viewer and the (default) 
LocaleProviderWicket is being used.
+                return msgId;
+            }
         } catch(final RuntimeException ex){
             LOG.warn("Failed to obtain locale, returning the original msgId");
             return msgId;
@@ -113,7 +117,9 @@ class PoReader extends PoAbstract {
             return translationNoContext;
         }
 
-        LOG.warn("No translation found for: " + key);
+        if(translation == null && translationNoContext == null) {
+            LOG.warn("No translation found for: " + key);
+        }
         return msgId;
     }
 

Reply via email to