IGNITE-4066 Fixed NPE.
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/b1ec58f7 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/b1ec58f7 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/b1ec58f7 Branch: refs/heads/ignite-ssl-hotfix Commit: b1ec58f716ece3a5866dd654ebc707bef67caf57 Parents: eaf8ae2 Author: Alexey Kuznetsov <akuznet...@apache.org> Authored: Thu Oct 13 12:58:22 2016 +0700 Committer: Alexey Kuznetsov <akuznet...@apache.org> Committed: Thu Oct 13 12:58:22 2016 +0700 ---------------------------------------------------------------------- .../visor/cache/VisorCacheTypeMetadata.java | 70 +++++++++++--------- 1 file changed, 37 insertions(+), 33 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/b1ec58f7/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheTypeMetadata.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheTypeMetadata.java b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheTypeMetadata.java index 870e033..f17e588 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheTypeMetadata.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/visor/cache/VisorCacheTypeMetadata.java @@ -111,51 +111,55 @@ public class VisorCacheTypeMetadata implements Serializable, LessNamingBean { if (factory != null && factory instanceof CacheJdbcPojoStoreFactory) { CacheJdbcPojoStoreFactory jdbcFactory = (CacheJdbcPojoStoreFactory) factory; - for (JdbcType jdbcType : jdbcFactory.getTypes()) { - VisorCacheTypeMetadata meta = metaMap.get(jdbcType.getKeyType()); + JdbcType[] jdbcTypes = jdbcFactory.getTypes(); - boolean notFound = meta == null; + if (jdbcTypes != null && jdbcTypes.length > 0) { + for (JdbcType jdbcType : jdbcTypes) { + VisorCacheTypeMetadata meta = metaMap.get(jdbcType.getKeyType()); - if (notFound) { - meta = new VisorCacheTypeMetadata(); + boolean notFound = meta == null; - meta.keyType = jdbcType.getKeyType(); - meta.valType = jdbcType.getValueType(); + if (notFound) { + meta = new VisorCacheTypeMetadata(); - meta.qryFlds = Collections.emptyMap(); - meta.ascFlds = Collections.emptyMap(); - meta.descFlds = Collections.emptyMap(); - meta.txtFlds = Collections.emptyList(); - meta.grps = Collections.emptyMap(); - } + meta.keyType = jdbcType.getKeyType(); + meta.valType = jdbcType.getValueType(); - meta.dbSchema = jdbcType.getDatabaseSchema(); - meta.dbTbl = jdbcType.getDatabaseTable(); + meta.qryFlds = Collections.emptyMap(); + meta.ascFlds = Collections.emptyMap(); + meta.descFlds = Collections.emptyMap(); + meta.txtFlds = Collections.emptyList(); + meta.grps = Collections.emptyMap(); + } - JdbcTypeField[] keyFields = jdbcType.getKeyFields(); + meta.dbSchema = jdbcType.getDatabaseSchema(); + meta.dbTbl = jdbcType.getDatabaseTable(); - if (keyFields != null) { - meta.keyFields = new ArrayList<>(keyFields.length); + JdbcTypeField[] keyFields = jdbcType.getKeyFields(); - for (JdbcTypeField fld : keyFields) - meta.keyFields.add(new VisorCacheTypeFieldMetadata( - fld.getDatabaseFieldName(), fld.getDatabaseFieldType(), - fld.getDatabaseFieldName(), U.compact(fld.getJavaFieldType().getName()))); - } + if (keyFields != null) { + meta.keyFields = new ArrayList<>(keyFields.length); - JdbcTypeField[] valFields = jdbcType.getValueFields(); + for (JdbcTypeField fld : keyFields) + meta.keyFields.add(new VisorCacheTypeFieldMetadata( + fld.getDatabaseFieldName(), fld.getDatabaseFieldType(), + fld.getDatabaseFieldName(), U.compact(fld.getJavaFieldType().getName()))); + } - if (valFields != null) { - meta.valFields = new ArrayList<>(valFields.length); + JdbcTypeField[] valFields = jdbcType.getValueFields(); - for (JdbcTypeField fld : valFields) - meta.valFields.add(new VisorCacheTypeFieldMetadata( - fld.getDatabaseFieldName(), fld.getDatabaseFieldType(), - fld.getDatabaseFieldName(), U.compact(fld.getJavaFieldType().getName()))); - } + if (valFields != null) { + meta.valFields = new ArrayList<>(valFields.length); - if (notFound) - metas.add(meta); + for (JdbcTypeField fld : valFields) + meta.valFields.add(new VisorCacheTypeFieldMetadata( + fld.getDatabaseFieldName(), fld.getDatabaseFieldType(), + fld.getDatabaseFieldName(), U.compact(fld.getJavaFieldType().getName()))); + } + + if (notFound) + metas.add(meta); + } } }