Skip to content

Fix conflicting validators#336

Open
christophfroehlich wants to merge 3 commits intomainfrom
fix/conflicting-validators
Open

Fix conflicting validators#336
christophfroehlich wants to merge 3 commits intomainfrom
fix/conflicting-validators

Conversation

@christophfroehlich
Copy link
Copy Markdown
Collaborator

@christophfroehlich christophfroehlich commented Mar 30, 2026

Combination of lower and upper bounds resulted in invalid ROS code

          rcl_interfaces::msg::ParameterDescriptor descriptor;
          descriptor.description = "specifies maximum acceleration limits for x, y and z axis";
          descriptor.read_only = false;
          descriptor.floating_point_range.resize(1);
          descriptor.floating_point_range.at(0).from_value = -10.0;
          descriptor.floating_point_range.at(0).to_value = std::numeric_limits<double>::max();
          descriptor.floating_point_range.resize(2);
          descriptor.floating_point_range.at(1).from_value = std::numeric_limits<double>::lowest();
          descriptor.floating_point_range.at(1).to_value = 10.0;

where floating_point_range must not be of size greater 1.
It throws std::length_error("Exceeded upper bound") (but bounds of this vector size, not of the declared parameter) resulting in

1: unknown file: Failure
1: C++ exception with description "Exceeded upper bound" thrown in SetUp().

This PR adds build-time errors for this unsupported combination. I don't see a point in auto-merging it, users of this lib are simply encouraged to just use the correct validators.

Fixes #334

@christophfroehlich christophfroehlich added the backport-humble Triggers PR backport to ROS 2 humble. label Mar 30, 2026
@christophfroehlich
Copy link
Copy Markdown
Collaborator Author

👀 @vincent-daniele

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport-humble Triggers PR backport to ROS 2 humble.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Exception when using lt<> and gt<> together / exclusive bounds<>? upper_element_bounds array validator not working anymore

1 participant