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;
});
}
}