View Issue Details

IDProjectCategoryView StatusLast Update
0029217Open CASCADEOCCT:Application Frameworkpublic2020-12-06 10:30
Reporterkgv Assigned Tobugmaster  
PrioritynormalSeverityminor 
Status closedResolutionfixed 
Product Version7.2.0 
Target Version7.6.0Fixed in Version7.6.0 
Summary0029217: Application Framework - undocumented API method XmlLDrivers::SetStorageVersion()
DescriptionThe patch for #0028691 introduced new feature ability to save OCAF document within XML persistence formats which can be (theoretically?) opened by earlier OCCT versions - at least Open CASCADE 6.7.0.

However, the way it was implemented (new global method XmlLDrivers::SetStorageVersion()) is quite questionable:
- No documentation provided anywhere, including API methods and Draw Harness command.
  No description provided about possible side effects of settings version below last.
- Patch does not clarifies what has been introduced within version 9 comparing to 8.
- No any checks for supported/unsupported version numbers.
  One may set any version.
  Only test case bugs/caf/bug28691 suggests that at least 7 and 9 are valid numbers.
- No API provided returning actual (last) version of format.
- XmlLDrivers_DocumentRetrievalDriver also uses XmlLDrivers::StorageVersion()
  resulting in read failure if application wants writing XML file
  in compatible mode (e.g. set version 7) and then try reading file
  written in latest format (9), which does not make sense.
Steps To ReproduceDear MPV, KGV, everything is fixed, could you review, please:

http://vm-jenkins-test-12.nnov.opencascade.com:8080/view/CR29217_5-master-vro/view/COMPARE/

For bugmaster:
- the branch CR29217_5 is for Open CASCADE,
- a new test-script "bugs caf bug29217" is added.
TagsNo tags attached.
Test case numberbugs/caf/bug29217

Attached Files

  • BinLDrivers_DocumentSection.cxx (8,324 bytes)

Relationships

parent of 0031985 closedbugmaster Open CASCADE Documentation - description of TDocStd_FormatVersion is excessive 
related to 0031946 closedbugmaster Open CASCADE Modeling Data - replace version numbers with enumerations in TopTools and BinTools 

Activities

git

2017-10-19 16:25

administrator   ~0071646

Branch CR29217 has been created by vro.

SHA-1: 248dd6ca65ced8d4bd648f56a5eb6e3839b65c9d


Detailed log of new commits:

Author: vro
Date: Thu Oct 19 16:24:15 2017 +0300

    0029217: Application Framework - nonsense API method XmlLDrivers::SetStorageVersion()

mpv

2017-10-20 15:34

developer   ~0071662

Dear KGV,

Could you review this fix from your case point of view.

kgv

2017-10-20 15:40

developer   ~0071664

vro written:

Done:
- multiple definition of the document version in BinLDrivers, XmlLDrivers, ... is removed;
- a document version variable now belongs to each instance of the document (TDocStd_Document);
- it is possible to change the document version.
- a comment for the new methods of TDocStd_Document describe a purpose of the methods and how to use them.

The branch is compiled and tested: http://jenkins-test-10.nnov.opencascade.com/view/CR29217-master-vro/view/START%20BRANCH%20CERTIFICATION/ [^]

Any remarks are welcome!

abv

2020-11-22 22:16

manager   ~0096996

The patch does not contains sufficient description of the changes made and the new options introduced.

From the code changes it is apparent that effectively it changes default XML format version from 9 to 10. Does this mean that XML documents saved by OCCT after that change will not be readable by previous versions? If yes, this must be documented.

If an option to set document version is introduced, there should be descrioption on which versions are supported. Without that, this change is usable by its authors only; such stuff shall not appear in an open source library.

mpv

2020-11-23 09:35

developer   ~0097002

In CR29217 only ability to set XML document storage version is added. As I see, the default version was set to 10 in "0028736: An error to read a binary OCAF document of > 2Gb", which looks reasonable.

I agree with ABV recommendations to document new API and to describe what is supported now and which versions of the document storage are supported in he current version.

vro

2020-11-26 10:12

developer   ~0097083

Dear colleagues, if you don’t mind I would like to propose some improvements for SetStortageVersion().

So, a little history. Several years ago, a customer asked for an improvement of Ocaf XML storage file reader and writer to become faster and occupy less space on disk. I removed a default GUID for several attributes like TDataStd_TreeNode and some others, made some little other changes. As a consequence, writing became 25% faster, reading – about 10% faster, disk space – about 30% smaller. But… the document became incompatible with old versions. I mean, old applications couldn’t read documents saved by new application. Having reverted the changes I noticed that the document remained incompatible… but now it happened because of porting to a newer version of Open CASCADE – an attribute TPrsStd_AISPresentation was replaced by TDataXtd_Presentation, and some other changes were made in the newer version. So, we needed a solution to make a document readable by old applications.

The solution. After some modifications and further improvements the solution looks like this. I will describe in brief:
1. A document has a method Set/GetStorageFormatVersion(), which defines the version number to be saved on disk. So far, it works only for XML file format.
2. This version number is used in all storage drivers of Ocaf attributes and for example, in TDataStd_TreeNode, it stores or not the default GUID of the attribute. In particular, for the version number 7 (corresponding to Open CASCADE 6.7.0) it stores the GUID, but for later versions – doesn’t (optimization). Also, it stores a TPsStd_AISPresentation attribute instead of TDataXtd_Presentation if the version number is 7 or earlier.
3. On reading of the attribute, a driver of the old application expects a GUID, while in the newer applications the driver is improved so that it works fine if a GUID is absent.

So, these little changes gave us an opportunity to allow old applications based on Open CASCADE 6.7.0 to open documents saved by applications based on newest versions of Open CASCADE. But, as you noticed, this solution has many drawbacks… Here they are:
1. It works only for XML, not for binary file format.
2. It works only for Open CASCADE 6.7.0, storage version 7.
3. It works only for documents with old attributes. For example, if the user of a new application sets two TDataStd_Real attributes with different GUIDs, this solution fails.
In other words, it is a private solution for a particular case. In addition, it is not documented anyhow. And it is me who gave you this “piece of cake”.

A proposal:
1. I would like to propose usage of StorageFormatVerison of the document for the binary file format too. It was not used before, but may be later someone would like to do it and they will have already a working mechanism.
2. Documentation. I think a short article in the documentation dedicated to back-compatibility in OCAF would explain the users how to use the storage version, what it does and how to improve in case of need. Just a page would be enough.
3. There are the version 8 and 9 of XML file format. Should we develop a back-compatibility for them? I didn’t hear about such requests from any customer. Let me know please your opinion.
Any remarks and proposals are welcome!

mpv

2020-11-26 10:54

developer  

BinLDrivers_DocumentSection.cxx (8,324 bytes)

mpv

2020-11-26 10:57

developer   ~0097085

Dear VRO,

Could you also use the attached file BinLDrivers_DocumentSection.cxx? It was created by ESA basing on OCCT version 7.4.0 to support writing of binary file formats versions earlier than 10.

vro

2020-11-26 12:24

developer   ~0097093

Ok, I will include this file. Thanks to ESA.
Any other remarks are welcome, please.

git

2020-11-26 17:29

administrator   ~0097101

Branch CR29217_1 has been created by vro.

SHA-1: d023d2f18bdc766777cb6b21b6a637eeeec80938


Detailed log of new commits:

Author: Vlad Romashko
Date: Thu Nov 26 17:29:13 2020 +0300

    0029217: Application Framework - nonsense API method XmlLDrivers::SetStorageVersion()
    
    1. Unification of usage of a storage version of a document by XML and binary file formats.
    2. Removal of unnecessary methods for storage version like XmlLDrivers::StorageVersion(), BinLDrivers::StorageVersion().
    3. Support of old documents (storage version <= 9) in binary file format (came from ESA).
    
    Modified files:
    - CDM_Document.cxx: a latest document storage version is defined.
    - BinLDrivers_DocumentSection.hxx and cxx: support of old document storage version in binary file format.
    - BinDrivers_DocumentStorageDriver.hxx and cxx,
    - BinLDrivers_DocumentStorageDriver.hxx and cxx,
    - BinLDrivers_DocumentRetrievalDriver.cxx: usage of document storage version from CDM_Document in storage and retrieval drivers of binary file format.
    
    New test:
    bugs caf bug29217: a test case for old document storage version in binary file format. It checks several attributes saved by the version 7 (old) and 10 (the latest version).

kgv

2020-11-26 20:48

developer   ~0097103

+  if (theDocFormatVersion <= 9)

It would be handful relying on the patch 0031946 replacing version numbers with documented enumeration.

vro

2020-11-27 07:06

developer   ~0097104

Hello KGV, may I take the enumeration from 0031946 and apply it here? Or should I wait for integration of 0031946 and then merge the sources?

git

2020-11-30 13:55

administrator   ~0097163

Branch CR29217_2 has been created by vro.

SHA-1: 740b30d0b854cc58596d0b9aa640ebbcf7df89b1


Detailed log of new commits:

Author: Vlad Romashko
Date: Mon Nov 30 13:56:11 2020 +0300

    0029217: Application Framework - nonsense API method XmlLDrivers::SetStorageVersion()
    
    1. Unification of usage of a storage version of an OCAF document by XML and binary file formats.
    2. A new format version enumeration in TDocStd package: TDocStd_FormatVersion.
    3. Removal of unnecessary methods for storage version like XmlLDrivers::StorageVersion() and BinLDrivers::StorageVersion().
    4. Support of old documents (storage version <= 9) in binary file format (came from ESA).
    
    New files:
    - TDocStd_FormatVersion.hxx: a new storage format version enumeration for an OCAF document.
    
    Modified files:
    - CDM_Document.hxx and cxx: removal of storage format version property (moved to TDocStd_Document).
    - TDocStd_Document.hxx and cxx: a storage format version property (moved from CDM_Document).
    - BinLDrivers_DocumentSection.hxx and cxx: support of old document storage version in binary file format.
    - BinDrivers_DocumentStorageDriver.hxx and cxx,
    - BinLDrivers_DocumentStorageDriver.hxx and cxx,
    - BinLDrivers_DocumentRetrievalDriver.cxx,
    - XmlLDrivers_DocumentRetrievalDriver.cxx,
    - XmlLDrivers_DocumentStorageDriver.cxx: usage of document storage version from TDocStd_Document in storage and retrieval drivers.
    - DDocStd_ApplicationCommands.cxx: draw-command name StorageVersion is replaced by StorageFormatVersion (to be the same everywhere). A corresponding script is corrected too.
    
    New test:
    - bugs caf bug29217: a test case for old document storage version in binary file format. It checks several attributes saved by the version TDocStd_FormatVersion_VERSION_7 (old) and the latest version.
    
    Modified test:
    caf presentation M1: the test used a file in the current folder, not in {imagedir} like all other tests.

git

2020-11-30 14:13

administrator   ~0097166

Branch CR29217_2 has been updated by vro.

SHA-1: 3b6fc56b1221b86b32eff1a192867de873b78744


Detailed log of new commits:

Author: Vlad Romashko
Date: Mon Nov 30 14:13:33 2020 +0300

    0029217: Application Framework - nonsense API method XmlLDrivers::SetStorageVersion()
    
    // Non-ascii symbols are removed from TDocStd_FormatVersion.hxx

git

2020-11-30 14:19

administrator   ~0097167

Branch CR29217_2 has been updated by vro.

SHA-1: 7ece7c7aca4d76bde094490827ddd8e43a92b7e0


Detailed log of new commits:

Author: Vlad Romashko
Date: Mon Nov 30 14:19:43 2020 +0300

    0029217: Application Framework - nonsense API method XmlLDrivers::SetStorageVersion()
    
    // Remove non-ascii symbols.

git

2020-11-30 14:31

administrator   ~0097168

Branch CR29217_2 has been updated by vro.

SHA-1: 0234daf31fa06cd23f1c3def4e0bd4f044cc4538


Detailed log of new commits:

Author: Vlad Romashko
Date: Mon Nov 30 14:31:46 2020 +0300

    0029217: Application Framework - nonsense API method XmlLDrivers::SetStorageVersion()
    
    // Removed non-ascii symbols.

git

2020-11-30 15:00

administrator   ~0097170

Branch CR29217_2 has been updated by vro.

SHA-1: 238e3ade6526d2f6dab49c7d43c65f125f2f9d99


Detailed log of new commits:

Author: Vlad Romashko
Date: Mon Nov 30 15:00:34 2020 +0300

    0029217: Application Framework - nonsense API method XmlLDrivers::SetStorageVersion()
    
    // Remove non-ascii symbols.

Author: Vlad Romashko
Date: Mon Nov 30 14:54:47 2020 +0300

    Merge branch 'CR29217_2' of git.dev.opencascade.org:occt into CR29217_2

Author: Vlad Romashko
Date: Mon Nov 30 14:54:20 2020 +0300

    0029217: Application Framework - nonsense API method XmlLDrivers::SetStorageVersion()
    
    // Removed non-ascii symbols.

Author: Vlad Romashko
Date: Mon Nov 30 14:31:46 2020 +0300

    0029217: Application Framework - nonsense API method XmlLDrivers::SetStorageVersion()
    
    // Removed non-ascii symbols.

git

2020-11-30 15:32

administrator   ~0097171

Branch CR29217_3 has been created by vro.

SHA-1: c775e1ae8993ffeaa66b3cb000afd7d3b6d5fc95


Detailed log of new commits:

Author: Vlad Romashko
Date: Mon Nov 30 15:32:41 2020 +0300

    0029217: Application Framework - nonsense API method XmlLDrivers::SetStorageVersion()
    
    1. Unification of usage of a storage version of an OCAF document by XML and binary file formats.
    2. A new format version enumeration in TDocStd package: TDocStd_FormatVersion.
    3. Removal of unnecessary methods for storage version like XmlLDrivers::StorageVersion() and BinLDrivers::StorageVersion().
    4. Support of old documents (storage version <= 9) in binary file format (came from ESA).
    
    New files:
    - TDocStd_FormatVersion.hxx: a new storage format version enumeration for an OCAF document.
    
    Modified files:
    - CDM_Document.hxx and cxx: removal of storage format version property (moved to TDocStd_Document).
    - TDocStd_Document.hxx and cxx: a storage format version property (moved from CDM_Document).
    - BinLDrivers_DocumentSection.hxx and cxx: support of old document storage version in binary file format.
    - BinDrivers_DocumentStorageDriver.hxx and cxx,
    - BinLDrivers_DocumentStorageDriver.hxx and cxx,
    - BinLDrivers_DocumentRetrievalDriver.cxx,
    - XmlLDrivers_DocumentRetrievalDriver.cxx,
    - XmlLDrivers_DocumentStorageDriver.cxx: usage of document storage version from TDocStd_Document in storage and retrieval drivers.
    - DDocStd_ApplicationCommands.cxx: draw-command name StorageVersion is replaced by StorageFormatVersion (to be the same everywhere). A corresponding script is corrected too.
    
    New test:
    - bugs caf bug29217: a test case for old document storage version in binary file format. It checks several attributes saved by the version TDocStd_FormatVersion_VERSION_7 (old) and the latest version.
    
    Modified test:
    caf presentation M1: the test used a file in the current folder, not in {imagedir} like all other tests.

mpv

2020-12-01 11:32

developer   ~0097191

Please, append into dox/upgrade/upgrade.md file information how to change the version of the document and port to this OCCT, since you have removed old methods, possibly used externally.

In TDocStd_FormatVersion.hxx misprint: TDpcStd_Document
Also, it is worth in this file comment change "Open CASCADE" to "Open CASCADE Technology".

In XmlLDrivers_DocumentStorageDriver.cxx modifications complains coding rules: write "{" at a new line. If method contains arguments, there must be a space before "(".

git

2020-12-01 12:39

administrator   ~0097196

Branch CR29217_4 has been created by vro.

SHA-1: e9f27212ac106262813f4c2d7e643a38bdbf008f


Detailed log of new commits:

Author: Vlad Romashko
Date: Tue Dec 1 12:40:00 2020 +0300

    0029217: Application Framework - nonsense API method XmlLDrivers::SetStorageVersion()
    
    1. Unification of usage of a storage version of an OCAF document by XML and binary file formats.
    2. A new format version enumeration in TDocStd package: TDocStd_FormatVersion.
    3. Removal of unnecessary methods for storage version like XmlLDrivers::StorageVersion() and BinLDrivers::StorageVersion().
    4. Support of old documents (storage version <= 9) in binary file format (came from ESA).
    
    New files:
    - TDocStd_FormatVersion.hxx: a new storage format version enumeration for an OCAF document.
    
    Modified files:
    - CDM_Document.hxx and cxx: removal of storage format version property (moved to TDocStd_Document).
    - TDocStd_Document.hxx and cxx: a storage format version property (moved from CDM_Document).
    - BinLDrivers_DocumentSection.hxx and cxx: support of old document storage version in binary file format.
    - BinDrivers_DocumentStorageDriver.hxx and cxx,
    - BinLDrivers_DocumentStorageDriver.hxx and cxx,
    - BinLDrivers_DocumentRetrievalDriver.cxx,
    - XmlLDrivers_DocumentRetrievalDriver.cxx,
    - XmlLDrivers_DocumentStorageDriver.cxx: usage of document storage version from TDocStd_Document in storage and retrieval drivers.
    - DDocStd_ApplicationCommands.cxx: draw-command name StorageVersion is replaced by StorageFormatVersion (to be the same everywhere). A corresponding script is corrected too.
    
    New test:
    - bugs caf bug29217: a test case for old document storage version in binary file format. It checks several attributes saved by the version TDocStd_FormatVersion_VERSION_7 (old) and the latest version.
    
    Modified test:
    - caf presentation M1: the test used a file in the current folder, not in {imagedir} like all other tests.
    
    Documentation:
    - dox/upgrade/upgrade.md

kgv

2020-12-01 14:50

developer   ~0097211

+  if (theDocFormatVersion <= TDocStd_FormatVersion_VERSION_9)
+  {
+    // Old documents stored file position as 4-bytes values.
+    Standard_Integer aValInt[3] = {

It would be useful throwing an exception on 32-bit signed integer overflow on attempt to write too big file (requiring 64-bit size).
Tip: int32_t would be less ambiguous than Standard_Integer.

+  theCommands.Add("GetStorageFormatVersion",
+                 "GetStorageFormatVersion Doc",
+                 __FILE__, DDocStd_GetStorageFormatVersion, g);
+  theCommands.Add("SetStorageFormatVersion",
+                 "SetStorageFormatVersion Doc Version",

Could you please add some description to Draw Harness commands to elaborate which version could be passed in (or at least some references to documentation)?

+  //! Sets <theVersion> of the format to be used to store the document
+  Standard_EXPORT void ChangeStorageFormatVersion(const TDocStd_FormatVersion theVersion);

Please avoid using angle brackets in Doxygen comments - they generate Doxygen warnings. Use @param and @return syntax for describing parameters and return values.

+//! (smaller files on disk, reading and writing of the XML files is faster).
+
+enum TDocStd_FormatVersion

Please drop redundant empty lines between documentation and class/enum/method definition.

+puts "OCC29217"
...
+# Storage of Ocaf documents in BIN file format in old document version

Please move test description to "puts" above, so that it will appear in logs.

git

2020-12-02 09:38

administrator   ~0097230

Branch CR29217_5 has been created by vro.

SHA-1: 412127b523edd1ef02cdcaa3014ad52840abf82a


Detailed log of new commits:

Author: Vlad Romashko
Date: Wed Dec 2 09:38:28 2020 +0300

    0029217: Application Framework - nonsense API method XmlLDrivers::SetStorageVersion()
    
    1. Unification of usage of a storage version of an OCAF document by XML and binary file formats.
    2. A new format version enumeration in TDocStd package: TDocStd_FormatVersion.
    3. Removal of unnecessary methods for storage version like XmlLDrivers::StorageVersion() and BinLDrivers::StorageVersion().
    4. Support of old documents (storage version <= 9) in binary file format (came from ESA).
    
    New files:
    - TDocStd_FormatVersion.hxx: a new storage format version enumeration for an OCAF document.
    
    Modified files:
    - CDM_Document.hxx and cxx: removal of storage format version property (moved to TDocStd_Document).
    - TDocStd_Document.hxx and cxx: a storage format version property (moved from CDM_Document).
    - BinLDrivers_DocumentSection.hxx and cxx: support of old document storage version in binary file format.
    - BinDrivers_DocumentStorageDriver.hxx and cxx,
    - BinLDrivers_DocumentStorageDriver.hxx and cxx,
    - BinLDrivers_DocumentRetrievalDriver.cxx,
    - XmlLDrivers_DocumentRetrievalDriver.cxx,
    - XmlLDrivers_DocumentStorageDriver.cxx: usage of document storage version from TDocStd_Document in storage and retrieval drivers.
    - DDocStd_ApplicationCommands.cxx: draw-command name StorageVersion is replaced by StorageFormatVersion (to be the same everywhere). A corresponding script is corrected too.
    
    New test:
    - bugs caf bug29217: a test case for old document storage version in binary file format. It checks several attributes saved by the version TDocStd_FormatVersion_VERSION_7 (old) and the latest version.
    
    Modified test:
    - caf presentation M1: the test used a file in the current folder, not in {imagedir} like all other tests.
    - bugs caf bug28691
    
    Documentation:
    - dox/upgrade/upgrade.md
    
    // All remarks are fixed.

mpv

2020-12-02 15:18

developer   ~0097244

Reviewed
OCCT branch: CR29217_5
Products branch: NOTHING

bugmaster

2020-12-05 11:57

administrator   ~0097346

Combination -
OCCT branch : IR-2020-12-04
master SHA - 1e08a76f1e872a1f38931a6c3e8cf71396fc1209
a206de37fbfa0bf71bd534ae47192bbec23b8522
Products branch : IR-2020-12-04 SHA - cb56638fb6b31df41b28133f69a1dc202dcb56aa
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:
Debian80-64:
OCCT
Total CPU difference: 18090.67999999998 / 18052.040000000085 [+0.21%]
Products
Total CPU difference: 12342.950000000128 / 12326.850000000131 [+0.13%]
Windows-64-VC14:
OCCT
Total CPU difference: 19751.5 / 19705.828125 [+0.23%]
Products
Total CPU difference: 13772.515625 / 13793.796875 [-0.15%]


Image differences :
No differences that require special attention

Memory differences :
No differences that require special attention

git

2020-12-05 13:01

administrator   ~0097359

Branch CR29217_5 has been deleted by inv.

SHA-1: 412127b523edd1ef02cdcaa3014ad52840abf82a

git

2020-12-05 13:01

administrator   ~0097361

Branch CR29217_4 has been deleted by inv.

SHA-1: e9f27212ac106262813f4c2d7e643a38bdbf008f

git

2020-12-05 13:01

administrator   ~0097363

Branch CR29217_3 has been deleted by inv.

SHA-1: c775e1ae8993ffeaa66b3cb000afd7d3b6d5fc95

git

2020-12-05 13:01

administrator   ~0097364

Branch CR29217_2 has been deleted by inv.

SHA-1: 238e3ade6526d2f6dab49c7d43c65f125f2f9d99

git

2020-12-05 13:01

administrator   ~0097368

Branch CR29217_1 has been deleted by inv.

SHA-1: d023d2f18bdc766777cb6b21b6a637eeeec80938

git

2020-12-05 13:02

administrator   ~0097386

Branch CR29217 has been deleted by inv.

SHA-1: 248dd6ca65ced8d4bd648f56a5eb6e3839b65c9d

Related Changesets

occt: master 716cf4d9

2020-12-02 06:38:28

vro


Committer: bugmaster Details Diff
0029217: Application Framework - nonsense API method XmlLDrivers::SetStorageVersion()

1. Unification of usage of a storage version of an OCAF document by XML and binary file formats.
2. A new format version enumeration in TDocStd package: TDocStd_FormatVersion.
3. Removal of unnecessary methods for storage version like XmlLDrivers::StorageVersion() and BinLDrivers::StorageVersion().
4. Support of old documents (storage version <= 9) in binary file format (came from ESA).

New files:
- TDocStd_FormatVersion.hxx: a new storage format version enumeration for an OCAF document.

Modified files:
- CDM_Document.hxx and cxx: removal of storage format version property (moved to TDocStd_Document).
- TDocStd_Document.hxx and cxx: a storage format version property (moved from CDM_Document).
- BinLDrivers_DocumentSection.hxx and cxx: support of old document storage version in binary file format.
- BinDrivers_DocumentStorageDriver.hxx and cxx,
- BinLDrivers_DocumentStorageDriver.hxx and cxx,
- BinLDrivers_DocumentRetrievalDriver.cxx,
- XmlLDrivers_DocumentRetrievalDriver.cxx,
- XmlLDrivers_DocumentStorageDriver.cxx: usage of document storage version from TDocStd_Document in storage and retrieval drivers.
- DDocStd_ApplicationCommands.cxx: draw-command name StorageVersion is replaced by StorageFormatVersion (to be the same everywhere). A corresponding script is corrected too.

New test:
- bugs caf bug29217: a test case for old document storage version in binary file format. It checks several attributes saved by the version TDocStd_FormatVersion_VERSION_7 (old) and the latest version.

Modified test:
- caf presentation M1: the test used a file in the current folder, not in {imagedir} like all other tests.
- bugs caf bug28691

Documentation:
- dox/upgrade/upgrade.md

// All remarks are fixed.
Affected Issues
0029217
mod - dox/upgrade/upgrade.md Diff File
mod - src/BinDrivers/BinDrivers.cxx Diff File
mod - src/BinDrivers/BinDrivers.hxx Diff File
mod - src/BinDrivers/BinDrivers_DocumentStorageDriver.cxx Diff File
mod - src/BinDrivers/BinDrivers_DocumentStorageDriver.hxx Diff File
mod - src/BinLDrivers/BinLDrivers.cxx Diff File
mod - src/BinLDrivers/BinLDrivers.hxx Diff File
mod - src/BinLDrivers/BinLDrivers_DocumentRetrievalDriver.cxx Diff File
mod - src/BinLDrivers/BinLDrivers_DocumentSection.cxx Diff File
mod - src/BinLDrivers/BinLDrivers_DocumentSection.hxx Diff File
mod - src/BinLDrivers/BinLDrivers_DocumentStorageDriver.cxx Diff File
mod - src/BinLDrivers/BinLDrivers_DocumentStorageDriver.hxx Diff File
mod - src/CDM/CDM_Document.cxx Diff File
mod - src/CDM/CDM_Document.hxx Diff File
mod - src/DDocStd/DDocStd_ApplicationCommands.cxx Diff File
mod - src/TDocStd/FILES Diff File
mod - src/TDocStd/TDocStd_Document.cxx Diff File
mod - src/TDocStd/TDocStd_Document.hxx Diff File
add - src/TDocStd/TDocStd_FormatVersion.hxx Diff File
mod - src/XmlLDrivers/XmlLDrivers.cxx Diff File
mod - src/XmlLDrivers/XmlLDrivers.hxx Diff File
mod - src/XmlLDrivers/XmlLDrivers_DocumentRetrievalDriver.cxx Diff File
mod - src/XmlLDrivers/XmlLDrivers_DocumentStorageDriver.cxx Diff File
mod - tests/bugs/caf/bug28691 Diff File
add - tests/bugs/caf/bug29217 Diff File
mod - tests/caf/presentation/M1 Diff File

Issue History

Date Modified Username Field Change
2017-10-12 14:47 kgv New Issue
2017-10-12 14:47 kgv Assigned To => mpv
2017-10-12 14:54 mpv Assigned To mpv => vro
2017-10-19 16:25 git Note Added: 0071646
2017-10-20 09:05 vro Assigned To vro => mpv
2017-10-20 09:05 vro Status new => resolved
2017-10-20 09:05 vro Steps to Reproduce Updated
2017-10-20 15:34 mpv Assigned To mpv => kgv
2017-10-20 15:34 mpv Note Added: 0071662
2017-10-20 15:40 kgv Note Added: 0071664
2017-10-20 15:40 kgv Steps to Reproduce Updated
2017-10-20 15:40 kgv Assigned To kgv => abv
2018-02-05 15:30 gzy Assigned To abv => bugmaster
2018-02-05 15:30 gzy Status resolved => reviewed
2018-02-05 15:30 gzy Assigned To bugmaster => kgv
2018-02-05 15:34 kgv Assigned To kgv => abv
2018-02-05 15:34 kgv Status reviewed => feedback
2019-09-04 17:52 kgv Target Version 7.4.0 => 7.5.0
2020-09-11 15:32 utverdov Target Version 7.5.0 => 7.6.0
2020-11-18 00:31 kgv Relationship added related to 0031946
2020-11-22 22:16 abv Note Added: 0096996
2020-11-22 22:16 abv Assigned To abv => mpv
2020-11-22 22:16 abv Status feedback => assigned
2020-11-23 09:35 mpv Note Added: 0097002
2020-11-23 09:35 mpv Assigned To mpv => vro
2020-11-26 10:12 vro Note Added: 0097083
2020-11-26 10:54 mpv File Added: BinLDrivers_DocumentSection.cxx
2020-11-26 10:57 mpv Note Added: 0097085
2020-11-26 12:24 vro Note Added: 0097093
2020-11-26 17:29 git Note Added: 0097101
2020-11-26 19:37 vro Assigned To vro => mpv
2020-11-26 19:37 vro Status assigned => resolved
2020-11-26 19:37 vro Steps to Reproduce Updated
2020-11-26 20:45 kgv Summary Application Framework - nonsense API method XmlLDrivers::SetStorageVersion() => Application Framework - undocumented API method XmlLDrivers::SetStorageVersion()
2020-11-26 20:48 kgv Note Added: 0097103
2020-11-27 07:06 vro Note Added: 0097104
2020-11-30 11:20 vro Assigned To mpv => vro
2020-11-30 11:20 vro Status resolved => assigned
2020-11-30 13:55 git Note Added: 0097163
2020-11-30 14:13 git Note Added: 0097166
2020-11-30 14:19 git Note Added: 0097167
2020-11-30 14:31 git Note Added: 0097168
2020-11-30 15:00 git Note Added: 0097170
2020-11-30 15:32 git Note Added: 0097171
2020-11-30 21:11 vro Assigned To vro => mpv
2020-11-30 21:11 vro Status assigned => resolved
2020-11-30 21:11 vro Steps to Reproduce Updated
2020-12-01 11:32 mpv Note Added: 0097191
2020-12-01 11:32 mpv Assigned To mpv => vro
2020-12-01 11:32 mpv Status resolved => assigned
2020-12-01 12:39 git Note Added: 0097196
2020-12-01 14:50 kgv Note Added: 0097211
2020-12-02 09:38 git Note Added: 0097230
2020-12-02 12:23 vro Assigned To vro => mpv
2020-12-02 12:23 vro Status assigned => resolved
2020-12-02 12:23 vro Steps to Reproduce Updated
2020-12-02 15:18 mpv Note Added: 0097244
2020-12-02 15:18 mpv Assigned To mpv => bugmaster
2020-12-02 15:18 mpv Status resolved => reviewed
2020-12-05 11:57 bugmaster Note Added: 0097346
2020-12-05 11:57 bugmaster Status reviewed => tested
2020-12-05 12:08 bugmaster Test case number => bugs/caf/bug29217
2020-12-05 12:15 bugmaster Changeset attached => occt master 716cf4d9
2020-12-05 12:15 bugmaster Status tested => verified
2020-12-05 12:15 bugmaster Resolution open => fixed
2020-12-05 13:01 git Note Added: 0097359
2020-12-05 13:01 git Note Added: 0097361
2020-12-05 13:01 git Note Added: 0097363
2020-12-05 13:01 git Note Added: 0097364
2020-12-05 13:01 git Note Added: 0097368
2020-12-05 13:02 git Note Added: 0097386
2020-12-06 10:30 kgv Relationship added parent of 0031985