Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 893363 Details for
Bug 871682
NullPointerException in mysql jdbc driver when specifying characterEncoding and sessionVariables
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
[patch]
backported patch from upstream bug
0001-backported-fix-of-bug-871682.patch (text/plain), 12.55 KB, created by
Jakub Dorňák
on 2014-05-07 16:03:11 UTC
(
hide
)
Description:
backported patch from upstream bug
Filename:
MIME Type:
Creator:
Jakub Dorňák
Created:
2014-05-07 16:03:11 UTC
Size:
12.55 KB
patch
obsolete
>From ed80c7ef297f61bbc375c00b150d4bca1d7ba00a Mon Sep 17 00:00:00 2001 >From: =?UTF-8?q?Jakub=20Dor=C5=88=C3=A1k?= <jdornak@redhat.com> >Date: Wed, 7 May 2014 17:20:07 +0200 >Subject: [PATCH] backported fix of bug 871682 > >--- > ...l-connector-java-5.1.17-characterEncoding.patch | 239 +++++++++++++++++++++ > mysql-connector-java.spec | 10 +- > 2 files changed, 247 insertions(+), 2 deletions(-) > create mode 100644 mysql-connector-java-5.1.17-characterEncoding.patch > >diff --git a/mysql-connector-java-5.1.17-characterEncoding.patch b/mysql-connector-java-5.1.17-characterEncoding.patch >new file mode 100644 >index 0000000..a453f7b >--- /dev/null >+++ b/mysql-connector-java-5.1.17-characterEncoding.patch >@@ -0,0 +1,239 @@ >+diff -up --recursive mysql-connector-java-5.1.17.orig/src/com/mysql/jdbc/ConnectionImpl.java mysql-connector-java-5.1.17/src/com/mysql/jdbc/ConnectionImpl.java >+--- mysql-connector-java-5.1.17.orig/src/com/mysql/jdbc/ConnectionImpl.java 2011-07-04 16:24:08.000000000 +0200 >++++ mysql-connector-java-5.1.17/src/com/mysql/jdbc/ConnectionImpl.java 2014-05-07 16:55:25.271479698 +0200 >+@@ -3097,7 +3097,11 @@ public class ConnectionImpl extends Conn >+ */ >+ public String getServerCharacterEncoding() { >+ if (this.io.versionMeetsMinimum(4, 1, 0)) { >+- return (String) this.serverVariables.get("character_set_server"); >++ if (this.io.serverCharsetIndex < 65535) { >++ return CharsetMapping.MYSQL_INDEX_TO_MYSQL_CHARSET[this.io.serverCharsetIndex]; >++ } else { >++ return (String) this.serverVariables.get("character_set_server"); >++ } >+ } else { >+ return (String) this.serverVariables.get("character_set"); >+ } >+diff -up --recursive mysql-connector-java-5.1.17.orig/src/com/mysql/jdbc/CharsetMapping.java mysql-connector-java-5.1.17/src/com/mysql/jdbc/CharsetMapping.java >+--- mysql-connector-java-5.1.17.orig/src/com/mysql/jdbc/CharsetMapping.java 2011-07-04 16:24:08.000000000 +0200 >++++ mysql-connector-java-5.1.17/src/com/mysql/jdbc/CharsetMapping.java 2014-05-07 16:52:50.451820997 +0200 >+@@ -55,6 +55,11 @@ public class CharsetMapping { >+ public static final String[] INDEX_TO_CHARSET; >+ >+ /** >++ * Map of MySQL-4.1 charset indexes to MySQL encoding names >++ */ >++ public static final String[] MYSQL_INDEX_TO_MYSQL_CHARSET; >++ >++ /** >+ * Map of MySQL-4.1 collation index to collation names >+ */ >+ public static final String[] INDEX_TO_COLLATION; >+@@ -293,6 +298,187 @@ public class CharsetMapping { >+ >+ MULTIBYTE_CHARSETS = Collections.unmodifiableMap(tempMapMulti); >+ >++ MYSQL_INDEX_TO_MYSQL_CHARSET = new String[255]; >++ >++ MYSQL_INDEX_TO_MYSQL_CHARSET[1] = "big5"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[2] = "czech"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[3] = "ISO8859_1"; // punting for "dec8" >++ MYSQL_INDEX_TO_MYSQL_CHARSET[4] = "ISO8859_1"; // punting for "dos" >++ MYSQL_INDEX_TO_MYSQL_CHARSET[5] = "german1"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[6] = "ISO8859_1"; // punting for "hp8" >++ MYSQL_INDEX_TO_MYSQL_CHARSET[7] = "koi8_ru"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[8] = "latin1"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[9] = "latin2"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[10] = "ISO8859_1"; // punting for "swe7" >++ MYSQL_INDEX_TO_MYSQL_CHARSET[11] = "usa7"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[12] = "ujis"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[13] = "sjis"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[14] = "cp1251"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[15] = "danish"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[16] = "hebrew"; >++ >++ MYSQL_INDEX_TO_MYSQL_CHARSET[17] = NOT_USED; // not used in the server >++ >++ MYSQL_INDEX_TO_MYSQL_CHARSET[18] = "tis620"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[19] = "euc_kr"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[20] = "estonia"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[21] = "hungarian"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[22] = "KOI8_R"; //punting for "koi8_ukr" >++ MYSQL_INDEX_TO_MYSQL_CHARSET[23] = "win1251ukr"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[24] = "gb2312"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[25] = "greek"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[26] = "win1250"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[27] = "croat"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[28] = "gbk"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[29] = "cp1257"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[30] = "latin5"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[31] = "latin1_de"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[32] = "ISO8859_1"; // punting "armscii8" >++ MYSQL_INDEX_TO_MYSQL_CHARSET[33] = "utf8" ; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[34] = "Cp1250"; // punting "win1250ch" >++ MYSQL_INDEX_TO_MYSQL_CHARSET[35] = "ucs2" ; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[36] = "cp866"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[37] = "Cp895"; // punting "keybcs2" >++ MYSQL_INDEX_TO_MYSQL_CHARSET[38] = "macce"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[39] = "macroman"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[40] = "latin2"; // punting "pclatin2" >++ MYSQL_INDEX_TO_MYSQL_CHARSET[41] = "latvian"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[42] = "latvian1"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[43] = "macce"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[44] = "macce"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[45] = "utf8mb4"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[46] = "utf8mb4"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[47] = "latin1"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[48] = "latin1"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[49] = "latin1"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[50] = "cp1251"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[51] = "cp1251"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[52] = "cp1251"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[53] = "macroman"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[54] = "macroman"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[55] = "macroman"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[56] = "macroman"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[57] = "cp1256"; >++ >++ MYSQL_INDEX_TO_MYSQL_CHARSET[58] = NOT_USED; // not used >++ MYSQL_INDEX_TO_MYSQL_CHARSET[59] = NOT_USED; // not used >++ MYSQL_INDEX_TO_MYSQL_CHARSET[60] = NOT_USED; // not used >++ MYSQL_INDEX_TO_MYSQL_CHARSET[61] = NOT_USED; // not used >++ MYSQL_INDEX_TO_MYSQL_CHARSET[62] = NOT_USED; // not used >++ >++ MYSQL_INDEX_TO_MYSQL_CHARSET[63] = "binary"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[64] = "ISO8859_2"; // punting "armscii" >++ MYSQL_INDEX_TO_MYSQL_CHARSET[65] = "ascii"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[66] = "cp1250"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[67] = "cp1256"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[68] = "cp866"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[69] = "US-ASCII"; // punting for "dec8" >++ MYSQL_INDEX_TO_MYSQL_CHARSET[70] = "greek"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[71] = "hebrew"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[72] = "US-ASCII"; // punting for "hp8" >++ MYSQL_INDEX_TO_MYSQL_CHARSET[73] = "Cp895"; // punting for "keybcs2" >++ MYSQL_INDEX_TO_MYSQL_CHARSET[74] = "koi8r"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[75] = "KOI8_r"; // punting for koi8ukr" >++ >++ MYSQL_INDEX_TO_MYSQL_CHARSET[76] = NOT_USED; // not used >++ >++ MYSQL_INDEX_TO_MYSQL_CHARSET[77] = "latin2"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[78] = "latin5"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[79] = "latin7"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[80] = "cp850"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[81] = "cp852"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[82] = "ISO8859_1"; // punting for "swe7" >++ MYSQL_INDEX_TO_MYSQL_CHARSET[83] = "utf8" ; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[84] = "big5" ; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[85] = "euckr"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[86] = "gb2312"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[87] = "gbk"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[88] = "sjis"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[89] = "tis620"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[90] = "ucs2"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[91] = "ujis"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[92] = "US-ASCII"; //punting for "geostd8" >++ MYSQL_INDEX_TO_MYSQL_CHARSET[93] = "US-ASCII"; // punting for "geostd8" >++ MYSQL_INDEX_TO_MYSQL_CHARSET[94] = "latin1"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[95] = "cp932"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[96] = "cp932"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[97] = "eucjpms"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[98] = "eucjpms"; >++ >++ for (int i = 99; i < 128; i++) { >++ MYSQL_INDEX_TO_MYSQL_CHARSET[i] = NOT_USED; // not used >++ } >++ >++ MYSQL_INDEX_TO_MYSQL_CHARSET[128] = "ucs2"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[129] = "ucs2"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[130] = "ucs2"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[131] = "ucs2"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[132] = "ucs2"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[133] = "ucs2"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[134] = "ucs2"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[135] = "ucs2"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[136] = "ucs2"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[137] = "ucs2"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[138] = "ucs2"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[139] = "ucs2"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[140] = "ucs2"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[141] = "ucs2"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[142] = "ucs2"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[143] = "ucs2"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[144] = "ucs2"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[145] = "ucs2"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[146] = "ucs2"; >++ >++ for (int i = 147; i < 192; i++) { >++ MYSQL_INDEX_TO_MYSQL_CHARSET[i] = NOT_USED; // not used >++ } >++ >++ MYSQL_INDEX_TO_MYSQL_CHARSET[192] = "utf8"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[193] = "utf8"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[194] = "utf8"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[195] = "utf8"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[196] = "utf8"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[197] = "utf8"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[198] = "utf8"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[199] = "utf8"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[200] = "utf8"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[201] = "utf8"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[202] = "utf8"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[203] = "utf8"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[204] = "utf8"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[205] = "utf8"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[206] = "utf8"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[207] = "utf8"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[208] = "utf8"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[209] = "utf8"; >++ MYSQL_INDEX_TO_MYSQL_CHARSET[210] = "utf8"; >++ // 5.2+ charsets >++ MYSQL_INDEX_TO_MYSQL_CHARSET[211] = "utf8"; >++ >++ for (int i = 212; i < 224; i++) { >++ MYSQL_INDEX_TO_MYSQL_CHARSET[i] = NOT_USED; >++ } >++ >++ for (int i = 224; i <= 243; i++) { >++ MYSQL_INDEX_TO_MYSQL_CHARSET[i] = "utf8"; >++ } >++ >++ for (int i = 101; i<= 120; i++) { >++ MYSQL_INDEX_TO_MYSQL_CHARSET[i] = "utf16"; >++ } >++ >++ for (int i = 160; i<= 179; i++) { >++ MYSQL_INDEX_TO_MYSQL_CHARSET[i] = "utf32"; >++ } >++ >++ for (int i = 244; i < 254; i++) { >++ MYSQL_INDEX_TO_MYSQL_CHARSET[i] = NOT_USED; >++ } >++ >++ MYSQL_INDEX_TO_MYSQL_CHARSET[254] = "utf8"; >++ >++ >++ >+ INDEX_TO_CHARSET = new String[255]; >+ >+ try { >+diff -up --recursive mysql-connector-java-5.1.17.orig/src/testsuite/regression/ConnectionRegressionTest.java mysql-connector-java-5.1.17/src/testsuite/regression/ConnectionRegressionTest.java >+--- mysql-connector-java-5.1.17.orig/src/testsuite/regression/ConnectionRegressionTest.java 2011-07-04 16:24:08.000000000 +0200 >++++ mysql-connector-java-5.1.17/src/testsuite/regression/ConnectionRegressionTest.java 2014-05-07 16:52:50.453820993 +0200 >+@@ -3131,4 +3131,15 @@ public class ConnectionRegressionTest ex >+ rConn2.prepareStatement("SELECT 1").executeQuery(); >+ >+ } >++ >++ public void testBug61201() throws Exception { >++ Properties props = new Properties(); >++ props.setProperty("sessionVariables", "FOREIGN_KEY_CHECKS=0"); >++ props.setProperty("characterEncoding", "latin1"); >++ props.setProperty("profileSQL", "true"); >++ >++ Connection varConn = getConnectionWithProps(props); >++ varConn.close(); >++ } >++ >+ } >+\ Chybà znak konce Åádku na konci souboru >diff --git a/mysql-connector-java.spec b/mysql-connector-java.spec >index 1ba40f6..221a385 100644 >--- a/mysql-connector-java.spec >+++ b/mysql-connector-java.spec >@@ -17,8 +17,8 @@ > Summary: Official JDBC driver for MySQL > Name: mysql-connector-java > Version: 5.1.17 >-Release: 6%{?dist} >-Epoch: 1 >+Release: 7%{?dist} >+Epoch: 1 > > # MySQL FLOSS Exception > License: GPLv2 with exceptions >@@ -44,6 +44,7 @@ Source0: %{name}-%{version}.tar.xz > > # Patch to build with JDBC 4.1/Java 7 > Patch0: %{name}-jdbc-4.1.patch >+Patch1: %{name}-5.1.17-characterEncoding.patch > > BuildRoot: %{_tmppath}/%{name}-%{epoch}-%{version}-%{release}-root-%(%{__id_u} -n) > >@@ -103,6 +104,7 @@ rm README README.txt > sed -i 's/\r//' docs/README.txt > > %patch0 -p1 >+%patch1 -p1 > > %build > >@@ -174,6 +176,10 @@ rm -rf $RPM_BUILD_ROOT > %endif > > %changelog >+* Wed May 7 2014 Jakub DorÅák <jdornak@redhat.com> - 1:5.1.17-7 >+- backported fix of bug 871682 >+Resolves: #871682 >+ > * Sun May 20 2012 Tom Lane <tgl@redhat.com> 1:5.1.17-6 > - Add explicit Obsoletes to get rid of old arch-specific packages, > per discussions in bugs 821892 and 822206 >-- >1.9.0 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 871682
: 893363