buildframework/helium/sf/java/metadata/src/com/nokia/helium/metadata/ORMFMPPLoader.java
branchhelium-9.0
changeset 618 df88fead2976
parent 587 85df38eb4012
--- a/buildframework/helium/sf/java/metadata/src/com/nokia/helium/metadata/ORMFMPPLoader.java	Tue Apr 27 08:33:08 2010 +0300
+++ b/buildframework/helium/sf/java/metadata/src/com/nokia/helium/metadata/ORMFMPPLoader.java	Thu Jul 22 17:08:43 2010 +0300
@@ -31,8 +31,6 @@
 import freemarker.template.SimpleNumber;
 import freemarker.template.TemplateModelIterator;
 import com.nokia.helium.jpa.ORMReader;
-import com.nokia.helium.jpa.ORMUtil;
-
 import org.apache.log4j.Logger;
 import freemarker.ext.beans.BeanModel;
 import freemarker.ext.beans.BeansWrapper;
@@ -113,10 +111,10 @@
         @Override
         public void notifyProgressEvent(Engine engine, int event, File src,
                 int pMode, Throwable error, Object param) throws Exception {
-            if (event == ProgressListener.EVENT_END_PROCESSING_SESSION) {
-                log.debug("notifyProgressEvent - finalizeORM");
-                ORMUtil.finalizeORM(dbPath);
-            }  
+            //if (event == ProgressListener.EVENT_END_PROCESSING_SESSION) {
+            //    log.debug("notifyProgressEvent - finalizeORM");
+            //    ORMUtil.finalizeORM(dbPath);
+            //}  
          }
     }
 
@@ -144,16 +142,21 @@
             //log.debug("QueryTemplateModel: query" + query);
             if (queryMode.equals("jpasingle")) {
                 //log.debug("query executing with single result mode");
-                resultObject = getModel((new ORMReader(dbPath)).executeSingleResult(query, returnType));
+                resultObject = getModel(dbPath, query, returnType);
+                
             } else {
                 //log.debug("query executing with multiple result mode");
-                resultObject = new ORMQueryModel(new ORMReader(dbPath), query, queryMode, returnType); 
+                resultObject = new ORMQueryModel(dbPath, query, queryMode, returnType); 
             }
             return resultObject;
         }
         
-        private TemplateModel getModel(Object result) {
-            return new ORMSequenceModel(result);
+        private TemplateModel getModel(String dbPath, String query, 
+                String returnType) {
+            ORMReader reader = new ORMReader(dbPath);
+            ORMSequenceModel model = new ORMSequenceModel(reader.executeSingleResult(query, returnType));
+            reader.close();
+            return model;
         }
 
         public boolean isEmpty() {
@@ -199,8 +202,8 @@
         private String query;
         private String returnType;
 
-        public ORMQueryModel (ORMReader reader, String queryString, String type, String retType) {
-            ormReader = reader;
+        public ORMQueryModel (String dbPath, String queryString, String type, String retType) {
+            ormReader = new ORMReader(dbPath);
             queryType = type;
             query = queryString;
             returnType = retType;
@@ -275,6 +278,7 @@
                     }
                     if (rowList == null || rowList.size() == 0) {
                         finished = true;
+                        ormReader.close();
                     }
                 }
             }
@@ -286,6 +290,5 @@
         public ORMObjectModel(Object obj) {
             super(obj, new BeansWrapper());
         }
-        
     }
 }
\ No newline at end of file