Timothy Charman [https://community.jboss.org/people/tcharman] created the 
discussion

"Re: XML Deserialization of Result Map Fails 5.4.0.Beta1"

To view the discussion, visit: https://community.jboss.org/message/772277#772277

--------------------------------------------------------------
OK, so Strings - 2 separate things we observe.

1. Using the eclipse editor, if I define the workflow variable as a String, 
then save, close the workflow and edit the variable, it shows up as Object of 
class String, i.e. is not consistent.  I guess this is because in both cases it 
writes a structureRef="String"
2. This code in WorkItemNodeInstance method triggerCompleted:

Object value = workItem.getResult(association.getSources().get(0));
if (value == null) {
try {
value = MVEL.eval(association.getSources().get(0), new 
WorkItemResolverFactory(workItem));
} catch (Throwable t) {
// do nothing
}
}
Variable varDef = 
variableScopeInstance.getVariableScope().findVariable(association.getTarget());
DataType dataType = varDef.getType();
// exclude java.lang.Object as it is considered unknown type
if (!dataType.getStringType().endsWith("java.lang.Object") && value instanceof 
String) {
value = dataType.readValue((String) value);
}
variableScopeInstance.setVariable(association.getTarget(), value);


For my String structureRef variables, I see my XStream exception, so I know it 
is hitting:
value = dataType.readValue((String) value);


So how am I meant to use a String that doesn't have XML in it...just a plain 
string that I want to pass back to the workflow?  The if statement:
if (!dataType.getStringType().endsWith("java.lang.Object") && value instanceof 
String) {


says to execute this XStream method if the type is not defined as 
java.lang.Object (which it isn't, it is defined as structureRef String) and the 
value is an instance of String, which it is, I'm trying to pass a string back.

To me this appears like the code doesn't cater for handling strings that are 
not representing serialized content...it appears that if we set the 
structureRef to java.lang.Object then this will work, but I suspect we won't be 
able to use the workflow variables in script tasks without casting back to 
String.

Thanks for all your help.

Tim
--------------------------------------------------------------

Reply to this message by going to Community
[https://community.jboss.org/message/772277#772277]

Start a new discussion in jBPM at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2034]

_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to