# HG changeset patch # User raimund renkert # Date 1311177098 -7200 # Node ID 5350621a0294936dd5d7d9859bd539666aba3795 # Parent 21610527185649c49d156b14ca5dba88551fce48 Verify the SDE databse jointable attribute. diff -r 216105271856 -r 5350621a0294 ChangeLog --- a/ChangeLog Wed Jul 20 16:27:49 2011 +0200 +++ b/ChangeLog Wed Jul 20 17:51:38 2011 +0200 @@ -1,3 +1,10 @@ +2011-07-20 Raimund Renkert + + * src/java/de/intevation/mxd/writer/MapScriptWriter.java: + If a SDE datasource and a join table is used, check if the join + table contains a "." to verify there could be a database schema. + If no "." is found, abort writing the mapfile. + 2011-07-20 Stephan Holl Modified and beautified the documentation: diff -r 216105271856 -r 5350621a0294 src/java/de/intevation/mxd/writer/MapScriptWriter.java --- a/src/java/de/intevation/mxd/writer/MapScriptWriter.java Wed Jul 20 16:27:49 2011 +0200 +++ b/src/java/de/intevation/mxd/writer/MapScriptWriter.java Wed Jul 20 17:51:38 2011 +0200 @@ -111,13 +111,15 @@ //Write the map attributes. writeMap(); //Write the layers. - writeLayer(); + boolean ret = writeLayer(); //Save the map. - mapObj cloneMap = map.cloneMap(); - - cloneMap.save(mapFilename); - logger.info("Mapfile created: " + mapFilename); - return true; + if (ret) { + mapObj cloneMap = map.cloneMap(); + cloneMap.save(mapFilename); + logger.info("Mapfile created: " + mapFilename); + return true; + } + return false; } /** @@ -180,7 +182,7 @@ /** * Create layer objects and set the attributes. */ - private void writeLayer() { + private boolean writeLayer() { logger.debug("writeLayer()"); Element mapNode = (Element)XMLUtils.xpath( root, @@ -278,6 +280,13 @@ layer.setProcessing("CLOSE_CONNECTION=defer"); layer.setProcessing("ATTRIBUTE_QUALIFIED=TRUE"); if(layerElement.hasAttribute("join_table")) { + String join = layerElement.getAttribute("join_table"); + if (join.indexOf(".") <= 0) { + logger.warn ("Incomplete join table in layer " + + layerElement.getAttribute("name") + + ". Aborting."); + return false; + } layer.setProcessing( "JOINTABLE=" + layerElement.getAttribute("join_table")); @@ -318,6 +327,7 @@ //Write classes. writeClass(layer, layerElement); } + return true; } /**