blob: 348a85eaca148df67722cd6bcc231d55e6463681 [file] [log] [blame]
<?xml version="1.0"?>
<!DOCTYPE coverage SYSTEM "http://cobertura.sourceforge.net/xml/coverage-04.dtd">
<coverage line-rate="0.5230092036814726" branch-rate="0.3683241252302026" lines-covered="1307" lines-valid="2499" branches-covered="400" branches-valid="1086" complexity="2.146604938271605" version="1.9.4.1" timestamp="1457132701172">
<sources>
<source>--source</source>
<source>/Users/demers/dev/source/shiro-1.2.x/web/src/main/java</source>
</sources>
<packages>
<package name="org.apache.shiro.web.config" line-rate="1.0" branch-rate="0.8333333333333334" complexity="2.25">
<classes>
<class name="org.apache.shiro.web.config.IniFilterChainResolverFactory" filename="org/apache/shiro/web/config/IniFilterChainResolverFactory.java" line-rate="1.0" branch-rate="0.8333333333333334" complexity="2.6666666666666665">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="48" hits="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="55" hits="14" branch="false"/>
<line number="56" hits="14" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/config/Ini;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="59" hits="6" branch="false"/>
<line number="60" hits="6" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/config/Ini;Ljava/util/Map;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="63" hits="3" branch="false"/>
<line number="64" hits="3" branch="false"/>
<line number="65" hits="3" branch="false"/>
</lines>
</method>
<method name="buildChains" signature="(Lorg/apache/shiro/web/filter/mgt/FilterChainManager;Lorg/apache/shiro/config/Ini;)V" line-rate="1.0" branch-rate="0.8333333333333334">
<lines>
<line number="96" hits="6" branch="false"/>
<line number="98" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="99" hits="4" branch="false"/>
<line number="101" hits="4" branch="false"/>
<line number="104" hits="6" branch="false"/>
<line number="106" hits="6" branch="false"/>
<line number="111" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="112" hits="6" branch="false"/>
<line number="116" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="117" hits="3" branch="false"/>
<line number="120" hits="6" branch="false"/>
<line number="123" hits="6" branch="false"/>
<line number="126" hits="6" branch="false"/>
<line number="127" hits="6" branch="false"/>
<line number="128" hits="6" branch="false"/>
</lines>
</method>
<method name="createChains" signature="(Ljava/util/Map;Lorg/apache/shiro/web/filter/mgt/FilterChainManager;)V" line-rate="1.0" branch-rate="0.75">
<lines>
<line number="178" hits="7" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="179" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="180" hits="4" branch="false"/>
<line number="182" hits="4" branch="false"/>
<line number="185" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="186" hits="3" branch="false"/>
<line number="189" hits="3" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="190" hits="3" branch="false"/>
<line number="191" hits="3" branch="false"/>
<line number="192" hits="3" branch="false"/>
<line number="193" hits="3" branch="false"/>
<line number="194" hits="3" branch="false"/>
</lines>
</method>
<method name="createDefaultInstance" signature="()Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
</lines>
</method>
<method name="createDefaultInstance" signature="()Lorg/apache/shiro/web/filter/mgt/FilterChainResolver;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="86" hits="7" branch="false"/>
<line number="87" hits="7" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="88" hits="4" branch="false"/>
<line number="90" hits="3" branch="false"/>
</lines>
</method>
<method name="createInstance" signature="(Lorg/apache/shiro/config/Ini;)Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="43" hits="7" branch="false"/>
</lines>
</method>
<method name="createInstance" signature="(Lorg/apache/shiro/config/Ini;)Lorg/apache/shiro/web/filter/mgt/FilterChainResolver;" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="76" hits="6" branch="false"/>
<line number="77" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="78" hits="6" branch="false"/>
<line number="79" hits="6" branch="false"/>
<line number="80" hits="6" branch="false"/>
<line number="82" hits="6" branch="false"/>
</lines>
</method>
<method name="extractFilters" signature="(Ljava/util/Map;)Ljava/util/Map;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="163" hits="17" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="164" hits="3" branch="false"/>
<line number="166" hits="14" branch="false"/>
<line number="167" hits="14" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="168" hits="122" branch="false"/>
<line number="169" hits="122" branch="false"/>
<line number="170" hits="122" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="171" hits="115" branch="false"/>
<line number="173" hits="122" branch="false"/>
<line number="174" hits="14" branch="false"/>
</lines>
</method>
<method name="getFilterConfig" signature="()Ljavax/servlet/FilterConfig;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="68" hits="15" branch="false"/>
</lines>
</method>
<method name="getFilters" signature="(Ljava/util/Map;Ljava/util/Map;)Ljava/util/Map;" line-rate="1.0" branch-rate="0.8333333333333334">
<lines>
<line number="143" hits="11" branch="false"/>
<line number="145" hits="11" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="146" hits="6" branch="false"/>
<line number="147" hits="6" branch="false"/>
<line number="148" hits="6" branch="false"/>
<line number="150" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="151" hits="1" branch="false"/>
<line number="153" hits="5" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="154" hits="5" branch="false"/>
<line number="159" hits="11" branch="false"/>
</lines>
</method>
<method name="registerFilters" signature="(Ljava/util/Map;Lorg/apache/shiro/web/filter/mgt/FilterChainManager;)V" line-rate="1.0" branch-rate="0.8333333333333334">
<lines>
<line number="131" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="132" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="133" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="134" hits="66" branch="false"/>
<line number="135" hits="66" branch="false"/>
<line number="136" hits="66" branch="false"/>
<line number="137" hits="66" branch="false"/>
<line number="139" hits="6" branch="false"/>
</lines>
</method>
<method name="setFilterConfig" signature="(Ljavax/servlet/FilterConfig;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="72" hits="5" branch="false"/>
<line number="73" hits="5" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="43" hits="7" branch="false"/>
<line number="48" hits="1" branch="false"/>
<line number="55" hits="14" branch="false"/>
<line number="56" hits="14" branch="false"/>
<line number="59" hits="6" branch="false"/>
<line number="60" hits="6" branch="false"/>
<line number="63" hits="3" branch="false"/>
<line number="64" hits="3" branch="false"/>
<line number="65" hits="3" branch="false"/>
<line number="68" hits="15" branch="false"/>
<line number="72" hits="5" branch="false"/>
<line number="73" hits="5" branch="false"/>
<line number="76" hits="6" branch="false"/>
<line number="77" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="78" hits="6" branch="false"/>
<line number="79" hits="6" branch="false"/>
<line number="80" hits="6" branch="false"/>
<line number="82" hits="6" branch="false"/>
<line number="86" hits="7" branch="false"/>
<line number="87" hits="7" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="88" hits="4" branch="false"/>
<line number="90" hits="3" branch="false"/>
<line number="96" hits="6" branch="false"/>
<line number="98" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="99" hits="4" branch="false"/>
<line number="101" hits="4" branch="false"/>
<line number="104" hits="6" branch="false"/>
<line number="106" hits="6" branch="false"/>
<line number="111" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="112" hits="6" branch="false"/>
<line number="116" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="117" hits="3" branch="false"/>
<line number="120" hits="6" branch="false"/>
<line number="123" hits="6" branch="false"/>
<line number="126" hits="6" branch="false"/>
<line number="127" hits="6" branch="false"/>
<line number="128" hits="6" branch="false"/>
<line number="131" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="132" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="133" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="134" hits="66" branch="false"/>
<line number="135" hits="66" branch="false"/>
<line number="136" hits="66" branch="false"/>
<line number="137" hits="66" branch="false"/>
<line number="139" hits="6" branch="false"/>
<line number="143" hits="11" branch="false"/>
<line number="145" hits="11" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="146" hits="6" branch="false"/>
<line number="147" hits="6" branch="false"/>
<line number="148" hits="6" branch="false"/>
<line number="150" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="151" hits="1" branch="false"/>
<line number="153" hits="5" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="154" hits="5" branch="false"/>
<line number="159" hits="11" branch="false"/>
<line number="163" hits="17" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="164" hits="3" branch="false"/>
<line number="166" hits="14" branch="false"/>
<line number="167" hits="14" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="168" hits="122" branch="false"/>
<line number="169" hits="122" branch="false"/>
<line number="170" hits="122" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="171" hits="115" branch="false"/>
<line number="173" hits="122" branch="false"/>
<line number="174" hits="14" branch="false"/>
<line number="178" hits="7" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="179" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="180" hits="4" branch="false"/>
<line number="182" hits="4" branch="false"/>
<line number="185" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="186" hits="3" branch="false"/>
<line number="189" hits="3" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="190" hits="3" branch="false"/>
<line number="191" hits="3" branch="false"/>
<line number="192" hits="3" branch="false"/>
<line number="193" hits="3" branch="false"/>
<line number="194" hits="3" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.config.WebIniSecurityManagerFactory" filename="org/apache/shiro/web/config/WebIniSecurityManagerFactory.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="43" hits="1" branch="false"/>
<line number="44" hits="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/config/Ini;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="54" hits="6" branch="false"/>
<line number="55" hits="6" branch="false"/>
</lines>
</method>
<method name="createDefaultInstance" signature="()Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="36" hits="1" branch="false"/>
</lines>
</method>
<method name="createDefaultInstance" signature="()Lorg/apache/shiro/mgt/SecurityManager;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="65" hits="7" branch="false"/>
</lines>
</method>
<method name="createDefaults" signature="(Lorg/apache/shiro/config/Ini;Lorg/apache/shiro/config/Ini$Section;)Ljava/util/Map;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="71" hits="6" branch="false"/>
<line number="73" hits="6" branch="false"/>
<line number="74" hits="6" branch="false"/>
<line number="75" hits="6" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="36" hits="1" branch="false"/>
<line number="43" hits="1" branch="false"/>
<line number="44" hits="1" branch="false"/>
<line number="54" hits="6" branch="false"/>
<line number="55" hits="6" branch="false"/>
<line number="65" hits="7" branch="false"/>
<line number="71" hits="6" branch="false"/>
<line number="73" hits="6" branch="false"/>
<line number="74" hits="6" branch="false"/>
<line number="75" hits="6" branch="false"/>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.web.env" line-rate="0.2388888888888889" branch-rate="0.15384615384615385" complexity="2.5">
<classes>
<class name="org.apache.shiro.web.env.DefaultWebEnvironment" filename="org/apache/shiro/web/env/DefaultWebEnvironment.java" line-rate="0.19047619047619047" branch-rate="0.0" complexity="1.2">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="41" hits="1" branch="false"/>
<line number="42" hits="1" branch="false"/>
</lines>
</method>
<method name="assertWebSecurityManager" signature="(Lorg/apache/shiro/mgt/SecurityManager;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="74" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="75" hits="0" branch="false"/>
<line number="76" hits="0" branch="false"/>
<line number="78" hits="0" branch="false"/>
</lines>
</method>
<method name="getFilterChainResolver" signature="()Lorg/apache/shiro/web/filter/mgt/FilterChainResolver;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="45" hits="0" branch="false"/>
</lines>
</method>
<method name="getSecurityManager" signature="()Lorg/apache/shiro/mgt/SecurityManager;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="54" hits="0" branch="false"/>
</lines>
</method>
<method name="getServletContext" signature="()Ljavax/servlet/ServletContext;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="81" hits="0" branch="false"/>
</lines>
</method>
<method name="getWebSecurityManager" signature="()Lorg/apache/shiro/web/mgt/WebSecurityManager;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="64" hits="0" branch="false"/>
<line number="65" hits="0" branch="false"/>
<line number="66" hits="0" branch="false"/>
</lines>
</method>
<method name="setFilterChainResolver" signature="(Lorg/apache/shiro/web/filter/mgt/FilterChainResolver;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="49" hits="0" branch="false"/>
<line number="50" hits="0" branch="false"/>
</lines>
</method>
<method name="setSecurityManager" signature="(Lorg/apache/shiro/mgt/SecurityManager;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="59" hits="0" branch="false"/>
<line number="60" hits="0" branch="false"/>
<line number="61" hits="0" branch="false"/>
</lines>
</method>
<method name="setServletContext" signature="(Ljavax/servlet/ServletContext;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="85" hits="0" branch="false"/>
<line number="86" hits="0" branch="false"/>
</lines>
</method>
<method name="setWebSecurityManager" signature="(Lorg/apache/shiro/web/mgt/WebSecurityManager;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="70" hits="1" branch="false"/>
<line number="71" hits="1" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="41" hits="1" branch="false"/>
<line number="42" hits="1" branch="false"/>
<line number="45" hits="0" branch="false"/>
<line number="49" hits="0" branch="false"/>
<line number="50" hits="0" branch="false"/>
<line number="54" hits="0" branch="false"/>
<line number="59" hits="0" branch="false"/>
<line number="60" hits="0" branch="false"/>
<line number="61" hits="0" branch="false"/>
<line number="64" hits="0" branch="false"/>
<line number="65" hits="0" branch="false"/>
<line number="66" hits="0" branch="false"/>
<line number="70" hits="1" branch="false"/>
<line number="71" hits="1" branch="false"/>
<line number="74" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="75" hits="0" branch="false"/>
<line number="76" hits="0" branch="false"/>
<line number="78" hits="0" branch="false"/>
<line number="81" hits="0" branch="false"/>
<line number="85" hits="0" branch="false"/>
<line number="86" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.env.EnvironmentLoader" filename="org/apache/shiro/web/env/EnvironmentLoader.java" line-rate="0.038461538461538464" branch-rate="0.0" complexity="4.8">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="106" hits="1" branch="false"/>
<line number="108" hits="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="92" hits="0" branch="false"/>
</lines>
</method>
<method name="createEnvironment" signature="(Ljavax/servlet/ServletContext;)Lorg/apache/shiro/web/env/WebEnvironment;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="195" hits="0" branch="false"/>
<line number="196" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="197" hits="0" branch="false"/>
<line number="201" hits="0" branch="false"/>
<line number="202" hits="0" branch="false"/>
<line number="204" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="205" hits="0" branch="false"/>
<line number="208" hits="0" branch="false"/>
<line number="211" hits="0" branch="false"/>
<line number="213" hits="0" branch="false"/>
<line number="215" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="216" hits="0" branch="false"/>
<line number="219" hits="0" branch="false"/>
<line number="221" hits="0" branch="false"/>
<line number="223" hits="0" branch="false"/>
</lines>
</method>
<method name="customizeEnvironment" signature="(Lorg/apache/shiro/web/env/WebEnvironment;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="227" hits="0" branch="false"/>
</lines>
</method>
<method name="destroyEnvironment" signature="(Ljavax/servlet/ServletContext;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="235" hits="0" branch="false"/>
<line number="237" hits="0" branch="false"/>
<line number="238" hits="0" branch="false"/>
<line number="240" hits="0" branch="false"/>
<line number="241" hits="0" branch="false"/>
<line number="242" hits="0" branch="false"/>
</lines>
</method>
<method name="determineWebEnvironmentClass" signature="(Ljavax/servlet/ServletContext;)Ljava/lang/Class;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="166" hits="0" branch="false"/>
<line number="167" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="169" hits="0" branch="false"/>
<line number="170" hits="0" branch="false"/>
<line number="171" hits="0" branch="false"/>
<line number="175" hits="0" branch="false"/>
</lines>
</method>
<method name="initEnvironment" signature="(Ljavax/servlet/ServletContext;)Lorg/apache/shiro/web/env/WebEnvironment;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="121" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="122" hits="0" branch="false"/>
<line number="124" hits="0" branch="false"/>
<line number="127" hits="0" branch="false"/>
<line number="128" hits="0" branch="false"/>
<line number="130" hits="0" branch="false"/>
<line number="133" hits="0" branch="false"/>
<line number="134" hits="0" branch="false"/>
<line number="136" hits="0" branch="false"/>
<line number="139" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="140" hits="0" branch="false"/>
<line number="141" hits="0" branch="false"/>
<line number="144" hits="0" branch="false"/>
<line number="145" hits="0" branch="false"/>
<line number="146" hits="0" branch="false"/>
<line number="147" hits="0" branch="false"/>
<line number="148" hits="0" branch="false"/>
<line number="149" hits="0" branch="false"/>
<line number="150" hits="0" branch="false"/>
<line number="151" hits="0" branch="false"/>
<line number="152" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="92" hits="0" branch="false"/>
<line number="106" hits="1" branch="false"/>
<line number="108" hits="1" branch="false"/>
<line number="121" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="122" hits="0" branch="false"/>
<line number="124" hits="0" branch="false"/>
<line number="127" hits="0" branch="false"/>
<line number="128" hits="0" branch="false"/>
<line number="130" hits="0" branch="false"/>
<line number="133" hits="0" branch="false"/>
<line number="134" hits="0" branch="false"/>
<line number="136" hits="0" branch="false"/>
<line number="139" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="140" hits="0" branch="false"/>
<line number="141" hits="0" branch="false"/>
<line number="144" hits="0" branch="false"/>
<line number="145" hits="0" branch="false"/>
<line number="146" hits="0" branch="false"/>
<line number="147" hits="0" branch="false"/>
<line number="148" hits="0" branch="false"/>
<line number="149" hits="0" branch="false"/>
<line number="150" hits="0" branch="false"/>
<line number="151" hits="0" branch="false"/>
<line number="152" hits="0" branch="false"/>
<line number="166" hits="0" branch="false"/>
<line number="167" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="169" hits="0" branch="false"/>
<line number="170" hits="0" branch="false"/>
<line number="171" hits="0" branch="false"/>
<line number="175" hits="0" branch="false"/>
<line number="195" hits="0" branch="false"/>
<line number="196" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="197" hits="0" branch="false"/>
<line number="201" hits="0" branch="false"/>
<line number="202" hits="0" branch="false"/>
<line number="204" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="205" hits="0" branch="false"/>
<line number="208" hits="0" branch="false"/>
<line number="211" hits="0" branch="false"/>
<line number="213" hits="0" branch="false"/>
<line number="215" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="216" hits="0" branch="false"/>
<line number="219" hits="0" branch="false"/>
<line number="221" hits="0" branch="false"/>
<line number="223" hits="0" branch="false"/>
<line number="227" hits="0" branch="false"/>
<line number="235" hits="0" branch="false"/>
<line number="237" hits="0" branch="false"/>
<line number="238" hits="0" branch="false"/>
<line number="240" hits="0" branch="false"/>
<line number="241" hits="0" branch="false"/>
<line number="242" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.env.EnvironmentLoaderListener" filename="org/apache/shiro/web/env/EnvironmentLoaderListener.java" line-rate="0.0" branch-rate="1.0" complexity="1.0">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="49" hits="0" branch="false"/>
</lines>
</method>
<method name="contextDestroyed" signature="(Ljavax/servlet/ServletContextEvent;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="68" hits="0" branch="false"/>
<line number="69" hits="0" branch="false"/>
</lines>
</method>
<method name="contextInitialized" signature="(Ljavax/servlet/ServletContextEvent;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="58" hits="0" branch="false"/>
<line number="59" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="49" hits="0" branch="false"/>
<line number="58" hits="0" branch="false"/>
<line number="59" hits="0" branch="false"/>
<line number="68" hits="0" branch="false"/>
<line number="69" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.env.IniWebEnvironment" filename="org/apache/shiro/web/env/IniWebEnvironment.java" line-rate="0.3763440860215054" branch-rate="0.20689655172413793" complexity="3.8333333333333335">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="51" hits="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="47" hits="1" branch="false"/>
</lines>
</method>
<method name="configure" signature="()V" line-rate="0.8571428571428571" branch-rate="0.5">
<lines>
<line number="97" hits="1" branch="false"/>
<line number="99" hits="1" branch="false"/>
<line number="100" hits="1" branch="false"/>
<line number="102" hits="1" branch="false"/>
<line number="103" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="104" hits="0" branch="false"/>
<line number="106" hits="1" branch="false"/>
</lines>
</method>
<method name="convertPathToIni" signature="(Ljava/lang/String;Z)Lorg/apache/shiro/config/Ini;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="242" hits="0" branch="false"/>
<line number="244" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="245" hits="0" branch="false"/>
<line number="248" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="249" hits="0" branch="false"/>
<line number="252" hits="0" branch="false"/>
<line number="253" hits="0" branch="false"/>
<line number="254" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="255" hits="0" branch="false"/>
<line number="257" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="258" hits="0" branch="false"/>
<line number="261" hits="0" branch="false"/>
<line number="263" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="264" hits="0" branch="false"/>
<line number="265" hits="0" branch="false"/>
<line number="267" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="268" hits="0" branch="false"/>
<line number="273" hits="0" branch="false"/>
</lines>
</method>
<method name="createFilterChainResolver" signature="()Lorg/apache/shiro/web/filter/mgt/FilterChainResolver;" line-rate="0.7777777777777778" branch-rate="0.5">
<lines>
<line number="176" hits="1" branch="false"/>
<line number="178" hits="1" branch="false"/>
<line number="180" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="182" hits="1" branch="false"/>
<line number="183" hits="1" branch="false"/>
<line number="184" hits="1" branch="true" condition-coverage="50% (2/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="186" hits="0" branch="false"/>
<line number="187" hits="0" branch="false"/>
<line number="191" hits="1" branch="false"/>
</lines>
</method>
<method name="createIni" signature="(Ljava/lang/String;Z)Lorg/apache/shiro/config/Ini;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="160" hits="0" branch="false"/>
<line number="162" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="163" hits="0" branch="false"/>
<line number="165" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="166" hits="0" branch="false"/>
<line number="168" hits="0" branch="false"/>
<line number="171" hits="0" branch="false"/>
</lines>
</method>
<method name="createWebSecurityManager" signature="()Lorg/apache/shiro/web/mgt/WebSecurityManager;" line-rate="0.8888888888888888" branch-rate="0.5">
<lines>
<line number="196" hits="1" branch="false"/>
<line number="197" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="198" hits="0" branch="false"/>
<line number="200" hits="1" branch="false"/>
<line number="203" hits="1" branch="false"/>
<line number="207" hits="1" branch="false"/>
<line number="208" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="209" hits="1" branch="false"/>
<line number="212" hits="1" branch="false"/>
</lines>
</method>
<method name="getDefaultConfigLocations" signature="()[Ljava/lang/String;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="221" hits="0" branch="false"/>
</lines>
</method>
<method name="getDefaultIni" signature="()Lorg/apache/shiro/config/Ini;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="129" hits="0" branch="false"/>
<line number="131" hits="0" branch="false"/>
<line number="132" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="133" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="134" hits="0" branch="false"/>
<line number="135" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="136" hits="0" branch="false"/>
<line number="138" hits="0" branch="false"/>
<line number="143" hits="0" branch="false"/>
</lines>
</method>
<method name="getIni" signature="()Lorg/apache/shiro/config/Ini;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="295" hits="3" branch="false"/>
</lines>
</method>
<method name="getServletContextResourceStream" signature="(Ljava/lang/String;)Ljava/io/InputStream;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="278" hits="0" branch="false"/>
<line number="280" hits="0" branch="false"/>
<line number="281" hits="0" branch="false"/>
<line number="282" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="283" hits="0" branch="false"/>
<line number="286" hits="0" branch="false"/>
</lines>
</method>
<method name="getSpecifiedIni" signature="([Ljava/lang/String;)Lorg/apache/shiro/config/Ini;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="110" hits="0" branch="false"/>
<line number="112" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="114" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="115" hits="0" branch="false"/>
<line number="121" hits="0" branch="false"/>
<line number="124" hits="0" branch="false"/>
</lines>
</method>
<method name="init" signature="()V" line-rate="0.5625" branch-rate="0.42857142857142855">
<lines>
<line number="63" hits="1" branch="false"/>
<line number="65" hits="1" branch="false"/>
<line number="67" hits="1" branch="true" condition-coverage="37% (3/8)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
<condition number="2" type="jump" coverage="50%"/>
<condition number="3" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="69" hits="0" branch="false"/>
<line number="75" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="76" hits="0" branch="false"/>
<line number="77" hits="0" branch="false"/>
<line number="80" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="81" hits="0" branch="false"/>
<line number="82" hits="0" branch="false"/>
<line number="85" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="86" hits="0" branch="false"/>
<line number="87" hits="0" branch="false"/>
<line number="90" hits="1" branch="false"/>
<line number="92" hits="1" branch="false"/>
<line number="93" hits="1" branch="false"/>
</lines>
</method>
<method name="setIni" signature="(Lorg/apache/shiro/config/Ini;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="307" hits="2" branch="false"/>
<line number="308" hits="2" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="47" hits="1" branch="false"/>
<line number="51" hits="1" branch="false"/>
<line number="63" hits="1" branch="false"/>
<line number="65" hits="1" branch="false"/>
<line number="67" hits="1" branch="true" condition-coverage="37% (3/8)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
<condition number="2" type="jump" coverage="50%"/>
<condition number="3" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="69" hits="0" branch="false"/>
<line number="75" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="76" hits="0" branch="false"/>
<line number="77" hits="0" branch="false"/>
<line number="80" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="81" hits="0" branch="false"/>
<line number="82" hits="0" branch="false"/>
<line number="85" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="86" hits="0" branch="false"/>
<line number="87" hits="0" branch="false"/>
<line number="90" hits="1" branch="false"/>
<line number="92" hits="1" branch="false"/>
<line number="93" hits="1" branch="false"/>
<line number="97" hits="1" branch="false"/>
<line number="99" hits="1" branch="false"/>
<line number="100" hits="1" branch="false"/>
<line number="102" hits="1" branch="false"/>
<line number="103" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="104" hits="0" branch="false"/>
<line number="106" hits="1" branch="false"/>
<line number="110" hits="0" branch="false"/>
<line number="112" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="114" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="115" hits="0" branch="false"/>
<line number="121" hits="0" branch="false"/>
<line number="124" hits="0" branch="false"/>
<line number="129" hits="0" branch="false"/>
<line number="131" hits="0" branch="false"/>
<line number="132" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="133" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="134" hits="0" branch="false"/>
<line number="135" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="136" hits="0" branch="false"/>
<line number="138" hits="0" branch="false"/>
<line number="143" hits="0" branch="false"/>
<line number="160" hits="0" branch="false"/>
<line number="162" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="163" hits="0" branch="false"/>
<line number="165" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="166" hits="0" branch="false"/>
<line number="168" hits="0" branch="false"/>
<line number="171" hits="0" branch="false"/>
<line number="176" hits="1" branch="false"/>
<line number="178" hits="1" branch="false"/>
<line number="180" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="182" hits="1" branch="false"/>
<line number="183" hits="1" branch="false"/>
<line number="184" hits="1" branch="true" condition-coverage="50% (2/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="186" hits="0" branch="false"/>
<line number="187" hits="0" branch="false"/>
<line number="191" hits="1" branch="false"/>
<line number="196" hits="1" branch="false"/>
<line number="197" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="198" hits="0" branch="false"/>
<line number="200" hits="1" branch="false"/>
<line number="203" hits="1" branch="false"/>
<line number="207" hits="1" branch="false"/>
<line number="208" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="209" hits="1" branch="false"/>
<line number="212" hits="1" branch="false"/>
<line number="221" hits="0" branch="false"/>
<line number="242" hits="0" branch="false"/>
<line number="244" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="245" hits="0" branch="false"/>
<line number="248" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="249" hits="0" branch="false"/>
<line number="252" hits="0" branch="false"/>
<line number="253" hits="0" branch="false"/>
<line number="254" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="255" hits="0" branch="false"/>
<line number="257" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="258" hits="0" branch="false"/>
<line number="261" hits="0" branch="false"/>
<line number="263" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="264" hits="0" branch="false"/>
<line number="265" hits="0" branch="false"/>
<line number="267" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="268" hits="0" branch="false"/>
<line number="273" hits="0" branch="false"/>
<line number="278" hits="0" branch="false"/>
<line number="280" hits="0" branch="false"/>
<line number="281" hits="0" branch="false"/>
<line number="282" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="283" hits="0" branch="false"/>
<line number="286" hits="0" branch="false"/>
<line number="295" hits="3" branch="false"/>
<line number="307" hits="2" branch="false"/>
<line number="308" hits="2" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.env.MutableWebEnvironment" filename="org/apache/shiro/web/env/MutableWebEnvironment.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.web.env.ResourceBasedWebEnvironment" filename="org/apache/shiro/web/env/ResourceBasedWebEnvironment.java" line-rate="0.2222222222222222" branch-rate="0.0" complexity="1.6666666666666667">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="29" hits="1" branch="false"/>
</lines>
</method>
<method name="getConfigLocations" signature="()[Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="34" hits="1" branch="false"/>
</lines>
</method>
<method name="setConfigLocations" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="38" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="39" hits="0" branch="false"/>
<line number="41" hits="0" branch="false"/>
<line number="42" hits="0" branch="false"/>
<line number="43" hits="0" branch="false"/>
</lines>
</method>
<method name="setConfigLocations" signature="([Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="46" hits="0" branch="false"/>
<line number="47" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="29" hits="1" branch="false"/>
<line number="34" hits="1" branch="false"/>
<line number="38" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="39" hits="0" branch="false"/>
<line number="41" hits="0" branch="false"/>
<line number="42" hits="0" branch="false"/>
<line number="43" hits="0" branch="false"/>
<line number="46" hits="0" branch="false"/>
<line number="47" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.env.WebEnvironment" filename="org/apache/shiro/web/env/WebEnvironment.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.web.filter" line-rate="0.6666666666666666" branch-rate="0.5" complexity="1.65">
<classes>
<class name="org.apache.shiro.web.filter.AccessControlFilter" filename="org/apache/shiro/web/filter/AccessControlFilter.java" line-rate="0.35294117647058826" branch-rate="0.0" complexity="1.0909090909090908">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="37" hits="397" branch="false"/>
<line number="58" hits="397" branch="false"/>
</lines>
</method>
<method name="getLoginUrl" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="71" hits="102" branch="false"/>
</lines>
</method>
<method name="getSubject" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)Lorg/apache/shiro/subject/Subject;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="97" hits="2" branch="false"/>
</lines>
</method>
<method name="isLoginRequest" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)Z" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="177" hits="0" branch="false"/>
</lines>
</method>
<method name="onAccessDenied" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljava/lang/Object;)Z" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="133" hits="0" branch="false"/>
</lines>
</method>
<method name="onPreHandle" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljava/lang/Object;)Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="162" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
</lines>
</method>
<method name="redirectToLogin" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="226" hits="0" branch="false"/>
<line number="227" hits="0" branch="false"/>
<line number="228" hits="0" branch="false"/>
</lines>
</method>
<method name="saveRequest" signature="(Ljavax/servlet/ServletRequest;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="208" hits="0" branch="false"/>
<line number="209" hits="0" branch="false"/>
</lines>
</method>
<method name="saveRequestAndRedirectToLogin" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="191" hits="0" branch="false"/>
<line number="192" hits="0" branch="false"/>
<line number="193" hits="0" branch="false"/>
</lines>
</method>
<method name="setLoginUrl" signature="(Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="83" hits="51" branch="false"/>
<line number="84" hits="51" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="37" hits="397" branch="false"/>
<line number="58" hits="397" branch="false"/>
<line number="71" hits="102" branch="false"/>
<line number="83" hits="51" branch="false"/>
<line number="84" hits="51" branch="false"/>
<line number="97" hits="2" branch="false"/>
<line number="133" hits="0" branch="false"/>
<line number="162" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="177" hits="0" branch="false"/>
<line number="191" hits="0" branch="false"/>
<line number="192" hits="0" branch="false"/>
<line number="193" hits="0" branch="false"/>
<line number="208" hits="0" branch="false"/>
<line number="209" hits="0" branch="false"/>
<line number="226" hits="0" branch="false"/>
<line number="227" hits="0" branch="false"/>
<line number="228" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.filter.PathConfigProcessor" filename="org/apache/shiro/web/filter/PathConfigProcessor.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.web.filter.PathMatchingFilter" filename="org/apache/shiro/web/filter/PathMatchingFilter.java" line-rate="0.8235294117647058" branch-rate="0.6111111111111112" complexity="2.5">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="47" hits="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="42" hits="495" branch="false"/>
<line number="52" hits="495" branch="false"/>
<line number="62" hits="495" branch="false"/>
</lines>
</method>
<method name="getPathWithinApplication" signature="(Ljavax/servlet/ServletRequest;)Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="103" hits="3" branch="false"/>
</lines>
</method>
<method name="isEnabled" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljava/lang/String;Ljava/lang/Object;)Z" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="256" hits="0" branch="false"/>
</lines>
</method>
<method name="isFilterChainContinued" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljava/lang/String;Ljava/lang/Object;)Z" line-rate="1.0" branch-rate="0.6666666666666666">
<lines>
<line number="195" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="196" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="197" hits="1" branch="false"/>
<line number="203" hits="1" branch="false"/>
<line number="206" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="207" hits="1" branch="false"/>
<line number="214" hits="1" branch="false"/>
</lines>
</method>
<method name="onPreHandle" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljava/lang/Object;)Z" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="230" hits="0" branch="false"/>
</lines>
</method>
<method name="pathsMatch" signature="(Ljava/lang/String;Ljava/lang/String;)Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="141" hits="3" branch="false"/>
</lines>
</method>
<method name="pathsMatch" signature="(Ljava/lang/String;Ljavax/servlet/ServletRequest;)Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="122" hits="3" branch="false"/>
<line number="123" hits="3" branch="false"/>
<line number="124" hits="3" branch="false"/>
</lines>
</method>
<method name="preHandle" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)Z" line-rate="0.6363636363636364" branch-rate="0.5">
<lines>
<line number="165" hits="2" branch="true" condition-coverage="50% (2/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="166" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="167" hits="0" branch="false"/>
<line number="169" hits="0" branch="false"/>
<line number="172" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="175" hits="3" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="176" hits="2" branch="false"/>
<line number="177" hits="2" branch="false"/>
<line number="178" hits="2" branch="false"/>
<line number="180" hits="1" branch="false"/>
<line number="183" hits="0" branch="false"/>
</lines>
</method>
<method name="processPathConfig" signature="(Ljava/lang/String;Ljava/lang/String;)Ljavax/servlet/Filter;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="83" hits="17" branch="false"/>
<line number="84" hits="17" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="85" hits="3" branch="false"/>
<line number="88" hits="17" branch="false"/>
<line number="89" hits="17" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="42" hits="495" branch="false"/>
<line number="47" hits="1" branch="false"/>
<line number="52" hits="495" branch="false"/>
<line number="62" hits="495" branch="false"/>
<line number="83" hits="17" branch="false"/>
<line number="84" hits="17" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="85" hits="3" branch="false"/>
<line number="88" hits="17" branch="false"/>
<line number="89" hits="17" branch="false"/>
<line number="103" hits="3" branch="false"/>
<line number="122" hits="3" branch="false"/>
<line number="123" hits="3" branch="false"/>
<line number="124" hits="3" branch="false"/>
<line number="141" hits="3" branch="false"/>
<line number="165" hits="2" branch="true" condition-coverage="50% (2/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="166" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="167" hits="0" branch="false"/>
<line number="169" hits="0" branch="false"/>
<line number="172" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="175" hits="3" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="176" hits="2" branch="false"/>
<line number="177" hits="2" branch="false"/>
<line number="178" hits="2" branch="false"/>
<line number="180" hits="1" branch="false"/>
<line number="183" hits="0" branch="false"/>
<line number="195" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="196" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="197" hits="1" branch="false"/>
<line number="203" hits="1" branch="false"/>
<line number="206" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="207" hits="1" branch="false"/>
<line number="214" hits="1" branch="false"/>
<line number="230" hits="0" branch="false"/>
<line number="256" hits="0" branch="false"/>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.web.filter.authc" line-rate="0.3111111111111111" branch-rate="0.1527777777777778" complexity="1.7627118644067796">
<classes>
<class name="org.apache.shiro.web.filter.authc.AnonymousFilter" filename="org/apache/shiro/web/filter/authc/AnonymousFilter.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="52" hits="48" branch="false"/>
</lines>
</method>
<method name="onPreHandle" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljava/lang/Object;)Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="62" hits="1" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="52" hits="48" branch="false"/>
<line number="62" hits="1" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.filter.authc.AuthenticatingFilter" filename="org/apache/shiro/web/filter/authc/AuthenticatingFilter.java" line-rate="0.22580645161290322" branch-rate="0.0" complexity="2.090909090909091">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="39" hits="101" branch="false"/>
</lines>
</method>
<method name="cleanup" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljava/lang/Exception;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="146" hits="0" branch="true" condition-coverage="0% (0/6)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
<condition number="2" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="149" hits="0" branch="false"/>
<line number="150" hits="0" branch="false"/>
<line number="151" hits="0" branch="false"/>
<line number="152" hits="0" branch="false"/>
<line number="153" hits="0" branch="false"/>
<line number="155" hits="0" branch="false"/>
<line number="157" hits="0" branch="false"/>
</lines>
</method>
<method name="createToken" signature="(Ljava/lang/String;Ljava/lang/String;Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)Lorg/apache/shiro/authc/AuthenticationToken;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="64" hits="4" branch="false"/>
<line number="65" hits="4" branch="false"/>
<line number="66" hits="4" branch="false"/>
</lines>
</method>
<method name="createToken" signature="(Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;)Lorg/apache/shiro/authc/AuthenticationToken;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="71" hits="4" branch="false"/>
</lines>
</method>
<method name="executeLogin" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="45" hits="0" branch="false"/>
<line number="46" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="47" hits="0" branch="false"/>
<line number="49" hits="0" branch="false"/>
<line number="52" hits="0" branch="false"/>
<line number="53" hits="0" branch="false"/>
<line number="54" hits="0" branch="false"/>
<line number="55" hits="0" branch="false"/>
<line number="56" hits="0" branch="false"/>
</lines>
</method>
<method name="getHost" signature="(Ljavax/servlet/ServletRequest;)Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="94" hits="4" branch="false"/>
</lines>
</method>
<method name="isAccessAllowed" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljava/lang/Object;)Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="123" hits="0" branch="true" condition-coverage="0% (0/6)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
<condition number="2" type="jump" coverage="0%"/>
</conditions>
</line>
</lines>
</method>
<method name="isPermissive" signature="(Ljava/lang/Object;)Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="133" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="134" hits="0" branch="false"/>
<line number="135" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="137" hits="0" branch="false"/>
</lines>
</method>
<method name="isRememberMe" signature="(Ljavax/servlet/ServletRequest;)Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="110" hits="4" branch="false"/>
</lines>
</method>
<method name="onLoginFailure" signature="(Lorg/apache/shiro/authc/AuthenticationToken;Lorg/apache/shiro/authc/AuthenticationException;Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)Z" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="81" hits="0" branch="false"/>
</lines>
</method>
<method name="onLoginSuccess" signature="(Lorg/apache/shiro/authc/AuthenticationToken;Lorg/apache/shiro/subject/Subject;Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)Z" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="76" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="39" hits="101" branch="false"/>
<line number="45" hits="0" branch="false"/>
<line number="46" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="47" hits="0" branch="false"/>
<line number="49" hits="0" branch="false"/>
<line number="52" hits="0" branch="false"/>
<line number="53" hits="0" branch="false"/>
<line number="54" hits="0" branch="false"/>
<line number="55" hits="0" branch="false"/>
<line number="56" hits="0" branch="false"/>
<line number="64" hits="4" branch="false"/>
<line number="65" hits="4" branch="false"/>
<line number="66" hits="4" branch="false"/>
<line number="71" hits="4" branch="false"/>
<line number="76" hits="0" branch="false"/>
<line number="81" hits="0" branch="false"/>
<line number="94" hits="4" branch="false"/>
<line number="110" hits="4" branch="false"/>
<line number="123" hits="0" branch="true" condition-coverage="0% (0/6)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
<condition number="2" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="133" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="134" hits="0" branch="false"/>
<line number="135" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="137" hits="0" branch="false"/>
<line number="146" hits="0" branch="true" condition-coverage="0% (0/6)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
<condition number="2" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="149" hits="0" branch="false"/>
<line number="150" hits="0" branch="false"/>
<line number="151" hits="0" branch="false"/>
<line number="152" hits="0" branch="false"/>
<line number="153" hits="0" branch="false"/>
<line number="155" hits="0" branch="false"/>
<line number="157" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.filter.authc.AuthenticationFilter" filename="org/apache/shiro/web/filter/authc/AuthenticationFilter.java" line-rate="0.4444444444444444" branch-rate="1.0" complexity="1.0">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="35" hits="101" branch="false"/>
<line number="41" hits="101" branch="false"/>
</lines>
</method>
<method name="getSuccessUrl" signature="()Ljava/lang/String;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="53" hits="0" branch="false"/>
</lines>
</method>
<method name="isAccessAllowed" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljava/lang/Object;)Z" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="80" hits="0" branch="false"/>
<line number="81" hits="0" branch="false"/>
</lines>
</method>
<method name="issueSuccessRedirect" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="94" hits="0" branch="false"/>
<line number="95" hits="0" branch="false"/>
</lines>
</method>
<method name="setSuccessUrl" signature="(Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="66" hits="3" branch="false"/>
<line number="67" hits="3" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="35" hits="101" branch="false"/>
<line number="41" hits="101" branch="false"/>
<line number="53" hits="0" branch="false"/>
<line number="66" hits="3" branch="false"/>
<line number="67" hits="3" branch="false"/>
<line number="80" hits="0" branch="false"/>
<line number="81" hits="0" branch="false"/>
<line number="94" hits="0" branch="false"/>
<line number="95" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.filter.authc.BasicHttpAuthenticationFilter" filename="org/apache/shiro/web/filter/authc/BasicHttpAuthenticationFilter.java" line-rate="0.42592592592592593" branch-rate="0.3" complexity="2.2">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="67" hits="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="62" hits="51" branch="false"/>
<line number="83" hits="51" branch="false"/>
<line number="88" hits="51" branch="false"/>
<line number="93" hits="51" branch="false"/>
</lines>
</method>
<method name="createToken" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)Lorg/apache/shiro/authc/AuthenticationToken;" line-rate="0.8333333333333334" branch-rate="0.42857142857142855">
<lines>
<line number="300" hits="4" branch="false"/>
<line number="301" hits="4" branch="true" condition-coverage="75% (3/4)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="304" hits="1" branch="false"/>
<line number="307" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="308" hits="3" branch="false"/>
<line number="311" hits="3" branch="false"/>
<line number="312" hits="3" branch="true" condition-coverage="50% (2/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="315" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="316" hits="0" branch="false"/>
<line number="319" hits="3" branch="false"/>
<line number="320" hits="3" branch="false"/>
<line number="322" hits="3" branch="false"/>
</lines>
</method>
<method name="getApplicationName" signature="()Ljava/lang/String;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="106" hits="0" branch="false"/>
</lines>
</method>
<method name="getAuthcScheme" signature="()Ljava/lang/String;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="165" hits="0" branch="false"/>
</lines>
</method>
<method name="getAuthzHeader" signature="(Ljavax/servlet/ServletRequest;)Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="235" hits="4" branch="false"/>
<line number="236" hits="4" branch="false"/>
</lines>
</method>
<method name="getAuthzScheme" signature="()Ljava/lang/String;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="140" hits="0" branch="false"/>
</lines>
</method>
<method name="getPrincipalsAndCredentials" signature="(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="366" hits="3" branch="false"/>
<line number="367" hits="3" branch="false"/>
</lines>
</method>
<method name="getPrincipalsAndCredentials" signature="(Ljava/lang/String;Ljavax/servlet/ServletRequest;)[Ljava/lang/String;" line-rate="0.6666666666666666" branch-rate="0.5">
<lines>
<line number="339" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="340" hits="0" branch="false"/>
<line number="342" hits="3" branch="false"/>
<line number="343" hits="3" branch="true" condition-coverage="50% (2/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="344" hits="0" branch="false"/>
<line number="346" hits="3" branch="false"/>
</lines>
</method>
<method name="isLoginAttempt" signature="(Ljava/lang/String;)Z" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="256" hits="0" branch="false"/>
<line number="257" hits="0" branch="false"/>
</lines>
</method>
<method name="isLoginAttempt" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="211" hits="0" branch="false"/>
<line number="212" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
</lines>
</method>
<method name="isLoginRequest" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)Z" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="220" hits="0" branch="false"/>
</lines>
</method>
<method name="onAccessDenied" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="188" hits="0" branch="false"/>
<line number="189" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="190" hits="0" branch="false"/>
<line number="192" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="193" hits="0" branch="false"/>
<line number="195" hits="0" branch="false"/>
</lines>
</method>
<method name="sendChallenge" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="273" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="274" hits="0" branch="false"/>
<line number="276" hits="0" branch="false"/>
<line number="277" hits="0" branch="false"/>
<line number="278" hits="0" branch="false"/>
<line number="279" hits="0" branch="false"/>
<line number="280" hits="0" branch="false"/>
</lines>
</method>
<method name="setApplicationName" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="127" hits="0" branch="false"/>
<line number="128" hits="0" branch="false"/>
</lines>
</method>
<method name="setAuthcScheme" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="177" hits="0" branch="false"/>
<line number="178" hits="0" branch="false"/>
</lines>
</method>
<method name="setAuthzScheme" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="153" hits="0" branch="false"/>
<line number="154" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="62" hits="51" branch="false"/>
<line number="67" hits="1" branch="false"/>
<line number="83" hits="51" branch="false"/>
<line number="88" hits="51" branch="false"/>
<line number="93" hits="51" branch="false"/>
<line number="106" hits="0" branch="false"/>
<line number="127" hits="0" branch="false"/>
<line number="128" hits="0" branch="false"/>
<line number="140" hits="0" branch="false"/>
<line number="153" hits="0" branch="false"/>
<line number="154" hits="0" branch="false"/>
<line number="165" hits="0" branch="false"/>
<line number="177" hits="0" branch="false"/>
<line number="178" hits="0" branch="false"/>
<line number="188" hits="0" branch="false"/>
<line number="189" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="190" hits="0" branch="false"/>
<line number="192" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="193" hits="0" branch="false"/>
<line number="195" hits="0" branch="false"/>
<line number="211" hits="0" branch="false"/>
<line number="212" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="220" hits="0" branch="false"/>
<line number="235" hits="4" branch="false"/>
<line number="236" hits="4" branch="false"/>
<line number="256" hits="0" branch="false"/>
<line number="257" hits="0" branch="false"/>
<line number="273" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="274" hits="0" branch="false"/>
<line number="276" hits="0" branch="false"/>
<line number="277" hits="0" branch="false"/>
<line number="278" hits="0" branch="false"/>
<line number="279" hits="0" branch="false"/>
<line number="280" hits="0" branch="false"/>
<line number="300" hits="4" branch="false"/>
<line number="301" hits="4" branch="true" condition-coverage="75% (3/4)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="304" hits="1" branch="false"/>
<line number="307" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="308" hits="3" branch="false"/>
<line number="311" hits="3" branch="false"/>
<line number="312" hits="3" branch="true" condition-coverage="50% (2/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="315" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="316" hits="0" branch="false"/>
<line number="319" hits="3" branch="false"/>
<line number="320" hits="3" branch="false"/>
<line number="322" hits="3" branch="false"/>
<line number="339" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="340" hits="0" branch="false"/>
<line number="342" hits="3" branch="false"/>
<line number="343" hits="3" branch="true" condition-coverage="50% (2/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="344" hits="0" branch="false"/>
<line number="346" hits="3" branch="false"/>
<line number="366" hits="3" branch="false"/>
<line number="367" hits="3" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.filter.authc.FormAuthenticationFilter" filename="org/apache/shiro/web/filter/authc/FormAuthenticationFilter.java" line-rate="0.2962962962962963" branch-rate="0.1111111111111111" complexity="1.5263157894736843">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="69" hits="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="71" hits="50" branch="false"/>
<line number="72" hits="50" branch="false"/>
<line number="73" hits="50" branch="false"/>
<line number="75" hits="50" branch="false"/>
<line number="77" hits="50" branch="false"/>
<line number="78" hits="50" branch="false"/>
<line number="79" hits="50" branch="false"/>
</lines>
</method>
<method name="createToken" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)Lorg/apache/shiro/authc/AuthenticationToken;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="187" hits="0" branch="false"/>
<line number="188" hits="0" branch="false"/>
<line number="189" hits="0" branch="false"/>
</lines>
</method>
<method name="getFailureKeyAttribute" signature="()Ljava/lang/String;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="141" hits="0" branch="false"/>
</lines>
</method>
<method name="getPassword" signature="(Ljavax/servlet/ServletRequest;)Ljava/lang/String;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="220" hits="0" branch="false"/>
</lines>
</method>
<method name="getPasswordParam" signature="()Ljava/lang/String;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="109" hits="0" branch="false"/>
</lines>
</method>
<method name="getRememberMeParam" signature="()Ljava/lang/String;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="123" hits="0" branch="false"/>
</lines>
</method>
<method name="getUsername" signature="(Ljavax/servlet/ServletRequest;)Ljava/lang/String;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="216" hits="0" branch="false"/>
</lines>
</method>
<method name="getUsernameParam" signature="()Ljava/lang/String;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="95" hits="0" branch="false"/>
</lines>
</method>
<method name="isLoginSubmission" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="183" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
</lines>
</method>
<method name="isRememberMe" signature="(Ljavax/servlet/ServletRequest;)Z" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="193" hits="0" branch="false"/>
</lines>
</method>
<method name="onAccessDenied" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="149" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="150" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="151" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="152" hits="0" branch="false"/>
<line number="154" hits="0" branch="false"/>
<line number="156" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="157" hits="0" branch="false"/>
<line number="160" hits="0" branch="false"/>
<line number="163" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="164" hits="0" branch="false"/>
<line number="168" hits="0" branch="false"/>
<line number="169" hits="0" branch="false"/>
</lines>
</method>
<method name="onLoginFailure" signature="(Lorg/apache/shiro/authc/AuthenticationToken;Lorg/apache/shiro/authc/AuthenticationException;Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)Z" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="205" hits="0" branch="false"/>
<line number="207" hits="0" branch="false"/>
</lines>
</method>
<method name="onLoginSuccess" signature="(Lorg/apache/shiro/authc/AuthenticationToken;Lorg/apache/shiro/subject/Subject;Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)Z" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="198" hits="0" branch="false"/>
<line number="200" hits="0" branch="false"/>
</lines>
</method>
<method name="setFailureAttribute" signature="(Ljavax/servlet/ServletRequest;Lorg/apache/shiro/authc/AuthenticationException;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="211" hits="0" branch="false"/>
<line number="212" hits="0" branch="false"/>
<line number="213" hits="0" branch="false"/>
</lines>
</method>
<method name="setFailureKeyAttribute" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="145" hits="0" branch="false"/>
<line number="146" hits="0" branch="false"/>
</lines>
</method>
<method name="setLoginUrl" signature="(Ljava/lang/String;)V" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="83" hits="51" branch="false"/>
<line number="84" hits="51" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="85" hits="51" branch="false"/>
<line number="87" hits="51" branch="false"/>
<line number="88" hits="51" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="89" hits="51" branch="false"/>
<line number="91" hits="51" branch="false"/>
<line number="92" hits="51" branch="false"/>
</lines>
</method>
<method name="setPasswordParam" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="119" hits="0" branch="false"/>
<line number="120" hits="0" branch="false"/>
</lines>
</method>
<method name="setRememberMeParam" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="137" hits="0" branch="false"/>
<line number="138" hits="0" branch="false"/>
</lines>
</method>
<method name="setUsernameParam" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="105" hits="0" branch="false"/>
<line number="106" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="69" hits="1" branch="false"/>
<line number="71" hits="50" branch="false"/>
<line number="72" hits="50" branch="false"/>
<line number="73" hits="50" branch="false"/>
<line number="75" hits="50" branch="false"/>
<line number="77" hits="50" branch="false"/>
<line number="78" hits="50" branch="false"/>
<line number="79" hits="50" branch="false"/>
<line number="83" hits="51" branch="false"/>
<line number="84" hits="51" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="85" hits="51" branch="false"/>
<line number="87" hits="51" branch="false"/>
<line number="88" hits="51" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="89" hits="51" branch="false"/>
<line number="91" hits="51" branch="false"/>
<line number="92" hits="51" branch="false"/>
<line number="95" hits="0" branch="false"/>
<line number="105" hits="0" branch="false"/>
<line number="106" hits="0" branch="false"/>
<line number="109" hits="0" branch="false"/>
<line number="119" hits="0" branch="false"/>
<line number="120" hits="0" branch="false"/>
<line number="123" hits="0" branch="false"/>
<line number="137" hits="0" branch="false"/>
<line number="138" hits="0" branch="false"/>
<line number="141" hits="0" branch="false"/>
<line number="145" hits="0" branch="false"/>
<line number="146" hits="0" branch="false"/>
<line number="149" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="150" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="151" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="152" hits="0" branch="false"/>
<line number="154" hits="0" branch="false"/>
<line number="156" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="157" hits="0" branch="false"/>
<line number="160" hits="0" branch="false"/>
<line number="163" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="164" hits="0" branch="false"/>
<line number="168" hits="0" branch="false"/>
<line number="169" hits="0" branch="false"/>
<line number="183" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="187" hits="0" branch="false"/>
<line number="188" hits="0" branch="false"/>
<line number="189" hits="0" branch="false"/>
<line number="193" hits="0" branch="false"/>
<line number="198" hits="0" branch="false"/>
<line number="200" hits="0" branch="false"/>
<line number="205" hits="0" branch="false"/>
<line number="207" hits="0" branch="false"/>
<line number="211" hits="0" branch="false"/>
<line number="212" hits="0" branch="false"/>
<line number="213" hits="0" branch="false"/>
<line number="216" hits="0" branch="false"/>
<line number="220" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.filter.authc.LogoutFilter" filename="org/apache/shiro/web/filter/authc/LogoutFilter.java" line-rate="0.16666666666666666" branch-rate="1.0" complexity="1.1666666666666667">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="41" hits="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="39" hits="47" branch="false"/>
<line number="52" hits="47" branch="false"/>
</lines>
</method>
<method name="getRedirectUrl" signature="()Ljava/lang/String;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="134" hits="0" branch="false"/>
</lines>
</method>
<method name="getRedirectUrl" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Lorg/apache/shiro/subject/Subject;)Ljava/lang/String;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="124" hits="0" branch="false"/>
</lines>
</method>
<method name="getSubject" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)Lorg/apache/shiro/subject/Subject;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="89" hits="0" branch="false"/>
</lines>
</method>
<method name="issueRedirect" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="102" hits="0" branch="false"/>
<line number="103" hits="0" branch="false"/>
</lines>
</method>
<method name="preHandle" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)Z" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="67" hits="0" branch="false"/>
<line number="68" hits="0" branch="false"/>
<line number="71" hits="0" branch="false"/>
<line number="72" hits="0" branch="false"/>
<line number="73" hits="0" branch="false"/>
<line number="74" hits="0" branch="false"/>
<line number="75" hits="0" branch="false"/>
<line number="76" hits="0" branch="false"/>
</lines>
</method>
<method name="setRedirectUrl" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="144" hits="0" branch="false"/>
<line number="145" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="39" hits="47" branch="false"/>
<line number="41" hits="1" branch="false"/>
<line number="52" hits="47" branch="false"/>
<line number="67" hits="0" branch="false"/>
<line number="68" hits="0" branch="false"/>
<line number="71" hits="0" branch="false"/>
<line number="72" hits="0" branch="false"/>
<line number="73" hits="0" branch="false"/>
<line number="74" hits="0" branch="false"/>
<line number="75" hits="0" branch="false"/>
<line number="76" hits="0" branch="false"/>
<line number="89" hits="0" branch="false"/>
<line number="102" hits="0" branch="false"/>
<line number="103" hits="0" branch="false"/>
<line number="124" hits="0" branch="false"/>
<line number="134" hits="0" branch="false"/>
<line number="144" hits="0" branch="false"/>
<line number="145" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.filter.authc.PassThruAuthenticationFilter" filename="org/apache/shiro/web/filter/authc/PassThruAuthenticationFilter.java" line-rate="0.0" branch-rate="0.0" complexity="3.0">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="45" hits="0" branch="false"/>
</lines>
</method>
<method name="onAccessDenied" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="50" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="51" hits="0" branch="false"/>
<line number="53" hits="0" branch="false"/>
<line number="54" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="45" hits="0" branch="false"/>
<line number="50" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="51" hits="0" branch="false"/>
<line number="53" hits="0" branch="false"/>
<line number="54" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.filter.authc.UserFilter" filename="org/apache/shiro/web/filter/authc/UserFilter.java" line-rate="0.14285714285714285" branch-rate="0.0" complexity="2.0">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="36" hits="48" branch="false"/>
</lines>
</method>
<method name="isAccessAllowed" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljava/lang/Object;)Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="50" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="51" hits="0" branch="false"/>
<line number="53" hits="0" branch="false"/>
<line number="55" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
</lines>
</method>
<method name="onAccessDenied" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)Z" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="66" hits="0" branch="false"/>
<line number="67" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="36" hits="48" branch="false"/>
<line number="50" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="51" hits="0" branch="false"/>
<line number="53" hits="0" branch="false"/>
<line number="55" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="66" hits="0" branch="false"/>
<line number="67" hits="0" branch="false"/>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.web.filter.authz" line-rate="0.5539568345323741" branch-rate="0.32051282051282054" complexity="2.8518518518518516">
<classes>
<class name="org.apache.shiro.web.filter.authz.AuthorizationFilter" filename="org/apache/shiro/web/filter/authz/AuthorizationFilter.java" line-rate="0.9166666666666666" branch-rate="0.75" complexity="1.6666666666666667">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="39" hits="248" branch="false"/>
</lines>
</method>
<method name="getUnauthorizedUrl" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="60" hits="2" branch="false"/>
</lines>
</method>
<method name="onAccessDenied" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)Z" line-rate="0.875" branch-rate="0.75">
<lines>
<line number="108" hits="2" branch="false"/>
<line number="110" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="111" hits="0" branch="false"/>
<line number="115" hits="2" branch="false"/>
<line number="117" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="118" hits="1" branch="false"/>
<line number="120" hits="1" branch="false"/>
<line number="123" hits="2" branch="false"/>
</lines>
</method>
<method name="setUnauthorizedUrl" signature="(Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="78" hits="1" branch="false"/>
<line number="79" hits="1" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="39" hits="248" branch="false"/>
<line number="60" hits="2" branch="false"/>
<line number="78" hits="1" branch="false"/>
<line number="79" hits="1" branch="false"/>
<line number="108" hits="2" branch="false"/>
<line number="110" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="111" hits="0" branch="false"/>
<line number="115" hits="2" branch="false"/>
<line number="117" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="118" hits="1" branch="false"/>
<line number="120" hits="1" branch="false"/>
<line number="123" hits="2" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.filter.authz.HostFilter" filename="org/apache/shiro/web/filter/authz/HostFilter.java" line-rate="0.0" branch-rate="0.0" complexity="4.5">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="40" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="35" hits="0" branch="false"/>
</lines>
</method>
<method name="isAccessAllowed" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljava/lang/Object;)Z" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="104" hits="0" branch="false"/>
</lines>
</method>
<method name="isIpv4Candidate" signature="(Ljava/lang/String;)Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="87" hits="0" branch="false"/>
<line number="88" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="89" hits="0" branch="false"/>
<line number="91" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="92" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="94" hits="0" branch="false"/>
<line number="95" hits="0" branch="false"/>
<line number="96" hits="0" branch="false"/>
<line number="97" hits="0" branch="false"/>
<line number="100" hits="0" branch="false"/>
</lines>
</method>
<method name="setAuthorizedHosts" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="58" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="59" hits="0" branch="false"/>
<line number="61" hits="0" branch="false"/>
<line number="63" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="65" hits="0" branch="false"/>
<line number="67" hits="0" branch="false"/>
<line number="69" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="70" hits="0" branch="false"/>
<line number="78" hits="0" branch="false"/>
</lines>
</method>
<method name="setDeniedHosts" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="81" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="82" hits="0" branch="false"/>
<line number="84" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="35" hits="0" branch="false"/>
<line number="40" hits="0" branch="false"/>
<line number="58" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="59" hits="0" branch="false"/>
<line number="61" hits="0" branch="false"/>
<line number="63" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="65" hits="0" branch="false"/>
<line number="67" hits="0" branch="false"/>
<line number="69" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="70" hits="0" branch="false"/>
<line number="78" hits="0" branch="false"/>
<line number="81" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="82" hits="0" branch="false"/>
<line number="84" hits="0" branch="false"/>
<line number="87" hits="0" branch="false"/>
<line number="88" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="89" hits="0" branch="false"/>
<line number="91" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="92" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="94" hits="0" branch="false"/>
<line number="95" hits="0" branch="false"/>
<line number="96" hits="0" branch="false"/>
<line number="97" hits="0" branch="false"/>
<line number="100" hits="0" branch="false"/>
<line number="104" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.filter.authz.HttpMethodPermissionFilter" filename="org/apache/shiro/web/filter/authz/HttpMethodPermissionFilter.java" line-rate="0.7333333333333333" branch-rate="0.7222222222222222" complexity="2.111111111111111">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="83" hits="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="88" hits="48" branch="false"/>
<line number="126" hits="48" branch="false"/>
<line number="127" hits="432" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="128" hits="384" branch="false"/>
<line number="130" hits="48" branch="false"/>
</lines>
</method>
<method name="buildPermissions" signature="(Ljavax/servlet/http/HttpServletRequest;[Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="186" hits="0" branch="false"/>
</lines>
</method>
<method name="buildPermissions" signature="([Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;" line-rate="0.9230769230769231" branch-rate="0.7142857142857143">
<lines>
<line number="218" hits="8" branch="true" condition-coverage="50% (3/6)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
<condition number="2" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="219" hits="0" branch="false"/>
<line number="222" hits="8" branch="false"/>
<line number="225" hits="24" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="226" hits="16" branch="false"/>
<line number="229" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="230" hits="8" branch="false"/>
<line number="231" hits="24" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="232" hits="16" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="233" hits="8" branch="false"/>
<line number="235" hits="16" branch="false"/>
<line number="237" hits="8" branch="false"/>
<line number="240" hits="8" branch="false"/>
</lines>
</method>
<method name="getHttpMethodAction" signature="(Ljava/lang/String;)Ljava/lang/String;" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="165" hits="8" branch="false"/>
<line number="166" hits="8" branch="false"/>
<line number="167" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
</lines>
</method>
<method name="getHttpMethodAction" signature="(Ljavax/servlet/ServletRequest;)Ljava/lang/String;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="153" hits="0" branch="false"/>
<line number="154" hits="0" branch="false"/>
</lines>
</method>
<method name="getHttpMethodActions" signature="()Ljava/util/Map;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="140" hits="8" branch="false"/>
</lines>
</method>
<method name="isAccessAllowed" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljava/lang/Object;)Z" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="260" hits="0" branch="false"/>
<line number="262" hits="0" branch="false"/>
<line number="263" hits="0" branch="false"/>
<line number="264" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="83" hits="1" branch="false"/>
<line number="88" hits="48" branch="false"/>
<line number="126" hits="48" branch="false"/>
<line number="127" hits="432" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="128" hits="384" branch="false"/>
<line number="130" hits="48" branch="false"/>
<line number="140" hits="8" branch="false"/>
<line number="153" hits="0" branch="false"/>
<line number="154" hits="0" branch="false"/>
<line number="165" hits="8" branch="false"/>
<line number="166" hits="8" branch="false"/>
<line number="167" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="186" hits="0" branch="false"/>
<line number="218" hits="8" branch="true" condition-coverage="50% (3/6)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
<condition number="2" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="219" hits="0" branch="false"/>
<line number="222" hits="8" branch="false"/>
<line number="225" hits="24" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="226" hits="16" branch="false"/>
<line number="229" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="230" hits="8" branch="false"/>
<line number="231" hits="24" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="232" hits="16" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="233" hits="8" branch="false"/>
<line number="235" hits="16" branch="false"/>
<line number="237" hits="8" branch="false"/>
<line number="240" hits="8" branch="false"/>
<line number="260" hits="0" branch="false"/>
<line number="262" hits="0" branch="false"/>
<line number="263" hits="0" branch="false"/>
<line number="264" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.filter.authz.HttpMethodPermissionFilter$HttpMethodAction" filename="org/apache/shiro/web/filter/authz/HttpMethodPermissionFilter.java" line-rate="1.0" branch-rate="1.0" complexity="2.111111111111111">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="100" hits="49" branch="false"/>
<line number="102" hits="1" branch="false"/>
<line number="103" hits="1" branch="false"/>
<line number="104" hits="1" branch="false"/>
<line number="105" hits="1" branch="false"/>
<line number="106" hits="1" branch="false"/>
<line number="107" hits="1" branch="false"/>
<line number="108" hits="1" branch="false"/>
<line number="109" hits="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;ILjava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="113" hits="8" branch="false"/>
<line number="114" hits="8" branch="false"/>
<line number="115" hits="8" branch="false"/>
</lines>
</method>
<method name="getAction" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="118" hits="384" branch="false"/>
</lines>
</method>
<method name="valueOf" signature="(Ljava/lang/String;)Lorg/apache/shiro/web/filter/authz/HttpMethodPermissionFilter$HttpMethodAction;" line-rate="1.0" branch-rate="1.0">
<lines>
</lines>
</method>
<method name="values" signature="()[Lorg/apache/shiro/web/filter/authz/HttpMethodPermissionFilter$HttpMethodAction;" line-rate="1.0" branch-rate="1.0">
<lines>
</lines>
</method>
</methods>
<lines>
<line number="100" hits="49" branch="false"/>
<line number="102" hits="1" branch="false"/>
<line number="103" hits="1" branch="false"/>
<line number="104" hits="1" branch="false"/>
<line number="105" hits="1" branch="false"/>
<line number="106" hits="1" branch="false"/>
<line number="107" hits="1" branch="false"/>
<line number="108" hits="1" branch="false"/>
<line number="109" hits="1" branch="false"/>
<line number="113" hits="8" branch="false"/>
<line number="114" hits="8" branch="false"/>
<line number="115" hits="8" branch="false"/>
<line number="118" hits="384" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.filter.authz.PermissionsAuthorizationFilter" filename="org/apache/shiro/web/filter/authz/PermissionsAuthorizationFilter.java" line-rate="0.09090909090909091" branch-rate="0.0" complexity="6.0">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="33" hits="96" branch="false"/>
</lines>
</method>
<method name="isAccessAllowed" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljava/lang/Object;)Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="39" hits="0" branch="false"/>
<line number="40" hits="0" branch="false"/>
<line number="42" hits="0" branch="false"/>
<line number="43" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="44" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="45" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="46" hits="0" branch="false"/>
<line number="49" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="50" hits="0" branch="false"/>
<line number="55" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="33" hits="96" branch="false"/>
<line number="39" hits="0" branch="false"/>
<line number="40" hits="0" branch="false"/>
<line number="42" hits="0" branch="false"/>
<line number="43" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="44" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="45" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="46" hits="0" branch="false"/>
<line number="49" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="50" hits="0" branch="false"/>
<line number="55" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.filter.authz.PortFilter" filename="org/apache/shiro/web/filter/authz/PortFilter.java" line-rate="0.7647058823529411" branch-rate="0.45" complexity="3.1666666666666665">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="46" hits="102" branch="false"/>
<line number="51" hits="102" branch="false"/>
</lines>
</method>
<method name="getPort" signature="()I" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="54" hits="2" branch="false"/>
</lines>
</method>
<method name="getScheme" signature="(Ljava/lang/String;I)Ljava/lang/String;" line-rate="0.8" branch-rate="0.75">
<lines>
<line number="80" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="81" hits="1" branch="false"/>
<line number="82" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="83" hits="0" branch="false"/>
<line number="85" hits="1" branch="false"/>
</lines>
</method>
<method name="isAccessAllowed" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljava/lang/Object;)Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="74" hits="0" branch="false"/>
<line number="75" hits="0" branch="false"/>
<line number="76" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
</lines>
</method>
<method name="onAccessDenied" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljava/lang/Object;)Z" line-rate="0.9333333333333333" branch-rate="0.625">
<lines>
<line number="101" hits="2" branch="false"/>
<line number="103" hits="2" branch="false"/>
<line number="105" hits="2" branch="false"/>
<line number="106" hits="2" branch="false"/>
<line number="107" hits="2" branch="false"/>
<line number="108" hits="2" branch="true" condition-coverage="75% (3/4)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="109" hits="1" branch="false"/>
<line number="110" hits="1" branch="false"/>
<line number="112" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="113" hits="2" branch="false"/>
<line number="114" hits="2" branch="false"/>
<line number="115" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="116" hits="0" branch="false"/>
<line number="120" hits="2" branch="false"/>
<line number="122" hits="2" branch="false"/>
</lines>
</method>
<method name="setPort" signature="(I)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="58" hits="53" branch="false"/>
<line number="59" hits="53" branch="false"/>
</lines>
</method>
<method name="toPort" signature="(Ljava/lang/Object;)I" line-rate="0.5" branch-rate="0.16666666666666666">
<lines>
<line number="62" hits="2" branch="false"/>
<line number="63" hits="2" branch="true" condition-coverage="25% (1/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="64" hits="2" branch="false"/>
<line number="66" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="67" hits="0" branch="false"/>
<line number="70" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="46" hits="102" branch="false"/>
<line number="51" hits="102" branch="false"/>
<line number="54" hits="2" branch="false"/>
<line number="58" hits="53" branch="false"/>
<line number="59" hits="53" branch="false"/>
<line number="62" hits="2" branch="false"/>
<line number="63" hits="2" branch="true" condition-coverage="25% (1/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="64" hits="2" branch="false"/>
<line number="66" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="67" hits="0" branch="false"/>
<line number="70" hits="0" branch="false"/>
<line number="74" hits="0" branch="false"/>
<line number="75" hits="0" branch="false"/>
<line number="76" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="80" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="81" hits="1" branch="false"/>
<line number="82" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="83" hits="0" branch="false"/>
<line number="85" hits="1" branch="false"/>
<line number="101" hits="2" branch="false"/>
<line number="103" hits="2" branch="false"/>
<line number="105" hits="2" branch="false"/>
<line number="106" hits="2" branch="false"/>
<line number="107" hits="2" branch="false"/>
<line number="108" hits="2" branch="true" condition-coverage="75% (3/4)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="109" hits="1" branch="false"/>
<line number="110" hits="1" branch="false"/>
<line number="112" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="113" hits="2" branch="false"/>
<line number="114" hits="2" branch="false"/>
<line number="115" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="116" hits="0" branch="false"/>
<line number="120" hits="2" branch="false"/>
<line number="122" hits="2" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.filter.authz.RolesAuthorizationFilter" filename="org/apache/shiro/web/filter/authz/RolesAuthorizationFilter.java" line-rate="0.14285714285714285" branch-rate="0.0" complexity="4.0">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="36" hits="48" branch="false"/>
</lines>
</method>
<method name="isAccessAllowed" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljava/lang/Object;)Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="43" hits="0" branch="false"/>
<line number="44" hits="0" branch="false"/>
<line number="46" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="48" hits="0" branch="false"/>
<line number="51" hits="0" branch="false"/>
<line number="52" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="36" hits="48" branch="false"/>
<line number="43" hits="0" branch="false"/>
<line number="44" hits="0" branch="false"/>
<line number="46" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="48" hits="0" branch="false"/>
<line number="51" hits="0" branch="false"/>
<line number="52" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.filter.authz.SslFilter" filename="org/apache/shiro/web/filter/authz/SslFilter.java" line-rate="0.42857142857142855" branch-rate="0.0" complexity="2.0">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="46" hits="52" branch="false"/>
<line number="47" hits="52" branch="false"/>
<line number="48" hits="52" branch="false"/>
</lines>
</method>
<method name="getScheme" signature="(Ljava/lang/String;I)Ljava/lang/String;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="52" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="53" hits="0" branch="false"/>
<line number="55" hits="0" branch="false"/>
</lines>
</method>
<method name="isAccessAllowed" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljava/lang/Object;)Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="74" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
</lines>
</method>
</methods>
<lines>
<line number="46" hits="52" branch="false"/>
<line number="47" hits="52" branch="false"/>
<line number="48" hits="52" branch="false"/>
<line number="52" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="53" hits="0" branch="false"/>
<line number="55" hits="0" branch="false"/>
<line number="74" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.web.filter.mgt" line-rate="0.9411764705882353" branch-rate="0.8676470588235294" complexity="1.6582278481012658">
<classes>
<class name="org.apache.shiro.web.filter.mgt.DefaultFilter" filename="org/apache/shiro/web/filter/mgt/DefaultFilter.java" line-rate="0.8214285714285714" branch-rate="0.75" complexity="2.0">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="38" hits="59" branch="false"/>
<line number="40" hits="1" branch="false"/>
<line number="41" hits="1" branch="false"/>
<line number="42" hits="1" branch="false"/>
<line number="43" hits="1" branch="false"/>
<line number="44" hits="1" branch="false"/>
<line number="45" hits="1" branch="false"/>
<line number="46" hits="1" branch="false"/>
<line number="47" hits="1" branch="false"/>
<line number="48" hits="1" branch="false"/>
<line number="49" hits="1" branch="false"/>
<line number="50" hits="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;ILjava/lang/Class;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="54" hits="11" branch="false"/>
<line number="55" hits="11" branch="false"/>
<line number="56" hits="11" branch="false"/>
</lines>
</method>
<method name="createInstanceMap" signature="(Ljavax/servlet/FilterConfig;)Ljava/util/Map;" line-rate="0.5454545454545454" branch-rate="0.75">
<lines>
<line number="67" hits="6" branch="false"/>
<line number="68" hits="72" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="69" hits="66" branch="false"/>
<line number="70" hits="66" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="72" hits="0" branch="false"/>
<line number="73" hits="0" branch="false"/>
<line number="74" hits="0" branch="false"/>
<line number="76" hits="0" branch="false"/>
<line number="77" hits="0" branch="false"/>
<line number="79" hits="66" branch="false"/>
<line number="81" hits="6" branch="false"/>
</lines>
</method>
<method name="getFilterClass" signature="()Ljava/lang/Class;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="63" hits="16" branch="false"/>
</lines>
</method>
<method name="newInstance" signature="()Ljavax/servlet/Filter;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="59" hits="517" branch="false"/>
</lines>
</method>
<method name="valueOf" signature="(Ljava/lang/String;)Lorg/apache/shiro/web/filter/mgt/DefaultFilter;" line-rate="1.0" branch-rate="1.0">
<lines>
</lines>
</method>
<method name="values" signature="()[Lorg/apache/shiro/web/filter/mgt/DefaultFilter;" line-rate="1.0" branch-rate="1.0">
<lines>
</lines>
</method>
</methods>
<lines>
<line number="38" hits="59" branch="false"/>
<line number="40" hits="1" branch="false"/>
<line number="41" hits="1" branch="false"/>
<line number="42" hits="1" branch="false"/>
<line number="43" hits="1" branch="false"/>
<line number="44" hits="1" branch="false"/>
<line number="45" hits="1" branch="false"/>
<line number="46" hits="1" branch="false"/>
<line number="47" hits="1" branch="false"/>
<line number="48" hits="1" branch="false"/>
<line number="49" hits="1" branch="false"/>
<line number="50" hits="1" branch="false"/>
<line number="54" hits="11" branch="false"/>
<line number="55" hits="11" branch="false"/>
<line number="56" hits="11" branch="false"/>
<line number="59" hits="517" branch="false"/>
<line number="63" hits="16" branch="false"/>
<line number="67" hits="6" branch="false"/>
<line number="68" hits="72" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="69" hits="66" branch="false"/>
<line number="70" hits="66" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="72" hits="0" branch="false"/>
<line number="73" hits="0" branch="false"/>
<line number="74" hits="0" branch="false"/>
<line number="76" hits="0" branch="false"/>
<line number="77" hits="0" branch="false"/>
<line number="79" hits="66" branch="false"/>
<line number="81" hits="6" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.filter.mgt.DefaultFilterChainManager" filename="org/apache/shiro/web/filter/mgt/DefaultFilterChainManager.java" line-rate="0.9345794392523364" branch-rate="0.8653846153846154" complexity="2.52">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="49" hits="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="57" hits="31" branch="false"/>
<line number="58" hits="31" branch="false"/>
<line number="59" hits="31" branch="false"/>
<line number="60" hits="31" branch="false"/>
<line number="61" hits="31" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljavax/servlet/FilterConfig;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="63" hits="10" branch="false"/>
<line number="64" hits="10" branch="false"/>
<line number="65" hits="10" branch="false"/>
<line number="66" hits="10" branch="false"/>
<line number="67" hits="10" branch="false"/>
<line number="68" hits="10" branch="false"/>
</lines>
</method>
<method name="addDefaultFilters" signature="(Z)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="346" hits="492" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="347" hits="451" branch="false"/>
<line number="349" hits="41" branch="false"/>
</lines>
</method>
<method name="addFilter" signature="(Ljava/lang/String;Ljavax/servlet/Filter;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="111" hits="5" branch="false"/>
<line number="112" hits="5" branch="false"/>
</lines>
</method>
<method name="addFilter" signature="(Ljava/lang/String;Ljavax/servlet/Filter;Z)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="115" hits="71" branch="false"/>
<line number="116" hits="71" branch="false"/>
</lines>
</method>
<method name="addFilter" signature="(Ljava/lang/String;Ljavax/servlet/Filter;ZZ)V" line-rate="1.0" branch-rate="0.875">
<lines>
<line number="243" hits="522" branch="false"/>
<line number="244" hits="522" branch="true" condition-coverage="75% (3/4)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="245" hits="522" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="246" hits="521" branch="false"/>
<line number="248" hits="522" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="249" hits="154" branch="false"/>
<line number="251" hits="522" branch="false"/>
<line number="253" hits="522" branch="false"/>
</lines>
</method>
<method name="addToChain" signature="(Ljava/lang/String;Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="256" hits="6" branch="false"/>
<line number="257" hits="4" branch="false"/>
</lines>
</method>
<method name="addToChain" signature="(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="260" hits="18" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="261" hits="1" branch="false"/>
<line number="263" hits="17" branch="false"/>
<line number="264" hits="17" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="265" hits="1" branch="false"/>
<line number="270" hits="16" branch="false"/>
<line number="272" hits="15" branch="false"/>
<line number="273" hits="15" branch="false"/>
<line number="274" hits="15" branch="false"/>
</lines>
</method>
<method name="applyChainConfig" signature="(Ljava/lang/String;Ljavax/servlet/Filter;Ljava/lang/String;)V" line-rate="1.0" branch-rate="0.8333333333333334">
<lines>
<line number="277" hits="16" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="278" hits="16" branch="false"/>
<line number="281" hits="16" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="282" hits="14" branch="false"/>
<line number="284" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="287" hits="1" branch="false"/>
<line number="291" hits="1" branch="false"/>
<line number="294" hits="15" branch="false"/>
</lines>
</method>
<method name="createChain" signature="(Ljava/lang/String;Ljava/lang/String;)V" line-rate="1.0" branch-rate="0.875">
<lines>
<line number="119" hits="10" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="120" hits="1" branch="false"/>
<line number="122" hits="9" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="123" hits="1" branch="false"/>
<line number="126" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="127" hits="8" branch="false"/>
<line number="140" hits="8" branch="false"/>
<line number="144" hits="19" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="145" hits="11" branch="false"/>
<line number="148" hits="11" branch="false"/>
<line number="150" hits="8" branch="false"/>
</lines>
</method>
<method name="ensureChain" signature="(Ljava/lang/String;)Lorg/apache/shiro/web/filter/mgt/NamedFilterList;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="297" hits="15" branch="false"/>
<line number="298" hits="15" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="299" hits="12" branch="false"/>
<line number="300" hits="12" branch="false"/>
<line number="302" hits="15" branch="false"/>
</lines>
</method>
<method name="getChain" signature="(Ljava/lang/String;)Lorg/apache/shiro/web/filter/mgt/NamedFilterList;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="306" hits="22" branch="false"/>
</lines>
</method>
<method name="getChainNames" signature="()Ljava/util/Set;" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="315" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
</lines>
</method>
<method name="getFilter" signature="(Ljava/lang/String;)Ljavax/servlet/Filter;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="107" hits="562" branch="false"/>
</lines>
</method>
<method name="getFilterChains" signature="()Ljava/util/Map;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="98" hits="2" branch="false"/>
</lines>
</method>
<method name="getFilterConfig" signature="()Ljavax/servlet/FilterConfig;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="76" hits="155" branch="false"/>
</lines>
</method>
<method name="getFilters" signature="()Ljava/util/Map;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="89" hits="11" branch="false"/>
</lines>
</method>
<method name="hasChains" signature="()Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="310" hits="9" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
</lines>
</method>
<method name="initFilter" signature="(Ljavax/servlet/Filter;)V" line-rate="0.625" branch-rate="0.5">
<lines>
<line number="333" hits="154" branch="false"/>
<line number="334" hits="154" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="335" hits="0" branch="false"/>
<line number="339" hits="154" branch="false"/>
<line number="340" hits="0" branch="false"/>
<line number="341" hits="0" branch="false"/>
<line number="342" hits="154" branch="false"/>
<line number="343" hits="154" branch="false"/>
</lines>
</method>
<method name="proxy" signature="(Ljavax/servlet/FilterChain;Ljava/lang/String;)Ljavax/servlet/FilterChain;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="319" hits="5" branch="false"/>
<line number="320" hits="5" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="321" hits="1" branch="false"/>
<line number="322" hits="1" branch="false"/>
<line number="324" hits="4" branch="false"/>
</lines>
</method>
<method name="setFilterChains" signature="(Ljava/util/Map;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="103" hits="2" branch="false"/>
<line number="104" hits="2" branch="false"/>
</lines>
</method>
<method name="setFilterConfig" signature="(Ljavax/servlet/FilterConfig;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="85" hits="10" branch="false"/>
<line number="86" hits="10" branch="false"/>
</lines>
</method>
<method name="setFilters" signature="(Ljava/util/Map;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="94" hits="1" branch="false"/>
<line number="95" hits="1" branch="false"/>
</lines>
</method>
<method name="splitChainDefinition" signature="(Ljava/lang/String;)[Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="171" hits="10" branch="false"/>
</lines>
</method>
<method name="toNameConfigPair" signature="(Ljava/lang/String;)[Ljava/lang/String;" line-rate="0.7777777777777778" branch-rate="0.8571428571428571">
<lines>
<line number="200" hits="16" branch="false"/>
<line number="201" hits="16" branch="false"/>
<line number="203" hits="16" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="204" hits="0" branch="false"/>
<line number="206" hits="16" branch="false"/>
<line number="208" hits="16" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="209" hits="7" branch="false"/>
<line number="211" hits="7" branch="false"/>
<line number="212" hits="7" branch="false"/>
<line number="218" hits="7" branch="true" condition-coverage="100% (6/6)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="100%"/>
<condition number="2" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="219" hits="3" branch="false"/>
<line number="220" hits="3" branch="false"/>
<line number="224" hits="3" branch="true" condition-coverage="75% (3/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="225" hits="1" branch="false"/>
<line number="234" hits="16" branch="false"/>
<line number="236" hits="0" branch="false"/>
<line number="237" hits="0" branch="false"/>
<line number="238" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="49" hits="1" branch="false"/>
<line number="57" hits="31" branch="false"/>
<line number="58" hits="31" branch="false"/>
<line number="59" hits="31" branch="false"/>
<line number="60" hits="31" branch="false"/>
<line number="61" hits="31" branch="false"/>
<line number="63" hits="10" branch="false"/>
<line number="64" hits="10" branch="false"/>
<line number="65" hits="10" branch="false"/>
<line number="66" hits="10" branch="false"/>
<line number="67" hits="10" branch="false"/>
<line number="68" hits="10" branch="false"/>
<line number="76" hits="155" branch="false"/>
<line number="85" hits="10" branch="false"/>
<line number="86" hits="10" branch="false"/>
<line number="89" hits="11" branch="false"/>
<line number="94" hits="1" branch="false"/>
<line number="95" hits="1" branch="false"/>
<line number="98" hits="2" branch="false"/>
<line number="103" hits="2" branch="false"/>
<line number="104" hits="2" branch="false"/>
<line number="107" hits="562" branch="false"/>
<line number="111" hits="5" branch="false"/>
<line number="112" hits="5" branch="false"/>
<line number="115" hits="71" branch="false"/>
<line number="116" hits="71" branch="false"/>
<line number="119" hits="10" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="120" hits="1" branch="false"/>
<line number="122" hits="9" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="123" hits="1" branch="false"/>
<line number="126" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="127" hits="8" branch="false"/>
<line number="140" hits="8" branch="false"/>
<line number="144" hits="19" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="145" hits="11" branch="false"/>
<line number="148" hits="11" branch="false"/>
<line number="150" hits="8" branch="false"/>
<line number="171" hits="10" branch="false"/>
<line number="200" hits="16" branch="false"/>
<line number="201" hits="16" branch="false"/>
<line number="203" hits="16" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="204" hits="0" branch="false"/>
<line number="206" hits="16" branch="false"/>
<line number="208" hits="16" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="209" hits="7" branch="false"/>
<line number="211" hits="7" branch="false"/>
<line number="212" hits="7" branch="false"/>
<line number="218" hits="7" branch="true" condition-coverage="100% (6/6)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="100%"/>
<condition number="2" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="219" hits="3" branch="false"/>
<line number="220" hits="3" branch="false"/>
<line number="224" hits="3" branch="true" condition-coverage="75% (3/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="225" hits="1" branch="false"/>
<line number="234" hits="16" branch="false"/>
<line number="236" hits="0" branch="false"/>
<line number="237" hits="0" branch="false"/>
<line number="238" hits="0" branch="false"/>
<line number="243" hits="522" branch="false"/>
<line number="244" hits="522" branch="true" condition-coverage="75% (3/4)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="245" hits="522" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="246" hits="521" branch="false"/>
<line number="248" hits="522" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="249" hits="154" branch="false"/>
<line number="251" hits="522" branch="false"/>
<line number="253" hits="522" branch="false"/>
<line number="256" hits="6" branch="false"/>
<line number="257" hits="4" branch="false"/>
<line number="260" hits="18" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="261" hits="1" branch="false"/>
<line number="263" hits="17" branch="false"/>
<line number="264" hits="17" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="265" hits="1" branch="false"/>
<line number="270" hits="16" branch="false"/>
<line number="272" hits="15" branch="false"/>
<line number="273" hits="15" branch="false"/>
<line number="274" hits="15" branch="false"/>
<line number="277" hits="16" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="278" hits="16" branch="false"/>
<line number="281" hits="16" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="282" hits="14" branch="false"/>
<line number="284" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="287" hits="1" branch="false"/>
<line number="291" hits="1" branch="false"/>
<line number="294" hits="15" branch="false"/>
<line number="297" hits="15" branch="false"/>
<line number="298" hits="15" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="299" hits="12" branch="false"/>
<line number="300" hits="12" branch="false"/>
<line number="302" hits="15" branch="false"/>
<line number="306" hits="22" branch="false"/>
<line number="310" hits="9" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="315" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="319" hits="5" branch="false"/>
<line number="320" hits="5" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="321" hits="1" branch="false"/>
<line number="322" hits="1" branch="false"/>
<line number="324" hits="4" branch="false"/>
<line number="333" hits="154" branch="false"/>
<line number="334" hits="154" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="335" hits="0" branch="false"/>
<line number="339" hits="154" branch="false"/>
<line number="340" hits="0" branch="false"/>
<line number="341" hits="0" branch="false"/>
<line number="342" hits="154" branch="false"/>
<line number="343" hits="154" branch="false"/>
<line number="346" hits="492" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="347" hits="451" branch="false"/>
<line number="349" hits="41" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.filter.mgt.FilterChainManager" filename="org/apache/shiro/web/filter/mgt/FilterChainManager.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.web.filter.mgt.FilterChainResolver" filename="org/apache/shiro/web/filter/mgt/FilterChainResolver.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.web.filter.mgt.NamedFilterList" filename="org/apache/shiro/web/filter/mgt/NamedFilterList.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.web.filter.mgt.PathMatchingFilterChainResolver" filename="org/apache/shiro/web/filter/mgt/PathMatchingFilterChainResolver.java" line-rate="1.0" branch-rate="0.875" complexity="1.6666666666666667">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="44" hits="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="50" hits="11" branch="false"/>
<line number="51" hits="11" branch="false"/>
<line number="52" hits="11" branch="false"/>
<line number="53" hits="11" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljavax/servlet/FilterConfig;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="55" hits="5" branch="false"/>
<line number="56" hits="5" branch="false"/>
<line number="57" hits="5" branch="false"/>
<line number="58" hits="5" branch="false"/>
</lines>
</method>
<method name="getChain" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)Ljavax/servlet/FilterChain;" line-rate="1.0" branch-rate="0.875">
<lines>
<line number="94" hits="5" branch="false"/>
<line number="95" hits="5" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="96" hits="1" branch="false"/>
<line number="99" hits="4" branch="false"/>
<line number="103" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="106" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="107" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="108" hits="3" branch="false"/>
<line number="111" hits="3" branch="false"/>
<line number="113" hits="1" branch="false"/>
<line number="115" hits="1" branch="false"/>
</lines>
</method>
<method name="getFilterChainManager" signature="()Lorg/apache/shiro/web/filter/mgt/FilterChainManager;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="85" hits="22" branch="false"/>
</lines>
</method>
<method name="getPathMatcher" signature="()Lorg/apache/shiro/util/PatternMatcher;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="69" hits="10" branch="false"/>
</lines>
</method>
<method name="getPathWithinApplication" signature="(Ljavax/servlet/ServletRequest;)Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="147" hits="4" branch="false"/>
</lines>
</method>
<method name="pathMatches" signature="(Ljava/lang/String;Ljava/lang/String;)Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="134" hits="4" branch="false"/>
<line number="135" hits="4" branch="false"/>
</lines>
</method>
<method name="setFilterChainManager" signature="(Lorg/apache/shiro/web/filter/mgt/FilterChainManager;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="90" hits="1" branch="false"/>
<line number="91" hits="1" branch="false"/>
</lines>
</method>
<method name="setPathMatcher" signature="(Lorg/apache/shiro/util/PatternMatcher;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="81" hits="1" branch="false"/>
<line number="82" hits="1" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="44" hits="1" branch="false"/>
<line number="50" hits="11" branch="false"/>
<line number="51" hits="11" branch="false"/>
<line number="52" hits="11" branch="false"/>
<line number="53" hits="11" branch="false"/>
<line number="55" hits="5" branch="false"/>
<line number="56" hits="5" branch="false"/>
<line number="57" hits="5" branch="false"/>
<line number="58" hits="5" branch="false"/>
<line number="69" hits="10" branch="false"/>
<line number="81" hits="1" branch="false"/>
<line number="82" hits="1" branch="false"/>
<line number="85" hits="22" branch="false"/>
<line number="90" hits="1" branch="false"/>
<line number="91" hits="1" branch="false"/>
<line number="94" hits="5" branch="false"/>
<line number="95" hits="5" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="96" hits="1" branch="false"/>
<line number="99" hits="4" branch="false"/>
<line number="103" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="106" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="107" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="108" hits="3" branch="false"/>
<line number="111" hits="3" branch="false"/>
<line number="113" hits="1" branch="false"/>
<line number="115" hits="1" branch="false"/>
<line number="134" hits="4" branch="false"/>
<line number="135" hits="4" branch="false"/>
<line number="147" hits="4" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.filter.mgt.SimpleNamedFilterList" filename="org/apache/shiro/web/filter/mgt/SimpleNamedFilterList.java" line-rate="1.0" branch-rate="1.0" complexity="1.1428571428571428">
<methods>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="48" hits="15" branch="false"/>
<line number="49" hits="14" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/util/List;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="59" hits="17" branch="false"/>
<line number="60" hits="17" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="61" hits="1" branch="false"/>
<line number="63" hits="16" branch="false"/>
<line number="64" hits="16" branch="false"/>
<line number="65" hits="15" branch="false"/>
</lines>
</method>
<method name="add" signature="(ILjava/lang/Object;)V" line-rate="1.0" branch-rate="1.0">
<lines>
</lines>
</method>
<method name="add" signature="(ILjavax/servlet/Filter;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="87" hits="1" branch="false"/>
<line number="88" hits="1" branch="false"/>
</lines>
</method>
<method name="add" signature="(Ljava/lang/Object;)Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="35" hits="34" branch="false"/>
</lines>
</method>
<method name="add" signature="(Ljavax/servlet/Filter;)Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="83" hits="19" branch="false"/>
</lines>
</method>
<method name="addAll" signature="(ILjava/util/Collection;)Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="95" hits="1" branch="false"/>
</lines>
</method>
<method name="addAll" signature="(Ljava/util/Collection;)Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="91" hits="3" branch="false"/>
</lines>
</method>
<method name="clear" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="99" hits="1" branch="false"/>
<line number="100" hits="1" branch="false"/>
</lines>
</method>
<method name="contains" signature="(Ljava/lang/Object;)Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="103" hits="1" branch="false"/>
</lines>
</method>
<method name="containsAll" signature="(Ljava/util/Collection;)Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="107" hits="1" branch="false"/>
</lines>
</method>
<method name="get" signature="(I)Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
</lines>
</method>
<method name="get" signature="(I)Ljavax/servlet/Filter;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="111" hits="12" branch="false"/>
</lines>
</method>
<method name="getName" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="75" hits="2" branch="false"/>
</lines>
</method>
<method name="indexOf" signature="(Ljava/lang/Object;)I" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="115" hits="1" branch="false"/>
</lines>
</method>
<method name="isEmpty" signature="()Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="119" hits="4" branch="false"/>
</lines>
</method>
<method name="iterator" signature="()Ljava/util/Iterator;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="123" hits="1" branch="false"/>
</lines>
</method>
<method name="lastIndexOf" signature="(Ljava/lang/Object;)I" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="127" hits="1" branch="false"/>
</lines>
</method>
<method name="listIterator" signature="()Ljava/util/ListIterator;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="131" hits="1" branch="false"/>
</lines>
</method>
<method name="listIterator" signature="(I)Ljava/util/ListIterator;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="135" hits="1" branch="false"/>
</lines>
</method>
<method name="proxy" signature="(Ljavax/servlet/FilterChain;)Ljavax/servlet/FilterChain;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="79" hits="5" branch="false"/>
</lines>
</method>
<method name="remove" signature="(I)Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
</lines>
</method>
<method name="remove" signature="(I)Ljavax/servlet/Filter;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="139" hits="1" branch="false"/>
</lines>
</method>
<method name="remove" signature="(Ljava/lang/Object;)Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="143" hits="1" branch="false"/>
</lines>
</method>
<method name="removeAll" signature="(Ljava/util/Collection;)Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="147" hits="1" branch="false"/>
</lines>
</method>
<method name="retainAll" signature="(Ljava/util/Collection;)Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="151" hits="1" branch="false"/>
</lines>
</method>
<method name="set" signature="(ILjava/lang/Object;)Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
</lines>
</method>
<method name="set" signature="(ILjavax/servlet/Filter;)Ljavax/servlet/Filter;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="155" hits="1" branch="false"/>
</lines>
</method>
<method name="setName" signature="(Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="68" hits="16" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="69" hits="1" branch="false"/>
<line number="71" hits="15" branch="false"/>
<line number="72" hits="15" branch="false"/>
</lines>
</method>
<method name="size" signature="()I" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="159" hits="9" branch="false"/>
</lines>
</method>
<method name="subList" signature="(II)Ljava/util/List;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="163" hits="1" branch="false"/>
</lines>
</method>
<method name="toArray" signature="()[Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="167" hits="2" branch="false"/>
</lines>
</method>
<method name="toArray" signature="([Ljava/lang/Object;)[Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="172" hits="1" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="35" hits="34" branch="false"/>
<line number="48" hits="15" branch="false"/>
<line number="49" hits="14" branch="false"/>
<line number="59" hits="17" branch="false"/>
<line number="60" hits="17" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="61" hits="1" branch="false"/>
<line number="63" hits="16" branch="false"/>
<line number="64" hits="16" branch="false"/>
<line number="65" hits="15" branch="false"/>
<line number="68" hits="16" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="69" hits="1" branch="false"/>
<line number="71" hits="15" branch="false"/>
<line number="72" hits="15" branch="false"/>
<line number="75" hits="2" branch="false"/>
<line number="79" hits="5" branch="false"/>
<line number="83" hits="19" branch="false"/>
<line number="87" hits="1" branch="false"/>
<line number="88" hits="1" branch="false"/>
<line number="91" hits="3" branch="false"/>
<line number="95" hits="1" branch="false"/>
<line number="99" hits="1" branch="false"/>
<line number="100" hits="1" branch="false"/>
<line number="103" hits="1" branch="false"/>
<line number="107" hits="1" branch="false"/>
<line number="111" hits="12" branch="false"/>
<line number="115" hits="1" branch="false"/>
<line number="119" hits="4" branch="false"/>
<line number="123" hits="1" branch="false"/>
<line number="127" hits="1" branch="false"/>
<line number="131" hits="1" branch="false"/>
<line number="135" hits="1" branch="false"/>
<line number="139" hits="1" branch="false"/>
<line number="143" hits="1" branch="false"/>
<line number="147" hits="1" branch="false"/>
<line number="151" hits="1" branch="false"/>
<line number="155" hits="1" branch="false"/>
<line number="159" hits="9" branch="false"/>
<line number="163" hits="1" branch="false"/>
<line number="167" hits="2" branch="false"/>
<line number="172" hits="1" branch="false"/>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.web.filter.session" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<classes>
<class name="org.apache.shiro.web.filter.session.NoSessionCreationFilter" filename="org/apache/shiro/web/filter/session/NoSessionCreationFilter.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="49" hits="48" branch="false"/>
</lines>
</method>
<method name="onPreHandle" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljava/lang/Object;)Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="53" hits="1" branch="false"/>
<line number="54" hits="1" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="49" hits="48" branch="false"/>
<line number="53" hits="1" branch="false"/>
<line number="54" hits="1" branch="false"/>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.web.mgt" line-rate="0.7252747252747253" branch-rate="0.5444444444444444" complexity="2.676470588235294">
<classes>
<class name="org.apache.shiro.web.mgt.CookieRememberMeManager" filename="org/apache/shiro/web/mgt/CookieRememberMeManager.java" line-rate="0.8529411764705882" branch-rate="0.5294117647058824" complexity="3.2">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="75" hits="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="87" hits="19" branch="false"/>
<line number="88" hits="19" branch="false"/>
<line number="89" hits="19" branch="false"/>
<line number="92" hits="19" branch="false"/>
<line number="93" hits="19" branch="false"/>
<line number="94" hits="19" branch="false"/>
</lines>
</method>
<method name="ensurePadding" signature="(Ljava/lang/String;)Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="236" hits="2" branch="false"/>
<line number="237" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="238" hits="1" branch="false"/>
<line number="239" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="240" hits="3" branch="false"/>
<line number="242" hits="1" branch="false"/>
<line number="244" hits="2" branch="false"/>
</lines>
</method>
<method name="forgetIdentity" signature="(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="288" hits="4" branch="false"/>
<line number="289" hits="4" branch="false"/>
</lines>
</method>
<method name="forgetIdentity" signature="(Lorg/apache/shiro/subject/Subject;)V" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="257" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="258" hits="3" branch="false"/>
<line number="259" hits="3" branch="false"/>
<line number="260" hits="3" branch="false"/>
<line number="262" hits="3" branch="false"/>
</lines>
</method>
<method name="forgetIdentity" signature="(Lorg/apache/shiro/subject/SubjectContext;)V" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="274" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="275" hits="1" branch="false"/>
<line number="276" hits="1" branch="false"/>
<line number="277" hits="1" branch="false"/>
<line number="279" hits="1" branch="false"/>
</lines>
</method>
<method name="getCookie" signature="()Lorg/apache/shiro/web/servlet/Cookie;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="107" hits="13" branch="false"/>
</lines>
</method>
<method name="getRememberedSerializedIdentity" signature="(Lorg/apache/shiro/subject/SubjectContext;)[B" line-rate="0.7619047619047619" branch-rate="0.5625">
<lines>
<line number="187" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="188" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="189" hits="0" branch="false"/>
<line number="192" hits="0" branch="false"/>
<line number="194" hits="0" branch="false"/>
<line number="197" hits="8" branch="false"/>
<line number="198" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="199" hits="0" branch="false"/>
<line number="202" hits="8" branch="false"/>
<line number="203" hits="8" branch="false"/>
<line number="205" hits="8" branch="false"/>
<line number="208" hits="8" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="210" hits="7" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="211" hits="2" branch="false"/>
<line number="212" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="213" hits="2" branch="false"/>
<line number="215" hits="2" branch="false"/>
<line number="216" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="217" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="219" hits="2" branch="false"/>
<line number="222" hits="5" branch="false"/>
</lines>
</method>
<method name="isIdentityRemoved" signature="(Lorg/apache/shiro/web/subject/WebSubjectContext;)Z" line-rate="0.8" branch-rate="0.3333333333333333">
<lines>
<line number="161" hits="8" branch="false"/>
<line number="162" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="163" hits="8" branch="false"/>
<line number="164" hits="8" branch="true" condition-coverage="25% (1/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="166" hits="0" branch="false"/>
</lines>
</method>
<method name="rememberSerializedIdentity" signature="(Lorg/apache/shiro/subject/Subject;[B)V" line-rate="0.6923076923076923" branch-rate="0.25">
<lines>
<line number="137" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="138" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="139" hits="0" branch="false"/>
<line number="142" hits="0" branch="false"/>
<line number="144" hits="0" branch="false"/>
<line number="148" hits="1" branch="false"/>
<line number="149" hits="1" branch="false"/>
<line number="152" hits="1" branch="false"/>
<line number="154" hits="1" branch="false"/>
<line number="155" hits="1" branch="false"/>
<line number="156" hits="1" branch="false"/>
<line number="157" hits="1" branch="false"/>
<line number="158" hits="1" branch="false"/>
</lines>
</method>
<method name="setCookie" signature="(Lorg/apache/shiro/web/servlet/Cookie;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="122" hits="2" branch="false"/>
<line number="123" hits="2" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="75" hits="1" branch="false"/>
<line number="87" hits="19" branch="false"/>
<line number="88" hits="19" branch="false"/>
<line number="89" hits="19" branch="false"/>
<line number="92" hits="19" branch="false"/>
<line number="93" hits="19" branch="false"/>
<line number="94" hits="19" branch="false"/>
<line number="107" hits="13" branch="false"/>
<line number="122" hits="2" branch="false"/>
<line number="123" hits="2" branch="false"/>
<line number="137" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="138" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="139" hits="0" branch="false"/>
<line number="142" hits="0" branch="false"/>
<line number="144" hits="0" branch="false"/>
<line number="148" hits="1" branch="false"/>
<line number="149" hits="1" branch="false"/>
<line number="152" hits="1" branch="false"/>
<line number="154" hits="1" branch="false"/>
<line number="155" hits="1" branch="false"/>
<line number="156" hits="1" branch="false"/>
<line number="157" hits="1" branch="false"/>
<line number="158" hits="1" branch="false"/>
<line number="161" hits="8" branch="false"/>
<line number="162" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="163" hits="8" branch="false"/>
<line number="164" hits="8" branch="true" condition-coverage="25% (1/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="166" hits="0" branch="false"/>
<line number="187" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="188" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="189" hits="0" branch="false"/>
<line number="192" hits="0" branch="false"/>
<line number="194" hits="0" branch="false"/>
<line number="197" hits="8" branch="false"/>
<line number="198" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="199" hits="0" branch="false"/>
<line number="202" hits="8" branch="false"/>
<line number="203" hits="8" branch="false"/>
<line number="205" hits="8" branch="false"/>
<line number="208" hits="8" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="210" hits="7" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="211" hits="2" branch="false"/>
<line number="212" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="213" hits="2" branch="false"/>
<line number="215" hits="2" branch="false"/>
<line number="216" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="217" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="219" hits="2" branch="false"/>
<line number="222" hits="5" branch="false"/>
<line number="236" hits="2" branch="false"/>
<line number="237" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="238" hits="1" branch="false"/>
<line number="239" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="240" hits="3" branch="false"/>
<line number="242" hits="1" branch="false"/>
<line number="244" hits="2" branch="false"/>
<line number="257" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="258" hits="3" branch="false"/>
<line number="259" hits="3" branch="false"/>
<line number="260" hits="3" branch="false"/>
<line number="262" hits="3" branch="false"/>
<line number="274" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="275" hits="1" branch="false"/>
<line number="276" hits="1" branch="false"/>
<line number="277" hits="1" branch="false"/>
<line number="279" hits="1" branch="false"/>
<line number="288" hits="4" branch="false"/>
<line number="289" hits="4" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.mgt.DefaultWebSecurityManager" filename="org/apache/shiro/web/mgt/DefaultWebSecurityManager.java" line-rate="0.5617977528089888" branch-rate="0.45454545454545453" complexity="2.388888888888889">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="57" hits="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="71" hits="14" branch="false"/>
<line number="72" hits="14" branch="false"/>
<line number="73" hits="14" branch="false"/>
<line number="74" hits="14" branch="false"/>
<line number="75" hits="14" branch="false"/>
<line number="76" hits="14" branch="false"/>
<line number="77" hits="14" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/util/Collection;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="87" hits="0" branch="false"/>
<line number="88" hits="0" branch="false"/>
<line number="89" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/realm/Realm;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="81" hits="0" branch="false"/>
<line number="82" hits="0" branch="false"/>
<line number="83" hits="0" branch="false"/>
</lines>
</method>
<method name="afterSessionManagerSet" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="106" hits="22" branch="false"/>
<line number="107" hits="22" branch="false"/>
<line number="108" hits="22" branch="false"/>
</lines>
</method>
<method name="applySessionManagerToSessionStorageEvaluatorIfPossible" signature="()V" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="112" hits="22" branch="false"/>
<line number="113" hits="22" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="114" hits="22" branch="false"/>
<line number="115" hits="22" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="116" hits="22" branch="false"/>
<line number="119" hits="22" branch="false"/>
</lines>
</method>
<method name="beforeLogout" signature="(Lorg/apache/shiro/subject/Subject;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="240" hits="0" branch="false"/>
<line number="241" hits="0" branch="false"/>
<line number="242" hits="0" branch="false"/>
</lines>
</method>
<method name="copy" signature="(Lorg/apache/shiro/subject/SubjectContext;)Lorg/apache/shiro/subject/SubjectContext;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="123" hits="7" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="124" hits="6" branch="false"/>
<line number="126" hits="1" branch="false"/>
</lines>
</method>
<method name="createSessionContext" signature="(Lorg/apache/shiro/subject/SubjectContext;)Lorg/apache/shiro/session/mgt/SessionContext;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="207" hits="0" branch="false"/>
<line number="208" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="209" hits="0" branch="false"/>
<line number="210" hits="0" branch="false"/>
<line number="211" hits="0" branch="false"/>
<line number="212" hits="0" branch="false"/>
<line number="213" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="214" hits="0" branch="false"/>
<line number="216" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="217" hits="0" branch="false"/>
<line number="220" hits="0" branch="false"/>
<line number="222" hits="0" branch="false"/>
</lines>
</method>
<method name="createSessionManager" signature="(Ljava/lang/String;)Lorg/apache/shiro/session/mgt/SessionManager;" line-rate="0.6" branch-rate="0.5">
<lines>
<line number="196" hits="7" branch="true" condition-coverage="50% (2/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="197" hits="0" branch="false"/>
<line number="198" hits="0" branch="false"/>
<line number="200" hits="7" branch="false"/>
<line number="201" hits="7" branch="false"/>
</lines>
</method>
<method name="createSubjectContext" signature="()Lorg/apache/shiro/subject/SubjectContext;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="93" hits="1" branch="false"/>
</lines>
</method>
<method name="getSessionKey" signature="(Lorg/apache/shiro/subject/SubjectContext;)Lorg/apache/shiro/session/mgt/SessionKey;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="227" hits="7" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="228" hits="5" branch="false"/>
<line number="229" hits="5" branch="false"/>
<line number="230" hits="5" branch="false"/>
<line number="231" hits="5" branch="false"/>
<line number="233" hits="2" branch="false"/>
</lines>
</method>
<method name="getSessionMode" signature="()Ljava/lang/String;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="132" hits="0" branch="false"/>
</lines>
</method>
<method name="isHttpSessionMode" signature="()Z" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="191" hits="1" branch="false"/>
<line number="192" hits="1" branch="true" condition-coverage="50% (2/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
</lines>
</method>
<method name="removeRequestIdentity" signature="(Lorg/apache/shiro/subject/Subject;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="245" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="246" hits="0" branch="false"/>
<line number="247" hits="0" branch="false"/>
<line number="248" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="249" hits="0" branch="false"/>
<line number="252" hits="0" branch="false"/>
</lines>
</method>
<method name="setInternalSessionManager" signature="(Lorg/apache/shiro/session/mgt/SessionManager;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="184" hits="22" branch="false"/>
<line number="185" hits="22" branch="false"/>
</lines>
</method>
<method name="setSessionManager" signature="(Lorg/apache/shiro/session/mgt/SessionManager;)V" line-rate="0.5714285714285714" branch-rate="0.3333333333333333">
<lines>
<line number="166" hits="15" branch="false"/>
<line number="167" hits="15" branch="true" condition-coverage="50% (2/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="168" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="169" hits="0" branch="false"/>
<line number="173" hits="0" branch="false"/>
<line number="176" hits="15" branch="false"/>
<line number="177" hits="15" branch="false"/>
</lines>
</method>
<method name="setSessionMode" signature="(Ljava/lang/String;)V" line-rate="0.8" branch-rate="0.6666666666666666">
<lines>
<line number="141" hits="12" branch="false"/>
<line number="143" hits="12" branch="false"/>
<line number="144" hits="12" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="145" hits="0" branch="false"/>
<line number="147" hits="12" branch="false"/>
<line number="148" hits="12" branch="true" condition-coverage="50% (2/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="149" hits="0" branch="false"/>
<line number="153" hits="0" branch="false"/>
<line number="155" hits="12" branch="true" condition-coverage="75% (3/4)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="156" hits="12" branch="false"/>
<line number="157" hits="12" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="158" hits="7" branch="false"/>
<line number="159" hits="7" branch="false"/>
<line number="160" hits="7" branch="false"/>
<line number="162" hits="12" branch="false"/>
</lines>
</method>
<method name="setSubjectDAO" signature="(Lorg/apache/shiro/mgt/SubjectDAO;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="99" hits="0" branch="false"/>
<line number="100" hits="0" branch="false"/>
<line number="101" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="57" hits="1" branch="false"/>
<line number="71" hits="14" branch="false"/>
<line number="72" hits="14" branch="false"/>
<line number="73" hits="14" branch="false"/>
<line number="74" hits="14" branch="false"/>
<line number="75" hits="14" branch="false"/>
<line number="76" hits="14" branch="false"/>
<line number="77" hits="14" branch="false"/>
<line number="81" hits="0" branch="false"/>
<line number="82" hits="0" branch="false"/>
<line number="83" hits="0" branch="false"/>
<line number="87" hits="0" branch="false"/>
<line number="88" hits="0" branch="false"/>
<line number="89" hits="0" branch="false"/>
<line number="93" hits="1" branch="false"/>
<line number="99" hits="0" branch="false"/>
<line number="100" hits="0" branch="false"/>
<line number="101" hits="0" branch="false"/>
<line number="106" hits="22" branch="false"/>
<line number="107" hits="22" branch="false"/>
<line number="108" hits="22" branch="false"/>
<line number="112" hits="22" branch="false"/>
<line number="113" hits="22" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="114" hits="22" branch="false"/>
<line number="115" hits="22" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="116" hits="22" branch="false"/>
<line number="119" hits="22" branch="false"/>
<line number="123" hits="7" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="124" hits="6" branch="false"/>
<line number="126" hits="1" branch="false"/>
<line number="132" hits="0" branch="false"/>
<line number="141" hits="12" branch="false"/>
<line number="143" hits="12" branch="false"/>
<line number="144" hits="12" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="145" hits="0" branch="false"/>
<line number="147" hits="12" branch="false"/>
<line number="148" hits="12" branch="true" condition-coverage="50% (2/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="149" hits="0" branch="false"/>
<line number="153" hits="0" branch="false"/>
<line number="155" hits="12" branch="true" condition-coverage="75% (3/4)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="156" hits="12" branch="false"/>
<line number="157" hits="12" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="158" hits="7" branch="false"/>
<line number="159" hits="7" branch="false"/>
<line number="160" hits="7" branch="false"/>
<line number="162" hits="12" branch="false"/>
<line number="166" hits="15" branch="false"/>
<line number="167" hits="15" branch="true" condition-coverage="50% (2/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="168" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="169" hits="0" branch="false"/>
<line number="173" hits="0" branch="false"/>
<line number="176" hits="15" branch="false"/>
<line number="177" hits="15" branch="false"/>
<line number="184" hits="22" branch="false"/>
<line number="185" hits="22" branch="false"/>
<line number="191" hits="1" branch="false"/>
<line number="192" hits="1" branch="true" condition-coverage="50% (2/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="196" hits="7" branch="true" condition-coverage="50% (2/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="197" hits="0" branch="false"/>
<line number="198" hits="0" branch="false"/>
<line number="200" hits="7" branch="false"/>
<line number="201" hits="7" branch="false"/>
<line number="207" hits="0" branch="false"/>
<line number="208" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="209" hits="0" branch="false"/>
<line number="210" hits="0" branch="false"/>
<line number="211" hits="0" branch="false"/>
<line number="212" hits="0" branch="false"/>
<line number="213" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="214" hits="0" branch="false"/>
<line number="216" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="217" hits="0" branch="false"/>
<line number="220" hits="0" branch="false"/>
<line number="222" hits="0" branch="false"/>
<line number="227" hits="7" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="228" hits="5" branch="false"/>
<line number="229" hits="5" branch="false"/>
<line number="230" hits="5" branch="false"/>
<line number="231" hits="5" branch="false"/>
<line number="233" hits="2" branch="false"/>
<line number="240" hits="0" branch="false"/>
<line number="241" hits="0" branch="false"/>
<line number="242" hits="0" branch="false"/>
<line number="245" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="246" hits="0" branch="false"/>
<line number="247" hits="0" branch="false"/>
<line number="248" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="249" hits="0" branch="false"/>
<line number="252" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.mgt.DefaultWebSessionStorageEvaluator" filename="org/apache/shiro/web/mgt/DefaultWebSessionStorageEvaluator.java" line-rate="1.0" branch-rate="0.9" complexity="5.0">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="49" hits="20" branch="false"/>
</lines>
</method>
<method name="isSessionStorageEnabled" signature="(Lorg/apache/shiro/subject/Subject;)Z" line-rate="1.0" branch-rate="0.9">
<lines>
<line number="80" hits="13" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="82" hits="2" branch="false"/>
<line number="85" hits="11" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="87" hits="1" branch="false"/>
<line number="92" hits="10" branch="true" condition-coverage="83% (5/6)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="100%"/>
<condition number="2" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="93" hits="1" branch="false"/>
<line number="96" hits="9" branch="false"/>
</lines>
</method>
<method name="setSessionManager" signature="(Lorg/apache/shiro/session/mgt/SessionManager;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="61" hits="22" branch="false"/>
<line number="62" hits="22" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="49" hits="20" branch="false"/>
<line number="61" hits="22" branch="false"/>
<line number="62" hits="22" branch="false"/>
<line number="80" hits="13" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="82" hits="2" branch="false"/>
<line number="85" hits="11" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="87" hits="1" branch="false"/>
<line number="92" hits="10" branch="true" condition-coverage="83% (5/6)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="100%"/>
<condition number="2" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="93" hits="1" branch="false"/>
<line number="96" hits="9" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.mgt.DefaultWebSubjectFactory" filename="org/apache/shiro/web/mgt/DefaultWebSubjectFactory.java" line-rate="0.9333333333333333" branch-rate="1.0" complexity="1.6666666666666667">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="45" hits="14" branch="false"/>
<line number="46" hits="14" branch="false"/>
</lines>
</method>
<method name="createSubject" signature="(Lorg/apache/shiro/subject/SubjectContext;)Lorg/apache/shiro/subject/Subject;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="49" hits="7" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="50" hits="1" branch="false"/>
<line number="52" hits="6" branch="false"/>
<line number="53" hits="6" branch="false"/>
<line number="54" hits="6" branch="false"/>
<line number="55" hits="6" branch="false"/>
<line number="56" hits="6" branch="false"/>
<line number="57" hits="6" branch="false"/>
<line number="58" hits="6" branch="false"/>
<line number="59" hits="6" branch="false"/>
<line number="60" hits="6" branch="false"/>
<line number="62" hits="6" branch="false"/>
</lines>
</method>
<method name="newSubjectInstance" signature="(Lorg/apache/shiro/subject/PrincipalCollection;ZLjava/lang/String;Lorg/apache/shiro/session/Session;Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Lorg/apache/shiro/mgt/SecurityManager;)Lorg/apache/shiro/subject/Subject;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="75" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="45" hits="14" branch="false"/>
<line number="46" hits="14" branch="false"/>
<line number="49" hits="7" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="50" hits="1" branch="false"/>
<line number="52" hits="6" branch="false"/>
<line number="53" hits="6" branch="false"/>
<line number="54" hits="6" branch="false"/>
<line number="55" hits="6" branch="false"/>
<line number="56" hits="6" branch="false"/>
<line number="57" hits="6" branch="false"/>
<line number="58" hits="6" branch="false"/>
<line number="59" hits="6" branch="false"/>
<line number="60" hits="6" branch="false"/>
<line number="62" hits="6" branch="false"/>
<line number="75" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.mgt.WebSecurityManager" filename="org/apache/shiro/web/mgt/WebSecurityManager.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.web.servlet" line-rate="0.4154838709677419" branch-rate="0.24050632911392406" complexity="2.150259067357513">
<classes>
<class name="org.apache.shiro.web.servlet.AbstractFilter" filename="org/apache/shiro/web/servlet/AbstractFilter.java" line-rate="0.8636363636363636" branch-rate="0.5" complexity="2.1666666666666665">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="40" hits="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="38" hits="553" branch="false"/>
</lines>
</method>
<method name="destroy" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="128" hits="0" branch="false"/>
</lines>
</method>
<method name="getFilterConfig" signature="()Ljavax/servlet/FilterConfig;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="54" hits="21" branch="false"/>
</lines>
</method>
<method name="getInitParam" signature="(Ljava/lang/String;)Ljava/lang/String;" line-rate="0.75" branch-rate="0.5">
<lines>
<line number="80" hits="18" branch="false"/>
<line number="81" hits="18" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="82" hits="18" branch="false"/>
<line number="84" hits="0" branch="false"/>
</lines>
</method>
<method name="init" signature="(Ljavax/servlet/FilterConfig;)V" line-rate="0.9" branch-rate="0.5">
<lines>
<line number="95" hits="162" branch="false"/>
<line number="97" hits="162" branch="false"/>
<line number="98" hits="1" branch="false"/>
<line number="99" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="100" hits="0" branch="false"/>
<line number="102" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="103" hits="1" branch="false"/>
<line number="105" hits="1" branch="false"/>
<line number="107" hits="161" branch="false"/>
<line number="108" hits="161" branch="false"/>
</lines>
</method>
<method name="onFilterConfigSet" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="122" hits="154" branch="false"/>
</lines>
</method>
<method name="setFilterConfig" signature="(Ljavax/servlet/FilterConfig;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="67" hits="162" branch="false"/>
<line number="68" hits="162" branch="false"/>
<line number="69" hits="162" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="38" hits="553" branch="false"/>
<line number="40" hits="1" branch="false"/>
<line number="54" hits="21" branch="false"/>
<line number="67" hits="162" branch="false"/>
<line number="68" hits="162" branch="false"/>
<line number="69" hits="162" branch="false"/>
<line number="80" hits="18" branch="false"/>
<line number="81" hits="18" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="82" hits="18" branch="false"/>
<line number="84" hits="0" branch="false"/>
<line number="95" hits="162" branch="false"/>
<line number="97" hits="162" branch="false"/>
<line number="98" hits="1" branch="false"/>
<line number="99" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="100" hits="0" branch="false"/>
<line number="102" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="103" hits="1" branch="false"/>
<line number="105" hits="1" branch="false"/>
<line number="107" hits="161" branch="false"/>
<line number="108" hits="161" branch="false"/>
<line number="122" hits="154" branch="false"/>
<line number="128" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.servlet.AbstractShiroFilter" filename="org/apache/shiro/web/servlet/AbstractShiroFilter.java" line-rate="0.32954545454545453" branch-rate="0.1875" complexity="2.0">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="76" hits="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="93" hits="9" branch="false"/>
<line number="94" hits="9" branch="false"/>
<line number="95" hits="9" branch="false"/>
</lines>
</method>
<method name="applyStaticSecurityManagerEnabledConfig" signature="()V" line-rate="1.0" branch-rate="0.75">
<lines>
<line number="168" hits="8" branch="false"/>
<line number="169" hits="8" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="170" hits="1" branch="false"/>
<line number="171" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="172" hits="1" branch="false"/>
<line number="175" hits="8" branch="false"/>
</lines>
</method>
<method name="createDefaultSecurityManager" signature="()Lorg/apache/shiro/web/mgt/WebSecurityManager;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="195" hits="0" branch="false"/>
</lines>
</method>
<method name="createSubject" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)Lorg/apache/shiro/web/subject/WebSubject;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="292" hits="0" branch="false"/>
</lines>
</method>
<method name="doFilterInternal" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="353" hits="0" branch="false"/>
<line number="356" hits="0" branch="false"/>
<line number="357" hits="0" branch="false"/>
<line number="359" hits="0" branch="false"/>
<line number="362" hits="0" branch="false"/>
<line number="369" hits="0" branch="false"/>
<line number="370" hits="0" branch="false"/>
<line number="371" hits="0" branch="false"/>
<line number="372" hits="0" branch="false"/>
<line number="373" hits="0" branch="false"/>
<line number="375" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="376" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="377" hits="0" branch="false"/>
<line number="379" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="380" hits="0" branch="false"/>
<line number="383" hits="0" branch="false"/>
<line number="384" hits="0" branch="false"/>
<line number="386" hits="0" branch="false"/>
</lines>
</method>
<method name="ensureSecurityManager" signature="()V" line-rate="0.5" branch-rate="0.5">
<lines>
<line number="186" hits="7" branch="false"/>
<line number="187" hits="7" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="188" hits="0" branch="false"/>
<line number="189" hits="0" branch="false"/>
<line number="190" hits="0" branch="false"/>
<line number="192" hits="7" branch="false"/>
</lines>
</method>
<method name="executeChain" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="448" hits="0" branch="false"/>
<line number="449" hits="0" branch="false"/>
<line number="450" hits="0" branch="false"/>
</lines>
</method>
<method name="getExecutionChain" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)Ljavax/servlet/FilterChain;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="407" hits="0" branch="false"/>
<line number="409" hits="0" branch="false"/>
<line number="410" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="411" hits="0" branch="false"/>
<line number="412" hits="0" branch="false"/>
<line number="415" hits="0" branch="false"/>
<line number="416" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="417" hits="0" branch="false"/>
<line number="418" hits="0" branch="false"/>
<line number="420" hits="0" branch="false"/>
<line number="423" hits="0" branch="false"/>
</lines>
</method>
<method name="getFilterChainResolver" signature="()Lorg/apache/shiro/web/filter/mgt/FilterChainResolver;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="106" hits="1" branch="false"/>
</lines>
</method>
<method name="getSecurityManager" signature="()Lorg/apache/shiro/web/mgt/WebSecurityManager;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="98" hits="9" branch="false"/>
</lines>
</method>
<method name="init" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="178" hits="2" branch="false"/>
</lines>
</method>
<method name="isHttpSessions" signature="()Z" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="199" hits="0" branch="false"/>
</lines>
</method>
<method name="isStaticSecurityManagerEnabled" signature="()Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="130" hits="7" branch="false"/>
</lines>
</method>
<method name="onFilterConfigSet" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="151" hits="8" branch="false"/>
<line number="152" hits="8" branch="false"/>
<line number="153" hits="7" branch="false"/>
<line number="155" hits="7" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="156" hits="1" branch="false"/>
<line number="158" hits="7" branch="false"/>
</lines>
</method>
<method name="prepareServletRequest" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)Ljavax/servlet/ServletRequest;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="230" hits="0" branch="false"/>
<line number="231" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="232" hits="0" branch="false"/>
<line number="233" hits="0" branch="false"/>
<line number="235" hits="0" branch="false"/>
</lines>
</method>
<method name="prepareServletResponse" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)Ljavax/servlet/ServletResponse;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="272" hits="0" branch="false"/>
<line number="273" hits="0" branch="true" condition-coverage="0% (0/6)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
<condition number="2" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="277" hits="0" branch="false"/>
<line number="279" hits="0" branch="false"/>
</lines>
</method>
<method name="setFilterChainResolver" signature="(Lorg/apache/shiro/web/filter/mgt/FilterChainResolver;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="110" hits="4" branch="false"/>
<line number="111" hits="4" branch="false"/>
</lines>
</method>
<method name="setSecurityManager" signature="(Lorg/apache/shiro/web/mgt/WebSecurityManager;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="102" hits="7" branch="false"/>
<line number="103" hits="7" branch="false"/>
</lines>
</method>
<method name="setStaticSecurityManagerEnabled" signature="(Z)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="146" hits="1" branch="false"/>
<line number="147" hits="1" branch="false"/>
</lines>
</method>
<method name="updateSessionLastAccessTime" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="308" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="309" hits="0" branch="false"/>
<line number="311" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="312" hits="0" branch="false"/>
<line number="313" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="315" hits="0" branch="false"/>
<line number="316" hits="0" branch="false"/>
<line number="317" hits="0" branch="false"/>
<line number="319" hits="0" branch="false"/>
<line number="323" hits="0" branch="false"/>
</lines>
</method>
<method name="wrapServletRequest" signature="(Ljavax/servlet/http/HttpServletRequest;)Ljavax/servlet/ServletRequest;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="211" hits="0" branch="false"/>
</lines>
</method>
<method name="wrapServletResponse" signature="(Ljavax/servlet/http/HttpServletResponse;Lorg/apache/shiro/web/servlet/ShiroHttpServletRequest;)Ljavax/servlet/ServletResponse;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="249" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="76" hits="1" branch="false"/>
<line number="93" hits="9" branch="false"/>
<line number="94" hits="9" branch="false"/>
<line number="95" hits="9" branch="false"/>
<line number="98" hits="9" branch="false"/>
<line number="102" hits="7" branch="false"/>
<line number="103" hits="7" branch="false"/>
<line number="106" hits="1" branch="false"/>
<line number="110" hits="4" branch="false"/>
<line number="111" hits="4" branch="false"/>
<line number="130" hits="7" branch="false"/>
<line number="146" hits="1" branch="false"/>
<line number="147" hits="1" branch="false"/>
<line number="151" hits="8" branch="false"/>
<line number="152" hits="8" branch="false"/>
<line number="153" hits="7" branch="false"/>
<line number="155" hits="7" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="156" hits="1" branch="false"/>
<line number="158" hits="7" branch="false"/>
<line number="168" hits="8" branch="false"/>
<line number="169" hits="8" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="170" hits="1" branch="false"/>
<line number="171" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="172" hits="1" branch="false"/>
<line number="175" hits="8" branch="false"/>
<line number="178" hits="2" branch="false"/>
<line number="186" hits="7" branch="false"/>
<line number="187" hits="7" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="188" hits="0" branch="false"/>
<line number="189" hits="0" branch="false"/>
<line number="190" hits="0" branch="false"/>
<line number="192" hits="7" branch="false"/>
<line number="195" hits="0" branch="false"/>
<line number="199" hits="0" branch="false"/>
<line number="211" hits="0" branch="false"/>
<line number="230" hits="0" branch="false"/>
<line number="231" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="232" hits="0" branch="false"/>
<line number="233" hits="0" branch="false"/>
<line number="235" hits="0" branch="false"/>
<line number="249" hits="0" branch="false"/>
<line number="272" hits="0" branch="false"/>
<line number="273" hits="0" branch="true" condition-coverage="0% (0/6)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
<condition number="2" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="277" hits="0" branch="false"/>
<line number="279" hits="0" branch="false"/>
<line number="292" hits="0" branch="false"/>
<line number="308" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="309" hits="0" branch="false"/>
<line number="311" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="312" hits="0" branch="false"/>
<line number="313" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="315" hits="0" branch="false"/>
<line number="316" hits="0" branch="false"/>
<line number="317" hits="0" branch="false"/>
<line number="319" hits="0" branch="false"/>
<line number="323" hits="0" branch="false"/>
<line number="353" hits="0" branch="false"/>
<line number="356" hits="0" branch="false"/>
<line number="357" hits="0" branch="false"/>
<line number="359" hits="0" branch="false"/>
<line number="362" hits="0" branch="false"/>
<line number="369" hits="0" branch="false"/>
<line number="370" hits="0" branch="false"/>
<line number="371" hits="0" branch="false"/>
<line number="372" hits="0" branch="false"/>
<line number="373" hits="0" branch="false"/>
<line number="375" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="376" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="377" hits="0" branch="false"/>
<line number="379" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="380" hits="0" branch="false"/>
<line number="383" hits="0" branch="false"/>
<line number="384" hits="0" branch="false"/>
<line number="386" hits="0" branch="false"/>
<line number="407" hits="0" branch="false"/>
<line number="409" hits="0" branch="false"/>
<line number="410" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="411" hits="0" branch="false"/>
<line number="412" hits="0" branch="false"/>
<line number="415" hits="0" branch="false"/>
<line number="416" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="417" hits="0" branch="false"/>
<line number="418" hits="0" branch="false"/>
<line number="420" hits="0" branch="false"/>
<line number="423" hits="0" branch="false"/>
<line number="448" hits="0" branch="false"/>
<line number="449" hits="0" branch="false"/>
<line number="450" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.servlet.AbstractShiroFilter$1" filename="org/apache/shiro/web/servlet/AbstractShiroFilter.java" line-rate="0.0" branch-rate="1.0" complexity="2.0">
<methods>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/web/servlet/AbstractShiroFilter;Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="362" hits="0" branch="false"/>
</lines>
</method>
<method name="call" signature="()Ljava/lang/Object;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="364" hits="0" branch="false"/>
<line number="365" hits="0" branch="false"/>
<line number="366" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="362" hits="0" branch="false"/>
<line number="364" hits="0" branch="false"/>
<line number="365" hits="0" branch="false"/>
<line number="366" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.servlet.AdviceFilter" filename="org/apache/shiro/web/servlet/AdviceFilter.java" line-rate="0.05" branch-rate="0.0" complexity="3.3333333333333335">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="44" hits="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="39" hits="542" branch="false"/>
</lines>
</method>
<method name="afterCompletion" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljava/lang/Exception;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="95" hits="0" branch="false"/>
</lines>
</method>
<method name="cleanup" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljava/lang/Exception;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="170" hits="0" branch="false"/>
<line number="172" hits="0" branch="false"/>
<line number="173" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="174" hits="0" branch="false"/>
<line number="176" hits="0" branch="false"/>
<line number="177" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="178" hits="0" branch="false"/>
<line number="180" hits="0" branch="false"/>
<line number="183" hits="0" branch="false"/>
<line number="184" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="185" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="186" hits="0" branch="false"/>
<line number="187" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="188" hits="0" branch="false"/>
<line number="190" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="191" hits="0" branch="false"/>
<line number="194" hits="0" branch="false"/>
<line number="196" hits="0" branch="false"/>
<line number="199" hits="0" branch="false"/>
</lines>
</method>
<method name="doFilterInternal" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="127" hits="0" branch="false"/>
<line number="131" hits="0" branch="false"/>
<line number="132" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="133" hits="0" branch="false"/>
<line number="136" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="137" hits="0" branch="false"/>
<line number="140" hits="0" branch="false"/>
<line number="141" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="142" hits="0" branch="false"/>
<line number="145" hits="0" branch="false"/>
<line number="146" hits="0" branch="false"/>
<line number="148" hits="0" branch="false"/>
<line number="149" hits="0" branch="false"/>
<line number="150" hits="0" branch="false"/>
</lines>
</method>
<method name="executeChain" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="108" hits="0" branch="false"/>
<line number="109" hits="0" branch="false"/>
</lines>
</method>
<method name="postHandle" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="77" hits="0" branch="false"/>
</lines>
</method>
<method name="preHandle" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)Z" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="58" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="39" hits="542" branch="false"/>
<line number="44" hits="1" branch="false"/>
<line number="58" hits="0" branch="false"/>
<line number="77" hits="0" branch="false"/>
<line number="95" hits="0" branch="false"/>
<line number="108" hits="0" branch="false"/>
<line number="109" hits="0" branch="false"/>
<line number="127" hits="0" branch="false"/>
<line number="131" hits="0" branch="false"/>
<line number="132" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="133" hits="0" branch="false"/>
<line number="136" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="137" hits="0" branch="false"/>
<line number="140" hits="0" branch="false"/>
<line number="141" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="142" hits="0" branch="false"/>
<line number="145" hits="0" branch="false"/>
<line number="146" hits="0" branch="false"/>
<line number="148" hits="0" branch="false"/>
<line number="149" hits="0" branch="false"/>
<line number="150" hits="0" branch="false"/>
<line number="170" hits="0" branch="false"/>
<line number="172" hits="0" branch="false"/>
<line number="173" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="174" hits="0" branch="false"/>
<line number="176" hits="0" branch="false"/>
<line number="177" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="178" hits="0" branch="false"/>
<line number="180" hits="0" branch="false"/>
<line number="183" hits="0" branch="false"/>
<line number="184" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="185" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="186" hits="0" branch="false"/>
<line number="187" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="188" hits="0" branch="false"/>
<line number="190" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="191" hits="0" branch="false"/>
<line number="194" hits="0" branch="false"/>
<line number="196" hits="0" branch="false"/>
<line number="199" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.servlet.Cookie" filename="org/apache/shiro/web/servlet/Cookie.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.web.servlet.IniShiroFilter" filename="org/apache/shiro/web/servlet/IniShiroFilter.java" line-rate="0.9634146341463414" branch-rate="0.75" complexity="2.6">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="117" hits="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="122" hits="5" branch="false"/>
<line number="123" hits="5" branch="false"/>
</lines>
</method>
<method name="applyFilterChainResolver" signature="(Lorg/apache/shiro/config/Ini;Ljava/util/Map;)V" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="273" hits="4" branch="true" condition-coverage="75% (3/4)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="277" hits="1" branch="false"/>
<line number="281" hits="3" branch="false"/>
<line number="282" hits="3" branch="false"/>
<line number="283" hits="3" branch="true" condition-coverage="37% (3/8)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="0%"/>
<condition number="2" type="jump" coverage="50%"/>
<condition number="3" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="286" hits="3" branch="false"/>
<line number="287" hits="3" branch="false"/>
<line number="288" hits="3" branch="false"/>
<line number="289" hits="3" branch="false"/>
<line number="291" hits="3" branch="false"/>
</lines>
</method>
<method name="applyInitParams" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="194" hits="5" branch="false"/>
<line number="195" hits="5" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="196" hits="1" branch="false"/>
<line number="198" hits="5" branch="false"/>
<line number="199" hits="5" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="200" hits="2" branch="false"/>
<line number="202" hits="5" branch="false"/>
</lines>
</method>
<method name="applySecurityManager" signature="(Lorg/apache/shiro/config/Ini;)Ljava/util/Map;" line-rate="0.7777777777777778" branch-rate="0.75">
<lines>
<line number="252" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="253" hits="1" branch="false"/>
<line number="255" hits="3" branch="false"/>
<line number="260" hits="4" branch="false"/>
<line number="261" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="262" hits="0" branch="false"/>
<line number="264" hits="0" branch="false"/>
<line number="267" hits="4" branch="false"/>
<line number="269" hits="4" branch="false"/>
</lines>
</method>
<method name="configure" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="205" hits="5" branch="false"/>
<line number="207" hits="5" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="208" hits="4" branch="false"/>
<line number="210" hits="4" branch="false"/>
<line number="213" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="214" hits="2" branch="false"/>
<line number="217" hits="2" branch="false"/>
<line number="221" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="222" hits="1" branch="false"/>
<line number="225" hits="1" branch="false"/>
<line number="228" hits="4" branch="false"/>
<line number="229" hits="4" branch="false"/>
<line number="230" hits="4" branch="false"/>
</lines>
</method>
<method name="convertConfigToIni" signature="(Ljava/lang/String;)Lorg/apache/shiro/config/Ini;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="294" hits="1" branch="false"/>
<line number="295" hits="1" branch="false"/>
<line number="296" hits="1" branch="false"/>
</lines>
</method>
<method name="convertPathToIni" signature="(Ljava/lang/String;)Lorg/apache/shiro/config/Ini;" line-rate="1.0" branch-rate="0.75">
<lines>
<line number="337" hits="2" branch="false"/>
<line number="341" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="342" hits="1" branch="false"/>
<line number="343" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="344" hits="1" branch="false"/>
<line number="347" hits="1" branch="false"/>
<line number="351" hits="1" branch="false"/>
<line number="354" hits="1" branch="false"/>
</lines>
</method>
<method name="getConfig" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="139" hits="5" branch="false"/>
</lines>
</method>
<method name="getConfigPath" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="170" hits="4" branch="false"/>
</lines>
</method>
<method name="getServletContextIniResource" signature="(Ljava/lang/String;)Lorg/apache/shiro/config/Ini;" line-rate="0.9" branch-rate="0.6666666666666666">
<lines>
<line number="309" hits="3" branch="false"/>
<line number="310" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="311" hits="3" branch="false"/>
<line number="312" hits="3" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="313" hits="1" branch="false"/>
<line number="314" hits="1" branch="false"/>
<line number="315" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="316" hits="0" branch="false"/>
<line number="319" hits="1" branch="false"/>
<line number="322" hits="2" branch="false"/>
</lines>
</method>
<method name="init" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="189" hits="5" branch="false"/>
<line number="190" hits="5" branch="false"/>
<line number="191" hits="4" branch="false"/>
</lines>
</method>
<method name="loadIniFromConfig" signature="()Lorg/apache/shiro/config/Ini;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="233" hits="5" branch="false"/>
<line number="234" hits="5" branch="false"/>
<line number="235" hits="5" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="236" hits="1" branch="false"/>
<line number="238" hits="5" branch="false"/>
</lines>
</method>
<method name="loadIniFromPath" signature="()Lorg/apache/shiro/config/Ini;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="242" hits="4" branch="false"/>
<line number="243" hits="4" branch="false"/>
<line number="244" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="245" hits="2" branch="false"/>
<line number="247" hits="3" branch="false"/>
</lines>
</method>
<method name="setConfig" signature="(Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="155" hits="1" branch="false"/>
<line number="156" hits="1" branch="false"/>
</lines>
</method>
<method name="setConfigPath" signature="(Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="185" hits="2" branch="false"/>
<line number="186" hits="2" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="117" hits="1" branch="false"/>
<line number="122" hits="5" branch="false"/>
<line number="123" hits="5" branch="false"/>
<line number="139" hits="5" branch="false"/>
<line number="155" hits="1" branch="false"/>
<line number="156" hits="1" branch="false"/>
<line number="170" hits="4" branch="false"/>
<line number="185" hits="2" branch="false"/>
<line number="186" hits="2" branch="false"/>
<line number="189" hits="5" branch="false"/>
<line number="190" hits="5" branch="false"/>
<line number="191" hits="4" branch="false"/>
<line number="194" hits="5" branch="false"/>
<line number="195" hits="5" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="196" hits="1" branch="false"/>
<line number="198" hits="5" branch="false"/>
<line number="199" hits="5" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="200" hits="2" branch="false"/>
<line number="202" hits="5" branch="false"/>
<line number="205" hits="5" branch="false"/>
<line number="207" hits="5" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="208" hits="4" branch="false"/>
<line number="210" hits="4" branch="false"/>
<line number="213" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="214" hits="2" branch="false"/>
<line number="217" hits="2" branch="false"/>
<line number="221" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="222" hits="1" branch="false"/>
<line number="225" hits="1" branch="false"/>
<line number="228" hits="4" branch="false"/>
<line number="229" hits="4" branch="false"/>
<line number="230" hits="4" branch="false"/>
<line number="233" hits="5" branch="false"/>
<line number="234" hits="5" branch="false"/>
<line number="235" hits="5" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="236" hits="1" branch="false"/>
<line number="238" hits="5" branch="false"/>
<line number="242" hits="4" branch="false"/>
<line number="243" hits="4" branch="false"/>
<line number="244" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="245" hits="2" branch="false"/>
<line number="247" hits="3" branch="false"/>
<line number="252" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="253" hits="1" branch="false"/>
<line number="255" hits="3" branch="false"/>
<line number="260" hits="4" branch="false"/>
<line number="261" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="262" hits="0" branch="false"/>
<line number="264" hits="0" branch="false"/>
<line number="267" hits="4" branch="false"/>
<line number="269" hits="4" branch="false"/>
<line number="273" hits="4" branch="true" condition-coverage="75% (3/4)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="277" hits="1" branch="false"/>
<line number="281" hits="3" branch="false"/>
<line number="282" hits="3" branch="false"/>
<line number="283" hits="3" branch="true" condition-coverage="37% (3/8)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="0%"/>
<condition number="2" type="jump" coverage="50%"/>
<condition number="3" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="286" hits="3" branch="false"/>
<line number="287" hits="3" branch="false"/>
<line number="288" hits="3" branch="false"/>
<line number="289" hits="3" branch="false"/>
<line number="291" hits="3" branch="false"/>
<line number="294" hits="1" branch="false"/>
<line number="295" hits="1" branch="false"/>
<line number="296" hits="1" branch="false"/>
<line number="309" hits="3" branch="false"/>
<line number="310" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="311" hits="3" branch="false"/>
<line number="312" hits="3" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="313" hits="1" branch="false"/>
<line number="314" hits="1" branch="false"/>
<line number="315" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="316" hits="0" branch="false"/>
<line number="319" hits="1" branch="false"/>
<line number="322" hits="2" branch="false"/>
<line number="337" hits="2" branch="false"/>
<line number="341" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="342" hits="1" branch="false"/>
<line number="343" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="344" hits="1" branch="false"/>
<line number="347" hits="1" branch="false"/>
<line number="351" hits="1" branch="false"/>
<line number="354" hits="1" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.servlet.NameableFilter" filename="org/apache/shiro/web/servlet/NameableFilter.java" line-rate="0.7142857142857143" branch-rate="0.3333333333333333" complexity="2.3333333333333335">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="33" hits="553" branch="false"/>
</lines>
</method>
<method name="getName" signature="()Ljava/lang/String;" line-rate="0.4" branch-rate="0.25">
<lines>
<line number="53" hits="22" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="54" hits="0" branch="false"/>
<line number="55" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="56" hits="0" branch="false"/>
<line number="60" hits="22" branch="false"/>
</lines>
</method>
<method name="setName" signature="(Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="74" hits="527" branch="false"/>
<line number="75" hits="527" branch="false"/>
</lines>
</method>
<method name="toStringBuilder" signature="()Ljava/lang/StringBuilder;" line-rate="0.8333333333333334" branch-rate="0.5">
<lines>
<line number="85" hits="16" branch="false"/>
<line number="86" hits="16" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="87" hits="0" branch="false"/>
<line number="89" hits="16" branch="false"/>
<line number="90" hits="16" branch="false"/>
<line number="91" hits="16" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="33" hits="553" branch="false"/>
<line number="53" hits="22" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="54" hits="0" branch="false"/>
<line number="55" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="56" hits="0" branch="false"/>
<line number="60" hits="22" branch="false"/>
<line number="74" hits="527" branch="false"/>
<line number="75" hits="527" branch="false"/>
<line number="85" hits="16" branch="false"/>
<line number="86" hits="16" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="87" hits="0" branch="false"/>
<line number="89" hits="16" branch="false"/>
<line number="90" hits="16" branch="false"/>
<line number="91" hits="16" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.servlet.OncePerRequestFilter" filename="org/apache/shiro/web/servlet/OncePerRequestFilter.java" line-rate="0.88" branch-rate="0.625" complexity="1.5714285714285714">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="52" hits="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="47" hits="553" branch="false"/>
<line number="66" hits="553" branch="false"/>
</lines>
</method>
<method name="doFilter" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljavax/servlet/FilterChain;)V" line-rate="0.8461538461538461" branch-rate="0.6666666666666666">
<lines>
<line number="109" hits="2" branch="false"/>
<line number="110" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="111" hits="0" branch="false"/>
<line number="112" hits="0" branch="false"/>
<line number="114" hits="2" branch="true" condition-coverage="75% (3/4)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="116" hits="1" branch="false"/>
<line number="118" hits="1" branch="false"/>
<line number="121" hits="1" branch="false"/>
<line number="122" hits="1" branch="false"/>
<line number="125" hits="1" branch="false"/>
<line number="129" hits="1" branch="false"/>
<line number="130" hits="1" branch="false"/>
<line number="132" hits="2" branch="false"/>
</lines>
</method>
<method name="getAlreadyFilteredAttributeName" signature="()Ljava/lang/String;" line-rate="0.75" branch-rate="0.5">
<lines>
<line number="174" hits="2" branch="false"/>
<line number="175" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="176" hits="0" branch="false"/>
<line number="178" hits="2" branch="false"/>
</lines>
</method>
<method name="isEnabled" signature="()Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="84" hits="2" branch="false"/>
</lines>
</method>
<method name="isEnabled" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="160" hits="2" branch="false"/>
</lines>
</method>
<method name="setEnabled" signature="(Z)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="95" hits="1" branch="false"/>
<line number="96" hits="1" branch="false"/>
</lines>
</method>
<method name="shouldNotFilter" signature="(Ljavax/servlet/ServletRequest;)Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="195" hits="1" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="47" hits="553" branch="false"/>
<line number="52" hits="1" branch="false"/>
<line number="66" hits="553" branch="false"/>
<line number="84" hits="2" branch="false"/>
<line number="95" hits="1" branch="false"/>
<line number="96" hits="1" branch="false"/>
<line number="109" hits="2" branch="false"/>
<line number="110" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="111" hits="0" branch="false"/>
<line number="112" hits="0" branch="false"/>
<line number="114" hits="2" branch="true" condition-coverage="75% (3/4)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="116" hits="1" branch="false"/>
<line number="118" hits="1" branch="false"/>
<line number="121" hits="1" branch="false"/>
<line number="122" hits="1" branch="false"/>
<line number="125" hits="1" branch="false"/>
<line number="129" hits="1" branch="false"/>
<line number="130" hits="1" branch="false"/>
<line number="132" hits="2" branch="false"/>
<line number="160" hits="2" branch="false"/>
<line number="174" hits="2" branch="false"/>
<line number="175" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="176" hits="0" branch="false"/>
<line number="178" hits="2" branch="false"/>
<line number="195" hits="1" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.servlet.ProxiedFilterChain" filename="org/apache/shiro/web/servlet/ProxiedFilterChain.java" line-rate="0.47058823529411764" branch-rate="0.1" complexity="4.0">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="40" hits="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljavax/servlet/FilterChain;Ljava/util/List;)V" line-rate="0.875" branch-rate="0.5">
<lines>
<line number="44" hits="5" branch="false"/>
<line number="46" hits="5" branch="false"/>
<line number="47" hits="5" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="48" hits="0" branch="false"/>
<line number="50" hits="5" branch="false"/>
<line number="51" hits="5" branch="false"/>
<line number="52" hits="5" branch="false"/>
<line number="53" hits="5" branch="false"/>
</lines>
</method>
<method name="doFilter" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="56" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="58" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="59" hits="0" branch="false"/>
<line number="61" hits="0" branch="false"/>
<line number="63" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="64" hits="0" branch="false"/>
<line number="66" hits="0" branch="false"/>
<line number="68" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="40" hits="1" branch="false"/>
<line number="44" hits="5" branch="false"/>
<line number="46" hits="5" branch="false"/>
<line number="47" hits="5" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="48" hits="0" branch="false"/>
<line number="50" hits="5" branch="false"/>
<line number="51" hits="5" branch="false"/>
<line number="52" hits="5" branch="false"/>
<line number="53" hits="5" branch="false"/>
<line number="56" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="58" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="59" hits="0" branch="false"/>
<line number="61" hits="0" branch="false"/>
<line number="63" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="64" hits="0" branch="false"/>
<line number="66" hits="0" branch="false"/>
<line number="68" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.servlet.ServletContextSupport" filename="org/apache/shiro/web/servlet/ServletContextSupport.java" line-rate="0.3" branch-rate="0.0" complexity="1.3333333333333333">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="28" hits="553" branch="false"/>
<line number="31" hits="553" branch="false"/>
</lines>
</method>
<method name="getContextAttribute" signature="(Ljava/lang/String;)Ljava/lang/Object;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="66" hits="0" branch="false"/>
</lines>
</method>
<method name="getContextInitParam" signature="(Ljava/lang/String;)Ljava/lang/String;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="43" hits="0" branch="false"/>
</lines>
</method>
<method name="getRequiredServletContext" signature="()Ljavax/servlet/ServletContext;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="47" hits="0" branch="false"/>
<line number="48" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="49" hits="0" branch="false"/>
<line number="50" hits="0" branch="false"/>
<line number="52" hits="0" branch="false"/>
</lines>
</method>
<method name="getServletContext" signature="()Ljavax/servlet/ServletContext;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="34" hits="7" branch="false"/>
</lines>
</method>
<method name="removeContextAttribute" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="70" hits="0" branch="false"/>
<line number="71" hits="0" branch="false"/>
</lines>
</method>
<method name="setContextAttribute" signature="(Ljava/lang/String;Ljava/lang/Object;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="57" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="58" hits="0" branch="false"/>
<line number="60" hits="0" branch="false"/>
<line number="62" hits="0" branch="false"/>
</lines>
</method>
<method name="setServletContext" signature="(Ljavax/servlet/ServletContext;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="38" hits="162" branch="false"/>
<line number="39" hits="162" branch="false"/>
</lines>
</method>
<method name="toString" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="81" hits="16" branch="false"/>
</lines>
</method>
<method name="toStringBuilder" signature="()Ljava/lang/StringBuilder;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="91" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="28" hits="553" branch="false"/>
<line number="31" hits="553" branch="false"/>
<line number="34" hits="7" branch="false"/>
<line number="38" hits="162" branch="false"/>
<line number="39" hits="162" branch="false"/>
<line number="43" hits="0" branch="false"/>
<line number="47" hits="0" branch="false"/>
<line number="48" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="49" hits="0" branch="false"/>
<line number="50" hits="0" branch="false"/>
<line number="52" hits="0" branch="false"/>
<line number="57" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="58" hits="0" branch="false"/>
<line number="60" hits="0" branch="false"/>
<line number="62" hits="0" branch="false"/>
<line number="66" hits="0" branch="false"/>
<line number="70" hits="0" branch="false"/>
<line number="71" hits="0" branch="false"/>
<line number="81" hits="16" branch="false"/>
<line number="91" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.servlet.ShiroFilter" filename="org/apache/shiro/web/servlet/ShiroFilter.java" line-rate="1.0" branch-rate="0.5" complexity="2.0">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="62" hits="2" branch="false"/>
</lines>
</method>
<method name="init" signature="()V" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="73" hits="1" branch="false"/>
<line number="75" hits="1" branch="false"/>
<line number="77" hits="1" branch="false"/>
<line number="78" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="79" hits="1" branch="false"/>
<line number="81" hits="1" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="62" hits="2" branch="false"/>
<line number="73" hits="1" branch="false"/>
<line number="75" hits="1" branch="false"/>
<line number="77" hits="1" branch="false"/>
<line number="78" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="79" hits="1" branch="false"/>
<line number="81" hits="1" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.servlet.ShiroHttpServletRequest" filename="org/apache/shiro/web/servlet/ShiroHttpServletRequest.java" line-rate="0.0641025641025641" branch-rate="0.0" complexity="2.4285714285714284">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="49" hits="1" branch="false"/>
<line number="50" hits="1" branch="false"/>
<line number="51" hits="1" branch="false"/>
<line number="52" hits="1" branch="false"/>
<line number="53" hits="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/ServletContext;Z)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="55" hits="0" branch="false"/>
<line number="57" hits="0" branch="false"/>
<line number="58" hits="0" branch="false"/>
<line number="61" hits="0" branch="false"/>
<line number="62" hits="0" branch="false"/>
<line number="63" hits="0" branch="false"/>
<line number="64" hits="0" branch="false"/>
</lines>
</method>
<method name="getRemoteUser" signature="()Ljava/lang/String;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="72" hits="0" branch="false"/>
<line number="73" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="74" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="75" hits="0" branch="false"/>
<line number="76" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="77" hits="0" branch="false"/>
<line number="79" hits="0" branch="false"/>
<line number="82" hits="0" branch="false"/>
<line number="84" hits="0" branch="false"/>
</lines>
</method>
<method name="getRequestedSessionId" signature="()Ljava/lang/String;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="125" hits="0" branch="false"/>
<line number="126" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="127" hits="0" branch="false"/>
<line number="129" hits="0" branch="false"/>
<line number="130" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="131" hits="0" branch="false"/>
<line number="135" hits="0" branch="false"/>
</lines>
</method>
<method name="getSession" signature="()Ljavax/servlet/http/HttpSession;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="188" hits="0" branch="false"/>
</lines>
</method>
<method name="getSession" signature="(Z)Ljavax/servlet/http/HttpSession;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="142" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="143" hits="0" branch="false"/>
<line number="144" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="146" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="147" hits="0" branch="false"/>
<line number="149" hits="0" branch="false"/>
<line number="153" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="155" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="157" hits="0" branch="false"/>
<line number="158" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="159" hits="0" branch="false"/>
<line number="160" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="161" hits="0" branch="false"/>
<line number="165" hits="0" branch="false"/>
<line number="168" hits="0" branch="false"/>
</lines>
</method>
<method name="getSubject" signature="()Lorg/apache/shiro/subject/Subject;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="88" hits="0" branch="false"/>
</lines>
</method>
<method name="getSubjectPrincipal" signature="()Ljava/lang/Object;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="92" hits="0" branch="false"/>
<line number="93" hits="0" branch="false"/>
<line number="94" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="95" hits="0" branch="false"/>
<line number="97" hits="0" branch="false"/>
</lines>
</method>
<method name="getUserPrincipal" signature="()Ljava/security/Principal;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="111" hits="0" branch="false"/>
<line number="112" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="113" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="114" hits="0" branch="false"/>
<line number="116" hits="0" branch="false"/>
<line number="119" hits="0" branch="false"/>
<line number="121" hits="0" branch="false"/>
</lines>
</method>
<method name="isHttpSessions" signature="()Z" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="67" hits="0" branch="false"/>
</lines>
</method>
<method name="isRequestedSessionIdFromCookie" signature="()Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="201" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="202" hits="0" branch="false"/>
<line number="204" hits="0" branch="false"/>
<line number="205" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
</lines>
</method>
<method name="isRequestedSessionIdFromURL" signature="()Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="210" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="211" hits="0" branch="false"/>
<line number="213" hits="0" branch="false"/>
<line number="214" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
</lines>
</method>
<method name="isRequestedSessionIdFromUrl" signature="()Z" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="219" hits="0" branch="false"/>
</lines>
</method>
<method name="isRequestedSessionIdValid" signature="()Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="192" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="193" hits="0" branch="false"/>
<line number="195" hits="0" branch="false"/>
<line number="196" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
</lines>
</method>
<method name="isUserInRole" signature="(Ljava/lang/String;)Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="101" hits="0" branch="false"/>
<line number="102" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="103" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="104" hits="0" branch="false"/>
<line number="106" hits="0" branch="false"/>
</lines>
</method>
<method name="newNoSessionCreationException" signature="()Lorg/apache/shiro/subject/support/DisabledSessionException;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="179" hits="0" branch="false"/>
<line number="184" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="49" hits="1" branch="false"/>
<line number="50" hits="1" branch="false"/>
<line number="51" hits="1" branch="false"/>
<line number="52" hits="1" branch="false"/>
<line number="53" hits="1" branch="false"/>
<line number="55" hits="0" branch="false"/>
<line number="57" hits="0" branch="false"/>
<line number="58" hits="0" branch="false"/>
<line number="61" hits="0" branch="false"/>
<line number="62" hits="0" branch="false"/>
<line number="63" hits="0" branch="false"/>
<line number="64" hits="0" branch="false"/>
<line number="67" hits="0" branch="false"/>
<line number="72" hits="0" branch="false"/>
<line number="73" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="74" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="75" hits="0" branch="false"/>
<line number="76" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="77" hits="0" branch="false"/>
<line number="79" hits="0" branch="false"/>
<line number="82" hits="0" branch="false"/>
<line number="84" hits="0" branch="false"/>
<line number="88" hits="0" branch="false"/>
<line number="92" hits="0" branch="false"/>
<line number="93" hits="0" branch="false"/>
<line number="94" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="95" hits="0" branch="false"/>
<line number="97" hits="0" branch="false"/>
<line number="101" hits="0" branch="false"/>
<line number="102" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="103" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="104" hits="0" branch="false"/>
<line number="106" hits="0" branch="false"/>
<line number="111" hits="0" branch="false"/>
<line number="112" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="113" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="114" hits="0" branch="false"/>
<line number="116" hits="0" branch="false"/>
<line number="119" hits="0" branch="false"/>
<line number="121" hits="0" branch="false"/>
<line number="125" hits="0" branch="false"/>
<line number="126" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="127" hits="0" branch="false"/>
<line number="129" hits="0" branch="false"/>
<line number="130" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="131" hits="0" branch="false"/>
<line number="135" hits="0" branch="false"/>
<line number="142" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="143" hits="0" branch="false"/>
<line number="144" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="146" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="147" hits="0" branch="false"/>
<line number="149" hits="0" branch="false"/>
<line number="153" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="155" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="157" hits="0" branch="false"/>
<line number="158" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="159" hits="0" branch="false"/>
<line number="160" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="161" hits="0" branch="false"/>
<line number="165" hits="0" branch="false"/>
<line number="168" hits="0" branch="false"/>
<line number="179" hits="0" branch="false"/>
<line number="184" hits="0" branch="false"/>
<line number="188" hits="0" branch="false"/>
<line number="192" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="193" hits="0" branch="false"/>
<line number="195" hits="0" branch="false"/>
<line number="196" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="201" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="202" hits="0" branch="false"/>
<line number="204" hits="0" branch="false"/>
<line number="205" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="210" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="211" hits="0" branch="false"/>
<line number="213" hits="0" branch="false"/>
<line number="214" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="219" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.servlet.ShiroHttpServletRequest$ObjectPrincipal" filename="org/apache/shiro/web/servlet/ShiroHttpServletRequest.java" line-rate="0.0" branch-rate="0.0" complexity="2.4285714285714284">
<methods>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/web/servlet/ShiroHttpServletRequest;Ljava/lang/Object;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="223" hits="0" branch="false"/>
<line number="225" hits="0" branch="false"/>
<line number="226" hits="0" branch="false"/>
<line number="227" hits="0" branch="false"/>
</lines>
</method>
<method name="equals" signature="(Ljava/lang/Object;)Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="242" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="243" hits="0" branch="false"/>
<line number="244" hits="0" branch="false"/>
<line number="246" hits="0" branch="false"/>
</lines>
</method>
<method name="getName" signature="()Ljava/lang/String;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="234" hits="0" branch="false"/>
</lines>
</method>
<method name="getObject" signature="()Ljava/lang/Object;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="230" hits="0" branch="false"/>
</lines>
</method>
<method name="hashCode" signature="()I" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="238" hits="0" branch="false"/>
</lines>
</method>
<method name="toString" signature="()Ljava/lang/String;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="250" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="223" hits="0" branch="false"/>
<line number="225" hits="0" branch="false"/>
<line number="226" hits="0" branch="false"/>
<line number="227" hits="0" branch="false"/>
<line number="230" hits="0" branch="false"/>
<line number="234" hits="0" branch="false"/>
<line number="238" hits="0" branch="false"/>
<line number="242" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="243" hits="0" branch="false"/>
<line number="244" hits="0" branch="false"/>
<line number="246" hits="0" branch="false"/>
<line number="250" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.servlet.ShiroHttpServletResponse" filename="org/apache/shiro/web/servlet/ShiroHttpServletResponse.java" line-rate="0.0" branch-rate="0.0" complexity="4.8">
<methods>
<method name="&lt;init&gt;" signature="(Ljavax/servlet/http/HttpServletResponse;Ljavax/servlet/ServletContext;Lorg/apache/shiro/web/servlet/ShiroHttpServletRequest;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="51" hits="0" branch="false"/>
<line number="53" hits="0" branch="false"/>
<line number="56" hits="0" branch="false"/>
<line number="57" hits="0" branch="false"/>
<line number="58" hits="0" branch="false"/>
<line number="59" hits="0" branch="false"/>
</lines>
</method>
<method name="doIsEncodeable" signature="(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpSession;Ljava/lang/String;)Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="161" hits="0" branch="false"/>
<line number="162" hits="0" branch="false"/>
<line number="163" hits="0" branch="false"/>
<line number="164" hits="0" branch="false"/>
<line number="167" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="168" hits="0" branch="false"/>
<line number="169" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="170" hits="0" branch="false"/>
<line number="171" hits="0" branch="false"/>
<line number="172" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="173" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="174" hits="0" branch="false"/>
<line number="176" hits="0" branch="false"/>
<line number="178" hits="0" branch="false"/>
<line number="179" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="180" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="181" hits="0" branch="false"/>
<line number="183" hits="0" branch="false"/>
<line number="185" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="186" hits="0" branch="false"/>
<line number="188" hits="0" branch="false"/>
<line number="189" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="190" hits="0" branch="false"/>
<line number="191" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="192" hits="0" branch="false"/>
<line number="193" hits="0" branch="false"/>
<line number="194" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="195" hits="0" branch="false"/>
<line number="199" hits="0" branch="false"/>
</lines>
</method>
<method name="encodeRedirectURL" signature="(Ljava/lang/String;)Ljava/lang/String;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="87" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="88" hits="0" branch="false"/>
<line number="90" hits="0" branch="false"/>
</lines>
</method>
<method name="encodeRedirectUrl" signature="(Ljava/lang/String;)Ljava/lang/String;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="96" hits="0" branch="false"/>
</lines>
</method>
<method name="encodeURL" signature="(Ljava/lang/String;)Ljava/lang/String;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="107" hits="0" branch="false"/>
<line number="108" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="110" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="111" hits="0" branch="false"/>
<line number="113" hits="0" branch="false"/>
<line number="115" hits="0" branch="false"/>
</lines>
</method>
<method name="encodeUrl" signature="(Ljava/lang/String;)Ljava/lang/String;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="120" hits="0" branch="false"/>
</lines>
</method>
<method name="getContext" signature="()Ljavax/servlet/ServletContext;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="63" hits="0" branch="false"/>
</lines>
</method>
<method name="getRequest" signature="()Lorg/apache/shiro/web/servlet/ShiroHttpServletRequest;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="72" hits="0" branch="false"/>
</lines>
</method>
<method name="hasScheme" signature="(Ljava/lang/String;)Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="277" hits="0" branch="false"/>
<line number="278" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="279" hits="0" branch="false"/>
<line number="280" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="281" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="282" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="283" hits="0" branch="false"/>
<line number="286" hits="0" branch="false"/>
</lines>
</method>
<method name="isEncodeable" signature="(Ljava/lang/String;)Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="139" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="140" hits="0" branch="false"/>
<line number="143" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="144" hits="0" branch="false"/>
<line number="147" hits="0" branch="false"/>
<line number="148" hits="0" branch="false"/>
<line number="149" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="150" hits="0" branch="false"/>
<line number="151" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="152" hits="0" branch="false"/>
<line number="154" hits="0" branch="false"/>
</lines>
</method>
<method name="isSchemeChar" signature="(C)Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="265" hits="0" branch="true" condition-coverage="0% (0/8)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
<condition number="2" type="jump" coverage="0%"/>
<condition number="3" type="jump" coverage="0%"/>
</conditions>
</line>
</lines>
</method>
<method name="setContext" signature="(Ljavax/servlet/ServletContext;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="68" hits="0" branch="false"/>
<line number="69" hits="0" branch="false"/>
</lines>
</method>
<method name="setRequest" signature="(Lorg/apache/shiro/web/servlet/ShiroHttpServletRequest;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="77" hits="0" branch="false"/>
<line number="78" hits="0" branch="false"/>
</lines>
</method>
<method name="toAbsolute" signature="(Ljava/lang/String;)Ljava/lang/String;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="216" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="217" hits="0" branch="false"/>
<line number="219" hits="0" branch="false"/>
<line number="221" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="223" hits="0" branch="false"/>
<line number="225" hits="0" branch="false"/>
<line number="226" hits="0" branch="false"/>
<line number="227" hits="0" branch="false"/>
<line number="230" hits="0" branch="false"/>
<line number="231" hits="0" branch="true" condition-coverage="0% (0/8)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
<condition number="2" type="jump" coverage="0%"/>
<condition number="3" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="233" hits="0" branch="false"/>
<line number="235" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="236" hits="0" branch="false"/>
<line number="237" hits="0" branch="false"/>
<line number="238" hits="0" branch="false"/>
<line number="240" hits="0" branch="false"/>
<line number="241" hits="0" branch="false"/>
<line number="243" hits="0" branch="false"/>
<line number="244" hits="0" branch="false"/>
<line number="245" hits="0" branch="false"/>
<line number="246" hits="0" branch="false"/>
<line number="247" hits="0" branch="false"/>
<line number="248" hits="0" branch="false"/>
<line number="250" hits="0" branch="false"/>
<line number="253" hits="0" branch="false"/>
</lines>
</method>
<method name="toEncoded" signature="(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="298" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="299" hits="0" branch="false"/>
<line number="301" hits="0" branch="false"/>
<line number="302" hits="0" branch="false"/>
<line number="303" hits="0" branch="false"/>
<line number="304" hits="0" branch="false"/>
<line number="305" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="306" hits="0" branch="false"/>
<line number="307" hits="0" branch="false"/>
<line number="309" hits="0" branch="false"/>
<line number="310" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="311" hits="0" branch="false"/>
<line number="312" hits="0" branch="false"/>
<line number="314" hits="0" branch="false"/>
<line number="315" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="316" hits="0" branch="false"/>
<line number="317" hits="0" branch="false"/>
<line number="318" hits="0" branch="false"/>
<line number="319" hits="0" branch="false"/>
<line number="321" hits="0" branch="false"/>
<line number="322" hits="0" branch="false"/>
<line number="323" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="51" hits="0" branch="false"/>
<line number="53" hits="0" branch="false"/>
<line number="56" hits="0" branch="false"/>
<line number="57" hits="0" branch="false"/>
<line number="58" hits="0" branch="false"/>
<line number="59" hits="0" branch="false"/>
<line number="63" hits="0" branch="false"/>
<line number="68" hits="0" branch="false"/>
<line number="69" hits="0" branch="false"/>
<line number="72" hits="0" branch="false"/>
<line number="77" hits="0" branch="false"/>
<line number="78" hits="0" branch="false"/>
<line number="87" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="88" hits="0" branch="false"/>
<line number="90" hits="0" branch="false"/>
<line number="96" hits="0" branch="false"/>
<line number="107" hits="0" branch="false"/>
<line number="108" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="110" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="111" hits="0" branch="false"/>
<line number="113" hits="0" branch="false"/>
<line number="115" hits="0" branch="false"/>
<line number="120" hits="0" branch="false"/>
<line number="139" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="140" hits="0" branch="false"/>
<line number="143" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="144" hits="0" branch="false"/>
<line number="147" hits="0" branch="false"/>
<line number="148" hits="0" branch="false"/>
<line number="149" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="150" hits="0" branch="false"/>
<line number="151" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="152" hits="0" branch="false"/>
<line number="154" hits="0" branch="false"/>
<line number="161" hits="0" branch="false"/>
<line number="162" hits="0" branch="false"/>
<line number="163" hits="0" branch="false"/>
<line number="164" hits="0" branch="false"/>
<line number="167" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="168" hits="0" branch="false"/>
<line number="169" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="170" hits="0" branch="false"/>
<line number="171" hits="0" branch="false"/>
<line number="172" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="173" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="174" hits="0" branch="false"/>
<line number="176" hits="0" branch="false"/>
<line number="178" hits="0" branch="false"/>
<line number="179" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="180" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="181" hits="0" branch="false"/>
<line number="183" hits="0" branch="false"/>
<line number="185" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="186" hits="0" branch="false"/>
<line number="188" hits="0" branch="false"/>
<line number="189" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="190" hits="0" branch="false"/>
<line number="191" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="192" hits="0" branch="false"/>
<line number="193" hits="0" branch="false"/>
<line number="194" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="195" hits="0" branch="false"/>
<line number="199" hits="0" branch="false"/>
<line number="216" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="217" hits="0" branch="false"/>
<line number="219" hits="0" branch="false"/>
<line number="221" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="223" hits="0" branch="false"/>
<line number="225" hits="0" branch="false"/>
<line number="226" hits="0" branch="false"/>
<line number="227" hits="0" branch="false"/>
<line number="230" hits="0" branch="false"/>
<line number="231" hits="0" branch="true" condition-coverage="0% (0/8)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
<condition number="2" type="jump" coverage="0%"/>
<condition number="3" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="233" hits="0" branch="false"/>
<line number="235" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="236" hits="0" branch="false"/>
<line number="237" hits="0" branch="false"/>
<line number="238" hits="0" branch="false"/>
<line number="240" hits="0" branch="false"/>
<line number="241" hits="0" branch="false"/>
<line number="243" hits="0" branch="false"/>
<line number="244" hits="0" branch="false"/>
<line number="245" hits="0" branch="false"/>
<line number="246" hits="0" branch="false"/>
<line number="247" hits="0" branch="false"/>
<line number="248" hits="0" branch="false"/>
<line number="250" hits="0" branch="false"/>
<line number="253" hits="0" branch="false"/>
<line number="265" hits="0" branch="true" condition-coverage="0% (0/8)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
<condition number="2" type="jump" coverage="0%"/>
<condition number="3" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="277" hits="0" branch="false"/>
<line number="278" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="279" hits="0" branch="false"/>
<line number="280" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="281" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="282" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="283" hits="0" branch="false"/>
<line number="286" hits="0" branch="false"/>
<line number="298" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="299" hits="0" branch="false"/>
<line number="301" hits="0" branch="false"/>
<line number="302" hits="0" branch="false"/>
<line number="303" hits="0" branch="false"/>
<line number="304" hits="0" branch="false"/>
<line number="305" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="306" hits="0" branch="false"/>
<line number="307" hits="0" branch="false"/>
<line number="309" hits="0" branch="false"/>
<line number="310" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="311" hits="0" branch="false"/>
<line number="312" hits="0" branch="false"/>
<line number="314" hits="0" branch="false"/>
<line number="315" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="316" hits="0" branch="false"/>
<line number="317" hits="0" branch="false"/>
<line number="318" hits="0" branch="false"/>
<line number="319" hits="0" branch="false"/>
<line number="321" hits="0" branch="false"/>
<line number="322" hits="0" branch="false"/>
<line number="323" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.servlet.ShiroHttpSession" filename="org/apache/shiro/web/servlet/ShiroHttpSession.java" line-rate="0.022988505747126436" branch-rate="0.0" complexity="2.0">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="47" hits="1" branch="false"/>
<line number="58" hits="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/session/Session;Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/ServletContext;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="69" hits="0" branch="false"/>
<line number="70" hits="0" branch="false"/>
<line number="71" hits="0" branch="false"/>
<line number="73" hits="0" branch="false"/>
<line number="74" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="75" hits="0" branch="false"/>
<line number="77" hits="0" branch="false"/>
<line number="79" hits="0" branch="false"/>
<line number="80" hits="0" branch="false"/>
<line number="81" hits="0" branch="false"/>
<line number="82" hits="0" branch="false"/>
</lines>
</method>
<method name="access$000" signature="()Ljava/util/Enumeration;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="41" hits="0" branch="false"/>
</lines>
</method>
<method name="afterBound" signature="(Ljava/lang/String;Ljava/lang/Object;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="185" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="186" hits="0" branch="false"/>
<line number="187" hits="0" branch="false"/>
<line number="188" hits="0" branch="false"/>
<line number="190" hits="0" branch="false"/>
</lines>
</method>
<method name="afterUnbound" signature="(Ljava/lang/String;Ljava/lang/Object;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="193" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="194" hits="0" branch="false"/>
<line number="195" hits="0" branch="false"/>
<line number="196" hits="0" branch="false"/>
<line number="198" hits="0" branch="false"/>
</lines>
</method>
<method name="getAttribute" signature="(Ljava/lang/String;)Ljava/lang/Object;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="131" hits="0" branch="false"/>
<line number="132" hits="0" branch="false"/>
<line number="133" hits="0" branch="false"/>
</lines>
</method>
<method name="getAttributeNames" signature="()Ljava/util/Enumeration;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="162" hits="0" branch="false"/>
<line number="163" hits="0" branch="false"/>
<line number="164" hits="0" branch="false"/>
</lines>
</method>
<method name="getCreationTime" signature="()J" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="90" hits="0" branch="false"/>
<line number="91" hits="0" branch="false"/>
<line number="92" hits="0" branch="false"/>
</lines>
</method>
<method name="getId" signature="()Ljava/lang/String;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="97" hits="0" branch="false"/>
</lines>
</method>
<method name="getKeyNames" signature="()Ljava/util/Set;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="145" hits="0" branch="false"/>
<line number="146" hits="0" branch="false"/>
<line number="147" hits="0" branch="false"/>
<line number="148" hits="0" branch="false"/>
<line number="150" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="151" hits="0" branch="false"/>
<line number="152" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="153" hits="0" branch="false"/>
<line number="154" hits="0" branch="false"/>
<line number="156" hits="0" branch="false"/>
<line number="158" hits="0" branch="false"/>
</lines>
</method>
<method name="getLastAccessedTime" signature="()J" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="101" hits="0" branch="false"/>
</lines>
</method>
<method name="getMaxInactiveInterval" signature="()I" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="118" hits="0" branch="false"/>
<line number="119" hits="0" branch="false"/>
<line number="120" hits="0" branch="false"/>
</lines>
</method>
<method name="getServletContext" signature="()Ljavax/servlet/ServletContext;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="105" hits="0" branch="false"/>
</lines>
</method>
<method name="getSession" signature="()Lorg/apache/shiro/session/Session;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="85" hits="0" branch="false"/>
</lines>
</method>
<method name="getSessionContext" signature="()Ljavax/servlet/http/HttpSessionContext;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="126" hits="0" branch="false"/>
</lines>
</method>
<method name="getValue" signature="(Ljava/lang/String;)Ljava/lang/Object;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="138" hits="0" branch="false"/>
</lines>
</method>
<method name="getValueNames" signature="()[Ljava/lang/String;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="176" hits="0" branch="false"/>
<line number="177" hits="0" branch="false"/>
<line number="178" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="179" hits="0" branch="false"/>
<line number="181" hits="0" branch="false"/>
</lines>
</method>
<method name="invalidate" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="234" hits="0" branch="false"/>
<line number="235" hits="0" branch="false"/>
<line number="236" hits="0" branch="false"/>
<line number="237" hits="0" branch="false"/>
<line number="238" hits="0" branch="false"/>
</lines>
</method>
<method name="isNew" signature="()Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="241" hits="0" branch="false"/>
<line number="242" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
</lines>
</method>
<method name="putValue" signature="(Ljava/lang/String;Ljava/lang/Object;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="216" hits="0" branch="false"/>
<line number="217" hits="0" branch="false"/>
</lines>
</method>
<method name="removeAttribute" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="221" hits="0" branch="false"/>
<line number="222" hits="0" branch="false"/>
<line number="223" hits="0" branch="false"/>
<line number="224" hits="0" branch="false"/>
<line number="225" hits="0" branch="false"/>
<line number="226" hits="0" branch="false"/>
</lines>
</method>
<method name="removeValue" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="229" hits="0" branch="false"/>
<line number="230" hits="0" branch="false"/>
</lines>
</method>
<method name="setAttribute" signature="(Ljava/lang/String;Ljava/lang/Object;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="202" hits="0" branch="false"/>
<line number="203" hits="0" branch="false"/>
<line number="204" hits="0" branch="false"/>
<line number="207" hits="0" branch="false"/>
<line number="210" hits="0" branch="false"/>
<line number="212" hits="0" branch="false"/>
<line number="213" hits="0" branch="false"/>
</lines>
</method>
<method name="setMaxInactiveInterval" signature="(I)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="110" hits="0" branch="false"/>
<line number="111" hits="0" branch="false"/>
<line number="112" hits="0" branch="false"/>
<line number="113" hits="0" branch="false"/>
<line number="114" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="41" hits="0" branch="false"/>
<line number="47" hits="1" branch="false"/>
<line number="58" hits="1" branch="false"/>
<line number="69" hits="0" branch="false"/>
<line number="70" hits="0" branch="false"/>
<line number="71" hits="0" branch="false"/>
<line number="73" hits="0" branch="false"/>
<line number="74" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="75" hits="0" branch="false"/>
<line number="77" hits="0" branch="false"/>
<line number="79" hits="0" branch="false"/>
<line number="80" hits="0" branch="false"/>
<line number="81" hits="0" branch="false"/>
<line number="82" hits="0" branch="false"/>
<line number="85" hits="0" branch="false"/>
<line number="90" hits="0" branch="false"/>
<line number="91" hits="0" branch="false"/>
<line number="92" hits="0" branch="false"/>
<line number="97" hits="0" branch="false"/>
<line number="101" hits="0" branch="false"/>
<line number="105" hits="0" branch="false"/>
<line number="110" hits="0" branch="false"/>
<line number="111" hits="0" branch="false"/>
<line number="112" hits="0" branch="false"/>
<line number="113" hits="0" branch="false"/>
<line number="114" hits="0" branch="false"/>
<line number="118" hits="0" branch="false"/>
<line number="119" hits="0" branch="false"/>
<line number="120" hits="0" branch="false"/>
<line number="126" hits="0" branch="false"/>
<line number="131" hits="0" branch="false"/>
<line number="132" hits="0" branch="false"/>
<line number="133" hits="0" branch="false"/>
<line number="138" hits="0" branch="false"/>
<line number="145" hits="0" branch="false"/>
<line number="146" hits="0" branch="false"/>
<line number="147" hits="0" branch="false"/>
<line number="148" hits="0" branch="false"/>
<line number="150" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="151" hits="0" branch="false"/>
<line number="152" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="153" hits="0" branch="false"/>
<line number="154" hits="0" branch="false"/>
<line number="156" hits="0" branch="false"/>
<line number="158" hits="0" branch="false"/>
<line number="162" hits="0" branch="false"/>
<line number="163" hits="0" branch="false"/>
<line number="164" hits="0" branch="false"/>
<line number="176" hits="0" branch="false"/>
<line number="177" hits="0" branch="false"/>
<line number="178" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="179" hits="0" branch="false"/>
<line number="181" hits="0" branch="false"/>
<line number="185" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="186" hits="0" branch="false"/>
<line number="187" hits="0" branch="false"/>
<line number="188" hits="0" branch="false"/>
<line number="190" hits="0" branch="false"/>
<line number="193" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="194" hits="0" branch="false"/>
<line number="195" hits="0" branch="false"/>
<line number="196" hits="0" branch="false"/>
<line number="198" hits="0" branch="false"/>
<line number="202" hits="0" branch="false"/>
<line number="203" hits="0" branch="false"/>
<line number="204" hits="0" branch="false"/>
<line number="207" hits="0" branch="false"/>
<line number="210" hits="0" branch="false"/>
<line number="212" hits="0" branch="false"/>
<line number="213" hits="0" branch="false"/>
<line number="216" hits="0" branch="false"/>
<line number="217" hits="0" branch="false"/>
<line number="221" hits="0" branch="false"/>
<line number="222" hits="0" branch="false"/>
<line number="223" hits="0" branch="false"/>
<line number="224" hits="0" branch="false"/>
<line number="225" hits="0" branch="false"/>
<line number="226" hits="0" branch="false"/>
<line number="229" hits="0" branch="false"/>
<line number="230" hits="0" branch="false"/>
<line number="234" hits="0" branch="false"/>
<line number="235" hits="0" branch="false"/>
<line number="236" hits="0" branch="false"/>
<line number="237" hits="0" branch="false"/>
<line number="238" hits="0" branch="false"/>
<line number="241" hits="0" branch="false"/>
<line number="242" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
</lines>
</class>
<class name="org.apache.shiro.web.servlet.ShiroHttpSession$1" filename="org/apache/shiro/web/servlet/ShiroHttpSession.java" line-rate="0.3333333333333333" branch-rate="1.0" complexity="2.0">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="47" hits="1" branch="false"/>
</lines>
</method>
<method name="hasMoreElements" signature="()Z" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="49" hits="0" branch="false"/>
</lines>
</method>
<method name="nextElement" signature="()Ljava/lang/Object;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="53" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="47" hits="1" branch="false"/>
<line number="49" hits="0" branch="false"/>
<line number="53" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.servlet.ShiroHttpSession$2" filename="org/apache/shiro/web/servlet/ShiroHttpSession.java" line-rate="0.3333333333333333" branch-rate="1.0" complexity="2.0">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="59" hits="1" branch="false"/>
</lines>
</method>
<method name="getIds" signature="()Ljava/util/Enumeration;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="65" hits="0" branch="false"/>
</lines>
</method>
<method name="getSession" signature="(Ljava/lang/String;)Ljavax/servlet/http/HttpSession;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="61" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="59" hits="1" branch="false"/>
<line number="61" hits="0" branch="false"/>
<line number="65" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.servlet.ShiroHttpSession$3" filename="org/apache/shiro/web/servlet/ShiroHttpSession.java" line-rate="0.0" branch-rate="1.0" complexity="2.0">
<methods>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/web/servlet/ShiroHttpSession;Ljava/util/Iterator;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="164" hits="0" branch="false"/>
</lines>
</method>
<method name="hasMoreElements" signature="()Z" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="166" hits="0" branch="false"/>
</lines>
</method>
<method name="nextElement" signature="()Ljava/lang/Object;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="170" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="164" hits="0" branch="false"/>
<line number="166" hits="0" branch="false"/>
<line number="170" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.servlet.SimpleCookie" filename="org/apache/shiro/web/servlet/SimpleCookie.java" line-rate="0.8675496688741722" branch-rate="0.7777777777777778" complexity="1.5833333333333333">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="71" hits="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="83" hits="41" branch="false"/>
<line number="84" hits="41" branch="false"/>
<line number="85" hits="41" branch="false"/>
<line number="86" hits="41" branch="false"/>
<line number="87" hits="41" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="90" hits="40" branch="false"/>
<line number="91" hits="40" branch="false"/>
<line number="92" hits="40" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/web/servlet/Cookie;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="94" hits="5" branch="false"/>
<line number="95" hits="5" branch="false"/>
<line number="96" hits="5" branch="false"/>
<line number="97" hits="5" branch="false"/>
<line number="98" hits="5" branch="false"/>
<line number="99" hits="5" branch="false"/>
<line number="100" hits="5" branch="false"/>
<line number="101" hits="5" branch="false"/>
<line number="102" hits="5" branch="false"/>
<line number="103" hits="5" branch="false"/>
<line number="104" hits="5" branch="false"/>
</lines>
</method>
<method name="addCookieHeader" signature="(Ljavax/servlet/http/HttpServletResponse;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IIZZ)V" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="222" hits="11" branch="false"/>
<line number="223" hits="11" branch="false"/>
<line number="225" hits="11" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="226" hits="11" branch="false"/>
<line number="228" hits="11" branch="false"/>
</lines>
</method>
<method name="appendComment" signature="(Ljava/lang/StringBuilder;Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="264" hits="12" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="265" hits="1" branch="false"/>
<line number="266" hits="1" branch="false"/>
<line number="268" hits="12" branch="false"/>
</lines>
</method>
<method name="appendDomain" signature="(Ljava/lang/StringBuilder;Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="271" hits="12" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="272" hits="1" branch="false"/>
<line number="273" hits="1" branch="false"/>
<line number="275" hits="12" branch="false"/>
</lines>
</method>
<method name="appendExpires" signature="(Ljava/lang/StringBuilder;I)V" line-rate="0.75" branch-rate="0.75">
<lines>
<line number="291" hits="12" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="292" hits="5" branch="false"/>
<line number="293" hits="5" branch="false"/>
<line number="294" hits="5" branch="false"/>
<line number="296" hits="5" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="298" hits="5" branch="false"/>
<line number="301" hits="0" branch="false"/>
<line number="302" hits="0" branch="false"/>
<line number="303" hits="0" branch="false"/>
<line number="305" hits="5" branch="false"/>
<line number="306" hits="5" branch="false"/>
<line number="308" hits="12" branch="false"/>
</lines>
</method>
<method name="appendHttpOnly" signature="(Ljava/lang/StringBuilder;Z)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="325" hits="12" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="326" hits="7" branch="false"/>
<line number="327" hits="7" branch="false"/>
<line number="329" hits="12" branch="false"/>
</lines>
</method>
<method name="appendPath" signature="(Ljava/lang/StringBuilder;Ljava/lang/String;)V" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="278" hits="12" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="279" hits="12" branch="false"/>
<line number="280" hits="12" branch="false"/>
<line number="282" hits="12" branch="false"/>
</lines>
</method>
<method name="appendSecure" signature="(Ljava/lang/StringBuilder;Z)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="318" hits="12" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="319" hits="1" branch="false"/>
<line number="320" hits="1" branch="false"/>
<line number="322" hits="12" branch="false"/>
</lines>
</method>
<method name="appendVersion" signature="(Ljava/lang/StringBuilder;I)V" line-rate="0.5" branch-rate="0.5">
<lines>
<line number="311" hits="12" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="312" hits="0" branch="false"/>
<line number="313" hits="0" branch="false"/>
<line number="315" hits="12" branch="false"/>
</lines>
</method>
<method name="buildHeaderValue" signature="(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IIZZ)Ljava/lang/String;" line-rate="0.9230769230769231" branch-rate="0.5">
<lines>
<line number="241" hits="12" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="242" hits="0" branch="false"/>
<line number="245" hits="12" branch="false"/>
<line number="247" hits="12" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="248" hits="12" branch="false"/>
<line number="251" hits="12" branch="false"/>
<line number="252" hits="12" branch="false"/>
<line number="253" hits="12" branch="false"/>
<line number="254" hits="12" branch="false"/>
<line number="255" hits="12" branch="false"/>
<line number="256" hits="12" branch="false"/>
<line number="257" hits="12" branch="false"/>
<line number="259" hits="12" branch="false"/>
</lines>
</method>
<method name="calculatePath" signature="(Ljavax/servlet/http/HttpServletRequest;)Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="190" hits="11" branch="false"/>
<line number="191" hits="11" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="192" hits="10" branch="false"/>
<line number="196" hits="11" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="197" hits="7" branch="false"/>
<line number="199" hits="11" branch="false"/>
<line number="200" hits="11" branch="false"/>
</lines>
</method>
<method name="getComment" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="126" hits="10" branch="false"/>
</lines>
</method>
<method name="getCookie" signature="(Ljavax/servlet/http/HttpServletRequest;Ljava/lang/String;)Ljavax/servlet/http/Cookie;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="384" hits="13" branch="false"/>
<line number="385" hits="13" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="386" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="387" hits="5" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="388" hits="4" branch="false"/>
<line number="392" hits="9" branch="false"/>
</lines>
</method>
<method name="getDomain" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="134" hits="14" branch="false"/>
</lines>
</method>
<method name="getMaxAge" signature="()I" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="150" hits="10" branch="false"/>
</lines>
</method>
<method name="getName" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="107" hits="31" branch="false"/>
</lines>
</method>
<method name="getPath" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="142" hits="14" branch="false"/>
</lines>
</method>
<method name="getValue" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="118" hits="10" branch="false"/>
</lines>
</method>
<method name="getVersion" signature="()I" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="158" hits="14" branch="false"/>
</lines>
</method>
<method name="isHttpOnly" signature="()Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="174" hits="10" branch="false"/>
</lines>
</method>
<method name="isSecure" signature="()Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="166" hits="14" branch="false"/>
</lines>
</method>
<method name="readValue" signature="(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="361" hits="13" branch="false"/>
<line number="362" hits="13" branch="false"/>
<line number="363" hits="13" branch="false"/>
<line number="364" hits="13" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="365" hits="4" branch="false"/>
<line number="366" hits="4" branch="false"/>
<line number="368" hits="9" branch="false"/>
<line number="371" hits="13" branch="false"/>
</lines>
</method>
<method name="removeFrom" signature="(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="345" hits="4" branch="false"/>
<line number="346" hits="4" branch="false"/>
<line number="347" hits="4" branch="false"/>
<line number="348" hits="4" branch="false"/>
<line number="349" hits="4" branch="false"/>
<line number="350" hits="4" branch="false"/>
<line number="351" hits="4" branch="false"/>
<line number="352" hits="4" branch="false"/>
<line number="353" hits="4" branch="false"/>
<line number="355" hits="4" branch="false"/>
<line number="357" hits="4" branch="false"/>
<line number="358" hits="4" branch="false"/>
</lines>
</method>
<method name="saveTo" signature="(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="205" hits="7" branch="false"/>
<line number="206" hits="7" branch="false"/>
<line number="207" hits="7" branch="false"/>
<line number="208" hits="7" branch="false"/>
<line number="209" hits="7" branch="false"/>
<line number="210" hits="7" branch="false"/>
<line number="211" hits="7" branch="false"/>
<line number="212" hits="7" branch="false"/>
<line number="213" hits="7" branch="false"/>
<line number="215" hits="7" branch="false"/>
<line number="216" hits="7" branch="false"/>
</lines>
</method>
<method name="setComment" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="130" hits="0" branch="false"/>
<line number="131" hits="0" branch="false"/>
</lines>
</method>
<method name="setDomain" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="138" hits="0" branch="false"/>
<line number="139" hits="0" branch="false"/>
</lines>
</method>
<method name="setHttpOnly" signature="(Z)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="178" hits="37" branch="false"/>
<line number="179" hits="37" branch="false"/>
</lines>
</method>
<method name="setMaxAge" signature="(I)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="154" hits="19" branch="false"/>
<line number="155" hits="19" branch="false"/>
</lines>
</method>
<method name="setName" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="111" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="112" hits="0" branch="false"/>
<line number="114" hits="0" branch="false"/>
<line number="115" hits="0" branch="false"/>
</lines>
</method>
<method name="setPath" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="146" hits="0" branch="false"/>
<line number="147" hits="0" branch="false"/>
</lines>
</method>
<method name="setSecure" signature="(Z)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="170" hits="0" branch="false"/>
<line number="171" hits="0" branch="false"/>
</lines>
</method>
<method name="setValue" signature="(Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="122" hits="7" branch="false"/>
<line number="123" hits="7" branch="false"/>
</lines>
</method>
<method name="setVersion" signature="(I)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="162" hits="0" branch="false"/>
<line number="163" hits="0" branch="false"/>
</lines>
</method>
<method name="toCookieDate" signature="(Ljava/util/Date;)Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="338" hits="5" branch="false"/>
<line number="339" hits="5" branch="false"/>
<line number="340" hits="5" branch="false"/>
<line number="341" hits="5" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="71" hits="1" branch="false"/>
<line number="83" hits="41" branch="false"/>
<line number="84" hits="41" branch="false"/>
<line number="85" hits="41" branch="false"/>
<line number="86" hits="41" branch="false"/>
<line number="87" hits="41" branch="false"/>
<line number="90" hits="40" branch="false"/>
<line number="91" hits="40" branch="false"/>
<line number="92" hits="40" branch="false"/>
<line number="94" hits="5" branch="false"/>
<line number="95" hits="5" branch="false"/>
<line number="96" hits="5" branch="false"/>
<line number="97" hits="5" branch="false"/>
<line number="98" hits="5" branch="false"/>
<line number="99" hits="5" branch="false"/>
<line number="100" hits="5" branch="false"/>
<line number="101" hits="5" branch="false"/>
<line number="102" hits="5" branch="false"/>
<line number="103" hits="5" branch="false"/>
<line number="104" hits="5" branch="false"/>
<line number="107" hits="31" branch="false"/>
<line number="111" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="112" hits="0" branch="false"/>
<line number="114" hits="0" branch="false"/>
<line number="115" hits="0" branch="false"/>
<line number="118" hits="10" branch="false"/>
<line number="122" hits="7" branch="false"/>
<line number="123" hits="7" branch="false"/>
<line number="126" hits="10" branch="false"/>
<line number="130" hits="0" branch="false"/>
<line number="131" hits="0" branch="false"/>
<line number="134" hits="14" branch="false"/>
<line number="138" hits="0" branch="false"/>
<line number="139" hits="0" branch="false"/>
<line number="142" hits="14" branch="false"/>
<line number="146" hits="0" branch="false"/>
<line number="147" hits="0" branch="false"/>
<line number="150" hits="10" branch="false"/>
<line number="154" hits="19" branch="false"/>
<line number="155" hits="19" branch="false"/>
<line number="158" hits="14" branch="false"/>
<line number="162" hits="0" branch="false"/>
<line number="163" hits="0" branch="false"/>
<line number="166" hits="14" branch="false"/>
<line number="170" hits="0" branch="false"/>
<line number="171" hits="0" branch="false"/>
<line number="174" hits="10" branch="false"/>
<line number="178" hits="37" branch="false"/>
<line number="179" hits="37" branch="false"/>
<line number="190" hits="11" branch="false"/>
<line number="191" hits="11" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="192" hits="10" branch="false"/>
<line number="196" hits="11" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="197" hits="7" branch="false"/>
<line number="199" hits="11" branch="false"/>
<line number="200" hits="11" branch="false"/>
<line number="205" hits="7" branch="false"/>
<line number="206" hits="7" branch="false"/>
<line number="207" hits="7" branch="false"/>
<line number="208" hits="7" branch="false"/>
<line number="209" hits="7" branch="false"/>
<line number="210" hits="7" branch="false"/>
<line number="211" hits="7" branch="false"/>
<line number="212" hits="7" branch="false"/>
<line number="213" hits="7" branch="false"/>
<line number="215" hits="7" branch="false"/>
<line number="216" hits="7" branch="false"/>
<line number="222" hits="11" branch="false"/>
<line number="223" hits="11" branch="false"/>
<line number="225" hits="11" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="226" hits="11" branch="false"/>
<line number="228" hits="11" branch="false"/>
<line number="241" hits="12" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="242" hits="0" branch="false"/>
<line number="245" hits="12" branch="false"/>
<line number="247" hits="12" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="248" hits="12" branch="false"/>
<line number="251" hits="12" branch="false"/>
<line number="252" hits="12" branch="false"/>
<line number="253" hits="12" branch="false"/>
<line number="254" hits="12" branch="false"/>
<line number="255" hits="12" branch="false"/>
<line number="256" hits="12" branch="false"/>
<line number="257" hits="12" branch="false"/>
<line number="259" hits="12" branch="false"/>
<line number="264" hits="12" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="265" hits="1" branch="false"/>
<line number="266" hits="1" branch="false"/>
<line number="268" hits="12" branch="false"/>
<line number="271" hits="12" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="272" hits="1" branch="false"/>
<line number="273" hits="1" branch="false"/>
<line number="275" hits="12" branch="false"/>
<line number="278" hits="12" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="279" hits="12" branch="false"/>
<line number="280" hits="12" branch="false"/>
<line number="282" hits="12" branch="false"/>
<line number="291" hits="12" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="292" hits="5" branch="false"/>
<line number="293" hits="5" branch="false"/>
<line number="294" hits="5" branch="false"/>
<line number="296" hits="5" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="298" hits="5" branch="false"/>
<line number="301" hits="0" branch="false"/>
<line number="302" hits="0" branch="false"/>
<line number="303" hits="0" branch="false"/>
<line number="305" hits="5" branch="false"/>
<line number="306" hits="5" branch="false"/>
<line number="308" hits="12" branch="false"/>
<line number="311" hits="12" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="312" hits="0" branch="false"/>
<line number="313" hits="0" branch="false"/>
<line number="315" hits="12" branch="false"/>
<line number="318" hits="12" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="319" hits="1" branch="false"/>
<line number="320" hits="1" branch="false"/>
<line number="322" hits="12" branch="false"/>
<line number="325" hits="12" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="326" hits="7" branch="false"/>
<line number="327" hits="7" branch="false"/>
<line number="329" hits="12" branch="false"/>
<line number="338" hits="5" branch="false"/>
<line number="339" hits="5" branch="false"/>
<line number="340" hits="5" branch="false"/>
<line number="341" hits="5" branch="false"/>
<line number="345" hits="4" branch="false"/>
<line number="346" hits="4" branch="false"/>
<line number="347" hits="4" branch="false"/>
<line number="348" hits="4" branch="false"/>
<line number="349" hits="4" branch="false"/>
<line number="350" hits="4" branch="false"/>
<line number="351" hits="4" branch="false"/>
<line number="352" hits="4" branch="false"/>
<line number="353" hits="4" branch="false"/>
<line number="355" hits="4" branch="false"/>
<line number="357" hits="4" branch="false"/>
<line number="358" hits="4" branch="false"/>
<line number="361" hits="13" branch="false"/>
<line number="362" hits="13" branch="false"/>
<line number="363" hits="13" branch="false"/>
<line number="364" hits="13" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="365" hits="4" branch="false"/>
<line number="366" hits="4" branch="false"/>
<line number="368" hits="9" branch="false"/>
<line number="371" hits="13" branch="false"/>
<line number="384" hits="13" branch="false"/>
<line number="385" hits="13" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="386" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="387" hits="5" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="388" hits="4" branch="false"/>
<line number="392" hits="9" branch="false"/>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.web.session" line-rate="0.2835820895522388" branch-rate="0.3333333333333333" complexity="2.933333333333333">
<classes>
<class name="org.apache.shiro.web.session.HttpServletSession" filename="org/apache/shiro/web/session/HttpServletSession.java" line-rate="0.2835820895522388" branch-rate="0.3333333333333333" complexity="2.933333333333333">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="43" hits="1" branch="false"/>
<line number="44" hits="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljavax/servlet/http/HttpSession;Ljava/lang/String;)V" line-rate="0.6666666666666666" branch-rate="0.5">
<lines>
<line number="46" hits="3" branch="false"/>
<line number="48" hits="3" branch="false"/>
<line number="49" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="50" hits="0" branch="false"/>
<line number="51" hits="0" branch="false"/>
<line number="53" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="54" hits="0" branch="false"/>
<line number="56" hits="0" branch="false"/>
<line number="58" hits="3" branch="false"/>
<line number="59" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="60" hits="3" branch="false"/>
<line number="62" hits="3" branch="false"/>
</lines>
</method>
<method name="assertString" signature="(Ljava/lang/Object;)Ljava/lang/String;" line-rate="0.5" branch-rate="0.5">
<lines>
<line number="136" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="137" hits="0" branch="false"/>
<line number="139" hits="0" branch="false"/>
<line number="141" hits="6" branch="false"/>
</lines>
</method>
<method name="getAttribute" signature="(Ljava/lang/Object;)Ljava/lang/Object;" line-rate="0.3333333333333333" branch-rate="1.0">
<lines>
<line number="146" hits="3" branch="false"/>
<line number="147" hits="0" branch="false"/>
<line number="148" hits="0" branch="false"/>
</lines>
</method>
<method name="getAttributeKeys" signature="()Ljava/util/Collection;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="121" hits="0" branch="false"/>
<line number="122" hits="0" branch="false"/>
<line number="123" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="124" hits="0" branch="false"/>
<line number="125" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="126" hits="0" branch="false"/>
<line number="129" hits="0" branch="false"/>
<line number="130" hits="0" branch="false"/>
<line number="131" hits="0" branch="false"/>
</lines>
</method>
<method name="getHost" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="98" hits="3" branch="false"/>
</lines>
</method>
<method name="getId" signature="()Ljava/io/Serializable;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="65" hits="0" branch="false"/>
</lines>
</method>
<method name="getLastAccessTime" signature="()Ljava/util/Date;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="73" hits="0" branch="false"/>
</lines>
</method>
<method name="getStartTimestamp" signature="()Ljava/util/Date;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="69" hits="0" branch="false"/>
</lines>
</method>
<method name="getTimeout" signature="()J" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="78" hits="0" branch="false"/>
<line number="79" hits="0" branch="false"/>
<line number="80" hits="0" branch="false"/>
</lines>
</method>
<method name="removeAttribute" signature="(Ljava/lang/Object;)Ljava/lang/Object;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="162" hits="0" branch="false"/>
<line number="163" hits="0" branch="false"/>
<line number="164" hits="0" branch="false"/>
<line number="165" hits="0" branch="false"/>
<line number="166" hits="0" branch="false"/>
<line number="167" hits="0" branch="false"/>
</lines>
</method>
<method name="setAttribute" signature="(Ljava/lang/Object;Ljava/lang/Object;)V" line-rate="0.6" branch-rate="1.0">
<lines>
<line number="154" hits="3" branch="false"/>
<line number="155" hits="0" branch="false"/>
<line number="156" hits="0" branch="false"/>
<line number="157" hits="3" branch="false"/>
<line number="158" hits="3" branch="false"/>
</lines>
</method>
<method name="setHost" signature="(Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="94" hits="3" branch="false"/>
<line number="95" hits="3" branch="false"/>
</lines>
</method>
<method name="setTimeout" signature="(J)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="86" hits="0" branch="false"/>
<line number="87" hits="0" branch="false"/>
<line number="88" hits="0" branch="false"/>
<line number="89" hits="0" branch="false"/>
<line number="90" hits="0" branch="false"/>
<line number="91" hits="0" branch="false"/>
</lines>
</method>
<method name="stop" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="113" hits="0" branch="false"/>
<line number="114" hits="0" branch="false"/>
<line number="115" hits="0" branch="false"/>
<line number="116" hits="0" branch="false"/>
<line number="117" hits="0" branch="false"/>
</lines>
</method>
<method name="touch" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="104" hits="0" branch="false"/>
<line number="105" hits="0" branch="false"/>
<line number="106" hits="0" branch="false"/>
<line number="107" hits="0" branch="false"/>
<line number="108" hits="0" branch="false"/>
<line number="109" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="43" hits="1" branch="false"/>
<line number="44" hits="1" branch="false"/>
<line number="46" hits="3" branch="false"/>
<line number="48" hits="3" branch="false"/>
<line number="49" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="50" hits="0" branch="false"/>
<line number="51" hits="0" branch="false"/>
<line number="53" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="54" hits="0" branch="false"/>
<line number="56" hits="0" branch="false"/>
<line number="58" hits="3" branch="false"/>
<line number="59" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="60" hits="3" branch="false"/>
<line number="62" hits="3" branch="false"/>
<line number="65" hits="0" branch="false"/>
<line number="69" hits="0" branch="false"/>
<line number="73" hits="0" branch="false"/>
<line number="78" hits="0" branch="false"/>
<line number="79" hits="0" branch="false"/>
<line number="80" hits="0" branch="false"/>
<line number="86" hits="0" branch="false"/>
<line number="87" hits="0" branch="false"/>
<line number="88" hits="0" branch="false"/>
<line number="89" hits="0" branch="false"/>
<line number="90" hits="0" branch="false"/>
<line number="91" hits="0" branch="false"/>
<line number="94" hits="3" branch="false"/>
<line number="95" hits="3" branch="false"/>
<line number="98" hits="3" branch="false"/>
<line number="104" hits="0" branch="false"/>
<line number="105" hits="0" branch="false"/>
<line number="106" hits="0" branch="false"/>
<line number="107" hits="0" branch="false"/>
<line number="108" hits="0" branch="false"/>
<line number="109" hits="0" branch="false"/>
<line number="113" hits="0" branch="false"/>
<line number="114" hits="0" branch="false"/>
<line number="115" hits="0" branch="false"/>
<line number="116" hits="0" branch="false"/>
<line number="117" hits="0" branch="false"/>
<line number="121" hits="0" branch="false"/>
<line number="122" hits="0" branch="false"/>
<line number="123" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="124" hits="0" branch="false"/>
<line number="125" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="126" hits="0" branch="false"/>
<line number="129" hits="0" branch="false"/>
<line number="130" hits="0" branch="false"/>
<line number="131" hits="0" branch="false"/>
<line number="136" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="137" hits="0" branch="false"/>
<line number="139" hits="0" branch="false"/>
<line number="141" hits="6" branch="false"/>
<line number="146" hits="3" branch="false"/>
<line number="147" hits="0" branch="false"/>
<line number="148" hits="0" branch="false"/>
<line number="154" hits="3" branch="false"/>
<line number="155" hits="0" branch="false"/>
<line number="156" hits="0" branch="false"/>
<line number="157" hits="3" branch="false"/>
<line number="158" hits="3" branch="false"/>
<line number="162" hits="0" branch="false"/>
<line number="163" hits="0" branch="false"/>
<line number="164" hits="0" branch="false"/>
<line number="165" hits="0" branch="false"/>
<line number="166" hits="0" branch="false"/>
<line number="167" hits="0" branch="false"/>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.web.session.mgt" line-rate="0.8486486486486486" branch-rate="0.7352941176470589" complexity="2.116279069767442">
<classes>
<class name="org.apache.shiro.web.session.mgt.DefaultWebSessionContext" filename="org/apache/shiro/web/session/mgt/DefaultWebSessionContext.java" line-rate="0.8571428571428571" branch-rate="0.5" complexity="1.3333333333333333">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="37" hits="1" branch="false"/>
<line number="38" hits="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="41" hits="7" branch="false"/>
<line number="42" hits="7" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/util/Map;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="45" hits="0" branch="false"/>
<line number="46" hits="0" branch="false"/>
</lines>
</method>
<method name="getServletRequest" signature="()Ljavax/servlet/ServletRequest;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="55" hits="21" branch="false"/>
</lines>
</method>
<method name="getServletResponse" signature="()Ljavax/servlet/ServletResponse;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="65" hits="18" branch="false"/>
</lines>
</method>
<method name="setServletRequest" signature="(Ljavax/servlet/ServletRequest;)V" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="49" hits="7" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="50" hits="7" branch="false"/>
<line number="52" hits="7" branch="false"/>
</lines>
</method>
<method name="setServletResponse" signature="(Ljavax/servlet/ServletResponse;)V" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="59" hits="7" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="60" hits="7" branch="false"/>
<line number="62" hits="7" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="37" hits="1" branch="false"/>
<line number="38" hits="1" branch="false"/>
<line number="41" hits="7" branch="false"/>
<line number="42" hits="7" branch="false"/>
<line number="45" hits="0" branch="false"/>
<line number="46" hits="0" branch="false"/>
<line number="49" hits="7" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="50" hits="7" branch="false"/>
<line number="52" hits="7" branch="false"/>
<line number="55" hits="21" branch="false"/>
<line number="59" hits="7" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="60" hits="7" branch="false"/>
<line number="62" hits="7" branch="false"/>
<line number="65" hits="18" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.session.mgt.DefaultWebSessionManager" filename="org/apache/shiro/web/session/mgt/DefaultWebSessionManager.java" line-rate="0.8244274809160306" branch-rate="0.74" complexity="2.6666666666666665">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="50" hits="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="55" hits="18" branch="false"/>
<line number="56" hits="18" branch="false"/>
<line number="57" hits="18" branch="false"/>
<line number="58" hits="18" branch="false"/>
<line number="59" hits="18" branch="false"/>
<line number="60" hits="18" branch="false"/>
</lines>
</method>
<method name="createExposedSession" signature="(Lorg/apache/shiro/session/Session;Lorg/apache/shiro/session/mgt/SessionContext;)Lorg/apache/shiro/session/Session;" line-rate="0.8333333333333334" branch-rate="0.5">
<lines>
<line number="203" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="204" hits="0" branch="false"/>
<line number="206" hits="3" branch="false"/>
<line number="207" hits="3" branch="false"/>
<line number="208" hits="3" branch="false"/>
<line number="209" hits="3" branch="false"/>
</lines>
</method>
<method name="createExposedSession" signature="(Lorg/apache/shiro/session/Session;Lorg/apache/shiro/session/mgt/SessionKey;)Lorg/apache/shiro/session/Session;" line-rate="0.8333333333333334" branch-rate="0.5">
<lines>
<line number="213" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="214" hits="0" branch="false"/>
<line number="217" hits="1" branch="false"/>
<line number="218" hits="1" branch="false"/>
<line number="219" hits="1" branch="false"/>
<line number="220" hits="1" branch="false"/>
</lines>
</method>
<method name="getReferencedSessionId" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)Ljava/io/Serializable;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="112" hits="9" branch="false"/>
<line number="113" hits="9" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="114" hits="2" branch="false"/>
<line number="120" hits="7" branch="false"/>
<line number="122" hits="7" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="124" hits="6" branch="false"/>
<line number="125" hits="6" branch="false"/>
<line number="126" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="128" hits="5" branch="false"/>
<line number="131" hits="7" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="132" hits="3" branch="false"/>
<line number="136" hits="9" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="137" hits="5" branch="false"/>
<line number="140" hits="5" branch="false"/>
<line number="142" hits="9" branch="false"/>
</lines>
</method>
<method name="getSessionId" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)Ljava/io/Serializable;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="264" hits="9" branch="false"/>
</lines>
</method>
<method name="getSessionId" signature="(Lorg/apache/shiro/session/mgt/SessionKey;)Ljava/io/Serializable;" line-rate="1.0" branch-rate="0.75">
<lines>
<line number="254" hits="22" branch="false"/>
<line number="255" hits="22" branch="true" condition-coverage="75% (3/4)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="256" hits="5" branch="false"/>
<line number="257" hits="5" branch="false"/>
<line number="258" hits="5" branch="false"/>
<line number="260" hits="22" branch="false"/>
</lines>
</method>
<method name="getSessionIdCookie" signature="()Lorg/apache/shiro/web/servlet/Cookie;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="63" hits="11" branch="false"/>
</lines>
</method>
<method name="getSessionIdCookieValue" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)Ljava/lang/String;" line-rate="0.75" branch-rate="0.75">
<lines>
<line number="98" hits="9" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="99" hits="3" branch="false"/>
<line number="100" hits="3" branch="false"/>
<line number="102" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="103" hits="0" branch="false"/>
<line number="104" hits="0" branch="false"/>
<line number="106" hits="6" branch="false"/>
<line number="107" hits="6" branch="false"/>
</lines>
</method>
<method name="getSessionIdName" signature="()Ljava/lang/String;" line-rate="0.75" branch-rate="0.5">
<lines>
<line number="195" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="196" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="197" hits="0" branch="false"/>
<line number="199" hits="6" branch="false"/>
</lines>
</method>
<method name="getUriPathSegmentParamValue" signature="(Ljavax/servlet/ServletRequest;Ljava/lang/String;)Ljava/lang/String;" line-rate="1.0" branch-rate="0.9166666666666666">
<lines>
<line number="150" hits="12" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="151" hits="1" branch="false"/>
<line number="153" hits="11" branch="false"/>
<line number="154" hits="11" branch="false"/>
<line number="155" hits="11" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="156" hits="5" branch="false"/>
<line number="159" hits="6" branch="false"/>
<line number="160" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="161" hits="4" branch="false"/>
<line number="164" hits="6" branch="false"/>
<line number="165" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="167" hits="3" branch="false"/>
<line number="172" hits="3" branch="false"/>
<line number="174" hits="3" branch="false"/>
<line number="177" hits="3" branch="false"/>
<line number="178" hits="3" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="180" hits="1" branch="false"/>
<line number="183" hits="2" branch="false"/>
<line number="185" hits="2" branch="false"/>
<line number="186" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="187" hits="2" branch="false"/>
<line number="190" hits="2" branch="false"/>
</lines>
</method>
<method name="isServletContainerSessions" signature="()Z" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="314" hits="0" branch="false"/>
</lines>
</method>
<method name="isSessionIdCookieEnabled" signature="()Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="72" hits="14" branch="false"/>
</lines>
</method>
<method name="onExpiration" signature="(Lorg/apache/shiro/session/Session;Lorg/apache/shiro/session/ExpiredSessionException;Lorg/apache/shiro/session/mgt/SessionKey;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="269" hits="1" branch="false"/>
<line number="270" hits="1" branch="false"/>
<line number="271" hits="1" branch="false"/>
</lines>
</method>
<method name="onInvalidation" signature="(Lorg/apache/shiro/session/Session;Lorg/apache/shiro/session/InvalidSessionException;Lorg/apache/shiro/session/mgt/SessionKey;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="275" hits="0" branch="false"/>
<line number="276" hits="0" branch="false"/>
<line number="277" hits="0" branch="false"/>
</lines>
</method>
<method name="onInvalidation" signature="(Lorg/apache/shiro/session/mgt/SessionKey;)V" line-rate="0.875" branch-rate="0.5">
<lines>
<line number="280" hits="1" branch="false"/>
<line number="281" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="282" hits="1" branch="false"/>
<line number="284" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="285" hits="1" branch="false"/>
<line number="286" hits="1" branch="false"/>
<line number="288" hits="0" branch="false"/>
<line number="291" hits="1" branch="false"/>
</lines>
</method>
<method name="onStart" signature="(Lorg/apache/shiro/session/Session;Lorg/apache/shiro/session/mgt/SessionContext;)V" line-rate="0.8571428571428571" branch-rate="0.75">
<lines>
<line number="230" hits="5" branch="false"/>
<line number="232" hits="5" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="233" hits="0" branch="false"/>
<line number="235" hits="0" branch="false"/>
<line number="238" hits="5" branch="false"/>
<line number="239" hits="5" branch="false"/>
<line number="241" hits="5" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="242" hits="4" branch="false"/>
<line number="243" hits="4" branch="false"/>
<line number="244" hits="4" branch="false"/>
<line number="245" hits="1" branch="false"/>
<line number="248" hits="5" branch="false"/>
<line number="249" hits="5" branch="false"/>
<line number="250" hits="5" branch="false"/>
</lines>
</method>
<method name="onStop" signature="(Lorg/apache/shiro/session/Session;Lorg/apache/shiro/session/mgt/SessionKey;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="295" hits="0" branch="false"/>
<line number="296" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="297" hits="0" branch="false"/>
<line number="298" hits="0" branch="false"/>
<line number="299" hits="0" branch="false"/>
<line number="300" hits="0" branch="false"/>
<line number="301" hits="0" branch="false"/>
<line number="302" hits="0" branch="false"/>
<line number="305" hits="0" branch="false"/>
</lines>
</method>
<method name="removeSessionIdCookie" signature="(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="94" hits="1" branch="false"/>
<line number="95" hits="1" branch="false"/>
</lines>
</method>
<method name="setSessionIdCookie" signature="(Lorg/apache/shiro/web/servlet/Cookie;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="68" hits="5" branch="false"/>
<line number="69" hits="5" branch="false"/>
</lines>
</method>
<method name="setSessionIdCookieEnabled" signature="(Z)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="77" hits="4" branch="false"/>
<line number="78" hits="4" branch="false"/>
</lines>
</method>
<method name="storeSessionId" signature="(Ljava/io/Serializable;Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V" line-rate="0.8" branch-rate="0.5">
<lines>
<line number="81" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="82" hits="0" branch="false"/>
<line number="83" hits="0" branch="false"/>
<line number="85" hits="4" branch="false"/>
<line number="86" hits="4" branch="false"/>
<line number="87" hits="4" branch="false"/>
<line number="88" hits="4" branch="false"/>
<line number="89" hits="4" branch="false"/>
<line number="90" hits="4" branch="false"/>
<line number="91" hits="4" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="50" hits="1" branch="false"/>
<line number="55" hits="18" branch="false"/>
<line number="56" hits="18" branch="false"/>
<line number="57" hits="18" branch="false"/>
<line number="58" hits="18" branch="false"/>
<line number="59" hits="18" branch="false"/>
<line number="60" hits="18" branch="false"/>
<line number="63" hits="11" branch="false"/>
<line number="68" hits="5" branch="false"/>
<line number="69" hits="5" branch="false"/>
<line number="72" hits="14" branch="false"/>
<line number="77" hits="4" branch="false"/>
<line number="78" hits="4" branch="false"/>
<line number="81" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="82" hits="0" branch="false"/>
<line number="83" hits="0" branch="false"/>
<line number="85" hits="4" branch="false"/>
<line number="86" hits="4" branch="false"/>
<line number="87" hits="4" branch="false"/>
<line number="88" hits="4" branch="false"/>
<line number="89" hits="4" branch="false"/>
<line number="90" hits="4" branch="false"/>
<line number="91" hits="4" branch="false"/>
<line number="94" hits="1" branch="false"/>
<line number="95" hits="1" branch="false"/>
<line number="98" hits="9" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="99" hits="3" branch="false"/>
<line number="100" hits="3" branch="false"/>
<line number="102" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="103" hits="0" branch="false"/>
<line number="104" hits="0" branch="false"/>
<line number="106" hits="6" branch="false"/>
<line number="107" hits="6" branch="false"/>
<line number="112" hits="9" branch="false"/>
<line number="113" hits="9" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="114" hits="2" branch="false"/>
<line number="120" hits="7" branch="false"/>
<line number="122" hits="7" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="124" hits="6" branch="false"/>
<line number="125" hits="6" branch="false"/>
<line number="126" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="128" hits="5" branch="false"/>
<line number="131" hits="7" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="132" hits="3" branch="false"/>
<line number="136" hits="9" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="137" hits="5" branch="false"/>
<line number="140" hits="5" branch="false"/>
<line number="142" hits="9" branch="false"/>
<line number="150" hits="12" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="151" hits="1" branch="false"/>
<line number="153" hits="11" branch="false"/>
<line number="154" hits="11" branch="false"/>
<line number="155" hits="11" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="156" hits="5" branch="false"/>
<line number="159" hits="6" branch="false"/>
<line number="160" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="161" hits="4" branch="false"/>
<line number="164" hits="6" branch="false"/>
<line number="165" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="167" hits="3" branch="false"/>
<line number="172" hits="3" branch="false"/>
<line number="174" hits="3" branch="false"/>
<line number="177" hits="3" branch="false"/>
<line number="178" hits="3" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="180" hits="1" branch="false"/>
<line number="183" hits="2" branch="false"/>
<line number="185" hits="2" branch="false"/>
<line number="186" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="187" hits="2" branch="false"/>
<line number="190" hits="2" branch="false"/>
<line number="195" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="196" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="197" hits="0" branch="false"/>
<line number="199" hits="6" branch="false"/>
<line number="203" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="204" hits="0" branch="false"/>
<line number="206" hits="3" branch="false"/>
<line number="207" hits="3" branch="false"/>
<line number="208" hits="3" branch="false"/>
<line number="209" hits="3" branch="false"/>
<line number="213" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="214" hits="0" branch="false"/>
<line number="217" hits="1" branch="false"/>
<line number="218" hits="1" branch="false"/>
<line number="219" hits="1" branch="false"/>
<line number="220" hits="1" branch="false"/>
<line number="230" hits="5" branch="false"/>
<line number="232" hits="5" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="233" hits="0" branch="false"/>
<line number="235" hits="0" branch="false"/>
<line number="238" hits="5" branch="false"/>
<line number="239" hits="5" branch="false"/>
<line number="241" hits="5" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="242" hits="4" branch="false"/>
<line number="243" hits="4" branch="false"/>
<line number="244" hits="4" branch="false"/>
<line number="245" hits="1" branch="false"/>
<line number="248" hits="5" branch="false"/>
<line number="249" hits="5" branch="false"/>
<line number="250" hits="5" branch="false"/>
<line number="254" hits="22" branch="false"/>
<line number="255" hits="22" branch="true" condition-coverage="75% (3/4)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="256" hits="5" branch="false"/>
<line number="257" hits="5" branch="false"/>
<line number="258" hits="5" branch="false"/>
<line number="260" hits="22" branch="false"/>
<line number="264" hits="9" branch="false"/>
<line number="269" hits="1" branch="false"/>
<line number="270" hits="1" branch="false"/>
<line number="271" hits="1" branch="false"/>
<line number="275" hits="0" branch="false"/>
<line number="276" hits="0" branch="false"/>
<line number="277" hits="0" branch="false"/>
<line number="280" hits="1" branch="false"/>
<line number="281" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="282" hits="1" branch="false"/>
<line number="284" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="285" hits="1" branch="false"/>
<line number="286" hits="1" branch="false"/>
<line number="288" hits="0" branch="false"/>
<line number="291" hits="1" branch="false"/>
<line number="295" hits="0" branch="false"/>
<line number="296" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="297" hits="0" branch="false"/>
<line number="298" hits="0" branch="false"/>
<line number="299" hits="0" branch="false"/>
<line number="300" hits="0" branch="false"/>
<line number="301" hits="0" branch="false"/>
<line number="302" hits="0" branch="false"/>
<line number="305" hits="0" branch="false"/>
<line number="314" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.session.mgt.ServletContainerSessionManager" filename="org/apache/shiro/web/session/mgt/ServletContainerSessionManager.java" line-rate="0.9629629629629629" branch-rate="0.9" complexity="2.0">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="60" hits="20" branch="false"/>
<line number="61" hits="20" branch="false"/>
</lines>
</method>
<method name="createSession" signature="(Ljavax/servlet/http/HttpSession;Ljava/lang/String;)Lorg/apache/shiro/session/Session;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="119" hits="3" branch="false"/>
</lines>
</method>
<method name="createSession" signature="(Lorg/apache/shiro/session/mgt/SessionContext;)Lorg/apache/shiro/session/Session;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="101" hits="3" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="102" hits="1" branch="false"/>
<line number="103" hits="1" branch="false"/>
<line number="106" hits="2" branch="false"/>
<line number="108" hits="2" branch="false"/>
<line number="113" hits="2" branch="false"/>
<line number="115" hits="2" branch="false"/>
</lines>
</method>
<method name="getHost" signature="(Lorg/apache/shiro/session/mgt/SessionContext;)Ljava/lang/String;" line-rate="1.0" branch-rate="0.75">
<lines>
<line number="86" hits="2" branch="false"/>
<line number="87" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="88" hits="1" branch="false"/>
<line number="89" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="90" hits="1" branch="false"/>
<line number="93" hits="2" branch="false"/>
</lines>
</method>
<method name="getSession" signature="(Lorg/apache/shiro/session/mgt/SessionKey;)Lorg/apache/shiro/session/Session;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="68" hits="3" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="69" hits="1" branch="false"/>
<line number="70" hits="1" branch="false"/>
<line number="73" hits="2" branch="false"/>
<line number="75" hits="2" branch="false"/>
<line number="77" hits="2" branch="false"/>
<line number="78" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="79" hits="1" branch="false"/>
<line number="82" hits="2" branch="false"/>
</lines>
</method>
<method name="isServletContainerSessions" signature="()Z" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="130" hits="0" branch="false"/>
</lines>
</method>
<method name="start" signature="(Lorg/apache/shiro/session/mgt/SessionContext;)Lorg/apache/shiro/session/Session;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="64" hits="3" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="60" hits="20" branch="false"/>
<line number="61" hits="20" branch="false"/>
<line number="64" hits="3" branch="false"/>
<line number="68" hits="3" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="69" hits="1" branch="false"/>
<line number="70" hits="1" branch="false"/>
<line number="73" hits="2" branch="false"/>
<line number="75" hits="2" branch="false"/>
<line number="77" hits="2" branch="false"/>
<line number="78" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="79" hits="1" branch="false"/>
<line number="82" hits="2" branch="false"/>
<line number="86" hits="2" branch="false"/>
<line number="87" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="88" hits="1" branch="false"/>
<line number="89" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="90" hits="1" branch="false"/>
<line number="93" hits="2" branch="false"/>
<line number="101" hits="3" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="102" hits="1" branch="false"/>
<line number="103" hits="1" branch="false"/>
<line number="106" hits="2" branch="false"/>
<line number="108" hits="2" branch="false"/>
<line number="113" hits="2" branch="false"/>
<line number="115" hits="2" branch="false"/>
<line number="119" hits="3" branch="false"/>
<line number="130" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.session.mgt.WebSessionContext" filename="org/apache/shiro/web/session/mgt/WebSessionContext.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.web.session.mgt.WebSessionKey" filename="org/apache/shiro/web/session/mgt/WebSessionKey.java" line-rate="0.8461538461538461" branch-rate="0.5" complexity="2.0">
<methods>
<method name="&lt;init&gt;" signature="(Ljava/io/Serializable;Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="49" hits="9" branch="false"/>
<line number="50" hits="9" branch="false"/>
<line number="51" hits="9" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V" line-rate="0.75" branch-rate="0.5">
<lines>
<line number="37" hits="11" branch="false"/>
<line number="38" hits="11" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="39" hits="0" branch="false"/>
<line number="41" hits="11" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="42" hits="0" branch="false"/>
<line number="44" hits="11" branch="false"/>
<line number="45" hits="11" branch="false"/>
<line number="46" hits="11" branch="false"/>
</lines>
</method>
<method name="getServletRequest" signature="()Ljavax/servlet/ServletRequest;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="54" hits="19" branch="false"/>
</lines>
</method>
<method name="getServletResponse" signature="()Ljavax/servlet/ServletResponse;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="58" hits="16" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="37" hits="11" branch="false"/>
<line number="38" hits="11" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="39" hits="0" branch="false"/>
<line number="41" hits="11" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="42" hits="0" branch="false"/>
<line number="44" hits="11" branch="false"/>
<line number="45" hits="11" branch="false"/>
<line number="46" hits="11" branch="false"/>
<line number="49" hits="9" branch="false"/>
<line number="50" hits="9" branch="false"/>
<line number="51" hits="9" branch="false"/>
<line number="54" hits="19" branch="false"/>
<line number="58" hits="16" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.session.mgt.WebSessionManager" filename="org/apache/shiro/web/session/mgt/WebSessionManager.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.web.subject" line-rate="0.5909090909090909" branch-rate="0.4" complexity="1.5714285714285714">
<classes>
<class name="org.apache.shiro.web.subject.WebSubject" filename="org/apache/shiro/web/subject/WebSubject.java" line-rate="1.0" branch-rate="1.0" complexity="2.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.web.subject.WebSubject$Builder" filename="org/apache/shiro/web/subject/WebSubject.java" line-rate="0.5909090909090909" branch-rate="0.4" complexity="2.0">
<methods>
<method name="&lt;init&gt;" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="71" hits="0" branch="false"/>
<line number="72" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/mgt/SecurityManager;Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;)V" line-rate="0.75" branch-rate="0.5">
<lines>
<line number="86" hits="5" branch="false"/>
<line number="87" hits="5" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="88" hits="0" branch="false"/>
<line number="90" hits="5" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="91" hits="0" branch="false"/>
<line number="93" hits="5" branch="false"/>
<line number="94" hits="5" branch="false"/>
<line number="95" hits="5" branch="false"/>
</lines>
</method>
<method name="buildWebSubject" signature="()Lorg/apache/shiro/web/subject/WebSubject;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="148" hits="0" branch="false"/>
<line number="149" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="150" hits="0" branch="false"/>
<line number="153" hits="0" branch="false"/>
<line number="155" hits="0" branch="false"/>
</lines>
</method>
<method name="newSubjectContextInstance" signature="()Lorg/apache/shiro/subject/SubjectContext;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="107" hits="5" branch="false"/>
</lines>
</method>
<method name="setRequest" signature="(Ljavax/servlet/ServletRequest;)Lorg/apache/shiro/web/subject/WebSubject$Builder;" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="118" hits="5" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="119" hits="5" branch="false"/>
<line number="121" hits="5" branch="false"/>
</lines>
</method>
<method name="setResponse" signature="(Ljavax/servlet/ServletResponse;)Lorg/apache/shiro/web/subject/WebSubject$Builder;" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="133" hits="5" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="134" hits="5" branch="false"/>
<line number="136" hits="5" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="71" hits="0" branch="false"/>
<line number="72" hits="0" branch="false"/>
<line number="86" hits="5" branch="false"/>
<line number="87" hits="5" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="88" hits="0" branch="false"/>
<line number="90" hits="5" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="91" hits="0" branch="false"/>
<line number="93" hits="5" branch="false"/>
<line number="94" hits="5" branch="false"/>
<line number="95" hits="5" branch="false"/>
<line number="107" hits="5" branch="false"/>
<line number="118" hits="5" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="119" hits="5" branch="false"/>
<line number="121" hits="5" branch="false"/>
<line number="133" hits="5" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="134" hits="5" branch="false"/>
<line number="136" hits="5" branch="false"/>
<line number="148" hits="0" branch="false"/>
<line number="149" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="150" hits="0" branch="false"/>
<line number="153" hits="0" branch="false"/>
<line number="155" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.subject.WebSubjectContext" filename="org/apache/shiro/web/subject/WebSubjectContext.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.web.subject.support" line-rate="0.9387755102040817" branch-rate="0.5909090909090909" complexity="1.6666666666666667">
<classes>
<class name="org.apache.shiro.web.subject.support.DefaultWebSubjectContext" filename="org/apache/shiro/web/subject/support/DefaultWebSubjectContext.java" line-rate="1.0" branch-rate="0.625" complexity="1.8888888888888888">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="39" hits="1" branch="false"/>
<line number="40" hits="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="42" hits="9" branch="false"/>
<line number="43" hits="9" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/web/subject/WebSubjectContext;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="46" hits="6" branch="false"/>
<line number="47" hits="6" branch="false"/>
</lines>
</method>
<method name="getServletRequest" signature="()Ljavax/servlet/ServletRequest;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="62" hits="49" branch="false"/>
</lines>
</method>
<method name="getServletResponse" signature="()Ljavax/servlet/ServletResponse;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="87" hits="35" branch="false"/>
</lines>
</method>
<method name="resolveHost" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="51" hits="6" branch="false"/>
<line number="52" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="53" hits="6" branch="false"/>
<line number="54" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="55" hits="6" branch="false"/>
<line number="58" hits="6" branch="false"/>
</lines>
</method>
<method name="resolveServletRequest" signature="()Ljavax/servlet/ServletRequest;" line-rate="1.0" branch-rate="0.75">
<lines>
<line number="73" hits="20" branch="false"/>
<line number="76" hits="20" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="77" hits="2" branch="false"/>
<line number="78" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="79" hits="2" branch="false"/>
<line number="83" hits="20" branch="false"/>
</lines>
</method>
<method name="resolveServletResponse" signature="()Ljavax/servlet/ServletResponse;" line-rate="1.0" branch-rate="0.75">
<lines>
<line number="98" hits="6" branch="false"/>
<line number="101" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="102" hits="1" branch="false"/>
<line number="103" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="104" hits="1" branch="false"/>
<line number="108" hits="6" branch="false"/>
</lines>
</method>
<method name="setServletRequest" signature="(Ljavax/servlet/ServletRequest;)V" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="66" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="67" hits="8" branch="false"/>
<line number="69" hits="8" branch="false"/>
</lines>
</method>
<method name="setServletResponse" signature="(Ljavax/servlet/ServletResponse;)V" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="91" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="92" hits="8" branch="false"/>
<line number="94" hits="8" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="39" hits="1" branch="false"/>
<line number="40" hits="1" branch="false"/>
<line number="42" hits="9" branch="false"/>
<line number="43" hits="9" branch="false"/>
<line number="46" hits="6" branch="false"/>
<line number="47" hits="6" branch="false"/>
<line number="51" hits="6" branch="false"/>
<line number="52" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="53" hits="6" branch="false"/>
<line number="54" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="55" hits="6" branch="false"/>
<line number="58" hits="6" branch="false"/>
<line number="62" hits="49" branch="false"/>
<line number="66" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="67" hits="8" branch="false"/>
<line number="69" hits="8" branch="false"/>
<line number="73" hits="20" branch="false"/>
<line number="76" hits="20" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="77" hits="2" branch="false"/>
<line number="78" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="79" hits="2" branch="false"/>
<line number="83" hits="20" branch="false"/>
<line number="87" hits="35" branch="false"/>
<line number="91" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="92" hits="8" branch="false"/>
<line number="94" hits="8" branch="false"/>
<line number="98" hits="6" branch="false"/>
<line number="101" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="102" hits="1" branch="false"/>
<line number="103" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="104" hits="1" branch="false"/>
<line number="108" hits="6" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.subject.support.WebDelegatingSubject" filename="org/apache/shiro/web/subject/support/WebDelegatingSubject.java" line-rate="0.8235294117647058" branch-rate="0.5" complexity="1.3333333333333333">
<methods>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/subject/PrincipalCollection;ZLjava/lang/String;Lorg/apache/shiro/session/Session;Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Lorg/apache/shiro/mgt/SecurityManager;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="52" hits="0" branch="false"/>
<line number="53" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/subject/PrincipalCollection;ZLjava/lang/String;Lorg/apache/shiro/session/Session;ZLjavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Lorg/apache/shiro/mgt/SecurityManager;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="60" hits="6" branch="false"/>
<line number="61" hits="6" branch="false"/>
<line number="62" hits="6" branch="false"/>
<line number="63" hits="6" branch="false"/>
</lines>
</method>
<method name="createSessionContext" signature="()Lorg/apache/shiro/session/mgt/SessionContext;" line-rate="0.8571428571428571" branch-rate="0.5">
<lines>
<line number="94" hits="3" branch="false"/>
<line number="95" hits="3" branch="false"/>
<line number="96" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="97" hits="0" branch="false"/>
<line number="99" hits="3" branch="false"/>
<line number="100" hits="3" branch="false"/>
<line number="101" hits="3" branch="false"/>
</lines>
</method>
<method name="getServletRequest" signature="()Ljavax/servlet/ServletRequest;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="66" hits="12" branch="false"/>
</lines>
</method>
<method name="getServletResponse" signature="()Ljavax/servlet/ServletResponse;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="70" hits="3" branch="false"/>
</lines>
</method>
<method name="isSessionCreationEnabled" signature="()Z" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="88" hits="3" branch="false"/>
<line number="89" hits="3" branch="true" condition-coverage="50% (2/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
</lines>
</method>
</methods>
<lines>
<line number="52" hits="0" branch="false"/>
<line number="53" hits="0" branch="false"/>
<line number="60" hits="6" branch="false"/>
<line number="61" hits="6" branch="false"/>
<line number="62" hits="6" branch="false"/>
<line number="63" hits="6" branch="false"/>
<line number="66" hits="12" branch="false"/>
<line number="70" hits="3" branch="false"/>
<line number="88" hits="3" branch="false"/>
<line number="89" hits="3" branch="true" condition-coverage="50% (2/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="94" hits="3" branch="false"/>
<line number="95" hits="3" branch="false"/>
<line number="96" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="97" hits="0" branch="false"/>
<line number="99" hits="3" branch="false"/>
<line number="100" hits="3" branch="false"/>
<line number="101" hits="3" branch="false"/>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.web.tags" line-rate="0.0" branch-rate="0.0" complexity="2.25">
<classes>
<class name="org.apache.shiro.web.tags.AuthenticatedTag" filename="org/apache/shiro/web/tags/AuthenticatedTag.java" line-rate="0.0" branch-rate="0.0" complexity="6.0">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="45" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="41" hits="0" branch="false"/>
</lines>
</method>
<method name="onDoStartTag" signature="()I" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="48" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="49" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="50" hits="0" branch="false"/>
<line number="52" hits="0" branch="false"/>
<line number="54" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="55" hits="0" branch="false"/>
<line number="57" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="41" hits="0" branch="false"/>
<line number="45" hits="0" branch="false"/>
<line number="48" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="49" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="50" hits="0" branch="false"/>
<line number="52" hits="0" branch="false"/>
<line number="54" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="55" hits="0" branch="false"/>
<line number="57" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.tags.GuestTag" filename="org/apache/shiro/web/tags/GuestTag.java" line-rate="0.0" branch-rate="0.0" complexity="6.0">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="41" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="37" hits="0" branch="false"/>
</lines>
</method>
<method name="onDoStartTag" signature="()I" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="44" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="45" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="46" hits="0" branch="false"/>
<line number="49" hits="0" branch="false"/>
<line number="51" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="52" hits="0" branch="false"/>
<line number="55" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="37" hits="0" branch="false"/>
<line number="41" hits="0" branch="false"/>
<line number="44" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="45" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="46" hits="0" branch="false"/>
<line number="49" hits="0" branch="false"/>
<line number="51" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="52" hits="0" branch="false"/>
<line number="55" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.tags.HasAnyRolesTag" filename="org/apache/shiro/web/tags/HasAnyRolesTag.java" line-rate="0.0" branch-rate="0.0" complexity="2.5">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="36" hits="0" branch="false"/>
<line number="37" hits="0" branch="false"/>
</lines>
</method>
<method name="showTagBody" signature="(Ljava/lang/String;)Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="40" hits="0" branch="false"/>
<line number="42" hits="0" branch="false"/>
<line number="44" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="47" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="49" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="50" hits="0" branch="false"/>
<line number="51" hits="0" branch="false"/>
<line number="58" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="36" hits="0" branch="false"/>
<line number="37" hits="0" branch="false"/>
<line number="40" hits="0" branch="false"/>
<line number="42" hits="0" branch="false"/>
<line number="44" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="47" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="49" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="50" hits="0" branch="false"/>
<line number="51" hits="0" branch="false"/>
<line number="58" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.tags.HasPermissionTag" filename="org/apache/shiro/web/tags/HasPermissionTag.java" line-rate="0.0" branch-rate="1.0" complexity="1.0">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="28" hits="0" branch="false"/>
<line number="29" hits="0" branch="false"/>
</lines>
</method>
<method name="showTagBody" signature="(Ljava/lang/String;)Z" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="32" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="28" hits="0" branch="false"/>
<line number="29" hits="0" branch="false"/>
<line number="32" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.tags.HasRoleTag" filename="org/apache/shiro/web/tags/HasRoleTag.java" line-rate="0.0" branch-rate="0.0" complexity="1.5">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="28" hits="0" branch="false"/>
<line number="29" hits="0" branch="false"/>
</lines>
</method>
<method name="showTagBody" signature="(Ljava/lang/String;)Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="32" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
</lines>
</method>
</methods>
<lines>
<line number="28" hits="0" branch="false"/>
<line number="29" hits="0" branch="false"/>
<line number="32" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
</lines>
</class>
<class name="org.apache.shiro.web.tags.LacksPermissionTag" filename="org/apache/shiro/web/tags/LacksPermissionTag.java" line-rate="0.0" branch-rate="0.0" complexity="1.0">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="28" hits="0" branch="false"/>
<line number="29" hits="0" branch="false"/>
</lines>
</method>
<method name="showTagBody" signature="(Ljava/lang/String;)Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="32" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
</lines>
</method>
</methods>
<lines>
<line number="28" hits="0" branch="false"/>
<line number="29" hits="0" branch="false"/>
<line number="32" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
</lines>
</class>
<class name="org.apache.shiro.web.tags.LacksRoleTag" filename="org/apache/shiro/web/tags/LacksRoleTag.java" line-rate="0.0" branch-rate="0.0" complexity="1.5">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="28" hits="0" branch="false"/>
<line number="29" hits="0" branch="false"/>
</lines>
</method>
<method name="showTagBody" signature="(Ljava/lang/String;)Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="32" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="33" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
</lines>
</method>
</methods>
<lines>
<line number="28" hits="0" branch="false"/>
<line number="29" hits="0" branch="false"/>
<line number="32" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="33" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
</lines>
</class>
<class name="org.apache.shiro.web.tags.NotAuthenticatedTag" filename="org/apache/shiro/web/tags/NotAuthenticatedTag.java" line-rate="0.0" branch-rate="0.0" complexity="6.0">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="40" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="36" hits="0" branch="false"/>
</lines>
</method>
<method name="onDoStartTag" signature="()I" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="43" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="44" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="45" hits="0" branch="false"/>
<line number="47" hits="0" branch="false"/>
<line number="49" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="50" hits="0" branch="false"/>
<line number="52" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="36" hits="0" branch="false"/>
<line number="40" hits="0" branch="false"/>
<line number="43" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="44" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="45" hits="0" branch="false"/>
<line number="47" hits="0" branch="false"/>
<line number="49" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="50" hits="0" branch="false"/>
<line number="52" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.tags.PermissionTag" filename="org/apache/shiro/web/tags/PermissionTag.java" line-rate="0.0" branch-rate="0.0" complexity="1.8571428571428572">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="31" hits="0" branch="false"/>
<line number="33" hits="0" branch="false"/>
<line number="34" hits="0" branch="false"/>
</lines>
</method>
<method name="getName" signature="()Ljava/lang/String;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="37" hits="0" branch="false"/>
</lines>
</method>
<method name="isPermitted" signature="(Ljava/lang/String;)Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="66" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
</lines>
</method>
<method name="onDoStartTag" signature="()I" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="55" hits="0" branch="false"/>
<line number="57" hits="0" branch="false"/>
<line number="58" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="59" hits="0" branch="false"/>
<line number="61" hits="0" branch="false"/>
</lines>
</method>
<method name="setName" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="41" hits="0" branch="false"/>
<line number="42" hits="0" branch="false"/>
</lines>
</method>
<method name="verifyAttributes" signature="()V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="45" hits="0" branch="false"/>
<line number="47" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="48" hits="0" branch="false"/>
<line number="49" hits="0" branch="false"/>
<line number="51" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="31" hits="0" branch="false"/>
<line number="33" hits="0" branch="false"/>
<line number="34" hits="0" branch="false"/>
<line number="37" hits="0" branch="false"/>
<line number="41" hits="0" branch="false"/>
<line number="42" hits="0" branch="false"/>
<line number="45" hits="0" branch="false"/>
<line number="47" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="48" hits="0" branch="false"/>
<line number="49" hits="0" branch="false"/>
<line number="51" hits="0" branch="false"/>
<line number="55" hits="0" branch="false"/>
<line number="57" hits="0" branch="false"/>
<line number="58" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="59" hits="0" branch="false"/>
<line number="61" hits="0" branch="false"/>
<line number="66" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
</lines>
</class>
<class name="org.apache.shiro.web.tags.PrincipalTag" filename="org/apache/shiro/web/tags/PrincipalTag.java" line-rate="0.0" branch-rate="0.0" complexity="2.888888888888889">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="56" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="45" hits="0" branch="false"/>
</lines>
</method>
<method name="getDefaultValue" signature="()Ljava/lang/String;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="103" hits="0" branch="false"/>
</lines>
</method>
<method name="getPrincipalFromClassName" signature="()Ljava/lang/Object;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="156" hits="0" branch="false"/>
<line number="159" hits="0" branch="false"/>
<line number="160" hits="0" branch="false"/>
<line number="161" hits="0" branch="false"/>
<line number="162" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="163" hits="0" branch="false"/>
<line number="165" hits="0" branch="false"/>
<line number="166" hits="0" branch="false"/>
</lines>
</method>
<method name="getPrincipalProperty" signature="(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/String;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="171" hits="0" branch="false"/>
<line number="174" hits="0" branch="false"/>
<line number="177" hits="0" branch="false"/>
<line number="178" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="179" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="180" hits="0" branch="false"/>
<line number="181" hits="0" branch="false"/>
<line number="182" hits="0" branch="false"/>
<line number="183" hits="0" branch="false"/>
<line number="187" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="188" hits="0" branch="false"/>
<line number="189" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="190" hits="0" branch="false"/>
<line number="192" hits="0" branch="false"/>
<line number="195" hits="0" branch="false"/>
<line number="196" hits="0" branch="false"/>
<line number="197" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="198" hits="0" branch="false"/>
<line number="200" hits="0" branch="false"/>
<line number="201" hits="0" branch="false"/>
<line number="203" hits="0" branch="false"/>
</lines>
</method>
<method name="getProperty" signature="()Ljava/lang/String;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="93" hits="0" branch="false"/>
</lines>
</method>
<method name="getType" signature="()Ljava/lang/String;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="83" hits="0" branch="false"/>
</lines>
</method>
<method name="onDoStartTag" signature="()I" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="118" hits="0" branch="false"/>
<line number="120" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="125" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="126" hits="0" branch="false"/>
<line number="128" hits="0" branch="false"/>
<line number="132" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="133" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="134" hits="0" branch="false"/>
<line number="136" hits="0" branch="false"/>
<line number="143" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="145" hits="0" branch="false"/>
<line number="146" hits="0" branch="false"/>
<line number="147" hits="0" branch="false"/>
<line number="148" hits="0" branch="false"/>
<line number="151" hits="0" branch="false"/>
</lines>
</method>
<method name="setDefaultValue" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="108" hits="0" branch="false"/>
<line number="109" hits="0" branch="false"/>
</lines>
</method>
<method name="setProperty" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="98" hits="0" branch="false"/>
<line number="99" hits="0" branch="false"/>
</lines>
</method>
<method name="setType" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="88" hits="0" branch="false"/>
<line number="89" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="45" hits="0" branch="false"/>
<line number="56" hits="0" branch="false"/>
<line number="83" hits="0" branch="false"/>
<line number="88" hits="0" branch="false"/>
<line number="89" hits="0" branch="false"/>
<line number="93" hits="0" branch="false"/>
<line number="98" hits="0" branch="false"/>
<line number="99" hits="0" branch="false"/>
<line number="103" hits="0" branch="false"/>
<line number="108" hits="0" branch="false"/>
<line number="109" hits="0" branch="false"/>
<line number="118" hits="0" branch="false"/>
<line number="120" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="125" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="126" hits="0" branch="false"/>
<line number="128" hits="0" branch="false"/>
<line number="132" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="133" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="134" hits="0" branch="false"/>
<line number="136" hits="0" branch="false"/>
<line number="143" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="145" hits="0" branch="false"/>
<line number="146" hits="0" branch="false"/>
<line number="147" hits="0" branch="false"/>
<line number="148" hits="0" branch="false"/>
<line number="151" hits="0" branch="false"/>
<line number="156" hits="0" branch="false"/>
<line number="159" hits="0" branch="false"/>
<line number="160" hits="0" branch="false"/>
<line number="161" hits="0" branch="false"/>
<line number="162" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="163" hits="0" branch="false"/>
<line number="165" hits="0" branch="false"/>
<line number="166" hits="0" branch="false"/>
<line number="171" hits="0" branch="false"/>
<line number="174" hits="0" branch="false"/>
<line number="177" hits="0" branch="false"/>
<line number="178" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="179" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="180" hits="0" branch="false"/>
<line number="181" hits="0" branch="false"/>
<line number="182" hits="0" branch="false"/>
<line number="183" hits="0" branch="false"/>
<line number="187" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="188" hits="0" branch="false"/>
<line number="189" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="190" hits="0" branch="false"/>
<line number="192" hits="0" branch="false"/>
<line number="195" hits="0" branch="false"/>
<line number="196" hits="0" branch="false"/>
<line number="197" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="198" hits="0" branch="false"/>
<line number="200" hits="0" branch="false"/>
<line number="201" hits="0" branch="false"/>
<line number="203" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.tags.RoleTag" filename="org/apache/shiro/web/tags/RoleTag.java" line-rate="0.0" branch-rate="0.0" complexity="1.4">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="31" hits="0" branch="false"/>
<line number="33" hits="0" branch="false"/>
<line number="34" hits="0" branch="false"/>
</lines>
</method>
<method name="getName" signature="()Ljava/lang/String;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="37" hits="0" branch="false"/>
</lines>
</method>
<method name="onDoStartTag" signature="()I" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="45" hits="0" branch="false"/>
<line number="46" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="47" hits="0" branch="false"/>
<line number="49" hits="0" branch="false"/>
</lines>
</method>
<method name="setName" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="41" hits="0" branch="false"/>
<line number="42" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="31" hits="0" branch="false"/>
<line number="33" hits="0" branch="false"/>
<line number="34" hits="0" branch="false"/>
<line number="37" hits="0" branch="false"/>
<line number="41" hits="0" branch="false"/>
<line number="42" hits="0" branch="false"/>
<line number="45" hits="0" branch="false"/>
<line number="46" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="47" hits="0" branch="false"/>
<line number="49" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.tags.SecureTag" filename="org/apache/shiro/web/tags/SecureTag.java" line-rate="0.0" branch-rate="1.0" complexity="1.0">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="37" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="39" hits="0" branch="false"/>
<line number="40" hits="0" branch="false"/>
</lines>
</method>
<method name="doStartTag" signature="()I" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="51" hits="0" branch="false"/>
<line number="53" hits="0" branch="false"/>
</lines>
</method>
<method name="getSubject" signature="()Lorg/apache/shiro/subject/Subject;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="43" hits="0" branch="false"/>
</lines>
</method>
<method name="verifyAttributes" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="47" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="37" hits="0" branch="false"/>
<line number="39" hits="0" branch="false"/>
<line number="40" hits="0" branch="false"/>
<line number="43" hits="0" branch="false"/>
<line number="47" hits="0" branch="false"/>
<line number="51" hits="0" branch="false"/>
<line number="53" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.tags.UserTag" filename="org/apache/shiro/web/tags/UserTag.java" line-rate="0.0" branch-rate="0.0" complexity="6.0">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="45" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="41" hits="0" branch="false"/>
</lines>
</method>
<method name="onDoStartTag" signature="()I" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="48" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="49" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="50" hits="0" branch="false"/>
<line number="53" hits="0" branch="false"/>
<line number="55" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="56" hits="0" branch="false"/>
<line number="59" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="41" hits="0" branch="false"/>
<line number="45" hits="0" branch="false"/>
<line number="48" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="49" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="50" hits="0" branch="false"/>
<line number="53" hits="0" branch="false"/>
<line number="55" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="56" hits="0" branch="false"/>
<line number="59" hits="0" branch="false"/>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.web.util" line-rate="0.5550660792951542" branch-rate="0.4307692307692308" complexity="2.5185185185185186">
<classes>
<class name="org.apache.shiro.web.util.RedirectView" filename="org/apache/shiro/web/util/RedirectView.java" line-rate="0.5254237288135594" branch-rate="0.35" complexity="1.6428571428571428">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="84" hits="0" branch="false"/>
<line number="85" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="74" hits="3" branch="false"/>
<line number="76" hits="3" branch="false"/>
<line number="78" hits="3" branch="false"/>
<line number="95" hits="3" branch="false"/>
<line number="96" hits="3" branch="false"/>
<line number="97" hits="3" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Z)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="107" hits="0" branch="false"/>
<line number="108" hits="0" branch="false"/>
<line number="109" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;ZZ)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="120" hits="3" branch="false"/>
<line number="121" hits="3" branch="false"/>
<line number="122" hits="3" branch="false"/>
<line number="123" hits="3" branch="false"/>
</lines>
</method>
<method name="appendQueryProperties" signature="(Ljava/lang/StringBuilder;Ljava/util/Map;Ljava/lang/String;)V" line-rate="0.38095238095238093" branch-rate="0.2857142857142857">
<lines>
<line number="224" hits="3" branch="false"/>
<line number="225" hits="3" branch="false"/>
<line number="226" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="227" hits="0" branch="false"/>
<line number="228" hits="0" branch="false"/>
<line number="232" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="233" hits="3" branch="false"/>
<line number="235" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="236" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="237" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="238" hits="0" branch="false"/>
<line number="239" hits="0" branch="false"/>
<line number="241" hits="0" branch="false"/>
<line number="243" hits="0" branch="false"/>
<line number="244" hits="0" branch="false"/>
<line number="245" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="247" hits="0" branch="false"/>
<line number="248" hits="0" branch="false"/>
<line number="252" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="253" hits="0" branch="false"/>
<line number="255" hits="3" branch="false"/>
</lines>
</method>
<method name="getUrl" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="127" hits="9" branch="false"/>
</lines>
</method>
<method name="queryProperties" signature="(Ljava/util/Map;)Ljava/util/Map;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="283" hits="3" branch="false"/>
</lines>
</method>
<method name="renderMergedOutputModel" signature="(Ljava/util/Map;Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V" line-rate="0.8571428571428571" branch-rate="0.5">
<lines>
<line number="194" hits="3" branch="false"/>
<line number="195" hits="3" branch="true" condition-coverage="50% (2/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="197" hits="0" branch="false"/>
<line number="199" hits="3" branch="false"/>
<line number="201" hits="3" branch="false"/>
<line number="203" hits="3" branch="false"/>
<line number="204" hits="3" branch="false"/>
</lines>
</method>
<method name="sendRedirect" signature="(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Ljava/lang/String;Z)V" line-rate="0.6" branch-rate="0.5">
<lines>
<line number="298" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="300" hits="3" branch="false"/>
<line number="303" hits="0" branch="false"/>
<line number="304" hits="0" branch="false"/>
<line number="306" hits="3" branch="false"/>
</lines>
</method>
<method name="setContextRelative" signature="(Z)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="149" hits="0" branch="false"/>
<line number="150" hits="0" branch="false"/>
</lines>
</method>
<method name="setEncodingScheme" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="176" hits="0" branch="false"/>
<line number="177" hits="0" branch="false"/>
</lines>
</method>
<method name="setHttp10Compatible" signature="(Z)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="166" hits="0" branch="false"/>
<line number="167" hits="0" branch="false"/>
</lines>
</method>
<method name="setUrl" signature="(Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="131" hits="3" branch="false"/>
<line number="132" hits="3" branch="false"/>
</lines>
</method>
<method name="urlEncode" signature="(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="269" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="74" hits="3" branch="false"/>
<line number="76" hits="3" branch="false"/>
<line number="78" hits="3" branch="false"/>
<line number="84" hits="0" branch="false"/>
<line number="85" hits="0" branch="false"/>
<line number="95" hits="3" branch="false"/>
<line number="96" hits="3" branch="false"/>
<line number="97" hits="3" branch="false"/>
<line number="107" hits="0" branch="false"/>
<line number="108" hits="0" branch="false"/>
<line number="109" hits="0" branch="false"/>
<line number="120" hits="3" branch="false"/>
<line number="121" hits="3" branch="false"/>
<line number="122" hits="3" branch="false"/>
<line number="123" hits="3" branch="false"/>
<line number="127" hits="9" branch="false"/>
<line number="131" hits="3" branch="false"/>
<line number="132" hits="3" branch="false"/>
<line number="149" hits="0" branch="false"/>
<line number="150" hits="0" branch="false"/>
<line number="166" hits="0" branch="false"/>
<line number="167" hits="0" branch="false"/>
<line number="176" hits="0" branch="false"/>
<line number="177" hits="0" branch="false"/>
<line number="194" hits="3" branch="false"/>
<line number="195" hits="3" branch="true" condition-coverage="50% (2/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="197" hits="0" branch="false"/>
<line number="199" hits="3" branch="false"/>
<line number="201" hits="3" branch="false"/>
<line number="203" hits="3" branch="false"/>
<line number="204" hits="3" branch="false"/>
<line number="224" hits="3" branch="false"/>
<line number="225" hits="3" branch="false"/>
<line number="226" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="227" hits="0" branch="false"/>
<line number="228" hits="0" branch="false"/>
<line number="232" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="233" hits="3" branch="false"/>
<line number="235" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="236" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="237" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="238" hits="0" branch="false"/>
<line number="239" hits="0" branch="false"/>
<line number="241" hits="0" branch="false"/>
<line number="243" hits="0" branch="false"/>
<line number="244" hits="0" branch="false"/>
<line number="245" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="247" hits="0" branch="false"/>
<line number="248" hits="0" branch="false"/>
<line number="252" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="253" hits="0" branch="false"/>
<line number="255" hits="3" branch="false"/>
<line number="269" hits="0" branch="false"/>
<line number="283" hits="3" branch="false"/>
<line number="298" hits="3" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="300" hits="3" branch="false"/>
<line number="303" hits="0" branch="false"/>
<line number="304" hits="0" branch="false"/>
<line number="306" hits="3" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.util.RequestPairSource" filename="org/apache/shiro/web/util/RequestPairSource.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.web.util.SavedRequest" filename="org/apache/shiro/web/util/SavedRequest.java" line-rate="0.0" branch-rate="0.0" complexity="1.2">
<methods>
<method name="&lt;init&gt;" signature="(Ljavax/servlet/http/HttpServletRequest;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="43" hits="0" branch="false"/>
<line number="44" hits="0" branch="false"/>
<line number="45" hits="0" branch="false"/>
<line number="46" hits="0" branch="false"/>
<line number="47" hits="0" branch="false"/>
</lines>
</method>
<method name="getMethod" signature="()Ljava/lang/String;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="50" hits="0" branch="false"/>
</lines>
</method>
<method name="getQueryString" signature="()Ljava/lang/String;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="54" hits="0" branch="false"/>
</lines>
</method>
<method name="getRequestURI" signature="()Ljava/lang/String;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="58" hits="0" branch="false"/>
</lines>
</method>
<method name="getRequestUrl" signature="()Ljava/lang/String;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="62" hits="0" branch="false"/>
<line number="63" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="64" hits="0" branch="false"/>
<line number="66" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="43" hits="0" branch="false"/>
<line number="44" hits="0" branch="false"/>
<line number="45" hits="0" branch="false"/>
<line number="46" hits="0" branch="false"/>
<line number="47" hits="0" branch="false"/>
<line number="50" hits="0" branch="false"/>
<line number="54" hits="0" branch="false"/>
<line number="58" hits="0" branch="false"/>
<line number="62" hits="0" branch="false"/>
<line number="63" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="64" hits="0" branch="false"/>
<line number="66" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.web.util.WebUtils" filename="org/apache/shiro/web/util/WebUtils.java" line-rate="0.6089743589743589" branch-rate="0.4537037037037037" complexity="3.1818181818181817">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="54" hits="1" branch="false"/>
<line number="56" hits="1" branch="false"/>
<line number="57" hits="1" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="50" hits="0" branch="false"/>
</lines>
</method>
<method name="_isSessionCreationEnabled" signature="(Ljava/lang/Object;)Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="452" hits="12" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="453" hits="11" branch="false"/>
<line number="454" hits="11" branch="false"/>
<line number="456" hits="1" branch="false"/>
</lines>
</method>
<method name="_isSessionCreationEnabled" signature="(Ljavax/servlet/ServletRequest;)Z" line-rate="1.0" branch-rate="0.8333333333333334">
<lines>
<line number="471" hits="11" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="472" hits="11" branch="false"/>
<line number="473" hits="11" branch="true" condition-coverage="100% (4/4)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="474" hits="1" branch="false"/>
<line number="477" hits="10" branch="false"/>
</lines>
</method>
<method name="decodeAndCleanUriString" signature="(Ljavax/servlet/http/HttpServletRequest;Ljava/lang/String;)Ljava/lang/String;" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="232" hits="7" branch="false"/>
<line number="233" hits="7" branch="false"/>
<line number="234" hits="7" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
</lines>
</method>
<method name="decodeRequestString" signature="(Ljavax/servlet/http/HttpServletRequest;Ljava/lang/String;)Ljava/lang/String;" line-rate="0.3333333333333333" branch-rate="0.0">
<lines>
<line number="344" hits="14" branch="false"/>
<line number="346" hits="14" branch="false"/>
<line number="347" hits="0" branch="false"/>
<line number="348" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="349" hits="0" branch="false"/>
<line number="352" hits="0" branch="false"/>
</lines>
</method>
<method name="determineEncoding" signature="(Ljavax/servlet/http/HttpServletRequest;)Ljava/lang/String;" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="368" hits="14" branch="false"/>
<line number="369" hits="14" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="370" hits="14" branch="false"/>
<line number="372" hits="14" branch="false"/>
</lines>
</method>
<method name="getAndClearSavedRequest" signature="(Ljavax/servlet/ServletRequest;)Lorg/apache/shiro/web/util/SavedRequest;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="613" hits="0" branch="false"/>
<line number="614" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="615" hits="0" branch="false"/>
<line number="616" hits="0" branch="false"/>
<line number="617" hits="0" branch="false"/>
<line number="619" hits="0" branch="false"/>
</lines>
</method>
<method name="getCleanParam" signature="(Ljavax/servlet/ServletRequest;Ljava/lang/String;)Ljava/lang/String;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="601" hits="0" branch="false"/>
</lines>
</method>
<method name="getContextPath" signature="(Ljavax/servlet/http/HttpServletRequest;)Ljava/lang/String;" line-rate="1.0" branch-rate="0.75">
<lines>
<line number="247" hits="7" branch="false"/>
<line number="248" hits="7" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="249" hits="7" branch="false"/>
<line number="251" hits="7" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="253" hits="3" branch="false"/>
<line number="255" hits="7" branch="false"/>
</lines>
</method>
<method name="getHttpRequest" signature="(Ljava/lang/Object;)Ljavax/servlet/http/HttpServletRequest;" line-rate="0.75" branch-rate="0.5">
<lines>
<line number="412" hits="23" branch="false"/>
<line number="413" hits="23" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="414" hits="23" branch="false"/>
<line number="416" hits="0" branch="false"/>
</lines>
</method>
<method name="getHttpResponse" signature="(Ljava/lang/Object;)Ljavax/servlet/http/HttpServletResponse;" line-rate="0.75" branch-rate="0.5">
<lines>
<line number="420" hits="19" branch="false"/>
<line number="421" hits="19" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="422" hits="19" branch="false"/>
<line number="424" hits="0" branch="false"/>
</lines>
</method>
<method name="getPathWithinApplication" signature="(Ljavax/servlet/http/HttpServletRequest;)Ljava/lang/String;" line-rate="0.8333333333333334" branch-rate="0.5">
<lines>
<line number="111" hits="7" branch="false"/>
<line number="112" hits="7" branch="false"/>
<line number="113" hits="7" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="115" hits="7" branch="false"/>
<line number="116" hits="7" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="119" hits="0" branch="false"/>
</lines>
</method>
<method name="getRequest" signature="(Ljava/lang/Object;)Ljavax/servlet/ServletRequest;" line-rate="0.6666666666666666" branch-rate="0.5">
<lines>
<line number="398" hits="39" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="399" hits="39" branch="false"/>
<line number="401" hits="0" branch="false"/>
</lines>
</method>
<method name="getRequestUri" signature="(Ljavax/servlet/http/HttpServletRequest;)Ljava/lang/String;" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="136" hits="7" branch="false"/>
<line number="137" hits="7" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="138" hits="7" branch="false"/>
<line number="140" hits="7" branch="false"/>
</lines>
</method>
<method name="getRequiredWebEnvironment" signature="(Ljavax/servlet/ServletContext;)Lorg/apache/shiro/web/env/WebEnvironment;" line-rate="0.75" branch-rate="0.5">
<lines>
<line number="274" hits="1" branch="false"/>
<line number="275" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="276" hits="0" branch="false"/>
<line number="278" hits="1" branch="false"/>
</lines>
</method>
<method name="getResponse" signature="(Ljava/lang/Object;)Ljavax/servlet/ServletResponse;" line-rate="0.6666666666666666" branch-rate="0.5">
<lines>
<line number="405" hits="33" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="406" hits="33" branch="false"/>
<line number="408" hits="0" branch="false"/>
</lines>
</method>
<method name="getSavedRequest" signature="(Ljavax/servlet/ServletRequest;)Lorg/apache/shiro/web/util/SavedRequest;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="623" hits="0" branch="false"/>
<line number="624" hits="0" branch="false"/>
<line number="625" hits="0" branch="false"/>
<line number="626" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="627" hits="0" branch="false"/>
<line number="629" hits="0" branch="false"/>
</lines>
</method>
<method name="getWebEnvironment" signature="(Ljavax/servlet/ServletContext;)Lorg/apache/shiro/web/env/WebEnvironment;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="294" hits="1" branch="false"/>
</lines>
</method>
<method name="getWebEnvironment" signature="(Ljavax/servlet/ServletContext;Ljava/lang/String;)Lorg/apache/shiro/web/env/WebEnvironment;" line-rate="0.5714285714285714" branch-rate="0.5">
<lines>
<line number="306" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="307" hits="0" branch="false"/>
<line number="309" hits="1" branch="false"/>
<line number="310" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="311" hits="0" branch="false"/>
<line number="313" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="314" hits="0" branch="false"/>
<line number="316" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="317" hits="0" branch="false"/>
<line number="319" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="320" hits="0" branch="false"/>
<line number="322" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="323" hits="0" branch="false"/>
<line number="325" hits="1" branch="false"/>
</lines>
</method>
<method name="isHttp" signature="(Ljava/lang/Object;)Z" line-rate="1.0" branch-rate="0.75">
<lines>
<line number="394" hits="25" branch="true" condition-coverage="75% (3/4)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
</lines>
</method>
<method name="isHttp" signature="(Lorg/apache/shiro/web/util/RequestPairSource;)Z" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="434" hits="23" branch="false"/>
<line number="435" hits="23" branch="false"/>
<line number="436" hits="23" branch="true" condition-coverage="50% (2/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
</lines>
</method>
<method name="isTrue" signature="(Ljavax/servlet/ServletRequest;Ljava/lang/String;)Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="581" hits="0" branch="false"/>
<line number="582" hits="0" branch="true" condition-coverage="0% (0/16)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
<condition number="2" type="jump" coverage="0%"/>
<condition number="3" type="jump" coverage="0%"/>
<condition number="4" type="jump" coverage="0%"/>
<condition number="5" type="jump" coverage="0%"/>
<condition number="6" type="jump" coverage="0%"/>
<condition number="7" type="jump" coverage="0%"/>
</conditions>
</line>
</lines>
</method>
<method name="isWeb" signature="(Ljava/lang/Object;)Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="390" hits="16" branch="true" condition-coverage="100% (4/4)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="100%"/>
</conditions>
</line>
</lines>
</method>
<method name="isWeb" signature="(Lorg/apache/shiro/web/util/RequestPairSource;)Z" line-rate="1.0" branch-rate="0.75">
<lines>
<line number="428" hits="15" branch="false"/>
<line number="429" hits="15" branch="false"/>
<line number="430" hits="15" branch="true" condition-coverage="75% (3/4)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
</lines>
</method>
<method name="issueRedirect" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="538" hits="3" branch="false"/>
<line number="539" hits="3" branch="false"/>
</lines>
</method>
<method name="issueRedirect" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljava/lang/String;Ljava/util/Map;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="552" hits="0" branch="false"/>
<line number="553" hits="0" branch="false"/>
</lines>
</method>
<method name="issueRedirect" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljava/lang/String;Ljava/util/Map;Z)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="567" hits="0" branch="false"/>
<line number="568" hits="0" branch="false"/>
</lines>
</method>
<method name="issueRedirect" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljava/lang/String;Ljava/util/Map;ZZ)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="524" hits="3" branch="false"/>
<line number="525" hits="3" branch="false"/>
<line number="526" hits="3" branch="false"/>
</lines>
</method>
<method name="normalize" signature="(Ljava/lang/String;)Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="155" hits="10" branch="false"/>
</lines>
</method>
<method name="normalize" signature="(Ljava/lang/String;Z)Ljava/lang/String;" line-rate="0.75" branch-rate="0.6111111111111112">
<lines>
<line number="172" hits="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="173" hits="0" branch="false"/>
<line number="176" hits="10" branch="false"/>
<line number="178" hits="10" branch="true" condition-coverage="50% (2/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="179" hits="0" branch="false"/>
<line number="181" hits="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="182" hits="0" branch="false"/>
<line number="185" hits="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="186" hits="0" branch="false"/>
<line number="190" hits="10" branch="false"/>
<line number="191" hits="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="192" hits="10" branch="false"/>
<line number="193" hits="0" branch="false"/>
<line number="195" hits="0" branch="false"/>
<line number="199" hits="11" branch="false"/>
<line number="200" hits="11" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="201" hits="10" branch="false"/>
<line number="202" hits="1" branch="false"/>
<line number="204" hits="1" branch="false"/>
<line number="208" hits="11" branch="false"/>
<line number="209" hits="11" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="210" hits="10" branch="false"/>
<line number="211" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="212" hits="0" branch="false"/>
<line number="213" hits="1" branch="false"/>
<line number="214" hits="1" branch="false"/>
<line number="216" hits="1" branch="false"/>
<line number="219" hits="10" branch="false"/>
</lines>
</method>
<method name="redirectToSavedRequest" signature="(Ljavax/servlet/ServletRequest;Ljavax/servlet/ServletResponse;Ljava/lang/String;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="653" hits="0" branch="false"/>
<line number="654" hits="0" branch="false"/>
<line number="655" hits="0" branch="false"/>
<line number="656" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="657" hits="0" branch="false"/>
<line number="658" hits="0" branch="false"/>
<line number="661" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="662" hits="0" branch="false"/>
<line number="665" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="666" hits="0" branch="false"/>
<line number="671" hits="0" branch="false"/>
<line number="672" hits="0" branch="false"/>
</lines>
</method>
<method name="saveRequest" signature="(Ljavax/servlet/ServletRequest;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="605" hits="0" branch="false"/>
<line number="606" hits="0" branch="false"/>
<line number="607" hits="0" branch="false"/>
<line number="608" hits="0" branch="false"/>
<line number="609" hits="0" branch="false"/>
<line number="610" hits="0" branch="false"/>
</lines>
</method>
<method name="toHttp" signature="(Ljavax/servlet/ServletRequest;)Ljavax/servlet/http/HttpServletRequest;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="493" hits="18" branch="false"/>
</lines>
</method>
<method name="toHttp" signature="(Ljavax/servlet/ServletResponse;)Ljavax/servlet/http/HttpServletResponse;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="509" hits="10" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="50" hits="0" branch="false"/>
<line number="54" hits="1" branch="false"/>
<line number="56" hits="1" branch="false"/>
<line number="57" hits="1" branch="false"/>
<line number="111" hits="7" branch="false"/>
<line number="112" hits="7" branch="false"/>
<line number="113" hits="7" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="115" hits="7" branch="false"/>
<line number="116" hits="7" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="119" hits="0" branch="false"/>
<line number="136" hits="7" branch="false"/>
<line number="137" hits="7" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="138" hits="7" branch="false"/>
<line number="140" hits="7" branch="false"/>
<line number="155" hits="10" branch="false"/>
<line number="172" hits="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="173" hits="0" branch="false"/>
<line number="176" hits="10" branch="false"/>
<line number="178" hits="10" branch="true" condition-coverage="50% (2/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="179" hits="0" branch="false"/>
<line number="181" hits="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="182" hits="0" branch="false"/>
<line number="185" hits="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="186" hits="0" branch="false"/>
<line number="190" hits="10" branch="false"/>
<line number="191" hits="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="192" hits="10" branch="false"/>
<line number="193" hits="0" branch="false"/>
<line number="195" hits="0" branch="false"/>
<line number="199" hits="11" branch="false"/>
<line number="200" hits="11" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="201" hits="10" branch="false"/>
<line number="202" hits="1" branch="false"/>
<line number="204" hits="1" branch="false"/>
<line number="208" hits="11" branch="false"/>
<line number="209" hits="11" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="210" hits="10" branch="false"/>
<line number="211" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="212" hits="0" branch="false"/>
<line number="213" hits="1" branch="false"/>
<line number="214" hits="1" branch="false"/>
<line number="216" hits="1" branch="false"/>
<line number="219" hits="10" branch="false"/>
<line number="232" hits="7" branch="false"/>
<line number="233" hits="7" branch="false"/>
<line number="234" hits="7" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="247" hits="7" branch="false"/>
<line number="248" hits="7" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="249" hits="7" branch="false"/>
<line number="251" hits="7" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="253" hits="3" branch="false"/>
<line number="255" hits="7" branch="false"/>
<line number="274" hits="1" branch="false"/>
<line number="275" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="276" hits="0" branch="false"/>
<line number="278" hits="1" branch="false"/>
<line number="294" hits="1" branch="false"/>
<line number="306" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="307" hits="0" branch="false"/>
<line number="309" hits="1" branch="false"/>
<line number="310" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="311" hits="0" branch="false"/>
<line number="313" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="314" hits="0" branch="false"/>
<line number="316" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="317" hits="0" branch="false"/>
<line number="319" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="320" hits="0" branch="false"/>
<line number="322" hits="1" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="323" hits="0" branch="false"/>
<line number="325" hits="1" branch="false"/>
<line number="344" hits="14" branch="false"/>
<line number="346" hits="14" branch="false"/>
<line number="347" hits="0" branch="false"/>
<line number="348" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="349" hits="0" branch="false"/>
<line number="352" hits="0" branch="false"/>
<line number="368" hits="14" branch="false"/>
<line number="369" hits="14" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="370" hits="14" branch="false"/>
<line number="372" hits="14" branch="false"/>
<line number="390" hits="16" branch="true" condition-coverage="100% (4/4)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="394" hits="25" branch="true" condition-coverage="75% (3/4)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="398" hits="39" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="399" hits="39" branch="false"/>
<line number="401" hits="0" branch="false"/>
<line number="405" hits="33" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="406" hits="33" branch="false"/>
<line number="408" hits="0" branch="false"/>
<line number="412" hits="23" branch="false"/>
<line number="413" hits="23" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="414" hits="23" branch="false"/>
<line number="416" hits="0" branch="false"/>
<line number="420" hits="19" branch="false"/>
<line number="421" hits="19" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="422" hits="19" branch="false"/>
<line number="424" hits="0" branch="false"/>
<line number="428" hits="15" branch="false"/>
<line number="429" hits="15" branch="false"/>
<line number="430" hits="15" branch="true" condition-coverage="75% (3/4)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="434" hits="23" branch="false"/>
<line number="435" hits="23" branch="false"/>
<line number="436" hits="23" branch="true" condition-coverage="50% (2/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="452" hits="12" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="453" hits="11" branch="false"/>
<line number="454" hits="11" branch="false"/>
<line number="456" hits="1" branch="false"/>
<line number="471" hits="11" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="472" hits="11" branch="false"/>
<line number="473" hits="11" branch="true" condition-coverage="100% (4/4)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="474" hits="1" branch="false"/>
<line number="477" hits="10" branch="false"/>
<line number="493" hits="18" branch="false"/>
<line number="509" hits="10" branch="false"/>
<line number="524" hits="3" branch="false"/>
<line number="525" hits="3" branch="false"/>
<line number="526" hits="3" branch="false"/>
<line number="538" hits="3" branch="false"/>
<line number="539" hits="3" branch="false"/>
<line number="552" hits="0" branch="false"/>
<line number="553" hits="0" branch="false"/>
<line number="567" hits="0" branch="false"/>
<line number="568" hits="0" branch="false"/>
<line number="581" hits="0" branch="false"/>
<line number="582" hits="0" branch="true" condition-coverage="0% (0/16)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
<condition number="2" type="jump" coverage="0%"/>
<condition number="3" type="jump" coverage="0%"/>
<condition number="4" type="jump" coverage="0%"/>
<condition number="5" type="jump" coverage="0%"/>
<condition number="6" type="jump" coverage="0%"/>
<condition number="7" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="601" hits="0" branch="false"/>
<line number="605" hits="0" branch="false"/>
<line number="606" hits="0" branch="false"/>
<line number="607" hits="0" branch="false"/>
<line number="608" hits="0" branch="false"/>
<line number="609" hits="0" branch="false"/>
<line number="610" hits="0" branch="false"/>
<line number="613" hits="0" branch="false"/>
<line number="614" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="615" hits="0" branch="false"/>
<line number="616" hits="0" branch="false"/>
<line number="617" hits="0" branch="false"/>
<line number="619" hits="0" branch="false"/>
<line number="623" hits="0" branch="false"/>
<line number="624" hits="0" branch="false"/>
<line number="625" hits="0" branch="false"/>
<line number="626" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="627" hits="0" branch="false"/>
<line number="629" hits="0" branch="false"/>
<line number="653" hits="0" branch="false"/>
<line number="654" hits="0" branch="false"/>
<line number="655" hits="0" branch="false"/>
<line number="656" hits="0" branch="true" condition-coverage="0% (0/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="657" hits="0" branch="false"/>
<line number="658" hits="0" branch="false"/>
<line number="661" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="662" hits="0" branch="false"/>
<line number="665" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="666" hits="0" branch="false"/>
<line number="671" hits="0" branch="false"/>
<line number="672" hits="0" branch="false"/>
</lines>
</class>
</classes>
</package>
</packages>
</coverage>