chemistry-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From j...@apache.org
Subject svn commit: r1328072 - /chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-client/src/main/java/org/apache/chemistry/opencmis/client/mapper/PropertyMapperTika.java
Date Thu, 19 Apr 2012 18:37:00 GMT
Author: jens
Date: Thu Apr 19 18:37:00 2012
New Revision: 1328072

URL: http://svn.apache.org/viewvc?rev=1328072&view=rev
Log:
add a workaround for a tika bug when parsing MP3 tags

Modified:
    chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-client/src/main/java/org/apache/chemistry/opencmis/client/mapper/PropertyMapperTika.java

Modified: chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-client/src/main/java/org/apache/chemistry/opencmis/client/mapper/PropertyMapperTika.java
URL: http://svn.apache.org/viewvc/chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-client/src/main/java/org/apache/chemistry/opencmis/client/mapper/PropertyMapperTika.java?rev=1328072&r1=1328071&r2=1328072&view=diff
==============================================================================
--- chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-client/src/main/java/org/apache/chemistry/opencmis/client/mapper/PropertyMapperTika.java
(original)
+++ chemistry/opencmis/trunk/chemistry-opencmis-test/chemistry-opencmis-test-client/src/main/java/org/apache/chemistry/opencmis/client/mapper/PropertyMapperTika.java
Thu Apr 19 18:37:00 2012
@@ -63,18 +63,30 @@ public class PropertyMapperTika extends 
         return propId;
     }
 
-    public Object convertValue(String key, PropertyDefinition<?> propDef, final String
strValue) {
+    public Object convertValue(String key, PropertyDefinition<?> propDef, String strValue)
{
         Object value = null;
         PropertyType pt = propDef.getPropertyType();
         
         if (null == pt)
             value = null;
-        else {
+        else if (null != strValue && strValue.length() > 0) {
+            // Tika has a bug and sometimes fails to parse MP3 tags, then generates '\0'
in String
+            // see https://issues.apache.org/jira/browse/TIKA-887
+            int lastIllegalPos = -1;
+            for (int i=0; i<strValue.length(); i++) {
+              int c = strValue.codePointAt(i);
+              if (Character.isISOControl(c))
+                  lastIllegalPos = i;                  
+            }
+            if (lastIllegalPos >= 0)
+                strValue = strValue.substring(lastIllegalPos+1); // use remaining part after
illegal char
+
             switch (pt) {
             case STRING:
             case HTML:
             case URI:
             case ID:
+                
                 if (propDef.getCardinality() == Cardinality.SINGLE)
                     value = strValue;
                 else {



Mime
View raw message