[ 
https://issues.apache.org/jira/browse/FLINK-33791?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17795236#comment-17795236
 ] 

Sergey Nuyanzin edited comment on FLINK-33791 at 12/11/23 8:26 AM:
-------------------------------------------------------------------

[~lijingwei.5018]  can you be more precise about test case?

We have testcase at 
{{org.apache.flink.connector.jdbc.databases.postgres.catalog.PostgresCatalogITCase#testArrayTypes}}
 when array is null and it doesn't fail.

Do you have a test case confirming failure you've mentioned, or even better 
ready to run JUnit test?


was (Author: sergey nuyanzin):
[~lijingwei.5018]  can you be more precise about test case?

We have testcase at 
{{org.apache.flink.connector.jdbc.databases.postgres.catalog.PostgresCatalogITCase#testArrayTypes}}
 when array is null and it doesn't fail.

Do you have a test case confirming failure you've mentioned?

> Fix NPE when array is null in PostgresArrayConverter in flink-connector-jdbc
> ----------------------------------------------------------------------------
>
>                 Key: FLINK-33791
>                 URL: https://issues.apache.org/jira/browse/FLINK-33791
>             Project: Flink
>          Issue Type: Bug
>          Components: Connectors / JDBC
>            Reporter: JingWei Li
>            Priority: Major
>
> {code:java}
> // private JdbcDeserializationConverter 
> createPostgresArrayConverter(ArrayType arrayType) {
>     // Since PGJDBC 42.2.15 (https://github.com/pgjdbc/pgjdbc/pull/1194) 
> bytea[] is wrapped in
>     // primitive byte arrays
>     final Class<?> elementClass =
>             
> LogicalTypeUtils.toInternalConversionClass(arrayType.getElementType());
>     final JdbcDeserializationConverter elementConverter =
>             createNullableInternalConverter(arrayType.getElementType());
>     return val -> {
>         @SuppressWarnings("unchecked")
>         T pgArray = (T) val;
>         Object[] in = (Object[]) pgArray.getArray();
>         final Object[] array = (Object[]) Array.newInstance(elementClass, 
> in.length);
>         for (int i = 0; i < in.length; i++) {
>             array[i] = elementConverter.deserialize(in[i]);
>         }
>         return new GenericArrayData(array);
>     };
> } {code}
> When use this method, array is null pgArray.getArray() will throw NPE。



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to