<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size: 11pt; color: rgb(0, 0, 0); font-family: Calibri, Helvetica, sans-serif, EmojiFont, "Apple Color Emoji", "Segoe UI Emoji", NotoColorEmoji, "Segoe UI Symbol", "Android Emoji", EmojiSymbols;" dir="ltr">
<p><span style="font-size: 10pt;"><span style="font-size: 11pt;">> </span><span style="font-size: 11pt;">> Unfortunately, in so doing, I discovered that SimpleAttributePredicate</span></span><br>
</p>
<div style="color: rgb(0, 0, 0);"><font size="2"><span style="font-size:10pt;">
<div class="PlainText"><span style="font-size: 11pt;">> </span><span style="font-size: 11pt;">> wildcarding returns true, even for empty attributes (that get pulled out of</span><br>
<span style="font-size: 11pt;">> </span><span style="font-size: 11pt;">> the connected data source as EmptyAttributeValue objects). This seems like</span><br>
<span style="font-size: 11pt;">> </span><span style="font-size: 11pt;">> a bug to me, and I've filed a report here [2].</span><br>
<span style="font-size: 11pt;"></span><br>
<span style="font-size: 11pt;">> </span><span style="font-size: 11pt;">I think it's a limitation and documentation issue at this point vs.a bug but that's semantics.</span><br>
<span style="font-size: 11pt;"></span><br>
<span style="font-size: 11pt;">Looking at the test case slightly differently, the current behavior means (in effect) that at least when using a RDBMS
</span><span style="font-size: 11pt;">connector</span><span style="font-size: 11pt;">, a wildcard test will return true on any attribute, period, so long as that attribute is included in the query against the underlying table / view. I won't argue the semantics
of what to call it, but that seems to render wildcard matching (for RDBMS connections) useless.</span><br>
<br>
<span style="font-size: 11pt;">> </span><span style="font-size: 11pt;">> As a stop-gap, does anybody have a good approach (outside of writing a</span><br>
<span style="font-size: 11pt;">> </span><span style="font-size: 11pt;">> custom predicate bean myself) to return true only if an attribute is empty or</span><br>
<span style="font-size: 11pt;">> </span><span style="font-size: 11pt;">> non-existent?</span><br>
<span style="font-size: 11pt;"></span><br>
<span style="font-size: 11pt;">> </span><span style="font-size: 11pt;">The general rule is that you're not really wanting to surface empty values outside the resolver, which I was under the mistaken idea we were actually preventing. So certainly not exposing
them is one way > </span><span style="font-size: 11pt;">around it, but that's just moving the custom script logic into the resolver vs. inside a custom predicate script.</span></div>
<div class="PlainText"><br>
</div>
<div class="PlainText"><span style="font-size: 11pt;">Backing up and b</span><span style="font-size: 11pt;">eing a bit more specific about my use case, I'd like to use an activation condition on a secondary </span><span style="font-size: 11pt;">definition of
the mail attribute, if and only if </span><span style="font-size: 11pt;">the regular mail attribute is empty and a separate additional condition is met</span>.
</div>
</span></font></div>
</div>
</body>
</html>