From bc97be0b872ccbe30ee40b73bf54b05e5a98d604 Mon Sep 17 00:00:00 2001 From: Roberto Franchini Date: Tue, 6 Jun 2017 11:45:14 +0200 Subject: [PATCH] adds LOCALE.English to each toLowerCase call to avoid the famous Turkish problem refs: https://github.com/orientechnologies/orientdb/issues/7464 --- .../mapper/rdbms/OER2GraphMapper.java | 2 +- .../OJavaConventionNameResolver.java | 22 ++++++++++--------- .../handler/ODBMSDataTypeHandler.java | 3 ++- .../teleporter/util/ODriverConfigurator.java | 9 +++----- .../teleporter/writer/OGraphModelWriter.java | 2 +- 5 files changed, 19 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/orientechnologies/teleporter/mapper/rdbms/OER2GraphMapper.java b/src/main/java/com/orientechnologies/teleporter/mapper/rdbms/OER2GraphMapper.java index 3978219b..a41d3de7 100644 --- a/src/main/java/com/orientechnologies/teleporter/mapper/rdbms/OER2GraphMapper.java +++ b/src/main/java/com/orientechnologies/teleporter/mapper/rdbms/OER2GraphMapper.java @@ -577,7 +577,7 @@ private List> fromResultSetToList(ResultSet result LinkedHashMap row = new LinkedHashMap(); for (int i = 1; i <= columnsAmount; i++) { - row.put(resultForeignKeys.getMetaData().getColumnName(i).toLowerCase(), resultForeignKeys.getString(i)); + row.put(resultForeignKeys.getMetaData().getColumnName(i).toLowerCase(Locale.ENGLISH), resultForeignKeys.getString(i)); } rows.add(row); } diff --git a/src/main/java/com/orientechnologies/teleporter/nameresolver/OJavaConventionNameResolver.java b/src/main/java/com/orientechnologies/teleporter/nameresolver/OJavaConventionNameResolver.java index 33aad3b7..3816530c 100644 --- a/src/main/java/com/orientechnologies/teleporter/nameresolver/OJavaConventionNameResolver.java +++ b/src/main/java/com/orientechnologies/teleporter/nameresolver/OJavaConventionNameResolver.java @@ -20,6 +20,8 @@ import com.orientechnologies.teleporter.model.dbschema.OCanonicalRelationship; +import java.util.Locale; + /** * Implementation of ONameResolver that performs name transformations on the elements * of the data source according to the Java convention. @@ -106,14 +108,14 @@ public String toJavaClassConvention(String name) { } if (allUpperCase) { - name = name.toLowerCase(); + name = name.toLowerCase(Locale.ENGLISH); } if (name.contains(" ")) { int pos; while (name.contains(" ")) { pos = name.indexOf(" "); - name = name.substring(0, pos) + (name.charAt(pos + 1) + "").toUpperCase() + name.substring(pos + 2); + name = name.substring(0, pos) + (name.charAt(pos + 1) + "").toUpperCase(Locale.ENGLISH) + name.substring(pos + 2); } } @@ -123,7 +125,7 @@ public String toJavaClassConvention(String name) { pos = name.indexOf("_"); if(pos < name.length()-1) { // the '_' char is not in last position - name = name.substring(0, pos) + (name.charAt(pos + 1) + "").toUpperCase() + name.substring(pos + 2); + name = name.substring(0, pos) + (name.charAt(pos + 1) + "").toUpperCase(Locale.ENGLISH) + name.substring(pos + 2); } else { // the '_' char is in last position @@ -136,13 +138,13 @@ public String toJavaClassConvention(String name) { int pos; while (name.contains("-")) { pos = name.indexOf("-"); - name = name.substring(0, pos) + (name.charAt(pos + 1) + "").toUpperCase() + name.substring(pos + 2); + name = name.substring(0, pos) + (name.charAt(pos + 1) + "").toUpperCase(Locale.ENGLISH) + name.substring(pos + 2); } } // First char must be uppercase if (Character.isLowerCase(name.charAt(0))) - name = name.substring(0, 1).toUpperCase() + name.substring(1); + name = name.substring(0, 1).toUpperCase(Locale.ENGLISH) + name.substring(1); return name; @@ -161,14 +163,14 @@ public String toJavaVariableConvention(String name) { } if (allUpperCase) { - name = name.toLowerCase(); + name = name.toLowerCase(Locale.ENGLISH); } if (name.contains(" ")) { int pos; while (name.contains(" ")) { pos = name.indexOf(" "); - name = name.substring(0, pos) + (name.charAt(pos + 1) + "").toUpperCase() + name.substring(pos + 2); + name = name.substring(0, pos) + (name.charAt(pos + 1) + "").toUpperCase(Locale.ENGLISH) + name.substring(pos + 2); } } @@ -176,7 +178,7 @@ public String toJavaVariableConvention(String name) { int pos; while (name.contains("_")) { pos = name.indexOf("_"); - name = name.substring(0, pos) + (name.charAt(pos + 1) + "").toUpperCase() + name.substring(pos + 2); + name = name.substring(0, pos) + (name.charAt(pos + 1) + "").toUpperCase(Locale.ENGLISH) + name.substring(pos + 2); } } @@ -184,13 +186,13 @@ public String toJavaVariableConvention(String name) { int pos; while (name.contains("-")) { pos = name.indexOf("-"); - name = name.substring(0, pos) + (name.charAt(pos + 1) + "").toUpperCase() + name.substring(pos + 2); + name = name.substring(0, pos) + (name.charAt(pos + 1) + "").toUpperCase(Locale.ENGLISH) + name.substring(pos + 2); } } // First char must be lowercase if (Character.isUpperCase(name.charAt(0))) - name = name.substring(0, 1).toLowerCase() + name.substring(1); + name = name.substring(0, 1).toLowerCase(Locale.ENGLISH) + name.substring(1); return name; } diff --git a/src/main/java/com/orientechnologies/teleporter/persistence/handler/ODBMSDataTypeHandler.java b/src/main/java/com/orientechnologies/teleporter/persistence/handler/ODBMSDataTypeHandler.java index ced9c641..6913fcd3 100644 --- a/src/main/java/com/orientechnologies/teleporter/persistence/handler/ODBMSDataTypeHandler.java +++ b/src/main/java/com/orientechnologies/teleporter/persistence/handler/ODBMSDataTypeHandler.java @@ -19,6 +19,7 @@ package com.orientechnologies.teleporter.persistence.handler; import java.util.HashMap; +import java.util.Locale; import java.util.Map; import com.orientechnologies.teleporter.context.OTeleporterContext; @@ -52,7 +53,7 @@ public ODBMSDataTypeHandler() { public OType resolveType(String type) { // normalization - type = type.toLowerCase(); + type = type.toLowerCase(Locale.ENGLISH); // Defined Types if (this.dbmsType2OrientType.keySet().contains(type)) diff --git a/src/main/java/com/orientechnologies/teleporter/util/ODriverConfigurator.java b/src/main/java/com/orientechnologies/teleporter/util/ODriverConfigurator.java index a40bc065..dff0b70e 100644 --- a/src/main/java/com/orientechnologies/teleporter/util/ODriverConfigurator.java +++ b/src/main/java/com/orientechnologies/teleporter/util/ODriverConfigurator.java @@ -31,10 +31,7 @@ import java.nio.charset.Charset; import java.sql.Connection; import java.sql.SQLException; -import java.util.LinkedHashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; +import java.util.*; /** * Executes an automatic migrationConfigDoc of the chosen driver JDBC. @@ -100,7 +97,7 @@ private void fillMap() { public String fetchDriverClassName(String driverName) { String driverClassName = null; - driverName = driverName.toLowerCase(); + driverName = driverName.toLowerCase(Locale.ENGLISH); try { @@ -155,7 +152,7 @@ public void checkDriverConfiguration(String driverName) { public void checkDriverConfiguration(String driverName, String driverClassPath) { - driverName = driverName.toLowerCase(); + driverName = driverName.toLowerCase(Locale.ENGLISH); try { diff --git a/src/main/java/com/orientechnologies/teleporter/writer/OGraphModelWriter.java b/src/main/java/com/orientechnologies/teleporter/writer/OGraphModelWriter.java index de093885..1bb50f26 100644 --- a/src/main/java/com/orientechnologies/teleporter/writer/OGraphModelWriter.java +++ b/src/main/java/com/orientechnologies/teleporter/writer/OGraphModelWriter.java @@ -632,7 +632,7 @@ else if (currentVertexType.getParentType() != null && !orientCorrespondentVertex } public OType resolveOrientDBType(String orientdbTypeName) { - orientdbTypeName = orientdbTypeName.toLowerCase(); + orientdbTypeName = orientdbTypeName.toLowerCase(Locale.ENGLISH); return this.orientdbTypeName2orientdbType.get(orientdbTypeName); }