From 530a00d536d25c71b9766fc178ca01e1e9ef84e0 Mon Sep 17 00:00:00 2001 From: Loredana Liccardo Date: Tue, 28 Oct 2014 10:00:50 +0000 Subject: [PATCH] - bug fixed in class ConnectionManager for the submitquery operation modified in order to manage the data geometry recovering the related value as a sequence of hexadecimal characters and not as a parsed multipolygon value. executeQueryJDBC method modified. - bug fixed in class DatabaseManagement for the submitquery operation in order to truncate column values of the result to 255 character in convertToJavaType method git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/data-access/DatabasesResourcesManager@101053 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../databases/utils/ConnectionManager.java | 19 +++++++++++++++++-- .../databases/utils/DatabaseManagement.java | 5 +++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/gcube/dataaccess/databases/utils/ConnectionManager.java b/src/main/java/org/gcube/dataaccess/databases/utils/ConnectionManager.java index 73e91e1..ca60d35 100644 --- a/src/main/java/org/gcube/dataaccess/databases/utils/ConnectionManager.java +++ b/src/main/java/org/gcube/dataaccess/databases/utils/ConnectionManager.java @@ -55,8 +55,10 @@ public class ConnectionManager { .initDBConnection(defaultDatabaseFile, config); } } catch (Exception e) { - System.out.println("ERROR IN DB INITIALIZATION : " - + e.getLocalizedMessage()); +// System.out.println("ERROR IN DB INITIALIZATION : " +// + e.getLocalizedMessage()); + AnalysisLogger.getLogger().debug( + "In ConnectionManager-> ERROR IN DB INITIALIZATION : " + e.getLocalizedMessage()); // e.printStackTrace(); // AnalysisLogger.getLogger().trace(e); } @@ -135,6 +137,9 @@ public class ConnectionManager { // Get a statement from the connection Statement stmt = conn.createStatement(); + AnalysisLogger.getLogger().debug( + "In ConnectionManager-> executing query: " + query); + // Execute the query ResultSet rs = stmt.executeQuery(query); @@ -147,7 +152,17 @@ public class ConnectionManager { for (int i = 1; i < colNum + 1; i++) { String columnName = rs.getMetaData().getColumnLabel(i); // System.out.println("column Name: "+columnName); + String columnType = rs.getMetaData().getColumnTypeName(i); Object columnValue = rs.getObject(i); + //to manage the data geometry + if(columnType.equals("geometry")){ + columnValue = rs.getString(i); + //truncate value to 255 characters if it exceeds 255 characters +// if((rs.getString(i).length())>255){ +// columnValue =(Object) (rs.getString(i).substring(0, 254)); +//// System.out.println("elem geometry truncated"); +// } + } // System.out.println("value: "+columnValue); int j = 1; String newcolumnName = columnName; diff --git a/src/main/java/org/gcube/dataaccess/databases/utils/DatabaseManagement.java b/src/main/java/org/gcube/dataaccess/databases/utils/DatabaseManagement.java index e50b12e..82ddcf4 100644 --- a/src/main/java/org/gcube/dataaccess/databases/utils/DatabaseManagement.java +++ b/src/main/java/org/gcube/dataaccess/databases/utils/DatabaseManagement.java @@ -201,6 +201,11 @@ public class DatabaseManagement { } + //truncate value to 255 characters if it exceeds 255 characters + if(valConverted.length()>255){ + valConverted = valConverted.substring(0, 255); +// System.out.println("elem geometry truncated"); + } return valConverted; }