• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

NullPointerException podczas lambda

0 głosów
266 wizyt
pytanie zadane 16 października 2017 w Java przez Jonki Dyskutant (8,180 p.)

Moja metoda przyjmuje datę i porównuję ją w specyfikacji

public static Specification<MovieEntity> getFindPredicate(
        final Date fromDate
) {
    return (final Root<MovieEntity> root, final CriteriaQuery<?> cq, final CriteriaBuilder cb) -> {
        final List<Predicate> predicates = new ArrayList<>();
 
        if (fromDate != null) {
            final Join<MovieEntity, MovieReleaseDate> listReleaseDates = root.join(MovieEntity_.releaseDates);
            final List<Predicate> orPredicates =
                    Stream.of(fromDate)
                            .map(releaseDate -> cb.greaterThanOrEqualTo(listReleaseDates.get(MovieReleaseDate_.date), fromDate))
                            .collect(Collectors.toList());
            predicates.add(cb.or(orPredicates.toArray(new Predicate[orPredicates.size()])));
        }
        return cb.and(predicates.toArray(new Predicate[predicates.size()]));
    };
}

Jednak lambda wyrzuca mi wyjątek (https://zapodaj.net/38349010fb814.png.html) (Z czerwonym tłem debugowany fragment)

java.lang.NullPointerException: null
at org.eclipse.persistence.internal.jpa.querydef.FromImpl.get(FromImpl.java:274) ~[org.eclipse.persistence.jpa-2.7.0.jar:na]
at com.core.jpa.specifications.MovieSpecs.lambda$null$0(MovieSpecs.java:48) ~[classes/:na]
at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) ~[na:1.8.0_144]
at java.util.stream.Streams$StreamBuilderImpl.forEachRemaining(Streams.java:419) ~[na:1.8.0_144]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) ~[na:1.8.0_144]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) ~[na:1.8.0_144]
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) ~[na:1.8.0_144]
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:1.8.0_144]
at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) ~[na:1.8.0_144]

Czy ta konstrukcja lambdy jest błędna czy o co chodzi?

komentarz 16 października 2017 przez ShiroUmizake Nałogowiec (46,300 p.)
A gdzie masz zainicjonowaną listę final Date fromDate?

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 490 wizyt
pytanie zadane 17 października 2020 w Java przez amtrax Dyskutant (9,630 p.)
0 głosów
1 odpowiedź 207 wizyt
pytanie zadane 5 listopada 2019 w Java przez aspoka Mądrala (5,290 p.)
0 głosów
4 odpowiedzi 482 wizyt
pytanie zadane 24 października 2018 w Java przez Potopiec Obywatel (1,550 p.)

93,425 zapytań

142,421 odpowiedzi

322,646 komentarzy

62,785 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...