[mapguide-commits] r9346 - in branches/3.1/MgDev: . Common/Stylization UnitTest/WebTier/MapAgent/MapAgentForms Web/src/HttpHandler Web/src/IsapiAgent
svn_mapguide at osgeo.org
svn_mapguide at osgeo.org
Sat Mar 3 05:34:57 PST 2018
Author: jng
Date: 2018-03-03 05:34:57 -0800 (Sat, 03 Mar 2018)
New Revision: 9346
Modified:
branches/3.1/MgDev/
branches/3.1/MgDev/Common/Stylization/StylizationEngine.cpp
branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/describedrawingform.html
branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/enumeratedrawinglayers.html
branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/enumeratedrawingsectionresources.html
branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/enumeratedrawingsections.html
branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/enumerategroupsform.html
branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/enumeraterepositoriesform.html
branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/enumerateusersform.html
branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/getfeaturesetenvelopeform.html
branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/getrepositorycontentform.html
branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/getrepositoryheaderform.html
branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/getsiteinfoform.html
branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/getsitestatusform.html
branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/getsiteversionform.html
branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/gettileprovidersform.html
branches/3.1/MgDev/Web/src/HttpHandler/HttpDescribeDrawing.cpp
branches/3.1/MgDev/Web/src/HttpHandler/HttpEnumerateDrawingLayers.cpp
branches/3.1/MgDev/Web/src/HttpHandler/HttpEnumerateDrawingSectionResources.cpp
branches/3.1/MgDev/Web/src/HttpHandler/HttpEnumerateDrawingSections.cpp
branches/3.1/MgDev/Web/src/HttpHandler/HttpEnumerateGroups.cpp
branches/3.1/MgDev/Web/src/HttpHandler/HttpEnumerateRepositories.cpp
branches/3.1/MgDev/Web/src/HttpHandler/HttpEnumerateUsers.cpp
branches/3.1/MgDev/Web/src/HttpHandler/HttpGetFeatureSetEnvelope.cpp
branches/3.1/MgDev/Web/src/HttpHandler/HttpGetRepositoryContent.cpp
branches/3.1/MgDev/Web/src/HttpHandler/HttpGetRepositoryHeader.cpp
branches/3.1/MgDev/Web/src/HttpHandler/HttpGetSiteInfo.cpp
branches/3.1/MgDev/Web/src/HttpHandler/HttpGetSiteStatus.cpp
branches/3.1/MgDev/Web/src/HttpHandler/HttpGetSiteVersion.cpp
branches/3.1/MgDev/Web/src/HttpHandler/HttpGetTileProviders.cpp
branches/3.1/MgDev/Web/src/IsapiAgent/IsapiResponseHandler.cpp
Log:
Merged revision(s) 9106-9107, 9147 from trunk/MgDev:
#2754: Fail to stylize layer when expression in symbol definition has invalid value
Some settings of a symbol definition e.g. width/height can be expressions. Suppose a table has a column HEIGHT which type is double, and the height of symbol is 0.1*HEIGHT. Then if a feature's HEIGHT is null, a FDOException will be thrown when stylizing the feature, and stylize layer will fail.
To fix this bug, we catch FDOException when applying styles.
........
Merge fix for #2750 to main branch.
#2750: Isapi mapagent crashes when server error message is too long
If there is an exception when MapGuide server processes a request, the exception will be sent back to web extension. Isapi response handler will convert this exception to html format.
The crash happens when the error message is too long. We will get a 'security check fail or buffer overflow' error. We think it is related to the unsafe API vsprintf(). It doesn't crash after changing the API to vsprintf_s().
........
#2767: Add missing JSON format conversion support for the following mapagent operations:
- DESCRIBEDRAWING
- ENUMERATEDRAWINGLAYERS
- ENUMERATEDRAWINGSECTIONRESOURCES
- ENUMERATEDRAWINGSECTIONS
- ENUMERATEGROUPS
- ENUMERATEUSERS
- ENUMERATEREPOSITORIES
- GETFEATURESETENVELOPE
- GETREPOSITORYCONTENT
- GETREPOSITORYHEADER
- GETSITEINFO
- GETSITESTATUS
- GETSITEVERSION
- GETTILEPROVIDERS
........
Index: branches/3.1/MgDev
===================================================================
--- branches/3.1/MgDev 2018-03-03 13:25:04 UTC (rev 9345)
+++ branches/3.1/MgDev 2018-03-03 13:34:57 UTC (rev 9346)
Property changes on: branches/3.1/MgDev
___________________________________________________________________
Modified: svn:mergeinfo
## -14,4 +14,4 ##
/sandbox/jng/tiling:8174-8208
/sandbox/jng/v30:8212-8227
/sandbox/rfc94:5099-5163
-/trunk/MgDev:8955-8956,8969,8980-8981,8986,8996,9000,9004-9006,9010,9018-9021,9034,9038,9042,9094
\ No newline at end of property
+/trunk/MgDev:8955-8956,8969,8980-8981,8986,8996,9000,9004-9006,9010,9018-9021,9034,9038,9042,9094,9106-9107,9147
\ No newline at end of property
Modified: branches/3.1/MgDev/Common/Stylization/StylizationEngine.cpp
===================================================================
--- branches/3.1/MgDev/Common/Stylization/StylizationEngine.cpp 2018-03-03 13:25:04 UTC (rev 9345)
+++ branches/3.1/MgDev/Common/Stylization/StylizationEngine.cpp 2018-03-03 13:34:57 UTC (rev 9346)
@@ -1038,7 +1038,14 @@
// evaluate the style (all expressions inside it) and convert to a
// constant screen space render style
- style->evaluate(&evalCtx);
+ try
+ {
+ style->evaluate(&evalCtx);
+ }
+ catch (FdoException* e)
+ {
+ ProcessStylizerException(e, __LINE__, __WFILE__);
+ }
// compute offset to apply to the clipping bounds
if (bClip)
@@ -1210,7 +1217,14 @@
else
{
// apply the style to the geometry using the renderer
- style->apply(&applyCtx);
+ try
+ {
+ style->apply(&applyCtx);
+ }
+ catch (FdoException* e)
+ {
+ ProcessStylizerException(e, __LINE__, __WFILE__);
+ }
}
}
}
Modified: branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/describedrawingform.html
===================================================================
--- branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/describedrawingform.html 2018-03-03 13:25:04 UTC (rev 9345)
+++ branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/describedrawingform.html 2018-03-03 13:34:57 UTC (rev 9346)
@@ -20,6 +20,11 @@
<input type="text" name="CLIENTAGENT" value="MapGuide Developer" size="100">
<p> Resource ID:
<input type="text" name="RESOURCEID" value="Library://Drawings/World.DrawingSource" size="100" ID="Text5">
+ <p> Format:
+ <select name="FORMAT">
+ <option value="text/xml">text/xml</option>
+ <option value="application/json">application/json</option>
+ </select>
<p>
<input type="submit" value="Submit" onclick="SetActionTarget()"> <input type="reset">
</form>
Modified: branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/enumeratedrawinglayers.html
===================================================================
--- branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/enumeratedrawinglayers.html 2018-03-03 13:25:04 UTC (rev 9345)
+++ branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/enumeratedrawinglayers.html 2018-03-03 13:34:57 UTC (rev 9346)
@@ -21,6 +21,11 @@
<input type="text" name="RESOURCEID" value="Library://Drawings/World.DrawingSource" size="100" ID="Text5">
<p> Section name:
<input type="text" name="SECTION" value="" size="100" ID="Text6">
+ <p> Format:
+ <select name="FORMAT">
+ <option value="text/xml">text/xml</option>
+ <option value="application/json">application/json</option>
+ </select>
<p>
<input type="submit" value="Submit" onclick="SetActionTarget()"> <input type="reset">
</form>
Modified: branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/enumeratedrawingsectionresources.html
===================================================================
--- branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/enumeratedrawingsectionresources.html 2018-03-03 13:25:04 UTC (rev 9345)
+++ branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/enumeratedrawingsectionresources.html 2018-03-03 13:34:57 UTC (rev 9346)
@@ -17,6 +17,11 @@
<P>Resource ID: <INPUT id="Text5" type="text" size="100" value="Library://Drawings/World.DrawingSource"
name="RESOURCEID">
<P>Section name: <INPUT id="Text6" type="text" size="100" name="SECTION">
+ <p> Format:
+ <select name="FORMAT">
+ <option value="text/xml">text/xml</option>
+ <option value="application/json">application/json</option>
+ </select>
<P>
<input type="submit" value="Submit" onclick="SetActionTarget()"> <input type="reset">
</FORM>
Modified: branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/enumeratedrawingsections.html
===================================================================
--- branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/enumeratedrawingsections.html 2018-03-03 13:25:04 UTC (rev 9345)
+++ branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/enumeratedrawingsections.html 2018-03-03 13:34:57 UTC (rev 9346)
@@ -16,7 +16,11 @@
<P>Locale: <INPUT id="Text4" type="text" size="10" value="en" name="LOCALE">
<P>Resource ID: <INPUT id="Text5" type="text" size="100" value="Library://Drawings/World.DrawingSource"
name="RESOURCEID">
- </P>
+ <p> Format:
+ <select name="FORMAT">
+ <option value="text/xml">text/xml</option>
+ <option value="application/json">application/json</option>
+ </select>
<p><input type="submit" value="Submit" onclick="SetActionTarget()"> <input type="reset"></p>
</FORM>
</body>
Modified: branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/enumerategroupsform.html
===================================================================
--- branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/enumerategroupsform.html 2018-03-03 13:25:04 UTC (rev 9345)
+++ branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/enumerategroupsform.html 2018-03-03 13:34:57 UTC (rev 9346)
@@ -14,6 +14,11 @@
<input type="text" name="LOCALE" value="en" size="10">
<p> Client Agent:
<input type="text" name="CLIENTAGENT" value="MapGuide Developer" size="100">
+<p> Format:
+<select name="FORMAT">
+<option value="text/xml">text/xml</option>
+<option value="application/json">application/json</option>
+</select>
<p>
<input type="submit" value="Submit" onclick="SetActionTarget()"> <input type="reset"></form>
</body>
Modified: branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/enumeraterepositoriesform.html
===================================================================
--- branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/enumeraterepositoriesform.html 2018-03-03 13:25:04 UTC (rev 9345)
+++ branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/enumeraterepositoriesform.html 2018-03-03 13:34:57 UTC (rev 9346)
@@ -16,6 +16,11 @@
<input type="text" name="CLIENTAGENT" value="MapGuide Developer" size="100">
<p> Type:
<input type="text" name="TYPE" value="Session" size="20">
+<p> Format:
+<select name="FORMAT">
+<option value="text/xml">text/xml</option>
+<option value="application/json">application/json</option>
+</select>
<p>
<input type="submit" value="Submit" onclick="SetActionTarget()"> <input type="reset">
</form>
Modified: branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/enumerateusersform.html
===================================================================
--- branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/enumerateusersform.html 2018-03-03 13:25:04 UTC (rev 9345)
+++ branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/enumerateusersform.html 2018-03-03 13:34:57 UTC (rev 9346)
@@ -16,6 +16,11 @@
<input type="text" name="CLIENTAGENT" value="MapGuide Developer" size="100">
<p> Group:
<input type="text" name="GROUP" value="" size="20">
+<p> Format:
+<select name="FORMAT">
+<option value="text/xml">text/xml</option>
+<option value="application/json">application/json</option>
+</select>
<p>
<input type="submit" value="Submit" onclick="SetActionTarget()"> <input type="reset">
</form>
Modified: branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/getfeaturesetenvelopeform.html
===================================================================
--- branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/getfeaturesetenvelopeform.html 2018-03-03 13:25:04 UTC (rev 9345)
+++ branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/getfeaturesetenvelopeform.html 2018-03-03 13:34:57 UTC (rev 9346)
@@ -18,6 +18,13 @@
Map name: <input type="text" name="MAPNAME" value="TestMap" size="100" ID="Text4">
<p>
FeatureSet XML: <input type="text" name="FEATURESET" size="100" ID="Text4">
+ <p> Format:
+ <select name="FORMAT">
+ <option value="text/xml">text/xml</option>
+ <option value="application/json">application/json</option>
+ </select>
+ <p>
+ <input type="submit" value="Submit" onclick="SetActionTarget()"> <input type="reset">
</div>
</form>
</body>
Modified: branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/getrepositorycontentform.html
===================================================================
--- branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/getrepositorycontentform.html 2018-03-03 13:25:04 UTC (rev 9345)
+++ branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/getrepositorycontentform.html 2018-03-03 13:34:57 UTC (rev 9346)
@@ -16,6 +16,11 @@
<input type="text" name="CLIENTAGENT" value="MapGuide Developer" size="100">
<p> Resource ID:
<input type="text" name="RESOURCEID" value="Library://" size="100">
+<p> Format:
+<select name="FORMAT">
+<option value="text/xml">text/xml</option>
+<option value="application/json">application/json</option>
+</select>
<p>
<input type="submit" value="Submit" onclick="SetActionTarget()"> <input type="reset">
</form>
Modified: branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/getrepositoryheaderform.html
===================================================================
--- branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/getrepositoryheaderform.html 2018-03-03 13:25:04 UTC (rev 9345)
+++ branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/getrepositoryheaderform.html 2018-03-03 13:34:57 UTC (rev 9346)
@@ -16,6 +16,11 @@
<input type="text" name="CLIENTAGENT" value="MapGuide Developer" size="100">
<p> Resource ID:
<input type="text" name="RESOURCEID" value="Library://" size="100">
+<p> Format:
+<select name="FORMAT">
+<option value="text/xml">text/xml</option>
+<option value="application/json">application/json</option>
+</select>
<p>
<input type="submit" value="Submit" onclick="SetActionTarget()"> <input type="reset">
</form>
Modified: branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/getsiteinfoform.html
===================================================================
--- branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/getsiteinfoform.html 2018-03-03 13:25:04 UTC (rev 9345)
+++ branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/getsiteinfoform.html 2018-03-03 13:34:57 UTC (rev 9346)
@@ -18,6 +18,11 @@
<input type="text" name="LOCALE" value="en" size="10" ID="Text4">
<p> Client Agent:
<input type="text" name="CLIENTAGENT" value="MapGuide Developer" size="100">
+ <p> Format:
+ <select name="FORMAT">
+ <option value="text/xml">text/xml</option>
+ <option value="application/json">application/json</option>
+ </select>
<p>
<input type="submit" value="Submit" onclick="SetActionTarget()"> <input type="reset">
</form>
Modified: branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/getsitestatusform.html
===================================================================
--- branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/getsitestatusform.html 2018-03-03 13:25:04 UTC (rev 9345)
+++ branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/getsitestatusform.html 2018-03-03 13:34:57 UTC (rev 9346)
@@ -18,6 +18,11 @@
<input type="text" name="LOCALE" value="en" size="10" ID="Text4">
<p> Client Agent:
<input type="text" name="CLIENTAGENT" value="MapGuide Developer" size="100">
+ <p> Format:
+ <select name="FORMAT">
+ <option value="text/xml">text/xml</option>
+ <option value="application/json">application/json</option>
+ </select>
<p>
<input type="submit" value="Submit" onclick="SetActionTarget()"> <input type="reset">
</form>
Modified: branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/getsiteversionform.html
===================================================================
--- branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/getsiteversionform.html 2018-03-03 13:25:04 UTC (rev 9345)
+++ branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/getsiteversionform.html 2018-03-03 13:34:57 UTC (rev 9346)
@@ -18,6 +18,11 @@
<input type="text" name="LOCALE" value="en" size="10" ID="Text4">
<p> Client Agent:
<input type="text" name="CLIENTAGENT" value="MapGuide Developer" size="100">
+ <p> Format:
+ <select name="FORMAT">
+ <option value="text/xml">text/xml</option>
+ <option value="application/json">application/json</option>
+ </select>
<p>
<input type="submit" value="Submit" onclick="SetActionTarget()"> <input type="reset">
</form>
Modified: branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/gettileprovidersform.html
===================================================================
--- branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/gettileprovidersform.html 2018-03-03 13:25:04 UTC (rev 9345)
+++ branches/3.1/MgDev/UnitTest/WebTier/MapAgent/MapAgentForms/gettileprovidersform.html 2018-03-03 13:34:57 UTC (rev 9346)
@@ -13,6 +13,12 @@
<p>
Client Agent: <input type="text" name="CLIENTAGENT" value="MapGuide Developer" size="100">
<p>
+ Format:
+ <select name="FORMAT">
+ <option value="text/xml">text/xml</option>
+ <option value="application/json">application/json</option>
+ </select>
+ <p>
<input type="submit" value="Submit" onclick="SetActionTarget()"> <input type="reset">
</div>
</form>
Modified: branches/3.1/MgDev/Web/src/HttpHandler/HttpDescribeDrawing.cpp
===================================================================
--- branches/3.1/MgDev/Web/src/HttpHandler/HttpDescribeDrawing.cpp 2018-03-03 13:25:04 UTC (rev 9345)
+++ branches/3.1/MgDev/Web/src/HttpHandler/HttpDescribeDrawing.cpp 2018-03-03 13:34:57 UTC (rev 9346)
@@ -61,6 +61,10 @@
// call the C++ API
Ptr<MgByteReader> byteReaderResult = service->DescribeDrawing(&resId);
+
+ // Convert to requested response format, if necessary
+ ProcessFormatConversion(byteReaderResult);
+
hResult->SetResultObject(byteReaderResult, byteReaderResult->GetMimeType());
MG_HTTP_HANDLER_CATCH_AND_THROW_EX(L"MgHttpDescribeDrawing.Execute")
Modified: branches/3.1/MgDev/Web/src/HttpHandler/HttpEnumerateDrawingLayers.cpp
===================================================================
--- branches/3.1/MgDev/Web/src/HttpHandler/HttpEnumerateDrawingLayers.cpp 2018-03-03 13:25:04 UTC (rev 9345)
+++ branches/3.1/MgDev/Web/src/HttpHandler/HttpEnumerateDrawingLayers.cpp 2018-03-03 13:34:57 UTC (rev 9346)
@@ -63,7 +63,13 @@
// call the C++ API
Ptr<MgStringCollection> layers = service->EnumerateLayers(&resId, m_sectionName);
- hResult->SetResultObject(layers, MgMimeType::Xml);
+ Ptr<MgByteReader> byteReader = layers->ToXml();
+
+ // Convert to requested response format, if necessary
+ ProcessFormatConversion(byteReader);
+
+ hResult->SetResultObject(byteReader, byteReader->GetMimeType());
+
MG_HTTP_HANDLER_CATCH_AND_THROW_EX(L"MgHttpEnumerateDrawingLayers.Execute")
}
Modified: branches/3.1/MgDev/Web/src/HttpHandler/HttpEnumerateDrawingSectionResources.cpp
===================================================================
--- branches/3.1/MgDev/Web/src/HttpHandler/HttpEnumerateDrawingSectionResources.cpp 2018-03-03 13:25:04 UTC (rev 9345)
+++ branches/3.1/MgDev/Web/src/HttpHandler/HttpEnumerateDrawingSectionResources.cpp 2018-03-03 13:34:57 UTC (rev 9346)
@@ -62,8 +62,12 @@
Ptr<MgDrawingService> service = (MgDrawingService*)(CreateService(MgServiceType::DrawingService));
// call the C++ API
- Ptr<MgByteReader> sectionResources = service->EnumerateSectionResources(&resId, m_sectionName);
- hResult->SetResultObject(sectionResources, MgMimeType::Xml);
+ Ptr<MgByteReader> byteReader = service->EnumerateSectionResources(&resId, m_sectionName);
+ // Convert to requested response format, if necessary
+ ProcessFormatConversion(byteReader);
+
+ hResult->SetResultObject(byteReader, byteReader->GetMimeType());
+
MG_HTTP_HANDLER_CATCH_AND_THROW_EX(L"MgHttpEnumerateDrawingSectionResources.Execute")
}
Modified: branches/3.1/MgDev/Web/src/HttpHandler/HttpEnumerateDrawingSections.cpp
===================================================================
--- branches/3.1/MgDev/Web/src/HttpHandler/HttpEnumerateDrawingSections.cpp 2018-03-03 13:25:04 UTC (rev 9345)
+++ branches/3.1/MgDev/Web/src/HttpHandler/HttpEnumerateDrawingSections.cpp 2018-03-03 13:34:57 UTC (rev 9346)
@@ -60,8 +60,12 @@
Ptr<MgDrawingService> service = (MgDrawingService*)(CreateService(MgServiceType::DrawingService));
// call the C++ API
- Ptr<MgByteReader> sections = service->EnumerateSections(&resId);
- hResult->SetResultObject(sections, MgMimeType::Xml);
+ Ptr<MgByteReader> byteReader = service->EnumerateSections(&resId);
+ // Convert to requested response format, if necessary
+ ProcessFormatConversion(byteReader);
+
+ hResult->SetResultObject(byteReader, byteReader->GetMimeType());
+
MG_HTTP_HANDLER_CATCH_AND_THROW_EX(L"MgHttpEnumerateDrawingSections.Execute")
}
Modified: branches/3.1/MgDev/Web/src/HttpHandler/HttpEnumerateGroups.cpp
===================================================================
--- branches/3.1/MgDev/Web/src/HttpHandler/HttpEnumerateGroups.cpp 2018-03-03 13:25:04 UTC (rev 9345)
+++ branches/3.1/MgDev/Web/src/HttpHandler/HttpEnumerateGroups.cpp 2018-03-03 13:34:57 UTC (rev 9346)
@@ -59,6 +59,9 @@
// Run API command
Ptr<MgByteReader> byteReaderResult = mgSite->EnumerateGroups();
+ // Convert to requested response format, if necessary
+ ProcessFormatConversion(byteReaderResult);
+
hResult->SetResultObject(byteReaderResult, byteReaderResult->GetMimeType());
MG_HTTP_HANDLER_CATCH_AND_THROW_EX(L"MgHttpEnumerateGroups.Execute")
Modified: branches/3.1/MgDev/Web/src/HttpHandler/HttpEnumerateRepositories.cpp
===================================================================
--- branches/3.1/MgDev/Web/src/HttpHandler/HttpEnumerateRepositories.cpp 2018-03-03 13:25:04 UTC (rev 9345)
+++ branches/3.1/MgDev/Web/src/HttpHandler/HttpEnumerateRepositories.cpp 2018-03-03 13:34:57 UTC (rev 9346)
@@ -64,6 +64,9 @@
// Run API command
Ptr<MgByteReader> byteReaderResult = mgprService->EnumerateRepositories(m_type);
+ // Convert to requested response format, if necessary
+ ProcessFormatConversion(byteReaderResult);
+
hResult->SetResultObject(byteReaderResult, byteReaderResult->GetMimeType());
MG_HTTP_HANDLER_CATCH_AND_THROW_EX(L"MgHttpEnumerateRepositories.Execute")
Modified: branches/3.1/MgDev/Web/src/HttpHandler/HttpEnumerateUsers.cpp
===================================================================
--- branches/3.1/MgDev/Web/src/HttpHandler/HttpEnumerateUsers.cpp 2018-03-03 13:25:04 UTC (rev 9345)
+++ branches/3.1/MgDev/Web/src/HttpHandler/HttpEnumerateUsers.cpp 2018-03-03 13:34:57 UTC (rev 9346)
@@ -64,6 +64,9 @@
// Run API command
Ptr<MgByteReader> byteReaderResult = mgSite->EnumerateUsers( m_group );
+ // Convert to requested response format, if necessary
+ ProcessFormatConversion(byteReaderResult);
+
hResult->SetResultObject(byteReaderResult, byteReaderResult->GetMimeType());
MG_HTTP_HANDLER_CATCH_AND_THROW_EX(L"MgHttpEnumerateUsers.Execute")
Modified: branches/3.1/MgDev/Web/src/HttpHandler/HttpGetFeatureSetEnvelope.cpp
===================================================================
--- branches/3.1/MgDev/Web/src/HttpHandler/HttpGetFeatureSetEnvelope.cpp 2018-03-03 13:25:04 UTC (rev 9345)
+++ branches/3.1/MgDev/Web/src/HttpHandler/HttpGetFeatureSetEnvelope.cpp 2018-03-03 13:34:57 UTC (rev 9346)
@@ -66,7 +66,10 @@
Ptr<MgEnvelope> envelope = selection->GetExtents(featureService);
Ptr<MgByteReader> byteReader = envelope->ToXml();
- hResult->SetResultObject(byteReader, MgMimeType::Xml);
+ // Convert to requested response format, if necessary
+ ProcessFormatConversion(byteReader);
+ hResult->SetResultObject(byteReader, byteReader->GetMimeType());
+
MG_HTTP_HANDLER_CATCH_AND_THROW_EX(L"MgHttpGetFeatureSetEnvelope.Execute")
}
Modified: branches/3.1/MgDev/Web/src/HttpHandler/HttpGetRepositoryContent.cpp
===================================================================
--- branches/3.1/MgDev/Web/src/HttpHandler/HttpGetRepositoryContent.cpp 2018-03-03 13:25:04 UTC (rev 9345)
+++ branches/3.1/MgDev/Web/src/HttpHandler/HttpGetRepositoryContent.cpp 2018-03-03 13:34:57 UTC (rev 9346)
@@ -67,6 +67,9 @@
// Run API command
Ptr<MgByteReader> byteReaderResult = mgprService->GetRepositoryContent(&mgrIdentifier);
+ // Convert to requested response format, if necessary
+ ProcessFormatConversion(byteReaderResult);
+
hResult->SetResultObject(byteReaderResult, byteReaderResult->GetMimeType());
MG_HTTP_HANDLER_CATCH_AND_THROW_EX(L"MgHttpGetRepositoryContent.Execute")
Modified: branches/3.1/MgDev/Web/src/HttpHandler/HttpGetRepositoryHeader.cpp
===================================================================
--- branches/3.1/MgDev/Web/src/HttpHandler/HttpGetRepositoryHeader.cpp 2018-03-03 13:25:04 UTC (rev 9345)
+++ branches/3.1/MgDev/Web/src/HttpHandler/HttpGetRepositoryHeader.cpp 2018-03-03 13:34:57 UTC (rev 9346)
@@ -67,6 +67,9 @@
// Run API command
Ptr<MgByteReader> byteReaderResult = mgprService->GetRepositoryHeader(&mgrIdentifier);
+ // Convert to requested response format, if necessary
+ ProcessFormatConversion(byteReaderResult);
+
hResult->SetResultObject(byteReaderResult, byteReaderResult->GetMimeType());
MG_HTTP_HANDLER_CATCH_AND_THROW_EX(L"MgHttpGetRepositoryHeader.Execute")
Modified: branches/3.1/MgDev/Web/src/HttpHandler/HttpGetSiteInfo.cpp
===================================================================
--- branches/3.1/MgDev/Web/src/HttpHandler/HttpGetSiteInfo.cpp 2018-03-03 13:25:04 UTC (rev 9345)
+++ branches/3.1/MgDev/Web/src/HttpHandler/HttpGetSiteInfo.cpp 2018-03-03 13:34:57 UTC (rev 9346)
@@ -125,12 +125,18 @@
}
xml += EndXml();
- Ptr<MgHttpPrimitiveValue> value = new MgHttpPrimitiveValue(xml);
- if(!value)
- throw new MgOutOfMemoryException(L"", __LINE__, __WFILE__, NULL, L"", NULL);
+ std::string mbXml;
+ MgUtil::WideCharToMultiByte(xml, mbXml);
- hResult->SetResultObject(value, MgMimeType::Xml);
+ Ptr<MgByteSource> byteSource = new MgByteSource((BYTE_ARRAY_IN)mbXml.c_str(), (INT32)mbXml.length());
+ byteSource->SetMimeType(MgMimeType::Xml);
+ Ptr<MgByteReader> byteReader = byteSource->GetReader();
+ //Convert to alternate response format, if necessary
+ ProcessFormatConversion(byteReader);
+
+ hResult->SetResultObject(byteReader, byteReader->GetMimeType());
+
MG_HTTP_HANDLER_CATCH_AND_THROW_EX(L"MgHttpGetSiteInfo.Execute")
}
Modified: branches/3.1/MgDev/Web/src/HttpHandler/HttpGetSiteStatus.cpp
===================================================================
--- branches/3.1/MgDev/Web/src/HttpHandler/HttpGetSiteStatus.cpp 2018-03-03 13:25:04 UTC (rev 9345)
+++ branches/3.1/MgDev/Web/src/HttpHandler/HttpGetSiteStatus.cpp 2018-03-03 13:34:57 UTC (rev 9346)
@@ -105,12 +105,18 @@
xml += EndXml();
- Ptr<MgHttpPrimitiveValue> value = new MgHttpPrimitiveValue(xml);
- if(!value)
- throw new MgOutOfMemoryException(L"", __LINE__, __WFILE__, NULL, L"", NULL);
+ std::string mbXml;
+ MgUtil::WideCharToMultiByte(xml, mbXml);
- hResult->SetResultObject(value, MgMimeType::Xml);
+ Ptr<MgByteSource> byteSource = new MgByteSource((BYTE_ARRAY_IN)mbXml.c_str(), (INT32)mbXml.length());
+ byteSource->SetMimeType(MgMimeType::Xml);
+ Ptr<MgByteReader> byteReader = byteSource->GetReader();
+ //Convert to alternate response format, if necessary
+ ProcessFormatConversion(byteReader);
+
+ hResult->SetResultObject(byteReader, byteReader->GetMimeType());
+
MG_HTTP_HANDLER_CATCH_AND_THROW_EX(L"MgHttpGetSiteStatus.Execute")
}
Modified: branches/3.1/MgDev/Web/src/HttpHandler/HttpGetSiteVersion.cpp
===================================================================
--- branches/3.1/MgDev/Web/src/HttpHandler/HttpGetSiteVersion.cpp 2018-03-03 13:25:04 UTC (rev 9345)
+++ branches/3.1/MgDev/Web/src/HttpHandler/HttpGetSiteVersion.cpp 2018-03-03 13:34:57 UTC (rev 9346)
@@ -117,12 +117,18 @@
}
xml += EndXml();
- Ptr<MgHttpPrimitiveValue> value = new MgHttpPrimitiveValue(xml);
- if(!value)
- throw new MgOutOfMemoryException(L"", __LINE__, __WFILE__, NULL, L"", NULL);
+ std::string mbXml;
+ MgUtil::WideCharToMultiByte(xml, mbXml);
- hResult->SetResultObject(value, MgMimeType::Xml);
+ Ptr<MgByteSource> byteSource = new MgByteSource((BYTE_ARRAY_IN)mbXml.c_str(), (INT32)mbXml.length());
+ byteSource->SetMimeType(MgMimeType::Xml);
+ Ptr<MgByteReader> byteReader = byteSource->GetReader();
+ //Convert to alternate response format, if necessary
+ ProcessFormatConversion(byteReader);
+
+ hResult->SetResultObject(byteReader, byteReader->GetMimeType());
+
MG_HTTP_HANDLER_CATCH_AND_THROW_EX(L"MgHttpGetSiteVersion.Execute")
}
Modified: branches/3.1/MgDev/Web/src/HttpHandler/HttpGetTileProviders.cpp
===================================================================
--- branches/3.1/MgDev/Web/src/HttpHandler/HttpGetTileProviders.cpp 2018-03-03 13:25:04 UTC (rev 9345)
+++ branches/3.1/MgDev/Web/src/HttpHandler/HttpGetTileProviders.cpp 2018-03-03 13:34:57 UTC (rev 9346)
@@ -59,6 +59,9 @@
// Call the C++ API
Ptr<MgByteReader> providers = service->GetTileProviders();
+ // Convert to requested response format, if necessary
+ ProcessFormatConversion(providers);
+
// Set the result
hResult->SetResultObject(providers, providers->GetMimeType());
}
Modified: branches/3.1/MgDev/Web/src/IsapiAgent/IsapiResponseHandler.cpp
===================================================================
--- branches/3.1/MgDev/Web/src/IsapiAgent/IsapiResponseHandler.cpp 2018-03-03 13:25:04 UTC (rev 9345)
+++ branches/3.1/MgDev/Web/src/IsapiAgent/IsapiResponseHandler.cpp 2018-03-03 13:34:57 UTC (rev 9346)
@@ -249,12 +249,15 @@
void IsapiResponseHandler::WriteContext(const char *pszFormat, ...)
{
- char szBuffer[4096];
+ char* szBuffer;
+ int len;
va_list arg_ptr;
va_start(arg_ptr, pszFormat);
- vsprintf(szBuffer, pszFormat, arg_ptr);
+ len = _vscprintf(pszFormat, arg_ptr) + 1;
+ szBuffer = (char*)malloc(len * sizeof(char));
+ vsprintf_s(szBuffer, len, pszFormat, arg_ptr);
va_end(arg_ptr);
-
DWORD dwSize = (DWORD)strlen(szBuffer);
m_pECB->WriteClient(m_pECB->ConnID, szBuffer, &dwSize, 0);
+ free(szBuffer);
}
More information about the mapguide-commits
mailing list