Not sure whether it's just because it's Friday afternoon and I'm missing something obvious but I'm seeing some strange behaviour with the attribute validator. Same input, same test, different results
The inspector does actually show 1 feature for TEST1 and then 2 features (the same plus one additional) for TEST2.
Using a stringsearcher with the same regex finds a match for all 14,009 features.
I will see if i can create a workspace exhibiting the same behaviour which I can share next week.
This is with FME 2016.1
I've attached some data that I've experienced the issue with (now as csv, but original was shape)
Bizarrely after saving the workspace to share here I now see the following behaviour. The features failing now are not the ones that were failing before!
attribute-validator-test-data.csv
I've attached some data that I've experienced the issue with (now as csv, but original was shape)
Bizarrely after saving the workspace to share here I now see the following behaviour. The features failing now are not the ones that were failing before!
I feel it's a critical issue regarding the reliability of the AttributeValidator transformer. Hope someone from Safe clarifies our questions, including:
- In what condition does such a strange behavior occur? And is there any way to avoid this?
- Do the validation rules other than the Contains Regex work definitely fine?
- Does the problem have been resolved completely in FME 2017.0 RC?
I've attached some data that I've experienced the issue with (now as csv, but original was shape)
Bizarrely after saving the workspace to share here I now see the following behaviour. The features failing now are not the ones that were failing before!
Hello all, very sorry about all this. I can confirm that we found this exact problem ourselves during 2017.0 release testing and made the fix in FME 2017. We requested a backport to 2016.x as well, though I don't know when the next build is scheduled but will report back here when I find out.
The root problem was introduced late in the development FME 2016.0. We'd consolidated all our regular expression processing into a unicode centric single function call. The downside was that many translations were WAY slower than before. So we implemented a caching mechanism to avoid recomputing regular expression matches that we'd recently seen before in any transformer. (So the Tester/AttributeValidator/TestFilter all go through the same place.)
I do not know exactly the specifics, but it is possible in the right situation (which seems to have been duplicated here) to get this cache to do the wrong thing. Obviously once we discovered this we jumped right on it. And then a few days later @egomm discovered it as well.
I'll check on the status of a 2016.1 update and report back.
Sorry about this but thanks for confirming that the problem isn't there in 2017.0
Hello all, very sorry about all this. I can confirm that we found this exact problem ourselves during 2017.0 release testing and made the fix in FME 2017. We requested a backport to 2016.x as well, though I don't know when the next build is scheduled but will report back here when I find out.
The root problem was introduced late in the development FME 2016.0. We'd consolidated all our regular expression processing into a unicode centric single function call. The downside was that many translations were WAY slower than before. So we implemented a caching mechanism to avoid recomputing regular expression matches that we'd recently seen before in any transformer. (So the Tester/AttributeValidator/TestFilter all go through the same place.)
I do not know exactly the specifics, but it is possible in the right situation (which seems to have been duplicated here) to get this cache to do the wrong thing. Obviously once we discovered this we jumped right on it. And then a few days later @egomm discovered it as well.
I'll check on the status of a 2016.1 update and report back.
Sorry about this but thanks for confirming that the problem isn't there in 2017.0
Thanks for the fix!