MantisBT
Mantis Bug Tracker Workflow

View Revisions: Issue #31756 All Revisions ] Back to Issue ]
Summary 0031756: Data Exchange - broken parsing of STEP entity in case of missing last parameter
Revision 2020-09-07 14:45 by abv
Description The problem has been discovered during analysis of regression manifested on test case bugs step bug26451 with a fix made for #31489.

The STEP entity #71919 (and many others) in the file attached to issue 0026451 has last parameter missing, like this:

#71919=EDGE_CURVE('',#84041,#84041,#0, );
#71920=FILL_AREA_STYLE('',(#84042));

When this STEP file is read, such entities are parsed incorrectly: instead of incomplete list of parameters, they get extra parameters by including ones from the next entity, and that next entity gets ignored:

~~~~~
Draw[1]> test bugs step bug26451
...
Draw[2]> entity #71919
  -- DUMP Entity n0 71355 level 1
 --- (STEP) Entity 71355:#71919 Type cdl : StepShape_EdgeCurve
 *** NOT WELL LOADED : CONTENT FROM FILE ***
In dump, iii:#jjj means : entity rank iii has step ident #jjj
71355:#71919 = EDGE_CURVE('',83437:#84041,83437:#84041,#0,#0,/* (SUB) */
  (83438:#84042));
  /* On Entity above, Fail Messages recorded at Read time :
Count of Parameters is not 5 for edge_curve
A reference to another entity is unresolved */
 ** Data Check (One Entity) **
Check:1 -- Entity (n0:id) 71355:#71919 Type:EDGE_CURVE
Count of Parameters is not 5 for edge_curve
A reference to another entity is unresolved

Draw[3]> entity #71920
Error in Command : entity #71920
~~~~~

I have prepared synthetic test file for this case, attached as bug31756.stp.
Desired behavior is that the file should be read successfully (it is just a sphere) but error shall be generated on entity 0000015.

Current behavior is:
- on master branch: translation fails, with error on entity 0000015 (wrong nb. of parameters)
- on CR31489_1: translation succeeds without any messages

Note that while work-around implemented in CR31489_1 effectively works in this particular case, this issue shows that our STEP parser can be broken easily by incorrect data, and its behavior becomes unpredictable. We need to understand how original problem occurs and prevent this in more generic way.
Revision 2020-09-07 13:20 by abv
Description The problem has been discovered during analysis of regression manifested on test case bugs step bug26451 with a fix made for #31489.

The STEP entity #71919 (and many others) in the file attached to issue 0026451 has last parameter missing, like this:

#71919=EDGE_CURVE('',#84041,#84041,#0, );
#71920=FILL_AREA_STYLE('',(#84042));

When this STEP file is read, such entities are parsed incorrectly: instead of incomplete list of parameters, they get extra parameters by including ones from the next entity, and that next entity gets ignored.



Copyright © 2000 - 2021 MantisBT Team
Powered by Mantis Bugtracker