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

Sergey Uttsel updated IGNITE-19765:
-----------------------------------
    Description: 
h3. *Motivation*

After prototyping for https://issues.apache.org/jira/browse/IGNITE-19466 I see 
that if a table is created without data nodes in zone and I try to invoke some 
operation, for example
{code:java}
table.recordView().insert(null, Tuple.create().set("key", 1L).set("val", 
2));{code}
it throw a NPE
{code:java}
java.lang.NullPointerException  at 
org.apache.ignite.internal.table.distributed.storage.InternalTableImpl.enlist(InternalTableImpl.java:1233)
   at 
org.apache.ignite.internal.table.distributed.storage.InternalTableImpl.enlistWithRetry(InternalTableImpl.java:427)
   at 
org.apache.ignite.internal.table.distributed.storage.InternalTableImpl.enlistInTx(InternalTableImpl.java:259)
        at 
org.apache.ignite.internal.table.distributed.storage.InternalTableImpl.insert(InternalTableImpl.java:658)
    at 
org.apache.ignite.internal.table.RecordBinaryViewImpl.insertAsync(RecordBinaryViewImpl.java:147)
     at 
org.apache.ignite.internal.table.RecordBinaryViewImpl.insert(RecordBinaryViewImpl.java:137)
  at 
org.apache.ignite.internal.table.RecordBinaryViewImpl.insert(RecordBinaryViewImpl.java:42)
   at 
org.apache.ignite.internal.runner.app.ItIgniteNodeRestartTest.test123(ItIgniteNodeRestartTest.java:1152){code}
Need to throw meaningful exception in this case with message that a table is 
not ready of operation.
 
h3. *Definition of Done*

If a table was created without data nodes need to throw meaningful exception on 
table operation.

  was:
h3. *Motivation*

After prototyping for https://issues.apache.org/jira/browse/IGNITE-19466 I see 
that if a table is created without data nodes in zone and I try invoke some 
operation, for example
{code:java}
table.recordView().insert(null, Tuple.create().set("key", 1L).set("val", 
2));{code}
it throw a NPE
{code:java}
java.lang.NullPointerException  at 
org.apache.ignite.internal.table.distributed.storage.InternalTableImpl.enlist(InternalTableImpl.java:1233)
   at 
org.apache.ignite.internal.table.distributed.storage.InternalTableImpl.enlistWithRetry(InternalTableImpl.java:427)
   at 
org.apache.ignite.internal.table.distributed.storage.InternalTableImpl.enlistInTx(InternalTableImpl.java:259)
        at 
org.apache.ignite.internal.table.distributed.storage.InternalTableImpl.insert(InternalTableImpl.java:658)
    at 
org.apache.ignite.internal.table.RecordBinaryViewImpl.insertAsync(RecordBinaryViewImpl.java:147)
     at 
org.apache.ignite.internal.table.RecordBinaryViewImpl.insert(RecordBinaryViewImpl.java:137)
  at 
org.apache.ignite.internal.table.RecordBinaryViewImpl.insert(RecordBinaryViewImpl.java:42)
   at 
org.apache.ignite.internal.runner.app.ItIgniteNodeRestartTest.test123(ItIgniteNodeRestartTest.java:1152){code}
Need to throw meaningful exception in this case with message that a table is 
not ready of operation.
 
h3. *Definition of Done*

If a table was created without data nodes need to throw meaningful exception on 
table operation.


> Throw appropriate exception on operation with not full started table
> --------------------------------------------------------------------
>
>                 Key: IGNITE-19765
>                 URL: https://issues.apache.org/jira/browse/IGNITE-19765
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Sergey Uttsel
>            Priority: Major
>              Labels: ignite-3, tech-debt
>
> h3. *Motivation*
> After prototyping for https://issues.apache.org/jira/browse/IGNITE-19466 I 
> see that if a table is created without data nodes in zone and I try to invoke 
> some operation, for example
> {code:java}
> table.recordView().insert(null, Tuple.create().set("key", 1L).set("val", 
> 2));{code}
> it throw a NPE
> {code:java}
> java.lang.NullPointerException        at 
> org.apache.ignite.internal.table.distributed.storage.InternalTableImpl.enlist(InternalTableImpl.java:1233)
>    at 
> org.apache.ignite.internal.table.distributed.storage.InternalTableImpl.enlistWithRetry(InternalTableImpl.java:427)
>    at 
> org.apache.ignite.internal.table.distributed.storage.InternalTableImpl.enlistInTx(InternalTableImpl.java:259)
>         at 
> org.apache.ignite.internal.table.distributed.storage.InternalTableImpl.insert(InternalTableImpl.java:658)
>     at 
> org.apache.ignite.internal.table.RecordBinaryViewImpl.insertAsync(RecordBinaryViewImpl.java:147)
>      at 
> org.apache.ignite.internal.table.RecordBinaryViewImpl.insert(RecordBinaryViewImpl.java:137)
>   at 
> org.apache.ignite.internal.table.RecordBinaryViewImpl.insert(RecordBinaryViewImpl.java:42)
>    at 
> org.apache.ignite.internal.runner.app.ItIgniteNodeRestartTest.test123(ItIgniteNodeRestartTest.java:1152){code}
> Need to throw meaningful exception in this case with message that a table is 
> not ready of operation.
>  
> h3. *Definition of Done*
> If a table was created without data nodes need to throw meaningful exception 
> on table operation.



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

Reply via email to