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

Linux: vm crashes during constructor invocation for LineBreakMeasurer

XMLWordPrintable

    • 2d
    • x86
    • linux



      Name: kaC94536 Date: 08/08/2000



      java version "1.3.0rc1"
      Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0rc1-b13)
      Java HotSpot(TM) Client VM (build 1.3.0rc1-b11, mixed mode)

      The following HW was used:
      Intel Pentium III Xeon 550MHz(512 Kb) (4) / 256 Mb /
      HDD IBM DNES-309170SCA 9.1 Gb UWSCSI /
      CD-ROM drive SONY CDU4821 48X IDE

      The following OS was used:
      Caldera OpenLinux

      The crash takes place not every time (3 of 10).
      The following test shows the crash:

      //--------------------------- test.java ------------------------------//

      import java.awt.font.LineBreakMeasurer;
      import java.text.AttributedString;
      import java.awt.font.FontRenderContext;
      import java.awt.geom.AffineTransform;
      import java.text.AttributedCharacterIterator;
      import java.text.BreakIterator;

      public class test {
          
        public static void main(String args[]) {

          AttributedCharacterIterator text = (new AttributedString("")).getIterator();
          BreakIterator breakIter = BreakIterator.getLineInstance();
          FontRenderContext frc = new FontRenderContext(new AffineTransform(), true, true);

          try {
              new LineBreakMeasurer(text, breakIter, frc);
          } catch(IllegalArgumentException exc) {}
        }
      }

      ------------------------------------- output for classic VM --------------------------------------

      linux-6$ java -classic test
      SIGSEGV 11* segmentation violation
          si_signo [11]: SIGSEGV 11* segmentation violation
          si_errno [0]: Success
          si_code [0]: SI_USER [pid: 0, uid: 0]
              stackpointer=0x7fffcf6c

      Full thread dump Classic VM (1.3.0rc1-b13, green threads):
          "Finalizer" (TID:0x2ba19528, sys_thread_t:0x80c7cf8, state:CW) prio=8
              at java.lang.Object.wait(Native Method)
              at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:108)
              at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:123)
              at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:162)
          "Reference Handler" (TID:0x2ba19300, sys_thread_t:0x80c2e08, state:CW) prio=10
              at java.lang.Object.wait(Native Method)
              at java.lang.Object.wait(Object.java:420)
              at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:110)
          "Signal dispatcher" (TID:0x2ba19330, sys_thread_t:0x80bfbc8, state:CW) prio=5
          "main" (TID:0x2ba191a0, sys_thread_t:0x804d950, state:R) prio=5
              at sun.awt.font.NativeFontWrapper.canDisplay(Native Method)
              at java.awt.Font.canDisplay(Font.java:1105)
              at sun.java2d.SunGraphicsEnvironment.getBestFontFor(SunGraphicsEnvironment.java:566)
              at java.awt.font.TextLine$ACIFontSource.getBestFontAt(TextLine.java:765) at java.awt.font.TextLine.getComponents(TextLine.java:891)
              at java.awt.font.TextMeasurer.generateComponents(TextMeasurer.java:154)
              at java.awt.font.TextMeasurer.initAll(TextMeasurer.java:129)
              at java.awt.font.TextMeasurer.<init>(TextMeasurer.java:92)
              at java.awt.font.LineBreakMeasurer.<init>(LineBreakMeasurer.java:285)
              at test.main(test.java:17)
      Monitor Cache Dump:
          java.lang.ref.ReferenceQueue$Lock@2BA19540/2BA4F3F0: <unowned>
              Waiting to be notified:
                  "Finalizer" (0x80c7cf8)
          java.lang.ref.Reference$Lock@2BA19310/2BA4EF10: <unowned>
              Waiting to be notified:
                  "Reference Handler" (0x80c2e08)
          java.lang.Class@2BA26818/2BA8A678: owner "main" (0x804d950) 1 entry
      Registered Monitor Dump:
          utf8 hash table: <unowned>
          JNI pinning lock: <unowned>
          JNI global reference lock: <unowned>
          BinClass lock: <unowned>
          Class linking lock: <unowned>
          System class loader lock: <unowned>
          Code rewrite lock: <unowned>
          Heap lock: <unowned>
          Monitor cache lock: owner "main" (0x804d950) 1 entry
          Dynamic loading lock: <unowned>
          Monitor IO lock: <unowned>
          User signal monitor: <unowned>
              Waiting to be notified:
                  "Signal dispatcher" (0x80bfbc8)
          Child death monitor: <unowned>
          I/O monitor: <unowned>
          Alarm monitor: <unowned>
              Waiting to be notified:
                  <unknown thread> (0x8058db8)
          Thread queue lock: owner "main" (0x804d950) 1 entry
          Monitor registry: owner "main" (0x804d950) 1 entry

      ------------------------------------- output for client HS VM --------------------------------------

      linux-6$ java test
      # # An unexpected exception has been detected in native code outside the VM.# Program counter=0x337dba1b
      #
      # Problematic Thread: prio=1 tid=0x804e5b8 nid=0x4d60 runnable
      #
      Aborted

      The following JCK tet fails due to this bug:
      api/java_awt/java2d/font/LineBreakMeasurer/index.html

      ======================================================================

      ======================================================================

            tdv Dmitri Trembovetski (Inactive)
            kanisimosunw Konstantin Anisimov (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: