if (form.getFile1() != null) { Binary bin = new Binary(); try { session.getTransaction().begin(); bin.setStockPickId(id); session.save(bin); int bId = bin.getId(); FileResource.storeImageAndThumbnail(form.getFile1().getInputStream(), bId); } catch (HibernateException hex) { if (session.getTransaction().isActive()) { session.getTransaction().rollback(); } } catch (IOException iex) { // file didn't save. fail session.getTransaction().rollback(); errors.add("Unable to save file"); } finally { try { session.getTransaction().commit(); } catch (HibernateException hex) { if (session.getTransaction().isActive()) { session.getTransaction().rollback(); } } } }