PR# 13188 Violation of `a_valid_value' of {EB_WINDOW_MANAGER}.display_message_and_percentage
Problem Report Summary
Submitter: prestoat2000
Category: EiffelStudio
Priority: Medium
Date: 2007/06/17
Class: Bug
Severity: Serious
Number: 13188
Release: 6.0.69141
Confidential: No
Status: Open
Responsible:
Environment: Mozilla/5.0 (X11; U; SunOS i86pc; en-US; rv:1.8.1.3) Gecko/20070321 Firefox/2.0.0.3
Solaris 10 on x86
Synopsis: Violation of `a_valid_value' of {EB_WINDOW_MANAGER}.display_message_and_percentage
Description
Start workbench estudio and run estudio.
Within second estudio (the application), open a project.
Select Project/Generate Documentation and start generating documentation
for library base.
After a few classes have been done, click on Compile button.
When compile completes, generation of documentation resumes.
The output in the status line says something like
Degree 6: Examining System: DYNAMIC_LIST
So right away this output is wrong - it should say something like
Analyzing Class (2/114): DYNAMIC_LIST
Right after the incorrect status line is displayed, precondition `a_valid_value'
of {EB_WINDOW_MANAGER}.display_message_and_percentage is violated.
Trace attached.
It seems that the state of things is messed up because the percentage is 200,
which is not in the range 0-100. The percentage is being calculated from
to_go = -1
total_number = 1
percentage = 100 - (100 * to_go) // total_number
= 100 - (100 * -1) // 1
= 200
It appears that the `to_go 'and `total_number' values are not the values for the
analyzing of classes, but rather those set by the compilation.
After continuing from the precondition violation, the following confirmation
dialog is displayed:
'/home/dave/projects/Documentation' is not a valid directory and/or
cannot be created
which is very confusing for the user, since it is wrong.
It seems to me that either compilation should not be allowed while generating
documentation or that documentation generation should be aborted or that
the state should be restored correctly so that documentation generation can
continue without assertion violations.
Also, there does not seem to be any way to stop documentation generation
if you change your mind.
To Reproduce
Problem Report Interactions