unknown
2014-08-04 be3f6f9762dd15177477a7bcf6e11a2e27c70e57
bug fix
a.error @ geometry column not exist
b.error @ drop table
4 files modified
133 ■■■■ changed files
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/DMMSNddUpdateJob.java 9 ●●●●● patch | view | raw | blame | history
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2PostGISJob.java 81 ●●●●● patch | view | raw | blame | history
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/AbstractOracleToPostGISJobContext.java 34 ●●●● patch | view | raw | blame | history
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/OracleConvertPostGISJobContext.java 9 ●●●●● patch | view | raw | blame | history
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/DMMSNddUpdateJob.java
@@ -598,6 +598,15 @@
                            yy,mm,dd,t0,t1
                    )  ,
                    new String[]{});
            String strSQLDeletePast="delete ndd.currdata where yy<>'%s' and mm<> '%s' and dd<> '%s' and tt<>'%s%s' where sr=2";
            sqlExec(postsql,
                    String.format(strSQLDeletePast,
                            yy,mm,dd,t0,t1
                    )  ,
                    new String[]{});
            logger.info(String.format("next xml"));
        }
        logger.info(String.format("done"));
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleConvertDgn2PostGISJob.java
@@ -1,37 +1,21 @@
package com.ximple.eofms.jobs;
import java.io.File;
import java.io.FileFilter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FilenameFilter;
import java.io.IOException;
import java.io.PushbackReader;
import java.io.StringReader;
import java.math.BigDecimal;
import java.nio.BufferOverflowException;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.channels.FileChannel;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Types;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import com.ximple.eofms.jobs.context.AbstractOracleJobContext;
import com.ximple.eofms.jobs.context.postgis.FeatureDgnConvertPostGISJobContext;
import com.ximple.eofms.jobs.context.postgis.GeneralDgnConvertPostGISJobContext;
import com.ximple.eofms.jobs.context.postgis.IndexDgnConvertPostGISJobContext;
import com.ximple.eofms.jobs.context.postgis.OracleConvertPostGISJobContext;
import com.ximple.eofms.util.*;
import com.ximple.io.dgn7.*;
import com.ximple.util.PrintfFormat;
import oracle.jdbc.OracleConnection;
import oracle.jdbc.OracleResultSet;
import oracle.sql.ARRAY;
import oracle.sql.BLOB;
import org.apache.commons.collections.OrderedMap;
import org.apache.commons.collections.OrderedMapIterator;
import org.apache.commons.collections.map.LinkedMap;
import org.apache.commons.dbcp.DelegatingConnection;
import org.apache.commons.dbcp.PoolingConnection;
import org.apache.commons.dbcp.PoolingDataSource;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.geotools.data.DataStore;
@@ -48,24 +32,15 @@
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import oracle.jdbc.OracleConnection;
import oracle.jdbc.OracleResultSet;
import oracle.sql.ARRAY;
import oracle.sql.BLOB;
import com.ximple.eofms.jobs.context.AbstractOracleJobContext;
import com.ximple.eofms.jobs.context.postgis.FeatureDgnConvertPostGISJobContext;
import com.ximple.eofms.jobs.context.postgis.GeneralDgnConvertPostGISJobContext;
import com.ximple.eofms.jobs.context.postgis.IndexDgnConvertPostGISJobContext;
import com.ximple.eofms.jobs.context.postgis.OracleConvertPostGISJobContext;
import com.ximple.io.dgn7.ComplexElement;
import com.ximple.io.dgn7.Dgn7fileException;
import com.ximple.io.dgn7.Dgn7fileReader;
import com.ximple.io.dgn7.Element;
import com.ximple.io.dgn7.ElementType;
import com.ximple.io.dgn7.IElementHandler;
import com.ximple.io.dgn7.Lock;
import com.ximple.util.PrintfFormat;
import java.io.*;
import java.math.BigDecimal;
import java.nio.BufferOverflowException;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.channels.FileChannel;
import java.sql.*;
import java.util.*;
import java.util.Date;
public class OracleConvertDgn2PostGISJob extends AbstractOracleDatabaseJob {
    final static Log logger = LogFactory.getLog(OracleConvertDgn2PostGISJob.class);
@@ -379,7 +354,12 @@
            logger.warn(ex.getMessage(), ex);
            throw new JobExecutionException("IO error. " + ex.getMessage(), ex);
        } finally {
            try{
            disconnect();
            }catch(Exception doubleEx)
            {
            }
        }
        logger.warn(jobName + " end at " + new Date());
    }
@@ -1238,10 +1218,15 @@
    }
    protected void disconnect() {
        try{
        super.disconnect();
        if (targetDataStore != null) {
            targetDataStore.dispose();
            targetDataStore = null;
        }
        }catch (Exception ex)
        {
            logger.warn(ex.getMessage());
        }
    }
@@ -1308,7 +1293,13 @@
        } finally {
            JDBCUtils.close(rs);
            JDBCUtils.close(stmt);
            try{
            JDBCUtils.close(connection, Transaction.AUTO_COMMIT, null);
            }catch(Exception doubleException)
            {
            }
        }
        return targetSchema;
    }
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/AbstractOracleToPostGISJobContext.java
@@ -1,17 +1,9 @@
package com.ximple.eofms.jobs.context.postgis;
import java.io.IOException;
import java.math.BigDecimal;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.*;
import com.vividsolutions.jts.geom.LinearRing;
import com.vividsolutions.jts.geom.*;
import com.ximple.eofms.jobs.context.AbstractOracleJobContext;
import com.ximple.eofms.util.FeatureTypeBuilderUtil;
import com.ximple.eofms.util.postjts.JtsBinaryWriter;
import org.geotools.data.DataSourceException;
import org.geotools.data.DataStore;
import org.geotools.data.SchemaNotFoundException;
@@ -32,19 +24,10 @@
import org.opengis.filter.expression.Literal;
import org.opengis.referencing.crs.CoordinateReferenceSystem;
import com.vividsolutions.jts.geom.Geometry;
import com.vividsolutions.jts.geom.GeometryCollection;
import com.vividsolutions.jts.geom.LineString;
import com.vividsolutions.jts.geom.MultiLineString;
import com.vividsolutions.jts.geom.MultiPoint;
import com.vividsolutions.jts.geom.MultiPolygon;
import com.vividsolutions.jts.geom.Point;
import com.vividsolutions.jts.geom.Polygon;
import com.vividsolutions.jts.io.WKBWriter;
import com.vividsolutions.jts.io.WKTWriter;
import com.ximple.eofms.jobs.context.AbstractOracleJobContext;
import com.ximple.eofms.util.postjts.JtsBinaryWriter;
import java.io.IOException;
import java.math.BigDecimal;
import java.sql.*;
import java.util.*;
public abstract class AbstractOracleToPostGISJobContext extends AbstractOracleJobContext {
    private static Map<String, Class> GEOM_TYPE_MAP = new HashMap<String, Class>();
@@ -172,10 +155,11 @@
        } catch (SchemaNotFoundException e) {
            return false;
        } catch (IOException e) {
            /*
            if (e.getMessage().indexOf("Schema") != -1)
                getLogger().info(e.getMessage(), e);
            else
                getLogger().info(e.getMessage());
                getLogger().info(e.getMessage());       */
            return false;
        }
    }
xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/context/postgis/OracleConvertPostGISJobContext.java
@@ -339,13 +339,21 @@
    protected void createOrClearFeatureDataTable(SimpleFeatureType featureType) throws SchemaException {
        String featureName = featureType.getTypeName();
        Connection conn = null;
        boolean bAutocommit=false;
        if (isExistFeature(featureType)) {
            try {
                conn = getConnection();
                if (dropTableMode) {
                    bAutocommit=conn.getAutoCommit();
                    conn.setAutoCommit(false);
                    try{
                    dropGeometryColumn(conn, getTargetSchema(), featureName,
                                       (featureType).getGeometryDescriptor().getName().getLocalPart());
                    }catch(Exception ex){}//no column
                    try{// autocommit is enabled...@_@
                    dropTable(conn, getTargetSchema(), featureName);
                    }catch (Exception ex)
                    {}
                    ArrayList<String> schemaTexts = createNewSchemaTexts(conn, featureType);
                    for (String stmtText : schemaTexts) {
@@ -353,6 +361,7 @@
                        stmt.execute(stmtText);
                        JDBCUtils.close(stmt);
                    }
                    conn.setAutoCommit(bAutocommit);
                } else {
                    deleteTable(conn, getTargetSchema(), featureName);
                }