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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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
>>>>>

Reply via email to