diff --git a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/server/DAO.java b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/server/DAO.java index 794b847149622b8ab0fe570cccaa99d9a7250971..3de612b9693100eb8780841e0f0164c30e78e6b2 100644 --- a/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/server/DAO.java +++ b/openbis/source/java/ch/systemsx/cisd/openbis/plugin/query/server/DAO.java @@ -223,7 +223,11 @@ class DAO extends SimpleJdbcDaoSupport implements IDAO for (Entry<String, String> entry : bindingsOrNull.getBindings().entrySet()) { template.bind(entry.getKey(), "?"); - indexMap.put(template.tryGetIndex(entry.getKey()), entry); + final int index = template.tryGetIndex(entry.getKey()); + if (index >= 0) + { + indexMap.put(index, entry); + } } } final PreparedStatement psm = con.prepareStatement(template.createText()); @@ -231,6 +235,10 @@ class DAO extends SimpleJdbcDaoSupport implements IDAO for (int i = 1; i <= pmd.getParameterCount(); ++i) { final Entry<String, String> entry = indexMap.get(i - 1); + if (entry == null) + { + throw new SQLDataException("No variable found for for parameter " + i); + } final String strValue = entry.getValue(); try {