You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Rob Tompkins (JIRA)" <ji...@apache.org> on 2017/06/05 14:01:04 UTC

[jira] [Closed] (FILEUPLOAD-180) If ServletFileUpload.setSizeMax() is set the values "bytesRead" and "contentLength" of the ProgressListeners update()-method are ZERO

     [ https://issues.apache.org/jira/browse/FILEUPLOAD-180?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Rob Tompkins closed FILEUPLOAD-180.
-----------------------------------

can't reproduce.

> If ServletFileUpload.setSizeMax() is set the values "bytesRead" and "contentLength" of the ProgressListeners update()-method are ZERO
> -------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: FILEUPLOAD-180
>                 URL: https://issues.apache.org/jira/browse/FILEUPLOAD-180
>             Project: Commons FileUpload
>          Issue Type: Bug
>    Affects Versions: 1.2.2
>         Environment: Tomcat 6.0.24
>            Reporter: Björn Agel
>            Assignee: Simone Tripodi
>              Labels: Zero, bytesRead, contentLength, fileupload, progress_listener, sizeMax
>
> I wrote a ProgressListener to visualize the upload of a file.
> The Listener works as expected as long as the sizeMax-value of the ServletFileUpload class is not explicitly set.
> If it is set the update()-method of the ProgressListener has ZERO-values for bytesRead and contentLength ... whats wrong here?
> \\
> \\
> {code:title=UploadServlet.java|borderStyle=solid}
> ...
> FileItemFactory factory = new DiskFileItemFactory();
> ServletFileUpload upload = new ServletFileUpload(factory);
> upload.setHeaderEncoding(request.getCharacterEncoding());
> upload.setFileSizeMax(DEFAULT_SIZE_MAX);
> // if sizeMax is set the update()-method has ZERO values for bytesRead and contentLength
> //upload.setSizeMax(DEFAULT_SIZE_MAX);
> FileUploadListener listener = new FileUploadListener(request);
> upload.setProgressListener(listener);
> 			
> List items = null;
> try {
>    items = upload.parseRequest(request);
> }
> ...
> {code} 
> {code:title=FileUploadListener.java|borderStyle=solid}
> public class FileUploadListener implements ProgressListener
> {
>    private volatile long 
>    bytesRead = 0L,
>    contentLength = -100L,
>    tenKBRead = -1L,
>    startTime = System.currentTimeMillis();
> 		
>    public FileUploadListener(HttpServletRequest request) 
>    {
>       final HttpSession session = request.getSession();
>       session.setAttribute("FILE_UPLOAD_LISTENER", this);			
>    }
> 	    	
>    public void update(long aBytesRead, long aContentLength, int anItem)	    
>    {
>       long tenKB = aBytesRead / 10240;
>       if (tenKBRead == tenKB)
>          return;
>       tenKBRead = tenKB;
>       bytesRead = aBytesRead;
>       if (contentLength != aContentLength)
>          contentLength = aContentLength;
>    }
>    public long getBytesRead() 
>    {
>       return bytesRead;
>    }
>    public long getContentLength() 
>    {
>       return contentLength;
>    }
> 	    
>    public long getElapsedTimeInSeconds()
>    {
>       return (System.currentTimeMillis() - startTime) / 1000;
>    }
> }
> {code} 



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)