# New Ticket Created by Christian Bartolomaeus # Please include the string: [perl #128320] # in the subject line of all future correspondence about this issue. # <URL: https://rt.perl.org/Ticket/Display.html?id=128320 >
The following code (tested in S32-array/delete.t) started to fail with rakudo-j recently: $ perl6-j -e 'my @a = 0..1; @a[0]:delete; map { 1 }, @a' java.lang.NullPointerException in block <unit> at -e line 1 $ perl6-j --ll-exception -e 'my @a = 0..1; @a[0]:delete; map { 1 }, @a' java.lang.NullPointerException in add_to_cache (gen/jvm/BOOTSTRAP.nqp:1512) in (gen/jvm/BOOTSTRAP.nqp:1516) in push (gen/jvm/CORE.setting:1828) in push-all (gen/jvm/CORE.setting:14627) in push-until-lazy (gen/jvm/CORE.setting:2401) in (gen/jvm/CORE.setting:14308) in (gen/jvm/CORE.setting:14306) in reify-until-lazy (gen/jvm/CORE.setting:14304) in is-lazy (gen/jvm/CORE.setting:14892) in map (gen/jvm/CORE.setting:5366) in map (gen/jvm/CORE.setting:5365) in <unit> (-e:1) in <unit-outer> (-e:1) in eval (gen/jvm/stage2/NQPHLL.nqp:1198) in eval (src/Perl6/Compiler.nqp:171) in (gen/jvm/stage2/NQPHLL.nqp:1288) in command_eval (gen/jvm/stage2/NQPHLL.nqp:1285) in command_eval (src/Perl6/Compiler.nqp:29) in command_line (gen/jvm/stage2/NQPHLL.nqp:1269) in MAIN (gen/jvm/main.nqp:37) in <mainline> (gen/jvm/main.nqp:33) in (gen/jvm/main.nqp) I think, the error first appeared with Rakudo commit beb3c986. The following patch makes the NPE go away (and has no spectest fallout). But I'm not sure if it is the right thing to insert Nil when nqp::atpos returns null. ==== diff --git a/src/core/List.pm b/src/core/List.pm index 0c65a6f..ddc8607 100644 --- a/src/core/List.pm +++ b/src/core/List.pm @@ -476,7 +476,7 @@ my class List does Iterable does Positional { # declared in BOOTSTRAP method push-all($target) { my int $elems = nqp::elems($!reified); my $no-sink; - $no-sink := $target.push(nqp::atpos($!reified,$!i)) + $no-sink := $target.push(nqp::ifnull(nqp::atpos($!reified,$!i),Nil)) while nqp::islt_i($!i = nqp::add_i($!i,1),$elems); IterationEnd }