Accumulo
  1. Accumulo
  2. ACCUMULO-2325

Avoid repeated checking in addViolation in NumericValueConstraint and AlphaNumKeyContraint

    Details

    • Type: Improvement Improvement
    • Status: Resolved
    • Priority: Blocker Blocker
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 1.7.0
    • Component/s: None
    • Labels:
      None

      Description

      addViolation is very verbose and does check for null on every violation. Instead we can initialize violations as non-null just return null from check if the list is empty.

        Activity

        Hide
        Vikram Srivastava added a comment -

        Attached patch against master.

        Show
        Vikram Srivastava added a comment - Attached patch against master.
        Hide
        Josh Elser added a comment -

        I'll try to take a look at this. Sorry for it sitting for so long.

        Show
        Josh Elser added a comment - I'll try to take a look at this. Sorry for it sitting for so long.
        Hide
        Josh Elser added a comment -

        Again, patch did not apply cleanly. I did not make all of the changes contained in the patch because a constraint should avoid allocations of a new List every time it is invoked. In the normal case, a constraint should not fire. As such, it is already an optimization to avoid this allocation and perform a quick null check.

        The tests that Vikram provided were great and those were applied, as was the modification to use a Set (to make a quick contains call) and make a list at the end of the method.

        Show
        Josh Elser added a comment - Again, patch did not apply cleanly. I did not make all of the changes contained in the patch because a constraint should avoid allocations of a new List every time it is invoked. In the normal case, a constraint should not fire. As such, it is already an optimization to avoid this allocation and perform a quick null check. The tests that Vikram provided were great and those were applied, as was the modification to use a Set (to make a quick contains call) and make a list at the end of the method.

          People

          • Assignee:
            Vikram Srivastava
            Reporter:
            Vikram Srivastava
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Time Tracking

              Estimated:
              Original Estimate - Not Specified
              Not Specified
              Remaining:
              Remaining Estimate - 0h
              0h
              Logged:
              Time Spent - 10m
              10m

                Development