From 0af166f66856695a6720f7be392dc60221969b36 Mon Sep 17 00:00:00 2001
From: zonia3000 <zonia3000@gmail.com>
Date: Thu, 11 Jan 2018 17:49:13 +0100
Subject: [PATCH] Bugfix: NPE in VotType & MySQL metadata issue in
 JDBCConnection

---
 src/tap/db/JDBCConnection.java | 3 ++-
 src/tap/metadata/VotType.java  | 4 ++--
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/tap/db/JDBCConnection.java b/src/tap/db/JDBCConnection.java
index 7bb175f..c840798 100644
--- a/src/tap/db/JDBCConnection.java
+++ b/src/tap/db/JDBCConnection.java
@@ -3271,7 +3271,8 @@ public class JDBCConnection implements DBConnection {
 			int cnt = 0;
 			String columnPattern = columnCaseSensitive ? columnName : null;
 			while(rsT.next()){
-				String rsSchema = nullifyIfNeeded(rsT.getString(2));
+                                int rsTSchemaIndex = dbms.equalsIgnoreCase(DBMS_MYSQL) ? 1 : 2;
+				String rsSchema = nullifyIfNeeded(rsT.getString(rsTSchemaIndex));
 				String rsTable = rsT.getString(3);
 				// test the schema name:
 				if (!supportsSchema || schemaName == null || equals(rsSchema, schemaName, schemaCaseSensitive)){
diff --git a/src/tap/metadata/VotType.java b/src/tap/metadata/VotType.java
index 64988a7..695b359 100644
--- a/src/tap/metadata/VotType.java
+++ b/src/tap/metadata/VotType.java
@@ -160,13 +160,13 @@ public final class VotType {
 
 			case CHAR:
 				this.datatype = VotDatatype.CHAR;
-				this.arraysize = Integer.toString(tapType.length > 0 ? tapType.length : null);
+				this.arraysize = tapType.length > 0 ? Integer.toString(tapType.length) : null;
 				this.xtype = null;
 				break;
 
 			case BINARY:
 				this.datatype = VotDatatype.UNSIGNEDBYTE;
-				this.arraysize = Integer.toString(tapType.length > 0 ? tapType.length : null);
+				this.arraysize = tapType.length > 0 ? Integer.toString(tapType.length) : null;
 				this.xtype = null;
 				break;
 
-- 
GitLab