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 >>>>>
