Details
-
Bug
-
Resolution: Unresolved
-
Low
-
None
-
7.3.1
-
7.03
-
28
-
Severity 3 - Minor
-
5
-
Description
Summary
When a Version custom field is defined in a project and an issue history contains changes of that custom field the project import will fail for this project.
Steps to Reproduce
- Create a new JIRA project (NP) with one version (for example, 1.0.0).
- Create a new Version Picker custom field and associate the field to the project's screen(s).
- Create a new ticket in the project without assigning any value to the custom field.
- Edit the ticket by assigning a new value (1.0.0) to the Veriosn Picket custom field.
- Verify in issue history there is following entry :
- Create an XML backup of instance.
- Delete the ticket and the version defined in the project NP.
- Try to import the project NP with Project Import.
Expected Results
The project NP get successfully imported.
Actual Results
Error during the import process :
And the below exception is thrown in the JIRA log file:
2017-06-21 16:06:06,289 JiraTaskExectionThread-27 ERROR admin 966x3973x1 lu8l8t 0:0:0:0:0:0:0:1 /secure/admin/ProjectImportSummary.jspa [c.a.j.imports.project.DefaultProjectImportService] An unexpected error occurred while importing the project with key: NP java.lang.NumberFormatException: For input string: "[10013]" at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2043) at sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110) at java.lang.Double.parseDouble(Double.java:538) at java.lang.Double.<init>(Double.java:608) at com.atlassian.jira.imports.project.customfield.VersionCustomFieldImporter.getNonDecimalValue(VersionCustomFieldImporter.java:36) at com.atlassian.jira.imports.project.customfield.VersionCustomFieldImporter.getMappedImportValue(VersionCustomFieldImporter.java:26) at com.atlassian.jira.imports.project.transformer.ChangeItemTransformerImpl.mapCustomFieldIdList(ChangeItemTransformerImpl.java:73) at com.atlassian.jira.imports.project.transformer.ChangeItemTransformerImpl.transform(ChangeItemTransformerImpl.java:55) at com.atlassian.jira.imports.project.handler.ChangeItemPersisterHandler.handleEntity(ChangeItemPersisterHandler.java:54) at com.atlassian.jira.imports.project.handler.ChainedOfBizSaxHandler.endTopLevelElement(ChainedOfBizSaxHandler.java:221) at com.atlassian.jira.imports.project.handler.ChainedOfBizSaxHandler.endElement(ChainedOfBizSaxHandler.java:169) at com.atlassian.jira.imports.project.handler.ChainedOfBizSaxHandler.endElement(ChainedOfBizSaxHandler.java:136) at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source) at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source) at com.atlassian.security.xml.RestrictedXMLReader.parse(RestrictedXMLReader.java:103) at com.atlassian.jira.imports.xml.DefaultBackupXmlParser$XmlParser.parseXml(DefaultBackupXmlParser.java:115) at com.atlassian.jira.imports.xml.DefaultBackupXmlParser.parse(DefaultBackupXmlParser.java:64) at com.atlassian.jira.imports.xml.DefaultBackupXmlParser.parseXml(DefaultBackupXmlParser.java:52) at com.atlassian.jira.imports.xml.DefaultBackupXmlParser.parseOfBizBackupXml(DefaultBackupXmlParser.java:41) at com.atlassian.jira.imports.project.DefaultProjectImportManager.importChangeItemEntities(DefaultProjectImportManager.java:1117) at com.atlassian.jira.imports.project.DefaultProjectImportManager.doImport(DefaultProjectImportManager.java:663) at com.atlassian.jira.bc.imports.project.DefaultProjectImportService.doImport(DefaultProjectImportService.java:416) at com.atlassian.jira.web.action.admin.importer.project.ProjectImportSummary$ProjectImportCallable.call(ProjectImportSummary.java:285) at com.atlassian.jira.web.action.admin.importer.project.ProjectImportSummary$ProjectImportCallable.call(ProjectImportSummary.java:236) at com.atlassian.jira.task.TaskManagerImpl$TaskCallableDecorator.call(TaskManagerImpl.java:458) at com.atlassian.jira.task.TaskManagerImpl$TaskCallableDecorator.call(TaskManagerImpl.java:426) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at com.atlassian.jira.task.ForkedThreadExecutor$ForkedRunnableDecorator.run(ForkedThreadExecutor.java:216) at java.lang.Thread.run(Thread.java:745)
Notes
In some cases where the export/import is run via ProjectConfigurator, we see this exception:
2019-03-06 08:03:09,606 JiraTaskExectionThread-154 ERROR usera 481x12515x1 zoxr1n 10.51.121.114 /secure/complete-project-import.jspa [c.a.j.imports.xml.DefaultBackupXmlParser] Unexpected import failure java.lang.NullPointerException at com.atlassian.jira.imports.project.customfield.VersionCustomFieldImporter.getMappedImportValue(VersionCustomFieldImporter.java:29) at com.atlassian.jira.imports.project.transformer.ChangeItemTransformerImpl.mapCustomFieldIdList(ChangeItemTransformerImpl.java:73) at com.atlassian.jira.imports.project.transformer.ChangeItemTransformerImpl.transform(ChangeItemTransformerImpl.java:55) at com.atlassian.jira.imports.project.handler.ChangeItemPersisterHandler.handleEntity(ChangeItemPersisterHandler.java:54) at com.atlassian.jira.imports.project.handler.ChainedOfBizSaxHandler.endTopLevelElement(ChainedOfBizSaxHandler.java:221) at com.atlassian.jira.imports.project.handler.ChainedOfBizSaxHandler.endElement(ChainedOfBizSaxHandler.java:169) at com.atlassian.jira.imports.project.handler.ChainedOfBizSaxHandler.endElement(ChainedOfBizSaxHandler.java:136) at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source) at org.apache.xerces.parsers.AbstractXMLDocumentParser.emptyElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source) at com.atlassian.security.xml.RestrictedXMLReader.parse(RestrictedXMLReader.java:103) at com.atlassian.jira.imports.xml.DefaultBackupXmlParser$XmlParser.parseXml(DefaultBackupXmlParser.java:115) at com.atlassian.jira.imports.xml.DefaultBackupXmlParser.parse(DefaultBackupXmlParser.java:64) at com.atlassian.jira.imports.xml.DefaultBackupXmlParser.parseXml(DefaultBackupXmlParser.java:52) at com.atlassian.jira.imports.xml.DefaultBackupXmlParser.parseOfBizBackupXml(DefaultBackupXmlParser.java:41) at com.atlassian.jira.imports.project.DefaultProjectImportManager.importChangeItemEntities(DefaultProjectImportManager.java:1117) at com.atlassian.jira.imports.project.DefaultProjectImportManager.doImport(DefaultProjectImportManager.java:663) at com.atlassian.jira.bc.imports.project.DefaultProjectImportService.doImport(DefaultProjectImportService.java:416) at com.awnaba.projectconfigurator.transporter.engine.JiraDataImporter.jiraImportData(JiraDataImporter.java:292) at com.awnaba.projectconfigurator.transporter.engine.JiraDataImporter.importData(JiraDataImporter.java:155) at com.awnaba.projectconfigurator.transporter.engine.JiraDataImporter$DataImportCallable.call(JiraDataImporter.java:450) at com.awnaba.projectconfigurator.transporter.engine.JiraDataImporter.importDataSynchronously(JiraDataImporter.java:420) at com.awnaba.projectconfigurator.operationsapi.impl.ProjectCompleteImporterImpl.executeNextPhase(ProjectCompleteImporterImpl.java:330) at com.awnaba.projectconfigurator.operationsapi.impl.ProjectCompleteImporterImpl.doCompleteImport(ProjectCompleteImporterImpl.java:223) at com.awnaba.projectconfigurator.operationsapi.impl.ProjectCompleteImporterImpl.access$0(ProjectCompleteImporterImpl.java:216) at com.awnaba.projectconfigurator.operationsapi.impl.ProjectCompleteImporterImpl$CompleteImporterTask.call(ProjectCompleteImporterImpl.java:154) at com.awnaba.projectconfigurator.operationsapi.impl.ProjectCompleteImporterImpl$CompleteImporterTask.call(ProjectCompleteImporterImpl.java:1) at com.awnaba.projectconfigurator.longrunningtasks.TaskHelperImpl$WrappingTask.call(TaskHelperImpl.java:108) at com.awnaba.projectconfigurator.longrunningtasks.TaskHelperImpl$WrappingTask.call(TaskHelperImpl.java:1) at com.atlassian.jira.task.TaskManagerImpl$TaskCallableDecorator.call(TaskManagerImpl.java:458) at com.atlassian.jira.task.TaskManagerImpl$TaskCallableDecorator.call(TaskManagerImpl.java:426) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at com.atlassian.jira.task.ForkedThreadExecutor$ForkedRunnableDecorator.run(ForkedThreadExecutor.java:216) at java.lang.Thread.run(Thread.java:745)
Workaround
Modify the relevant <ChangeItem> entity in XML backup file by changing the value of newvalue and/or oldvalue attribute from [*****] to ***** (Remove the brackets to make it a valid number).
It is also possible to fix the data at the source by deleting all the history items where the version custom field was mapped to a version that doesn't exist anymore.
Proceed with caution, please backup your data first, Atlassian Support is not responsible for data loss from the result of these queries
# replace PROJ with actual project key DELETE FROM changeitem WHERE id IN (SELECT ci.id FROM changeitem ci INNER JOIN changegroup cg ON ci.groupid=cg.id INNER JOIN jiraissue ji ON cg.issueid=ji.id INNER JOIN project ON ji.project=project.id WHERE (field LIKE '%Version%' OR field IN (SELECT cfname FROM customfield WHERE customfieldtypekey LIKE '%version%')) AND (ci.oldvalue::integer NOT IN (SELECT id::integer FROM projectversion WHERE project=project.id) OR ci.newvalue::integer NOT IN (SELECT id::integer FROM projectversion WHERE project=project.id)) AND project.pkey='PROJ');
Attachments
Issue Links
- duplicates
-
JRASERVER-59681 Version Picker (multiple versions) incorrectly persists data in JIRA change history
- Closed
- mentioned in
-
Page Loading...