Author: mszefler
Date: Wed Aug 16 11:27:20 2006
New Revision: 431973

URL: http://svn.apache.org/viewvc?rev=431973&view=rev
Log:
Fix NPE in _processQuery

Modified:
    
incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/BpelDAOConnectionImpl.java

Modified: 
incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/BpelDAOConnectionImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/BpelDAOConnectionImpl.java?rev=431973&r1=431972&r2=431973&view=diff
==============================================================================
--- 
incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/BpelDAOConnectionImpl.java
 (original)
+++ 
incubator/ode/trunk/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/BpelDAOConnectionImpl.java
 Wed Aug 16 11:27:20 2006
@@ -77,6 +77,7 @@
     private static final Log __log = 
LogFactory.getLog(BpelDAOConnectionImpl.class);
 
     private Session _session;
+
     private SessionManager _sm;
 
     BpelDAOConnectionImpl(SessionManager sm) {
@@ -92,7 +93,7 @@
     }
 
     public MessageExchangeDAO getMessageExchange(String mexid) {
-        HMessageExchange mex = (HMessageExchange) 
_session.get(HMessageExchange.class,new Long(mexid));
+        HMessageExchange mex = (HMessageExchange) 
_session.get(HMessageExchange.class, new Long(mexid));
         return mex == null ? null : new MessageExchangeDaoImpl(_sm, mex);
     }
 
@@ -103,7 +104,7 @@
         process.setTypeNamespace(type.getNamespaceURI());
         process.setDeployDate(new Date());
         _session.save(process);
-        return new ProcessDaoImpl(_sm,process);
+        return new ProcessDaoImpl(_sm, process);
     }
 
     /**
@@ -115,10 +116,10 @@
             Criteria criteria = _session.createCriteria(HProcess.class);
             criteria.add(Expression.eq("processId", processId.toString()));
             // For the moment we are expecting only one result.
-            HProcess hprocess = (HProcess)criteria.uniqueResult();
+            HProcess hprocess = (HProcess) criteria.uniqueResult();
             return hprocess == null ? null : new ProcessDaoImpl(_sm, hprocess);
         } catch (HibernateException e) {
-            __log.error("DbError",e);
+            __log.error("DbError", e);
             throw e;
         }
 
@@ -131,24 +132,22 @@
      * @see org.apache.ode.bpel.dao.ProcessDAO#getInstance(java.lang.Long)
      */
     public ProcessInstanceDAO getInstance(Long instanceId) {
-        return _getInstance(_sm,_session, instanceId);
+        return _getInstance(_sm, _session, instanceId);
     }
 
-
     public ScopeDAO getScope(Long siidl) {
         return _getScope(_sm, _session, siidl);
     }
 
-
     public Collection<ProcessInstanceDAO> instanceQuery(InstanceFilter 
criteria) {
-        if(criteria.getLimit()==0) {
+        if (criteria.getLimit() == 0) {
             return Collections.emptyList();
         }
         List<ProcessInstanceDAO> daos = new ArrayList<ProcessInstanceDAO>();
 
-        Iterator<HProcessInstance> iter = _instanceQuery(_session,false, 
criteria);
-        while(iter.hasNext()) {
-            daos.add(new ProcessInstanceDaoImpl(_sm,iter.next()));
+        Iterator<HProcessInstance> iter = _instanceQuery(_session, false, 
criteria);
+        while (iter.hasNext()) {
+            daos.add(new ProcessInstanceDaoImpl(_sm, iter.next()));
         }
 
         return daos;
@@ -158,8 +157,8 @@
         List<ProcessDAO> daos = new ArrayList<ProcessDAO>();
 
         Iterator<HProcess> iter = _processQuery(_session, filter);
-        while(iter.hasNext()) {
-            daos.add(new ProcessDaoImpl(_sm,iter.next()));
+        while (iter.hasNext()) {
+            daos.add(new ProcessDaoImpl(_sm, iter.next()));
         }
 
         return daos;
@@ -171,119 +170,122 @@
 
         // Filtering using an example object
         HProcess exampleProcess = new HProcess();
-        // TODO separate localname and namespace to provide proper querying
-        if (filter.getNameFilter() != null) 
exampleProcess.setTypeName(filter.getNameFilter().replaceAll("\\*", "%"));
-        if (filter.getNamespaceFilter() != null) 
exampleProcess.setTypeNamespace(filter.getNamespaceFilter().replaceAll("\\*", 
"%"));
-
         
crit.add(Example.create(exampleProcess).ignoreCase().enableLike().excludeZeroes());
         // TODO Implement process status filtering when status will exist
 
-        // Specific filter for deployment date.
-        if (filter.getDeployedDateFilter() != null) {
-            for (String ddf : filter.getDeployedDateFilter()) {
-                Date deployDate = null;
-                try {
-                    deployDate = 
ISO8601DateParser.parse(Filter.getDateWithoutOp(ddf));
-                } catch (ParseException e) {
-                    // Never occurs, the deploy date format is pre-validated 
by the filter
-                }
-                if (ddf.startsWith("=")) {
-                    crit.add(Restrictions.eq("deployDate", deployDate));
-                } else if (ddf.startsWith("<=")) {
-                    crit.add(Restrictions.le("deployDate", deployDate));
-                } else if (ddf.startsWith(">=")) {
-                    crit.add(Restrictions.ge("deployDate", deployDate));
-                } else if (ddf.startsWith("<")) {
-                    crit.add(Restrictions.lt("deployDate", deployDate));
-                } else if (ddf.startsWith(">")) {
-                    crit.add(Restrictions.gt("deployDate", deployDate));
+        // TODO separate localname and namespace to provide proper querying
+        if (filter != null) {
+            if (filter.getNameFilter() != null)
+                
exampleProcess.setTypeName(filter.getNameFilter().replaceAll("\\*", "%"));
+            if (filter.getNamespaceFilter() != null)
+                
exampleProcess.setTypeNamespace(filter.getNamespaceFilter().replaceAll("\\*", 
"%"));
+
+            // Specific filter for deployment date.
+            if (filter.getDeployedDateFilter() != null) {
+                for (String ddf : filter.getDeployedDateFilter()) {
+                    Date deployDate = null;
+                    try {
+                        deployDate = 
ISO8601DateParser.parse(Filter.getDateWithoutOp(ddf));
+                    } catch (ParseException e) {
+                        // Never occurs, the deploy date format is 
pre-validated
+                        // by the filter
+                    }
+                    if (ddf.startsWith("=")) {
+                        crit.add(Restrictions.eq("deployDate", deployDate));
+                    } else if (ddf.startsWith("<=")) {
+                        crit.add(Restrictions.le("deployDate", deployDate));
+                    } else if (ddf.startsWith(">=")) {
+                        crit.add(Restrictions.ge("deployDate", deployDate));
+                    } else if (ddf.startsWith("<")) {
+                        crit.add(Restrictions.lt("deployDate", deployDate));
+                    } else if (ddf.startsWith(">")) {
+                        crit.add(Restrictions.gt("deployDate", deployDate));
+                    }
                 }
             }
-        }
-
-        // Ordering
-        if (filter.getOrders() != null) {
-            for (String key : filter.getOrders()) {
-                boolean ascending = true;
-                String orderKey = key;
-                if (key.startsWith("+") || key.startsWith("-")) {
-                    orderKey = key.substring(1, key.length());
-                    if (key.startsWith("-")) ascending = false;
-                }
 
-                if ("name".equals(orderKey)) {
-                    if (ascending) 
crit.addOrder(Property.forName("processName").asc());
-                    else crit.addOrder(Property.forName("processName").desc());
-                } else if ("namespace".equals(orderKey)) {
-                    if (ascending) 
crit.addOrder(Property.forName("processNamespace").asc());
-                    else 
crit.addOrder(Property.forName("processNamespace").desc());
-                } else if ("version".equals(orderKey)) {
-                    if (ascending) 
crit.addOrder(Property.forName("version").asc());
-                    else crit.addOrder(Property.forName("version").desc());
-                    //    TODO Implement when process status will be 
implemented
-                    //    } else if ("status".equals(orderKey)) {
-                } else if ("deployed".equals(orderKey)) {
-                    if (ascending) 
crit.addOrder(Property.forName("deployDate").asc());
-                    else crit.addOrder(Property.forName("deployDate").desc());
+            // Ordering
+            if (filter.getOrders() != null) {
+                for (String key : filter.getOrders()) {
+                    boolean ascending = true;
+                    String orderKey = key;
+                    if (key.startsWith("+") || key.startsWith("-")) {
+                        orderKey = key.substring(1, key.length());
+                        if (key.startsWith("-"))
+                            ascending = false;
+                    }
+
+                    if ("name".equals(orderKey)) {
+                        if (ascending)
+                            
crit.addOrder(Property.forName("processName").asc());
+                        else
+                            
crit.addOrder(Property.forName("processName").desc());
+                    } else if ("namespace".equals(orderKey)) {
+                        if (ascending)
+                            
crit.addOrder(Property.forName("processNamespace").asc());
+                        else
+                            
crit.addOrder(Property.forName("processNamespace").desc());
+                    } else if ("version".equals(orderKey)) {
+                        if (ascending)
+                            crit.addOrder(Property.forName("version").asc());
+                        else
+                            crit.addOrder(Property.forName("version").desc());
+                        // TODO Implement when process status will be
+                        // implemented
+                        // } else if ("status".equals(orderKey)) {
+                    } else if ("deployed".equals(orderKey)) {
+                        if (ascending)
+                            
crit.addOrder(Property.forName("deployDate").asc());
+                        else
+                            
crit.addOrder(Property.forName("deployDate").desc());
+                    }
                 }
             }
         }
-
         return crit.list().iterator();
     }
 
     @SuppressWarnings("unchecked")
     static Iterator<HProcessInstance> _instanceQuery(Session session, boolean 
countOnly, InstanceFilter filter) {
         Criteria crit = session.createCriteria(HProcessInstance.class);
-        CriteriaBuilder cb=new CriteriaBuilder();
+        CriteriaBuilder cb = new CriteriaBuilder();
         cb.buildCriteria(crit, filter);
         return crit.list().iterator();
     }
 
-
     static ProcessInstanceDAO _getInstance(SessionManager sm, Session session, 
Long iid) {
         HProcessInstance instance = (HProcessInstance) 
session.get(HProcessInstance.class, iid);
-        return instance != null
-                ? new ProcessInstanceDaoImpl(sm, instance)
-                : null;
+        return instance != null ? new ProcessInstanceDaoImpl(sm, instance) : 
null;
     }
 
-
     static ScopeDAO _getScope(SessionManager sm, Session session, Long siid) {
         HScope scope = (HScope) session.get(HScope.class, siid);
-        return scope != null
-                ? new ScopeDaoImpl(sm, scope)
-                : null;
+        return scope != null ? new ScopeDaoImpl(sm, scope) : null;
     }
 
-
-    public void insertBpelEvent(BpelEvent event,
-                                ProcessDAO process,
-                                ProcessInstanceDAO instance)
-    {
+    public void insertBpelEvent(BpelEvent event, ProcessDAO process, 
ProcessInstanceDAO instance) {
         _insertBpelEvent(_sm.getSession(), event, process, instance);
     }
 
     /**
      * Helper method for inserting bpel events into the database.
+     * 
      * @param sess
      * @param event
      * @param process
      * @param instance
      */
-    static void _insertBpelEvent(Session sess, BpelEvent event,  ProcessDAO 
process,
-                                 ProcessInstanceDAO instance)
-    {
+    static void _insertBpelEvent(Session sess, BpelEvent event, ProcessDAO 
process, ProcessInstanceDAO instance) {
         HBpelEvent hevent = new HBpelEvent();
         hevent.setTstamp(new Timestamp(System.currentTimeMillis()));
         hevent.setType(BpelEvent.eventName(event));
         hevent.setDetail(event.toString());
         if (process != null)
-            hevent.setProcess((HProcess) 
((ProcessDaoImpl)process).getHibernateObj());
+            hevent.setProcess((HProcess) ((ProcessDaoImpl) 
process).getHibernateObj());
         if (instance != null)
-            hevent.setInstance((HProcessInstance) 
((ProcessInstanceDaoImpl)instance).getHibernateObj());
+            hevent.setInstance((HProcessInstance) ((ProcessInstanceDaoImpl) 
instance).getHibernateObj());
         if (event instanceof ScopeEvent)
-            hevent.setScopeId(((ScopeEvent)event).getScopeId());
+            hevent.setScopeId(((ScopeEvent) event).getScopeId());
         try {
             ByteArrayOutputStream bos = new ByteArrayOutputStream();
             ObjectOutputStream oos = new ObjectOutputStream(bos);
@@ -299,39 +301,39 @@
         sess.save(hevent);
     }
 
-    @SuppressWarnings({"unchecked","deprecation"})
+    @SuppressWarnings( { "unchecked", "deprecation" })
     public List<Date> bpelEventTimelineQuery(InstanceFilter ifilter, 
BpelEventFilter efilter) {
         CriteriaBuilder cb = new CriteriaBuilder();
         Criteria crit = _session.createCriteria(HBpelEvent.class);
         if (ifilter != null)
             cb.buildCriteria(crit, efilter);
-        if (ifilter !=  null)
-            cb.buildCriteria(crit.createCriteria("instance"),ifilter);
+        if (ifilter != null)
+            cb.buildCriteria(crit.createCriteria("instance"), ifilter);
         crit.setFetchMode("tstamp", FetchMode.EAGER);
         crit.setProjection(Projections.property("tstamp"));
         return crit.list();
     }
 
-
     @SuppressWarnings("unchecked")
     public List<BpelEvent> bpelEventQuery(InstanceFilter ifilter, 
BpelEventFilter efilter) {
         CriteriaBuilder cb = new CriteriaBuilder();
         Criteria crit = _session.createCriteria(HBpelEvent.class);
         if (efilter != null)
             cb.buildCriteria(crit, efilter);
-        if (ifilter !=  null)
-            cb.buildCriteria(crit.createCriteria("instance"),ifilter);
+        if (ifilter != null)
+            cb.buildCriteria(crit.createCriteria("instance"), ifilter);
         List<HBpelEvent> hevents = crit.list();
         List<BpelEvent> ret = new ArrayList<BpelEvent>(hevents.size());
         try {
-            CollectionsX.transform(ret,hevents,new 
UnaryFunctionEx<HBpelEvent,BpelEvent>() {
-                public BpelEvent apply(HBpelEvent x) throws Exception{
-                    return (BpelEvent) 
SerializableUtils.toObject(x.getData().getBinary(),BpelEvent.class.getClassLoader());
+            CollectionsX.transform(ret, hevents, new 
UnaryFunctionEx<HBpelEvent, BpelEvent>() {
+                public BpelEvent apply(HBpelEvent x) throws Exception {
+                    return (BpelEvent) 
SerializableUtils.toObject(x.getData().getBinary(), BpelEvent.class
+                            .getClassLoader());
                 }
 
             });
-        }catch (Exception ex) {
-            __log.fatal("Internal error: unable to transform HBpelEvent",ex);
+        } catch (Exception ex) {
+            __log.fatal("Internal error: unable to transform HBpelEvent", ex);
             throw new RuntimeException(ex);
         }
         return ret;
@@ -347,11 +349,11 @@
 
         HibernateInstancesQueryCompiler compiler = new 
HibernateInstancesQueryCompiler();
 
-        CommandEvaluator<List, Session> eval = 
compiler.compile((Query)rootNode);
-        List<HProcessInstance> instancesList = 
(List<HProcessInstance>)eval.evaluate(_session);
+        CommandEvaluator<List, Session> eval = compiler.compile((Query) 
rootNode);
+        List<HProcessInstance> instancesList = (List<HProcessInstance>) 
eval.evaluate(_session);
 
         Collection<ProcessInstanceDAO> result = new 
ArrayList<ProcessInstanceDAO>(instancesList.size());
-        for(HProcessInstance instance : instancesList) {
+        for (HProcessInstance instance : instancesList) {
             result.add(getInstance(instance.getId()));
         }
         return result;


Reply via email to