-
Type:
Bug
-
Resolution: Won't Fix
-
Priority:
Low
-
None
-
Affects Version/s: 7.10.1
-
Component/s: Jira Importers Plugin
-
None
-
7.1
-
17
-
Severity 2 - Major
-
2
Summary
Importing certain Trello boards can fail abruptly with the following error message in the UI:
Unexpected failure occurred. Importer will stop immediately. Data may be in an unstable state
Steps to Reproduce
Try to import a Trello board using JIRA's built-in (External System Import) Trello Importer that has a lot (1000+) of cards
Expected Results
The import finishes without errors
Actual Results
Import fails while the below exception is thrown in the atlassian-jira.log file:
2018-06-22 19:19:14,888 JiraTaskExectionThread-1 ERROR jira_admin 1159x88x1 1mokn77 192.168.1.101 /secure/admin/ImporterLogsPage%21import.jspa [c.a.j.p.i.i.importer.impl.AbstractDataImporter$1Thread[http-nio-8080-exec-9,5,main]] Unexpected failure occurred. Importer will stop immediately. Data may be in an unstable state
com.atlassian.jira.plugins.importer.trello.fetch.TrelloParseException: Error "{"message":"Requested too many cards with action loads, please limit","error":"API_TOO_MANY_CARDS_REQUESTED"}" returned when getting cards for board with ID {1}.
at com.atlassian.jira.plugins.importer.trello.fetch.TrelloParser.getCards(TrelloParser.java:86)
at com.atlassian.jira.plugins.importer.trello.TrelloImporterClient.getTotalIssues(TrelloImporterClient.java:111)
at com.atlassian.jira.plugins.importer.trello.TrelloImporterDataBean.getTotalIssues(TrelloImporterDataBean.java:105)
at com.atlassian.jira.plugins.importer.imports.importer.impl.DefaultJiraDataImporter.doImport(DefaultJiraDataImporter.java:407)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
... 2 filtered
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:302)
at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.doInvoke(ServiceInvoker.java:56)
at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.invoke(ServiceInvoker.java:60)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:133)
at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:121)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invokeUnprivileged(ServiceTCCLInterceptor.java:70)
at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invoke(ServiceTCCLInterceptor.java:53)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.eclipse.gemini.blueprint.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:57)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:133)
at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:121)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208)
at com.sun.proxy.$Proxy1381.doImport(Unknown Source)
at com.atlassian.jira.plugins.importer.imports.importer.impl.ImporterCallable.call(ImporterCallable.java:26)
at com.atlassian.jira.plugins.importer.imports.importer.impl.ImporterCallable.call(ImporterCallable.java:15)
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)
Caused by: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2
at com.google.gson.Gson.fromJson(Gson.java:801)
at com.google.gson.Gson.fromJson(Gson.java:756)
at com.google.gson.Gson.fromJson(Gson.java:705)
at com.atlassian.jira.plugins.importer.trello.fetch.TrelloParser.getCards(TrelloParser.java:83)
... 33 more
at com.google.gson.stream.JsonReader.beginArray(JsonReader.java:328)
at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:79)
at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:60)
at com.google.gson.Gson.fromJson(Gson.java:790)
Notes
The JIM plugin tries to get all of the cards from a Trello board in a single request (using this endpoint), hitting the API limits, resulting in an error response.
Workaround
Manually breaking the Trello board into a few smaller ones will help not hitting the API limits.
- mentioned in
-
Page Loading...