[jboss-user] [JBoss Seam] - how to catch unhandled exception in the conversation bean
ellenzhao
do-not-reply at jboss.com
Sun Aug 19 11:04:45 EDT 2007
In my view code, the inputText fields are tied to the field setters of managed entities. My conversation bean manages UseCase-related states.
Let's say there is a UseCase called updateAFood. There is an action button "submit" which calls this method in the conversation bean:
| private List<Exception> errors = new ArrayList<Exception>();
| private UseCaseStack;
|
| public void tryFinishUpdateAFood(){
| if (there is no exception from entity bean's setter methods) {
| this.finishUpdateAFood();
| } else {
| this.errors.addAll(exceptions from entity beans' setter methods);
| }
| }
|
| private void finishUpdateAFood(){
| Conversation.instance().end();
| this.useCases.removeUseCase(UseCase.updateAFood);
| this.food.setStatus(CRUDStatus.UPDATED.getSymbolInDB());
| }
|
Here is my utility class UseCaseStack.java
| public class UseCaseStack {
|
| private UseCase[] stack;
| private int nEntries;
| private int size;
|
| public UseCaseStack() {
| size = 10;
| stack = new UseCase[size];
| nEntries = 0;
| }
|
| public Integer size() {
| return nEntries;
| }
|
| public Boolean isEmpty() {
| return nEntries == 0;
| }
|
| public void push(UseCase uc) {
| if (nEntries == size) {
| UseCase[] newstack = new UseCase[2 * size];
| for (int i = 0; i < size; i++)
| newstack = stack;
| stack = newstack;
| size *= 2;
| }
|
| this.stack[nEntries++] = uc;
| }
|
| public UseCase pop() {
| nEntries--;
| UseCase uc = this.stack[nEntries];
| this.stack[nEntries] = null;
| return uc;
| }
|
| public UseCase peek() {
| if (this.nEntries == 0) {
| return UseCase.startApp;
| } else {
| return this.stack[nEntries - 1];
| }
| }
|
| public UseCase previous() {
| if (this.nEntries <= 1) {
| return UseCase.startApp;
| } else {
| return this.stack[nEntries - 2];
| }
| }
|
| public Boolean contains(UseCase uc) {
| boolean result = false;
| for (int i = nEntries - 1; i >= 0; i--) {
| if (this.stack.equals(uc)) {
| result = true;
| break;
| }
| }
| return result;
| }
|
| public void removeUseCase(UseCase uc) {
| for (int i = nEntries - 1; i >= 0; i--) {
| if (this.stack.equals(uc)) {
| for (int j = i; j < nEntries - 2; j++)
| this.stack[j] = this.stack[j + 1];
|
| this.nEntries--;
| break;
| }
| }
| }
|
| public void removeUpto(UseCase uc) {
| while (pop() != uc);
| }
| }
|
| public enum UseCase { .... }
|
Any hint on how to catch the exceptions from the entity bean's setter classes in the conversation bean would be highly appreciated!
Regards,
Ellen
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4075549#4075549
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4075549
More information about the jboss-user
mailing list