From aa92e40672e9ea2a6b55f528d5b986314d652a40 Mon Sep 17 00:00:00 2001
From: ?? ? <ulysseskao@ximple.com.tw>
Date: Mon, 16 Jun 2008 09:55:37 +0800
Subject: [PATCH] update for EOFM-122

---
 xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleElementLogger.java |   23 ++++++++++++++++++++++-
 1 files changed, 22 insertions(+), 1 deletions(-)

diff --git a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleElementLogger.java b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleElementLogger.java
index 328ef87..0a43c1f 100644
--- a/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleElementLogger.java
+++ b/xdgnjobs/ximple-spatialjob/src/main/java/com/ximple/eofms/jobs/OracleElementLogger.java
@@ -11,6 +11,7 @@
 import java.sql.SQLException;
 import java.sql.Statement;
 import java.sql.Types;
+import java.util.ArrayList;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -45,6 +46,7 @@
     private FileOutputStream fos = null;
     private FileChannel fch = null;
     private int logCount = 0;
+    private ArrayList<byte[]> dgnFileHeader = null;
 
     public OracleElementLogger(Connection connection)
     {
@@ -226,6 +228,17 @@
             logger.warn("connection is null");
             return;
         }
+
+        if (dgnFileHeader != null)
+        {
+            for (byte[] raw : dgnFileHeader)
+            {
+                putElementIntoStream(raw);
+            }
+            return;
+        }
+
+        dgnFileHeader = new ArrayList<byte[]>();
         String fetchSrcStmtFmt = "SELECT IGDSELM FROM \"%s\".\"%s\" ORDER BY ROWID";
         PrintfFormat spf = new PrintfFormat(fetchSrcStmtFmt);
         String fetchSrcStmt = spf.sprintf(new Object[]{currentSchema, TAB_IGDSSEED});
@@ -249,9 +262,12 @@
 
             if (raw != null)
             {
+                dgnFileHeader.add(raw);
                 putElementIntoStream(raw);
             }
         }
+        rsSrc.close();
+        stmtSrc.close();
     }
 
     private void putElementIntoStream(byte[] raw) throws IOException
@@ -268,7 +284,7 @@
         byte[] chunk = new byte[optimalSize];
         InputStream is = blob.getBinaryStream(0);
         ByteBuffer buffer = null;    // ByteBuffer.allocate(optimalSize);
-        int len = 0;
+        int len;
 
         try
         {
@@ -312,4 +328,9 @@
             fch = null;
         }
     }
+
+    public boolean isSchemaChanged()
+    {
+        return schemaChanged;
+    }
 }

--
Gitblit v0.0.0-SNAPSHOT