← Back to team overview

dhis2-devs team mailing list archive

Re: [Bug 1438624] [NEW] XML dxf2 import: Use of ampersand (&) causes crash

 

Thank you for documenting this Calle! I've been struggling with a
MomConnect import error for the last 1.5 hours - now I know...

On Tue, Mar 31, 2015 at 12:22 PM, Calle Hedberg <calle.hedberg@xxxxxxxxx>
wrote:

> Public bug reported:
>
> When importing a dxf2 (XML) data file that includes one or more
> ampersands in e.g. the comment field, it causes a crash. See the tomcat
> log below - the import process is obviously unable to handle the
> ampersand (code 32) character - and possibly a number of other
> characters too.
>
> None of this is mentioned in the manuals, though, where the "comment"
> field is only referred to as a "free text" field with no further
> restrictions.
>
> There are two solutions here:
> 1. The import process is modified to handle "unexpected" characters
> automatically
> 2. A list of "unexpected" characters are published as prohibited (and they
> should be disallowed within DHIS2 also, then) with a more user-friendly
> error message when they are encountered.
>
> Regards
> Calle
>
> * ERROR 2015-03-31 12:00:04,003 org.amplecode.staxwax.XMLException: Failed
> to move to start element
>         at
> org.amplecode.staxwax.reader.DefaultXMLStreamReader.moveToStartElement(DefaultXMLStreamReader.java:130)
>         at
> org.hisp.dhis.dxf2.datavalueset.StreamingDataValueSet.hasNextDataValue(StreamingDataValueSet.java:136)
>         at
> org.hisp.dhis.dxf2.datavalueset.DefaultDataValueSetService.saveDataValueSet(DefaultDataValueSetService.ja
>         at
> org.hisp.dhis.dxf2.datavalueset.DefaultDataValueSetService.saveDataValueSet(DefaultDataValueSetService.ja
>         at
> org.hisp.dhis.importexport.action.util.ImportDataValueTask.run(ImportDataValueTask.java:91)
>         at
> org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnabl
>         at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
>         at java.util.concurrent.FutureTask.run(FutureTask.java:262)
>         at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecut
>         at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java
>         at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>         at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>         at java.lang.Thread.run(Thread.java:745)
> Caused by: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected
> character ' ' (code 32) (missing name?)
>  at [row,col {unknown-source}]: [15,162]
>         at
> com.ctc.wstx.sr.StreamScanner.throwUnexpectedChar(StreamScanner.java:647)
>         at
> com.ctc.wstx.sr.StreamScanner.parseFullName(StreamScanner.java:1931)
>         at
> com.ctc.wstx.sr.StreamScanner.parseEntityName(StreamScanner.java:2057)
>         at
> com.ctc.wstx.sr.StreamScanner.fullyResolveEntity(StreamScanner.java:1525)
>         at
> com.ctc.wstx.sr.BasicStreamReader.parseAttrValue(BasicStreamReader.java:1938)
>         at
> com.ctc.wstx.sr.BasicStreamReader.handleNsAttrs(BasicStreamReader.java:3065)
>         at
> com.ctc.wstx.sr.BasicStreamReader.handleStartElem(BasicStreamReader.java:2963)
>         at
> com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2839)
>         at
> com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1073)
>         at
> org.amplecode.staxwax.reader.DefaultXMLStreamReader.moveToStartElement(DefaultXMLStreamReader.java:113)
>
> ** Affects: dhis2
>      Importance: Undecided
>          Status: New
>
> --
> You received this bug notification because you are a member of DHIS 2
> developers, which is subscribed to DHIS.
> https://bugs.launchpad.net/bugs/1438624
>
> Title:
>   XML dxf2 import: Use of ampersand (&) causes crash
>
> Status in DHIS 2:
>   New
>
> Bug description:
>   When importing a dxf2 (XML) data file that includes one or more
>   ampersands in e.g. the comment field, it causes a crash. See the
>   tomcat log below - the import process is obviously unable to handle
>   the ampersand (code 32) character - and possibly a number of other
>   characters too.
>
>   None of this is mentioned in the manuals, though, where the "comment"
>   field is only referred to as a "free text" field with no further
>   restrictions.
>
>   There are two solutions here:
>   1. The import process is modified to handle "unexpected" characters
> automatically
>   2. A list of "unexpected" characters are published as prohibited (and
> they should be disallowed within DHIS2 also, then) with a more
> user-friendly error message when they are encountered.
>
>   Regards
>   Calle
>
>   * ERROR 2015-03-31 12:00:04,003 org.amplecode.staxwax.XMLException:
> Failed to move to start element
>           at
> org.amplecode.staxwax.reader.DefaultXMLStreamReader.moveToStartElement(DefaultXMLStreamReader.java:130)
>           at
> org.hisp.dhis.dxf2.datavalueset.StreamingDataValueSet.hasNextDataValue(StreamingDataValueSet.java:136)
>           at
> org.hisp.dhis.dxf2.datavalueset.DefaultDataValueSetService.saveDataValueSet(DefaultDataValueSetService.ja
>           at
> org.hisp.dhis.dxf2.datavalueset.DefaultDataValueSetService.saveDataValueSet(DefaultDataValueSetService.ja
>           at
> org.hisp.dhis.importexport.action.util.ImportDataValueTask.run(ImportDataValueTask.java:91)
>           at
> org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnabl
>           at
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
>           at java.util.concurrent.FutureTask.run(FutureTask.java:262)
>           at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecut
>           at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java
>           at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>           at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>           at java.lang.Thread.run(Thread.java:745)
>   Caused by: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected
> character ' ' (code 32) (missing name?)
>    at [row,col {unknown-source}]: [15,162]
>           at
> com.ctc.wstx.sr.StreamScanner.throwUnexpectedChar(StreamScanner.java:647)
>           at
> com.ctc.wstx.sr.StreamScanner.parseFullName(StreamScanner.java:1931)
>           at
> com.ctc.wstx.sr.StreamScanner.parseEntityName(StreamScanner.java:2057)
>           at
> com.ctc.wstx.sr.StreamScanner.fullyResolveEntity(StreamScanner.java:1525)
>           at
> com.ctc.wstx.sr.BasicStreamReader.parseAttrValue(BasicStreamReader.java:1938)
>           at
> com.ctc.wstx.sr.BasicStreamReader.handleNsAttrs(BasicStreamReader.java:3065)
>           at
> com.ctc.wstx.sr.BasicStreamReader.handleStartElem(BasicStreamReader.java:2963)
>           at
> com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2839)
>           at
> com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1073)
>           at
> org.amplecode.staxwax.reader.DefaultXMLStreamReader.moveToStartElement(DefaultXMLStreamReader.java:113)
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/dhis2/+bug/1438624/+subscriptions
>
> _______________________________________________
> Mailing list: https://launchpad.net/~dhis2-devs
> Post to     : dhis2-devs@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~dhis2-devs
> More help   : https://help.launchpad.net/ListHelp
>


-- 
*Health Information Systems Program - South Africa*
*- - - - - - - **- - - - - - - **- - - - - - - **- - - - - - - **- - - - - *
Mobile  :    073 246 2992
Landline:   021 851 2216
Skype:      gregory_rowles

-- 
You received this bug notification because you are a member of DHIS 2
developers, which is subscribed to DHIS.
https://bugs.launchpad.net/bugs/1438624

Title:
  XML dxf2 import: Use of ampersand (&) causes crash

Status in DHIS:
  Invalid

Bug description:
  When importing a dxf2 (XML) data file that includes one or more
  ampersands in e.g. the comment field, it causes a crash. See the
  tomcat log below - the import process is obviously unable to handle
  the ampersand (code 32) character - and possibly a number of other
  characters too.

  None of this is mentioned in the manuals, though, where the "comment"
  field is only referred to as a "free text" field with no further
  restrictions.

  There are two solutions here: 
  1. The import process is modified to handle "unexpected" characters automatically
  2. A list of "unexpected" characters are published as prohibited (and they should be disallowed within DHIS2 also, then) with a more user-friendly error message when they are encountered.

  Regards
  Calle

  * ERROR 2015-03-31 12:00:04,003 org.amplecode.staxwax.XMLException: Failed to move to start element
          at org.amplecode.staxwax.reader.DefaultXMLStreamReader.moveToStartElement(DefaultXMLStreamReader.java:130)
          at org.hisp.dhis.dxf2.datavalueset.StreamingDataValueSet.hasNextDataValue(StreamingDataValueSet.java:136)
          at org.hisp.dhis.dxf2.datavalueset.DefaultDataValueSetService.saveDataValueSet(DefaultDataValueSetService.ja
          at org.hisp.dhis.dxf2.datavalueset.DefaultDataValueSetService.saveDataValueSet(DefaultDataValueSetService.ja
          at org.hisp.dhis.importexport.action.util.ImportDataValueTask.run(ImportDataValueTask.java:91)
          at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnabl
          at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
          at java.util.concurrent.FutureTask.run(FutureTask.java:262)
          at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecut
          at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java
          at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
          at java.lang.Thread.run(Thread.java:745)
  Caused by: com.ctc.wstx.exc.WstxUnexpectedCharException: Unexpected character ' ' (code 32) (missing name?)
   at [row,col {unknown-source}]: [15,162]
          at com.ctc.wstx.sr.StreamScanner.throwUnexpectedChar(StreamScanner.java:647)
          at com.ctc.wstx.sr.StreamScanner.parseFullName(StreamScanner.java:1931)
          at com.ctc.wstx.sr.StreamScanner.parseEntityName(StreamScanner.java:2057)
          at com.ctc.wstx.sr.StreamScanner.fullyResolveEntity(StreamScanner.java:1525)
          at com.ctc.wstx.sr.BasicStreamReader.parseAttrValue(BasicStreamReader.java:1938)
          at com.ctc.wstx.sr.BasicStreamReader.handleNsAttrs(BasicStreamReader.java:3065)
          at com.ctc.wstx.sr.BasicStreamReader.handleStartElem(BasicStreamReader.java:2963)
          at com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2839)
          at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1073)
          at org.amplecode.staxwax.reader.DefaultXMLStreamReader.moveToStartElement(DefaultXMLStreamReader.java:113)

To manage notifications about this bug go to:
https://bugs.launchpad.net/dhis2/+bug/1438624/+subscriptions


References