[jira] [Updated] (IGNITE-21836) KeyValueView. GetNullable produces confusing error for a PoJo when field / column nullability do not match
[ https://issues.apache.org/jira/browse/IGNITE-21836?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Iurii Gerzhedovich updated IGNITE-21836: Fix Version/s: 3.0.0-beta2 > KeyValueView. GetNullable produces confusing error for a PoJo when field / > column nullability do not match > -- > > Key: IGNITE-21836 > URL: https://issues.apache.org/jira/browse/IGNITE-21836 > Project: Ignite > Issue Type: Bug > Components: sql >Reporter: Maksim Zhuravkov >Assignee: Maksim Zhuravkov >Priority: Major > Labels: ignite-3 > Fix For: 3.0.0-beta2 > > Time Spent: 2.5h > Remaining Estimate: 0h > > GetNullable method of KeyValueView produces a confusing error for a PoJo when > a field is primitive but underlying column is nullable: > {code:java} > public class ItKvTest extends BaseSqlIntegrationTest { > public static class BoolStr { > boolean boolCol; > String strCol; > } > @Test > public void testGetNullable() { > sql("CREATE TABLE t0 (ID INTEGER PRIMARY KEY, boolCol BOOLEAN, strCol > VARCHAR)"); > Table table = CLUSTER.aliveNode().tables().table("T0"); > KeyValueView view = > table.keyValueView(Mapper.of(Integer.class), Mapper.of(BoolStr.class)); > view.put(null, 1, null); > view.getNullable(null, 1); > } > } > {code} > {code:java} > org.apache.ignite.lang.MarshallerException: IGN-CMN-65535 > TraceId:ef2d9c71-8f2d-4279-99fc-25e8e14ede40 Failed to write field [id=0] > at > org.apache.ignite.internal.table.KeyValueViewImpl.marshal(KeyValueViewImpl.java:524) > at > org.apache.ignite.internal.table.KeyValueViewImpl.lambda$putAsync$16(KeyValueViewImpl.java:225) > at > org.apache.ignite.internal.table.AbstractTableView.lambda$withSchemaSync$1(AbstractTableView.java:180) > at > java.base/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1187) > at > java.base/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2341) > at > org.apache.ignite.internal.table.AbstractTableView.withSchemaSync(AbstractTableView.java:180) > at > org.apache.ignite.internal.table.AbstractTableView.withSchemaSync(AbstractTableView.java:171) > at > org.apache.ignite.internal.table.AbstractTableView.doOperation(AbstractTableView.java:147) > at > org.apache.ignite.internal.table.KeyValueViewImpl.putAsync(KeyValueViewImpl.java:224) > at > org.apache.ignite.internal.table.KeyValueViewImpl.lambda$put$15(KeyValueViewImpl.java:216) > at > org.apache.ignite.internal.table.AbstractTableView.sync(AbstractTableView.java:124) > at > org.apache.ignite.internal.table.KeyValueViewImpl.put(KeyValueViewImpl.java:216) > at > org.apache.ignite.internal.sql.api.ItKevtest.testGetNullable(ItKevtest.java:24) > at java.base/java.lang.reflect.Method.invoke(Method.java:580) > at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) > at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) > Caused by: org.apache.ignite.internal.marshaller.MarshallerException: > IGN-CMN-65535 TraceId:ef2d9c71-8f2d-4279-99fc-25e8e14ede40 Failed to write > field [id=0] > at > org.apache.ignite.internal.marshaller.FieldAccessor.write(FieldAccessor.java:401) > at > org.apache.ignite.internal.marshaller.Marshaller$PojoMarshaller.writeObject(Marshaller.java:274) > at > org.apache.ignite.internal.schema.marshaller.reflection.KvMarshallerImpl.marshal(KvMarshallerImpl.java:102) > at > org.apache.ignite.internal.table.KeyValueViewImpl.marshal(KeyValueViewImpl.java:522) > ... 15 more > Caused by: java.lang.NullPointerException > at java.base/java.util.Objects.requireNonNull(Objects.java:233) > at > java.base/java.lang.invoke.VarHandleBooleans$FieldInstanceReadOnly.get(VarHandleBooleans.java:90) > at > org.apache.ignite.internal.marshaller.FieldAccessor$VarHandleAccessor.get(FieldAccessor.java:552) > at > org.apache.ignite.internal.marshaller.FieldAccessor$BooleanPrimitiveAccessor.write0(FieldAccessor.java:581) > at > org.apache.ignite.internal.marshaller.FieldAccessor.write(FieldAccessor.java:399) > ... 18 more > {code} > This error message can be improved to say exactly what is wrong with user > configuration and how to fix it. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-21836) KeyValueView. GetNullable produces confusing error for a PoJo when field / column nullability do not match
[ https://issues.apache.org/jira/browse/IGNITE-21836?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Iurii Gerzhedovich updated IGNITE-21836: Priority: Major (was: Minor) > KeyValueView. GetNullable produces confusing error for a PoJo when field / > column nullability do not match > -- > > Key: IGNITE-21836 > URL: https://issues.apache.org/jira/browse/IGNITE-21836 > Project: Ignite > Issue Type: Bug > Components: sql >Reporter: Maksim Zhuravkov >Priority: Major > Labels: ignite-3 > > GetNullable method of KeyValueView produces a confusing error for a PoJo when > a field is primitive but underlying column is nullable: > {code:java} > public class ItKvTest extends BaseSqlIntegrationTest { > public static class BoolStr { > boolean boolCol; > String strCol; > } > @Test > public void testGetNullable() { > sql("CREATE TABLE t0 (ID INTEGER PRIMARY KEY, boolCol BOOLEAN, strCol > VARCHAR)"); > Table table = CLUSTER.aliveNode().tables().table("T0"); > KeyValueView view = > table.keyValueView(Mapper.of(Integer.class), Mapper.of(BoolStr.class)); > view.put(null, 1, null); > view.getNullable(null, 1); > } > } > {code} > {code:java} > org.apache.ignite.lang.MarshallerException: IGN-CMN-65535 > TraceId:ef2d9c71-8f2d-4279-99fc-25e8e14ede40 Failed to write field [id=0] > at > org.apache.ignite.internal.table.KeyValueViewImpl.marshal(KeyValueViewImpl.java:524) > at > org.apache.ignite.internal.table.KeyValueViewImpl.lambda$putAsync$16(KeyValueViewImpl.java:225) > at > org.apache.ignite.internal.table.AbstractTableView.lambda$withSchemaSync$1(AbstractTableView.java:180) > at > java.base/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1187) > at > java.base/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2341) > at > org.apache.ignite.internal.table.AbstractTableView.withSchemaSync(AbstractTableView.java:180) > at > org.apache.ignite.internal.table.AbstractTableView.withSchemaSync(AbstractTableView.java:171) > at > org.apache.ignite.internal.table.AbstractTableView.doOperation(AbstractTableView.java:147) > at > org.apache.ignite.internal.table.KeyValueViewImpl.putAsync(KeyValueViewImpl.java:224) > at > org.apache.ignite.internal.table.KeyValueViewImpl.lambda$put$15(KeyValueViewImpl.java:216) > at > org.apache.ignite.internal.table.AbstractTableView.sync(AbstractTableView.java:124) > at > org.apache.ignite.internal.table.KeyValueViewImpl.put(KeyValueViewImpl.java:216) > at > org.apache.ignite.internal.sql.api.ItKevtest.testGetNullable(ItKevtest.java:24) > at java.base/java.lang.reflect.Method.invoke(Method.java:580) > at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) > at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) > Caused by: org.apache.ignite.internal.marshaller.MarshallerException: > IGN-CMN-65535 TraceId:ef2d9c71-8f2d-4279-99fc-25e8e14ede40 Failed to write > field [id=0] > at > org.apache.ignite.internal.marshaller.FieldAccessor.write(FieldAccessor.java:401) > at > org.apache.ignite.internal.marshaller.Marshaller$PojoMarshaller.writeObject(Marshaller.java:274) > at > org.apache.ignite.internal.schema.marshaller.reflection.KvMarshallerImpl.marshal(KvMarshallerImpl.java:102) > at > org.apache.ignite.internal.table.KeyValueViewImpl.marshal(KeyValueViewImpl.java:522) > ... 15 more > Caused by: java.lang.NullPointerException > at java.base/java.util.Objects.requireNonNull(Objects.java:233) > at > java.base/java.lang.invoke.VarHandleBooleans$FieldInstanceReadOnly.get(VarHandleBooleans.java:90) > at > org.apache.ignite.internal.marshaller.FieldAccessor$VarHandleAccessor.get(FieldAccessor.java:552) > at > org.apache.ignite.internal.marshaller.FieldAccessor$BooleanPrimitiveAccessor.write0(FieldAccessor.java:581) > at > org.apache.ignite.internal.marshaller.FieldAccessor.write(FieldAccessor.java:399) > ... 18 more > {code} > This error message can be improved to say exactly what is wrong with user > configuration and how to fix it. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-21836) KeyValueView. GetNullable produces confusing error for a PoJo when field / column nullability do not match
[ https://issues.apache.org/jira/browse/IGNITE-21836?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Maksim Zhuravkov updated IGNITE-21836: -- Description: GetNullable method of KeyValueView produces a confusing error for a PoJo when a field is primitive but underlying column is nullable: {code:java} public class ItKvTest extends BaseSqlIntegrationTest { public static class BoolStr { boolean boolCol; String strCol; } @Test public void testGetNullable() { sql("CREATE TABLE t0 (ID INTEGER PRIMARY KEY, boolCol BOOLEAN, strCol VARCHAR)"); Table table = CLUSTER.aliveNode().tables().table("T0"); KeyValueView view = table.keyValueView(Mapper.of(Integer.class), Mapper.of(BoolStr.class)); view.put(null, 1, null); view.getNullable(null, 1); } } {code} {code:java} org.apache.ignite.lang.MarshallerException: IGN-CMN-65535 TraceId:ef2d9c71-8f2d-4279-99fc-25e8e14ede40 Failed to write field [id=0] at org.apache.ignite.internal.table.KeyValueViewImpl.marshal(KeyValueViewImpl.java:524) at org.apache.ignite.internal.table.KeyValueViewImpl.lambda$putAsync$16(KeyValueViewImpl.java:225) at org.apache.ignite.internal.table.AbstractTableView.lambda$withSchemaSync$1(AbstractTableView.java:180) at java.base/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1187) at java.base/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2341) at org.apache.ignite.internal.table.AbstractTableView.withSchemaSync(AbstractTableView.java:180) at org.apache.ignite.internal.table.AbstractTableView.withSchemaSync(AbstractTableView.java:171) at org.apache.ignite.internal.table.AbstractTableView.doOperation(AbstractTableView.java:147) at org.apache.ignite.internal.table.KeyValueViewImpl.putAsync(KeyValueViewImpl.java:224) at org.apache.ignite.internal.table.KeyValueViewImpl.lambda$put$15(KeyValueViewImpl.java:216) at org.apache.ignite.internal.table.AbstractTableView.sync(AbstractTableView.java:124) at org.apache.ignite.internal.table.KeyValueViewImpl.put(KeyValueViewImpl.java:216) at org.apache.ignite.internal.sql.api.ItKevtest.testGetNullable(ItKevtest.java:24) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) Caused by: org.apache.ignite.internal.marshaller.MarshallerException: IGN-CMN-65535 TraceId:ef2d9c71-8f2d-4279-99fc-25e8e14ede40 Failed to write field [id=0] at org.apache.ignite.internal.marshaller.FieldAccessor.write(FieldAccessor.java:401) at org.apache.ignite.internal.marshaller.Marshaller$PojoMarshaller.writeObject(Marshaller.java:274) at org.apache.ignite.internal.schema.marshaller.reflection.KvMarshallerImpl.marshal(KvMarshallerImpl.java:102) at org.apache.ignite.internal.table.KeyValueViewImpl.marshal(KeyValueViewImpl.java:522) ... 15 more Caused by: java.lang.NullPointerException at java.base/java.util.Objects.requireNonNull(Objects.java:233) at java.base/java.lang.invoke.VarHandleBooleans$FieldInstanceReadOnly.get(VarHandleBooleans.java:90) at org.apache.ignite.internal.marshaller.FieldAccessor$VarHandleAccessor.get(FieldAccessor.java:552) at org.apache.ignite.internal.marshaller.FieldAccessor$BooleanPrimitiveAccessor.write0(FieldAccessor.java:581) at org.apache.ignite.internal.marshaller.FieldAccessor.write(FieldAccessor.java:399) ... 18 more {code} This error message can be improved to say exactly what is wrong with user configuration and how to fix it. was: GetNullable method of KeyValueView produces a confusing error for a PoJo when a field is primitive but underlying column is nullable: {code:java} public class ItKvTest extends BaseSqlIntegrationTest { public static class BoolStr { boolean boolCol; String strCol; } @Test public void testGetNullable() { sql("CREATE TABLE t0 (ID INTEGER PRIMARY KEY, boolCol BOOLEAN, strCol VARCHAR)"); Table table = CLUSTER.aliveNode().tables().table("T0"); KeyValueView view = table.keyValueView(Mapper.of(Integer.class), Mapper.of(BoolStr.class)); view.put(null, 1, null); view.getNullable(null, 1); } } {code} {code:java} org.apache.ignite.lang.MarshallerException: IGN-CMN-65535 TraceId:ef2d9c71-8f2d-4279-99fc-25e8e14ede40 Failed to write field [id=0] at org.apache.ignite.internal.table.KeyValueViewImpl.marshal(KeyValueViewImpl.java:524) at org.apache.ignite.internal.table.KeyValueViewImpl.lambda$putAsync$16(KeyValueViewImpl.java:225) at
[jira] [Updated] (IGNITE-21836) KeyValueView. GetNullable produces confusing error for a PoJo when field / column nullability do not match
[ https://issues.apache.org/jira/browse/IGNITE-21836?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Maksim Zhuravkov updated IGNITE-21836: -- Summary: KeyValueView. GetNullable produces confusing error for a PoJo when field / column nullability do not match (was: KeyValueView. GetNullable produces confusing error for a PoJo with primitive fields when column is nullable) > KeyValueView. GetNullable produces confusing error for a PoJo when field / > column nullability do not match > -- > > Key: IGNITE-21836 > URL: https://issues.apache.org/jira/browse/IGNITE-21836 > Project: Ignite > Issue Type: Bug > Components: sql >Reporter: Maksim Zhuravkov >Priority: Minor > Labels: ignite-3 > > GetNullable method of KeyValueView produces a confusing error for a PoJo when > a field is primitive but underlying column is nullable: > {code:java} > public class ItKvTest extends BaseSqlIntegrationTest { > public static class BoolStr { > boolean boolCol; > String strCol; > } > @Test > public void testGetNullable() { > sql("CREATE TABLE t0 (ID INTEGER PRIMARY KEY, boolCol BOOLEAN, strCol > VARCHAR)"); > Table table = CLUSTER.aliveNode().tables().table("T0"); > KeyValueView view = > table.keyValueView(Mapper.of(Integer.class), Mapper.of(BoolStr.class)); > view.put(null, 1, null); > view.getNullable(null, 1); > } > } > {code} > {code:java} > org.apache.ignite.lang.MarshallerException: IGN-CMN-65535 > TraceId:ef2d9c71-8f2d-4279-99fc-25e8e14ede40 Failed to write field [id=0] > at > org.apache.ignite.internal.table.KeyValueViewImpl.marshal(KeyValueViewImpl.java:524) > at > org.apache.ignite.internal.table.KeyValueViewImpl.lambda$putAsync$16(KeyValueViewImpl.java:225) > at > org.apache.ignite.internal.table.AbstractTableView.lambda$withSchemaSync$1(AbstractTableView.java:180) > at > java.base/java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1187) > at > java.base/java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2341) > at > org.apache.ignite.internal.table.AbstractTableView.withSchemaSync(AbstractTableView.java:180) > at > org.apache.ignite.internal.table.AbstractTableView.withSchemaSync(AbstractTableView.java:171) > at > org.apache.ignite.internal.table.AbstractTableView.doOperation(AbstractTableView.java:147) > at > org.apache.ignite.internal.table.KeyValueViewImpl.putAsync(KeyValueViewImpl.java:224) > at > org.apache.ignite.internal.table.KeyValueViewImpl.lambda$put$15(KeyValueViewImpl.java:216) > at > org.apache.ignite.internal.table.AbstractTableView.sync(AbstractTableView.java:124) > at > org.apache.ignite.internal.table.KeyValueViewImpl.put(KeyValueViewImpl.java:216) > at > org.apache.ignite.internal.sql.api.ItKevtest.testGetNullable(ItKevtest.java:24) > at java.base/java.lang.reflect.Method.invoke(Method.java:580) > at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) > at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) > Caused by: org.apache.ignite.internal.marshaller.MarshallerException: > IGN-CMN-65535 TraceId:ef2d9c71-8f2d-4279-99fc-25e8e14ede40 Failed to write > field [id=0] > at > org.apache.ignite.internal.marshaller.FieldAccessor.write(FieldAccessor.java:401) > at > org.apache.ignite.internal.marshaller.Marshaller$PojoMarshaller.writeObject(Marshaller.java:274) > at > org.apache.ignite.internal.schema.marshaller.reflection.KvMarshallerImpl.marshal(KvMarshallerImpl.java:102) > at > org.apache.ignite.internal.table.KeyValueViewImpl.marshal(KeyValueViewImpl.java:522) > ... 15 more > Caused by: java.lang.NullPointerException > at java.base/java.util.Objects.requireNonNull(Objects.java:233) > at > java.base/java.lang.invoke.VarHandleBooleans$FieldInstanceReadOnly.get(VarHandleBooleans.java:90) > at > org.apache.ignite.internal.marshaller.FieldAccessor$VarHandleAccessor.get(FieldAccessor.java:552) > at > org.apache.ignite.internal.marshaller.FieldAccessor$BooleanPrimitiveAccessor.write0(FieldAccessor.java:581) > at > org.apache.ignite.internal.marshaller.FieldAccessor.write(FieldAccessor.java:399) > ... 18 more > {code} > This error message can be improved to say exactly what is wrong and how to > fix user code. -- This message was sent by Atlassian Jira (v8.20.10#820010)