Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8181178

String replaceAll produces unexpected result

XMLWordPrintable

      FULL PRODUCT VERSION :
      java version "1.8.0_111"
      Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
      Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)


      ADDITIONAL OS VERSION INFORMATION :
      Linux zyy-pc 4.8.0-52-generic #55~16.04.1-Ubuntu SMP Fri Apr 28 14:36:29 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux


      EXTRA RELEVANT SYSTEM CONFIGURATION :
      Ubuntu 16.04.2 LTS \n \l

       cat /proc/meminfo
      MemTotal: 16335380 kB
      MemFree: 1210756 kB
      MemAvailable: 5893472 kB
      Buffers: 424180 kB
      Cached: 5852572 kB
      SwapCached: 0 kB
      Active: 10979336 kB
      Inactive: 3435732 kB
      Active(anon): 8155792 kB
      Inactive(anon): 1676552 kB
      Active(file): 2823544 kB
      Inactive(file): 1759180 kB
      Unevictable: 344 kB
      Mlocked: 344 kB
      SwapTotal: 16678908 kB
      SwapFree: 16678908 kB
      Dirty: 4196 kB
      Writeback: 0 kB
      AnonPages: 7768596 kB
      Mapped: 1956324 kB
      Shmem: 1694036 kB
      Slab: 505484 kB
      SReclaimable: 436124 kB
      SUnreclaim: 69360 kB
      KernelStack: 19344 kB
      PageTables: 91736 kB
      NFS_Unstable: 0 kB
      Bounce: 0 kB
      WritebackTmp: 0 kB
      CommitLimit: 24846596 kB
      Committed_AS: 18749456 kB
      VmallocTotal: 34359738367 kB
      VmallocUsed: 0 kB
      VmallocChunk: 0 kB
      HardwareCorrupted: 0 kB
      AnonHugePages: 4091904 kB
      ShmemHugePages: 0 kB
      ShmemPmdMapped: 0 kB
      CmaTotal: 0 kB
      CmaFree: 0 kB
      HugePages_Total: 0
      HugePages_Free: 0
      HugePages_Rsvd: 0
      HugePages_Surp: 0
      Hugepagesize: 2048 kB
      DirectMap4k: 270348 kB
      DirectMap2M: 15362048 kB
      DirectMap1G: 2097152 kB


      cat /proc/cpuinfo
      processor : 0
      vendor_id : GenuineIntel
      cpu family : 6
      model : 60
      model name : Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz
      stepping : 3
      microcode : 0x1e
      cpu MHz : 3600.000
      cache size : 8192 KB
      physical id : 0
      siblings : 8
      core id : 0
      cpu cores : 4
      apicid : 0
      initial apicid : 0
      fpu : yes
      fpu_exception : yes
      cpuid level : 13
      wp : yes
      flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm epb tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid xsaveopt dtherm ida arat pln pts
      bugs :
      bogomips : 7183.29
      clflush size : 64
      cache_alignment : 64
      address sizes : 39 bits physical, 48 bits virtual
      power management:

      processor : 1
      vendor_id : GenuineIntel
      cpu family : 6
      model : 60
      model name : Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz
      stepping : 3
      microcode : 0x1e
      cpu MHz : 3600.000
      cache size : 8192 KB
      physical id : 0
      siblings : 8
      core id : 1
      cpu cores : 4
      apicid : 2
      initial apicid : 2
      fpu : yes
      fpu_exception : yes
      cpuid level : 13
      wp : yes
      flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm epb tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid xsaveopt dtherm ida arat pln pts
      bugs :
      bogomips : 7183.29
      clflush size : 64
      cache_alignment : 64
      address sizes : 39 bits physical, 48 bits virtual
      power management:

      processor : 2
      vendor_id : GenuineIntel
      cpu family : 6
      model : 60
      model name : Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz
      stepping : 3
      microcode : 0x1e
      cpu MHz : 3600.000
      cache size : 8192 KB
      physical id : 0
      siblings : 8
      core id : 2
      cpu cores : 4
      apicid : 4
      initial apicid : 4
      fpu : yes
      fpu_exception : yes
      cpuid level : 13
      wp : yes
      flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm epb tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid xsaveopt dtherm ida arat pln pts
      bugs :
      bogomips : 7183.29
      clflush size : 64
      cache_alignment : 64
      address sizes : 39 bits physical, 48 bits virtual
      power management:

      processor : 3
      vendor_id : GenuineIntel
      cpu family : 6
      model : 60
      model name : Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz
      stepping : 3
      microcode : 0x1e
      cpu MHz : 3600.000
      cache size : 8192 KB
      physical id : 0
      siblings : 8
      core id : 3
      cpu cores : 4
      apicid : 6
      initial apicid : 6
      fpu : yes
      fpu_exception : yes
      cpuid level : 13
      wp : yes
      flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm epb tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid xsaveopt dtherm ida arat pln pts
      bugs :
      bogomips : 7183.29
      clflush size : 64
      cache_alignment : 64
      address sizes : 39 bits physical, 48 bits virtual
      power management:

      processor : 4
      vendor_id : GenuineIntel
      cpu family : 6
      model : 60
      model name : Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz
      stepping : 3
      microcode : 0x1e
      cpu MHz : 3600.439
      cache size : 8192 KB
      physical id : 0
      siblings : 8
      core id : 0
      cpu cores : 4
      apicid : 1
      initial apicid : 1
      fpu : yes
      fpu_exception : yes
      cpuid level : 13
      wp : yes
      flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm epb tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid xsaveopt dtherm ida arat pln pts
      bugs :
      bogomips : 7183.29
      clflush size : 64
      cache_alignment : 64
      address sizes : 39 bits physical, 48 bits virtual
      power management:

      processor : 5
      vendor_id : GenuineIntel
      cpu family : 6
      model : 60
      model name : Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz
      stepping : 3
      microcode : 0x1e
      cpu MHz : 3938.598
      cache size : 8192 KB
      physical id : 0
      siblings : 8
      core id : 1
      cpu cores : 4
      apicid : 3
      initial apicid : 3
      fpu : yes
      fpu_exception : yes
      cpuid level : 13
      wp : yes
      flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm epb tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid xsaveopt dtherm ida arat pln pts
      bugs :
      bogomips : 7183.29
      clflush size : 64
      cache_alignment : 64
      address sizes : 39 bits physical, 48 bits virtual
      power management:

      processor : 6
      vendor_id : GenuineIntel
      cpu family : 6
      model : 60
      model name : Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz
      stepping : 3
      microcode : 0x1e
      cpu MHz : 3601.098
      cache size : 8192 KB
      physical id : 0
      siblings : 8
      core id : 2
      cpu cores : 4
      apicid : 5
      initial apicid : 5
      fpu : yes
      fpu_exception : yes
      cpuid level : 13
      wp : yes
      flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm epb tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid xsaveopt dtherm ida arat pln pts
      bugs :
      bogomips : 7183.29
      clflush size : 64
      cache_alignment : 64
      address sizes : 39 bits physical, 48 bits virtual
      power management:

      processor : 7
      vendor_id : GenuineIntel
      cpu family : 6
      model : 60
      model name : Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz
      stepping : 3
      microcode : 0x1e
      cpu MHz : 3600.659
      cache size : 8192 KB
      physical id : 0
      siblings : 8
      core id : 3
      cpu cores : 4
      apicid : 7
      initial apicid : 7
      fpu : yes
      fpu_exception : yes
      cpuid level : 13
      wp : yes
      flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm epb tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid xsaveopt dtherm ida arat pln pts
      bugs :
      bogomips : 7183.29
      clflush size : 64
      cache_alignment : 64
      address sizes : 39 bits physical, 48 bits virtual
      power management:


      A DESCRIPTION OF THE PROBLEM :
      package com.hujiang.by.cms.web.test;

      /**
       * Created by zyy on 17-5-26.
       */
      public class ReplaceTest {

          public static void main(String[] args) {
              String str = "aa\n\rbb\ncc";
              System.out.println("--------------------------");
              System.out.println(str.replaceAll("\n", " "));
              System.out.println("--------------------------");
              System.out.println(str.replaceAll("\\n", " "));
              System.out.println("--------------------------");
              System.out.println(str.replaceAll("\n\r", " "));
              System.out.println("--------------------------");
          }
      }


      STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
      this is the result in my os
      --------------------------
      bb cc
      --------------------------
      bb cc
      --------------------------
      aa bb
      cc
      --------------------------


      EXPECTED VERSUS ACTUAL BEHAVIOR :
      EXPECTED -
      --------------------------
      aa
      bb cc
      --------------------------
      aa
      bb cc
      --------------------------
      aa bb
      cc
      --------------------------
      ACTUAL -
      --------------------------
      bb cc
      --------------------------
      bb cc
      --------------------------
      aa bb
      cc
      --------------------------

      ERROR MESSAGES/STACK TRACES THAT OCCUR :
      just different output in different os

      REPRODUCIBILITY :
      This bug can be reproduced always.

      ---------- BEGIN SOURCE ----------
      package com.hujiang.by.cms.web.test;

      /**
       * Created by zyy on 17-5-26.
       */
      public class ReplaceTest {

          public static void main(String[] args) {
              String str = "aa\n\rbb\ncc";
              System.out.println("--------------------------");
              System.out.println(str.replaceAll("\n", " "));
              System.out.println("--------------------------");
              System.out.println(str.replaceAll("\\n", " "));
              System.out.println("--------------------------");
              System.out.println(str.replaceAll("\n\r", " "));
              System.out.println("--------------------------");
          }
      }
      ---------- END SOURCE ----------

      CUSTOMER SUBMITTED WORKAROUND :
      just run the code in different os , mac , ubuntu or windows 10

            sherman Xueming Shen
            webbuggrp Webbug Group
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved: