]
Arcadiy Ivanov commented on WFLY-3705:
--------------------------------------
Latest pull has only 11 tests failing.
Is it worth pursuing trying to implement the logic as stated in the docs?
11 test changes are, potentially, fixable and errata may allow to take care of the client
code.
read-resource recursive-depth has no effect when recursive=true
---------------------------------------------------------------
Key: WFLY-3705
URL:
https://issues.jboss.org/browse/WFLY-3705
Project: WildFly
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: Documentation, Domain Management
Affects Versions: 8.1.0.Final
Environment: Linux
aimobile-sm.servicemesh.com 3.15.7-200.fc20.x86_64 #1 SMP Mon
Jul 28 18:50:26 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
Reporter: Arcadiy Ivanov
Assignee: Brian Stansberry
The code inside ReadResourceHandler.doExecuteInternal(OperationContext context, ModelNode
operation) goes as follows:
{noformat}
final int recursiveDepth =
operation.get(ModelDescriptionConstants.RECURSIVE_DEPTH).asInt(0);
final boolean recursive = recursiveDepth > 0 ||
operation.get(ModelDescriptionConstants.RECURSIVE).asBoolean(false);
{noformat}
The [
documentation|https://docs.jboss.org/author/display/WFLY8/Global+operations]
states:
recursive-depth – (int) – The depth to which information about child resources should be
included *if recursive is {{true}*. If not set, the depth will be unlimited; i.e. all
descendant resources will be included.
The logic, however, as implemented goes - either recursive-depth is greater than zero OR
recursive is true.
The proper implementation should be:
{noformat}
final int recursiveDepth =
operation.get(ModelDescriptionConstants.RECURSIVE_DEPTH).asInt(0);
final boolean recursive =
operation.get(ModelDescriptionConstants.RECURSIVE).asBoolean(false) &&
(!operation.get(ModelDescriptionConstants.RECURSIVE_DEPTH).isDefined() ||
recursiveDepth > 0);
{noformat}
The above snippet works as follows: recurs IF recursive is set AND (either
recursive-depth is not defined OR recursive-depth is greater than 0).