]> git.aero2k.de Git - tmp/jakarta-migration.git/commitdiff
Merge branch 'CSPACE-5763' of github.com:aronr/services into CSPACE-5763
authorAron Roberts <aron@socrates.berkeley.edu>
Fri, 26 Apr 2013 20:19:15 +0000 (13:19 -0700)
committerAron Roberts <aron@socrates.berkeley.edu>
Fri, 26 Apr 2013 20:19:15 +0000 (13:19 -0700)
Conflicts:
services/common/src/main/java/org/collectionspace/services/common/context/ServiceBindingUtils.java

1  2 
services/common/src/main/java/org/collectionspace/services/common/context/ServiceBindingUtils.java

index 0031dbdeb830dbc87c9621b423b980db2e11da48,2144f2976054312c9212045c31ecf83b00d2bb59..01901f1eefad16de14455c05b11f2b7123b69911
@@@ -188,7 -187,27 +188,27 @@@ public class ServiceBindingUtils 
          }\r
        try {\r
              Object obj = docModel.getPropertyValue(propName);\r
 -            if (obj == null) {\r
 +            return DocumentUtils.propertyValueAsString(obj, docModel, propName);\r
+                 return "";\r
+             }\r
+             if (String.class.isAssignableFrom(obj.getClass())) {\r
+                 return (String)obj;\r
+             } else {\r
+                 // Handle cases where a property value returned from the repository\r
+                 // can't be directly cast to a String.\r
+                 //\r
+                 // FIXME: We may want to create a new utility method to centralize\r
+                 // our handling of these cases, as similar conversions might currently\r
+                 // be performed in multiple classes. - ADR 2013-04-25\r
+                 if (obj instanceof GregorianCalendar) {\r
+                     return GregorianCalendarDateTimeUtils.formatAsISO8601Timestamp((GregorianCalendar)obj);\r
+                 } else {\r
+                     logger.warn("Could not convert value of property " + propName\r
+                             + " in path " + docModel.getPathAsString() + " to a String.");\r
+                     logger.warn("This may be due to a new, as-yet-unhandled datatype returned from the repository");\r
+                    return "";\r
+                 }\r
+             }\r
        } catch(IndexOutOfBoundsException ioobe) {\r
                                // Should not happen, but may with certain array forms\r
                                if(logger.isTraceEnabled()) {\r