[ https://issues.apache.org/jira/browse/ABDERA-170?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12600762#action_12600762 ]
Stefano Linguerri commented on ABDERA-170: ------------------------------------------ Thanks, but the tests code is to explain better what I think it's a bug. Why i think it's a bug: When I post an entry to AbderaServelt the Request pass through: AbstractProvider.processEntry() --> AbstractEntityCollectionAdapter.postEntry() --> AbstractEntityCollectionAdapter.getEntryFromRequest() In the AbstractEntityCollectionAdapter.getEntryFromRequest() method: the Parser provided by Abdera is used to parse the entry: ... Abdera abdera = request.getAbdera(); Parser parser = abdera.getParser(); ... The Parser returned is an instance of FOMParser. With debbuger I see that the InputStream passes through the method FOMParser.parse(InputStream in, String base, ParserOptions options) the FOMParser at line 101 has this code: ... if (charset == null && options.getAutodetectCharset()) { FOMSniffingInputStream sin = (in instanceof FOMSniffingInputStream) ? (FOMSniffingInputStream)in : new FOMSniffingInputStream(in); charset = sin.getEncoding(); if (charset != null) options.setCharset(charset); in = sin; } ... So to be sure that the problem was FOMSniffingInputStream I wrote the two tests that I posted. The test with FOMSniffingInputStream throws exception the same way as the AbderaServer. > FOMParser.parse( InputStream in, String base, ParserOptions > options) throws exeception > ------------------------------------------------------------------------------------------------- > > Key: ABDERA-170 > URL: https://issues.apache.org/jira/browse/ABDERA-170 > Project: Abdera > Issue Type: Bug > Environment: linux Ubuntu 7.10, jvm Sun 1.6.0._03, abdera built from > trunk source with maven > Reporter: Stefano Linguerri > Attachments: testentry.xml > > > This is on Trunk. > The method FOMParser.parse(InputStream in, String base, ParserOptions > options) use FOMSniffingInputStream this class is the problem. > FOMSniffingInputStream left the mark of inputstrem moved > So when the input stream is passed to the parser an exception occurs. > Two stupid test methods for Junit to verify the bug: > This WORK: > @Test > public void testXMLFromFileWithoutFOMSniffingInputStream() throws Exception > { > File file = new File("testentry.xml"); > Abdera abdera = new Abdera(); > FileInputStream is = new FileInputStream(file); > FOMParser fomParser = new FOMParser(abdera); > Document<Element> doc = fomParser.parse(is); > doc.getRoot().toString(); > } > This THROWS EXECEPTION > @Test > public void testXMLFromFileWithFOMSniffingInputStream() throws Exception { > File file = new File("testentry.xml"); > Abdera abdera = new Abdera(); > FileInputStream is = new FileInputStream(file); > FOMSniffingInputStream fomSniffingInputStream = new > FOMSniffingInputStream(is); > fomSniffingInputStream.getEncoding(); > FOMParser fomParser = new FOMParser(abdera); > Document<Element> doc = fomParser.parse(is); > doc.getRoot().toString(); > } -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.