From a0228bdf45c8a2fc673dd89639610260bba8596a Mon Sep 17 00:00:00 2001 From: dashevchenko Date: Tue, 22 Aug 2023 12:32:12 +0300 Subject: [PATCH] extracted repeated code to separate method, deleted @SneakyTrows annotation --- .../server/service/mail/TbMailSender.java | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/application/src/main/java/org/thingsboard/server/service/mail/TbMailSender.java b/application/src/main/java/org/thingsboard/server/service/mail/TbMailSender.java index 75dea3ad6a..6f98748dac 100644 --- a/application/src/main/java/org/thingsboard/server/service/mail/TbMailSender.java +++ b/application/src/main/java/org/thingsboard/server/service/mail/TbMailSender.java @@ -23,7 +23,6 @@ import com.google.api.client.auth.oauth2.TokenResponse; import com.google.api.client.http.GenericUrl; import com.google.api.client.http.javanet.NetHttpTransport; import com.google.api.client.json.gson.GsonFactory; -import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.springframework.lang.Nullable; import org.springframework.mail.javamail.JavaMailSenderImpl; @@ -35,7 +34,7 @@ import org.thingsboard.server.common.data.id.TenantId; import org.thingsboard.server.common.data.mail.MailOauth2Provider; import org.thingsboard.server.dao.exception.IncorrectParameterException; -import javax.mail.Transport; +import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; import java.time.Duration; import java.time.Instant; @@ -71,24 +70,27 @@ public class TbMailSender extends JavaMailSenderImpl { setJavaMailProperties(createJavaMailProperties(jsonConfig)); } - @SneakyThrows @Override public void doSend(MimeMessage[] mimeMessages, @Nullable Object[] originalMessages) { - if (oauth2Enabled && (System.currentTimeMillis() > tokenExpires)){ - refreshAccessToken(); - setPassword(accessToken); - } + updateOauth2PasswordIfExpired(); super.doSend(mimeMessages, originalMessages); } - @SneakyThrows @Override - public void testConnection() { + public void testConnection() throws MessagingException { + updateOauth2PasswordIfExpired(); + super.testConnection(); + } + + private void updateOauth2PasswordIfExpired() { if (oauth2Enabled && (System.currentTimeMillis() > tokenExpires)){ - refreshAccessToken(); + try { + refreshAccessToken(); + } catch (ThingsboardException e) { + throw new RuntimeException(e); + } setPassword(accessToken); } - super.testConnection(); } private Properties createJavaMailProperties(JsonNode jsonConfig) {