cxf-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jason Pell <ja...@pellcorp.com>
Subject Re: Help - Schema Validation ON + MTOM + Large Files = Empty DataSource input stream
Date Tue, 09 Oct 2012 12:37:44 GMT
I realise there are probably other classes I will need to check out
too.  Something I should have done originally.  I have to clean up my
own mess now :-) and provide a patch which will update all the other
classes which currently look for a value of 'true', that really need
to be looking for an annotation of IN, OUT or BOTH.

what a pain

On Tue, Oct 9, 2012 at 11:27 PM, Jason Pell <jason@pellcorp.com> wrote:
> found the problem I think - an incomplete implementation of the Schema
> Validation feature by yours truly :-(
>
> So if you use anything other than 'true' or 'false' for the
> schema-validation-enabled property the bug appears.  The
> JAXBAttachmentSchemaValidationHack will need to be updated.  I will
> update the jira and submit patches to resolve
> this issue.
>
> On Tue, Oct 9, 2012 at 11:07 PM, Jason Pell <jason@pellcorp.com> wrote:
>> https://issues.apache.org/jira/browse/CXF-4551
>>
>> Project that demonstrated problem attached.  Sorry its not in a unit
>> test.  There is a FileUploadServiceInvoker which invokes a spring
>> context.  You can then use the src/test/resources soapui project to
>> see the problem.
>>
>> Basically if the Size returned is ZERO - thats a problem.  It should
>> equal the size of the file uploaded.
>>
>> I am more than happy to be told I am a knob and I am trying to access
>> toe attachments in the wrong way - I even hope that's the case.  I
>> have tried all sorts of things to get it to work.
>>
>> I keep coming back to the fact that no matter the size of the
>> attachment it works fine if schema validation is disabled.  There must
>> be something in the schema validation code which is clearing out the
>> attachment?
>>
>> On Tue, Oct 9, 2012 at 10:48 PM, Jason Pell <jason@pellcorp.com> wrote:
>>> even more interesting is that if I disable my ws-policy rules I can't
>>> get any size attachment to work.
>>>
>>> I tried a 1 byte file, a 1k file nothing, can't read the file at all.
>>>
>>> I tried DataHandler.getInputStream()
>>>
>>> I tried a fancy get attachment data source method:
>>>
>>>         private AttachmentDataSource getAttachmentDataSource(DataSource ds) {
>>>                 if (ds instanceof LazyDataSource) {
>>>                         ds = ((LazyDataSource) ds).getDataSource();
>>>                 }
>>>
>>>                 if (ds instanceof AttachmentDataSource) {
>>>                         return (AttachmentDataSource) ds;
>>>                 }
>>>                 return null;
>>>         }
>>>
>>> Nothing!
>>>
>>> On Tue, Oct 9, 2012 at 10:09 PM, Jason Pell <jason@pellcorp.com> wrote:
>>>> heap size of 1024 does not help, so I would say its a bug.  I will put
>>>> together a test project that demonstrates the problem and post a jira
>>>>
>>>> On Tue, Oct 9, 2012 at 10:07 PM, Jason Pell <jason@pellcorp.com> wrote:
>>>>> Ok - so I used dd and
>>>>>
>>>>> dd if=/dev/zero of=myfile bs=1 count=102400
>>>>>
>>>>> This works :-)
>>>>>
>>>>> dd if=/dev/zero of=myfile bs=1 count=102401
>>>>>
>>>>> This does not
>>>>>
>>>>> I will increase my heap space to ensure its not that.
>>>>>
>>>>> On Tue, Oct 9, 2012 at 10:04 PM, Glen Mazza <glen.mazza@gmail.com>
wrote:
>>>>>> It's not bizarre, it's just additional components are activated with
schema
>>>>>> validation, and it's either the size of the data or the contents
of the data
>>>>>> that is causing those additional components to go haywire.  It's
good you're
>>>>>> testing this for us; hopefully it's a bug we can fix (and not a memory/JDK
>>>>>> issue.)
>>>>>>
>>>>>> Glen
>>>>>>
>>>>>>
>>>>>> On 10/09/2012 06:57 AM, Jason Pell wrote:
>>>>>>>
>>>>>>> I will do that - however the bizarre thing is that its fine when
>>>>>>> schema validation is disabled.  Also the content of the file
is
>>>>>>> streamed out when cxf:logging is enabled.  I can see that its
saved to
>>>>>>> a temporary file.
>>>>>>>
>>>>>>> On Tue, Oct 9, 2012 at 9:47 PM, Glen Mazza <glen.mazza@gmail.com>
wrote:
>>>>>>>>
>>>>>>>> Link #45 has my MTOM tutorial, in case it's the way you're
coding (also
>>>>>>>> shows how to use Metro if you need a comparison), and link
#34 shows how
>>>>>>>> you
>>>>>>>> can debug a client and/or web service provider using Eclipse:
>>>>>>>> http://www.jroller.com/gmazza/entry/blog_article_index
>>>>>>>>
>>>>>>>> To rule out the problem being the large filesize (as opposed
to just some
>>>>>>>> quirk in the data causing CXF to go haywire), you might want
to split
>>>>>>>> that
>>>>>>>> 4MB into 2 - 2MB transmissions, and if the problem occurs
in only one of
>>>>>>>> the
>>>>>>>> two transmissions, divide the problematic transmission into
two (and so
>>>>>>>> on)
>>>>>>>> until you zero in on what is causing the problem.  Offhand,
I would guess
>>>>>>>> it's a filesize matter though.
>>>>>>>>
>>>>>>>> HTH,
>>>>>>>> Glen
>>>>>>>>
>>>>>>>>
>>>>>>>> On 10/09/2012 06:12 AM, Jason Pell wrote:
>>>>>>>>>
>>>>>>>>> Hi,
>>>>>>>>>
>>>>>>>>> If I upload a file 75k in size with Schema Validation
enabled everything
>>>>>>>>> works.
>>>>>>>>> If I upload a file 4 MB in size with Schema Validation
enabled - I
>>>>>>>>> don't get any errors but the DataHandler.getInputStream
is empty
>>>>>>>>> If I upload a file 4 MB in size with Schema Validation
DISABLED - I
>>>>>>>>> get my input stream as expected.
>>>>>>>>>
>>>>>>>>> I am going to have a look at this myself but any pointers
would be
>>>>>>>>> greatly appreciated
>>>>>>>>>
>>>>>>>>> I am running against latest trunk maven deps (2.7.0-SNAPSHOT)
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Glen Mazza
>>>>>>>> Talend Community Coders - coders.talend.com
>>>>>>>> blog: www.jroller.com/gmazza
>>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Glen Mazza
>>>>>> Talend Community Coders - coders.talend.com
>>>>>> blog: www.jroller.com/gmazza
>>>>>>

Mime
View raw message