[jboss-svn-commits] JBL Code SVN: r26018 - in labs/jbossrules/trunk/drools-process/drools-process-task/src: main/java/org/drools/task/service and 3 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sat Apr 11 21:00:16 EDT 2009
Author: stampy88
Date: 2009-04-11 21:00:16 -0400 (Sat, 11 Apr 2009)
New Revision: 26018
Added:
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/AbstractBaseResponseHandler.java
Removed:
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/AbstractBlockingResponseHandler.java
Modified:
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/BlockingAddTaskResponseHandler.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/BlockingEventResponseHandler.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/BlockingGetTaskResponseHandler.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/WSHumanTaskHandler.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/BaseMinaHandler.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskClientHandler.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskServerHandler.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/AbstractBlockingResponseHandler.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/process/workitem/wsht/WSHumanTaskHandlerTest.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceLifeCycleTest.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceTest.java
Log:
Propagated exceptions back to client
Deleted: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/AbstractBlockingResponseHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/AbstractBlockingResponseHandler.java 2009-04-11 08:39:44 UTC (rev 26017)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/AbstractBlockingResponseHandler.java 2009-04-12 01:00:16 UTC (rev 26018)
@@ -1,54 +0,0 @@
-/**
- *
- */
-package org.drools.process.workitem.wsht;
-
-import org.drools.task.service.BaseMinaHandler.ResponseHandler;
-
-public abstract class AbstractBlockingResponseHandler implements ResponseHandler {
-
- private volatile boolean done;
- private String error;
-
- public boolean hasError() {
- return error != null;
- }
-
- public String getError() {
- return error;
- }
-
- public void setError(String error) {
- this.error = error;
- }
-
- public synchronized boolean isDone() {
- return done;
- }
-
- protected synchronized void setDone(boolean done) {
- this.done = done;
- notifyAll();
- }
-
- /**
- * This method will wait the specified amount of time in milliseconds for the response to
- * be completed. Completed is determined via the <field>done</field>. Returns true if the
- * reponse was completed in time, false otherwise
- *
- * @param time max time to wait
- * @return true if response is available, false otherwise
- */
- public synchronized boolean waitTillDone(long time) {
-
- if (!isDone()) {
- try {
- wait(time);
- } catch (InterruptedException e) {
- // swallow and return state of done
- }
- }
-
- return isDone();
- }
-}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/BlockingAddTaskResponseHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/BlockingAddTaskResponseHandler.java 2009-04-11 08:39:44 UTC (rev 26017)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/BlockingAddTaskResponseHandler.java 2009-04-12 01:00:16 UTC (rev 26018)
@@ -4,6 +4,7 @@
package org.drools.process.workitem.wsht;
import org.drools.task.service.TaskClientHandler.AddTaskResponseHandler;
+import org.drools.task.service.responsehandlers.AbstractBlockingResponseHandler;
public class BlockingAddTaskResponseHandler extends AbstractBlockingResponseHandler implements AddTaskResponseHandler {
private static final int DEFAULT_WAIT_TIME = 10000;
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/BlockingEventResponseHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/BlockingEventResponseHandler.java 2009-04-11 08:39:44 UTC (rev 26017)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/BlockingEventResponseHandler.java 2009-04-12 01:00:16 UTC (rev 26018)
@@ -5,6 +5,7 @@
import org.drools.eventmessaging.EventResponseHandler;
import org.drools.eventmessaging.Payload;
+import org.drools.task.service.responsehandlers.AbstractBlockingResponseHandler;
public class BlockingEventResponseHandler extends AbstractBlockingResponseHandler implements EventResponseHandler {
// todo why is this timeout different from the others?? - also, if this should be the same
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/BlockingGetTaskResponseHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/BlockingGetTaskResponseHandler.java 2009-04-11 08:39:44 UTC (rev 26017)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/BlockingGetTaskResponseHandler.java 2009-04-12 01:00:16 UTC (rev 26018)
@@ -5,6 +5,7 @@
import org.drools.task.Task;
import org.drools.task.service.TaskClientHandler.GetTaskResponseHandler;
+import org.drools.task.service.responsehandlers.AbstractBlockingResponseHandler;
public class BlockingGetTaskResponseHandler extends AbstractBlockingResponseHandler implements GetTaskResponseHandler {
private static final int DEFAULT_WAIT_TIME = 10000;
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/WSHumanTaskHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/WSHumanTaskHandler.java 2009-04-11 08:39:44 UTC (rev 26017)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/process/workitem/wsht/WSHumanTaskHandler.java 2009-04-12 01:00:16 UTC (rev 26018)
@@ -1,49 +1,31 @@
package org.drools.process.workitem.wsht;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.net.InetSocketAddress;
-import java.net.SocketAddress;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
import org.apache.mina.transport.socket.nio.NioSocketConnector;
+import org.drools.SystemEventListenerFactory;
import org.drools.eventmessaging.EventKey;
import org.drools.eventmessaging.EventResponseHandler;
import org.drools.eventmessaging.Payload;
import org.drools.runtime.process.WorkItem;
import org.drools.runtime.process.WorkItemHandler;
import org.drools.runtime.process.WorkItemManager;
-import org.drools.task.AccessType;
-import org.drools.task.Content;
-import org.drools.task.Group;
-import org.drools.task.I18NText;
-import org.drools.task.OnParentAbortAllSubTasksEndStrategy;
-import org.drools.task.OrganizationalEntity;
-import org.drools.task.PeopleAssignments;
-import org.drools.task.SubTasksStrategy;
-import org.drools.task.SubTasksStrategyFactory;
-import org.drools.task.Task;
-import org.drools.task.TaskData;
-import org.drools.task.User;
-import org.drools.task.event.TaskCompletedEvent;
-import org.drools.task.event.TaskEvent;
-import org.drools.task.event.TaskEventKey;
-import org.drools.task.event.TaskFailedEvent;
-import org.drools.task.event.TaskSkippedEvent;
+import org.drools.task.*;
+import org.drools.task.event.*;
import org.drools.task.service.ContentData;
import org.drools.task.service.MinaTaskClient;
import org.drools.task.service.TaskClientHandler;
+import org.drools.task.service.responsehandlers.AbstractBaseResponseHandler;
import org.drools.task.service.TaskClientHandler.AddTaskResponseHandler;
import org.drools.task.service.TaskClientHandler.GetContentResponseHandler;
import org.drools.task.service.TaskClientHandler.GetTaskResponseHandler;
-import org.drools.SystemEventListenerFactory;
+import java.io.*;
+import java.net.InetSocketAddress;
+import java.net.SocketAddress;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
public class WSHumanTaskHandler implements WorkItemHandler {
private String ipAddress = "127.0.0.1";
@@ -198,8 +180,7 @@
}
}
- public static class TaskWorkItemAddTaskResponseHandler implements AddTaskResponseHandler {
- private volatile String error;
+ public static class TaskWorkItemAddTaskResponseHandler extends AbstractBaseResponseHandler implements AddTaskResponseHandler {
private Map<Long, WorkItemManager> managers;
private Map<Long, Long> idMapping;
private WorkItemManager manager;
@@ -234,19 +215,9 @@
key = new TaskEventKey(TaskSkippedEvent.class, taskId );
client.registerForEvent( key, true, eventResponseHandler );
}
-
- public void setError(String error) {
- this.error = error;
- }
-
- public String getError() {
- return this.error;
- }
}
- private static class TaskCompletedHandler implements EventResponseHandler {
- private volatile String error;
-
+ private static class TaskCompletedHandler extends AbstractBaseResponseHandler implements EventResponseHandler {
private long workItemId;
private long taskId;
private Map<Long, WorkItemManager> managers;
@@ -264,7 +235,7 @@
TaskEvent event = ( TaskEvent ) payload.get();
if ( event.getTaskId() != taskId ) {
// defensive check that should never happen, just here for testing
- this.error = "Expected task id and arrived task id do not march";
+ setError(new IllegalStateException("Expected task id and arrived task id do not march"));
return;
}
if (event instanceof TaskCompletedEvent) {
@@ -285,20 +256,11 @@
}
}
}
-
- public void setError(String error) {
- this.error = error;
- }
-
- public String getError() {
- return this.error;
- }
}
- private static class GetCompletedTaskResponseHandler implements GetTaskResponseHandler {
+ private static class GetCompletedTaskResponseHandler extends AbstractBaseResponseHandler implements GetTaskResponseHandler {
private WorkItemManager manager;
- private String error;
private MinaTaskClient client;
public GetCompletedTaskResponseHandler(WorkItemManager manager, MinaTaskClient client) {
@@ -320,23 +282,14 @@
manager.completeWorkItem(workItemId, results);
}
}
-
- public void setError(String error) {
- this.error = error;
- }
-
- public String getError() {
- return this.error;
- }
}
- private static class GetResultContentResponseHandler implements GetContentResponseHandler {
+ private static class GetResultContentResponseHandler extends AbstractBaseResponseHandler implements GetContentResponseHandler {
private WorkItemManager manager;
private Task task;
private Map<String, Object> results;
- private String error;
-
+
public GetResultContentResponseHandler(WorkItemManager manager, Task task, Map<String, Object> results) {
this.manager = manager;
this.task = task;
@@ -358,14 +311,5 @@
e.printStackTrace();
}
}
-
- public void setError(String error) {
- this.error = error;
- }
-
- public String getError() {
- return this.error;
- }
}
-
}
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/BaseMinaHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/BaseMinaHandler.java 2009-04-11 08:39:44 UTC (rev 26017)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/BaseMinaHandler.java 2009-04-12 01:00:16 UTC (rev 26018)
@@ -18,6 +18,6 @@
}
public static interface ResponseHandler {
- public void setError(String error);
+ public void setError(RuntimeException error);
}
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskClientHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskClientHandler.java 2009-04-11 08:39:44 UTC (rev 26017)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskClientHandler.java 2009-04-12 01:00:16 UTC (rev 26018)
@@ -1,16 +1,16 @@
package org.drools.task.service;
-import java.util.List;
-import java.util.Arrays;
-
import org.apache.mina.core.session.IoSession;
+import org.drools.SystemEventListener;
import org.drools.eventmessaging.EventResponseHandler;
import org.drools.eventmessaging.Payload;
import org.drools.task.Content;
import org.drools.task.Task;
import org.drools.task.query.TaskSummary;
-import org.drools.SystemEventListener;
+import java.util.Arrays;
+import java.util.List;
+
public class TaskClientHandler extends BaseMinaHandler {
private MinaTaskClient client;
@@ -49,8 +49,8 @@
case OperationResponse: {
TaskOperationResponseHandler responseHandler = (TaskOperationResponseHandler) responseHandlers.remove(cmd.getId());
if (responseHandler != null) {
- if (!cmd.getArguments().isEmpty() && cmd.getArguments().get(0) instanceof TaskError) {
- responseHandler.setError(((TaskError) cmd.getArguments().get(0)).getMessage());
+ if (!cmd.getArguments().isEmpty() && cmd.getArguments().get(0) instanceof RuntimeException) {
+ responseHandler.setError((RuntimeException) cmd.getArguments().get(0));
} else {
responseHandler.setIsDone(true);
}
@@ -61,8 +61,8 @@
Task task = (Task) cmd.getArguments().get(0);
GetTaskResponseHandler responseHandler = (GetTaskResponseHandler) responseHandlers.remove(cmd.getId());
if (responseHandler != null) {
- if (!cmd.getArguments().isEmpty() && cmd.getArguments().get(0) instanceof TaskError) {
- responseHandler.setError(((TaskError) cmd.getArguments().get(0)).getMessage());
+ if (!cmd.getArguments().isEmpty() && cmd.getArguments().get(0) instanceof RuntimeException) {
+ responseHandler.setError((RuntimeException) cmd.getArguments().get(0));
} else {
responseHandler.execute(task);
}
@@ -73,8 +73,8 @@
long taskId = (Long) cmd.getArguments().get(0);
AddTaskResponseHandler responseHandler = (AddTaskResponseHandler) responseHandlers.remove(cmd.getId());
if (responseHandler != null) {
- if (!cmd.getArguments().isEmpty() && cmd.getArguments().get(0) instanceof TaskError) {
- responseHandler.setError(((TaskError) cmd.getArguments().get(0)).getMessage());
+ if (!cmd.getArguments().isEmpty() && cmd.getArguments().get(0) instanceof RuntimeException) {
+ responseHandler.setError((RuntimeException) cmd.getArguments().get(0));
} else {
responseHandler.execute(taskId);
}
@@ -85,8 +85,8 @@
long commentId = (Long) cmd.getArguments().get(0);
AddCommentResponseHandler responseHandler = (AddCommentResponseHandler) responseHandlers.remove(cmd.getId());
if (responseHandler != null) {
- if (!cmd.getArguments().isEmpty() && cmd.getArguments().get(0) instanceof TaskError) {
- responseHandler.setError(((TaskError) cmd.getArguments().get(0)).getMessage());
+ if (!cmd.getArguments().isEmpty() && cmd.getArguments().get(0) instanceof RuntimeException) {
+ responseHandler.setError((RuntimeException) cmd.getArguments().get(0));
} else {
responseHandler.execute(commentId);
}
@@ -96,8 +96,8 @@
case DeleteCommentResponse: {
DeleteCommentResponseHandler responseHandler = (DeleteCommentResponseHandler) responseHandlers.remove(cmd.getId());
if (responseHandler != null) {
- if (!cmd.getArguments().isEmpty() && cmd.getArguments().get(0) instanceof TaskError) {
- responseHandler.setError(((TaskError) cmd.getArguments().get(0)).getMessage());
+ if (!cmd.getArguments().isEmpty() && cmd.getArguments().get(0) instanceof RuntimeException) {
+ responseHandler.setError((RuntimeException) cmd.getArguments().get(0));
} else {
responseHandler.setIsDone(true);
}
@@ -109,8 +109,8 @@
long contentId = (Long) cmd.getArguments().get(1);
AddAttachmentResponseHandler responseHandler = (AddAttachmentResponseHandler) responseHandlers.remove(cmd.getId());
if (responseHandler != null) {
- if (!cmd.getArguments().isEmpty() && cmd.getArguments().get(0) instanceof TaskError) {
- responseHandler.setError(((TaskError) cmd.getArguments().get(0)).getMessage());
+ if (!cmd.getArguments().isEmpty() && cmd.getArguments().get(0) instanceof RuntimeException) {
+ responseHandler.setError((RuntimeException) cmd.getArguments().get(0));
} else {
responseHandler.execute(attachmentId,
contentId);
@@ -121,8 +121,8 @@
case DeleteAttachmentResponse: {
DeleteAttachmentResponseHandler responseHandler = (DeleteAttachmentResponseHandler) responseHandlers.remove(cmd.getId());
if (responseHandler != null) {
- if (!cmd.getArguments().isEmpty() && cmd.getArguments().get(0) instanceof TaskError) {
- responseHandler.setError(((TaskError) cmd.getArguments().get(0)).getMessage());
+ if (!cmd.getArguments().isEmpty() && cmd.getArguments().get(0) instanceof RuntimeException) {
+ responseHandler.setError((RuntimeException) cmd.getArguments().get(0));
} else {
responseHandler.setIsDone(true);
}
@@ -133,8 +133,8 @@
Content content = (Content) cmd.getArguments().get(0);
GetContentResponseHandler responseHandler = (GetContentResponseHandler) responseHandlers.remove(cmd.getId());
if (responseHandler != null) {
- if (!cmd.getArguments().isEmpty() && cmd.getArguments().get(0) instanceof TaskError) {
- responseHandler.setError(((TaskError) cmd.getArguments().get(0)).getMessage());
+ if (!cmd.getArguments().isEmpty() && cmd.getArguments().get(0) instanceof RuntimeException) {
+ responseHandler.setError((RuntimeException) cmd.getArguments().get(0));
} else {
responseHandler.execute(content);
}
@@ -145,8 +145,8 @@
long contentId = (Long) cmd.getArguments().get(0);
SetDocumentResponseHandler responseHandler = (SetDocumentResponseHandler) responseHandlers.remove(cmd.getId());
if (responseHandler != null) {
- if (!cmd.getArguments().isEmpty() && cmd.getArguments().get(0) instanceof TaskError) {
- responseHandler.setError(((TaskError) cmd.getArguments().get(0)).getMessage());
+ if (!cmd.getArguments().isEmpty() && cmd.getArguments().get(0) instanceof RuntimeException) {
+ responseHandler.setError((RuntimeException) cmd.getArguments().get(0));
} else {
responseHandler.execute(contentId);
}
@@ -157,8 +157,8 @@
List<TaskSummary> results = (List<TaskSummary>) cmd.getArguments().get(0);
TaskSummaryResponseHandler responseHandler = (TaskSummaryResponseHandler) responseHandlers.remove(cmd.getId());
if (responseHandler != null) {
- if (!cmd.getArguments().isEmpty() && cmd.getArguments().get(0) instanceof TaskError) {
- responseHandler.setError(((TaskError) cmd.getArguments().get(0)).getMessage());
+ if (!cmd.getArguments().isEmpty() && cmd.getArguments().get(0) instanceof RuntimeException) {
+ responseHandler.setError((RuntimeException) cmd.getArguments().get(0));
} else {
responseHandler.execute(results);
}
@@ -169,8 +169,8 @@
Payload payload = (Payload) cmd.getArguments().get(0);
EventResponseHandler responseHandler = (EventResponseHandler) responseHandlers.remove(cmd.getId());
if (responseHandler != null) {
- if (!cmd.getArguments().isEmpty() && cmd.getArguments().get(0) instanceof TaskError) {
- responseHandler.setError(((TaskError) cmd.getArguments().get(0)).getMessage());
+ if (!cmd.getArguments().isEmpty() && cmd.getArguments().get(0) instanceof RuntimeException) {
+ responseHandler.setError((RuntimeException) cmd.getArguments().get(0));
} else {
responseHandler.execute(payload);
}
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskServerHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskServerHandler.java 2009-04-11 08:39:44 UTC (rev 26017)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/TaskServerHandler.java 2009-04-12 01:00:16 UTC (rev 26018)
@@ -340,12 +340,11 @@
systemEventListener.debug("Unknown command recieved on server");
}
}
- } catch (Throwable e) {
+ } catch (RuntimeException e) {
systemEventListener.exception(e.getMessage(),e);
- TaskError error = new TaskError(e.getMessage());
List<Object> list = new ArrayList<Object>(1);
- list.add(error);
+ list.add(e);
Command resultsCmnd = new Command(cmd.getId(), response, list);
session.write(resultsCmnd);
} finally {
Added: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/AbstractBaseResponseHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/AbstractBaseResponseHandler.java (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/AbstractBaseResponseHandler.java 2009-04-12 01:00:16 UTC (rev 26018)
@@ -0,0 +1,66 @@
+package org.drools.task.service.responsehandlers;
+
+import org.drools.task.service.BaseMinaHandler;
+
+import java.lang.reflect.Constructor;
+
+/**
+ * Abstract base class for client ResponseHandlers. Provides synchonized access to <field>done</field> which represents
+ * if the response is completed. Also has an <field>error</field> which will be set when there is a problem with
+ * a response. Users of this class should check to see if the response completed successfully, via
+ * the <method>isDone</method> and the <method>hasError</method>.
+ * <p/>
+ * Please note that the <field>error</field> is actually the Exception that occured on the server while
+ * processing the request.
+ *
+ * @author <a href="mailto:stampy88 at yahoo.com">dave sinclair</a>
+ */
+public abstract class AbstractBaseResponseHandler implements BaseMinaHandler.ResponseHandler {
+ private volatile boolean done;
+ private RuntimeException error;
+
+ public synchronized boolean hasError() {
+ return error != null;
+ }
+
+ public synchronized RuntimeException getError() {
+ return error;
+ }
+
+ public synchronized void setError(RuntimeException error) {
+ this.error = error;
+ notifyAll();
+ }
+
+ public synchronized boolean isDone() {
+ return done;
+ }
+
+ protected synchronized void setDone(boolean done) {
+ this.done = done;
+ notifyAll();
+ }
+
+ /**
+ * This method will take the specified serverSideException, and create a new one for the client based
+ * on the serverSideException. This is done so a proper stack trace can be made for the client, as opposed
+ * to seeing the server side stack.
+ *
+ * @param serverSideException exception used to create client side exception
+ * @return client side exception
+ */
+ protected static RuntimeException createSideException(RuntimeException serverSideException) {
+ RuntimeException clientSideException;
+
+ try {
+ Constructor<? extends RuntimeException> constructor = serverSideException.getClass().getConstructor(String.class);
+
+ clientSideException = constructor.newInstance(serverSideException.getMessage());
+ } catch (Exception e) {
+ // this should never happen - if it does, it is a programming error
+ throw new RuntimeException("Could not create client side exception", e);
+ }
+
+ return clientSideException;
+ }
+}
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/AbstractBlockingResponseHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/AbstractBlockingResponseHandler.java 2009-04-11 08:39:44 UTC (rev 26017)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/responsehandlers/AbstractBlockingResponseHandler.java 2009-04-12 01:00:16 UTC (rev 26018)
@@ -3,43 +3,20 @@
*/
package org.drools.task.service.responsehandlers;
-import org.drools.task.service.BaseMinaHandler.ResponseHandler;
+public abstract class AbstractBlockingResponseHandler extends AbstractBaseResponseHandler {
-// todo: this class is the same as org.drools.process.workitem.wsht.AbstractBlockingResponseHandler - need to
-// consolodate them
-public abstract class AbstractBlockingResponseHandler implements ResponseHandler {
-
- private volatile boolean done;
- private String error;
-
- public boolean hasError() {
- return error != null;
- }
-
- public String getError() {
- return error;
- }
-
- public void setError(String error) {
- this.error = error;
- }
-
- public synchronized boolean isDone() {
- return done;
- }
-
- protected synchronized void setDone(boolean done) {
- this.done = done;
- notifyAll();
- }
-
/**
* This method will wait the specified amount of time in milliseconds for the response to
* be completed. Completed is determined via the <field>done</field>. Returns true if the
- * reponse was completed in time, false otherwise
+ * reponse was completed in time, false otherwise. If an error occurs, this method will throw
+ * a subclass of <code>RuntimeException</code> specific to the error.
*
* @param time max time to wait
* @return true if response is available, false otherwise
+ *
+ * @see org.drools.task.service.PermissionDeniedException
+ * @see org.drools.task.service.CannotAddTaskException
+ * @see javax.persistence.PersistenceException
*/
public synchronized boolean waitTillDone(long time) {
@@ -51,6 +28,10 @@
}
}
+ if(hasError()) {
+ throw createSideException(getError());
+ }
+
return isDone();
}
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/process/workitem/wsht/WSHumanTaskHandlerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/process/workitem/wsht/WSHumanTaskHandlerTest.java 2009-04-11 08:39:44 UTC (rev 26017)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/process/workitem/wsht/WSHumanTaskHandlerTest.java 2009-04-12 01:00:16 UTC (rev 26018)
@@ -1,6 +1,7 @@
package org.drools.process.workitem.wsht;
import org.apache.mina.transport.socket.nio.NioSocketConnector;
+import org.drools.SystemEventListenerFactory;
import org.drools.process.instance.impl.WorkItemImpl;
import org.drools.runtime.process.WorkItem;
import org.drools.runtime.process.WorkItemHandler;
@@ -10,15 +11,11 @@
import org.drools.task.Status;
import org.drools.task.Task;
import org.drools.task.query.TaskSummary;
-import org.drools.task.service.ContentData;
-import org.drools.task.service.MinaTaskClient;
-import org.drools.task.service.MinaTaskServer;
-import org.drools.task.service.TaskClientHandler;
+import org.drools.task.service.*;
import org.drools.task.service.responsehandlers.BlockingGetContentResponseHandler;
import org.drools.task.service.responsehandlers.BlockingGetTaskResponseHandler;
import org.drools.task.service.responsehandlers.BlockingTaskOperationResponseHandler;
import org.drools.task.service.responsehandlers.BlockingTaskSummaryResponseHandler;
-import org.drools.SystemEventListenerFactory;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
@@ -31,8 +28,9 @@
import java.util.Set;
public class WSHumanTaskHandlerTest extends BaseTest {
- private static final int MANAGER_COMPLETION_WAIT_TIME = 5000;
- private static final int MANAGER_ABORT_WAIT_TIME = 5000;
+ private static final int DEFAULT_WAIT_TIME = 5000;
+ private static final int MANAGER_COMPLETION_WAIT_TIME = DEFAULT_WAIT_TIME;
+ private static final int MANAGER_ABORT_WAIT_TIME = DEFAULT_WAIT_TIME;
MinaTaskServer server;
MinaTaskClient client;
@@ -85,7 +83,7 @@
System.out.println("Starting task " + task.getId());
BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
client.start(task.getId(), "Darth Vader", operationResponseHandler);
- operationResponseHandler.waitTillDone(5000);
+ operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
System.out.println("Started task " + task.getId());
System.out.println("Completing task " + task.getId());
@@ -122,19 +120,19 @@
System.out.println("Claiming task " + task.getId());
BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
client.claim(task.getId(), "Darth Vader", operationResponseHandler);
- operationResponseHandler.waitTillDone(5000);
+ operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
System.out.println("Claimed task " + task.getId());
System.out.println("Starting task " + task.getId());
operationResponseHandler = new BlockingTaskOperationResponseHandler();
client.start(task.getId(), "Darth Vader", operationResponseHandler);
- operationResponseHandler.waitTillDone(5000);
+ operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
System.out.println("Started task " + task.getId());
System.out.println("Completing task " + task.getId());
operationResponseHandler = new BlockingTaskOperationResponseHandler();
client.complete(task.getId(), "Darth Vader", null, operationResponseHandler);
- operationResponseHandler.waitTillDone(5000);
+ operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
System.out.println("Completed task " + task.getId());
assertTrue(manager.waitTillCompleted(MANAGER_COMPLETION_WAIT_TIME));
@@ -165,7 +163,14 @@
System.out.println("Claiming task " + taskSummary.getId());
BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
client.claim(taskSummary.getId(), "Darth Vader", operationResponseHandler);
- operationResponseHandler.waitTillDone(5000);
+ PermissionDeniedException denied = null;
+ try {
+ operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+ } catch (PermissionDeniedException e) {
+ denied = e;
+ }
+
+ assertNotNull("Should get permissed denied exception", denied);
System.out.println("Claimed task " + taskSummary.getId());
//Check if the parent task is InProgress
@@ -229,13 +234,13 @@
System.out.println("Starting task " + task.getId());
BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
client.start(task.getId(), "Darth Vader", operationResponseHandler);
- operationResponseHandler.waitTillDone(5000);
+ operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
System.out.println("Started task " + task.getId());
System.out.println("Failing task " + task.getId());
operationResponseHandler = new BlockingTaskOperationResponseHandler();
client.fail(task.getId(), "Darth Vader", null, operationResponseHandler);
- operationResponseHandler.waitTillDone(5000);
+ operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
System.out.println("Failed task " + task.getId());
assertTrue(manager.waitTillAborted(MANAGER_ABORT_WAIT_TIME));
@@ -267,7 +272,7 @@
System.out.println("Skipping task " + task.getId());
BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
client.skip(task.getId(), "Darth Vader", operationResponseHandler);
- operationResponseHandler.waitTillDone(5000);
+ operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
System.out.println("Skipped task " + task.getId());
assertTrue(manager.waitTillAborted(MANAGER_ABORT_WAIT_TIME));
@@ -364,7 +369,7 @@
System.out.println("Starting task " + task.getId());
BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
client.start(task.getId(), "Darth Vader", operationResponseHandler);
- operationResponseHandler.waitTillDone(5000);
+ operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
System.out.println("Started task " + task.getId());
System.out.println("Completing task " + task.getId());
@@ -378,7 +383,7 @@
out.close();
result.setContent(bos.toByteArray());
client.complete(task.getId(), "Darth Vader", result, operationResponseHandler);
- operationResponseHandler.waitTillDone(5000);
+ operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
System.out.println("Completed task " + task.getId());
assertTrue(manager.waitTillCompleted(MANAGER_COMPLETION_WAIT_TIME));
@@ -445,7 +450,7 @@
System.out.println("Starting task " + task.getId());
BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
client.start(task.getId(), "Darth Vader", operationResponseHandler);
- operationResponseHandler.waitTillDone(5000);
+ operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
System.out.println("Started task " + task.getId());
//Check if the parent task is InProgress
@@ -469,14 +474,14 @@
System.out.println("Starting sub task " + subTaskSummary1.getId());
operationResponseHandler = new BlockingTaskOperationResponseHandler();
client.start(subTaskSummary1.getId(), "Darth Vader", operationResponseHandler);
- operationResponseHandler.waitTillDone(5000);
+ operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
System.out.println("Started sub task " + subTaskSummary1.getId());
//Starting the sub task 2
System.out.println("Starting sub task " + subTaskSummary2.getId());
operationResponseHandler = new BlockingTaskOperationResponseHandler();
client.start(subTaskSummary2.getId(), "Darth Vader", operationResponseHandler);
- operationResponseHandler.waitTillDone(5000);
+ operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
System.out.println("Started sub task " + subTaskSummary2.getId());
//Check if the child task 1 is InProgress
@@ -497,14 +502,14 @@
System.out.println("Completing sub task " + subTask1.getId());
operationResponseHandler = new BlockingTaskOperationResponseHandler();
client.complete(subTask1.getId(), "Darth Vader", null, operationResponseHandler);
- operationResponseHandler.waitTillDone(5000);
+ operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
System.out.println("Completed sub task " + subTask1.getId());
// Complete the child task 2
System.out.println("Completing sub task " + subTask2.getId());
operationResponseHandler = new BlockingTaskOperationResponseHandler();
client.complete(subTask2.getId(), "Darth Vader", null, operationResponseHandler);
- operationResponseHandler.waitTillDone(5000);
+ operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
System.out.println("Completed sub task " + subTask2.getId());
//Check if the child task 1 is Completed
@@ -590,7 +595,7 @@
System.out.println("Starting task " + task.getId());
BlockingTaskOperationResponseHandler operationResponseHandler = new BlockingTaskOperationResponseHandler();
client.start(task.getId(), "Darth Vader", operationResponseHandler);
- operationResponseHandler.waitTillDone(5000);
+ operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
System.out.println("Started task " + task.getId());
//Check if the parent task is InProgress
@@ -614,14 +619,14 @@
System.out.println("Starting sub task " + subTaskSummary1.getId());
operationResponseHandler = new BlockingTaskOperationResponseHandler();
client.start(subTaskSummary1.getId(), "Darth Vader", operationResponseHandler);
- operationResponseHandler.waitTillDone(5000);
+ operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
System.out.println("Started sub task " + subTaskSummary1.getId());
//Starting the sub task 2
System.out.println("Starting sub task " + subTaskSummary2.getId());
operationResponseHandler = new BlockingTaskOperationResponseHandler();
client.start(subTaskSummary2.getId(), "Darth Vader", operationResponseHandler);
- operationResponseHandler.waitTillDone(5000);
+ operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
System.out.println("Started sub task " + subTaskSummary2.getId());
//Check if the child task 1 is InProgress
@@ -642,7 +647,7 @@
System.out.println("Completing parent task " + parentTask.getId());
operationResponseHandler = new BlockingTaskOperationResponseHandler();
client.skip(parentTask.getId(), "Darth Vader", operationResponseHandler);
- operationResponseHandler.waitTillDone(5000);
+ operationResponseHandler.waitTillDone(DEFAULT_WAIT_TIME);
System.out.println("Completed parent task " + parentTask.getId());
//Check if the child task 1 is Completed
@@ -668,7 +673,7 @@
private volatile boolean aborted;
private volatile Map<String, Object> results;
- public synchronized boolean waitTillCompleted(long time) {
+ public synchronized boolean waitTillCompleted(long time) {
if (!isCompleted()) {
try {
wait(time);
@@ -678,7 +683,7 @@
}
return isCompleted();
- }
+ }
public synchronized boolean waitTillAborted(long time) {
if (!isAborted()) {
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceLifeCycleTest.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceLifeCycleTest.java 2009-04-11 08:39:44 UTC (rev 26017)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceLifeCycleTest.java 2009-04-12 01:00:16 UTC (rev 26018)
@@ -22,6 +22,7 @@
public class TaskServiceLifeCycleTest extends BaseTest {
MinaTaskServer server;
MinaTaskClient client;
+ private static final int DEFAULT_WAIT_TIME = 5000;
@Override
protected void setUp() throws Exception {
@@ -156,7 +157,7 @@
BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
client.claim( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone( 3000 );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
getTaskResponseHandler = new BlockingGetTaskResponseHandler();
client.getTask( taskId, getTaskResponseHandler );
@@ -191,7 +192,7 @@
// Go straight from Ready to Inprogress
BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
client.start( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone( 3000 );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
getTaskResponseHandler = new BlockingGetTaskResponseHandler();
client.getTask( taskId, getTaskResponseHandler );
@@ -226,7 +227,15 @@
// State should not change as user isn't potential owner
BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
client.start( taskId, users.get( "tony" ).getId(), responseHandler );
- responseHandler.waitTillDone( 3000 );
+
+ PermissionDeniedException denied = null;
+ try {
+ responseHandler.waitTillDone( DEFAULT_WAIT_TIME );
+ } catch(PermissionDeniedException e) {
+ denied = e;
+ }
+
+ assertNotNull("Should get permissed denied exception", denied);
getTaskResponseHandler = new BlockingGetTaskResponseHandler();
client.getTask( taskId, getTaskResponseHandler );
@@ -262,7 +271,7 @@
// Should change to InProgress
BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
client.start( taskId, users.get( "bobba" ).getId(), responseHandler );
- responseHandler.waitTillDone( 3000 );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
getTaskResponseHandler = new BlockingGetTaskResponseHandler();
client.getTask( taskId, getTaskResponseHandler );
@@ -298,7 +307,15 @@
// Should change not change
BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
client.start( taskId, users.get( "tony" ).getId(), responseHandler );
- responseHandler.waitTillDone( 3000 );
+
+ PermissionDeniedException denied = null;
+ try{
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+ } catch (PermissionDeniedException e) {
+ denied = e;
+ }
+ assertNotNull("Should get permissed denied exception", denied);
+
getTaskResponseHandler = new BlockingGetTaskResponseHandler();
client.getTask( taskId, getTaskResponseHandler );
@@ -336,7 +353,7 @@
// Now Stop
responseHandler = new BlockingTaskOperationResponseHandler();
client.stop( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone( 3000 );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
getTaskResponseHandler = new BlockingGetTaskResponseHandler();
client.getTask( taskId, getTaskResponseHandler );
@@ -365,7 +382,7 @@
// Go straight from Ready to Inprogress
BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
client.start( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone( 3000 );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
client.getTask( taskId, getTaskResponseHandler );
@@ -376,7 +393,13 @@
// Should not stop
responseHandler = new BlockingTaskOperationResponseHandler();
client.stop( taskId, users.get( "bobba" ).getId(), responseHandler );
- responseHandler.waitTillDone( 3000 );
+ PermissionDeniedException denied = null;
+ try{
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+ } catch(PermissionDeniedException e) {
+ denied = e;
+ }
+ assertNotNull("Should get permissed denied exception", denied);
getTaskResponseHandler = new BlockingGetTaskResponseHandler();
client.getTask( taskId, getTaskResponseHandler );
@@ -405,7 +428,7 @@
// Go straight from Ready to Inprogress
BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
client.start( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone( 3000 );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
client.getTask( taskId, getTaskResponseHandler );
@@ -416,7 +439,7 @@
// Check is Released
responseHandler = new BlockingTaskOperationResponseHandler();
client.release( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone( 3000 );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
getTaskResponseHandler = new BlockingGetTaskResponseHandler();
client.getTask( taskId, getTaskResponseHandler );
@@ -445,7 +468,7 @@
// Go straight from Ready to Inprogress
BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
client.claim( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone( 3000 );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
client.getTask( taskId, getTaskResponseHandler );
@@ -456,7 +479,7 @@
// Check is Released
responseHandler = new BlockingTaskOperationResponseHandler();
client.release( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone( 3000 );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
getTaskResponseHandler = new BlockingGetTaskResponseHandler();
client.getTask( taskId, getTaskResponseHandler );
@@ -485,7 +508,7 @@
// Go straight from Ready to Inprogress
BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
client.claim( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone( 3000 );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
client.getTask( taskId, getTaskResponseHandler );
@@ -496,7 +519,13 @@
// Check is not changed
responseHandler = new BlockingTaskOperationResponseHandler();
client.release( taskId, users.get( "bobba" ).getId(), responseHandler );
- responseHandler.waitTillDone( 3000 );
+ PermissionDeniedException denied = null;
+ try{
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+ } catch(PermissionDeniedException e) {
+ denied = e;
+ }
+ assertNotNull("Should get permissed denied exception", denied);
getTaskResponseHandler = new BlockingGetTaskResponseHandler();
client.getTask( taskId, getTaskResponseHandler );
@@ -532,7 +561,7 @@
// Check is Suspended
BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
client.suspend( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone( 3000 );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
getTaskResponseHandler = new BlockingGetTaskResponseHandler();
client.getTask( taskId, getTaskResponseHandler );
@@ -562,7 +591,7 @@
// Check is Reserved
BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
client.claim( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone( 3000 );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
client.getTask( taskId, getTaskResponseHandler );
@@ -573,7 +602,7 @@
// Check is Suspended
responseHandler = new BlockingTaskOperationResponseHandler();
client.suspend( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone( 3000 );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
getTaskResponseHandler = new BlockingGetTaskResponseHandler();
client.getTask( taskId, getTaskResponseHandler );
@@ -603,7 +632,7 @@
// Check is Reserved
BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
client.claim( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone( 3000 );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
client.getTask( taskId, getTaskResponseHandler );
@@ -614,7 +643,13 @@
// Check is not changed
responseHandler = new BlockingTaskOperationResponseHandler();
client.suspend( taskId, users.get( "bobba" ).getId(), responseHandler );
- responseHandler.waitTillDone( 3000 );
+ PermissionDeniedException denied = null;
+ try{
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+ } catch(PermissionDeniedException e) {
+ denied = e;
+ }
+ assertNotNull("Should get permissed denied exception", denied);
getTaskResponseHandler = new BlockingGetTaskResponseHandler();
client.getTask( taskId, getTaskResponseHandler );
@@ -650,7 +685,7 @@
// Check is Suspended
BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
client.suspend( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone( 3000 );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
getTaskResponseHandler = new BlockingGetTaskResponseHandler();
client.getTask( taskId, getTaskResponseHandler );
@@ -662,7 +697,7 @@
// Check is Resumed
responseHandler = new BlockingTaskOperationResponseHandler();
client.resume( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone( 3000 );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
getTaskResponseHandler = new BlockingGetTaskResponseHandler();
client.getTask( taskId, getTaskResponseHandler );
@@ -692,7 +727,7 @@
// Check is Reserved
BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
client.claim( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone( 3000 );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
client.getTask( taskId, getTaskResponseHandler );
@@ -703,7 +738,7 @@
// Check is suspended
responseHandler = new BlockingTaskOperationResponseHandler();
client.suspend( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone( 3000 );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
getTaskResponseHandler = new BlockingGetTaskResponseHandler();
client.getTask( taskId, getTaskResponseHandler );
@@ -715,7 +750,7 @@
// Check is Resumed
responseHandler = new BlockingTaskOperationResponseHandler();
client.resume( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone( 3000 );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
getTaskResponseHandler = new BlockingGetTaskResponseHandler();
client.getTask( taskId, getTaskResponseHandler );
@@ -745,7 +780,7 @@
// Check is Reserved
BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
client.claim( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone( 3000 );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
client.getTask( taskId, getTaskResponseHandler );
@@ -756,7 +791,13 @@
// Check not changed
responseHandler = new BlockingTaskOperationResponseHandler();
client.suspend( taskId, users.get( "bobba" ).getId(), responseHandler );
- responseHandler.waitTillDone( 3000 );
+ PermissionDeniedException denied = null;
+ try{
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+ } catch(PermissionDeniedException e) {
+ denied = e;
+ }
+ assertNotNull("Should get permissed denied exception", denied);
getTaskResponseHandler = new BlockingGetTaskResponseHandler();
client.getTask( taskId, getTaskResponseHandler );
@@ -784,7 +825,7 @@
// Check is Complete
BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
client.skip( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone( 3000 );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
client.getTask( taskId, getTaskResponseHandler );
@@ -812,12 +853,12 @@
// Go straight from Ready
BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
client.claim( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone( 3000 );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
// Check is Complete
responseHandler = new BlockingTaskOperationResponseHandler();
client.skip( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone( 3000 );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
client.getTask( taskId, getTaskResponseHandler );
@@ -845,7 +886,7 @@
// Check is Delegated
BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
client.delegate( taskId, users.get( "darth" ).getId(), users.get( "tony" ).getId(), responseHandler );
- responseHandler.waitTillDone( 3000 );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
client.getTask( taskId, getTaskResponseHandler );
@@ -876,7 +917,7 @@
// Claim and Reserved
BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
client.claim( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone( 3000 );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
client.getTask( taskId, getTaskResponseHandler );
@@ -887,7 +928,7 @@
// Check is Delegated
responseHandler = new BlockingTaskOperationResponseHandler();
client.delegate( taskId, users.get( "darth" ).getId(), users.get( "tony" ).getId(), responseHandler );
- responseHandler.waitTillDone( 3000 );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
getTaskResponseHandler = new BlockingGetTaskResponseHandler();
client.getTask( taskId, getTaskResponseHandler );
@@ -917,7 +958,7 @@
// Claim and Reserved
BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
client.claim( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone( 3000 );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
client.getTask( taskId, getTaskResponseHandler );
@@ -928,7 +969,13 @@
// Check was not delegated
responseHandler = new BlockingTaskOperationResponseHandler();
client.delegate( taskId, users.get( "bobba" ).getId(), users.get( "tony" ).getId(), responseHandler );
- responseHandler.waitTillDone( 3000 );
+ PermissionDeniedException denied = null;
+ try{
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+ } catch(PermissionDeniedException e) {
+ denied = e;
+ }
+ assertNotNull("Should get permissed denied exception", denied);
getTaskResponseHandler = new BlockingGetTaskResponseHandler();
client.getTask( taskId, getTaskResponseHandler );
@@ -959,7 +1006,7 @@
// Check is Forwarded
BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
client.forward( taskId, users.get( "darth" ).getId(), users.get( "tony" ).getId(), responseHandler );
- responseHandler.waitTillDone( 3000 );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
client.getTask( taskId, getTaskResponseHandler );
@@ -990,7 +1037,7 @@
// Claim and Reserved
BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
client.claim( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone( 3000 );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
client.getTask( taskId, getTaskResponseHandler );
@@ -1001,7 +1048,7 @@
// Check is Delegated
responseHandler = new BlockingTaskOperationResponseHandler();
client.forward( taskId, users.get( "darth" ).getId(), users.get( "tony" ).getId(), responseHandler );
- responseHandler.waitTillDone( 3000 );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
getTaskResponseHandler = new BlockingGetTaskResponseHandler();
client.getTask( taskId, getTaskResponseHandler );
@@ -1032,7 +1079,7 @@
// Claim and Reserved
BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
client.claim( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone( 3000 );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
client.getTask( taskId, getTaskResponseHandler );
@@ -1043,7 +1090,13 @@
// Check was not delegated
responseHandler = new BlockingTaskOperationResponseHandler();
client.forward( taskId, users.get( "bobba" ).getId(), users.get( "tony" ).getId(), responseHandler );
- responseHandler.waitTillDone( 3000 );
+ PermissionDeniedException denied = null;
+ try{
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+ } catch(PermissionDeniedException e) {
+ denied = e;
+ }
+ assertNotNull("Should get permissed denied exception", denied);
getTaskResponseHandler = new BlockingGetTaskResponseHandler();
client.getTask( taskId, getTaskResponseHandler );
@@ -1074,7 +1127,7 @@
// Go straight from Ready to Inprogress
BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
client.start( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone( 3000 );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
client.getTask( taskId, getTaskResponseHandler );
@@ -1085,7 +1138,7 @@
// Check is Complete
responseHandler = new BlockingTaskOperationResponseHandler();
client.complete( taskId, users.get( "darth" ).getId(), null, responseHandler );
- responseHandler.waitTillDone( 3000 );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
getTaskResponseHandler = new BlockingGetTaskResponseHandler();
client.getTask( taskId, getTaskResponseHandler );
@@ -1114,7 +1167,7 @@
// Go straight from Ready to Inprogress
BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
client.start( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone( 3000 );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
client.getTask( taskId, getTaskResponseHandler );
@@ -1125,7 +1178,13 @@
// Should not complete as wrong user
responseHandler = new BlockingTaskOperationResponseHandler();
client.complete( taskId, users.get( "bobba" ).getId(), null, responseHandler );
- responseHandler.waitTillDone( 3000 );
+ PermissionDeniedException denied = null;
+ try{
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+ } catch(PermissionDeniedException e) {
+ denied = e;
+ }
+ assertNotNull("Should get permissed denied exception", denied);
getTaskResponseHandler = new BlockingGetTaskResponseHandler();
client.getTask( taskId, getTaskResponseHandler );
@@ -1154,7 +1213,7 @@
// Go straight from Ready to Inprogress
BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
client.start( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone( 3000 );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
client.getTask( taskId, getTaskResponseHandler );
@@ -1168,7 +1227,7 @@
data.setContent("content".getBytes());
responseHandler = new BlockingTaskOperationResponseHandler();
client.complete( taskId, users.get( "darth" ).getId(), data, responseHandler );
- responseHandler.waitTillDone( 3000 );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
getTaskResponseHandler = new BlockingGetTaskResponseHandler();
client.getTask( taskId, getTaskResponseHandler );
@@ -1204,7 +1263,7 @@
// Go straight from Ready to Inprogress
BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
client.start( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone( 3000 );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
client.getTask( taskId, getTaskResponseHandler );
@@ -1215,7 +1274,7 @@
// Check is Failed
responseHandler = new BlockingTaskOperationResponseHandler();
client.fail( taskId, users.get( "darth" ).getId(), null, responseHandler );
- responseHandler.waitTillDone( 3000 );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
getTaskResponseHandler = new BlockingGetTaskResponseHandler();
client.getTask( taskId, getTaskResponseHandler );
@@ -1244,7 +1303,7 @@
// Go straight from Ready to Inprogress
BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
client.start( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone( 3000 );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
client.getTask( taskId, getTaskResponseHandler );
@@ -1255,7 +1314,13 @@
// Should not fail as wrong user
responseHandler = new BlockingTaskOperationResponseHandler();
client.fail( taskId, users.get( "bobba" ).getId(), null, responseHandler );
- responseHandler.waitTillDone( 3000 );
+ PermissionDeniedException denied = null;
+ try{
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
+ } catch(PermissionDeniedException e) {
+ denied = e;
+ }
+ assertNotNull("Should get permissed denied exception", denied);
getTaskResponseHandler = new BlockingGetTaskResponseHandler();
client.getTask( taskId, getTaskResponseHandler );
@@ -1284,7 +1349,7 @@
// Go straight from Ready to Inprogress
BlockingTaskOperationResponseHandler responseHandler = new BlockingTaskOperationResponseHandler();
client.start( taskId, users.get( "darth" ).getId(), responseHandler );
- responseHandler.waitTillDone( 3000 );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
client.getTask( taskId, getTaskResponseHandler );
@@ -1299,7 +1364,7 @@
data.setContent("content".getBytes());
responseHandler = new BlockingTaskOperationResponseHandler();
client.fail( taskId, users.get( "darth" ).getId(), data, responseHandler );
- responseHandler.waitTillDone( 3000 );
+ responseHandler.waitTillDone(DEFAULT_WAIT_TIME);
getTaskResponseHandler = new BlockingGetTaskResponseHandler();
client.getTask( taskId, getTaskResponseHandler );
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceTest.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceTest.java 2009-04-11 08:39:44 UTC (rev 26017)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceTest.java 2009-04-12 01:00:16 UTC (rev 26018)
@@ -201,7 +201,7 @@
implements
TaskSummaryResponseHandler {
private volatile List<TaskSummary> results;
- private volatile String error;
+ private volatile RuntimeException error;
public synchronized void execute(List<TaskSummary> results) {
this.results = results;
@@ -231,14 +231,14 @@
}
}
- public void setError(String error) {
+ public void setError(RuntimeException error) {
this.error = error;
}
- public String getError() {
+ public RuntimeException getError() {
return error;
}
- };
+ }
}
More information about the jboss-svn-commits
mailing list