You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@beam.apache.org by "Rahul Patwari (Jira)" <ji...@apache.org> on 2020/05/12 03:46:00 UTC

[jira] [Resolved] (BEAM-9887) Throw IllegalArgumentException when building Row with logical types with Invalid input

     [ https://issues.apache.org/jira/browse/BEAM-9887?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Rahul Patwari resolved BEAM-9887.
---------------------------------
    Resolution: Fixed

> Throw IllegalArgumentException when building Row with logical types with Invalid input 
> ---------------------------------------------------------------------------------------
>
>                 Key: BEAM-9887
>                 URL: https://issues.apache.org/jira/browse/BEAM-9887
>             Project: Beam
>          Issue Type: Bug
>          Components: sdk-java-core
>            Reporter: Rahul Patwari
>            Assignee: Rahul Patwari
>            Priority: Major
>             Fix For: 2.21.0
>
>          Time Spent: 3h 50m
>  Remaining Estimate: 0h
>
> schema.logicaltypes.FixedBytes logical type expects an argument - the length of the byte[].
> When an invalid input value (with length < expectedLength) is provided while building the Row with FixedBytes logical type, IllegalArgumentException is expected. But, the Exception is not thrown. The below code illustrates the behaviour:
> {code:java}
>  Schema schema = Schema.builder().addLogicalTypeField("char", FixedBytes.of(10)).build();
>  byte[] byteArray = {1, 2, 3, 4, 5};
>  Row row = Row.withSchema(schema).withFieldValue("char", byteArray).build();
>  System.out.println(Arrays.toString(row.getLogicalTypeValue("char", byte[].class)));
> {code}
> The above code prints "[1, 2, 3, 4, 5]" with length 5 to the console, whereas the expected length of FixedBytes, is 10.
> The code is run on the master branch.
> The behaviour is as expected with 2.20.0 release.
> {{ }}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)