修正された問題
- CredentialPluginインターフェイスを使用してカスタム認証情報プラグインを実装すると、競合状態が原因でマルチスレッド環境で接続エラーが発生する可能性があります。
- Connector/J 3.0および3.1の以前のリリースでは、複数のスレッドが同じ静的ServiceLoader
インスタンスを使用して複数のCredentialPluginインスタンスをロードしようとする可能性があり、スレッド間で競合状態が発生していました。 - このリリース以降、スレッドがCredentialPluginインスタンスをロードしようとすると、スレッドは独自に使用する新しいServiceLoader
インスタンスを動的に作成するため、複数のスレッドが同じインスタンスを使用することはありません。
- Connector/J 3.0および3.1の以前のリリースでは、複数のスレッドが同じ静的ServiceLoader
- Unixドメインソケットに接続している場合、パケットサイズが32Kを超えると、Connector/Jは正しくないデータを読み取ります。
- バイナリプロトコルでは、TIME列の値が00:00:00の時、値が正しくデコードされません。
- org.mariadb.jdbc.Statementクラスは、JDBC 4.3 APIからの様々な引用関連のメソッドを実装していません。
- Connector/J 3.0および3.1の以前のリリースでは、JDBC APIのデフォルトの引用関連のメソッドが使用されているため、誤った引用文字が使用される可能性があります。
- このリリース以降、次の引用関連のメソッドがorg.mariadb.jdbc.Statementクラスに実装されています:
・String enquoteLiteral(String val)
・String enquoteIdentifier(String identifier, boolean alwaysQuote)
・String enquoteNCharLiteral(String val)
・boolean isSimpleIdentifier(String identifier)
- BIT(1)列が照会され、transformedBitIsBooleanパラメータが無効になっている場合、Connector/Jはデフォルトの列メタデータをBITではなくBOOLEANに設定します。
- TlsSocketPluginインターフェイスを使用してTLSプラグインを実装すると、競合状態によってエラーが発生する可能性があります。
- 以前のリリースでは、現在のスレッドのクラスローダーを使用してTlsSocketPluginインスタンスをロードしていました。そのため、一部のスレッドで次のようなエラーが発生していました:
Client has not found any TLS factory plugin with name 'NAME' - このリリース以降、Connector/Jの内部クラスローダーを使用してTlsSocketPluginインスタンスをロードするようになりました。
- 以前のリリースでは、現在のスレッドのクラスローダーを使用してTlsSocketPluginインスタンスをロードしていました。そのため、一部のスレッドで次のようなエラーが発生していました:
- DatabaseMetadata.getTypeInfo()メソッドを使用してデータ型のメタデータを返すと、UNSIGNED_ATTRIBUTE列に正しくない値が返されます。
- 以前のリリースでは、UNSIGNED_ATTRIBUTE列は常にtrueでした。
- このリリース以降、UNSIGNED_ATTRIBUTE列は、数値列がUNSIGNED属性で定義されている場合にのみtrueになります。
MariaDB Connector/J 3.1.3のリリースノート(MariaDB社ウェブサイト):
https://mariadb.com/docs/server/release-notes/mariadb-connector-j-3-1/3-1-3/
MariaDBプロダクト・サポート・サービス
MariaDBプロダクト・サポート・サービスは、MariaDBおよびその関連製品をご利用されているお客様へ、必要なソフトウェアや専門的なサポートなどを提供するサービスです。