You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by bd...@apache.org on 2013/11/15 12:14:14 UTC
svn commit: r1542231 -
/sling/trunk/contrib/extensions/i18n/src/main/java/org/apache/sling/i18n/impl/JcrResourceBundle.java
Author: bdelacretaz
Date: Fri Nov 15 11:14:14 2013
New Revision: 1542231
URL: http://svn.apache.org/r1542231
Log:
SLING-3147 - refresh Session before loading JCR resource bundle, needed for Oak
Modified:
sling/trunk/contrib/extensions/i18n/src/main/java/org/apache/sling/i18n/impl/JcrResourceBundle.java
Modified: sling/trunk/contrib/extensions/i18n/src/main/java/org/apache/sling/i18n/impl/JcrResourceBundle.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/i18n/src/main/java/org/apache/sling/i18n/impl/JcrResourceBundle.java?rev=1542231&r1=1542230&r2=1542231&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/i18n/src/main/java/org/apache/sling/i18n/impl/JcrResourceBundle.java (original)
+++ sling/trunk/contrib/extensions/i18n/src/main/java/org/apache/sling/i18n/impl/JcrResourceBundle.java Fri Nov 15 11:14:14 2013
@@ -28,6 +28,8 @@ import java.util.Map;
import java.util.ResourceBundle;
import java.util.Set;
+import javax.jcr.RepositoryException;
+import javax.jcr.Session;
import javax.jcr.query.Query;
import org.apache.sling.api.SlingException;
@@ -57,8 +59,9 @@ public class JcrResourceBundle extends R
JcrResourceBundle(Locale locale, String baseName,
ResourceResolver resourceResolver) {
this.locale = locale;
-
+
long start = System.currentTimeMillis();
+ refreshSession(resourceResolver, true);
final String loadQuery = getFullLoadQuery(locale, baseName);
this.resources = loadFully(resourceResolver, loadQuery);
long end = System.currentTimeMillis();
@@ -68,6 +71,19 @@ public class JcrResourceBundle extends R
(end - start) });
}
+ static void refreshSession(ResourceResolver resolver, boolean keepChanges) {
+ final Session s = resolver.adaptTo(Session.class);
+ if(s == null) {
+ log.warn("ResourceResolver {} does not adapt to Session, cannot refresh", resolver);
+ } else {
+ try {
+ s.refresh(keepChanges);
+ } catch(RepositoryException re) {
+ throw new RuntimeException("RepositoryException in session.refresh", re);
+ }
+ }
+ }
+
@Override
protected void setParent(ResourceBundle parent) {
super.setParent(parent);