diff --git a/src/xercesc/NLS/EN_US/XMLErrList_EN_US.Xml b/src/xercesc/NLS/EN_US/XMLErrList_EN_US.Xml index 246b0e25796708f2abc072093669aad08013a7a7..ce9e60f839e34670aba1402f9f4881b06de6e4c4 100644 --- a/src/xercesc/NLS/EN_US/XMLErrList_EN_US.Xml +++ b/src/xercesc/NLS/EN_US/XMLErrList_EN_US.Xml @@ -790,7 +790,7 @@ <Message Id="XSer_GrammarPool_Empty" Text="grammar pool is empty"/> <Message Id="XSer_GrammarPool_NotEmpty" Text="grammar pool is not empty"/> <Message Id="XSer_StringPool_NotEmpty" Text="string pool is not empty"/> - <Message Id="XSer_Storer_NewerThan_Loader" Text="storer level '{0}' is newer than loader level '{1}'"/> + <Message Id="XSer_Storer_Loader_Mismatch" Text="storer level '{0}' does not match loader level '{1}'"/> <Message Id="VALUE_QName_Invalid2" Text="undefined prefix in QName value '{0}'"/> </FatalError> </MsgDomain> diff --git a/src/xercesc/framework/XMLEntityDecl.cpp b/src/xercesc/framework/XMLEntityDecl.cpp index 2f9bdfee489b3d734884a2f6f2507a342ce7b956..5c1cc671d659f5ff4728572ee1784f86bebe2380 100644 --- a/src/xercesc/framework/XMLEntityDecl.cpp +++ b/src/xercesc/framework/XMLEntityDecl.cpp @@ -195,9 +195,7 @@ void XMLEntityDecl::serialize(XSerializeEngine& serEng) serEng.readString(fPublicId); serEng.readString(fSystemId); serEng.readString(fBaseURI); - // when fIsExternal has been added, XERCES_GRAMMAR_SERIALIZATION_LEVEL has been bumped to 6 - if(serEng.getStorerLevel()>=6) - serEng>>fIsExternal; + serEng>>fIsExternal; } } diff --git a/src/xercesc/framework/XMLGrammarPoolImpl.cpp b/src/xercesc/framework/XMLGrammarPoolImpl.cpp index c8dc74d78f529adb6ab22c7a11fed5a2743b0b1a..7e67c2d23c6d4a1884d2499d1774f76ca234dd04 100644 --- a/src/xercesc/framework/XMLGrammarPoolImpl.cpp +++ b/src/xercesc/framework/XMLGrammarPoolImpl.cpp @@ -302,11 +302,11 @@ void XMLGrammarPoolImpl::deserializeGrammars(BinInputStream* const binIn) //version information unsigned int StorerLevel; serEng>>StorerLevel; - serEng.fStorerLevel = (short)StorerLevel; + serEng.fStorerLevel = StorerLevel; - //if the storer level is after the loader level - //the loader shall not read the data any more - if (StorerLevel > (unsigned int) XERCES_GRAMMAR_SERIALIZATION_LEVEL) + // The storer level must match the loader level. + // + if (StorerLevel != (unsigned int)XERCES_GRAMMAR_SERIALIZATION_LEVEL) { XMLCh StorerLevelChar[5]; XMLCh LoaderLevelChar[5]; @@ -314,7 +314,7 @@ void XMLGrammarPoolImpl::deserializeGrammars(BinInputStream* const binIn) XMLString::binToText(XERCES_GRAMMAR_SERIALIZATION_LEVEL, LoaderLevelChar, 4, 10, memMgr); ThrowXMLwithMemMgr2(XSerializationException - , XMLExcepts::XSer_Storer_NewerThan_Loader + , XMLExcepts::XSer_Storer_Loader_Mismatch , StorerLevelChar , LoaderLevelChar , memMgr); diff --git a/src/xercesc/internal/XSerializeEngine.hpp b/src/xercesc/internal/XSerializeEngine.hpp index faaf36fe135907f40ab18866c2a028d17bc8a41f..7b5d7d6d51acf572f862124bb6dc32a8f432da0c 100644 --- a/src/xercesc/internal/XSerializeEngine.hpp +++ b/src/xercesc/internal/XSerializeEngine.hpp @@ -165,7 +165,7 @@ public: * Return: level * ***/ - inline unsigned short getStorerLevel() const; + inline unsigned int getStorerLevel() const; /*** * @@ -658,7 +658,7 @@ private: // fMapCount: // ------------------------------------------------------------------------------- const short fStoreLoad; - short fStorerLevel; + unsigned int fStorerLevel; XMLGrammarPool* const fGrammarPool; BinInputStream* const fInputStream; @@ -796,7 +796,7 @@ unsigned long XSerializeEngine::getBufCount() const } inline -unsigned short XSerializeEngine::getStorerLevel() const +unsigned int XSerializeEngine::getStorerLevel() const { return fStorerLevel; } diff --git a/src/xercesc/util/XMLExceptMsgs.hpp b/src/xercesc/util/XMLExceptMsgs.hpp index ac117c14f92017a01b6f4478ee94d5e401ad31ee..8327bceb06a70a0466818ee17c0ecf2181722772 100644 --- a/src/xercesc/util/XMLExceptMsgs.hpp +++ b/src/xercesc/util/XMLExceptMsgs.hpp @@ -375,7 +375,7 @@ public : , XSer_GrammarPool_Empty = 359 , XSer_GrammarPool_NotEmpty = 360 , XSer_StringPool_NotEmpty = 361 - , XSer_Storer_NewerThan_Loader = 362 + , XSer_Storer_Loader_Mismatch = 362 , VALUE_QName_Invalid2 = 363 , F_HighBounds = 364 , E_LowBounds = 365