dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #43128
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