Added: 
websites/production/commons/content/proper/commons-fileupload/jacoco/org.apache.commons.fileupload.portlet/index.html
==============================================================================
--- 
websites/production/commons/content/proper/commons-fileupload/jacoco/org.apache.commons.fileupload.portlet/index.html
 (added)
+++ 
websites/production/commons/content/proper/commons-fileupload/jacoco/org.apache.commons.fileupload.portlet/index.html
 Mon Feb 13 10:43:35 2023
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="iso-8859-1"?><!DOCTYPE html PUBLIC "-//W3C//DTD 
XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";><html 
xmlns="http://www.w3.org/1999/xhtml"; lang="en"><head><meta 
http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link 
rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link 
rel="shortcut icon" href="../jacoco-resources/report.gif" 
type="image/gif"/><title>org.apache.commons.fileupload.portlet</title><script 
type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body 
onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" 
id="breadcrumb"><span class="info"><a href="index.source.html" 
class="el_source">Source Files</a><a href="../jacoco-sessions.html" 
class="el_session">Sessions</a></span><a href="../index.html" 
class="el_report">Apache Commons FileUpload</a> &gt; <span 
class="el_package">org.apache.commons.fileupload.portlet</span></div><h1>org.apache.common
 s.fileupload.portlet</h1><table class="coverage" cellspacing="0" 
id="coveragetable"><thead><tr><td class="sortable" id="a" 
onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" 
onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" 
id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" 
onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" 
onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" 
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" 
onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" 
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" 
onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" 
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" 
onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" 
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" on
 click="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td 
class="bar">46 of 87</td><td class="ctr2">47%</td><td class="bar">0 of 
0</td><td class="ctr2">n/a</td><td class="ctr1">5</td><td 
class="ctr2">13</td><td class="ctr1">10</td><td class="ctr2">23</td><td 
class="ctr1">5</td><td class="ctr2">13</td><td class="ctr1">0</td><td 
class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a1"><a 
href="PortletRequestContext.html" 
class="el_class">PortletRequestContext</a></td><td class="bar" id="b0"><img 
src="../jacoco-resources/redbar.gif" width="52" height="10" title="23" 
alt="23"/><img src="../jacoco-resources/greenbar.gif" width="67" height="10" 
title="30" alt="30"/></td><td class="ctr2" id="c0">56%</td><td class="bar" 
id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f1">1</td><td 
class="ctr2" id="g0">7</td><td class="ctr1" id="h0">5</td><td class="ctr2" 
id="i0">15</td><td class="ctr1" id="j1">1</td><td class="ctr2" 
id="k0">7</td><td class="ctr1" id="l0">0<
 /td><td class="ctr2" id="m0">1</td></tr><tr><td id="a0"><a 
href="PortletFileUpload.html" class="el_class">PortletFileUpload</a></td><td 
class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="52" 
height="10" title="23" alt="23"/><img src="../jacoco-resources/greenbar.gif" 
width="24" height="10" title="11" alt="11"/></td><td class="ctr2" 
id="c1">32%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td 
class="ctr1" id="f0">4</td><td class="ctr2" id="g1">6</td><td class="ctr1" 
id="h1">5</td><td class="ctr2" id="i1">8</td><td class="ctr1" id="j0">4</td><td 
class="ctr2" id="k1">6</td><td class="ctr1" id="l1">0</td><td class="ctr2" 
id="m1">1</td></tr></tbody></table><div class="footer"><span 
class="right">Created with <a href="http://www.jacoco.org/jacoco";>JaCoCo</a> 
0.8.8.202204050719</span></div></body></html>
\ No newline at end of file

Added: 
websites/production/commons/content/proper/commons-fileupload/jacoco/org.apache.commons.fileupload.portlet/index.source.html
==============================================================================
--- 
websites/production/commons/content/proper/commons-fileupload/jacoco/org.apache.commons.fileupload.portlet/index.source.html
 (added)
+++ 
websites/production/commons/content/proper/commons-fileupload/jacoco/org.apache.commons.fileupload.portlet/index.source.html
 Mon Feb 13 10:43:35 2023
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="iso-8859-1"?><!DOCTYPE html PUBLIC "-//W3C//DTD 
XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";><html 
xmlns="http://www.w3.org/1999/xhtml"; lang="en"><head><meta 
http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link 
rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link 
rel="shortcut icon" href="../jacoco-resources/report.gif" 
type="image/gif"/><title>org.apache.commons.fileupload.portlet</title><script 
type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body 
onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" 
id="breadcrumb"><span class="info"><a href="index.html" 
class="el_class">Classes</a><a href="../jacoco-sessions.html" 
class="el_session">Sessions</a></span><a href="../index.html" 
class="el_report">Apache Commons FileUpload</a> &gt; <span 
class="el_package">org.apache.commons.fileupload.portlet</span></div><h1>org.apache.commons.fileupload.
 portlet</h1><table class="coverage" cellspacing="0" 
id="coveragetable"><thead><tr><td class="sortable" id="a" 
onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" 
onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" 
id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" 
onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" 
onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" 
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" 
onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" 
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" 
onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" 
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" 
onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" 
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" 
onclick="toggle
 Sort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td 
class="bar">46 of 87</td><td class="ctr2">47%</td><td class="bar">0 of 
0</td><td class="ctr2">n/a</td><td class="ctr1">5</td><td 
class="ctr2">13</td><td class="ctr1">10</td><td class="ctr2">23</td><td 
class="ctr1">5</td><td class="ctr2">13</td><td class="ctr1">0</td><td 
class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a1"><a 
href="PortletRequestContext.java.html" 
class="el_source">PortletRequestContext.java</a></td><td class="bar" 
id="b0"><img src="../jacoco-resources/redbar.gif" width="52" height="10" 
title="23" alt="23"/><img src="../jacoco-resources/greenbar.gif" width="67" 
height="10" title="30" alt="30"/></td><td class="ctr2" id="c0">56%</td><td 
class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" 
id="f1">1</td><td class="ctr2" id="g0">7</td><td class="ctr1" id="h0">5</td><td 
class="ctr2" id="i0">15</td><td class="ctr1" id="j1">1</td><td class="ctr2" 
id="k0">7</td><td class="ctr1" id="l0">0</t
 d><td class="ctr2" id="m0">1</td></tr><tr><td id="a0"><a 
href="PortletFileUpload.java.html" 
class="el_source">PortletFileUpload.java</a></td><td class="bar" id="b1"><img 
src="../jacoco-resources/redbar.gif" width="52" height="10" title="23" 
alt="23"/><img src="../jacoco-resources/greenbar.gif" width="24" height="10" 
title="11" alt="11"/></td><td class="ctr2" id="c1">32%</td><td class="bar" 
id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f0">4</td><td 
class="ctr2" id="g1">6</td><td class="ctr1" id="h1">5</td><td class="ctr2" 
id="i1">8</td><td class="ctr1" id="j0">4</td><td class="ctr2" id="k1">6</td><td 
class="ctr1" id="l1">0</td><td class="ctr2" 
id="m1">1</td></tr></tbody></table><div class="footer"><span 
class="right">Created with <a href="http://www.jacoco.org/jacoco";>JaCoCo</a> 
0.8.8.202204050719</span></div></body></html>
\ No newline at end of file

Added: 
websites/production/commons/content/proper/commons-fileupload/jacoco/org.apache.commons.fileupload.servlet/FileCleanerCleanup.html
==============================================================================
--- 
websites/production/commons/content/proper/commons-fileupload/jacoco/org.apache.commons.fileupload.servlet/FileCleanerCleanup.html
 (added)
+++ 
websites/production/commons/content/proper/commons-fileupload/jacoco/org.apache.commons.fileupload.servlet/FileCleanerCleanup.html
 Mon Feb 13 10:43:35 2023
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="iso-8859-1"?><!DOCTYPE html PUBLIC "-//W3C//DTD 
XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";><html 
xmlns="http://www.w3.org/1999/xhtml"; lang="en"><head><meta 
http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link 
rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link 
rel="shortcut icon" href="../jacoco-resources/report.gif" 
type="image/gif"/><title>FileCleanerCleanup</title><script 
type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body 
onload="initialSort(['breadcrumb'])"><div class="breadcrumb" 
id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" 
class="el_session">Sessions</a></span><a href="../index.html" 
class="el_report">Apache Commons FileUpload</a> &gt; <a href="index.html" 
class="el_package">org.apache.commons.fileupload.servlet</a> &gt; <span 
class="el_class">FileCleanerCleanup</span></div><h1>FileCleanerCleanup</h1><table
 class="coverage" ce
 llspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" 
onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" 
onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" 
id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" 
onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" 
onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" 
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" 
onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" 
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" 
onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" 
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" 
onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td
 class="bar">36 of 36</td><td class="ctr2">0%</td><td class="bar">0 of 
0</td><td class="ctr2">n/a</td><td class="ctr
 1">6</td><td class="ctr2">6</td><td class="ctr1">11</td><td 
class="ctr2">11</td><td class="ctr1">6</td><td 
class="ctr2">6</td></tr></tfoot><tbody><tr><td id="a5"><a 
href="FileCleanerCleanup.java.html#L36" class="el_method">static 
{...}</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" 
width="120" height="10" title="11" alt="11"/></td><td class="ctr2" 
id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td 
class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" 
id="h0">2</td><td class="ctr2" id="i0">2</td><td class="ctr1" id="j0">1</td><td 
class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a 
href="FileCleanerCleanup.java.html#L73" 
class="el_method">contextInitialized(ServletContextEvent)</a></td><td 
class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="76" 
height="10" title="7" alt="7"/></td><td class="ctr2" id="c1">0%</td><td 
class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" 
id="f1">1</
 td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">2</td><td 
class="ctr2" id="i1">2</td><td class="ctr1" id="j1">1</td><td class="ctr2" 
id="k1">1</td></tr><tr><td id="a3"><a href="FileCleanerCleanup.java.html#L48" 
class="el_method">getFileCleaningTracker(ServletContext)</a></td><td 
class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="54" 
height="10" title="5" alt="5"/></td><td class="ctr2" id="c2">0%</td><td 
class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" 
id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">2</td><td 
class="ctr2" id="i2">2</td><td class="ctr1" id="j2">1</td><td class="ctr2" 
id="k2">1</td></tr><tr><td id="a4"><a href="FileCleanerCleanup.java.html#L61" 
class="el_method">setFileCleaningTracker(ServletContext, 
FileCleaningTracker)</a></td><td class="bar" id="b3"><img 
src="../jacoco-resources/redbar.gif" width="54" height="10" title="5" 
alt="5"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"/><
 td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td 
class="ctr2" id="g3">1</td><td class="ctr1" id="h3">2</td><td class="ctr2" 
id="i3">2</td><td class="ctr1" id="j3">1</td><td class="ctr2" 
id="k3">1</td></tr><tr><td id="a0"><a href="FileCleanerCleanup.java.html#L86" 
class="el_method">contextDestroyed(ServletContextEvent)</a></td><td class="bar" 
id="b4"><img src="../jacoco-resources/redbar.gif" width="54" height="10" 
title="5" alt="5"/></td><td class="ctr2" id="c4">0%</td><td class="bar" 
id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td 
class="ctr2" id="g4">1</td><td class="ctr1" id="h4">2</td><td class="ctr2" 
id="i4">2</td><td class="ctr1" id="j4">1</td><td class="ctr2" 
id="k4">1</td></tr><tr><td id="a2"><a href="FileCleanerCleanup.java.html#L30" 
class="el_method">FileCleanerCleanup()</a></td><td class="bar" id="b5"><img 
src="../jacoco-resources/redbar.gif" width="32" height="10" title="3" 
alt="3"/></td><td class="ctr2" id="c5">0%</td><td cl
 ass="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" 
id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">1</td><td 
class="ctr2" id="i5">1</td><td class="ctr1" id="j5">1</td><td class="ctr2" 
id="k5">1</td></tr></tbody></table><div class="footer"><span 
class="right">Created with <a href="http://www.jacoco.org/jacoco";>JaCoCo</a> 
0.8.8.202204050719</span></div></body></html>
\ No newline at end of file

Added: 
websites/production/commons/content/proper/commons-fileupload/jacoco/org.apache.commons.fileupload.servlet/FileCleanerCleanup.java.html
==============================================================================
--- 
websites/production/commons/content/proper/commons-fileupload/jacoco/org.apache.commons.fileupload.servlet/FileCleanerCleanup.java.html
 (added)
+++ 
websites/production/commons/content/proper/commons-fileupload/jacoco/org.apache.commons.fileupload.servlet/FileCleanerCleanup.java.html
 Mon Feb 13 10:43:35 2023
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="iso-8859-1"?><!DOCTYPE html PUBLIC "-//W3C//DTD 
XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";><html 
xmlns="http://www.w3.org/1999/xhtml"; lang="en"><head><meta 
http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link 
rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link 
rel="shortcut icon" href="../jacoco-resources/report.gif" 
type="image/gif"/><title>FileCleanerCleanup.java</title><link rel="stylesheet" 
href="../jacoco-resources/prettify.css" type="text/css"/><script 
type="text/javascript" 
src="../jacoco-resources/prettify.js"></script></head><body 
onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" 
id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" 
class="el_session">Sessions</a></span><a href="../index.html" 
class="el_report">Apache Commons FileUpload</a> &gt; <a 
href="index.source.html" 
class="el_package">org.apache.commons.fileupload.servlet</a> &gt; 
 <span 
class="el_source">FileCleanerCleanup.java</span></div><h1>FileCleanerCleanup.java</h1><pre
 class="source lang-java linenums">/*
+ * 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 &quot;License&quot;); 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 &quot;AS IS&quot; 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.fileupload.servlet;
+
+import javax.servlet.ServletContext;
+import javax.servlet.ServletContextListener;
+import javax.servlet.ServletContextEvent;
+
+import org.apache.commons.io.FileCleaningTracker;
+
+/**
+ * A servlet context listener, which ensures that the
+ * {@link FileCleaningTracker}'s reaper thread is terminated,
+ * when the web application is destroyed.
+ */
+<span class="nc" id="L30">public class FileCleanerCleanup implements 
ServletContextListener {</span>
+
+    /**
+     * Attribute name, which is used for storing an instance of
+     * {@link FileCleaningTracker} in the web application.
+     */
+<span class="nc" id="L36">    public static final String 
FILE_CLEANING_TRACKER_ATTRIBUTE</span>
+<span class="nc" id="L37">        = FileCleanerCleanup.class.getName() + 
&quot;.FileCleaningTracker&quot;;</span>
+
+    /**
+     * Returns the instance of {@link FileCleaningTracker}, which is
+     * associated with the given {@link ServletContext}.
+     *
+     * @param pServletContext The servlet context to query
+     * @return The contexts tracker
+     */
+    public static FileCleaningTracker
+            getFileCleaningTracker(ServletContext pServletContext) {
+<span class="nc" id="L48">        return (FileCleaningTracker)</span>
+<span class="nc" id="L49">            
pServletContext.getAttribute(FILE_CLEANING_TRACKER_ATTRIBUTE);</span>
+    }
+
+    /**
+     * Sets the instance of {@link FileCleaningTracker}, which is
+     * associated with the given {@link ServletContext}.
+     *
+     * @param pServletContext The servlet context to modify
+     * @param pTracker The tracker to set
+     */
+    public static void setFileCleaningTracker(ServletContext pServletContext,
+            FileCleaningTracker pTracker) {
+<span class="nc" id="L61">        
pServletContext.setAttribute(FILE_CLEANING_TRACKER_ATTRIBUTE, pTracker);</span>
+<span class="nc" id="L62">    }</span>
+
+    /**
+     * Called when the web application is initialized. Does
+     * nothing.
+     *
+     * @param sce The servlet context, used for calling
+     *   {@link #setFileCleaningTracker(ServletContext, FileCleaningTracker)}.
+     */
+    @Override
+    public void contextInitialized(ServletContextEvent sce) {
+<span class="nc" id="L73">        
setFileCleaningTracker(sce.getServletContext(),</span>
+                new FileCleaningTracker());
+<span class="nc" id="L75">    }</span>
+
+    /**
+     * Called when the web application is being destroyed.
+     * Calls {@link FileCleaningTracker#exitWhenFinished()}.
+     *
+     * @param sce The servlet context, used for calling
+     *     {@link #getFileCleaningTracker(ServletContext)}.
+     */
+    @Override
+    public void contextDestroyed(ServletContextEvent sce) {
+<span class="nc" id="L86">        
getFileCleaningTracker(sce.getServletContext()).exitWhenFinished();</span>
+<span class="nc" id="L87">    }</span>
+
+}
+</pre><div class="footer"><span class="right">Created with <a 
href="http://www.jacoco.org/jacoco";>JaCoCo</a> 
0.8.8.202204050719</span></div></body></html>
\ No newline at end of file

Added: 
websites/production/commons/content/proper/commons-fileupload/jacoco/org.apache.commons.fileupload.servlet/ServletFileUpload.html
==============================================================================
--- 
websites/production/commons/content/proper/commons-fileupload/jacoco/org.apache.commons.fileupload.servlet/ServletFileUpload.html
 (added)
+++ 
websites/production/commons/content/proper/commons-fileupload/jacoco/org.apache.commons.fileupload.servlet/ServletFileUpload.html
 Mon Feb 13 10:43:35 2023
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="iso-8859-1"?><!DOCTYPE html PUBLIC "-//W3C//DTD 
XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";><html 
xmlns="http://www.w3.org/1999/xhtml"; lang="en"><head><meta 
http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link 
rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link 
rel="shortcut icon" href="../jacoco-resources/report.gif" 
type="image/gif"/><title>ServletFileUpload</title><script 
type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body 
onload="initialSort(['breadcrumb'])"><div class="breadcrumb" 
id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" 
class="el_session">Sessions</a></span><a href="../index.html" 
class="el_report">Apache Commons FileUpload</a> &gt; <a href="index.html" 
class="el_package">org.apache.commons.fileupload.servlet</a> &gt; <span 
class="el_class">ServletFileUpload</span></div><h1>ServletFileUpload</h1><table 
class="coverage" cells
 pacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" 
onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" 
onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" 
id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" 
onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" 
onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" 
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" 
onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" 
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" 
onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" 
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" 
onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td
 class="bar">13 of 41</td><td class="ctr2">68%</td><td class="bar">2 of 
2</td><td class="ctr2">0%</td><td class="ctr1">
 2</td><td class="ctr2">7</td><td class="ctr1">3</td><td 
class="ctr2">10</td><td class="ctr1">1</td><td 
class="ctr2">6</td></tr></tfoot><tbody><tr><td id="a1"><a 
href="ServletFileUpload.java.html#L66" 
class="el_method">isMultipartContent(HttpServletRequest)</a></td><td 
class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" 
height="10" title="13" alt="13"/></td><td class="ctr2" id="c5">0%</td><td 
class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" 
height="10" title="2" alt="2"/></td><td class="ctr2" id="e0">0%</td><td 
class="ctr1" id="f0">2</td><td class="ctr2" id="g0">2</td><td class="ctr1" 
id="h0">3</td><td class="ctr2" id="i0">3</td><td class="ctr1" id="j0">1</td><td 
class="ctr2" id="k0">1</td></tr><tr><td id="a3"><a 
href="ServletFileUpload.java.html#L113" 
class="el_method">parseRequest(HttpServletRequest)</a></td><td class="bar" 
id="b1"><img src="../jacoco-resources/greenbar.gif" width="64" height="10" 
title="7" alt="7"/></td><td class="ctr
 2" id="c0">100%</td><td class="bar" id="d1"/><td class="ctr2" 
id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" 
id="g1">1</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i3">1</td><td 
class="ctr1" id="j1">0</td><td class="ctr2" id="k1">1</td></tr><tr><td 
id="a2"><a href="ServletFileUpload.java.html#L131" 
class="el_method">parseParameterMap(HttpServletRequest)</a></td><td class="bar" 
id="b2"><img src="../jacoco-resources/greenbar.gif" width="64" height="10" 
title="7" alt="7"/></td><td class="ctr2" id="c1">100%</td><td class="bar" 
id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td 
class="ctr2" id="g2">1</td><td class="ctr1" id="h2">0</td><td class="ctr2" 
id="i4">1</td><td class="ctr1" id="j2">0</td><td class="ctr2" 
id="k2">1</td></tr><tr><td id="a0"><a href="ServletFileUpload.java.html#L152" 
class="el_method">getItemIterator(HttpServletRequest)</a></td><td class="bar" 
id="b3"><img src="../jacoco-resources/greenbar.gif" width="64" height=
 "10" title="7" alt="7"/></td><td class="ctr2" id="c2">100%</td><td class="bar" 
id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">0</td><td 
class="ctr2" id="g3">1</td><td class="ctr1" id="h3">0</td><td class="ctr2" 
id="i5">1</td><td class="ctr1" id="j3">0</td><td class="ctr2" 
id="k3">1</td></tr><tr><td id="a5"><a href="ServletFileUpload.java.html#L93" 
class="el_method">ServletFileUpload(FileItemFactory)</a></td><td class="bar" 
id="b4"><img src="../jacoco-resources/greenbar.gif" width="36" height="10" 
title="4" alt="4"/></td><td class="ctr2" id="c3">100%</td><td class="bar" 
id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">0</td><td 
class="ctr2" id="g4">1</td><td class="ctr1" id="h4">0</td><td class="ctr2" 
id="i1">2</td><td class="ctr1" id="j4">0</td><td class="ctr2" 
id="k4">1</td></tr><tr><td id="a4"><a href="ServletFileUpload.java.html#L82" 
class="el_method">ServletFileUpload()</a></td><td class="bar" id="b5"><img 
src="../jacoco-resources/greenbar.g
 if" width="27" height="10" title="3" alt="3"/></td><td class="ctr2" 
id="c4">100%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td 
class="ctr1" id="f5">0</td><td class="ctr2" id="g5">1</td><td class="ctr1" 
id="h5">0</td><td class="ctr2" id="i2">2</td><td class="ctr1" id="j5">0</td><td 
class="ctr2" id="k5">1</td></tr></tbody></table><div class="footer"><span 
class="right">Created with <a href="http://www.jacoco.org/jacoco";>JaCoCo</a> 
0.8.8.202204050719</span></div></body></html>
\ No newline at end of file

Added: 
websites/production/commons/content/proper/commons-fileupload/jacoco/org.apache.commons.fileupload.servlet/ServletFileUpload.java.html
==============================================================================
--- 
websites/production/commons/content/proper/commons-fileupload/jacoco/org.apache.commons.fileupload.servlet/ServletFileUpload.java.html
 (added)
+++ 
websites/production/commons/content/proper/commons-fileupload/jacoco/org.apache.commons.fileupload.servlet/ServletFileUpload.java.html
 Mon Feb 13 10:43:35 2023
@@ -0,0 +1,156 @@
+<?xml version="1.0" encoding="iso-8859-1"?><!DOCTYPE html PUBLIC "-//W3C//DTD 
XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";><html 
xmlns="http://www.w3.org/1999/xhtml"; lang="en"><head><meta 
http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link 
rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link 
rel="shortcut icon" href="../jacoco-resources/report.gif" 
type="image/gif"/><title>ServletFileUpload.java</title><link rel="stylesheet" 
href="../jacoco-resources/prettify.css" type="text/css"/><script 
type="text/javascript" 
src="../jacoco-resources/prettify.js"></script></head><body 
onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" 
id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" 
class="el_session">Sessions</a></span><a href="../index.html" 
class="el_report">Apache Commons FileUpload</a> &gt; <a 
href="index.source.html" 
class="el_package">org.apache.commons.fileupload.servlet</a> &gt; <
 span 
class="el_source">ServletFileUpload.java</span></div><h1>ServletFileUpload.java</h1><pre
 class="source lang-java linenums">/*
+ * 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 &quot;License&quot;); 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 &quot;AS IS&quot; 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.fileupload.servlet;
+
+import java.io.IOException;
+import java.util.List;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.apache.commons.fileupload.FileItem;
+import org.apache.commons.fileupload.FileItemFactory;
+import org.apache.commons.fileupload.FileItemIterator;
+import org.apache.commons.fileupload.FileUpload;
+import org.apache.commons.fileupload.FileUploadBase;
+import org.apache.commons.fileupload.FileUploadException;
+
+/**
+ * &lt;p&gt;High level API for processing file uploads.&lt;/p&gt;
+ *
+ * &lt;p&gt;This class handles multiple files per single HTML widget, sent 
using
+ * &lt;code&gt;multipart/mixed&lt;/code&gt; encoding type, as specified by
+ * &lt;a href=&quot;http://www.ietf.org/rfc/rfc1867.txt&quot;&gt;RFC 
1867&lt;/a&gt;.  Use {@link
+ * #parseRequest(HttpServletRequest)} to acquire a list of {@link
+ * org.apache.commons.fileupload.FileItem}s associated with a given HTML
+ * widget.&lt;/p&gt;
+ *
+ * &lt;p&gt;How the data for individual parts is stored is determined by the 
factory
+ * used to create them; a given part may be in memory, on disk, or somewhere
+ * else.&lt;/p&gt;
+ */
+public class ServletFileUpload extends FileUpload {
+
+    /**
+     * Constant for HTTP POST method.
+     */
+    private static final String POST_METHOD = &quot;POST&quot;;
+
+    // ---------------------------------------------------------- Class methods
+
+    /**
+     * Utility method that determines whether the request contains multipart
+     * content.
+     *
+     * @param request The servlet request to be evaluated. Must be non-null.
+     *
+     * @return &lt;code&gt;true&lt;/code&gt; if the request is multipart;
+     *         &lt;code&gt;false&lt;/code&gt; otherwise.
+     */
+    public static final boolean isMultipartContent(
+            HttpServletRequest request) {
+<span class="nc bnc" id="L66" title="All 2 branches missed.">        if 
(!POST_METHOD.equalsIgnoreCase(request.getMethod())) {</span>
+<span class="nc" id="L67">            return false;</span>
+        }
+<span class="nc" id="L69">        return FileUploadBase.isMultipartContent(new 
ServletRequestContext(request));</span>
+    }
+
+    // ----------------------------------------------------------- Constructors
+
+    /**
+     * Constructs an uninitialised instance of this class. A factory must be
+     * configured, using &lt;code&gt;setFileItemFactory()&lt;/code&gt;, before 
attempting
+     * to parse requests.
+     *
+     * @see FileUpload#FileUpload(FileItemFactory)
+     */
+    public ServletFileUpload() {
+<span class="fc" id="L82">        super();</span>
+<span class="fc" id="L83">    }</span>
+
+    /**
+     * Constructs an instance of this class which uses the supplied factory to
+     * create &lt;code&gt;FileItem&lt;/code&gt; instances.
+     *
+     * @see FileUpload#FileUpload()
+     * @param fileItemFactory The factory to use for creating file items.
+     */
+    public ServletFileUpload(FileItemFactory fileItemFactory) {
+<span class="fc" id="L93">        super(fileItemFactory);</span>
+<span class="fc" id="L94">    }</span>
+
+    // --------------------------------------------------------- Public methods
+
+    /**
+     * Processes an &lt;a 
href=&quot;http://www.ietf.org/rfc/rfc1867.txt&quot;&gt;RFC 1867&lt;/a&gt;
+     * compliant &lt;code&gt;multipart/form-data&lt;/code&gt; stream.
+     *
+     * @param request The servlet request to be parsed.
+     *
+     * @return A list of &lt;code&gt;FileItem&lt;/code&gt; instances parsed 
from the
+     *         request, in the order that they were transmitted.
+     *
+     * @throws FileUploadException if there are problems reading/parsing
+     *                             the request or storing files.
+     */
+    @Override
+    public List&lt;FileItem&gt; parseRequest(HttpServletRequest request)
+    throws FileUploadException {
+<span class="fc" id="L113">        return parseRequest(new 
ServletRequestContext(request));</span>
+    }
+
+    /**
+     * Processes an &lt;a 
href=&quot;http://www.ietf.org/rfc/rfc1867.txt&quot;&gt;RFC 1867&lt;/a&gt;
+     * compliant &lt;code&gt;multipart/form-data&lt;/code&gt; stream.
+     *
+     * @param request The servlet request to be parsed.
+     *
+     * @return A map of &lt;code&gt;FileItem&lt;/code&gt; instances parsed 
from the request.
+     *
+     * @throws FileUploadException if there are problems reading/parsing
+     *                             the request or storing files.
+     *
+     * @since 1.3
+     */
+    public Map&lt;String, List&lt;FileItem&gt;&gt; 
parseParameterMap(HttpServletRequest request)
+            throws FileUploadException {
+<span class="fc" id="L131">        return parseParameterMap(new 
ServletRequestContext(request));</span>
+    }
+
+    /**
+     * Processes an &lt;a 
href=&quot;http://www.ietf.org/rfc/rfc1867.txt&quot;&gt;RFC 1867&lt;/a&gt;
+     * compliant &lt;code&gt;multipart/form-data&lt;/code&gt; stream.
+     *
+     * @param request The servlet request to be parsed.
+     *
+     * @return An iterator to instances of 
&lt;code&gt;FileItemStream&lt;/code&gt;
+     *         parsed from the request, in the order that they were
+     *         transmitted.
+     *
+     * @throws FileUploadException if there are problems reading/parsing
+     *                             the request or storing files.
+     * @throws IOException An I/O error occurred. This may be a network
+     *   error while communicating with the client or a problem while
+     *   storing the uploaded content.
+     */
+    public FileItemIterator getItemIterator(HttpServletRequest request)
+    throws FileUploadException, IOException {
+<span class="fc" id="L152">        return super.getItemIterator(new 
ServletRequestContext(request));</span>
+    }
+
+}
+</pre><div class="footer"><span class="right">Created with <a 
href="http://www.jacoco.org/jacoco";>JaCoCo</a> 
0.8.8.202204050719</span></div></body></html>
\ No newline at end of file

Added: 
websites/production/commons/content/proper/commons-fileupload/jacoco/org.apache.commons.fileupload.servlet/ServletRequestContext.html
==============================================================================
--- 
websites/production/commons/content/proper/commons-fileupload/jacoco/org.apache.commons.fileupload.servlet/ServletRequestContext.html
 (added)
+++ 
websites/production/commons/content/proper/commons-fileupload/jacoco/org.apache.commons.fileupload.servlet/ServletRequestContext.html
 Mon Feb 13 10:43:35 2023
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="iso-8859-1"?><!DOCTYPE html PUBLIC "-//W3C//DTD 
XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";><html 
xmlns="http://www.w3.org/1999/xhtml"; lang="en"><head><meta 
http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link 
rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link 
rel="shortcut icon" href="../jacoco-resources/report.gif" 
type="image/gif"/><title>ServletRequestContext</title><script 
type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body 
onload="initialSort(['breadcrumb'])"><div class="breadcrumb" 
id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" 
class="el_session">Sessions</a></span><a href="../index.html" 
class="el_report">Apache Commons FileUpload</a> &gt; <a href="index.html" 
class="el_package">org.apache.commons.fileupload.servlet</a> &gt; <span 
class="el_class">ServletRequestContext</span></div><h1>ServletRequestContext</h1><table
 class="cov
 erage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" 
id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" 
id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable 
ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" 
id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" 
id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" 
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" 
onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" 
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" 
onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" 
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" 
onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td
 class="bar">23 of 53</td><td class="ctr2">56%</td><td class="bar">0 of 
0</td><td class="ctr2">n/a</td><td 
 class="ctr1">1</td><td class="ctr2">7</td><td class="ctr1">5</td><td 
class="ctr2">15</td><td class="ctr1">1</td><td 
class="ctr2">7</td></tr></tfoot><tbody><tr><td id="a6"><a 
href="ServletRequestContext.java.html#L125" 
class="el_method">toString()</a></td><td class="bar" id="b0"><img 
src="../jacoco-resources/redbar.gif" width="120" height="10" title="16" 
alt="16"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d0"/><td 
class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" 
id="g0">1</td><td class="ctr1" id="h0">3</td><td class="ctr2" id="i1">3</td><td 
class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td 
id="a0"><a href="ServletRequestContext.java.html#L99" 
class="el_method">contentLength()</a></td><td class="bar" id="b1"><img 
src="../jacoco-resources/redbar.gif" width="52" height="10" title="7" 
alt="7"/><img src="../jacoco-resources/greenbar.gif" width="60" height="10" 
title="8" alt="8"/></td><td class="ctr2" id="c5">53%</td><td class
 ="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" 
id="f1">0</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">2</td><td 
class="ctr2" id="i0">5</td><td class="ctr1" id="j1">0</td><td class="ctr2" 
id="k1">1</td></tr><tr><td id="a5"><a 
href="ServletRequestContext.java.html#L51" 
class="el_method">ServletRequestContext(HttpServletRequest)</a></td><td 
class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="45" 
height="10" title="6" alt="6"/></td><td class="ctr2" id="c0">100%</td><td 
class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" 
id="f2">0</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">0</td><td 
class="ctr2" id="i2">3</td><td class="ctr1" id="j2">0</td><td class="ctr2" 
id="k2">1</td></tr><tr><td id="a1"><a 
href="ServletRequestContext.java.html#L64" 
class="el_method">getCharacterEncoding()</a></td><td class="bar" id="b3"><img 
src="../jacoco-resources/greenbar.gif" width="30" height="10" title="4" 
alt="4"/></td><td
  class="ctr2" id="c1">100%</td><td class="bar" id="d3"/><td class="ctr2" 
id="e3">n/a</td><td class="ctr1" id="f3">0</td><td class="ctr2" 
id="g3">1</td><td class="ctr1" id="h3">0</td><td class="ctr2" id="i3">1</td><td 
class="ctr1" id="j3">0</td><td class="ctr2" id="k3">1</td></tr><tr><td 
id="a3"><a href="ServletRequestContext.java.html#L74" 
class="el_method">getContentType()</a></td><td class="bar" id="b4"><img 
src="../jacoco-resources/greenbar.gif" width="30" height="10" title="4" 
alt="4"/></td><td class="ctr2" id="c2">100%</td><td class="bar" id="d4"/><td 
class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">0</td><td class="ctr2" 
id="g4">1</td><td class="ctr1" id="h4">0</td><td class="ctr2" id="i4">1</td><td 
class="ctr1" id="j4">0</td><td class="ctr2" id="k4">1</td></tr><tr><td 
id="a2"><a href="ServletRequestContext.java.html#L86" 
class="el_method">getContentLength()</a></td><td class="bar" id="b5"><img 
src="../jacoco-resources/greenbar.gif" width="30" height="10" title="4" alt="4
 "/></td><td class="ctr2" id="c3">100%</td><td class="bar" id="d5"/><td 
class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">0</td><td class="ctr2" 
id="g5">1</td><td class="ctr1" id="h5">0</td><td class="ctr2" id="i5">1</td><td 
class="ctr1" id="j5">0</td><td class="ctr2" id="k5">1</td></tr><tr><td 
id="a4"><a href="ServletRequestContext.java.html#L115" 
class="el_method">getInputStream()</a></td><td class="bar" id="b6"><img 
src="../jacoco-resources/greenbar.gif" width="30" height="10" title="4" 
alt="4"/></td><td class="ctr2" id="c4">100%</td><td class="bar" id="d6"/><td 
class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">0</td><td class="ctr2" 
id="g6">1</td><td class="ctr1" id="h6">0</td><td class="ctr2" id="i6">1</td><td 
class="ctr1" id="j6">0</td><td class="ctr2" 
id="k6">1</td></tr></tbody></table><div class="footer"><span 
class="right">Created with <a href="http://www.jacoco.org/jacoco";>JaCoCo</a> 
0.8.8.202204050719</span></div></body></html>
\ No newline at end of file

Added: 
websites/production/commons/content/proper/commons-fileupload/jacoco/org.apache.commons.fileupload.servlet/ServletRequestContext.java.html
==============================================================================
--- 
websites/production/commons/content/proper/commons-fileupload/jacoco/org.apache.commons.fileupload.servlet/ServletRequestContext.java.html
 (added)
+++ 
websites/production/commons/content/proper/commons-fileupload/jacoco/org.apache.commons.fileupload.servlet/ServletRequestContext.java.html
 Mon Feb 13 10:43:35 2023
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="iso-8859-1"?><!DOCTYPE html PUBLIC "-//W3C//DTD 
XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";><html 
xmlns="http://www.w3.org/1999/xhtml"; lang="en"><head><meta 
http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link 
rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link 
rel="shortcut icon" href="../jacoco-resources/report.gif" 
type="image/gif"/><title>ServletRequestContext.java</title><link 
rel="stylesheet" href="../jacoco-resources/prettify.css" 
type="text/css"/><script type="text/javascript" 
src="../jacoco-resources/prettify.js"></script></head><body 
onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" 
id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" 
class="el_session">Sessions</a></span><a href="../index.html" 
class="el_report">Apache Commons FileUpload</a> &gt; <a 
href="index.source.html" 
class="el_package">org.apache.commons.fileupload.servlet</a> &g
 t; <span 
class="el_source">ServletRequestContext.java</span></div><h1>ServletRequestContext.java</h1><pre
 class="source lang-java linenums">/*
+ * 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 &quot;License&quot;); 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 &quot;AS IS&quot; 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.fileupload.servlet;
+
+import static java.lang.String.format;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.apache.commons.fileupload.FileUploadBase;
+import org.apache.commons.fileupload.UploadContext;
+
+/**
+ * &lt;p&gt;Provides access to the request information needed for a request 
made to
+ * an HTTP servlet.&lt;/p&gt;
+ *
+ * @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.
+     */
+<span class="fc" id="L51">    public ServletRequestContext(HttpServletRequest 
request) {</span>
+<span class="fc" id="L52">        this.request = request;</span>
+<span class="fc" id="L53">    }</span>
+
+    // --------------------------------------------------------- Public Methods
+
+    /**
+     * Retrieve the character encoding for the request.
+     *
+     * @return The character encoding for the request.
+     */
+    @Override
+    public String getCharacterEncoding() {
+<span class="fc" id="L64">        return request.getCharacterEncoding();</span>
+    }
+
+    /**
+     * Retrieve the content type of the request.
+     *
+     * @return The content type of the request.
+     */
+    @Override
+    public String getContentType() {
+<span class="fc" id="L74">        return request.getContentType();</span>
+    }
+
+    /**
+     * 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() {
+<span class="fc" id="L86">        return request.getContentLength();</span>
+    }
+
+    /**
+     * Retrieve the content length of the request.
+     *
+     * @return The content length of the request.
+     * @since 1.3
+     */
+    @Override
+    public long contentLength() {
+        long size;
+        try {
+<span class="nc" id="L99">            size = 
Long.parseLong(request.getHeader(FileUploadBase.CONTENT_LENGTH));</span>
+<span class="fc" id="L100">        } catch (NumberFormatException e) {</span>
+<span class="fc" id="L101">            size = 
request.getContentLength();</span>
+<span class="nc" id="L102">        }</span>
+<span class="fc" id="L103">        return size;</span>
+    }
+
+    /**
+     * 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 {
+<span class="fc" id="L115">        return request.getInputStream();</span>
+    }
+
+    /**
+     * Returns a string representation of this object.
+     *
+     * @return a string representation of this object.
+     */
+    @Override
+    public String toString() {
+<span class="nc" id="L125">        return format(&quot;ContentLength=%s, 
ContentType=%s&quot;,</span>
+<span class="nc" id="L126">                
Long.valueOf(this.contentLength()),</span>
+<span class="nc" id="L127">                this.getContentType());</span>
+    }
+
+}
+</pre><div class="footer"><span class="right">Created with <a 
href="http://www.jacoco.org/jacoco";>JaCoCo</a> 
0.8.8.202204050719</span></div></body></html>
\ No newline at end of file

Added: 
websites/production/commons/content/proper/commons-fileupload/jacoco/org.apache.commons.fileupload.servlet/index.html
==============================================================================
--- 
websites/production/commons/content/proper/commons-fileupload/jacoco/org.apache.commons.fileupload.servlet/index.html
 (added)
+++ 
websites/production/commons/content/proper/commons-fileupload/jacoco/org.apache.commons.fileupload.servlet/index.html
 Mon Feb 13 10:43:35 2023
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="iso-8859-1"?><!DOCTYPE html PUBLIC "-//W3C//DTD 
XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";><html 
xmlns="http://www.w3.org/1999/xhtml"; lang="en"><head><meta 
http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link 
rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link 
rel="shortcut icon" href="../jacoco-resources/report.gif" 
type="image/gif"/><title>org.apache.commons.fileupload.servlet</title><script 
type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body 
onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" 
id="breadcrumb"><span class="info"><a href="index.source.html" 
class="el_source">Source Files</a><a href="../jacoco-sessions.html" 
class="el_session">Sessions</a></span><a href="../index.html" 
class="el_report">Apache Commons FileUpload</a> &gt; <span 
class="el_package">org.apache.commons.fileupload.servlet</span></div><h1>org.apache.common
 s.fileupload.servlet</h1><table class="coverage" cellspacing="0" 
id="coveragetable"><thead><tr><td class="sortable" id="a" 
onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" 
onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" 
id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" 
onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" 
onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" 
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" 
onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" 
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" 
onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" 
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" 
onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" 
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" on
 click="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td 
class="bar">72 of 130</td><td class="ctr2">44%</td><td class="bar">2 of 
2</td><td class="ctr2">0%</td><td class="ctr1">9</td><td 
class="ctr2">20</td><td class="ctr1">19</td><td class="ctr2">36</td><td 
class="ctr1">8</td><td class="ctr2">19</td><td class="ctr1">1</td><td 
class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a0"><a 
href="FileCleanerCleanup.html" class="el_class">FileCleanerCleanup</a></td><td 
class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="81" 
height="10" title="36" alt="36"/></td><td class="ctr2" id="c2">0%</td><td 
class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" 
id="f0">6</td><td class="ctr2" id="g2">6</td><td class="ctr1" 
id="h0">11</td><td class="ctr2" id="i1">11</td><td class="ctr1" 
id="j0">6</td><td class="ctr2" id="k1">6</td><td class="ctr1" id="l0">1</td><td 
class="ctr2" id="m0">1</td></tr><tr><td id="a2"><a 
href="ServletRequestContext.html" c
 lass="el_class">ServletRequestContext</a></td><td class="bar" id="b1"><img 
src="../jacoco-resources/redbar.gif" width="52" height="10" title="23" 
alt="23"/><img src="../jacoco-resources/greenbar.gif" width="67" height="10" 
title="30" alt="30"/></td><td class="ctr2" id="c1">56%</td><td class="bar" 
id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td 
class="ctr2" id="g0">7</td><td class="ctr1" id="h1">5</td><td class="ctr2" 
id="i0">15</td><td class="ctr1" id="j1">1</td><td class="ctr2" 
id="k0">7</td><td class="ctr1" id="l1">0</td><td class="ctr2" 
id="m1">1</td></tr><tr><td id="a1"><a href="ServletFileUpload.html" 
class="el_class">ServletFileUpload</a></td><td class="bar" id="b2"><img 
src="../jacoco-resources/redbar.gif" width="29" height="10" title="13" 
alt="13"/><img src="../jacoco-resources/greenbar.gif" width="63" height="10" 
title="28" alt="28"/></td><td class="ctr2" id="c0">68%</td><td class="bar" 
id="d0"><img src="../jacoco-resources/redbar.gif" width="12
 0" height="10" title="2" alt="2"/></td><td class="ctr2" id="e0">0%</td><td 
class="ctr1" id="f1">2</td><td class="ctr2" id="g1">7</td><td class="ctr1" 
id="h2">3</td><td class="ctr2" id="i2">10</td><td class="ctr1" 
id="j2">1</td><td class="ctr2" id="k2">6</td><td class="ctr1" id="l2">0</td><td 
class="ctr2" id="m2">1</td></tr></tbody></table><div class="footer"><span 
class="right">Created with <a href="http://www.jacoco.org/jacoco";>JaCoCo</a> 
0.8.8.202204050719</span></div></body></html>
\ No newline at end of file

Added: 
websites/production/commons/content/proper/commons-fileupload/jacoco/org.apache.commons.fileupload.servlet/index.source.html
==============================================================================
--- 
websites/production/commons/content/proper/commons-fileupload/jacoco/org.apache.commons.fileupload.servlet/index.source.html
 (added)
+++ 
websites/production/commons/content/proper/commons-fileupload/jacoco/org.apache.commons.fileupload.servlet/index.source.html
 Mon Feb 13 10:43:35 2023
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="iso-8859-1"?><!DOCTYPE html PUBLIC "-//W3C//DTD 
XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";><html 
xmlns="http://www.w3.org/1999/xhtml"; lang="en"><head><meta 
http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link 
rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link 
rel="shortcut icon" href="../jacoco-resources/report.gif" 
type="image/gif"/><title>org.apache.commons.fileupload.servlet</title><script 
type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body 
onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" 
id="breadcrumb"><span class="info"><a href="index.html" 
class="el_class">Classes</a><a href="../jacoco-sessions.html" 
class="el_session">Sessions</a></span><a href="../index.html" 
class="el_report">Apache Commons FileUpload</a> &gt; <span 
class="el_package">org.apache.commons.fileupload.servlet</span></div><h1>org.apache.commons.fileupload.
 servlet</h1><table class="coverage" cellspacing="0" 
id="coveragetable"><thead><tr><td class="sortable" id="a" 
onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" 
onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" 
id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" 
onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" 
onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" 
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" 
onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" 
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" 
onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" 
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" 
onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" 
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" 
onclick="toggle
 Sort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td 
class="bar">72 of 130</td><td class="ctr2">44%</td><td class="bar">2 of 
2</td><td class="ctr2">0%</td><td class="ctr1">9</td><td 
class="ctr2">20</td><td class="ctr1">19</td><td class="ctr2">36</td><td 
class="ctr1">8</td><td class="ctr2">19</td><td class="ctr1">1</td><td 
class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a0"><a 
href="FileCleanerCleanup.java.html" 
class="el_source">FileCleanerCleanup.java</a></td><td class="bar" id="b0"><img 
src="../jacoco-resources/redbar.gif" width="81" height="10" title="36" 
alt="36"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d1"/><td 
class="ctr2" id="e1">n/a</td><td class="ctr1" id="f0">6</td><td class="ctr2" 
id="g2">6</td><td class="ctr1" id="h0">11</td><td class="ctr2" 
id="i1">11</td><td class="ctr1" id="j0">6</td><td class="ctr2" 
id="k1">6</td><td class="ctr1" id="l0">1</td><td class="ctr2" 
id="m0">1</td></tr><tr><td id="a2"><a href="ServletRequestContext.java.html
 " class="el_source">ServletRequestContext.java</a></td><td class="bar" 
id="b1"><img src="../jacoco-resources/redbar.gif" width="52" height="10" 
title="23" alt="23"/><img src="../jacoco-resources/greenbar.gif" width="67" 
height="10" title="30" alt="30"/></td><td class="ctr2" id="c1">56%</td><td 
class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" 
id="f2">1</td><td class="ctr2" id="g0">7</td><td class="ctr1" id="h1">5</td><td 
class="ctr2" id="i0">15</td><td class="ctr1" id="j1">1</td><td class="ctr2" 
id="k0">7</td><td class="ctr1" id="l1">0</td><td class="ctr2" 
id="m1">1</td></tr><tr><td id="a1"><a href="ServletFileUpload.java.html" 
class="el_source">ServletFileUpload.java</a></td><td class="bar" id="b2"><img 
src="../jacoco-resources/redbar.gif" width="29" height="10" title="13" 
alt="13"/><img src="../jacoco-resources/greenbar.gif" width="63" height="10" 
title="28" alt="28"/></td><td class="ctr2" id="c0">68%</td><td class="bar" 
id="d0"><img src="../jacoco-resources/r
 edbar.gif" width="120" height="10" title="2" alt="2"/></td><td class="ctr2" 
id="e0">0%</td><td class="ctr1" id="f1">2</td><td class="ctr2" 
id="g1">7</td><td class="ctr1" id="h2">3</td><td class="ctr2" 
id="i2">10</td><td class="ctr1" id="j2">1</td><td class="ctr2" 
id="k2">6</td><td class="ctr1" id="l2">0</td><td class="ctr2" 
id="m2">1</td></tr></tbody></table><div class="footer"><span 
class="right">Created with <a href="http://www.jacoco.org/jacoco";>JaCoCo</a> 
0.8.8.202204050719</span></div></body></html>
\ No newline at end of file

Added: 
websites/production/commons/content/proper/commons-fileupload/jacoco/org.apache.commons.fileupload.util.mime/Base64Decoder.html
==============================================================================
--- 
websites/production/commons/content/proper/commons-fileupload/jacoco/org.apache.commons.fileupload.util.mime/Base64Decoder.html
 (added)
+++ 
websites/production/commons/content/proper/commons-fileupload/jacoco/org.apache.commons.fileupload.util.mime/Base64Decoder.html
 Mon Feb 13 10:43:35 2023
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="iso-8859-1"?><!DOCTYPE html PUBLIC "-//W3C//DTD 
XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";><html 
xmlns="http://www.w3.org/1999/xhtml"; lang="en"><head><meta 
http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link 
rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link 
rel="shortcut icon" href="../jacoco-resources/report.gif" 
type="image/gif"/><title>Base64Decoder</title><script type="text/javascript" 
src="../jacoco-resources/sort.js"></script></head><body 
onload="initialSort(['breadcrumb'])"><div class="breadcrumb" 
id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" 
class="el_session">Sessions</a></span><a href="../index.html" 
class="el_report">Apache Commons FileUpload</a> &gt; <a href="index.html" 
class="el_package">org.apache.commons.fileupload.util.mime</a> &gt; <span 
class="el_class">Base64Decoder</span></div><h1>Base64Decoder</h1><table 
class="coverage" cellspacing="0"
  id="coveragetable"><thead><tr><td class="sortable" id="a" 
onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" 
onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" 
id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" 
onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" 
onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" 
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" 
onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" 
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" 
onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" 
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" 
onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td
 class="bar">0 of 416</td><td class="ctr2">100%</td><td class="bar">1 of 
22</td><td class="ctr2">95%</td><td class="ctr1">1</td><
 td class="ctr2">13</td><td class="ctr1">0</td><td class="ctr2">37</td><td 
class="ctr1">0</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td 
id="a1"><a href="Base64Decoder.java.html#L50" class="el_method">static 
{...}</a></td><td class="bar" id="b0"><img 
src="../jacoco-resources/greenbar.gif" width="120" height="10" title="294" 
alt="294"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d1"><img 
src="../jacoco-resources/greenbar.gif" width="26" height="10" title="4" 
alt="4"/></td><td class="ctr2" id="e0">100%</td><td class="ctr1" 
id="f1">0</td><td class="ctr2" id="g1">3</td><td class="ctr1" id="h0">0</td><td 
class="ctr2" id="i1">8</td><td class="ctr1" id="j0">0</td><td class="ctr2" 
id="k0">1</td></tr><tr><td id="a0"><a href="Base64Decoder.java.html#L107" 
class="el_method">decode(byte[], OutputStream)</a></td><td class="bar" 
id="b1"><img src="../jacoco-resources/greenbar.gif" width="49" height="10" 
title="122" alt="122"/></td><td class="ctr2" id="c1">100%</td><td class="
 bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="6" height="10" 
title="1" alt="1"/><img src="../jacoco-resources/greenbar.gif" width="113" 
height="10" title="17" alt="17"/></td><td class="ctr2" id="e1">94%</td><td 
class="ctr1" id="f0">1</td><td class="ctr2" id="g0">10</td><td class="ctr1" 
id="h1">0</td><td class="ctr2" id="i0">29</td><td class="ctr1" 
id="j1">0</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div 
class="footer"><span class="right">Created with <a 
href="http://www.jacoco.org/jacoco";>JaCoCo</a> 
0.8.8.202204050719</span></div></body></html>
\ No newline at end of file

Added: 
websites/production/commons/content/proper/commons-fileupload/jacoco/org.apache.commons.fileupload.util.mime/Base64Decoder.java.html
==============================================================================
--- 
websites/production/commons/content/proper/commons-fileupload/jacoco/org.apache.commons.fileupload.util.mime/Base64Decoder.java.html
 (added)
+++ 
websites/production/commons/content/proper/commons-fileupload/jacoco/org.apache.commons.fileupload.util.mime/Base64Decoder.java.html
 Mon Feb 13 10:43:35 2023
@@ -0,0 +1,153 @@
+<?xml version="1.0" encoding="iso-8859-1"?><!DOCTYPE html PUBLIC "-//W3C//DTD 
XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";><html 
xmlns="http://www.w3.org/1999/xhtml"; lang="en"><head><meta 
http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link 
rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link 
rel="shortcut icon" href="../jacoco-resources/report.gif" 
type="image/gif"/><title>Base64Decoder.java</title><link rel="stylesheet" 
href="../jacoco-resources/prettify.css" type="text/css"/><script 
type="text/javascript" 
src="../jacoco-resources/prettify.js"></script></head><body 
onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" 
id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" 
class="el_session">Sessions</a></span><a href="../index.html" 
class="el_report">Apache Commons FileUpload</a> &gt; <a 
href="index.source.html" 
class="el_package">org.apache.commons.fileupload.util.mime</a> &gt; <sp
 an 
class="el_source">Base64Decoder.java</span></div><h1>Base64Decoder.java</h1><pre
 class="source lang-java linenums">/*
+ * 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 &quot;License&quot;); 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 &quot;AS IS&quot; 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.fileupload.util.mime;
+
+import java.io.IOException;
+import java.io.OutputStream;
+
+/**
+ * @since 1.3
+ */
+final class Base64Decoder {
+
+    /**
+     * Decoding table value for invalid bytes.
+     */
+    private static final int INVALID_BYTE = -1; // must be outside range 0-63
+
+    /**
+     * Decoding table value for padding bytes, so can detect PAD afer 
conversion.
+     */
+    private static final int PAD_BYTE = -2; // must be outside range 0-63
+
+    /**
+     * Mask to treat byte as unsigned integer.
+     */
+    private static final int MASK_BYTE_UNSIGNED = 0xFF;
+
+    /**
+     * Number of bytes per encoded chunk - 4 6bit bytes produce 3 8bit bytes 
on output.
+     */
+    private static final int INPUT_BYTES_PER_CHUNK = 4;
+
+    /**
+     * Set up the encoding table.
+     */
+<span class="fc" id="L50">    private static final byte[] ENCODING_TABLE = 
{</span>
+        (byte) 'A', (byte) 'B', (byte) 'C', (byte) 'D', (byte) 'E', (byte) 
'F', (byte) 'G',
+        (byte) 'H', (byte) 'I', (byte) 'J', (byte) 'K', (byte) 'L', (byte) 
'M', (byte) 'N',
+        (byte) 'O', (byte) 'P', (byte) 'Q', (byte) 'R', (byte) 'S', (byte) 
'T', (byte) 'U',
+        (byte) 'V', (byte) 'W', (byte) 'X', (byte) 'Y', (byte) 'Z',
+        (byte) 'a', (byte) 'b', (byte) 'c', (byte) 'd', (byte) 'e', (byte) 
'f', (byte) 'g',
+        (byte) 'h', (byte) 'i', (byte) 'j', (byte) 'k', (byte) 'l', (byte) 
'm', (byte) 'n',
+        (byte) 'o', (byte) 'p', (byte) 'q', (byte) 'r', (byte) 's', (byte) 
't', (byte) 'u',
+        (byte) 'v', (byte) 'w', (byte) 'x', (byte) 'y', (byte) 'z',
+        (byte) '0', (byte) '1', (byte) '2', (byte) '3', (byte) '4', (byte) 
'5', (byte) '6',
+        (byte) '7', (byte) '8', (byte) '9',
+        (byte) '+', (byte) '/'
+    };
+
+    /**
+     * The padding byte.
+     */
+    private static final byte PADDING = (byte) '=';
+
+    /**
+     * Set up the decoding table; this is indexed by a byte converted to an 
unsigned int,
+     * so must be at least as large as the number of different byte values,
+     * positive and negative and zero.
+     */
+<span class="fc" id="L74">    private static final byte[] DECODING_TABLE = new 
byte[Byte.MAX_VALUE - Byte.MIN_VALUE + 1];</span>
+
+    static {
+        // Initialise as all invalid characters
+<span class="fc bfc" id="L78" title="All 2 branches covered.">        for (int 
i = 0; i &lt; DECODING_TABLE.length; i++) {</span>
+<span class="fc" id="L79">            DECODING_TABLE[i] = INVALID_BYTE;</span>
+        }
+        // set up valid characters
+<span class="fc bfc" id="L82" title="All 2 branches covered.">        for (int 
i = 0; i &lt; ENCODING_TABLE.length; i++) {</span>
+<span class="fc" id="L83">            DECODING_TABLE[ENCODING_TABLE[i]] = 
(byte) i;</span>
+        }
+        // Allow pad byte to be easily detected after conversion
+<span class="fc" id="L86">        DECODING_TABLE[PADDING] = PAD_BYTE;</span>
+<span class="fc" id="L87">    }</span>
+
+    /**
+     * Hidden constructor, this class must not be instantiated.
+     */
+    private Base64Decoder() {
+        // do nothing
+    }
+
+    /**
+     * Decode the base 64 encoded byte data writing it to the given output 
stream,
+     * whitespace characters will be ignored.
+     *
+     * @param data the buffer containing the Base64-encoded data
+     * @param out the output stream to hold the decoded bytes
+     *
+     * @return the number of bytes produced.
+     * @throws IOException thrown when the padding is incorrect or the input 
is truncated.
+     */
+    public static int decode(byte[] data, OutputStream out) throws IOException 
{
+<span class="fc" id="L107">        int outLen = 0;</span>
+<span class="fc" id="L108">        byte[] cache = new 
byte[INPUT_BYTES_PER_CHUNK];</span>
+<span class="fc" id="L109">        int cachedBytes = 0;</span>
+
+<span class="fc bfc" id="L111" title="All 2 branches covered.">        for 
(byte b : data) {</span>
+<span class="fc" id="L112">            final byte d = 
DECODING_TABLE[MASK_BYTE_UNSIGNED &amp; b];</span>
+<span class="fc bfc" id="L113" title="All 2 branches covered.">            if 
(d == INVALID_BYTE) {</span>
+<span class="fc" id="L114">                continue; // Ignore invalid 
bytes</span>
+            }
+<span class="fc" id="L116">            cache[cachedBytes++] = d;</span>
+<span class="fc bfc" id="L117" title="All 2 branches covered.">            if 
(cachedBytes == INPUT_BYTES_PER_CHUNK) {</span>
+                // CHECKSTYLE IGNORE MagicNumber FOR NEXT 4 LINES
+<span class="fc" id="L119">                final byte b1 = cache[0];</span>
+<span class="fc" id="L120">                final byte b2 = cache[1];</span>
+<span class="fc" id="L121">                final byte b3 = cache[2];</span>
+<span class="fc" id="L122">                final byte b4 = cache[3];</span>
+<span class="pc bpc" id="L123" title="1 of 4 branches missed.">                
if (b1 == PAD_BYTE || b2 == PAD_BYTE) {</span>
+<span class="fc" id="L124">                    throw new 
IOException(&quot;Invalid Base64 input: incorrect padding, first two bytes 
cannot be padding&quot;);</span>
+                }
+                // Convert 4 6-bit bytes to 3 8-bit bytes
+                // CHECKSTYLE IGNORE MagicNumber FOR NEXT 1 LINE
+<span class="fc" id="L128">                out.write((b1 &lt;&lt; 2) | (b2 
&gt;&gt; 4)); // 6 bits of b1 plus 2 bits of b2</span>
+<span class="fc" id="L129">                outLen++;</span>
+<span class="fc bfc" id="L130" title="All 2 branches covered.">                
if (b3 != PAD_BYTE) {</span>
+                    // CHECKSTYLE IGNORE MagicNumber FOR NEXT 1 LINE
+<span class="fc" id="L132">                    out.write((b2 &lt;&lt; 4) | (b3 
&gt;&gt; 2)); // 4 bits of b2 plus 4 bits of b3</span>
+<span class="fc" id="L133">                    outLen++;</span>
+<span class="fc bfc" id="L134" title="All 2 branches covered.">                
    if (b4 != PAD_BYTE) {</span>
+                        // CHECKSTYLE IGNORE MagicNumber FOR NEXT 1 LINE
+<span class="fc" id="L136">                        out.write((b3 &lt;&lt; 6) | 
b4);        // 2 bits of b3 plus 6 bits of b4</span>
+<span class="fc" id="L137">                        outLen++;</span>
+                    }
+<span class="fc bfc" id="L139" title="All 2 branches covered.">                
} else if (b4 != PAD_BYTE) { // if byte 3 is pad, byte 4 must be pad too</span>
+<span class="fc" id="L140">                    throw new // line wrap to avoid 
120 char limit</span>
+                    IOException(&quot;Invalid Base64 input: incorrect padding, 
4th byte must be padding if 3rd byte is&quot;);
+                }
+<span class="fc" id="L143">                cachedBytes = 0;</span>
+            }
+        }
+        // Check for anything left over
+<span class="fc bfc" id="L147" title="All 2 branches covered.">        if 
(cachedBytes != 0) {</span>
+<span class="fc" id="L148">            throw new IOException(&quot;Invalid 
Base64 input: truncated&quot;);</span>
+        }
+<span class="fc" id="L150">        return outLen;</span>
+    }
+}
+</pre><div class="footer"><span class="right">Created with <a 
href="http://www.jacoco.org/jacoco";>JaCoCo</a> 
0.8.8.202204050719</span></div></body></html>
\ No newline at end of file

Added: 
websites/production/commons/content/proper/commons-fileupload/jacoco/org.apache.commons.fileupload.util.mime/MimeUtility.html
==============================================================================
--- 
websites/production/commons/content/proper/commons-fileupload/jacoco/org.apache.commons.fileupload.util.mime/MimeUtility.html
 (added)
+++ 
websites/production/commons/content/proper/commons-fileupload/jacoco/org.apache.commons.fileupload.util.mime/MimeUtility.html
 Mon Feb 13 10:43:35 2023
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="iso-8859-1"?><!DOCTYPE html PUBLIC "-//W3C//DTD 
XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd";><html 
xmlns="http://www.w3.org/1999/xhtml"; lang="en"><head><meta 
http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link 
rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link 
rel="shortcut icon" href="../jacoco-resources/report.gif" 
type="image/gif"/><title>MimeUtility</title><script type="text/javascript" 
src="../jacoco-resources/sort.js"></script></head><body 
onload="initialSort(['breadcrumb'])"><div class="breadcrumb" 
id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" 
class="el_session">Sessions</a></span><a href="../index.html" 
class="el_report">Apache Commons FileUpload</a> &gt; <a href="index.html" 
class="el_package">org.apache.commons.fileupload.util.mime</a> &gt; <span 
class="el_class">MimeUtility</span></div><h1>MimeUtility</h1><table 
class="coverage" cellspacing="0" id="c
 overagetable"><thead><tr><td class="sortable" id="a" 
onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" 
onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" 
id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" 
onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" 
onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" 
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" 
onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" 
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" 
onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" 
onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" 
onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td
 class="bar">92 of 360</td><td class="ctr2">74%</td><td class="bar">11 of 
40</td><td class="ctr2">72%</td><td class="ctr1">10</td><td c
 lass="ctr2">24</td><td class="ctr1">15</td><td class="ctr2">85</td><td 
class="ctr1">0</td><td class="ctr2">4</td></tr></tfoot><tbody><tr><td 
id="a1"><a href="MimeUtility.java.html#L205" 
class="el_method">decodeWord(String)</a></td><td class="bar" id="b0"><img 
src="../jacoco-resources/redbar.gif" width="45" height="10" title="62" 
alt="62"/><img src="../jacoco-resources/greenbar.gif" width="74" height="10" 
title="100" alt="100"/></td><td class="ctr2" id="c3">61%</td><td class="bar" 
id="d0"><img src="../jacoco-resources/redbar.gif" width="32" height="10" 
title="6" alt="6"/><img src="../jacoco-resources/greenbar.gif" width="43" 
height="10" title="8" alt="8"/></td><td class="ctr2" id="e2">57%</td><td 
class="ctr1" id="f0">6</td><td class="ctr2" id="g1">8</td><td class="ctr1" 
id="h1">6</td><td class="ctr2" id="i1">27</td><td class="ctr1" 
id="j0">0</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a 
href="MimeUtility.java.html#L102" 
class="el_method">decodeText(String)</a></td><td cl
 ass="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="20" 
height="10" title="28" alt="28"/><img src="../jacoco-resources/greenbar.gif" 
width="72" height="10" title="98" alt="98"/></td><td class="ctr2" 
id="c2">77%</td><td class="bar" id="d1"><img 
src="../jacoco-resources/redbar.gif" width="21" height="10" title="4" 
alt="4"/><img src="../jacoco-resources/greenbar.gif" width="98" height="10" 
title="18" alt="18"/></td><td class="ctr2" id="e0">81%</td><td class="ctr1" 
id="f1">3</td><td class="ctr2" id="g0">12</td><td class="ctr1" 
id="h0">8</td><td class="ctr2" id="i0">40</td><td class="ctr1" 
id="j1">0</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a2"><a 
href="MimeUtility.java.html#L270" 
class="el_method">javaCharset(String)</a></td><td class="bar" id="b2"><img 
src="../jacoco-resources/redbar.gif" width="1" height="10" title="2" 
alt="2"/><img src="../jacoco-resources/greenbar.gif" width="11" height="10" 
title="15" alt="15"/></td><td class="ctr2" id="c1">88%</td><td clas
 s="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="5" 
height="10" title="1" alt="1"/><img src="../jacoco-resources/greenbar.gif" 
width="16" height="10" title="3" alt="3"/></td><td class="ctr2" 
id="e1">75%</td><td class="ctr1" id="f2">1</td><td class="ctr2" 
id="g2">3</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i3">6</td><td 
class="ctr1" id="j2">0</td><td class="ctr2" id="k2">1</td></tr><tr><td 
id="a3"><a href="MimeUtility.java.html#L66" class="el_method">static 
{...}</a></td><td class="bar" id="b3"><img 
src="../jacoco-resources/greenbar.gif" width="40" height="10" title="55" 
alt="55"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d3"/><td 
class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">0</td><td class="ctr2" 
id="g3">1</td><td class="ctr1" id="h3">0</td><td class="ctr2" 
id="i2">12</td><td class="ctr1" id="j3">0</td><td class="ctr2" 
id="k3">1</td></tr></tbody></table><div class="footer"><span 
class="right">Created with <a href="http://www.ja
 coco.org/jacoco">JaCoCo</a> 0.8.8.202204050719</span></div></body></html>
\ No newline at end of file


Reply via email to