You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@chemistry.apache.org by jm...@apache.org on 2012/08/27 13:38:26 UTC
svn commit: r1377646 -
/chemistry/opencmis/trunk/chemistry-opencmis-android/chemistry-opencmis-android-client/src/main/java/org/apache/chemistry/opencmis/commons/impl/AtomPubConverter.java
Author: jmpascal
Date: Mon Aug 27 11:38:25 2012
New Revision: 1377646
URL: http://svn.apache.org/viewvc?rev=1377646&view=rev
Log:
Correct internationalization (turkish) bug with toLowerCase().
Support more dateFormat when parsing response.
Modified:
chemistry/opencmis/trunk/chemistry-opencmis-android/chemistry-opencmis-android-client/src/main/java/org/apache/chemistry/opencmis/commons/impl/AtomPubConverter.java
Modified: chemistry/opencmis/trunk/chemistry-opencmis-android/chemistry-opencmis-android-client/src/main/java/org/apache/chemistry/opencmis/commons/impl/AtomPubConverter.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-android/chemistry-opencmis-android-client/src/main/java/org/apache/chemistry/opencmis/commons/impl/AtomPubConverter.java?rev=1377646&r1=1377645&r2=1377646&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-android/chemistry-opencmis-android-client/src/main/java/org/apache/chemistry/opencmis/commons/impl/AtomPubConverter.java (original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-android/chemistry-opencmis-android-client/src/main/java/org/apache/chemistry/opencmis/commons/impl/AtomPubConverter.java Mon Aug 27 11:38:25 2012
@@ -101,6 +101,7 @@ import java.util.Date;
import java.util.GregorianCalendar;
import java.util.HashSet;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
import java.util.Set;
import java.util.TimeZone;
@@ -634,7 +635,8 @@ public class AtomPubConverter {
AbstractPropertyDefinition<?> result = null;
// find property type
- PropertyType propertyType = PropertyType.fromValue(id.replace(PROPERTY, "").replace("Definition", "").toLowerCase());
+ //Locale.ENGLISH is used because in turkish the "I".toLowerCase is not equal to i.
+ PropertyType propertyType = PropertyType.fromValue(id.replace(PROPERTY, "").replace("Definition", "").toLowerCase(Locale.ENGLISH));
if (propertyType == null) {
throw new CmisRuntimeException("Invalid property type '" + id + "'! Data type not set!");
}
@@ -781,26 +783,37 @@ public class AtomPubConverter {
// -----------------------------------------------------------------
- private static Date parseAtomPubDate(String atomPubDate) {
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
- sdf.setLenient(true);
- Date d = null;
+ private static final String FORMAT_1 = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'";
- try {
- d = sdf.parse(atomPubDate);
- } catch (ParseException e) {
- try {
- sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
- d = sdf.parse(atomPubDate);
- } catch (ParseException ee) {
- try {
- sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
- d = sdf.parse(atomPubDate);
- } catch (ParseException eee) {
- eee.printStackTrace();
- }
- }
- }
- return d;
- }
+ private static final String FORMAT_2 = "yyyy-MM-dd'T'HH:mm:ss'Z'";
+
+ private static final String FORMAT_3 = "yyyy-MM-dd'T'HH:mm:ss.SSSZ";
+
+ private static final String FORMAT_4 = "MMM dd yyyy HH:mm:ss zzzz";
+
+ private static final String FORMAT_5 = "dd MMM yyyy HH:mm:ss zzzz";
+
+ private static final String[] DATE_FORMATS = { FORMAT_1, FORMAT_2, FORMAT_3, FORMAT_4, FORMAT_5 };
+
+ private static Date parseAtomPubDate(String atomPubDate)
+ {
+ Date d = null;
+ SimpleDateFormat sdf;
+ for (int i = 0; i < DATE_FORMATS.length; i++)
+ {
+ sdf = new SimpleDateFormat(DATE_FORMATS[i], Locale.UK);
+ sdf.setLenient(true);
+ try
+ {
+ d = sdf.parse(atomPubDate);
+ break;
+ }
+ catch (ParseException e)
+ {
+ continue;
+ }
+ }
+
+ return d;
+ }
}