Bug 896640 - JBpmObjectMapper doesn't handle missing variables properly
Summary: JBpmObjectMapper doesn't handle missing variables properly
Keywords:
Status: CLOSED UPSTREAM
Alias: None
Product: JBoss Enterprise SOA Platform 5
Classification: JBoss
Component: JBossESB
Version: 5.3.0 GA
Hardware: Unspecified
OS: Unspecified
unspecified
high
Target Milestone: ER4
: 5.3.1
Assignee: tcunning
QA Contact: Marek Baluch
URL:
Whiteboard:
Depends On: 896634
Blocks:
TreeView+ depends on / blocked
 
Reported: 2013-01-17 16:35 UTC by Rick Wagner
Modified: 2025-02-10 03:27 UTC (History)
3 users (show)

Fixed In Version:
Clone Of: 896634
Environment:
Last Closed: 2025-02-10 03:27:19 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker JBESB-3896 0 Major Open JBpmObjectMapper doesn't appear to handle missing variables properly 2013-12-06 21:22:23 UTC

Description Rick Wagner 2013-01-17 16:35:01 UTC
+++ This bug was initially created as a clone of Bug #896634 +++

Description of problem:

Customer has raised the point that JBpmObjectMapper doesn't make it to what appears to be the intended log statement when a jBPM-side variable is not present.

This can be validated by inserting the following method into JBpmObjectMapperUnitTest.java:

// Same as existing test, just commented out setting v1.

    @Test
	public void testMissingObject() throws Exception
	// Things to look for:
	// 1) If the variable does not exist in the jbpm variable map, the execution context is tested, but if not present there, an exception is thrown.
        // It looks like the intention was to arrive at "log.warn("The object " + mapping.getBpm() + " is null and cannot not be set on the message")"
	{
        SAXReader reader = new SAXReader();
        Document document = reader.read(this.getClass().getResourceAsStream("/" + PROCESS_DEF_XML));
        Element element = document.getRootElement();
        DefaultElement bpmToEsbVars = (DefaultElement) element.element("start-state").element("transition").element("action").element("bpmToEsbVars");

		String helloWorldTokenScope  = "Hello world token scope";
        String helloWorldGlobalScope = "Hello world process-instance scope";
        TestJBPMVariable objectTokenScope = new TestJBPMVariable("Object token scope") ;
        TestJBPMVariable objectGlobalScope = new TestJBPMVariable("Object global scope") ;

		Token token = processInstance.getRootToken();
        // Don't set v1, see what happens
        //processInstance.getContextInstance().setVariable("v1", helloWorldTokenScope, token);
        processInstance.getContextInstance().setVariable("g2", helloWorldGlobalScope);
        processInstance.getContextInstance().setVariable("h3", objectTokenScope, token);
        processInstance.getContextInstance().setVariable("i4", objectGlobalScope);
        ExecutionContext executionContext = new ExecutionContext(token);

        JBpmObjectMapper mapper = new JBpmObjectMapper();
        Message message = mapper.mapFromJBpmToEsbMessage(bpmToEsbVars, Boolean.FALSE, executionContext);

        assertEquals(helloWorldTokenScope,String.valueOf(message.getBody().get("esbObj1")));
        assertEquals(helloWorldGlobalScope,String.valueOf(message.getBody().get("esbObj2")));
        assertEquals(objectTokenScope.getInternal(), String.valueOf(message.getBody().get("esbObj3")));
        assertEquals(objectGlobalScope.getInternal(), String.valueOf(message.getBody().get("esbObj4")));
	}

Comment 1 Marek Baluch 2013-02-01 12:13:07 UTC
Unit Test Passed.

Comment 2 Marek Baluch 2013-02-04 08:13:36 UTC
Tested also on bpm_orchestration1. Added

<bpmToEsbVars>
    <!-- ... -->
    <mapping bpm="theBody1" esb="BODY_CONTENT1"/>
<bpmToEsbVars>

to the process definition. The output of the process contained the following warning and no exception.

09:08:23,897 WARN  [JBpmObjectMapper] The object theBody1 is null and cannot not be set on the message

Comment 10 Red Hat Bugzilla 2025-02-10 03:27:19 UTC
This product has been discontinued or is no longer tracked in Red Hat Bugzilla.


Note You need to log in before you can comment on or make changes to this bug.