From eed77f7be0ddbd8896392d105078b3dfe9c85cc1 Mon Sep 17 00:00:00 2001 From: Thomas Gutmann Date: Sat, 15 Jul 2023 08:47:41 +0200 Subject: [PATCH 1/3] Fix prepared statement setNull() #1365 --- .../birt/report/data/oda/jdbc/Statement.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/data/org.eclipse.birt.report.data.oda.jdbc/src/org/eclipse/birt/report/data/oda/jdbc/Statement.java b/data/org.eclipse.birt.report.data.oda.jdbc/src/org/eclipse/birt/report/data/oda/jdbc/Statement.java index 0e1aef79de0..578fcfc2b5d 100644 --- a/data/org.eclipse.birt.report.data.oda.jdbc/src/org/eclipse/birt/report/data/oda/jdbc/Statement.java +++ b/data/org.eclipse.birt.report.data.oda.jdbc/src/org/eclipse/birt/report/data/oda/jdbc/Statement.java @@ -750,10 +750,20 @@ public void setNull(int parameterId) throws OdaException { try { java.sql.ParameterMetaData pm = this.preStat.getParameterMetaData(); if (pm == null) { - this.preStat.setNull(parameterId, java.sql.Types.OTHER); + try { + this.preStat.setNull(parameterId, java.sql.Types.OTHER); + } catch (SQLException e) { + // fallback, set the null value with SQL default null type + this.preStat.setNull(parameterId, java.sql.Types.NULL); + } addLog("setNull", parameterId, "null"); } else { - this.preStat.setNull(parameterId, pm.getParameterType(parameterId)); + try { + this.preStat.setNull(parameterId, pm.getParameterType(parameterId)); + } catch (SQLException e) { + // fallback, set the null value with SQL default null type + this.preStat.setNull(parameterId, java.sql.Types.NULL); + } } } catch (SQLException e) { throw new JDBCException(ResourceConstants.PREPARESTATEMENT_CANNOT_SET_NULL_VALUE, e); From 78e9020a82b3871807d91b72747bdce907449a55 Mon Sep 17 00:00:00 2001 From: Thomas Gutmann Date: Sat, 15 Jul 2023 15:50:00 +0200 Subject: [PATCH 2/3] Fix missing comment (to restart the build process) --- .../src/org/eclipse/birt/report/data/oda/jdbc/Statement.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/org.eclipse.birt.report.data.oda.jdbc/src/org/eclipse/birt/report/data/oda/jdbc/Statement.java b/data/org.eclipse.birt.report.data.oda.jdbc/src/org/eclipse/birt/report/data/oda/jdbc/Statement.java index 578fcfc2b5d..9caa2a56e65 100644 --- a/data/org.eclipse.birt.report.data.oda.jdbc/src/org/eclipse/birt/report/data/oda/jdbc/Statement.java +++ b/data/org.eclipse.birt.report.data.oda.jdbc/src/org/eclipse/birt/report/data/oda/jdbc/Statement.java @@ -897,7 +897,7 @@ private void addLog(String methodName, Exception e) { /** * This API is meant to execute the update/DML sql query. * - * @return + * @return Return the execution status * @throws OdaException */ public int executeUpdate() throws OdaException { From 6960487dc128724a05947875fd09a1fba2f939a7 Mon Sep 17 00:00:00 2001 From: Thomas Gutmann Date: Sat, 15 Jul 2023 20:08:03 +0200 Subject: [PATCH 3/3] Fix align issue of an "inline" element to avoid a null pointer exception (#1372) --- .../eclipse/birt/report/engine/nLayout/area/impl/LineArea.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/engine/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/nLayout/area/impl/LineArea.java b/engine/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/nLayout/area/impl/LineArea.java index 01ba05cdabc..79873553a2c 100644 --- a/engine/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/nLayout/area/impl/LineArea.java +++ b/engine/org.eclipse.birt.report.engine/src/org/eclipse/birt/report/engine/nLayout/area/impl/LineArea.java @@ -145,7 +145,7 @@ public void align(boolean endParagraph, LayoutContext context) { justify(spacing, adjustLeftWhiteSpace, adjustRightWhiteSpace); } else { // is left aligned - if (!parent.content.isDirectionRTL()) { + if (parent.content != null && !parent.content.isDirectionRTL()) { if (adjustLeftWhiteSpace != 0) { Iterator iter = getChildren(); while (iter.hasNext()) {