// do not return, as this might be a small bug that we can bypass
}
if (log.isTraceEnabled())
log.trace("creating annuity holder");
IAnnuityHolder annuityHolder = null;
try {
annuityHolder = createAnnuityHolder(myEMF, contact);
} catch (Exception e) {
log.error("failed to create Annuity Holder Successfully.", e);
throw e;
}
try {
verifyAnnuityHolderValues(myEMF, annuityHolder);
} catch (Exception e) {
log.info("failed to verify create annuity holder successfuly.", e);
throw e;
}
if (log.isTraceEnabled())
log.trace("creating payor");
IPayor payor = null;
try {
payor = createPayor(myEMF);
} catch(Exception e) {
log.error("failed to create payor successfuly.", e);
throw e;
}
try {
verifyPayorValues(myEMF, payor);
} catch (Exception e) {
log.error("failed to verify create payor successfuly.", e);
throw e;
}
if (log.isTraceEnabled())
log.trace("creating annuity");
IAnnuity annuity =null;
AnnuityType annuityType = AnnuityType.FIXED;
try {
annuity = createAnnuityWithRider(myEMF, annuityType);
} catch (Exception e) {
log.error("failed to create annuity successfuly.", e);
throw e;
}
try {
log.trace("verify annuity with rider");
verifyAnnuityValues(myEMF, annuity, annuityType);
} catch (Exception e) {
log.error("failed to verify create annuity successfuly.", e);
throw e;
}
if (log.isTraceEnabled())
log.trace("upating annuity");
try {
log.trace("create annuity with payout");
annuity = createAnnuityPayout(myEMF, annuity);
} catch (Exception e) {
log.error("failed to create annuity successfuly.", e);
throw e;
}
try {
verifyAnnuityValues(myEMF, annuity, annuityType);
} catch (Exception e) {
log.error("failed to verify create annuity successfuly.", e);
throw e;
}
if (log.isTraceEnabled())
log.trace("upating annuity");
try {
EntityManager em = createEM(myEMF);
em.getTransaction().begin();
annuity.getPayors().add(payor);
annuity.setAnnuityHolderId(annuityHolder.getId());
annuity = em.merge(annuity);
em.getTransaction().commit();
closeEM(em);
} catch (Exception e) {
log.error("failed to update annuity successfuly.", e);