Exception in thread "OkHttp Dispatcher" java.lang.NullPointerException

Ошибка происходит после линии } else if(user.getLogin() == null){ судя по брейкпоинтам. Не могу понять почему, может версия чего-то стоит неподходящая?

package ru.supahy;

import com.pengrad.telegrambot.TelegramBot;
import com.pengrad.telegrambot.UpdatesListener;
import com.pengrad.telegrambot.request.GetFile;
import com.pengrad.telegrambot.request.SendMessage;
import com.pengrad.telegrambot.response.GetFileResponse;
import ru.supahy.entity.Post;
import ru.supahy.entity.User;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;

public class App {
    public static void main(String[] args) throws IOException {


        EntityManagerFactory entityManagerFactory =
                Persistence.createEntityManagerFactory("instabot");


        Properties properties = new Properties();
        properties.load(new FileInputStream("app.properties"));



       TelegramBot bot = new TelegramBot(properties.getProperty("telegram_token"));

        bot.setUpdatesListener(updates -> {
            updates.forEach(System.out::println);
            updates.forEach(update -> {
                Integer userId = update.message().from().id();
                EntityManager manager = entityManagerFactory.createEntityManager();

                manager.getTransaction().begin();
                User user = manager.find(User.class, userId);
                if(user == null){
                    bot.execute(new SendMessage(update.message().chat().id(), "Send your login and password in one message: \"login password\""));
                    manager.persist(new User(update.message().from().id(), null, null));
                } else if(user.getLogin() == null){
                    String[] data = update.message().text().split(" ");
                    user.setLogin(data[0]);
                    user.setPassword(data[1]);
                    manager.persist(user);

                    bot.execute(new SendMessage(update.message().chat().id(), "Good! Send text/pic/geo(in one message)."));
                } else if(user.getLogin() != null && update.message().photo().length > 0){

                    GetFileResponse fileResponse = bot.execute(new GetFile(update.message().photo()[0].fileId()));
                    String filePath = bot.getFullFilePath(fileResponse.file());
                    try {
                        HttpDownload.downloadFile(filePath, "./images", update.message().photo()[0].fileId() + ".jpg");
                    } catch (IOException e) {
                        System.err.println(e.getMessage());
                    }
                    Post post = new Post();
                    post.setTitle(update.message().caption());
                    post.setPhoto(new File("./images/" + update.message().photo()[0].fileId() + ".jpg").getPath());
                    user.addPost(post);

                    manager.persist(post);
                    manager.persist(user);
                }
                manager.getTransaction().commit();
                manager.close();

            });
            return UpdatesListener.CONFIRMED_UPDATES_ALL;
        });
    }
}

Ответы (0 шт):