Simulation of matching in Desinger 4.9 is not working as expected

Today I was starting to simulate the do-find-matching-object action during a demonstration / training, and found the simulation was only working, if exactly one object was found.

If the response to the query issued by the do-find-matching-object action returns one <instance>, the simulation is showing the expected data.

But if either an empty instance (<iinstance/> ) or multiple <instance> elements are returned, a null pointer exception is thrown in Designer - the output in of the simulation seams to be corrct, up tpo the point the multiple scr-dn are shown, but there is no error variable initialized, no "multiple objects found shown in the trace, and the simulation is broken.

 <nds dtdversion="4.0" ndsversion="8.x">
<source>
<product version="4.9.0.0000">DirXML</product>
<contact>NetIQ Corporation</contact>
</source>
<input>
<query class-name="User" scope="subtree">
<search-class class-name="User"/>
<search-attr attr-name="mail">
<value type="string">test@demo.com</value>
</search-attr>
<read-attr/>
</query>
</input>
</nds>
Demo Driver :Restricting file Permission for /Users/tschloesser/designer_workspace/workspaces47/Demosystem/IDMDemoSystem/.tmp/ULNGEK9O.log
Demo Driver :Remote Loader: Restricting file Permission for /Users/tschloesser/designer_workspace/workspaces47/Demosystem/IDMDemoSystem/.tmp/ULNGEK9O.log
Demo Driver :Remote Loader: Restricting file Permission for /Users/tschloesser/designer_workspace/workspaces47/Demosystem/IDMDemoSystem/.tmp/ULNGEK9O.log
Demo Driver : Query from policy result
Demo Driver :
<nds dtdversion="4.0" ndsversion="8.x">
<source>
<product version="4.9.0.0000">DirXML</product>
<contact>NetIQ Corporation</contact>
</source>
<output>
<instance class-name="User" src-dn="11">
<association>1</association>
</instance>
<instance class-name="User" src-dn="b">
<association>b</association>
</instance>
</output>
</nds>
Demo Driver : Match found: src-dn='11' association='1'
Demo Driver : Match found: src-dn='b' association='b'

Am I too blind to see, or did I found an (new) issue?

Kind regards

Thorsten

Tags:

  • 0  

    Per documentation, "A response to <query> should also include a <status> indicating whether or not the <query> was processed successfully."

    https://www.netiq.com/documentation/identity-manager-developer/dtd-documentation/ndsdtd/query.html

    I see no status in your example response.(unsure if it will help fix your reported issue though).

  • 0 in reply to   

    Hi Alex,

    you are correct, and I added the status as well as a src-entry-id attribute just in case this was the problem, but it was not!

    <nds dtdversion="4.0" ndsversion="8.x">

      <source>

        <product version="4.9.0.0000">DirXML</product>

        <contact>NetIQ Corporation</contact>

      </source>

      <output>

        <instance class-name="User" src-dn="11" src-entry-id="1">

          <association>1</association>

        </instance>

        <instance class-name="User" src-dn="b" src-entry-id="b">

          <association>b</association>

        </instance>

        <status level="success"/>

      </output>

    </nds>

    This leads to the same null pointer issue like the one, with no object found.

    Only if the response looks like this, I receive no error running a simulation in Designer 4.9:

    <nds dtdversion="4.0" ndsversion="8.x">

      <source>

        <product version="4.9.0.0000">DirXML</product>

        <contact>NetIQ Corporation</contact>

      </source>

      <output>

        <instance class-name="User" src-dn="b" src-entry-id="b">

          <association>b</association>

        </instance>

        <status level="success"/>

      </output>

    </nds>

    Demo Driver :        Match found: src-dn='b' association='b'

    Demo Driver :      Action: do-trace-message(token-local-variable("error.do-find-matching-object")).

  • 0   in reply to 

    Have you tried a dummy event-id on the query and a matching event-id on each instance/status in response?

  • 0 in reply to   

    HI Alex,

    I have double-checked an XDS query in an real system, and there is not an event-id, neither on the query nor the response!

    It seems, during the simulation only the case, one <instance> element is returned is working as expected !

    Kind regards

    Thorsten