Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-23349

Item names containing an emoji are not accessible

    • 2.190

      Version: 1.564

      How to reproduce:

      • Create a view, and start it with an emoji in the name
      • Enjoy the 404 page

      I'm fairly sure this will impact other locations as well, but I haven't verified.

      Possible solutions:

      • Do not allow characters in names that will create this behaviour
      • Make sure that url generated can be used to find the view
      System Properties
      
      Name  ↓
      Value   
      awt.toolkit	sun.awt.X11.XToolkit
      executable-war	/usr/share/jenkins/jenkins.war
      file.encoding	UTF-8
      file.encoding.pkg	sun.io
      file.separator	/
      hudson.diyChunking	true
      java.awt.graphicsenv	sun.awt.X11GraphicsEnvironment
      java.awt.headless	true
      java.awt.printerjob	sun.print.PSPrinterJob
      java.class.path	/usr/share/jenkins/jenkins.war
      java.class.version	51.0
      java.endorsed.dirs	/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/endorsed
      java.ext.dirs	/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/ext:/usr/java/packages/lib/ext
      java.home	/usr/lib/jvm/java-7-openjdk-amd64/jre
      java.io.tmpdir	/tmp
      java.library.path	/usr/java/packages/lib/amd64:/usr/lib/x86_64-linux-gnu/jni:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib/jni:/lib:/usr/lib
      java.runtime.name	OpenJDK Runtime Environment
      java.runtime.version	1.7.0_55-b14
      java.specification.name	Java Platform API Specification
      java.specification.vendor	Oracle Corporation
      java.specification.version	1.7
      java.vendor	Oracle Corporation
      java.vendor.url	http://java.oracle.com/
      java.vendor.url.bug	http://bugreport.sun.com/bugreport/
      java.version	1.7.0_55
      java.vm.info	mixed mode
      java.vm.name	OpenJDK 64-Bit Server VM
      java.vm.specification.name	Java Virtual Machine Specification
      java.vm.specification.vendor	Oracle Corporation
      java.vm.specification.version	1.7
      java.vm.vendor	Oracle Corporation
      java.vm.version	24.51-b03
      jna.platform.library.path	/usr/lib/x86_64-linux-gnu:/lib/x86_64-linux-gnu:/lib64:/usr/lib:/lib
      line.separator	
      mail.smtp.sendpartial	true
      mail.smtps.sendpartial	true
      os.arch	amd64
      os.name	Linux
      os.version	3.11.0-12-generic
      path.separator	:
      sun.arch.data.model	64
      sun.boot.class.path	/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/resources.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/rt.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/sunrsasign.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/jsse.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/jce.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/charsets.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/netx.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/plugin.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/rhino.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/jfr.jar:/usr/lib/jvm/java-7-openjdk-amd64/jre/classes
      sun.boot.library.path	/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64
      sun.cpu.endian	little
      sun.cpu.isalist	
      sun.font.fontmanager	sun.awt.X11FontManager
      sun.io.unicode.encoding	UnicodeLittle
      sun.java.command	/usr/share/jenkins/jenkins.war --webroot=/var/cache/jenkins/war --httpPort=8080 --ajp13Port=-1
      sun.java.launcher	SUN_STANDARD
      sun.jnu.encoding	UTF-8
      sun.management.compiler	HotSpot 64-Bit Tiered Compilers
      sun.os.patch.level	unknown
      user.country	US
      user.dir	/
      user.home	/var/lib/jenkins
      user.language	en
      user.name	jenkins
      user.timezone	Etc/UTC
      Environment Variables
      
      Name  ↓
      Value   
      _	/usr/bin/daemon
      HOME	/var/lib/jenkins
      JENKINS_HOME	/var/lib/jenkins
      LANG	en_US.UTF-8
      LOGNAME	jenkins
      MAIL	/var/mail/jenkins
      PATH	/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
      PWD	/var/lib/jenkins
      SHELL	/bin/bash
      SHLVL	1
      TERM	xterm-256color
      USER	jenkins
      XDG_RUNTIME_DIR	/run/user/0
      XDG_SESSION_ID	5
      Plugins
      
      Name  ↓
      Version   
      Enabled   
      Pinned   
      ant	1.2	false	false
      antisamy-markup-formatter	1.1	true	false
      build-monitor-plugin	1.3+build.72	true	false
      build-timeout	1.13	true	false
      bulk-builder	1.5	true	false
      configurationslicing	1.38.3	true	false
      copy-to-slave	1.4.3	true	false
      credentials	1.11	true	true
      custom-view-tabs	1.0	true	false
      cvs	2.11	false	false
      external-monitor-job	1.2	true	false
      git	2.2.1	true	false
      git-client	1.9.1	true	false
      git-parameter	0.3.2	true	false
      greenballs	1.14	true	false
      hipchat	0.1.4	true	false
      javadoc	1.1	false	false
      jenkins-tag-cloud-plugin	1.6	true	false
      ldap	1.9	false	true
      mailer	1.8	true	true
      mapdb-api	1.0.1.0	true	false
      matrix-auth	1.2	true	true
      matrix-project	1.2	true	false
      maven-plugin	2.3	false	false
      nested-view	1.14	true	false
      pam-auth	1.1	false	false
      scm-api	0.2	true	false
      simple-theme-plugin	0.3	true	false
      ssh	2.4	true	false
      ssh-agent	1.4.1	true	false
      ssh-credentials	1.6.1	true	true
      ssh-slaves	1.6	true	true
      subversion	2.4	false	true
      translation	1.11	true	true
      windows-slaves	1.0	true	false
      

          [JENKINS-23349] Item names containing an emoji are not accessible

          R. Tyler Croy added a comment -

          This isn't an infrastructure ticket but rather something that should be triaged as part of the JENKINS JIRA project

          R. Tyler Croy added a comment - This isn't an infrastructure ticket but rather something that should be triaged as part of the JENKINS JIRA project

          I can reproduce in Jenkins 2.32.3 with all sorts of items: view, freestyle job, folder.  I created items called "X robofolder" etc., where "X" is a robot face (U+1F916).  JIRA throws a 500 error and doesn't accept this comment if I use the actual emoji character…

          The items do get created, and displayed on the home page, but the emoji character is stripped from the URL, so clicking through results in a 404.

          It seems to happen as soon as you go >= U+10000 (which has a 4-byte rather than 3-byte UTF-8 representation). That character does not work in an item name, but U+FE6B does.

          The character can be anywhere in the name — it doesn't have to be at the start, it will be stripped out regardless.

          Christopher Orr added a comment - I can reproduce in Jenkins 2.32.3 with all sorts of items: view, freestyle job, folder.  I created items called "X robofolder" etc., where "X" is a robot face (U+1F916).  JIRA throws a 500 error and doesn't accept this comment if I use the actual emoji character… The items do get created, and displayed on the home page, but the emoji character is stripped from the URL, so clicking through results in a 404. It seems to happen as soon as you go >= U+10000 (which has a 4-byte rather than 3-byte UTF-8 representation). That character does not work in an item name, but U+FE6B does. The character can be anywhere in the name — it doesn't have to be at the start, it will be stripped out regardless.

          Alex Earl added a comment -

          I'm unable to reproduce this on 2.176.2. I created a job with the snowman emoji in the name and it worked fine. I was able to edit the configuration and everything.

          Alex Earl added a comment - I'm unable to reproduce this on 2.176.2. I created a job with the snowman emoji in the name and it worked fine. I was able to edit the configuration and everything.

          Matt Sicker added a comment -

          Updates to Unicode support in Java likely fixed this bug since Jenkins has required Java 8 for a while now. The initial ticket is using Java 7.

          Matt Sicker added a comment - Updates to Unicode support in Java likely fixed this bug since Jenkins has required Java 8 for a while now. The initial ticket is using Java 7.

          Alex Earl added a comment -

          It actually looks like there are still issues here. Snowman works (https://emojipedia.org/snowman/), but "ugaritic letter thanna" does not (https://www.compart.com/en/unicode/U+10398)

          Alex Earl added a comment - It actually looks like there are still issues here. Snowman works ( https://emojipedia.org/snowman/ ), but "ugaritic letter thanna" does not ( https://www.compart.com/en/unicode/U+10398 )

          Matt Sicker added a comment -

          I was about to say that it was a newer emoji, but it appears as though it's not new at all. Strange.

          I know that we use XML 1.1 instead of 1.0 in order to allow for better Unicode support, though that's likely irrelevant here unless you're trying to use an emoji in an XML tag name.

          Matt Sicker added a comment - I was about to say that it was a newer emoji, but it appears as though it's not new at all. Strange. I know that we use XML 1.1 instead of 1.0 in order to allow for better Unicode support, though that's likely irrelevant here unless you're trying to use an emoji in an XML tag name.

          Alex Earl added a comment -

          Alex Earl added a comment - See https://github.com/jenkinsci/jenkins/pull/4152

          I've upgraded jenkins to latest LTS today and noticed problem with "ç" (cedilla) char U+00E7.

          Bruno Meneguello added a comment - I've upgraded jenkins to latest LTS today and noticed problem with "ç" (cedilla) char U+00E7.

          Alex Earl added a comment -

          Is it removing the character from URL's as was originally posted in this issue?

          Alex Earl added a comment - Is it removing the character from URL's as was originally posted in this issue?

          I've created and linked a ticket detailing the problem

           

          Bruno Meneguello added a comment - I've created and linked a ticket detailing the problem  

            Unassigned Unassigned
            bertg_tf Bert Goethals
            Votes:
            1 Vote for this issue
            Watchers:
            9 Start watching this issue

              Created:
              Updated:
              Resolved: