You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-commits@lucene.apache.org by no...@apache.org on 2010/02/08 07:57:55 UTC

svn commit: r907562 - in /lucene/solr/trunk/contrib/dataimporthandler: CHANGES.txt src/main/java/org/apache/solr/handler/dataimport/DateFormatTransformer.java

Author: noble
Date: Mon Feb  8 06:57:53 2010
New Revision: 907562

URL: http://svn.apache.org/viewvc?rev=907562&view=rev
Log:
SOLR-1762: DateFormatTransformer does not work correctly with non-default locale dates

Modified:
    lucene/solr/trunk/contrib/dataimporthandler/CHANGES.txt
    lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/DateFormatTransformer.java

Modified: lucene/solr/trunk/contrib/dataimporthandler/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/dataimporthandler/CHANGES.txt?rev=907562&r1=907561&r2=907562&view=diff
==============================================================================
--- lucene/solr/trunk/contrib/dataimporthandler/CHANGES.txt (original)
+++ lucene/solr/trunk/contrib/dataimporthandler/CHANGES.txt Mon Feb  8 06:57:53 2010
@@ -55,6 +55,8 @@
 
 * SOLR-1759: $skipDoc was not working correctly (Gian Marco Tagliani via noble)
 
+* SOLR-1762: DateFormatTransformer does not work correctly with non-default locale dates (tommy chheng via noble)
+
 Other Changes
 ----------------------
 

Modified: lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/DateFormatTransformer.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/DateFormatTransformer.java?rev=907562&r1=907561&r2=907562&view=diff
==============================================================================
--- lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/DateFormatTransformer.java (original)
+++ lucene/solr/trunk/contrib/dataimporthandler/src/main/java/org/apache/solr/handler/dataimport/DateFormatTransformer.java Mon Feb  8 06:57:53 2010
@@ -47,7 +47,14 @@
 
   @SuppressWarnings("unchecked")
   public Object transformRow(Map<String, Object> aRow, Context context) {
+
     for (Map<String, String> map : context.getAllEntityFields()) {
+      Locale locale = Locale.getDefault();
+      String customLocale = map.get("locale");
+      if(customLocale != null){
+        locale = new Locale(customLocale);
+      }
+
       String fmt = map.get(DATE_TIME_FMT);
       if (fmt == null)
         continue;
@@ -61,12 +68,12 @@
           List inputs = (List) o;
           List<Date> results = new ArrayList<Date>();
           for (Object input : inputs) {
-            results.add(process(input, fmt));
+            results.add(process(input, fmt, locale));
           }
           aRow.put(column, results);
         } else {
           if (o != null) {
-            aRow.put(column, process(o, fmt));
+            aRow.put(column, process(o, fmt, locale));
           }
         }
       } catch (ParseException e) {
@@ -76,14 +83,14 @@
     return aRow;
   }
 
-  private Date process(Object value, String format) throws ParseException {
+  private Date process(Object value, String format, Locale locale) throws ParseException {
     if (value == null) return null;
     String strVal = value.toString().trim();
     if (strVal.length() == 0)
       return null;
     SimpleDateFormat fmt = fmtCache.get(format);
     if (fmt == null) {
-      fmt = new SimpleDateFormat(format);
+      fmt = new SimpleDateFormat(format, locale);
       fmtCache.put(format, fmt);
     }
     return fmt.parse(strVal);