This is an automated email from the ASF dual-hosted git repository. ggregory pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-fileupload.git
The following commit(s) were added to refs/heads/master by this push: new 11a06ce Use standard Javadoc @since tag format 11a06ce is described below commit 11a06cea605eadcba1d6ef125ff1448d6137ed7d Author: Gary Gregory <garydgreg...@gmail.com> AuthorDate: Tue Aug 30 11:17:30 2022 -0400 Use standard Javadoc @since tag format --- .../apache/commons/fileupload2/RequestContext.java | 2 +- .../commons/fileupload2/disk/DiskFileItem.java | 2 +- .../fileupload2/disk/DiskFileItemFactory.java | 500 ++++++++++----------- .../jaksrvlt/JakSrvltRequestContext.java | 260 +++++------ .../fileupload2/portlet/PortletFileUpload.java | 2 +- .../fileupload2/portlet/PortletRequestContext.java | 264 +++++------ .../fileupload2/servlet/ServletRequestContext.java | 260 +++++------ 7 files changed, 645 insertions(+), 645 deletions(-) diff --git a/src/main/java/org/apache/commons/fileupload2/RequestContext.java b/src/main/java/org/apache/commons/fileupload2/RequestContext.java index 368b31c..cdb1504 100644 --- a/src/main/java/org/apache/commons/fileupload2/RequestContext.java +++ b/src/main/java/org/apache/commons/fileupload2/RequestContext.java @@ -24,7 +24,7 @@ import java.io.IOException; * interface should be implemented for each type of request that may be * handled by FileUpload, such as servlets and portlets.</p> * - * @since FileUpload 1.1 + * @since 1.1 */ public interface RequestContext { diff --git a/src/main/java/org/apache/commons/fileupload2/disk/DiskFileItem.java b/src/main/java/org/apache/commons/fileupload2/disk/DiskFileItem.java index 387ec61..b3f4bac 100644 --- a/src/main/java/org/apache/commons/fileupload2/disk/DiskFileItem.java +++ b/src/main/java/org/apache/commons/fileupload2/disk/DiskFileItem.java @@ -66,7 +66,7 @@ import org.apache.commons.io.output.DeferredFileOutputStream; * your web application ends. See the section on "Resource cleanup" * in the users guide of commons-fileupload.</p> * - * @since FileUpload 1.1 + * @since 1.1 */ public class DiskFileItem implements FileItem { diff --git a/src/main/java/org/apache/commons/fileupload2/disk/DiskFileItemFactory.java b/src/main/java/org/apache/commons/fileupload2/disk/DiskFileItemFactory.java index a72fe39..dc1342a 100644 --- a/src/main/java/org/apache/commons/fileupload2/disk/DiskFileItemFactory.java +++ b/src/main/java/org/apache/commons/fileupload2/disk/DiskFileItemFactory.java @@ -1,250 +1,250 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.commons.fileupload2.disk; - -import java.io.File; - -import org.apache.commons.fileupload2.FileItem; -import org.apache.commons.fileupload2.FileItemFactory; -import org.apache.commons.io.FileCleaningTracker; - -/** - * <p>The default {@link org.apache.commons.fileupload2.FileItemFactory} - * implementation. This implementation creates - * {@link org.apache.commons.fileupload2.FileItem} instances which keep their - * content either in memory, for smaller items, or in a temporary file on disk, - * for larger items. The size threshold, above which content will be stored on - * disk, is configurable, as is the directory in which temporary files will be - * created.</p> - * - * <p>If not otherwise configured, the default configuration values are as - * follows:</p> - * <ul> - * <li>Size threshold is 10KB.</li> - * <li>Repository is the system default temp directory, as returned by - * {@code System.getProperty("java.io.tmpdir")}.</li> - * </ul> - * <p> - * <b>NOTE</b>: Files are created in the system default temp directory with - * predictable names. This means that a local attacker with write access to that - * directory can perform a TOUTOC attack to replace any uploaded file with a - * file of the attackers choice. The implications of this will depend on how the - * uploaded file is used but could be significant. When using this - * implementation in an environment with local, untrusted users, - * {@link #setRepository(File)} MUST be used to configure a repository location - * that is not publicly writable. In a Servlet container the location identified - * by the ServletContext attribute {@code javax.servlet.context.tempdir} - * may be used. - * </p> - * - * <p>Temporary files, which are created for file items, should be - * deleted later on. The best way to do this is using a - * {@link FileCleaningTracker}, which you can set on the - * {@link DiskFileItemFactory}. However, if you do use such a tracker, - * then you must consider the following: Temporary files are automatically - * deleted as soon as they are no longer needed. (More precisely, when the - * corresponding instance of {@link java.io.File} is garbage collected.) - * This is done by the so-called reaper thread, which is started and stopped - * automatically by the {@link FileCleaningTracker} when there are files to be - * tracked. - * It might make sense to terminate that thread, for example, if - * your web application ends. See the section on "Resource cleanup" - * in the users guide of commons-fileupload.</p> - * - * @since FileUpload 1.1 - */ -public class DiskFileItemFactory implements FileItemFactory { - - // ----------------------------------------------------- Manifest constants - - /** - * The default threshold above which uploads will be stored on disk. - */ - public static final int DEFAULT_SIZE_THRESHOLD = 10240; - - // ----------------------------------------------------- Instance Variables - - /** - * The directory in which uploaded files will be stored, if stored on disk. - */ - private File repository; - - /** - * The threshold above which uploads will be stored on disk. - */ - private int sizeThreshold = DEFAULT_SIZE_THRESHOLD; - - /** - * <p>The instance of {@link FileCleaningTracker}, which is responsible - * for deleting temporary files.</p> - * <p>May be null, if tracking files is not required.</p> - */ - private FileCleaningTracker fileCleaningTracker; - - /** - * Default content charset to be used when no explicit charset - * parameter is provided by the sender. - */ - private String defaultCharset = DiskFileItem.DEFAULT_CHARSET; - - // ----------------------------------------------------------- Constructors - - /** - * Constructs an unconfigured instance of this class. The resulting factory - * may be configured by calling the appropriate setter methods. - */ - public DiskFileItemFactory() { - this(DEFAULT_SIZE_THRESHOLD, null); - } - - /** - * Constructs a preconfigured instance of this class. - * - * @param sizeThreshold The threshold, in bytes, below which items will be - * retained in memory and above which they will be - * stored as a file. - * @param repository The data repository, which is the directory in - * which files will be created, should the item size - * exceed the threshold. - */ - public DiskFileItemFactory(final int sizeThreshold, final File repository) { - this.sizeThreshold = sizeThreshold; - this.repository = repository; - } - - // ------------------------------------------------------------- Properties - - /** - * Returns the directory used to temporarily store files that are larger - * than the configured size threshold. - * - * @return The directory in which temporary files will be located. - * - * @see #setRepository(java.io.File) - * - */ - public File getRepository() { - return repository; - } - - /** - * Sets the directory used to temporarily store files that are larger - * than the configured size threshold. - * - * @param repository The directory in which temporary files will be located. - * - * @see #getRepository() - * - */ - public void setRepository(final File repository) { - this.repository = repository; - } - - /** - * Returns the size threshold beyond which files are written directly to - * disk. The default value is 10240 bytes. - * - * @return The size threshold, in bytes. - * - * @see #setSizeThreshold(int) - */ - public int getSizeThreshold() { - return sizeThreshold; - } - - /** - * Sets the size threshold beyond which files are written directly to disk. - * - * @param sizeThreshold The size threshold, in bytes. - * - * @see #getSizeThreshold() - * - */ - public void setSizeThreshold(final int sizeThreshold) { - this.sizeThreshold = sizeThreshold; - } - - // --------------------------------------------------------- Public Methods - - /** - * Create a new {@link org.apache.commons.fileupload2.disk.DiskFileItem} - * instance from the supplied parameters and the local factory - * configuration. - * - * @param fieldName The name of the form field. - * @param contentType The content type of the form field. - * @param isFormField {@code true} if this is a plain form field; - * {@code false} otherwise. - * @param fileName The name of the uploaded file, if any, as supplied - * by the browser or other client. - * - * @return The newly created file item. - */ - @Override - public FileItem createItem(final String fieldName, final String contentType, - final boolean isFormField, final String fileName) { - final DiskFileItem result = new DiskFileItem(fieldName, contentType, - isFormField, fileName, sizeThreshold, repository); - result.setDefaultCharset(defaultCharset); - final FileCleaningTracker tracker = getFileCleaningTracker(); - if (tracker != null) { - tracker.track(result.getTempFile(), result); - } - return result; - } - - /** - * Returns the tracker, which is responsible for deleting temporary - * files. - * - * @return An instance of {@link FileCleaningTracker}, or null - * (default), if temporary files aren't tracked. - */ - public FileCleaningTracker getFileCleaningTracker() { - return fileCleaningTracker; - } - - /** - * Sets the tracker, which is responsible for deleting temporary - * files. - * - * @param pTracker An instance of {@link FileCleaningTracker}, - * which will from now on track the created files, or null - * (default), to disable tracking. - */ - public void setFileCleaningTracker(final FileCleaningTracker pTracker) { - fileCleaningTracker = pTracker; - } - - /** - * Returns the default charset for use when no explicit charset - * parameter is provided by the sender. - * @return the default charset - */ - public String getDefaultCharset() { - return defaultCharset; - } - - /** - * Sets the default charset for use when no explicit charset - * parameter is provided by the sender. - * @param pCharset the default charset - */ - public void setDefaultCharset(final String pCharset) { - defaultCharset = pCharset; - } -} +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.commons.fileupload2.disk; + +import java.io.File; + +import org.apache.commons.fileupload2.FileItem; +import org.apache.commons.fileupload2.FileItemFactory; +import org.apache.commons.io.FileCleaningTracker; + +/** + * <p>The default {@link org.apache.commons.fileupload2.FileItemFactory} + * implementation. This implementation creates + * {@link org.apache.commons.fileupload2.FileItem} instances which keep their + * content either in memory, for smaller items, or in a temporary file on disk, + * for larger items. The size threshold, above which content will be stored on + * disk, is configurable, as is the directory in which temporary files will be + * created.</p> + * + * <p>If not otherwise configured, the default configuration values are as + * follows:</p> + * <ul> + * <li>Size threshold is 10KB.</li> + * <li>Repository is the system default temp directory, as returned by + * {@code System.getProperty("java.io.tmpdir")}.</li> + * </ul> + * <p> + * <b>NOTE</b>: Files are created in the system default temp directory with + * predictable names. This means that a local attacker with write access to that + * directory can perform a TOUTOC attack to replace any uploaded file with a + * file of the attackers choice. The implications of this will depend on how the + * uploaded file is used but could be significant. When using this + * implementation in an environment with local, untrusted users, + * {@link #setRepository(File)} MUST be used to configure a repository location + * that is not publicly writable. In a Servlet container the location identified + * by the ServletContext attribute {@code javax.servlet.context.tempdir} + * may be used. + * </p> + * + * <p>Temporary files, which are created for file items, should be + * deleted later on. The best way to do this is using a + * {@link FileCleaningTracker}, which you can set on the + * {@link DiskFileItemFactory}. However, if you do use such a tracker, + * then you must consider the following: Temporary files are automatically + * deleted as soon as they are no longer needed. (More precisely, when the + * corresponding instance of {@link java.io.File} is garbage collected.) + * This is done by the so-called reaper thread, which is started and stopped + * automatically by the {@link FileCleaningTracker} when there are files to be + * tracked. + * It might make sense to terminate that thread, for example, if + * your web application ends. See the section on "Resource cleanup" + * in the users guide of commons-fileupload.</p> + * + * @since 1.1 + */ +public class DiskFileItemFactory implements FileItemFactory { + + // ----------------------------------------------------- Manifest constants + + /** + * The default threshold above which uploads will be stored on disk. + */ + public static final int DEFAULT_SIZE_THRESHOLD = 10240; + + // ----------------------------------------------------- Instance Variables + + /** + * The directory in which uploaded files will be stored, if stored on disk. + */ + private File repository; + + /** + * The threshold above which uploads will be stored on disk. + */ + private int sizeThreshold = DEFAULT_SIZE_THRESHOLD; + + /** + * <p>The instance of {@link FileCleaningTracker}, which is responsible + * for deleting temporary files.</p> + * <p>May be null, if tracking files is not required.</p> + */ + private FileCleaningTracker fileCleaningTracker; + + /** + * Default content charset to be used when no explicit charset + * parameter is provided by the sender. + */ + private String defaultCharset = DiskFileItem.DEFAULT_CHARSET; + + // ----------------------------------------------------------- Constructors + + /** + * Constructs an unconfigured instance of this class. The resulting factory + * may be configured by calling the appropriate setter methods. + */ + public DiskFileItemFactory() { + this(DEFAULT_SIZE_THRESHOLD, null); + } + + /** + * Constructs a preconfigured instance of this class. + * + * @param sizeThreshold The threshold, in bytes, below which items will be + * retained in memory and above which they will be + * stored as a file. + * @param repository The data repository, which is the directory in + * which files will be created, should the item size + * exceed the threshold. + */ + public DiskFileItemFactory(final int sizeThreshold, final File repository) { + this.sizeThreshold = sizeThreshold; + this.repository = repository; + } + + // ------------------------------------------------------------- Properties + + /** + * Returns the directory used to temporarily store files that are larger + * than the configured size threshold. + * + * @return The directory in which temporary files will be located. + * + * @see #setRepository(java.io.File) + * + */ + public File getRepository() { + return repository; + } + + /** + * Sets the directory used to temporarily store files that are larger + * than the configured size threshold. + * + * @param repository The directory in which temporary files will be located. + * + * @see #getRepository() + * + */ + public void setRepository(final File repository) { + this.repository = repository; + } + + /** + * Returns the size threshold beyond which files are written directly to + * disk. The default value is 10240 bytes. + * + * @return The size threshold, in bytes. + * + * @see #setSizeThreshold(int) + */ + public int getSizeThreshold() { + return sizeThreshold; + } + + /** + * Sets the size threshold beyond which files are written directly to disk. + * + * @param sizeThreshold The size threshold, in bytes. + * + * @see #getSizeThreshold() + * + */ + public void setSizeThreshold(final int sizeThreshold) { + this.sizeThreshold = sizeThreshold; + } + + // --------------------------------------------------------- Public Methods + + /** + * Create a new {@link org.apache.commons.fileupload2.disk.DiskFileItem} + * instance from the supplied parameters and the local factory + * configuration. + * + * @param fieldName The name of the form field. + * @param contentType The content type of the form field. + * @param isFormField {@code true} if this is a plain form field; + * {@code false} otherwise. + * @param fileName The name of the uploaded file, if any, as supplied + * by the browser or other client. + * + * @return The newly created file item. + */ + @Override + public FileItem createItem(final String fieldName, final String contentType, + final boolean isFormField, final String fileName) { + final DiskFileItem result = new DiskFileItem(fieldName, contentType, + isFormField, fileName, sizeThreshold, repository); + result.setDefaultCharset(defaultCharset); + final FileCleaningTracker tracker = getFileCleaningTracker(); + if (tracker != null) { + tracker.track(result.getTempFile(), result); + } + return result; + } + + /** + * Returns the tracker, which is responsible for deleting temporary + * files. + * + * @return An instance of {@link FileCleaningTracker}, or null + * (default), if temporary files aren't tracked. + */ + public FileCleaningTracker getFileCleaningTracker() { + return fileCleaningTracker; + } + + /** + * Sets the tracker, which is responsible for deleting temporary + * files. + * + * @param pTracker An instance of {@link FileCleaningTracker}, + * which will from now on track the created files, or null + * (default), to disable tracking. + */ + public void setFileCleaningTracker(final FileCleaningTracker pTracker) { + fileCleaningTracker = pTracker; + } + + /** + * Returns the default charset for use when no explicit charset + * parameter is provided by the sender. + * @return the default charset + */ + public String getDefaultCharset() { + return defaultCharset; + } + + /** + * Sets the default charset for use when no explicit charset + * parameter is provided by the sender. + * @param pCharset the default charset + */ + public void setDefaultCharset(final String pCharset) { + defaultCharset = pCharset; + } +} diff --git a/src/main/java/org/apache/commons/fileupload2/jaksrvlt/JakSrvltRequestContext.java b/src/main/java/org/apache/commons/fileupload2/jaksrvlt/JakSrvltRequestContext.java index 7eb7fad..dd19043 100644 --- a/src/main/java/org/apache/commons/fileupload2/jaksrvlt/JakSrvltRequestContext.java +++ b/src/main/java/org/apache/commons/fileupload2/jaksrvlt/JakSrvltRequestContext.java @@ -1,130 +1,130 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.commons.fileupload2.jaksrvlt; - -import static java.lang.String.format; - -import java.io.IOException; -import java.io.InputStream; - -import jakarta.servlet.http.HttpServletRequest; - -import org.apache.commons.fileupload2.FileUploadBase; -import org.apache.commons.fileupload2.UploadContext; - -/** - * <p>Provides access to the request information needed for a request made to - * an HTTP servlet.</p> - * - * @since FileUpload 1.1 - */ -public class JakSrvltRequestContext implements UploadContext { - - // ----------------------------------------------------- Instance Variables - - /** - * The request for which the context is being provided. - */ - private final HttpServletRequest request; - - // ----------------------------------------------------------- Constructors - - /** - * Construct a context for this request. - * - * @param request The request to which this context applies. - */ - public JakSrvltRequestContext(final HttpServletRequest request) { - this.request = request; - } - - // --------------------------------------------------------- Public Methods - - /** - * Retrieve the character encoding for the request. - * - * @return The character encoding for the request. - */ - @Override - public String getCharacterEncoding() { - return request.getCharacterEncoding(); - } - - /** - * Retrieve the content type of the request. - * - * @return The content type of the request. - */ - @Override - public String getContentType() { - return request.getContentType(); - } - - /** - * Retrieve the content length of the request. - * - * @return The content length of the request. - * @deprecated 1.3 Use {@link #contentLength()} instead - */ - @Override - @Deprecated - public int getContentLength() { - return request.getContentLength(); - } - - /** - * Retrieve the content length of the request. - * - * @return The content length of the request. - * @since 1.3 - */ - @Override - public long contentLength() { - long size; - try { - size = Long.parseLong(request.getHeader(FileUploadBase.CONTENT_LENGTH)); - } catch (final NumberFormatException e) { - size = request.getContentLength(); - } - return size; - } - - /** - * Retrieve the input stream for the request. - * - * @return The input stream for the request. - * - * @throws IOException if a problem occurs. - */ - @Override - public InputStream getInputStream() throws IOException { - return request.getInputStream(); - } - - /** - * Returns a string representation of this object. - * - * @return a string representation of this object. - */ - @Override - public String toString() { - return format("ContentLength=%s, ContentType=%s", - this.contentLength(), - this.getContentType()); - } - -} +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.commons.fileupload2.jaksrvlt; + +import static java.lang.String.format; + +import java.io.IOException; +import java.io.InputStream; + +import jakarta.servlet.http.HttpServletRequest; + +import org.apache.commons.fileupload2.FileUploadBase; +import org.apache.commons.fileupload2.UploadContext; + +/** + * <p>Provides access to the request information needed for a request made to + * an HTTP servlet.</p> + * + * @since 1.1 + */ +public class JakSrvltRequestContext implements UploadContext { + + // ----------------------------------------------------- Instance Variables + + /** + * The request for which the context is being provided. + */ + private final HttpServletRequest request; + + // ----------------------------------------------------------- Constructors + + /** + * Construct a context for this request. + * + * @param request The request to which this context applies. + */ + public JakSrvltRequestContext(final HttpServletRequest request) { + this.request = request; + } + + // --------------------------------------------------------- Public Methods + + /** + * Retrieve the character encoding for the request. + * + * @return The character encoding for the request. + */ + @Override + public String getCharacterEncoding() { + return request.getCharacterEncoding(); + } + + /** + * Retrieve the content type of the request. + * + * @return The content type of the request. + */ + @Override + public String getContentType() { + return request.getContentType(); + } + + /** + * Retrieve the content length of the request. + * + * @return The content length of the request. + * @deprecated 1.3 Use {@link #contentLength()} instead + */ + @Override + @Deprecated + public int getContentLength() { + return request.getContentLength(); + } + + /** + * Retrieve the content length of the request. + * + * @return The content length of the request. + * @since 1.3 + */ + @Override + public long contentLength() { + long size; + try { + size = Long.parseLong(request.getHeader(FileUploadBase.CONTENT_LENGTH)); + } catch (final NumberFormatException e) { + size = request.getContentLength(); + } + return size; + } + + /** + * Retrieve the input stream for the request. + * + * @return The input stream for the request. + * + * @throws IOException if a problem occurs. + */ + @Override + public InputStream getInputStream() throws IOException { + return request.getInputStream(); + } + + /** + * Returns a string representation of this object. + * + * @return a string representation of this object. + */ + @Override + public String toString() { + return format("ContentLength=%s, ContentType=%s", + this.contentLength(), + this.getContentType()); + } + +} diff --git a/src/main/java/org/apache/commons/fileupload2/portlet/PortletFileUpload.java b/src/main/java/org/apache/commons/fileupload2/portlet/PortletFileUpload.java index 3098c42..7bfcd0c 100644 --- a/src/main/java/org/apache/commons/fileupload2/portlet/PortletFileUpload.java +++ b/src/main/java/org/apache/commons/fileupload2/portlet/PortletFileUpload.java @@ -44,7 +44,7 @@ import org.apache.commons.fileupload2.FileUploadException; * used to create them; a given part may be in memory, on disk, or somewhere * else.</p> * - * @since FileUpload 1.1 + * @since 1.1 */ public class PortletFileUpload extends FileUpload { diff --git a/src/main/java/org/apache/commons/fileupload2/portlet/PortletRequestContext.java b/src/main/java/org/apache/commons/fileupload2/portlet/PortletRequestContext.java index ec6265a..4e6887c 100644 --- a/src/main/java/org/apache/commons/fileupload2/portlet/PortletRequestContext.java +++ b/src/main/java/org/apache/commons/fileupload2/portlet/PortletRequestContext.java @@ -1,132 +1,132 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.commons.fileupload2.portlet; - -import static java.lang.String.format; - -import java.io.IOException; -import java.io.InputStream; - -import javax.portlet.ActionRequest; - -import org.apache.commons.fileupload2.FileUploadBase; -import org.apache.commons.fileupload2.UploadContext; - -/** - * <p>Provides access to the request information needed for a request made to - * a portlet.</p> - * - * @since FileUpload 1.1 - */ -public class PortletRequestContext implements UploadContext { - - // ----------------------------------------------------- Instance Variables - - /** - * The request for which the context is being provided. - */ - private final ActionRequest request; - - - // ----------------------------------------------------------- Constructors - - /** - * Construct a context for this request. - * - * @param request The request to which this context applies. - */ - public PortletRequestContext(final ActionRequest request) { - this.request = request; - } - - - // --------------------------------------------------------- Public Methods - - /** - * Retrieve the character encoding for the request. - * - * @return The character encoding for the request. - */ - @Override - public String getCharacterEncoding() { - return request.getCharacterEncoding(); - } - - /** - * Retrieve the content type of the request. - * - * @return The content type of the request. - */ - @Override - public String getContentType() { - return request.getContentType(); - } - - /** - * Retrieve the content length of the request. - * - * @return The content length of the request. - * @deprecated 1.3 Use {@link #contentLength()} instead - */ - @Override - @Deprecated - public int getContentLength() { - return request.getContentLength(); - } - - /** - * Retrieve the content length of the request. - * - * @return The content length of the request. - * @since 1.3 - */ - @Override - public long contentLength() { - long size; - try { - size = Long.parseLong(request.getProperty(FileUploadBase.CONTENT_LENGTH)); - } catch (final NumberFormatException e) { - size = request.getContentLength(); - } - return size; - } - - /** - * Retrieve the input stream for the request. - * - * @return The input stream for the request. - * - * @throws IOException if a problem occurs. - */ - @Override - public InputStream getInputStream() throws IOException { - return request.getPortletInputStream(); - } - - /** - * Returns a string representation of this object. - * - * @return a string representation of this object. - */ - @Override - public String toString() { - return format("ContentLength=%s, ContentType=%s", - this.contentLength(), - this.getContentType()); - } - -} +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.commons.fileupload2.portlet; + +import static java.lang.String.format; + +import java.io.IOException; +import java.io.InputStream; + +import javax.portlet.ActionRequest; + +import org.apache.commons.fileupload2.FileUploadBase; +import org.apache.commons.fileupload2.UploadContext; + +/** + * <p>Provides access to the request information needed for a request made to + * a portlet.</p> + * + * @since 1.1 + */ +public class PortletRequestContext implements UploadContext { + + // ----------------------------------------------------- Instance Variables + + /** + * The request for which the context is being provided. + */ + private final ActionRequest request; + + + // ----------------------------------------------------------- Constructors + + /** + * Construct a context for this request. + * + * @param request The request to which this context applies. + */ + public PortletRequestContext(final ActionRequest request) { + this.request = request; + } + + + // --------------------------------------------------------- Public Methods + + /** + * Retrieve the character encoding for the request. + * + * @return The character encoding for the request. + */ + @Override + public String getCharacterEncoding() { + return request.getCharacterEncoding(); + } + + /** + * Retrieve the content type of the request. + * + * @return The content type of the request. + */ + @Override + public String getContentType() { + return request.getContentType(); + } + + /** + * Retrieve the content length of the request. + * + * @return The content length of the request. + * @deprecated 1.3 Use {@link #contentLength()} instead + */ + @Override + @Deprecated + public int getContentLength() { + return request.getContentLength(); + } + + /** + * Retrieve the content length of the request. + * + * @return The content length of the request. + * @since 1.3 + */ + @Override + public long contentLength() { + long size; + try { + size = Long.parseLong(request.getProperty(FileUploadBase.CONTENT_LENGTH)); + } catch (final NumberFormatException e) { + size = request.getContentLength(); + } + return size; + } + + /** + * Retrieve the input stream for the request. + * + * @return The input stream for the request. + * + * @throws IOException if a problem occurs. + */ + @Override + public InputStream getInputStream() throws IOException { + return request.getPortletInputStream(); + } + + /** + * Returns a string representation of this object. + * + * @return a string representation of this object. + */ + @Override + public String toString() { + return format("ContentLength=%s, ContentType=%s", + this.contentLength(), + this.getContentType()); + } + +} diff --git a/src/main/java/org/apache/commons/fileupload2/servlet/ServletRequestContext.java b/src/main/java/org/apache/commons/fileupload2/servlet/ServletRequestContext.java index e7d3447..5a0010f 100644 --- a/src/main/java/org/apache/commons/fileupload2/servlet/ServletRequestContext.java +++ b/src/main/java/org/apache/commons/fileupload2/servlet/ServletRequestContext.java @@ -1,130 +1,130 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.commons.fileupload2.servlet; - -import static java.lang.String.format; - -import java.io.IOException; -import java.io.InputStream; - -import javax.servlet.http.HttpServletRequest; - -import org.apache.commons.fileupload2.FileUploadBase; -import org.apache.commons.fileupload2.UploadContext; - -/** - * <p>Provides access to the request information needed for a request made to - * an HTTP servlet.</p> - * - * @since FileUpload 1.1 - */ -public class ServletRequestContext implements UploadContext { - - // ----------------------------------------------------- Instance Variables - - /** - * The request for which the context is being provided. - */ - private final HttpServletRequest request; - - // ----------------------------------------------------------- Constructors - - /** - * Construct a context for this request. - * - * @param request The request to which this context applies. - */ - public ServletRequestContext(final HttpServletRequest request) { - this.request = request; - } - - // --------------------------------------------------------- Public Methods - - /** - * Retrieve the character encoding for the request. - * - * @return The character encoding for the request. - */ - @Override - public String getCharacterEncoding() { - return request.getCharacterEncoding(); - } - - /** - * Retrieve the content type of the request. - * - * @return The content type of the request. - */ - @Override - public String getContentType() { - return request.getContentType(); - } - - /** - * Retrieve the content length of the request. - * - * @return The content length of the request. - * @deprecated 1.3 Use {@link #contentLength()} instead - */ - @Override - @Deprecated - public int getContentLength() { - return request.getContentLength(); - } - - /** - * Retrieve the content length of the request. - * - * @return The content length of the request. - * @since 1.3 - */ - @Override - public long contentLength() { - long size; - try { - size = Long.parseLong(request.getHeader(FileUploadBase.CONTENT_LENGTH)); - } catch (final NumberFormatException e) { - size = request.getContentLength(); - } - return size; - } - - /** - * Retrieve the input stream for the request. - * - * @return The input stream for the request. - * - * @throws IOException if a problem occurs. - */ - @Override - public InputStream getInputStream() throws IOException { - return request.getInputStream(); - } - - /** - * Returns a string representation of this object. - * - * @return a string representation of this object. - */ - @Override - public String toString() { - return format("ContentLength=%s, ContentType=%s", - this.contentLength(), - this.getContentType()); - } - -} +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.commons.fileupload2.servlet; + +import static java.lang.String.format; + +import java.io.IOException; +import java.io.InputStream; + +import javax.servlet.http.HttpServletRequest; + +import org.apache.commons.fileupload2.FileUploadBase; +import org.apache.commons.fileupload2.UploadContext; + +/** + * <p>Provides access to the request information needed for a request made to + * an HTTP servlet.</p> + * + * @since 1.1 + */ +public class ServletRequestContext implements UploadContext { + + // ----------------------------------------------------- Instance Variables + + /** + * The request for which the context is being provided. + */ + private final HttpServletRequest request; + + // ----------------------------------------------------------- Constructors + + /** + * Construct a context for this request. + * + * @param request The request to which this context applies. + */ + public ServletRequestContext(final HttpServletRequest request) { + this.request = request; + } + + // --------------------------------------------------------- Public Methods + + /** + * Retrieve the character encoding for the request. + * + * @return The character encoding for the request. + */ + @Override + public String getCharacterEncoding() { + return request.getCharacterEncoding(); + } + + /** + * Retrieve the content type of the request. + * + * @return The content type of the request. + */ + @Override + public String getContentType() { + return request.getContentType(); + } + + /** + * Retrieve the content length of the request. + * + * @return The content length of the request. + * @deprecated 1.3 Use {@link #contentLength()} instead + */ + @Override + @Deprecated + public int getContentLength() { + return request.getContentLength(); + } + + /** + * Retrieve the content length of the request. + * + * @return The content length of the request. + * @since 1.3 + */ + @Override + public long contentLength() { + long size; + try { + size = Long.parseLong(request.getHeader(FileUploadBase.CONTENT_LENGTH)); + } catch (final NumberFormatException e) { + size = request.getContentLength(); + } + return size; + } + + /** + * Retrieve the input stream for the request. + * + * @return The input stream for the request. + * + * @throws IOException if a problem occurs. + */ + @Override + public InputStream getInputStream() throws IOException { + return request.getInputStream(); + } + + /** + * Returns a string representation of this object. + * + * @return a string representation of this object. + */ + @Override + public String toString() { + return format("ContentLength=%s, ContentType=%s", + this.contentLength(), + this.getContentType()); + } + +}