Skip to content

Commit 6994472

Browse files
committed
Added try with resources for session
1 parent b69ef11 commit 6994472

File tree

2 files changed

+45
-36
lines changed
  • Ch05_AccessReferenceMaps/src/main/java/de/dominikschadow/webappsecurity
  • Ch07_XSS/src/main/java/de/dominikschadow/webappsecurity/daos

2 files changed

+45
-36
lines changed

Ch05_AccessReferenceMaps/src/main/java/de/dominikschadow/webappsecurity/AccountsDAO.java

+19-13
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,13 @@
1818
package de.dominikschadow.webappsecurity;
1919

2020
import de.dominikschadow.webappsecurity.domain.Account;
21+
import org.hibernate.HibernateException;
2122
import org.hibernate.Query;
2223
import org.hibernate.Session;
2324
import org.slf4j.Logger;
2425
import org.slf4j.LoggerFactory;
2526

27+
import java.util.ArrayList;
2628
import java.util.List;
2729

2830
import static de.dominikschadow.webappsecurity.HibernateUtil.getSessionFactory;
@@ -45,27 +47,31 @@ public Account loadAccount(int id) {
4547
}
4648

4749
private Account queryAccount(int id) {
48-
Session session = getSessionFactory().openSession();
49-
Query query = session.createQuery("FROM Account WHERE accountId = :id");
50-
query.setParameter("id", id);
50+
try (Session session = getSessionFactory().openSession()) {
51+
Query query = session.createQuery("FROM Account WHERE accountId = :id");
52+
query.setParameter("id", id);
5153

52-
Account account = (Account) query.uniqueResult();
54+
return (Account) query.uniqueResult();
55+
} catch (HibernateException ex) {
56+
LOGGER.error(ex.getMessage(), ex);
57+
}
5358

54-
session.close();
55-
56-
return account;
59+
return null;
5760
}
5861

5962
private List<String> queryAccounts(int userId) {
60-
Session session = getSessionFactory().openSession();
61-
Query query = session.createSQLQuery("SELECT accountId FROM account WHERE ownerId = :id");
62-
query.setParameter("id", userId);
63+
List<String> accountReferences = new ArrayList<>();
6364

64-
List<String> accountReferences = query.list();
65+
try (Session session = getSessionFactory().openSession()) {
66+
Query query = session.createSQLQuery("SELECT accountId FROM account WHERE ownerId = :id");
67+
query.setParameter("id", userId);
6568

66-
LOGGER.info("Found {} account references", accountReferences.size());
69+
accountReferences = query.list();
6770

68-
session.close();
71+
LOGGER.info("Found {} account references", accountReferences.size());
72+
} catch (HibernateException ex) {
73+
LOGGER.error(ex.getMessage(), ex);
74+
}
6975

7076
return accountReferences;
7177
}

Ch07_XSS/src/main/java/de/dominikschadow/webappsecurity/daos/CustomerDAO.java

+26-23
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,12 @@
1818
package de.dominikschadow.webappsecurity.daos;
1919

2020
import de.dominikschadow.webappsecurity.domain.Customer;
21-
22-
import org.hibernate.Criteria;
23-
import org.hibernate.Query;
24-
import org.hibernate.Session;
25-
import org.hibernate.Transaction;
21+
import org.hibernate.*;
2622
import org.hibernate.criterion.Restrictions;
2723
import org.slf4j.Logger;
2824
import org.slf4j.LoggerFactory;
2925

26+
import java.util.ArrayList;
3027
import java.util.List;
3128

3229
import static de.dominikschadow.webappsecurity.daos.HibernateUtil.getSessionFactory;
@@ -41,37 +38,43 @@ public class CustomerDAO {
4138
private static final Logger LOGGER = LoggerFactory.getLogger(CustomerDAO.class);
4239

4340
public List<Customer> getAllCustomers() {
44-
Session session = getSessionFactory().openSession();
45-
Query query = session.createQuery("FROM Customer");
46-
@SuppressWarnings("unchecked")
47-
List<Customer> customers = query.list();
41+
List<Customer> customers = new ArrayList<>();
4842

49-
LOGGER.info("Found {} customers", customers.size());
43+
try (Session session = getSessionFactory().openSession()) {
44+
Query query = session.createQuery("FROM Customer");
45+
customers = query.list();
5046

51-
session.close();
47+
LOGGER.info("Found {} customers", customers.size());
48+
} catch (HibernateException ex) {
49+
LOGGER.error(ex.getMessage(), ex);
50+
}
5251

5352
return customers;
5453
}
5554

5655
public void createCustomer(Customer customer) {
57-
Session session = getSessionFactory().openSession();
58-
Transaction tx = session.beginTransaction();
59-
session.persist(customer);
60-
tx.commit();
61-
session.close();
56+
try (Session session = getSessionFactory().openSession()) {
57+
Transaction tx = session.beginTransaction();
58+
session.persist(customer);
59+
tx.commit();
60+
} catch (HibernateException ex) {
61+
LOGGER.error(ex.getMessage(), ex);
62+
}
6263
}
6364

6465
public List<Customer> findCustomers(Customer customer) {
65-
Session session = getSessionFactory().openSession();
66-
Criteria criteria = session.createCriteria(Customer.class);
67-
criteria.add(Restrictions.like("name", "%" + customer.getName()+ "%"));
66+
List<Customer> customers = new ArrayList<>();
6867

69-
@SuppressWarnings("unchecked")
70-
List<Customer> customers = criteria.list();
68+
try (Session session = getSessionFactory().openSession()) {
69+
Criteria criteria = session.createCriteria(Customer.class);
70+
criteria.add(Restrictions.like("name", "%" + customer.getName() + "%"));
7171

72-
LOGGER.info("Found {} customers", customers.size());
72+
customers = criteria.list();
7373

74-
session.close();
74+
LOGGER.info("Found {} customers", customers.size());
75+
} catch (HibernateException ex) {
76+
LOGGER.error(ex.getMessage(), ex);
77+
}
7578

7679
return customers;
7780
}

0 commit comments

Comments
 (0)