Blanks are removed.
A check is implemented to correct a GUID in case of presence of the blanks.
Test case for issues CR24852
ResourceName+=".RetrievalPlugin";
if(UTL::Find(Resources(),ResourceName)) {
- thePluginId=UTL::GUID(UTL::Value(Resources(),ResourceName));
+ // Get GUID as a string.
+ TCollection_ExtendedString strPluginId = UTL::Value(Resources(),ResourceName);
+
+ // If the GUID (as a string) contains blanks, remove them.
+ if (strPluginId.Search(' ') != -1)
+ strPluginId.RemoveAll(' ');
+
+ // Convert to GUID.
+ thePluginId=UTL::GUID(strPluginId);
return Standard_True;
}
return Standard_False;
theResourceName+="StoragePlugin";
TCollection_ExtendedString thePluginId;
FIND(theDocumentResource,theResourceName,myStoragePluginWasFound,thePluginId);
- if(myStoragePluginWasFound) myStoragePlugin=UTL::GUID(thePluginId);
+ if(myStoragePluginWasFound)
+ {
+ // Check whether the GUID (as a string) contains blanks before and after the string.
+ // If it is so, remove them.
+ if (thePluginId.Search(' ') != -1)
+ thePluginId.RemoveAll(' ');
+
+ // Convert to GUID.
+ myStoragePlugin=UTL::GUID(thePluginId);
+ }
myResourcesAreLoaded=Standard_True;
// cout << "resource Loaded: " << "Format: " << theFormat << ", FileExtension:" << myFileExtension << ", DataType:" << myDataType << ", VersionDataType:" << myVersionDataType << ", Description:" << myDescription << ", Domain:" << myDomain << endl;
!
XmlOcaf.Description: Xml Document Version 1.0
XmlOcaf.FileExtension: xml
-XmlOcaf.StoragePlugin: 03a56820-8269-11d5-aab2-0050044b1af1
-XmlOcaf.RetrievalPlugin: 03a56822-8269-11d5-aab2-0050044b1af1
+XmlOcaf.StoragePlugin: 03a56820-8269-11d5-aab2-0050044b1af1
+XmlOcaf.RetrievalPlugin: 03a56822-8269-11d5-aab2-0050044b1af1
!
! standard attributes
!
--- /dev/null
+puts "=========="
+puts "OCC24852"
+puts "=========="
+puts ""
+########################################################
+# Crash on storage of an Ocaf document in XML file format
+########################################################
+
+NewDocument D XmlOcaf
+
+set File ${imagedir}/bug24852_test.xml
+
+if { [catch {set res [SaveAs D ${File}]}] != 0 } {
+ puts "Error : Crash on storage of an Ocaf document in XML file format"
+} else {
+ puts "OK : Storage of an Ocaf document in XML file format is good"
+ file delete ${File}
+}