PR# 13451 Views of class with long lines are blank or garbage

Problem Report Summary
Submitter: prestoat2000
Category: EiffelStudio
Priority: Medium
Date: 2007/10/15
Class: Bug
Severity: Serious
Number: 13451
Release: 6.0.69618
Confidential: No
Status: Open
Responsible:
Environment: Mozilla/5.0 (X11; U; SunOS sun4u; en-US; rv:1.8.0.7) Gecko/20060915 Firefox/1.5.0.7 Solaris 9 on SPARC
Synopsis: Views of class with long lines are blank or garbage

Description
I just ran into a problem with classes with long lines on a real
system.  We have some classes that are generated automatically by a
program from definitions of tables in our Oracle database.  This can
generate very long lines, such as a string constant that is a
comma-separated list of all column names to be fetched when a row is
retrieved from the table.  In one case, the value of the string
constant is 2048 characters long.  This class also has comparison
routines that compare column by column with another row, so it
generates things like:

   Result := Result
       and equal (acct_pricing_class, r.acct_pricing_class)
       and equal (acct_sponsor_id, r.acct_sponsor_id);

(with a large number of "and" clauses - one per column).

When I try to see the exported routines of this class in the Class tool,
I get either a blank window or garbage.  Trying to see other views of
this same class either works or shows wrong data (the data from a previous
view) or shows a garbled display.

Please see whether you can fix this bug.  It may be a Vision2 problem.
Using GTK+2.6.9 on Solaris SPARC under CDE.  It is annoying to be
unable to examine real classes in estudio and I think it might mess up
the tool for displaying other classes which do not have long lines.


To Reproduce
Compile with attached classes and .ecf file.  Try to see Exported features
of class DIE_LOCATIONS_ROW.  Shows empty or garbled display.  Now comment
out declaration of constant `real_column_names' in DIE_LOCATIONS_ROW.
Exported routines now display correctly (at least if I compile system
from scratch).

Note that DIE_LOCATIONS_ROW is a simplified version of a real 
program-generated Eiffel class that is used in our production system.

Problem Report Interactions
From:prestoat2000    Date:2007/10/15    Download   
Attachments for problem report #13451

Attachment: test.e     Size:91
Attachment: die_locations_row.e     Size:10906
Attachment: test.ecf     Size:930