You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Juergen Donnerstag (JIRA)" <ji...@apache.org> on 2009/04/04 17:07:12 UTC

[jira] Created: (WICKET-2208) MalformedStreamException is silently ignored

MalformedStreamException is silently ignored
--------------------------------------------

                 Key: WICKET-2208
                 URL: https://issues.apache.org/jira/browse/WICKET-2208
             Project: Wicket
          Issue Type: Bug
          Components: wicket
    Affects Versions: 1.4-RC2
            Reporter: Juergen Donnerstag


If a FileUpload fails because of a MalformedStreamException, the exception is swallowed and Wicket continues as if no data (filenames) have been provided. No error message, no exception.

Copied from WICKET-2015:

I found back the line where this case seems to create the problem.
If you debug your stuff (without having the file upload set), the code will get an exception in MultiPartFormInputStream, method "skipPreamble":

It ends up in the MalformedStreamException, which is swallowed and "false" is returned.
Maybe this finished the submission and nothing happens.


public boolean skipPreamble() throws IOException
{
// First delimiter may be not preceeded with a CRLF.
System.arraycopy(boundary, 2, boundary, 0, boundary.length - 2);
boundaryLength = boundary.length - 2;
try
{
// Discard all data up to the delimiter.
discardBodyData();

// Read boundary - if succeeded, the stream contains an
// encapsulation.
return readBoundary();
}
catch (MalformedStreamException e)
{
return false;
}
finally
{
// Restore delimiter.
System.arraycopy(boundary, 0, boundary, 2, boundary.length - 2);
boundaryLength = boundary.length;
boundary[0] = CR;
boundary[1] = LF;
}
}

The exception has as cause: MalformedStreamException: Stream ended unexpectedly

I looked further and the debugger showd that this methods throws the exception : discardBodyData()

By assigning a value to the fileUploadComponent the code does not throw any exception at that point.


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (WICKET-2208) MalformedStreamException is silently ignored

Posted by "Igor Vaynberg (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/WICKET-2208?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Igor Vaynberg resolved WICKET-2208.
-----------------------------------

    Resolution: Fixed
      Assignee: Juergen Donnerstag

> MalformedStreamException is silently ignored
> --------------------------------------------
>
>                 Key: WICKET-2208
>                 URL: https://issues.apache.org/jira/browse/WICKET-2208
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 1.4-RC2
>            Reporter: Juergen Donnerstag
>            Assignee: Juergen Donnerstag
>
> If a FileUpload fails because of a MalformedStreamException, the exception is swallowed and Wicket continues as if no data (filenames) have been provided. No error message, no exception.
> Copied from WICKET-2015:
> I found back the line where this case seems to create the problem.
> If you debug your stuff (without having the file upload set), the code will get an exception in MultiPartFormInputStream, method "skipPreamble":
> It ends up in the MalformedStreamException, which is swallowed and "false" is returned.
> Maybe this finished the submission and nothing happens.
> public boolean skipPreamble() throws IOException
> {
> // First delimiter may be not preceeded with a CRLF.
> System.arraycopy(boundary, 2, boundary, 0, boundary.length - 2);
> boundaryLength = boundary.length - 2;
> try
> {
> // Discard all data up to the delimiter.
> discardBodyData();
> // Read boundary - if succeeded, the stream contains an
> // encapsulation.
> return readBoundary();
> }
> catch (MalformedStreamException e)
> {
> return false;
> }
> finally
> {
> // Restore delimiter.
> System.arraycopy(boundary, 0, boundary, 2, boundary.length - 2);
> boundaryLength = boundary.length;
> boundary[0] = CR;
> boundary[1] = LF;
> }
> }
> The exception has as cause: MalformedStreamException: Stream ended unexpectedly
> I looked further and the debugger showd that this methods throws the exception : discardBodyData()
> By assigning a value to the fileUploadComponent the code does not throw any exception at that point.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (WICKET-2208) MalformedStreamException is silently ignored

Posted by "Juergen Donnerstag (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/WICKET-2208?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12695753#action_12695753 ] 

Juergen Donnerstag commented on WICKET-2208:
--------------------------------------------

Added an error log entry to indicate at least to the admin that something went wrong.

> MalformedStreamException is silently ignored
> --------------------------------------------
>
>                 Key: WICKET-2208
>                 URL: https://issues.apache.org/jira/browse/WICKET-2208
>             Project: Wicket
>          Issue Type: Bug
>          Components: wicket
>    Affects Versions: 1.4-RC2
>            Reporter: Juergen Donnerstag
>
> If a FileUpload fails because of a MalformedStreamException, the exception is swallowed and Wicket continues as if no data (filenames) have been provided. No error message, no exception.
> Copied from WICKET-2015:
> I found back the line where this case seems to create the problem.
> If you debug your stuff (without having the file upload set), the code will get an exception in MultiPartFormInputStream, method "skipPreamble":
> It ends up in the MalformedStreamException, which is swallowed and "false" is returned.
> Maybe this finished the submission and nothing happens.
> public boolean skipPreamble() throws IOException
> {
> // First delimiter may be not preceeded with a CRLF.
> System.arraycopy(boundary, 2, boundary, 0, boundary.length - 2);
> boundaryLength = boundary.length - 2;
> try
> {
> // Discard all data up to the delimiter.
> discardBodyData();
> // Read boundary - if succeeded, the stream contains an
> // encapsulation.
> return readBoundary();
> }
> catch (MalformedStreamException e)
> {
> return false;
> }
> finally
> {
> // Restore delimiter.
> System.arraycopy(boundary, 0, boundary, 2, boundary.length - 2);
> boundaryLength = boundary.length;
> boundary[0] = CR;
> boundary[1] = LF;
> }
> }
> The exception has as cause: MalformedStreamException: Stream ended unexpectedly
> I looked further and the debugger showd that this methods throws the exception : discardBodyData()
> By assigning a value to the fileUploadComponent the code does not throw any exception at that point.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.