View Issue Details

IDProjectCategoryView StatusLast Update
0033436Open CASCADEOCCT:Data Exchangepublic2023-08-08 14:23
Reporteroan Assigned Tooan  
PrioritynormalSeverityminor 
Status verifiedResolutionfixed 
PlatformWindowsOSVC++ 2015 
Product Version7.7.0 
Target Version7.7.3 
Summary0033436: Data Exchange, DE_Wrapper - DEXCAFCascade_ConfigurationNode::BuildProvider() not initialize provider
DescriptionThe following code always fails to read any valid XBF document, because myNode of DE_Provider is forever nullptr and fails internal check implemented in DEXCAFCascade_Provider::Read().
Handle(DE_ConfigurationNode) aDEConfig = new DEXCAFCascade_ConfigurationNode;
Handle(DE_Provider) aDEProvider = aDEConfig->BuildProvider();
if (!aDEProvider->Read (aSrcName, aDoc, theProgress))
{
    //... always comes here
}

In DRAW it works correctly, just because a node is set manually each time the corresponding command is invoked.
However, it is suggested to use default approach (common for other tools, like STEPCAFControl_ConfigurationNode::BuildProvider()) by passing "this" pointer to configuration node as parameter of DE_Provider.
Steps To Reproduce
Handle(DE_ConfigurationNode) aDEConfig = new DEXCAFCascade_ConfigurationNode;
Handle(DE_Provider) aDEProvider = aDEConfig->BuildProvider();
if (!aDEProvider->Read (aSrcName, aDoc, theProgress))
{
    //... always comes here
}
TagsNo tags attached.
Test case number

Activities

git

2023-07-27 18:43

administrator   ~0113797

Branch CR33436 has been created by oan.

SHA-1: aa50807ad386656cf7b26e6c7ed1a483293e3bc1


Detailed log of new commits:

Author: oan
Date: Thu Jul 27 16:18:59 2023 +0100

    0033436: DE_Wrapper - DEXCAFCascade_ConfigurationNode::BuildProvider() returns provider with empty node causing reading failure for XBF
    
    Pass DEXCAFCascade_ConfigurationNode to DEXCAFCascade_Provider

oan

2023-07-27 21:59

developer   ~0113799

Patch is ready for review.
Test case is not supposed given that Draw implements a workaround for the reported issue.

Test reports: http://jenkins-test-10.nnov.opencascade.com/view/master-CR33436-OAN/view/COMPARE/

To integrate:
OCCT: CR33436
PROD: None

dpasukhi

2023-07-27 22:03

administrator   ~0113800

@oan
DE_Wrapper is not a category.
Please update commit with new summery. You are free update name of "Summary" by yourself

oan

2023-07-28 01:40

developer   ~0113801

Last edited: 2023-07-28 01:43

@dpasukhi
It is not actually a category, it is the part of the problem description, but thanks for the remark.

I also have just got an idea on how we can test it properly and verify that other tools work as expected.
I am going to remove the following line within DE_Wrapper::FindProvider():
theProvider->SetNode(aNode);


because it seems excessive given that theProvider is created like that:
theProvider = aNode->BuildProvider();


I.e. by exact that same node.

Tell me, is there any idea behind this code?

oan

2023-07-28 01:42

developer   ~0113802

@dpasukhi

By the way, you can see that this issue is not the only one that breaks summary template, e.g.:

#0032821 - 0032821: DEWrapper - Implementation of a common toolkit for importing and exporting CAD files

git

2023-07-28 01:49

administrator   ~0113803

Branch CR33436 has been updated forcibly by oan.

SHA-1: 66680401783ab7f4de7c92c4e7651d6949c994f7

oan

2023-07-28 12:20

developer   ~0113804

Patch is ready for review.

Test reports: http://jenkins-test-10.nnov.opencascade.com/view/master-CR33436-OAN/view/COMPARE/

To integrate:
OCCT: CR33436
PROD: None

dpasukhi

2023-08-01 19:03

administrator   ~0113823

Dear bugmaster, please integrate:
OCCT: CR33436
PROD: NO

jokwajeb

2023-08-08 13:59

administrator   ~0113932

Combination -
OCCT branch : SHA - IR-2023-08-04
Products branch : SHA - master
was compiled on Linux, MacOS and Windows platforms and tested in optimize mode.

Number of compiler warnings:
No new/fixed warnings

Regressions/Differences/Improvements:
No regressions/differences

CPU differences:
Ubuntu2004-64:
OCCT
Total CPU difference: 18344.600000000195 / 18390.260000000217 [-0.25%]
Products
Total CPU difference: 12102.810000000003 / 12161.439999999999 [-0.48%]
Windows-64-VC142:
OCCT
Total CPU difference: 20332.1875 / 20298.859375 [+0.16%]
Products
Total CPU difference: 14548.515625 / 14604.578125 [-0.38%]


Image differences :
No differences that require special attention

Memory differences :
No differences that require special attention

Related Changesets

occt: master f3a66dd7

2023-07-27 18:18:59

oan


Committer: jokwajeb Details Diff
0033436: Data Exchange, DE_Wrapper - DEXCAFCascade_ConfigurationNode::BuildProvider() not initialize provider

Pass pointer to DEXCAFCascade_ConfigurationNode to DEXCAFCascade_Provider;
Remove forcible manual reset of Provider's node in DE_Wrapper::FindProvider() to verify that all specializations of configuration node work properly without necessity of workarounds.
Affected Issues
0033436
mod - src/DE/DE_Wrapper.cxx Diff File
mod - src/DEXCAFCascade/DEXCAFCascade_ConfigurationNode.cxx Diff File

Issue History

Date Modified Username Field Change
2023-07-27 18:14 oan New Issue
2023-07-27 18:14 oan Assigned To => ika
2023-07-27 18:14 oan Assigned To ika => oan
2023-07-27 18:42 oan Description Updated
2023-07-27 18:42 oan Steps to Reproduce Updated
2023-07-27 18:43 git Note Added: 0113797
2023-07-27 21:59 oan Assigned To oan => ika
2023-07-27 21:59 oan Status new => resolved
2023-07-27 21:59 oan Note Added: 0113799
2023-07-27 22:02 dpasukhi Target Version 7.7.2 => 7.7.3
2023-07-27 22:02 dpasukhi Summary DE_Wrapper - DEXCAFCascade_ConfigurationNode::BuildProvider() returns provider with empty node causing reading failure for XBF => Data Exchange, DE_Wrapper - DEXCAFCascade_ConfigurationNode::BuildProvider() not initialize provider
2023-07-27 22:02 dpasukhi Description Updated
2023-07-27 22:02 dpasukhi Steps to Reproduce Updated
2023-07-27 22:03 dpasukhi Note Added: 0113800
2023-07-28 01:40 oan Note Added: 0113801
2023-07-28 01:40 oan Assigned To ika => oan
2023-07-28 01:40 oan Status resolved => assigned
2023-07-28 01:42 oan Note Added: 0113802
2023-07-28 01:43 oan Note Edited: 0113801
2023-07-28 01:49 git Note Added: 0113803
2023-07-28 12:20 oan Assigned To oan => ika
2023-07-28 12:20 oan Status assigned => resolved
2023-07-28 12:20 oan Note Added: 0113804
2023-08-01 18:33 oan Assigned To ika => dpasukhi
2023-08-01 19:03 dpasukhi Assigned To dpasukhi => bugmaster
2023-08-01 19:03 dpasukhi Status resolved => reviewed
2023-08-01 19:03 dpasukhi Note Added: 0113823
2023-08-08 13:59 jokwajeb Note Added: 0113932
2023-08-08 14:23 jokwajeb Changeset attached => occt master f3a66dd7
2023-08-08 14:23 oan Assigned To bugmaster => oan
2023-08-08 14:23 oan Status reviewed => verified
2023-08-08 14:23 oan Resolution open => fixed