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

Rahul Patwari updated BEAM-9887:
--------------------------------
    Fix Version/s:     (was: 2.21.0)
                   2.22.0

> 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: P2
>             Fix For: 2.22.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)

Reply via email to