From commits-return-120547-archive-asf-public=cust-asf.ponee.io@ignite.apache.org Thu Sep 27 14:54:14 2018 Return-Path: X-Original-To: archive-asf-public@cust-asf.ponee.io Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx-eu-01.ponee.io (Postfix) with SMTP id D6A01180652 for ; Thu, 27 Sep 2018 14:54:13 +0200 (CEST) Received: (qmail 66155 invoked by uid 500); 27 Sep 2018 12:54:13 -0000 Mailing-List: contact commits-help@ignite.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@ignite.apache.org Delivered-To: mailing list commits@ignite.apache.org Received: (qmail 66146 invoked by uid 99); 27 Sep 2018 12:54:13 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 27 Sep 2018 12:54:13 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id DF3CDDFEAE; Thu, 27 Sep 2018 12:54:12 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: sboikov@apache.org To: commits@ignite.apache.org Date: Thu, 27 Sep 2018 12:54:12 -0000 Message-Id: <47c067b88b9a4933be0a6b61a0780733@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [01/50] [abbrv] ignite git commit: IGNITE-6500 Fix for POJO fields of java wrapper type are not retaining null values from Cassandra persistent store, while using ignite's CassandraCacheStoreFactory - Fixes #4014. Repository: ignite Updated Branches: refs/heads/ignite-gg-14206 dd290c972 -> 3ab353367 IGNITE-6500 Fix for POJO fields of java wrapper type are not retaining null values from Cassandra persistent store, while using ignite's CassandraCacheStoreFactory - Fixes #4014. Signed-off-by: Dmitriy Pavlov Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/1858acff Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/1858acff Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/1858acff Branch: refs/heads/ignite-gg-14206 Commit: 1858acff7646c7aad61e8bbcd84039bb2d5a2db3 Parents: 49315c8 Author: Unknown Authored: Mon Sep 24 18:30:08 2018 +0300 Committer: Dmitriy Pavlov Committed: Mon Sep 24 18:30:08 2018 +0300 ---------------------------------------------------------------------- .../cassandra/common/PropertyMappingHelper.java | 66 ++++++++++++++++++-- 1 file changed, 60 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/1858acff/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/common/PropertyMappingHelper.java ---------------------------------------------------------------------- diff --git a/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/common/PropertyMappingHelper.java b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/common/PropertyMappingHelper.java index ed9f054..ea3974f 100644 --- a/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/common/PropertyMappingHelper.java +++ b/modules/cassandra/store/src/main/java/org/apache/ignite/cache/store/cassandra/common/PropertyMappingHelper.java @@ -125,23 +125,77 @@ public class PropertyMappingHelper { if (String.class.equals(clazz)) return row.getString(col); - if (Integer.class.equals(clazz) || int.class.equals(clazz)) + if (Integer.class.equals(clazz)) + return row.isNull(col) ? null : row.getInt(col); + + if (int.class.equals(clazz)) { + if (row.isNull(col)) { + throw new IllegalArgumentException("Can't cast null value from Cassandra table column '" + col + + "' to " + "int value used in domain object model"); + } + return row.getInt(col); + } + + if (Short.class.equals(clazz)) + return row.isNull(col) ? null : row.getShort(col); + + if (short.class.equals(clazz)) { + if (row.isNull(col)) { + throw new IllegalArgumentException("Can't cast null value from Cassandra table column '" + col + + "' to " + "short value used in domain object model"); + } - if (Short.class.equals(clazz) || short.class.equals(clazz)) return row.getShort(col); + } + + if (Long.class.equals(clazz)) + return row.isNull(col) ? null : row.getLong(col); + + if (long.class.equals(clazz)) { + if (row.isNull(col)) { + throw new IllegalArgumentException("Can't cast null value from Cassandra table column '" + col + + "' to " + "long value used in domain object model"); + } - if (Long.class.equals(clazz) || long.class.equals(clazz)) return row.getLong(col); + } + + if (Double.class.equals(clazz)) + return row.isNull(col) ? null : row.getDouble(col); + + if (double.class.equals(clazz)) { + if (row.isNull(col)) { + throw new IllegalArgumentException("Can't cast null value from Cassandra table column '" + col + + "' to " + "double value used in domain object model"); + } - if (Double.class.equals(clazz) || double.class.equals(clazz)) return row.getDouble(col); + } + + if (Boolean.class.equals(clazz)) + return row.isNull(col) ? null : row.getBool(col); + + if (boolean.class.equals(clazz)) { + if (row.isNull(col)) { + throw new IllegalArgumentException("Can't cast null value from Cassandra table column '" + col + + "' to " + "boolean value used in domain object model"); + } - if (Boolean.class.equals(clazz) || boolean.class.equals(clazz)) return row.getBool(col); + } + + if (Float.class.equals(clazz)) + return row.isNull(col) ? null : row.getFloat(col); + + if (float.class.equals(clazz)) { + if (row.isNull(col)) { + throw new IllegalArgumentException("Can't cast null value from Cassandra table column '" + col + + "' to " + "float value used in domain object model"); + } - if (Float.class.equals(clazz) || float.class.equals(clazz)) return row.getFloat(col); + } if (ByteBuffer.class.equals(clazz)) return row.getBytes(col);