Cleanup: restore the interrupt flag in email providers

Offen Anfängerfreundlich
#255 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Anfängerfreundlichkeit
85/100
Issue-Typ
Refactoring
Klarheit
Klar beschrieben
Aktivitätsstatus
Aktiv
Tech-Stack
java
Bereich
backend

Rechercherichtung

Die markierten Fundstellen liegen in src/main/java/com/seleniumboot/email/: MailhogProvider.java (Zeilen 54, 66), MailtrapProvider.java (66, 79) und OutlookProvider.java (82, 106, 139, 169). Beginne damit, jede aufgeführte Fundstelle zu lesen und zu bestätigen, dass sie InterruptedException verschluckt. Füge in einem separaten InterruptedException-Catch-Block Thread.currentThread().interrupt() hinzu und behalte die bisherige Behandlung bei. Fertig ist es, wenn diese Stellen das Interrupt-Flag wiederherstellen, sonst nichts geändert wurde und mvn test erfolgreich durchläuft.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

good first issue

Part of the cleanup cycle from #251. SonarCloud rule java:S2142 flags these spots.

These places catch InterruptedException (often inside catch (Exception e)) and carry on without restoring the thread's interrupt flag. Anything further up that checks Thread.interrupted() (a parallel runner shutting down, a timeout) never sees the interrupt.

Where (line numbers as of master 2a07bba):

  • src/main/java/com/seleniumboot/email/MailhogProvider.java: lines 54, 66
  • src/main/java/com/seleniumboot/email/MailtrapProvider.java: lines 66, 79
  • src/main/java/com/seleniumboot/email/OutlookProvider.java: lines 82, 106, 139, 169

Fix: restore the flag and keep the existing behaviour. For a combined catch, split it out:

} catch (InterruptedException e) {
    Thread.currentThread().interrupt();
    // then the same handling the old catch did (log / wrap / return)
} catch (Exception e) {
    ...
}

Done when: the listed spots restore the interrupt flag, the behaviour is otherwise unchanged, and mvn test passes. Keep this PR to this package. SonarCloud reruns on the PR.

Vorherrschende Sprache
Java
Sterne
12
Forks
6
Ø Merge
10 Std.
Gemergte PRs (30 T.)
76

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus seleniumboot/selenium-boot

Alle Issues in seleniumboot/selenium-boot

Ähnliche Issues

Weitere Issues zu Java

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.