Thread: Re: [BUGS] BUG #14166: JDBC driver won't parse error message from DB server in German
Re: [BUGS] BUG #14166: JDBC driver won't parse error message from DB server in German
From
Michael Paquier
Date:
On Tue, May 31, 2016 at 11:32 PM, <davygora@sulzer.de> wrote: > The following bug has been logged on the website: > > Bug reference: 14166 > Logged by: Yuriy Davygora > Email address: davygora@sulzer.de > PostgreSQL version: 9.5.3 > Operating system: Windows 7 64 bit > Description: > > Prerequisites (all local, no remote servers): > - PostgreSQL DB 9.5.3 with locale German_Germany.1252 > - PostgreSQL JDBC driver postgresql-9.4.1208.jar (jre8) > - Payara JEE server 4.1.1.161.1 > - Oracle JDK 1.8.0_72 > - Misconfiguration of the JDBC connection in the domain.xml file causing > the DB connection error (see below) > > The JDBC driver provides a property 'DatabaseName' which I set to the > correct database name which is different from the user name. Here is an > excerpt from domain.xml: > > <property name="DatabaseName" value="database_name"></property> > <property name="User" value="user_name"></property> > <property name="PortNumber" value="5432"></property> > <property name="Url" value="jdbc:postgresql://localhost/"></property> > > -------------------------- > > Bug description: > > The DB connection error was "database does not exist" (which I found out > after switching the locale from German to English). To fix I had to include > the database name in the URL as follows: > > <property name="Url" > value="jdbc:postgresql://localhost/database_name?"></property> > > While the locale of the DB server was still set to German, however, I did > get a different message. Here is an excerpt from the stacktrace: > > Caused by: java.io.IOException: Ungültige UTF-8-Sequenz: das erste Byte ist > 10xxxxxx: 132 > at org.postgresql.core.UTF8Encoding.decode(UTF8Encoding.java:104) > at org.postgresql.core.PGStream.ReceiveString(PGStream.java:331) > at > org.postgresql.core.v3.ConnectionFactoryImpl.readStartupMessages(ConnectionFactoryImpl.java:705) > at > org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:213) > ... 90 more > ]] > > I downloaded the sources of the JDBC driver to find out where the error > comes from. It turned out, that the exception is thrown when the JDBC driver > cannot parse the error message from the DB server. Thus, I don't ever get to > see the original error message. > > As mentioned above, setting the locale to English allowed me to see the > error and fix it quickly. However, it would be nice, if the error messages > could be parsed in any language. > > -------------------------- > > P.S. This has nothing to do with the reported bug, however it might be a bug > in its own right. While the configuration was still as shown in the > prerequisites section, occasionally the JDBC connection would work, about > 30% of the time, on a seemingly random basis. This does not seem related to Postgres itself, but to the JDBC driver, so I switched the report to pgsql-jdbc. -- Michael
Re: [BUGS] BUG #14166: JDBC driver won't parse error message from DB server in German
From
"Davygora, Yuriy"
Date:
_____________________________________________________________________ Hello Michael, thank you for your feedback. I would like, however, to express a slight doubt in your conclusion, if I may. Apparentlyit is the server that is sending a malformed byte sequence, because, as far as I can see, the method org.postgresql.core.UTF8Encoding.decode(byte[] data, int offset, int length) in the driver does its job just fine: if itgets a correct byte sequence for a UTF-8 string it produces a correct UTF-8 string. So my naive assumption would be thatit is the server which is sending a malformed byte sequence. I might, however be wrong, because I am overlooking something. Best regards, Yuriy _______________________________________________________ Sulzer GmbH Geschaeftsfuehrende Gesellschafter: Dr. Johann Sulzer, Albert Euba, Thomas Kahabka Geschaeftsfuehrer: Angelika Rudolph, Harald Lothspeich Sitz und Registergericht: Stuttgart HRB 7608 http://www.sulzer.de -----Ursprüngliche Nachricht----- Von: Michael Paquier [mailto:michael.paquier@gmail.com] Gesendet: Mittwoch, 1. Juni 2016 02:23 An: Davygora, Yuriy <Yuriy.Davygora@sulzer.de> Cc: PostgreSQL mailing lists <pgsql-jdbc@postgresql.org> Betreff: Re: [BUGS] BUG #14166: JDBC driver won't parse error message from DB server in German On Tue, May 31, 2016 at 11:32 PM, <davygora@sulzer.de> wrote: > The following bug has been logged on the website: > > Bug reference: 14166 > Logged by: Yuriy Davygora > Email address: davygora@sulzer.de > PostgreSQL version: 9.5.3 > Operating system: Windows 7 64 bit > Description: > > Prerequisites (all local, no remote servers): > - PostgreSQL DB 9.5.3 with locale German_Germany.1252 > - PostgreSQL JDBC driver postgresql-9.4.1208.jar (jre8) > - Payara JEE server 4.1.1.161.1 > - Oracle JDK 1.8.0_72 > - Misconfiguration of the JDBC connection in the domain.xml file > causing the DB connection error (see below) > > The JDBC driver provides a property 'DatabaseName' which I set to the > correct database name which is different from the user name. Here is > an excerpt from domain.xml: > > <property name="DatabaseName" value="database_name"></property> > <property name="User" value="user_name"></property> > <property name="PortNumber" value="5432"></property> > <property name="Url" > value="jdbc:postgresql://localhost/"></property> > > -------------------------- > > Bug description: > > The DB connection error was "database does not exist" (which I found > out after switching the locale from German to English). To fix I had > to include the database name in the URL as follows: > > <property name="Url" > value="jdbc:postgresql://localhost/database_name?"></property> > > While the locale of the DB server was still set to German, however, I > did get a different message. Here is an excerpt from the stacktrace: > > Caused by: java.io.IOException: Ungültige UTF-8-Sequenz: das erste > Byte ist > 10xxxxxx: 132 > at org.postgresql.core.UTF8Encoding.decode(UTF8Encoding.java:104) > at org.postgresql.core.PGStream.ReceiveString(PGStream.java:331) > at > org.postgresql.core.v3.ConnectionFactoryImpl.readStartupMessages(ConnectionFactoryImpl.java:705) > at > org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:213) > ... 90 more > ]] > > I downloaded the sources of the JDBC driver to find out where the > error comes from. It turned out, that the exception is thrown when the > JDBC driver cannot parse the error message from the DB server. Thus, I > don't ever get to see the original error message. > > As mentioned above, setting the locale to English allowed me to see > the error and fix it quickly. However, it would be nice, if the error > messages could be parsed in any language. > > -------------------------- > > P.S. This has nothing to do with the reported bug, however it might be > a bug in its own right. While the configuration was still as shown in > the prerequisites section, occasionally the JDBC connection would > work, about 30% of the time, on a seemingly random basis. This does not seem related to Postgres itself, but to the JDBC driver, so I switched the report to pgsql-jdbc. -- Michael
Re: Re: [BUGS] BUG #14166: JDBC driver won't parse error message from DB server in German
From
Dave Cramer
Date:
Yuri,
Thanks for looking at this.
Can you subscribe to the pgsql-jdbc mailing list. Your email was held up until I could approve it
On 1 June 2016 at 04:20, Davygora, Yuriy <Yuriy.Davygora@sulzer.de> wrote:
_____________________________________________________________________
Hello Michael,
thank you for your feedback. I would like, however, to express a slight doubt in your conclusion, if I may. Apparently it is the server that is sending a malformed byte sequence, because, as far as I can see, the method org.postgresql.core.UTF8Encoding. decode(byte[] data, int offset, int length) in the driver does its job just fine: if it gets a correct byte sequence for a UTF-8 string it produces a correct UTF-8 string. So my naive assumption would be that it is the server which is sending a malformed byte sequence. I might, however be wrong, because I am overlooking something.
Best regards,
Yuriy
_______________________________________________________
Sulzer GmbH
Geschaeftsfuehrende Gesellschafter: Dr. Johann Sulzer, Albert Euba, Thomas Kahabka
Geschaeftsfuehrer: Angelika Rudolph, Harald Lothspeich
Sitz und Registergericht: Stuttgart HRB 7608
http://www.sulzer.de
-----Ursprüngliche Nachricht-----
Von: Michael Paquier [mailto:michael.paquier@gmail.com]
Gesendet: Mittwoch, 1. Juni 2016 02:23
An: Davygora, Yuriy <Yuriy.Davygora@sulzer.de>
Cc: PostgreSQL mailing lists <pgsql-jdbc@postgresql.org>
Betreff: Re: [BUGS] BUG #14166: JDBC driver won't parse error message from DB server in German
On Tue, May 31, 2016 at 11:32 PM, <davygora@sulzer.de> wrote:
> The following bug has been logged on the website:
>
> Bug reference: 14166
> Logged by: Yuriy Davygora
> Email address: davygora@sulzer.de
> PostgreSQL version: 9.5.3
> Operating system: Windows 7 64 bit
> Description:
>
> Prerequisites (all local, no remote servers):
> - PostgreSQL DB 9.5.3 with locale German_Germany.1252
> - PostgreSQL JDBC driver postgresql-9.4.1208.jar (jre8)
> - Payara JEE server 4.1.1.161.1
> - Oracle JDK 1.8.0_72
> - Misconfiguration of the JDBC connection in the domain.xml file
> causing the DB connection error (see below)
>
> The JDBC driver provides a property 'DatabaseName' which I set to the
> correct database name which is different from the user name. Here is
> an excerpt from domain.xml:
>
> <property name="DatabaseName" value="database_name"></property>
> <property name="User" value="user_name"></property>
> <property name="PortNumber" value="5432"></property>
> <property name="Url"
> value="jdbc:postgresql://localhost/"></property>
>
> --------------------------
>
> Bug description:
>
> The DB connection error was "database does not exist" (which I found
> out after switching the locale from German to English). To fix I had
> to include the database name in the URL as follows:
>
> <property name="Url"
> value="jdbc:postgresql://localhost/database_name?"></property>
>
> While the locale of the DB server was still set to German, however, I
> did get a different message. Here is an excerpt from the stacktrace:
>
> Caused by: java.io.IOException: Ungültige UTF-8-Sequenz: das erste
> Byte ist
> 10xxxxxx: 132
> at org.postgresql.core.UTF8Encoding.decode(UTF8Encoding.java:104)
> at org.postgresql.core.PGStream.ReceiveString(PGStream.java:331)
> at
> org.postgresql.core.v3.ConnectionFactoryImpl.readStartupMessages(ConnectionFactoryImpl.java:705)
> at
> org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:213)
> ... 90 more
> ]]
>
> I downloaded the sources of the JDBC driver to find out where the
> error comes from. It turned out, that the exception is thrown when the
> JDBC driver cannot parse the error message from the DB server. Thus, I
> don't ever get to see the original error message.
>
> As mentioned above, setting the locale to English allowed me to see
> the error and fix it quickly. However, it would be nice, if the error
> messages could be parsed in any language.
>
> --------------------------
>
> P.S. This has nothing to do with the reported bug, however it might be
> a bug in its own right. While the configuration was still as shown in
> the prerequisites section, occasionally the JDBC connection would
> work, about 30% of the time, on a seemingly random basis.
This does not seem related to Postgres itself, but to the JDBC driver, so I switched the report to pgsql-jdbc.
--
Michael
--
Sent via pgsql-jdbc mailing list (pgsql-jdbc@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-jdbc
Re: [BUGS] BUG #14166: JDBC driver won't parse error message fromDB server in German
From
"Davygora, Yuriy"
Date:
_____________________________________________________________________ Hello Michael, thank you for your feedback. I would like, however, to express a slight doubt in your conclusion, if I may. Apparentlyit is the server that is sending a malformed byte sequence, because, as far as I can see, the method org.postgresql.core.UTF8Encoding.decode(byte[] data, int offset, int length) in the driver does its job just fine: if itgets a correct byte sequence for a UTF-8 string it produces a correct UTF-8 string. So my naive assumption would be thatit is the server which is sending a malformed byte sequence. I might, however be wrong, because I am overlooking something. Best regards, Yuriy _______________________________________________________ Sulzer GmbH Geschaeftsfuehrende Gesellschafter: Dr. Johann Sulzer, Albert Euba, Thomas Kahabka Geschaeftsfuehrer: Angelika Rudolph, Harald Lothspeich Sitz und Registergericht: Stuttgart HRB 7608 http://www.sulzer.de -----Ursprüngliche Nachricht----- Von: Michael Paquier [mailto:michael.paquier@gmail.com] Gesendet: Mittwoch, 1. Juni 2016 02:23 An: Davygora, Yuriy <Yuriy.Davygora@sulzer.de> Cc: PostgreSQL mailing lists <pgsql-jdbc@postgresql.org> Betreff: Re: [BUGS] BUG #14166: JDBC driver won't parse error message from DB server in German On Tue, May 31, 2016 at 11:32 PM, <davygora@sulzer.de> wrote: > The following bug has been logged on the website: > > Bug reference: 14166 > Logged by: Yuriy Davygora > Email address: davygora@sulzer.de > PostgreSQL version: 9.5.3 > Operating system: Windows 7 64 bit > Description: > > Prerequisites (all local, no remote servers): > - PostgreSQL DB 9.5.3 with locale German_Germany.1252 > - PostgreSQL JDBC driver postgresql-9.4.1208.jar (jre8) > - Payara JEE server 4.1.1.161.1 > - Oracle JDK 1.8.0_72 > - Misconfiguration of the JDBC connection in the domain.xml file > causing the DB connection error (see below) > > The JDBC driver provides a property 'DatabaseName' which I set to the > correct database name which is different from the user name. Here is > an excerpt from domain.xml: > > <property name="DatabaseName" value="database_name"></property> > <property name="User" value="user_name"></property> > <property name="PortNumber" value="5432"></property> > <property name="Url" > value="jdbc:postgresql://localhost/"></property> > > -------------------------- > > Bug description: > > The DB connection error was "database does not exist" (which I found > out after switching the locale from German to English). To fix I had > to include the database name in the URL as follows: > > <property name="Url" > value="jdbc:postgresql://localhost/database_name?"></property> > > While the locale of the DB server was still set to German, however, I > did get a different message. Here is an excerpt from the stacktrace: > > Caused by: java.io.IOException: Ungültige UTF-8-Sequenz: das erste > Byte ist > 10xxxxxx: 132 > at org.postgresql.core.UTF8Encoding.decode(UTF8Encoding.java:104) > at org.postgresql.core.PGStream.ReceiveString(PGStream.java:331) > at > org.postgresql.core.v3.ConnectionFactoryImpl.readStartupMessages(ConnectionFactoryImpl.java:705) > at > org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:213) > ... 90 more > ]] > > I downloaded the sources of the JDBC driver to find out where the > error comes from. It turned out, that the exception is thrown when the > JDBC driver cannot parse the error message from the DB server. Thus, I > don't ever get to see the original error message. > > As mentioned above, setting the locale to English allowed me to see > the error and fix it quickly. However, it would be nice, if the error > messages could be parsed in any language. > > -------------------------- > > P.S. This has nothing to do with the reported bug, however it might be > a bug in its own right. While the configuration was still as shown in > the prerequisites section, occasionally the JDBC connection would > work, about 30% of the time, on a seemingly random basis. This does not seem related to Postgres itself, but to the JDBC driver, so I switched the report to pgsql-jdbc. -- Michael
Re: Re: [BUGS] BUG #14166: JDBC driver won't parse error message from DB server in German
From
Vladimir Sitnikov
Date:
I think the issue duplicates https://github.com/pgjdbc/pgjdbc/issues/165 (Send client-encoding in startup packet not SET)
Vladimir
Re: Re: [BUGS] BUG #14166: JDBC driver won't parse errormessage from DB server in German
From
Dave Cramer
Date:
Yuri,
Thanks for looking at this.
Can you subscribe to the pgsql-jdbc mailing list. Your email was held up until I could approve it
On 1 June 2016 at 04:20, Davygora, Yuriy <Yuriy.Davygora@sulzer.de> wrote:
_____________________________________________________________________
Hello Michael,
thank you for your feedback. I would like, however, to express a slight doubt in your conclusion, if I may. Apparently it is the server that is sending a malformed byte sequence, because, as far as I can see, the method org.postgresql.core.UTF8Encoding. decode(byte[] data, int offset, int length) in the driver does its job just fine: if it gets a correct byte sequence for a UTF-8 string it produces a correct UTF-8 string. So my naive assumption would be that it is the server which is sending a malformed byte sequence. I might, however be wrong, because I am overlooking something.
Best regards,
Yuriy
_______________________________________________________
Sulzer GmbH
Geschaeftsfuehrende Gesellschafter: Dr. Johann Sulzer, Albert Euba, Thomas Kahabka
Geschaeftsfuehrer: Angelika Rudolph, Harald Lothspeich
Sitz und Registergericht: Stuttgart HRB 7608
http://www.sulzer.de
-----Ursprüngliche Nachricht-----
Von: Michael Paquier [mailto:michael.paquier@gmail.com]
Gesendet: Mittwoch, 1. Juni 2016 02:23
An: Davygora, Yuriy <Yuriy.Davygora@sulzer.de>
Cc: PostgreSQL mailing lists <pgsql-jdbc@postgresql.org>
Betreff: Re: [BUGS] BUG #14166: JDBC driver won't parse error message from DB server in German
On Tue, May 31, 2016 at 11:32 PM, <davygora@sulzer.de> wrote:
> The following bug has been logged on the website:
>
> Bug reference: 14166
> Logged by: Yuriy Davygora
> Email address: davygora@sulzer.de
> PostgreSQL version: 9.5.3
> Operating system: Windows 7 64 bit
> Description:
>
> Prerequisites (all local, no remote servers):
> - PostgreSQL DB 9.5.3 with locale German_Germany.1252
> - PostgreSQL JDBC driver postgresql-9.4.1208.jar (jre8)
> - Payara JEE server 4.1.1.161.1
> - Oracle JDK 1.8.0_72
> - Misconfiguration of the JDBC connection in the domain.xml file
> causing the DB connection error (see below)
>
> The JDBC driver provides a property 'DatabaseName' which I set to the
> correct database name which is different from the user name. Here is
> an excerpt from domain.xml:
>
> <property name="DatabaseName" value="database_name"></property>
> <property name="User" value="user_name"></property>
> <property name="PortNumber" value="5432"></property>
> <property name="Url"
> value="jdbc:postgresql://localhost/"></property>
>
> --------------------------
>
> Bug description:
>
> The DB connection error was "database does not exist" (which I found
> out after switching the locale from German to English). To fix I had
> to include the database name in the URL as follows:
>
> <property name="Url"
> value="jdbc:postgresql://localhost/database_name?"></property>
>
> While the locale of the DB server was still set to German, however, I
> did get a different message. Here is an excerpt from the stacktrace:
>
> Caused by: java.io.IOException: Ungültige UTF-8-Sequenz: das erste
> Byte ist
> 10xxxxxx: 132
> at org.postgresql.core.UTF8Encoding.decode(UTF8Encoding.java:104)
> at org.postgresql.core.PGStream.ReceiveString(PGStream.java:331)
> at
> org.postgresql.core.v3.ConnectionFactoryImpl.readStartupMessages(ConnectionFactoryImpl.java:705)
> at
> org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:213)
> ... 90 more
> ]]
>
> I downloaded the sources of the JDBC driver to find out where the
> error comes from. It turned out, that the exception is thrown when the
> JDBC driver cannot parse the error message from the DB server. Thus, I
> don't ever get to see the original error message.
>
> As mentioned above, setting the locale to English allowed me to see
> the error and fix it quickly. However, it would be nice, if the error
> messages could be parsed in any language.
>
> --------------------------
>
> P.S. This has nothing to do with the reported bug, however it might be
> a bug in its own right. While the configuration was still as shown in
> the prerequisites section, occasionally the JDBC connection would
> work, about 30% of the time, on a seemingly random basis.
This does not seem related to Postgres itself, but to the JDBC driver, so I switched the report to pgsql-jdbc.
--
Michael
--
Sent via pgsql-jdbc mailing list (pgsql-jdbc@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-jdbc
Re: Re: [BUGS] BUG #14166: JDBC driver won't parse errormessage from DB server in German
From
Vladimir Sitnikov
Date:
I think the issue duplicates https://github.com/pgjdbc/pgjdbc/issues/165 (Send client-encoding in startup packet not SET)
Vladimir