correct handling of null abbrev label in SingleTermUpdater
authorAndreas Müller <a.mueller@bgbm.org>
Fri, 27 Sep 2013 22:37:00 +0000 (22:37 +0000)
committerAndreas Müller <a.mueller@bgbm.org>
Fri, 27 Sep 2013 22:37:00 +0000 (22:37 +0000)
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/database/update/SingleTermUpdater.java

index 54fb1df6d7980e90671a0cf26f65a79768f99f80..5d38c19fe1e095b30315f17ea0f645d97f0da09b 100644 (file)
@@ -159,7 +159,7 @@ public class SingleTermUpdater extends SchemaUpdaterStepBase<SingleTermUpdater>
                //standard representation\r
                UUID uuidRepresentation = UUID.randomUUID();\r
                String sqlInsertRepresentation = " INSERT INTO Representation (id, created, uuid, text, label, abbreviatedlabel, language_id) " +\r
-                               "VALUES (" + repId + ", '" + created + "', '" + uuidRepresentation + "', '" + description +  "', '" + label +  "',  '" + abbrev +  "', " + langId + ")"; \r
+                               "VALUES (" + repId + ", '" + created + "', '" + uuidRepresentation + "', " + nullSafeStr(description) +  ", " +nullSafeStr( label) +  ", " + nullSafeStr(abbrev) +  ", " + langId + ")"; \r
                \r
                datasource.executeUpdate(sqlInsertRepresentation);\r
                \r
@@ -173,7 +173,7 @@ public class SingleTermUpdater extends SchemaUpdaterStepBase<SingleTermUpdater>
                        int reverseRepId = repId + 1;\r
                        UUID uuidReverseRepresentation = UUID.randomUUID();\r
                        String sqlInsertReverseRepresentation = " INSERT INTO Representation (id, created, uuid, text, label, abbreviatedlabel, language_id) " +\r
-                                       "VALUES (" + reverseRepId + ", '" + created + "', '" + uuidReverseRepresentation + "', '" + reverseDescription +  "', '" + reverseLabel +  "',  '" + reverseAbbrev +  "', " + langId + ")"; \r
+                                       "VALUES (" + reverseRepId + ", '" + created + "', '" + uuidReverseRepresentation + "', " + nullSafeStr(reverseDescription) +  ", " + nullSafeStr(reverseLabel) +  ",  " + nullSafeStr(reverseAbbrev) +  ", " + langId + ")"; \r
                        \r
                        datasource.executeUpdate(sqlInsertReverseRepresentation);\r
                        \r
@@ -186,6 +186,14 @@ public class SingleTermUpdater extends SchemaUpdaterStepBase<SingleTermUpdater>
                return termId;\r
        }\r
 \r
+       private String nullSafeStr(String str) {\r
+               if (str == null){\r
+                       return " NULL ";\r
+               }else{\r
+                       return "'" + str + "'";\r
+               }\r
+       }\r
+\r
        private void updateFeatureTerms(Integer termId, ICdmDataSource datasource, IProgressMonitor monitor) throws SQLException {\r
                if (dtype.equals(Feature.class.getSimpleName())){\r
                        String sqlUpdate = "UPDATE DefinedTermBase SET " + \r