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

1.1.only TextArea Bug 4080391 should not have been closed : OS Win95, 98, NT40

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Won't Fix
    • Icon: P4 P4
    • None
    • 1.1.4, 1.3.0
    • client-libs
    • x86, sparc
    • solaris_2.5.1, windows_nt



      Name: krT82822 Date: 02/27/2000


      (please also see Comments section)

      java version "1.3beta"
      Java(TM) 2 Runtime Environment, Standard Edition (build 1.3beta-O)
      Java(TM) HotSpot Client VM (build 1.3beta-O, mixed mode)

      This bug occurs on versions all the way back to JDK 1.1

      It doesn't seem that anyone can agree what the bug actually is.
      Some say after the 250th line I get whatever problem, and others say
      around 25k or 35k is where the problem exists. I have done some extensive
      testing, and I have determined the following:

      The TextArea is editable up to 30,000 characters on the mark. To see for
      yourself, type any character or random set of characters (no carriage returns),
      and copy and paste those characters until it will not allow you to paste
      anymore. Take the String from the TextArea, and save it to a file (either from
      within your code, or by selecting all and copying, then pasting to Notepad).
      Look at the properties of the resultant file, and you will see 30,000 bytes on
      the mark, EVERY TIME. I have tested this on NT, 95, and 98, and all yield the
      same result.

      Some say there is a problem programatically inserting over 60,000 bytes. I have
      not tested this, and I will not provide a reproducable test case.

      Use the following sample code with the procedure explained above, and you will
      reproduce this bug:

      import java.awt.*;

      public class TextAreaBug extends Frame
      {
          public TextAreaBug()
          {
              super("TextAreaBug");
              setLayout(new BorderLayout());
              TextArea ta = new TextArea();
              add("Center", ta);
              setSize(400,400);
          }
          
          public static void main(String[] args)
          {
              TextAreaBug tab = new TextAreaBug();
              tab.setVisible(true);
          }
      }

      Or, if you are feeling kind of lazy, you can use this to reproduce the bug:

      import java.awt.*;

      public class TextAreaBug extends Frame
      {
          public TextAreaBug()
          {
              super("TextAreaBug");
              setLayout(new BorderLayout());
              TextArea ta = new TextArea();
              String text = "a";
              for(int i = 0; i < 29990; i++)
              {
                  text = text + "a";
              }
              ta.setText(text);
              add("Center", ta);
              setSize(400,400);
          }
          
          public static void main(String[] args)
          {
              TextAreaBug tab = new TextAreaBug();
              tab.setVisible(true);
          }
      }

      You will then have to type 10 more characters to obtain your 30,000 limit.
      (Note, that since you will have a for loop of ~30000, it will take a minute
      or two for the application to become visible, be patient).

      Now, this has been reported as a problem with Microsoft Windows, however,
      Microsoft's version of a JVM doesn't have this 30,000 byte constraint.

      -------------------

      1/24/2000 email from user:

      Here is the MS VM that works on NT40 SP5

              Microsoft (R) Command-line Loader for Java Version 5.00.3167
              Copyright (C) Microsoft Corp 1996-1999. All rights reserved.

              Usage: JView [options] <classname> [arguments]
      ...
      I am not currently at home, so I cannot give you the info on the MS VM's for
      each of those machines, however I can tell you that they are the VM's that
      come with Win98. If you like, I can check version numbers when I get home
      tonight. I really do not see how this is relevant though. The fact still
      remains that Sun jdk versions 1.1 and on have this limitation. If you guys
      don't want to fix it, that's fine, but don't close the bug as "not
      reproducible", because that is simply not true. You may decide that this is
      not a bug. If so, you must at least agree that this is a limitation of your
      product. Although I am not a big fan of Microsoft, I don't think it is fair
      if you try to pin this one on them. If Microsoft can implement a JVM that
      doesn't have this problem, then there should be no reason why you guys
      can't.

      I don't want you to take any of this personally, it is just that sun has
      done such a good job with java in the past, that I hate watching you (sun)
      slowly destroy such a great language. I have dedicated the past 4 years of
      my life to this language, and it tears me apart when I wait almost a year
      for a bug to be fixed only to have it closed as "not reproducible",
      especially when it is so simple to reproduce.

      I hope that we can resolve this issue. Currently, this is the most
      important issue I have open with the current implementation of java. It is
      not setting me back in development, but like I said, I have been keeping my
      eye on this one for almost a year, waiting for it to be fixed.

      I appreciate your consideration of this bug, but please, if you are not
      going to fix it, at least close the bug for some other reason besides "not
      reproducible".

      ---------------------------------------

      1/25/2000 (more) email from user:

      I cannot say for sure if win95 works with an MS VM, I honestly haven't tried
      the MS VM on 95. The problem is that there isn't an MS VM that comes with
      the Win95 installation. All of sun's jdk's 1.1-on do have this limitation
      on 95. Just recently, I placed both of my Win95 PC's in boxes in my garage.
      I can dig one of them out tonight, download MS's JVM, and try it. I don't
      know why MS's VM wouldn't work on 95 though, because it works on NT40, and
      both are almost the same age. I can't tell much difference between the MFC
      for 95 and the MFC for NT40. I could be wrong.


      (Review ID: 100310)
      ======================================================================

            ehawkessunw Eric Hawkes (Inactive)
            kryansunw Kevin Ryan (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: