]
Arcadiy Ivanov commented on WFCORE-76:
--------------------------------------
I added PR #139. Sorry, we apparently, bumped into each other.
read-resource recursive-depth has no effect when recursive=true
---------------------------------------------------------------
Key: WFCORE-76
URL:
https://issues.jboss.org/browse/WFCORE-76
Project: WildFly Core
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: Domain Management
Affects Versions: 1.0.0.Alpha5
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
Fix For: 1.0.0.Alpha6
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).