-
Bug
-
Resolution: Done
-
Minor
-
1.0.0.PREVIEW1
-
None
-
None
If you create an enterprise web bean with a logical error, i.e. attempting to play with the transaction from within a method or attempt to access a table that does not exist, you get a stack trace that only mentions:
java.lang.IllegalArgumentException: enterpriseBeanInstance.setDestroyed() called with non-boolean argument
This is incorrect, or at least undesirable, because there's no clear indication where the error actually lies.
Examples of the poor programming:
Referencing an entity bean that has @Table("some_non_existent_table")
Starting a transaction:
entityManager.getTransaction().begin();
Query q = entityManager.createQuery("select i from Image i where i.skuAssociated = :sku").setParameter("sku", sku);
List<Image> results = q.getResultList();
entityManager.getTransaction().commit();
return results;
Essentially, anything that can cause a RuntimeException (or child of) to be thrown from within the methods of a Stateful EJB.
To test:
Create a standard EJB w/ a similar programming problem and see that it does not throw this exception.
Create an enterprise web bean w/out this programming problem and see that it does not throw this exception.