Uploaded image for project: 'Jira Data Center'
  1. Jira Data Center
  2. JRASERVER-62122

Export from JIRA Cloud to JIRA Server fails due to Jira Misc Workflow Extensions changes

    XMLWordPrintable

Details

    Description

      Atlassian Update – 5 June 2017

      Hi everyone,

      This is a known issue; however we don't anticipate that we will take steps to address it in the foreseeable future. When a workflow is configured with validators, conditions, or post-functions there can be cases of complex interdependencies. Simply removing these can change the behavior of the workflow itself in unpredictable ways.

      Additionally, the effort required to implement and maintain a solution for these incompatibilities is not justified by the severity of the issue.
      Thanks for your patience and understanding,

      Regards,
      Ignat Alexeyenko
      ialexeyenko@atlassian.com
      JIRA bugmaster

      NOTE: This bug report is for JIRA Server. Using JIRA Cloud? See the corresponding bug report.

      Summary

      Due to the removal of certain plugins within JIRA Cloud, such as the JIRA Misc Workflow Extensions, certain parts of the code have been moved into JIRA Cloud. This is detailed further in JIRA Miscellaneous Workflow Extensions (JMWE) removal from JIRA Cloud. However, some of the code changes have not made it into JIRA Server, so when migrating from Cloud to Server the workflows will be broken as they reference classes that do not exist.

      Steps to Reproduce

      1. Setup a workflow with JMWE 'Fields Required' validator or the 'set issue security from role' post-function.
      2. Export the instance to Server.
      3. Install JMWE plugin.
      4. Try to use the workflow.

      Expected Results

      The workflow proceeds as normal.

      Actual Results

      The workflow fails to transition with the below error:

      [c.a.jira.workflow.DefaultOSWorkflowConfigurator] Could not load class 'com.atlassian.jira.workflow.validator.FieldRequiredValidator'
      

      Or

      2016-10-23 15:54:58,073 ProjectImport: CreateIssues:thread-3 ERROR sysadmin 954x14300x1 v23cek 10.0.0.2 /secure/admin/ProjectImportSummary.jspa [c.a.jira.workflow.DefaultOSWorkflowConfigurator] Could not load class 'com.atlassian.jira.workflow.function.issue.SetIssueSecurityFromRoleFunction'
      

      Workaround

      The Add-on Vendor Innovalog has published a Knowledge Base article detailing the actions required when migrating from JIRA Cloud to JIRA Server when you were using JMWE for JIRA Cloud: https://innovalog.atlassian.net/wiki/x/CatOC

      While some of these steps and bits of information are published in the mentioned knowledge base article, here is the summary of what has to be done.

      This can be worked around by renaming the new class names back to the old class names. For example renaming com.atlassian.jira.workflow.validator.FieldRequiredValidator to com.innovalog.jmwe.plugins.validators.FieldRequiredValidator in the workflows will fix the problem.

      Notes

      Reviewing the XML backups before and after the change shows the problem is obvious - the class name has changed:

      After
      			<validator name="" type="class">
                    <arg name="contextHandling"></arg>
                    <arg name="hidFieldsList">customfield_13600</arg>
                    <arg name="errorMessage"></arg>
                    <arg name="class.name">com.atlassian.jira.workflow.validator.FieldRequiredValidator</arg>
                  </validator>
                  <validator name="" type="class">
                    <arg name="contextHandling"></arg>
                    <arg name="hidFieldsList">customfield_12719</arg>
                    <arg name="errorMessage">.</arg>
                    <arg name="class.name">com.atlassian.jira.workflow.validator.FieldRequiredValidator</arg>
                  </validator>
      
      Before
      			<validator name="" type="class">
      			
                    <arg name="fieldKey">customfield_13600</arg>
                    <arg name="errorMessage"></arg>
                    <arg name="class.name">com.innovalog.jmwe.plugins.validators.FieldRequiredValidator</arg>
                  </validator>
                  <validator name="" type="class">
      			
                    <arg name="fieldKey">customfield_12719</arg>
                    <arg name="errorMessage"></arg>
                    <arg name="class.name">com.innovalog.jmwe.plugins.validators.FieldRequiredValidator</arg>
                  </validator>
      

      The below contains a summary of changes:

      From To
      com.atlassian.jira.workflow.validator.FieldRequiredValidator com.innovalog.jmwe.plugins.validators.FieldRequiredValidator
      com.atlassian.jira.workflow.function.issue.SetIssueSecurityFromRoleFunction com.innovalog.jmwe.plugins.functions.SetIssueSecurityFromRoleFunction

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              dcurrie@atlassian.com Dave C
              Votes:
              4 Vote for this issue
              Watchers:
              20 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: