diff -Naur src.old/com/mysql/jdbc/DatabaseMetaData.java src/com/mysql/jdbc/DatabaseMetaData.java --- src.old/com/mysql/jdbc/DatabaseMetaData.java 2011-10-03 11:44:02.000000000 +0300 +++ src/com/mysql/jdbc/DatabaseMetaData.java 2011-12-09 19:18:41.324361892 +0200 @@ -4133,7 +4133,7 @@ //in form of DB_NAME.SP_NAME thus we need to remove it String tmpProcedureOrFunctionNamePattern = null; //Check if NOT a pattern first, then "sanitize" - if ((procedureOrFunctionNamePattern != null) && (procedureOrFunctionNamePattern != "%")) { + if ((procedureOrFunctionNamePattern != null) && (!"%".equals(procedureOrFunctionNamePattern))) { tmpProcedureOrFunctionNamePattern = StringUtils.sanitizeProcOrFuncName(procedureOrFunctionNamePattern); } @@ -4243,7 +4243,7 @@ if (idx > 0) { catalog = procName.substring(0,idx); - if (quotedId != " " && catalog.startsWith(quotedId) && catalog.endsWith(quotedId)) { + if (!" ".equals(this.quotedId) && catalog.startsWith(quotedId) && catalog.endsWith(quotedId)) { catalog = procName.substring(1, catalog.length() - 1); } procNameToCall = procName; // Leave as CAT.PROC, needed later diff -Naur src.old/com/mysql/jdbc/StatementImpl.java src/com/mysql/jdbc/StatementImpl.java --- src.old/com/mysql/jdbc/StatementImpl.java 2011-10-03 11:44:02.000000000 +0300 +++ src/com/mysql/jdbc/StatementImpl.java 2011-12-09 19:19:45.912275318 +0200 @@ -122,7 +122,7 @@ try { synchronized (cancelTimeoutMutex) { - if (origConnURL == connection.getURL()) { + if (origConnURL.equals(connection.getURL())) { //All's fine cancelConn = connection.duplicate(); cancelStmt = cancelConn.createStatement();