[jboss-svn-commits] JBL Code SVN: r32373 - in labs/jbossrules/trunk/drools-process/drools-process-task/src: main/java/org/drools/task/service and 1 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Apr 2 17:42:40 EDT 2010
Author: KrisVerlaenen
Date: 2010-04-02 17:42:40 -0400 (Fri, 02 Apr 2010)
New Revision: 32373
Modified:
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Content.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/ContentData.java
labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceLifeCycleTest.java
Log:
JBRULES-2468: Task with large content does not get persisted correctly
- made sure the byte[] is read fully (not just the first 1024 bytes) when deserializing content
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Content.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Content.java 2010-04-02 19:37:03 UTC (rev 32372)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/Content.java 2010-04-02 21:42:40 UTC (rev 32373)
@@ -39,7 +39,7 @@
ClassNotFoundException {
id = in.readLong();
content = new byte[ in.readInt() ];
- in.read( content );
+ in.readFully( content );
}
public long getId() {
Modified: labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/ContentData.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/ContentData.java 2010-04-02 19:37:03 UTC (rev 32372)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/main/java/org/drools/task/service/ContentData.java 2010-04-02 21:42:40 UTC (rev 32373)
@@ -69,7 +69,7 @@
}
if (in.readBoolean()) {
content = new byte[ in.readInt() ];
- in.read( content );
+ in.readFully( content );
}
}
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 2010-04-02 19:37:03 UTC (rev 32372)
+++ labs/jbossrules/trunk/drools-process/drools-process-task/src/test/java/org/drools/task/service/TaskServiceLifeCycleTest.java 2010-04-02 21:42:40 UTC (rev 32373)
@@ -132,6 +132,46 @@
assertEquals("content", new String(content.getContent()));
}
+ public void testNewTaskWithLargeContent() {
+ Map vars = new HashedMap();
+ vars.put( "users", users );
+ vars.put( "groups", groups );
+ vars.put( "now", new Date() );
+
+ String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), ";
+ str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [users['bobba' ] ], }),";
+ str += "names = [ new I18NText( 'en-UK', 'This is my task name')] })";
+
+ ContentData data = new ContentData();
+ data.setAccessType(AccessType.Inline);
+ data.setType("type");
+ String largeContent = "";
+ for (int i = 0; i < 1000; i++) {
+ largeContent += i + "xxxxxxxxx";
+ }
+ data.setContent(largeContent.getBytes());
+ BlockingAddTaskResponseHandler addTaskResponseHandler = new BlockingAddTaskResponseHandler();
+ Task task = ( Task ) eval( new StringReader( str ), vars );
+ client.addTask( task, data, addTaskResponseHandler );
+
+ long taskId = addTaskResponseHandler.getTaskId();
+
+ // Task should be assigned to the single potential owner and state set to Reserved
+ BlockingGetTaskResponseHandler getTaskResponseHandler = new BlockingGetTaskResponseHandler();
+ client.getTask( taskId, getTaskResponseHandler );
+ Task task1 = getTaskResponseHandler.getTask();
+ assertEquals( AccessType.Inline, task1.getTaskData().getDocumentAccessType() );
+ assertEquals( "type", task1.getTaskData().getDocumentType() );
+ long contentId = task1.getTaskData().getDocumentContentId();
+ assertTrue( contentId != -1 );
+
+ BlockingGetContentResponseHandler getContentResponseHandler = new BlockingGetContentResponseHandler();
+ client.getContent(contentId, getContentResponseHandler);
+ Content content = getContentResponseHandler.getContent();
+ System.out.println(new String(content.getContent()));
+ assertEquals(largeContent, new String(content.getContent()));
+ }
+
public void testClaimWithMultiplePotentialOwners() throws Exception {
Map vars = new HashedMap();
vars.put( "users", users );
More information about the jboss-svn-commits
mailing list