Uploaded image for project: 'PUBLIC - Liferay Portal Community Edition'
  1. PUBLIC - Liferay Portal Community Edition
  2. LPS-27377

Accent insensitive query prevents successful administration of Tags and Categories.

    Details

      Description

      When trying to change a tag's name from 'evaluación' to 'evaluacion', an error is produced. The class com.liferay.portlet.tags.service.impl.TagsEntryLocalServiceImpl invokes the method hasEntry, that checks the previous existence of another tag with the same name, but it finds the same tag being modified. After following the invocation stack, you can find the following query in file portal\portal-impl\src\custom-sql\tags.xml:

      <sql id="com.liferay.portlet.tags.service.persistence.TagsEntryFinder.findByG_N_F">
      <![CDATA[
      SELECT

      {TagsEntry.*}

      FROM
      TagsEntry
      INNER JOIN
      TagsVocabulary ON
      (TagsVocabulary.vocabularyId = TagsEntry.vocabularyId)
      WHERE
      (TagsEntry.groupId = ?) AND
      (lower(TagsEntry.name) = ?) AND
      (TagsVocabulary.folksonomy = ?)
      ]]>
      </sql>

      Shouldn't the query include something like COLLATE utf8_bin or something similar to avoid this kind of behavior?

      Caused by: com.liferay.portlet.tags.DuplicateEntryException: A tag entry with the name evaluacion already exists
      at com.liferay.portlet.tags.service.impl.TagsEntryLocalServiceImpl.updateEntry(TagsEntryLocalServiceImpl.java:571)

        Attachments

          Activity

            People

            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:
                Days since last comment:
                4 years, 12 weeks, 6 days ago

                Subcomponents