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;