Hi,

I  ran all the NHTTP Tests successfully. I guess now all the test cases are
passed on trunk.

On Thu, Apr 29, 2010 at 2:36 PM, Hiranya Jayathilaka
<[email protected]>wrote:

> Folks,
>
> I have checked in a fix for this. It seems all the NHTTP tests are passing
> now. Will appreciate if somebody can verify. Also we need to test our REST
> support with this fix. Changes were made to the RESTUtil class.
>
> Thanks,
> Hiranya
>
>
> On Thu, Apr 29, 2010 at 12:13 PM, Hiranya Jayathilaka <
> [email protected]> wrote:
>
>> Hi Devs,
>>
>> On Thu, Apr 29, 2010 at 12:01 PM, Ruwan Linton <[email protected]>wrote:
>>
>>> Is it a bug at the transport or at the axis2, where it tries to pass the
>>> message trying to build it??
>>>
>>
>> I think I have found the cause of the issue. For POX messages Synapse
>> calls the RESTUtils class of the Axis2 HTTP transport module. When this call
>> is made the content type is given as 'application/xml'. Note that by this
>> time charset information has been dropped from the content type string. It
>> is set to a message context property. The RESTUtils class attempts to find
>> the charset encoding from the given content type and falls back to 'UTF-8'.
>>
>> I'm working on a fix.
>>
>> Thanks,
>> Hiranya
>>
>>
>>> Thanks,
>>> Ruwan
>>>
>>>
>>> On Thu, Apr 29, 2010 at 11:55 AM, Hiranya Jayathilaka <
>>> [email protected]> wrote:
>>>
>>>> Hi Andreas,
>>>>
>>>> On Thu, Apr 29, 2010 at 11:50 AM, Andreas Veithen <
>>>> [email protected]> wrote:
>>>>
>>>>> The test kit produces extensive logs in the following directory:
>>>>>
>>>>>
>>>>> modules/transports/core/nhttp/target/testkit-logs/org.apache.synapse.transport.nhttp.HttpCoreNIOListenerTest/0009/
>>>>>
>>>>
>>>> Thanks for pointing this out.
>>>>
>>>>
>>>>>
>>>>> The interesting part is this:
>>>>>
>>>>> 18 [http-Listener I/O dispatcher-1] DEBUG
>>>>> org.apache.synapse.transport.nhttp.wire - >> "POST
>>>>> /services/TestService-2734c979-f9a5-4b9f-aadb-6c2cce281176
>>>>> HTTP/1.1[\r][\n]"
>>>>> 18 [http-Listener I/O dispatcher-1] DEBUG
>>>>> org.apache.synapse.transport.nhttp.wire - >> "Content-Type:
>>>>> application/xml; charset=ISO-8859-1[\r][\n]"
>>>>>
>>>>> 47 [HttpServerWorker-9] ERROR
>>>>> org.apache.synapse.transport.nhttp.ServerWorker - Error processing
>>>>> POST request
>>>>> org.apache.axis2.AxisFault: Invalid UTF-8 middle byte 0x20 (at char
>>>>> #6, byte #-1)
>>>>>        at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)
>>>>>        at
>>>>> org.apache.axis2.builder.ApplicationXMLBuilder.processDocument(ApplicationXMLBuilder.java:75)
>>>>>        at
>>>>> org.apache.axis2.transport.TransportUtils.createDocumentElement(TransportUtils.java:179)
>>>>>        at
>>>>> org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:145)
>>>>>        at
>>>>> org.apache.axis2.transport.http.util.RESTUtil.processXMLRequest(RESTUtil.java:65)
>>>>>        at
>>>>> org.apache.synapse.transport.nhttp.util.RESTUtil.processPOSTRequest(RESTUtil.java:186)
>>>>>        at
>>>>> org.apache.synapse.transport.nhttp.ServerWorker.processEntityEnclosingMethod(ServerWorker.java:403)
>>>>>        at
>>>>> org.apache.synapse.transport.nhttp.ServerWorker.run(ServerWorker.java:259)
>>>>>        at
>>>>> org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:58)
>>>>>        at
>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:651)
>>>>>        at
>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:676)
>>>>>        at java.lang.Thread.run(Thread.java:613)
>>>>> Caused by: com.ctc.wstx.exc.WstxIOException: Invalid UTF-8 middle byte
>>>>> 0x20 (at char #6, byte #-1)
>>>>>        at
>>>>> com.ctc.wstx.stax.WstxInputFactory.doCreateSR(WstxInputFactory.java:548)
>>>>>        at
>>>>> com.ctc.wstx.stax.WstxInputFactory.createSR(WstxInputFactory.java:604)
>>>>>        at
>>>>> com.ctc.wstx.stax.WstxInputFactory.createSR(WstxInputFactory.java:629)
>>>>>        at
>>>>> com.ctc.wstx.stax.WstxInputFactory.createXMLStreamReader(WstxInputFactory.java:324)
>>>>>        at
>>>>> org.apache.axiom.util.stax.wrapper.XMLInputFactoryWrapper.createXMLStreamReader(XMLInputFactoryWrapper.java:95)
>>>>>        at
>>>>> org.apache.axiom.util.stax.wrapper.WrappingXMLInputFactory.createXMLStreamReader(WrappingXMLInputFactory.java:116)
>>>>>        at
>>>>> org.apache.axiom.util.stax.wrapper.XMLInputFactoryWrapper.createXMLStreamReader(XMLInputFactoryWrapper.java:95)
>>>>>        at org.apache.axiom.om.util.StAXUtils$1.run(StAXUtils.java:164)
>>>>>        at java.security.AccessController.doPrivileged(Native Method)
>>>>>        at
>>>>> org.apache.axiom.om.util.StAXUtils.createXMLStreamReader(StAXUtils.java:160)
>>>>>        at
>>>>> org.apache.axis2.builder.BuilderUtil.getPOXBuilder(BuilderUtil.java:230)
>>>>>        at
>>>>> org.apache.axis2.builder.ApplicationXMLBuilder.processDocument(ApplicationXMLBuilder.java:64)
>>>>>        ... 10 more
>>>>> Caused by: java.io.CharConversionException: Invalid UTF-8 middle byte
>>>>> 0x20 (at char #6, byte #-1)
>>>>>        at
>>>>> com.ctc.wstx.io.UTF8Reader.reportInvalidOther(UTF8Reader.java:313)
>>>>>        at com.ctc.wstx.io.UTF8Reader.read(UTF8Reader.java:204)
>>>>>        at
>>>>> com.ctc.wstx.io.ReaderBootstrapper.initialLoad(ReaderBootstrapper.java:245)
>>>>>        at
>>>>> com.ctc.wstx.io.ReaderBootstrapper.bootstrapInput(ReaderBootstrapper.java:132)
>>>>>        at
>>>>> com.ctc.wstx.stax.WstxInputFactory.doCreateSR(WstxInputFactory.java:543)
>>>>>        ... 21 more
>>>>>
>>>>> As one can see, the test sends the request in ISO-8859-1, but the
>>>>> transport parses it as UTF-8, causing an error.
>>>>>
>>>>
>>>> Yes it indeed seems like a bug in the transport. Let's try and figure
>>>> this out.
>>>>
>>>> Thanks,
>>>> Hiranya
>>>>
>>>>
>>>>>
>>>>> Andreas
>>>>>
>>>>> On Thu, Apr 29, 2010 at 07:50, Hiranya Jayathilaka <
>>>>> [email protected]> wrote:
>>>>> > Hi Devs,
>>>>> > I'm attempting to figure out the problems in our existing NHTTP
>>>>> tests. NHTTP
>>>>> > tests are based on the Axis2 transports test kit. According to my
>>>>> > observations following tests are failing consistently (out of 77 test
>>>>> > cases). Relevant exceptions are also shown below.
>>>>> > 0009:test=AsyncXML,data=Latin1,messageType=POX,client=java.net
>>>>> ,endpoint=axis
>>>>> >
>>>>> (org.apache.axis2.transport.testkit.tests.async.XMLAsyncMessageTestCase)
>>>>> > java.io.IOException: Server returned HTTP response code: 500 for URL:
>>>>> >
>>>>> http://localhost:8280/services/TestService-9568a692-c528-48d2-ba67-0061c33b25a5
>>>>> > at
>>>>> >
>>>>> sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1313)
>>>>> > at
>>>>> >
>>>>> org.apache.axis2.transport.testkit.http.JavaNetClient.sendMessage(JavaNetClient.java:57)
>>>>> > at
>>>>> >
>>>>> org.apache.axis2.transport.testkit.http.JavaNetClient.sendMessage(JavaNetClient.java:36)
>>>>> > at
>>>>> >
>>>>> org.apache.axis2.transport.testkit.client.AsyncTestClientAdapter.sendMessage(AsyncTestClientAdapter.java:45)
>>>>> > at
>>>>> >
>>>>> org.apache.axis2.transport.testkit.tests.async.AsyncMessageTestCase.doRunTest(AsyncMessageTestCase.java:50)
>>>>> > at
>>>>> >
>>>>> org.apache.axis2.transport.testkit.tests.MessageTestCase.runTest(MessageTestCase.java:62)
>>>>> > at
>>>>> >
>>>>> org.apache.axis2.transport.testkit.ManagedTestSuite.run(ManagedTestSuite.java:118)
>>>>> > at
>>>>> com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:40)
>>>>> > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>> > at
>>>>> >
>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>>>> > at
>>>>> >
>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>>> > at
>>>>> com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)
>>>>> >
>>>>> >
>>>>> 0020:test=AsyncXML,data=Latin1,messageType=POX,forceHTTP10=false,client=axis,endpoint=axis
>>>>> >
>>>>> (org.apache.axis2.transport.testkit.tests.async.XMLAsyncMessageTestCase)
>>>>> > junit.framework.AssertionFailedError: Failed to get message
>>>>> > at
>>>>> >
>>>>> org.apache.axis2.transport.testkit.tests.async.AsyncMessageTestCase.doRunTest(AsyncMessageTestCase.java:53)
>>>>> > at
>>>>> >
>>>>> org.apache.axis2.transport.testkit.tests.MessageTestCase.runTest(MessageTestCase.java:62)
>>>>> > at
>>>>> >
>>>>> org.apache.axis2.transport.testkit.ManagedTestSuite.run(ManagedTestSuite.java:118)
>>>>> > at
>>>>> com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:40)
>>>>> > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>> > at
>>>>> >
>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>>>> > at
>>>>> >
>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>>> > at
>>>>> com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)
>>>>> >
>>>>> 0042:test=AsyncXML,data=Latin1,messageType=POX,forceHTTP10=true,client=axis,endpoint=axis
>>>>> >
>>>>> (org.apache.axis2.transport.testkit.tests.async.XMLAsyncMessageTestCase)
>>>>> > junit.framework.AssertionFailedError: Failed to get message
>>>>> > at
>>>>> >
>>>>> org.apache.axis2.transport.testkit.tests.async.AsyncMessageTestCase.doRunTest(AsyncMessageTestCase.java:53)
>>>>> > at
>>>>> >
>>>>> org.apache.axis2.transport.testkit.tests.MessageTestCase.runTest(MessageTestCase.java:62)
>>>>> > at
>>>>> >
>>>>> org.apache.axis2.transport.testkit.ManagedTestSuite.run(ManagedTestSuite.java:118)
>>>>> > at
>>>>> com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:40)
>>>>> > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>> > at
>>>>> >
>>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>>>> > at
>>>>> >
>>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>>>> > at
>>>>> com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)
>>>>> >
>>>>> > It seems all the failures are associated with POX+Latin1 test cases.
>>>>> But not
>>>>> > all of them fail either. Only the above mentioned tests are failing.
>>>>> Can
>>>>> > somebody please help me figure out what's going on? When I exclude
>>>>> Latin1
>>>>> > tests from the suite everything works fine.
>>>>> > Thanks
>>>>> > --
>>>>> > Hiranya Jayathilaka
>>>>> > Software Engineer;
>>>>> > WSO2 Inc.;  http://wso2.org
>>>>> > E-mail: [email protected];  Mobile: +94 77 633 3491
>>>>> > Blog: http://techfeast-hiranya.blogspot.com
>>>>> >
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: [email protected]
>>>>> For additional commands, e-mail: [email protected]
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Hiranya Jayathilaka
>>>> Software Engineer;
>>>> WSO2 Inc.;  http://wso2.org
>>>> E-mail: [email protected];  Mobile: +94 77 633 3491
>>>> Blog: http://techfeast-hiranya.blogspot.com
>>>>
>>>
>>>
>>>
>>> --
>>> Ruwan Linton
>>> Technical Lead & Product Manager; WSO2 ESB; http://wso2.org/esb
>>>
>>> WSO2 Inc.; http://wso2.org
>>> email: [email protected]; cell: +94 77 341 3097
>>> blog: http://ruwansblog.blogspot.com
>>>
>>
>>
>>
>> --
>> Hiranya Jayathilaka
>> Software Engineer;
>> WSO2 Inc.;  http://wso2.org
>> E-mail: [email protected];  Mobile: +94 77 633 3491
>> Blog: http://techfeast-hiranya.blogspot.com
>>
>
>
>
> --
> Hiranya Jayathilaka
> Software Engineer;
> WSO2 Inc.;  http://wso2.org
> E-mail: [email protected];  Mobile: +94 77 633 3491
> Blog: http://techfeast-hiranya.blogspot.com
>



-- 
Kasun Indrasiri
Senior Software Engineer,
WSO2 Inc. - "Lean . Enterprise . Middleware" - http://www.wso2.com/
Blog : http://kasunpanorama.blogspot.com/

Reply via email to