You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@syncope.apache.org by "Alexey (JIRA)" <ji...@apache.org> on 2018/06/11 12:32:00 UTC

[jira] [Created] (SYNCOPE-1321) Search doesn't work for date attributes with conversion pattern with time zone

Alexey created SYNCOPE-1321:
-------------------------------

             Summary: Search doesn't work for date attributes with conversion pattern with time zone
                 Key: SYNCOPE-1321
                 URL: https://issues.apache.org/jira/browse/SYNCOPE-1321
             Project: Syncope
          Issue Type: Bug
          Components: core
    Affects Versions: 2.0.8
            Reporter: Alexey
         Attachments: after.PNG, before.PNG

1.) I have _date type_ *PlainSchemaTO* configured with conversion pattern 

{{org.apache.cxf.jaxrs.ext.search.SearchUtils.TIMESTAMP_WITH_TIMEZONE_Z = }}{{"yyyy-MM-dd\'T\'HH:mm:ssZ"}}

2.) For instance, I built a new query using

{{org.apache.cxf.jaxrs.ext.search.client.FiqlSearchConditionBuilder with an appropriate settings for date format.}}

3.) Query is built successfully, for instance

"date_att=lt=2018-06-12T15:21:00+0300"

but after its value being processed by *URLDecoder* in 

{{org.apache.syncope.core.persistence.api.search.SearchCondVisitor, see line 79:}}

{{value = SearchUtils.toSqlWildcardString(*URLDecoder*.*decode*(sc.getStatement().getValue().toString(), StandardCharsets.UTF_8.name()), false).replaceAll("\\\\_", "_");}}

plus sign ('*+*') is replacing with space (' ') which leads to incorrect query processing in further Syncope code.

I assume *URLDecoder.decode* should be removed, it should be already done by a servlet container.

Currently, I'm using a quite ugly fix by double encoding date schema value on a client side and dealing with date values as string ones...

Kind Regards,

Alexey 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)