Index: src/main/java/org/jbpm/context/exe/VariableContainer.java =================================================================== --- src/main/java/org/jbpm/context/exe/VariableContainer.java (revision 6684) +++ src/main/java/org/jbpm/context/exe/VariableContainer.java (working copy) @@ -15,6 +15,7 @@ import org.jbpm.context.log.VariableDeleteLog; import org.jbpm.graph.exe.ProcessInstance; import org.jbpm.graph.exe.Token; +import org.jbpm.logging.db.DbLoggingService; public abstract class VariableContainer implements Serializable { @@ -198,12 +199,13 @@ variableInstance.removeReferences(); // is engine running in memory only or with logging enabled? JbpmContext jbpmContext = JbpmContext.getCurrentJbpmContext(); - if (jbpmContext == null || jbpmContext.getServices().getLoggingService() != null) { + if (jbpmContext == null || (jbpmContext.getServices().getLoggingService() !=null )) { // record variable deletion // do not actually delete variable instance because log refers to it getToken().addLog(new VariableDeleteLog(variableInstance)); } - else { + + if (jbpmContext != null && ((jbpmContext.getServices().getLoggingService() != null) && !(jbpmContext.getServices().getLoggingService() instanceof DbLoggingService))){ // delete variable instance here before all references to it are lost Session session = jbpmContext.getSession(); if (session != null) session.delete(variableInstance);