You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@phoenix.apache.org by Bernard Quizon <be...@stellarloyalty.com> on 2017/05/05 05:36:20 UTC

Upsert-Select NullPointerException

Hi,

I have upgraded my phoenix version from phoenix-4.4.0-Hbase-1.1 to
phoenix-4.10.0-Hbase-1.1, everything's seems to be working fine.

But when I tried to execute a simple upsert select, it resulted to an error.

Query:

UPSERT INTO TEST.TABLE1(id, boolean_field) SELECT id, false FROM
TEST.TABLE1;

Result:

java.lang.NullPointerException: at index 2

        at
com.google.common.collect.ObjectArrays.checkElementNotNull(ObjectArrays.java:191)

        at
com.google.common.collect.ImmutableList.construct(ImmutableList.java:320)

        at
com.google.common.collect.ImmutableList.copyOf(ImmutableList.java:290)

        at org.apache.phoenix.schema.PTableImpl.init(PTableImpl.java:534)

        at org.apache.phoenix.schema.PTableImpl.<init>(PTableImpl.java:408)

        at
org.apache.phoenix.schema.PTableImpl.makePTable(PTableImpl.java:297)

        at
org.apache.phoenix.compile.UpsertCompiler.compile(UpsertCompiler.java:684)

        at
org.apache.phoenix.jdbc.PhoenixStatement$ExecutableUpsertStatement.compilePlan(PhoenixStatement.java:611)

        at
org.apache.phoenix.jdbc.PhoenixStatement$ExecutableUpsertStatement.compilePlan(PhoenixStatement.java:597)

        at
org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:351)

        at
org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixStatement.java:341)

        at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)

        at
org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(PhoenixStatement.java:339)

        at
org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStatement.java:1511)

        at sqlline.Commands.execute(Commands.java:822)

        at sqlline.Commands.sql(Commands.java:732)

        at sqlline.SqlLine.dispatch(SqlLine.java:813)

        at sqlline.SqlLine.begin(SqlLine.java:686)

        at sqlline.SqlLine.start(SqlLine.java:398)

        at sqlline.SqlLine.main(SqlLine.java:291)


Btw, it works on my older version. Any thoughts?


Thanks!

Re: Upsert-Select NullPointerException

Posted by Bernard Quizon <be...@stellarloyalty.com>.
I see, thanks for the quick response.

Sure I'll try it out soon.

On Fri, May 5, 2017 at 2:04 PM, Ankit Singhal <an...@gmail.com>
wrote:

> I think you have a salted table and you are hitting a below bug.
> https://issues.apache.org/jira/browse/PHOENIX-3800
>
> Do you mind trying out the patch, we will have this fixed in 4.11 at
> least(probably 4.10.1 too).
>
> On Fri, May 5, 2017 at 11:06 AM, Bernard Quizon <bernard.quizon@
> stellarloyalty.com> wrote:
>
>> Hi,
>>
>> I have upgraded my phoenix version from phoenix-4.4.0-Hbase-1.1 to
>> phoenix-4.10.0-Hbase-1.1, everything's seems to be working fine.
>>
>> But when I tried to execute a simple upsert select, it resulted to an
>> error.
>>
>> Query:
>>
>> UPSERT INTO TEST.TABLE1(id, boolean_field) SELECT id, false FROM
>> TEST.TABLE1;
>>
>> Result:
>>
>> java.lang.NullPointerException: at index 2
>>
>>         at com.google.common.collect.ObjectArrays.checkElementNotNull(O
>> bjectArrays.java:191)
>>
>>         at com.google.common.collect.ImmutableList.construct(ImmutableL
>> ist.java:320)
>>
>>         at com.google.common.collect.ImmutableList.copyOf(ImmutableList
>> .java:290)
>>
>>         at org.apache.phoenix.schema.PTableImpl.init(PTableImpl.java:534)
>>
>>         at org.apache.phoenix.schema.PTableImpl.<init>(PTableImpl.java:
>> 408)
>>
>>         at org.apache.phoenix.schema.PTableImpl.makePTable(PTableImpl.
>> java:297)
>>
>>         at org.apache.phoenix.compile.UpsertCompiler.compile(UpsertComp
>> iler.java:684)
>>
>>         at org.apache.phoenix.jdbc.PhoenixStatement$ExecutableUpsertSta
>> tement.compilePlan(PhoenixStatement.java:611)
>>
>>         at org.apache.phoenix.jdbc.PhoenixStatement$ExecutableUpsertSta
>> tement.compilePlan(PhoenixStatement.java:597)
>>
>>         at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixState
>> ment.java:351)
>>
>>         at org.apache.phoenix.jdbc.PhoenixStatement$2.call(PhoenixState
>> ment.java:341)
>>
>>         at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
>>
>>         at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(Pho
>> enixStatement.java:339)
>>
>>         at org.apache.phoenix.jdbc.PhoenixStatement.execute(PhoenixStat
>> ement.java:1511)
>>
>>         at sqlline.Commands.execute(Commands.java:822)
>>
>>         at sqlline.Commands.sql(Commands.java:732)
>>
>>         at sqlline.SqlLine.dispatch(SqlLine.java:813)
>>
>>         at sqlline.SqlLine.begin(SqlLine.java:686)
>>
>>         at sqlline.SqlLine.start(SqlLine.java:398)
>>
>>         at sqlline.SqlLine.main(SqlLine.java:291)
>>
>>
>> Btw, it works on my older version. Any thoughts?
>>
>>
>> Thanks!
>>
>
>

Re: Upsert-Select NullPointerException

Posted by Ankit Singhal <an...@gmail.com>.
I think you have a salted table and you are hitting a below bug.
https://issues.apache.org/jira/browse/PHOENIX-3800

Do you mind trying out the patch, we will have this fixed in 4.11 at
least(probably 4.10.1 too).

On Fri, May 5, 2017 at 11:06 AM, Bernard Quizon <
bernard.quizon@stellarloyalty.com> wrote:

> Hi,
>
> I have upgraded my phoenix version from phoenix-4.4.0-Hbase-1.1 to
> phoenix-4.10.0-Hbase-1.1, everything's seems to be working fine.
>
> But when I tried to execute a simple upsert select, it resulted to an
> error.
>
> Query:
>
> UPSERT INTO TEST.TABLE1(id, boolean_field) SELECT id, false FROM
> TEST.TABLE1;
>
> Result:
>
> java.lang.NullPointerException: at index 2
>
>         at com.google.common.collect.ObjectArrays.checkElementNotNull(
> ObjectArrays.java:191)
>
>         at com.google.common.collect.ImmutableList.construct(
> ImmutableList.java:320)
>
>         at com.google.common.collect.ImmutableList.copyOf(
> ImmutableList.java:290)
>
>         at org.apache.phoenix.schema.PTableImpl.init(PTableImpl.java:534)
>
>         at org.apache.phoenix.schema.PTableImpl.<init>(PTableImpl.
> java:408)
>
>         at org.apache.phoenix.schema.PTableImpl.makePTable(
> PTableImpl.java:297)
>
>         at org.apache.phoenix.compile.UpsertCompiler.compile(
> UpsertCompiler.java:684)
>
>         at org.apache.phoenix.jdbc.PhoenixStatement$
> ExecutableUpsertStatement.compilePlan(PhoenixStatement.java:611)
>
>         at org.apache.phoenix.jdbc.PhoenixStatement$
> ExecutableUpsertStatement.compilePlan(PhoenixStatement.java:597)
>
>         at org.apache.phoenix.jdbc.PhoenixStatement$2.call(
> PhoenixStatement.java:351)
>
>         at org.apache.phoenix.jdbc.PhoenixStatement$2.call(
> PhoenixStatement.java:341)
>
>         at org.apache.phoenix.call.CallRunner.run(CallRunner.java:53)
>
>         at org.apache.phoenix.jdbc.PhoenixStatement.executeMutation(
> PhoenixStatement.java:339)
>
>         at org.apache.phoenix.jdbc.PhoenixStatement.execute(
> PhoenixStatement.java:1511)
>
>         at sqlline.Commands.execute(Commands.java:822)
>
>         at sqlline.Commands.sql(Commands.java:732)
>
>         at sqlline.SqlLine.dispatch(SqlLine.java:813)
>
>         at sqlline.SqlLine.begin(SqlLine.java:686)
>
>         at sqlline.SqlLine.start(SqlLine.java:398)
>
>         at sqlline.SqlLine.main(SqlLine.java:291)
>
>
> Btw, it works on my older version. Any thoughts?
>
>
> Thanks!
>