No uploaded file when upgrading to new Tapestry version (Spring Boot jar, embedded Tomcat...)

classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

No uploaded file when upgrading to new Tapestry version (Spring Boot jar, embedded Tomcat...)

Vjeran Marcinko-2
  Hi,

I am upgrading my old Tapestry 4.3.7 app (java-7, standalone Tomcat...)
to newer tech stack (java 8, Spring Boot with embeddable Tomcat deployed
as single jar...). I wan't to leave tapestry untouched as much as
possible, so I just upgraded from 4.3.7 to 4.3.8 because of Java-8
requirement.

And practically everything works perfectly except that my Upload
component stopped working. It doesn't raise any error, its just that
after form submit, my UploadedFile instance is always null.

I debugged a bit, and found out that within Tapestry's
MultipartDecoderImpl there is this part that should parse FileItems from
HTTP request, but it always parses empty list. I udnerstand that here
Taestry uses Apache Commons-FileUpload, but I have no idea what has
changed for this to stop working properly?

protected List<FileItem>parseRequest(HttpServletRequest request)
{
     try {
         return createFileUpload().parseRequest(request); }catch (FileUploadException ex)
     {
         uploadException = ex; return Collections.emptyList(); }
}

Dunno if Spring Boot and its embeeded Tomcat are making some difference
here...

Any idea?

-Vjeran
Reply | Threaded
Open this post in threaded view
|

Re: No uploaded file when upgrading to new Tapestry version (Spring Boot jar, embedded Tomcat...)

Ivano Luberti
Side questiono on this message: Tapestry 4.3.7 is not compatible with
Java 8 ?


Il 19/06/2018 18:28, Vjeran Marcinko ha scritto:

>  Hi,
>
> I am upgrading my old Tapestry 4.3.7 app (java-7, standalone
> Tomcat...) to newer tech stack (java 8, Spring Boot with embeddable
> Tomcat deployed as single jar...). I wan't to leave tapestry untouched
> as much as possible, so I just upgraded from 4.3.7 to 4.3.8 because of
> Java-8 requirement.
>
> And practically everything works perfectly except that my Upload
> component stopped working. It doesn't raise any error, its just that
> after form submit, my UploadedFile instance is always null.
>
> I debugged a bit, and found out that within Tapestry's
> MultipartDecoderImpl there is this part that should parse FileItems
> from HTTP request, but it always parses empty list. I udnerstand that
> here Taestry uses Apache Commons-FileUpload, but I have no idea what
> has changed for this to stop working properly?
>
> protected List<FileItem>parseRequest(HttpServletRequest request)
> {
>     try {
>         return createFileUpload().parseRequest(request); }catch
> (FileUploadException ex)
>     {
>         uploadException = ex; return Collections.emptyList(); }
> }
>
> Dunno if Spring Boot and its embeeded Tomcat are making some
> difference here...
>
> Any idea?
>
> -Vjeran
>

--
==================================================
dott. Ivano Mario Luberti
Archimede Informatica societa' cooperativa a r. l.
Sede Operativa
Via Gereschi 36 - 56126- Pisa
tel.: +39-050- 580959
tel/fax: +39-050-8932061
web: www.archicoop.it
facebook: www.facebook.com/archimedeinformaticapisa/
twitter: twitter.com/archicoop
==================================================


---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: No uploaded file when upgrading to new Tapestry version (Spring Boot jar, embedded Tomcat...)

Vjeran Marcinko-2
Ahhhhh, big SORRY for version typo...

I meant that I used 5.3.7 (not 4.3.7), and I wanted to stay there, but
there was some java-8 related issue during boot, and I had to upgrade to
5.3.8 (release notes says some java -8 issue was fixed there).

I didn't want to upgrade , at least not for now because the web app is
huge, to newest 5.4.x version.

But I managed, with few errors, to start the 5.4.x version of my app,
just to check single page that uses Upload component, and it seems the
issue with uploading preserves.

Ugh, dunno whhat to look next...

-Vjeran

On 06/19/2018 06:49 PM, Ivano Luberti wrote:

> Side questiono on this message: Tapestry 4.3.7 is not compatible with
> Java 8 ?
>
>
> Il 19/06/2018 18:28, Vjeran Marcinko ha scritto:
>>   Hi,
>>
>> I am upgrading my old Tapestry 4.3.7 app (java-7, standalone
>> Tomcat...) to newer tech stack (java 8, Spring Boot with embeddable
>> Tomcat deployed as single jar...). I wan't to leave tapestry untouched
>> as much as possible, so I just upgraded from 4.3.7 to 4.3.8 because of
>> Java-8 requirement.
>>
>> And practically everything works perfectly except that my Upload
>> component stopped working. It doesn't raise any error, its just that
>> after form submit, my UploadedFile instance is always null.
>>
>> I debugged a bit, and found out that within Tapestry's
>> MultipartDecoderImpl there is this part that should parse FileItems
>> from HTTP request, but it always parses empty list. I udnerstand that
>> here Taestry uses Apache Commons-FileUpload, but I have no idea what
>> has changed for this to stop working properly?
>>
>> protected List<FileItem>parseRequest(HttpServletRequest request)
>> {
>>      try {
>>          return createFileUpload().parseRequest(request); }catch
>> (FileUploadException ex)
>>      {
>>          uploadException = ex; return Collections.emptyList(); }
>> }
>>
>> Dunno if Spring Boot and its embeeded Tomcat are making some
>> difference here...
>>
>> Any idea?
>>
>> -Vjeran
>>


---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: No uploaded file when upgrading to new Tapestry version (Spring Boot jar, embedded Tomcat...)

Thiago H de Paula Figueiredo
You could try updating commons-file-upload to the latest version while
keeping the rest unchanged. Anyway, I find it weird that just upgrading to
Java 8 would cause that issue.

On Tue, Jun 19, 2018 at 2:06 PM Vjeran Marcinko <
[hidden email]> wrote:

> Ahhhhh, big SORRY for version typo...
>
> I meant that I used 5.3.7 (not 4.3.7), and I wanted to stay there, but
> there was some java-8 related issue during boot, and I had to upgrade to
> 5.3.8 (release notes says some java -8 issue was fixed there).
>
> I didn't want to upgrade , at least not for now because the web app is
> huge, to newest 5.4.x version.
>
> But I managed, with few errors, to start the 5.4.x version of my app,
> just to check single page that uses Upload component, and it seems the
> issue with uploading preserves.
>
> Ugh, dunno whhat to look next...
>
> -Vjeran
>
> On 06/19/2018 06:49 PM, Ivano Luberti wrote:
> > Side questiono on this message: Tapestry 4.3.7 is not compatible with
> > Java 8 ?
> >
> >
> > Il 19/06/2018 18:28, Vjeran Marcinko ha scritto:
> >>   Hi,
> >>
> >> I am upgrading my old Tapestry 4.3.7 app (java-7, standalone
> >> Tomcat...) to newer tech stack (java 8, Spring Boot with embeddable
> >> Tomcat deployed as single jar...). I wan't to leave tapestry untouched
> >> as much as possible, so I just upgraded from 4.3.7 to 4.3.8 because of
> >> Java-8 requirement.
> >>
> >> And practically everything works perfectly except that my Upload
> >> component stopped working. It doesn't raise any error, its just that
> >> after form submit, my UploadedFile instance is always null.
> >>
> >> I debugged a bit, and found out that within Tapestry's
> >> MultipartDecoderImpl there is this part that should parse FileItems
> >> from HTTP request, but it always parses empty list. I udnerstand that
> >> here Taestry uses Apache Commons-FileUpload, but I have no idea what
> >> has changed for this to stop working properly?
> >>
> >> protected List<FileItem>parseRequest(HttpServletRequest request)
> >> {
> >>      try {
> >>          return createFileUpload().parseRequest(request); }catch
> >> (FileUploadException ex)
> >>      {
> >>          uploadException = ex; return Collections.emptyList(); }
> >> }
> >>
> >> Dunno if Spring Boot and its embeeded Tomcat are making some
> >> difference here...
> >>
> >> Any idea?
> >>
> >> -Vjeran
> >>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>

--
Thiago
Reply | Threaded
Open this post in threaded view
|

Re: No uploaded file when upgrading to new Tapestry version (Spring Boot jar, embedded Tomcat...)

Dmitry Gusev
In reply to this post by Vjeran Marcinko-2
Hi,

judging by the code you submitted, it should only return an empty list in
case of FileUploadException.

Did you try to attach with debugger and checking the exception object?

On Tue, Jun 19, 2018 at 7:28 PM, Vjeran Marcinko <
[hidden email]> wrote:

>  Hi,
>
> I am upgrading my old Tapestry 4.3.7 app (java-7, standalone Tomcat...) to
> newer tech stack (java 8, Spring Boot with embeddable Tomcat deployed as
> single jar...). I wan't to leave tapestry untouched as much as possible, so
> I just upgraded from 4.3.7 to 4.3.8 because of Java-8 requirement.
>
> And practically everything works perfectly except that my Upload component
> stopped working. It doesn't raise any error, its just that after form
> submit, my UploadedFile instance is always null.
>
> I debugged a bit, and found out that within Tapestry's
> MultipartDecoderImpl there is this part that should parse FileItems from
> HTTP request, but it always parses empty list. I udnerstand that here
> Taestry uses Apache Commons-FileUpload, but I have no idea what has changed
> for this to stop working properly?
>
> protected List<FileItem>parseRequest(HttpServletRequest request)
> {
>     try {
>         return createFileUpload().parseRequest(request); }catch
> (FileUploadException ex)
>     {
>         uploadException = ex; return Collections.emptyList(); }
> }
>
> Dunno if Spring Boot and its embeeded Tomcat are making some difference
> here...
>
> Any idea?
>
> -Vjeran
>



--
Dmitry Gusev

AnjLab Team
http://anjlab.com
Reply | Threaded
Open this post in threaded view
|

Re: No uploaded file when upgrading to new Tapestry version (Spring Boot jar, embedded Tomcat...)

Vjeran Marcinko-2
No, I checked. The exception isn't raised, but this parsing returns
empty list:

return createFileUpload().parseRequest(request);

Which is basically Commons FileUpload called all the way down. I checked
the HTTP request being proper multipart in Chrome Inspector, and
fileupload code recognizes it as such, but somehow it parses it like it
doesn't ocntain any file items :-/

I don't think it is about java 8, but probably some combination of
Spring Boot 2.0 + newest Tomcat + embedded version of it, or whatever...

As I said, the old version of the app uses Tapestry 5.3.7 + Commons
FileUpload 1.2.1, whereas newer tapestry version use Commons FileUpload
1.3.1, but I tried downgrading this fileupload lib to 1.2.1 to no effect.

-Vjeran

On 06/19/2018 07:58 PM, Dmitry Gusev wrote:

> Hi,
>
> judging by the code you submitted, it should only return an empty list in
> case of FileUploadException.
>
> Did you try to attach with debugger and checking the exception object?
>
> On Tue, Jun 19, 2018 at 7:28 PM, Vjeran Marcinko <
> [hidden email]> wrote:
>
>>   Hi,
>>
>> I am upgrading my old Tapestry 4.3.7 app (java-7, standalone Tomcat...) to
>> newer tech stack (java 8, Spring Boot with embeddable Tomcat deployed as
>> single jar...). I wan't to leave tapestry untouched as much as possible, so
>> I just upgraded from 4.3.7 to 4.3.8 because of Java-8 requirement.
>>
>> And practically everything works perfectly except that my Upload component
>> stopped working. It doesn't raise any error, its just that after form
>> submit, my UploadedFile instance is always null.
>>
>> I debugged a bit, and found out that within Tapestry's
>> MultipartDecoderImpl there is this part that should parse FileItems from
>> HTTP request, but it always parses empty list. I udnerstand that here
>> Taestry uses Apache Commons-FileUpload, but I have no idea what has changed
>> for this to stop working properly?
>>
>> protected List<FileItem>parseRequest(HttpServletRequest request)
>> {
>>      try {
>>          return createFileUpload().parseRequest(request); }catch
>> (FileUploadException ex)
>>      {
>>          uploadException = ex; return Collections.emptyList(); }
>> }
>>
>> Dunno if Spring Boot and its embeeded Tomcat are making some difference
>> here...
>>
>> Any idea?
>>
>> -Vjeran
>>
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: No uploaded file when upgrading to new Tapestry version (Spring Boot jar, embedded Tomcat...)

Ivano Luberti
In reply to this post by Vjeran Marcinko-2
Thank you Vjeran


Il 19/06/2018 18:58, Vjeran Marcinko ha scritto:

> Ahhhhh, big SORRY for version typo...
>
> I meant that I used 5.3.7 (not 4.3.7), and I wanted to stay there, but
> there was some java-8 related issue during boot, and I had to upgrade
> to 5.3.8 (release notes says some java -8 issue was fixed there).
>
> I didn't want to upgrade , at least not for now because the web app is
> huge, to newest 5.4.x version.
>
> But I managed, with few errors, to start the 5.4.x version of my app,
> just to check single page that uses Upload component, and it seems the
> issue with uploading preserves.
>
> Ugh, dunno whhat to look next...
>
> -Vjeran
>
> On 06/19/2018 06:49 PM, Ivano Luberti wrote:
>> Side questiono on this message: Tapestry 4.3.7 is not compatible with
>> Java 8 ?
>>
>>
>> Il 19/06/2018 18:28, Vjeran Marcinko ha scritto:
>>>   Hi,
>>>
>>> I am upgrading my old Tapestry 4.3.7 app (java-7, standalone
>>> Tomcat...) to newer tech stack (java 8, Spring Boot with embeddable
>>> Tomcat deployed as single jar...). I wan't to leave tapestry untouched
>>> as much as possible, so I just upgraded from 4.3.7 to 4.3.8 because of
>>> Java-8 requirement.
>>>
>>> And practically everything works perfectly except that my Upload
>>> component stopped working. It doesn't raise any error, its just that
>>> after form submit, my UploadedFile instance is always null.
>>>
>>> I debugged a bit, and found out that within Tapestry's
>>> MultipartDecoderImpl there is this part that should parse FileItems
>>> from HTTP request, but it always parses empty list. I udnerstand that
>>> here Taestry uses Apache Commons-FileUpload, but I have no idea what
>>> has changed for this to stop working properly?
>>>
>>> protected List<FileItem>parseRequest(HttpServletRequest request)
>>> {
>>>      try {
>>>          return createFileUpload().parseRequest(request); }catch
>>> (FileUploadException ex)
>>>      {
>>>          uploadException = ex; return Collections.emptyList(); }
>>> }
>>>
>>> Dunno if Spring Boot and its embeeded Tomcat are making some
>>> difference here...
>>>
>>> Any idea?
>>>
>>> -Vjeran
>>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>

--
==================================================
dott. Ivano Mario Luberti
Archimede Informatica societa' cooperativa a r. l.
Sede Operativa
Via Gereschi 36 - 56126- Pisa
tel.: +39-050- 580959
tel/fax: +39-050-8932061
web: www.archicoop.it
facebook: www.facebook.com/archimedeinformaticapisa/
twitter: twitter.com/archicoop
==================================================


---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: No uploaded file when upgrading to new Tapestry version (Spring Boot jar, embedded Tomcat...)

Luca Menegus-2
Hi Vjeran,
 probably is spring mvc handling the multipart request before tapestry, try adding the following property in you springboot property file:

#This is extremely important otherwise Spring mvc will parse multipart request and T5 file upload won't see them
spring.http.multipart.enabled=false



Regards,
 Luca


----- Original Message -----

> From: "Ivano Luberti" <[hidden email]>
> To: [hidden email]
> Sent: Tuesday, June 19, 2018 9:14:32 PM
> Subject: Re: No uploaded file when upgrading to new Tapestry version (Spring Boot jar, embedded Tomcat...)
>
> Thank you Vjeran
>
>
> Il 19/06/2018 18:58, Vjeran Marcinko ha scritto:
> > Ahhhhh, big SORRY for version typo...
> >
> > I meant that I used 5.3.7 (not 4.3.7), and I wanted to stay there, but
> > there was some java-8 related issue during boot, and I had to upgrade
> > to 5.3.8 (release notes says some java -8 issue was fixed there).
> >
> > I didn't want to upgrade , at least not for now because the web app is
> > huge, to newest 5.4.x version.
> >
> > But I managed, with few errors, to start the 5.4.x version of my app,
> > just to check single page that uses Upload component, and it seems the
> > issue with uploading preserves.
> >
> > Ugh, dunno whhat to look next...
> >
> > -Vjeran
> >
> > On 06/19/2018 06:49 PM, Ivano Luberti wrote:
> >> Side questiono on this message: Tapestry 4.3.7 is not compatible with
> >> Java 8 ?
> >>
> >>
> >> Il 19/06/2018 18:28, Vjeran Marcinko ha scritto:
> >>>   Hi,
> >>>
> >>> I am upgrading my old Tapestry 4.3.7 app (java-7, standalone
> >>> Tomcat...) to newer tech stack (java 8, Spring Boot with embeddable
> >>> Tomcat deployed as single jar...). I wan't to leave tapestry untouched
> >>> as much as possible, so I just upgraded from 4.3.7 to 4.3.8 because of
> >>> Java-8 requirement.
> >>>
> >>> And practically everything works perfectly except that my Upload
> >>> component stopped working. It doesn't raise any error, its just that
> >>> after form submit, my UploadedFile instance is always null.
> >>>
> >>> I debugged a bit, and found out that within Tapestry's
> >>> MultipartDecoderImpl there is this part that should parse FileItems
> >>> from HTTP request, but it always parses empty list. I udnerstand that
> >>> here Taestry uses Apache Commons-FileUpload, but I have no idea what
> >>> has changed for this to stop working properly?
> >>>
> >>> protected List<FileItem>parseRequest(HttpServletRequest request)
> >>> {
> >>>      try {
> >>>          return createFileUpload().parseRequest(request); }catch
> >>> (FileUploadException ex)
> >>>      {
> >>>          uploadException = ex; return Collections.emptyList(); }
> >>> }
> >>>
> >>> Dunno if Spring Boot and its embeeded Tomcat are making some
> >>> difference here...
> >>>
> >>> Any idea?
> >>>
> >>> -Vjeran
> >>>
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [hidden email]
> > For additional commands, e-mail: [hidden email]
> >
>
> --
> ==================================================
> dott. Ivano Mario Luberti
> Archimede Informatica societa' cooperativa a r. l.
> Sede Operativa
> Via Gereschi 36 - 56126- Pisa
> tel.: +39-050- 580959
> tel/fax: +39-050-8932061
> web: www.archicoop.it
> facebook: www.facebook.com/archimedeinformaticapisa/
> twitter: twitter.com/archicoop
> ==================================================
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: No uploaded file when upgrading to new Tapestry version (Spring Boot jar, embedded Tomcat...)

Vjeran Marcinko-2
Thanx Luca,

I bet that would also work, but before your mail, I figured out myself
by prioritizing Tapestry filter over other Spring filters, or by mapping
Spring MVC dispatcher servlet to some other URL, because all these
Spring stuff was mapped also to /*, thus interacting with the request.


Thanx anyway


On 06/20/2018 10:42 AM, Luca Menegus wrote:

> Hi Vjeran,
>   probably is spring mvc handling the multipart request before tapestry, try adding the following property in you springboot property file:
>
> #This is extremely important otherwise Spring mvc will parse multipart request and T5 file upload won't see them
> spring.http.multipart.enabled=false
>
>
>
> Regards,
>   Luca
>
>
> ----- Original Message -----
>> From: "Ivano Luberti" <[hidden email]>
>> To: [hidden email]
>> Sent: Tuesday, June 19, 2018 9:14:32 PM
>> Subject: Re: No uploaded file when upgrading to new Tapestry version (Spring Boot jar, embedded Tomcat...)
>>
>> Thank you Vjeran
>>
>>
>> Il 19/06/2018 18:58, Vjeran Marcinko ha scritto:
>>> Ahhhhh, big SORRY for version typo...
>>>
>>> I meant that I used 5.3.7 (not 4.3.7), and I wanted to stay there, but
>>> there was some java-8 related issue during boot, and I had to upgrade
>>> to 5.3.8 (release notes says some java -8 issue was fixed there).
>>>
>>> I didn't want to upgrade , at least not for now because the web app is
>>> huge, to newest 5.4.x version.
>>>
>>> But I managed, with few errors, to start the 5.4.x version of my app,
>>> just to check single page that uses Upload component, and it seems the
>>> issue with uploading preserves.
>>>
>>> Ugh, dunno whhat to look next...
>>>
>>> -Vjeran
>>>
>>> On 06/19/2018 06:49 PM, Ivano Luberti wrote:
>>>> Side questiono on this message: Tapestry 4.3.7 is not compatible with
>>>> Java 8 ?
>>>>
>>>>
>>>> Il 19/06/2018 18:28, Vjeran Marcinko ha scritto:
>>>>>    Hi,
>>>>>
>>>>> I am upgrading my old Tapestry 4.3.7 app (java-7, standalone
>>>>> Tomcat...) to newer tech stack (java 8, Spring Boot with embeddable
>>>>> Tomcat deployed as single jar...). I wan't to leave tapestry untouched
>>>>> as much as possible, so I just upgraded from 4.3.7 to 4.3.8 because of
>>>>> Java-8 requirement.
>>>>>
>>>>> And practically everything works perfectly except that my Upload
>>>>> component stopped working. It doesn't raise any error, its just that
>>>>> after form submit, my UploadedFile instance is always null.
>>>>>
>>>>> I debugged a bit, and found out that within Tapestry's
>>>>> MultipartDecoderImpl there is this part that should parse FileItems
>>>>> from HTTP request, but it always parses empty list. I udnerstand that
>>>>> here Taestry uses Apache Commons-FileUpload, but I have no idea what
>>>>> has changed for this to stop working properly?
>>>>>
>>>>> protected List<FileItem>parseRequest(HttpServletRequest request)
>>>>> {
>>>>>       try {
>>>>>           return createFileUpload().parseRequest(request); }catch
>>>>> (FileUploadException ex)
>>>>>       {
>>>>>           uploadException = ex; return Collections.emptyList(); }
>>>>> }
>>>>>
>>>>> Dunno if Spring Boot and its embeeded Tomcat are making some
>>>>> difference here...
>>>>>
>>>>> Any idea?
>>>>>
>>>>> -Vjeran
>>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [hidden email]
>>> For additional commands, e-mail: [hidden email]
>>>
>> --
>> ==================================================
>> dott. Ivano Mario Luberti
>> Archimede Informatica societa' cooperativa a r. l.
>> Sede Operativa
>> Via Gereschi 36 - 56126- Pisa
>> tel.: +39-050- 580959
>> tel/fax: +39-050-8932061
>> web: www.archicoop.it
>> facebook: www.facebook.com/archimedeinformaticapisa/
>> twitter: twitter.com/archicoop
>> ==================================================
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [hidden email]
>> For additional commands, e-mail: [hidden email]
>>
>>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]

Reply | Threaded
Open this post in threaded view
|

Re: No uploaded file when upgrading to new Tapestry version (Spring Boot jar, embedded Tomcat...)

D. R.
Hi,

i had the same issue in one of two springboot/t5 apps
spring.http.multipart.enabled=false
worked for me

in the second app, i don't have set that property and i don't facing any
issues *weird*


On 20.06.2018 15:00, Vjeran Marcinko wrote:

> Thanx Luca,
>
> I bet that would also work, but before your mail, I figured out myself
> by prioritizing Tapestry filter over other Spring filters, or by
> mapping Spring MVC dispatcher servlet to some other URL, because all
> these Spring stuff was mapped also to /*, thus interacting with the
> request.
>
>
> Thanx anyway
>
>
> On 06/20/2018 10:42 AM, Luca Menegus wrote:
>> Hi Vjeran,
>>   probably is spring mvc handling the multipart request before
>> tapestry, try adding the following property in you springboot
>> property file:
>>
>> #This is extremely important otherwise Spring mvc will parse
>> multipart request and T5 file upload won't see them
>> spring.http.multipart.enabled=false
>>
>>
>>
>> Regards,
>>   Luca
>>
>>
>> ----- Original Message -----
>>> From: "Ivano Luberti" <[hidden email]>
>>> To: [hidden email]
>>> Sent: Tuesday, June 19, 2018 9:14:32 PM
>>> Subject: Re: No uploaded file when upgrading to new Tapestry version
>>> (Spring Boot jar, embedded Tomcat...)
>>>
>>> Thank you Vjeran
>>>
>>>
>>> Il 19/06/2018 18:58, Vjeran Marcinko ha scritto:
>>>> Ahhhhh, big SORRY for version typo...
>>>>
>>>> I meant that I used 5.3.7 (not 4.3.7), and I wanted to stay there, but
>>>> there was some java-8 related issue during boot, and I had to upgrade
>>>> to 5.3.8 (release notes says some java -8 issue was fixed there).
>>>>
>>>> I didn't want to upgrade , at least not for now because the web app is
>>>> huge, to newest 5.4.x version.
>>>>
>>>> But I managed, with few errors, to start the 5.4.x version of my app,
>>>> just to check single page that uses Upload component, and it seems the
>>>> issue with uploading preserves.
>>>>
>>>> Ugh, dunno whhat to look next...
>>>>
>>>> -Vjeran
>>>>
>>>> On 06/19/2018 06:49 PM, Ivano Luberti wrote:
>>>>> Side questiono on this message: Tapestry 4.3.7 is not compatible with
>>>>> Java 8 ?
>>>>>
>>>>>
>>>>> Il 19/06/2018 18:28, Vjeran Marcinko ha scritto:
>>>>>>    Hi,
>>>>>>
>>>>>> I am upgrading my old Tapestry 4.3.7 app (java-7, standalone
>>>>>> Tomcat...) to newer tech stack (java 8, Spring Boot with embeddable
>>>>>> Tomcat deployed as single jar...). I wan't to leave tapestry
>>>>>> untouched
>>>>>> as much as possible, so I just upgraded from 4.3.7 to 4.3.8
>>>>>> because of
>>>>>> Java-8 requirement.
>>>>>>
>>>>>> And practically everything works perfectly except that my Upload
>>>>>> component stopped working. It doesn't raise any error, its just that
>>>>>> after form submit, my UploadedFile instance is always null.
>>>>>>
>>>>>> I debugged a bit, and found out that within Tapestry's
>>>>>> MultipartDecoderImpl there is this part that should parse FileItems
>>>>>> from HTTP request, but it always parses empty list. I udnerstand
>>>>>> that
>>>>>> here Taestry uses Apache Commons-FileUpload, but I have no idea what
>>>>>> has changed for this to stop working properly?
>>>>>>
>>>>>> protected List<FileItem>parseRequest(HttpServletRequest request)
>>>>>> {
>>>>>>       try {
>>>>>>           return createFileUpload().parseRequest(request); }catch
>>>>>> (FileUploadException ex)
>>>>>>       {
>>>>>>           uploadException = ex; return Collections.emptyList(); }
>>>>>> }
>>>>>>
>>>>>> Dunno if Spring Boot and its embeeded Tomcat are making some
>>>>>> difference here...
>>>>>>
>>>>>> Any idea?
>>>>>>
>>>>>> -Vjeran
>>>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: [hidden email]
>>>> For additional commands, e-mail: [hidden email]
>>>>
>>> --
>>> ==================================================
>>> dott. Ivano Mario Luberti
>>> Archimede Informatica societa' cooperativa a r. l.
>>> Sede Operativa
>>> Via Gereschi 36 - 56126- Pisa
>>> tel.: +39-050- 580959
>>> tel/fax: +39-050-8932061
>>> web: www.archicoop.it
>>> facebook: www.facebook.com/archimedeinformaticapisa/
>>> twitter: twitter.com/archicoop
>>> ==================================================
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [hidden email]
>>> For additional commands, e-mail: [hidden email]
>>>
>>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [hidden email]
>> For additional commands, e-mail: [hidden email]
>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [hidden email]
> For additional commands, e-mail: [hidden email]
>


---------------------------------------------------------------------
To unsubscribe, e-mail: [hidden email]
For additional commands, e-mail: [hidden email]