MNT-17022 Errors in 5.1.1 when displaying any document linked to jBPM workflow

The getWorkflowsForContent method has been modified to catch the exception and return
one less item in the list of workflows to be processed when the workflow is jBPM (or
any other unregistered workflow - including future ones). It also logs a debug.
For example:

Workflow Component for engine id 'jbpm' is not registered. Ignored workflow on
workspace://SpacesStore/a0afc2d8-01e4-4fa5-a3b0-08d91d1fda03

Having examined the the rest of WorkflowServiceImpl (and spoken to the original
author), I don't believe there are other points in the code that we need worry about
for the UI perspective, even though there are 22 other methods directly calling the
method that throws the exception.

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/DEV/5.2.N/root@135753 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Alan Davis
2017-03-10 16:16:14 +00:00
parent 73a45bba41
commit b4b391199d

View File

@@ -1,28 +1,28 @@
/*
* #%L
* Alfresco Repository
* %%
* Copyright (C) 2005 - 2016 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of
* the paid license agreement will prevail. Otherwise, the software is
* provided under the following open source license terms:
*
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
* #L%
*/
/*
* #%L
* Alfresco Repository
* %%
* Copyright (C) 2005 - 2016 Alfresco Software Limited
* %%
* This file is part of the Alfresco software.
* If the software was purchased under a paid Alfresco license, the terms of
* the paid license agreement will prevail. Otherwise, the software is
* provided under the following open source license terms:
*
* Alfresco is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Alfresco is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
* #L%
*/
package org.alfresco.repo.workflow;
@@ -1291,12 +1291,20 @@ public class WorkflowServiceImpl implements WorkflowService
List<WorkflowInstance> workflowInstances = new ArrayList<WorkflowInstance>(workflowIds.size());
for (String workflowId : workflowIds)
{
String engineId = BPMEngineRegistry.getEngineId(workflowId);
WorkflowComponent component = getWorkflowComponent(engineId);
WorkflowInstance instance = component.getWorkflowById(workflowId);
if (instance != null && instance.isActive() == active)
try
{
workflowInstances.add(instance);
String engineId = BPMEngineRegistry.getEngineId(workflowId);
WorkflowComponent component = getWorkflowComponent(engineId);
WorkflowInstance instance = component.getWorkflowById(workflowId);
if (instance != null && instance.isActive() == active)
{
workflowInstances.add(instance);
}
}
catch (WorkflowException componentForEngineNotRegistered)
{
String message = componentForEngineNotRegistered.getMessage();
logger.debug(message + ". Ignored workflow on " + packageItem);
}
}
return workflowInstances;