From 8c9d3c3ad7003c643260fee29c649eb181a8951c Mon Sep 17 00:00:00 2001 From: Abbas Abou Daya Date: Tue, 11 Jul 2017 13:07:09 +0300 Subject: [PATCH] Fixed JDK compilation error (due to bug #JDK-8044546) --- .../java/org/telegram/abilitybots/api/bot/AbilityBot.java | 8 ++++++-- .../java/org/telegram/abilitybots/api/objects/Reply.java | 5 ++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/telegrambots-abilities/src/main/java/org/telegram/abilitybots/api/bot/AbilityBot.java b/telegrambots-abilities/src/main/java/org/telegram/abilitybots/api/bot/AbilityBot.java index f54d6acb..eed779a2 100644 --- a/telegrambots-abilities/src/main/java/org/telegram/abilitybots/api/bot/AbilityBot.java +++ b/telegrambots-abilities/src/main/java/org/telegram/abilitybots/api/bot/AbilityBot.java @@ -27,6 +27,8 @@ import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.function.BiFunction; +import java.util.function.Predicate; import java.util.stream.Stream; import static com.google.common.base.Strings.isNullOrEmpty; @@ -728,9 +730,11 @@ public abstract class AbilityBot extends TelegramLongPollingBot { boolean checkMessageFlags(Trio trio) { Ability ability = trio.b(); Update update = trio.a(); - + + // The following variable is required to avoid bug #JDK-8044546 + BiFunction, Boolean> flagAnd = (flag, nextFlag) -> flag && nextFlag.test(update); return ability.flags().stream() - .reduce(true, (flag, nextFlag) -> flag && nextFlag.test(update), Boolean::logicalAnd); + .reduce(true, flagAnd, Boolean::logicalAnd); } private File downloadFileWithId(String fileId) throws TelegramApiException { diff --git a/telegrambots-abilities/src/main/java/org/telegram/abilitybots/api/objects/Reply.java b/telegrambots-abilities/src/main/java/org/telegram/abilitybots/api/objects/Reply.java index 5a1f2324..e6e08e4c 100644 --- a/telegrambots-abilities/src/main/java/org/telegram/abilitybots/api/objects/Reply.java +++ b/telegrambots-abilities/src/main/java/org/telegram/abilitybots/api/objects/Reply.java @@ -5,6 +5,7 @@ import org.telegram.telegrambots.api.objects.Update; import java.util.List; import java.util.Objects; +import java.util.function.BiFunction; import java.util.function.Consumer; import java.util.function.Predicate; @@ -31,7 +32,9 @@ public final class Reply { } public boolean isOkFor(Update update) { - return conditions.stream().reduce(true, (state, cond) -> state && cond.test(update), Boolean::logicalAnd); + // The following variable is required to avoid bug #JDK-8044546 + BiFunction, Boolean> stateAnd = (state, cond) -> state && cond.test(update); + return conditions.stream().reduce(true, stateAnd, Boolean::logicalAnd); } public void actOn(Update update) {