From 11cd210415b857684a9ec7edf057bf7bfe41af8f Mon Sep 17 00:00:00 2001 From: Janis Streib Date: Sat, 26 Jul 2014 22:49:34 +0200 Subject: [PATCH] FIX: Additional check before maildeletion --- src/org/cacert/gigi/User.java | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/src/org/cacert/gigi/User.java b/src/org/cacert/gigi/User.java index 4cf31822..010df4a9 100644 --- a/src/org/cacert/gigi/User.java +++ b/src/org/cacert/gigi/User.java @@ -321,14 +321,22 @@ public class User { if (getEmail().equals(mail.getAddress())) { throw new GigiApiException("Can't delete user's default e-mail."); } - try { - PreparedStatement ps = DatabaseConnection.getInstance().prepare("UPDATE email SET deleted=? WHERE id=?"); - ps.setDate(1, new Date(System.currentTimeMillis())); - ps.setInt(2, mail.getId()); - ps.execute(); - } catch (SQLException e) { - e.printStackTrace(); - throw new GigiApiException(e); + EmailAddress[] emails = getEmails(); + for (int i = 0; i < emails.length; i++) { + if (emails[i].getId() == mail.getId()) { + try { + PreparedStatement ps = DatabaseConnection.getInstance().prepare( + "UPDATE email SET deleted=? WHERE id=?"); + ps.setDate(1, new Date(System.currentTimeMillis())); + ps.setInt(2, mail.getId()); + ps.execute(); + } catch (SQLException e) { + e.printStackTrace(); + throw new GigiApiException(e); + } + return; + } } + throw new GigiApiException("Email not one user's mail addresses."); } } -- 2.39.2