Anomalia sulla procedura di caricamento di Workflow

Anomalia sulla procedura di caricamento Workflow

In questo post segnaliamo una anomalia che si potrebbe presentare in fase di caricamento di un Workflow, come indicato nella procedura Importing from local instance, e per alcune versioni datate di JIRA CORE, potrebbe essere un attimo …. fastidioso.

Ringraziamento

Rigrazio Francesco Borchetta per la segnalazione.

Nel dettaglio

Questa anomalia si presenta fino alla versione 7.1.7 server. Quando si esegue l’importazione di un Workflow, seguendo la procedura da manuale, rischiamo di non riuscire. Se andiamo a verificare il log, questo è il risultato:

24-May-2016 18:14:56.057 WARNING [http-nio-8717-exec-25] org.apache.catalina.connector.Response.sendRedirect Failed to redirect to [summary?atl_token=BC5X-3E6C-B9U6-B82F|e6b3dc7ef6ba6448e3e3e5827fa223dfe7952a0f|lin]
 java.lang.IllegalArgumentException: Illegal character in query at index 37: summary?atl_token=BC5X-3E6C-B9U6-B82F|e6b3dc7ef6ba6448e3e3e5827fa223dfe7952a0f|lin
	at java.net.URI.create(URI.java:852)
	at org.apache.catalina.connector.Response.sendRedirect(Response.java:1280)
	at org.apache.catalina.connector.Response.sendRedirect(Response.java:1252)
	at org.apache.catalina.connector.ResponseFacade.sendRedirect(ResponseFacade.java:500)
	at javax.servlet.http.HttpServletResponseWrapper.sendRedirect(HttpServletResponseWrapper.java:138)
	at com.atlassian.gzipfilter.SelectingResponseWrapper.sendRedirect(SelectingResponseWrapper.java:93)
	at javax.servlet.http.HttpServletResponseWrapper.sendRedirect(HttpServletResponseWrapper.java:138)
	at javax.servlet.http.HttpServletResponseWrapper.sendRedirect(HttpServletResponseWrapper.java:138)
	at javax.servlet.http.HttpServletResponseWrapper.sendRedirect(HttpServletResponseWrapper.java:138)
	at javax.servlet.http.HttpServletResponseWrapper.sendRedirect(HttpServletResponseWrapper.java:138)
	at javax.servlet.http.HttpServletResponseWrapper.sendRedirect(HttpServletResponseWrapper.java:138)
	at javax.servlet.http.HttpServletResponseWrapper.sendRedirect(HttpServletResponseWrapper.java:138)
	at com.opensymphony.module.sitemesh.filter.PageResponseWrapper.sendRedirect(PageResponseWrapper.java:212)
	at javax.servlet.http.HttpServletResponseWrapper.sendRedirect(HttpServletResponseWrapper.java:138)
	at javax.servlet.http.HttpServletResponseWrapper.sendRedirect(HttpSer

Workaround

Per fortuna, abbiamo a disposizione una workaround, disponibile nella stessa segnalazione della anomalia, che ci permete di poter risolvere il problema:

Workaround

  1. Procedere con la normale procedura di importazione di un Workflow
  2. Una volta raggiunto la URL http://<Base URL>/plugins/servlet/wfshare-import/map-statuses, seleziona tutti gli stati e quindi dare un click su Next (a questo punto siamo rediretti ad una pagina bianca, e l’errore è stato geenrato )
  3. Aprire l’ultimo stderr logs (Windows) o catalina.out logs (Linux) della propria istanza (localizzata su <JIRA Install>/logs directory) e cercare il seguente errore:
  4. 31-May-2016 18:14:49.109 WARNING [http-nio-7171-exec-17] org.apache.catalina.connector.Response.sendRedirect Failed to redirect to [summary?atl_token=B0KP-OKMI-GE40-K8NA|7412a2a4cd5c29b28d9247a0a93dbc9056c6a85b|lin]
     java.lang.IllegalArgumentException: Illegal character in query at index 37: summary?atl_token=B0KP-OKMI-GE40-K8NA|7412a2a4cd5c29b28d9247a0a93dbc9056c6a85b|lin
    	at java.net.URI.create(URI.java:852)
    	...
    Caused by: java.net.URISyntaxException: Illegal character in query at index 37: summary?atl_token=B0KP-OKMI-GE40-K8NA|7412a2a4cd5c29b28d9247a0a93dbc9056c6a85b|lin
    	at java.net.URI$Parser.fail(URI.java:2848)
    	...
    
  5. Copia la stringa da summary in avanti. Riprendendo l’esempio del punto precedente, copia summary?atl_token=B0KP-OKMI-GE40-K8NA|7412a2a4cd5c29b28d9247a0a93dbc9056c6a85b|lin
  6. Attacca questa stringa alla fine della URL che viene proposta quando vien evisualizzata la pagina bianca (ad esempio: http://<Base URL>/plugins/servlet/wfshare-import/map-statuses). La URL finale dovrebbe risultare:
    http://<Base URL>/plugins/servlet/wfshare-import/map-statuses/summary?atl_token=B0KP-OKMI-GE40-K8NA|7412a2a4cd5c29b28d9247a0a93dbc9056c6a85b|lin
  7. Incolla questa nuova URL nel browser e procedi. Questo dovrebbe far arrivare al passo siccessivo.

Conclusioni

Abbiamo questa Workaround disponibile per gestire l’errore, qualora abbiamo a disposizione una versione soggetta al problema e, per varie ragioni, non possiamo eseguire un aggiornamento di versione.