blob: 3bb878e7f0a7db35a86f8feca38101c9dc58f3c9 [file] [log] [blame]
<?xml version="1.0"?>
<!DOCTYPE coverage SYSTEM "http://cobertura.sourceforge.net/xml/coverage-04.dtd">
<coverage line-rate="0.6090745607967907" branch-rate="0.46805258330785693" lines-covered="4403" lines-valid="7229" branches-covered="1531" branches-valid="3271" complexity="2.0665362035225048" version="1.9.4.1" timestamp="1467730567487">
<sources>
<source>--source</source>
<source>/Users/briandemers/dev/source/shiro-1.2.x/core/src/main/java</source>
</sources>
<packages>
<package name="org.apache.shiro" line-rate="0.8928571428571429" branch-rate="1.0" complexity="1.4444444444444444">
<classes>
<class name="org.apache.shiro.SecurityUtils" filename="org/apache/shiro/SecurityUtils.java" line-rate="0.9375" branch-rate="1.0" complexity="2.3333333333333335">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="31" hits="0" branch="false"/>
</lines>
</method>
<method name="getSecurityManager" signature="()Lorg/apache/shiro/mgt/SecurityManager;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="115" hits="94" branch="false"/>
<line number="116" hits="94" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="117" hits="72" branch="false"/>
<line number="119" hits="94" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="120" hits="10" branch="false"/>
<line number="121" hits="10" branch="false"/>
<line number="123" hits="10" branch="false"/>
<line number="125" hits="84" branch="false"/>
</lines>
</method>
<method name="getSubject" signature="()Lorg/apache/shiro/subject/Subject;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="54" hits="46" branch="false"/>
<line number="55" hits="46" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="56" hits="24" branch="false"/>
<line number="57" hits="24" branch="false"/>
<line number="59" hits="46" branch="false"/>
</lines>
</method>
<method name="setSecurityManager" signature="(Lorg/apache/shiro/mgt/SecurityManager;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="95" hits="70" branch="false"/>
<line number="96" hits="70" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="31" hits="0" branch="false"/>
<line number="54" hits="46" branch="false"/>
<line number="55" hits="46" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="56" hits="24" branch="false"/>
<line number="57" hits="24" branch="false"/>
<line number="59" hits="46" branch="false"/>
<line number="95" hits="70" branch="false"/>
<line number="96" hits="70" branch="false"/>
<line number="115" hits="94" branch="false"/>
<line number="116" hits="94" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="117" hits="72" branch="false"/>
<line number="119" hits="94" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="120" hits="10" branch="false"/>
<line number="121" hits="10" branch="false"/>
<line number="123" hits="10" branch="false"/>
<line number="125" hits="84" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.ShiroException" filename="org/apache/shiro/ShiroException.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="35" hits="22" branch="false"/>
<line number="36" hits="22" 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="44" hits="126" branch="false"/>
<line number="45" hits="126" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/lang/Throwable;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="63" hits="34" branch="false"/>
<line number="64" hits="34" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Throwable;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="53" hits="22" branch="false"/>
<line number="54" hits="22" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="35" hits="22" branch="false"/>
<line number="36" hits="22" branch="false"/>
<line number="44" hits="126" branch="false"/>
<line number="45" hits="126" branch="false"/>
<line number="53" hits="22" branch="false"/>
<line number="54" hits="22" branch="false"/>
<line number="63" hits="34" branch="false"/>
<line number="64" hits="34" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.UnavailableSecurityManagerException" filename="org/apache/shiro/UnavailableSecurityManagerException.java" line-rate="0.5" branch-rate="1.0" complexity="1.0">
<methods>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="30" hits="10" branch="false"/>
<line number="31" hits="10" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/lang/Throwable;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="34" hits="0" branch="false"/>
<line number="35" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="30" hits="10" branch="false"/>
<line number="31" hits="10" branch="false"/>
<line number="34" hits="0" branch="false"/>
<line number="35" hits="0" branch="false"/>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.aop" line-rate="0.34210526315789475" branch-rate="0.35714285714285715" complexity="1.4761904761904763">
<classes>
<class name="org.apache.shiro.aop.AnnotationHandler" filename="org/apache/shiro/aop/AnnotationHandler.java" line-rate="0.7" branch-rate="0.5" complexity="1.5">
<methods>
<method name="&lt;init&gt;" signature="(Ljava/lang/Class;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="45" hits="10" branch="false"/>
<line number="46" hits="10" branch="false"/>
<line number="47" hits="10" branch="false"/>
</lines>
</method>
<method name="getAnnotationClass" signature="()Ljava/lang/Class;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="81" hits="0" branch="false"/>
</lines>
</method>
<method name="getSubject" signature="()Lorg/apache/shiro/subject/Subject;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="57" hits="10" branch="false"/>
</lines>
</method>
<method name="setAnnotationClass" signature="(Ljava/lang/Class;)V" line-rate="0.6" branch-rate="0.5">
<lines>
<line number="68" hits="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="69" hits="0" branch="false"/>
<line number="70" hits="0" branch="false"/>
<line number="72" hits="10" branch="false"/>
<line number="73" hits="10" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="45" hits="10" branch="false"/>
<line number="46" hits="10" branch="false"/>
<line number="47" hits="10" branch="false"/>
<line number="57" hits="10" branch="false"/>
<line number="68" hits="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="69" hits="0" branch="false"/>
<line number="70" hits="0" branch="false"/>
<line number="72" hits="10" branch="false"/>
<line number="73" hits="10" branch="false"/>
<line number="81" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.aop.AnnotationMethodInterceptor" filename="org/apache/shiro/aop/AnnotationMethodInterceptor.java" line-rate="0.0" branch-rate="0.0" complexity="1.375">
<methods>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/aop/AnnotationHandler;)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/aop/AnnotationHandler;Lorg/apache/shiro/aop/AnnotationResolver;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="65" hits="0" 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="69" hits="0" branch="false"/>
<line number="70" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="71" hits="0" branch="false"/>
</lines>
</method>
<method name="getAnnotation" signature="(Lorg/apache/shiro/aop/MethodInvocation;)Ljava/lang/annotation/Annotation;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="148" hits="0" branch="false"/>
</lines>
</method>
<method name="getHandler" signature="()Lorg/apache/shiro/aop/AnnotationHandler;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="81" hits="0" branch="false"/>
</lines>
</method>
<method name="getResolver" signature="()Lorg/apache/shiro/aop/AnnotationResolver;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="105" hits="0" branch="false"/>
</lines>
</method>
<method name="setHandler" signature="(Lorg/apache/shiro/aop/AnnotationHandler;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="92" hits="0" branch="false"/>
<line number="93" hits="0" branch="false"/>
</lines>
</method>
<method name="setResolver" signature="(Lorg/apache/shiro/aop/AnnotationResolver;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="118" hits="0" branch="false"/>
<line number="119" hits="0" branch="false"/>
</lines>
</method>
<method name="supports" signature="(Lorg/apache/shiro/aop/MethodInvocation;)Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="134" 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="52" hits="0" branch="false"/>
<line number="53" hits="0" branch="false"/>
<line number="65" hits="0" 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="69" hits="0" branch="false"/>
<line number="70" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="71" hits="0" branch="false"/>
<line number="81" hits="0" branch="false"/>
<line number="92" hits="0" branch="false"/>
<line number="93" hits="0" branch="false"/>
<line number="105" hits="0" branch="false"/>
<line number="118" hits="0" branch="false"/>
<line number="119" hits="0" branch="false"/>
<line number="134" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="148" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.aop.AnnotationResolver" filename="org/apache/shiro/aop/AnnotationResolver.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.aop.DefaultAnnotationResolver" filename="org/apache/shiro/aop/DefaultAnnotationResolver.java" line-rate="0.6666666666666666" branch-rate="0.6666666666666666" complexity="6.0">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="41" hits="4" branch="false"/>
</lines>
</method>
<method name="getAnnotation" signature="(Lorg/apache/shiro/aop/MethodInvocation;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;" line-rate="0.625" branch-rate="0.6666666666666666">
<lines>
<line number="52" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="53" hits="0" branch="false"/>
<line number="55" hits="4" branch="false"/>
<line number="56" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="57" hits="0" branch="false"/>
<line number="58" hits="0" branch="false"/>
<line number="61" hits="4" branch="false"/>
<line number="62" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
</lines>
</method>
</methods>
<lines>
<line number="41" hits="4" branch="false"/>
<line number="52" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="53" hits="0" branch="false"/>
<line number="55" hits="4" branch="false"/>
<line number="56" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="57" hits="0" branch="false"/>
<line number="58" hits="0" branch="false"/>
<line number="61" hits="4" branch="false"/>
<line number="62" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
</lines>
</class>
<class name="org.apache.shiro.aop.MethodInterceptor" filename="org/apache/shiro/aop/MethodInterceptor.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.aop.MethodInterceptorSupport" filename="org/apache/shiro/aop/MethodInterceptorSupport.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="37" hits="0" branch="false"/>
<line number="38" 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="48" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="37" hits="0" branch="false"/>
<line number="38" hits="0" branch="false"/>
<line number="48" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.aop.MethodInvocation" filename="org/apache/shiro/aop/MethodInvocation.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.authc" line-rate="0.6344410876132931" branch-rate="0.35555555555555557" complexity="1.4179104477611941">
<classes>
<class name="org.apache.shiro.authc.AbstractAuthenticator" filename="org/apache/shiro/authc/AbstractAuthenticator.java" line-rate="0.8" branch-rate="0.7" complexity="2.6666666666666665">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="51" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="69" hits="114" branch="false"/>
<line number="70" hits="114" branch="false"/>
<line number="71" hits="114" branch="false"/>
</lines>
</method>
<method name="authenticate" signature="(Lorg/apache/shiro/authc/AuthenticationToken;)Lorg/apache/shiro/authc/AuthenticationInfo;" line-rate="0.8518518518518519" branch-rate="0.75">
<lines>
<line number="190" hits="56" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="191" hits="2" branch="false"/>
<line number="194" hits="54" branch="false"/>
<line number="198" hits="54" branch="false"/>
<line number="199" hits="40" 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="2" branch="false"/>
<line number="204" hits="16" branch="false"/>
<line number="205" hits="16" branch="false"/>
<line number="206" hits="16" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="207" hits="12" branch="false"/>
<line number="209" hits="16" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="212" hits="4" branch="false"/>
<line number="214" hits="4" branch="false"/>
<line number="215" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="216" hits="4" branch="false"/>
<line number="219" hits="16" branch="false"/>
<line number="220" hits="0" branch="false"/>
<line number="221" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="222" hits="0" branch="false"/>
<line number="225" hits="0" branch="false"/>
<line number="227" hits="16" branch="false"/>
<line number="230" hits="16" branch="false"/>
<line number="231" hits="38" branch="false"/>
<line number="233" hits="38" branch="false"/>
<line number="235" hits="38" branch="false"/>
<line number="237" hits="38" branch="false"/>
</lines>
</method>
<method name="getAuthenticationListeners" signature="()Ljava/util/Collection;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="102" hits="4" branch="false"/>
</lines>
</method>
<method name="notifyFailure" signature="(Lorg/apache/shiro/authc/AuthenticationToken;Lorg/apache/shiro/authc/AuthenticationException;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="137" hits="16" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="138" hits="2" branch="false"/>
<line number="139" hits="2" branch="false"/>
<line number="140" hits="16" branch="false"/>
</lines>
</method>
<method name="notifyLogout" signature="(Lorg/apache/shiro/subject/PrincipalCollection;)V" line-rate="0.5" branch-rate="0.5">
<lines>
<line number="152" hits="18" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="153" hits="0" branch="false"/>
<line number="154" hits="0" branch="false"/>
<line number="155" hits="18" branch="false"/>
</lines>
</method>
<method name="notifySuccess" signature="(Lorg/apache/shiro/authc/AuthenticationToken;Lorg/apache/shiro/authc/AuthenticationInfo;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="120" hits="38" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="121" hits="2" branch="false"/>
<line number="122" hits="2" branch="false"/>
<line number="123" hits="38" branch="false"/>
</lines>
</method>
<method name="onLogout" signature="(Lorg/apache/shiro/subject/PrincipalCollection;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="165" hits="18" branch="false"/>
<line number="166" hits="18" branch="false"/>
</lines>
</method>
<method name="setAuthenticationListeners" signature="(Ljava/util/Collection;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="86" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="87" hits="0" branch="false"/>
<line number="89" hits="0" branch="false"/>
<line number="91" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="51" hits="2" branch="false"/>
<line number="69" hits="114" branch="false"/>
<line number="70" hits="114" branch="false"/>
<line number="71" hits="114" branch="false"/>
<line number="86" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="87" hits="0" branch="false"/>
<line number="89" hits="0" branch="false"/>
<line number="91" hits="0" branch="false"/>
<line number="102" hits="4" branch="false"/>
<line number="120" hits="38" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="121" hits="2" branch="false"/>
<line number="122" hits="2" branch="false"/>
<line number="123" hits="38" branch="false"/>
<line number="137" hits="16" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="138" hits="2" branch="false"/>
<line number="139" hits="2" branch="false"/>
<line number="140" hits="16" branch="false"/>
<line number="152" hits="18" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="153" hits="0" branch="false"/>
<line number="154" hits="0" branch="false"/>
<line number="155" hits="18" branch="false"/>
<line number="165" hits="18" branch="false"/>
<line number="166" hits="18" branch="false"/>
<line number="190" hits="56" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="191" hits="2" branch="false"/>
<line number="194" hits="54" branch="false"/>
<line number="198" hits="54" branch="false"/>
<line number="199" hits="40" 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="2" branch="false"/>
<line number="204" hits="16" branch="false"/>
<line number="205" hits="16" branch="false"/>
<line number="206" hits="16" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="207" hits="12" branch="false"/>
<line number="209" hits="16" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="212" hits="4" branch="false"/>
<line number="214" hits="4" branch="false"/>
<line number="215" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="216" hits="4" branch="false"/>
<line number="219" hits="16" branch="false"/>
<line number="220" hits="0" branch="false"/>
<line number="221" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="222" hits="0" branch="false"/>
<line number="225" hits="0" branch="false"/>
<line number="227" hits="16" branch="false"/>
<line number="230" hits="16" branch="false"/>
<line number="231" hits="38" branch="false"/>
<line number="233" hits="38" branch="false"/>
<line number="235" hits="38" branch="false"/>
<line number="237" hits="38" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.authc.Account" filename="org/apache/shiro/authc/Account.java" line-rate="1.0" branch-rate="1.0" complexity="0.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.authc.AccountException" filename="org/apache/shiro/authc/AccountException.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="33" hits="8" branch="false"/>
<line number="34" hits="8" 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="42" hits="10" branch="false"/>
<line number="43" hits="10" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/lang/Throwable;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="61" hits="8" branch="false"/>
<line number="62" hits="8" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Throwable;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="51" hits="8" branch="false"/>
<line number="52" hits="8" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="33" hits="8" branch="false"/>
<line number="34" hits="8" branch="false"/>
<line number="42" hits="10" branch="false"/>
<line number="43" hits="10" branch="false"/>
<line number="51" hits="8" branch="false"/>
<line number="52" hits="8" branch="false"/>
<line number="61" hits="8" branch="false"/>
<line number="62" hits="8" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.authc.AuthenticationException" filename="org/apache/shiro/authc/AuthenticationException.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="36" hits="12" branch="false"/>
<line number="37" hits="12" 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="45" hits="36" branch="false"/>
<line number="46" hits="36" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/lang/Throwable;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="64" hits="20" branch="false"/>
<line number="65" hits="20" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Throwable;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="54" hits="12" branch="false"/>
<line number="55" hits="12" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="36" hits="12" branch="false"/>
<line number="37" hits="12" branch="false"/>
<line number="45" hits="36" branch="false"/>
<line number="46" hits="36" branch="false"/>
<line number="54" hits="12" branch="false"/>
<line number="55" hits="12" branch="false"/>
<line number="64" hits="20" branch="false"/>
<line number="65" hits="20" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.authc.AuthenticationInfo" filename="org/apache/shiro/authc/AuthenticationInfo.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.authc.AuthenticationListener" filename="org/apache/shiro/authc/AuthenticationListener.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.authc.AuthenticationToken" filename="org/apache/shiro/authc/AuthenticationToken.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.authc.Authenticator" filename="org/apache/shiro/authc/Authenticator.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.authc.ConcurrentAccessException" filename="org/apache/shiro/authc/ConcurrentAccessException.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="44" hits="2" branch="false"/>
<line number="45" hits="2" 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="53" hits="2" branch="false"/>
<line number="54" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/lang/Throwable;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="72" hits="2" branch="false"/>
<line number="73" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Throwable;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="62" hits="2" branch="false"/>
<line number="63" hits="2" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="44" hits="2" branch="false"/>
<line number="45" hits="2" branch="false"/>
<line number="53" hits="2" branch="false"/>
<line number="54" hits="2" branch="false"/>
<line number="62" hits="2" branch="false"/>
<line number="63" hits="2" branch="false"/>
<line number="72" hits="2" branch="false"/>
<line number="73" hits="2" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.authc.CredentialsException" filename="org/apache/shiro/authc/CredentialsException.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="33" hits="4" branch="false"/>
<line number="34" hits="4" 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="42" hits="12" branch="false"/>
<line number="43" hits="12" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/lang/Throwable;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="61" hits="4" branch="false"/>
<line number="62" hits="4" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Throwable;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="51" hits="4" branch="false"/>
<line number="52" hits="4" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="33" hits="4" branch="false"/>
<line number="34" hits="4" branch="false"/>
<line number="42" hits="12" branch="false"/>
<line number="43" hits="12" branch="false"/>
<line number="51" hits="4" branch="false"/>
<line number="52" hits="4" branch="false"/>
<line number="61" hits="4" branch="false"/>
<line number="62" hits="4" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.authc.DisabledAccountException" filename="org/apache/shiro/authc/DisabledAccountException.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="34" hits="2" branch="false"/>
<line number="35" hits="2" 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="43" hits="2" branch="false"/>
<line number="44" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/lang/Throwable;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="62" hits="2" branch="false"/>
<line number="63" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Throwable;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="52" hits="2" branch="false"/>
<line number="53" hits="2" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="34" hits="2" branch="false"/>
<line number="35" hits="2" branch="false"/>
<line number="43" hits="2" branch="false"/>
<line number="44" hits="2" branch="false"/>
<line number="52" hits="2" branch="false"/>
<line number="53" hits="2" branch="false"/>
<line number="62" hits="2" branch="false"/>
<line number="63" hits="2" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.authc.ExcessiveAttemptsException" filename="org/apache/shiro/authc/ExcessiveAttemptsException.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="36" hits="2" branch="false"/>
<line number="37" hits="2" 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="45" hits="2" branch="false"/>
<line number="46" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/lang/Throwable;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="64" hits="2" branch="false"/>
<line number="65" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Throwable;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="54" hits="2" branch="false"/>
<line number="55" hits="2" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="36" hits="2" branch="false"/>
<line number="37" hits="2" branch="false"/>
<line number="45" hits="2" branch="false"/>
<line number="46" hits="2" branch="false"/>
<line number="54" hits="2" branch="false"/>
<line number="55" hits="2" branch="false"/>
<line number="64" hits="2" branch="false"/>
<line number="65" hits="2" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.authc.ExpiredCredentialsException" filename="org/apache/shiro/authc/ExpiredCredentialsException.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="38" hits="2" branch="false"/>
<line number="39" hits="2" 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="47" hits="2" branch="false"/>
<line number="48" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/lang/Throwable;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="66" hits="2" branch="false"/>
<line number="67" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Throwable;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="56" hits="2" branch="false"/>
<line number="57" hits="2" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="38" hits="2" branch="false"/>
<line number="39" hits="2" branch="false"/>
<line number="47" hits="2" branch="false"/>
<line number="48" hits="2" branch="false"/>
<line number="56" hits="2" branch="false"/>
<line number="57" hits="2" branch="false"/>
<line number="66" hits="2" branch="false"/>
<line number="67" hits="2" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.authc.HostAuthenticationToken" filename="org/apache/shiro/authc/HostAuthenticationToken.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.authc.IncorrectCredentialsException" filename="org/apache/shiro/authc/IncorrectCredentialsException.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="40" hits="2" branch="false"/>
<line number="41" hits="2" 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="49" hits="10" branch="false"/>
<line number="50" hits="10" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/lang/Throwable;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="68" hits="2" branch="false"/>
<line number="69" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Throwable;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="58" hits="2" branch="false"/>
<line number="59" hits="2" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="40" hits="2" branch="false"/>
<line number="41" hits="2" branch="false"/>
<line number="49" hits="10" branch="false"/>
<line number="50" hits="10" branch="false"/>
<line number="58" hits="2" branch="false"/>
<line number="59" hits="2" branch="false"/>
<line number="68" hits="2" branch="false"/>
<line number="69" hits="2" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.authc.LockedAccountException" filename="org/apache/shiro/authc/LockedAccountException.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="38" hits="2" branch="false"/>
<line number="39" hits="2" 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="47" hits="2" branch="false"/>
<line number="48" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/lang/Throwable;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="66" hits="2" branch="false"/>
<line number="67" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Throwable;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="56" hits="2" branch="false"/>
<line number="57" hits="2" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="38" hits="2" branch="false"/>
<line number="39" hits="2" branch="false"/>
<line number="47" hits="2" branch="false"/>
<line number="48" hits="2" branch="false"/>
<line number="56" hits="2" branch="false"/>
<line number="57" hits="2" branch="false"/>
<line number="66" hits="2" branch="false"/>
<line number="67" hits="2" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.authc.LogoutAware" filename="org/apache/shiro/authc/LogoutAware.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.authc.MergableAuthenticationInfo" filename="org/apache/shiro/authc/MergableAuthenticationInfo.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.authc.RememberMeAuthenticationToken" filename="org/apache/shiro/authc/RememberMeAuthenticationToken.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.authc.SaltedAuthenticationInfo" filename="org/apache/shiro/authc/SaltedAuthenticationInfo.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.authc.SimpleAccount" filename="org/apache/shiro/authc/SimpleAccount.java" line-rate="0.28735632183908044" branch-rate="0.09090909090909091" complexity="1.3333333333333333">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="73" hits="0" branch="false"/>
<line number="74" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;)V" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="84" hits="80" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="85" hits="80" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;Ljava/util/Set;Ljava/util/Set;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="165" hits="0" branch="false"/>
<line number="166" hits="0" branch="false"/>
<line number="167" hits="0" branch="false"/>
<line number="168" hits="0" branch="false"/>
<line number="169" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Object;Ljava/lang/Object;Lorg/apache/shiro/util/ByteSource;Ljava/lang/String;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="99" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="101" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/util/Collection;Ljava/lang/Object;Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="112" hits="0" branch="false"/>
<line number="113" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/util/Collection;Ljava/lang/Object;Ljava/lang/String;Ljava/util/Set;Ljava/util/Set;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="182" hits="0" branch="false"/>
<line number="183" hits="0" branch="false"/>
<line number="184" hits="0" branch="false"/>
<line number="185" hits="0" branch="false"/>
<line number="186" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/subject/PrincipalCollection;Ljava/lang/Object;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="122" hits="80" branch="false"/>
<line number="123" hits="80" branch="false"/>
<line number="124" hits="80" branch="false"/>
<line number="125" hits="80" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/subject/PrincipalCollection;Ljava/lang/Object;Ljava/util/Set;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<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"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/subject/PrincipalCollection;Ljava/lang/Object;Ljava/util/Set;Ljava/util/Set;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="198" hits="0" branch="false"/>
<line number="199" hits="0" branch="false"/>
<line number="200" hits="0" branch="false"/>
<line number="201" hits="0" branch="false"/>
<line number="202" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/subject/PrincipalCollection;Ljava/lang/Object;Lorg/apache/shiro/util/ByteSource;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="137" hits="0" branch="false"/>
<line number="138" hits="0" branch="false"/>
<line number="139" hits="0" branch="false"/>
<line number="140" hits="0" branch="false"/>
</lines>
</method>
<method name="addObjectPermission" signature="(Lorg/apache/shiro/authz/Permission;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="377" hits="0" branch="false"/>
<line number="378" hits="0" branch="false"/>
</lines>
</method>
<method name="addObjectPermissions" signature="(Ljava/util/Collection;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="386" hits="48" branch="false"/>
<line number="387" hits="48" branch="false"/>
</lines>
</method>
<method name="addRole" signature="(Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="301" hits="76" branch="false"/>
<line number="302" hits="76" branch="false"/>
</lines>
</method>
<method name="addRole" signature="(Ljava/util/Collection;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="311" hits="0" branch="false"/>
<line number="312" hits="0" branch="false"/>
</lines>
</method>
<method name="addStringPermission" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="341" hits="0" branch="false"/>
<line number="342" hits="0" branch="false"/>
</lines>
</method>
<method name="addStringPermissions" signature="(Ljava/util/Collection;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="350" hits="0" branch="false"/>
<line number="351" 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="473" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="474" hits="0" branch="false"/>
<line number="476" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="477" hits="0" branch="false"/>
<line number="479" 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="481" hits="0" branch="false"/>
</lines>
</method>
<method name="getCredentials" signature="()Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="237" hits="20" branch="false"/>
</lines>
</method>
<method name="getCredentialsSalt" signature="()Lorg/apache/shiro/util/ByteSource;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="260" hits="2" branch="false"/>
</lines>
</method>
<method name="getObjectPermissions" signature="()Ljava/util/Collection;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="359" hits="12" branch="false"/>
</lines>
</method>
<method name="getPrincipals" signature="()Lorg/apache/shiro/subject/PrincipalCollection;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="215" hits="292" branch="false"/>
</lines>
</method>
<method name="getRoles" signature="()Ljava/util/Collection;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="281" hits="108" branch="false"/>
</lines>
</method>
<method name="getStringPermissions" signature="()Ljava/util/Collection;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="321" hits="12" branch="false"/>
</lines>
</method>
<method name="hashCode" signature="()I" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="461" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
</lines>
</method>
<method name="isCredentialsExpired" signature="()Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="414" hits="16" branch="false"/>
</lines>
</method>
<method name="isLocked" signature="()Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="395" hits="16" branch="false"/>
</lines>
</method>
<method name="merge" signature="(Lorg/apache/shiro/authc/AuthenticationInfo;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="439" hits="0" branch="false"/>
<line number="442" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="443" hits="0" branch="false"/>
<line number="444" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="445" hits="0" branch="false"/>
<line number="448" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="449" hits="0" branch="false"/>
<line number="452" hits="0" branch="false"/>
</lines>
</method>
<method name="setCredentials" signature="(Ljava/lang/Object;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="248" hits="74" branch="false"/>
<line number="249" hits="74" branch="false"/>
</lines>
</method>
<method name="setCredentialsExpired" signature="(Z)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="425" hits="0" branch="false"/>
<line number="426" hits="0" branch="false"/>
</lines>
</method>
<method name="setCredentialsSalt" signature="(Lorg/apache/shiro/util/ByteSource;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="272" hits="0" branch="false"/>
<line number="273" hits="0" branch="false"/>
</lines>
</method>
<method name="setLocked" signature="(Z)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="404" hits="0" branch="false"/>
<line number="405" hits="0" branch="false"/>
</lines>
</method>
<method name="setObjectPermissions" signature="(Ljava/util/Set;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="368" hits="0" branch="false"/>
<line number="369" hits="0" branch="false"/>
</lines>
</method>
<method name="setPrincipals" signature="(Lorg/apache/shiro/subject/PrincipalCollection;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="226" hits="2" branch="false"/>
<line number="227" hits="2" branch="false"/>
</lines>
</method>
<method name="setRoles" signature="(Ljava/util/Set;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="291" hits="22" branch="false"/>
<line number="292" hits="22" branch="false"/>
</lines>
</method>
<method name="setStringPermissions" signature="(Ljava/util/Set;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="332" hits="0" branch="false"/>
<line number="333" hits="0" branch="false"/>
</lines>
</method>
<method name="toString" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="491" hits="86" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
</lines>
</method>
</methods>
<lines>
<line number="73" hits="0" branch="false"/>
<line number="74" hits="0" branch="false"/>
<line number="84" hits="80" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="85" hits="80" branch="false"/>
<line number="99" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="101" hits="0" branch="false"/>
<line number="112" hits="0" branch="false"/>
<line number="113" hits="0" branch="false"/>
<line number="122" hits="80" branch="false"/>
<line number="123" hits="80" branch="false"/>
<line number="124" hits="80" branch="false"/>
<line number="125" hits="80" branch="false"/>
<line number="137" hits="0" branch="false"/>
<line number="138" hits="0" branch="false"/>
<line number="139" hits="0" branch="false"/>
<line number="140" 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="165" hits="0" branch="false"/>
<line number="166" hits="0" branch="false"/>
<line number="167" hits="0" branch="false"/>
<line number="168" hits="0" branch="false"/>
<line number="169" hits="0" branch="false"/>
<line number="182" hits="0" branch="false"/>
<line number="183" hits="0" branch="false"/>
<line number="184" hits="0" branch="false"/>
<line number="185" hits="0" branch="false"/>
<line number="186" hits="0" branch="false"/>
<line number="198" hits="0" branch="false"/>
<line number="199" hits="0" branch="false"/>
<line number="200" hits="0" branch="false"/>
<line number="201" hits="0" branch="false"/>
<line number="202" hits="0" branch="false"/>
<line number="215" hits="292" branch="false"/>
<line number="226" hits="2" branch="false"/>
<line number="227" hits="2" branch="false"/>
<line number="237" hits="20" branch="false"/>
<line number="248" hits="74" branch="false"/>
<line number="249" hits="74" branch="false"/>
<line number="260" hits="2" branch="false"/>
<line number="272" hits="0" branch="false"/>
<line number="273" hits="0" branch="false"/>
<line number="281" hits="108" branch="false"/>
<line number="291" hits="22" branch="false"/>
<line number="292" hits="22" branch="false"/>
<line number="301" hits="76" branch="false"/>
<line number="302" hits="76" branch="false"/>
<line number="311" hits="0" branch="false"/>
<line number="312" hits="0" branch="false"/>
<line number="321" hits="12" branch="false"/>
<line number="332" hits="0" branch="false"/>
<line number="333" hits="0" branch="false"/>
<line number="341" hits="0" branch="false"/>
<line number="342" hits="0" branch="false"/>
<line number="350" hits="0" branch="false"/>
<line number="351" hits="0" branch="false"/>
<line number="359" hits="12" branch="false"/>
<line number="368" hits="0" branch="false"/>
<line number="369" hits="0" branch="false"/>
<line number="377" hits="0" branch="false"/>
<line number="378" hits="0" branch="false"/>
<line number="386" hits="48" branch="false"/>
<line number="387" hits="48" branch="false"/>
<line number="395" hits="16" branch="false"/>
<line number="404" hits="0" branch="false"/>
<line number="405" hits="0" branch="false"/>
<line number="414" hits="16" branch="false"/>
<line number="425" hits="0" branch="false"/>
<line number="426" hits="0" branch="false"/>
<line number="439" hits="0" branch="false"/>
<line number="442" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="443" hits="0" branch="false"/>
<line number="444" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="445" hits="0" branch="false"/>
<line number="448" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="449" hits="0" branch="false"/>
<line number="452" hits="0" branch="false"/>
<line number="461" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="473" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="474" hits="0" branch="false"/>
<line number="476" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="477" hits="0" branch="false"/>
<line number="479" 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="481" hits="0" branch="false"/>
<line number="491" hits="86" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
</lines>
</class>
<class name="org.apache.shiro.authc.SimpleAuthenticationInfo" filename="org/apache/shiro/authc/SimpleAuthenticationInfo.java" line-rate="0.6721311475409836" branch-rate="0.35294117647058826" complexity="2.466666666666667">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="59" hits="10" branch="false"/>
<line number="60" hits="10" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="73" hits="58" branch="false"/>
<line number="74" hits="58" branch="false"/>
<line number="75" hits="58" branch="false"/>
<line number="76" hits="58" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Object;Ljava/lang/Object;Lorg/apache/shiro/util/ByteSource;Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="92" hits="2" branch="false"/>
<line number="93" hits="2" branch="false"/>
<line number="94" hits="2" branch="false"/>
<line number="95" hits="2" branch="false"/>
<line number="96" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/subject/PrincipalCollection;Ljava/lang/Object;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="105" hits="80" branch="false"/>
<line number="106" hits="80" branch="false"/>
<line number="107" hits="80" branch="false"/>
<line number="108" hits="80" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/subject/PrincipalCollection;Ljava/lang/Object;Lorg/apache/shiro/util/ByteSource;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="120" hits="0" branch="false"/>
<line number="121" hits="0" branch="false"/>
<line number="122" hits="0" branch="false"/>
<line number="123" hits="0" branch="false"/>
<line number="124" hits="0" branch="false"/>
</lines>
</method>
<method name="equals" signature="(Ljava/lang/Object;)Z" line-rate="0.2" branch-rate="0.1">
<lines>
<line number="253" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="254" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="256" hits="0" branch="false"/>
<line number="259" 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="261" hits="0" branch="false"/>
</lines>
</method>
<method name="getCredentials" signature="()Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="141" hits="62" branch="false"/>
</lines>
</method>
<method name="getCredentialsSalt" signature="()Lorg/apache/shiro/util/ByteSource;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="167" hits="40" branch="false"/>
</lines>
</method>
<method name="getPrincipals" signature="()Lorg/apache/shiro/subject/PrincipalCollection;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="128" hits="346" branch="false"/>
</lines>
</method>
<method name="hashCode" signature="()I" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="270" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
</lines>
</method>
<method name="merge" signature="(Lorg/apache/shiro/authc/AuthenticationInfo;)V" line-rate="0.6" branch-rate="0.5">
<lines>
<line number="194" hits="6" branch="true" condition-coverage="66% (4/6)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="100%"/>
<condition number="2" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="195" hits="2" branch="false"/>
<line number="198" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="199" hits="2" branch="false"/>
<line number="201" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="202" hits="2" branch="false"/>
<line number="204" hits="2" branch="false"/>
<line number="213" hits="4" 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="214" hits="4" branch="false"/>
<line number="217" hits="4" branch="false"/>
<line number="218" hits="4" branch="false"/>
<line number="220" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="221" hits="0" branch="false"/>
<line number="224" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="225" hits="4" branch="false"/>
<line number="226" hits="4" branch="false"/>
<line number="229" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="230" hits="0" branch="false"/>
<line number="231" hits="0" branch="false"/>
<line number="232" hits="0" branch="false"/>
<line number="236" hits="0" branch="false"/>
<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="240" hits="0" branch="false"/>
<line number="242" hits="0" branch="false"/>
</lines>
</method>
<method name="setCredentials" signature="(Ljava/lang/Object;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="150" hits="74" branch="false"/>
<line number="151" hits="74" branch="false"/>
</lines>
</method>
<method name="setCredentialsSalt" signature="(Lorg/apache/shiro/util/ByteSource;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="184" hits="8" branch="false"/>
<line number="185" hits="8" branch="false"/>
</lines>
</method>
<method name="setPrincipals" signature="(Lorg/apache/shiro/subject/PrincipalCollection;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="137" hits="4" branch="false"/>
<line number="138" hits="4" branch="false"/>
</lines>
</method>
<method name="toString" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="279" hits="84" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="59" hits="10" branch="false"/>
<line number="60" hits="10" branch="false"/>
<line number="73" hits="58" branch="false"/>
<line number="74" hits="58" branch="false"/>
<line number="75" hits="58" branch="false"/>
<line number="76" hits="58" branch="false"/>
<line number="92" hits="2" branch="false"/>
<line number="93" hits="2" branch="false"/>
<line number="94" hits="2" branch="false"/>
<line number="95" hits="2" branch="false"/>
<line number="96" hits="2" branch="false"/>
<line number="105" hits="80" branch="false"/>
<line number="106" hits="80" branch="false"/>
<line number="107" hits="80" branch="false"/>
<line number="108" hits="80" branch="false"/>
<line number="120" hits="0" branch="false"/>
<line number="121" hits="0" branch="false"/>
<line number="122" hits="0" branch="false"/>
<line number="123" hits="0" branch="false"/>
<line number="124" hits="0" branch="false"/>
<line number="128" hits="346" branch="false"/>
<line number="137" hits="4" branch="false"/>
<line number="138" hits="4" branch="false"/>
<line number="141" hits="62" branch="false"/>
<line number="150" hits="74" branch="false"/>
<line number="151" hits="74" branch="false"/>
<line number="167" hits="40" branch="false"/>
<line number="184" hits="8" branch="false"/>
<line number="185" hits="8" branch="false"/>
<line number="194" hits="6" branch="true" condition-coverage="66% (4/6)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="100%"/>
<condition number="2" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="195" hits="2" branch="false"/>
<line number="198" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="199" hits="2" branch="false"/>
<line number="201" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="202" hits="2" branch="false"/>
<line number="204" hits="2" branch="false"/>
<line number="213" hits="4" 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="214" hits="4" branch="false"/>
<line number="217" hits="4" branch="false"/>
<line number="218" hits="4" branch="false"/>
<line number="220" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="221" hits="0" branch="false"/>
<line number="224" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="225" hits="4" branch="false"/>
<line number="226" hits="4" branch="false"/>
<line number="229" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="230" hits="0" branch="false"/>
<line number="231" hits="0" branch="false"/>
<line number="232" hits="0" branch="false"/>
<line number="236" hits="0" branch="false"/>
<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="240" hits="0" branch="false"/>
<line number="242" hits="0" branch="false"/>
<line number="253" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="254" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="256" hits="0" branch="false"/>
<line number="259" 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="261" hits="0" branch="false"/>
<line number="270" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="279" hits="84" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.authc.UnknownAccountException" filename="org/apache/shiro/authc/UnknownAccountException.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="37" hits="2" branch="false"/>
<line number="38" hits="2" 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="46" hits="4" branch="false"/>
<line number="47" hits="4" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/lang/Throwable;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="65" hits="2" branch="false"/>
<line number="66" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Throwable;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="55" hits="2" branch="false"/>
<line number="56" hits="2" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="37" hits="2" branch="false"/>
<line number="38" hits="2" branch="false"/>
<line number="46" hits="4" branch="false"/>
<line number="47" hits="4" branch="false"/>
<line number="55" hits="2" branch="false"/>
<line number="56" hits="2" branch="false"/>
<line number="65" hits="2" branch="false"/>
<line number="66" hits="2" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.authc.UsernamePasswordToken" filename="org/apache/shiro/authc/UsernamePasswordToken.java" line-rate="0.4528301886792453" branch-rate="0.2857142857142857" complexity="1.3333333333333333">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="83" hits="0" branch="false"/>
<line number="84" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/lang/String;)V" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="111" hits="78" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="112" hits="78" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="141" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="142" hits="6" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/lang/String;Z)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="171" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="172" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;)V" 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"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;[C)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="95" hits="0" branch="false"/>
<line number="96" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;[CLjava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="124" hits="0" branch="false"/>
<line number="125" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;[CZ)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="154" hits="0" branch="false"/>
<line number="155" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;[CZLjava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="68" hits="84" branch="false"/>
<line number="185" hits="84" branch="false"/>
<line number="187" hits="84" branch="false"/>
<line number="188" hits="84" branch="false"/>
<line number="189" hits="84" branch="false"/>
<line number="190" hits="84" branch="false"/>
<line number="191" hits="84" branch="false"/>
</lines>
</method>
<method name="clear" signature="()V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="336" hits="0" branch="false"/>
<line number="337" hits="0" branch="false"/>
<line number="338" hits="0" branch="false"/>
<line number="340" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="341" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="342" hits="0" branch="false"/>
<line number="344" hits="0" branch="false"/>
<line number="347" hits="0" branch="false"/>
</lines>
</method>
<method name="getCredentials" signature="()Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="271" hits="72" branch="false"/>
</lines>
</method>
<method name="getHost" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="286" hits="68" branch="false"/>
</lines>
</method>
<method name="getPassword" signature="()[C" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="242" hits="72" branch="false"/>
</lines>
</method>
<method name="getPrincipal" signature="()Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="261" hits="28" branch="false"/>
</lines>
</method>
<method name="getUsername" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="223" hits="66" branch="false"/>
</lines>
</method>
<method name="isRememberMe" signature="()Z" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="312" hits="0" branch="false"/>
</lines>
</method>
<method name="setHost" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="300" hits="0" branch="false"/>
<line number="301" hits="0" branch="false"/>
</lines>
</method>
<method name="setPassword" signature="([C)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="251" hits="0" branch="false"/>
<line number="252" hits="0" branch="false"/>
</lines>
</method>
<method name="setRememberMe" signature="(Z)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="324" hits="0" branch="false"/>
<line number="325" hits="0" branch="false"/>
</lines>
</method>
<method name="setUsername" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="232" hits="0" branch="false"/>
<line number="233" hits="0" branch="false"/>
</lines>
</method>
<method name="toString" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="358" hits="148" branch="false"/>
<line number="359" hits="148" branch="false"/>
<line number="360" hits="148" branch="false"/>
<line number="361" hits="148" branch="false"/>
<line number="362" hits="148" branch="false"/>
<line number="363" hits="148" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="364" hits="10" branch="false"/>
<line number="366" hits="148" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="68" hits="84" branch="false"/>
<line number="83" hits="0" branch="false"/>
<line number="84" hits="0" branch="false"/>
<line number="95" hits="0" branch="false"/>
<line number="96" hits="0" branch="false"/>
<line number="111" hits="78" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="112" hits="78" branch="false"/>
<line number="124" hits="0" branch="false"/>
<line number="125" hits="0" branch="false"/>
<line number="141" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="142" hits="6" branch="false"/>
<line number="154" hits="0" branch="false"/>
<line number="155" hits="0" branch="false"/>
<line number="171" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="172" hits="0" branch="false"/>
<line number="185" hits="84" branch="false"/>
<line number="187" hits="84" branch="false"/>
<line number="188" hits="84" branch="false"/>
<line number="189" hits="84" branch="false"/>
<line number="190" hits="84" branch="false"/>
<line number="191" hits="84" branch="false"/>
<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="223" hits="66" branch="false"/>
<line number="232" hits="0" branch="false"/>
<line number="233" hits="0" branch="false"/>
<line number="242" hits="72" branch="false"/>
<line number="251" hits="0" branch="false"/>
<line number="252" hits="0" branch="false"/>
<line number="261" hits="28" branch="false"/>
<line number="271" hits="72" branch="false"/>
<line number="286" hits="68" branch="false"/>
<line number="300" hits="0" branch="false"/>
<line number="301" hits="0" branch="false"/>
<line number="312" hits="0" branch="false"/>
<line number="324" hits="0" branch="false"/>
<line number="325" hits="0" branch="false"/>
<line number="336" hits="0" branch="false"/>
<line number="337" hits="0" branch="false"/>
<line number="338" hits="0" branch="false"/>
<line number="340" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="341" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="342" hits="0" branch="false"/>
<line number="344" hits="0" branch="false"/>
<line number="347" hits="0" branch="false"/>
<line number="358" hits="148" branch="false"/>
<line number="359" hits="148" branch="false"/>
<line number="360" hits="148" branch="false"/>
<line number="361" hits="148" branch="false"/>
<line number="362" hits="148" branch="false"/>
<line number="363" hits="148" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="364" hits="10" branch="false"/>
<line number="366" hits="148" branch="false"/>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.authc.credential" line-rate="0.9430051813471503" branch-rate="0.717948717948718" complexity="1.912280701754386">
<classes>
<class name="org.apache.shiro.authc.credential.AllowAllCredentialsMatcher" filename="org/apache/shiro/authc/credential/AllowAllCredentialsMatcher.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="31" hits="40" branch="false"/>
</lines>
</method>
<method name="doCredentialsMatch" signature="(Lorg/apache/shiro/authc/AuthenticationToken;Lorg/apache/shiro/authc/AuthenticationInfo;)Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="41" hits="10" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="31" hits="40" branch="false"/>
<line number="41" hits="10" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.authc.credential.CredentialsMatcher" filename="org/apache/shiro/authc/credential/CredentialsMatcher.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.authc.credential.DefaultPasswordService" filename="org/apache/shiro/authc/credential/DefaultPasswordService.java" line-rate="1.0" branch-rate="0.7105263157894737" complexity="2.533333333333333">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="46" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="54" hits="32" branch="false"/>
<line number="55" hits="32" branch="false"/>
<line number="57" hits="32" branch="false"/>
<line number="58" hits="32" branch="false"/>
<line number="59" hits="32" branch="false"/>
<line number="60" hits="32" branch="false"/>
<line number="61" hits="32" branch="false"/>
<line number="63" hits="32" branch="false"/>
<line number="64" hits="32" branch="false"/>
<line number="65" hits="32" branch="false"/>
</lines>
</method>
<method name="buildHashRequest" signature="(Lorg/apache/shiro/util/ByteSource;Lorg/apache/shiro/crypto/hash/Hash;)Lorg/apache/shiro/crypto/hash/HashRequest;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="169" hits="20" branch="false"/>
<line number="171" hits="10" branch="false"/>
<line number="172" hits="10" branch="false"/>
<line number="173" hits="10" branch="false"/>
<line number="174" hits="10" branch="false"/>
</lines>
</method>
<method name="checkHashFormatDurability" signature="()V" line-rate="1.0" branch-rate="0.6666666666666666">
<lines>
<line number="102" hits="16" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="104" hits="16" branch="false"/>
<line number="106" hits="16" 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="107" hits="4" branch="false"/>
<line number="108" hits="4" branch="false"/>
<line number="110" hits="4" branch="false"/>
<line number="112" hits="4" branch="false"/>
<line number="113" hits="4" branch="false"/>
<line number="116" hits="16" branch="false"/>
</lines>
</method>
<method name="createByteSource" signature="(Ljava/lang/Object;)Lorg/apache/shiro/util/ByteSource;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="123" hits="52" branch="false"/>
</lines>
</method>
<method name="createHashRequest" signature="(Lorg/apache/shiro/util/ByteSource;)Lorg/apache/shiro/crypto/hash/HashRequest;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="119" hits="16" branch="false"/>
</lines>
</method>
<method name="encryptPassword" signature="(Ljava/lang/Object;)Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="68" hits="16" branch="false"/>
<line number="69" hits="16" branch="false"/>
<line number="70" hits="16" branch="false"/>
</lines>
</method>
<method name="getHashFormat" signature="()Lorg/apache/shiro/crypto/hash/format/HashFormat;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="186" hits="2" branch="false"/>
</lines>
</method>
<method name="getHashFormatFactory" signature="()Lorg/apache/shiro/crypto/hash/format/HashFormatFactory;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="194" hits="2" branch="false"/>
</lines>
</method>
<method name="getHashService" signature="()Lorg/apache/shiro/crypto/hash/HashService;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="178" hits="6" branch="false"/>
</lines>
</method>
<method name="hashPassword" signature="(Ljava/lang/Object;)Lorg/apache/shiro/crypto/hash/Hash;" line-rate="1.0" branch-rate="0.75">
<lines>
<line number="74" hits="18" branch="false"/>
<line number="75" hits="18" 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="76" hits="4" branch="false"/>
<line number="78" hits="14" branch="false"/>
<line number="79" hits="14" branch="false"/>
</lines>
</method>
<method name="passwordsMatch" signature="(Ljava/lang/Object;Ljava/lang/String;)Z" line-rate="1.0" branch-rate="0.8125">
<lines>
<line number="127" hits="20" branch="false"/>
<line number="129" hits="20" 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="130" hits="6" 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="132" hits="14" 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="133" hits="2" branch="false"/>
<line number="142" hits="12" branch="false"/>
<line number="144" 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="146" hits="10" branch="false"/>
<line number="147" hits="10" branch="false"/>
<line number="149" hits="10" branch="false"/>
<line number="160" hits="2" branch="false"/>
<line number="161" hits="2" branch="false"/>
<line number="162" hits="2" branch="false"/>
<line number="164" hits="2" branch="false"/>
</lines>
</method>
<method name="passwordsMatch" signature="(Ljava/lang/Object;Lorg/apache/shiro/crypto/hash/Hash;)Z" line-rate="1.0" branch-rate="0.5833333333333334">
<lines>
<line number="83" hits="14" branch="false"/>
<line number="85" hits="14" 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="86" 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="88" 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="89" hits="2" branch="false"/>
<line number="93" hits="10" branch="false"/>
<line number="95" hits="10" branch="false"/>
<line number="97" hits="10" branch="false"/>
</lines>
</method>
<method name="setHashFormat" signature="(Lorg/apache/shiro/crypto/hash/format/HashFormat;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="190" hits="4" branch="false"/>
<line number="191" hits="4" branch="false"/>
</lines>
</method>
<method name="setHashFormatFactory" signature="(Lorg/apache/shiro/crypto/hash/format/HashFormatFactory;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="198" hits="2" branch="false"/>
<line number="199" hits="2" branch="false"/>
</lines>
</method>
<method name="setHashService" signature="(Lorg/apache/shiro/crypto/hash/HashService;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="182" hits="2" branch="false"/>
<line number="183" hits="2" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="46" hits="2" branch="false"/>
<line number="54" hits="32" branch="false"/>
<line number="55" hits="32" branch="false"/>
<line number="57" hits="32" branch="false"/>
<line number="58" hits="32" branch="false"/>
<line number="59" hits="32" branch="false"/>
<line number="60" hits="32" branch="false"/>
<line number="61" hits="32" branch="false"/>
<line number="63" hits="32" branch="false"/>
<line number="64" hits="32" branch="false"/>
<line number="65" hits="32" branch="false"/>
<line number="68" hits="16" branch="false"/>
<line number="69" hits="16" branch="false"/>
<line number="70" hits="16" branch="false"/>
<line number="74" hits="18" branch="false"/>
<line number="75" hits="18" 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="76" hits="4" branch="false"/>
<line number="78" hits="14" branch="false"/>
<line number="79" hits="14" branch="false"/>
<line number="83" hits="14" branch="false"/>
<line number="85" hits="14" 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="86" 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="88" 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="89" hits="2" branch="false"/>
<line number="93" hits="10" branch="false"/>
<line number="95" hits="10" branch="false"/>
<line number="97" hits="10" branch="false"/>
<line number="102" hits="16" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="104" hits="16" branch="false"/>
<line number="106" hits="16" 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="107" hits="4" branch="false"/>
<line number="108" hits="4" branch="false"/>
<line number="110" hits="4" branch="false"/>
<line number="112" hits="4" branch="false"/>
<line number="113" hits="4" branch="false"/>
<line number="116" hits="16" branch="false"/>
<line number="119" hits="16" branch="false"/>
<line number="123" hits="52" branch="false"/>
<line number="127" hits="20" branch="false"/>
<line number="129" hits="20" 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="130" hits="6" 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="132" hits="14" 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="133" hits="2" branch="false"/>
<line number="142" hits="12" branch="false"/>
<line number="144" 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="146" hits="10" branch="false"/>
<line number="147" hits="10" branch="false"/>
<line number="149" hits="10" branch="false"/>
<line number="160" hits="2" branch="false"/>
<line number="161" hits="2" branch="false"/>
<line number="162" hits="2" branch="false"/>
<line number="164" hits="2" branch="false"/>
<line number="169" hits="20" branch="false"/>
<line number="171" hits="10" branch="false"/>
<line number="172" hits="10" branch="false"/>
<line number="173" hits="10" branch="false"/>
<line number="174" hits="10" branch="false"/>
<line number="178" hits="6" branch="false"/>
<line number="182" hits="2" branch="false"/>
<line number="183" hits="2" branch="false"/>
<line number="186" hits="2" branch="false"/>
<line number="190" hits="4" branch="false"/>
<line number="191" hits="4" branch="false"/>
<line number="194" hits="2" branch="false"/>
<line number="198" hits="2" branch="false"/>
<line number="199" hits="2" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.authc.credential.HashedCredentialsMatcher" filename="org/apache/shiro/authc/credential/HashedCredentialsMatcher.java" line-rate="0.8113207547169812" branch-rate="0.6875" complexity="1.588235294117647">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="135" hits="42" branch="false"/>
<line number="136" hits="42" branch="false"/>
<line number="137" hits="42" branch="false"/>
<line number="138" hits="42" branch="false"/>
<line number="139" hits="42" branch="false"/>
<line number="140" hits="42" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;)V" line-rate="0.8" branch-rate="0.5">
<lines>
<line number="150" hits="6" branch="false"/>
<line number="151" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="152" hits="0" branch="false"/>
<line number="154" hits="6" branch="false"/>
<line number="155" hits="6" branch="false"/>
</lines>
</method>
<method name="assertHashAlgorithmName" signature="()Ljava/lang/String;" line-rate="0.6" branch-rate="0.5">
<lines>
<line number="424" hits="80" branch="false"/>
<line number="425" hits="80" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="426" hits="0" branch="false"/>
<line number="428" hits="0" branch="false"/>
<line number="430" hits="80" branch="false"/>
</lines>
</method>
<method name="doCredentialsMatch" signature="(Lorg/apache/shiro/authc/AuthenticationToken;Lorg/apache/shiro/authc/AuthenticationInfo;)Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="379" hits="40" branch="false"/>
<line number="380" hits="40" branch="false"/>
<line number="381" hits="40" branch="false"/>
</lines>
</method>
<method name="getCredentials" signature="(Lorg/apache/shiro/authc/AuthenticationInfo;)Ljava/lang/Object;" line-rate="0.8888888888888888" branch-rate="0.8333333333333334">
<lines>
<line number="345" hits="40" branch="false"/>
<line number="347" hits="40" branch="false"/>
<line number="349" hits="40" 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="352" hits="22" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="353" hits="22" branch="false"/>
<line number="355" hits="0" branch="false"/>
<line number="358" hits="40" branch="false"/>
<line number="359" hits="40" branch="false"/>
<line number="360" hits="40" branch="false"/>
</lines>
</method>
<method name="getHashAlgorithmName" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="166" hits="80" branch="false"/>
</lines>
</method>
<method name="getHashIterations" signature="()I" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="277" hits="40" branch="false"/>
</lines>
</method>
<method name="getSalt" signature="(Lorg/apache/shiro/authc/AuthenticationToken;)Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="322" hits="2" branch="false"/>
</lines>
</method>
<method name="hashProvidedCredentials" signature="(Ljava/lang/Object;Ljava/lang/Object;I)Lorg/apache/shiro/crypto/hash/Hash;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="444" hits="40" branch="false"/>
<line number="445" hits="40" branch="false"/>
</lines>
</method>
<method name="hashProvidedCredentials" signature="(Lorg/apache/shiro/authc/AuthenticationToken;Lorg/apache/shiro/authc/AuthenticationInfo;)Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="403" hits="40" branch="false"/>
<line number="404" hits="40" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="405" hits="36" branch="false"/>
<line number="408" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="409" hits="2" branch="false"/>
<line number="412" hits="40" branch="false"/>
</lines>
</method>
<method name="isHashSalted" signature="()Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="238" hits="4" branch="false"/>
</lines>
</method>
<method name="isStoredCredentialsHexEncoded" signature="()Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="193" hits="22" branch="false"/>
</lines>
</method>
<method name="newHashInstance" signature="()Lorg/apache/shiro/crypto/hash/AbstractHash;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="455" hits="40" branch="false"/>
<line number="456" hits="40" branch="false"/>
</lines>
</method>
<method name="setHashAlgorithmName" signature="(Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="178" hits="36" branch="false"/>
<line number="179" hits="36" branch="false"/>
</lines>
</method>
<method name="setHashIterations" signature="(I)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="292" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="293" hits="0" branch="false"/>
<line number="295" hits="0" branch="false"/>
<line number="297" hits="0" branch="false"/>
</lines>
</method>
<method name="setHashSalted" signature="(Z)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="264" hits="2" branch="false"/>
<line number="265" hits="2" branch="false"/>
</lines>
</method>
<method name="setStoredCredentialsHexEncoded" signature="(Z)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="210" hits="0" branch="false"/>
<line number="211" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="135" hits="42" branch="false"/>
<line number="136" hits="42" branch="false"/>
<line number="137" hits="42" branch="false"/>
<line number="138" hits="42" branch="false"/>
<line number="139" hits="42" branch="false"/>
<line number="140" hits="42" branch="false"/>
<line number="150" hits="6" branch="false"/>
<line number="151" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="152" hits="0" branch="false"/>
<line number="154" hits="6" branch="false"/>
<line number="155" hits="6" branch="false"/>
<line number="166" hits="80" branch="false"/>
<line number="178" hits="36" branch="false"/>
<line number="179" hits="36" branch="false"/>
<line number="193" hits="22" branch="false"/>
<line number="210" hits="0" branch="false"/>
<line number="211" hits="0" branch="false"/>
<line number="238" hits="4" branch="false"/>
<line number="264" hits="2" branch="false"/>
<line number="265" hits="2" branch="false"/>
<line number="277" hits="40" branch="false"/>
<line number="292" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="293" hits="0" branch="false"/>
<line number="295" hits="0" branch="false"/>
<line number="297" hits="0" branch="false"/>
<line number="322" hits="2" branch="false"/>
<line number="345" hits="40" branch="false"/>
<line number="347" hits="40" branch="false"/>
<line number="349" hits="40" 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="352" hits="22" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="353" hits="22" branch="false"/>
<line number="355" hits="0" branch="false"/>
<line number="358" hits="40" branch="false"/>
<line number="359" hits="40" branch="false"/>
<line number="360" hits="40" branch="false"/>
<line number="379" hits="40" branch="false"/>
<line number="380" hits="40" branch="false"/>
<line number="381" hits="40" branch="false"/>
<line number="403" hits="40" branch="false"/>
<line number="404" hits="40" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="405" hits="36" branch="false"/>
<line number="408" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="409" hits="2" branch="false"/>
<line number="412" hits="40" branch="false"/>
<line number="424" hits="80" branch="false"/>
<line number="425" hits="80" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="426" hits="0" branch="false"/>
<line number="428" hits="0" branch="false"/>
<line number="430" hits="80" branch="false"/>
<line number="444" hits="40" branch="false"/>
<line number="445" hits="40" branch="false"/>
<line number="455" hits="40" branch="false"/>
<line number="456" hits="40" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.authc.credential.HashingPasswordService" filename="org/apache/shiro/authc/credential/HashingPasswordService.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.authc.credential.Md2CredentialsMatcher" filename="org/apache/shiro/authc/credential/Md2CredentialsMatcher.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="44" hits="2" branch="false"/>
<line number="45" hits="2" branch="false"/>
<line number="46" hits="2" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="44" hits="2" branch="false"/>
<line number="45" hits="2" branch="false"/>
<line number="46" hits="2" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.authc.credential.Md5CredentialsMatcher" filename="org/apache/shiro/authc/credential/Md5CredentialsMatcher.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="2" branch="false"/>
<line number="44" hits="2" branch="false"/>
<line number="45" hits="2" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="43" hits="2" branch="false"/>
<line number="44" hits="2" branch="false"/>
<line number="45" hits="2" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.authc.credential.PasswordMatcher" filename="org/apache/shiro/authc/credential/PasswordMatcher.java" line-rate="1.0" branch-rate="0.875" complexity="2.5555555555555554">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="38" hits="12" branch="false"/>
<line number="39" hits="12" branch="false"/>
<line number="40" hits="12" branch="false"/>
</lines>
</method>
<method name="assertHashingPasswordService" signature="(Lorg/apache/shiro/authc/credential/PasswordService;)Lorg/apache/shiro/authc/credential/HashingPasswordService;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="61" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="62" hits="2" branch="false"/>
<line number="64" hits="2" branch="false"/>
<line number="66" hits="2" branch="false"/>
<line number="68" hits="2" branch="false"/>
</lines>
</method>
<method name="assertStoredCredentialsType" signature="(Ljava/lang/Object;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="85" hits="10" 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="86" hits="8" branch="false"/>
<line number="89" hits="2" branch="false"/>
<line number="90" hits="2" branch="false"/>
<line number="91" hits="2" branch="false"/>
</lines>
</method>
<method name="doCredentialsMatch" signature="(Lorg/apache/shiro/authc/AuthenticationToken;Lorg/apache/shiro/authc/AuthenticationInfo;)Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="44" hits="12" branch="false"/>
<line number="46" hits="10" branch="false"/>
<line number="47" hits="10" branch="false"/>
<line number="48" hits="10" branch="false"/>
<line number="50" hits="8" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="51" hits="4" branch="false"/>
<line number="52" hits="4" branch="false"/>
<line number="53" hits="2" branch="false"/>
<line number="56" hits="4" branch="false"/>
<line number="57" hits="4" branch="false"/>
</lines>
</method>
<method name="ensurePasswordService" signature="()Lorg/apache/shiro/authc/credential/PasswordService;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="72" hits="12" branch="false"/>
<line number="73" hits="12" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="74" hits="2" branch="false"/>
<line number="75" hits="2" branch="false"/>
<line number="77" hits="10" branch="false"/>
</lines>
</method>
<method name="getPasswordService" signature="()Lorg/apache/shiro/authc/credential/PasswordService;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="104" hits="22" branch="false"/>
</lines>
</method>
<method name="getStoredPassword" signature="(Lorg/apache/shiro/authc/AuthenticationInfo;)Ljava/lang/Object;" line-rate="1.0" branch-rate="0.75">
<lines>
<line number="95" hits="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="97" hits="10" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="98" hits="2" branch="false"/>
<line number="100" hits="10" branch="false"/>
</lines>
</method>
<method name="getSubmittedPassword" signature="(Lorg/apache/shiro/authc/AuthenticationToken;)Ljava/lang/Object;" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="81" hits="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
</lines>
</method>
<method name="setPasswordService" signature="(Lorg/apache/shiro/authc/credential/PasswordService;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="108" hits="12" branch="false"/>
<line number="109" hits="12" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="38" hits="12" branch="false"/>
<line number="39" hits="12" branch="false"/>
<line number="40" hits="12" branch="false"/>
<line number="44" hits="12" branch="false"/>
<line number="46" hits="10" branch="false"/>
<line number="47" hits="10" branch="false"/>
<line number="48" hits="10" branch="false"/>
<line number="50" hits="8" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="51" hits="4" branch="false"/>
<line number="52" hits="4" branch="false"/>
<line number="53" hits="2" branch="false"/>
<line number="56" hits="4" branch="false"/>
<line number="57" hits="4" branch="false"/>
<line number="61" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="62" hits="2" branch="false"/>
<line number="64" hits="2" branch="false"/>
<line number="66" hits="2" branch="false"/>
<line number="68" hits="2" branch="false"/>
<line number="72" hits="12" branch="false"/>
<line number="73" hits="12" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="74" hits="2" branch="false"/>
<line number="75" hits="2" branch="false"/>
<line number="77" hits="10" branch="false"/>
<line number="81" hits="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="85" hits="10" 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="86" hits="8" branch="false"/>
<line number="89" hits="2" branch="false"/>
<line number="90" hits="2" branch="false"/>
<line number="91" hits="2" branch="false"/>
<line number="95" hits="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="97" hits="10" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="98" hits="2" branch="false"/>
<line number="100" hits="10" branch="false"/>
<line number="104" hits="22" branch="false"/>
<line number="108" hits="12" branch="false"/>
<line number="109" hits="12" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.authc.credential.PasswordService" filename="org/apache/shiro/authc/credential/PasswordService.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.authc.credential.Sha1CredentialsMatcher" filename="org/apache/shiro/authc/credential/Sha1CredentialsMatcher.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="2" branch="false"/>
<line number="44" hits="2" branch="false"/>
<line number="45" hits="2" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="43" hits="2" branch="false"/>
<line number="44" hits="2" branch="false"/>
<line number="45" hits="2" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.authc.credential.Sha256CredentialsMatcher" filename="org/apache/shiro/authc/credential/Sha256CredentialsMatcher.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="37" hits="26" branch="false"/>
<line number="38" hits="26" branch="false"/>
<line number="39" hits="26" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="37" hits="26" branch="false"/>
<line number="38" hits="26" branch="false"/>
<line number="39" hits="26" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.authc.credential.Sha384CredentialsMatcher" filename="org/apache/shiro/authc/credential/Sha384CredentialsMatcher.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="37" hits="2" branch="false"/>
<line number="38" hits="2" branch="false"/>
<line number="39" hits="2" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="37" hits="2" branch="false"/>
<line number="38" hits="2" branch="false"/>
<line number="39" hits="2" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.authc.credential.Sha512CredentialsMatcher" filename="org/apache/shiro/authc/credential/Sha512CredentialsMatcher.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="37" hits="2" branch="false"/>
<line number="38" hits="2" branch="false"/>
<line number="39" hits="2" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="37" hits="2" branch="false"/>
<line number="38" hits="2" branch="false"/>
<line number="39" hits="2" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.authc.credential.SimpleCredentialsMatcher" filename="org/apache/shiro/authc/credential/SimpleCredentialsMatcher.java" line-rate="0.9444444444444444" branch-rate="0.5" complexity="2.25">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="43" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="41" hits="204" branch="false"/>
</lines>
</method>
<method name="doCredentialsMatch" signature="(Lorg/apache/shiro/authc/AuthenticationToken;Lorg/apache/shiro/authc/AuthenticationInfo;)Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="126" hits="24" branch="false"/>
<line number="127" hits="24" branch="false"/>
<line number="128" hits="24" branch="false"/>
</lines>
</method>
<method name="equals" signature="(Ljava/lang/Object;Ljava/lang/Object;)Z" line-rate="0.9090909090909091" branch-rate="0.5">
<lines>
<line number="94" hits="64" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="95" hits="128" branch="false"/>
<line number="96" hits="64" branch="false"/>
<line number="97" hits="64" branch="false"/>
<line number="99" hits="64" 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="100" hits="64" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="101" hits="64" branch="false"/>
<line number="104" hits="64" branch="false"/>
<line number="105" hits="64" branch="false"/>
<line number="106" hits="64" branch="false"/>
<line number="108" hits="0" branch="false"/>
</lines>
</method>
<method name="getCredentials" signature="(Lorg/apache/shiro/authc/AuthenticationInfo;)Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="73" hits="24" branch="false"/>
</lines>
</method>
<method name="getCredentials" signature="(Lorg/apache/shiro/authc/AuthenticationToken;)Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="57" hits="24" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="41" hits="204" branch="false"/>
<line number="43" hits="2" branch="false"/>
<line number="57" hits="24" branch="false"/>
<line number="73" hits="24" branch="false"/>
<line number="94" hits="64" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="95" hits="128" branch="false"/>
<line number="96" hits="64" branch="false"/>
<line number="97" hits="64" branch="false"/>
<line number="99" hits="64" 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="100" hits="64" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="101" hits="64" branch="false"/>
<line number="104" hits="64" branch="false"/>
<line number="105" hits="64" branch="false"/>
<line number="106" hits="64" branch="false"/>
<line number="108" hits="0" branch="false"/>
<line number="126" hits="24" branch="false"/>
<line number="127" hits="24" branch="false"/>
<line number="128" hits="24" branch="false"/>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.authc.pam" line-rate="0.6272727272727273" branch-rate="0.391304347826087" complexity="2.2857142857142856">
<classes>
<class name="org.apache.shiro.authc.pam.AbstractAuthenticationStrategy" filename="org/apache/shiro/authc/pam/AbstractAuthenticationStrategy.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="33" hits="94" branch="false"/>
</lines>
</method>
<method name="afterAllAttempts" signature="(Lorg/apache/shiro/authc/AuthenticationToken;Lorg/apache/shiro/authc/AuthenticationInfo;)Lorg/apache/shiro/authc/AuthenticationInfo;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="94" hits="0" branch="false"/>
</lines>
</method>
<method name="afterAttempt" signature="(Lorg/apache/shiro/realm/Realm;Lorg/apache/shiro/authc/AuthenticationToken;Lorg/apache/shiro/authc/AuthenticationInfo;Lorg/apache/shiro/authc/AuthenticationInfo;Ljava/lang/Throwable;)Lorg/apache/shiro/authc/AuthenticationInfo;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="56" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="57" hits="0" branch="false"/>
<line number="59" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="60" hits="0" branch="false"/>
<line number="62" hits="0" branch="false"/>
<line number="66" hits="0" branch="false"/>
</lines>
</method>
<method name="beforeAllAttempts" signature="(Ljava/util/Collection;Lorg/apache/shiro/authc/AuthenticationToken;)Lorg/apache/shiro/authc/AuthenticationInfo;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="40" hits="2" branch="false"/>
</lines>
</method>
<method name="beforeAttempt" signature="(Lorg/apache/shiro/realm/Realm;Lorg/apache/shiro/authc/AuthenticationToken;Lorg/apache/shiro/authc/AuthenticationInfo;)Lorg/apache/shiro/authc/AuthenticationInfo;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="47" hits="0" branch="false"/>
</lines>
</method>
<method name="merge" signature="(Lorg/apache/shiro/authc/AuthenticationInfo;Lorg/apache/shiro/authc/AuthenticationInfo;)Lorg/apache/shiro/authc/AuthenticationInfo;" 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="83" hits="0" branch="false"/>
<line number="85" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="33" hits="94" branch="false"/>
<line number="40" hits="2" branch="false"/>
<line number="47" hits="0" branch="false"/>
<line number="56" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="57" hits="0" branch="false"/>
<line number="59" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="60" hits="0" branch="false"/>
<line number="62" hits="0" branch="false"/>
<line number="66" 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="83" hits="0" branch="false"/>
<line number="85" hits="0" branch="false"/>
<line number="94" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.authc.pam.AllSuccessfulStrategy" filename="org/apache/shiro/authc/pam/AllSuccessfulStrategy.java" line-rate="0.3" branch-rate="0.125" complexity="5.0">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="44" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="41" hits="6" branch="false"/>
</lines>
</method>
<method name="afterAttempt" signature="(Lorg/apache/shiro/realm/Realm;Lorg/apache/shiro/authc/AuthenticationToken;Lorg/apache/shiro/authc/AuthenticationInfo;Lorg/apache/shiro/authc/AuthenticationInfo;Ljava/lang/Throwable;)Lorg/apache/shiro/authc/AuthenticationInfo;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="77" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="78" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="80" hits="0" branch="false"/>
<line number="82" hits="0" branch="false"/>
<line number="83" hits="0" branch="false"/>
<line number="85" hits="0" branch="false"/>
<line number="88" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="89" hits="0" branch="false"/>
<line number="90" hits="0" branch="false"/>
<line number="93" hits="0" branch="false"/>
<line number="96" hits="0" branch="false"/>
<line number="100" hits="0" branch="false"/>
<line number="102" hits="0" branch="false"/>
</lines>
</method>
<method name="beforeAttempt" signature="(Lorg/apache/shiro/realm/Realm;Lorg/apache/shiro/authc/AuthenticationToken;Lorg/apache/shiro/authc/AuthenticationInfo;)Lorg/apache/shiro/authc/AuthenticationInfo;" line-rate="0.8" branch-rate="0.5">
<lines>
<line number="54" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="55" hits="2" branch="false"/>
<line number="56" hits="2" branch="false"/>
<line number="59" hits="2" branch="false"/>
<line number="62" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="41" hits="6" branch="false"/>
<line number="44" hits="2" branch="false"/>
<line number="54" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="55" hits="2" branch="false"/>
<line number="56" hits="2" branch="false"/>
<line number="59" hits="2" branch="false"/>
<line number="62" hits="0" branch="false"/>
<line number="77" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="78" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="80" hits="0" branch="false"/>
<line number="82" hits="0" branch="false"/>
<line number="83" hits="0" branch="false"/>
<line number="85" hits="0" branch="false"/>
<line number="88" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="89" hits="0" branch="false"/>
<line number="90" hits="0" branch="false"/>
<line number="93" hits="0" branch="false"/>
<line number="96" hits="0" branch="false"/>
<line number="100" hits="0" branch="false"/>
<line number="102" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.authc.pam.AtLeastOneSuccessfulStrategy" filename="org/apache/shiro/authc/pam/AtLeastOneSuccessfulStrategy.java" line-rate="0.25" 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="42" hits="88" branch="false"/>
</lines>
</method>
<method name="afterAllAttempts" signature="(Lorg/apache/shiro/authc/AuthenticationToken;Lorg/apache/shiro/authc/AuthenticationInfo;)Lorg/apache/shiro/authc/AuthenticationInfo;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="53" 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="54" hits="0" branch="false"/>
<line number="59" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="42" hits="88" branch="false"/>
<line number="53" 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="54" hits="0" branch="false"/>
<line number="59" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.authc.pam.AuthenticationStrategy" filename="org/apache/shiro/authc/pam/AuthenticationStrategy.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.authc.pam.FirstSuccessfulStrategy" filename="org/apache/shiro/authc/pam/FirstSuccessfulStrategy.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="38" hits="0" branch="false"/>
</lines>
</method>
<method name="beforeAllAttempts" signature="(Ljava/util/Collection;Lorg/apache/shiro/authc/AuthenticationToken;)Lorg/apache/shiro/authc/AuthenticationInfo;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="45" hits="0" branch="false"/>
</lines>
</method>
<method name="merge" signature="(Lorg/apache/shiro/authc/AuthenticationInfo;Lorg/apache/shiro/authc/AuthenticationInfo;)Lorg/apache/shiro/authc/AuthenticationInfo;" 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="57" hits="0" branch="false"/>
<line number="59" 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="38" hits="0" branch="false"/>
<line number="45" hits="0" 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="57" hits="0" branch="false"/>
<line number="59" 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.authc.pam.ModularRealmAuthenticator" filename="org/apache/shiro/authc/pam/ModularRealmAuthenticator.java" line-rate="0.9830508474576272" branch-rate="0.7727272727272727" complexity="2.6">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="69" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="94" hits="88" branch="false"/>
<line number="95" hits="88" branch="false"/>
<line number="96" hits="88" branch="false"/>
</lines>
</method>
<method name="assertRealmsConfigured" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="157" hits="54" branch="false"/>
<line number="158" hits="54" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="159" hits="2" branch="false"/>
<line number="161" hits="2" branch="false"/>
<line number="163" hits="52" branch="false"/>
</lines>
</method>
<method name="doAuthenticate" signature="(Lorg/apache/shiro/authc/AuthenticationToken;)Lorg/apache/shiro/authc/AuthenticationInfo;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="264" hits="54" branch="false"/>
<line number="265" hits="52" branch="false"/>
<line number="266" hits="52" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="267" hits="48" branch="false"/>
<line number="269" hits="4" branch="false"/>
</lines>
</method>
<method name="doMultiRealmAuthentication" signature="(Ljava/util/Collection;Lorg/apache/shiro/authc/AuthenticationToken;)Lorg/apache/shiro/authc/AuthenticationInfo;" line-rate="0.9565217391304348" branch-rate="0.625">
<lines>
<line number="200" hits="4" branch="false"/>
<line number="202" hits="4" branch="false"/>
<line number="204" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="205" hits="4" branch="false"/>
<line number="208" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="210" hits="8" branch="false"/>
<line number="212" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="214" hits="8" branch="false"/>
<line number="216" hits="8" branch="false"/>
<line number="217" hits="8" branch="false"/>
<line number="219" hits="8" branch="false"/>
<line number="220" hits="2" branch="false"/>
<line number="221" hits="2" branch="false"/>
<line number="222" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="223" hits="2" branch="false"/>
<line number="224" hits="2" branch="false"/>
<line number="226" hits="6" branch="false"/>
<line number="228" hits="8" branch="false"/>
<line number="230" hits="8" branch="false"/>
<line number="231" hits="0" branch="false"/>
<line number="233" hits="8" branch="false"/>
<line number="235" hits="4" branch="false"/>
<line number="237" hits="4" branch="false"/>
</lines>
</method>
<method name="doSingleRealmAuthentication" signature="(Lorg/apache/shiro/realm/Realm;Lorg/apache/shiro/authc/AuthenticationToken;)Lorg/apache/shiro/authc/AuthenticationInfo;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="174" hits="48" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="175" hits="2" branch="false"/>
<line number="178" hits="2" branch="false"/>
<line number="180" hits="46" branch="false"/>
<line number="181" hits="38" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="182" hits="2" branch="false"/>
<line number="184" hits="2" branch="false"/>
<line number="186" hits="36" branch="false"/>
</lines>
</method>
<method name="getAuthenticationStrategy" signature="()Lorg/apache/shiro/authc/pam/AuthenticationStrategy;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="132" hits="8" branch="false"/>
</lines>
</method>
<method name="getRealms" signature="()Ljava/util/Collection;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="117" hits="124" branch="false"/>
</lines>
</method>
<method name="onLogout" signature="(Lorg/apache/shiro/subject/PrincipalCollection;)V" line-rate="1.0" branch-rate="0.6666666666666666">
<lines>
<line number="285" hits="18" branch="false"/>
<line number="286" hits="18" branch="false"/>
<line number="287" hits="18" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="288" hits="18" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="289" hits="18" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="290" hits="18" branch="false"/>
<line number="292" hits="18" branch="false"/>
<line number="294" hits="18" branch="false"/>
</lines>
</method>
<method name="setAuthenticationStrategy" signature="(Lorg/apache/shiro/authc/pam/AuthenticationStrategy;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="143" hits="4" branch="false"/>
<line number="144" hits="4" branch="false"/>
</lines>
</method>
<method name="setRealms" signature="(Ljava/util/Collection;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="108" hits="76" branch="false"/>
<line number="109" hits="76" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="69" hits="2" branch="false"/>
<line number="94" hits="88" branch="false"/>
<line number="95" hits="88" branch="false"/>
<line number="96" hits="88" branch="false"/>
<line number="108" hits="76" branch="false"/>
<line number="109" hits="76" branch="false"/>
<line number="117" hits="124" branch="false"/>
<line number="132" hits="8" branch="false"/>
<line number="143" hits="4" branch="false"/>
<line number="144" hits="4" branch="false"/>
<line number="157" hits="54" branch="false"/>
<line number="158" hits="54" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="159" hits="2" branch="false"/>
<line number="161" hits="2" branch="false"/>
<line number="163" hits="52" branch="false"/>
<line number="174" hits="48" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="175" hits="2" branch="false"/>
<line number="178" hits="2" branch="false"/>
<line number="180" hits="46" branch="false"/>
<line number="181" hits="38" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="182" hits="2" branch="false"/>
<line number="184" hits="2" branch="false"/>
<line number="186" hits="36" branch="false"/>
<line number="200" hits="4" branch="false"/>
<line number="202" hits="4" branch="false"/>
<line number="204" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="205" hits="4" branch="false"/>
<line number="208" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="210" hits="8" branch="false"/>
<line number="212" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="214" hits="8" branch="false"/>
<line number="216" hits="8" branch="false"/>
<line number="217" hits="8" branch="false"/>
<line number="219" hits="8" branch="false"/>
<line number="220" hits="2" branch="false"/>
<line number="221" hits="2" branch="false"/>
<line number="222" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="223" hits="2" branch="false"/>
<line number="224" hits="2" branch="false"/>
<line number="226" hits="6" branch="false"/>
<line number="228" hits="8" branch="false"/>
<line number="230" hits="8" branch="false"/>
<line number="231" hits="0" branch="false"/>
<line number="233" hits="8" branch="false"/>
<line number="235" hits="4" branch="false"/>
<line number="237" hits="4" branch="false"/>
<line number="264" hits="54" branch="false"/>
<line number="265" hits="52" branch="false"/>
<line number="266" hits="52" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="267" hits="48" branch="false"/>
<line number="269" hits="4" branch="false"/>
<line number="285" hits="18" branch="false"/>
<line number="286" hits="18" branch="false"/>
<line number="287" hits="18" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="288" hits="18" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="289" hits="18" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="290" hits="18" branch="false"/>
<line number="292" hits="18" branch="false"/>
<line number="294" hits="18" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.authc.pam.UnsupportedTokenException" filename="org/apache/shiro/authc/pam/UnsupportedTokenException.java" line-rate="0.25" 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="38" hits="0" branch="false"/>
<line number="39" 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="47" hits="4" branch="false"/>
<line number="48" hits="4" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/lang/Throwable;)V" 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>
<method name="&lt;init&gt;" signature="(Ljava/lang/Throwable;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="56" hits="0" branch="false"/>
<line number="57" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="38" hits="0" branch="false"/>
<line number="39" hits="0" branch="false"/>
<line number="47" hits="4" branch="false"/>
<line number="48" hits="4" branch="false"/>
<line number="56" hits="0" branch="false"/>
<line number="57" hits="0" branch="false"/>
<line number="66" hits="0" branch="false"/>
<line number="67" hits="0" branch="false"/>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.authz" line-rate="0.4126984126984127" branch-rate="0.16901408450704225" complexity="1.934782608695652">
<classes>
<class name="org.apache.shiro.authz.AuthorizationException" filename="org/apache/shiro/authz/AuthorizationException.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="36" hits="8" branch="false"/>
<line number="37" hits="8" 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="45" hits="28" branch="false"/>
<line number="46" hits="28" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/lang/Throwable;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="64" hits="8" branch="false"/>
<line number="65" hits="8" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Throwable;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="54" hits="8" branch="false"/>
<line number="55" hits="8" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="36" hits="8" branch="false"/>
<line number="37" hits="8" branch="false"/>
<line number="45" hits="28" branch="false"/>
<line number="46" hits="28" branch="false"/>
<line number="54" hits="8" branch="false"/>
<line number="55" hits="8" branch="false"/>
<line number="64" hits="8" branch="false"/>
<line number="65" hits="8" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.authz.AuthorizationInfo" filename="org/apache/shiro/authz/AuthorizationInfo.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.authz.Authorizer" filename="org/apache/shiro/authz/Authorizer.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.authz.HostUnauthorizedException" filename="org/apache/shiro/authz/HostUnauthorizedException.java" line-rate="0.7272727272727273" 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="36" hits="2" branch="false"/>
<line number="37" hits="2" 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="45" hits="2" branch="false"/>
<line number="46" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/lang/Throwable;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="64" hits="2" branch="false"/>
<line number="65" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Throwable;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="54" hits="2" branch="false"/>
<line number="55" hits="2" branch="false"/>
</lines>
</method>
<method name="getHost" signature="()Ljava/lang/String;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="73" hits="0" branch="false"/>
</lines>
</method>
<method name="setHostAddress" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="82" hits="0" branch="false"/>
<line number="83" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="36" hits="2" branch="false"/>
<line number="37" hits="2" branch="false"/>
<line number="45" hits="2" branch="false"/>
<line number="46" hits="2" branch="false"/>
<line number="54" hits="2" branch="false"/>
<line number="55" hits="2" branch="false"/>
<line number="64" hits="2" branch="false"/>
<line number="65" hits="2" branch="false"/>
<line number="73" hits="0" branch="false"/>
<line number="82" hits="0" branch="false"/>
<line number="83" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.authz.ModularRealmAuthorizer" filename="org/apache/shiro/authz/ModularRealmAuthorizer.java" line-rate="0.30597014925373134" branch-rate="0.19230769230769232" complexity="3.4074074074074074">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="60" hits="74" branch="false"/>
<line number="61" hits="74" 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="69" hits="0" branch="false"/>
<line number="70" hits="0" branch="false"/>
<line number="71" hits="0" branch="false"/>
</lines>
</method>
<method name="applyPermissionResolverToRealms" signature="()V" line-rate="0.5" branch-rate="0.1">
<lines>
<line number="134" hits="68" branch="false"/>
<line number="135" hits="68" branch="false"/>
<line number="136" hits="68" branch="true" condition-coverage="16% (1/6)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="0%"/>
<condition number="2" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="137" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</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="141" hits="0" branch="false"/>
<line number="143" hits="68" branch="false"/>
</lines>
</method>
<method name="applyRolePermissionResolverToRealms" signature="()V" line-rate="1.0" branch-rate="0.7">
<lines>
<line number="187" hits="70" branch="false"/>
<line number="188" hits="70" branch="false"/>
<line number="189" hits="70" branch="true" condition-coverage="66% (4/6)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="50%"/>
<condition number="2" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="190" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<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="194" hits="10" branch="false"/>
<line number="196" hits="70" branch="false"/>
</lines>
</method>
<method name="assertRealmsConfigured" signature="()V" line-rate="0.6" branch-rate="0.5">
<lines>
<line number="206" hits="46" branch="false"/>
<line number="207" hits="46" 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="208" hits="0" branch="false"/>
<line number="210" hits="0" branch="false"/>
<line number="212" hits="46" branch="false"/>
</lines>
</method>
<method name="checkPermission" signature="(Lorg/apache/shiro/subject/PrincipalCollection;Ljava/lang/String;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="321" hits="0" branch="false"/>
<line number="322" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="323" hits="0" branch="false"/>
<line number="325" hits="0" branch="false"/>
</lines>
</method>
<method name="checkPermission" signature="(Lorg/apache/shiro/subject/PrincipalCollection;Lorg/apache/shiro/authz/Permission;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="332" hits="0" branch="false"/>
<line number="333" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="334" hits="0" branch="false"/>
<line number="336" hits="0" branch="false"/>
</lines>
</method>
<method name="checkPermissions" signature="(Lorg/apache/shiro/subject/PrincipalCollection;Ljava/util/Collection;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="357" hits="0" branch="false"/>
<line number="358" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="359" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="360" hits="0" branch="false"/>
<line number="361" hits="0" branch="false"/>
<line number="363" hits="0" branch="false"/>
</lines>
</method>
<method name="checkPermissions" signature="(Lorg/apache/shiro/subject/PrincipalCollection;[Ljava/lang/String;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="343" hits="0" branch="false"/>
<line number="344" 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="345" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="346" hits="0" branch="false"/>
<line number="349" hits="0" branch="false"/>
</lines>
</method>
<method name="checkRole" signature="(Lorg/apache/shiro/subject/PrincipalCollection;Ljava/lang/String;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="419" hits="0" branch="false"/>
<line number="420" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="421" hits="0" branch="false"/>
<line number="423" hits="0" branch="false"/>
</lines>
</method>
<method name="checkRoles" signature="(Lorg/apache/shiro/subject/PrincipalCollection;Ljava/util/Collection;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="430" 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="431" hits="0" branch="false"/>
</lines>
</method>
<method name="checkRoles" signature="(Lorg/apache/shiro/subject/PrincipalCollection;[Ljava/lang/String;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="437" hits="0" branch="false"/>
<line number="438" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="439" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="440" hits="0" branch="false"/>
<line number="443" hits="0" branch="false"/>
</lines>
</method>
<method name="getPermissionResolver" signature="()Lorg/apache/shiro/authz/permission/PermissionResolver;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="102" hits="68" branch="false"/>
</lines>
</method>
<method name="getRealms" signature="()Ljava/util/Collection;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="79" hits="230" branch="false"/>
</lines>
</method>
<method name="getRolePermissionResolver" signature="()Lorg/apache/shiro/authz/permission/RolePermissionResolver;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="154" hits="70" branch="false"/>
</lines>
</method>
<method name="hasAllRoles" signature="(Lorg/apache/shiro/subject/PrincipalCollection;Ljava/util/Collection;)Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="405" hits="0" branch="false"/>
<line number="406" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="407" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="408" hits="0" branch="false"/>
<line number="410" hits="0" branch="false"/>
<line number="411" hits="0" branch="false"/>
</lines>
</method>
<method name="hasRole" signature="(Lorg/apache/shiro/subject/PrincipalCollection;Ljava/lang/String;)Z" line-rate="1.0" branch-rate="0.8333333333333334">
<lines>
<line number="371" hits="42" branch="false"/>
<line number="372" hits="42" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="373" hits="42" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="374" hits="42" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="375" hits="20" branch="false"/>
<line number="377" hits="22" branch="false"/>
<line number="378" hits="22" branch="false"/>
</lines>
</method>
<method name="hasRoles" signature="(Lorg/apache/shiro/subject/PrincipalCollection;Ljava/util/List;)[Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="386" hits="0" branch="false"/>
<line number="387" 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="388" hits="0" branch="false"/>
<line number="389" hits="0" branch="false"/>
<line number="390" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="391" hits="0" branch="false"/>
<line number="392" hits="0" branch="false"/>
<line number="393" hits="0" branch="false"/>
<line number="396" hits="0" branch="false"/>
</lines>
</method>
<method name="isPermitted" signature="(Lorg/apache/shiro/subject/PrincipalCollection;Ljava/lang/String;)Z" line-rate="1.0" branch-rate="0.8333333333333334">
<lines>
<line number="220" hits="4" 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="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="223" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="224" hits="2" branch="false"/>
<line number="226" hits="2" branch="false"/>
<line number="227" hits="2" branch="false"/>
</lines>
</method>
<method name="isPermitted" signature="(Lorg/apache/shiro/subject/PrincipalCollection;Ljava/util/List;)[Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="269" hits="0" branch="false"/>
<line number="270" 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="271" hits="0" branch="false"/>
<line number="272" 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="275" hits="0" branch="false"/>
<line number="276" hits="0" branch="false"/>
<line number="279" hits="0" branch="false"/>
</lines>
</method>
<method name="isPermitted" signature="(Lorg/apache/shiro/subject/PrincipalCollection;Lorg/apache/shiro/authz/Permission;)Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="236" hits="0" branch="false"/>
<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="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="239" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="240" hits="0" branch="false"/>
<line number="242" hits="0" branch="false"/>
<line number="243" hits="0" branch="false"/>
</lines>
</method>
<method name="isPermitted" signature="(Lorg/apache/shiro/subject/PrincipalCollection;[Ljava/lang/String;)[Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="252" hits="0" branch="false"/>
<line number="253" 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="254" hits="0" branch="false"/>
<line number="255" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="256" hits="0" branch="false"/>
<line number="258" hits="0" branch="false"/>
<line number="260" hits="0" branch="false"/>
</lines>
</method>
<method name="isPermittedAll" signature="(Lorg/apache/shiro/subject/PrincipalCollection;Ljava/util/Collection;)Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="305" hits="0" branch="false"/>
<line number="306" 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="307" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<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="false"/>
<line number="313" hits="0" branch="false"/>
</lines>
</method>
<method name="isPermittedAll" signature="(Lorg/apache/shiro/subject/PrincipalCollection;[Ljava/lang/String;)Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="288" hits="0" branch="false"/>
<line number="289" 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="290" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="291" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="292" hits="0" branch="false"/>
<line number="296" hits="0" branch="false"/>
</lines>
</method>
<method name="setPermissionResolver" signature="(Lorg/apache/shiro/authz/permission/PermissionResolver;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="117" hits="0" branch="false"/>
<line number="118" hits="0" branch="false"/>
<line number="119" hits="0" branch="false"/>
</lines>
</method>
<method name="setRealms" signature="(Ljava/util/Collection;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="88" hits="68" branch="false"/>
<line number="89" hits="68" branch="false"/>
<line number="90" hits="68" branch="false"/>
<line number="91" hits="68" branch="false"/>
</lines>
</method>
<method name="setRolePermissionResolver" signature="(Lorg/apache/shiro/authz/permission/RolePermissionResolver;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="169" hits="2" branch="false"/>
<line number="170" hits="2" branch="false"/>
<line number="171" hits="2" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="60" hits="74" branch="false"/>
<line number="61" hits="74" 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="79" hits="230" branch="false"/>
<line number="88" hits="68" branch="false"/>
<line number="89" hits="68" branch="false"/>
<line number="90" hits="68" branch="false"/>
<line number="91" hits="68" branch="false"/>
<line number="102" hits="68" branch="false"/>
<line number="117" hits="0" branch="false"/>
<line number="118" hits="0" branch="false"/>
<line number="119" hits="0" branch="false"/>
<line number="134" hits="68" branch="false"/>
<line number="135" hits="68" branch="false"/>
<line number="136" hits="68" branch="true" condition-coverage="16% (1/6)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="0%"/>
<condition number="2" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="137" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</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="141" hits="0" branch="false"/>
<line number="143" hits="68" branch="false"/>
<line number="154" hits="70" branch="false"/>
<line number="169" hits="2" branch="false"/>
<line number="170" hits="2" branch="false"/>
<line number="171" hits="2" branch="false"/>
<line number="187" hits="70" branch="false"/>
<line number="188" hits="70" branch="false"/>
<line number="189" hits="70" branch="true" condition-coverage="66% (4/6)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="50%"/>
<condition number="2" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="190" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<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="194" hits="10" branch="false"/>
<line number="196" hits="70" branch="false"/>
<line number="206" hits="46" branch="false"/>
<line number="207" hits="46" 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="208" hits="0" branch="false"/>
<line number="210" hits="0" branch="false"/>
<line number="212" hits="46" branch="false"/>
<line number="220" hits="4" 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="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="223" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="224" hits="2" branch="false"/>
<line number="226" hits="2" branch="false"/>
<line number="227" hits="2" branch="false"/>
<line number="236" hits="0" branch="false"/>
<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="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="239" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="240" hits="0" branch="false"/>
<line number="242" hits="0" branch="false"/>
<line number="243" hits="0" branch="false"/>
<line number="252" hits="0" branch="false"/>
<line number="253" 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="254" hits="0" branch="false"/>
<line number="255" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="256" hits="0" branch="false"/>
<line number="258" hits="0" branch="false"/>
<line number="260" hits="0" branch="false"/>
<line number="269" hits="0" branch="false"/>
<line number="270" 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="271" hits="0" branch="false"/>
<line number="272" 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="275" hits="0" branch="false"/>
<line number="276" hits="0" branch="false"/>
<line number="279" hits="0" branch="false"/>
<line number="288" hits="0" branch="false"/>
<line number="289" 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="290" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="291" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="292" hits="0" branch="false"/>
<line number="296" hits="0" branch="false"/>
<line number="305" hits="0" branch="false"/>
<line number="306" 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="307" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<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="false"/>
<line number="313" hits="0" branch="false"/>
<line number="321" hits="0" branch="false"/>
<line number="322" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="323" hits="0" branch="false"/>
<line number="325" hits="0" branch="false"/>
<line number="332" hits="0" branch="false"/>
<line number="333" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="334" hits="0" branch="false"/>
<line number="336" hits="0" branch="false"/>
<line number="343" hits="0" branch="false"/>
<line number="344" 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="345" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="346" hits="0" branch="false"/>
<line number="349" hits="0" branch="false"/>
<line number="357" hits="0" branch="false"/>
<line number="358" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="359" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="360" hits="0" branch="false"/>
<line number="361" hits="0" branch="false"/>
<line number="363" hits="0" branch="false"/>
<line number="371" hits="42" branch="false"/>
<line number="372" hits="42" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="373" hits="42" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="374" hits="42" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="375" hits="20" branch="false"/>
<line number="377" hits="22" branch="false"/>
<line number="378" hits="22" branch="false"/>
<line number="386" hits="0" branch="false"/>
<line number="387" 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="388" hits="0" branch="false"/>
<line number="389" hits="0" branch="false"/>
<line number="390" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="391" hits="0" branch="false"/>
<line number="392" hits="0" branch="false"/>
<line number="393" hits="0" branch="false"/>
<line number="396" hits="0" branch="false"/>
<line number="405" hits="0" branch="false"/>
<line number="406" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="407" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="408" hits="0" branch="false"/>
<line number="410" hits="0" branch="false"/>
<line number="411" hits="0" branch="false"/>
<line number="419" hits="0" branch="false"/>
<line number="420" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="421" hits="0" branch="false"/>
<line number="423" hits="0" branch="false"/>
<line number="430" 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="431" hits="0" branch="false"/>
<line number="437" hits="0" branch="false"/>
<line number="438" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="439" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="440" hits="0" branch="false"/>
<line number="443" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.authz.Permission" filename="org/apache/shiro/authz/Permission.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.authz.SimpleAuthorizationInfo" filename="org/apache/shiro/authz/SimpleAuthorizationInfo.java" line-rate="0.5384615384615384" branch-rate="0.3333333333333333" complexity="1.4285714285714286">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="52" hits="80" branch="false"/>
<line number="53" hits="80" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/util/Set;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="59" hits="26" branch="false"/>
<line number="60" hits="26" branch="false"/>
<line number="61" hits="26" branch="false"/>
</lines>
</method>
<method name="addObjectPermission" signature="(Lorg/apache/shiro/authz/Permission;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="159" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="160" hits="0" branch="false"/>
<line number="162" hits="0" branch="false"/>
<line number="163" hits="0" branch="false"/>
</lines>
</method>
<method name="addObjectPermissions" signature="(Ljava/util/Collection;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="172" hits="48" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="173" hits="28" branch="false"/>
<line number="175" hits="48" branch="false"/>
<line number="176" hits="48" branch="false"/>
</lines>
</method>
<method name="addRole" signature="(Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="81" hits="76" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="82" hits="52" branch="false"/>
<line number="84" hits="76" branch="false"/>
<line number="85" hits="76" branch="false"/>
</lines>
</method>
<method name="addRoles" signature="(Ljava/util/Collection;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="93" 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="96" hits="0" branch="false"/>
<line number="97" hits="0" branch="false"/>
</lines>
</method>
<method name="addStringPermission" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="120" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="121" hits="0" branch="false"/>
<line number="123" hits="0" branch="false"/>
<line number="124" hits="0" branch="false"/>
</lines>
</method>
<method name="addStringPermissions" signature="(Ljava/util/Collection;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<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="135" hits="0" branch="false"/>
<line number="136" hits="0" branch="false"/>
</lines>
</method>
<method name="getObjectPermissions" signature="()Ljava/util/Collection;" line-rate="1.0" branch-rate="1.0">
<lines>
</lines>
</method>
<method name="getObjectPermissions" signature="()Ljava/util/Set;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="139" hits="24" branch="false"/>
</lines>
</method>
<method name="getRoles" signature="()Ljava/util/Collection;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="32" hits="64" branch="false"/>
</lines>
</method>
<method name="getRoles" signature="()Ljava/util/Set;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="64" hits="148" branch="false"/>
</lines>
</method>
<method name="getStringPermissions" signature="()Ljava/util/Collection;" line-rate="1.0" branch-rate="1.0">
<lines>
</lines>
</method>
<method name="getStringPermissions" signature="()Ljava/util/Set;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="100" hits="24" branch="false"/>
</lines>
</method>
<method name="setObjectPermissions" signature="(Ljava/util/Set;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="150" hits="0" branch="false"/>
<line number="151" hits="0" branch="false"/>
</lines>
</method>
<method name="setRoles" signature="(Ljava/util/Set;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="72" hits="22" branch="false"/>
<line number="73" hits="22" branch="false"/>
</lines>
</method>
<method name="setStringPermissions" signature="(Ljava/util/Set;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="111" hits="8" branch="false"/>
<line number="112" hits="8" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="32" hits="64" branch="false"/>
<line number="52" hits="80" branch="false"/>
<line number="53" hits="80" branch="false"/>
<line number="59" hits="26" branch="false"/>
<line number="60" hits="26" branch="false"/>
<line number="61" hits="26" branch="false"/>
<line number="64" hits="148" branch="false"/>
<line number="72" hits="22" branch="false"/>
<line number="73" hits="22" branch="false"/>
<line number="81" hits="76" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="82" hits="52" branch="false"/>
<line number="84" hits="76" branch="false"/>
<line number="85" hits="76" branch="false"/>
<line number="93" 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="96" hits="0" branch="false"/>
<line number="97" hits="0" branch="false"/>
<line number="100" hits="24" branch="false"/>
<line number="111" hits="8" branch="false"/>
<line number="112" hits="8" 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="121" hits="0" branch="false"/>
<line number="123" hits="0" branch="false"/>
<line number="124" 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="135" hits="0" branch="false"/>
<line number="136" hits="0" branch="false"/>
<line number="139" hits="24" branch="false"/>
<line number="150" hits="0" branch="false"/>
<line number="151" hits="0" branch="false"/>
<line number="159" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="160" hits="0" branch="false"/>
<line number="162" hits="0" branch="false"/>
<line number="163" hits="0" branch="false"/>
<line number="172" hits="48" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="173" hits="28" branch="false"/>
<line number="175" hits="48" branch="false"/>
<line number="176" hits="48" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.authz.SimpleRole" filename="org/apache/shiro/authz/SimpleRole.java" line-rate="0.22727272727272727" branch-rate="0.0" complexity="2.1538461538461537">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="37" hits="0" branch="false"/>
<line number="38" 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="40" hits="34" branch="false"/>
<line number="41" hits="34" branch="false"/>
<line number="42" hits="34" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/util/Set;)V" line-rate="0.2" branch-rate="1.0">
<lines>
<line number="34" hits="34" 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="add" signature="(Lorg/apache/shiro/authz/Permission;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="66" hits="0" branch="false"/>
<line number="67" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="68" hits="0" branch="false"/>
<line number="69" hits="0" branch="false"/>
<line number="71" hits="0" branch="false"/>
<line number="72" hits="0" branch="false"/>
</lines>
</method>
<method name="addAll" signature="(Ljava/util/Collection;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="75" 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="76" hits="0" branch="false"/>
<line number="77" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="78" hits="0" branch="false"/>
<line number="79" hits="0" branch="false"/>
<line number="81" hits="0" branch="false"/>
<line number="83" 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="102" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="103" hits="0" branch="false"/>
<line number="105" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="106" hits="0" branch="false"/>
<line number="108" 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="110" hits="0" branch="false"/>
</lines>
</method>
<method name="getName" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="50" hits="34" branch="false"/>
</lines>
</method>
<method name="getPermissions" signature="()Ljava/util/Set;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="58" hits="48" branch="false"/>
</lines>
</method>
<method name="hashCode" signature="()I" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="98" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
</lines>
</method>
<method name="isPermitted" signature="(Lorg/apache/shiro/authz/Permission;)Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="86" hits="0" branch="false"/>
<line number="87" 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="88" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="89" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="90" hits="0" branch="false"/>
<line number="92" hits="0" branch="false"/>
<line number="94" hits="0" branch="false"/>
</lines>
</method>
<method name="setName" signature="(Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="54" hits="34" branch="false"/>
<line number="55" hits="34" branch="false"/>
</lines>
</method>
<method name="setPermissions" signature="(Ljava/util/Set;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="62" hits="34" branch="false"/>
<line number="63" hits="34" branch="false"/>
</lines>
</method>
<method name="toString" signature="()Ljava/lang/String;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="114" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="34" hits="34" branch="false"/>
<line number="37" hits="0" branch="false"/>
<line number="38" hits="0" branch="false"/>
<line number="40" hits="34" branch="false"/>
<line number="41" hits="34" branch="false"/>
<line number="42" hits="34" 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="34" branch="false"/>
<line number="54" hits="34" branch="false"/>
<line number="55" hits="34" branch="false"/>
<line number="58" hits="48" branch="false"/>
<line number="62" hits="34" branch="false"/>
<line number="63" hits="34" branch="false"/>
<line number="66" hits="0" branch="false"/>
<line number="67" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="68" hits="0" branch="false"/>
<line number="69" hits="0" branch="false"/>
<line number="71" hits="0" branch="false"/>
<line number="72" hits="0" branch="false"/>
<line number="75" 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="76" hits="0" branch="false"/>
<line number="77" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="78" hits="0" branch="false"/>
<line number="79" hits="0" branch="false"/>
<line number="81" hits="0" branch="false"/>
<line number="83" hits="0" branch="false"/>
<line number="86" hits="0" branch="false"/>
<line number="87" 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="88" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="89" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="90" hits="0" branch="false"/>
<line number="92" hits="0" branch="false"/>
<line number="94" hits="0" branch="false"/>
<line number="98" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="102" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="103" hits="0" branch="false"/>
<line number="105" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="106" hits="0" branch="false"/>
<line number="108" 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="110" hits="0" branch="false"/>
<line number="114" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.authz.UnauthenticatedException" filename="org/apache/shiro/authz/UnauthenticatedException.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="37" hits="2" branch="false"/>
<line number="38" hits="2" 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="46" hits="10" branch="false"/>
<line number="47" hits="10" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/lang/Throwable;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="65" hits="2" branch="false"/>
<line number="66" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Throwable;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="55" hits="2" branch="false"/>
<line number="56" hits="2" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="37" hits="2" branch="false"/>
<line number="38" hits="2" branch="false"/>
<line number="46" hits="10" branch="false"/>
<line number="47" hits="10" branch="false"/>
<line number="55" hits="2" branch="false"/>
<line number="56" hits="2" branch="false"/>
<line number="65" hits="2" branch="false"/>
<line number="66" hits="2" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.authz.UnauthorizedException" filename="org/apache/shiro/authz/UnauthorizedException.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="32" hits="4" branch="false"/>
<line number="33" hits="4" 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="41" hits="16" branch="false"/>
<line number="42" hits="16" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/lang/Throwable;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="60" hits="4" branch="false"/>
<line number="61" hits="4" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Throwable;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="50" hits="4" branch="false"/>
<line number="51" hits="4" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="32" hits="4" branch="false"/>
<line number="33" hits="4" branch="false"/>
<line number="41" hits="16" branch="false"/>
<line number="42" hits="16" branch="false"/>
<line number="50" hits="4" branch="false"/>
<line number="51" hits="4" branch="false"/>
<line number="60" hits="4" branch="false"/>
<line number="61" hits="4" branch="false"/>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.authz.annotation" line-rate="1.0" branch-rate="1.0" complexity="0.0">
<classes>
<class name="org.apache.shiro.authz.annotation.Logical" filename="org/apache/shiro/authz/annotation/Logical.java" line-rate="1.0" branch-rate="1.0" complexity="0.0">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="27" hits="8" branch="false"/>
<line number="28" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;I)V" line-rate="1.0" branch-rate="1.0">
<lines>
</lines>
</method>
<method name="valueOf" signature="(Ljava/lang/String;)Lorg/apache/shiro/authz/annotation/Logical;" line-rate="1.0" branch-rate="1.0">
<lines>
</lines>
</method>
<method name="values" signature="()[Lorg/apache/shiro/authz/annotation/Logical;" line-rate="1.0" branch-rate="1.0">
<lines>
</lines>
</method>
</methods>
<lines>
<line number="27" hits="8" branch="false"/>
<line number="28" hits="2" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.authz.annotation.RequiresAuthentication" filename="org/apache/shiro/authz/annotation/RequiresAuthentication.java" line-rate="1.0" branch-rate="1.0" complexity="0.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.authz.annotation.RequiresGuest" filename="org/apache/shiro/authz/annotation/RequiresGuest.java" line-rate="1.0" branch-rate="1.0" complexity="0.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.authz.annotation.RequiresPermissions" filename="org/apache/shiro/authz/annotation/RequiresPermissions.java" line-rate="1.0" branch-rate="1.0" complexity="0.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.authz.annotation.RequiresRoles" filename="org/apache/shiro/authz/annotation/RequiresRoles.java" line-rate="1.0" branch-rate="1.0" complexity="0.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.authz.annotation.RequiresUser" filename="org/apache/shiro/authz/annotation/RequiresUser.java" line-rate="1.0" branch-rate="1.0" complexity="0.0">
<methods>
</methods>
<lines>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.authz.aop" line-rate="0.26666666666666666" branch-rate="0.3" complexity="2.090909090909091">
<classes>
<class name="org.apache.shiro.authz.aop.AnnotationsAuthorizingMethodInterceptor" filename="org/apache/shiro/authz/aop/AnnotationsAuthorizingMethodInterceptor.java" line-rate="0.0" branch-rate="0.0" complexity="2.0">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="54" hits="0" branch="false"/>
<line number="55" 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="60" hits="0" branch="false"/>
<line number="61" hits="0" branch="false"/>
</lines>
</method>
<method name="assertAuthorized" signature="(Lorg/apache/shiro/aop/MethodInvocation;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="96" hits="0" branch="false"/>
<line number="97" 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="98" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="99" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="100" hits="0" branch="false"/>
<line number="102" hits="0" branch="false"/>
<line number="104" hits="0" branch="false"/>
</lines>
</method>
<method name="getMethodInterceptors" signature="()Ljava/util/Collection;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="74" hits="0" branch="false"/>
</lines>
</method>
<method name="setMethodInterceptors" signature="(Ljava/util/Collection;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="83" hits="0" branch="false"/>
<line number="84" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="54" hits="0" branch="false"/>
<line number="55" 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="60" hits="0" branch="false"/>
<line number="61" hits="0" branch="false"/>
<line number="74" hits="0" branch="false"/>
<line number="83" hits="0" branch="false"/>
<line number="84" hits="0" branch="false"/>
<line number="96" hits="0" branch="false"/>
<line number="97" 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="98" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="99" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="100" hits="0" branch="false"/>
<line number="102" hits="0" branch="false"/>
<line number="104" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.authz.aop.AuthenticatedAnnotationHandler" filename="org/apache/shiro/authz/aop/AuthenticatedAnnotationHandler.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="40" hits="0" branch="false"/>
<line number="41" hits="0" branch="false"/>
</lines>
</method>
<method name="assertAuthorized" signature="(Ljava/lang/annotation/Annotation;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="52" 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="53" hits="0" branch="false"/>
<line number="55" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="40" hits="0" branch="false"/>
<line number="41" hits="0" branch="false"/>
<line number="52" 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="53" hits="0" branch="false"/>
<line number="55" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.authz.aop.AuthenticatedAnnotationMethodInterceptor" filename="org/apache/shiro/authz/aop/AuthenticatedAnnotationMethodInterceptor.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="39" hits="0" branch="false"/>
<line number="40" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/aop/AnnotationResolver;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="47" hits="0" branch="false"/>
<line number="48" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="39" hits="0" branch="false"/>
<line number="40" hits="0" branch="false"/>
<line number="47" hits="0" branch="false"/>
<line number="48" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.authz.aop.AuthorizingAnnotationHandler" filename="org/apache/shiro/authz/aop/AuthorizingAnnotationHandler.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
<method name="&lt;init&gt;" signature="(Ljava/lang/Class;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="41" hits="10" branch="false"/>
<line number="42" hits="10" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="41" hits="10" branch="false"/>
<line number="42" hits="10" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.authz.aop.AuthorizingAnnotationMethodInterceptor" filename="org/apache/shiro/authz/aop/AuthorizingAnnotationMethodInterceptor.java" line-rate="0.0" branch-rate="0.0" complexity="1.75">
<methods>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/authz/aop/AuthorizingAnnotationHandler;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="43" hits="0" branch="false"/>
<line number="44" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/authz/aop/AuthorizingAnnotationHandler;Lorg/apache/shiro/aop/AnnotationResolver;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="54" hits="0" branch="false"/>
<line number="55" hits="0" branch="false"/>
</lines>
</method>
<method name="assertAuthorized" signature="(Lorg/apache/shiro/aop/MethodInvocation;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="84" hits="0" branch="false"/>
<line number="86" hits="0" branch="false"/>
<line number="90" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="91" hits="0" branch="false"/>
<line number="92" hits="0" branch="false"/>
<line number="93" hits="0" branch="false"/>
</lines>
</method>
<method name="invoke" signature="(Lorg/apache/shiro/aop/MethodInvocation;)Ljava/lang/Object;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="67" hits="0" branch="false"/>
<line number="68" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="43" hits="0" branch="false"/>
<line number="44" hits="0" branch="false"/>
<line number="54" hits="0" branch="false"/>
<line number="55" hits="0" branch="false"/>
<line number="67" hits="0" branch="false"/>
<line number="68" hits="0" branch="false"/>
<line number="84" hits="0" branch="false"/>
<line number="86" hits="0" branch="false"/>
<line number="90" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="91" hits="0" branch="false"/>
<line number="92" hits="0" branch="false"/>
<line number="93" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.authz.aop.AuthorizingMethodInterceptor" filename="org/apache/shiro/authz/aop/AuthorizingMethodInterceptor.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="30" hits="0" branch="false"/>
</lines>
</method>
<method name="invoke" signature="(Lorg/apache/shiro/aop/MethodInvocation;)Ljava/lang/Object;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="38" hits="0" branch="false"/>
<line number="39" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="30" hits="0" branch="false"/>
<line number="38" hits="0" branch="false"/>
<line number="39" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.authz.aop.GuestAnnotationHandler" filename="org/apache/shiro/authz/aop/GuestAnnotationHandler.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="46" hits="0" branch="false"/>
<line number="47" hits="0" branch="false"/>
</lines>
</method>
<method name="assertAuthorized" signature="(Ljava/lang/annotation/Annotation;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="60" 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="61" hits="0" branch="false"/>
<line number="65" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="46" hits="0" branch="false"/>
<line number="47" hits="0" branch="false"/>
<line number="60" 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="61" hits="0" branch="false"/>
<line number="65" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.authz.aop.GuestAnnotationMethodInterceptor" filename="org/apache/shiro/authz/aop/GuestAnnotationMethodInterceptor.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="40" hits="0" branch="false"/>
<line number="41" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/aop/AnnotationResolver;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="48" hits="0" branch="false"/>
<line number="49" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="40" hits="0" branch="false"/>
<line number="41" hits="0" branch="false"/>
<line number="48" hits="0" branch="false"/>
<line number="49" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.authz.aop.PermissionAnnotationHandler" filename="org/apache/shiro/authz/aop/PermissionAnnotationHandler.java" line-rate="0.631578947368421" branch-rate="0.2857142857142857" complexity="4.333333333333333">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="43" hits="4" branch="false"/>
<line number="44" hits="4" branch="false"/>
</lines>
</method>
<method name="assertAuthorized" signature="(Ljava/lang/annotation/Annotation;)V" line-rate="0.5333333333333333" branch-rate="0.2857142857142857">
<lines>
<line number="67" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="69" hits="4" branch="false"/>
<line number="70" hits="4" branch="false"/>
<line number="71" hits="4" branch="false"/>
<line number="73" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="74" hits="2" branch="false"/>
<line number="75" hits="0" branch="false"/>
<line number="77" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="78" hits="2" branch="false"/>
<line number="79" 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="83" hits="0" branch="false"/>
<line number="84" 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="86" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="89" hits="0" branch="false"/>
</lines>
</method>
<method name="getAnnotationValue" signature="(Ljava/lang/annotation/Annotation;)[Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="53" hits="4" branch="false"/>
<line number="54" hits="4" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="43" hits="4" branch="false"/>
<line number="44" hits="4" branch="false"/>
<line number="53" hits="4" branch="false"/>
<line number="54" hits="4" branch="false"/>
<line number="67" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="69" hits="4" branch="false"/>
<line number="70" hits="4" branch="false"/>
<line number="71" hits="4" branch="false"/>
<line number="73" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="74" hits="2" branch="false"/>
<line number="75" hits="0" branch="false"/>
<line number="77" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="78" hits="2" branch="false"/>
<line number="79" 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="83" hits="0" branch="false"/>
<line number="84" 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="86" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="89" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.authz.aop.PermissionAnnotationMethodInterceptor" filename="org/apache/shiro/authz/aop/PermissionAnnotationMethodInterceptor.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="40" hits="0" branch="false"/>
<line number="41" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/aop/AnnotationResolver;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="48" hits="0" branch="false"/>
<line number="49" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="40" hits="0" branch="false"/>
<line number="41" hits="0" branch="false"/>
<line number="48" hits="0" branch="false"/>
<line number="49" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.authz.aop.RoleAnnotationHandler" filename="org/apache/shiro/authz/aop/RoleAnnotationHandler.java" line-rate="0.875" branch-rate="0.7857142857142857" complexity="6.0">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="41" hits="6" branch="false"/>
<line number="42" hits="6" branch="false"/>
</lines>
</method>
<method name="assertAuthorized" signature="(Ljava/lang/annotation/Annotation;)V" line-rate="0.8571428571428571" branch-rate="0.7857142857142857">
<lines>
<line number="54" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="56" hits="6" branch="false"/>
<line number="57" hits="6" branch="false"/>
<line number="59" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="60" hits="2" branch="false"/>
<line number="61" hits="0" branch="false"/>
<line number="63" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="64" hits="2" branch="false"/>
<line number="65" hits="0" branch="false"/>
<line number="67" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="69" hits="2" branch="false"/>
<line number="70" hits="2" 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="72" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="74" hits="2" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="41" hits="6" branch="false"/>
<line number="42" 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="56" hits="6" branch="false"/>
<line number="57" hits="6" branch="false"/>
<line number="59" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="60" hits="2" branch="false"/>
<line number="61" hits="0" branch="false"/>
<line number="63" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="64" hits="2" branch="false"/>
<line number="65" hits="0" branch="false"/>
<line number="67" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="69" hits="2" branch="false"/>
<line number="70" hits="2" 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="72" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="74" hits="2" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.authz.aop.RoleAnnotationMethodInterceptor" filename="org/apache/shiro/authz/aop/RoleAnnotationMethodInterceptor.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="38" hits="0" branch="false"/>
<line number="39" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/aop/AnnotationResolver;)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="38" hits="0" branch="false"/>
<line number="39" 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.authz.aop.UserAnnotationHandler" filename="org/apache/shiro/authz/aop/UserAnnotationHandler.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="46" hits="0" branch="false"/>
<line number="47" hits="0" branch="false"/>
</lines>
</method>
<method name="assertAuthorized" signature="(Ljava/lang/annotation/Annotation;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="60" 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="61" hits="0" branch="false"/>
<line number="65" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="46" hits="0" branch="false"/>
<line number="47" hits="0" branch="false"/>
<line number="60" 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="61" hits="0" branch="false"/>
<line number="65" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.authz.aop.UserAnnotationMethodInterceptor" filename="org/apache/shiro/authz/aop/UserAnnotationMethodInterceptor.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="42" hits="0" branch="false"/>
<line number="43" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/aop/AnnotationResolver;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="51" hits="0" branch="false"/>
<line number="52" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="42" hits="0" branch="false"/>
<line number="43" hits="0" branch="false"/>
<line number="51" hits="0" branch="false"/>
<line number="52" hits="0" branch="false"/>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.authz.permission" line-rate="0.6846153846153846" branch-rate="0.5714285714285714" complexity="2.25">
<classes>
<class name="org.apache.shiro.authz.permission.AllPermission" filename="org/apache/shiro/authz/permission/AllPermission.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="36" hits="6" branch="false"/>
</lines>
</method>
<method name="implies" signature="(Lorg/apache/shiro/authz/Permission;)Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="45" hits="4" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="36" hits="6" branch="false"/>
<line number="45" hits="4" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.authz.permission.DomainPermission" filename="org/apache/shiro/authz/permission/DomainPermission.java" line-rate="0.5081967213114754" branch-rate="0.22727272727272727" complexity="2.1538461538461537">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="44" hits="2" branch="false"/>
<line number="45" hits="2" branch="false"/>
<line number="46" hits="2" branch="false"/>
<line number="47" hits="2" 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="49" hits="4" branch="false"/>
<line number="50" hits="4" branch="false"/>
<line number="51" hits="4" branch="false"/>
<line number="52" hits="4" branch="false"/>
<line number="53" hits="4" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="55" hits="4" branch="false"/>
<line number="56" hits="4" branch="false"/>
<line number="57" hits="4" branch="false"/>
<line number="58" hits="4" branch="false"/>
<line number="59" hits="4" branch="false"/>
<line number="60" hits="4" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/util/Set;Ljava/util/Set;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="62" hits="0" branch="false"/>
<line number="63" hits="0" branch="false"/>
<line number="64" hits="0" branch="false"/>
<line number="65" hits="0" branch="false"/>
</lines>
</method>
<method name="encodeParts" signature="(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line-rate="0.7272727272727273" branch-rate="0.5">
<lines>
<line number="68" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="69" hits="0" branch="false"/>
<line number="71" hits="8" branch="false"/>
<line number="73" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</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="78" hits="8" branch="false"/>
<line number="80" hits="8" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="81" hits="4" branch="false"/>
<line number="83" hits="8" branch="false"/>
<line number="84" hits="8" branch="false"/>
</lines>
</method>
<method name="getActions" signature="()Ljava/util/Set;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="118" hits="10" branch="false"/>
</lines>
</method>
<method name="getDomain" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="106" hits="10" branch="false"/>
</lines>
</method>
<method name="getDomain" signature="(Ljava/lang/Class;)Ljava/lang/String;" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="96" hits="12" branch="false"/>
<line number="98" hits="12" branch="false"/>
<line number="99" hits="12" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="100" hits="12" branch="false"/>
<line number="102" hits="12" branch="false"/>
</lines>
</method>
<method name="getTargets" signature="()Ljava/util/Set;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="130" hits="10" branch="false"/>
</lines>
</method>
<method name="setActions" signature="(Ljava/util/Set;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="122" 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="123" hits="0" branch="false"/>
<line number="125" hits="0" branch="false"/>
<line number="126" hits="0" branch="false"/>
<line number="127" hits="0" branch="false"/>
</lines>
</method>
<method name="setDomain" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="110" 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="111" 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"/>
</lines>
</method>
<method name="setParts" signature="(Ljava/lang/String;Ljava/util/Set;Ljava/util/Set;)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"/>
<line number="90" hits="0" branch="false"/>
<line number="91" hits="0" branch="false"/>
<line number="92" hits="0" branch="false"/>
<line number="93" hits="0" branch="false"/>
</lines>
</method>
<method name="setTargets" signature="(Ljava/util/Set;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="134" hits="0" branch="false"/>
<line number="135" 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="136" hits="0" branch="false"/>
<line number="138" hits="0" branch="false"/>
<line number="139" hits="0" branch="false"/>
<line number="140" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="44" hits="2" branch="false"/>
<line number="45" hits="2" branch="false"/>
<line number="46" hits="2" branch="false"/>
<line number="47" hits="2" branch="false"/>
<line number="49" hits="4" branch="false"/>
<line number="50" hits="4" branch="false"/>
<line number="51" hits="4" branch="false"/>
<line number="52" hits="4" branch="false"/>
<line number="53" hits="4" branch="false"/>
<line number="55" hits="4" branch="false"/>
<line number="56" hits="4" branch="false"/>
<line number="57" hits="4" branch="false"/>
<line number="58" hits="4" branch="false"/>
<line number="59" hits="4" branch="false"/>
<line number="60" hits="4" 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="65" hits="0" branch="false"/>
<line number="68" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="69" hits="0" branch="false"/>
<line number="71" hits="8" branch="false"/>
<line number="73" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</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="78" hits="8" branch="false"/>
<line number="80" hits="8" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="81" hits="4" branch="false"/>
<line number="83" hits="8" branch="false"/>
<line number="84" hits="8" 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="92" hits="0" branch="false"/>
<line number="93" hits="0" branch="false"/>
<line number="96" hits="12" branch="false"/>
<line number="98" hits="12" branch="false"/>
<line number="99" hits="12" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="100" hits="12" branch="false"/>
<line number="102" hits="12" branch="false"/>
<line number="106" hits="10" branch="false"/>
<line number="110" 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="111" 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="118" hits="10" branch="false"/>
<line number="122" 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="123" hits="0" branch="false"/>
<line number="125" hits="0" branch="false"/>
<line number="126" hits="0" branch="false"/>
<line number="127" hits="0" branch="false"/>
<line number="130" hits="10" branch="false"/>
<line number="134" hits="0" branch="false"/>
<line number="135" 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="136" hits="0" branch="false"/>
<line number="138" hits="0" branch="false"/>
<line number="139" hits="0" branch="false"/>
<line number="140" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.authz.permission.InvalidPermissionStringException" filename="org/apache/shiro/authz/permission/InvalidPermissionStringException.java" line-rate="0.0" branch-rate="1.0" complexity="1.0">
<methods>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="42" hits="0" branch="false"/>
<line number="43" hits="0" branch="false"/>
<line number="44" hits="0" branch="false"/>
</lines>
</method>
<method name="getPermissionString" signature="()Ljava/lang/String;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="53" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="42" hits="0" branch="false"/>
<line number="43" hits="0" branch="false"/>
<line number="44" hits="0" branch="false"/>
<line number="53" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.authz.permission.PermissionResolver" filename="org/apache/shiro/authz/permission/PermissionResolver.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.authz.permission.PermissionResolverAware" filename="org/apache/shiro/authz/permission/PermissionResolverAware.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.authz.permission.RolePermissionResolver" filename="org/apache/shiro/authz/permission/RolePermissionResolver.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.authz.permission.RolePermissionResolverAware" filename="org/apache/shiro/authz/permission/RolePermissionResolverAware.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.authz.permission.WildcardPermission" filename="org/apache/shiro/authz/permission/WildcardPermission.java" line-rate="0.8852459016393442" branch-rate="0.7941176470588235" complexity="3.272727272727273">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="135" hits="10" branch="false"/>
<line number="136" hits="10" 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="139" hits="208" branch="false"/>
<line number="140" hits="200" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Z)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="142" hits="220" branch="false"/>
<line number="143" hits="220" branch="false"/>
<line number="144" hits="212" branch="false"/>
</lines>
</method>
<method name="equals" signature="(Ljava/lang/Object;)Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="243" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="244" hits="0" branch="false"/>
<line number="245" hits="0" branch="false"/>
<line number="247" hits="0" branch="false"/>
</lines>
</method>
<method name="getParts" signature="()Ljava/util/List;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="188" hits="920" branch="false"/>
</lines>
</method>
<method name="hashCode" signature="()I" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="251" hits="230" branch="false"/>
</lines>
</method>
<method name="implies" signature="(Lorg/apache/shiro/authz/Permission;)Z" line-rate="0.9444444444444444" branch-rate="0.9285714285714286">
<lines>
<line number="197" hits="162" 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="201" hits="162" branch="false"/>
<line number="203" hits="162" branch="false"/>
<line number="205" hits="162" branch="false"/>
<line number="206" hits="162" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="209" hits="304" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="210" hits="22" branch="false"/>
<line number="212" hits="282" branch="false"/>
<line number="213" hits="282" 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="214" hits="42" branch="false"/>
<line number="216" hits="240" branch="false"/>
<line number="218" hits="240" branch="false"/>
<line number="221" hits="154" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="222" hits="36" branch="false"/>
<line number="223" hits="36" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="224" hits="8" branch="false"/>
<line number="228" hits="90" branch="false"/>
</lines>
</method>
<method name="lowercase" signature="(Ljava/util/Set;)Ljava/util/Set;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="177" hits="396" branch="false"/>
<line number="178" hits="396" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="179" hits="462" branch="false"/>
<line number="180" hits="462" branch="false"/>
<line number="181" hits="396" branch="false"/>
</lines>
</method>
<method name="setParts" signature="(Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="147" hits="10" branch="false"/>
<line number="148" hits="10" branch="false"/>
</lines>
</method>
<method name="setParts" signature="(Ljava/lang/String;Z)V" line-rate="0.9375" branch-rate="0.75">
<lines>
<line number="151" hits="230" branch="false"/>
<line number="153" hits="230" 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="154" hits="6" branch="false"/>
<line number="157" hits="224" branch="false"/>
<line number="159" hits="224" branch="false"/>
<line number="160" hits="224" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="161" hits="396" branch="false"/>
<line number="162" hits="396" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="163" hits="396" branch="false"/>
<line number="165" hits="396" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="166" hits="2" branch="false"/>
<line number="168" hits="394" branch="false"/>
<line number="169" hits="394" branch="false"/>
<line number="171" hits="222" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="172" hits="0" branch="false"/>
<line number="174" hits="222" branch="false"/>
</lines>
</method>
<method name="toString" signature="()Ljava/lang/String;" line-rate="0.8571428571428571" branch-rate="0.75">
<lines>
<line number="232" hits="8" branch="false"/>
<line number="233" hits="8" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="234" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="235" hits="0" branch="false"/>
<line number="237" hits="8" branch="false"/>
<line number="238" hits="8" branch="false"/>
<line number="239" hits="8" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="135" hits="10" branch="false"/>
<line number="136" hits="10" branch="false"/>
<line number="139" hits="208" branch="false"/>
<line number="140" hits="200" branch="false"/>
<line number="142" hits="220" branch="false"/>
<line number="143" hits="220" branch="false"/>
<line number="144" hits="212" branch="false"/>
<line number="147" hits="10" branch="false"/>
<line number="148" hits="10" branch="false"/>
<line number="151" hits="230" branch="false"/>
<line number="153" hits="230" 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="154" hits="6" branch="false"/>
<line number="157" hits="224" branch="false"/>
<line number="159" hits="224" branch="false"/>
<line number="160" hits="224" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="161" hits="396" branch="false"/>
<line number="162" hits="396" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="163" hits="396" branch="false"/>
<line number="165" hits="396" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="166" hits="2" branch="false"/>
<line number="168" hits="394" branch="false"/>
<line number="169" hits="394" branch="false"/>
<line number="171" hits="222" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="172" hits="0" branch="false"/>
<line number="174" hits="222" branch="false"/>
<line number="177" hits="396" branch="false"/>
<line number="178" hits="396" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="179" hits="462" branch="false"/>
<line number="180" hits="462" branch="false"/>
<line number="181" hits="396" branch="false"/>
<line number="188" hits="920" branch="false"/>
<line number="197" hits="162" 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="201" hits="162" branch="false"/>
<line number="203" hits="162" branch="false"/>
<line number="205" hits="162" branch="false"/>
<line number="206" hits="162" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="209" hits="304" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="210" hits="22" branch="false"/>
<line number="212" hits="282" branch="false"/>
<line number="213" hits="282" 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="214" hits="42" branch="false"/>
<line number="216" hits="240" branch="false"/>
<line number="218" hits="240" branch="false"/>
<line number="221" hits="154" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="222" hits="36" branch="false"/>
<line number="223" hits="36" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="224" hits="8" branch="false"/>
<line number="228" hits="90" branch="false"/>
<line number="232" hits="8" branch="false"/>
<line number="233" hits="8" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="234" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="235" hits="0" branch="false"/>
<line number="237" hits="8" branch="false"/>
<line number="238" hits="8" branch="false"/>
<line number="239" hits="8" branch="false"/>
<line number="243" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="244" hits="0" branch="false"/>
<line number="245" hits="0" branch="false"/>
<line number="247" hits="0" branch="false"/>
<line number="251" hits="230" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.authz.permission.WildcardPermissionResolver" filename="org/apache/shiro/authz/permission/WildcardPermissionResolver.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="30" hits="136" branch="false"/>
</lines>
</method>
<method name="resolvePermission" signature="(Ljava/lang/String;)Lorg/apache/shiro/authz/Permission;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="41" hits="86" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="30" hits="136" branch="false"/>
<line number="41" hits="86" branch="false"/>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.cache" line-rate="0.42028985507246375" branch-rate="0.2727272727272727" complexity="1.5714285714285714">
<classes>
<class name="org.apache.shiro.cache.AbstractCacheManager" filename="org/apache/shiro/cache/AbstractCacheManager.java" line-rate="0.59375" branch-rate="0.2857142857142857" complexity="2.6">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="46" hits="6" branch="false"/>
<line number="47" hits="6" branch="false"/>
<line number="48" hits="6" branch="false"/>
</lines>
</method>
<method name="destroy" signature="()V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="95" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="96" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="97" hits="0" branch="false"/>
<line number="98" hits="0" branch="false"/>
<line number="99" hits="0" branch="false"/>
<line number="101" hits="0" branch="false"/>
</lines>
</method>
<method name="getCache" signature="(Ljava/lang/String;)Lorg/apache/shiro/cache/Cache;" line-rate="0.7777777777777778" branch-rate="0.5">
<lines>
<line number="60" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="61" hits="0" branch="false"/>
<line number="66" hits="4" branch="false"/>
<line number="67" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="68" hits="4" branch="false"/>
<line number="69" hits="4" branch="false"/>
<line number="70" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="71" hits="0" branch="false"/>
<line number="76" hits="4" branch="false"/>
</lines>
</method>
<method name="toString" signature="()Ljava/lang/String;" line-rate="0.6428571428571429" branch-rate="0.25">
<lines>
<line number="104" hits="6" branch="false"/>
<line number="105" hits="6" branch="false"/>
<line number="106" hits="6" branch="false"/>
<line number="107" hits="6" branch="false"/>
<line number="108" hits="6" branch="false"/>
<line number="109" hits="6" branch="false"/>
<line number="110" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<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="116" hits="0" branch="false"/>
<line number="117" hits="6" branch="false"/>
<line number="118" hits="6" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="46" hits="6" branch="false"/>
<line number="47" hits="6" branch="false"/>
<line number="48" hits="6" branch="false"/>
<line number="60" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="61" hits="0" branch="false"/>
<line number="66" hits="4" branch="false"/>
<line number="67" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="68" hits="4" branch="false"/>
<line number="69" hits="4" branch="false"/>
<line number="70" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="71" hits="0" branch="false"/>
<line number="76" hits="4" branch="false"/>
<line number="95" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="96" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="97" hits="0" branch="false"/>
<line number="98" hits="0" branch="false"/>
<line number="99" hits="0" branch="false"/>
<line number="101" hits="0" branch="false"/>
<line number="104" hits="6" branch="false"/>
<line number="105" hits="6" branch="false"/>
<line number="106" hits="6" branch="false"/>
<line number="107" hits="6" branch="false"/>
<line number="108" hits="6" branch="false"/>
<line number="109" hits="6" branch="false"/>
<line number="110" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<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="116" hits="0" branch="false"/>
<line number="117" hits="6" branch="false"/>
<line number="118" hits="6" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.cache.Cache" filename="org/apache/shiro/cache/Cache.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.cache.CacheException" filename="org/apache/shiro/cache/CacheException.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="36" hits="0" branch="false"/>
<line number="37" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;)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="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/lang/Throwable;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="64" hits="0" branch="false"/>
<line number="65" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Throwable;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="54" hits="0" branch="false"/>
<line number="55" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="36" hits="0" branch="false"/>
<line number="37" hits="0" branch="false"/>
<line number="45" hits="0" branch="false"/>
<line number="46" hits="0" branch="false"/>
<line number="54" hits="0" branch="false"/>
<line number="55" hits="0" branch="false"/>
<line number="64" hits="0" branch="false"/>
<line number="65" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.cache.CacheManager" filename="org/apache/shiro/cache/CacheManager.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.cache.CacheManagerAware" filename="org/apache/shiro/cache/CacheManagerAware.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.cache.MapCache" filename="org/apache/shiro/cache/MapCache.java" line-rate="0.2962962962962963" branch-rate="0.25" complexity="1.8888888888888888">
<methods>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/util/Map;)V" line-rate="0.75" branch-rate="0.5">
<lines>
<line number="46" hits="4" branch="false"/>
<line number="47" hits="4" 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="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="51" hits="0" branch="false"/>
<line number="53" hits="4" branch="false"/>
<line number="54" hits="4" branch="false"/>
<line number="55" hits="4" branch="false"/>
</lines>
</method>
<method name="clear" signature="()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="get" signature="(Ljava/lang/Object;)Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="58" hits="12" branch="false"/>
</lines>
</method>
<method name="keys" signature="()Ljava/util/Set;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="78" hits="0" branch="false"/>
<line number="79" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="80" hits="0" branch="false"/>
<line number="82" hits="0" branch="false"/>
</lines>
</method>
<method name="put" signature="(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="62" hits="12" branch="false"/>
</lines>
</method>
<method name="remove" signature="(Ljava/lang/Object;)Ljava/lang/Object;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="66" hits="0" branch="false"/>
</lines>
</method>
<method name="size" signature="()I" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="74" hits="0" branch="false"/>
</lines>
</method>
<method name="toString" signature="()Ljava/lang/String;" line-rate="0.0" branch-rate="1.0">
<lines>
<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="98" hits="0" branch="false"/>
</lines>
</method>
<method name="values" signature="()Ljava/util/Collection;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="86" 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"/>
</lines>
</method>
</methods>
<lines>
<line number="46" hits="4" branch="false"/>
<line number="47" hits="4" 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="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="51" hits="0" branch="false"/>
<line number="53" hits="4" branch="false"/>
<line number="54" hits="4" branch="false"/>
<line number="55" hits="4" branch="false"/>
<line number="58" hits="12" branch="false"/>
<line number="62" hits="12" 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="74" hits="0" branch="false"/>
<line number="78" hits="0" branch="false"/>
<line number="79" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="80" hits="0" branch="false"/>
<line number="82" hits="0" branch="false"/>
<line number="86" 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="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="98" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.cache.MemoryConstrainedCacheManager" filename="org/apache/shiro/cache/MemoryConstrainedCacheManager.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="36" hits="2" branch="false"/>
</lines>
</method>
<method name="createCache" signature="(Ljava/lang/String;)Lorg/apache/shiro/cache/Cache;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="46" hits="2" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="36" hits="2" branch="false"/>
<line number="46" hits="2" branch="false"/>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.codec" line-rate="0.62751677852349" branch-rate="0.539568345323741" complexity="3.6666666666666665">
<classes>
<class name="org.apache.shiro.codec.Base64" filename="org/apache/shiro/codec/Base64.java" line-rate="0.7564102564102564" branch-rate="0.5774647887323944" complexity="4.666666666666667">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="56" hits="2" branch="false"/>
<line number="106" hits="2" branch="false"/>
<line number="117" hits="2" branch="false"/>
<line number="122" hits="512" branch="false"/>
<line number="123" hits="510" branch="false"/>
<line number="125" hits="54" branch="false"/>
<line number="126" hits="52" branch="false"/>
<line number="128" hits="54" branch="false"/>
<line number="129" hits="52" branch="false"/>
<line number="131" hits="22" branch="false"/>
<line number="132" hits="20" branch="false"/>
<line number="135" hits="2" branch="false"/>
<line number="136" hits="2" branch="false"/>
<line number="138" hits="54" branch="false"/>
<line number="139" hits="52" branch="false"/>
<line number="142" hits="54" branch="false"/>
<line number="143" hits="52" branch="false"/>
<line number="146" hits="22" branch="false"/>
<line number="147" hits="20" branch="false"/>
<line number="150" hits="2" branch="false"/>
<line number="151" hits="2" branch="false"/>
<line number="152" hits="2" 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"/>
</lines>
</method>
<method name="decode" signature="(Ljava/lang/String;)[B" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="413" hits="32" branch="false"/>
<line number="414" hits="32" branch="false"/>
</lines>
</method>
<method name="decode" signature="([B)[B" line-rate="0.9310344827586207" branch-rate="0.8571428571428571">
<lines>
<line number="425" hits="32" branch="false"/>
<line number="428" hits="32" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="429" hits="0" branch="false"/>
<line number="432" hits="32" branch="false"/>
<line number="438" hits="32" branch="false"/>
<line number="442" hits="32" branch="false"/>
<line number="444" hits="82" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="445" hits="50" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="446" hits="0" branch="false"/>
<line number="449" hits="32" branch="false"/>
<line number="452" hits="324" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="453" hits="292" branch="false"/>
<line number="454" hits="292" branch="false"/>
<line number="455" hits="292" branch="false"/>
<line number="457" hits="292" branch="false"/>
<line number="458" hits="292" branch="false"/>
<line number="460" hits="292" 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="462" hits="264" branch="false"/>
<line number="463" hits="264" branch="false"/>
<line number="465" hits="264" branch="false"/>
<line number="466" hits="264" branch="false"/>
<line number="467" hits="264" branch="false"/>
<line number="468" hits="28" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="470" hits="22" branch="false"/>
<line number="473" hits="6" branch="false"/>
<line number="474" hits="6" branch="false"/>
<line number="475" hits="6" branch="false"/>
<line number="477" hits="292" branch="false"/>
<line number="479" hits="32" branch="false"/>
</lines>
</method>
<method name="decodeToString" signature="(Ljava/lang/String;)Ljava/lang/String;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="391" hits="0" branch="false"/>
<line number="392" hits="0" branch="false"/>
</lines>
</method>
<method name="decodeToString" signature="([B)Ljava/lang/String;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="402" hits="0" branch="false"/>
<line number="403" hits="0" branch="false"/>
</lines>
</method>
<method name="discardNonBase64" signature="([B)[B" line-rate="1.0" branch-rate="0.75">
<lines>
<line number="490" hits="32" branch="false"/>
<line number="491" hits="32" branch="false"/>
<line number="493" hits="1212" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="494" hits="1180" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="495" hits="1180" branch="false"/>
<line number="499" hits="32" branch="false"/>
<line number="501" hits="32" branch="false"/>
<line number="503" hits="32" branch="false"/>
</lines>
</method>
<method name="discardWhitespace" signature="([B)[B" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="203" hits="0" branch="false"/>
<line number="204" hits="0" branch="false"/>
<line number="206" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="207" hits="0" branch="true" condition-coverage="0% (0/5)">
<conditions>
<condition number="0" type="switch" coverage="0%"/>
</conditions>
</line>
<line number="212" hits="0" branch="false"/>
<line number="214" hits="0" branch="false"/>
<line number="218" hits="0" branch="false"/>
<line number="220" hits="0" branch="false"/>
<line number="222" hits="0" branch="false"/>
</lines>
</method>
<method name="encode" signature="([B)[B" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="254" hits="44" branch="false"/>
</lines>
</method>
<method name="encode" signature="([BZ)[B" line-rate="0.8125" branch-rate="0.6470588235294118">
<lines>
<line number="266" hits="44" branch="false"/>
<line number="267" hits="44" branch="false"/>
<line number="268" hits="44" branch="false"/>
<line number="269" hits="44" branch="false"/>
<line number="271" hits="44" branch="false"/>
<line number="273" hits="44" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="275" hits="44" branch="false"/>
<line number="278" hits="0" branch="false"/>
<line number="284" hits="44" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="286" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="287" hits="0" branch="false"/>
<line number="288" hits="0" branch="false"/>
<line number="291" hits="44" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="292" hits="0" branch="false"/>
<line number="295" hits="44" branch="false"/>
<line number="296" hits="44" branch="false"/>
<line number="300" hits="44" branch="false"/>
<line number="303" hits="44" branch="false"/>
<line number="304" hits="44" branch="false"/>
<line number="307" hits="468" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="308" hits="424" branch="false"/>
<line number="309" hits="424" branch="false"/>
<line number="310" hits="424" branch="false"/>
<line number="311" hits="424" branch="false"/>
<line number="315" hits="424" branch="false"/>
<line number="316" hits="424" branch="false"/>
<line number="318" hits="424" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="319" hits="424" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="320" hits="424" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="322" hits="424" branch="false"/>
<line number="326" hits="424" branch="false"/>
<line number="327" hits="424" branch="false"/>
<line number="328" hits="424" branch="false"/>
<line number="330" hits="424" branch="false"/>
<line number="333" hits="424" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="335" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="336" hits="0" branch="false"/>
<line number="337" hits="0" branch="false"/>
<line number="338" hits="0" branch="false"/>
<line number="339" hits="0" branch="false"/>
<line number="345" hits="44" branch="false"/>
<line number="347" hits="44" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="348" hits="30" branch="false"/>
<line number="349" hits="30" branch="false"/>
<line number="352" hits="30" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="353" hits="30" branch="false"/>
<line number="354" hits="30" branch="false"/>
<line number="355" hits="30" branch="false"/>
<line number="356" hits="30" branch="false"/>
<line number="357" hits="30" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="359" hits="14" branch="false"/>
<line number="360" hits="14" branch="false"/>
<line number="361" hits="14" branch="false"/>
<line number="362" hits="14" branch="false"/>
<line number="364" hits="14" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="365" hits="14" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="367" hits="14" branch="false"/>
<line number="368" hits="14" branch="false"/>
<line number="369" hits="14" branch="false"/>
<line number="370" hits="14" branch="false"/>
<line number="373" hits="44" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<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="false"/>
<line number="381" hits="44" branch="false"/>
</lines>
</method>
<method name="encodeChunked" signature="([B)[B" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="244" hits="0" branch="false"/>
</lines>
</method>
<method name="encodeToString" signature="([B)Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="233" hits="44" branch="false"/>
<line number="234" hits="44" branch="false"/>
</lines>
</method>
<method name="isBase64" signature="(B)Z" line-rate="0.8" branch-rate="0.6666666666666666">
<lines>
<line number="161" hits="1180" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="162" hits="50" branch="false"/>
<line number="164" hits="1130" 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="165" hits="0" branch="false"/>
<line number="167" hits="1130" branch="false"/>
</lines>
</method>
<method name="isBase64" signature="([B)Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="180" hits="0" branch="false"/>
<line number="182" hits="0" branch="false"/>
<line number="183" 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="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<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="193" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="39" hits="0" branch="false"/>
<line number="56" hits="2" branch="false"/>
<line number="106" hits="2" branch="false"/>
<line number="117" hits="2" branch="false"/>
<line number="122" hits="512" branch="false"/>
<line number="123" hits="510" branch="false"/>
<line number="125" hits="54" branch="false"/>
<line number="126" hits="52" branch="false"/>
<line number="128" hits="54" branch="false"/>
<line number="129" hits="52" branch="false"/>
<line number="131" hits="22" branch="false"/>
<line number="132" hits="20" branch="false"/>
<line number="135" hits="2" branch="false"/>
<line number="136" hits="2" branch="false"/>
<line number="138" hits="54" branch="false"/>
<line number="139" hits="52" branch="false"/>
<line number="142" hits="54" branch="false"/>
<line number="143" hits="52" branch="false"/>
<line number="146" hits="22" branch="false"/>
<line number="147" hits="20" branch="false"/>
<line number="150" hits="2" branch="false"/>
<line number="151" hits="2" branch="false"/>
<line number="152" hits="2" branch="false"/>
<line number="161" hits="1180" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="162" hits="50" branch="false"/>
<line number="164" hits="1130" 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="165" hits="0" branch="false"/>
<line number="167" hits="1130" branch="false"/>
<line number="180" hits="0" branch="false"/>
<line number="182" hits="0" branch="false"/>
<line number="183" 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="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<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="193" hits="0" branch="false"/>
<line number="203" hits="0" branch="false"/>
<line number="204" hits="0" branch="false"/>
<line number="206" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="207" hits="0" branch="true" condition-coverage="0% (0/5)">
<conditions>
<condition number="0" type="switch" coverage="0%"/>
</conditions>
</line>
<line number="212" hits="0" branch="false"/>
<line number="214" hits="0" branch="false"/>
<line number="218" hits="0" branch="false"/>
<line number="220" hits="0" branch="false"/>
<line number="222" hits="0" branch="false"/>
<line number="233" hits="44" branch="false"/>
<line number="234" hits="44" branch="false"/>
<line number="244" hits="0" branch="false"/>
<line number="254" hits="44" branch="false"/>
<line number="266" hits="44" branch="false"/>
<line number="267" hits="44" branch="false"/>
<line number="268" hits="44" branch="false"/>
<line number="269" hits="44" branch="false"/>
<line number="271" hits="44" branch="false"/>
<line number="273" hits="44" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="275" hits="44" branch="false"/>
<line number="278" hits="0" branch="false"/>
<line number="284" hits="44" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="286" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="287" hits="0" branch="false"/>
<line number="288" hits="0" branch="false"/>
<line number="291" hits="44" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="292" hits="0" branch="false"/>
<line number="295" hits="44" branch="false"/>
<line number="296" hits="44" branch="false"/>
<line number="300" hits="44" branch="false"/>
<line number="303" hits="44" branch="false"/>
<line number="304" hits="44" branch="false"/>
<line number="307" hits="468" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="308" hits="424" branch="false"/>
<line number="309" hits="424" branch="false"/>
<line number="310" hits="424" branch="false"/>
<line number="311" hits="424" branch="false"/>
<line number="315" hits="424" branch="false"/>
<line number="316" hits="424" branch="false"/>
<line number="318" hits="424" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="319" hits="424" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="320" hits="424" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="322" hits="424" branch="false"/>
<line number="326" hits="424" branch="false"/>
<line number="327" hits="424" branch="false"/>
<line number="328" hits="424" branch="false"/>
<line number="330" hits="424" branch="false"/>
<line number="333" hits="424" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="335" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="336" hits="0" branch="false"/>
<line number="337" hits="0" branch="false"/>
<line number="338" hits="0" branch="false"/>
<line number="339" hits="0" branch="false"/>
<line number="345" hits="44" branch="false"/>
<line number="347" hits="44" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="348" hits="30" branch="false"/>
<line number="349" hits="30" branch="false"/>
<line number="352" hits="30" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="353" hits="30" branch="false"/>
<line number="354" hits="30" branch="false"/>
<line number="355" hits="30" branch="false"/>
<line number="356" hits="30" branch="false"/>
<line number="357" hits="30" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="359" hits="14" branch="false"/>
<line number="360" hits="14" branch="false"/>
<line number="361" hits="14" branch="false"/>
<line number="362" hits="14" branch="false"/>
<line number="364" hits="14" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="365" hits="14" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="367" hits="14" branch="false"/>
<line number="368" hits="14" branch="false"/>
<line number="369" hits="14" branch="false"/>
<line number="370" hits="14" branch="false"/>
<line number="373" hits="44" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<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="false"/>
<line number="381" hits="44" branch="false"/>
<line number="391" hits="0" branch="false"/>
<line number="392" hits="0" branch="false"/>
<line number="402" hits="0" branch="false"/>
<line number="403" hits="0" branch="false"/>
<line number="413" hits="32" branch="false"/>
<line number="414" hits="32" branch="false"/>
<line number="425" hits="32" branch="false"/>
<line number="428" hits="32" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="429" hits="0" branch="false"/>
<line number="432" hits="32" branch="false"/>
<line number="438" hits="32" branch="false"/>
<line number="442" hits="32" branch="false"/>
<line number="444" hits="82" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="445" hits="50" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="446" hits="0" branch="false"/>
<line number="449" hits="32" branch="false"/>
<line number="452" hits="324" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="453" hits="292" branch="false"/>
<line number="454" hits="292" branch="false"/>
<line number="455" hits="292" branch="false"/>
<line number="457" hits="292" branch="false"/>
<line number="458" hits="292" branch="false"/>
<line number="460" hits="292" 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="462" hits="264" branch="false"/>
<line number="463" hits="264" branch="false"/>
<line number="465" hits="264" branch="false"/>
<line number="466" hits="264" branch="false"/>
<line number="467" hits="264" branch="false"/>
<line number="468" hits="28" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="470" hits="22" branch="false"/>
<line number="473" hits="6" branch="false"/>
<line number="474" hits="6" branch="false"/>
<line number="475" hits="6" branch="false"/>
<line number="477" hits="292" branch="false"/>
<line number="479" hits="32" branch="false"/>
<line number="490" hits="32" branch="false"/>
<line number="491" hits="32" branch="false"/>
<line number="493" hits="1212" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="494" hits="1180" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="495" hits="1180" branch="false"/>
<line number="499" hits="32" branch="false"/>
<line number="501" hits="32" branch="false"/>
<line number="503" hits="32" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.codec.CodecException" filename="org/apache/shiro/codec/CodecException.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="36" hits="0" branch="false"/>
<line number="37" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;)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="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/lang/Throwable;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="64" hits="0" branch="false"/>
<line number="65" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Throwable;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="54" hits="0" branch="false"/>
<line number="55" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="36" hits="0" branch="false"/>
<line number="37" hits="0" branch="false"/>
<line number="45" hits="0" branch="false"/>
<line number="46" hits="0" branch="false"/>
<line number="54" hits="0" branch="false"/>
<line number="55" hits="0" branch="false"/>
<line number="64" hits="0" branch="false"/>
<line number="65" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.codec.CodecSupport" filename="org/apache/shiro/codec/CodecSupport.java" line-rate="0.22535211267605634" branch-rate="0.35" complexity="4.133333333333334">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="30" hits="474" branch="false"/>
</lines>
</method>
<method name="isByteSource" signature="(Ljava/lang/Object;)Z" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="178" hits="128" branch="true" condition-coverage="50% (6/12)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="100%"/>
<condition number="2" type="jump" coverage="100%"/>
<condition number="3" type="jump" coverage="50%"/>
<condition number="4" type="jump" coverage="0%"/>
<condition number="5" type="jump" coverage="0%"/>
</conditions>
</line>
</lines>
</method>
<method name="objectToBytes" signature="(Ljava/lang/Object;)[B" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="301" hits="0" branch="false"/>
<line number="302" hits="0" branch="false"/>
<line number="304" hits="0" branch="false"/>
<line number="306" hits="0" branch="false"/>
<line number="308" hits="0" branch="false"/>
</lines>
</method>
<method name="objectToString" signature="(Ljava/lang/Object;)Ljava/lang/String;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="319" hits="0" branch="false"/>
</lines>
</method>
<method name="toBytes" signature="(Ljava/io/File;)[B" 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="249" hits="0" branch="false"/>
<line number="250" hits="0" branch="false"/>
<line number="251" hits="0" branch="false"/>
<line number="252" hits="0" branch="false"/>
</lines>
</method>
<method name="toBytes" signature="(Ljava/io/InputStream;)[B" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="266" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="267" hits="0" branch="false"/>
<line number="269" hits="0" branch="false"/>
<line number="270" hits="0" branch="false"/>
<line number="271" hits="0" branch="false"/>
<line number="274" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="275" 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="281" hits="0" branch="false"/>
<line number="282" hits="0" branch="false"/>
<line number="283" hits="0" branch="false"/>
<line number="284" hits="0" branch="false"/>
<line number="286" hits="0" branch="false"/>
<line number="287" hits="0" branch="false"/>
<line number="288" hits="0" branch="false"/>
</lines>
</method>
<method name="toBytes" signature="(Ljava/lang/Object;)[B" line-rate="0.5625" branch-rate="0.5714285714285714">
<lines>
<line number="195" hits="280" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="196" hits="0" branch="false"/>
<line number="197" hits="0" branch="false"/>
<line number="199" hits="280" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="200" hits="16" branch="false"/>
<line number="201" hits="264" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="202" hits="82" branch="false"/>
<line number="203" hits="182" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="204" hits="78" branch="false"/>
<line number="205" hits="104" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="206" hits="104" branch="false"/>
<line number="207" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="208" hits="0" branch="false"/>
<line number="209" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="210" hits="0" branch="false"/>
<line number="212" hits="0" branch="false"/>
</lines>
</method>
<method name="toBytes" signature="(Ljava/lang/String;)[B" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="78" hits="236" branch="false"/>
</lines>
</method>
<method name="toBytes" signature="(Ljava/lang/String;Ljava/lang/String;)[B" line-rate="0.25" branch-rate="1.0">
<lines>
<line number="92" hits="314" branch="false"/>
<line number="93" hits="0" branch="false"/>
<line number="94" hits="0" branch="false"/>
<line number="96" hits="0" branch="false"/>
</lines>
</method>
<method name="toBytes" signature="([C)[B" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="49" hits="78" branch="false"/>
</lines>
</method>
<method name="toBytes" signature="([CLjava/lang/String;)[B" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="66" hits="0" branch="false"/>
</lines>
</method>
<method name="toChars" signature="([B)[C" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="140" hits="0" branch="false"/>
</lines>
</method>
<method name="toChars" signature="([BLjava/lang/String;)[C" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="154" hits="0" branch="false"/>
</lines>
</method>
<method name="toString" signature="(Ljava/lang/Object;)Ljava/lang/String;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="229" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="230" hits="0" branch="false"/>
<line number="231" hits="0" branch="false"/>
<line number="233" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="234" 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="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="240" hits="0" branch="false"/>
</lines>
</method>
<method name="toString" signature="([B)Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="108" hits="70" branch="false"/>
</lines>
</method>
<method name="toString" signature="([BLjava/lang/String;)Ljava/lang/String;" line-rate="0.25" branch-rate="1.0">
<lines>
<line number="124" hits="70" branch="false"/>
<line number="125" hits="0" branch="false"/>
<line number="126" hits="0" branch="false"/>
<line number="127" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="30" hits="474" branch="false"/>
<line number="49" hits="78" branch="false"/>
<line number="66" hits="0" branch="false"/>
<line number="78" hits="236" branch="false"/>
<line number="92" hits="314" branch="false"/>
<line number="93" hits="0" branch="false"/>
<line number="94" hits="0" branch="false"/>
<line number="96" hits="0" branch="false"/>
<line number="108" hits="70" branch="false"/>
<line number="124" hits="70" branch="false"/>
<line number="125" hits="0" branch="false"/>
<line number="126" hits="0" branch="false"/>
<line number="127" hits="0" branch="false"/>
<line number="140" hits="0" branch="false"/>
<line number="154" hits="0" branch="false"/>
<line number="178" hits="128" branch="true" condition-coverage="50% (6/12)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="100%"/>
<condition number="2" type="jump" coverage="100%"/>
<condition number="3" type="jump" coverage="50%"/>
<condition number="4" type="jump" coverage="0%"/>
<condition number="5" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="195" hits="280" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="196" hits="0" branch="false"/>
<line number="197" hits="0" branch="false"/>
<line number="199" hits="280" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="200" hits="16" branch="false"/>
<line number="201" hits="264" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="202" hits="82" branch="false"/>
<line number="203" hits="182" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="204" hits="78" branch="false"/>
<line number="205" hits="104" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="206" hits="104" branch="false"/>
<line number="207" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="208" hits="0" branch="false"/>
<line number="209" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="210" hits="0" branch="false"/>
<line number="212" hits="0" branch="false"/>
<line number="229" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="230" hits="0" branch="false"/>
<line number="231" hits="0" branch="false"/>
<line number="233" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="234" 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="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="240" 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="249" hits="0" branch="false"/>
<line number="250" hits="0" branch="false"/>
<line number="251" hits="0" branch="false"/>
<line number="252" hits="0" branch="false"/>
<line number="266" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="267" hits="0" branch="false"/>
<line number="269" hits="0" branch="false"/>
<line number="270" hits="0" branch="false"/>
<line number="271" hits="0" branch="false"/>
<line number="274" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="275" 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="281" hits="0" branch="false"/>
<line number="282" hits="0" branch="false"/>
<line number="283" hits="0" branch="false"/>
<line number="284" hits="0" branch="false"/>
<line number="286" hits="0" branch="false"/>
<line number="287" hits="0" branch="false"/>
<line number="288" hits="0" branch="false"/>
<line number="301" hits="0" branch="false"/>
<line number="302" hits="0" branch="false"/>
<line number="304" hits="0" branch="false"/>
<line number="306" hits="0" branch="false"/>
<line number="308" hits="0" branch="false"/>
<line number="319" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.codec.H64" filename="org/apache/shiro/codec/H64.java" line-rate="0.8" branch-rate="0.7" complexity="4.0">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="50" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="48" hits="0" branch="false"/>
</lines>
</method>
<method name="append" signature="(Ljava/lang/Appendable;C)V" line-rate="0.6" branch-rate="1.0">
<lines>
<line number="82" hits="16" branch="false"/>
<line number="83" hits="0" branch="false"/>
<line number="84" hits="0" branch="false"/>
<line number="85" hits="16" branch="false"/>
<line number="86" hits="16" branch="false"/>
</lines>
</method>
<method name="encodeAndAppend" signature="(ILjava/lang/Appendable;I)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="96" hits="20" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="97" hits="16" branch="false"/>
<line number="98" hits="16" branch="false"/>
<line number="100" hits="4" branch="false"/>
</lines>
</method>
<method name="encodeToString" signature="([B)Ljava/lang/String;" line-rate="0.8461538461538461" branch-rate="0.625">
<lines>
<line number="109" 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="111" hits="2" branch="false"/>
<line number="113" hits="2" branch="false"/>
<line number="114" hits="2" branch="false"/>
<line number="115" hits="2" branch="false"/>
<line number="116" hits="2" branch="false"/>
<line number="118" hits="10" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="119" hits="4" branch="false"/>
<line number="120" hits="4" branch="false"/>
<line number="122" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="124" hits="0" branch="false"/>
<line number="125" hits="0" branch="false"/>
<line number="127" hits="2" branch="false"/>
</lines>
</method>
<method name="toInt" signature="([BII)I" line-rate="0.8" branch-rate="0.7">
<lines>
<line number="57" hits="4" 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="58" hits="0" branch="false"/>
<line number="60" hits="4" branch="false"/>
<line number="61" hits="12" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="62" hits="8" branch="false"/>
<line number="63" hits="8" branch="true" condition-coverage="75% (3/4)">
<conditions>
<condition number="0" type="switch" coverage="75%"/>
</conditions>
</line>
<line number="64" hits="4" branch="false"/>
<line number="65" hits="4" branch="false"/>
<line number="66" hits="0" branch="false"/>
<line number="69" hits="4" branch="false"/>
</lines>
</method>
<method name="toShort" signature="(B)S" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="53" hits="12" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="48" hits="0" branch="false"/>
<line number="50" hits="2" branch="false"/>
<line number="53" hits="12" branch="false"/>
<line number="57" hits="4" 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="58" hits="0" branch="false"/>
<line number="60" hits="4" branch="false"/>
<line number="61" hits="12" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="62" hits="8" branch="false"/>
<line number="63" hits="8" branch="true" condition-coverage="75% (3/4)">
<conditions>
<condition number="0" type="switch" coverage="75%"/>
</conditions>
</line>
<line number="64" hits="4" branch="false"/>
<line number="65" hits="4" branch="false"/>
<line number="66" hits="0" branch="false"/>
<line number="69" hits="4" branch="false"/>
<line number="82" hits="16" branch="false"/>
<line number="83" hits="0" branch="false"/>
<line number="84" hits="0" branch="false"/>
<line number="85" hits="16" branch="false"/>
<line number="86" hits="16" branch="false"/>
<line number="96" hits="20" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="97" hits="16" branch="false"/>
<line number="98" hits="16" branch="false"/>
<line number="100" hits="4" branch="false"/>
<line number="109" 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="111" hits="2" branch="false"/>
<line number="113" hits="2" branch="false"/>
<line number="114" hits="2" branch="false"/>
<line number="115" hits="2" branch="false"/>
<line number="116" hits="2" branch="false"/>
<line number="118" hits="10" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="119" hits="4" branch="false"/>
<line number="120" hits="4" branch="false"/>
<line number="122" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="124" hits="0" branch="false"/>
<line number="125" hits="0" branch="false"/>
<line number="127" hits="2" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.codec.Hex" filename="org/apache/shiro/codec/Hex.java" line-rate="0.8928571428571429" 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="39" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="34" hits="0" branch="false"/>
</lines>
</method>
<method name="decode" signature="(Ljava/lang/String;)[B" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="107" hits="24" branch="false"/>
</lines>
</method>
<method name="decode" signature="([B)[B" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="94" hits="22" branch="false"/>
<line number="95" hits="22" branch="false"/>
</lines>
</method>
<method name="decode" signature="([C)[B" line-rate="0.9090909090909091" branch-rate="0.75">
<lines>
<line number="125" hits="24" branch="false"/>
<line number="127" hits="24" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="128" hits="0" branch="false"/>
<line number="131" hits="24" branch="false"/>
<line number="134" hits="754" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="135" hits="730" branch="false"/>
<line number="136" hits="730" branch="false"/>
<line number="137" hits="730" branch="false"/>
<line number="138" hits="730" branch="false"/>
<line number="139" hits="730" branch="false"/>
<line number="142" hits="24" branch="false"/>
</lines>
</method>
<method name="encode" signature="([B)[C" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="66" hits="34" branch="false"/>
<line number="68" hits="34" branch="false"/>
<line number="71" hits="1060" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="72" hits="1026" branch="false"/>
<line number="73" hits="1026" branch="false"/>
<line number="76" hits="34" branch="false"/>
</lines>
</method>
<method name="encodeToString" signature="([B)Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="52" hits="34" branch="false"/>
<line number="53" hits="34" branch="false"/>
</lines>
</method>
<method name="toDigit" signature="(CI)I" line-rate="0.75" branch-rate="0.5">
<lines>
<line number="154" hits="1460" branch="false"/>
<line number="155" hits="1460" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="156" hits="0" branch="false"/>
<line number="158" hits="1460" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="34" hits="0" branch="false"/>
<line number="39" hits="2" branch="false"/>
<line number="52" hits="34" branch="false"/>
<line number="53" hits="34" branch="false"/>
<line number="66" hits="34" branch="false"/>
<line number="68" hits="34" branch="false"/>
<line number="71" hits="1060" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="72" hits="1026" branch="false"/>
<line number="73" hits="1026" branch="false"/>
<line number="76" hits="34" branch="false"/>
<line number="94" hits="22" branch="false"/>
<line number="95" hits="22" branch="false"/>
<line number="107" hits="24" branch="false"/>
<line number="125" hits="24" branch="false"/>
<line number="127" hits="24" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="128" hits="0" branch="false"/>
<line number="131" hits="24" branch="false"/>
<line number="134" hits="754" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="135" hits="730" branch="false"/>
<line number="136" hits="730" branch="false"/>
<line number="137" hits="730" branch="false"/>
<line number="138" hits="730" branch="false"/>
<line number="139" hits="730" branch="false"/>
<line number="142" hits="24" branch="false"/>
<line number="154" hits="1460" branch="false"/>
<line number="155" hits="1460" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="156" hits="0" branch="false"/>
<line number="158" hits="1460" branch="false"/>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.concurrent" line-rate="0.26136363636363635" branch-rate="0.1" complexity="1.25">
<classes>
<class name="org.apache.shiro.concurrent.SubjectAwareExecutor" filename="org/apache/shiro/concurrent/SubjectAwareExecutor.java" line-rate="0.9375" branch-rate="0.5" complexity="1.2857142857142858">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="63" hits="2" branch="false"/>
<line number="64" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/util/concurrent/Executor;)V" line-rate="0.8" branch-rate="0.5">
<lines>
<line number="66" hits="2" branch="false"/>
<line number="67" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="68" hits="0" branch="false"/>
<line number="70" hits="2" branch="false"/>
<line number="71" hits="2" branch="false"/>
</lines>
</method>
<method name="associateWithSubject" signature="(Ljava/lang/Runnable;)Ljava/lang/Runnable;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="116" hits="4" branch="false"/>
<line number="117" hits="4" branch="false"/>
</lines>
</method>
<method name="execute" signature="(Ljava/lang/Runnable;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="128" hits="2" branch="false"/>
<line number="129" hits="2" branch="false"/>
<line number="130" hits="2" branch="false"/>
</lines>
</method>
<method name="getSubject" signature="()Lorg/apache/shiro/subject/Subject;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="101" hits="4" branch="false"/>
</lines>
</method>
<method name="getTargetExecutor" signature="()Ljava/util/concurrent/Executor;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="79" hits="2" branch="false"/>
</lines>
</method>
<method name="setTargetExecutor" signature="(Ljava/util/concurrent/Executor;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="89" hits="2" branch="false"/>
<line number="90" hits="2" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="63" hits="2" branch="false"/>
<line number="64" hits="2" branch="false"/>
<line number="66" hits="2" branch="false"/>
<line number="67" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="68" hits="0" branch="false"/>
<line number="70" hits="2" branch="false"/>
<line number="71" hits="2" branch="false"/>
<line number="79" hits="2" branch="false"/>
<line number="89" hits="2" branch="false"/>
<line number="90" hits="2" branch="false"/>
<line number="101" hits="4" branch="false"/>
<line number="116" hits="4" branch="false"/>
<line number="117" hits="4" branch="false"/>
<line number="128" hits="2" branch="false"/>
<line number="129" hits="2" branch="false"/>
<line number="130" hits="2" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.concurrent.SubjectAwareExecutorService" filename="org/apache/shiro/concurrent/SubjectAwareExecutorService.java" line-rate="0.18604651162790697" branch-rate="0.0" complexity="1.1578947368421053">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="62" hits="0" branch="false"/>
<line number="63" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/util/concurrent/ExecutorService;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="65" hits="2" branch="false"/>
<line number="66" hits="2" branch="false"/>
<line number="67" hits="2" branch="false"/>
</lines>
</method>
<method name="associateWithSubject" signature="(Ljava/util/Collection;)Ljava/util/Collection;" line-rate="0.0" branch-rate="0.0">
<lines>
<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="132" hits="0" branch="false"/>
<line number="133" hits="0" branch="false"/>
<line number="134" hits="0" branch="false"/>
</lines>
</method>
<method name="associateWithSubject" signature="(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Callable;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="109" hits="0" branch="false"/>
<line number="110" hits="0" branch="false"/>
</lines>
</method>
<method name="awaitTermination" signature="(JLjava/util/concurrent/TimeUnit;)Z" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="105" hits="0" branch="false"/>
</lines>
</method>
<method name="getTargetExecutorService" signature="()Ljava/util/concurrent/ExecutorService;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="70" hits="0" branch="false"/>
</lines>
</method>
<method name="invokeAll" signature="(Ljava/util/Collection;)Ljava/util/List;" 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="invokeAll" signature="(Ljava/util/Collection;JLjava/util/concurrent/TimeUnit;)Ljava/util/List;" 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>
<method name="invokeAny" signature="(Ljava/util/Collection;)Ljava/lang/Object;" 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="invokeAny" signature="(Ljava/util/Collection;JLjava/util/concurrent/TimeUnit;)Ljava/lang/Object;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="155" hits="0" branch="false"/>
<line number="156" hits="0" branch="false"/>
</lines>
</method>
<method name="isShutdown" signature="()Z" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="97" hits="0" branch="false"/>
</lines>
</method>
<method name="isTerminated" signature="()Z" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="101" hits="0" branch="false"/>
</lines>
</method>
<method name="setTargetExecutor" signature="(Ljava/util/concurrent/Executor;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="80" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="81" hits="0" branch="false"/>
<line number="82" hits="0" branch="false"/>
<line number="83" hits="0" branch="false"/>
<line number="85" hits="0" branch="false"/>
<line number="86" hits="0" branch="false"/>
</lines>
</method>
<method name="setTargetExecutorService" signature="(Ljava/util/concurrent/ExecutorService;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="74" hits="2" branch="false"/>
<line number="75" hits="2" branch="false"/>
<line number="76" hits="2" branch="false"/>
</lines>
</method>
<method name="shutdown" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="89" hits="0" branch="false"/>
<line number="90" hits="0" branch="false"/>
</lines>
</method>
<method name="shutdownNow" signature="()Ljava/util/List;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="93" hits="0" branch="false"/>
</lines>
</method>
<method name="submit" signature="(Ljava/lang/Runnable;)Ljava/util/concurrent/Future;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="124" hits="2" branch="false"/>
<line number="125" hits="2" branch="false"/>
</lines>
</method>
<method name="submit" signature="(Ljava/lang/Runnable;Ljava/lang/Object;)Ljava/util/concurrent/Future;" 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="submit" signature="(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="114" hits="0" branch="false"/>
<line number="115" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="62" hits="0" branch="false"/>
<line number="63" hits="0" branch="false"/>
<line number="65" hits="2" branch="false"/>
<line number="66" hits="2" branch="false"/>
<line number="67" hits="2" branch="false"/>
<line number="70" hits="0" branch="false"/>
<line number="74" hits="2" branch="false"/>
<line number="75" hits="2" branch="false"/>
<line number="76" hits="2" branch="false"/>
<line number="80" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="81" hits="0" branch="false"/>
<line number="82" hits="0" branch="false"/>
<line number="83" hits="0" branch="false"/>
<line number="85" hits="0" branch="false"/>
<line number="86" hits="0" branch="false"/>
<line number="89" hits="0" branch="false"/>
<line number="90" hits="0" branch="false"/>
<line number="93" 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="109" hits="0" branch="false"/>
<line number="110" hits="0" branch="false"/>
<line number="114" hits="0" branch="false"/>
<line number="115" hits="0" branch="false"/>
<line number="119" hits="0" branch="false"/>
<line number="120" hits="0" branch="false"/>
<line number="124" hits="2" branch="false"/>
<line number="125" hits="2" 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="132" hits="0" branch="false"/>
<line number="133" hits="0" branch="false"/>
<line number="134" hits="0" branch="false"/>
<line number="138" hits="0" branch="false"/>
<line number="139" hits="0" branch="false"/>
<line number="144" hits="0" branch="false"/>
<line number="145" hits="0" branch="false"/>
<line number="149" hits="0" branch="false"/>
<line number="150" hits="0" branch="false"/>
<line number="155" hits="0" branch="false"/>
<line number="156" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.concurrent.SubjectAwareScheduledExecutorService" filename="org/apache/shiro/concurrent/SubjectAwareScheduledExecutorService.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="32" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/util/concurrent/ScheduledExecutorService;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="34" hits="0" branch="false"/>
<line number="35" hits="0" branch="false"/>
<line number="36" hits="0" branch="false"/>
</lines>
</method>
<method name="getTargetScheduledExecutorService" signature="()Ljava/util/concurrent/ScheduledExecutorService;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="39" hits="0" branch="false"/>
</lines>
</method>
<method name="schedule" signature="(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;" 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="schedule" signature="(Ljava/util/concurrent/Callable;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="73" hits="0" branch="false"/>
<line number="74" hits="0" branch="false"/>
</lines>
</method>
<method name="scheduleAtFixedRate" signature="(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="78" hits="0" branch="false"/>
<line number="79" hits="0" branch="false"/>
</lines>
</method>
<method name="scheduleWithFixedDelay" signature="(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="83" hits="0" branch="false"/>
<line number="84" hits="0" branch="false"/>
</lines>
</method>
<method name="setTargetExecutor" signature="(Ljava/util/concurrent/Executor;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<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="52" hits="0" branch="false"/>
<line number="54" hits="0" branch="false"/>
<line number="55" hits="0" branch="false"/>
</lines>
</method>
<method name="setTargetExecutorService" signature="(Ljava/util/concurrent/ExecutorService;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="59" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="60" hits="0" branch="false"/>
<line number="61" hits="0" branch="false"/>
<line number="62" hits="0" branch="false"/>
<line number="64" hits="0" branch="false"/>
<line number="65" hits="0" branch="false"/>
</lines>
</method>
<method name="setTargetScheduledExecutorService" signature="(Ljava/util/concurrent/ScheduledExecutorService;)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"/>
</lines>
</method>
</methods>
<lines>
<line number="31" hits="0" branch="false"/>
<line number="32" hits="0" branch="false"/>
<line number="34" hits="0" branch="false"/>
<line number="35" hits="0" branch="false"/>
<line number="36" hits="0" branch="false"/>
<line number="39" hits="0" branch="false"/>
<line number="43" hits="0" branch="false"/>
<line number="44" hits="0" branch="false"/>
<line number="45" 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="51" hits="0" branch="false"/>
<line number="52" hits="0" branch="false"/>
<line number="54" hits="0" branch="false"/>
<line number="55" hits="0" branch="false"/>
<line number="59" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="60" hits="0" branch="false"/>
<line number="61" hits="0" branch="false"/>
<line number="62" hits="0" branch="false"/>
<line number="64" hits="0" branch="false"/>
<line number="65" hits="0" branch="false"/>
<line number="68" hits="0" branch="false"/>
<line number="69" hits="0" branch="false"/>
<line number="73" hits="0" branch="false"/>
<line number="74" hits="0" branch="false"/>
<line number="78" hits="0" branch="false"/>
<line number="79" hits="0" branch="false"/>
<line number="83" hits="0" branch="false"/>
<line number="84" hits="0" branch="false"/>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.config" line-rate="0.7460815047021944" branch-rate="0.6785714285714286" complexity="2.811023622047244">
<classes>
<class name="org.apache.shiro.config.ConfigurationException" filename="org/apache/shiro/config/ConfigurationException.java" line-rate="0.5" 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="36" hits="0" branch="false"/>
<line number="37" 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="45" hits="2" branch="false"/>
<line number="46" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/lang/Throwable;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="64" hits="2" branch="false"/>
<line number="65" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Throwable;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="54" hits="0" branch="false"/>
<line number="55" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="36" hits="0" branch="false"/>
<line number="37" hits="0" branch="false"/>
<line number="45" hits="2" branch="false"/>
<line number="46" hits="2" branch="false"/>
<line number="54" hits="0" branch="false"/>
<line number="55" hits="0" branch="false"/>
<line number="64" hits="2" branch="false"/>
<line number="65" hits="2" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.config.Ini" filename="org/apache/shiro/config/Ini.java" line-rate="0.6739130434782609" branch-rate="0.6379310344827587" complexity="2.2203389830508473">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="41" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="58" hits="78" branch="false"/>
<line number="59" hits="78" branch="false"/>
<line number="60" hits="78" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/config/Ini;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="68" 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="72" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<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="access$300" signature="()Lorg/slf4j/Logger;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="39" hits="70" branch="false"/>
</lines>
</method>
<method name="addSection" signature="(Ljava/lang/String;)Lorg/apache/shiro/config/Ini$Section;" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="137" hits="60" branch="false"/>
<line number="138" hits="60" branch="false"/>
<line number="139" hits="60" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="140" hits="60" branch="false"/>
<line number="141" hits="60" branch="false"/>
<line number="143" hits="60" branch="false"/>
</lines>
</method>
<method name="addSection" signature="(Ljava/lang/String;Ljava/lang/StringBuilder;)V" line-rate="1.0" branch-rate="0.6666666666666666">
<lines>
<line number="298" hits="40" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="299" hits="26" branch="false"/>
<line number="300" hits="26" branch="false"/>
<line number="301" hits="26" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="302" hits="26" branch="false"/>
<line number="303" hits="26" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="304" hits="26" branch="false"/>
<line number="308" hits="40" branch="false"/>
</lines>
</method>
<method name="cleanName" signature="(Ljava/lang/String;)Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="158" hits="566" branch="false"/>
<line number="159" hits="566" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="160" hits="8" branch="false"/>
<line number="161" hits="8" branch="false"/>
<line number="163" hits="566" branch="false"/>
</lines>
</method>
<method name="clear" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="426" hits="0" branch="false"/>
<line number="427" hits="0" branch="false"/>
</lines>
</method>
<method name="containsKey" signature="(Ljava/lang/Object;)Z" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="402" hits="0" branch="false"/>
</lines>
</method>
<method name="containsValue" signature="(Ljava/lang/Object;)Z" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="406" hits="0" branch="false"/>
</lines>
</method>
<method name="entrySet" signature="()Ljava/util/Set;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="438" 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="368" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="369" hits="0" branch="false"/>
<line number="370" hits="0" branch="false"/>
<line number="372" hits="0" branch="false"/>
</lines>
</method>
<method name="fromResourcePath" signature="(Ljava/lang/String;)Lorg/apache/shiro/config/Ini;" line-rate="0.8" branch-rate="0.5">
<lines>
<line number="221" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="222" hits="0" branch="false"/>
<line number="224" hits="8" branch="false"/>
<line number="225" hits="8" branch="false"/>
<line number="226" hits="8" branch="false"/>
</lines>
</method>
<method name="get" signature="(Ljava/lang/Object;)Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
</lines>
</method>
<method name="get" signature="(Ljava/lang/Object;)Lorg/apache/shiro/config/Ini$Section;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="410" hits="0" branch="false"/>
</lines>
</method>
<method name="getSection" signature="(Ljava/lang/String;)Lorg/apache/shiro/config/Ini$Section;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="126" hits="378" branch="false"/>
<line number="127" hits="378" branch="false"/>
</lines>
</method>
<method name="getSectionName" signature="(Ljava/lang/String;)Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="360" hits="76" branch="false"/>
<line number="361" hits="76" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="362" hits="22" branch="false"/>
<line number="364" hits="54" branch="false"/>
</lines>
</method>
<method name="getSectionNames" signature="()Ljava/util/Set;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="105" hits="0" branch="false"/>
</lines>
</method>
<method name="getSectionProperty" signature="(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="192" 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>
</lines>
</method>
<method name="getSectionProperty" signature="(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" 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>
</lines>
</method>
<method name="getSections" signature="()Ljava/util/Collection;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="116" hits="12" branch="false"/>
</lines>
</method>
<method name="hashCode" signature="()I" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="377" hits="0" branch="false"/>
</lines>
</method>
<method name="isEmpty" signature="()Z" line-rate="0.8571428571428571" branch-rate="0.6666666666666666">
<lines>
<line number="86" hits="248" branch="false"/>
<line number="87" hits="248" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="88" hits="244" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="89" hits="244" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="90" hits="244" branch="false"/>
<line number="92" hits="0" branch="false"/>
<line number="94" hits="4" branch="false"/>
</lines>
</method>
<method name="isSectionHeader" signature="(Ljava/lang/String;)Z" line-rate="1.0" branch-rate="0.6666666666666666">
<lines>
<line number="355" hits="76" branch="false"/>
<line number="356" hits="76" branch="true" condition-coverage="66% (4/6)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="100%"/>
<condition number="2" type="jump" coverage="50%"/>
</conditions>
</line>
</lines>
</method>
<method name="keySet" signature="()Ljava/util/Set;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="430" hits="0" branch="false"/>
</lines>
</method>
<method name="load" signature="(Ljava/io/InputStream;)V" line-rate="0.625" branch-rate="0.5">
<lines>
<line number="266" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="267" hits="0" branch="false"/>
<line number="271" hits="8" branch="false"/>
<line number="272" hits="0" branch="false"/>
<line number="273" hits="0" branch="false"/>
<line number="274" hits="8" branch="false"/>
<line number="275" hits="8" branch="false"/>
<line number="276" hits="8" branch="false"/>
</lines>
</method>
<method name="load" signature="(Ljava/io/Reader;)V" line-rate="0.5555555555555556" branch-rate="1.0">
<lines>
<line number="285" hits="8" branch="false"/>
<line number="287" hits="8" branch="false"/>
<line number="289" hits="0" branch="false"/>
<line number="290" hits="8" branch="false"/>
<line number="291" hits="0" branch="false"/>
<line number="292" hits="0" branch="false"/>
<line number="293" hits="8" branch="false"/>
<line number="294" hits="0" branch="false"/>
<line number="295" hits="8" branch="false"/>
</lines>
</method>
<method name="load" signature="(Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="254" hits="8" branch="false"/>
<line number="255" hits="8" branch="false"/>
</lines>
</method>
<method name="load" signature="(Ljava/util/Scanner;)V" line-rate="1.0" branch-rate="0.9166666666666666">
<lines>
<line number="318" hits="18" branch="false"/>
<line number="319" hits="18" branch="false"/>
<line number="321" hits="292" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="323" hits="274" branch="false"/>
<line number="324" hits="274" branch="false"/>
<line number="326" hits="274" 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="328" hits="4" branch="false"/>
<line number="331" hits="76" branch="false"/>
<line number="332" hits="76" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="334" hits="22" branch="false"/>
<line number="337" hits="22" branch="false"/>
<line number="339" hits="22" branch="false"/>
<line number="341" hits="22" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="342" hits="22" branch="false"/>
<line number="346" hits="54" branch="false"/>
<line number="348" hits="76" branch="false"/>
<line number="351" hits="18" branch="false"/>
<line number="352" hits="18" branch="false"/>
</lines>
</method>
<method name="loadFromPath" signature="(Ljava/lang/String;)V" line-rate="0.6666666666666666" branch-rate="1.0">
<lines>
<line number="240" hits="8" branch="false"/>
<line number="241" hits="0" branch="false"/>
<line number="242" hits="0" branch="false"/>
<line number="243" hits="8" branch="false"/>
<line number="244" hits="8" branch="false"/>
<line number="245" hits="8" branch="false"/>
</lines>
</method>
<method name="put" signature="(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
</lines>
</method>
<method name="put" signature="(Ljava/lang/String;Lorg/apache/shiro/config/Ini$Section;)Lorg/apache/shiro/config/Ini$Section;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="414" hits="0" branch="false"/>
</lines>
</method>
<method name="putAll" signature="(Ljava/util/Map;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="422" hits="0" branch="false"/>
<line number="423" hits="0" branch="false"/>
</lines>
</method>
<method name="remove" signature="(Ljava/lang/Object;)Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
</lines>
</method>
<method name="remove" signature="(Ljava/lang/Object;)Lorg/apache/shiro/config/Ini$Section;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="418" hits="0" branch="false"/>
</lines>
</method>
<method name="removeSection" signature="(Ljava/lang/String;)Lorg/apache/shiro/config/Ini$Section;" 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="setSectionProperty" signature="(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="176" hits="106" branch="false"/>
<line number="177" hits="106" branch="false"/>
<line number="178" hits="106" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="179" hits="40" branch="false"/>
<line number="181" hits="106" branch="false"/>
<line number="182" hits="106" branch="false"/>
</lines>
</method>
<method name="size" signature="()I" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="398" hits="0" branch="false"/>
</lines>
</method>
<method name="toString" signature="()Ljava/lang/String;" line-rate="0.9090909090909091" branch-rate="0.8333333333333334">
<lines>
<line number="381" hits="42" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="382" hits="0" branch="false"/>
<line number="384" hits="42" branch="false"/>
<line number="385" hits="42" branch="false"/>
<line number="386" hits="42" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="387" hits="52" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="388" hits="10" branch="false"/>
<line number="390" hits="52" branch="false"/>
<line number="391" hits="52" branch="false"/>
<line number="392" hits="52" branch="false"/>
<line number="393" hits="42" branch="false"/>
</lines>
</method>
<method name="values" signature="()Ljava/util/Collection;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="434" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="39" hits="70" branch="false"/>
<line number="41" hits="2" branch="false"/>
<line number="58" hits="78" branch="false"/>
<line number="59" hits="78" branch="false"/>
<line number="60" hits="78" branch="false"/>
<line number="68" 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="72" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<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="86" hits="248" branch="false"/>
<line number="87" hits="248" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="88" hits="244" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="89" hits="244" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="90" hits="244" branch="false"/>
<line number="92" hits="0" branch="false"/>
<line number="94" hits="4" branch="false"/>
<line number="105" hits="0" branch="false"/>
<line number="116" hits="12" branch="false"/>
<line number="126" hits="378" branch="false"/>
<line number="127" hits="378" branch="false"/>
<line number="137" hits="60" branch="false"/>
<line number="138" hits="60" branch="false"/>
<line number="139" hits="60" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="140" hits="60" branch="false"/>
<line number="141" hits="60" branch="false"/>
<line number="143" hits="60" branch="false"/>
<line number="153" hits="0" branch="false"/>
<line number="154" hits="0" branch="false"/>
<line number="158" hits="566" branch="false"/>
<line number="159" hits="566" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="160" hits="8" branch="false"/>
<line number="161" hits="8" branch="false"/>
<line number="163" hits="566" branch="false"/>
<line number="176" hits="106" branch="false"/>
<line number="177" hits="106" branch="false"/>
<line number="178" hits="106" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="179" hits="40" branch="false"/>
<line number="181" hits="106" branch="false"/>
<line number="182" hits="106" branch="false"/>
<line number="192" 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="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="221" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="222" hits="0" branch="false"/>
<line number="224" hits="8" branch="false"/>
<line number="225" hits="8" branch="false"/>
<line number="226" hits="8" branch="false"/>
<line number="240" hits="8" branch="false"/>
<line number="241" hits="0" branch="false"/>
<line number="242" hits="0" branch="false"/>
<line number="243" hits="8" branch="false"/>
<line number="244" hits="8" branch="false"/>
<line number="245" hits="8" branch="false"/>
<line number="254" hits="8" branch="false"/>
<line number="255" hits="8" branch="false"/>
<line number="266" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="267" hits="0" branch="false"/>
<line number="271" hits="8" branch="false"/>
<line number="272" hits="0" branch="false"/>
<line number="273" hits="0" branch="false"/>
<line number="274" hits="8" branch="false"/>
<line number="275" hits="8" branch="false"/>
<line number="276" hits="8" branch="false"/>
<line number="285" hits="8" branch="false"/>
<line number="287" hits="8" branch="false"/>
<line number="289" hits="0" branch="false"/>
<line number="290" hits="8" branch="false"/>
<line number="291" hits="0" branch="false"/>
<line number="292" hits="0" branch="false"/>
<line number="293" hits="8" branch="false"/>
<line number="294" hits="0" branch="false"/>
<line number="295" hits="8" branch="false"/>
<line number="298" hits="40" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="299" hits="26" branch="false"/>
<line number="300" hits="26" branch="false"/>
<line number="301" hits="26" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="302" hits="26" branch="false"/>
<line number="303" hits="26" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="304" hits="26" branch="false"/>
<line number="308" hits="40" branch="false"/>
<line number="318" hits="18" branch="false"/>
<line number="319" hits="18" branch="false"/>
<line number="321" hits="292" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="323" hits="274" branch="false"/>
<line number="324" hits="274" branch="false"/>
<line number="326" hits="274" 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="328" hits="4" branch="false"/>
<line number="331" hits="76" branch="false"/>
<line number="332" hits="76" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="334" hits="22" branch="false"/>
<line number="337" hits="22" branch="false"/>
<line number="339" hits="22" branch="false"/>
<line number="341" hits="22" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="342" hits="22" branch="false"/>
<line number="346" hits="54" branch="false"/>
<line number="348" hits="76" branch="false"/>
<line number="351" hits="18" branch="false"/>
<line number="352" hits="18" branch="false"/>
<line number="355" hits="76" branch="false"/>
<line number="356" hits="76" branch="true" condition-coverage="66% (4/6)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="100%"/>
<condition number="2" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="360" hits="76" branch="false"/>
<line number="361" hits="76" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="362" hits="22" branch="false"/>
<line number="364" hits="54" branch="false"/>
<line number="368" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="369" hits="0" branch="false"/>
<line number="370" hits="0" branch="false"/>
<line number="372" hits="0" branch="false"/>
<line number="377" hits="0" branch="false"/>
<line number="381" hits="42" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="382" hits="0" branch="false"/>
<line number="384" hits="42" branch="false"/>
<line number="385" hits="42" branch="false"/>
<line number="386" hits="42" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="387" hits="52" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="388" hits="10" branch="false"/>
<line number="390" hits="52" branch="false"/>
<line number="391" hits="52" branch="false"/>
<line number="392" hits="52" branch="false"/>
<line number="393" hits="42" branch="false"/>
<line number="398" hits="0" branch="false"/>
<line number="402" hits="0" branch="false"/>
<line number="406" hits="0" branch="false"/>
<line number="410" hits="0" branch="false"/>
<line number="414" hits="0" branch="false"/>
<line number="418" hits="0" branch="false"/>
<line number="422" hits="0" branch="false"/>
<line number="423" hits="0" branch="false"/>
<line number="426" hits="0" branch="false"/>
<line number="427" hits="0" branch="false"/>
<line number="430" hits="0" branch="false"/>
<line number="434" hits="0" branch="false"/>
<line number="438" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.config.Ini$1" filename="org/apache/shiro/config/Ini.java" line-rate="1.0" branch-rate="1.0" complexity="2.2203389830508473">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.config.Ini$Section" filename="org/apache/shiro/config/Ini.java" line-rate="0.75" branch-rate="0.6724137931034483" complexity="2.2203389830508473">
<methods>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;)V" line-rate="0.8333333333333334" branch-rate="0.5">
<lines>
<line number="449" hits="60" branch="false"/>
<line number="450" hits="60" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="451" hits="0" branch="false"/>
<line number="453" hits="60" branch="false"/>
<line number="454" hits="60" branch="false"/>
<line number="455" hits="60" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/lang/String;)V" line-rate="0.7272727272727273" branch-rate="0.5">
<lines>
<line number="457" hits="26" branch="false"/>
<line number="458" hits="26" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="459" hits="0" branch="false"/>
<line number="461" hits="26" branch="false"/>
<line number="463" hits="26" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="464" hits="26" branch="false"/>
<line number="466" hits="0" branch="false"/>
<line number="468" hits="26" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="469" hits="26" branch="false"/>
<line number="471" hits="0" branch="false"/>
<line number="473" hits="26" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/lang/String;Lorg/apache/shiro/config/Ini$1;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="445" hits="142" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Lorg/apache/shiro/config/Ini$1;)V" line-rate="1.0" branch-rate="1.0">
<lines>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/config/Ini$Section;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="476" hits="0" branch="false"/>
<line number="477" hits="0" branch="false"/>
<line number="478" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/config/Ini$Section;Lorg/apache/shiro/config/Ini$1;)V" line-rate="1.0" branch-rate="1.0">
<lines>
</lines>
</method>
<method name="clear" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="579" hits="0" branch="false"/>
<line number="580" hits="0" branch="false"/>
</lines>
</method>
<method name="containsKey" signature="(Ljava/lang/Object;)Z" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="583" hits="0" branch="false"/>
</lines>
</method>
<method name="containsValue" signature="(Ljava/lang/Object;)Z" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="587" hits="0" branch="false"/>
</lines>
</method>
<method name="entrySet" signature="()Ljava/util/Set;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="591" hits="36" branch="false"/>
</lines>
</method>
<method name="equals" signature="(Ljava/lang/Object;)Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="636" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="637" hits="0" branch="false"/>
<line number="638" 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="640" hits="0" branch="false"/>
</lines>
</method>
<method name="get" signature="(Ljava/lang/Object;)Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
</lines>
</method>
<method name="get" signature="(Ljava/lang/Object;)Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="595" hits="70" branch="false"/>
</lines>
</method>
<method name="getName" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="575" hits="56" branch="false"/>
</lines>
</method>
<method name="hashCode" signature="()I" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="645" hits="0" branch="false"/>
</lines>
</method>
<method name="isCharEscaped" signature="(Ljava/lang/CharSequence;I)Z" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="505" hits="194" 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="isContinued" signature="(Ljava/lang/String;)Z" line-rate="0.875" branch-rate="0.75">
<lines>
<line number="483" hits="62" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="484" hits="0" branch="false"/>
<line number="486" hits="62" branch="false"/>
<line number="489" hits="62" branch="false"/>
<line number="490" hits="76" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="491" hits="76" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="492" hits="14" branch="false"/>
<line number="497" hits="62" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
</lines>
</method>
<method name="isEmpty" signature="()Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="599" hits="450" branch="false"/>
</lines>
</method>
<method name="isKeyValueSeparatorChar" signature="(C)Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="501" hits="1254" 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>
</lines>
</method>
<method name="keySet" signature="()Ljava/util/Set;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="603" hits="46" branch="false"/>
</lines>
</method>
<method name="put" signature="(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
</lines>
</method>
<method name="put" signature="(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="607" hits="146" branch="false"/>
</lines>
</method>
<method name="putAll" signature="(Ljava/util/Map;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="611" hits="0" branch="false"/>
<line number="612" hits="0" branch="false"/>
</lines>
</method>
<method name="remove" signature="(Ljava/lang/Object;)Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
</lines>
</method>
<method name="remove" signature="(Ljava/lang/Object;)Ljava/lang/String;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="615" hits="0" branch="false"/>
</lines>
</method>
<method name="size" signature="()I" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="619" hits="4" branch="false"/>
</lines>
</method>
<method name="splitKeyValue" signature="(Ljava/lang/String;)[Ljava/lang/String;" line-rate="0.9523809523809523" branch-rate="0.8">
<lines>
<line number="510" hits="72" branch="false"/>
<line number="511" hits="72" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="512" hits="0" branch="false"/>
<line number="514" hits="72" branch="false"/>
<line number="515" hits="72" branch="false"/>
<line number="517" hits="72" branch="false"/>
<line number="519" hits="2080" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="520" hits="2008" branch="false"/>
<line number="522" hits="2008" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="523" hits="1060" 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="524" hits="70" branch="false"/>
<line number="526" hits="990" branch="false"/>
<line number="529" hits="948" 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="532" hits="824" branch="false"/>
<line number="537" hits="72" branch="false"/>
<line number="538" hits="72" branch="false"/>
<line number="540" hits="72" 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="541" hits="2" branch="false"/>
<line number="542" hits="2" branch="false"/>
<line number="545" hits="70" branch="false"/>
<line number="547" hits="70" branch="false"/>
</lines>
</method>
<method name="toMapProps" signature="(Ljava/lang/String;)Ljava/util/Map;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="551" hits="26" branch="false"/>
<line number="553" hits="26" branch="false"/>
<line number="554" hits="26" branch="false"/>
<line number="555" hits="80" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="556" hits="54" branch="false"/>
<line number="557" hits="54" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="559" hits="2" branch="false"/>
<line number="560" hits="2" branch="false"/>
<line number="561" hits="2" branch="false"/>
<line number="563" hits="52" branch="false"/>
<line number="565" hits="52" branch="false"/>
<line number="566" hits="52" branch="false"/>
<line number="567" hits="52" branch="false"/>
<line number="568" hits="52" branch="false"/>
<line number="569" hits="52" branch="false"/>
<line number="571" hits="26" branch="false"/>
</lines>
</method>
<method name="toString" signature="()Ljava/lang/String;" line-rate="0.75" branch-rate="0.5">
<lines>
<line number="627" hits="52" branch="false"/>
<line number="628" hits="52" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="629" hits="0" branch="false"/>
<line number="631" hits="52" branch="false"/>
</lines>
</method>
<method name="values" signature="()Ljava/util/Collection;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="623" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="445" hits="142" branch="false"/>
<line number="449" hits="60" branch="false"/>
<line number="450" hits="60" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="451" hits="0" branch="false"/>
<line number="453" hits="60" branch="false"/>
<line number="454" hits="60" branch="false"/>
<line number="455" hits="60" branch="false"/>
<line number="457" hits="26" branch="false"/>
<line number="458" hits="26" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="459" hits="0" branch="false"/>
<line number="461" hits="26" branch="false"/>
<line number="463" hits="26" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="464" hits="26" branch="false"/>
<line number="466" hits="0" branch="false"/>
<line number="468" hits="26" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="469" hits="26" branch="false"/>
<line number="471" hits="0" branch="false"/>
<line number="473" hits="26" branch="false"/>
<line number="476" hits="0" branch="false"/>
<line number="477" hits="0" branch="false"/>
<line number="478" hits="0" branch="false"/>
<line number="483" hits="62" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="484" hits="0" branch="false"/>
<line number="486" hits="62" branch="false"/>
<line number="489" hits="62" branch="false"/>
<line number="490" hits="76" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="491" hits="76" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="492" hits="14" branch="false"/>
<line number="497" hits="62" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="501" hits="1254" 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="505" hits="194" 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="510" hits="72" branch="false"/>
<line number="511" hits="72" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="512" hits="0" branch="false"/>
<line number="514" hits="72" branch="false"/>
<line number="515" hits="72" branch="false"/>
<line number="517" hits="72" branch="false"/>
<line number="519" hits="2080" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="520" hits="2008" branch="false"/>
<line number="522" hits="2008" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="523" hits="1060" 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="524" hits="70" branch="false"/>
<line number="526" hits="990" branch="false"/>
<line number="529" hits="948" 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="532" hits="824" branch="false"/>
<line number="537" hits="72" branch="false"/>
<line number="538" hits="72" branch="false"/>
<line number="540" hits="72" 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="541" hits="2" branch="false"/>
<line number="542" hits="2" branch="false"/>
<line number="545" hits="70" branch="false"/>
<line number="547" hits="70" branch="false"/>
<line number="551" hits="26" branch="false"/>
<line number="553" hits="26" branch="false"/>
<line number="554" hits="26" branch="false"/>
<line number="555" hits="80" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="556" hits="54" branch="false"/>
<line number="557" hits="54" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="559" hits="2" branch="false"/>
<line number="560" hits="2" branch="false"/>
<line number="561" hits="2" branch="false"/>
<line number="563" hits="52" branch="false"/>
<line number="565" hits="52" branch="false"/>
<line number="566" hits="52" branch="false"/>
<line number="567" hits="52" branch="false"/>
<line number="568" hits="52" branch="false"/>
<line number="569" hits="52" branch="false"/>
<line number="571" hits="26" branch="false"/>
<line number="575" hits="56" branch="false"/>
<line number="579" hits="0" branch="false"/>
<line number="580" hits="0" branch="false"/>
<line number="583" hits="0" branch="false"/>
<line number="587" hits="0" branch="false"/>
<line number="591" hits="36" branch="false"/>
<line number="595" hits="70" branch="false"/>
<line number="599" hits="450" branch="false"/>
<line number="603" hits="46" branch="false"/>
<line number="607" hits="146" branch="false"/>
<line number="611" hits="0" branch="false"/>
<line number="612" hits="0" branch="false"/>
<line number="615" hits="0" branch="false"/>
<line number="619" hits="4" branch="false"/>
<line number="623" hits="0" branch="false"/>
<line number="627" hits="52" branch="false"/>
<line number="628" hits="52" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="629" hits="0" branch="false"/>
<line number="631" hits="52" branch="false"/>
<line number="636" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="637" hits="0" branch="false"/>
<line number="638" 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="640" hits="0" branch="false"/>
<line number="645" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.config.IniFactorySupport" filename="org/apache/shiro/config/IniFactorySupport.java" line-rate="0.6571428571428571" branch-rate="0.5833333333333334" complexity="1.8888888888888888">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="38" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="42" hits="46" branch="false"/>
<line number="43" hits="46" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/config/Ini;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<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="createInstance" signature="()Ljava/lang/Object;" line-rate="0.6923076923076923" branch-rate="0.6666666666666666">
<lines>
<line number="108" hits="46" branch="false"/>
<line number="112" hits="46" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="113" hits="4" branch="false"/>
<line number="114" hits="4" branch="false"/>
<line number="115" hits="4" 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="119" hits="0" branch="false"/>
<line number="122" hits="42" branch="false"/>
<line number="123" hits="42" branch="false"/>
<line number="124" hits="42" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="125" hits="0" branch="false"/>
<line number="127" hits="0" branch="false"/>
<line number="131" hits="46" branch="false"/>
</lines>
</method>
<method name="getIni" signature="()Lorg/apache/shiro/config/Ini;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="50" hits="46" branch="false"/>
</lines>
</method>
<method name="loadDefaultClassPathIni" signature="()Lorg/apache/shiro/config/Ini;" line-rate="0.375" branch-rate="0.25">
<lines>
<line number="65" hits="4" branch="false"/>
<line number="66" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="67" hits="0" branch="false"/>
<line number="68" hits="0" branch="false"/>
<line number="69" hits="0" branch="false"/>
<line number="70" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="71" hits="0" branch="false"/>
<line number="74" hits="4" branch="false"/>
</lines>
</method>
<method name="resolveIni" signature="()Lorg/apache/shiro/config/Ini;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="89" hits="46" branch="false"/>
<line number="90" hits="46" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="91" hits="4" branch="false"/>
<line number="92" hits="4" branch="false"/>
<line number="94" hits="46" 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="54" hits="44" branch="false"/>
<line number="55" hits="44" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="38" hits="2" branch="false"/>
<line number="42" hits="46" branch="false"/>
<line number="43" hits="46" 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="46" branch="false"/>
<line number="54" hits="44" branch="false"/>
<line number="55" hits="44" branch="false"/>
<line number="65" hits="4" branch="false"/>
<line number="66" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="67" hits="0" branch="false"/>
<line number="68" hits="0" branch="false"/>
<line number="69" hits="0" branch="false"/>
<line number="70" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="71" hits="0" branch="false"/>
<line number="74" hits="4" branch="false"/>
<line number="89" hits="46" branch="false"/>
<line number="90" hits="46" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="91" hits="4" branch="false"/>
<line number="92" hits="4" branch="false"/>
<line number="94" hits="46" branch="false"/>
<line number="108" hits="46" branch="false"/>
<line number="112" hits="46" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="113" hits="4" branch="false"/>
<line number="114" hits="4" branch="false"/>
<line number="115" hits="4" 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="119" hits="0" branch="false"/>
<line number="122" hits="42" branch="false"/>
<line number="123" hits="42" branch="false"/>
<line number="124" hits="42" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="125" hits="0" branch="false"/>
<line number="127" hits="0" branch="false"/>
<line number="131" hits="46" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.config.IniSecurityManagerFactory" filename="org/apache/shiro/config/IniSecurityManagerFactory.java" line-rate="0.797752808988764" branch-rate="0.6363636363636364" complexity="2.388888888888889">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="53" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="61" hits="2" branch="false"/>
<line number="62" hits="2" 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="69" hits="4" branch="false"/>
<line number="70" hits="4" 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="64" hits="44" branch="false"/>
<line number="65" hits="44" branch="false"/>
<line number="66" hits="44" branch="false"/>
</lines>
</method>
<method name="addToRealms" signature="(Ljava/util/Collection;Lorg/apache/shiro/realm/RealmFactory;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="165" hits="0" branch="false"/>
<line number="166" hits="0" branch="false"/>
<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="171" hits="0" branch="false"/>
</lines>
</method>
<method name="applyRealmsToSecurityManager" signature="(Ljava/util/Collection;Lorg/apache/shiro/mgt/SecurityManager;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="219" hits="38" branch="false"/>
<line number="220" hits="38" branch="false"/>
<line number="221" hits="38" branch="false"/>
</lines>
</method>
<method name="assertRealmSecurityManager" signature="(Lorg/apache/shiro/mgt/SecurityManager;)V" line-rate="0.5" branch-rate="0.5">
<lines>
<line number="208" hits="38" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="209" hits="0" branch="false"/>
<line number="211" hits="38" 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="214" hits="0" branch="false"/>
<line number="216" hits="38" branch="false"/>
</lines>
</method>
<method name="buildInstances" signature="(Lorg/apache/shiro/config/Ini$Section;Ljava/util/Map;)Ljava/util/Map;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="160" hits="42" branch="false"/>
<line number="161" hits="42" 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/mgt/SecurityManager;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="81" hits="46" 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="0.75">
<lines>
<line number="144" hits="42" branch="false"/>
<line number="146" hits="42" branch="false"/>
<line number="147" hits="42" branch="false"/>
<line number="149" hits="42" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="150" hits="14" branch="false"/>
<line number="151" hits="14" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="152" hits="14" branch="false"/>
<line number="156" hits="42" 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="46" hits="46" branch="false"/>
</lines>
</method>
<method name="createInstance" signature="(Lorg/apache/shiro/config/Ini;)Lorg/apache/shiro/mgt/SecurityManager;" line-rate="0.5714285714285714" branch-rate="0.5">
<lines>
<line number="85" hits="42" 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="88" hits="42" branch="false"/>
<line number="89" hits="42" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="90" hits="0" branch="false"/>
<line number="91" hits="0" branch="false"/>
<line number="93" hits="42" branch="false"/>
</lines>
</method>
<method name="createRealm" signature="(Lorg/apache/shiro/config/Ini;)Lorg/apache/shiro/realm/Realm;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="247" hits="14" branch="false"/>
<line number="248" hits="14" branch="false"/>
<line number="249" hits="14" branch="false"/>
<line number="250" hits="14" branch="false"/>
</lines>
</method>
<method name="createSecurityManager" signature="(Lorg/apache/shiro/config/Ini;)Lorg/apache/shiro/mgt/SecurityManager;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="97" hits="42" branch="false"/>
<line number="98" hits="42" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="100" hits="8" branch="false"/>
<line number="102" hits="42" branch="false"/>
</lines>
</method>
<method name="createSecurityManager" signature="(Lorg/apache/shiro/config/Ini;Lorg/apache/shiro/config/Ini$Section;)Lorg/apache/shiro/mgt/SecurityManager;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="123" hits="42" branch="false"/>
<line number="124" hits="42" branch="false"/>
<line number="126" hits="42" branch="false"/>
<line number="128" hits="42" branch="false"/>
<line number="130" hits="42" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="133" hits="40" branch="false"/>
<line number="135" hits="40" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="136" hits="38" branch="false"/>
<line number="140" hits="42" branch="false"/>
</lines>
</method>
<method name="getBeans" signature="()Ljava/util/Map;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="73" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
</lines>
</method>
<method name="getRealms" signature="(Ljava/util/Map;)Ljava/util/Collection;" line-rate="0.6666666666666666" branch-rate="0.5833333333333334">
<lines>
<line number="177" hits="40" branch="false"/>
<line number="180" hits="40" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="182" hits="108" branch="false"/>
<line number="183" hits="108" branch="false"/>
<line number="185" hits="108" 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="187" hits="108" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="188" hits="38" branch="false"/>
<line number="190" hits="38" branch="false"/>
<line number="191" hits="38" 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="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="194" hits="0" branch="false"/>
<line number="196" hits="0" branch="false"/>
<line number="197" hits="0" branch="false"/>
<line number="200" hits="38" branch="false"/>
<line number="202" hits="108" branch="false"/>
<line number="204" hits="40" branch="false"/>
</lines>
</method>
<method name="getSecurityManagerBean" signature="()Lorg/apache/shiro/mgt/SecurityManager;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="77" hits="42" branch="false"/>
</lines>
</method>
<method name="isAutoApplyRealms" signature="(Lorg/apache/shiro/mgt/SecurityManager;)Z" line-rate="1.0" branch-rate="0.75">
<lines>
<line number="106" hits="42" branch="false"/>
<line number="107" hits="42" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="109" hits="42" branch="false"/>
<line number="110" hits="42" branch="false"/>
<line number="111" hits="42" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="112" hits="2" branch="false"/>
<line number="114" hits="2" branch="false"/>
<line number="117" hits="42" branch="false"/>
</lines>
</method>
<method name="shouldImplicitlyCreateRealm" signature="(Lorg/apache/shiro/config/Ini;)Z" line-rate="1.0" branch-rate="0.8333333333333334">
<lines>
<line number="234" hits="84" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="235" hits="42" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="236" hits="38" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
</lines>
</method>
</methods>
<lines>
<line number="46" hits="46" branch="false"/>
<line number="53" hits="2" branch="false"/>
<line number="61" hits="2" branch="false"/>
<line number="62" hits="2" branch="false"/>
<line number="64" hits="44" branch="false"/>
<line number="65" hits="44" branch="false"/>
<line number="66" hits="44" branch="false"/>
<line number="69" hits="4" branch="false"/>
<line number="70" hits="4" 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="77" hits="42" branch="false"/>
<line number="81" hits="46" branch="false"/>
<line number="85" hits="42" 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="88" hits="42" branch="false"/>
<line number="89" hits="42" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="90" hits="0" branch="false"/>
<line number="91" hits="0" branch="false"/>
<line number="93" hits="42" branch="false"/>
<line number="97" hits="42" branch="false"/>
<line number="98" hits="42" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="100" hits="8" branch="false"/>
<line number="102" hits="42" branch="false"/>
<line number="106" hits="42" branch="false"/>
<line number="107" hits="42" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="109" hits="42" branch="false"/>
<line number="110" hits="42" branch="false"/>
<line number="111" hits="42" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="112" hits="2" branch="false"/>
<line number="114" hits="2" branch="false"/>
<line number="117" hits="42" branch="false"/>
<line number="123" hits="42" branch="false"/>
<line number="124" hits="42" branch="false"/>
<line number="126" hits="42" branch="false"/>
<line number="128" hits="42" branch="false"/>
<line number="130" hits="42" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="133" hits="40" branch="false"/>
<line number="135" hits="40" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="136" hits="38" branch="false"/>
<line number="140" hits="42" branch="false"/>
<line number="144" hits="42" branch="false"/>
<line number="146" hits="42" branch="false"/>
<line number="147" hits="42" branch="false"/>
<line number="149" hits="42" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="150" hits="14" branch="false"/>
<line number="151" hits="14" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="152" hits="14" branch="false"/>
<line number="156" hits="42" branch="false"/>
<line number="160" hits="42" branch="false"/>
<line number="161" hits="42" branch="false"/>
<line number="165" hits="0" branch="false"/>
<line number="166" hits="0" branch="false"/>
<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="171" hits="0" branch="false"/>
<line number="177" hits="40" branch="false"/>
<line number="180" hits="40" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="182" hits="108" branch="false"/>
<line number="183" hits="108" branch="false"/>
<line number="185" hits="108" 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="187" hits="108" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="188" hits="38" branch="false"/>
<line number="190" hits="38" branch="false"/>
<line number="191" hits="38" 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="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="194" hits="0" branch="false"/>
<line number="196" hits="0" branch="false"/>
<line number="197" hits="0" branch="false"/>
<line number="200" hits="38" branch="false"/>
<line number="202" hits="108" branch="false"/>
<line number="204" hits="40" branch="false"/>
<line number="208" hits="38" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="209" hits="0" branch="false"/>
<line number="211" hits="38" 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="214" hits="0" branch="false"/>
<line number="216" hits="38" branch="false"/>
<line number="219" hits="38" branch="false"/>
<line number="220" hits="38" branch="false"/>
<line number="221" hits="38" branch="false"/>
<line number="234" hits="84" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="235" hits="42" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="236" hits="38" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="247" hits="14" branch="false"/>
<line number="248" hits="14" branch="false"/>
<line number="249" hits="14" branch="false"/>
<line number="250" hits="14" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.config.ReflectionBuilder" filename="org/apache/shiro/config/ReflectionBuilder.java" line-rate="0.7985074626865671" branch-rate="0.7134146341463414" complexity="5.032258064516129">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="47" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="62" hits="44" branch="false"/>
<line number="63" hits="44" branch="false"/>
<line number="64" hits="44" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/util/Map;)V" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="66" hits="52" branch="false"/>
<line number="67" hits="52" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="68" hits="52" branch="false"/>
</lines>
</method>
<method name="applyGlobalProperty" signature="(Ljava/util/Map;Ljava/lang/String;Ljava/lang/String;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="177" 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="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="184" hits="0" branch="false"/>
<line number="185" hits="0" branch="false"/>
<line number="187" hits="0" branch="false"/>
<line number="188" hits="0" branch="false"/>
<line number="189" hits="0" branch="false"/>
<line number="190" hits="0" branch="false"/>
</lines>
</method>
<method name="applyProperty" signature="(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V" line-rate="0.9722222222222222" branch-rate="0.875">
<lines>
<line number="422" hits="162" branch="false"/>
<line number="423" hits="162" branch="false"/>
<line number="424" hits="162" branch="false"/>
<line number="425" hits="162" branch="false"/>
<line number="427" hits="162" branch="false"/>
<line number="429" hits="162" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="431" hits="18" branch="false"/>
<line number="433" hits="18" branch="false"/>
<line number="435" hits="18" branch="false"/>
<line number="438" hits="18" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="439" hits="6" branch="false"/>
<line number="440" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="441" hits="6" branch="false"/>
<line number="446" hits="162" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="448" hits="156" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="450" hits="144" branch="false"/>
<line number="453" hits="12" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="454" hits="8" branch="false"/>
<line number="455" hits="8" branch="false"/>
<line number="457" hits="8" branch="false"/>
<line number="458" hits="8" branch="false"/>
<line number="460" hits="4" branch="false"/>
<line number="461" hits="4" branch="false"/>
<line number="462" hits="4" branch="false"/>
<line number="467" hits="6" branch="false"/>
<line number="468" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="469" hits="4" branch="false"/>
<line number="470" hits="4" branch="false"/>
<line number="471" hits="4" branch="false"/>
<line number="472" hits="4" branch="false"/>
<line number="474" hits="2" branch="false"/>
<line number="475" hits="2" branch="false"/>
<line number="478" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="479" hits="0" branch="false"/>
<line number="483" hits="6" branch="false"/>
<line number="485" hits="160" branch="false"/>
</lines>
</method>
<method name="applyProperty" signature="(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;)V" line-rate="0.88" branch-rate="0.9444444444444444">
<lines>
<line number="537" hits="144" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="538" hits="2" branch="false"/>
<line number="539" hits="142" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="540" hits="2" branch="false"/>
<line number="541" hits="140" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="542" hits="6" branch="false"/>
<line number="543" hits="6" branch="false"/>
<line number="544" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="545" hits="4" branch="false"/>
<line number="546" hits="130" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="547" hits="4" branch="false"/>
<line number="548" hits="126" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="549" hits="6" branch="false"/>
<line number="550" hits="120" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="551" hits="6" branch="false"/>
<line number="552" hits="114" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="553" hits="4" branch="false"/>
<line number="554" hits="110" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="555" hits="0" branch="false"/>
<line number="556" hits="0" branch="false"/>
<line number="557" hits="0" branch="false"/>
<line number="558" hits="110" branch="false"/>
<line number="559" hits="110" branch="false"/>
<line number="562" hits="142" branch="false"/>
<line number="563" hits="140" branch="false"/>
</lines>
</method>
<method name="applyProperty" signature="(Ljava/lang/String;Ljava/lang/String;Ljava/util/Map;)V" line-rate="0.8" branch-rate="0.5">
<lines>
<line number="158" hits="142" branch="false"/>
<line number="160" hits="142" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="161" hits="142" branch="false"/>
<line number="162" hits="142" branch="false"/>
<line number="164" hits="142" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="165" hits="0" branch="false"/>
<line number="167" hits="142" branch="false"/>
<line number="170" hits="138" branch="false"/>
<line number="171" hits="0" branch="false"/>
<line number="174" hits="138" branch="false"/>
</lines>
</method>
<method name="applySingleProperty" signature="(Ljava/util/Map;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V" line-rate="0.625" branch-rate="0.5">
<lines>
<line number="193" hits="142" branch="false"/>
<line number="194" hits="142" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="195" hits="0" branch="false"/>
<line number="198" hits="142" 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="203" hits="0" branch="false"/>
<line number="206" hits="142" branch="false"/>
<line number="208" hits="138" branch="false"/>
</lines>
</method>
<method name="buildObjects" signature="(Ljava/util/Map;)Ljava/util/Map;" line-rate="1.0" branch-rate="0.8571428571428571">
<lines>
<line number="100" hits="88" 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="106" hits="80" branch="false"/>
<line number="107" hits="80" branch="false"/>
<line number="109" hits="80" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="110" hits="274" 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="111" hits="132" branch="false"/>
<line number="113" hits="142" branch="false"/>
<line number="115" hits="274" branch="false"/>
<line number="118" hits="80" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="119" hits="132" branch="false"/>
<line number="120" hits="132" branch="false"/>
<line number="123" hits="80" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="124" hits="142" branch="false"/>
<line number="125" hits="138" branch="false"/>
<line number="129" hits="84" branch="false"/>
<line number="131" hits="84" branch="false"/>
</lines>
</method>
<method name="checkForNullOrEmptyLiteral" signature="(Ljava/lang/String;)Ljava/lang/String;" line-rate="0.8571428571428571" branch-rate="0.8333333333333334">
<lines>
<line number="405" hits="116" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="406" hits="0" branch="false"/>
<line number="409" hits="116" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="410" hits="2" branch="false"/>
<line number="413" hits="114" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="414" hits="2" branch="false"/>
<line number="416" hits="112" branch="false"/>
</lines>
</method>
<method name="createNewInstance" signature="(Ljava/util/Map;Ljava/lang/String;Ljava/lang/String;)V" line-rate="0.6666666666666666" branch-rate="0.75">
<lines>
<line number="136" hits="132" branch="false"/>
<line number="137" hits="132" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="138" hits="0" branch="false"/>
<line number="144" hits="132" branch="false"/>
<line number="145" hits="132" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="146" hits="28" branch="false"/>
<line number="148" hits="0" branch="false"/>
<line number="149" hits="0" branch="false"/>
<line number="151" hits="0" branch="false"/>
<line number="152" hits="132" branch="false"/>
<line number="153" hits="132" branch="false"/>
<line number="154" hits="132" branch="false"/>
</lines>
</method>
<method name="getBean" signature="(Ljava/lang/String;)Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="79" hits="42" branch="false"/>
</lines>
</method>
<method name="getBean" signature="(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;" line-rate="0.5555555555555556" branch-rate="0.5">
<lines>
<line number="84" hits="42" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="85" hits="0" branch="false"/>
<line number="87" hits="42" branch="false"/>
<line number="88" hits="42" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="89" hits="0" branch="false"/>
<line number="91" hits="42" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="92" hits="0" branch="false"/>
<line number="93" hits="0" branch="false"/>
<line number="95" hits="42" branch="false"/>
</lines>
</method>
<method name="getId" signature="(Ljava/lang/String;)Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="215" hits="76" branch="false"/>
</lines>
</method>
<method name="getIndexedProperty" signature="(Ljava/lang/Object;Ljava/lang/String;I)Ljava/lang/Object;" line-rate="0.3333333333333333" branch-rate="1.0">
<lines>
<line number="523" hits="2" branch="false"/>
<line number="524" hits="0" branch="false"/>
<line number="525" hits="0" branch="false"/>
</lines>
</method>
<method name="getObjects" signature="()Ljava/util/Map;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="71" hits="0" branch="false"/>
</lines>
</method>
<method name="getProperty" signature="(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;" line-rate="0.3333333333333333" branch-rate="1.0">
<lines>
<line number="507" hits="12" branch="false"/>
<line number="508" hits="0" branch="false"/>
<line number="509" hits="0" branch="false"/>
</lines>
</method>
<method name="getReferencedObject" signature="(Ljava/lang/String;)Ljava/lang/Object;" line-rate="1.0" branch-rate="0.6666666666666666">
<lines>
<line number="219" hits="76" 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="220" hits="76" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="221" hits="2" branch="false"/>
<line number="224" hits="2" branch="false"/>
<line number="226" hits="74" branch="false"/>
</lines>
</method>
<method name="isIndexedPropertyAssignment" signature="(Ljava/lang/String;)Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="530" hits="140" branch="false"/>
</lines>
</method>
<method name="isReference" signature="(Ljava/lang/String;)Z" line-rate="1.0" branch-rate="0.75">
<lines>
<line number="211" hits="168" branch="true" condition-coverage="75% (3/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="100%"/>
</conditions>
</line>
</lines>
</method>
<method name="isTypedProperty" signature="(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Class;)Z" line-rate="0.35714285714285715" branch-rate="0.5">
<lines>
<line number="247" hits="752" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="248" hits="0" branch="false"/>
<line number="251" hits="752" branch="false"/>
<line number="252" hits="752" 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="254" hits="0" branch="false"/>
<line number="255" hits="0" branch="false"/>
<line number="257" hits="752" branch="false"/>
<line number="258" hits="752" branch="false"/>
<line number="259" hits="0" branch="false"/>
<line number="261" 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>
<method name="resolveReference" signature="(Ljava/lang/String;)Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="237" hits="76" branch="false"/>
<line number="238" hits="76" branch="false"/>
<line number="239" hits="76" branch="false"/>
<line number="240" hits="74" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="241" hits="2" branch="false"/>
<line number="243" hits="72" branch="false"/>
</lines>
</method>
<method name="resolveValue" signature="(Ljava/lang/String;)Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="396" hits="158" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="397" hits="66" branch="false"/>
<line number="399" hits="92" branch="false"/>
<line number="401" hits="156" branch="false"/>
</lines>
</method>
<method name="setIndexedProperty" signature="(Ljava/lang/Object;Ljava/lang/String;ILjava/lang/Object;)V" line-rate="0.6" branch-rate="1.0">
<lines>
<line number="515" hits="4" branch="false"/>
<line number="516" hits="0" branch="false"/>
<line number="517" hits="0" branch="false"/>
<line number="518" hits="4" branch="false"/>
<line number="519" hits="4" branch="false"/>
</lines>
</method>
<method name="setObjects" signature="(Ljava/util/Map;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="75" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="76" hits="0" branch="false"/>
</lines>
</method>
<method name="setProperty" signature="(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="489" hits="144" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="490" hits="288" branch="false"/>
<line number="491" hits="144" branch="false"/>
<line number="493" hits="144" branch="false"/>
<line number="494" hits="2" branch="false"/>
<line number="495" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="496" hits="2" branch="false"/>
<line number="501" hits="2" branch="false"/>
<line number="502" hits="142" branch="false"/>
<line number="503" hits="142" branch="false"/>
</lines>
</method>
<method name="toBytes" signature="(Ljava/lang/String;)[B" line-rate="0.875" branch-rate="0.75">
<lines>
<line number="380" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="381" hits="0" branch="false"/>
<line number="384" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="385" hits="2" branch="false"/>
<line number="386" hits="2" branch="false"/>
<line number="387" hits="2" branch="false"/>
<line number="389" hits="2" branch="false"/>
<line number="391" hits="4" branch="false"/>
</lines>
</method>
<method name="toCollection" signature="(Ljava/lang/String;)Ljava/util/Collection;" line-rate="0.9166666666666666" branch-rate="0.75">
<lines>
<line number="334" hits="6" branch="false"/>
<line number="335" hits="6" 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="336" hits="0" branch="false"/>
<line number="340" hits="6" 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="341" hits="4" branch="false"/>
<line number="342" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="343" hits="2" branch="false"/>
<line number="348" hits="4" branch="false"/>
<line number="349" hits="12" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="350" hits="8" branch="false"/>
<line number="351" hits="8" branch="false"/>
<line number="353" hits="4" branch="false"/>
</lines>
</method>
<method name="toList" signature="(Ljava/lang/String;)Ljava/util/List;" line-rate="0.9166666666666666" branch-rate="0.6666666666666666">
<lines>
<line number="357" hits="6" branch="false"/>
<line number="358" hits="6" 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="359" hits="0" branch="false"/>
<line number="363" hits="6" 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="364" hits="2" branch="false"/>
<line number="365" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="366" hits="2" branch="false"/>
<line number="371" hits="4" branch="false"/>
<line number="372" hits="14" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="373" hits="10" branch="false"/>
<line number="374" hits="10" branch="false"/>
<line number="376" hits="4" branch="false"/>
</lines>
</method>
<method name="toMap" signature="(Ljava/lang/String;)Ljava/util/Map;" line-rate="0.8571428571428571" branch-rate="0.6666666666666666">
<lines>
<line number="294" hits="4" branch="false"/>
<line number="296" hits="4" 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="297" hits="0" 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="302" hits="2" branch="false"/>
<line number="303" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="304" hits="2" branch="false"/>
<line number="308" hits="2" branch="false"/>
<line number="309" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="310" hits="4" branch="false"/>
<line number="311" hits="4" 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="312" hits="0" branch="false"/>
<line number="315" hits="0" branch="false"/>
<line number="317" hits="4" branch="false"/>
<line number="321" hits="2" branch="false"/>
<line number="322" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="323" hits="4" branch="false"/>
<line number="324" hits="4" branch="false"/>
<line number="325" hits="4" branch="false"/>
<line number="326" hits="4" branch="false"/>
<line number="327" hits="2" branch="false"/>
</lines>
</method>
<method name="toSet" signature="(Ljava/lang/String;)Ljava/util/Set;" line-rate="0.9285714285714286" branch-rate="0.6666666666666666">
<lines>
<line number="269" hits="4" branch="false"/>
<line number="270" hits="4" 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="271" hits="0" branch="false"/>
<line number="275" 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="276" hits="2" branch="false"/>
<line number="277" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="278" hits="2" branch="false"/>
<line number="282" hits="2" branch="false"/>
<line number="285" hits="2" branch="false"/>
<line number="286" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="287" hits="4" branch="false"/>
<line number="288" hits="4" branch="false"/>
<line number="289" hits="4" branch="false"/>
<line number="290" hits="2" branch="false"/>
</lines>
</method>
<method name="unescapeIfNecessary" signature="(Ljava/lang/String;)Ljava/lang/String;" line-rate="1.0" branch-rate="0.75">
<lines>
<line number="230" hits="92" 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="231" hits="2" branch="false"/>
<line number="233" hits="90" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="47" hits="2" branch="false"/>
<line number="62" hits="44" branch="false"/>
<line number="63" hits="44" branch="false"/>
<line number="64" hits="44" branch="false"/>
<line number="66" hits="52" branch="false"/>
<line number="67" hits="52" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="68" hits="52" branch="false"/>
<line number="71" hits="0" branch="false"/>
<line number="75" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="76" hits="0" branch="false"/>
<line number="79" hits="42" branch="false"/>
<line number="84" hits="42" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="85" hits="0" branch="false"/>
<line number="87" hits="42" branch="false"/>
<line number="88" hits="42" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="89" hits="0" branch="false"/>
<line number="91" hits="42" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="92" hits="0" branch="false"/>
<line number="93" hits="0" branch="false"/>
<line number="95" hits="42" branch="false"/>
<line number="100" hits="88" 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="106" hits="80" branch="false"/>
<line number="107" hits="80" branch="false"/>
<line number="109" hits="80" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="110" hits="274" 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="111" hits="132" branch="false"/>
<line number="113" hits="142" branch="false"/>
<line number="115" hits="274" branch="false"/>
<line number="118" hits="80" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="119" hits="132" branch="false"/>
<line number="120" hits="132" branch="false"/>
<line number="123" hits="80" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="124" hits="142" branch="false"/>
<line number="125" hits="138" branch="false"/>
<line number="129" hits="84" branch="false"/>
<line number="131" hits="84" branch="false"/>
<line number="136" hits="132" branch="false"/>
<line number="137" hits="132" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="138" hits="0" branch="false"/>
<line number="144" hits="132" branch="false"/>
<line number="145" hits="132" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="146" hits="28" branch="false"/>
<line number="148" hits="0" branch="false"/>
<line number="149" hits="0" branch="false"/>
<line number="151" hits="0" branch="false"/>
<line number="152" hits="132" branch="false"/>
<line number="153" hits="132" branch="false"/>
<line number="154" hits="132" branch="false"/>
<line number="158" hits="142" branch="false"/>
<line number="160" hits="142" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="161" hits="142" branch="false"/>
<line number="162" hits="142" branch="false"/>
<line number="164" hits="142" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="165" hits="0" branch="false"/>
<line number="167" hits="142" branch="false"/>
<line number="170" hits="138" branch="false"/>
<line number="171" hits="0" branch="false"/>
<line number="174" hits="138" 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="179" hits="0" branch="false"/>
<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="184" hits="0" branch="false"/>
<line number="185" hits="0" branch="false"/>
<line number="187" hits="0" branch="false"/>
<line number="188" hits="0" branch="false"/>
<line number="189" hits="0" branch="false"/>
<line number="190" hits="0" branch="false"/>
<line number="193" hits="142" branch="false"/>
<line number="194" hits="142" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="195" hits="0" branch="false"/>
<line number="198" hits="142" 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="203" hits="0" branch="false"/>
<line number="206" hits="142" branch="false"/>
<line number="208" hits="138" branch="false"/>
<line number="211" hits="168" 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="215" hits="76" branch="false"/>
<line number="219" hits="76" 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="220" hits="76" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="221" hits="2" branch="false"/>
<line number="224" hits="2" branch="false"/>
<line number="226" hits="74" branch="false"/>
<line number="230" hits="92" 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="231" hits="2" branch="false"/>
<line number="233" hits="90" branch="false"/>
<line number="237" hits="76" branch="false"/>
<line number="238" hits="76" branch="false"/>
<line number="239" hits="76" branch="false"/>
<line number="240" hits="74" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="241" hits="2" branch="false"/>
<line number="243" hits="72" branch="false"/>
<line number="247" hits="752" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="248" hits="0" branch="false"/>
<line number="251" hits="752" branch="false"/>
<line number="252" hits="752" 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="254" hits="0" branch="false"/>
<line number="255" hits="0" branch="false"/>
<line number="257" hits="752" branch="false"/>
<line number="258" hits="752" branch="false"/>
<line number="259" hits="0" branch="false"/>
<line number="261" 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"/>
<line number="269" hits="4" branch="false"/>
<line number="270" hits="4" 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="271" hits="0" branch="false"/>
<line number="275" 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="276" hits="2" branch="false"/>
<line number="277" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="278" hits="2" branch="false"/>
<line number="282" hits="2" branch="false"/>
<line number="285" hits="2" branch="false"/>
<line number="286" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="287" hits="4" branch="false"/>
<line number="288" hits="4" branch="false"/>
<line number="289" hits="4" branch="false"/>
<line number="290" hits="2" branch="false"/>
<line number="294" hits="4" branch="false"/>
<line number="296" hits="4" 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="297" hits="0" 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="302" hits="2" branch="false"/>
<line number="303" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="304" hits="2" branch="false"/>
<line number="308" hits="2" branch="false"/>
<line number="309" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="310" hits="4" branch="false"/>
<line number="311" hits="4" 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="312" hits="0" branch="false"/>
<line number="315" hits="0" branch="false"/>
<line number="317" hits="4" branch="false"/>
<line number="321" hits="2" branch="false"/>
<line number="322" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="323" hits="4" branch="false"/>
<line number="324" hits="4" branch="false"/>
<line number="325" hits="4" branch="false"/>
<line number="326" hits="4" branch="false"/>
<line number="327" hits="2" branch="false"/>
<line number="334" hits="6" branch="false"/>
<line number="335" hits="6" 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="336" hits="0" branch="false"/>
<line number="340" hits="6" 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="341" hits="4" branch="false"/>
<line number="342" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="343" hits="2" branch="false"/>
<line number="348" hits="4" branch="false"/>
<line number="349" hits="12" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="350" hits="8" branch="false"/>
<line number="351" hits="8" branch="false"/>
<line number="353" hits="4" branch="false"/>
<line number="357" hits="6" branch="false"/>
<line number="358" hits="6" 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="359" hits="0" branch="false"/>
<line number="363" hits="6" 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="364" hits="2" branch="false"/>
<line number="365" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="366" hits="2" branch="false"/>
<line number="371" hits="4" branch="false"/>
<line number="372" hits="14" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="373" hits="10" branch="false"/>
<line number="374" hits="10" branch="false"/>
<line number="376" hits="4" branch="false"/>
<line number="380" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="381" hits="0" branch="false"/>
<line number="384" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="385" hits="2" branch="false"/>
<line number="386" hits="2" branch="false"/>
<line number="387" hits="2" branch="false"/>
<line number="389" hits="2" branch="false"/>
<line number="391" hits="4" branch="false"/>
<line number="396" hits="158" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="397" hits="66" branch="false"/>
<line number="399" hits="92" branch="false"/>
<line number="401" hits="156" branch="false"/>
<line number="405" hits="116" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="406" hits="0" branch="false"/>
<line number="409" hits="116" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="410" hits="2" branch="false"/>
<line number="413" hits="114" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="414" hits="2" branch="false"/>
<line number="416" hits="112" branch="false"/>
<line number="422" hits="162" branch="false"/>
<line number="423" hits="162" branch="false"/>
<line number="424" hits="162" branch="false"/>
<line number="425" hits="162" branch="false"/>
<line number="427" hits="162" branch="false"/>
<line number="429" hits="162" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="431" hits="18" branch="false"/>
<line number="433" hits="18" branch="false"/>
<line number="435" hits="18" branch="false"/>
<line number="438" hits="18" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="439" hits="6" branch="false"/>
<line number="440" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="441" hits="6" branch="false"/>
<line number="446" hits="162" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="448" hits="156" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="450" hits="144" branch="false"/>
<line number="453" hits="12" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="454" hits="8" branch="false"/>
<line number="455" hits="8" branch="false"/>
<line number="457" hits="8" branch="false"/>
<line number="458" hits="8" branch="false"/>
<line number="460" hits="4" branch="false"/>
<line number="461" hits="4" branch="false"/>
<line number="462" hits="4" branch="false"/>
<line number="467" hits="6" branch="false"/>
<line number="468" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="469" hits="4" branch="false"/>
<line number="470" hits="4" branch="false"/>
<line number="471" hits="4" branch="false"/>
<line number="472" hits="4" branch="false"/>
<line number="474" hits="2" branch="false"/>
<line number="475" hits="2" branch="false"/>
<line number="478" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="479" hits="0" branch="false"/>
<line number="483" hits="6" branch="false"/>
<line number="485" hits="160" branch="false"/>
<line number="489" hits="144" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="490" hits="288" branch="false"/>
<line number="491" hits="144" branch="false"/>
<line number="493" hits="144" branch="false"/>
<line number="494" hits="2" branch="false"/>
<line number="495" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="496" hits="2" branch="false"/>
<line number="501" hits="2" branch="false"/>
<line number="502" hits="142" branch="false"/>
<line number="503" hits="142" branch="false"/>
<line number="507" hits="12" branch="false"/>
<line number="508" hits="0" branch="false"/>
<line number="509" hits="0" branch="false"/>
<line number="515" hits="4" branch="false"/>
<line number="516" hits="0" branch="false"/>
<line number="517" hits="0" branch="false"/>
<line number="518" hits="4" branch="false"/>
<line number="519" hits="4" branch="false"/>
<line number="523" hits="2" branch="false"/>
<line number="524" hits="0" branch="false"/>
<line number="525" hits="0" branch="false"/>
<line number="530" hits="140" branch="false"/>
<line number="537" hits="144" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="538" hits="2" branch="false"/>
<line number="539" hits="142" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="540" hits="2" branch="false"/>
<line number="541" hits="140" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="542" hits="6" branch="false"/>
<line number="543" hits="6" branch="false"/>
<line number="544" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="545" hits="4" branch="false"/>
<line number="546" hits="130" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="547" hits="4" branch="false"/>
<line number="548" hits="126" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="549" hits="6" branch="false"/>
<line number="550" hits="120" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="551" hits="6" branch="false"/>
<line number="552" hits="114" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="553" hits="4" branch="false"/>
<line number="554" hits="110" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="555" hits="0" branch="false"/>
<line number="556" hits="0" branch="false"/>
<line number="557" hits="0" branch="false"/>
<line number="558" hits="110" branch="false"/>
<line number="559" hits="110" branch="false"/>
<line number="562" hits="142" branch="false"/>
<line number="563" hits="140" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.config.ResourceConfigurable" filename="org/apache/shiro/config/ResourceConfigurable.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.config.UnresolveableReferenceException" filename="org/apache/shiro/config/UnresolveableReferenceException.java" line-rate="0.25" 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="33" hits="0" branch="false"/>
<line number="34" 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="42" hits="2" branch="false"/>
<line number="43" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/lang/Throwable;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="61" hits="0" branch="false"/>
<line number="62" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Throwable;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="51" hits="0" branch="false"/>
<line number="52" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="33" hits="0" branch="false"/>
<line number="34" hits="0" branch="false"/>
<line number="42" hits="2" branch="false"/>
<line number="43" hits="2" branch="false"/>
<line number="51" hits="0" branch="false"/>
<line number="52" hits="0" branch="false"/>
<line number="61" hits="0" branch="false"/>
<line number="62" hits="0" branch="false"/>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.crypto" line-rate="0.6748466257668712" branch-rate="0.5258620689655172" complexity="2.0952380952380953">
<classes>
<class name="org.apache.shiro.crypto.AbstractSymmetricCipherService" filename="org/apache/shiro/crypto/AbstractSymmetricCipherService.java" line-rate="0.7" branch-rate="1.0" complexity="1.6666666666666667">
<methods>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="33" hits="12" branch="false"/>
<line number="34" hits="12" branch="false"/>
</lines>
</method>
<method name="generateNewKey" signature="()Ljava/security/Key;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="43" hits="12" branch="false"/>
</lines>
</method>
<method name="generateNewKey" signature="(I)Ljava/security/Key;" line-rate="0.5714285714285714" branch-rate="1.0">
<lines>
<line number="56" hits="12" 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="60" hits="12" branch="false"/>
<line number="61" hits="12" branch="false"/>
<line number="62" hits="12" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="33" hits="12" branch="false"/>
<line number="34" hits="12" branch="false"/>
<line number="43" hits="12" branch="false"/>
<line number="56" hits="12" 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="60" hits="12" branch="false"/>
<line number="61" hits="12" branch="false"/>
<line number="62" hits="12" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.crypto.AesCipherService" filename="org/apache/shiro/crypto/AesCipherService.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="87" hits="8" branch="false"/>
<line number="88" hits="8" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="87" hits="8" branch="false"/>
<line number="88" hits="8" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.crypto.BlowfishCipherService" filename="org/apache/shiro/crypto/BlowfishCipherService.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="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="89" hits="4" branch="false"/>
<line number="90" hits="4" branch="false"/>
<line number="91" hits="4" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.crypto.CipherService" filename="org/apache/shiro/crypto/CipherService.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.crypto.CryptoException" filename="org/apache/shiro/crypto/CryptoException.java" line-rate="0.3333333333333333" branch-rate="1.0" complexity="1.0">
<methods>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="31" hits="0" branch="false"/>
<line number="32" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/lang/Throwable;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="39" hits="2" branch="false"/>
<line number="40" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Throwable;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="35" hits="0" branch="false"/>
<line number="36" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="31" hits="0" branch="false"/>
<line number="32" hits="0" branch="false"/>
<line number="35" hits="0" branch="false"/>
<line number="36" hits="0" branch="false"/>
<line number="39" hits="2" branch="false"/>
<line number="40" hits="2" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.crypto.DefaultBlockCipherService" filename="org/apache/shiro/crypto/DefaultBlockCipherService.java" line-rate="0.5128205128205128" branch-rate="0.5263157894736842" complexity="1.8">
<methods>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="165" hits="12" branch="false"/>
<line number="167" hits="12" branch="false"/>
<line number="168" hits="12" branch="false"/>
<line number="169" hits="12" branch="false"/>
<line number="171" hits="12" branch="false"/>
<line number="172" hits="12" branch="false"/>
<line number="173" hits="12" branch="false"/>
<line number="174" hits="12" branch="false"/>
</lines>
</method>
<method name="buildStreamingTransformationString" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="463" hits="4" branch="false"/>
</lines>
</method>
<method name="buildTransformationString" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="459" hits="4" branch="false"/>
</lines>
</method>
<method name="buildTransformationString" signature="(Ljava/lang/String;Ljava/lang/String;I)Ljava/lang/String;" line-rate="0.875" branch-rate="0.5">
<lines>
<line number="467" hits="8" branch="false"/>
<line number="468" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="469" hits="8" branch="false"/>
<line number="471" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="472" hits="0" branch="false"/>
<line number="474" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="475" hits="8" branch="false"/>
<line number="477" hits="8" branch="false"/>
</lines>
</method>
<method name="generateInitializationVector" signature="(Z)[B" line-rate="0.6363636363636364" branch-rate="0.6666666666666666">
<lines>
<line number="512" hits="16" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="513" hits="8" branch="false"/>
<line number="514" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="515" hits="0" branch="false"/>
<line number="518" hits="0" branch="false"/>
<line number="520" hits="8" branch="false"/>
<line number="521" hits="8" branch="false"/>
<line number="522" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="523" hits="0" branch="false"/>
<line number="526" hits="0" branch="false"/>
<line number="529" hits="16" branch="false"/>
</lines>
</method>
<method name="getBlockSize" signature="()I" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="335" hits="4" branch="false"/>
</lines>
</method>
<method name="getModeName" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="193" hits="28" branch="false"/>
</lines>
</method>
<method name="getPaddingSchemeName" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="263" hits="4" branch="false"/>
</lines>
</method>
<method name="getStreamingBlockSize" signature="()I" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="425" hits="0" branch="false"/>
</lines>
</method>
<method name="getStreamingModeName" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="375" hits="12" branch="false"/>
</lines>
</method>
<method name="getStreamingPaddingSchemeName" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="411" hits="4" branch="false"/>
</lines>
</method>
<method name="getTransformationString" signature="(Z)Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="445" hits="32" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="446" hits="16" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="447" hits="4" branch="false"/>
<line number="449" hits="16" branch="false"/>
<line number="451" hits="16" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="452" hits="4" branch="false"/>
<line number="454" hits="16" branch="false"/>
</lines>
</method>
<method name="isGenerateInitializationVectors" signature="(Z)Z" line-rate="1.0" branch-rate="0.6666666666666666">
<lines>
<line number="507" hits="32" branch="true" condition-coverage="66% (4/6)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="50%"/>
<condition number="2" type="jump" coverage="50%"/>
</conditions>
</line>
</lines>
</method>
<method name="isModeInitializationVectorCompatible" signature="(Ljava/lang/String;)Z" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="489" hits="64" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="490" hits="32" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="491" hits="32" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
</lines>
</method>
<method name="isModeStreamingCompatible" signature="(Ljava/lang/String;)Z" line-rate="0.0" branch-rate="0.0">
<lines>
<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="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="381" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
</lines>
</method>
<method name="setBlockSize" signature="(I)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="358" hits="0" branch="false"/>
<line number="360" hits="0" branch="false"/>
<line number="361" hits="0" branch="false"/>
</lines>
</method>
<method name="setMode" signature="(Lorg/apache/shiro/crypto/OperationMode;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="243" hits="0" branch="false"/>
<line number="244" hits="0" branch="false"/>
</lines>
</method>
<method name="setModeName" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="219" hits="0" branch="false"/>
<line number="221" hits="0" branch="false"/>
<line number="222" hits="0" branch="false"/>
</lines>
</method>
<method name="setPaddingScheme" signature="(Lorg/apache/shiro/crypto/PaddingScheme;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="315" hits="0" branch="false"/>
<line number="316" hits="0" branch="false"/>
</lines>
</method>
<method name="setPaddingSchemeName" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="290" hits="0" branch="false"/>
<line number="292" hits="0" branch="false"/>
<line number="293" hits="0" branch="false"/>
</lines>
</method>
<method name="setStreamingBlockSize" signature="(I)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="429" hits="0" branch="false"/>
<line number="431" hits="0" branch="false"/>
<line number="432" hits="0" branch="false"/>
</lines>
</method>
<method name="setStreamingMode" signature="(Lorg/apache/shiro/crypto/OperationMode;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="407" hits="0" branch="false"/>
<line number="408" hits="0" branch="false"/>
</lines>
</method>
<method name="setStreamingModeName" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="391" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="392" hits="0" branch="false"/>
<line number="393" hits="0" branch="false"/>
<line number="395" hits="0" branch="false"/>
<line number="397" hits="0" branch="false"/>
<line number="398" hits="0" branch="false"/>
</lines>
</method>
<method name="setStreamingPaddingScheme" signature="(Lorg/apache/shiro/crypto/PaddingScheme;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="421" hits="0" branch="false"/>
<line number="422" hits="0" branch="false"/>
</lines>
</method>
<method name="setStreamingPaddingSchemeName" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="415" hits="0" branch="false"/>
<line number="417" hits="0" branch="false"/>
<line number="418" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="165" hits="12" branch="false"/>
<line number="167" hits="12" branch="false"/>
<line number="168" hits="12" branch="false"/>
<line number="169" hits="12" branch="false"/>
<line number="171" hits="12" branch="false"/>
<line number="172" hits="12" branch="false"/>
<line number="173" hits="12" branch="false"/>
<line number="174" hits="12" branch="false"/>
<line number="193" hits="28" branch="false"/>
<line number="219" hits="0" branch="false"/>
<line number="221" hits="0" branch="false"/>
<line number="222" hits="0" branch="false"/>
<line number="243" hits="0" branch="false"/>
<line number="244" hits="0" branch="false"/>
<line number="263" hits="4" branch="false"/>
<line number="290" hits="0" branch="false"/>
<line number="292" hits="0" branch="false"/>
<line number="293" hits="0" branch="false"/>
<line number="315" hits="0" branch="false"/>
<line number="316" hits="0" branch="false"/>
<line number="335" hits="4" branch="false"/>
<line number="358" hits="0" branch="false"/>
<line number="360" hits="0" branch="false"/>
<line number="361" hits="0" branch="false"/>
<line number="375" hits="12" 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="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="381" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="391" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="392" hits="0" branch="false"/>
<line number="393" hits="0" branch="false"/>
<line number="395" hits="0" branch="false"/>
<line number="397" hits="0" branch="false"/>
<line number="398" hits="0" branch="false"/>
<line number="407" hits="0" branch="false"/>
<line number="408" hits="0" branch="false"/>
<line number="411" hits="4" branch="false"/>
<line number="415" hits="0" branch="false"/>
<line number="417" hits="0" branch="false"/>
<line number="418" hits="0" branch="false"/>
<line number="421" hits="0" branch="false"/>
<line number="422" hits="0" branch="false"/>
<line number="425" hits="0" branch="false"/>
<line number="429" hits="0" branch="false"/>
<line number="431" hits="0" branch="false"/>
<line number="432" hits="0" branch="false"/>
<line number="445" hits="32" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="446" hits="16" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="447" hits="4" branch="false"/>
<line number="449" hits="16" branch="false"/>
<line number="451" hits="16" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="452" hits="4" branch="false"/>
<line number="454" hits="16" branch="false"/>
<line number="459" hits="4" branch="false"/>
<line number="463" hits="4" branch="false"/>
<line number="467" hits="8" branch="false"/>
<line number="468" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="469" hits="8" branch="false"/>
<line number="471" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="472" hits="0" branch="false"/>
<line number="474" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="475" hits="8" branch="false"/>
<line number="477" hits="8" branch="false"/>
<line number="489" hits="64" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="490" hits="32" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="491" hits="32" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="507" hits="32" branch="true" condition-coverage="66% (4/6)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="50%"/>
<condition number="2" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="512" hits="16" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="513" hits="8" branch="false"/>
<line number="514" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="515" hits="0" branch="false"/>
<line number="518" hits="0" branch="false"/>
<line number="520" hits="8" branch="false"/>
<line number="521" hits="8" branch="false"/>
<line number="522" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="523" hits="0" branch="false"/>
<line number="526" hits="0" branch="false"/>
<line number="529" hits="16" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.crypto.JcaCipherService" filename="org/apache/shiro/crypto/JcaCipherService.java" line-rate="0.7076023391812866" branch-rate="0.5" complexity="3.0">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="74" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;)V" line-rate="0.8888888888888888" branch-rate="0.5">
<lines>
<line number="125" hits="14" branch="false"/>
<line number="126" hits="14" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="127" hits="0" branch="false"/>
<line number="129" hits="14" branch="false"/>
<line number="130" hits="14" branch="false"/>
<line number="131" hits="14" branch="false"/>
<line number="132" hits="14" branch="false"/>
<line number="133" hits="14" branch="false"/>
<line number="134" hits="14" branch="false"/>
</lines>
</method>
<method name="crypt" signature="(Ljava/io/InputStream;Ljava/io/OutputStream;[B[BI)V" line-rate="0.7142857142857143" branch-rate="0.6666666666666666">
<lines>
<line number="564" hits="16" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="565" hits="0" branch="false"/>
<line number="567" hits="16" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="568" hits="0" branch="false"/>
<line number="571" hits="16" branch="false"/>
<line number="573" hits="16" branch="false"/>
<line number="575" hits="16" branch="false"/>
<line number="576" hits="16" branch="false"/>
<line number="580" hits="48" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="581" hits="32" branch="false"/>
<line number="583" hits="0" branch="false"/>
<line number="584" hits="0" branch="false"/>
<line number="585" hits="16" branch="false"/>
<line number="586" hits="16" branch="false"/>
</lines>
</method>
<method name="crypt" signature="(Ljavax/crypto/Cipher;[B)[B" line-rate="0.25" branch-rate="1.0">
<lines>
<line number="459" hits="16" branch="false"/>
<line number="460" hits="0" branch="false"/>
<line number="461" hits="0" branch="false"/>
<line number="462" hits="0" branch="false"/>
</lines>
</method>
<method name="crypt" signature="([B[B[BI)[B" line-rate="0.75" branch-rate="0.5">
<lines>
<line number="441" hits="16" 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="442" hits="0" branch="false"/>
<line number="444" hits="16" branch="false"/>
<line number="445" hits="16" branch="false"/>
</lines>
</method>
<method name="decrypt" signature="(Ljava/io/InputStream;Ljava/io/OutputStream;[B)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="527" hits="8" branch="false"/>
<line number="528" hits="8" branch="false"/>
</lines>
</method>
<method name="decrypt" signature="(Ljava/io/InputStream;Ljava/io/OutputStream;[BZ)V" line-rate="0.7142857142857143" branch-rate="0.5">
<lines>
<line number="532" hits="8" branch="false"/>
<line number="534" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="537" hits="8" branch="false"/>
<line number="538" hits="8" branch="false"/>
<line number="539" hits="8" branch="false"/>
<line number="543" hits="8" branch="false"/>
<line number="544" hits="0" branch="false"/>
<line number="545" hits="0" branch="false"/>
<line number="546" hits="0" branch="false"/>
<line number="547" hits="8" branch="false"/>
<line number="549" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="550" hits="0" branch="false"/>
<line number="556" hits="8" branch="false"/>
<line number="557" hits="8" branch="false"/>
</lines>
</method>
<method name="decrypt" signature="(Ljava/io/InputStream;Ljava/io/OutputStream;[B[B)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="560" hits="8" branch="false"/>
<line number="561" hits="8" branch="false"/>
</lines>
</method>
<method name="decrypt" signature="([B[B)Lorg/apache/shiro/util/ByteSource;" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="349" hits="10" branch="false"/>
<line number="352" hits="10" branch="false"/>
<line number="354" hits="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="365" hits="10" branch="false"/>
<line number="366" hits="10" branch="false"/>
<line number="369" hits="10" branch="false"/>
<line number="370" hits="10" branch="false"/>
<line number="373" hits="8" branch="false"/>
<line number="374" hits="8" branch="false"/>
<line number="375" hits="8" branch="false"/>
<line number="376" hits="2" branch="false"/>
<line number="377" hits="2" branch="false"/>
<line number="378" hits="2" branch="false"/>
<line number="379" hits="8" branch="false"/>
<line number="382" hits="8" branch="false"/>
</lines>
</method>
<method name="decrypt" signature="([B[B[B)Lorg/apache/shiro/util/ByteSource;" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="386" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="387" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="390" hits="8" branch="false"/>
<line number="391" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
</lines>
</method>
<method name="encrypt" signature="(Ljava/io/InputStream;Ljava/io/OutputStream;[B)V" line-rate="0.875" branch-rate="0.5">
<lines>
<line number="501" hits="8" branch="false"/>
<line number="502" hits="8" branch="false"/>
<line number="503" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="504" hits="8" branch="false"/>
<line number="505" hits="8" 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="506" hits="0" branch="false"/>
<line number="510" hits="8" branch="false"/>
<line number="511" hits="8" branch="false"/>
</lines>
</method>
<method name="encrypt" signature="(Ljava/io/InputStream;Ljava/io/OutputStream;[B[BZ)V" line-rate="0.7142857142857143" branch-rate="0.5">
<lines>
<line number="514" 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="517" hits="8" branch="false"/>
<line number="518" hits="0" branch="false"/>
<line number="519" hits="0" branch="false"/>
<line number="520" hits="8" branch="false"/>
<line number="523" hits="8" branch="false"/>
<line number="524" hits="8" branch="false"/>
</lines>
</method>
<method name="encrypt" signature="([B[B)Lorg/apache/shiro/util/ByteSource;" line-rate="0.8571428571428571" branch-rate="0.5">
<lines>
<line number="304" hits="8" branch="false"/>
<line number="305" hits="8" branch="false"/>
<line number="306" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="307" hits="8" branch="false"/>
<line number="308" hits="8" 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="309" hits="0" branch="false"/>
<line number="313" hits="8" branch="false"/>
</lines>
</method>
<method name="encrypt" signature="([B[B[BZ)Lorg/apache/shiro/util/ByteSource;" line-rate="0.9090909090909091" branch-rate="0.5">
<lines>
<line number="318" hits="8" branch="false"/>
<line number="322" 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="324" hits="8" branch="false"/>
<line number="326" hits="8" branch="false"/>
<line number="331" hits="8" branch="false"/>
<line number="334" hits="8" branch="false"/>
<line number="335" hits="8" branch="false"/>
<line number="336" hits="0" branch="false"/>
<line number="339" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="340" hits="8" 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="8" branch="false"/>
</lines>
</method>
<method name="ensureSecureRandom" signature="()Ljava/security/SecureRandom;" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="263" hits="16" branch="false"/>
<line number="264" hits="16" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="265" hits="16" branch="false"/>
<line number="267" hits="16" branch="false"/>
</lines>
</method>
<method name="generateInitializationVector" signature="(Z)[B" line-rate="0.6153846153846154" branch-rate="0.5">
<lines>
<line number="285" hits="16" branch="false"/>
<line number="286" hits="16" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="287" hits="0" branch="false"/>
<line number="288" hits="0" branch="false"/>
<line number="290" hits="0" branch="false"/>
<line number="292" hits="16" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="293" hits="0" branch="false"/>
<line number="294" hits="0" branch="false"/>
<line number="296" hits="16" branch="false"/>
<line number="297" hits="16" branch="false"/>
<line number="298" hits="16" branch="false"/>
<line number="299" hits="16" branch="false"/>
<line number="300" hits="16" branch="false"/>
</lines>
</method>
<method name="getAlgorithmName" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="143" hits="52" branch="false"/>
</lines>
</method>
<method name="getDefaultSecureRandom" signature="()Ljava/security/SecureRandom;" line-rate="0.25" branch-rate="1.0">
<lines>
<line number="254" hits="16" branch="false"/>
<line number="255" hits="0" branch="false"/>
<line number="256" hits="0" branch="false"/>
<line number="258" hits="0" branch="false"/>
</lines>
</method>
<method name="getInitializationVectorSize" signature="()I" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="178" hits="34" branch="false"/>
</lines>
</method>
<method name="getKeySize" signature="()I" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="152" hits="12" branch="false"/>
</lines>
</method>
<method name="getSecureRandom" signature="()Ljava/security/SecureRandom;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="238" hits="48" branch="false"/>
</lines>
</method>
<method name="getStreamingBufferSize" signature="()I" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="213" hits="16" branch="false"/>
</lines>
</method>
<method name="getTransformationString" signature="(Z)Ljava/lang/String;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="281" hits="0" branch="false"/>
</lines>
</method>
<method name="init" signature="(Ljavax/crypto/Cipher;ILjava/security/Key;Ljava/security/spec/AlgorithmParameterSpec;Ljava/security/SecureRandom;)V" line-rate="0.4166666666666667" branch-rate="0.3333333333333333">
<lines>
<line number="480" hits="32" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="481" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="482" hits="0" branch="false"/>
<line number="484" hits="0" branch="false"/>
<line number="487" hits="32" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="488" hits="32" branch="false"/>
<line number="490" hits="0" branch="false"/>
<line number="493" hits="0" branch="false"/>
<line number="494" hits="0" branch="false"/>
<line number="495" hits="0" branch="false"/>
<line number="496" hits="32" branch="false"/>
<line number="497" hits="32" branch="false"/>
</lines>
</method>
<method name="initNewCipher" signature="(I[B[BZ)Ljavax/crypto/Cipher;" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="591" hits="32" branch="false"/>
<line number="592" hits="32" branch="false"/>
<line number="593" hits="32" branch="false"/>
<line number="594" hits="32" 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="595" hits="32" branch="false"/>
<line number="598" hits="32" branch="false"/>
<line number="600" hits="32" branch="false"/>
</lines>
</method>
<method name="isGenerateInitializationVectors" signature="()Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="165" hits="18" branch="false"/>
</lines>
</method>
<method name="isGenerateInitializationVectors" signature="(Z)Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="199" hits="2" branch="false"/>
</lines>
</method>
<method name="newCipherInstance" signature="(Z)Ljavax/crypto/Cipher;" line-rate="0.25" branch-rate="1.0">
<lines>
<line number="406" hits="32" branch="false"/>
<line number="408" hits="32" branch="false"/>
<line number="409" hits="0" branch="false"/>
<line number="410" hits="0" branch="false"/>
<line number="411" hits="0" branch="false"/>
<line number="412" hits="0" branch="false"/>
<line number="413" hits="0" branch="false"/>
<line number="414" hits="0" branch="false"/>
</lines>
</method>
<method name="setGenerateInitializationVectors" signature="(Z)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="169" hits="0" branch="false"/>
<line number="170" hits="0" branch="false"/>
</lines>
</method>
<method name="setInitializationVectorSize" signature="(I)V" line-rate="0.6" branch-rate="0.5">
<lines>
<line number="190" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="191" hits="0" branch="false"/>
<line number="193" hits="0" branch="false"/>
<line number="195" hits="4" branch="false"/>
<line number="196" hits="4" branch="false"/>
</lines>
</method>
<method name="setKeySize" signature="(I)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="161" hits="0" branch="false"/>
<line number="162" hits="0" branch="false"/>
</lines>
</method>
<method name="setSecureRandom" signature="(Ljava/security/SecureRandom;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="249" hits="0" branch="false"/>
<line number="250" hits="0" branch="false"/>
</lines>
</method>
<method name="setStreamingBufferSize" signature="(I)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="227" hits="0" branch="false"/>
<line number="228" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="74" hits="2" branch="false"/>
<line number="125" hits="14" branch="false"/>
<line number="126" hits="14" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="127" hits="0" branch="false"/>
<line number="129" hits="14" branch="false"/>
<line number="130" hits="14" branch="false"/>
<line number="131" hits="14" branch="false"/>
<line number="132" hits="14" branch="false"/>
<line number="133" hits="14" branch="false"/>
<line number="134" hits="14" branch="false"/>
<line number="143" hits="52" branch="false"/>
<line number="152" hits="12" branch="false"/>
<line number="161" hits="0" branch="false"/>
<line number="162" hits="0" branch="false"/>
<line number="165" hits="18" branch="false"/>
<line number="169" hits="0" branch="false"/>
<line number="170" hits="0" branch="false"/>
<line number="178" hits="34" branch="false"/>
<line number="190" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="191" hits="0" branch="false"/>
<line number="193" hits="0" branch="false"/>
<line number="195" hits="4" branch="false"/>
<line number="196" hits="4" branch="false"/>
<line number="199" hits="2" branch="false"/>
<line number="213" hits="16" branch="false"/>
<line number="227" hits="0" branch="false"/>
<line number="228" hits="0" branch="false"/>
<line number="238" hits="48" branch="false"/>
<line number="249" hits="0" branch="false"/>
<line number="250" hits="0" branch="false"/>
<line number="254" hits="16" branch="false"/>
<line number="255" hits="0" branch="false"/>
<line number="256" hits="0" branch="false"/>
<line number="258" hits="0" branch="false"/>
<line number="263" hits="16" branch="false"/>
<line number="264" hits="16" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="265" hits="16" branch="false"/>
<line number="267" hits="16" branch="false"/>
<line number="281" hits="0" branch="false"/>
<line number="285" hits="16" branch="false"/>
<line number="286" hits="16" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="287" hits="0" branch="false"/>
<line number="288" hits="0" branch="false"/>
<line number="290" hits="0" branch="false"/>
<line number="292" hits="16" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="293" hits="0" branch="false"/>
<line number="294" hits="0" branch="false"/>
<line number="296" hits="16" branch="false"/>
<line number="297" hits="16" branch="false"/>
<line number="298" hits="16" branch="false"/>
<line number="299" hits="16" branch="false"/>
<line number="300" hits="16" branch="false"/>
<line number="304" hits="8" branch="false"/>
<line number="305" hits="8" branch="false"/>
<line number="306" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="307" hits="8" branch="false"/>
<line number="308" hits="8" 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="309" hits="0" branch="false"/>
<line number="313" hits="8" branch="false"/>
<line number="318" hits="8" branch="false"/>
<line number="322" 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="324" hits="8" branch="false"/>
<line number="326" hits="8" branch="false"/>
<line number="331" hits="8" branch="false"/>
<line number="334" hits="8" branch="false"/>
<line number="335" hits="8" branch="false"/>
<line number="336" hits="0" branch="false"/>
<line number="339" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="340" hits="8" 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="8" branch="false"/>
<line number="349" hits="10" branch="false"/>
<line number="352" hits="10" branch="false"/>
<line number="354" hits="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="365" hits="10" branch="false"/>
<line number="366" hits="10" branch="false"/>
<line number="369" hits="10" branch="false"/>
<line number="370" hits="10" branch="false"/>
<line number="373" hits="8" branch="false"/>
<line number="374" hits="8" branch="false"/>
<line number="375" hits="8" branch="false"/>
<line number="376" hits="2" branch="false"/>
<line number="377" hits="2" branch="false"/>
<line number="378" hits="2" branch="false"/>
<line number="379" hits="8" branch="false"/>
<line number="382" hits="8" branch="false"/>
<line number="386" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="387" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="390" hits="8" branch="false"/>
<line number="391" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="406" hits="32" branch="false"/>
<line number="408" hits="32" branch="false"/>
<line number="409" hits="0" branch="false"/>
<line number="410" hits="0" branch="false"/>
<line number="411" hits="0" branch="false"/>
<line number="412" hits="0" branch="false"/>
<line number="413" hits="0" branch="false"/>
<line number="414" hits="0" branch="false"/>
<line number="441" hits="16" 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="442" hits="0" branch="false"/>
<line number="444" hits="16" branch="false"/>
<line number="445" hits="16" branch="false"/>
<line number="459" hits="16" branch="false"/>
<line number="460" hits="0" branch="false"/>
<line number="461" hits="0" branch="false"/>
<line number="462" hits="0" branch="false"/>
<line number="480" hits="32" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="481" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="482" hits="0" branch="false"/>
<line number="484" hits="0" branch="false"/>
<line number="487" hits="32" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="488" hits="32" branch="false"/>
<line number="490" hits="0" branch="false"/>
<line number="493" hits="0" branch="false"/>
<line number="494" hits="0" branch="false"/>
<line number="495" hits="0" branch="false"/>
<line number="496" hits="32" branch="false"/>
<line number="497" hits="32" branch="false"/>
<line number="501" hits="8" branch="false"/>
<line number="502" hits="8" branch="false"/>
<line number="503" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="504" hits="8" branch="false"/>
<line number="505" hits="8" 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="506" hits="0" branch="false"/>
<line number="510" hits="8" branch="false"/>
<line number="511" hits="8" branch="false"/>
<line number="514" 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="517" hits="8" branch="false"/>
<line number="518" hits="0" branch="false"/>
<line number="519" hits="0" branch="false"/>
<line number="520" hits="8" branch="false"/>
<line number="523" hits="8" branch="false"/>
<line number="524" hits="8" branch="false"/>
<line number="527" hits="8" branch="false"/>
<line number="528" hits="8" branch="false"/>
<line number="532" hits="8" branch="false"/>
<line number="534" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="537" hits="8" branch="false"/>
<line number="538" hits="8" branch="false"/>
<line number="539" hits="8" branch="false"/>
<line number="543" hits="8" branch="false"/>
<line number="544" hits="0" branch="false"/>
<line number="545" hits="0" branch="false"/>
<line number="546" hits="0" branch="false"/>
<line number="547" hits="8" branch="false"/>
<line number="549" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="550" hits="0" branch="false"/>
<line number="556" hits="8" branch="false"/>
<line number="557" hits="8" branch="false"/>
<line number="560" hits="8" branch="false"/>
<line number="561" hits="8" branch="false"/>
<line number="564" hits="16" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="565" hits="0" branch="false"/>
<line number="567" hits="16" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="568" hits="0" branch="false"/>
<line number="571" hits="16" branch="false"/>
<line number="573" hits="16" branch="false"/>
<line number="575" hits="16" branch="false"/>
<line number="576" hits="16" branch="false"/>
<line number="580" hits="48" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="581" hits="32" branch="false"/>
<line number="583" hits="0" branch="false"/>
<line number="584" hits="0" branch="false"/>
<line number="585" hits="16" branch="false"/>
<line number="586" hits="16" branch="false"/>
<line number="591" hits="32" branch="false"/>
<line number="592" hits="32" branch="false"/>
<line number="593" hits="32" branch="false"/>
<line number="594" hits="32" 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="595" hits="32" branch="false"/>
<line number="598" hits="32" branch="false"/>
<line number="600" hits="32" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.crypto.OperationMode" filename="org/apache/shiro/crypto/OperationMode.java" line-rate="1.0" branch-rate="1.0" complexity="0.0">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="41" hits="24" branch="false"/>
<line number="50" hits="2" branch="false"/>
<line number="61" hits="2" branch="false"/>
<line number="69" hits="2" branch="false"/>
<line number="78" hits="2" branch="false"/>
<line number="88" hits="2" branch="false"/>
<line number="98" hits="2" branch="false"/>
<line number="108" hits="2" branch="false"/>
<line number="115" hits="2" branch="false"/>
<line number="126" hits="2" branch="false"/>
<line number="134" hits="2" branch="false"/>
<line number="142" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;I)V" line-rate="1.0" branch-rate="1.0">
<lines>
</lines>
</method>
<method name="valueOf" signature="(Ljava/lang/String;)Lorg/apache/shiro/crypto/OperationMode;" line-rate="1.0" branch-rate="1.0">
<lines>
</lines>
</method>
<method name="values" signature="()[Lorg/apache/shiro/crypto/OperationMode;" line-rate="1.0" branch-rate="1.0">
<lines>
</lines>
</method>
</methods>
<lines>
<line number="41" hits="24" branch="false"/>
<line number="50" hits="2" branch="false"/>
<line number="61" hits="2" branch="false"/>
<line number="69" hits="2" branch="false"/>
<line number="78" hits="2" branch="false"/>
<line number="88" hits="2" branch="false"/>
<line number="98" hits="2" branch="false"/>
<line number="108" hits="2" branch="false"/>
<line number="115" hits="2" branch="false"/>
<line number="126" hits="2" branch="false"/>
<line number="134" hits="2" branch="false"/>
<line number="142" hits="2" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.crypto.PaddingScheme" filename="org/apache/shiro/crypto/PaddingScheme.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="37" hits="2" branch="false"/>
<line number="43" hits="2" branch="false"/>
<line number="49" hits="2" branch="false"/>
<line number="77" hits="2" branch="false"/>
<line number="87" hits="2" branch="false"/>
<line number="97" hits="2" branch="false"/>
<line number="107" hits="2" branch="false"/>
<line number="117" hits="2" branch="false"/>
<line number="127" hits="2" branch="false"/>
<line number="134" hits="2" branch="false"/>
<line number="140" hits="2" branch="false"/>
<line number="146" hits="2" 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="150" hits="22" branch="false"/>
<line number="151" hits="22" branch="false"/>
<line number="152" hits="22" branch="false"/>
</lines>
</method>
<method name="getTransformationName" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="163" hits="24" branch="false"/>
</lines>
</method>
<method name="valueOf" signature="(Ljava/lang/String;)Lorg/apache/shiro/crypto/PaddingScheme;" line-rate="1.0" branch-rate="1.0">
<lines>
</lines>
</method>
<method name="values" signature="()[Lorg/apache/shiro/crypto/PaddingScheme;" line-rate="1.0" branch-rate="1.0">
<lines>
</lines>
</method>
</methods>
<lines>
<line number="37" hits="2" branch="false"/>
<line number="43" hits="2" branch="false"/>
<line number="49" hits="2" branch="false"/>
<line number="77" hits="2" branch="false"/>
<line number="87" hits="2" branch="false"/>
<line number="97" hits="2" branch="false"/>
<line number="107" hits="2" branch="false"/>
<line number="117" hits="2" branch="false"/>
<line number="127" hits="2" branch="false"/>
<line number="134" hits="2" branch="false"/>
<line number="140" hits="2" branch="false"/>
<line number="146" hits="2" branch="false"/>
<line number="150" hits="22" branch="false"/>
<line number="151" hits="22" branch="false"/>
<line number="152" hits="22" branch="false"/>
<line number="163" hits="24" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.crypto.RandomNumberGenerator" filename="org/apache/shiro/crypto/RandomNumberGenerator.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.crypto.SecureRandomNumberGenerator" filename="org/apache/shiro/crypto/SecureRandomNumberGenerator.java" line-rate="0.7727272727272727" branch-rate="0.8333333333333334" complexity="1.75">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="47" hits="90" branch="false"/>
<line number="48" hits="90" branch="false"/>
<line number="49" hits="90" branch="false"/>
<line number="50" hits="90" branch="false"/>
</lines>
</method>
<method name="getDefaultNextBytesSize" signature="()I" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="91" hits="56" branch="false"/>
</lines>
</method>
<method name="getSecureRandom" signature="()Ljava/security/SecureRandom;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="68" hits="0" branch="false"/>
</lines>
</method>
<method name="nextBytes" signature="()Lorg/apache/shiro/util/ByteSource;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="109" hits="56" branch="false"/>
</lines>
</method>
<method name="nextBytes" signature="(I)Lorg/apache/shiro/util/ByteSource;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="113" hits="64" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="114" hits="4" branch="false"/>
<line number="116" hits="60" branch="false"/>
<line number="117" hits="60" branch="false"/>
<line number="118" hits="60" branch="false"/>
</lines>
</method>
<method name="setDefaultNextBytesSize" signature="(I)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="102" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="103" hits="4" branch="false"/>
<line number="105" hits="2" branch="false"/>
<line number="106" hits="2" branch="false"/>
</lines>
</method>
<method name="setSecureRandom" signature="(Ljava/security/SecureRandom;)V" line-rate="0.5" branch-rate="0.5">
<lines>
<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="81" hits="0" branch="false"/>
<line number="82" hits="0" branch="false"/>
</lines>
</method>
<method name="setSeed" signature="([B)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="59" hits="0" branch="false"/>
<line number="60" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="47" hits="90" branch="false"/>
<line number="48" hits="90" branch="false"/>
<line number="49" hits="90" branch="false"/>
<line number="50" hits="90" branch="false"/>
<line number="59" hits="0" branch="false"/>
<line number="60" hits="0" branch="false"/>
<line number="68" hits="0" 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="81" hits="0" branch="false"/>
<line number="82" hits="0" branch="false"/>
<line number="91" hits="56" branch="false"/>
<line number="102" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="103" hits="4" branch="false"/>
<line number="105" hits="2" branch="false"/>
<line number="106" hits="2" branch="false"/>
<line number="109" hits="56" branch="false"/>
<line number="113" hits="64" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="114" hits="4" branch="false"/>
<line number="116" hits="60" branch="false"/>
<line number="117" hits="60" branch="false"/>
<line number="118" hits="60" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.crypto.UnknownAlgorithmException" filename="org/apache/shiro/crypto/UnknownAlgorithmException.java" line-rate="0.0" branch-rate="1.0" complexity="1.0">
<methods>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="30" hits="0" branch="false"/>
<line number="31" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/lang/Throwable;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="38" hits="0" branch="false"/>
<line number="39" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Throwable;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="34" hits="0" branch="false"/>
<line number="35" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="30" hits="0" branch="false"/>
<line number="31" hits="0" branch="false"/>
<line number="34" hits="0" branch="false"/>
<line number="35" hits="0" branch="false"/>
<line number="38" hits="0" branch="false"/>
<line number="39" hits="0" branch="false"/>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.crypto.hash" line-rate="0.5266106442577031" branch-rate="0.4915254237288136" complexity="1.6115702479338843">
<classes>
<class name="org.apache.shiro.crypto.hash.AbstractHash" filename="org/apache/shiro/crypto/hash/AbstractHash.java" line-rate="0.050505050505050504" branch-rate="0.0" complexity="2.6315789473684212">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="72" hits="270" branch="false"/>
<line number="73" hits="270" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Object;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="89" hits="0" branch="false"/>
<line number="90" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Object;Ljava/lang/Object;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="107" hits="0" branch="false"/>
<line number="108" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Object;Ljava/lang/Object;I)V" line-rate="0.2727272727272727" branch-rate="0.0">
<lines>
<line number="52" hits="270" branch="false"/>
<line number="57" hits="270" branch="false"/>
<line number="61" hits="270" 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="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="135" hits="0" branch="false"/>
<line number="136" hits="0" branch="false"/>
<line number="137" hits="0" branch="false"/>
</lines>
</method>
<method name="doMain" signature="(Ljava/lang/Class;[Ljava/lang/String;)I" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="311" hits="0" branch="false"/>
<line number="312" hits="0" branch="false"/>
<line number="313" hits="0" branch="false"/>
<line number="315" 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="316" hits="0" branch="false"/>
<line number="317" hits="0" branch="false"/>
<line number="319" hits="0" branch="false"/>
<line number="320" hits="0" branch="false"/>
<line number="321" hits="0" branch="false"/>
<line number="322" hits="0" branch="false"/>
<line number="323" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="324" hits="0" branch="false"/>
<line number="325" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="326" hits="0" branch="false"/>
<line number="327" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="328" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="329" hits="0" branch="false"/>
<line number="331" hits="0" branch="false"/>
<line number="332" hits="0" branch="false"/>
<line number="333" hits="0" branch="false"/>
<line number="335" hits="0" branch="false"/>
<line number="336" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="337" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="338" hits="0" branch="false"/>
<line number="340" hits="0" branch="false"/>
<line number="341" hits="0" branch="false"/>
<line number="342" hits="0" branch="false"/>
<line number="345" hits="0" branch="false"/>
<line number="346" hits="0" branch="false"/>
<line number="347" hits="0" branch="false"/>
<line number="348" hits="0" branch="false"/>
<line number="349" hits="0" branch="false"/>
<line number="350" hits="0" branch="false"/>
<line number="351" hits="0" branch="false"/>
<line number="355" hits="0" branch="false"/>
<line number="356" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="357" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="358" hits="0" branch="false"/>
<line number="359" 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="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="false"/>
<line number="282" hits="0" branch="false"/>
</lines>
</method>
<method name="getBytes" signature="()[B" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="148" hits="0" branch="false"/>
</lines>
</method>
<method name="getDigest" signature="(Ljava/lang/String;)Ljava/security/MessageDigest;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="174" hits="0" branch="false"/>
<line number="175" hits="0" branch="false"/>
<line number="176" hits="0" branch="false"/>
<line number="177" hits="0" branch="false"/>
</lines>
</method>
<method name="hash" signature="([B)[B" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="188" hits="0" branch="false"/>
</lines>
</method>
<method name="hash" signature="([B[B)[B" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="199" hits="0" branch="false"/>
</lines>
</method>
<method name="hash" signature="([B[BI)[B" line-rate="0.0" branch-rate="0.0">
<lines>
<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="215" hits="0" branch="false"/>
<line number="217" hits="0" branch="false"/>
<line number="218" hits="0" branch="false"/>
<line number="220" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="221" hits="0" branch="false"/>
<line number="222" hits="0" branch="false"/>
<line number="224" hits="0" branch="false"/>
</lines>
</method>
<method name="hashCode" signature="()I" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="291" 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="292" hits="0" branch="false"/>
<line number="294" hits="0" branch="false"/>
</lines>
</method>
<method name="isReserved" signature="(Ljava/lang/String;)Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="307" 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="printMainUsage" signature="(Ljava/lang/Class;Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<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="303" hits="0" branch="false"/>
<line number="304" hits="0" branch="false"/>
</lines>
</method>
<method name="setBytes" signature="([B)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="160" 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"/>
</lines>
</method>
<method name="toBase64" signature="()Ljava/lang/String;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="253" 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="false"/>
</lines>
</method>
<method name="toHex" signature="()Ljava/lang/String;" line-rate="0.0" branch-rate="0.0">
<lines>
<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="240" hits="0" branch="false"/>
</lines>
</method>
<method name="toString" signature="()Ljava/lang/String;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="266" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="52" hits="270" branch="false"/>
<line number="57" hits="270" branch="false"/>
<line number="61" hits="270" branch="false"/>
<line number="72" hits="270" branch="false"/>
<line number="73" hits="270" branch="false"/>
<line number="89" hits="0" branch="false"/>
<line number="90" hits="0" branch="false"/>
<line number="107" hits="0" branch="false"/>
<line number="108" 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="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="135" hits="0" branch="false"/>
<line number="136" hits="0" branch="false"/>
<line number="137" hits="0" branch="false"/>
<line number="148" hits="0" branch="false"/>
<line number="160" 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="174" hits="0" branch="false"/>
<line number="175" hits="0" branch="false"/>
<line number="176" hits="0" branch="false"/>
<line number="177" hits="0" branch="false"/>
<line number="188" hits="0" branch="false"/>
<line number="199" 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="215" hits="0" branch="false"/>
<line number="217" hits="0" branch="false"/>
<line number="218" hits="0" branch="false"/>
<line number="220" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="221" hits="0" branch="false"/>
<line number="222" hits="0" branch="false"/>
<line number="224" hits="0" branch="false"/>
<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="240" hits="0" branch="false"/>
<line number="253" 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="false"/>
<line number="266" 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="false"/>
<line number="282" hits="0" branch="false"/>
<line number="291" 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="292" hits="0" branch="false"/>
<line number="294" 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="303" hits="0" branch="false"/>
<line number="304" hits="0" branch="false"/>
<line number="307" 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="311" hits="0" branch="false"/>
<line number="312" hits="0" branch="false"/>
<line number="313" hits="0" branch="false"/>
<line number="315" 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="316" hits="0" branch="false"/>
<line number="317" hits="0" branch="false"/>
<line number="319" hits="0" branch="false"/>
<line number="320" hits="0" branch="false"/>
<line number="321" hits="0" branch="false"/>
<line number="322" hits="0" branch="false"/>
<line number="323" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="324" hits="0" branch="false"/>
<line number="325" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="326" hits="0" branch="false"/>
<line number="327" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="328" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="329" hits="0" branch="false"/>
<line number="331" hits="0" branch="false"/>
<line number="332" hits="0" branch="false"/>
<line number="333" hits="0" branch="false"/>
<line number="335" hits="0" branch="false"/>
<line number="336" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="337" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="338" hits="0" branch="false"/>
<line number="340" hits="0" branch="false"/>
<line number="341" hits="0" branch="false"/>
<line number="342" hits="0" branch="false"/>
<line number="345" hits="0" branch="false"/>
<line number="346" hits="0" branch="false"/>
<line number="347" hits="0" branch="false"/>
<line number="348" hits="0" branch="false"/>
<line number="349" hits="0" branch="false"/>
<line number="350" hits="0" branch="false"/>
<line number="351" hits="0" branch="false"/>
<line number="355" hits="0" branch="false"/>
<line number="356" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="357" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="358" hits="0" branch="false"/>
<line number="359" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.crypto.hash.ConfigurableHashService" filename="org/apache/shiro/crypto/hash/ConfigurableHashService.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.crypto.hash.DefaultHashService" filename="org/apache/shiro/crypto/hash/DefaultHashService.java" line-rate="1.0" branch-rate="0.8409090909090909" complexity="2.25">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="69" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="110" hits="56" branch="false"/>
<line number="111" hits="56" branch="false"/>
<line number="112" hits="56" branch="false"/>
<line number="113" hits="56" branch="false"/>
<line number="114" hits="56" branch="false"/>
<line number="115" hits="56" branch="false"/>
</lines>
</method>
<method name="combine" signature="(Lorg/apache/shiro/util/ByteSource;Lorg/apache/shiro/util/ByteSource;)Lorg/apache/shiro/util/ByteSource;" line-rate="1.0" branch-rate="0.8181818181818182">
<lines>
<line number="248" hits="54" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="249" hits="54" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="251" hits="54" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="252" hits="54" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="254" hits="54" branch="false"/>
<line number="256" hits="54" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="257" hits="12" branch="false"/>
<line number="260" hits="42" branch="false"/>
<line number="262" hits="42" branch="false"/>
<line number="263" hits="266" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="264" hits="224" 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="265" hits="224" branch="false"/>
<line number="267" hits="730" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="268" hits="688" 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="269" hits="688" branch="false"/>
<line number="272" hits="42" branch="false"/>
</lines>
</method>
<method name="computeHash" signature="(Lorg/apache/shiro/crypto/hash/HashRequest;)Lorg/apache/shiro/crypto/hash/Hash;" line-rate="1.0" branch-rate="0.8333333333333334">
<lines>
<line number="151" hits="58" branch="true" condition-coverage="83% (5/6)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="50%"/>
<condition number="2" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="152" hits="4" branch="false"/>
<line number="155" hits="54" branch="false"/>
<line number="156" hits="54" branch="false"/>
<line number="157" hits="54" branch="false"/>
<line number="159" hits="54" branch="false"/>
<line number="160" hits="54" branch="false"/>
<line number="161" hits="54" branch="false"/>
<line number="163" hits="54" branch="false"/>
<line number="165" hits="54" branch="false"/>
<line number="166" hits="54" branch="false"/>
<line number="167" hits="54" branch="false"/>
<line number="169" hits="54" branch="false"/>
<line number="171" hits="54" branch="false"/>
</lines>
</method>
<method name="getAlgorithmName" signature="(Lorg/apache/shiro/crypto/hash/HashRequest;)Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="175" hits="54" branch="false"/>
<line number="176" hits="54" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="177" hits="44" branch="false"/>
<line number="179" hits="54" branch="false"/>
</lines>
</method>
<method name="getHashAlgorithmName" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="280" hits="44" branch="false"/>
</lines>
</method>
<method name="getHashIterations" signature="()I" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="296" hits="44" branch="false"/>
</lines>
</method>
<method name="getIterations" signature="(Lorg/apache/shiro/crypto/hash/HashRequest;)I" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="183" hits="54" branch="false"/>
<line number="184" hits="54" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="185" hits="44" branch="false"/>
<line number="187" hits="54" branch="false"/>
</lines>
</method>
<method name="getPrivateSalt" signature="()Lorg/apache/shiro/util/ByteSource;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="288" hits="90" branch="false"/>
</lines>
</method>
<method name="getPublicSalt" signature="(Lorg/apache/shiro/crypto/hash/HashRequest;)Lorg/apache/shiro/util/ByteSource;" line-rate="1.0" branch-rate="0.8333333333333334">
<lines>
<line number="214" hits="54" branch="false"/>
<line number="216" hits="54" 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="218" hits="18" branch="false"/>
<line number="221" hits="36" branch="false"/>
<line number="224" hits="36" branch="false"/>
<line number="225" hits="36" 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="229" hits="36" 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="230" hits="24" branch="false"/>
<line number="233" hits="36" branch="false"/>
</lines>
</method>
<method name="getRandomNumberGenerator" signature="()Lorg/apache/shiro/crypto/RandomNumberGenerator;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="304" hits="24" branch="false"/>
</lines>
</method>
<method name="isGeneratePublicSalt" signature="()Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="323" hits="28" branch="false"/>
</lines>
</method>
<method name="setGeneratePublicSalt" signature="(Z)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="342" hits="38" branch="false"/>
<line number="343" hits="38" branch="false"/>
</lines>
</method>
<method name="setHashAlgorithmName" signature="(Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="276" hits="36" branch="false"/>
<line number="277" hits="36" branch="false"/>
</lines>
</method>
<method name="setHashIterations" signature="(I)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="292" hits="36" branch="false"/>
<line number="293" hits="36" branch="false"/>
</lines>
</method>
<method name="setPrivateSalt" signature="(Lorg/apache/shiro/util/ByteSource;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="284" hits="8" branch="false"/>
<line number="285" hits="8" branch="false"/>
</lines>
</method>
<method name="setRandomNumberGenerator" signature="(Lorg/apache/shiro/crypto/RandomNumberGenerator;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="300" hits="2" branch="false"/>
<line number="301" hits="2" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="69" hits="2" branch="false"/>
<line number="110" hits="56" branch="false"/>
<line number="111" hits="56" branch="false"/>
<line number="112" hits="56" branch="false"/>
<line number="113" hits="56" branch="false"/>
<line number="114" hits="56" branch="false"/>
<line number="115" hits="56" branch="false"/>
<line number="151" hits="58" branch="true" condition-coverage="83% (5/6)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="50%"/>
<condition number="2" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="152" hits="4" branch="false"/>
<line number="155" hits="54" branch="false"/>
<line number="156" hits="54" branch="false"/>
<line number="157" hits="54" branch="false"/>
<line number="159" hits="54" branch="false"/>
<line number="160" hits="54" branch="false"/>
<line number="161" hits="54" branch="false"/>
<line number="163" hits="54" branch="false"/>
<line number="165" hits="54" branch="false"/>
<line number="166" hits="54" branch="false"/>
<line number="167" hits="54" branch="false"/>
<line number="169" hits="54" branch="false"/>
<line number="171" hits="54" branch="false"/>
<line number="175" hits="54" branch="false"/>
<line number="176" hits="54" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="177" hits="44" branch="false"/>
<line number="179" hits="54" branch="false"/>
<line number="183" hits="54" branch="false"/>
<line number="184" hits="54" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="185" hits="44" branch="false"/>
<line number="187" hits="54" branch="false"/>
<line number="214" hits="54" branch="false"/>
<line number="216" hits="54" 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="218" hits="18" branch="false"/>
<line number="221" hits="36" branch="false"/>
<line number="224" hits="36" branch="false"/>
<line number="225" hits="36" 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="229" hits="36" 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="230" hits="24" branch="false"/>
<line number="233" hits="36" branch="false"/>
<line number="248" hits="54" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="249" hits="54" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="251" hits="54" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="252" hits="54" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="254" hits="54" branch="false"/>
<line number="256" hits="54" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="257" hits="12" branch="false"/>
<line number="260" hits="42" branch="false"/>
<line number="262" hits="42" branch="false"/>
<line number="263" hits="266" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="264" hits="224" 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="265" hits="224" branch="false"/>
<line number="267" hits="730" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="268" hits="688" 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="269" hits="688" branch="false"/>
<line number="272" hits="42" branch="false"/>
<line number="276" hits="36" branch="false"/>
<line number="277" hits="36" branch="false"/>
<line number="280" hits="44" branch="false"/>
<line number="284" hits="8" branch="false"/>
<line number="285" hits="8" branch="false"/>
<line number="288" hits="90" branch="false"/>
<line number="292" hits="36" branch="false"/>
<line number="293" hits="36" branch="false"/>
<line number="296" hits="44" branch="false"/>
<line number="300" hits="2" branch="false"/>
<line number="301" hits="2" branch="false"/>
<line number="304" hits="24" branch="false"/>
<line number="323" hits="28" branch="false"/>
<line number="342" hits="38" branch="false"/>
<line number="343" hits="38" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.crypto.hash.Hash" filename="org/apache/shiro/crypto/hash/Hash.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.crypto.hash.HashRequest" filename="org/apache/shiro/crypto/hash/HashRequest.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.crypto.hash.HashRequest$Builder" filename="org/apache/shiro/crypto/hash/HashRequest.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="95" hits="64" branch="false"/>
<line number="96" hits="64" branch="false"/>
<line number="97" hits="64" branch="false"/>
</lines>
</method>
<method name="build" signature="()Lorg/apache/shiro/crypto/hash/HashRequest;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="222" hits="64" branch="false"/>
</lines>
</method>
<method name="setAlgorithmName" signature="(Ljava/lang/String;)Lorg/apache/shiro/crypto/hash/HashRequest$Builder;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="212" hits="12" branch="false"/>
<line number="213" hits="12" branch="false"/>
</lines>
</method>
<method name="setIterations" signature="(I)Lorg/apache/shiro/crypto/hash/HashRequest$Builder;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="190" hits="12" branch="false"/>
<line number="191" hits="12" branch="false"/>
</lines>
</method>
<method name="setSalt" signature="(Ljava/lang/Object;)Lorg/apache/shiro/crypto/hash/HashRequest$Builder;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="169" hits="6" branch="false"/>
<line number="170" hits="6" branch="false"/>
</lines>
</method>
<method name="setSalt" signature="(Lorg/apache/shiro/util/ByteSource;)Lorg/apache/shiro/crypto/hash/HashRequest$Builder;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="148" hits="16" branch="false"/>
<line number="149" hits="16" branch="false"/>
</lines>
</method>
<method name="setSource" signature="(Ljava/lang/Object;)Lorg/apache/shiro/crypto/hash/HashRequest$Builder;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="130" hits="32" branch="false"/>
<line number="131" hits="32" branch="false"/>
</lines>
</method>
<method name="setSource" signature="(Lorg/apache/shiro/util/ByteSource;)Lorg/apache/shiro/crypto/hash/HashRequest$Builder;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="109" hits="30" branch="false"/>
<line number="110" hits="30" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="95" hits="64" branch="false"/>
<line number="96" hits="64" branch="false"/>
<line number="97" hits="64" branch="false"/>
<line number="109" hits="30" branch="false"/>
<line number="110" hits="30" branch="false"/>
<line number="130" hits="32" branch="false"/>
<line number="131" hits="32" branch="false"/>
<line number="148" hits="16" branch="false"/>
<line number="149" hits="16" branch="false"/>
<line number="169" hits="6" branch="false"/>
<line number="170" hits="6" branch="false"/>
<line number="190" hits="12" branch="false"/>
<line number="191" hits="12" branch="false"/>
<line number="212" hits="12" branch="false"/>
<line number="213" hits="12" branch="false"/>
<line number="222" hits="64" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.crypto.hash.HashService" filename="org/apache/shiro/crypto/hash/HashService.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.crypto.hash.Md2Hash" filename="org/apache/shiro/crypto/hash/Md2Hash.java" line-rate="0.14285714285714285" 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="39" hits="0" branch="false"/>
<line number="40" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Object;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="43" hits="2" branch="false"/>
<line number="44" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Object;Ljava/lang/Object;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="47" hits="0" branch="false"/>
<line number="48" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Object;Ljava/lang/Object;I)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="51" hits="0" branch="false"/>
<line number="52" hits="0" branch="false"/>
</lines>
</method>
<method name="fromBase64String" signature="(Ljava/lang/String;)Lorg/apache/shiro/crypto/hash/Md2Hash;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="61" hits="0" branch="false"/>
<line number="62" hits="0" branch="false"/>
<line number="63" hits="0" branch="false"/>
</lines>
</method>
<method name="fromHexString" signature="(Ljava/lang/String;)Lorg/apache/shiro/crypto/hash/Md2Hash;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="55" hits="0" branch="false"/>
<line number="56" hits="0" branch="false"/>
<line number="57" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="39" hits="0" branch="false"/>
<line number="40" hits="0" branch="false"/>
<line number="43" hits="2" branch="false"/>
<line number="44" hits="2" branch="false"/>
<line number="47" hits="0" branch="false"/>
<line number="48" hits="0" branch="false"/>
<line number="51" hits="0" branch="false"/>
<line number="52" hits="0" branch="false"/>
<line number="55" hits="0" branch="false"/>
<line number="56" hits="0" branch="false"/>
<line number="57" 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"/>
</lines>
</class>
<class name="org.apache.shiro.crypto.hash.Md5Hash" filename="org/apache/shiro/crypto/hash/Md5Hash.java" line-rate="0.14285714285714285" 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="40" hits="0" branch="false"/>
<line number="41" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Object;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="44" hits="2" branch="false"/>
<line number="45" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Object;Ljava/lang/Object;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="48" hits="0" branch="false"/>
<line number="49" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Object;Ljava/lang/Object;I)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="fromBase64String" signature="(Ljava/lang/String;)Lorg/apache/shiro/crypto/hash/Md5Hash;" line-rate="0.0" branch-rate="1.0">
<lines>
<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="fromHexString" signature="(Ljava/lang/String;)Lorg/apache/shiro/crypto/hash/Md5Hash;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="56" hits="0" branch="false"/>
<line number="57" hits="0" branch="false"/>
<line number="58" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="40" hits="0" branch="false"/>
<line number="41" hits="0" branch="false"/>
<line number="44" hits="2" branch="false"/>
<line number="45" hits="2" branch="false"/>
<line number="48" 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="56" hits="0" branch="false"/>
<line number="57" hits="0" branch="false"/>
<line number="58" 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>
</class>
<class name="org.apache.shiro.crypto.hash.Sha1Hash" filename="org/apache/shiro/crypto/hash/Sha1Hash.java" line-rate="0.2857142857142857" 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="41" hits="0" branch="false"/>
<line number="42" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Object;)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="&lt;init&gt;" signature="(Ljava/lang/Object;Ljava/lang/Object;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="49" hits="4" branch="false"/>
<line number="50" hits="4" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Object;Ljava/lang/Object;I)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="53" hits="0" branch="false"/>
<line number="54" hits="0" branch="false"/>
</lines>
</method>
<method name="fromBase64String" signature="(Ljava/lang/String;)Lorg/apache/shiro/crypto/hash/Sha1Hash;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="63" hits="0" branch="false"/>
<line number="64" hits="0" branch="false"/>
<line number="65" hits="0" branch="false"/>
</lines>
</method>
<method name="fromHexString" signature="(Ljava/lang/String;)Lorg/apache/shiro/crypto/hash/Sha1Hash;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="57" hits="0" branch="false"/>
<line number="58" hits="0" branch="false"/>
<line number="59" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="41" hits="0" branch="false"/>
<line number="42" hits="0" branch="false"/>
<line number="45" hits="14" branch="false"/>
<line number="46" hits="14" branch="false"/>
<line number="49" hits="4" branch="false"/>
<line number="50" hits="4" branch="false"/>
<line number="53" hits="0" branch="false"/>
<line number="54" 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="64" hits="0" branch="false"/>
<line number="65" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.crypto.hash.Sha256Hash" filename="org/apache/shiro/crypto/hash/Sha256Hash.java" line-rate="0.42857142857142855" 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="42" hits="0" branch="false"/>
<line number="43" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Object;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="46" hits="22" branch="false"/>
<line number="47" hits="22" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Object;Ljava/lang/Object;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="50" hits="8" branch="false"/>
<line number="51" hits="8" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Object;Ljava/lang/Object;I)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="54" hits="2" branch="false"/>
<line number="55" hits="2" branch="false"/>
</lines>
</method>
<method name="fromBase64String" signature="(Ljava/lang/String;)Lorg/apache/shiro/crypto/hash/Sha256Hash;" 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="fromHexString" signature="(Ljava/lang/String;)Lorg/apache/shiro/crypto/hash/Sha256Hash;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="58" hits="0" branch="false"/>
<line number="59" hits="0" branch="false"/>
<line number="60" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="42" hits="0" branch="false"/>
<line number="43" hits="0" branch="false"/>
<line number="46" hits="22" branch="false"/>
<line number="47" hits="22" branch="false"/>
<line number="50" hits="8" branch="false"/>
<line number="51" hits="8" branch="false"/>
<line number="54" hits="2" branch="false"/>
<line number="55" hits="2" branch="false"/>
<line number="58" hits="0" branch="false"/>
<line number="59" hits="0" branch="false"/>
<line number="60" 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"/>
</lines>
</class>
<class name="org.apache.shiro.crypto.hash.Sha384Hash" filename="org/apache/shiro/crypto/hash/Sha384Hash.java" line-rate="0.14285714285714285" 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="43" hits="0" branch="false"/>
<line number="44" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Object;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="47" hits="2" branch="false"/>
<line number="48" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Object;Ljava/lang/Object;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="51" hits="0" branch="false"/>
<line number="52" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Object;Ljava/lang/Object;I)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="55" hits="0" branch="false"/>
<line number="56" hits="0" branch="false"/>
</lines>
</method>
<method name="fromBase64String" signature="(Ljava/lang/String;)Lorg/apache/shiro/crypto/hash/Sha384Hash;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="65" hits="0" branch="false"/>
<line number="66" hits="0" branch="false"/>
<line number="67" hits="0" branch="false"/>
</lines>
</method>
<method name="fromHexString" signature="(Ljava/lang/String;)Lorg/apache/shiro/crypto/hash/Sha384Hash;" 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>
</methods>
<lines>
<line number="43" hits="0" branch="false"/>
<line number="44" hits="0" branch="false"/>
<line number="47" hits="2" branch="false"/>
<line number="48" hits="2" branch="false"/>
<line number="51" hits="0" branch="false"/>
<line number="52" hits="0" branch="false"/>
<line number="55" hits="0" branch="false"/>
<line number="56" 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="65" hits="0" branch="false"/>
<line number="66" hits="0" branch="false"/>
<line number="67" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.crypto.hash.Sha512Hash" filename="org/apache/shiro/crypto/hash/Sha512Hash.java" line-rate="0.2857142857142857" 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="42" hits="0" branch="false"/>
<line number="43" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Object;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="46" hits="2" branch="false"/>
<line number="47" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Object;Ljava/lang/Object;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="50" hits="0" branch="false"/>
<line number="51" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Object;Ljava/lang/Object;I)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="54" hits="2" branch="false"/>
<line number="55" hits="2" branch="false"/>
</lines>
</method>
<method name="fromBase64String" signature="(Ljava/lang/String;)Lorg/apache/shiro/crypto/hash/Sha512Hash;" 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="fromHexString" signature="(Ljava/lang/String;)Lorg/apache/shiro/crypto/hash/Sha512Hash;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="58" hits="0" branch="false"/>
<line number="59" hits="0" branch="false"/>
<line number="60" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="42" hits="0" branch="false"/>
<line number="43" hits="0" branch="false"/>
<line number="46" hits="2" branch="false"/>
<line number="47" hits="2" branch="false"/>
<line number="50" hits="0" branch="false"/>
<line number="51" hits="0" branch="false"/>
<line number="54" hits="2" branch="false"/>
<line number="55" hits="2" branch="false"/>
<line number="58" hits="0" branch="false"/>
<line number="59" hits="0" branch="false"/>
<line number="60" 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"/>
</lines>
</class>
<class name="org.apache.shiro.crypto.hash.SimpleHash" filename="org/apache/shiro/crypto/hash/SimpleHash.java" line-rate="0.8571428571428571" branch-rate="0.6785714285714286" complexity="1.84">
<methods>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="92" hits="108" branch="false"/>
<line number="93" hits="108" branch="false"/>
<line number="94" hits="108" branch="false"/>
<line number="95" hits="108" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/lang/Object;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="117" hits="44" branch="false"/>
<line number="118" hits="44" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="139" hits="12" branch="false"/>
<line number="140" hits="12" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;I)V" line-rate="0.9285714285714286" branch-rate="0.75">
<lines>
<line number="70" hits="270" branch="false"/>
<line number="75" hits="270" branch="false"/>
<line number="166" hits="162" branch="false"/>
<line number="167" hits="162" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="168" hits="0" branch="false"/>
<line number="170" hits="162" branch="false"/>
<line number="171" hits="162" branch="false"/>
<line number="172" hits="162" branch="false"/>
<line number="173" hits="162" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="174" hits="74" branch="false"/>
<line number="175" hits="74" branch="false"/>
<line number="177" hits="162" branch="false"/>
<line number="178" hits="162" branch="false"/>
<line number="179" hits="162" branch="false"/>
</lines>
</method>
<method name="convertSaltToBytes" signature="(Ljava/lang/Object;)Lorg/apache/shiro/util/ByteSource;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="206" hits="74" branch="false"/>
</lines>
</method>
<method name="convertSourceToBytes" signature="(Ljava/lang/Object;)Lorg/apache/shiro/util/ByteSource;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="192" hits="162" branch="false"/>
</lines>
</method>
<method name="equals" signature="(Ljava/lang/Object;)Z" line-rate="0.75" branch-rate="0.5">
<lines>
<line number="413" hits="28" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="414" hits="28" branch="false"/>
<line number="415" hits="28" branch="false"/>
<line number="417" hits="0" branch="false"/>
</lines>
</method>
<method name="getAlgorithmName" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="239" hits="204" branch="false"/>
</lines>
</method>
<method name="getBytes" signature="()[B" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="251" hits="274" branch="false"/>
</lines>
</method>
<method name="getDigest" signature="(Ljava/lang/String;)Ljava/security/MessageDigest;" line-rate="0.25" branch-rate="1.0">
<lines>
<line number="303" hits="162" branch="false"/>
<line number="304" hits="0" branch="false"/>
<line number="305" hits="0" branch="false"/>
<line number="306" hits="0" branch="false"/>
</lines>
</method>
<method name="getIterations" signature="()I" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="247" hits="42" branch="false"/>
</lines>
</method>
<method name="getSalt" signature="()Lorg/apache/shiro/util/ByteSource;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="243" hits="44" branch="false"/>
</lines>
</method>
<method name="hash" signature="(Lorg/apache/shiro/util/ByteSource;Lorg/apache/shiro/util/ByteSource;I)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="228" hits="162" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="229" hits="162" branch="false"/>
<line number="230" hits="162" branch="false"/>
<line number="231" hits="162" branch="false"/>
</lines>
</method>
<method name="hash" signature="([B)[B" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="318" hits="0" branch="false"/>
</lines>
</method>
<method name="hash" signature="([B[B)[B" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="330" hits="0" branch="false"/>
</lines>
</method>
<method name="hash" signature="([B[BI)[B" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="343" hits="162" branch="false"/>
<line number="344" hits="162" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="345" hits="74" branch="false"/>
<line number="346" hits="74" branch="false"/>
<line number="348" hits="162" branch="false"/>
<line number="349" hits="162" branch="false"/>
<line number="351" hits="10000808" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="352" hits="10000646" branch="false"/>
<line number="353" hits="10000646" branch="false"/>
<line number="355" hits="162" branch="false"/>
</lines>
</method>
<method name="hashCode" signature="()I" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="426" 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="427" hits="0" branch="false"/>
<line number="429" hits="0" branch="false"/>
</lines>
</method>
<method name="isEmpty" signature="()Z" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="359" 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>
</lines>
</method>
<method name="setBytes" signature="([B)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="263" hits="270" branch="false"/>
<line number="264" hits="270" branch="false"/>
<line number="265" hits="270" branch="false"/>
<line number="266" hits="270" branch="false"/>
</lines>
</method>
<method name="setIterations" signature="(I)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="278" hits="68" branch="false"/>
<line number="279" hits="68" branch="false"/>
</lines>
</method>
<method name="setSalt" signature="(Lorg/apache/shiro/util/ByteSource;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="291" hits="66" branch="false"/>
<line number="292" hits="66" branch="false"/>
</lines>
</method>
<method name="toBase64" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="388" hits="34" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="390" hits="26" branch="false"/>
<line number="392" hits="34" branch="false"/>
</lines>
</method>
<method name="toByteSource" signature="(Ljava/lang/Object;)Lorg/apache/shiro/util/ByteSource;" line-rate="0.8333333333333334" branch-rate="0.75">
<lines>
<line number="217" hits="236" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="218" hits="0" branch="false"/>
<line number="220" hits="236" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="221" hits="124" branch="false"/>
<line number="223" hits="112" branch="false"/>
<line number="224" hits="112" branch="false"/>
</lines>
</method>
<method name="toHex" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="372" hits="34" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="373" hits="32" branch="false"/>
<line number="375" hits="34" branch="false"/>
</lines>
</method>
<method name="toString" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="401" hits="2" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="70" hits="270" branch="false"/>
<line number="75" hits="270" branch="false"/>
<line number="92" hits="108" branch="false"/>
<line number="93" hits="108" branch="false"/>
<line number="94" hits="108" branch="false"/>
<line number="95" hits="108" branch="false"/>
<line number="117" hits="44" branch="false"/>
<line number="118" hits="44" branch="false"/>
<line number="139" hits="12" branch="false"/>
<line number="140" hits="12" branch="false"/>
<line number="166" hits="162" branch="false"/>
<line number="167" hits="162" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="168" hits="0" branch="false"/>
<line number="170" hits="162" branch="false"/>
<line number="171" hits="162" branch="false"/>
<line number="172" hits="162" branch="false"/>
<line number="173" hits="162" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="174" hits="74" branch="false"/>
<line number="175" hits="74" branch="false"/>
<line number="177" hits="162" branch="false"/>
<line number="178" hits="162" branch="false"/>
<line number="179" hits="162" branch="false"/>
<line number="192" hits="162" branch="false"/>
<line number="206" hits="74" branch="false"/>
<line number="217" hits="236" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="218" hits="0" branch="false"/>
<line number="220" hits="236" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="221" hits="124" branch="false"/>
<line number="223" hits="112" branch="false"/>
<line number="224" hits="112" branch="false"/>
<line number="228" hits="162" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="229" hits="162" branch="false"/>
<line number="230" hits="162" branch="false"/>
<line number="231" hits="162" branch="false"/>
<line number="239" hits="204" branch="false"/>
<line number="243" hits="44" branch="false"/>
<line number="247" hits="42" branch="false"/>
<line number="251" hits="274" branch="false"/>
<line number="263" hits="270" branch="false"/>
<line number="264" hits="270" branch="false"/>
<line number="265" hits="270" branch="false"/>
<line number="266" hits="270" branch="false"/>
<line number="278" hits="68" branch="false"/>
<line number="279" hits="68" branch="false"/>
<line number="291" hits="66" branch="false"/>
<line number="292" hits="66" branch="false"/>
<line number="303" hits="162" branch="false"/>
<line number="304" hits="0" branch="false"/>
<line number="305" hits="0" branch="false"/>
<line number="306" hits="0" branch="false"/>
<line number="318" hits="0" branch="false"/>
<line number="330" hits="0" branch="false"/>
<line number="343" hits="162" branch="false"/>
<line number="344" hits="162" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="345" hits="74" branch="false"/>
<line number="346" hits="74" branch="false"/>
<line number="348" hits="162" branch="false"/>
<line number="349" hits="162" branch="false"/>
<line number="351" hits="10000808" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="352" hits="10000646" branch="false"/>
<line number="353" hits="10000646" branch="false"/>
<line number="355" hits="162" branch="false"/>
<line number="359" 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="372" hits="34" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="373" hits="32" branch="false"/>
<line number="375" hits="34" branch="false"/>
<line number="388" hits="34" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="390" hits="26" branch="false"/>
<line number="392" hits="34" branch="false"/>
<line number="401" hits="2" branch="false"/>
<line number="413" hits="28" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="414" hits="28" branch="false"/>
<line number="415" hits="28" branch="false"/>
<line number="417" hits="0" branch="false"/>
<line number="426" 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="427" hits="0" branch="false"/>
<line number="429" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.crypto.hash.SimpleHashRequest" filename="org/apache/shiro/crypto/hash/SimpleHashRequest.java" line-rate="1.0" branch-rate="1.0" complexity="1.4">
<methods>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Lorg/apache/shiro/util/ByteSource;Lorg/apache/shiro/util/ByteSource;I)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="49" hits="64" branch="false"/>
<line number="50" hits="64" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="51" hits="2" branch="false"/>
<line number="53" hits="62" branch="false"/>
<line number="54" hits="62" branch="false"/>
<line number="55" hits="62" branch="false"/>
<line number="56" hits="62" branch="false"/>
<line number="57" hits="62" branch="false"/>
</lines>
</method>
<method name="getAlgorithmName" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="72" hits="56" branch="false"/>
</lines>
</method>
<method name="getIterations" signature="()I" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="68" hits="58" branch="false"/>
</lines>
</method>
<method name="getSalt" signature="()Lorg/apache/shiro/util/ByteSource;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="64" hits="56" branch="false"/>
</lines>
</method>
<method name="getSource" signature="()Lorg/apache/shiro/util/ByteSource;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="60" hits="168" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="49" hits="64" branch="false"/>
<line number="50" hits="64" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="51" hits="2" branch="false"/>
<line number="53" hits="62" branch="false"/>
<line number="54" hits="62" branch="false"/>
<line number="55" hits="62" branch="false"/>
<line number="56" hits="62" branch="false"/>
<line number="57" hits="62" branch="false"/>
<line number="60" hits="168" branch="false"/>
<line number="64" hits="56" branch="false"/>
<line number="68" hits="58" branch="false"/>
<line number="72" hits="56" branch="false"/>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.crypto.hash.format" line-rate="1.0" branch-rate="0.8513513513513513" complexity="3.0833333333333335">
<classes>
<class name="org.apache.shiro.crypto.hash.format.Base64Format" filename="org/apache/shiro/crypto/hash/format/Base64Format.java" line-rate="1.0" 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="30" hits="4" branch="false"/>
</lines>
</method>
<method name="format" signature="(Lorg/apache/shiro/crypto/hash/Hash;)Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="39" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
</lines>
</method>
</methods>
<lines>
<line number="30" hits="4" branch="false"/>
<line number="39" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
</lines>
</class>
<class name="org.apache.shiro.crypto.hash.format.DefaultHashFormatFactory" filename="org/apache/shiro/crypto/hash/format/DefaultHashFormatFactory.java" line-rate="1.0" branch-rate="0.8035714285714286" complexity="4.0">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="43" hits="56" branch="false"/>
<line number="44" hits="56" branch="false"/>
<line number="45" hits="56" branch="false"/>
<line number="46" hits="56" branch="false"/>
</lines>
</method>
<method name="assertHashFormatImpl" signature="(Ljava/lang/Class;)V" line-rate="1.0" branch-rate="0.75">
<lines>
<line number="343" hits="40" 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="344" hits="2" branch="false"/>
<line number="345" hits="2" branch="false"/>
<line number="348" hits="38" branch="false"/>
</lines>
</method>
<method name="getFormatClassNames" signature="()Ljava/util/Map;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="66" hits="12" branch="false"/>
</lines>
</method>
<method name="getHashFormatClass" signature="(Ljava/lang/String;)Ljava/lang/Class;" line-rate="1.0" branch-rate="0.9">
<lines>
<line number="184" hits="28" branch="false"/>
<line number="188" hits="28" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="189" hits="28" branch="false"/>
<line number="190" hits="28" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="192" hits="2" branch="false"/>
<line number="197" hits="28" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="198" hits="26" branch="false"/>
<line number="199" hits="26" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="200" hits="12" branch="false"/>
<line number="204" hits="28" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="206" hits="14" branch="false"/>
<line number="209" hits="28" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="211" hits="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="212" hits="10" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="213" hits="4" branch="false"/>
<line number="214" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="216" hits="2" branch="false"/>
<line number="218" hits="2" branch="false"/>
<line number="222" hits="28" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="223" hits="20" branch="false"/>
<line number="226" hits="26" branch="false"/>
</lines>
</method>
<method name="getHashFormatClass" signature="(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Class;" line-rate="1.0" branch-rate="0.7222222222222222">
<lines>
<line number="282" hits="4" branch="false"/>
<line number="283" hits="4" branch="false"/>
<line number="284" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="287" hits="4" branch="false"/>
<line number="289" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="290" hits="4" branch="false"/>
<line number="291" hits="4" branch="false"/>
<line number="294" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="295" hits="4" branch="false"/>
<line number="296" hits="4" branch="false"/>
<line number="299" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="300" hits="4" branch="false"/>
<line number="301" hits="4" branch="false"/>
<line number="304" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="305" hits="4" branch="false"/>
<line number="306" hits="4" branch="false"/>
<line number="309" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="310" hits="2" branch="false"/>
<line number="311" hits="2" branch="false"/>
<line number="314" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="315" hits="2" branch="false"/>
<line number="316" hits="2" branch="false"/>
<line number="319" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="320" hits="2" branch="false"/>
<line number="321" hits="2" branch="false"/>
<line number="324" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="325" hits="2" branch="false"/>
<line number="328" hits="2" branch="false"/>
<line number="330" hits="2" branch="false"/>
</lines>
</method>
<method name="getInstance" signature="(Ljava/lang/String;)Lorg/apache/shiro/crypto/hash/format/HashFormat;" line-rate="1.0" branch-rate="0.7857142857142857">
<lines>
<line number="115" hits="30" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="116" hits="2" branch="false"/>
<line number="119" hits="28" branch="false"/>
<line number="120" hits="28" branch="false"/>
<line number="125" hits="28" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="128" hits="12" branch="false"/>
<line number="129" hits="12" branch="false"/>
<line number="131" 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="132" hits="12" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="134" hits="12" branch="false"/>
<line number="138" hits="28" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="140" hits="16" branch="false"/>
<line number="143" hits="26" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="145" hits="18" branch="false"/>
<line number="148" hits="26" branch="false"/>
</lines>
</method>
<method name="getSearchPackages" signature="()Ljava/util/Set;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="97" hits="2" branch="false"/>
</lines>
</method>
<method name="lookupHashFormatClass" signature="(Ljava/lang/String;)Ljava/lang/Class;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="335" hits="42" branch="false"/>
<line number="336" hits="34" branch="false"/>
<line number="339" hits="34" branch="false"/>
</lines>
</method>
<method name="newHashFormatInstance" signature="(Ljava/lang/Class;)Lorg/apache/shiro/crypto/hash/format/HashFormat;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="351" hits="18" branch="false"/>
<line number="352" hits="18" branch="false"/>
</lines>
</method>
<method name="setFormatClassNames" signature="(Ljava/util/Map;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="82" hits="4" branch="false"/>
<line number="83" hits="4" branch="false"/>
</lines>
</method>
<method name="setSearchPackages" signature="(Ljava/util/Set;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="111" hits="4" branch="false"/>
<line number="112" hits="4" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="43" hits="56" branch="false"/>
<line number="44" hits="56" branch="false"/>
<line number="45" hits="56" branch="false"/>
<line number="46" hits="56" branch="false"/>
<line number="66" hits="12" branch="false"/>
<line number="82" hits="4" branch="false"/>
<line number="83" hits="4" branch="false"/>
<line number="97" hits="2" branch="false"/>
<line number="111" hits="4" branch="false"/>
<line number="112" hits="4" branch="false"/>
<line number="115" hits="30" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="116" hits="2" branch="false"/>
<line number="119" hits="28" branch="false"/>
<line number="120" hits="28" branch="false"/>
<line number="125" hits="28" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="128" hits="12" branch="false"/>
<line number="129" hits="12" branch="false"/>
<line number="131" 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="132" hits="12" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="134" hits="12" branch="false"/>
<line number="138" hits="28" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="140" hits="16" branch="false"/>
<line number="143" hits="26" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="145" hits="18" branch="false"/>
<line number="148" hits="26" branch="false"/>
<line number="184" hits="28" branch="false"/>
<line number="188" hits="28" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="189" hits="28" branch="false"/>
<line number="190" hits="28" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="192" hits="2" branch="false"/>
<line number="197" hits="28" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="198" hits="26" branch="false"/>
<line number="199" hits="26" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="200" hits="12" branch="false"/>
<line number="204" hits="28" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="206" hits="14" branch="false"/>
<line number="209" hits="28" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="211" hits="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="212" hits="10" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="213" hits="4" branch="false"/>
<line number="214" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="216" hits="2" branch="false"/>
<line number="218" hits="2" branch="false"/>
<line number="222" hits="28" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="223" hits="20" branch="false"/>
<line number="226" hits="26" branch="false"/>
<line number="282" hits="4" branch="false"/>
<line number="283" hits="4" branch="false"/>
<line number="284" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="287" hits="4" branch="false"/>
<line number="289" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="290" hits="4" branch="false"/>
<line number="291" hits="4" branch="false"/>
<line number="294" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="295" hits="4" branch="false"/>
<line number="296" hits="4" branch="false"/>
<line number="299" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="300" hits="4" branch="false"/>
<line number="301" hits="4" branch="false"/>
<line number="304" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="305" hits="4" branch="false"/>
<line number="306" hits="4" branch="false"/>
<line number="309" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="310" hits="2" branch="false"/>
<line number="311" hits="2" branch="false"/>
<line number="314" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="315" hits="2" branch="false"/>
<line number="316" hits="2" branch="false"/>
<line number="319" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="320" hits="2" branch="false"/>
<line number="321" hits="2" branch="false"/>
<line number="324" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="325" hits="2" branch="false"/>
<line number="328" hits="2" branch="false"/>
<line number="330" hits="2" branch="false"/>
<line number="335" hits="42" branch="false"/>
<line number="336" hits="34" branch="false"/>
<line number="339" hits="34" branch="false"/>
<line number="343" hits="40" 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="344" hits="2" branch="false"/>
<line number="345" hits="2" branch="false"/>
<line number="348" hits="38" branch="false"/>
<line number="351" hits="18" branch="false"/>
<line number="352" hits="18" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.crypto.hash.format.HashFormat" filename="org/apache/shiro/crypto/hash/format/HashFormat.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.crypto.hash.format.HashFormatFactory" filename="org/apache/shiro/crypto/hash/format/HashFormatFactory.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.crypto.hash.format.HexFormat" filename="org/apache/shiro/crypto/hash/format/HexFormat.java" line-rate="1.0" 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="30" hits="10" branch="false"/>
</lines>
</method>
<method name="format" signature="(Lorg/apache/shiro/crypto/hash/Hash;)Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="39" hits="10" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
</lines>
</method>
</methods>
<lines>
<line number="30" hits="10" branch="false"/>
<line number="39" hits="10" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
</lines>
</class>
<class name="org.apache.shiro.crypto.hash.format.ModularCryptFormat" filename="org/apache/shiro/crypto/hash/format/ModularCryptFormat.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.crypto.hash.format.ParsableHashFormat" filename="org/apache/shiro/crypto/hash/format/ParsableHashFormat.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.crypto.hash.format.ProvidedHashFormat" filename="org/apache/shiro/crypto/hash/format/ProvidedHashFormat.java" line-rate="1.0" branch-rate="1.0" complexity="2.3333333333333335">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="26" hits="32" branch="false"/>
<line number="31" hits="2" branch="false"/>
<line number="36" hits="2" branch="false"/>
<line number="41" hits="2" 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="45" hits="6" branch="false"/>
<line number="46" hits="6" branch="false"/>
<line number="47" hits="6" branch="false"/>
</lines>
</method>
<method name="byId" signature="(Ljava/lang/String;)Lorg/apache/shiro/crypto/hash/format/ProvidedHashFormat;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="54" hits="28" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="55" hits="2" branch="false"/>
<line number="58" hits="26" branch="false"/>
<line number="59" hits="14" branch="false"/>
<line number="60" hits="14" branch="false"/>
</lines>
</method>
<method name="getHashFormatClass" signature="()Ljava/lang/Class;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="50" hits="12" branch="false"/>
</lines>
</method>
<method name="valueOf" signature="(Ljava/lang/String;)Lorg/apache/shiro/crypto/hash/format/ProvidedHashFormat;" line-rate="1.0" branch-rate="1.0">
<lines>
</lines>
</method>
<method name="values" signature="()[Lorg/apache/shiro/crypto/hash/format/ProvidedHashFormat;" line-rate="1.0" branch-rate="1.0">
<lines>
</lines>
</method>
</methods>
<lines>
<line number="26" hits="32" branch="false"/>
<line number="31" hits="2" branch="false"/>
<line number="36" hits="2" branch="false"/>
<line number="41" hits="2" branch="false"/>
<line number="45" hits="6" branch="false"/>
<line number="46" hits="6" branch="false"/>
<line number="47" hits="6" branch="false"/>
<line number="50" hits="12" branch="false"/>
<line number="54" hits="28" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="55" hits="2" branch="false"/>
<line number="58" hits="26" branch="false"/>
<line number="59" hits="14" branch="false"/>
<line number="60" hits="14" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.crypto.hash.format.Shiro1CryptFormat" filename="org/apache/shiro/crypto/hash/format/Shiro1CryptFormat.java" line-rate="1.0" branch-rate="1.0" complexity="3.75">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="93" hits="74" branch="false"/>
<line number="94" hits="74" branch="false"/>
</lines>
</method>
<method name="format" signature="(Lorg/apache/shiro/crypto/hash/Hash;)Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="101" hits="26" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="102" hits="4" branch="false"/>
<line number="105" hits="22" 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="110" hits="22" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="111" hits="16" branch="false"/>
<line number="114" hits="22" branch="false"/>
<line number="115" hits="22" branch="false"/>
<line number="117" hits="22" branch="false"/>
</lines>
</method>
<method name="getId" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="97" hits="2" branch="false"/>
</lines>
</method>
<method name="parse" signature="(Ljava/lang/String;)Lorg/apache/shiro/crypto/hash/Hash;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="121" hits="20" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="122" hits="2" branch="false"/>
<line number="124" hits="18" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="126" hits="2" branch="false"/>
<line number="127" hits="2" branch="false"/>
<line number="130" hits="16" branch="false"/>
<line number="131" hits="16" branch="false"/>
<line number="134" hits="16" branch="false"/>
<line number="135" hits="16" branch="false"/>
<line number="137" hits="16" branch="false"/>
<line number="138" hits="16" branch="false"/>
<line number="139" hits="16" branch="false"/>
<line number="141" hits="16" branch="false"/>
<line number="142" hits="16" branch="false"/>
<line number="144" hits="16" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="145" hits="14" branch="false"/>
<line number="146" hits="14" branch="false"/>
<line number="151" hits="16" branch="false"/>
<line number="152" hits="2" branch="false"/>
<line number="153" hits="2" branch="false"/>
<line number="154" hits="2" branch="false"/>
<line number="155" hits="14" branch="false"/>
<line number="157" hits="14" branch="false"/>
<line number="158" hits="14" branch="false"/>
<line number="159" hits="14" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="160" hits="12" branch="false"/>
<line number="162" hits="14" branch="false"/>
<line number="164" hits="14" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="93" hits="74" branch="false"/>
<line number="94" hits="74" branch="false"/>
<line number="97" hits="2" branch="false"/>
<line number="101" hits="26" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="102" hits="4" branch="false"/>
<line number="105" hits="22" 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="110" hits="22" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="111" hits="16" branch="false"/>
<line number="114" hits="22" branch="false"/>
<line number="115" hits="22" branch="false"/>
<line number="117" hits="22" branch="false"/>
<line number="121" hits="20" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="122" hits="2" branch="false"/>
<line number="124" hits="18" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="126" hits="2" branch="false"/>
<line number="127" hits="2" branch="false"/>
<line number="130" hits="16" branch="false"/>
<line number="131" hits="16" branch="false"/>
<line number="134" hits="16" branch="false"/>
<line number="135" hits="16" branch="false"/>
<line number="137" hits="16" branch="false"/>
<line number="138" hits="16" branch="false"/>
<line number="139" hits="16" branch="false"/>
<line number="141" hits="16" branch="false"/>
<line number="142" hits="16" branch="false"/>
<line number="144" hits="16" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="145" hits="14" branch="false"/>
<line number="146" hits="14" branch="false"/>
<line number="151" hits="16" branch="false"/>
<line number="152" hits="2" branch="false"/>
<line number="153" hits="2" branch="false"/>
<line number="154" hits="2" branch="false"/>
<line number="155" hits="14" branch="false"/>
<line number="157" hits="14" branch="false"/>
<line number="158" hits="14" branch="false"/>
<line number="159" hits="14" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="160" hits="12" branch="false"/>
<line number="162" hits="14" branch="false"/>
<line number="164" hits="14" branch="false"/>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.dao" line-rate="0.0" branch-rate="1.0" complexity="1.0">
<classes>
<class name="org.apache.shiro.dao.DataAccessException" filename="org/apache/shiro/dao/DataAccessException.java" line-rate="0.0" branch-rate="1.0" complexity="1.0">
<methods>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;)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="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/lang/Throwable;)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>
</methods>
<lines>
<line number="39" hits="0" branch="false"/>
<line number="40" hits="0" branch="false"/>
<line number="49" hits="0" branch="false"/>
<line number="50" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.dao.InvalidResourceUsageException" filename="org/apache/shiro/dao/InvalidResourceUsageException.java" line-rate="0.0" branch-rate="1.0" complexity="1.0">
<methods>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="35" hits="0" branch="false"/>
<line number="36" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/lang/Throwable;)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>
</methods>
<lines>
<line number="35" hits="0" branch="false"/>
<line number="36" hits="0" branch="false"/>
<line number="45" hits="0" branch="false"/>
<line number="46" hits="0" branch="false"/>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.env" line-rate="0.0" branch-rate="0.0" complexity="2.0">
<classes>
<class name="org.apache.shiro.env.DefaultEnvironment" filename="org/apache/shiro/env/DefaultEnvironment.java" line-rate="0.0" branch-rate="0.0" complexity="2.5454545454545454">
<methods>
<method name="&lt;init&gt;" signature="()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="&lt;init&gt;" signature="(Ljava/util/Map;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="58" hits="0" branch="false"/>
<line number="59" hits="0" branch="false"/>
<line number="60" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="61" hits="0" branch="false"/>
<line number="63" hits="0" branch="false"/>
<line number="64" hits="0" branch="false"/>
</lines>
</method>
<method name="destroy" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="168" hits="0" branch="false"/>
<line number="169" hits="0" branch="false"/>
</lines>
</method>
<method name="getObject" signature="(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;" line-rate="0.0" branch-rate="0.0">
<lines>
<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="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="144" hits="0" branch="false"/>
<line number="145" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="146" hits="0" branch="false"/>
<line number="148" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="149" hits="0" branch="false"/>
<line number="150" hits="0" branch="false"/>
<line number="152" hits="0" branch="false"/>
</lines>
</method>
<method name="getObjects" signature="()Ljava/util/Map;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="133" hits="0" branch="false"/>
</lines>
</method>
<method name="getSecurityManager" signature="()Lorg/apache/shiro/mgt/SecurityManager;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="79" hits="0" branch="false"/>
<line number="80" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="81" hits="0" branch="false"/>
<line number="84" hits="0" branch="false"/>
</lines>
</method>
<method name="getSecurityManagerName" signature="()Ljava/lang/String;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="113" hits="0" branch="false"/>
</lines>
</method>
<method name="lookupSecurityManager" signature="()Lorg/apache/shiro/mgt/SecurityManager;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="101" hits="0" branch="false"/>
<line number="102" hits="0" branch="false"/>
</lines>
</method>
<method name="setObject" signature="(Ljava/lang/String;Ljava/lang/Object;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<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="159" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="160" hits="0" branch="false"/>
<line number="162" hits="0" branch="false"/>
<line number="164" hits="0" branch="false"/>
</lines>
</method>
<method name="setSecurityManager" signature="(Lorg/apache/shiro/mgt/SecurityManager;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="88" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="89" hits="0" branch="false"/>
<line number="91" hits="0" branch="false"/>
<line number="92" hits="0" branch="false"/>
<line number="93" hits="0" branch="false"/>
</lines>
</method>
<method name="setSecurityManagerName" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="124" hits="0" branch="false"/>
<line number="125" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="49" hits="0" branch="false"/>
<line number="50" hits="0" branch="false"/>
<line number="58" hits="0" branch="false"/>
<line number="59" hits="0" branch="false"/>
<line number="60" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="61" hits="0" branch="false"/>
<line number="63" hits="0" branch="false"/>
<line number="64" hits="0" branch="false"/>
<line number="79" hits="0" branch="false"/>
<line number="80" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="81" hits="0" branch="false"/>
<line number="84" hits="0" branch="false"/>
<line number="88" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="89" hits="0" branch="false"/>
<line number="91" hits="0" branch="false"/>
<line number="92" hits="0" branch="false"/>
<line number="93" hits="0" branch="false"/>
<line number="101" hits="0" branch="false"/>
<line number="102" hits="0" branch="false"/>
<line number="113" hits="0" branch="false"/>
<line number="124" hits="0" branch="false"/>
<line number="125" hits="0" branch="false"/>
<line number="133" hits="0" branch="false"/>
<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="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="144" hits="0" branch="false"/>
<line number="145" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="146" hits="0" branch="false"/>
<line number="148" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="149" hits="0" branch="false"/>
<line number="150" hits="0" branch="false"/>
<line number="152" 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="159" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="160" hits="0" branch="false"/>
<line number="162" hits="0" branch="false"/>
<line number="164" hits="0" branch="false"/>
<line number="168" hits="0" branch="false"/>
<line number="169" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.env.Environment" filename="org/apache/shiro/env/Environment.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.env.EnvironmentException" filename="org/apache/shiro/env/EnvironmentException.java" line-rate="0.0" branch-rate="1.0" complexity="1.0">
<methods>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="31" hits="0" branch="false"/>
<line number="32" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/lang/Throwable;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="35" hits="0" branch="false"/>
<line number="36" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="31" hits="0" branch="false"/>
<line number="32" hits="0" branch="false"/>
<line number="35" hits="0" branch="false"/>
<line number="36" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.env.NamedObjectEnvironment" filename="org/apache/shiro/env/NamedObjectEnvironment.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.env.RequiredTypeException" filename="org/apache/shiro/env/RequiredTypeException.java" line-rate="0.0" branch-rate="1.0" complexity="1.0">
<methods>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="30" hits="0" branch="false"/>
<line number="31" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/lang/Throwable;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="34" hits="0" branch="false"/>
<line number="35" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="30" hits="0" branch="false"/>
<line number="31" hits="0" branch="false"/>
<line number="34" hits="0" branch="false"/>
<line number="35" hits="0" branch="false"/>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.functor" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<classes>
<class name="org.apache.shiro.functor.Translator" filename="org/apache/shiro/functor/Translator.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.io" line-rate="0.29591836734693877" branch-rate="0.16666666666666666" complexity="2.4761904761904763">
<classes>
<class name="org.apache.shiro.io.ClassResolvingObjectInputStream" filename="org/apache/shiro/io/ClassResolvingObjectInputStream.java" line-rate="0.0" branch-rate="1.0" complexity="2.5">
<methods>
<method name="&lt;init&gt;" signature="(Ljava/io/InputStream;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="38" hits="0" branch="false"/>
<line number="39" hits="0" branch="false"/>
</lines>
</method>
<method name="resolveClass" signature="(Ljava/io/ObjectStreamClass;)Ljava/lang/Class;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="53" hits="0" branch="false"/>
<line number="54" hits="0" branch="false"/>
<line number="55" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="38" hits="0" branch="false"/>
<line number="39" 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"/>
</lines>
</class>
<class name="org.apache.shiro.io.DefaultSerializer" filename="org/apache/shiro/io/DefaultSerializer.java" line-rate="0.038461538461538464" 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="28" hits="4" branch="false"/>
</lines>
</method>
<method name="deserialize" signature="([B)Ljava/lang/Object;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="68" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="69" hits="0" branch="false"/>
<line number="70" hits="0" branch="false"/>
<line number="72" hits="0" branch="false"/>
<line number="73" hits="0" branch="false"/>
<line number="75" hits="0" branch="false"/>
<line number="77" 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="81" hits="0" branch="false"/>
<line number="82" hits="0" branch="false"/>
</lines>
</method>
<method name="serialize" signature="(Ljava/lang/Object;)[B" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="39" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="40" hits="0" branch="false"/>
<line number="41" hits="0" branch="false"/>
<line number="43" hits="0" branch="false"/>
<line number="44" hits="0" branch="false"/>
<line number="47" hits="0" branch="false"/>
<line number="48" hits="0" branch="false"/>
<line number="49" hits="0" branch="false"/>
<line number="50" hits="0" branch="false"/>
<line number="51" hits="0" branch="false"/>
<line number="52" hits="0" branch="false"/>
<line number="53" hits="0" branch="false"/>
<line number="55" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="28" hits="4" branch="false"/>
<line number="39" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="40" hits="0" branch="false"/>
<line number="41" hits="0" branch="false"/>
<line number="43" hits="0" branch="false"/>
<line number="44" hits="0" branch="false"/>
<line number="47" hits="0" branch="false"/>
<line number="48" hits="0" branch="false"/>
<line number="49" hits="0" branch="false"/>
<line number="50" hits="0" branch="false"/>
<line number="51" hits="0" branch="false"/>
<line number="52" hits="0" branch="false"/>
<line number="53" hits="0" branch="false"/>
<line number="55" hits="0" branch="false"/>
<line number="68" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="69" hits="0" branch="false"/>
<line number="70" hits="0" branch="false"/>
<line number="72" hits="0" branch="false"/>
<line number="73" hits="0" branch="false"/>
<line number="75" hits="0" branch="false"/>
<line number="77" 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="81" hits="0" branch="false"/>
<line number="82" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.io.ResourceUtils" filename="org/apache/shiro/io/ResourceUtils.java" line-rate="0.46511627906976744" branch-rate="0.22727272727272727" complexity="2.5555555555555554">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="54" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="59" hits="0" branch="false"/>
<line number="60" hits="0" branch="false"/>
</lines>
</method>
<method name="close" signature="(Ljava/io/InputStream;)V" line-rate="0.6666666666666666" branch-rate="0.5">
<lines>
<line number="175" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="177" hits="2" branch="false"/>
<line number="178" hits="0" branch="false"/>
<line number="179" hits="0" branch="false"/>
<line number="180" hits="2" branch="false"/>
<line number="182" hits="2" branch="false"/>
</lines>
</method>
<method name="getInputStreamForPath" signature="(Ljava/lang/String;)Ljava/io/InputStream;" line-rate="0.5" branch-rate="0.375">
<lines>
<line number="125" hits="14" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="126" hits="14" branch="false"/>
<line number="128" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="129" hits="0" branch="false"/>
<line number="131" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="132" hits="0" branch="false"/>
<line number="135" hits="0" branch="false"/>
<line number="138" hits="14" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="139" hits="4" branch="false"/>
<line number="142" hits="10" branch="false"/>
</lines>
</method>
<method name="hasResourcePrefix" signature="(Ljava/lang/String;)Z" 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="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<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="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
</lines>
</method>
<method name="loadFromClassPath" signature="(Ljava/lang/String;)Ljava/io/InputStream;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="159" hits="14" branch="false"/>
<line number="160" hits="14" branch="false"/>
</lines>
</method>
<method name="loadFromFile" signature="(Ljava/lang/String;)Ljava/io/InputStream;" line-rate="0.0" branch-rate="0.0">
<lines>
<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"/>
</lines>
</method>
<method name="loadFromUrl" signature="(Ljava/lang/String;)Ljava/io/InputStream;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="153" hits="0" branch="false"/>
<line number="154" hits="0" branch="false"/>
<line number="155" hits="0" branch="false"/>
</lines>
</method>
<method name="resourceExists" signature="(Ljava/lang/String;)Z" line-rate="0.6363636363636364" branch-rate="0.5">
<lines>
<line number="89" hits="4" branch="false"/>
<line number="90" hits="4" branch="false"/>
<line number="93" hits="4" branch="false"/>
<line number="94" hits="0" branch="false"/>
<line number="95" hits="4" branch="false"/>
<line number="96" hits="4" branch="false"/>
<line number="98" hits="4" 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="101" hits="0" branch="false"/>
<line number="102" hits="0" branch="false"/>
<line number="106" hits="4" branch="false"/>
</lines>
</method>
<method name="stripPrefix" signature="(Ljava/lang/String;)Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="164" hits="14" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="54" hits="2" branch="false"/>
<line number="59" hits="0" branch="false"/>
<line number="60" 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="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<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="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="89" hits="4" branch="false"/>
<line number="90" hits="4" branch="false"/>
<line number="93" hits="4" branch="false"/>
<line number="94" hits="0" branch="false"/>
<line number="95" hits="4" branch="false"/>
<line number="96" hits="4" branch="false"/>
<line number="98" hits="4" 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="101" hits="0" branch="false"/>
<line number="102" hits="0" branch="false"/>
<line number="106" hits="4" branch="false"/>
<line number="125" hits="14" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="126" hits="14" branch="false"/>
<line number="128" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="129" hits="0" branch="false"/>
<line number="131" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="132" hits="0" branch="false"/>
<line number="135" hits="0" branch="false"/>
<line number="138" hits="14" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="139" hits="4" branch="false"/>
<line number="142" hits="10" branch="false"/>
<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="false"/>
<line number="154" hits="0" branch="false"/>
<line number="155" hits="0" branch="false"/>
<line number="159" hits="14" branch="false"/>
<line number="160" hits="14" branch="false"/>
<line number="164" hits="14" 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="177" hits="2" branch="false"/>
<line number="178" hits="0" branch="false"/>
<line number="179" hits="0" branch="false"/>
<line number="180" hits="2" branch="false"/>
<line number="182" hits="2" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.io.SerializationException" filename="org/apache/shiro/io/SerializationException.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="36" hits="2" branch="false"/>
<line number="37" hits="2" 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="45" hits="2" branch="false"/>
<line number="46" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/lang/Throwable;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="64" hits="2" branch="false"/>
<line number="65" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Throwable;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="54" hits="2" branch="false"/>
<line number="55" hits="2" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="36" hits="2" branch="false"/>
<line number="37" hits="2" branch="false"/>
<line number="45" hits="2" branch="false"/>
<line number="46" hits="2" branch="false"/>
<line number="54" hits="2" branch="false"/>
<line number="55" hits="2" branch="false"/>
<line number="64" hits="2" branch="false"/>
<line number="65" hits="2" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.io.Serializer" filename="org/apache/shiro/io/Serializer.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.io.XmlSerializer" filename="org/apache/shiro/io/XmlSerializer.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="38" hits="0" branch="false"/>
</lines>
</method>
<method name="deserialize" signature="([B)Ljava/lang/Object;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="70" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="71" 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="77" hits="0" branch="false"/>
</lines>
</method>
<method name="serialize" signature="(Ljava/lang/Object;)[B" line-rate="0.0" branch-rate="0.0">
<lines>
<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="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="58" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="38" 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="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="58" hits="0" branch="false"/>
<line number="70" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="71" 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="77" hits="0" branch="false"/>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.jndi" line-rate="0.18" branch-rate="0.14285714285714285" complexity="1.8333333333333333">
<classes>
<class name="org.apache.shiro.jndi.JndiCallback" filename="org/apache/shiro/jndi/JndiCallback.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.jndi.JndiLocator" filename="org/apache/shiro/jndi/JndiLocator.java" line-rate="0.13333333333333333" branch-rate="0.0" complexity="2.111111111111111">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="47" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="42" hits="8" branch="false"/>
<line number="54" hits="8" branch="false"/>
<line number="56" hits="8" branch="false"/>
</lines>
</method>
<method name="convertJndiName" signature="(Ljava/lang/String;)Ljava/lang/String;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="173" 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="174" hits="0" branch="false"/>
<line number="176" hits="0" branch="false"/>
</lines>
</method>
<method name="getJndiEnvironment" signature="()Ljava/util/Properties;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="90" hits="0" branch="false"/>
</lines>
</method>
<method name="getJndiTemplate" signature="()Lorg/apache/shiro/jndi/JndiTemplate;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="73" hits="0" branch="false"/>
</lines>
</method>
<method name="isResourceRef" signature="()Z" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="107" hits="0" branch="false"/>
</lines>
</method>
<method name="lookup" signature="(Ljava/lang/String;)Ljava/lang/Object;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="122" hits="0" branch="false"/>
</lines>
</method>
<method name="lookup" signature="(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="137" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="138" hits="0" branch="false"/>
<line number="140" hits="0" branch="false"/>
<line number="143" hits="0" branch="false"/>
<line number="145" hits="0" branch="false"/>
<line number="146" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="148" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="149" hits="0" branch="false"/>
<line number="152" hits="0" branch="false"/>
<line number="154" hits="0" branch="false"/>
<line number="156" hits="0" branch="false"/>
<line number="157" hits="0" branch="false"/>
<line number="158" hits="0" branch="false"/>
</lines>
</method>
<method name="setJndiEnvironment" signature="(Ljava/util/Properties;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="83" hits="0" branch="false"/>
<line number="84" hits="0" branch="false"/>
</lines>
</method>
<method name="setJndiTemplate" signature="(Lorg/apache/shiro/jndi/JndiTemplate;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<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"/>
</lines>
</method>
<method name="setResourceRef" signature="(Z)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="100" hits="0" branch="false"/>
<line number="101" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="42" hits="8" branch="false"/>
<line number="47" hits="2" branch="false"/>
<line number="54" hits="8" branch="false"/>
<line number="56" hits="8" 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="73" hits="0" branch="false"/>
<line number="83" hits="0" branch="false"/>
<line number="84" hits="0" branch="false"/>
<line number="90" hits="0" branch="false"/>
<line number="100" hits="0" branch="false"/>
<line number="101" hits="0" branch="false"/>
<line number="107" hits="0" branch="false"/>
<line number="122" hits="0" branch="false"/>
<line number="137" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="138" hits="0" branch="false"/>
<line number="140" hits="0" branch="false"/>
<line number="143" hits="0" branch="false"/>
<line number="145" hits="0" branch="false"/>
<line number="146" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="148" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="149" hits="0" branch="false"/>
<line number="152" hits="0" branch="false"/>
<line number="154" hits="0" branch="false"/>
<line number="156" hits="0" branch="false"/>
<line number="157" hits="0" branch="false"/>
<line number="158" hits="0" branch="false"/>
<line number="173" 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="174" hits="0" branch="false"/>
<line number="176" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.jndi.JndiObjectFactory" filename="org/apache/shiro/jndi/JndiObjectFactory.java" line-rate="0.8461538461538461" branch-rate="1.0" complexity="2.2">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="30" hits="8" branch="false"/>
</lines>
</method>
<method name="getInstance" signature="()Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="37" hits="8" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="38" hits="4" branch="false"/>
<line number="40" hits="4" branch="false"/>
<line number="42" hits="4" branch="false"/>
<line number="43" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="44" hits="4" branch="false"/>
</lines>
</method>
<method name="getRequiredType" signature="()Ljava/lang/Class;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="57" hits="0" branch="false"/>
</lines>
</method>
<method name="getResourceName" signature="()Ljava/lang/String;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="49" hits="0" branch="false"/>
</lines>
</method>
<method name="setRequiredType" signature="(Ljava/lang/Class;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="61" hits="4" branch="false"/>
<line number="62" hits="4" branch="false"/>
</lines>
</method>
<method name="setResourceName" signature="(Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="53" hits="8" branch="false"/>
<line number="54" hits="8" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="30" hits="8" branch="false"/>
<line number="37" hits="8" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="38" hits="4" branch="false"/>
<line number="40" hits="4" branch="false"/>
<line number="42" hits="4" branch="false"/>
<line number="43" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="44" hits="4" branch="false"/>
<line number="49" hits="0" branch="false"/>
<line number="53" hits="8" branch="false"/>
<line number="54" hits="8" branch="false"/>
<line number="57" hits="0" branch="false"/>
<line number="61" hits="4" branch="false"/>
<line number="62" hits="4" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.jndi.JndiTemplate" filename="org/apache/shiro/jndi/JndiTemplate.java" line-rate="0.06976744186046512" branch-rate="0.0" complexity="1.6">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="47" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="52" hits="8" branch="false"/>
<line number="53" hits="8" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/util/Properties;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="60" hits="0" branch="false"/>
<line number="61" hits="0" branch="false"/>
<line number="62" hits="0" branch="false"/>
</lines>
</method>
<method name="bind" signature="(Ljava/lang/String;Ljava/lang/Object;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="181" hits="0" branch="false"/>
<line number="182" hits="0" branch="false"/>
<line number="188" hits="0" branch="false"/>
</lines>
</method>
<method name="createInitialContext" signature="()Ljavax/naming/Context;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="114" hits="0" branch="false"/>
<line number="115" hits="0" branch="false"/>
<line number="116" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="117" hits="0" branch="false"/>
<line number="118" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="119" hits="0" branch="false"/>
<line number="120" hits="0" branch="false"/>
<line number="121" hits="0" branch="false"/>
<line number="123" hits="0" branch="false"/>
</lines>
</method>
<method name="execute" signature="(Lorg/apache/shiro/jndi/JndiCallback;)Ljava/lang/Object;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="91" hits="0" branch="false"/>
<line number="93" hits="0" branch="false"/>
<line number="96" hits="0" branch="false"/>
<line number="97" hits="0" branch="false"/>
<line number="98" hits="0" branch="false"/>
<line number="99" hits="0" branch="false"/>
<line number="100" hits="0" branch="false"/>
</lines>
</method>
<method name="getEnvironment" signature="()Ljava/util/Properties;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="79" hits="0" branch="false"/>
</lines>
</method>
<method name="lookup" signature="(Ljava/lang/String;)Ljava/lang/Object;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="136" hits="0" branch="false"/>
<line number="137" hits="0" branch="false"/>
</lines>
</method>
<method name="lookup" signature="(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="163" hits="0" branch="false"/>
<line number="164" 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="165" hits="0" branch="false"/>
<line number="166" hits="0" branch="false"/>
<line number="167" hits="0" branch="false"/>
<line number="168" hits="0" branch="false"/>
<line number="170" hits="0" branch="false"/>
</lines>
</method>
<method name="rebind" signature="(Ljava/lang/String;Ljava/lang/Object;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="199" hits="0" branch="false"/>
<line number="200" hits="0" branch="false"/>
<line number="206" hits="0" branch="false"/>
</lines>
</method>
<method name="setEnvironment" signature="(Ljava/util/Properties;)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="unbind" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="215" hits="0" branch="false"/>
<line number="216" hits="0" branch="false"/>
<line number="222" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="47" hits="2" branch="false"/>
<line number="52" hits="8" branch="false"/>
<line number="53" hits="8" branch="false"/>
<line number="60" hits="0" branch="false"/>
<line number="61" hits="0" branch="false"/>
<line number="62" hits="0" branch="false"/>
<line number="70" hits="0" branch="false"/>
<line number="71" hits="0" branch="false"/>
<line number="79" hits="0" branch="false"/>
<line number="91" hits="0" branch="false"/>
<line number="93" hits="0" branch="false"/>
<line number="96" hits="0" branch="false"/>
<line number="97" hits="0" branch="false"/>
<line number="98" hits="0" branch="false"/>
<line number="99" hits="0" branch="false"/>
<line number="100" hits="0" branch="false"/>
<line number="114" hits="0" branch="false"/>
<line number="115" hits="0" branch="false"/>
<line number="116" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="117" hits="0" branch="false"/>
<line number="118" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="119" hits="0" branch="false"/>
<line number="120" hits="0" branch="false"/>
<line number="121" hits="0" branch="false"/>
<line number="123" hits="0" branch="false"/>
<line number="136" hits="0" branch="false"/>
<line number="137" hits="0" branch="false"/>
<line number="163" hits="0" branch="false"/>
<line number="164" 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="165" hits="0" branch="false"/>
<line number="166" hits="0" branch="false"/>
<line number="167" hits="0" branch="false"/>
<line number="168" hits="0" branch="false"/>
<line number="170" hits="0" branch="false"/>
<line number="181" hits="0" branch="false"/>
<line number="182" hits="0" branch="false"/>
<line number="188" hits="0" branch="false"/>
<line number="199" hits="0" branch="false"/>
<line number="200" hits="0" branch="false"/>
<line number="206" hits="0" branch="false"/>
<line number="215" hits="0" branch="false"/>
<line number="216" hits="0" branch="false"/>
<line number="222" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.jndi.JndiTemplate$1" filename="org/apache/shiro/jndi/JndiTemplate.java" line-rate="0.0" branch-rate="0.0" complexity="1.6">
<methods>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/jndi/JndiTemplate;Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="137" hits="0" branch="false"/>
</lines>
</method>
<method name="doInContext" signature="(Ljavax/naming/Context;)Ljava/lang/Object;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="139" hits="0" branch="false"/>
<line number="140" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="141" hits="0" branch="false"/>
<line number="144" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="137" hits="0" branch="false"/>
<line number="139" hits="0" branch="false"/>
<line number="140" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="141" hits="0" branch="false"/>
<line number="144" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.jndi.JndiTemplate$2" filename="org/apache/shiro/jndi/JndiTemplate.java" line-rate="0.0" branch-rate="1.0" complexity="1.6">
<methods>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/jndi/JndiTemplate;Ljava/lang/String;Ljava/lang/Object;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="182" hits="0" branch="false"/>
</lines>
</method>
<method name="doInContext" signature="(Ljavax/naming/Context;)Ljava/lang/Object;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="184" hits="0" branch="false"/>
<line number="185" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="182" hits="0" branch="false"/>
<line number="184" hits="0" branch="false"/>
<line number="185" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.jndi.JndiTemplate$3" filename="org/apache/shiro/jndi/JndiTemplate.java" line-rate="0.0" branch-rate="1.0" complexity="1.6">
<methods>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/jndi/JndiTemplate;Ljava/lang/String;Ljava/lang/Object;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="200" hits="0" branch="false"/>
</lines>
</method>
<method name="doInContext" signature="(Ljavax/naming/Context;)Ljava/lang/Object;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="202" hits="0" branch="false"/>
<line number="203" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="200" hits="0" branch="false"/>
<line number="202" hits="0" branch="false"/>
<line number="203" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.jndi.JndiTemplate$4" filename="org/apache/shiro/jndi/JndiTemplate.java" line-rate="0.0" branch-rate="1.0" complexity="1.6">
<methods>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/jndi/JndiTemplate;Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="216" hits="0" branch="false"/>
</lines>
</method>
<method name="doInContext" signature="(Ljavax/naming/Context;)Ljava/lang/Object;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="218" hits="0" branch="false"/>
<line number="219" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="216" hits="0" branch="false"/>
<line number="218" hits="0" branch="false"/>
<line number="219" hits="0" branch="false"/>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.ldap" line-rate="0.0" branch-rate="1.0" complexity="1.0">
<classes>
<class name="org.apache.shiro.ldap.UnsupportedAuthenticationMechanismException" filename="org/apache/shiro/ldap/UnsupportedAuthenticationMechanismException.java" line-rate="0.0" branch-rate="1.0" complexity="1.0">
<methods>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="33" hits="0" branch="false"/>
<line number="34" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/lang/Throwable;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="37" hits="0" branch="false"/>
<line number="38" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="33" hits="0" branch="false"/>
<line number="34" hits="0" branch="false"/>
<line number="37" hits="0" branch="false"/>
<line number="38" hits="0" branch="false"/>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.mgt" line-rate="0.6139954853273137" branch-rate="0.49333333333333335" complexity="1.7">
<classes>
<class name="org.apache.shiro.mgt.AbstractRememberMeManager" filename="org/apache/shiro/mgt/AbstractRememberMeManager.java" line-rate="0.25333333333333335" branch-rate="0.125" complexity="1.4482758620689655">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="69" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="95" hits="4" branch="false"/>
<line number="96" hits="4" branch="false"/>
<line number="97" hits="4" branch="false"/>
<line number="98" hits="4" branch="false"/>
<line number="99" hits="4" branch="false"/>
<line number="100" hits="4" branch="false"/>
</lines>
</method>
<method name="convertBytesToPrincipals" signature="([BLorg/apache/shiro/subject/SubjectContext;)Lorg/apache/shiro/subject/PrincipalCollection;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="418" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="419" hits="0" branch="false"/>
<line number="421" hits="0" branch="false"/>
</lines>
</method>
<method name="convertPrincipalsToBytes" signature="(Lorg/apache/shiro/subject/PrincipalCollection;)[B" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="350" hits="0" branch="false"/>
<line number="351" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="352" hits="0" branch="false"/>
<line number="354" hits="0" branch="false"/>
</lines>
</method>
<method name="decrypt" signature="([B)[B" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="476" hits="0" branch="false"/>
<line number="477" hits="0" branch="false"/>
<line number="478" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="479" hits="0" branch="false"/>
<line number="480" hits="0" branch="false"/>
<line number="482" hits="0" branch="false"/>
</lines>
</method>
<method name="deserialize" signature="([B)Lorg/apache/shiro/subject/PrincipalCollection;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="504" hits="0" branch="false"/>
</lines>
</method>
<method name="encrypt" signature="([B)[B" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="460" hits="0" branch="false"/>
<line number="461" hits="0" branch="false"/>
<line number="462" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="463" hits="0" branch="false"/>
<line number="464" hits="0" branch="false"/>
<line number="466" hits="0" branch="false"/>
</lines>
</method>
<method name="getCipherKey" signature="()[B" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="221" hits="0" branch="false"/>
</lines>
</method>
<method name="getCipherService" signature="()Lorg/apache/shiro/crypto/CipherService;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="139" hits="0" branch="false"/>
</lines>
</method>
<method name="getDecryptionCipherKey" signature="()[B" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="192" hits="0" branch="false"/>
</lines>
</method>
<method name="getEncryptionCipherKey" signature="()[B" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="172" hits="0" branch="false"/>
</lines>
</method>
<method name="getIdentityToRemember" signature="(Lorg/apache/shiro/subject/Subject;Lorg/apache/shiro/authc/AuthenticationInfo;)Lorg/apache/shiro/subject/PrincipalCollection;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="323" hits="0" branch="false"/>
</lines>
</method>
<method name="getRememberedPrincipals" signature="(Lorg/apache/shiro/subject/SubjectContext;)Lorg/apache/shiro/subject/PrincipalCollection;" line-rate="0.625" branch-rate="0.75">
<lines>
<line number="381" hits="4" branch="false"/>
<line number="383" hits="4" branch="false"/>
<line number="385" 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="386" hits="0" branch="false"/>
<line number="388" hits="0" branch="false"/>
<line number="389" hits="0" branch="false"/>
<line number="390" hits="4" branch="false"/>
<line number="392" hits="4" branch="false"/>
</lines>
</method>
<method name="getSerializer" signature="()Lorg/apache/shiro/io/Serializer;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="113" hits="0" branch="false"/>
</lines>
</method>
<method name="isRememberMe" signature="(Lorg/apache/shiro/authc/AuthenticationToken;)Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="266" 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="267" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
</lines>
</method>
<method name="onFailedLogin" signature="(Lorg/apache/shiro/subject/Subject;Lorg/apache/shiro/authc/AuthenticationToken;Lorg/apache/shiro/authc/AuthenticationException;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="517" hits="0" branch="false"/>
<line number="518" hits="0" branch="false"/>
</lines>
</method>
<method name="onLogout" signature="(Lorg/apache/shiro/subject/Subject;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="527" hits="0" branch="false"/>
<line number="528" hits="0" branch="false"/>
</lines>
</method>
<method name="onRememberedPrincipalFailure" signature="(Ljava/lang/RuntimeException;Lorg/apache/shiro/subject/SubjectContext;)Lorg/apache/shiro/subject/PrincipalCollection;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="442" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="443" hits="0" branch="false"/>
<line number="448" hits="0" branch="false"/>
<line number="450" hits="0" branch="false"/>
</lines>
</method>
<method name="onSuccessfulLogin" signature="(Lorg/apache/shiro/subject/Subject;Lorg/apache/shiro/authc/AuthenticationToken;Lorg/apache/shiro/authc/AuthenticationInfo;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="283" hits="0" branch="false"/>
<line number="286" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="287" hits="0" branch="false"/>
<line number="289" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="290" hits="0" branch="false"/>
<line number="294" hits="0" branch="false"/>
</lines>
</method>
<method name="rememberIdentity" signature="(Lorg/apache/shiro/subject/Subject;Lorg/apache/shiro/authc/AuthenticationToken;Lorg/apache/shiro/authc/AuthenticationInfo;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="310" hits="0" branch="false"/>
<line number="311" hits="0" branch="false"/>
<line number="312" hits="0" branch="false"/>
</lines>
</method>
<method name="rememberIdentity" signature="(Lorg/apache/shiro/subject/Subject;Lorg/apache/shiro/subject/PrincipalCollection;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="336" hits="0" branch="false"/>
<line number="337" hits="0" branch="false"/>
<line number="338" hits="0" branch="false"/>
</lines>
</method>
<method name="serialize" signature="(Lorg/apache/shiro/subject/PrincipalCollection;)[B" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="493" hits="0" branch="false"/>
</lines>
</method>
<method name="setCipherKey" signature="([B)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="240" hits="4" branch="false"/>
<line number="241" hits="4" branch="false"/>
<line number="242" hits="4" branch="false"/>
</lines>
</method>
<method name="setCipherService" signature="(Lorg/apache/shiro/crypto/CipherService;)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="setDecryptionCipherKey" signature="([B)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="202" hits="4" branch="false"/>
<line number="203" hits="4" branch="false"/>
</lines>
</method>
<method name="setEncryptionCipherKey" signature="([B)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="182" hits="4" branch="false"/>
<line number="183" hits="4" branch="false"/>
</lines>
</method>
<method name="setSerializer" signature="(Lorg/apache/shiro/io/Serializer;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="126" hits="0" branch="false"/>
<line number="127" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="69" hits="2" branch="false"/>
<line number="95" hits="4" branch="false"/>
<line number="96" hits="4" branch="false"/>
<line number="97" hits="4" branch="false"/>
<line number="98" hits="4" branch="false"/>
<line number="99" hits="4" branch="false"/>
<line number="100" hits="4" branch="false"/>
<line number="113" hits="0" branch="false"/>
<line number="126" hits="0" branch="false"/>
<line number="127" hits="0" branch="false"/>
<line number="139" hits="0" branch="false"/>
<line number="162" hits="0" branch="false"/>
<line number="163" hits="0" branch="false"/>
<line number="172" hits="0" branch="false"/>
<line number="182" hits="4" branch="false"/>
<line number="183" hits="4" branch="false"/>
<line number="192" hits="0" branch="false"/>
<line number="202" hits="4" branch="false"/>
<line number="203" hits="4" branch="false"/>
<line number="221" hits="0" branch="false"/>
<line number="240" hits="4" branch="false"/>
<line number="241" hits="4" branch="false"/>
<line number="242" hits="4" branch="false"/>
<line number="266" 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="267" 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="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="287" hits="0" branch="false"/>
<line number="289" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="290" hits="0" branch="false"/>
<line number="294" hits="0" branch="false"/>
<line number="310" hits="0" branch="false"/>
<line number="311" hits="0" branch="false"/>
<line number="312" hits="0" branch="false"/>
<line number="323" hits="0" branch="false"/>
<line number="336" hits="0" branch="false"/>
<line number="337" hits="0" branch="false"/>
<line number="338" hits="0" branch="false"/>
<line number="350" hits="0" branch="false"/>
<line number="351" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="352" hits="0" branch="false"/>
<line number="354" hits="0" branch="false"/>
<line number="381" hits="4" branch="false"/>
<line number="383" hits="4" branch="false"/>
<line number="385" 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="386" hits="0" branch="false"/>
<line number="388" hits="0" branch="false"/>
<line number="389" hits="0" branch="false"/>
<line number="390" hits="4" branch="false"/>
<line number="392" hits="4" branch="false"/>
<line number="418" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="419" hits="0" branch="false"/>
<line number="421" hits="0" branch="false"/>
<line number="442" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="443" hits="0" branch="false"/>
<line number="448" hits="0" branch="false"/>
<line number="450" hits="0" branch="false"/>
<line number="460" hits="0" branch="false"/>
<line number="461" hits="0" branch="false"/>
<line number="462" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="463" hits="0" branch="false"/>
<line number="464" hits="0" branch="false"/>
<line number="466" hits="0" branch="false"/>
<line number="476" hits="0" branch="false"/>
<line number="477" hits="0" branch="false"/>
<line number="478" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="479" hits="0" branch="false"/>
<line number="480" hits="0" branch="false"/>
<line number="482" hits="0" branch="false"/>
<line number="493" hits="0" branch="false"/>
<line number="504" hits="0" branch="false"/>
<line number="517" hits="0" branch="false"/>
<line number="518" hits="0" branch="false"/>
<line number="527" hits="0" branch="false"/>
<line number="528" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.mgt.AuthenticatingSecurityManager" filename="org/apache/shiro/mgt/AuthenticatingSecurityManager.java" line-rate="0.7222222222222222" branch-rate="0.25" complexity="1.5">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="57" hits="72" branch="false"/>
<line number="58" hits="72" branch="false"/>
<line number="59" hits="72" branch="false"/>
</lines>
</method>
<method name="afterRealmsSet" signature="()V" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="96" hits="64" branch="false"/>
<line number="97" hits="64" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="98" hits="64" branch="false"/>
<line number="100" hits="64" branch="false"/>
</lines>
</method>
<method name="authenticate" signature="(Lorg/apache/shiro/authc/AuthenticationToken;)Lorg/apache/shiro/authc/AuthenticationInfo;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="106" hits="42" branch="false"/>
</lines>
</method>
<method name="destroy" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="110" hits="38" branch="false"/>
<line number="111" hits="38" branch="false"/>
<line number="112" hits="38" branch="false"/>
<line number="113" hits="38" branch="false"/>
</lines>
</method>
<method name="getAuthenticator" signature="()Lorg/apache/shiro/authc/Authenticator;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="71" hits="54" branch="false"/>
</lines>
</method>
<method name="setAuthenticator" signature="(Lorg/apache/shiro/authc/Authenticator;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="84" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="85" hits="0" branch="false"/>
<line number="86" hits="0" branch="false"/>
<line number="88" hits="0" branch="false"/>
<line number="89" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="57" hits="72" branch="false"/>
<line number="58" hits="72" branch="false"/>
<line number="59" hits="72" branch="false"/>
<line number="71" hits="54" branch="false"/>
<line number="84" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="85" hits="0" branch="false"/>
<line number="86" hits="0" branch="false"/>
<line number="88" hits="0" branch="false"/>
<line number="89" hits="0" branch="false"/>
<line number="96" hits="64" branch="false"/>
<line number="97" hits="64" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="98" hits="64" branch="false"/>
<line number="100" hits="64" branch="false"/>
<line number="106" hits="42" branch="false"/>
<line number="110" hits="38" branch="false"/>
<line number="111" hits="38" branch="false"/>
<line number="112" hits="38" branch="false"/>
<line number="113" hits="38" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.mgt.AuthorizingSecurityManager" filename="org/apache/shiro/mgt/AuthorizingSecurityManager.java" line-rate="0.35" branch-rate="0.25" complexity="1.1428571428571428">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="59" hits="72" branch="false"/>
<line number="60" hits="72" branch="false"/>
<line number="61" hits="72" branch="false"/>
</lines>
</method>
<method name="afterRealmsSet" signature="()V" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="100" hits="64" branch="false"/>
<line number="101" hits="64" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="102" hits="64" branch="false"/>
<line number="104" hits="64" branch="false"/>
</lines>
</method>
<method name="checkPermission" signature="(Lorg/apache/shiro/subject/PrincipalCollection;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="checkPermission" signature="(Lorg/apache/shiro/subject/PrincipalCollection;Lorg/apache/shiro/authz/Permission;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="141" hits="0" branch="false"/>
<line number="142" hits="0" branch="false"/>
</lines>
</method>
<method name="checkPermissions" signature="(Lorg/apache/shiro/subject/PrincipalCollection;Ljava/util/Collection;)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="checkPermissions" signature="(Lorg/apache/shiro/subject/PrincipalCollection;[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="checkRole" signature="(Lorg/apache/shiro/subject/PrincipalCollection;Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="165" hits="0" branch="false"/>
<line number="166" hits="0" branch="false"/>
</lines>
</method>
<method name="checkRoles" signature="(Lorg/apache/shiro/subject/PrincipalCollection;Ljava/util/Collection;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="169" hits="0" branch="false"/>
<line number="170" hits="0" branch="false"/>
</lines>
</method>
<method name="checkRoles" signature="(Lorg/apache/shiro/subject/PrincipalCollection;[Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="173" hits="0" branch="false"/>
<line number="174" hits="0" branch="false"/>
</lines>
</method>
<method name="destroy" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="107" hits="38" branch="false"/>
<line number="108" hits="38" branch="false"/>
<line number="109" hits="38" branch="false"/>
<line number="110" hits="38" branch="false"/>
</lines>
</method>
<method name="getAuthorizer" signature="()Lorg/apache/shiro/authz/Authorizer;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="70" hits="38" branch="false"/>
</lines>
</method>
<method name="hasAllRoles" signature="(Lorg/apache/shiro/subject/PrincipalCollection;Ljava/util/Collection;)Z" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="161" hits="0" branch="false"/>
</lines>
</method>
<method name="hasRole" signature="(Lorg/apache/shiro/subject/PrincipalCollection;Ljava/lang/String;)Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="153" hits="42" branch="false"/>
</lines>
</method>
<method name="hasRoles" signature="(Lorg/apache/shiro/subject/PrincipalCollection;Ljava/util/List;)[Z" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="157" hits="0" branch="false"/>
</lines>
</method>
<method name="isPermitted" signature="(Lorg/apache/shiro/subject/PrincipalCollection;Ljava/lang/String;)Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="113" hits="4" branch="false"/>
</lines>
</method>
<method name="isPermitted" signature="(Lorg/apache/shiro/subject/PrincipalCollection;Ljava/util/List;)[Z" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="125" hits="0" branch="false"/>
</lines>
</method>
<method name="isPermitted" signature="(Lorg/apache/shiro/subject/PrincipalCollection;Lorg/apache/shiro/authz/Permission;)Z" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="117" hits="0" branch="false"/>
</lines>
</method>
<method name="isPermitted" signature="(Lorg/apache/shiro/subject/PrincipalCollection;[Ljava/lang/String;)[Z" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="121" hits="0" branch="false"/>
</lines>
</method>
<method name="isPermittedAll" signature="(Lorg/apache/shiro/subject/PrincipalCollection;Ljava/util/Collection;)Z" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="133" hits="0" branch="false"/>
</lines>
</method>
<method name="isPermittedAll" signature="(Lorg/apache/shiro/subject/PrincipalCollection;[Ljava/lang/String;)Z" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="129" hits="0" branch="false"/>
</lines>
</method>
<method name="setAuthorizer" signature="(Lorg/apache/shiro/authz/Authorizer;)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="83" hits="0" branch="false"/>
<line number="85" hits="0" branch="false"/>
<line number="86" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="59" hits="72" branch="false"/>
<line number="60" hits="72" branch="false"/>
<line number="61" hits="72" branch="false"/>
<line number="70" hits="38" 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="83" hits="0" branch="false"/>
<line number="85" hits="0" branch="false"/>
<line number="86" hits="0" branch="false"/>
<line number="100" hits="64" branch="false"/>
<line number="101" hits="64" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="102" hits="64" branch="false"/>
<line number="104" hits="64" branch="false"/>
<line number="107" hits="38" branch="false"/>
<line number="108" hits="38" branch="false"/>
<line number="109" hits="38" branch="false"/>
<line number="110" hits="38" branch="false"/>
<line number="113" hits="4" branch="false"/>
<line number="117" hits="0" branch="false"/>
<line number="121" hits="0" branch="false"/>
<line number="125" hits="0" branch="false"/>
<line number="129" hits="0" branch="false"/>
<line number="133" 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="142" hits="0" branch="false"/>
<line number="145" hits="0" branch="false"/>
<line number="146" hits="0" branch="false"/>
<line number="149" hits="0" branch="false"/>
<line number="150" hits="0" branch="false"/>
<line number="153" hits="42" branch="false"/>
<line number="157" hits="0" branch="false"/>
<line number="161" hits="0" branch="false"/>
<line number="165" hits="0" branch="false"/>
<line number="166" hits="0" branch="false"/>
<line number="169" hits="0" branch="false"/>
<line number="170" hits="0" branch="false"/>
<line number="173" hits="0" branch="false"/>
<line number="174" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.mgt.CachingSecurityManager" filename="org/apache/shiro/mgt/CachingSecurityManager.java" line-rate="0.9" 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="47" hits="72" branch="false"/>
<line number="48" hits="72" branch="false"/>
</lines>
</method>
<method name="afterCacheManagerSet" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="81" hits="0" branch="false"/>
</lines>
</method>
<method name="destroy" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="87" hits="38" branch="false"/>
<line number="88" hits="38" branch="false"/>
<line number="89" hits="38" branch="false"/>
</lines>
</method>
<method name="getCacheManager" signature="()Lorg/apache/shiro/cache/CacheManager;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="56" hits="182" branch="false"/>
</lines>
</method>
<method name="setCacheManager" signature="(Lorg/apache/shiro/cache/CacheManager;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="71" hits="4" branch="false"/>
<line number="72" hits="4" branch="false"/>
<line number="73" hits="4" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="47" hits="72" branch="false"/>
<line number="48" hits="72" branch="false"/>
<line number="56" hits="182" branch="false"/>
<line number="71" hits="4" branch="false"/>
<line number="72" hits="4" branch="false"/>
<line number="73" hits="4" branch="false"/>
<line number="81" hits="0" branch="false"/>
<line number="87" hits="38" branch="false"/>
<line number="88" hits="38" branch="false"/>
<line number="89" hits="38" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.mgt.DefaultSecurityManager" filename="org/apache/shiro/mgt/DefaultSecurityManager.java" line-rate="0.5895953757225434" branch-rate="0.36666666666666664" complexity="2.3529411764705883">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="73" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="83" hits="72" branch="false"/>
<line number="84" hits="72" branch="false"/>
<line number="85" hits="72" branch="false"/>
<line number="86" hits="72" 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="104" hits="0" branch="false"/>
<line number="105" hits="0" branch="false"/>
<line number="106" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/realm/Realm;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="94" hits="16" branch="false"/>
<line number="95" hits="16" branch="false"/>
<line number="96" hits="16" branch="false"/>
</lines>
</method>
<method name="beforeLogout" signature="(Lorg/apache/shiro/subject/Subject;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="299" hits="18" branch="false"/>
<line number="300" hits="18" branch="false"/>
</lines>
</method>
<method name="bind" signature="(Lorg/apache/shiro/subject/Subject;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="199" hits="0" branch="false"/>
<line number="200" 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="303" hits="92" 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="524" hits="0" branch="false"/>
<line number="525" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="526" hits="0" branch="false"/>
<line number="528" hits="0" branch="false"/>
<line number="529" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="530" hits="0" branch="false"/>
<line number="532" hits="0" branch="false"/>
<line number="533" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="534" hits="0" branch="false"/>
<line number="536" hits="0" branch="false"/>
</lines>
</method>
<method name="createSubject" signature="(Lorg/apache/shiro/authc/AuthenticationToken;Lorg/apache/shiro/authc/AuthenticationInfo;Lorg/apache/shiro/subject/Subject;)Lorg/apache/shiro/subject/Subject;" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="176" hits="34" branch="false"/>
<line number="177" hits="34" branch="false"/>
<line number="178" hits="34" branch="false"/>
<line number="179" hits="34" branch="false"/>
<line number="180" hits="34" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="181" hits="34" branch="false"/>
<line number="183" hits="34" 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="330" hits="92" branch="false"/>
<line number="333" hits="92" branch="false"/>
<line number="338" hits="92" branch="false"/>
<line number="342" hits="92" branch="false"/>
<line number="344" hits="92" branch="false"/>
<line number="350" hits="92" branch="false"/>
<line number="352" hits="92" branch="false"/>
</lines>
</method>
<method name="createSubjectContext" signature="()Lorg/apache/shiro/subject/SubjectContext;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="163" hits="34" branch="false"/>
</lines>
</method>
<method name="delete" signature="(Lorg/apache/shiro/subject/Subject;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="397" hits="18" branch="false"/>
<line number="398" hits="18" branch="false"/>
</lines>
</method>
<method name="doCreateSubject" signature="(Lorg/apache/shiro/subject/SubjectContext;)Lorg/apache/shiro/subject/Subject;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="369" hits="92" branch="false"/>
</lines>
</method>
<method name="ensureSecurityManager" signature="(Lorg/apache/shiro/subject/SubjectContext;)Lorg/apache/shiro/subject/SubjectContext;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="411" hits="92" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="412" hits="84" branch="false"/>
<line number="413" hits="84" branch="false"/>
<line number="415" hits="8" branch="false"/>
<line number="416" hits="8" branch="false"/>
<line number="417" hits="8" branch="false"/>
</lines>
</method>
<method name="getRememberMeManager" signature="()Lorg/apache/shiro/mgt/RememberMeManager;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="155" hits="118" branch="false"/>
</lines>
</method>
<method name="getRememberedIdentity" signature="(Lorg/apache/shiro/subject/SubjectContext;)Lorg/apache/shiro/subject/PrincipalCollection;" line-rate="0.375" branch-rate="0.25">
<lines>
<line number="601" hits="58" branch="false"/>
<line number="602" hits="58" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="604" hits="0" branch="false"/>
<line number="605" hits="0" branch="false"/>
<line number="606" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="607" hits="0" branch="false"/>
<line number="609" hits="0" branch="false"/>
<line number="613" hits="58" branch="false"/>
</lines>
</method>
<method name="getSessionKey" signature="(Lorg/apache/shiro/subject/SubjectContext;)Lorg/apache/shiro/session/mgt/SessionKey;" line-rate="0.75" branch-rate="0.5">
<lines>
<line number="462" hits="92" branch="false"/>
<line number="463" hits="92" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="464" hits="0" branch="false"/>
<line number="466" hits="92" branch="false"/>
</lines>
</method>
<method name="getSubjectDAO" signature="()Lorg/apache/shiro/mgt/SubjectDAO;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="137" hits="0" branch="false"/>
</lines>
</method>
<method name="getSubjectFactory" signature="()Lorg/apache/shiro/mgt/SubjectFactory;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="114" hits="92" branch="false"/>
</lines>
</method>
<method name="login" signature="(Lorg/apache/shiro/subject/Subject;Lorg/apache/shiro/authc/AuthenticationToken;)Lorg/apache/shiro/subject/Subject;" line-rate="0.75" branch-rate="0.0">
<lines>
<line number="270" hits="42" branch="false"/>
<line number="271" hits="8" branch="false"/>
<line number="273" hits="8" branch="false"/>
<line number="274" hits="0" branch="false"/>
<line number="275" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="276" hits="0" branch="false"/>
<line number="279" hits="8" branch="false"/>
<line number="280" hits="8" branch="false"/>
<line number="281" hits="34" branch="false"/>
<line number="283" hits="34" branch="false"/>
<line number="285" hits="34" branch="false"/>
<line number="287" hits="34" branch="false"/>
</lines>
</method>
<method name="logout" signature="(Lorg/apache/shiro/subject/Subject;)V" line-rate="0.5416666666666666" branch-rate="0.42857142857142855">
<lines>
<line number="541" hits="18" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="542" hits="0" branch="false"/>
<line number="545" hits="18" branch="false"/>
<line number="547" hits="18" branch="false"/>
<line number="548" hits="18" 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="549" hits="16" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="550" hits="16" branch="false"/>
<line number="552" hits="16" branch="false"/>
<line number="553" hits="16" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="554" hits="16" branch="false"/>
<line number="559" hits="18" branch="false"/>
<line number="560" hits="0" branch="false"/>
<line number="561" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="562" hits="0" branch="false"/>
<line number="563" hits="0" branch="false"/>
<line number="566" hits="0" branch="false"/>
<line number="567" hits="18" branch="false"/>
<line number="568" hits="0" branch="false"/>
<line number="569" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="570" hits="0" branch="false"/>
<line number="572" hits="0" branch="false"/>
<line number="574" hits="18" branch="false"/>
<line number="575" hits="0" branch="false"/>
<line number="576" hits="18" branch="false"/>
</lines>
</method>
<method name="onFailedLogin" signature="(Lorg/apache/shiro/authc/AuthenticationToken;Lorg/apache/shiro/authc/AuthenticationException;Lorg/apache/shiro/subject/Subject;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="295" hits="8" branch="false"/>
<line number="296" hits="8" branch="false"/>
</lines>
</method>
<method name="onSuccessfulLogin" signature="(Lorg/apache/shiro/authc/AuthenticationToken;Lorg/apache/shiro/authc/AuthenticationInfo;Lorg/apache/shiro/subject/Subject;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="291" hits="34" branch="false"/>
<line number="292" hits="34" branch="false"/>
</lines>
</method>
<method name="rememberMeFailedLogin" signature="(Lorg/apache/shiro/authc/AuthenticationToken;Lorg/apache/shiro/authc/AuthenticationException;Lorg/apache/shiro/subject/Subject;)V" line-rate="0.3333333333333333" branch-rate="0.25">
<lines>
<line number="225" hits="8" branch="false"/>
<line number="226" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="228" hits="0" branch="false"/>
<line number="229" hits="0" branch="false"/>
<line number="230" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="231" hits="0" branch="false"/>
<line number="234" hits="0" branch="false"/>
<line number="236" hits="0" branch="false"/>
<line number="238" hits="8" branch="false"/>
</lines>
</method>
<method name="rememberMeLogout" signature="(Lorg/apache/shiro/subject/Subject;)V" line-rate="0.3" branch-rate="0.16666666666666666">
<lines>
<line number="241" hits="18" branch="false"/>
<line number="242" hits="18" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="244" hits="0" branch="false"/>
<line number="245" hits="0" branch="false"/>
<line number="246" 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="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="250" hits="0" branch="false"/>
<line number="252" hits="0" branch="false"/>
<line number="254" hits="18" branch="false"/>
</lines>
</method>
<method name="rememberMeSuccessfulLogin" signature="(Lorg/apache/shiro/authc/AuthenticationToken;Lorg/apache/shiro/authc/AuthenticationInfo;Lorg/apache/shiro/subject/Subject;)V" line-rate="0.5" branch-rate="0.3333333333333333">
<lines>
<line number="203" hits="34" branch="false"/>
<line number="204" hits="34" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="206" hits="0" 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="212" hits="0" branch="false"/>
<line number="214" hits="0" branch="false"/>
<line number="216" hits="34" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="217" hits="68" branch="false"/>
<line number="218" hits="34" branch="false"/>
<line number="222" hits="34" branch="false"/>
</lines>
</method>
<method name="resolveContextSession" signature="(Lorg/apache/shiro/subject/SubjectContext;)Lorg/apache/shiro/session/Session;" line-rate="0.75" branch-rate="0.5">
<lines>
<line number="454" hits="92" branch="false"/>
<line number="455" hits="92" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="456" hits="0" branch="false"/>
<line number="458" hits="92" branch="false"/>
</lines>
</method>
<method name="resolvePrincipals" signature="(Lorg/apache/shiro/subject/SubjectContext;)Lorg/apache/shiro/subject/SubjectContext;" line-rate="0.7777777777777778" branch-rate="0.75">
<lines>
<line number="487" hits="92" branch="false"/>
<line number="489" hits="92" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="490" hits="58" branch="false"/>
<line number="492" hits="58" branch="false"/>
<line number="494" hits="58" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="495" hits="0" branch="false"/>
<line number="498" hits="0" branch="false"/>
<line number="516" hits="58" branch="false"/>
<line number="520" hits="92" branch="false"/>
</lines>
</method>
<method name="resolveSession" signature="(Lorg/apache/shiro/subject/SubjectContext;)Lorg/apache/shiro/subject/SubjectContext;" line-rate="0.5" branch-rate="0.5">
<lines>
<line number="435" hits="92" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="436" hits="0" branch="false"/>
<line number="437" hits="0" branch="false"/>
<line number="442" hits="92" branch="false"/>
<line number="443" hits="92" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="444" hits="0" branch="false"/>
<line number="446" hits="0" branch="false"/>
<line number="447" hits="0" branch="false"/>
<line number="449" hits="92" branch="false"/>
<line number="450" hits="92" branch="false"/>
</lines>
</method>
<method name="save" signature="(Lorg/apache/shiro/subject/Subject;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="383" hits="92" branch="false"/>
<line number="384" hits="92" branch="false"/>
</lines>
</method>
<method name="setRememberMeManager" signature="(Lorg/apache/shiro/mgt/RememberMeManager;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="159" hits="0" branch="false"/>
<line number="160" hits="0" 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="151" hits="0" branch="false"/>
<line number="152" hits="0" branch="false"/>
</lines>
</method>
<method name="setSubjectFactory" signature="(Lorg/apache/shiro/mgt/SubjectFactory;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="123" hits="0" branch="false"/>
<line number="124" hits="0" branch="false"/>
</lines>
</method>
<method name="stopSession" signature="(Lorg/apache/shiro/subject/Subject;)V" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="579" hits="18" branch="false"/>
<line number="580" hits="18" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="581" hits="18" branch="false"/>
<line number="583" hits="18" branch="false"/>
</lines>
</method>
<method name="unbind" signature="(Lorg/apache/shiro/subject/Subject;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="597" hits="0" branch="false"/>
<line number="598" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="73" hits="2" branch="false"/>
<line number="83" hits="72" branch="false"/>
<line number="84" hits="72" branch="false"/>
<line number="85" hits="72" branch="false"/>
<line number="86" hits="72" branch="false"/>
<line number="94" hits="16" branch="false"/>
<line number="95" hits="16" branch="false"/>
<line number="96" hits="16" 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="114" hits="92" branch="false"/>
<line number="123" hits="0" branch="false"/>
<line number="124" hits="0" branch="false"/>
<line number="137" hits="0" branch="false"/>
<line number="151" hits="0" branch="false"/>
<line number="152" hits="0" branch="false"/>
<line number="155" hits="118" branch="false"/>
<line number="159" hits="0" branch="false"/>
<line number="160" hits="0" branch="false"/>
<line number="163" hits="34" branch="false"/>
<line number="176" hits="34" branch="false"/>
<line number="177" hits="34" branch="false"/>
<line number="178" hits="34" branch="false"/>
<line number="179" hits="34" branch="false"/>
<line number="180" hits="34" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="181" hits="34" branch="false"/>
<line number="183" hits="34" branch="false"/>
<line number="199" hits="0" branch="false"/>
<line number="200" hits="0" branch="false"/>
<line number="203" hits="34" branch="false"/>
<line number="204" hits="34" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="206" hits="0" 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="212" hits="0" branch="false"/>
<line number="214" hits="0" branch="false"/>
<line number="216" hits="34" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="217" hits="68" branch="false"/>
<line number="218" hits="34" branch="false"/>
<line number="222" hits="34" branch="false"/>
<line number="225" hits="8" branch="false"/>
<line number="226" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="228" hits="0" branch="false"/>
<line number="229" hits="0" branch="false"/>
<line number="230" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="231" hits="0" branch="false"/>
<line number="234" hits="0" branch="false"/>
<line number="236" hits="0" branch="false"/>
<line number="238" hits="8" branch="false"/>
<line number="241" hits="18" branch="false"/>
<line number="242" hits="18" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="244" hits="0" branch="false"/>
<line number="245" hits="0" branch="false"/>
<line number="246" 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="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="250" hits="0" branch="false"/>
<line number="252" hits="0" branch="false"/>
<line number="254" hits="18" branch="false"/>
<line number="270" hits="42" branch="false"/>
<line number="271" hits="8" branch="false"/>
<line number="273" hits="8" branch="false"/>
<line number="274" hits="0" branch="false"/>
<line number="275" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="276" hits="0" branch="false"/>
<line number="279" hits="8" branch="false"/>
<line number="280" hits="8" branch="false"/>
<line number="281" hits="34" branch="false"/>
<line number="283" hits="34" branch="false"/>
<line number="285" hits="34" branch="false"/>
<line number="287" hits="34" branch="false"/>
<line number="291" hits="34" branch="false"/>
<line number="292" hits="34" branch="false"/>
<line number="295" hits="8" branch="false"/>
<line number="296" hits="8" branch="false"/>
<line number="299" hits="18" branch="false"/>
<line number="300" hits="18" branch="false"/>
<line number="303" hits="92" branch="false"/>
<line number="330" hits="92" branch="false"/>
<line number="333" hits="92" branch="false"/>
<line number="338" hits="92" branch="false"/>
<line number="342" hits="92" branch="false"/>
<line number="344" hits="92" branch="false"/>
<line number="350" hits="92" branch="false"/>
<line number="352" hits="92" branch="false"/>
<line number="369" hits="92" branch="false"/>
<line number="383" hits="92" branch="false"/>
<line number="384" hits="92" branch="false"/>
<line number="397" hits="18" branch="false"/>
<line number="398" hits="18" branch="false"/>
<line number="411" hits="92" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="412" hits="84" branch="false"/>
<line number="413" hits="84" branch="false"/>
<line number="415" hits="8" branch="false"/>
<line number="416" hits="8" branch="false"/>
<line number="417" hits="8" branch="false"/>
<line number="435" hits="92" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="436" hits="0" branch="false"/>
<line number="437" hits="0" branch="false"/>
<line number="442" hits="92" branch="false"/>
<line number="443" hits="92" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="444" hits="0" branch="false"/>
<line number="446" hits="0" branch="false"/>
<line number="447" hits="0" branch="false"/>
<line number="449" hits="92" branch="false"/>
<line number="450" hits="92" branch="false"/>
<line number="454" hits="92" branch="false"/>
<line number="455" hits="92" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="456" hits="0" branch="false"/>
<line number="458" hits="92" branch="false"/>
<line number="462" hits="92" branch="false"/>
<line number="463" hits="92" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="464" hits="0" branch="false"/>
<line number="466" hits="92" branch="false"/>
<line number="487" hits="92" branch="false"/>
<line number="489" hits="92" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="490" hits="58" branch="false"/>
<line number="492" hits="58" branch="false"/>
<line number="494" hits="58" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="495" hits="0" branch="false"/>
<line number="498" hits="0" branch="false"/>
<line number="516" hits="58" branch="false"/>
<line number="520" hits="92" branch="false"/>
<line number="524" hits="0" branch="false"/>
<line number="525" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="526" hits="0" branch="false"/>
<line number="528" hits="0" branch="false"/>
<line number="529" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="530" hits="0" branch="false"/>
<line number="532" hits="0" branch="false"/>
<line number="533" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="534" hits="0" branch="false"/>
<line number="536" hits="0" branch="false"/>
<line number="541" hits="18" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="542" hits="0" branch="false"/>
<line number="545" hits="18" branch="false"/>
<line number="547" hits="18" branch="false"/>
<line number="548" hits="18" 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="549" hits="16" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="550" hits="16" branch="false"/>
<line number="552" hits="16" branch="false"/>
<line number="553" hits="16" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="554" hits="16" branch="false"/>
<line number="559" hits="18" branch="false"/>
<line number="560" hits="0" branch="false"/>
<line number="561" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="562" hits="0" branch="false"/>
<line number="563" hits="0" branch="false"/>
<line number="566" hits="0" branch="false"/>
<line number="567" hits="18" branch="false"/>
<line number="568" hits="0" branch="false"/>
<line number="569" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="570" hits="0" branch="false"/>
<line number="572" hits="0" branch="false"/>
<line number="574" hits="18" branch="false"/>
<line number="575" hits="0" branch="false"/>
<line number="576" hits="18" branch="false"/>
<line number="579" hits="18" branch="false"/>
<line number="580" hits="18" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="581" hits="18" branch="false"/>
<line number="583" hits="18" branch="false"/>
<line number="597" hits="0" branch="false"/>
<line number="598" hits="0" branch="false"/>
<line number="601" hits="58" branch="false"/>
<line number="602" hits="58" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="604" hits="0" branch="false"/>
<line number="605" hits="0" branch="false"/>
<line number="606" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="607" hits="0" branch="false"/>
<line number="609" hits="0" branch="false"/>
<line number="613" hits="58" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.mgt.DefaultSessionStorageEvaluator" filename="org/apache/shiro/mgt/DefaultSessionStorageEvaluator.java" line-rate="1.0" branch-rate="0.8333333333333334" complexity="1.6666666666666667">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="30" hits="108" branch="false"/>
<line number="36" hits="108" branch="false"/>
</lines>
</method>
<method name="isSessionStorageEnabled" signature="()Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="79" hits="100" branch="false"/>
</lines>
</method>
<method name="isSessionStorageEnabled" signature="(Lorg/apache/shiro/subject/Subject;)Z" line-rate="1.0" branch-rate="0.8333333333333334">
<lines>
<line number="63" hits="100" branch="true" condition-coverage="83% (5/6)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="50%"/>
<condition number="2" type="jump" coverage="100%"/>
</conditions>
</line>
</lines>
</method>
<method name="setSessionStorageEnabled" signature="(Z)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="94" hits="2" branch="false"/>
<line number="95" hits="2" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="30" hits="108" branch="false"/>
<line number="36" hits="108" branch="false"/>
<line number="63" hits="100" branch="true" condition-coverage="83% (5/6)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="50%"/>
<condition number="2" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="79" hits="100" branch="false"/>
<line number="94" hits="2" branch="false"/>
<line number="95" hits="2" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.mgt.DefaultSubjectDAO" filename="org/apache/shiro/mgt/DefaultSubjectDAO.java" line-rate="0.9649122807017544" branch-rate="0.8823529411764706" complexity="2.9">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="84" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="91" hits="108" branch="false"/>
<line number="93" hits="108" branch="false"/>
<line number="94" hits="108" branch="false"/>
</lines>
</method>
<method name="delete" signature="(Lorg/apache/shiro/subject/Subject;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="281" hits="22" branch="false"/>
<line number="282" hits="22" branch="false"/>
</lines>
</method>
<method name="getSessionStorageEvaluator" signature="()Lorg/apache/shiro/mgt/SessionStorageEvaluator;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="120" hits="106" branch="false"/>
</lines>
</method>
<method name="isSessionStorageEnabled" signature="(Lorg/apache/shiro/subject/Subject;)Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="108" hits="102" branch="false"/>
</lines>
</method>
<method name="mergeAuthenticationState" signature="(Lorg/apache/shiro/subject/Subject;)V" line-rate="1.0" branch-rate="0.9166666666666666">
<lines>
<line number="235" hits="104" branch="false"/>
<line number="237" hits="104" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="238" hits="62" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="239" hits="2" branch="false"/>
<line number="240" hits="2" branch="false"/>
<line number="244" hits="42" branch="false"/>
<line number="246" hits="42" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="247" hits="38" 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="248" hits="38" 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="254" hits="2" branch="false"/>
<line number="259" hits="104" branch="false"/>
</lines>
</method>
<method name="mergePrincipals" signature="(Lorg/apache/shiro/subject/Subject;)V" line-rate="0.9130434782608695" branch-rate="0.8333333333333334">
<lines>
<line number="180" hits="106" branch="false"/>
<line number="187" hits="106" 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="189" hits="2" branch="false"/>
<line number="190" hits="2" branch="false"/>
<line number="191" hits="2" branch="false"/>
<line number="192" hits="0" branch="false"/>
<line number="193" hits="0" branch="false"/>
<line number="194" hits="2" branch="false"/>
<line number="196" hits="106" 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="197" hits="104" branch="false"/>
<line number="200" hits="106" branch="false"/>
<line number="202" hits="106" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="203" hits="96" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="204" hits="36" branch="false"/>
<line number="205" hits="36" branch="false"/>
<line number="209" hits="10" branch="false"/>
<line number="210" hits="10" branch="false"/>
<line number="212" hits="10" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<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="218" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="219" hits="6" branch="false"/>
<line number="224" hits="106" branch="false"/>
</lines>
</method>
<method name="removeFromSession" signature="(Lorg/apache/shiro/subject/Subject;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="268" hits="22" branch="false"/>
<line number="269" hits="22" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="270" hits="20" branch="false"/>
<line number="271" hits="20" branch="false"/>
<line number="273" hits="22" branch="false"/>
</lines>
</method>
<method name="save" signature="(Lorg/apache/shiro/subject/Subject;)Lorg/apache/shiro/subject/Subject;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="146" hits="96" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="147" hits="94" branch="false"/>
<line number="149" hits="2" branch="false"/>
<line number="153" hits="96" branch="false"/>
</lines>
</method>
<method name="saveToSession" signature="(Lorg/apache/shiro/subject/Subject;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="166" hits="94" branch="false"/>
<line number="167" hits="94" branch="false"/>
<line number="168" hits="94" branch="false"/>
</lines>
</method>
<method name="setSessionStorageEvaluator" signature="(Lorg/apache/shiro/mgt/SessionStorageEvaluator;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="132" hits="2" branch="false"/>
<line number="133" hits="2" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="84" hits="2" branch="false"/>
<line number="91" hits="108" branch="false"/>
<line number="93" hits="108" branch="false"/>
<line number="94" hits="108" branch="false"/>
<line number="108" hits="102" branch="false"/>
<line number="120" hits="106" branch="false"/>
<line number="132" hits="2" branch="false"/>
<line number="133" hits="2" branch="false"/>
<line number="146" hits="96" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="147" hits="94" branch="false"/>
<line number="149" hits="2" branch="false"/>
<line number="153" hits="96" branch="false"/>
<line number="166" hits="94" branch="false"/>
<line number="167" hits="94" branch="false"/>
<line number="168" hits="94" branch="false"/>
<line number="180" hits="106" branch="false"/>
<line number="187" hits="106" 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="189" hits="2" branch="false"/>
<line number="190" hits="2" branch="false"/>
<line number="191" hits="2" branch="false"/>
<line number="192" hits="0" branch="false"/>
<line number="193" hits="0" branch="false"/>
<line number="194" hits="2" branch="false"/>
<line number="196" hits="106" 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="197" hits="104" branch="false"/>
<line number="200" hits="106" branch="false"/>
<line number="202" hits="106" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="203" hits="96" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="204" hits="36" branch="false"/>
<line number="205" hits="36" branch="false"/>
<line number="209" hits="10" branch="false"/>
<line number="210" hits="10" branch="false"/>
<line number="212" hits="10" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<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="218" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="219" hits="6" branch="false"/>
<line number="224" hits="106" branch="false"/>
<line number="235" hits="104" branch="false"/>
<line number="237" hits="104" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="238" hits="62" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="239" hits="2" branch="false"/>
<line number="240" hits="2" branch="false"/>
<line number="244" hits="42" branch="false"/>
<line number="246" hits="42" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="247" hits="38" 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="248" hits="38" 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="254" hits="2" branch="false"/>
<line number="259" hits="104" branch="false"/>
<line number="268" hits="22" branch="false"/>
<line number="269" hits="22" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="270" hits="20" branch="false"/>
<line number="271" hits="20" branch="false"/>
<line number="273" hits="22" branch="false"/>
<line number="281" hits="22" branch="false"/>
<line number="282" hits="22" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.mgt.DefaultSubjectFactory" filename="org/apache/shiro/mgt/DefaultSubjectFactory.java" line-rate="0.9" 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="36" hits="72" branch="false"/>
<line number="37" hits="72" 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="40" hits="92" branch="false"/>
<line number="41" hits="92" branch="false"/>
<line number="42" hits="92" branch="false"/>
<line number="43" hits="92" branch="false"/>
<line number="44" hits="92" branch="false"/>
<line number="45" hits="92" branch="false"/>
<line number="47" hits="92" branch="false"/>
</lines>
</method>
<method name="newSubjectInstance" signature="(Lorg/apache/shiro/subject/PrincipalCollection;ZLjava/lang/String;Lorg/apache/shiro/session/Session;Lorg/apache/shiro/mgt/SecurityManager;)Lorg/apache/shiro/subject/Subject;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="57" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="36" hits="72" branch="false"/>
<line number="37" hits="72" branch="false"/>
<line number="40" hits="92" branch="false"/>
<line number="41" hits="92" branch="false"/>
<line number="42" hits="92" branch="false"/>
<line number="43" hits="92" branch="false"/>
<line number="44" hits="92" branch="false"/>
<line number="45" hits="92" branch="false"/>
<line number="47" hits="92" branch="false"/>
<line number="57" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.mgt.RealmSecurityManager" filename="org/apache/shiro/mgt/RealmSecurityManager.java" line-rate="0.90625" branch-rate="0.6875" complexity="2.375">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="48" hits="72" branch="false"/>
<line number="49" hits="72" branch="false"/>
</lines>
</method>
<method name="afterCacheManagerSet" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="127" hits="4" branch="false"/>
<line number="128" hits="4" branch="false"/>
</lines>
</method>
<method name="afterRealmsSet" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="85" hits="64" branch="false"/>
<line number="86" hits="64" branch="false"/>
</lines>
</method>
<method name="applyCacheManagerToRealms" signature="()V" line-rate="1.0" branch-rate="0.8">
<lines>
<line number="110" hits="68" branch="false"/>
<line number="111" hits="68" branch="false"/>
<line number="112" hits="68" 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="113" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="114" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="115" hits="4" branch="false"/>
<line number="117" hits="4" branch="false"/>
<line number="119" hits="68" branch="false"/>
</lines>
</method>
<method name="destroy" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="131" hits="38" branch="false"/>
<line number="132" hits="38" branch="false"/>
<line number="133" hits="38" branch="false"/>
<line number="134" hits="38" branch="false"/>
</lines>
</method>
<method name="getRealms" signature="()Ljava/util/Collection;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="94" hits="306" branch="false"/>
</lines>
</method>
<method name="setRealm" signature="(Lorg/apache/shiro/realm/Realm;)V" line-rate="0.8333333333333334" branch-rate="0.5">
<lines>
<line number="59" hits="24" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="60" hits="0" branch="false"/>
<line number="62" hits="24" branch="false"/>
<line number="63" hits="24" branch="false"/>
<line number="64" hits="24" branch="false"/>
<line number="65" hits="24" branch="false"/>
</lines>
</method>
<method name="setRealms" signature="(Ljava/util/Collection;)V" line-rate="0.7142857142857143" branch-rate="0.5">
<lines>
<line number="74" hits="64" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="75" hits="0" branch="false"/>
<line number="77" hits="64" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="78" hits="0" branch="false"/>
<line number="80" hits="64" branch="false"/>
<line number="81" hits="64" branch="false"/>
<line number="82" hits="64" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="48" hits="72" branch="false"/>
<line number="49" hits="72" branch="false"/>
<line number="59" hits="24" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="60" hits="0" branch="false"/>
<line number="62" hits="24" branch="false"/>
<line number="63" hits="24" branch="false"/>
<line number="64" hits="24" branch="false"/>
<line number="65" hits="24" branch="false"/>
<line number="74" hits="64" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="75" hits="0" branch="false"/>
<line number="77" hits="64" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="78" hits="0" branch="false"/>
<line number="80" hits="64" branch="false"/>
<line number="81" hits="64" branch="false"/>
<line number="82" hits="64" branch="false"/>
<line number="85" hits="64" branch="false"/>
<line number="86" hits="64" branch="false"/>
<line number="94" hits="306" branch="false"/>
<line number="110" hits="68" branch="false"/>
<line number="111" hits="68" branch="false"/>
<line number="112" hits="68" 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="113" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="114" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="115" hits="4" branch="false"/>
<line number="117" hits="4" branch="false"/>
<line number="119" hits="68" branch="false"/>
<line number="127" hits="4" branch="false"/>
<line number="128" hits="4" branch="false"/>
<line number="131" hits="38" branch="false"/>
<line number="132" hits="38" branch="false"/>
<line number="133" hits="38" branch="false"/>
<line number="134" hits="38" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.mgt.RememberMeManager" filename="org/apache/shiro/mgt/RememberMeManager.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.mgt.SecurityManager" filename="org/apache/shiro/mgt/SecurityManager.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.mgt.SessionStorageEvaluator" filename="org/apache/shiro/mgt/SessionStorageEvaluator.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.mgt.SessionsSecurityManager" filename="org/apache/shiro/mgt/SessionsSecurityManager.java" line-rate="0.7272727272727273" branch-rate="0.5" complexity="1.1111111111111112">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="60" hits="72" branch="false"/>
<line number="61" hits="72" branch="false"/>
<line number="62" hits="72" branch="false"/>
<line number="63" hits="72" branch="false"/>
</lines>
</method>
<method name="afterCacheManagerSet" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="103" hits="4" branch="false"/>
<line number="104" hits="4" branch="false"/>
<line number="105" hits="4" branch="false"/>
</lines>
</method>
<method name="afterSessionManagerSet" 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="applyCacheManagerToSessionManager" signature="()V" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="115" hits="76" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="116" hits="76" branch="false"/>
<line number="118" hits="76" branch="false"/>
</lines>
</method>
<method name="destroy" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="129" hits="38" branch="false"/>
<line number="130" hits="38" branch="false"/>
<line number="131" hits="38" branch="false"/>
<line number="132" hits="38" branch="false"/>
</lines>
</method>
<method name="getSession" signature="(Lorg/apache/shiro/session/mgt/SessionKey;)Lorg/apache/shiro/session/Session;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="125" hits="0" branch="false"/>
</lines>
</method>
<method name="getSessionManager" signature="()Lorg/apache/shiro/session/mgt/SessionManager;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="94" hits="224" branch="false"/>
</lines>
</method>
<method name="setSessionManager" signature="(Lorg/apache/shiro/session/mgt/SessionManager;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="79" hits="0" branch="false"/>
<line number="80" hits="0" branch="false"/>
<line number="81" 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="121" hits="40" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="60" hits="72" branch="false"/>
<line number="61" hits="72" branch="false"/>
<line number="62" hits="72" branch="false"/>
<line number="63" hits="72" 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="84" hits="0" branch="false"/>
<line number="85" hits="0" branch="false"/>
<line number="94" hits="224" branch="false"/>
<line number="103" hits="4" branch="false"/>
<line number="104" hits="4" branch="false"/>
<line number="105" hits="4" branch="false"/>
<line number="115" hits="76" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="116" hits="76" branch="false"/>
<line number="118" hits="76" branch="false"/>
<line number="121" hits="40" branch="false"/>
<line number="125" hits="0" branch="false"/>
<line number="129" hits="38" branch="false"/>
<line number="130" hits="38" branch="false"/>
<line number="131" hits="38" branch="false"/>
<line number="132" hits="38" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.mgt.SubjectDAO" filename="org/apache/shiro/mgt/SubjectDAO.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.mgt.SubjectFactory" filename="org/apache/shiro/mgt/SubjectFactory.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.realm" line-rate="0.8253968253968254" branch-rate="0.6363636363636364" complexity="2.1379310344827585">
<classes>
<class name="org.apache.shiro.realm.AuthenticatingRealm" filename="org/apache/shiro/realm/AuthenticatingRealm.java" line-rate="1.0" branch-rate="0.75" complexity="1.935483870967742">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="114" hits="2" branch="false"/>
<line number="116" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="147" hits="160" branch="false"/>
<line number="148" hits="160" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/authc/credential/CredentialsMatcher;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="155" hits="2" branch="false"/>
<line number="156" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/cache/CacheManager;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="151" hits="2" branch="false"/>
<line number="152" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/cache/CacheManager;Lorg/apache/shiro/authc/credential/CredentialsMatcher;)V" line-rate="1.0" branch-rate="0.8333333333333334">
<lines>
<line number="158" hits="164" branch="false"/>
<line number="159" hits="164" branch="false"/>
<line number="163" hits="164" branch="false"/>
<line number="165" hits="164" branch="false"/>
<line number="166" hits="164" branch="false"/>
<line number="167" hits="164" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="168" hits="162" branch="false"/>
<line number="171" hits="164" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="172" hits="2" branch="false"/>
<line number="174" hits="164" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="175" hits="164" branch="false"/>
<line number="177" hits="164" branch="false"/>
</lines>
</method>
<method name="afterCacheManagerSet" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="414" hits="12" branch="false"/>
<line number="415" hits="12" branch="false"/>
</lines>
</method>
<method name="assertCredentialsMatch" signature="(Lorg/apache/shiro/authc/AuthenticationToken;Lorg/apache/shiro/authc/AuthenticationInfo;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="595" hits="60" branch="false"/>
<line number="596" hits="60" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="597" hits="58" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="599" hits="8" branch="false"/>
<line number="600" hits="8" branch="false"/>
<line number="603" hits="2" branch="false"/>
<line number="605" hits="2" branch="false"/>
<line number="607" hits="50" branch="false"/>
</lines>
</method>
<method name="cacheAuthenticationInfoIfPossible" signature="(Lorg/apache/shiro/authc/AuthenticationToken;Lorg/apache/shiro/authc/AuthenticationInfo;)V" line-rate="1.0" branch-rate="0.75">
<lines>
<line number="506" hits="52" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="507" hits="48" branch="false"/>
<line number="509" hits="48" branch="false"/>
<line number="512" hits="4" branch="false"/>
<line number="513" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="514" hits="4" branch="false"/>
<line number="515" hits="4" branch="false"/>
<line number="516" hits="4" branch="false"/>
<line number="518" hits="4" branch="false"/>
</lines>
</method>
<method name="clearCachedAuthenticationInfo" signature="(Lorg/apache/shiro/subject/PrincipalCollection;)V" line-rate="1.0" branch-rate="0.75">
<lines>
<line number="680" hits="18" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="681" hits="18" branch="false"/>
<line number="683" hits="18" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="684" hits="2" branch="false"/>
<line number="685" hits="2" branch="false"/>
<line number="688" hits="18" branch="false"/>
</lines>
</method>
<method name="doClearCache" signature="(Lorg/apache/shiro/subject/PrincipalCollection;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="655" hits="18" branch="false"/>
<line number="656" hits="18" branch="false"/>
<line number="657" hits="18" branch="false"/>
</lines>
</method>
<method name="getAuthenticationCache" signature="()Lorg/apache/shiro/cache/Cache;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="270" hits="150" branch="false"/>
</lines>
</method>
<method name="getAuthenticationCacheKey" signature="(Lorg/apache/shiro/authc/AuthenticationToken;)Ljava/lang/Object;" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="624" hits="12" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
</lines>
</method>
<method name="getAuthenticationCacheKey" signature="(Lorg/apache/shiro/subject/PrincipalCollection;)Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="642" hits="2" branch="false"/>
</lines>
</method>
<method name="getAuthenticationCacheLazy" signature="()Lorg/apache/shiro/cache/Cache;" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="453" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="455" hits="8" branch="false"/>
<line number="457" hits="8" branch="false"/>
<line number="459" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="460" hits="8" branch="false"/>
<line number="461" hits="8" branch="false"/>
<line number="462" hits="8" branch="false"/>
<line number="466" hits="8" branch="false"/>
</lines>
</method>
<method name="getAuthenticationCacheName" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="289" hits="12" branch="false"/>
</lines>
</method>
<method name="getAuthenticationInfo" signature="(Lorg/apache/shiro/authc/AuthenticationToken;)Lorg/apache/shiro/authc/AuthenticationInfo;" line-rate="1.0" branch-rate="0.875">
<lines>
<line number="565" hits="64" branch="false"/>
<line number="566" hits="64" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="568" hits="60" branch="false"/>
<line number="569" hits="54" branch="false"/>
<line number="570" hits="54" 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="571" hits="52" branch="false"/>
<line number="574" hits="4" branch="false"/>
<line number="577" hits="58" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="578" hits="56" branch="false"/>
<line number="580" hits="2" branch="false"/>
<line number="583" hits="52" branch="false"/>
</lines>
</method>
<method name="getAuthenticationTokenClass" signature="()Ljava/lang/Class;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="226" hits="48" branch="false"/>
</lines>
</method>
<method name="getAvailableAuthenticationCache" signature="()Lorg/apache/shiro/cache/Cache;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="435" hits="148" branch="false"/>
<line number="436" hits="148" branch="false"/>
<line number="437" hits="148" 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="438" hits="8" branch="false"/>
<line number="440" hits="148" branch="false"/>
</lines>
</method>
<method name="getCachedAuthenticationInfo" signature="(Lorg/apache/shiro/authc/AuthenticationToken;)Lorg/apache/shiro/authc/AuthenticationInfo;" line-rate="1.0" branch-rate="0.8333333333333334">
<lines>
<line number="479" hits="64" branch="false"/>
<line number="481" hits="64" branch="false"/>
<line number="482" hits="64" 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="483" hits="8" branch="false"/>
<line number="484" hits="8" branch="false"/>
<line number="485" hits="8" branch="false"/>
<line number="486" hits="8" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="487" hits="4" branch="false"/>
<line number="489" hits="4" branch="false"/>
<line number="493" hits="64" branch="false"/>
</lines>
</method>
<method name="getCredentialsMatcher" signature="()Lorg/apache/shiro/authc/credential/CredentialsMatcher;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="194" hits="64" branch="false"/>
</lines>
</method>
<method name="init" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="394" hits="50" branch="false"/>
<line number="395" hits="50" branch="false"/>
<line number="396" hits="48" branch="false"/>
</lines>
</method>
<method name="isAuthenticationCachingEnabled" signature="()Z" line-rate="1.0" branch-rate="0.75">
<lines>
<line number="318" hits="200" 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="isAuthenticationCachingEnabled" signature="(Lorg/apache/shiro/authc/AuthenticationToken;Lorg/apache/shiro/authc/AuthenticationInfo;)Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="536" hits="52" branch="false"/>
</lines>
</method>
<method name="onInit" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="405" hits="60" branch="false"/>
</lines>
</method>
<method name="setAuthenticationCache" signature="(Lorg/apache/shiro/cache/Cache;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="256" hits="2" branch="false"/>
<line number="257" hits="2" branch="false"/>
</lines>
</method>
<method name="setAuthenticationCacheName" signature="(Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="306" hits="2" branch="false"/>
<line number="307" hits="2" branch="false"/>
</lines>
</method>
<method name="setAuthenticationCachingEnabled" signature="(Z)V" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="334" hits="8" branch="false"/>
<line number="335" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="336" hits="8" branch="false"/>
<line number="338" hits="8" branch="false"/>
</lines>
</method>
<method name="setAuthenticationTokenClass" signature="(Ljava/lang/Class;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="239" hits="28" branch="false"/>
<line number="240" hits="28" branch="false"/>
</lines>
</method>
<method name="setCredentialsMatcher" signature="(Lorg/apache/shiro/authc/credential/CredentialsMatcher;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="208" hits="232" branch="false"/>
<line number="209" hits="232" branch="false"/>
</lines>
</method>
<method name="setName" signature="(Ljava/lang/String;)V" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="341" hits="46" branch="false"/>
<line number="342" hits="46" branch="false"/>
<line number="343" hits="46" 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="346" hits="46" branch="false"/>
<line number="348" hits="46" branch="false"/>
</lines>
</method>
<method name="supports" signature="(Lorg/apache/shiro/authc/AuthenticationToken;)Z" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="366" hits="46" 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="114" hits="2" branch="false"/>
<line number="116" hits="2" branch="false"/>
<line number="147" hits="160" branch="false"/>
<line number="148" hits="160" branch="false"/>
<line number="151" hits="2" branch="false"/>
<line number="152" hits="2" branch="false"/>
<line number="155" hits="2" branch="false"/>
<line number="156" hits="2" branch="false"/>
<line number="158" hits="164" branch="false"/>
<line number="159" hits="164" branch="false"/>
<line number="163" hits="164" branch="false"/>
<line number="165" hits="164" branch="false"/>
<line number="166" hits="164" branch="false"/>
<line number="167" hits="164" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="168" hits="162" branch="false"/>
<line number="171" hits="164" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="172" hits="2" branch="false"/>
<line number="174" hits="164" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="175" hits="164" branch="false"/>
<line number="177" hits="164" branch="false"/>
<line number="194" hits="64" branch="false"/>
<line number="208" hits="232" branch="false"/>
<line number="209" hits="232" branch="false"/>
<line number="226" hits="48" branch="false"/>
<line number="239" hits="28" branch="false"/>
<line number="240" hits="28" branch="false"/>
<line number="256" hits="2" branch="false"/>
<line number="257" hits="2" branch="false"/>
<line number="270" hits="150" branch="false"/>
<line number="289" hits="12" branch="false"/>
<line number="306" hits="2" branch="false"/>
<line number="307" hits="2" branch="false"/>
<line number="318" hits="200" 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="334" hits="8" branch="false"/>
<line number="335" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="336" hits="8" branch="false"/>
<line number="338" hits="8" branch="false"/>
<line number="341" hits="46" branch="false"/>
<line number="342" hits="46" branch="false"/>
<line number="343" hits="46" 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="346" hits="46" branch="false"/>
<line number="348" hits="46" branch="false"/>
<line number="366" hits="46" 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="394" hits="50" branch="false"/>
<line number="395" hits="50" branch="false"/>
<line number="396" hits="48" branch="false"/>
<line number="405" hits="60" branch="false"/>
<line number="414" hits="12" branch="false"/>
<line number="415" hits="12" branch="false"/>
<line number="435" hits="148" branch="false"/>
<line number="436" hits="148" branch="false"/>
<line number="437" hits="148" 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="438" hits="8" branch="false"/>
<line number="440" hits="148" branch="false"/>
<line number="453" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="455" hits="8" branch="false"/>
<line number="457" hits="8" branch="false"/>
<line number="459" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="460" hits="8" branch="false"/>
<line number="461" hits="8" branch="false"/>
<line number="462" hits="8" branch="false"/>
<line number="466" hits="8" branch="false"/>
<line number="479" hits="64" branch="false"/>
<line number="481" hits="64" branch="false"/>
<line number="482" hits="64" 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="483" hits="8" branch="false"/>
<line number="484" hits="8" branch="false"/>
<line number="485" hits="8" branch="false"/>
<line number="486" hits="8" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="487" hits="4" branch="false"/>
<line number="489" hits="4" branch="false"/>
<line number="493" hits="64" branch="false"/>
<line number="506" hits="52" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="507" hits="48" branch="false"/>
<line number="509" hits="48" branch="false"/>
<line number="512" hits="4" branch="false"/>
<line number="513" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="514" hits="4" branch="false"/>
<line number="515" hits="4" branch="false"/>
<line number="516" hits="4" branch="false"/>
<line number="518" hits="4" branch="false"/>
<line number="536" hits="52" branch="false"/>
<line number="565" hits="64" branch="false"/>
<line number="566" hits="64" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="568" hits="60" branch="false"/>
<line number="569" hits="54" branch="false"/>
<line number="570" hits="54" 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="571" hits="52" branch="false"/>
<line number="574" hits="4" branch="false"/>
<line number="577" hits="58" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="578" hits="56" branch="false"/>
<line number="580" hits="2" branch="false"/>
<line number="583" hits="52" branch="false"/>
<line number="595" hits="60" branch="false"/>
<line number="596" hits="60" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="597" hits="58" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="599" hits="8" branch="false"/>
<line number="600" hits="8" branch="false"/>
<line number="603" hits="2" branch="false"/>
<line number="605" hits="2" branch="false"/>
<line number="607" hits="50" branch="false"/>
<line number="624" hits="12" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="642" hits="2" branch="false"/>
<line number="655" hits="18" branch="false"/>
<line number="656" hits="18" branch="false"/>
<line number="657" hits="18" branch="false"/>
<line number="680" hits="18" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="681" hits="18" branch="false"/>
<line number="683" hits="18" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="684" hits="2" branch="false"/>
<line number="685" hits="2" branch="false"/>
<line number="688" hits="18" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.realm.AuthorizingRealm" filename="org/apache/shiro/realm/AuthorizingRealm.java" line-rate="0.7721518987341772" branch-rate="0.6234567901234568" complexity="2.641509433962264">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="63" hits="2" branch="false"/>
<line number="70" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="91" hits="136" branch="false"/>
<line number="92" hits="136" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/authc/credential/CredentialsMatcher;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="99" hits="0" branch="false"/>
<line number="100" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/cache/CacheManager;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="95" hits="0" branch="false"/>
<line number="96" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/cache/CacheManager;Lorg/apache/shiro/authc/credential/CredentialsMatcher;)V" line-rate="1.0" branch-rate="0.6666666666666666">
<lines>
<line number="103" hits="136" branch="false"/>
<line number="104" hits="136" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="105" hits="136" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="107" hits="136" branch="false"/>
<line number="108" hits="136" branch="false"/>
<line number="110" hits="136" branch="false"/>
<line number="111" hits="136" branch="false"/>
<line number="112" hits="136" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="113" hits="134" branch="false"/>
<line number="115" hits="136" branch="false"/>
</lines>
</method>
<method name="afterCacheManagerSet" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="224" hits="2" branch="false"/>
<line number="226" hits="2" branch="false"/>
<line number="227" hits="2" branch="false"/>
</lines>
</method>
<method name="checkPermission" signature="(Lorg/apache/shiro/authz/Permission;Lorg/apache/shiro/authz/AuthorizationInfo;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="545" hits="14" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="546" hits="8" branch="false"/>
<line number="547" hits="8" branch="false"/>
<line number="549" hits="6" branch="false"/>
</lines>
</method>
<method name="checkPermission" signature="(Lorg/apache/shiro/subject/PrincipalCollection;Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="535" hits="10" branch="false"/>
<line number="536" hits="10" branch="false"/>
<line number="537" hits="6" branch="false"/>
</lines>
</method>
<method name="checkPermission" signature="(Lorg/apache/shiro/subject/PrincipalCollection;Lorg/apache/shiro/authz/Permission;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="540" hits="12" branch="false"/>
<line number="541" hits="12" branch="false"/>
<line number="542" hits="6" branch="false"/>
</lines>
</method>
<method name="checkPermissions" signature="(Ljava/util/Collection;Lorg/apache/shiro/authz/AuthorizationInfo;)V" line-rate="0.6" branch-rate="0.5">
<lines>
<line number="565" 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="566" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="567" hits="2" branch="false"/>
<line number="568" hits="0" branch="false"/>
<line number="570" hits="0" branch="false"/>
</lines>
</method>
<method name="checkPermissions" signature="(Lorg/apache/shiro/subject/PrincipalCollection;Ljava/util/Collection;)V" line-rate="0.6666666666666666" branch-rate="1.0">
<lines>
<line number="560" hits="2" branch="false"/>
<line number="561" hits="2" branch="false"/>
<line number="562" hits="0" branch="false"/>
</lines>
</method>
<method name="checkPermissions" signature="(Lorg/apache/shiro/subject/PrincipalCollection;[Ljava/lang/String;)V" line-rate="1.0" branch-rate="0.75">
<lines>
<line number="552" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="553" hits="8" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="554" hits="6" branch="false"/>
<line number="557" hits="2" branch="false"/>
</lines>
</method>
<method name="checkRole" signature="(Ljava/lang/String;Lorg/apache/shiro/authz/AuthorizationInfo;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="627" hits="8" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="628" hits="4" branch="false"/>
<line number="629" hits="4" branch="false"/>
<line number="631" hits="4" branch="false"/>
</lines>
</method>
<method name="checkRole" signature="(Lorg/apache/shiro/subject/PrincipalCollection;Ljava/lang/String;)V" line-rate="0.6666666666666666" branch-rate="1.0">
<lines>
<line number="622" hits="2" branch="false"/>
<line number="623" hits="2" branch="false"/>
<line number="624" hits="0" branch="false"/>
</lines>
</method>
<method name="checkRoles" signature="(Ljava/util/Collection;Lorg/apache/shiro/authz/AuthorizationInfo;)V" line-rate="1.0" branch-rate="0.6666666666666666">
<lines>
<line number="643" hits="4" 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="644" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="645" hits="6" branch="false"/>
<line number="646" hits="4" branch="false"/>
<line number="648" hits="2" branch="false"/>
</lines>
</method>
<method name="checkRoles" signature="(Lorg/apache/shiro/subject/PrincipalCollection;Ljava/util/Collection;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="634" hits="4" branch="false"/>
<line number="635" hits="4" branch="false"/>
<line number="636" hits="2" branch="false"/>
</lines>
</method>
<method name="checkRoles" signature="(Lorg/apache/shiro/subject/PrincipalCollection;[Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="639" hits="2" branch="false"/>
<line number="640" hits="2" branch="false"/>
</lines>
</method>
<method name="clearCachedAuthorizationInfo" signature="(Lorg/apache/shiro/subject/PrincipalCollection;)V" line-rate="0.5714285714285714" branch-rate="0.5">
<lines>
<line number="378" hits="16" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="379" hits="0" branch="false"/>
<line number="382" hits="16" branch="false"/>
<line number="384" hits="16" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="385" hits="0" branch="false"/>
<line number="386" hits="0" branch="false"/>
<line number="388" hits="16" branch="false"/>
</lines>
</method>
<method name="doClearCache" signature="(Lorg/apache/shiro/subject/PrincipalCollection;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="662" hits="16" branch="false"/>
<line number="663" hits="16" branch="false"/>
<line number="664" hits="16" branch="false"/>
</lines>
</method>
<method name="getAuthorizationCache" signature="()Lorg/apache/shiro/cache/Cache;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="136" hits="184" branch="false"/>
</lines>
</method>
<method name="getAuthorizationCacheKey" signature="(Lorg/apache/shiro/subject/PrincipalCollection;)Ljava/lang/Object;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="356" hits="0" branch="false"/>
</lines>
</method>
<method name="getAuthorizationCacheLazy" signature="()Lorg/apache/shiro/cache/Cache;" line-rate="0.6153846153846154" branch-rate="0.4">
<lines>
<line number="231" hits="88" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="233" hits="88" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="234" hits="88" branch="false"/>
<line number="237" hits="88" branch="false"/>
<line number="239" hits="88" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="240" hits="0" branch="false"/>
<line number="241" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="242" hits="0" branch="false"/>
<line number="245" hits="0" branch="false"/>
<line number="246" hits="0" branch="false"/>
<line number="247" hits="88" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="248" hits="88" branch="false"/>
<line number="254" hits="88" branch="false"/>
</lines>
</method>
<method name="getAuthorizationCacheName" signature="()Ljava/lang/String;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="140" hits="0" branch="false"/>
</lines>
</method>
<method name="getAuthorizationInfo" signature="(Lorg/apache/shiro/subject/PrincipalCollection;)Lorg/apache/shiro/authz/AuthorizationInfo;" line-rate="0.43478260869565216" branch-rate="0.35">
<lines>
<line number="312" hits="110" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="313" hits="0" branch="false"/>
<line number="316" hits="110" branch="false"/>
<line number="318" hits="110" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="319" hits="110" branch="false"/>
<line number="322" hits="110" branch="false"/>
<line number="323" hits="110" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="324" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="325" hits="0" branch="false"/>
<line number="327" hits="0" branch="false"/>
<line number="328" hits="0" branch="false"/>
<line number="329" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="330" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="331" hits="0" branch="false"/>
<line number="333" hits="0" branch="false"/>
<line number="339" hits="110" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="341" hits="110" branch="false"/>
<line number="343" hits="110" 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="344" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="345" hits="0" branch="false"/>
<line number="347" hits="0" branch="false"/>
<line number="348" hits="0" branch="false"/>
<line number="352" hits="110" branch="false"/>
</lines>
</method>
<method name="getAvailableAuthorizationCache" signature="()Lorg/apache/shiro/cache/Cache;" line-rate="1.0" branch-rate="0.75">
<lines>
<line number="258" hits="184" branch="false"/>
<line number="259" hits="184" 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="260" hits="88" branch="false"/>
<line number="262" hits="184" branch="false"/>
</lines>
</method>
<method name="getPermissionResolver" signature="()Lorg/apache/shiro/authz/permission/PermissionResolver;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="177" hits="102" branch="false"/>
</lines>
</method>
<method name="getPermissions" signature="(Lorg/apache/shiro/authz/AuthorizationInfo;)Ljava/util/Collection;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="403" hits="44" branch="false"/>
<line number="405" hits="44" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="406" hits="24" branch="false"/>
<line number="407" hits="24" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="408" hits="12" branch="false"/>
<line number="410" hits="24" branch="false"/>
<line number="411" hits="24" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="412" hits="4" branch="false"/>
<line number="415" hits="24" branch="false"/>
<line number="416" hits="24" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="417" hits="8" branch="false"/>
<line number="421" hits="44" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="422" hits="20" branch="false"/>
<line number="424" hits="24" branch="false"/>
</lines>
</method>
<method name="getRolePermissionResolver" signature="()Lorg/apache/shiro/authz/permission/RolePermissionResolver;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="186" hits="38" branch="false"/>
</lines>
</method>
<method name="hasAllRoles" signature="(Ljava/util/Collection;Lorg/apache/shiro/authz/AuthorizationInfo;)Z" line-rate="0.8333333333333334" branch-rate="0.625">
<lines>
<line number="611" 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="612" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="613" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="614" hits="0" branch="false"/>
<line number="616" hits="4" branch="false"/>
<line number="618" hits="2" branch="false"/>
</lines>
</method>
<method name="hasAllRoles" signature="(Lorg/apache/shiro/subject/PrincipalCollection;Ljava/util/Collection;)Z" line-rate="1.0" branch-rate="0.75">
<lines>
<line number="606" hits="4" branch="false"/>
<line number="607" 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>
</lines>
</method>
<method name="hasRole" signature="(Ljava/lang/String;Lorg/apache/shiro/authz/AuthorizationInfo;)Z" line-rate="1.0" branch-rate="0.8333333333333334">
<lines>
<line number="578" hits="68" branch="true" condition-coverage="83% (5/6)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="50%"/>
<condition number="2" type="jump" coverage="100%"/>
</conditions>
</line>
</lines>
</method>
<method name="hasRole" signature="(Lorg/apache/shiro/subject/PrincipalCollection;Ljava/lang/String;)Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="573" hits="56" branch="false"/>
<line number="574" hits="56" branch="false"/>
</lines>
</method>
<method name="hasRoles" signature="(Ljava/util/List;Lorg/apache/shiro/authz/AuthorizationInfo;)[Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="592" 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="593" hits="0" branch="false"/>
<line number="594" hits="0" branch="false"/>
<line number="595" hits="0" branch="false"/>
<line number="596" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="597" hits="0" branch="false"/>
<line number="598" hits="0" branch="false"/>
<line number="599" hits="0" branch="false"/>
<line number="600" hits="0" branch="false"/>
<line number="602" hits="0" branch="false"/>
</lines>
</method>
<method name="hasRoles" signature="(Lorg/apache/shiro/subject/PrincipalCollection;Ljava/util/List;)[Z" line-rate="0.8" branch-rate="0.5">
<lines>
<line number="582" hits="2" branch="false"/>
<line number="583" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="584" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="585" hits="0" branch="false"/>
<line number="587" hits="2" branch="false"/>
</lines>
</method>
<method name="isAuthorizationCachingEnabled" signature="()Z" line-rate="1.0" branch-rate="0.75">
<lines>
<line number="157" hits="184" 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="isPermitted" signature="(Ljava/util/List;Lorg/apache/shiro/authz/AuthorizationInfo;)[Z" line-rate="0.9" branch-rate="0.6666666666666666">
<lines>
<line number="494" hits="4" 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="495" hits="4" branch="false"/>
<line number="496" hits="4" branch="false"/>
<line number="497" hits="4" branch="false"/>
<line number="498" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="499" hits="8" branch="false"/>
<line number="500" hits="8" branch="false"/>
<line number="501" hits="4" branch="false"/>
<line number="502" hits="0" branch="false"/>
<line number="504" hits="4" branch="false"/>
</lines>
</method>
<method name="isPermitted" signature="(Lorg/apache/shiro/authz/Permission;Lorg/apache/shiro/authz/AuthorizationInfo;)Z" line-rate="1.0" branch-rate="0.875">
<lines>
<line number="468" hits="44" branch="false"/>
<line number="469" hits="44" 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="470" hits="24" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="471" hits="42" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="472" hits="20" branch="false"/>
<line number="474" hits="22" branch="false"/>
<line number="476" hits="24" branch="false"/>
</lines>
</method>
<method name="isPermitted" signature="(Lorg/apache/shiro/subject/PrincipalCollection;Ljava/lang/String;)Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="457" hits="16" branch="false"/>
<line number="458" hits="16" branch="false"/>
</lines>
</method>
<method name="isPermitted" signature="(Lorg/apache/shiro/subject/PrincipalCollection;Ljava/util/List;)[Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="488" hits="4" branch="false"/>
<line number="489" hits="4" branch="false"/>
</lines>
</method>
<method name="isPermitted" signature="(Lorg/apache/shiro/subject/PrincipalCollection;Lorg/apache/shiro/authz/Permission;)Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="462" hits="18" branch="false"/>
<line number="463" hits="18" branch="false"/>
</lines>
</method>
<method name="isPermitted" signature="(Lorg/apache/shiro/subject/PrincipalCollection;[Ljava/lang/String;)[Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="480" hits="2" branch="false"/>
<line number="481" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="482" hits="4" branch="false"/>
<line number="484" hits="2" branch="false"/>
</lines>
</method>
<method name="isPermittedAll" signature="(Ljava/util/Collection;Lorg/apache/shiro/authz/AuthorizationInfo;)Z" line-rate="0.8333333333333334" branch-rate="0.625">
<lines>
<line number="524" 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="525" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="526" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="527" hits="0" branch="false"/>
<line number="529" hits="4" branch="false"/>
<line number="531" hits="2" branch="false"/>
</lines>
</method>
<method name="isPermittedAll" signature="(Lorg/apache/shiro/subject/PrincipalCollection;Ljava/util/Collection;)Z" line-rate="1.0" branch-rate="0.75">
<lines>
<line number="519" hits="6" branch="false"/>
<line number="520" hits="6" 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="isPermittedAll" signature="(Lorg/apache/shiro/subject/PrincipalCollection;[Ljava/lang/String;)Z" line-rate="0.8333333333333334" branch-rate="0.6666666666666666">
<lines>
<line number="508" hits="4" 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="509" hits="4" branch="false"/>
<line number="510" hits="12" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="511" hits="8" branch="false"/>
<line number="513" hits="4" branch="false"/>
<line number="515" hits="0" branch="false"/>
</lines>
</method>
<method name="onInit" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="218" hits="56" branch="false"/>
<line number="220" hits="56" branch="false"/>
<line number="221" hits="56" branch="false"/>
</lines>
</method>
<method name="resolvePermissions" signature="(Ljava/util/Collection;)Ljava/util/Collection;" line-rate="1.0" branch-rate="0.8333333333333334">
<lines>
<line number="429" hits="24" branch="false"/>
<line number="430" hits="24" branch="false"/>
<line number="431" hits="24" 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="432" hits="4" branch="false"/>
<line number="433" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="434" hits="4" branch="false"/>
<line number="435" hits="4" branch="false"/>
<line number="436" hits="4" branch="false"/>
<line number="438" hits="24" branch="false"/>
</lines>
</method>
<method name="resolveRolePermissions" signature="(Ljava/util/Collection;)Ljava/util/Collection;" line-rate="1.0" branch-rate="0.75">
<lines>
<line number="442" hits="24" branch="false"/>
<line number="443" hits="24" branch="false"/>
<line number="444" hits="24" 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="445" hits="8" branch="false"/>
<line number="446" hits="8" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="447" hits="8" branch="false"/>
<line number="448" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="449" hits="8" branch="false"/>
<line number="451" hits="8" branch="false"/>
<line number="453" hits="24" branch="false"/>
</lines>
</method>
<method name="setAuthorizationCache" signature="(Lorg/apache/shiro/cache/Cache;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="132" hits="0" branch="false"/>
<line number="133" hits="0" branch="false"/>
</lines>
</method>
<method name="setAuthorizationCacheName" 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="setAuthorizationCachingEnabled" signature="(Z)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="170" hits="0" branch="false"/>
<line number="171" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="172" hits="0" branch="false"/>
<line number="174" hits="0" branch="false"/>
</lines>
</method>
<method name="setName" signature="(Ljava/lang/String;)V" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="122" hits="40" branch="false"/>
<line number="123" hits="40" branch="false"/>
<line number="124" hits="40" 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="127" hits="40" branch="false"/>
<line number="129" hits="40" branch="false"/>
</lines>
</method>
<method name="setPermissionResolver" signature="(Lorg/apache/shiro/authz/permission/PermissionResolver;)V" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="181" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="182" hits="2" branch="false"/>
<line number="183" hits="2" branch="false"/>
</lines>
</method>
<method name="setRolePermissionResolver" signature="(Lorg/apache/shiro/authz/permission/RolePermissionResolver;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="190" hits="12" branch="false"/>
<line number="191" hits="12" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="63" hits="2" branch="false"/>
<line number="70" hits="2" branch="false"/>
<line number="91" hits="136" branch="false"/>
<line number="92" hits="136" branch="false"/>
<line number="95" hits="0" branch="false"/>
<line number="96" hits="0" branch="false"/>
<line number="99" hits="0" branch="false"/>
<line number="100" hits="0" branch="false"/>
<line number="103" hits="136" branch="false"/>
<line number="104" hits="136" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="105" hits="136" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="107" hits="136" branch="false"/>
<line number="108" hits="136" branch="false"/>
<line number="110" hits="136" branch="false"/>
<line number="111" hits="136" branch="false"/>
<line number="112" hits="136" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="113" hits="134" branch="false"/>
<line number="115" hits="136" branch="false"/>
<line number="122" hits="40" branch="false"/>
<line number="123" hits="40" branch="false"/>
<line number="124" hits="40" 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="127" hits="40" branch="false"/>
<line number="129" hits="40" branch="false"/>
<line number="132" hits="0" branch="false"/>
<line number="133" hits="0" branch="false"/>
<line number="136" hits="184" branch="false"/>
<line number="140" hits="0" branch="false"/>
<line number="145" hits="0" branch="false"/>
<line number="146" hits="0" branch="false"/>
<line number="157" hits="184" 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="170" hits="0" branch="false"/>
<line number="171" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="172" hits="0" branch="false"/>
<line number="174" hits="0" branch="false"/>
<line number="177" hits="102" branch="false"/>
<line number="181" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="182" hits="2" branch="false"/>
<line number="183" hits="2" branch="false"/>
<line number="186" hits="38" branch="false"/>
<line number="190" hits="12" branch="false"/>
<line number="191" hits="12" branch="false"/>
<line number="218" hits="56" branch="false"/>
<line number="220" hits="56" branch="false"/>
<line number="221" hits="56" branch="false"/>
<line number="224" hits="2" branch="false"/>
<line number="226" hits="2" branch="false"/>
<line number="227" hits="2" branch="false"/>
<line number="231" hits="88" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="233" hits="88" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="234" hits="88" branch="false"/>
<line number="237" hits="88" branch="false"/>
<line number="239" hits="88" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="240" hits="0" branch="false"/>
<line number="241" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="242" hits="0" branch="false"/>
<line number="245" hits="0" branch="false"/>
<line number="246" hits="0" branch="false"/>
<line number="247" hits="88" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="248" hits="88" branch="false"/>
<line number="254" hits="88" branch="false"/>
<line number="258" hits="184" branch="false"/>
<line number="259" hits="184" 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="260" hits="88" branch="false"/>
<line number="262" hits="184" branch="false"/>
<line number="312" hits="110" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="313" hits="0" branch="false"/>
<line number="316" hits="110" branch="false"/>
<line number="318" hits="110" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="319" hits="110" branch="false"/>
<line number="322" hits="110" branch="false"/>
<line number="323" hits="110" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="324" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="325" hits="0" branch="false"/>
<line number="327" hits="0" branch="false"/>
<line number="328" hits="0" branch="false"/>
<line number="329" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="330" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="331" hits="0" branch="false"/>
<line number="333" hits="0" branch="false"/>
<line number="339" hits="110" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="341" hits="110" branch="false"/>
<line number="343" hits="110" 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="344" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="345" hits="0" branch="false"/>
<line number="347" hits="0" branch="false"/>
<line number="348" hits="0" branch="false"/>
<line number="352" hits="110" branch="false"/>
<line number="356" hits="0" branch="false"/>
<line number="378" hits="16" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="379" hits="0" branch="false"/>
<line number="382" hits="16" branch="false"/>
<line number="384" hits="16" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="385" hits="0" branch="false"/>
<line number="386" hits="0" branch="false"/>
<line number="388" hits="16" branch="false"/>
<line number="403" hits="44" branch="false"/>
<line number="405" hits="44" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="406" hits="24" branch="false"/>
<line number="407" hits="24" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="408" hits="12" branch="false"/>
<line number="410" hits="24" branch="false"/>
<line number="411" hits="24" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="412" hits="4" branch="false"/>
<line number="415" hits="24" branch="false"/>
<line number="416" hits="24" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="417" hits="8" branch="false"/>
<line number="421" hits="44" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="422" hits="20" branch="false"/>
<line number="424" hits="24" branch="false"/>
<line number="429" hits="24" branch="false"/>
<line number="430" hits="24" branch="false"/>
<line number="431" hits="24" 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="432" hits="4" branch="false"/>
<line number="433" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="434" hits="4" branch="false"/>
<line number="435" hits="4" branch="false"/>
<line number="436" hits="4" branch="false"/>
<line number="438" hits="24" branch="false"/>
<line number="442" hits="24" branch="false"/>
<line number="443" hits="24" branch="false"/>
<line number="444" hits="24" 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="445" hits="8" branch="false"/>
<line number="446" hits="8" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="447" hits="8" branch="false"/>
<line number="448" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="449" hits="8" branch="false"/>
<line number="451" hits="8" branch="false"/>
<line number="453" hits="24" branch="false"/>
<line number="457" hits="16" branch="false"/>
<line number="458" hits="16" branch="false"/>
<line number="462" hits="18" branch="false"/>
<line number="463" hits="18" branch="false"/>
<line number="468" hits="44" branch="false"/>
<line number="469" hits="44" 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="470" hits="24" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="471" hits="42" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="472" hits="20" branch="false"/>
<line number="474" hits="22" branch="false"/>
<line number="476" hits="24" branch="false"/>
<line number="480" hits="2" branch="false"/>
<line number="481" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="482" hits="4" branch="false"/>
<line number="484" hits="2" branch="false"/>
<line number="488" hits="4" branch="false"/>
<line number="489" hits="4" branch="false"/>
<line number="494" hits="4" 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="495" hits="4" branch="false"/>
<line number="496" hits="4" branch="false"/>
<line number="497" hits="4" branch="false"/>
<line number="498" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="499" hits="8" branch="false"/>
<line number="500" hits="8" branch="false"/>
<line number="501" hits="4" branch="false"/>
<line number="502" hits="0" branch="false"/>
<line number="504" hits="4" branch="false"/>
<line number="508" hits="4" 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="509" hits="4" branch="false"/>
<line number="510" hits="12" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="511" hits="8" branch="false"/>
<line number="513" hits="4" branch="false"/>
<line number="515" hits="0" branch="false"/>
<line number="519" hits="6" branch="false"/>
<line number="520" hits="6" 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="524" 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="525" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="526" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="527" hits="0" branch="false"/>
<line number="529" hits="4" branch="false"/>
<line number="531" hits="2" branch="false"/>
<line number="535" hits="10" branch="false"/>
<line number="536" hits="10" branch="false"/>
<line number="537" hits="6" branch="false"/>
<line number="540" hits="12" branch="false"/>
<line number="541" hits="12" branch="false"/>
<line number="542" hits="6" branch="false"/>
<line number="545" hits="14" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="546" hits="8" branch="false"/>
<line number="547" hits="8" branch="false"/>
<line number="549" hits="6" branch="false"/>
<line number="552" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="553" hits="8" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="554" hits="6" branch="false"/>
<line number="557" hits="2" branch="false"/>
<line number="560" hits="2" branch="false"/>
<line number="561" hits="2" branch="false"/>
<line number="562" hits="0" branch="false"/>
<line number="565" 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="566" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="567" hits="2" branch="false"/>
<line number="568" hits="0" branch="false"/>
<line number="570" hits="0" branch="false"/>
<line number="573" hits="56" branch="false"/>
<line number="574" hits="56" branch="false"/>
<line number="578" hits="68" branch="true" condition-coverage="83% (5/6)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="50%"/>
<condition number="2" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="582" hits="2" branch="false"/>
<line number="583" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="584" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="585" hits="0" branch="false"/>
<line number="587" hits="2" branch="false"/>
<line number="592" 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="593" hits="0" branch="false"/>
<line number="594" hits="0" branch="false"/>
<line number="595" hits="0" branch="false"/>
<line number="596" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="597" hits="0" branch="false"/>
<line number="598" hits="0" branch="false"/>
<line number="599" hits="0" branch="false"/>
<line number="600" hits="0" branch="false"/>
<line number="602" hits="0" branch="false"/>
<line number="606" hits="4" branch="false"/>
<line number="607" 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="611" 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="612" hits="2" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="613" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="614" hits="0" branch="false"/>
<line number="616" hits="4" branch="false"/>
<line number="618" hits="2" branch="false"/>
<line number="622" hits="2" branch="false"/>
<line number="623" hits="2" branch="false"/>
<line number="624" hits="0" branch="false"/>
<line number="627" hits="8" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="628" hits="4" branch="false"/>
<line number="629" hits="4" branch="false"/>
<line number="631" hits="4" branch="false"/>
<line number="634" hits="4" branch="false"/>
<line number="635" hits="4" branch="false"/>
<line number="636" hits="2" branch="false"/>
<line number="639" hits="2" branch="false"/>
<line number="640" hits="2" branch="false"/>
<line number="643" hits="4" 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="644" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="645" hits="6" branch="false"/>
<line number="646" hits="4" branch="false"/>
<line number="648" hits="2" branch="false"/>
<line number="662" hits="16" branch="false"/>
<line number="663" hits="16" branch="false"/>
<line number="664" hits="16" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.realm.CachingRealm" filename="org/apache/shiro/realm/CachingRealm.java" line-rate="1.0" branch-rate="0.6666666666666666" complexity="1.25">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="50" hits="2" branch="false"/>
<line number="54" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="71" hits="176" branch="false"/>
<line number="72" hits="176" branch="false"/>
<line number="73" hits="176" branch="false"/>
<line number="74" hits="176" branch="false"/>
</lines>
</method>
<method name="afterCacheManagerSet" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="138" hits="4" branch="false"/>
</lines>
</method>
<method name="clearCache" signature="(Lorg/apache/shiro/subject/PrincipalCollection;)V" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="165" hits="20" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="166" hits="20" branch="false"/>
<line number="167" hits="20" branch="false"/>
<line number="169" hits="20" branch="false"/>
</lines>
</method>
<method name="doClearCache" signature="(Lorg/apache/shiro/subject/PrincipalCollection;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="178" hits="20" branch="false"/>
</lines>
</method>
<method name="getAvailablePrincipal" signature="(Lorg/apache/shiro/subject/PrincipalCollection;)Ljava/lang/Object;" line-rate="1.0" branch-rate="0.75">
<lines>
<line number="199" hits="142" branch="false"/>
<line number="200" hits="142" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="201" hits="142" branch="false"/>
<line number="202" hits="142" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="203" hits="124" branch="false"/>
<line number="206" hits="18" branch="false"/>
<line number="210" hits="142" branch="false"/>
</lines>
</method>
<method name="getCacheManager" signature="()Lorg/apache/shiro/cache/CacheManager;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="84" hits="100" branch="false"/>
</lines>
</method>
<method name="getName" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="125" hits="298" branch="false"/>
</lines>
</method>
<method name="isCachingEnabled" signature="()Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="111" hits="208" branch="false"/>
</lines>
</method>
<method name="onLogout" signature="(Lorg/apache/shiro/subject/PrincipalCollection;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="152" hits="20" branch="false"/>
<line number="153" hits="20" branch="false"/>
</lines>
</method>
<method name="setCacheManager" signature="(Lorg/apache/shiro/cache/CacheManager;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="95" hits="16" branch="false"/>
<line number="96" hits="16" branch="false"/>
<line number="97" hits="16" branch="false"/>
</lines>
</method>
<method name="setCachingEnabled" signature="(Z)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="121" hits="74" branch="false"/>
<line number="122" hits="74" branch="false"/>
</lines>
</method>
<method name="setName" signature="(Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="129" hits="54" branch="false"/>
<line number="130" hits="54" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="50" hits="2" branch="false"/>
<line number="54" hits="2" branch="false"/>
<line number="71" hits="176" branch="false"/>
<line number="72" hits="176" branch="false"/>
<line number="73" hits="176" branch="false"/>
<line number="74" hits="176" branch="false"/>
<line number="84" hits="100" branch="false"/>
<line number="95" hits="16" branch="false"/>
<line number="96" hits="16" branch="false"/>
<line number="97" hits="16" branch="false"/>
<line number="111" hits="208" branch="false"/>
<line number="121" hits="74" branch="false"/>
<line number="122" hits="74" branch="false"/>
<line number="125" hits="298" branch="false"/>
<line number="129" hits="54" branch="false"/>
<line number="130" hits="54" branch="false"/>
<line number="138" hits="4" branch="false"/>
<line number="152" hits="20" branch="false"/>
<line number="153" hits="20" branch="false"/>
<line number="165" hits="20" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="166" hits="20" branch="false"/>
<line number="167" hits="20" branch="false"/>
<line number="169" hits="20" branch="false"/>
<line number="178" hits="20" branch="false"/>
<line number="199" hits="142" branch="false"/>
<line number="200" hits="142" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="201" hits="142" branch="false"/>
<line number="202" hits="142" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="203" hits="124" branch="false"/>
<line number="206" hits="18" branch="false"/>
<line number="210" hits="142" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.realm.Realm" filename="org/apache/shiro/realm/Realm.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.realm.RealmFactory" filename="org/apache/shiro/realm/RealmFactory.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.realm.SimpleAccountRealm" filename="org/apache/shiro/realm/SimpleAccountRealm.java" line-rate="0.6229508196721312" branch-rate="0.3888888888888889" complexity="1.8125">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="54" hits="64" branch="false"/>
<line number="55" hits="64" branch="false"/>
<line number="56" hits="64" branch="false"/>
<line number="57" hits="64" branch="false"/>
<line number="58" hits="64" branch="false"/>
<line number="61" hits="64" branch="false"/>
<line number="62" hits="64" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="65" hits="0" branch="false"/>
<line number="66" hits="0" branch="false"/>
<line number="67" hits="0" branch="false"/>
</lines>
</method>
<method name="accountExists" signature="(Ljava/lang/String;)Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="79" hits="8" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
</lines>
</method>
<method name="add" signature="(Lorg/apache/shiro/authc/SimpleAccount;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="101" hits="74" branch="false"/>
<line number="102" hits="74" branch="false"/>
<line number="104" hits="74" branch="false"/>
<line number="106" hits="74" branch="false"/>
<line number="107" hits="74" branch="false"/>
<line number="108" hits="74" branch="false"/>
</lines>
</method>
<method name="add" signature="(Lorg/apache/shiro/authz/SimpleRole;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="128" hits="34" branch="false"/>
<line number="130" hits="34" branch="false"/>
<line number="132" hits="34" branch="false"/>
<line number="133" hits="34" branch="false"/>
<line number="134" hits="34" branch="false"/>
</lines>
</method>
<method name="addAccount" signature="(Ljava/lang/String;Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="83" hits="0" branch="false"/>
<line number="84" hits="0" branch="false"/>
</lines>
</method>
<method name="addAccount" signature="(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)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"/>
<line number="90" hits="0" branch="false"/>
</lines>
</method>
<method name="addRole" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="124" hits="0" branch="false"/>
<line number="125" hits="0" branch="false"/>
</lines>
</method>
<method name="doGetAuthenticationInfo" signature="(Lorg/apache/shiro/authc/AuthenticationToken;)Lorg/apache/shiro/authc/AuthenticationInfo;" line-rate="0.6666666666666666" branch-rate="0.5">
<lines>
<line number="154" hits="16" branch="false"/>
<line number="155" hits="16" branch="false"/>
<line number="157" hits="16" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="159" hits="16" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="160" hits="0" branch="false"/>
<line number="162" hits="16" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="163" hits="0" branch="false"/>
<line number="164" hits="0" branch="false"/>
<line number="169" hits="16" branch="false"/>
</lines>
</method>
<method name="doGetAuthorizationInfo" signature="(Lorg/apache/shiro/subject/PrincipalCollection;)Lorg/apache/shiro/authz/AuthorizationInfo;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="173" hits="54" branch="false"/>
<line number="174" hits="54" branch="false"/>
<line number="176" hits="108" branch="false"/>
<line number="178" hits="54" branch="false"/>
</lines>
</method>
<method name="getRole" signature="(Ljava/lang/String;)Lorg/apache/shiro/authz/SimpleRole;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="111" hits="120" branch="false"/>
<line number="113" hits="240" branch="false"/>
<line number="115" hits="120" branch="false"/>
</lines>
</method>
<method name="getUser" signature="(Ljava/lang/String;)Lorg/apache/shiro/authc/SimpleAccount;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="70" hits="98" branch="false"/>
<line number="72" hits="196" branch="false"/>
<line number="74" hits="98" branch="false"/>
</lines>
</method>
<method name="getUsername" signature="(Lorg/apache/shiro/authc/SimpleAccount;)Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="93" hits="74" branch="false"/>
</lines>
</method>
<method name="getUsername" signature="(Lorg/apache/shiro/subject/PrincipalCollection;)Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="97" hits="128" branch="false"/>
</lines>
</method>
<method name="roleExists" signature="(Ljava/lang/String;)Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="120" hits="10" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
</lines>
</method>
<method name="toSet" signature="(Ljava/lang/String;Ljava/lang/String;)Ljava/util/Set;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="137" 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="138" hits="0" branch="false"/>
<line number="141" hits="0" branch="false"/>
<line number="142" 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="145" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="146" hits="0" branch="false"/>
<line number="150" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="54" hits="64" branch="false"/>
<line number="55" hits="64" branch="false"/>
<line number="56" hits="64" branch="false"/>
<line number="57" hits="64" branch="false"/>
<line number="58" hits="64" branch="false"/>
<line number="61" hits="64" branch="false"/>
<line number="62" hits="64" branch="false"/>
<line number="65" hits="0" branch="false"/>
<line number="66" hits="0" branch="false"/>
<line number="67" hits="0" branch="false"/>
<line number="70" hits="98" branch="false"/>
<line number="72" hits="196" branch="false"/>
<line number="74" hits="98" branch="false"/>
<line number="79" hits="8" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="83" hits="0" branch="false"/>
<line number="84" 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="93" hits="74" branch="false"/>
<line number="97" hits="128" branch="false"/>
<line number="101" hits="74" branch="false"/>
<line number="102" hits="74" branch="false"/>
<line number="104" hits="74" branch="false"/>
<line number="106" hits="74" branch="false"/>
<line number="107" hits="74" branch="false"/>
<line number="108" hits="74" branch="false"/>
<line number="111" hits="120" branch="false"/>
<line number="113" hits="240" branch="false"/>
<line number="115" hits="120" branch="false"/>
<line number="120" hits="10" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="124" hits="0" branch="false"/>
<line number="125" hits="0" branch="false"/>
<line number="128" hits="34" branch="false"/>
<line number="130" hits="34" branch="false"/>
<line number="132" hits="34" branch="false"/>
<line number="133" hits="34" branch="false"/>
<line number="134" hits="34" branch="false"/>
<line number="137" 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="138" hits="0" branch="false"/>
<line number="141" hits="0" branch="false"/>
<line number="142" 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="145" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="146" hits="0" branch="false"/>
<line number="150" hits="0" branch="false"/>
<line number="154" hits="16" branch="false"/>
<line number="155" hits="16" branch="false"/>
<line number="157" hits="16" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="159" hits="16" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="160" hits="0" branch="false"/>
<line number="162" hits="16" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="163" hits="0" branch="false"/>
<line number="164" hits="0" branch="false"/>
<line number="169" hits="16" branch="false"/>
<line number="173" hits="54" branch="false"/>
<line number="174" hits="54" branch="false"/>
<line number="176" hits="108" branch="false"/>
<line number="178" hits="54" branch="false"/>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.realm.activedirectory" line-rate="0.03571428571428571" branch-rate="0.0" complexity="2.7142857142857144">
<classes>
<class name="org.apache.shiro.realm.activedirectory.ActiveDirectoryRealm" filename="org/apache/shiro/realm/activedirectory/ActiveDirectoryRealm.java" line-rate="0.03571428571428571" branch-rate="0.0" complexity="2.7142857142857144">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="61" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="53" hits="2" branch="false"/>
</lines>
</method>
<method name="buildAuthenticationInfo" signature="(Ljava/lang/String;[C)Lorg/apache/shiro/authc/AuthenticationInfo;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="117" hits="0" branch="false"/>
</lines>
</method>
<method name="buildAuthorizationInfo" signature="(Ljava/util/Set;)Lorg/apache/shiro/authz/AuthorizationInfo;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="155" hits="0" branch="false"/>
</lines>
</method>
<method name="getRoleNamesForGroups" signature="(Ljava/util/Collection;)Ljava/util/Collection;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="215" hits="0" branch="false"/>
<line number="217" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="218" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="219" hits="0" branch="false"/>
<line number="220" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="221" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="223" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="224" hits="0" branch="false"/>
<line number="227" hits="0" branch="false"/>
<line number="231" hits="0" branch="false"/>
<line number="233" hits="0" branch="false"/>
</lines>
</method>
<method name="getRoleNamesForUser" signature="(Ljava/lang/String;Ljavax/naming/ldap/LdapContext;)Ljava/util/Set;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="160" hits="0" branch="false"/>
<line number="162" hits="0" branch="false"/>
<line number="163" hits="0" branch="false"/>
<line number="165" hits="0" branch="false"/>
<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="171" hits="0" branch="false"/>
<line number="172" hits="0" branch="false"/>
<line number="174" hits="0" branch="false"/>
<line number="176" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="177" 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="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="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="192" 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="198" hits="0" branch="false"/>
<line number="199" hits="0" branch="false"/>
<line number="201" hits="0" branch="false"/>
<line number="203" hits="0" branch="false"/>
<line number="204" hits="0" branch="false"/>
</lines>
</method>
<method name="queryForAuthenticationInfo" signature="(Lorg/apache/shiro/authc/AuthenticationToken;Lorg/apache/shiro/realm/ldap/LdapContextFactory;)Lorg/apache/shiro/authc/AuthenticationInfo;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="103" hits="0" branch="false"/>
<line number="106" hits="0" branch="false"/>
<line number="108" hits="0" branch="false"/>
<line number="110" hits="0" branch="false"/>
<line number="111" hits="0" branch="false"/>
<line number="113" hits="0" branch="false"/>
</lines>
</method>
<method name="queryForAuthorizationInfo" signature="(Lorg/apache/shiro/subject/PrincipalCollection;Lorg/apache/shiro/realm/ldap/LdapContextFactory;)Lorg/apache/shiro/authz/AuthorizationInfo;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="138" hits="0" branch="false"/>
<line number="141" 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="151" hits="0" branch="false"/>
</lines>
</method>
<method name="setGroupRolesMap" signature="(Ljava/util/Map;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="81" hits="0" branch="false"/>
<line number="82" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="53" hits="2" branch="false"/>
<line number="61" hits="2" branch="false"/>
<line number="81" hits="0" branch="false"/>
<line number="82" hits="0" branch="false"/>
<line number="103" hits="0" branch="false"/>
<line number="106" hits="0" branch="false"/>
<line number="108" hits="0" branch="false"/>
<line number="110" hits="0" branch="false"/>
<line number="111" hits="0" branch="false"/>
<line number="113" hits="0" branch="false"/>
<line number="117" hits="0" branch="false"/>
<line number="138" hits="0" branch="false"/>
<line number="141" 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="151" hits="0" branch="false"/>
<line number="155" hits="0" branch="false"/>
<line number="160" hits="0" branch="false"/>
<line number="162" hits="0" branch="false"/>
<line number="163" hits="0" branch="false"/>
<line number="165" hits="0" branch="false"/>
<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="171" hits="0" branch="false"/>
<line number="172" hits="0" branch="false"/>
<line number="174" hits="0" branch="false"/>
<line number="176" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="177" 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="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="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="192" 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="198" hits="0" branch="false"/>
<line number="199" hits="0" branch="false"/>
<line number="201" hits="0" branch="false"/>
<line number="203" hits="0" branch="false"/>
<line number="204" hits="0" branch="false"/>
<line number="215" hits="0" branch="false"/>
<line number="217" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="218" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="219" hits="0" branch="false"/>
<line number="220" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="221" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="223" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="224" hits="0" branch="false"/>
<line number="227" hits="0" branch="false"/>
<line number="231" hits="0" branch="false"/>
<line number="233" hits="0" branch="false"/>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.realm.jdbc" line-rate="0.8345864661654135" branch-rate="0.6590909090909091" complexity="3.75">
<classes>
<class name="org.apache.shiro.realm.jdbc.JdbcRealm" filename="org/apache/shiro/realm/jdbc/JdbcRealm.java" line-rate="0.8320610687022901" branch-rate="0.6590909090909091" complexity="3.75">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="84" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="57" hits="22" branch="false"/>
<line number="101" hits="22" branch="false"/>
<line number="103" hits="22" branch="false"/>
<line number="105" hits="22" branch="false"/>
<line number="107" hits="22" branch="false"/>
<line number="109" hits="22" branch="false"/>
</lines>
</method>
<method name="doGetAuthenticationInfo" signature="(Lorg/apache/shiro/authc/AuthenticationToken;)Lorg/apache/shiro/authc/AuthenticationInfo;" line-rate="0.75" branch-rate="0.6153846153846154">
<lines>
<line number="204" hits="22" branch="false"/>
<line number="205" hits="22" branch="false"/>
<line number="208" hits="22" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="209" hits="0" branch="false"/>
<line number="212" hits="22" branch="false"/>
<line number="213" hits="22" branch="false"/>
<line number="215" hits="22" branch="false"/>
<line number="217" hits="22" branch="false"/>
<line number="218" hits="22" branch="false"/>
<line number="219" hits="22" branch="true" condition-coverage="80% (4/5)">
<conditions>
<condition number="0" type="switch" coverage="80%"/>
</conditions>
</line>
<line number="221" hits="14" branch="false"/>
<line number="222" hits="12" branch="false"/>
<line number="225" hits="0" 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="231" hits="4" branch="false"/>
<line number="233" hits="4" branch="false"/>
<line number="234" hits="4" branch="false"/>
<line number="237" hits="20" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="238" hits="0" branch="false"/>
<line number="241" hits="20" branch="false"/>
<line number="243" hits="20" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="244" hits="8" branch="false"/>
<line number="247" hits="0" branch="false"/>
<line number="248" hits="0" branch="false"/>
<line number="249" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="250" hits="0" branch="false"/>
<line number="254" hits="0" branch="false"/>
<line number="256" hits="22" branch="false"/>
<line number="257" hits="20" branch="false"/>
<line number="259" hits="20" branch="false"/>
</lines>
</method>
<method name="doGetAuthorizationInfo" signature="(Lorg/apache/shiro/subject/PrincipalCollection;)Lorg/apache/shiro/authz/AuthorizationInfo;" line-rate="0.7" branch-rate="0.5">
<lines>
<line number="320" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="321" hits="0" branch="false"/>
<line number="324" hits="8" branch="false"/>
<line number="326" hits="8" branch="false"/>
<line number="327" hits="8" branch="false"/>
<line number="328" hits="8" branch="false"/>
<line number="330" hits="8" branch="false"/>
<line number="333" hits="8" branch="false"/>
<line number="334" hits="8" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="335" hits="4" branch="false"/>
<line number="338" hits="0" branch="false"/>
<line number="339" hits="0" branch="false"/>
<line number="340" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="341" hits="0" branch="false"/>
<line number="345" hits="0" branch="false"/>
<line number="347" hits="8" branch="false"/>
<line number="348" hits="8" branch="false"/>
<line number="350" hits="8" branch="false"/>
<line number="351" hits="8" branch="false"/>
<line number="352" hits="8" branch="false"/>
</lines>
</method>
<method name="getPasswordForUser" signature="(Ljava/sql/Connection;Ljava/lang/String;)[Ljava/lang/String;" line-rate="1.0" branch-rate="0.7272727272727273">
<lines>
<line number="265" hits="22" branch="false"/>
<line number="266" hits="22" branch="true" condition-coverage="40% (2/5)">
<conditions>
<condition number="0" type="switch" coverage="40%"/>
</conditions>
</line>
<line number="270" hits="18" branch="false"/>
<line number="271" hits="18" branch="false"/>
<line number="273" hits="4" branch="false"/>
<line number="274" hits="4" branch="false"/>
<line number="277" hits="22" branch="false"/>
<line number="278" hits="22" branch="false"/>
<line number="280" hits="22" branch="false"/>
<line number="281" hits="22" branch="false"/>
<line number="284" hits="22" branch="false"/>
<line number="287" hits="22" branch="false"/>
<line number="288" hits="44" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="291" hits="24" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="292" hits="2" branch="false"/>
<line number="295" hits="22" branch="false"/>
<line number="296" hits="22" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="297" hits="4" branch="false"/>
<line number="300" hits="22" branch="false"/>
<line number="303" hits="22" branch="false"/>
<line number="304" hits="22" branch="false"/>
<line number="305" hits="20" branch="false"/>
<line number="307" hits="20" branch="false"/>
</lines>
</method>
<method name="getPermissions" signature="(Ljava/sql/Connection;Ljava/lang/String;Ljava/util/Collection;)Ljava/util/Set;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="389" hits="4" branch="false"/>
<line number="390" hits="4" branch="false"/>
<line number="392" hits="4" branch="false"/>
<line number="393" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="395" hits="4" branch="false"/>
<line number="397" hits="4" branch="false"/>
<line number="401" hits="4" branch="false"/>
<line number="404" hits="8" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="406" hits="4" branch="false"/>
<line number="409" hits="4" branch="false"/>
<line number="410" hits="4" branch="false"/>
<line number="412" hits="4" branch="false"/>
<line number="413" hits="4" branch="false"/>
<line number="415" hits="4" branch="false"/>
<line number="417" hits="4" branch="false"/>
<line number="418" hits="4" branch="false"/>
<line number="420" hits="4" branch="false"/>
</lines>
</method>
<method name="getRoleNamesForUser" signature="(Ljava/sql/Connection;Ljava/lang/String;)Ljava/util/Set;" line-rate="0.8823529411764706" branch-rate="0.5">
<lines>
<line number="357" hits="8" branch="false"/>
<line number="358" hits="8" branch="false"/>
<line number="359" hits="8" branch="false"/>
<line number="361" hits="8" branch="false"/>
<line number="362" hits="8" branch="false"/>
<line number="365" hits="8" branch="false"/>
<line number="368" hits="16" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="370" hits="8" branch="false"/>
<line number="373" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="374" hits="8" branch="false"/>
<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="380" hits="8" branch="false"/>
<line number="382" hits="8" branch="false"/>
<line number="383" hits="8" branch="false"/>
<line number="384" hits="8" branch="false"/>
<line number="385" hits="8" branch="false"/>
</lines>
</method>
<method name="getSaltForUser" signature="(Ljava/lang/String;)Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="424" hits="4" branch="false"/>
</lines>
</method>
<method name="setAuthenticationQuery" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="139" hits="0" branch="false"/>
<line number="140" hits="0" branch="false"/>
</lines>
</method>
<method name="setDataSource" signature="(Ljavax/sql/DataSource;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="125" hits="22" branch="false"/>
<line number="126" hits="22" branch="false"/>
</lines>
</method>
<method name="setPermissionsLookupEnabled" signature="(Z)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="183" hits="4" branch="false"/>
<line number="184" hits="4" branch="false"/>
</lines>
</method>
<method name="setPermissionsQuery" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="172" hits="0" branch="false"/>
<line number="173" hits="0" branch="false"/>
</lines>
</method>
<method name="setSaltStyle" signature="(Lorg/apache/shiro/realm/jdbc/JdbcRealm$SaltStyle;)V" line-rate="1.0" branch-rate="0.75">
<lines>
<line number="192" hits="22" branch="false"/>
<line number="193" 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="194" hits="4" branch="false"/>
<line number="196" hits="22" branch="false"/>
</lines>
</method>
<method name="setUserRolesQuery" 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="57" hits="22" branch="false"/>
<line number="84" hits="2" branch="false"/>
<line number="101" hits="22" branch="false"/>
<line number="103" hits="22" branch="false"/>
<line number="105" hits="22" branch="false"/>
<line number="107" hits="22" branch="false"/>
<line number="109" hits="22" branch="false"/>
<line number="125" hits="22" branch="false"/>
<line number="126" hits="22" branch="false"/>
<line number="139" 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="172" hits="0" branch="false"/>
<line number="173" hits="0" branch="false"/>
<line number="183" hits="4" branch="false"/>
<line number="184" hits="4" branch="false"/>
<line number="192" hits="22" branch="false"/>
<line number="193" 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="194" hits="4" branch="false"/>
<line number="196" hits="22" branch="false"/>
<line number="204" hits="22" branch="false"/>
<line number="205" hits="22" branch="false"/>
<line number="208" hits="22" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="209" hits="0" branch="false"/>
<line number="212" hits="22" branch="false"/>
<line number="213" hits="22" branch="false"/>
<line number="215" hits="22" branch="false"/>
<line number="217" hits="22" branch="false"/>
<line number="218" hits="22" branch="false"/>
<line number="219" hits="22" branch="true" condition-coverage="80% (4/5)">
<conditions>
<condition number="0" type="switch" coverage="80%"/>
</conditions>
</line>
<line number="221" hits="14" branch="false"/>
<line number="222" hits="12" branch="false"/>
<line number="225" hits="0" 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="231" hits="4" branch="false"/>
<line number="233" hits="4" branch="false"/>
<line number="234" hits="4" branch="false"/>
<line number="237" hits="20" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="238" hits="0" branch="false"/>
<line number="241" hits="20" branch="false"/>
<line number="243" hits="20" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="244" hits="8" branch="false"/>
<line number="247" hits="0" branch="false"/>
<line number="248" hits="0" branch="false"/>
<line number="249" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="250" hits="0" branch="false"/>
<line number="254" hits="0" branch="false"/>
<line number="256" hits="22" branch="false"/>
<line number="257" hits="20" branch="false"/>
<line number="259" hits="20" branch="false"/>
<line number="265" hits="22" branch="false"/>
<line number="266" hits="22" branch="true" condition-coverage="40% (2/5)">
<conditions>
<condition number="0" type="switch" coverage="40%"/>
</conditions>
</line>
<line number="270" hits="18" branch="false"/>
<line number="271" hits="18" branch="false"/>
<line number="273" hits="4" branch="false"/>
<line number="274" hits="4" branch="false"/>
<line number="277" hits="22" branch="false"/>
<line number="278" hits="22" branch="false"/>
<line number="280" hits="22" branch="false"/>
<line number="281" hits="22" branch="false"/>
<line number="284" hits="22" branch="false"/>
<line number="287" hits="22" branch="false"/>
<line number="288" hits="44" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="291" hits="24" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="292" hits="2" branch="false"/>
<line number="295" hits="22" branch="false"/>
<line number="296" hits="22" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="297" hits="4" branch="false"/>
<line number="300" hits="22" branch="false"/>
<line number="303" hits="22" branch="false"/>
<line number="304" hits="22" branch="false"/>
<line number="305" hits="20" branch="false"/>
<line number="307" hits="20" branch="false"/>
<line number="320" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="321" hits="0" branch="false"/>
<line number="324" hits="8" branch="false"/>
<line number="326" hits="8" branch="false"/>
<line number="327" hits="8" branch="false"/>
<line number="328" hits="8" branch="false"/>
<line number="330" hits="8" branch="false"/>
<line number="333" hits="8" branch="false"/>
<line number="334" hits="8" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="335" hits="4" branch="false"/>
<line number="338" hits="0" branch="false"/>
<line number="339" hits="0" branch="false"/>
<line number="340" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="341" hits="0" branch="false"/>
<line number="345" hits="0" branch="false"/>
<line number="347" hits="8" branch="false"/>
<line number="348" hits="8" branch="false"/>
<line number="350" hits="8" branch="false"/>
<line number="351" hits="8" branch="false"/>
<line number="352" hits="8" branch="false"/>
<line number="357" hits="8" branch="false"/>
<line number="358" hits="8" branch="false"/>
<line number="359" hits="8" branch="false"/>
<line number="361" hits="8" branch="false"/>
<line number="362" hits="8" branch="false"/>
<line number="365" hits="8" branch="false"/>
<line number="368" hits="16" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="370" hits="8" branch="false"/>
<line number="373" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="374" hits="8" branch="false"/>
<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="380" hits="8" branch="false"/>
<line number="382" hits="8" branch="false"/>
<line number="383" hits="8" branch="false"/>
<line number="384" hits="8" branch="false"/>
<line number="385" hits="8" branch="false"/>
<line number="389" hits="4" branch="false"/>
<line number="390" hits="4" branch="false"/>
<line number="392" hits="4" branch="false"/>
<line number="393" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="395" hits="4" branch="false"/>
<line number="397" hits="4" branch="false"/>
<line number="401" hits="4" branch="false"/>
<line number="404" hits="8" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="406" hits="4" branch="false"/>
<line number="409" hits="4" branch="false"/>
<line number="410" hits="4" branch="false"/>
<line number="412" hits="4" branch="false"/>
<line number="413" hits="4" branch="false"/>
<line number="415" hits="4" branch="false"/>
<line number="417" hits="4" branch="false"/>
<line number="418" hits="4" branch="false"/>
<line number="420" hits="4" branch="false"/>
<line number="424" hits="4" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.realm.jdbc.JdbcRealm$1" filename="org/apache/shiro/realm/jdbc/JdbcRealm.java" line-rate="1.0" branch-rate="1.0" complexity="3.75">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="219" hits="2" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="219" hits="2" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.realm.jdbc.JdbcRealm$SaltStyle" filename="org/apache/shiro/realm/jdbc/JdbcRealm.java" line-rate="1.0" branch-rate="1.0" complexity="3.75">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="94" hits="12" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;I)V" line-rate="1.0" branch-rate="1.0">
<lines>
</lines>
</method>
<method name="valueOf" signature="(Ljava/lang/String;)Lorg/apache/shiro/realm/jdbc/JdbcRealm$SaltStyle;" line-rate="1.0" branch-rate="1.0">
<lines>
</lines>
</method>
<method name="values" signature="()[Lorg/apache/shiro/realm/jdbc/JdbcRealm$SaltStyle;" line-rate="1.0" branch-rate="1.0">
<lines>
</lines>
</method>
</methods>
<lines>
<line number="94" hits="12" branch="false"/>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.realm.jndi" line-rate="0.0" branch-rate="0.0" complexity="3.25">
<classes>
<class name="org.apache.shiro.realm.jndi.JndiRealmFactory" filename="org/apache/shiro/realm/jndi/JndiRealmFactory.java" line-rate="0.0" branch-rate="0.0" complexity="3.25">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="41" hits="0" branch="false"/>
<line number="43" hits="0" branch="false"/>
</lines>
</method>
<method name="getJndiNames" signature="()Ljava/util/Collection;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="53" hits="0" branch="false"/>
</lines>
</method>
<method name="getRealms" signature="()Ljava/util/Collection;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="102" hits="0" branch="false"/>
<line number="103" 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="104" hits="0" branch="false"/>
<line number="105" hits="0" branch="false"/>
<line number="106" hits="0" branch="false"/>
<line number="108" hits="0" branch="false"/>
<line number="109" 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="112" 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="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
</lines>
</method>
<method name="setJndiNames" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="81" hits="0" branch="false"/>
<line number="82" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="83" hits="0" branch="false"/>
<line number="84" hits="0" branch="false"/>
<line number="85" 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"/>
</lines>
</method>
<method name="setJndiNames" signature="(Ljava/util/Collection;)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>
</methods>
<lines>
<line number="41" hits="0" branch="false"/>
<line number="43" hits="0" branch="false"/>
<line number="53" hits="0" branch="false"/>
<line number="68" hits="0" branch="false"/>
<line number="69" hits="0" branch="false"/>
<line number="81" hits="0" branch="false"/>
<line number="82" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="83" hits="0" branch="false"/>
<line number="84" hits="0" branch="false"/>
<line number="85" 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="102" hits="0" branch="false"/>
<line number="103" 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="104" hits="0" branch="false"/>
<line number="105" hits="0" branch="false"/>
<line number="106" hits="0" branch="false"/>
<line number="108" hits="0" branch="false"/>
<line number="109" 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="112" 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="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.realm.ldap" line-rate="0.7418181818181818" branch-rate="0.65" complexity="2.1805555555555554">
<classes>
<class name="org.apache.shiro.realm.ldap.AbstractLdapRealm" filename="org/apache/shiro/realm/ldap/AbstractLdapRealm.java" line-rate="0.4583333333333333" branch-rate="0.5" complexity="1.6666666666666667">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="61" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="53" hits="2" branch="false"/>
<line number="66" hits="2" branch="false"/>
<line number="68" hits="2" branch="false"/>
<line number="70" hits="2" branch="false"/>
<line number="72" hits="2" branch="false"/>
<line number="74" hits="2" branch="false"/>
<line number="76" hits="2" branch="false"/>
</lines>
</method>
<method name="doGetAuthenticationInfo" signature="(Lorg/apache/shiro/authc/AuthenticationToken;)Lorg/apache/shiro/authc/AuthenticationInfo;" line-rate="0.375" branch-rate="1.0">
<lines>
<line number="192" hits="2" branch="false"/>
<line number="193" hits="0" branch="false"/>
<line number="194" hits="0" branch="false"/>
<line number="195" hits="0" branch="false"/>
<line number="196" hits="0" branch="false"/>
<line number="197" hits="0" branch="false"/>
<line number="198" hits="2" branch="false"/>
<line number="200" hits="2" branch="false"/>
</lines>
</method>
<method name="doGetAuthorizationInfo" signature="(Lorg/apache/shiro/subject/PrincipalCollection;)Lorg/apache/shiro/authz/AuthorizationInfo;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="207" hits="0" branch="false"/>
<line number="208" hits="0" branch="false"/>
<line number="209" hits="0" branch="false"/>
<line number="210" hits="0" branch="false"/>
<line number="211" hits="0" branch="false"/>
<line number="213" hits="0" branch="false"/>
</lines>
</method>
<method name="ensureContextFactory" signature="()Lorg/apache/shiro/realm/ldap/LdapContextFactory;" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="170" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="172" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="173" hits="2" branch="false"/>
<line number="176" hits="2" branch="false"/>
<line number="177" hits="2" branch="false"/>
<line number="178" hits="2" branch="false"/>
<line number="179" hits="2" branch="false"/>
<line number="180" hits="2" branch="false"/>
<line number="181" hits="2" branch="false"/>
<line number="183" hits="2" branch="false"/>
<line number="185" hits="2" branch="false"/>
</lines>
</method>
<method name="onInit" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<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="setLdapContextFactory" signature="(Lorg/apache/shiro/realm/ldap/LdapContextFactory;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="157" hits="0" branch="false"/>
<line number="158" hits="0" branch="false"/>
</lines>
</method>
<method name="setPrincipalSuffix" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="99" hits="0" branch="false"/>
<line number="100" hits="0" branch="false"/>
</lines>
</method>
<method name="setSearchBase" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="110" hits="0" branch="false"/>
<line number="111" hits="0" branch="false"/>
</lines>
</method>
<method name="setSystemPassword" 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>
<method name="setSystemUsername" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="132" hits="0" branch="false"/>
<line number="133" hits="0" branch="false"/>
</lines>
</method>
<method name="setUrl" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="121" hits="0" branch="false"/>
<line number="122" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="53" hits="2" branch="false"/>
<line number="61" hits="2" branch="false"/>
<line number="66" hits="2" branch="false"/>
<line number="68" hits="2" branch="false"/>
<line number="70" hits="2" branch="false"/>
<line number="72" hits="2" branch="false"/>
<line number="74" hits="2" branch="false"/>
<line number="76" hits="2" branch="false"/>
<line number="99" hits="0" branch="false"/>
<line number="100" hits="0" branch="false"/>
<line number="110" hits="0" branch="false"/>
<line number="111" hits="0" branch="false"/>
<line number="121" hits="0" branch="false"/>
<line number="122" hits="0" branch="false"/>
<line number="132" hits="0" branch="false"/>
<line number="133" hits="0" branch="false"/>
<line number="144" hits="0" branch="false"/>
<line number="145" hits="0" branch="false"/>
<line number="157" hits="0" branch="false"/>
<line number="158" 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"/>
<line number="170" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="172" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="173" hits="2" branch="false"/>
<line number="176" hits="2" branch="false"/>
<line number="177" hits="2" branch="false"/>
<line number="178" hits="2" branch="false"/>
<line number="179" hits="2" branch="false"/>
<line number="180" hits="2" branch="false"/>
<line number="181" hits="2" branch="false"/>
<line number="183" hits="2" branch="false"/>
<line number="185" hits="2" branch="false"/>
<line number="192" hits="2" branch="false"/>
<line number="193" hits="0" branch="false"/>
<line number="194" hits="0" branch="false"/>
<line number="195" hits="0" branch="false"/>
<line number="196" hits="0" branch="false"/>
<line number="197" hits="0" branch="false"/>
<line number="198" hits="2" branch="false"/>
<line number="200" hits="2" branch="false"/>
<line number="207" hits="0" branch="false"/>
<line number="208" hits="0" branch="false"/>
<line number="209" hits="0" branch="false"/>
<line number="210" hits="0" branch="false"/>
<line number="211" hits="0" branch="false"/>
<line number="213" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.realm.ldap.DefaultLdapContextFactory" filename="org/apache/shiro/realm/ldap/DefaultLdapContextFactory.java" line-rate="0.746031746031746" branch-rate="0.5952380952380952" complexity="2.533333333333333">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="66" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="48" hits="16" branch="false"/>
<line number="68" hits="16" branch="false"/>
<line number="70" hits="16" branch="false"/>
<line number="72" hits="16" branch="false"/>
<line number="74" hits="16" branch="false"/>
<line number="76" hits="16" branch="false"/>
<line number="78" hits="16" branch="false"/>
<line number="80" hits="16" branch="false"/>
<line number="82" hits="16" branch="false"/>
<line number="84" hits="16" branch="false"/>
</lines>
</method>
<method name="createLdapContext" signature="(Ljava/util/Hashtable;)Ljavax/naming/ldap/LdapContext;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="276" hits="2" branch="false"/>
</lines>
</method>
<method name="getLdapContext" signature="(Ljava/lang/Object;Ljava/lang/Object;)Ljavax/naming/ldap/LdapContext;" line-rate="0.8947368421052632" branch-rate="0.6111111111111112">
<lines>
<line number="228" hits="12" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="229" hits="2" branch="false"/>
<line number="232" hits="10" branch="false"/>
<line number="234" hits="10" branch="false"/>
<line number="235" hits="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="236" hits="10" branch="false"/>
<line number="238" hits="10" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="239" hits="8" branch="false"/>
<line number="241" hits="10" branch="false"/>
<line number="242" hits="10" branch="false"/>
<line number="243" hits="10" branch="false"/>
<line number="246" hits="10" 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="248" hits="0" branch="false"/>
<line number="251" hits="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="252" hits="0" branch="false"/>
<line number="255" hits="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="256" hits="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="261" hits="10" branch="false"/>
<line number="263" hits="2" branch="false"/>
</lines>
</method>
<method name="getLdapContext" signature="(Ljava/lang/String;Ljava/lang/String;)Ljavax/naming/ldap/LdapContext;" line-rate="0.0" branch-rate="0.0">
<lines>
<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="222" hits="0" branch="false"/>
<line number="224" hits="0" branch="false"/>
</lines>
</method>
<method name="getSystemLdapContext" signature="()Ljavax/naming/ldap/LdapContext;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="205" hits="0" branch="false"/>
</lines>
</method>
<method name="setAdditionalEnvironment" signature="(Ljava/util/Map;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="198" hits="0" branch="false"/>
<line number="199" hits="0" branch="false"/>
</lines>
</method>
<method name="setAuthentication" signature="(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="setContextFactoryClassName" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="134" hits="0" branch="false"/>
<line number="135" hits="0" branch="false"/>
</lines>
</method>
<method name="setPrincipalSuffix" signature="(Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="112" hits="2" branch="false"/>
<line number="113" hits="2" branch="false"/>
</lines>
</method>
<method name="setReferral" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="152" hits="0" branch="false"/>
<line number="153" hits="0" branch="false"/>
</lines>
</method>
<method name="setSearchBase" signature="(Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="124" hits="2" branch="false"/>
<line number="125" hits="2" branch="false"/>
</lines>
</method>
<method name="setSystemPassword" signature="(Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="175" hits="2" branch="false"/>
<line number="176" hits="2" branch="false"/>
</lines>
</method>
<method name="setSystemUsername" signature="(Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="163" hits="2" branch="false"/>
<line number="164" hits="2" branch="false"/>
</lines>
</method>
<method name="setUrl" signature="(Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="143" hits="12" branch="false"/>
<line number="144" hits="12" branch="false"/>
</lines>
</method>
<method name="setUsePooling" signature="(Z)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="189" hits="0" branch="false"/>
<line number="190" hits="0" branch="false"/>
</lines>
</method>
<method name="validateAuthenticationInfo" signature="(Ljava/util/Hashtable;)V" line-rate="1.0" branch-rate="0.7">
<lines>
<line number="295" hits="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="298" hits="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="299" hits="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="301" hits="10" branch="false"/>
<line number="305" hits="10" branch="true" condition-coverage="80% (8/10)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="100%"/>
<condition number="2" type="jump" coverage="50%"/>
<condition number="3" type="jump" coverage="100%"/>
<condition number="4" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="308" hits="4" 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="310" hits="8" branch="false"/>
<line number="315" hits="2" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="48" hits="16" branch="false"/>
<line number="66" hits="2" branch="false"/>
<line number="68" hits="16" branch="false"/>
<line number="70" hits="16" branch="false"/>
<line number="72" hits="16" branch="false"/>
<line number="74" hits="16" branch="false"/>
<line number="76" hits="16" branch="false"/>
<line number="78" hits="16" branch="false"/>
<line number="80" hits="16" branch="false"/>
<line number="82" hits="16" branch="false"/>
<line number="84" hits="16" branch="false"/>
<line number="102" hits="0" branch="false"/>
<line number="103" hits="0" branch="false"/>
<line number="112" hits="2" branch="false"/>
<line number="113" hits="2" branch="false"/>
<line number="124" hits="2" branch="false"/>
<line number="125" hits="2" branch="false"/>
<line number="134" hits="0" branch="false"/>
<line number="135" hits="0" branch="false"/>
<line number="143" hits="12" branch="false"/>
<line number="144" hits="12" branch="false"/>
<line number="152" hits="0" branch="false"/>
<line number="153" hits="0" branch="false"/>
<line number="163" hits="2" branch="false"/>
<line number="164" hits="2" branch="false"/>
<line number="175" hits="2" branch="false"/>
<line number="176" hits="2" branch="false"/>
<line number="189" hits="0" branch="false"/>
<line number="190" hits="0" branch="false"/>
<line number="198" hits="0" branch="false"/>
<line number="199" hits="0" branch="false"/>
<line number="205" 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="222" hits="0" branch="false"/>
<line number="224" hits="0" branch="false"/>
<line number="228" hits="12" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="229" hits="2" branch="false"/>
<line number="232" hits="10" branch="false"/>
<line number="234" hits="10" branch="false"/>
<line number="235" hits="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="236" hits="10" branch="false"/>
<line number="238" hits="10" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="239" hits="8" branch="false"/>
<line number="241" hits="10" branch="false"/>
<line number="242" hits="10" branch="false"/>
<line number="243" hits="10" branch="false"/>
<line number="246" hits="10" 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="248" hits="0" branch="false"/>
<line number="251" hits="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="252" hits="0" branch="false"/>
<line number="255" hits="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="256" hits="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="261" hits="10" branch="false"/>
<line number="263" hits="2" branch="false"/>
<line number="276" hits="2" branch="false"/>
<line number="295" hits="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="298" hits="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="299" hits="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="301" hits="10" branch="false"/>
<line number="305" hits="10" branch="true" condition-coverage="80% (8/10)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="100%"/>
<condition number="2" type="jump" coverage="50%"/>
<condition number="3" type="jump" coverage="100%"/>
<condition number="4" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="308" hits="4" 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="310" hits="8" branch="false"/>
<line number="315" hits="2" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.realm.ldap.JndiLdapContextFactory" filename="org/apache/shiro/realm/ldap/JndiLdapContextFactory.java" line-rate="1.0" branch-rate="0.717391304347826" complexity="1.96">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="93" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="113" hits="66" branch="false"/>
<line number="114" hits="66" branch="false"/>
<line number="115" hits="66" branch="false"/>
<line number="116" hits="66" branch="false"/>
<line number="117" hits="66" branch="false"/>
<line number="118" hits="66" branch="false"/>
</lines>
</method>
<method name="createLdapContext" signature="(Ljava/util/Hashtable;)Ljavax/naming/ldap/LdapContext;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="508" hits="2" branch="false"/>
</lines>
</method>
<method name="getAuthenticationMechanism" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="160" hits="22" branch="false"/>
</lines>
</method>
<method name="getContextFactoryClassName" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="184" hits="2" branch="false"/>
</lines>
</method>
<method name="getEnvironment" signature="()Ljava/util/Map;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="201" hits="14" branch="false"/>
</lines>
</method>
<method name="getEnvironmentProperty" signature="(Ljava/lang/String;)Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="228" hits="46" branch="false"/>
</lines>
</method>
<method name="getLdapContext" signature="(Ljava/lang/Object;Ljava/lang/Object;)Ljavax/naming/ldap/LdapContext;" line-rate="1.0" branch-rate="0.6666666666666666">
<lines>
<line number="457" hits="20" branch="false"/>
<line number="458" hits="20" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="459" hits="2" branch="false"/>
<line number="464" hits="18" branch="false"/>
<line number="466" hits="18" branch="false"/>
<line number="467" hits="18" branch="true" condition-coverage="33% (2/6)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
<condition number="2" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="473" hits="18" branch="false"/>
<line number="475" hits="18" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="476" hits="18" branch="false"/>
<line number="478" hits="18" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="479" hits="16" branch="false"/>
<line number="482" hits="18" branch="false"/>
<line number="483" hits="18" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="484" hits="2" branch="false"/>
<line number="487" hits="18" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="488" hits="18" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="493" hits="18" branch="false"/>
<line number="495" hits="10" branch="false"/>
</lines>
</method>
<method name="getLdapContext" signature="(Ljava/lang/String;Ljava/lang/String;)Ljavax/naming/ldap/LdapContext;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="418" hits="2" branch="false"/>
</lines>
</method>
<method name="getReferral" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="312" hits="2" branch="false"/>
</lines>
</method>
<method name="getSystemLdapContext" signature="()Ljavax/naming/ldap/LdapContext;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="402" hits="4" branch="false"/>
</lines>
</method>
<method name="getSystemPassword" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="359" hits="4" branch="false"/>
</lines>
</method>
<method name="getSystemUsername" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="386" hits="20" branch="false"/>
</lines>
</method>
<method name="getUrl" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="331" hits="20" branch="false"/>
</lines>
</method>
<method name="isPoolingConnections" signature="(Ljava/lang/Object;)Z" line-rate="1.0" branch-rate="0.8333333333333334">
<lines>
<line number="435" hits="18" branch="true" condition-coverage="83% (5/6)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="50%"/>
<condition number="2" type="jump" coverage="100%"/>
</conditions>
</line>
</lines>
</method>
<method name="isPoolingEnabled" signature="()Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="266" hits="18" branch="false"/>
</lines>
</method>
<method name="setAuthenticationMechanism" signature="(Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="140" hits="6" branch="false"/>
<line number="141" hits="6" branch="false"/>
</lines>
</method>
<method name="setContextFactoryClassName" signature="(Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="172" hits="66" branch="false"/>
<line number="173" hits="66" branch="false"/>
</lines>
</method>
<method name="setEnvironment" signature="(Ljava/util/Map;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="218" hits="2" branch="false"/>
<line number="219" hits="2" branch="false"/>
</lines>
</method>
<method name="setEnvironmentProperty" signature="(Ljava/lang/String;Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="239" hits="158" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="240" hits="156" branch="false"/>
<line number="242" hits="2" branch="false"/>
<line number="244" hits="158" branch="false"/>
</lines>
</method>
<method name="setPoolingEnabled" signature="(Z)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="289" hits="2" branch="false"/>
<line number="290" hits="2" branch="false"/>
</lines>
</method>
<method name="setReferral" signature="(Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="300" hits="68" branch="false"/>
<line number="301" hits="68" branch="false"/>
</lines>
</method>
<method name="setSystemPassword" signature="(Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="345" hits="4" branch="false"/>
<line number="346" hits="4" branch="false"/>
</lines>
</method>
<method name="setSystemUsername" signature="(Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="373" hits="4" branch="false"/>
<line number="374" hits="4" branch="false"/>
</lines>
</method>
<method name="setUrl" signature="(Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="321" hits="18" branch="false"/>
<line number="322" hits="18" branch="false"/>
</lines>
</method>
<method name="validateAuthenticationInfo" signature="(Ljava/util/Hashtable;)V" line-rate="1.0" branch-rate="0.7">
<lines>
<line number="527" hits="18" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="530" hits="18" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="531" hits="18" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="533" hits="18" branch="false"/>
<line number="537" hits="18" branch="true" condition-coverage="80% (8/10)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="100%"/>
<condition number="2" type="jump" coverage="50%"/>
<condition number="3" type="jump" coverage="100%"/>
<condition number="4" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="540" hits="12" 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="542" hits="8" branch="false"/>
<line number="547" hits="10" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="93" hits="2" branch="false"/>
<line number="113" hits="66" branch="false"/>
<line number="114" hits="66" branch="false"/>
<line number="115" hits="66" branch="false"/>
<line number="116" hits="66" branch="false"/>
<line number="117" hits="66" branch="false"/>
<line number="118" hits="66" branch="false"/>
<line number="140" hits="6" branch="false"/>
<line number="141" hits="6" branch="false"/>
<line number="160" hits="22" branch="false"/>
<line number="172" hits="66" branch="false"/>
<line number="173" hits="66" branch="false"/>
<line number="184" hits="2" branch="false"/>
<line number="201" hits="14" branch="false"/>
<line number="218" hits="2" branch="false"/>
<line number="219" hits="2" branch="false"/>
<line number="228" hits="46" branch="false"/>
<line number="239" hits="158" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="240" hits="156" branch="false"/>
<line number="242" hits="2" branch="false"/>
<line number="244" hits="158" branch="false"/>
<line number="266" hits="18" branch="false"/>
<line number="289" hits="2" branch="false"/>
<line number="290" hits="2" branch="false"/>
<line number="300" hits="68" branch="false"/>
<line number="301" hits="68" branch="false"/>
<line number="312" hits="2" branch="false"/>
<line number="321" hits="18" branch="false"/>
<line number="322" hits="18" branch="false"/>
<line number="331" hits="20" branch="false"/>
<line number="345" hits="4" branch="false"/>
<line number="346" hits="4" branch="false"/>
<line number="359" hits="4" branch="false"/>
<line number="373" hits="4" branch="false"/>
<line number="374" hits="4" branch="false"/>
<line number="386" hits="20" branch="false"/>
<line number="402" hits="4" branch="false"/>
<line number="418" hits="2" branch="false"/>
<line number="435" hits="18" branch="true" condition-coverage="83% (5/6)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="50%"/>
<condition number="2" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="457" hits="20" branch="false"/>
<line number="458" hits="20" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="459" hits="2" branch="false"/>
<line number="464" hits="18" branch="false"/>
<line number="466" hits="18" branch="false"/>
<line number="467" hits="18" branch="true" condition-coverage="33% (2/6)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="50%"/>
<condition number="2" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="473" hits="18" branch="false"/>
<line number="475" hits="18" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="476" hits="18" branch="false"/>
<line number="478" hits="18" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="479" hits="16" branch="false"/>
<line number="482" hits="18" branch="false"/>
<line number="483" hits="18" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="484" hits="2" branch="false"/>
<line number="487" hits="18" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="488" hits="18" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="493" hits="18" branch="false"/>
<line number="495" hits="10" branch="false"/>
<line number="508" hits="2" branch="false"/>
<line number="527" hits="18" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="530" hits="18" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="531" hits="18" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="533" hits="18" branch="false"/>
<line number="537" hits="18" branch="true" condition-coverage="80% (8/10)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="100%"/>
<condition number="2" type="jump" coverage="50%"/>
<condition number="3" type="jump" coverage="100%"/>
<condition number="4" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="540" hits="12" 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="542" hits="8" branch="false"/>
<line number="547" hits="10" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.realm.ldap.JndiLdapRealm" filename="org/apache/shiro/realm/ldap/JndiLdapRealm.java" line-rate="0.8648648648648649" branch-rate="0.7272727272727273" complexity="2.7857142857142856">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="86" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="111" hits="26" branch="false"/>
<line number="113" hits="26" branch="false"/>
<line number="115" hits="26" branch="false"/>
<line number="116" hits="26" branch="false"/>
<line number="117" hits="26" branch="false"/>
</lines>
</method>
<method name="createAuthenticationInfo" signature="(Lorg/apache/shiro/authc/AuthenticationToken;Ljava/lang/Object;Ljava/lang/Object;Ljavax/naming/ldap/LdapContext;)Lorg/apache/shiro/authc/AuthenticationInfo;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="412" hits="4" branch="false"/>
</lines>
</method>
<method name="doGetAuthenticationInfo" signature="(Lorg/apache/shiro/authc/AuthenticationToken;)Lorg/apache/shiro/authc/AuthenticationInfo;" line-rate="0.7272727272727273" branch-rate="1.0">
<lines>
<line number="295" hits="8" branch="false"/>
<line number="296" hits="0" branch="false"/>
<line number="297" hits="0" branch="false"/>
<line number="298" hits="0" branch="false"/>
<line number="299" hits="2" branch="false"/>
<line number="300" hits="2" branch="false"/>
<line number="301" hits="2" branch="false"/>
<line number="302" hits="2" branch="false"/>
<line number="303" hits="2" branch="false"/>
<line number="304" hits="4" branch="false"/>
<line number="306" hits="4" branch="false"/>
</lines>
</method>
<method name="doGetAuthorizationInfo" signature="(Lorg/apache/shiro/subject/PrincipalCollection;)Lorg/apache/shiro/authz/AuthorizationInfo;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="313" hits="0" branch="false"/>
<line number="314" hits="0" branch="false"/>
<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"/>
</lines>
</method>
<method name="getContextFactory" signature="()Lorg/apache/shiro/realm/ldap/LdapContextFactory;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="275" hits="28" branch="false"/>
</lines>
</method>
<method name="getLdapPrincipal" signature="(Lorg/apache/shiro/authc/AuthenticationToken;)Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="339" hits="8" branch="false"/>
<line number="340" hits="8" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="341" hits="6" branch="false"/>
<line number="342" hits="6" branch="false"/>
<line number="344" hits="2" branch="false"/>
</lines>
</method>
<method name="getUserDn" signature="(Ljava/lang/String;)Ljava/lang/String;" line-rate="1.0" branch-rate="0.6428571428571429">
<lines>
<line number="228" hits="12" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="229" hits="2" branch="false"/>
<line number="231" hits="10" branch="false"/>
<line number="232" hits="10" branch="false"/>
<line number="233" hits="10" 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="234" hits="2" branch="false"/>
<line number="237" hits="2" branch="false"/>
<line number="240" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="241" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="242" hits="8" branch="false"/>
<line number="243" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="244" hits="8" branch="false"/>
<line number="246" hits="8" branch="false"/>
<line number="247" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="248" hits="8" branch="false"/>
<line number="250" hits="8" branch="false"/>
</lines>
</method>
<method name="getUserDnPrefix" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="132" hits="8" branch="false"/>
</lines>
</method>
<method name="getUserDnSuffix" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="144" hits="8" branch="false"/>
</lines>
</method>
<method name="getUserDnTemplate" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="209" hits="2" branch="false"/>
</lines>
</method>
<method name="queryForAuthenticationInfo" signature="(Lorg/apache/shiro/authc/AuthenticationToken;Lorg/apache/shiro/realm/ldap/LdapContextFactory;)Lorg/apache/shiro/authc/AuthenticationInfo;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="366" hits="8" branch="false"/>
<line number="367" hits="8" branch="false"/>
<line number="369" hits="8" branch="false"/>
<line number="371" hits="8" branch="false"/>
<line number="373" hits="8" branch="false"/>
<line number="375" hits="8" branch="false"/>
<line number="377" hits="8" branch="false"/>
<line number="379" hits="8" branch="false"/>
</lines>
</method>
<method name="queryForAuthorizationInfo" signature="(Lorg/apache/shiro/subject/PrincipalCollection;Lorg/apache/shiro/realm/ldap/LdapContextFactory;)Lorg/apache/shiro/authz/AuthorizationInfo;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="428" hits="0" branch="false"/>
</lines>
</method>
<method name="setContextFactory" signature="(Lorg/apache/shiro/realm/ldap/LdapContextFactory;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="263" hits="8" branch="false"/>
<line number="264" hits="8" branch="false"/>
</lines>
</method>
<method name="setUserDnTemplate" signature="(Ljava/lang/String;)V" line-rate="1.0" branch-rate="0.8333333333333334">
<lines>
<line number="182" hits="16" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="183" hits="4" branch="false"/>
<line number="184" hits="4" branch="false"/>
<line number="186" hits="12" branch="false"/>
<line number="187" hits="12" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="188" hits="2" branch="false"/>
<line number="191" hits="2" branch="false"/>
<line number="193" hits="10" branch="false"/>
<line number="194" hits="10" branch="false"/>
<line number="195" hits="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="196" hits="10" branch="false"/>
<line number="198" hits="10" branch="false"/>
<line number="199" hits="10" branch="false"/>
<line number="200" hits="10" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="86" hits="2" branch="false"/>
<line number="111" hits="26" branch="false"/>
<line number="113" hits="26" branch="false"/>
<line number="115" hits="26" branch="false"/>
<line number="116" hits="26" branch="false"/>
<line number="117" hits="26" branch="false"/>
<line number="132" hits="8" branch="false"/>
<line number="144" hits="8" branch="false"/>
<line number="182" hits="16" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="183" hits="4" branch="false"/>
<line number="184" hits="4" branch="false"/>
<line number="186" hits="12" branch="false"/>
<line number="187" hits="12" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="188" hits="2" branch="false"/>
<line number="191" hits="2" branch="false"/>
<line number="193" hits="10" branch="false"/>
<line number="194" hits="10" branch="false"/>
<line number="195" hits="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="196" hits="10" branch="false"/>
<line number="198" hits="10" branch="false"/>
<line number="199" hits="10" branch="false"/>
<line number="200" hits="10" branch="false"/>
<line number="209" hits="2" branch="false"/>
<line number="228" hits="12" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="229" hits="2" branch="false"/>
<line number="231" hits="10" branch="false"/>
<line number="232" hits="10" branch="false"/>
<line number="233" hits="10" 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="234" hits="2" branch="false"/>
<line number="237" hits="2" branch="false"/>
<line number="240" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="241" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="242" hits="8" branch="false"/>
<line number="243" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="244" hits="8" branch="false"/>
<line number="246" hits="8" branch="false"/>
<line number="247" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="248" hits="8" branch="false"/>
<line number="250" hits="8" branch="false"/>
<line number="263" hits="8" branch="false"/>
<line number="264" hits="8" branch="false"/>
<line number="275" hits="28" branch="false"/>
<line number="295" hits="8" branch="false"/>
<line number="296" hits="0" branch="false"/>
<line number="297" hits="0" branch="false"/>
<line number="298" hits="0" branch="false"/>
<line number="299" hits="2" branch="false"/>
<line number="300" hits="2" branch="false"/>
<line number="301" hits="2" branch="false"/>
<line number="302" hits="2" branch="false"/>
<line number="303" hits="2" branch="false"/>
<line number="304" hits="4" branch="false"/>
<line number="306" hits="4" branch="false"/>
<line number="313" hits="0" branch="false"/>
<line number="314" hits="0" branch="false"/>
<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="339" hits="8" branch="false"/>
<line number="340" hits="8" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="341" hits="6" branch="false"/>
<line number="342" hits="6" branch="false"/>
<line number="344" hits="2" branch="false"/>
<line number="366" hits="8" branch="false"/>
<line number="367" hits="8" branch="false"/>
<line number="369" hits="8" branch="false"/>
<line number="371" hits="8" branch="false"/>
<line number="373" hits="8" branch="false"/>
<line number="375" hits="8" branch="false"/>
<line number="377" hits="8" branch="false"/>
<line number="379" hits="8" branch="false"/>
<line number="412" hits="4" branch="false"/>
<line number="428" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.realm.ldap.LdapContextFactory" filename="org/apache/shiro/realm/ldap/LdapContextFactory.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.realm.ldap.LdapUtils" filename="org/apache/shiro/realm/ldap/LdapUtils.java" line-rate="0.20833333333333334" branch-rate="0.3333333333333333" complexity="2.6666666666666665">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="43" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="38" hits="0" branch="false"/>
</lines>
</method>
<method name="closeContext" signature="(Ljavax/naming/ldap/LdapContext;)V" line-rate="0.6666666666666666" branch-rate="1.0">
<lines>
<line number="53" hits="8" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="54" hits="4" branch="false"/>
<line number="56" hits="0" branch="false"/>
<line number="57" hits="0" branch="false"/>
<line number="58" hits="8" branch="false"/>
<line number="59" hits="8" branch="false"/>
</lines>
</method>
<method name="closeEnumeration" signature="(Ljavax/naming/NamingEnumeration;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="89" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="90" hits="0" branch="false"/>
<line number="92" hits="0" branch="false"/>
<line number="93" hits="0" branch="false"/>
<line number="94" hits="0" branch="false"/>
<line number="95" hits="0" branch="false"/>
</lines>
</method>
<method name="getAllAttributeValues" signature="(Ljavax/naming/directory/Attribute;)Ljava/util/Collection;" 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="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="false"/>
<line number="75" hits="0" branch="false"/>
<line number="76" hits="0" branch="false"/>
<line number="78" hits="0" branch="false"/>
<line number="79" hits="0" branch="false"/>
<line number="81" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="38" hits="0" branch="false"/>
<line number="43" hits="2" branch="false"/>
<line number="53" hits="8" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="54" hits="4" branch="false"/>
<line number="56" hits="0" branch="false"/>
<line number="57" hits="0" branch="false"/>
<line number="58" hits="8" branch="false"/>
<line number="59" hits="8" branch="false"/>
<line number="69" hits="0" branch="false"/>
<line number="70" 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="false"/>
<line number="75" hits="0" branch="false"/>
<line number="76" hits="0" branch="false"/>
<line number="78" hits="0" branch="false"/>
<line number="79" hits="0" branch="false"/>
<line number="81" hits="0" branch="false"/>
<line number="89" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="90" hits="0" branch="false"/>
<line number="92" hits="0" branch="false"/>
<line number="93" hits="0" branch="false"/>
<line number="94" hits="0" branch="false"/>
<line number="95" hits="0" branch="false"/>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.realm.text" line-rate="0.7125" branch-rate="0.5263157894736842" complexity="2.697674418604651">
<classes>
<class name="org.apache.shiro.realm.text.IniRealm" filename="org/apache/shiro/realm/text/IniRealm.java" line-rate="0.7777777777777778" branch-rate="0.6818181818181818" complexity="2.5555555555555554">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="50" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="56" hits="46" branch="false"/>
<line number="57" hits="46" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="92" hits="0" branch="false"/>
<line number="93" hits="0" branch="false"/>
<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"/>
</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="73" hits="26" branch="false"/>
<line number="74" hits="26" branch="false"/>
<line number="75" hits="26" branch="false"/>
</lines>
</method>
<method name="getIni" signature="()Lorg/apache/shiro/config/Ini;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="114" hits="20" branch="false"/>
</lines>
</method>
<method name="getResourcePath" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="100" hits="20" branch="false"/>
</lines>
</method>
<method name="onInit" signature="()V" line-rate="0.7272727272727273" branch-rate="0.5625">
<lines>
<line number="129" hits="20" branch="false"/>
<line number="134" hits="20" branch="false"/>
<line number="135" hits="20" branch="false"/>
<line number="137" hits="20" 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="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="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="147" hits="0" branch="false"/>
<line number="150" hits="20" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="151" hits="6" branch="false"/>
<line number="153" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="154" hits="4" branch="false"/>
<line number="155" hits="4" branch="false"/>
<line number="156" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="157" hits="4" branch="false"/>
<line number="162" hits="20" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="163" hits="2" branch="false"/>
<line number="165" hits="2" branch="false"/>
<line number="168" hits="18" branch="false"/>
<line number="169" hits="18" branch="false"/>
</lines>
</method>
<method name="processDefinitions" signature="(Lorg/apache/shiro/config/Ini;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="172" hits="44" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="173" hits="4" branch="false"/>
<line number="174" hits="4" branch="false"/>
<line number="177" hits="40" branch="false"/>
<line number="178" hits="40" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="179" hits="8" branch="false"/>
<line number="180" hits="8" branch="false"/>
<line number="183" hits="40" branch="false"/>
<line number="184" hits="40" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="185" hits="38" branch="false"/>
<line number="186" hits="38" branch="false"/>
<line number="188" hits="4" branch="false"/>
<line number="190" hits="2" branch="false"/>
<line number="192" hits="40" 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="124" hits="18" branch="false"/>
<line number="125" hits="18" branch="false"/>
</lines>
</method>
<method name="setResourcePath" signature="(Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="104" hits="4" branch="false"/>
<line number="105" hits="4" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="50" hits="2" branch="false"/>
<line number="56" hits="46" branch="false"/>
<line number="57" hits="46" branch="false"/>
<line number="73" hits="26" branch="false"/>
<line number="74" hits="26" branch="false"/>
<line number="75" hits="26" branch="false"/>
<line number="92" hits="0" branch="false"/>
<line number="93" hits="0" branch="false"/>
<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="20" branch="false"/>
<line number="104" hits="4" branch="false"/>
<line number="105" hits="4" branch="false"/>
<line number="114" hits="20" branch="false"/>
<line number="124" hits="18" branch="false"/>
<line number="125" hits="18" branch="false"/>
<line number="129" hits="20" branch="false"/>
<line number="134" hits="20" branch="false"/>
<line number="135" hits="20" branch="false"/>
<line number="137" hits="20" 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="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="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="147" hits="0" branch="false"/>
<line number="150" hits="20" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="151" hits="6" branch="false"/>
<line number="153" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="154" hits="4" branch="false"/>
<line number="155" hits="4" branch="false"/>
<line number="156" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="157" hits="4" branch="false"/>
<line number="162" hits="20" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="163" hits="2" branch="false"/>
<line number="165" hits="2" branch="false"/>
<line number="168" hits="18" branch="false"/>
<line number="169" hits="18" branch="false"/>
<line number="172" hits="44" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="173" hits="4" branch="false"/>
<line number="174" hits="4" branch="false"/>
<line number="177" hits="40" branch="false"/>
<line number="178" hits="40" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="179" hits="8" branch="false"/>
<line number="180" hits="8" branch="false"/>
<line number="183" hits="40" branch="false"/>
<line number="184" hits="40" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="185" hits="38" branch="false"/>
<line number="186" hits="38" branch="false"/>
<line number="188" hits="4" branch="false"/>
<line number="190" hits="2" branch="false"/>
<line number="192" hits="40" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.realm.text.PropertiesRealm" filename="org/apache/shiro/realm/text/PropertiesRealm.java" line-rate="0.5321100917431193" branch-rate="0.32142857142857145" complexity="2.619047619047619">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="99" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="101" hits="2" branch="false"/>
<line number="102" hits="2" branch="false"/>
<line number="103" hits="2" branch="false"/>
<line number="105" hits="2" branch="false"/>
<line number="108" hits="2" branch="false"/>
<line number="109" hits="2" branch="false"/>
</lines>
</method>
<method name="afterRoleCacheSet" signature="()V" line-rate="0.75" branch-rate="0.25">
<lines>
<line number="162" hits="2" branch="false"/>
<line number="165" 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="166" hits="0" branch="false"/>
<line number="168" hits="2" branch="false"/>
</lines>
</method>
<method name="createRealmEntitiesFromProperties" signature="(Ljava/util/Properties;)V" line-rate="0.9090909090909091" branch-rate="0.75">
<lines>
<line number="302" hits="2" branch="false"/>
<line number="303" hits="2" branch="false"/>
<line number="305" hits="2" branch="false"/>
<line number="307" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="309" hits="4" branch="false"/>
<line number="310" hits="4" branch="false"/>
<line number="311" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="312" hits="4" branch="false"/>
<line number="315" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="316" hits="2" branch="false"/>
<line number="317" hits="2" branch="false"/>
<line number="318" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="319" hits="2" branch="false"/>
<line number="320" hits="2" branch="false"/>
<line number="321" hits="2" branch="false"/>
<line number="322" hits="0" branch="false"/>
<line number="324" hits="0" branch="false"/>
<line number="326" hits="4" branch="false"/>
<line number="328" hits="2" branch="false"/>
<line number="329" hits="2" branch="false"/>
<line number="330" hits="2" branch="false"/>
<line number="331" hits="2" branch="false"/>
</lines>
</method>
<method name="destroy" signature="()V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="175" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<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="false"/>
<line number="183" hits="0" branch="false"/>
<line number="184" hits="0" branch="false"/>
<line number="185" hits="0" branch="false"/>
</lines>
</method>
<method name="getName" signature="(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="334" hits="4" branch="false"/>
</lines>
</method>
<method name="getRolename" signature="(Ljava/lang/String;)Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="350" hits="2" branch="false"/>
</lines>
</method>
<method name="getUsername" signature="(Ljava/lang/String;)Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="346" hits="2" branch="false"/>
</lines>
</method>
<method name="isFileModified" signature="()Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="269" hits="0" branch="false"/>
<line number="270" hits="0" branch="false"/>
<line number="271" hits="0" branch="false"/>
<line number="272" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="273" hits="0" branch="false"/>
<line number="274" hits="0" branch="false"/>
<line number="276" hits="0" branch="false"/>
</lines>
</method>
<method name="isRolename" signature="(Ljava/lang/String;)Z" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="342" 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>
</lines>
</method>
<method name="isSourceModified" signature="()Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="264" 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="isUsername" signature="(Ljava/lang/String;)Z" line-rate="1.0" branch-rate="0.75">
<lines>
<line number="338" hits="4" branch="true" condition-coverage="75% (3/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="100%"/>
</conditions>
</line>
</lines>
</method>
<method name="loadProperties" signature="()V" line-rate="0.8571428571428571" branch-rate="0.5">
<lines>
<line number="205" 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="206" hits="0" branch="false"/>
<line number="210" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="211" hits="2" branch="false"/>
<line number="214" hits="2" branch="false"/>
<line number="215" hits="2" branch="false"/>
<line number="216" hits="2" branch="false"/>
</lines>
</method>
<method name="loadProperties" signature="(Ljava/lang/String;)Ljava/util/Properties;" line-rate="0.7058823529411765" branch-rate="0.375">
<lines>
<line number="219" hits="2" branch="false"/>
<line number="221" hits="2" branch="false"/>
<line number="224" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="225" hits="2" branch="false"/>
<line number="228" hits="2" branch="false"/>
<line number="229" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<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="235" hits="0" branch="false"/>
<line number="238" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="239" hits="2" branch="false"/>
<line number="242" hits="2" branch="false"/>
<line number="245" hits="0" branch="false"/>
<line number="246" hits="0" branch="false"/>
<line number="249" hits="2" branch="false"/>
<line number="250" hits="2" branch="false"/>
<line number="252" hits="2" branch="false"/>
</lines>
</method>
<method name="onInit" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="156" hits="2" branch="false"/>
<line number="158" hits="2" branch="false"/>
<line number="159" hits="2" branch="false"/>
</lines>
</method>
<method name="reloadPropertiesIfNecessary" signature="()V" line-rate="0.0" branch-rate="0.0">
<lines>
<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="260" hits="0" branch="false"/>
</lines>
</method>
<method name="restart" signature="()V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="282" 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="283" hits="0" branch="false"/>
<line number="287" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="288" hits="0" branch="false"/>
<line number="292" hits="0" branch="false"/>
<line number="293" hits="0" branch="false"/>
<line number="295" hits="0" branch="false"/>
<line number="296" hits="0" branch="false"/>
<line number="297" hits="0" branch="false"/>
</lines>
</method>
<method name="run" signature="()V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="196" hits="0" branch="false"/>
<line number="197" hits="0" branch="false"/>
<line number="198" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="199" hits="0" branch="false"/>
<line number="201" hits="0" branch="false"/>
<line number="202" hits="0" branch="false"/>
</lines>
</method>
<method name="setReloadIntervalSeconds" signature="(I)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="147" hits="0" branch="false"/>
<line number="148" hits="0" branch="false"/>
</lines>
</method>
<method name="setResourcePath" signature="(Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="135" hits="2" branch="false"/>
<line number="136" hits="2" branch="false"/>
</lines>
</method>
<method name="setUseXmlFormat" signature="(Z)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="122" hits="0" branch="false"/>
<line number="123" hits="0" branch="false"/>
</lines>
</method>
<method name="startReloadThread" signature="()V" line-rate="0.0" branch-rate="0.0">
<lines>
<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="190" hits="0" branch="false"/>
<line number="192" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="99" hits="2" branch="false"/>
<line number="101" hits="2" branch="false"/>
<line number="102" hits="2" branch="false"/>
<line number="103" hits="2" branch="false"/>
<line number="105" hits="2" branch="false"/>
<line number="108" hits="2" branch="false"/>
<line number="109" hits="2" branch="false"/>
<line number="122" hits="0" branch="false"/>
<line number="123" hits="0" branch="false"/>
<line number="135" hits="2" branch="false"/>
<line number="136" hits="2" branch="false"/>
<line number="147" hits="0" branch="false"/>
<line number="148" hits="0" branch="false"/>
<line number="156" hits="2" branch="false"/>
<line number="158" hits="2" branch="false"/>
<line number="159" hits="2" branch="false"/>
<line number="162" hits="2" branch="false"/>
<line number="165" 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="166" hits="0" branch="false"/>
<line number="168" hits="2" branch="false"/>
<line number="175" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<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="false"/>
<line number="183" hits="0" branch="false"/>
<line number="184" hits="0" branch="false"/>
<line number="185" hits="0" branch="false"/>
<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="190" hits="0" branch="false"/>
<line number="192" hits="0" branch="false"/>
<line number="196" hits="0" branch="false"/>
<line number="197" hits="0" branch="false"/>
<line number="198" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="199" hits="0" branch="false"/>
<line number="201" hits="0" branch="false"/>
<line number="202" hits="0" branch="false"/>
<line number="205" 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="206" hits="0" branch="false"/>
<line number="210" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="211" hits="2" branch="false"/>
<line number="214" hits="2" branch="false"/>
<line number="215" hits="2" branch="false"/>
<line number="216" hits="2" branch="false"/>
<line number="219" hits="2" branch="false"/>
<line number="221" hits="2" branch="false"/>
<line number="224" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="225" hits="2" branch="false"/>
<line number="228" hits="2" branch="false"/>
<line number="229" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<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="235" hits="0" branch="false"/>
<line number="238" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="239" hits="2" branch="false"/>
<line number="242" hits="2" branch="false"/>
<line number="245" hits="0" branch="false"/>
<line number="246" hits="0" branch="false"/>
<line number="249" hits="2" branch="false"/>
<line number="250" hits="2" branch="false"/>
<line number="252" hits="2" 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="260" hits="0" branch="false"/>
<line number="264" 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="269" hits="0" branch="false"/>
<line number="270" hits="0" branch="false"/>
<line number="271" hits="0" branch="false"/>
<line number="272" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="273" hits="0" branch="false"/>
<line number="274" hits="0" branch="false"/>
<line number="276" hits="0" branch="false"/>
<line number="282" 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="283" hits="0" branch="false"/>
<line number="287" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="288" hits="0" branch="false"/>
<line number="292" hits="0" branch="false"/>
<line number="293" hits="0" branch="false"/>
<line number="295" hits="0" branch="false"/>
<line number="296" hits="0" branch="false"/>
<line number="297" hits="0" branch="false"/>
<line number="302" hits="2" branch="false"/>
<line number="303" hits="2" branch="false"/>
<line number="305" hits="2" branch="false"/>
<line number="307" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="309" hits="4" branch="false"/>
<line number="310" hits="4" branch="false"/>
<line number="311" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="312" hits="4" branch="false"/>
<line number="315" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="316" hits="2" branch="false"/>
<line number="317" hits="2" branch="false"/>
<line number="318" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="319" hits="2" branch="false"/>
<line number="320" hits="2" branch="false"/>
<line number="321" hits="2" branch="false"/>
<line number="322" hits="0" branch="false"/>
<line number="324" hits="0" branch="false"/>
<line number="326" hits="4" branch="false"/>
<line number="328" hits="2" branch="false"/>
<line number="329" hits="2" branch="false"/>
<line number="330" hits="2" branch="false"/>
<line number="331" hits="2" branch="false"/>
<line number="334" hits="4" branch="false"/>
<line number="338" hits="4" 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="342" 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="346" hits="2" branch="false"/>
<line number="350" hits="2" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.realm.text.TextConfigurationRealm" filename="org/apache/shiro/realm/text/TextConfigurationRealm.java" line-rate="0.922077922077922" branch-rate="0.75" complexity="2.923076923076923">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="54" hits="62" branch="false"/>
<line number="55" hits="62" branch="false"/>
</lines>
</method>
<method name="getRoleDefinitions" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="94" hits="36" branch="false"/>
</lines>
</method>
<method name="getUserDefinitions" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="70" hits="36" branch="false"/>
</lines>
</method>
<method name="onInit" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="65" hits="32" branch="false"/>
<line number="66" hits="32" branch="false"/>
<line number="67" hits="32" branch="false"/>
</lines>
</method>
<method name="processDefinitions" signature="()V" line-rate="0.5714285714285714" branch-rate="1.0">
<lines>
<line number="125" hits="34" branch="false"/>
<line number="126" hits="34" branch="false"/>
<line number="127" hits="0" branch="false"/>
<line number="128" hits="0" branch="false"/>
<line number="129" hits="0" branch="false"/>
<line number="130" hits="34" branch="false"/>
<line number="131" hits="34" branch="false"/>
</lines>
</method>
<method name="processRoleDefinitions" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="134" hits="36" branch="false"/>
<line number="135" hits="36" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="136" hits="22" branch="false"/>
<line number="138" hits="14" branch="false"/>
<line number="139" hits="14" branch="false"/>
<line number="140" hits="14" branch="false"/>
</lines>
</method>
<method name="processRoleDefinitions" signature="(Ljava/util/Map;)V" line-rate="0.9166666666666666" branch-rate="0.625">
<lines>
<line number="143" hits="22" 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="144" hits="0" branch="false"/>
<line number="146" hits="22" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="147" hits="34" branch="false"/>
<line number="149" hits="34" branch="false"/>
<line number="150" hits="34" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="151" hits="34" branch="false"/>
<line number="152" hits="34" branch="false"/>
<line number="155" hits="34" branch="false"/>
<line number="156" hits="34" branch="false"/>
<line number="157" hits="34" branch="false"/>
<line number="158" hits="22" branch="false"/>
</lines>
</method>
<method name="processUserDefinitions" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="161" hits="36" branch="false"/>
<line number="162" hits="36" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="163" hits="22" branch="false"/>
<line number="166" hits="14" branch="false"/>
<line number="168" hits="14" branch="false"/>
<line number="169" hits="14" branch="false"/>
</lines>
</method>
<method name="processUserDefinitions" signature="(Ljava/util/Map;)V" line-rate="0.9523809523809523" branch-rate="0.7857142857142857">
<lines>
<line number="172" hits="52" 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="173" hits="0" branch="false"/>
<line number="175" hits="52" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="177" hits="74" branch="false"/>
<line number="179" hits="74" branch="false"/>
<line number="181" hits="74" branch="false"/>
<line number="183" hits="74" branch="false"/>
<line number="184" hits="74" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="185" hits="74" branch="false"/>
<line number="186" hits="74" branch="false"/>
<line number="188" hits="74" branch="false"/>
<line number="190" hits="74" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="191" hits="128" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="192" hits="76" branch="false"/>
<line number="193" hits="76" branch="false"/>
<line number="195" hits="76" branch="false"/>
<line number="196" hits="76" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="197" hits="48" branch="false"/>
<line number="201" hits="22" branch="false"/>
<line number="203" hits="74" branch="false"/>
<line number="204" hits="52" branch="false"/>
</lines>
</method>
<method name="setRoleDefinitions" signature="(Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="120" hits="14" branch="false"/>
<line number="121" hits="14" branch="false"/>
</lines>
</method>
<method name="setUserDefinitions" signature="(Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="90" hits="14" branch="false"/>
<line number="91" hits="14" branch="false"/>
</lines>
</method>
<method name="toLines" signature="(Ljava/lang/String;)Ljava/util/Set;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="207" hits="28" branch="false"/>
<line number="208" hits="28" branch="false"/>
<line number="209" hits="80" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="210" hits="52" branch="false"/>
<line number="212" hits="28" branch="false"/>
</lines>
</method>
<method name="toMap" signature="(Ljava/util/Collection;)Ljava/util/Map;" line-rate="0.8888888888888888" branch-rate="0.625">
<lines>
<line number="216" hits="28" 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="217" hits="0" branch="false"/>
<line number="220" hits="28" branch="false"/>
<line number="221" hits="28" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="222" hits="52" branch="false"/>
<line number="223" hits="52" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="224" hits="52" branch="false"/>
<line number="226" hits="52" branch="false"/>
<line number="228" hits="28" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="54" hits="62" branch="false"/>
<line number="55" hits="62" branch="false"/>
<line number="65" hits="32" branch="false"/>
<line number="66" hits="32" branch="false"/>
<line number="67" hits="32" branch="false"/>
<line number="70" hits="36" branch="false"/>
<line number="90" hits="14" branch="false"/>
<line number="91" hits="14" branch="false"/>
<line number="94" hits="36" branch="false"/>
<line number="120" hits="14" branch="false"/>
<line number="121" hits="14" branch="false"/>
<line number="125" hits="34" branch="false"/>
<line number="126" hits="34" branch="false"/>
<line number="127" hits="0" branch="false"/>
<line number="128" hits="0" branch="false"/>
<line number="129" hits="0" branch="false"/>
<line number="130" hits="34" branch="false"/>
<line number="131" hits="34" branch="false"/>
<line number="134" hits="36" branch="false"/>
<line number="135" hits="36" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="136" hits="22" branch="false"/>
<line number="138" hits="14" branch="false"/>
<line number="139" hits="14" branch="false"/>
<line number="140" hits="14" branch="false"/>
<line number="143" hits="22" 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="144" hits="0" branch="false"/>
<line number="146" hits="22" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="147" hits="34" branch="false"/>
<line number="149" hits="34" branch="false"/>
<line number="150" hits="34" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="151" hits="34" branch="false"/>
<line number="152" hits="34" branch="false"/>
<line number="155" hits="34" branch="false"/>
<line number="156" hits="34" branch="false"/>
<line number="157" hits="34" branch="false"/>
<line number="158" hits="22" branch="false"/>
<line number="161" hits="36" branch="false"/>
<line number="162" hits="36" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="163" hits="22" branch="false"/>
<line number="166" hits="14" branch="false"/>
<line number="168" hits="14" branch="false"/>
<line number="169" hits="14" branch="false"/>
<line number="172" hits="52" 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="173" hits="0" branch="false"/>
<line number="175" hits="52" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="177" hits="74" branch="false"/>
<line number="179" hits="74" branch="false"/>
<line number="181" hits="74" branch="false"/>
<line number="183" hits="74" branch="false"/>
<line number="184" hits="74" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="185" hits="74" branch="false"/>
<line number="186" hits="74" branch="false"/>
<line number="188" hits="74" branch="false"/>
<line number="190" hits="74" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="191" hits="128" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="192" hits="76" branch="false"/>
<line number="193" hits="76" branch="false"/>
<line number="195" hits="76" branch="false"/>
<line number="196" hits="76" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="197" hits="48" branch="false"/>
<line number="201" hits="22" branch="false"/>
<line number="203" hits="74" branch="false"/>
<line number="204" hits="52" branch="false"/>
<line number="207" hits="28" branch="false"/>
<line number="208" hits="28" branch="false"/>
<line number="209" hits="80" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="210" hits="52" branch="false"/>
<line number="212" hits="28" branch="false"/>
<line number="216" hits="28" 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="217" hits="0" branch="false"/>
<line number="220" hits="28" branch="false"/>
<line number="221" hits="28" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="222" hits="52" branch="false"/>
<line number="223" hits="52" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="224" hits="52" branch="false"/>
<line number="226" hits="52" branch="false"/>
<line number="228" hits="28" branch="false"/>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.session" line-rate="0.36923076923076925" branch-rate="0.5" complexity="1.0392156862745099">
<classes>
<class name="org.apache.shiro.session.ExpiredSessionException" filename="org/apache/shiro/session/ExpiredSessionException.java" line-rate="0.25" 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="34" hits="0" branch="false"/>
<line number="35" 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="43" hits="12" branch="false"/>
<line number="44" hits="12" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/lang/Throwable;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="62" hits="0" branch="false"/>
<line number="63" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Throwable;)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>
</methods>
<lines>
<line number="34" hits="0" branch="false"/>
<line number="35" hits="0" branch="false"/>
<line number="43" hits="12" branch="false"/>
<line number="44" hits="12" branch="false"/>
<line number="52" hits="0" branch="false"/>
<line number="53" hits="0" branch="false"/>
<line number="62" hits="0" branch="false"/>
<line number="63" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.session.InvalidSessionException" filename="org/apache/shiro/session/InvalidSessionException.java" line-rate="0.25" 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="40" hits="0" branch="false"/>
<line number="41" 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="49" hits="14" branch="false"/>
<line number="50" hits="14" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/lang/Throwable;)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="&lt;init&gt;" signature="(Ljava/lang/Throwable;)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="40" hits="0" branch="false"/>
<line number="41" hits="0" branch="false"/>
<line number="49" hits="14" branch="false"/>
<line number="50" hits="14" 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.session.ProxiedSession" filename="org/apache/shiro/session/ProxiedSession.java" line-rate="0.6666666666666666" branch-rate="0.5" complexity="1.1538461538461537">
<methods>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/session/Session;)V" line-rate="0.8" branch-rate="0.5">
<lines>
<line number="47" hits="112" branch="false"/>
<line number="48" hits="112" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="49" hits="0" branch="false"/>
<line number="51" hits="112" branch="false"/>
<line number="52" hits="112" branch="false"/>
</lines>
</method>
<method name="getAttribute" signature="(Ljava/lang/Object;)Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="121" hits="392" branch="false"/>
</lines>
</method>
<method name="getAttributeKeys" signature="()Ljava/util/Collection;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="114" hits="2" branch="false"/>
</lines>
</method>
<method name="getHost" signature="()Ljava/lang/String;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="93" hits="0" branch="false"/>
</lines>
</method>
<method name="getId" signature="()Ljava/io/Serializable;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="58" hits="566" branch="false"/>
</lines>
</method>
<method name="getLastAccessTime" signature="()Ljava/util/Date;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="72" hits="0" branch="false"/>
</lines>
</method>
<method name="getStartTimestamp" signature="()Ljava/util/Date;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="65" hits="0" branch="false"/>
</lines>
</method>
<method name="getTimeout" signature="()J" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="79" hits="0" branch="false"/>
</lines>
</method>
<method name="removeAttribute" signature="(Ljava/lang/Object;)Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="135" hits="106" branch="false"/>
</lines>
</method>
<method name="setAttribute" signature="(Ljava/lang/Object;Ljava/lang/Object;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="128" hits="102" branch="false"/>
<line number="129" hits="102" branch="false"/>
</lines>
</method>
<method name="setTimeout" signature="(J)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="86" hits="4" branch="false"/>
<line number="87" hits="2" branch="false"/>
</lines>
</method>
<method name="stop" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="107" hits="36" branch="false"/>
<line number="108" hits="36" branch="false"/>
</lines>
</method>
<method name="touch" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="100" hits="0" branch="false"/>
<line number="101" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="47" hits="112" branch="false"/>
<line number="48" hits="112" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="49" hits="0" branch="false"/>
<line number="51" hits="112" branch="false"/>
<line number="52" hits="112" branch="false"/>
<line number="58" hits="566" branch="false"/>
<line number="65" hits="0" branch="false"/>
<line number="72" hits="0" branch="false"/>
<line number="79" hits="0" branch="false"/>
<line number="86" hits="4" branch="false"/>
<line number="87" hits="2" branch="false"/>
<line number="93" hits="0" branch="false"/>
<line number="100" hits="0" branch="false"/>
<line number="101" hits="0" branch="false"/>
<line number="107" hits="36" branch="false"/>
<line number="108" hits="36" branch="false"/>
<line number="114" hits="2" branch="false"/>
<line number="121" hits="392" branch="false"/>
<line number="128" hits="102" branch="false"/>
<line number="129" hits="102" branch="false"/>
<line number="135" hits="106" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.session.Session" filename="org/apache/shiro/session/Session.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.session.SessionException" filename="org/apache/shiro/session/SessionException.java" line-rate="0.25" 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="36" hits="0" branch="false"/>
<line number="37" 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="45" hits="14" branch="false"/>
<line number="46" hits="14" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/lang/Throwable;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="64" hits="0" branch="false"/>
<line number="65" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Throwable;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="54" hits="0" branch="false"/>
<line number="55" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="36" hits="0" branch="false"/>
<line number="37" hits="0" branch="false"/>
<line number="45" hits="14" branch="false"/>
<line number="46" hits="14" branch="false"/>
<line number="54" hits="0" branch="false"/>
<line number="55" hits="0" branch="false"/>
<line number="64" hits="0" branch="false"/>
<line number="65" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.session.SessionListener" filename="org/apache/shiro/session/SessionListener.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.session.SessionListenerAdapter" filename="org/apache/shiro/session/SessionListenerAdapter.java" line-rate="0.5" 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="27" hits="10" branch="false"/>
</lines>
</method>
<method name="onExpiration" signature="(Lorg/apache/shiro/session/Session;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="54" hits="0" branch="false"/>
</lines>
</method>
<method name="onStart" signature="(Lorg/apache/shiro/session/Session;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="36" hits="6" branch="false"/>
</lines>
</method>
<method name="onStop" signature="(Lorg/apache/shiro/session/Session;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="45" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="27" hits="10" branch="false"/>
<line number="36" hits="6" branch="false"/>
<line number="45" hits="0" branch="false"/>
<line number="54" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.session.StoppedSessionException" filename="org/apache/shiro/session/StoppedSessionException.java" line-rate="0.25" 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="34" hits="0" branch="false"/>
<line number="35" 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="43" hits="12" branch="false"/>
<line number="44" hits="12" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/lang/Throwable;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="62" hits="0" branch="false"/>
<line number="63" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Throwable;)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>
</methods>
<lines>
<line number="34" hits="0" branch="false"/>
<line number="35" hits="0" branch="false"/>
<line number="43" hits="12" branch="false"/>
<line number="44" hits="12" branch="false"/>
<line number="52" hits="0" branch="false"/>
<line number="53" hits="0" branch="false"/>
<line number="62" hits="0" branch="false"/>
<line number="63" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.session.UnknownSessionException" filename="org/apache/shiro/session/UnknownSessionException.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="34" hits="0" branch="false"/>
<line number="35" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="43" hits="0" branch="false"/>
<line number="44" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/lang/Throwable;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="62" hits="0" branch="false"/>
<line number="63" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Throwable;)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>
</methods>
<lines>
<line number="34" hits="0" branch="false"/>
<line number="35" hits="0" branch="false"/>
<line number="43" hits="0" branch="false"/>
<line number="44" hits="0" branch="false"/>
<line number="52" hits="0" branch="false"/>
<line number="53" hits="0" branch="false"/>
<line number="62" hits="0" branch="false"/>
<line number="63" hits="0" branch="false"/>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.session.mgt" line-rate="0.7491349480968859" branch-rate="0.45564516129032256" complexity="1.766839378238342">
<classes>
<class name="org.apache.shiro.session.mgt.AbstractNativeSessionManager" filename="org/apache/shiro/session/mgt/AbstractNativeSessionManager.java" line-rate="0.7608695652173914" branch-rate="0.5909090909090909" complexity="1.4705882352941178">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="41" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="45" hits="90" branch="false"/>
<line number="46" hits="90" branch="false"/>
<line number="47" hits="90" branch="false"/>
</lines>
</method>
<method name="afterStopped" signature="(Lorg/apache/shiro/session/Session;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="263" hits="0" branch="false"/>
</lines>
</method>
<method name="applyGlobalSessionTimeout" signature="(Lorg/apache/shiro/session/Session;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="84" hits="56" branch="false"/>
<line number="85" hits="56" branch="false"/>
<line number="86" hits="56" branch="false"/>
</lines>
</method>
<method name="beforeInvalidNotification" signature="(Lorg/apache/shiro/session/Session;)Lorg/apache/shiro/session/Session;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="141" hits="36" branch="false"/>
</lines>
</method>
<method name="checkValid" signature="(Lorg/apache/shiro/session/mgt/SessionKey;)V" line-rate="0.5" branch-rate="1.0">
<lines>
<line number="267" hits="2" branch="false"/>
<line number="268" hits="0" 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="1.0" branch-rate="1.0">
<lines>
<line number="123" hits="56" 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.0" branch-rate="1.0">
<lines>
<line number="127" hits="0" branch="false"/>
</lines>
</method>
<method name="getAttribute" signature="(Lorg/apache/shiro/session/mgt/SessionKey;Ljava/lang/Object;)Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="209" hits="214" branch="false"/>
</lines>
</method>
<method name="getAttributeKeys" signature="(Lorg/apache/shiro/session/mgt/SessionKey;)Ljava/util/Collection;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="201" hits="0" branch="false"/>
<line number="202" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="203" hits="0" branch="false"/>
<line number="205" hits="0" branch="false"/>
</lines>
</method>
<method name="getHost" signature="(Lorg/apache/shiro/session/mgt/SessionKey;)Ljava/lang/String;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="197" hits="0" branch="false"/>
</lines>
</method>
<method name="getLastAccessTime" signature="(Lorg/apache/shiro/session/mgt/SessionKey;)Ljava/util/Date;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="177" hits="0" branch="false"/>
</lines>
</method>
<method name="getSession" signature="(Lorg/apache/shiro/session/mgt/SessionKey;)Lorg/apache/shiro/session/Session;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="100" hits="0" branch="false"/>
<line number="101" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
</lines>
</method>
<method name="getSessionListeners" signature="()Ljava/util/Collection;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="55" hits="8" branch="false"/>
</lines>
</method>
<method name="getStartTimestamp" signature="(Lorg/apache/shiro/session/mgt/SessionKey;)Ljava/util/Date;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="173" hits="0" branch="false"/>
</lines>
</method>
<method name="getTimeout" signature="(Lorg/apache/shiro/session/mgt/SessionKey;)J" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="181" hits="10" branch="false"/>
</lines>
</method>
<method name="isValid" signature="(Lorg/apache/shiro/session/mgt/SessionKey;)Z" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="233" 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"/>
</lines>
</method>
<method name="lookupRequiredSession" signature="(Lorg/apache/shiro/session/mgt/SessionKey;)Lorg/apache/shiro/session/Session;" line-rate="0.6" branch-rate="0.5">
<lines>
<line number="112" hits="406" branch="false"/>
<line number="113" hits="398" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="114" hits="0" branch="false"/>
<line number="115" hits="0" branch="false"/>
<line number="117" hits="398" branch="false"/>
</lines>
</method>
<method name="lookupSession" signature="(Lorg/apache/shiro/session/mgt/SessionKey;)Lorg/apache/shiro/session/Session;" line-rate="0.6666666666666666" branch-rate="0.5">
<lines>
<line number="105" hits="406" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="106" hits="0" branch="false"/>
<line number="108" hits="406" branch="false"/>
</lines>
</method>
<method name="notifyExpiration" signature="(Lorg/apache/shiro/session/Session;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="166" hits="12" branch="false"/>
<line number="167" hits="12" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="168" hits="6" branch="false"/>
<line number="169" hits="4" branch="false"/>
<line number="170" hits="10" branch="false"/>
</lines>
</method>
<method name="notifyStart" signature="(Lorg/apache/shiro/session/Session;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="153" hits="56" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="154" hits="10" branch="false"/>
<line number="155" hits="10" branch="false"/>
<line number="156" hits="56" branch="false"/>
</lines>
</method>
<method name="notifyStop" signature="(Lorg/apache/shiro/session/Session;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="159" hits="24" branch="false"/>
<line number="160" hits="24" 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="162" hits="4" branch="false"/>
<line number="163" hits="24" branch="false"/>
</lines>
</method>
<method name="onChange" signature="(Lorg/apache/shiro/session/Session;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="271" hits="2" branch="false"/>
</lines>
</method>
<method name="onStart" signature="(Lorg/apache/shiro/session/Session;Lorg/apache/shiro/session/mgt/SessionContext;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="97" hits="56" branch="false"/>
</lines>
</method>
<method name="onStop" signature="(Lorg/apache/shiro/session/Session;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="259" hits="0" branch="false"/>
<line number="260" hits="0" branch="false"/>
</lines>
</method>
<method name="onStop" signature="(Lorg/apache/shiro/session/Session;Lorg/apache/shiro/session/mgt/SessionKey;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="255" hits="24" branch="false"/>
<line number="256" hits="24" branch="false"/>
</lines>
</method>
<method name="removeAttribute" signature="(Lorg/apache/shiro/session/mgt/SessionKey;Ljava/lang/Object;)Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="223" hits="56" branch="false"/>
<line number="224" hits="56" branch="false"/>
<line number="225" hits="56" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="226" hits="34" branch="false"/>
<line number="228" hits="56" branch="false"/>
</lines>
</method>
<method name="setAttribute" signature="(Lorg/apache/shiro/session/mgt/SessionKey;Ljava/lang/Object;Ljava/lang/Object;)V" line-rate="0.8333333333333334" branch-rate="0.5">
<lines>
<line number="213" hits="88" 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="216" hits="88" branch="false"/>
<line number="217" hits="88" branch="false"/>
<line number="218" hits="88" branch="false"/>
<line number="220" hits="88" branch="false"/>
</lines>
</method>
<method name="setSessionListeners" signature="(Ljava/util/Collection;)V" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="50" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="51" hits="4" branch="false"/>
</lines>
</method>
<method name="setTimeout" signature="(Lorg/apache/shiro/session/mgt/SessionKey;J)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="185" hits="10" branch="false"/>
<line number="186" hits="8" branch="false"/>
<line number="187" hits="8" branch="false"/>
<line number="188" hits="8" 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="59" hits="56" branch="false"/>
<line number="60" hits="56" branch="false"/>
<line number="61" hits="56" branch="false"/>
<line number="62" hits="56" branch="false"/>
<line number="64" hits="56" branch="false"/>
</lines>
</method>
<method name="stop" signature="(Lorg/apache/shiro/session/mgt/SessionKey;)V" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="241" hits="24" branch="false"/>
<line number="243" hits="24" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="244" hits="24" branch="false"/>
<line number="246" hits="24" branch="false"/>
<line number="247" hits="24" branch="false"/>
<line number="248" hits="24" branch="false"/>
<line number="250" hits="24" branch="false"/>
<line number="251" hits="24" branch="false"/>
<line number="252" hits="24" branch="false"/>
</lines>
</method>
<method name="touch" signature="(Lorg/apache/shiro/session/mgt/SessionKey;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="191" hits="2" branch="false"/>
<line number="192" hits="2" branch="false"/>
<line number="193" hits="2" branch="false"/>
<line number="194" hits="2" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="41" hits="2" branch="false"/>
<line number="45" hits="90" branch="false"/>
<line number="46" hits="90" branch="false"/>
<line number="47" hits="90" branch="false"/>
<line number="50" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="51" hits="4" branch="false"/>
<line number="55" hits="8" branch="false"/>
<line number="59" hits="56" branch="false"/>
<line number="60" hits="56" branch="false"/>
<line number="61" hits="56" branch="false"/>
<line number="62" hits="56" branch="false"/>
<line number="64" hits="56" branch="false"/>
<line number="84" hits="56" branch="false"/>
<line number="85" hits="56" branch="false"/>
<line number="86" hits="56" branch="false"/>
<line number="97" hits="56" branch="false"/>
<line number="100" hits="0" branch="false"/>
<line number="101" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="105" hits="406" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="106" hits="0" branch="false"/>
<line number="108" hits="406" branch="false"/>
<line number="112" hits="406" branch="false"/>
<line number="113" hits="398" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="114" hits="0" branch="false"/>
<line number="115" hits="0" branch="false"/>
<line number="117" hits="398" branch="false"/>
<line number="123" hits="56" branch="false"/>
<line number="127" hits="0" branch="false"/>
<line number="141" hits="36" branch="false"/>
<line number="153" hits="56" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="154" hits="10" branch="false"/>
<line number="155" hits="10" branch="false"/>
<line number="156" hits="56" branch="false"/>
<line number="159" hits="24" branch="false"/>
<line number="160" hits="24" 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="162" hits="4" branch="false"/>
<line number="163" hits="24" branch="false"/>
<line number="166" hits="12" branch="false"/>
<line number="167" hits="12" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="168" hits="6" branch="false"/>
<line number="169" hits="4" branch="false"/>
<line number="170" hits="10" branch="false"/>
<line number="173" hits="0" branch="false"/>
<line number="177" hits="0" branch="false"/>
<line number="181" hits="10" branch="false"/>
<line number="185" hits="10" branch="false"/>
<line number="186" hits="8" branch="false"/>
<line number="187" hits="8" branch="false"/>
<line number="188" hits="8" branch="false"/>
<line number="191" hits="2" branch="false"/>
<line number="192" hits="2" branch="false"/>
<line number="193" hits="2" branch="false"/>
<line number="194" hits="2" branch="false"/>
<line number="197" hits="0" branch="false"/>
<line number="201" hits="0" branch="false"/>
<line number="202" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="203" hits="0" branch="false"/>
<line number="205" hits="0" branch="false"/>
<line number="209" hits="214" branch="false"/>
<line number="213" hits="88" 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="216" hits="88" branch="false"/>
<line number="217" hits="88" branch="false"/>
<line number="218" hits="88" branch="false"/>
<line number="220" hits="88" branch="false"/>
<line number="223" hits="56" branch="false"/>
<line number="224" hits="56" branch="false"/>
<line number="225" hits="56" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="226" hits="34" branch="false"/>
<line number="228" hits="56" branch="false"/>
<line number="233" 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="241" hits="24" branch="false"/>
<line number="243" hits="24" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="244" hits="24" branch="false"/>
<line number="246" hits="24" branch="false"/>
<line number="247" hits="24" branch="false"/>
<line number="248" hits="24" branch="false"/>
<line number="250" hits="24" branch="false"/>
<line number="251" hits="24" branch="false"/>
<line number="252" hits="24" branch="false"/>
<line number="255" hits="24" branch="false"/>
<line number="256" hits="24" branch="false"/>
<line number="259" hits="0" branch="false"/>
<line number="260" hits="0" branch="false"/>
<line number="263" hits="0" branch="false"/>
<line number="267" hits="2" branch="false"/>
<line number="268" hits="0" branch="false"/>
<line number="271" hits="2" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.session.mgt.AbstractSessionManager" filename="org/apache/shiro/session/mgt/AbstractSessionManager.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="47" hits="90" branch="false"/>
<line number="49" hits="90" branch="false"/>
<line number="50" hits="90" branch="false"/>
</lines>
</method>
<method name="getGlobalSessionTimeout" signature="()J" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="67" hits="58" branch="false"/>
</lines>
</method>
<method name="setGlobalSessionTimeout" signature="(J)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="85" hits="8" branch="false"/>
<line number="86" hits="8" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="47" hits="90" branch="false"/>
<line number="49" hits="90" branch="false"/>
<line number="50" hits="90" branch="false"/>
<line number="67" hits="58" branch="false"/>
<line number="85" hits="8" branch="false"/>
<line number="86" hits="8" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.session.mgt.AbstractValidatingSessionManager" filename="org/apache/shiro/session/mgt/AbstractValidatingSessionManager.java" line-rate="0.7966101694915254" branch-rate="0.5714285714285714" complexity="2.074074074074074">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="44" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="61" hits="90" branch="false"/>
<line number="62" hits="90" branch="false"/>
<line number="63" hits="90" branch="false"/>
<line number="64" hits="90" branch="false"/>
</lines>
</method>
<method name="afterExpired" signature="(Lorg/apache/shiro/session/Session;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="168" hits="2" branch="false"/>
</lines>
</method>
<method name="afterSessionValidationEnabled" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="237" hits="36" branch="false"/>
</lines>
</method>
<method name="beforeSessionValidationDisabled" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="260" hits="52" 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="135" hits="56" branch="false"/>
<line number="136" hits="56" branch="false"/>
</lines>
</method>
<method name="createSessionValidationScheduler" signature="()Lorg/apache/shiro/session/mgt/SessionValidationScheduler;" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="212" hits="36" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="213" hits="36" branch="false"/>
<line number="215" hits="36" branch="false"/>
<line number="216" hits="36" branch="false"/>
<line number="217" hits="36" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="218" hits="36" branch="false"/>
<line number="220" hits="36" branch="false"/>
</lines>
</method>
<method name="destroy" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="263" hits="52" branch="false"/>
<line number="264" hits="52" branch="false"/>
</lines>
</method>
<method name="disableSessionValidation" signature="()V" line-rate="0.7142857142857143" branch-rate="0.5">
<lines>
<line number="240" hits="52" branch="false"/>
<line number="241" hits="52" branch="false"/>
<line number="242" hits="52" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="244" hits="28" branch="false"/>
<line number="245" hits="28" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="246" hits="28" branch="false"/>
<line number="248" hits="0" branch="false"/>
<line number="249" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="250" hits="0" branch="false"/>
<line number="251" hits="0" branch="false"/>
<line number="253" hits="28" branch="false"/>
<line number="254" hits="28" branch="false"/>
<line number="255" hits="28" branch="false"/>
<line number="257" hits="52" branch="false"/>
</lines>
</method>
<method name="doGetSession" signature="(Lorg/apache/shiro/session/mgt/SessionKey;)Lorg/apache/shiro/session/Session;" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="114" hits="406" branch="false"/>
<line number="116" hits="406" branch="false"/>
<line number="118" hits="406" branch="false"/>
<line number="119" hits="406" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="120" hits="406" branch="false"/>
<line number="122" hits="398" branch="false"/>
</lines>
</method>
<method name="doValidate" signature="(Lorg/apache/shiro/session/Session;)V" line-rate="0.42857142857142855" branch-rate="0.5">
<lines>
<line number="185" hits="412" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="186" hits="412" branch="false"/>
<line number="188" hits="0" branch="false"/>
<line number="189" hits="0" branch="false"/>
<line number="191" hits="0" branch="false"/>
<line number="192" hits="0" branch="false"/>
<line number="194" hits="400" branch="false"/>
</lines>
</method>
<method name="enableSessionValidation" signature="()V" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="224" hits="36" branch="false"/>
<line number="225" hits="36" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="226" hits="36" branch="false"/>
<line number="227" hits="36" branch="false"/>
<line number="228" hits="36" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="229" hits="36" branch="false"/>
<line number="231" hits="36" branch="false"/>
<line number="232" hits="36" branch="false"/>
<line number="234" hits="36" branch="false"/>
</lines>
</method>
<method name="enableSessionValidationIfNecessary" signature="()V" line-rate="1.0" branch-rate="0.8333333333333334">
<lines>
<line number="84" hits="462" branch="false"/>
<line number="85" hits="462" 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="86" hits="36" branch="false"/>
<line number="88" hits="462" branch="false"/>
</lines>
</method>
<method name="getSessionValidationInterval" signature="()J" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="109" hits="36" branch="false"/>
</lines>
</method>
<method name="getSessionValidationScheduler" signature="()Lorg/apache/shiro/session/mgt/SessionValidationScheduler;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="80" hits="550" branch="false"/>
</lines>
</method>
<method name="getTimeout" signature="(Lorg/apache/shiro/session/Session;)J" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="206" hits="0" branch="false"/>
</lines>
</method>
<method name="isSessionValidationSchedulerEnabled" signature="()Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="67" hits="462" branch="false"/>
</lines>
</method>
<method name="onExpiration" signature="(Lorg/apache/shiro/session/Session;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="164" hits="2" branch="false"/>
<line number="165" hits="2" 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="154" hits="12" branch="false"/>
<line number="156" hits="12" branch="false"/>
<line number="157" hits="12" branch="false"/>
<line number="159" hits="12" branch="false"/>
<line number="160" hits="10" branch="false"/>
<line number="161" hits="10" 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="0.0">
<lines>
<line number="171" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="172" hits="0" branch="false"/>
<line number="173" hits="0" branch="false"/>
<line number="175" hits="0" branch="false"/>
<line number="177" hits="0" branch="false"/>
<line number="178" hits="0" branch="false"/>
<line number="180" hits="0" branch="false"/>
<line number="181" hits="0" branch="false"/>
<line number="182" hits="0" branch="false"/>
</lines>
</method>
<method name="setSessionValidationInterval" signature="(J)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>
<method name="setSessionValidationScheduler" signature="(Lorg/apache/shiro/session/mgt/SessionValidationScheduler;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="76" hits="64" branch="false"/>
<line number="77" hits="64" branch="false"/>
</lines>
</method>
<method name="setSessionValidationSchedulerEnabled" signature="(Z)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="72" hits="22" branch="false"/>
<line number="73" hits="22" branch="false"/>
</lines>
</method>
<method name="validate" signature="(Lorg/apache/shiro/session/Session;Lorg/apache/shiro/session/mgt/SessionKey;)V" line-rate="0.6666666666666666" branch-rate="1.0">
<lines>
<line number="143" hits="412" branch="false"/>
<line number="144" hits="12" branch="false"/>
<line number="145" hits="12" branch="false"/>
<line number="146" hits="10" 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="400" branch="false"/>
<line number="151" hits="400" branch="false"/>
</lines>
</method>
<method name="validateSessions" signature="()V" line-rate="0.9565217391304348" branch-rate="0.625">
<lines>
<line number="270" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="271" hits="4" branch="false"/>
<line number="274" hits="4" branch="false"/>
<line number="276" hits="4" branch="false"/>
<line number="278" hits="4" 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="279" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="283" hits="6" branch="false"/>
<line number="284" hits="6" branch="false"/>
<line number="285" hits="4" branch="false"/>
<line number="286" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="287" hits="4" branch="false"/>
<line number="288" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="290" hits="4" branch="false"/>
<line number="292" hits="4" branch="false"/>
<line number="293" hits="2" branch="false"/>
<line number="294" hits="6" branch="false"/>
<line number="297" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="298" hits="4" branch="false"/>
<line number="299" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="300" hits="4" branch="false"/>
<line number="302" hits="0" branch="false"/>
<line number="304" hits="4" branch="false"/>
<line number="306" hits="4" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="44" hits="2" branch="false"/>
<line number="61" hits="90" branch="false"/>
<line number="62" hits="90" branch="false"/>
<line number="63" hits="90" branch="false"/>
<line number="64" hits="90" branch="false"/>
<line number="67" hits="462" branch="false"/>
<line number="72" hits="22" branch="false"/>
<line number="73" hits="22" branch="false"/>
<line number="76" hits="64" branch="false"/>
<line number="77" hits="64" branch="false"/>
<line number="80" hits="550" branch="false"/>
<line number="84" hits="462" branch="false"/>
<line number="85" hits="462" 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="86" hits="36" branch="false"/>
<line number="88" hits="462" branch="false"/>
<line number="105" hits="0" branch="false"/>
<line number="106" hits="0" branch="false"/>
<line number="109" hits="36" branch="false"/>
<line number="114" hits="406" branch="false"/>
<line number="116" hits="406" branch="false"/>
<line number="118" hits="406" branch="false"/>
<line number="119" hits="406" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="120" hits="406" branch="false"/>
<line number="122" hits="398" branch="false"/>
<line number="135" hits="56" branch="false"/>
<line number="136" hits="56" branch="false"/>
<line number="143" hits="412" branch="false"/>
<line number="144" hits="12" branch="false"/>
<line number="145" hits="12" branch="false"/>
<line number="146" hits="10" 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="400" branch="false"/>
<line number="151" hits="400" branch="false"/>
<line number="154" hits="12" branch="false"/>
<line number="156" hits="12" branch="false"/>
<line number="157" hits="12" branch="false"/>
<line number="159" hits="12" branch="false"/>
<line number="160" hits="10" branch="false"/>
<line number="161" hits="10" branch="false"/>
<line number="164" hits="2" branch="false"/>
<line number="165" hits="2" branch="false"/>
<line number="168" hits="2" branch="false"/>
<line number="171" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="172" hits="0" branch="false"/>
<line number="173" hits="0" branch="false"/>
<line number="175" hits="0" branch="false"/>
<line number="177" hits="0" branch="false"/>
<line number="178" hits="0" branch="false"/>
<line number="180" hits="0" branch="false"/>
<line number="181" hits="0" branch="false"/>
<line number="182" hits="0" branch="false"/>
<line number="185" hits="412" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="186" hits="412" branch="false"/>
<line number="188" hits="0" branch="false"/>
<line number="189" hits="0" branch="false"/>
<line number="191" hits="0" branch="false"/>
<line number="192" hits="0" branch="false"/>
<line number="194" hits="400" branch="false"/>
<line number="206" hits="0" branch="false"/>
<line number="212" hits="36" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="213" hits="36" branch="false"/>
<line number="215" hits="36" branch="false"/>
<line number="216" hits="36" branch="false"/>
<line number="217" hits="36" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="218" hits="36" branch="false"/>
<line number="220" hits="36" branch="false"/>
<line number="224" hits="36" branch="false"/>
<line number="225" hits="36" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="226" hits="36" branch="false"/>
<line number="227" hits="36" branch="false"/>
<line number="228" hits="36" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="229" hits="36" branch="false"/>
<line number="231" hits="36" branch="false"/>
<line number="232" hits="36" branch="false"/>
<line number="234" hits="36" branch="false"/>
<line number="237" hits="36" branch="false"/>
<line number="240" hits="52" branch="false"/>
<line number="241" hits="52" branch="false"/>
<line number="242" hits="52" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="244" hits="28" branch="false"/>
<line number="245" hits="28" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="246" hits="28" branch="false"/>
<line number="248" hits="0" branch="false"/>
<line number="249" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="250" hits="0" branch="false"/>
<line number="251" hits="0" branch="false"/>
<line number="253" hits="28" branch="false"/>
<line number="254" hits="28" branch="false"/>
<line number="255" hits="28" branch="false"/>
<line number="257" hits="52" branch="false"/>
<line number="260" hits="52" branch="false"/>
<line number="263" hits="52" branch="false"/>
<line number="264" hits="52" branch="false"/>
<line number="270" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="271" hits="4" branch="false"/>
<line number="274" hits="4" branch="false"/>
<line number="276" hits="4" branch="false"/>
<line number="278" hits="4" 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="279" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="283" hits="6" branch="false"/>
<line number="284" hits="6" branch="false"/>
<line number="285" hits="4" branch="false"/>
<line number="286" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="287" hits="4" branch="false"/>
<line number="288" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="290" hits="4" branch="false"/>
<line number="292" hits="4" branch="false"/>
<line number="293" hits="2" branch="false"/>
<line number="294" hits="6" branch="false"/>
<line number="297" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="298" hits="4" branch="false"/>
<line number="299" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="300" hits="4" branch="false"/>
<line number="302" hits="0" branch="false"/>
<line number="304" hits="4" branch="false"/>
<line number="306" hits="4" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.session.mgt.DefaultSessionContext" filename="org/apache/shiro/session/mgt/DefaultSessionContext.java" line-rate="0.6153846153846154" branch-rate="0.5" complexity="1.1666666666666667">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="37" hits="2" branch="false"/>
<line number="38" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="41" hits="40" branch="false"/>
<line number="42" hits="40" 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="getHost" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="49" hits="40" branch="false"/>
</lines>
</method>
<method name="getSessionId" signature="()Ljava/io/Serializable;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="59" hits="0" branch="false"/>
</lines>
</method>
<method name="setHost" signature="(Ljava/lang/String;)V" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="53" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="54" hits="2" branch="false"/>
<line number="56" hits="2" branch="false"/>
</lines>
</method>
<method name="setSessionId" signature="(Ljava/io/Serializable;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="63" hits="0" branch="false"/>
<line number="64" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="37" hits="2" branch="false"/>
<line number="38" hits="2" branch="false"/>
<line number="41" hits="40" branch="false"/>
<line number="42" hits="40" branch="false"/>
<line number="45" hits="0" branch="false"/>
<line number="46" hits="0" branch="false"/>
<line number="49" hits="40" branch="false"/>
<line number="53" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="54" hits="2" branch="false"/>
<line number="56" hits="2" branch="false"/>
<line number="59" hits="0" branch="false"/>
<line number="63" hits="0" branch="false"/>
<line number="64" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.session.mgt.DefaultSessionKey" filename="org/apache/shiro/session/mgt/DefaultSessionKey.java" line-rate="0.5" 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="31" hits="0" branch="false"/>
<line number="32" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/io/Serializable;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="34" hits="74" branch="false"/>
<line number="35" hits="74" branch="false"/>
<line number="36" hits="74" branch="false"/>
</lines>
</method>
<method name="getSessionId" signature="()Ljava/io/Serializable;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="43" hits="798" branch="false"/>
</lines>
</method>
<method name="setSessionId" signature="(Ljava/io/Serializable;)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>
</methods>
<lines>
<line number="31" hits="0" branch="false"/>
<line number="32" hits="0" branch="false"/>
<line number="34" hits="74" branch="false"/>
<line number="35" hits="74" branch="false"/>
<line number="36" hits="74" branch="false"/>
<line number="39" hits="0" branch="false"/>
<line number="40" hits="0" branch="false"/>
<line number="43" hits="798" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.session.mgt.DefaultSessionManager" filename="org/apache/shiro/session/mgt/DefaultSessionManager.java" line-rate="0.9076923076923077" branch-rate="0.5833333333333334" complexity="1.6363636363636365">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="45" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="55" hits="88" branch="false"/>
<line number="56" hits="88" branch="false"/>
<line number="57" hits="88" branch="false"/>
<line number="58" hits="88" branch="false"/>
<line number="59" hits="88" branch="false"/>
</lines>
</method>
<method name="afterExpired" signature="(Lorg/apache/shiro/session/Session;)V" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="206" hits="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="207" hits="10" branch="false"/>
<line number="209" hits="10" branch="false"/>
</lines>
</method>
<method name="afterStopped" signature="(Lorg/apache/shiro/session/Session;)V" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="192" hits="24" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="193" hits="24" branch="false"/>
<line number="195" hits="24" branch="false"/>
</lines>
</method>
<method name="applyCacheManagerToSessionDAO" signature="()V" line-rate="1.0" branch-rate="0.8333333333333334">
<lines>
<line number="148" hits="80" branch="true" condition-coverage="83% (5/6)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="50%"/>
<condition number="2" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="149" hits="2" branch="false"/>
<line number="151" hits="80" branch="false"/>
</lines>
</method>
<method name="create" signature="(Lorg/apache/shiro/session/Session;)V" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="174" hits="56" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="175" hits="56" branch="false"/>
<line number="177" hits="56" branch="false"/>
<line number="178" hits="56" branch="false"/>
</lines>
</method>
<method name="delete" signature="(Lorg/apache/shiro/session/Session;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="240" hits="34" branch="false"/>
<line number="241" hits="34" branch="false"/>
</lines>
</method>
<method name="doCreateSession" signature="(Lorg/apache/shiro/session/mgt/SessionContext;)Lorg/apache/shiro/session/Session;" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="154" hits="56" branch="false"/>
<line number="155" hits="56" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="156" hits="56" branch="false"/>
<line number="158" hits="56" branch="false"/>
<line number="159" hits="56" branch="false"/>
</lines>
</method>
<method name="getActiveSessions" signature="()Ljava/util/Collection;" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="244" hits="6" branch="false"/>
<line number="245" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
</lines>
</method>
<method name="getSessionDAO" signature="()Lorg/apache/shiro/session/mgt/eis/SessionDAO;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="67" hits="2" branch="false"/>
</lines>
</method>
<method name="getSessionFactory" signature="()Lorg/apache/shiro/session/mgt/SessionFactory;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="78" hits="56" branch="false"/>
</lines>
</method>
<method name="getSessionId" signature="(Lorg/apache/shiro/session/mgt/SessionKey;)Ljava/io/Serializable;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="232" hits="406" branch="false"/>
</lines>
</method>
<method name="isDeleteInvalidSessions" signature="()Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="111" hits="34" branch="false"/>
</lines>
</method>
<method name="newSessionInstance" signature="(Lorg/apache/shiro/session/mgt/SessionContext;)Lorg/apache/shiro/session/Session;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="163" hits="56" branch="false"/>
</lines>
</method>
<method name="onChange" signature="(Lorg/apache/shiro/session/Session;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="212" hits="222" branch="false"/>
<line number="213" hits="222" branch="false"/>
</lines>
</method>
<method name="onExpiration" signature="(Lorg/apache/shiro/session/Session;)V" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="198" hits="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="199" hits="10" branch="false"/>
<line number="201" hits="10" branch="false"/>
<line number="202" hits="10" branch="false"/>
</lines>
</method>
<method name="onStop" signature="(Lorg/apache/shiro/session/Session;)V" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="182" hits="24" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="183" hits="24" branch="false"/>
<line number="184" hits="24" branch="false"/>
<line number="185" hits="24" branch="false"/>
<line number="187" hits="24" branch="false"/>
<line number="188" hits="24" branch="false"/>
</lines>
</method>
<method name="retrieveSession" signature="(Lorg/apache/shiro/session/mgt/SessionKey;)Lorg/apache/shiro/session/Session;" line-rate="0.5555555555555556" branch-rate="0.5">
<lines>
<line number="216" hits="406" branch="false"/>
<line number="217" hits="406" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="218" hits="0" branch="false"/>
<line number="220" hits="0" branch="false"/>
<line number="222" hits="406" branch="false"/>
<line number="223" hits="406" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="225" hits="0" branch="false"/>
<line number="226" hits="0" branch="false"/>
<line number="228" hits="406" branch="false"/>
</lines>
</method>
<method name="retrieveSessionFromDataSource" signature="(Ljava/io/Serializable;)Lorg/apache/shiro/session/Session;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="236" hits="406" branch="false"/>
</lines>
</method>
<method name="setCacheManager" signature="(Lorg/apache/shiro/cache/CacheManager;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="132" hits="76" branch="false"/>
<line number="133" hits="76" branch="false"/>
<line number="134" hits="76" branch="false"/>
</lines>
</method>
<method name="setDeleteInvalidSessions" signature="(Z)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="128" hits="0" branch="false"/>
<line number="129" hits="0" branch="false"/>
</lines>
</method>
<method name="setSessionDAO" signature="(Lorg/apache/shiro/session/mgt/eis/SessionDAO;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="62" hits="4" branch="false"/>
<line number="63" hits="4" branch="false"/>
<line number="64" hits="4" branch="false"/>
</lines>
</method>
<method name="setSessionFactory" signature="(Lorg/apache/shiro/session/mgt/SessionFactory;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="89" hits="2" branch="false"/>
<line number="90" hits="2" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="45" hits="2" branch="false"/>
<line number="55" hits="88" branch="false"/>
<line number="56" hits="88" branch="false"/>
<line number="57" hits="88" branch="false"/>
<line number="58" hits="88" branch="false"/>
<line number="59" hits="88" branch="false"/>
<line number="62" hits="4" branch="false"/>
<line number="63" hits="4" branch="false"/>
<line number="64" hits="4" branch="false"/>
<line number="67" hits="2" branch="false"/>
<line number="78" hits="56" branch="false"/>
<line number="89" hits="2" branch="false"/>
<line number="90" hits="2" branch="false"/>
<line number="111" hits="34" branch="false"/>
<line number="128" hits="0" branch="false"/>
<line number="129" hits="0" branch="false"/>
<line number="132" hits="76" branch="false"/>
<line number="133" hits="76" branch="false"/>
<line number="134" hits="76" branch="false"/>
<line number="148" hits="80" branch="true" condition-coverage="83% (5/6)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="50%"/>
<condition number="2" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="149" hits="2" branch="false"/>
<line number="151" hits="80" branch="false"/>
<line number="154" hits="56" branch="false"/>
<line number="155" hits="56" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="156" hits="56" branch="false"/>
<line number="158" hits="56" branch="false"/>
<line number="159" hits="56" branch="false"/>
<line number="163" hits="56" branch="false"/>
<line number="174" hits="56" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="175" hits="56" branch="false"/>
<line number="177" hits="56" branch="false"/>
<line number="178" hits="56" branch="false"/>
<line number="182" hits="24" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="183" hits="24" branch="false"/>
<line number="184" hits="24" branch="false"/>
<line number="185" hits="24" branch="false"/>
<line number="187" hits="24" branch="false"/>
<line number="188" hits="24" branch="false"/>
<line number="192" hits="24" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="193" hits="24" branch="false"/>
<line number="195" hits="24" branch="false"/>
<line number="198" hits="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="199" hits="10" branch="false"/>
<line number="201" hits="10" branch="false"/>
<line number="202" hits="10" branch="false"/>
<line number="206" hits="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="207" hits="10" branch="false"/>
<line number="209" hits="10" branch="false"/>
<line number="212" hits="222" branch="false"/>
<line number="213" hits="222" branch="false"/>
<line number="216" hits="406" branch="false"/>
<line number="217" hits="406" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="218" hits="0" branch="false"/>
<line number="220" hits="0" branch="false"/>
<line number="222" hits="406" branch="false"/>
<line number="223" hits="406" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="225" hits="0" branch="false"/>
<line number="226" hits="0" branch="false"/>
<line number="228" hits="406" branch="false"/>
<line number="232" hits="406" branch="false"/>
<line number="236" hits="406" branch="false"/>
<line number="240" hits="34" branch="false"/>
<line number="241" hits="34" branch="false"/>
<line number="244" hits="6" branch="false"/>
<line number="245" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
</lines>
</class>
<class name="org.apache.shiro.session.mgt.DelegatingSession" filename="org/apache/shiro/session/mgt/DelegatingSession.java" line-rate="0.6285714285714286" branch-rate="0.3333333333333333" complexity="1.6923076923076923">
<methods>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/session/mgt/NativeSessionManager;Lorg/apache/shiro/session/mgt/SessionKey;)V" line-rate="0.6923076923076923" branch-rate="0.5">
<lines>
<line number="50" hits="58" branch="false"/>
<line number="51" hits="58" branch="false"/>
<line number="59" hits="58" branch="false"/>
<line number="60" hits="58" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="61" hits="0" branch="false"/>
<line number="63" hits="58" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="64" hits="0" branch="false"/>
<line number="66" hits="58" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="67" hits="0" branch="false"/>
<line number="70" hits="0" branch="false"/>
<line number="72" hits="58" branch="false"/>
<line number="73" hits="58" branch="false"/>
<line number="74" hits="58" branch="false"/>
</lines>
</method>
<method name="getAttribute" signature="(Ljava/lang/Object;)Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="141" hits="214" branch="false"/>
</lines>
</method>
<method name="getAttributeKeys" signature="()Ljava/util/Collection;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="134" hits="0" branch="false"/>
</lines>
</method>
<method name="getHost" signature="()Ljava/lang/String;" line-rate="0.0" branch-rate="0.0">
<lines>
<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"/>
</lines>
</method>
<method name="getId" signature="()Ljava/io/Serializable;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="80" hits="334" branch="false"/>
</lines>
</method>
<method name="getLastAccessTime" signature="()Ljava/util/Date;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="98" hits="0" branch="false"/>
</lines>
</method>
<method name="getStartTimestamp" signature="()Ljava/util/Date;" 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="getTimeout" signature="()J" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="102" hits="8" branch="false"/>
</lines>
</method>
<method name="removeAttribute" signature="(Ljava/lang/Object;)Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="159" hits="56" branch="false"/>
</lines>
</method>
<method name="setAttribute" signature="(Ljava/lang/Object;Ljava/lang/Object;)V" line-rate="0.75" branch-rate="0.5">
<lines>
<line number="148" hits="88" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="149" hits="0" branch="false"/>
<line number="151" hits="88" branch="false"/>
<line number="153" hits="88" branch="false"/>
</lines>
</method>
<method name="setTimeout" signature="(J)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="106" hits="8" branch="false"/>
<line number="107" hits="6" branch="false"/>
</lines>
</method>
<method name="stop" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="127" hits="20" branch="false"/>
<line number="128" hits="20" branch="false"/>
</lines>
</method>
<method name="touch" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="120" hits="2" branch="false"/>
<line number="121" hits="2" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="50" hits="58" branch="false"/>
<line number="51" hits="58" branch="false"/>
<line number="59" hits="58" branch="false"/>
<line number="60" hits="58" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="61" hits="0" branch="false"/>
<line number="63" hits="58" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="64" hits="0" branch="false"/>
<line number="66" hits="58" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="67" hits="0" branch="false"/>
<line number="70" hits="0" branch="false"/>
<line number="72" hits="58" branch="false"/>
<line number="73" hits="58" branch="false"/>
<line number="74" hits="58" branch="false"/>
<line number="80" hits="334" 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="98" hits="0" branch="false"/>
<line number="102" hits="8" branch="false"/>
<line number="106" hits="8" branch="false"/>
<line number="107" hits="6" branch="false"/>
<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="120" hits="2" branch="false"/>
<line number="121" hits="2" branch="false"/>
<line number="127" hits="20" branch="false"/>
<line number="128" hits="20" branch="false"/>
<line number="134" hits="0" branch="false"/>
<line number="141" hits="214" branch="false"/>
<line number="148" hits="88" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="149" hits="0" branch="false"/>
<line number="151" hits="88" branch="false"/>
<line number="153" hits="88" branch="false"/>
<line number="159" hits="56" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler" filename="org/apache/shiro/session/mgt/ExecutorServiceSessionValidationScheduler.java" line-rate="0.5483870967741935" branch-rate="0.16666666666666666" complexity="1.2727272727272727">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="42" hits="2" 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"/>
<line number="51" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/session/mgt/ValidatingSessionManager;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="46" hits="36" branch="false"/>
<line number="47" hits="36" branch="false"/>
<line number="53" hits="36" branch="false"/>
<line number="54" hits="36" branch="false"/>
<line number="55" hits="36" branch="false"/>
</lines>
</method>
<method name="disableSessionValidation" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="110" hits="28" branch="false"/>
<line number="111" hits="28" branch="false"/>
<line number="112" hits="28" branch="false"/>
</lines>
</method>
<method name="enableSessionValidation" signature="()V" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="84" hits="36" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="85" hits="36" branch="false"/>
<line number="92" hits="36" branch="false"/>
<line number="93" hits="36" branch="false"/>
<line number="95" hits="36" branch="false"/>
</lines>
</method>
<method name="getInterval" signature="()J" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="66" hits="0" branch="false"/>
</lines>
</method>
<method name="getSessionManager" signature="()Lorg/apache/shiro/session/mgt/ValidatingSessionManager;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="58" hits="0" branch="false"/>
</lines>
</method>
<method name="isEnabled" signature="()Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="74" hits="324" branch="false"/>
</lines>
</method>
<method name="run" signature="()V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="98" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="99" hits="0" branch="false"/>
<line number="101" hits="0" branch="false"/>
<line number="102" hits="0" branch="false"/>
<line number="103" hits="0" branch="false"/>
<line number="104" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="105" hits="0" branch="false"/>
<line number="107" hits="0" branch="false"/>
</lines>
</method>
<method name="setInterval" signature="(J)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="70" hits="36" branch="false"/>
<line number="71" hits="36" branch="false"/>
</lines>
</method>
<method name="setSessionManager" signature="(Lorg/apache/shiro/session/mgt/ValidatingSessionManager;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="62" hits="0" branch="false"/>
<line number="63" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="42" hits="2" branch="false"/>
<line number="46" hits="36" branch="false"/>
<line number="47" hits="36" branch="false"/>
<line number="50" hits="0" branch="false"/>
<line number="51" hits="0" branch="false"/>
<line number="53" hits="36" branch="false"/>
<line number="54" hits="36" branch="false"/>
<line number="55" hits="36" branch="false"/>
<line number="58" hits="0" branch="false"/>
<line number="62" hits="0" branch="false"/>
<line number="63" hits="0" branch="false"/>
<line number="66" hits="0" branch="false"/>
<line number="70" hits="36" branch="false"/>
<line number="71" hits="36" branch="false"/>
<line number="74" hits="324" branch="false"/>
<line number="84" hits="36" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="85" hits="36" branch="false"/>
<line number="92" hits="36" branch="false"/>
<line number="93" hits="36" branch="false"/>
<line number="95" hits="36" branch="false"/>
<line number="98" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="99" hits="0" branch="false"/>
<line number="101" hits="0" branch="false"/>
<line number="102" hits="0" branch="false"/>
<line number="103" hits="0" branch="false"/>
<line number="104" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="105" hits="0" branch="false"/>
<line number="107" hits="0" branch="false"/>
<line number="110" hits="28" branch="false"/>
<line number="111" hits="28" branch="false"/>
<line number="112" hits="28" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler$1" filename="org/apache/shiro/session/mgt/ExecutorServiceSessionValidationScheduler.java" line-rate="1.0" branch-rate="1.0" complexity="1.2727272727272727">
<methods>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/session/mgt/ExecutorServiceSessionValidationScheduler;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="85" hits="36" branch="false"/>
</lines>
</method>
<method name="newThread" signature="(Ljava/lang/Runnable;)Ljava/lang/Thread;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="87" hits="36" branch="false"/>
<line number="88" hits="36" branch="false"/>
<line number="89" hits="36" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="85" hits="36" branch="false"/>
<line number="87" hits="36" branch="false"/>
<line number="88" hits="36" branch="false"/>
<line number="89" hits="36" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.session.mgt.ImmutableProxiedSession" filename="org/apache/shiro/session/mgt/ImmutableProxiedSession.java" line-rate="0.35714285714285715" branch-rate="1.0" complexity="1.2857142857142858">
<methods>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/session/Session;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="51" hits="36" branch="false"/>
<line number="52" hits="36" branch="false"/>
</lines>
</method>
<method name="removeAttribute" signature="(Ljava/lang/Object;)Ljava/lang/Object;" line-rate="0.5" branch-rate="1.0">
<lines>
<line number="103" hits="2" branch="false"/>
<line number="105" hits="0" branch="false"/>
</lines>
</method>
<method name="setAttribute" signature="(Ljava/lang/Object;Ljava/lang/Object;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="95" hits="0" branch="false"/>
<line number="96" hits="0" branch="false"/>
</lines>
</method>
<method name="setTimeout" signature="(J)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="stop" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="87" hits="0" branch="false"/>
<line number="88" hits="0" branch="false"/>
</lines>
</method>
<method name="throwImmutableException" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="61" hits="2" branch="false"/>
<line number="63" hits="2" branch="false"/>
</lines>
</method>
<method name="touch" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="79" hits="0" branch="false"/>
<line number="80" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="51" hits="36" branch="false"/>
<line number="52" hits="36" branch="false"/>
<line number="61" hits="2" branch="false"/>
<line number="63" hits="2" branch="false"/>
<line number="71" hits="0" branch="false"/>
<line number="72" hits="0" branch="false"/>
<line number="79" hits="0" branch="false"/>
<line number="80" hits="0" branch="false"/>
<line number="87" hits="0" branch="false"/>
<line number="88" hits="0" branch="false"/>
<line number="95" hits="0" branch="false"/>
<line number="96" hits="0" branch="false"/>
<line number="103" hits="2" branch="false"/>
<line number="105" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.session.mgt.NativeSessionManager" filename="org/apache/shiro/session/mgt/NativeSessionManager.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.session.mgt.SessionContext" filename="org/apache/shiro/session/mgt/SessionContext.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.session.mgt.SessionFactory" filename="org/apache/shiro/session/mgt/SessionFactory.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.session.mgt.SessionKey" filename="org/apache/shiro/session/mgt/SessionKey.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.session.mgt.SessionManager" filename="org/apache/shiro/session/mgt/SessionManager.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.session.mgt.SessionValidationScheduler" filename="org/apache/shiro/session/mgt/SessionValidationScheduler.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.session.mgt.SimpleSession" filename="org/apache/shiro/session/mgt/SimpleSession.java" line-rate="0.7419354838709677" branch-rate="0.38235294117647056" complexity="2.8684210526315788">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="52" hits="2" branch="false"/>
<line number="59" hits="2" branch="false"/>
<line number="60" hits="2" branch="false"/>
<line number="61" hits="2" branch="false"/>
<line number="62" hits="2" branch="false"/>
<line number="63" hits="2" branch="false"/>
<line number="64" hits="2" branch="false"/>
<line number="65" hits="2" branch="false"/>
<line number="66" hits="2" branch="false"/>
<line number="67" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="95" hits="66" branch="false"/>
<line number="96" hits="66" branch="false"/>
<line number="97" hits="66" branch="false"/>
<line number="98" hits="66" branch="false"/>
<line number="99" hits="66" 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="102" hits="4" branch="false"/>
<line number="103" hits="4" branch="false"/>
<line number="104" hits="4" branch="false"/>
</lines>
</method>
<method name="equals" signature="(Ljava/lang/Object;)Z" line-rate="0.2" branch-rate="0.125">
<lines>
<line number="352" hits="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="353" hits="10" branch="false"/>
<line number="355" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="356" hits="0" branch="false"/>
<line number="357" hits="0" branch="false"/>
<line number="358" hits="0" branch="false"/>
<line number="359" 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="360" hits="0" branch="false"/>
<line number="363" hits="0" branch="false"/>
<line number="366" hits="0" branch="false"/>
</lines>
</method>
<method name="expire" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="208" hits="12" branch="false"/>
<line number="209" hits="12" branch="false"/>
<line number="210" hits="12" branch="false"/>
</lines>
</method>
<method name="getAlteredFieldsBitMask" signature="()S" line-rate="1.0" branch-rate="0.625">
<lines>
<line number="513" hits="6" branch="false"/>
<line number="514" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="515" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="516" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="517" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="518" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="519" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="520" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="521" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="522" hits="6" branch="false"/>
</lines>
</method>
<method name="getAttribute" signature="(Ljava/lang/Object;)Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="314" hits="216" branch="false"/>
<line number="315" hits="216" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="316" hits="4" branch="false"/>
<line number="318" hits="212" branch="false"/>
</lines>
</method>
<method name="getAttributeKeys" signature="()Ljava/util/Collection;" line-rate="0.75" branch-rate="0.5">
<lines>
<line number="306" hits="2" branch="false"/>
<line number="307" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="308" hits="0" branch="false"/>
<line number="310" hits="2" branch="false"/>
</lines>
</method>
<method name="getAttributes" signature="()Ljava/util/Map;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="186" hits="364" branch="false"/>
</lines>
</method>
<method name="getAttributesLazy" signature="()Ljava/util/Map;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="297" hits="90" branch="false"/>
<line number="298" hits="90" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="299" hits="42" branch="false"/>
<line number="300" hits="42" branch="false"/>
<line number="302" hits="90" branch="false"/>
</lines>
</method>
<method name="getHost" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="178" hits="58" branch="false"/>
</lines>
</method>
<method name="getId" signature="()Ljava/io/Serializable;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="107" hits="418" branch="false"/>
</lines>
</method>
<method name="getLastAccessTime" signature="()Ljava/util/Date;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="148" hits="428" branch="false"/>
</lines>
</method>
<method name="getStartTimestamp" signature="()Ljava/util/Date;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="115" hits="4" branch="false"/>
</lines>
</method>
<method name="getStopTimestamp" signature="()Ljava/util/Date;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="140" hits="444" branch="false"/>
</lines>
</method>
<method name="getTimeout" signature="()J" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="170" hits="434" branch="false"/>
</lines>
</method>
<method name="hashCode" signature="()I" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="399" hits="0" branch="false"/>
<line number="400" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="401" hits="0" branch="false"/>
<line number="403" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="404" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="405" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="406" hits="0" branch="false"/>
<line number="407" hits="0" branch="false"/>
<line number="408" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="409" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="410" hits="0" branch="false"/>
</lines>
</method>
<method name="isExpired" signature="()Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="162" hits="422" branch="false"/>
</lines>
</method>
<method name="isFieldPresent" signature="(SI)Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="538" hits="48" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
</lines>
</method>
<method name="isStopped" signature="()Z" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="204" hits="420" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
</lines>
</method>
<method name="isTimedOut" signature="()Z" line-rate="0.5" branch-rate="0.375">
<lines>
<line number="226" hits="412" 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="230" hits="412" branch="false"/>
<line number="232" hits="412" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="234" hits="412" branch="false"/>
<line number="236" hits="412" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="237" hits="0" branch="false"/>
<line number="238" hits="0" branch="false"/>
<line number="240" hits="0" branch="false"/>
<line number="242" hits="0" branch="false"/>
<line number="250" hits="412" branch="false"/>
<line number="251" hits="412" branch="false"/>
<line number="252" hits="412" 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="260" hits="0" branch="false"/>
</lines>
</method>
<method name="isValid" signature="()Z" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="216" hits="8" 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="onEquals" signature="(Lorg/apache/shiro/session/mgt/SimpleSession;)Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="378" 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="379" 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="380" 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="381" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="382" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="383" 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="384" 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="readObject" signature="(Ljava/io/ObjectInputStream;)V" line-rate="0.8421052631578947" branch-rate="0.625">
<lines>
<line number="475" hits="6" branch="false"/>
<line number="476" hits="6" branch="false"/>
<line number="478" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="479" hits="0" branch="false"/>
<line number="481" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="482" hits="6" branch="false"/>
<line number="484" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="485" hits="0" branch="false"/>
<line number="487" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="488" hits="6" branch="false"/>
<line number="490" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="491" hits="6" branch="false"/>
<line number="493" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="494" hits="2" branch="false"/>
<line number="496" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="497" hits="2" branch="false"/>
<line number="499" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="500" hits="0" branch="false"/>
<line number="502" hits="6" branch="false"/>
</lines>
</method>
<method name="removeAttribute" signature="(Ljava/lang/Object;)Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="330" hits="56" branch="false"/>
<line number="331" hits="56" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="332" hits="6" branch="false"/>
<line number="334" hits="50" branch="false"/>
</lines>
</method>
<method name="setAttribute" signature="(Ljava/lang/Object;Ljava/lang/Object;)V" line-rate="0.75" branch-rate="0.5">
<lines>
<line number="322" hits="90" 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="90" branch="false"/>
<line number="327" hits="90" branch="false"/>
</lines>
</method>
<method name="setAttributes" signature="(Ljava/util/Map;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="190" hits="42" branch="false"/>
<line number="191" hits="42" branch="false"/>
</lines>
</method>
<method name="setExpired" signature="(Z)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="166" hits="12" branch="false"/>
<line number="167" hits="12" branch="false"/>
</lines>
</method>
<method name="setHost" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="182" hits="0" branch="false"/>
<line number="183" hits="0" branch="false"/>
</lines>
</method>
<method name="setId" signature="(Ljava/io/Serializable;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="111" hits="60" branch="false"/>
<line number="112" hits="60" branch="false"/>
</lines>
</method>
<method name="setLastAccessTime" signature="(Ljava/util/Date;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="152" hits="26" branch="false"/>
<line number="153" hits="26" branch="false"/>
</lines>
</method>
<method name="setStartTimestamp" signature="(Ljava/util/Date;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="119" hits="2" branch="false"/>
<line number="120" hits="2" branch="false"/>
</lines>
</method>
<method name="setStopTimestamp" signature="(Ljava/util/Date;)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>
<method name="setTimeout" signature="(J)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="174" hits="64" branch="false"/>
<line number="175" hits="64" branch="false"/>
</lines>
</method>
<method name="stop" signature="()V" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="198" hits="36" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="199" hits="36" branch="false"/>
<line number="201" hits="36" branch="false"/>
</lines>
</method>
<method name="toString" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="423" hits="56" branch="false"/>
<line number="424" hits="56" branch="false"/>
<line number="425" hits="56" branch="false"/>
</lines>
</method>
<method name="touch" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="194" hits="2" branch="false"/>
<line number="195" hits="2" branch="false"/>
</lines>
</method>
<method name="validate" signature="()V" line-rate="0.875" branch-rate="0.6666666666666666">
<lines>
<line number="265" hits="412" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="267" hits="0" branch="false"/>
<line number="270" hits="0" branch="false"/>
<line number="274" hits="412" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="275" hits="12" branch="false"/>
<line number="278" hits="12" branch="false"/>
<line number="279" hits="12" branch="false"/>
<line number="281" hits="12" branch="false"/>
<line number="283" hits="12" branch="false"/>
<line number="284" hits="12" branch="false"/>
<line number="285" hits="12" branch="false"/>
<line number="286" hits="12" branch="false"/>
<line number="289" hits="12" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="290" hits="12" branch="false"/>
<line number="292" hits="12" branch="false"/>
<line number="294" hits="400" branch="false"/>
</lines>
</method>
<method name="writeObject" signature="(Ljava/io/ObjectOutputStream;)V" line-rate="0.85" branch-rate="0.625">
<lines>
<line number="436" hits="6" branch="false"/>
<line number="437" hits="6" branch="false"/>
<line number="438" hits="6" branch="false"/>
<line number="439" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="440" hits="0" branch="false"/>
<line number="442" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="443" hits="6" branch="false"/>
<line number="445" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="446" hits="0" branch="false"/>
<line number="448" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="449" hits="6" branch="false"/>
<line number="451" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="452" hits="6" branch="false"/>
<line number="454" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="455" hits="2" branch="false"/>
<line number="457" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="458" hits="2" branch="false"/>
<line number="460" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="461" hits="0" branch="false"/>
<line number="463" hits="6" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="52" hits="2" branch="false"/>
<line number="59" hits="2" branch="false"/>
<line number="60" hits="2" branch="false"/>
<line number="61" hits="2" branch="false"/>
<line number="62" hits="2" branch="false"/>
<line number="63" hits="2" branch="false"/>
<line number="64" hits="2" branch="false"/>
<line number="65" hits="2" branch="false"/>
<line number="66" hits="2" branch="false"/>
<line number="67" hits="2" branch="false"/>
<line number="95" hits="66" branch="false"/>
<line number="96" hits="66" branch="false"/>
<line number="97" hits="66" branch="false"/>
<line number="98" hits="66" branch="false"/>
<line number="99" hits="66" branch="false"/>
<line number="102" hits="4" branch="false"/>
<line number="103" hits="4" branch="false"/>
<line number="104" hits="4" branch="false"/>
<line number="107" hits="418" branch="false"/>
<line number="111" hits="60" branch="false"/>
<line number="112" hits="60" branch="false"/>
<line number="115" hits="4" branch="false"/>
<line number="119" hits="2" branch="false"/>
<line number="120" hits="2" branch="false"/>
<line number="140" hits="444" branch="false"/>
<line number="144" hits="0" branch="false"/>
<line number="145" hits="0" branch="false"/>
<line number="148" hits="428" branch="false"/>
<line number="152" hits="26" branch="false"/>
<line number="153" hits="26" branch="false"/>
<line number="162" hits="422" branch="false"/>
<line number="166" hits="12" branch="false"/>
<line number="167" hits="12" branch="false"/>
<line number="170" hits="434" branch="false"/>
<line number="174" hits="64" branch="false"/>
<line number="175" hits="64" branch="false"/>
<line number="178" hits="58" branch="false"/>
<line number="182" hits="0" branch="false"/>
<line number="183" hits="0" branch="false"/>
<line number="186" hits="364" branch="false"/>
<line number="190" hits="42" branch="false"/>
<line number="191" hits="42" branch="false"/>
<line number="194" hits="2" branch="false"/>
<line number="195" hits="2" branch="false"/>
<line number="198" hits="36" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="199" hits="36" branch="false"/>
<line number="201" hits="36" branch="false"/>
<line number="204" hits="420" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="208" hits="12" branch="false"/>
<line number="209" hits="12" branch="false"/>
<line number="210" hits="12" branch="false"/>
<line number="216" hits="8" 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="226" hits="412" 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="230" hits="412" branch="false"/>
<line number="232" hits="412" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="234" hits="412" branch="false"/>
<line number="236" hits="412" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="237" hits="0" branch="false"/>
<line number="238" hits="0" branch="false"/>
<line number="240" hits="0" branch="false"/>
<line number="242" hits="0" branch="false"/>
<line number="250" hits="412" branch="false"/>
<line number="251" hits="412" branch="false"/>
<line number="252" hits="412" 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="260" hits="0" branch="false"/>
<line number="265" hits="412" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="267" hits="0" branch="false"/>
<line number="270" hits="0" branch="false"/>
<line number="274" hits="412" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="275" hits="12" branch="false"/>
<line number="278" hits="12" branch="false"/>
<line number="279" hits="12" branch="false"/>
<line number="281" hits="12" branch="false"/>
<line number="283" hits="12" branch="false"/>
<line number="284" hits="12" branch="false"/>
<line number="285" hits="12" branch="false"/>
<line number="286" hits="12" branch="false"/>
<line number="289" hits="12" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="290" hits="12" branch="false"/>
<line number="292" hits="12" branch="false"/>
<line number="294" hits="400" branch="false"/>
<line number="297" hits="90" branch="false"/>
<line number="298" hits="90" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="299" hits="42" branch="false"/>
<line number="300" hits="42" branch="false"/>
<line number="302" hits="90" branch="false"/>
<line number="306" hits="2" branch="false"/>
<line number="307" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="308" hits="0" branch="false"/>
<line number="310" hits="2" branch="false"/>
<line number="314" hits="216" branch="false"/>
<line number="315" hits="216" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="316" hits="4" branch="false"/>
<line number="318" hits="212" branch="false"/>
<line number="322" hits="90" 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="90" branch="false"/>
<line number="327" hits="90" branch="false"/>
<line number="330" hits="56" branch="false"/>
<line number="331" hits="56" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="332" hits="6" branch="false"/>
<line number="334" hits="50" branch="false"/>
<line number="352" hits="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="353" hits="10" branch="false"/>
<line number="355" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="356" hits="0" branch="false"/>
<line number="357" hits="0" branch="false"/>
<line number="358" hits="0" branch="false"/>
<line number="359" 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="360" hits="0" branch="false"/>
<line number="363" hits="0" branch="false"/>
<line number="366" hits="0" branch="false"/>
<line number="378" 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="379" 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="380" 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="381" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="382" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="383" 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="384" 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="399" hits="0" branch="false"/>
<line number="400" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="401" hits="0" branch="false"/>
<line number="403" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="404" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="405" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="406" hits="0" branch="false"/>
<line number="407" hits="0" branch="false"/>
<line number="408" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="409" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="410" hits="0" branch="false"/>
<line number="423" hits="56" branch="false"/>
<line number="424" hits="56" branch="false"/>
<line number="425" hits="56" branch="false"/>
<line number="436" hits="6" branch="false"/>
<line number="437" hits="6" branch="false"/>
<line number="438" hits="6" branch="false"/>
<line number="439" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="440" hits="0" branch="false"/>
<line number="442" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="443" hits="6" branch="false"/>
<line number="445" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="446" hits="0" branch="false"/>
<line number="448" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="449" hits="6" branch="false"/>
<line number="451" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="452" hits="6" branch="false"/>
<line number="454" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="455" hits="2" branch="false"/>
<line number="457" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="458" hits="2" branch="false"/>
<line number="460" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="461" hits="0" branch="false"/>
<line number="463" hits="6" branch="false"/>
<line number="475" hits="6" branch="false"/>
<line number="476" hits="6" branch="false"/>
<line number="478" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="479" hits="0" branch="false"/>
<line number="481" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="482" hits="6" branch="false"/>
<line number="484" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="485" hits="0" branch="false"/>
<line number="487" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="488" hits="6" branch="false"/>
<line number="490" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="491" hits="6" branch="false"/>
<line number="493" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="494" hits="2" branch="false"/>
<line number="496" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="497" hits="2" branch="false"/>
<line number="499" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="500" hits="0" branch="false"/>
<line number="502" hits="6" branch="false"/>
<line number="513" hits="6" branch="false"/>
<line number="514" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="515" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="516" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="517" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="518" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="519" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="520" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="521" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="522" hits="6" branch="false"/>
<line number="538" hits="48" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
</lines>
</class>
<class name="org.apache.shiro.session.mgt.SimpleSessionFactory" filename="org/apache/shiro/session/mgt/SimpleSessionFactory.java" line-rate="1.0" branch-rate="1.0" complexity="4.0">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="28" hits="88" 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="38" hits="54" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="39" hits="40" branch="false"/>
<line number="40" hits="40" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="41" hits="2" branch="false"/>
<line number="44" hits="52" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="28" hits="88" branch="false"/>
<line number="38" hits="54" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="39" hits="40" branch="false"/>
<line number="40" hits="40" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="41" hits="2" branch="false"/>
<line number="44" hits="52" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.session.mgt.ValidatingSession" filename="org/apache/shiro/session/mgt/ValidatingSession.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.session.mgt.ValidatingSessionManager" filename="org/apache/shiro/session/mgt/ValidatingSessionManager.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.session.mgt.eis" line-rate="0.6402877697841727" branch-rate="0.4523809523809524" complexity="1.6">
<classes>
<class name="org.apache.shiro.session.mgt.eis.AbstractSessionDAO" filename="org/apache/shiro/session/mgt/eis/AbstractSessionDAO.java" line-rate="0.6521739130434783" branch-rate="0.5" complexity="1.6">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="58" hits="90" branch="false"/>
<line number="59" hits="90" branch="false"/>
<line number="60" hits="90" branch="false"/>
</lines>
</method>
<method name="assignSessionId" signature="(Lorg/apache/shiro/session/Session;Ljava/io/Serializable;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="146" hits="54" branch="false"/>
<line number="147" hits="54" branch="false"/>
</lines>
</method>
<method name="create" signature="(Lorg/apache/shiro/session/Session;)Ljava/io/Serializable;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="116" hits="54" branch="false"/>
<line number="117" hits="54" branch="false"/>
<line number="118" hits="54" branch="false"/>
</lines>
</method>
<method name="generateSessionId" signature="(Lorg/apache/shiro/session/Session;)Ljava/io/Serializable;" line-rate="0.5" branch-rate="0.5">
<lines>
<line number="102" hits="54" 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="54" branch="false"/>
</lines>
</method>
<method name="getSessionIdGenerator" signature="()Lorg/apache/shiro/session/mgt/eis/SessionIdGenerator;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="71" hits="0" branch="false"/>
</lines>
</method>
<method name="readSession" signature="(Ljava/io/Serializable;)Lorg/apache/shiro/session/Session;" line-rate="0.75" branch-rate="0.5">
<lines>
<line number="168" hits="394" branch="false"/>
<line number="169" hits="394" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="170" hits="0" branch="false"/>
<line number="172" hits="394" branch="false"/>
</lines>
</method>
<method name="setSessionIdGenerator" signature="(Lorg/apache/shiro/session/mgt/eis/SessionIdGenerator;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="82" hits="0" branch="false"/>
<line number="83" hits="0" branch="false"/>
</lines>
</method>
<method name="verifySessionId" signature="(Ljava/io/Serializable;)V" line-rate="0.5" branch-rate="0.5">
<lines>
<line number="128" hits="54" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="129" hits="0" branch="false"/>
<line number="130" hits="0" branch="false"/>
<line number="132" hits="54" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="58" hits="90" branch="false"/>
<line number="59" hits="90" branch="false"/>
<line number="60" hits="90" branch="false"/>
<line number="71" hits="0" branch="false"/>
<line number="82" hits="0" branch="false"/>
<line number="83" hits="0" branch="false"/>
<line number="102" hits="54" 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="54" branch="false"/>
<line number="116" hits="54" branch="false"/>
<line number="117" hits="54" branch="false"/>
<line number="118" hits="54" branch="false"/>
<line number="128" hits="54" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="129" hits="0" branch="false"/>
<line number="130" hits="0" branch="false"/>
<line number="132" hits="54" branch="false"/>
<line number="146" hits="54" branch="false"/>
<line number="147" hits="54" branch="false"/>
<line number="168" hits="394" branch="false"/>
<line number="169" hits="394" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="170" hits="0" branch="false"/>
<line number="172" hits="394" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.session.mgt.eis.CachingSessionDAO" filename="org/apache/shiro/session/mgt/eis/CachingSessionDAO.java" line-rate="0.6268656716417911" branch-rate="0.39285714285714285" complexity="1.9047619047619047">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="68" hits="2" branch="false"/>
<line number="73" hits="2" branch="false"/>
<line number="74" hits="2" branch="false"/>
</lines>
</method>
<method name="cache" signature="(Lorg/apache/shiro/session/Session;Ljava/io/Serializable;)V" line-rate="0.7142857142857143" branch-rate="0.5">
<lines>
<line number="228" 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="229" hits="0" branch="false"/>
<line number="231" hits="10" branch="false"/>
<line number="232" hits="10" 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="10" branch="false"/>
<line number="236" hits="10" branch="false"/>
</lines>
</method>
<method name="cache" signature="(Lorg/apache/shiro/session/Session;Ljava/io/Serializable;Lorg/apache/shiro/cache/Cache;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="247" hits="10" branch="false"/>
<line number="248" hits="10" branch="false"/>
</lines>
</method>
<method name="create" signature="(Lorg/apache/shiro/session/Session;)Ljava/io/Serializable;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="184" hits="2" branch="false"/>
<line number="185" hits="2" branch="false"/>
<line number="186" hits="2" branch="false"/>
</lines>
</method>
<method name="createActiveSessionsCache" signature="()Lorg/apache/shiro/cache/Cache;" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="168" hits="2" branch="false"/>
<line number="169" hits="2" branch="false"/>
<line number="170" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="171" hits="2" branch="false"/>
<line number="172" hits="2" branch="false"/>
<line number="174" hits="2" branch="false"/>
</lines>
</method>
<method name="delete" signature="(Lorg/apache/shiro/session/Session;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="303" hits="0" branch="false"/>
<line number="304" hits="0" branch="false"/>
<line number="305" hits="0" branch="false"/>
</lines>
</method>
<method name="getActiveSessions" signature="()Ljava/util/Collection;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="343" hits="0" branch="false"/>
<line number="344" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="345" hits="0" branch="false"/>
<line number="347" hits="0" branch="false"/>
</lines>
</method>
<method name="getActiveSessionsCache" signature="()Lorg/apache/shiro/cache/Cache;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="126" hits="2" branch="false"/>
</lines>
</method>
<method name="getActiveSessionsCacheLazy" signature="()Lorg/apache/shiro/cache/Cache;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="151" hits="18" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="152" hits="2" branch="false"/>
<line number="154" hits="18" branch="false"/>
</lines>
</method>
<method name="getActiveSessionsCacheName" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="104" hits="2" branch="false"/>
</lines>
</method>
<method name="getCacheManager" signature="()Lorg/apache/shiro/cache/CacheManager;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="94" hits="2" branch="false"/>
</lines>
</method>
<method name="getCachedSession" signature="(Ljava/io/Serializable;)Lorg/apache/shiro/session/Session;" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="198" hits="8" branch="false"/>
<line number="199" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="200" hits="8" branch="false"/>
<line number="201" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="202" hits="8" branch="false"/>
<line number="205" hits="8" branch="false"/>
</lines>
</method>
<method name="getCachedSession" signature="(Ljava/io/Serializable;Lorg/apache/shiro/cache/Cache;)Lorg/apache/shiro/session/Session;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="217" hits="8" branch="false"/>
</lines>
</method>
<method name="readSession" signature="(Ljava/io/Serializable;)Lorg/apache/shiro/session/Session;" line-rate="0.75" branch-rate="0.5">
<lines>
<line number="259" hits="8" branch="false"/>
<line number="260" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="261" hits="0" branch="false"/>
<line number="263" hits="8" branch="false"/>
</lines>
</method>
<method name="setActiveSessionsCache" signature="(Lorg/apache/shiro/cache/Cache;)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="setActiveSessionsCacheName" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="114" hits="0" branch="false"/>
<line number="115" hits="0" branch="false"/>
</lines>
</method>
<method name="setCacheManager" signature="(Lorg/apache/shiro/cache/CacheManager;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="83" hits="4" branch="false"/>
<line number="84" hits="4" branch="false"/>
</lines>
</method>
<method name="uncache" signature="(Lorg/apache/shiro/session/Session;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="320" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="321" hits="0" branch="false"/>
<line number="323" hits="0" branch="false"/>
<line number="324" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="325" hits="0" branch="false"/>
<line number="327" hits="0" branch="false"/>
<line number="328" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="329" hits="0" branch="false"/>
<line number="331" hits="0" branch="false"/>
</lines>
</method>
<method name="update" signature="(Lorg/apache/shiro/session/Session;)V" line-rate="0.7142857142857143" branch-rate="0.5">
<lines>
<line number="277" hits="8" branch="false"/>
<line number="278" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="279" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="280" hits="8" branch="false"/>
<line number="282" hits="0" branch="false"/>
<line number="285" hits="0" branch="false"/>
<line number="287" hits="8" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="68" hits="2" branch="false"/>
<line number="73" hits="2" branch="false"/>
<line number="74" hits="2" branch="false"/>
<line number="83" hits="4" branch="false"/>
<line number="84" hits="4" branch="false"/>
<line number="94" hits="2" branch="false"/>
<line number="104" hits="2" branch="false"/>
<line number="114" hits="0" branch="false"/>
<line number="115" hits="0" branch="false"/>
<line number="126" hits="2" branch="false"/>
<line number="138" hits="0" branch="false"/>
<line number="139" hits="0" branch="false"/>
<line number="151" hits="18" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="152" hits="2" branch="false"/>
<line number="154" hits="18" branch="false"/>
<line number="168" hits="2" branch="false"/>
<line number="169" hits="2" branch="false"/>
<line number="170" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="171" hits="2" branch="false"/>
<line number="172" hits="2" branch="false"/>
<line number="174" hits="2" branch="false"/>
<line number="184" hits="2" branch="false"/>
<line number="185" hits="2" branch="false"/>
<line number="186" hits="2" branch="false"/>
<line number="198" hits="8" branch="false"/>
<line number="199" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="200" hits="8" branch="false"/>
<line number="201" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="202" hits="8" branch="false"/>
<line number="205" hits="8" branch="false"/>
<line number="217" hits="8" branch="false"/>
<line number="228" 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="229" hits="0" branch="false"/>
<line number="231" hits="10" branch="false"/>
<line number="232" hits="10" 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="10" branch="false"/>
<line number="236" hits="10" branch="false"/>
<line number="247" hits="10" branch="false"/>
<line number="248" hits="10" branch="false"/>
<line number="259" hits="8" branch="false"/>
<line number="260" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="261" hits="0" branch="false"/>
<line number="263" hits="8" branch="false"/>
<line number="277" hits="8" branch="false"/>
<line number="278" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="279" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="280" hits="8" branch="false"/>
<line number="282" hits="0" branch="false"/>
<line number="285" hits="0" branch="false"/>
<line number="287" hits="8" branch="false"/>
<line number="303" hits="0" branch="false"/>
<line number="304" hits="0" branch="false"/>
<line number="305" hits="0" branch="false"/>
<line number="320" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="321" hits="0" branch="false"/>
<line number="323" hits="0" branch="false"/>
<line number="324" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="325" hits="0" branch="false"/>
<line number="327" hits="0" branch="false"/>
<line number="328" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="329" hits="0" branch="false"/>
<line number="331" hits="0" branch="false"/>
<line number="343" hits="0" branch="false"/>
<line number="344" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="345" hits="0" branch="false"/>
<line number="347" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.session.mgt.eis.EnterpriseCacheSessionDAO" filename="org/apache/shiro/session/mgt/eis/EnterpriseCacheSessionDAO.java" line-rate="0.7777777777777778" 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="54" hits="2" branch="false"/>
<line number="55" hits="2" branch="false"/>
<line number="61" hits="2" branch="false"/>
</lines>
</method>
<method name="doCreate" signature="(Lorg/apache/shiro/session/Session;)Ljava/io/Serializable;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="64" hits="2" branch="false"/>
<line number="65" hits="2" branch="false"/>
<line number="66" hits="2" branch="false"/>
</lines>
</method>
<method name="doDelete" signature="(Lorg/apache/shiro/session/Session;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="81" hits="0" branch="false"/>
</lines>
</method>
<method name="doReadSession" signature="(Ljava/io/Serializable;)Lorg/apache/shiro/session/Session;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="70" hits="0" branch="false"/>
</lines>
</method>
<method name="doUpdate" signature="(Lorg/apache/shiro/session/Session;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="77" hits="8" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="54" hits="2" branch="false"/>
<line number="55" hits="2" branch="false"/>
<line number="61" hits="2" branch="false"/>
<line number="64" hits="2" branch="false"/>
<line number="65" hits="2" branch="false"/>
<line number="66" hits="2" branch="false"/>
<line number="70" hits="0" branch="false"/>
<line number="77" hits="8" branch="false"/>
<line number="81" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.session.mgt.eis.EnterpriseCacheSessionDAO$1" filename="org/apache/shiro/session/mgt/eis/EnterpriseCacheSessionDAO.java" line-rate="0.5" branch-rate="1.0" complexity="1.0">
<methods>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/session/mgt/eis/EnterpriseCacheSessionDAO;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="55" hits="2" branch="false"/>
</lines>
</method>
<method name="createCache" signature="(Ljava/lang/String;)Lorg/apache/shiro/cache/Cache;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="58" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="55" hits="2" branch="false"/>
<line number="58" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.session.mgt.eis.JavaUuidSessionIdGenerator" filename="org/apache/shiro/session/mgt/eis/JavaUuidSessionIdGenerator.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="31" hits="90" branch="false"/>
</lines>
</method>
<method name="generateId" signature="(Lorg/apache/shiro/session/Session;)Ljava/io/Serializable;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="41" hits="54" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="31" hits="90" branch="false"/>
<line number="41" hits="54" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.session.mgt.eis.MemorySessionDAO" filename="org/apache/shiro/session/mgt/eis/MemorySessionDAO.java" line-rate="0.9166666666666666" branch-rate="0.625" complexity="2.0">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="58" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="62" hits="88" branch="false"/>
<line number="63" hits="88" branch="false"/>
<line number="64" hits="88" branch="false"/>
</lines>
</method>
<method name="delete" signature="(Lorg/apache/shiro/session/Session;)V" line-rate="0.8333333333333334" branch-rate="0.5">
<lines>
<line number="89" hits="32" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="90" hits="0" branch="false"/>
<line number="92" hits="32" branch="false"/>
<line number="93" hits="32" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="94" hits="32" branch="false"/>
<line number="96" hits="32" branch="false"/>
</lines>
</method>
<method name="doCreate" signature="(Lorg/apache/shiro/session/Session;)Ljava/io/Serializable;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="67" hits="52" branch="false"/>
<line number="68" hits="52" branch="false"/>
<line number="69" hits="52" branch="false"/>
<line number="70" hits="52" branch="false"/>
</lines>
</method>
<method name="doReadSession" signature="(Ljava/io/Serializable;)Lorg/apache/shiro/session/Session;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="81" hits="394" branch="false"/>
</lines>
</method>
<method name="getActiveSessions" signature="()Ljava/util/Collection;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="99" hits="6" branch="false"/>
<line number="100" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="101" hits="2" branch="false"/>
<line number="103" hits="4" branch="false"/>
</lines>
</method>
<method name="storeSession" signature="(Ljava/io/Serializable;Lorg/apache/shiro/session/Session;)Lorg/apache/shiro/session/Session;" line-rate="0.6666666666666666" branch-rate="0.5">
<lines>
<line number="74" hits="260" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="75" hits="0" branch="false"/>
<line number="77" hits="260" branch="false"/>
</lines>
</method>
<method name="update" signature="(Lorg/apache/shiro/session/Session;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="85" hits="208" branch="false"/>
<line number="86" hits="208" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="58" hits="2" branch="false"/>
<line number="62" hits="88" branch="false"/>
<line number="63" hits="88" branch="false"/>
<line number="64" hits="88" branch="false"/>
<line number="67" hits="52" branch="false"/>
<line number="68" hits="52" branch="false"/>
<line number="69" hits="52" branch="false"/>
<line number="70" hits="52" branch="false"/>
<line number="74" hits="260" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="75" hits="0" branch="false"/>
<line number="77" hits="260" branch="false"/>
<line number="81" hits="394" branch="false"/>
<line number="85" hits="208" branch="false"/>
<line number="86" hits="208" branch="false"/>
<line number="89" hits="32" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="90" hits="0" branch="false"/>
<line number="92" hits="32" branch="false"/>
<line number="93" hits="32" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="94" hits="32" branch="false"/>
<line number="96" hits="32" branch="false"/>
<line number="99" hits="6" branch="false"/>
<line number="100" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="101" hits="2" branch="false"/>
<line number="103" hits="4" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.session.mgt.eis.RandomSessionIdGenerator" filename="org/apache/shiro/session/mgt/eis/RandomSessionIdGenerator.java" line-rate="0.0" branch-rate="1.0" complexity="1.25">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="36" 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"/>
<line number="43" hits="0" branch="false"/>
<line number="44" hits="0" branch="false"/>
<line number="45" hits="0" branch="false"/>
<line number="47" hits="0" branch="false"/>
<line number="48" hits="0" branch="false"/>
<line number="49" hits="0" branch="false"/>
</lines>
</method>
<method name="generateId" signature="(Lorg/apache/shiro/session/Session;)Ljava/io/Serializable;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="67" hits="0" branch="false"/>
</lines>
</method>
<method name="getRandom" signature="()Ljava/util/Random;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="52" hits="0" branch="false"/>
</lines>
</method>
<method name="setRandom" signature="(Ljava/util/Random;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="56" hits="0" branch="false"/>
<line number="57" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="36" hits="0" branch="false"/>
<line number="41" hits="0" branch="false"/>
<line number="43" hits="0" branch="false"/>
<line number="44" hits="0" branch="false"/>
<line number="45" hits="0" branch="false"/>
<line number="47" hits="0" branch="false"/>
<line number="48" hits="0" branch="false"/>
<line number="49" hits="0" branch="false"/>
<line number="52" hits="0" branch="false"/>
<line number="56" hits="0" branch="false"/>
<line number="57" hits="0" branch="false"/>
<line number="67" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.session.mgt.eis.SessionDAO" filename="org/apache/shiro/session/mgt/eis/SessionDAO.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.session.mgt.eis.SessionIdGenerator" filename="org/apache/shiro/session/mgt/eis/SessionIdGenerator.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.subject" line-rate="0.27491408934707906" branch-rate="0.20388349514563106" complexity="2.0215827338129495">
<classes>
<class name="org.apache.shiro.subject.ExecutionException" filename="org/apache/shiro/subject/ExecutionException.java" line-rate="0.0" branch-rate="1.0" complexity="1.0">
<methods>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/lang/Throwable;)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="&lt;init&gt;" signature="(Ljava/lang/Throwable;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="35" hits="0" branch="false"/>
<line number="36" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="35" hits="0" branch="false"/>
<line number="36" hits="0" branch="false"/>
<line number="39" hits="0" branch="false"/>
<line number="40" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.subject.MutablePrincipalCollection" filename="org/apache/shiro/subject/MutablePrincipalCollection.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.subject.PrincipalCollection" filename="org/apache/shiro/subject/PrincipalCollection.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.subject.PrincipalMap" filename="org/apache/shiro/subject/PrincipalMap.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.subject.SimplePrincipalCollection" filename="org/apache/shiro/subject/SimplePrincipalCollection.java" line-rate="0.552" branch-rate="0.425531914893617" complexity="3.6956521739130435">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="52" hits="2" branch="false"/>
<line number="53" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Object;Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="55" hits="160" branch="false"/>
<line number="56" hits="160" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="57" hits="2" branch="false"/>
<line number="59" hits="158" branch="false"/>
<line number="61" hits="160" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/util/Collection;Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="63" hits="0" branch="false"/>
<line number="64" hits="0" branch="false"/>
<line number="65" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/subject/PrincipalCollection;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="67" hits="82" branch="false"/>
<line number="68" hits="82" branch="false"/>
<line number="69" hits="82" branch="false"/>
</lines>
</method>
<method name="add" signature="(Ljava/lang/Object;Ljava/lang/String;)V" line-rate="0.7142857142857143" branch-rate="0.5">
<lines>
<line number="100" hits="246" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="101" hits="0" branch="false"/>
<line number="103" hits="246" 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="246" branch="false"/>
<line number="107" hits="246" branch="false"/>
<line number="108" hits="246" branch="false"/>
</lines>
</method>
<method name="addAll" signature="(Ljava/util/Collection;Ljava/lang/String;)V" line-rate="0.6666666666666666" branch-rate="0.5">
<lines>
<line number="111" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="112" hits="0" branch="false"/>
<line number="114" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="115" hits="0" branch="false"/>
<line number="117" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="118" hits="0" branch="false"/>
<line number="120" hits="2" branch="false"/>
<line number="121" hits="2" branch="false"/>
<line number="122" hits="2" branch="false"/>
</lines>
</method>
<method name="addAll" signature="(Lorg/apache/shiro/subject/PrincipalCollection;)V" line-rate="1.0" branch-rate="0.8333333333333334">
<lines>
<line number="125" hits="84" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="126" hits="84" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="127" hits="84" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="128" hits="84" branch="false"/>
<line number="129" hits="84" branch="false"/>
<line number="130" hits="84" branch="false"/>
<line number="132" hits="84" branch="false"/>
</lines>
</method>
<method name="asList" signature="()Ljava/util/List;" line-rate="0.75" branch-rate="0.5">
<lines>
<line number="169" hits="2" branch="false"/>
<line number="170" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="171" hits="0" branch="false"/>
<line number="173" hits="2" branch="false"/>
</lines>
</method>
<method name="asSet" signature="()Ljava/util/Set;" line-rate="0.8" branch-rate="0.625">
<lines>
<line number="177" hits="132" 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="178" hits="0" branch="false"/>
<line number="180" hits="132" branch="false"/>
<line number="181" hits="132" branch="false"/>
<line number="182" hits="132" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="183" hits="134" branch="false"/>
<line number="184" hits="134" branch="false"/>
<line number="185" hits="132" 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="188" hits="132" branch="false"/>
</lines>
</method>
<method name="byType" signature="(Ljava/lang/Class;)Ljava/util/Collection;" line-rate="0.0" branch-rate="0.0">
<lines>
<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="153" hits="0" branch="false"/>
<line number="154" hits="0" branch="false"/>
<line number="155" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<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="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="158" 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"/>
</lines>
</method>
<method name="clear" signature="()V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="215" 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="218" hits="0" branch="false"/>
<line number="220" 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="227" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="228" hits="0" branch="false"/>
<line number="230" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="231" hits="0" branch="false"/>
<line number="232" 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="234" hits="0" branch="false"/>
</lines>
</method>
<method name="fromRealm" signature="(Ljava/lang/String;)Ljava/util/Collection;" line-rate="0.8333333333333334" branch-rate="0.625">
<lines>
<line number="192" hits="218" 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="193" hits="0" branch="false"/>
<line number="195" hits="218" branch="false"/>
<line number="196" hits="218" 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="197" hits="16" branch="false"/>
<line number="199" hits="218" branch="false"/>
</lines>
</method>
<method name="getPrimaryPrincipal" signature="()Ljava/lang/Object;" line-rate="0.6666666666666666" branch-rate="0.5">
<lines>
<line number="93" hits="62" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="94" hits="0" branch="false"/>
<line number="96" hits="62" branch="false"/>
</lines>
</method>
<method name="getPrincipalsLazy" signature="(Ljava/lang/String;)Ljava/util/Collection;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="72" hits="248" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="73" hits="244" branch="false"/>
<line number="75" hits="248" branch="false"/>
<line number="76" hits="248" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="77" hits="246" branch="false"/>
<line number="78" hits="246" branch="false"/>
<line number="80" hits="248" branch="false"/>
</lines>
</method>
<method name="getRealmNames" signature="()Ljava/util/Set;" line-rate="0.6666666666666666" branch-rate="0.5">
<lines>
<line number="203" hits="164" 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="164" branch="false"/>
</lines>
</method>
<method name="hashCode" signature="()I" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="238" 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="239" hits="0" branch="false"/>
<line number="241" hits="0" branch="false"/>
</lines>
</method>
<method name="isEmpty" signature="()Z" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="211" hits="568" 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="iterator" signature="()Ljava/util/Iterator;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="223" hits="62" branch="false"/>
</lines>
</method>
<method name="oneByType" signature="(Ljava/lang/Class;)Ljava/lang/Object;" line-rate="0.7" branch-rate="0.6">
<lines>
<line number="135" 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="136" hits="0" branch="false"/>
<line number="138" hits="10" branch="false"/>
<line number="139" hits="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="140" hits="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="141" hits="18" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="142" hits="10" branch="false"/>
<line number="144" hits="8" branch="false"/>
<line number="145" hits="0" branch="false"/>
<line number="146" hits="0" branch="false"/>
</lines>
</method>
<method name="readObject" signature="(Ljava/io/ObjectInputStream;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="295" hits="0" branch="false"/>
<line number="296" hits="0" branch="false"/>
<line number="297" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="298" hits="0" branch="false"/>
<line number="300" hits="0" branch="false"/>
</lines>
</method>
<method name="toString" signature="()Ljava/lang/String;" line-rate="0.8333333333333334" branch-rate="0.75">
<lines>
<line number="251" hits="296" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="252" hits="68" branch="false"/>
<line number="253" hits="68" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="254" hits="68" branch="false"/>
<line number="256" hits="0" branch="false"/>
<line number="259" hits="296" branch="false"/>
</lines>
</method>
<method name="writeObject" signature="(Ljava/io/ObjectOutputStream;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="274" hits="0" branch="false"/>
<line number="275" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="276" hits="0" branch="false"/>
<line number="277" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="278" hits="0" branch="false"/>
<line number="280" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="52" hits="2" branch="false"/>
<line number="53" hits="2" branch="false"/>
<line number="55" hits="160" branch="false"/>
<line number="56" hits="160" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="57" hits="2" branch="false"/>
<line number="59" hits="158" branch="false"/>
<line number="61" hits="160" branch="false"/>
<line number="63" hits="0" branch="false"/>
<line number="64" hits="0" branch="false"/>
<line number="65" hits="0" branch="false"/>
<line number="67" hits="82" branch="false"/>
<line number="68" hits="82" branch="false"/>
<line number="69" hits="82" branch="false"/>
<line number="72" hits="248" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="73" hits="244" branch="false"/>
<line number="75" hits="248" branch="false"/>
<line number="76" hits="248" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="77" hits="246" branch="false"/>
<line number="78" hits="246" branch="false"/>
<line number="80" hits="248" branch="false"/>
<line number="93" hits="62" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="94" hits="0" branch="false"/>
<line number="96" hits="62" branch="false"/>
<line number="100" hits="246" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="101" hits="0" branch="false"/>
<line number="103" hits="246" 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="246" branch="false"/>
<line number="107" hits="246" branch="false"/>
<line number="108" hits="246" branch="false"/>
<line number="111" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="112" hits="0" branch="false"/>
<line number="114" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="115" hits="0" branch="false"/>
<line number="117" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="118" hits="0" branch="false"/>
<line number="120" hits="2" branch="false"/>
<line number="121" hits="2" branch="false"/>
<line number="122" hits="2" branch="false"/>
<line number="125" hits="84" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="126" hits="84" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="127" hits="84" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="128" hits="84" branch="false"/>
<line number="129" hits="84" branch="false"/>
<line number="130" hits="84" branch="false"/>
<line number="132" hits="84" branch="false"/>
<line number="135" 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="136" hits="0" branch="false"/>
<line number="138" hits="10" branch="false"/>
<line number="139" hits="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="140" hits="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="141" hits="18" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="142" hits="10" branch="false"/>
<line number="144" hits="8" branch="false"/>
<line number="145" hits="0" branch="false"/>
<line number="146" 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="153" hits="0" branch="false"/>
<line number="154" hits="0" branch="false"/>
<line number="155" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<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="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="158" 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="169" hits="2" branch="false"/>
<line number="170" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="171" hits="0" branch="false"/>
<line number="173" hits="2" branch="false"/>
<line number="177" hits="132" 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="178" hits="0" branch="false"/>
<line number="180" hits="132" branch="false"/>
<line number="181" hits="132" branch="false"/>
<line number="182" hits="132" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="183" hits="134" branch="false"/>
<line number="184" hits="134" branch="false"/>
<line number="185" hits="132" 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="188" hits="132" branch="false"/>
<line number="192" hits="218" 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="193" hits="0" branch="false"/>
<line number="195" hits="218" branch="false"/>
<line number="196" hits="218" 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="197" hits="16" branch="false"/>
<line number="199" hits="218" branch="false"/>
<line number="203" hits="164" 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="164" branch="false"/>
<line number="211" hits="568" 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="215" 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="218" hits="0" branch="false"/>
<line number="220" hits="0" branch="false"/>
<line number="223" hits="62" branch="false"/>
<line number="227" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="228" hits="0" branch="false"/>
<line number="230" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="231" hits="0" branch="false"/>
<line number="232" 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="234" hits="0" branch="false"/>
<line number="238" 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="239" hits="0" branch="false"/>
<line number="241" hits="0" branch="false"/>
<line number="251" hits="296" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="252" hits="68" branch="false"/>
<line number="253" hits="68" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="254" hits="68" branch="false"/>
<line number="256" hits="0" branch="false"/>
<line number="259" hits="296" branch="false"/>
<line number="274" hits="0" branch="false"/>
<line number="275" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="276" hits="0" branch="false"/>
<line number="277" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="278" hits="0" branch="false"/>
<line number="280" hits="0" branch="false"/>
<line number="295" hits="0" branch="false"/>
<line number="296" hits="0" branch="false"/>
<line number="297" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="298" hits="0" branch="false"/>
<line number="300" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.subject.SimplePrincipalMap" filename="org/apache/shiro/subject/SimplePrincipalMap.java" line-rate="0.0" branch-rate="0.0" complexity="3.4642857142857144">
<methods>
<method name="&lt;init&gt;" signature="()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="&lt;init&gt;" signature="(Ljava/util/Map;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="48" 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="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="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="57" hits="0" branch="false"/>
</lines>
</method>
<method name="asList" signature="()Ljava/util/List;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="155" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="156" hits="0" branch="false"/>
<line number="158" hits="0" branch="false"/>
<line number="159" hits="0" branch="false"/>
<line number="160" hits="0" branch="false"/>
</lines>
</method>
<method name="asSet" signature="()Ljava/util/Set;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="164" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="165" hits="0" branch="false"/>
<line number="167" hits="0" branch="false"/>
<line number="168" hits="0" branch="false"/>
<line number="169" hits="0" branch="false"/>
</lines>
</method>
<method name="byType" signature="(Ljava/lang/Class;)Ljava/util/Collection;" 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="142" 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="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="145" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="146" hits="0" branch="false"/>
<line number="148" hits="0" branch="false"/>
<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>
</lines>
</method>
<method name="clear" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<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="containsKey" signature="(Ljava/lang/Object;)Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="71" 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="containsValue" signature="(Ljava/lang/Object;)Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="75" 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="ensureCombinedPrincipals" signature="()Ljava/util/Map;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="64" 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"/>
</lines>
</method>
<method name="entrySet" signature="()Ljava/util/Set;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="109" 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="false"/>
<line number="111" hits="0" branch="false"/>
</lines>
</method>
<method name="fromRealm" signature="(Ljava/lang/String;)Ljava/util/Collection;" line-rate="0.0" branch-rate="0.0">
<lines>
<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"/>
</lines>
</method>
<method name="get" signature="(Ljava/lang/Object;)Ljava/lang/Object;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="79" 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="getPrimaryPrincipal" signature="()Ljava/lang/Object;" 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"/>
</lines>
</method>
<method name="getRealmNames" signature="()Ljava/util/Set;" line-rate="0.0" branch-rate="0.0">
<lines>
<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="false"/>
<line number="187" hits="0" branch="false"/>
</lines>
</method>
<method name="getRealmPrincipal" signature="(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="251" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="252" 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="260" hits="0" branch="false"/>
<line number="261" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="262" hits="0" branch="false"/>
<line number="264" hits="0" branch="false"/>
</lines>
</method>
<method name="getRealmPrincipals" signature="(Ljava/lang/String;)Ljava/util/Map;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="199" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="200" hits="0" branch="false"/>
<line number="202" hits="0" branch="false"/>
<line number="203" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="204" hits="0" branch="false"/>
<line number="206" hits="0" branch="false"/>
</lines>
</method>
<method name="isEmpty" signature="()Z" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="191" hits="0" branch="false"/>
</lines>
</method>
<method name="iterator" signature="()Ljava/util/Iterator;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="195" hits="0" branch="false"/>
</lines>
</method>
<method name="keySet" signature="()Ljava/util/Set;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="97" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="98" hits="0" branch="false"/>
<line number="99" hits="0" branch="false"/>
</lines>
</method>
<method name="oneByType" signature="(Ljava/lang/Class;)Ljava/lang/Object;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="127" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="128" 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="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="132" hits="0" branch="false"/>
<line number="134" hits="0" branch="false"/>
<line number="135" hits="0" branch="false"/>
</lines>
</method>
<method name="put" signature="(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="33" hits="0" branch="false"/>
</lines>
</method>
<method name="put" signature="(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="83" hits="0" branch="false"/>
</lines>
</method>
<method name="putAll" signature="(Ljava/util/Map;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<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="false"/>
<line number="94" hits="0" branch="false"/>
</lines>
</method>
<method name="remove" signature="(Ljava/lang/Object;)Ljava/lang/Object;" 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>
</lines>
</method>
<method name="removeRealmPrincipal" signature="(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="268" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="269" hits="0" branch="false"/>
<line number="271" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="272" hits="0" branch="false"/>
<line number="274" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="275" hits="0" branch="false"/>
<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="281" hits="0" branch="false"/>
</lines>
</method>
<method name="setRealmPrincipal" signature="(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="230" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="231" hits="0" branch="false"/>
<line number="233" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="234" hits="0" branch="false"/>
<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="false"/>
<line number="239" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="240" hits="0" branch="false"/>
<line number="242" hits="0" branch="false"/>
<line number="243" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="244" hits="0" branch="false"/>
<line number="245" hits="0" branch="false"/>
<line number="247" hits="0" branch="false"/>
</lines>
</method>
<method name="setRealmPrincipals" signature="(Ljava/lang/String;Ljava/util/Map;)Ljava/util/Map;" 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="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="214" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="215" hits="0" branch="false"/>
<line number="216" hits="0" branch="false"/>
<line number="218" hits="0" branch="false"/>
<line number="221" hits="0" branch="false"/>
<line number="222" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="223" hits="0" branch="false"/>
<line number="225" hits="0" branch="false"/>
</lines>
</method>
<method name="size" signature="()I" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="60" hits="0" branch="false"/>
</lines>
</method>
<method name="values" signature="()Ljava/util/Collection;" line-rate="0.0" branch-rate="0.0">
<lines>
<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="105" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="33" hits="0" branch="false"/>
<line number="45" hits="0" branch="false"/>
<line number="46" hits="0" branch="false"/>
<line number="48" 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="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="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="57" hits="0" branch="false"/>
<line number="60" hits="0" branch="false"/>
<line number="64" 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="71" 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="75" 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="79" 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="83" 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="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="false"/>
<line number="94" hits="0" branch="false"/>
<line number="97" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="98" hits="0" branch="false"/>
<line number="99" hits="0" branch="false"/>
<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="105" hits="0" branch="false"/>
<line number="109" 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="false"/>
<line number="111" 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="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="127" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="128" 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="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="132" hits="0" branch="false"/>
<line number="134" hits="0" branch="false"/>
<line number="135" 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="142" 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="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="145" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="146" hits="0" branch="false"/>
<line number="148" hits="0" branch="false"/>
<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="155" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="156" hits="0" branch="false"/>
<line number="158" hits="0" branch="false"/>
<line number="159" hits="0" branch="false"/>
<line number="160" hits="0" branch="false"/>
<line number="164" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="165" hits="0" branch="false"/>
<line number="167" hits="0" branch="false"/>
<line number="168" hits="0" branch="false"/>
<line number="169" 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="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="false"/>
<line number="187" hits="0" branch="false"/>
<line number="191" hits="0" branch="false"/>
<line number="195" hits="0" branch="false"/>
<line number="199" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="200" hits="0" branch="false"/>
<line number="202" hits="0" branch="false"/>
<line number="203" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="204" hits="0" branch="false"/>
<line number="206" hits="0" branch="false"/>
<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="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="214" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="215" hits="0" branch="false"/>
<line number="216" hits="0" branch="false"/>
<line number="218" hits="0" branch="false"/>
<line number="221" hits="0" branch="false"/>
<line number="222" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="223" hits="0" branch="false"/>
<line number="225" hits="0" branch="false"/>
<line number="230" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="231" hits="0" branch="false"/>
<line number="233" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="234" hits="0" branch="false"/>
<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="false"/>
<line number="239" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="240" hits="0" branch="false"/>
<line number="242" hits="0" branch="false"/>
<line number="243" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="244" hits="0" branch="false"/>
<line number="245" hits="0" branch="false"/>
<line number="247" hits="0" branch="false"/>
<line number="251" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="252" 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="260" hits="0" branch="false"/>
<line number="261" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="262" hits="0" branch="false"/>
<line number="264" hits="0" branch="false"/>
<line number="268" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="269" hits="0" branch="false"/>
<line number="271" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="272" hits="0" branch="false"/>
<line number="274" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="275" hits="0" branch="false"/>
<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="281" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.subject.Subject" filename="org/apache/shiro/subject/Subject.java" line-rate="1.0" branch-rate="1.0" complexity="1.25">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.subject.Subject$Builder" filename="org/apache/shiro/subject/Subject.java" line-rate="0.2972972972972973" branch-rate="0.125" complexity="1.25">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="627" hits="24" branch="false"/>
<line number="628" hits="24" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/mgt/SecurityManager;)V" line-rate="0.7777777777777778" branch-rate="0.5">
<lines>
<line number="636" hits="58" branch="false"/>
<line number="637" hits="58" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="638" hits="0" branch="false"/>
<line number="640" hits="58" branch="false"/>
<line number="641" hits="58" branch="false"/>
<line number="642" hits="58" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="643" hits="0" branch="false"/>
<line number="646" hits="58" branch="false"/>
<line number="647" hits="58" branch="false"/>
</lines>
</method>
<method name="authenticated" signature="(Z)Lorg/apache/shiro/subject/Subject$Builder;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="792" hits="0" branch="false"/>
<line number="793" hits="0" branch="false"/>
</lines>
</method>
<method name="buildSubject" signature="()Lorg/apache/shiro/subject/Subject;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="846" hits="58" branch="false"/>
</lines>
</method>
<method name="contextAttribute" signature="(Ljava/lang/String;Ljava/lang/Object;)Lorg/apache/shiro/subject/Subject$Builder;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="815" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="816" hits="0" branch="false"/>
<line number="817" hits="0" branch="false"/>
<line number="819" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="820" hits="0" branch="false"/>
<line number="822" hits="0" branch="false"/>
<line number="824" hits="0" branch="false"/>
</lines>
</method>
<method name="getSubjectContext" signature="()Lorg/apache/shiro/subject/SubjectContext;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="666" hits="0" branch="false"/>
</lines>
</method>
<method name="host" signature="(Ljava/lang/String;)Lorg/apache/shiro/subject/Subject$Builder;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="711" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="712" hits="0" branch="false"/>
<line number="714" 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="656" hits="58" branch="false"/>
</lines>
</method>
<method name="principals" signature="(Lorg/apache/shiro/subject/PrincipalCollection;)Lorg/apache/shiro/subject/Subject$Builder;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="757" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="758" hits="0" branch="false"/>
<line number="760" hits="0" branch="false"/>
</lines>
</method>
<method name="session" signature="(Lorg/apache/shiro/session/Session;)Lorg/apache/shiro/subject/Subject$Builder;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="726" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="727" hits="0" branch="false"/>
<line number="729" hits="0" branch="false"/>
</lines>
</method>
<method name="sessionCreationEnabled" signature="(Z)Lorg/apache/shiro/subject/Subject$Builder;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="776" hits="0" branch="false"/>
<line number="777" hits="0" branch="false"/>
</lines>
</method>
<method name="sessionId" signature="(Ljava/io/Serializable;)Lorg/apache/shiro/subject/Subject$Builder;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="697" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="698" hits="0" branch="false"/>
<line number="700" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="627" hits="24" branch="false"/>
<line number="628" hits="24" branch="false"/>
<line number="636" hits="58" branch="false"/>
<line number="637" hits="58" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="638" hits="0" branch="false"/>
<line number="640" hits="58" branch="false"/>
<line number="641" hits="58" branch="false"/>
<line number="642" hits="58" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="643" hits="0" branch="false"/>
<line number="646" hits="58" branch="false"/>
<line number="647" hits="58" branch="false"/>
<line number="656" hits="58" branch="false"/>
<line number="666" hits="0" branch="false"/>
<line number="697" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="698" hits="0" branch="false"/>
<line number="700" hits="0" branch="false"/>
<line number="711" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="712" hits="0" branch="false"/>
<line number="714" hits="0" branch="false"/>
<line number="726" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="727" hits="0" branch="false"/>
<line number="729" hits="0" branch="false"/>
<line number="757" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="758" hits="0" branch="false"/>
<line number="760" hits="0" branch="false"/>
<line number="776" hits="0" branch="false"/>
<line number="777" hits="0" branch="false"/>
<line number="792" hits="0" branch="false"/>
<line number="793" hits="0" branch="false"/>
<line number="815" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="816" hits="0" branch="false"/>
<line number="817" hits="0" branch="false"/>
<line number="819" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="820" hits="0" branch="false"/>
<line number="822" hits="0" branch="false"/>
<line number="824" hits="0" branch="false"/>
<line number="846" hits="58" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.subject.SubjectContext" filename="org/apache/shiro/subject/SubjectContext.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.subject.support" line-rate="0.773109243697479" branch-rate="0.5666666666666667" complexity="2.0543478260869565">
<classes>
<class name="org.apache.shiro.subject.support.DefaultSubjectContext" filename="org/apache/shiro/subject/support/DefaultSubjectContext.java" line-rate="0.8118811881188119" branch-rate="0.5370370370370371" complexity="1.8888888888888888">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="50" hits="2" branch="false"/>
<line number="52" hits="2" branch="false"/>
<line number="54" hits="2" branch="false"/>
<line number="56" hits="2" branch="false"/>
<line number="58" hits="2" branch="false"/>
<line number="60" hits="2" branch="false"/>
<line number="62" hits="2" branch="false"/>
<line number="64" hits="2" branch="false"/>
<line number="66" hits="2" branch="false"/>
<line number="68" hits="2" branch="false"/>
<line number="73" hits="2" branch="false"/>
<line number="78" hits="2" branch="false"/>
<line number="80" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="83" hits="96" branch="false"/>
<line number="84" hits="96" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/subject/SubjectContext;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="87" hits="92" branch="false"/>
<line number="88" hits="92" branch="false"/>
</lines>
</method>
<method name="getAuthenticationInfo" signature="()Lorg/apache/shiro/authc/AuthenticationInfo;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="231" hits="242" branch="false"/>
</lines>
</method>
<method name="getAuthenticationToken" signature="()Lorg/apache/shiro/authc/AuthenticationToken;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="239" hits="92" branch="false"/>
</lines>
</method>
<method name="getHost" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="247" hits="92" branch="false"/>
</lines>
</method>
<method name="getPrincipals" signature="()Lorg/apache/shiro/subject/PrincipalCollection;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="133" hits="184" branch="false"/>
</lines>
</method>
<method name="getSecurityManager" signature="()Lorg/apache/shiro/mgt/SecurityManager;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="91" hits="184" branch="false"/>
</lines>
</method>
<method name="getSession" signature="()Lorg/apache/shiro/session/Session;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="173" hits="448" branch="false"/>
</lines>
</method>
<method name="getSessionId" signature="()Ljava/io/Serializable;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="117" hits="92" branch="false"/>
</lines>
</method>
<method name="getSubject" signature="()Lorg/apache/shiro/subject/Subject;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="125" hits="564" branch="false"/>
</lines>
</method>
<method name="isAuthenticated" signature="()Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="202" hits="0" branch="false"/>
<line number="203" 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="isSessionCreationEnabled" signature="()Z" line-rate="1.0" branch-rate="0.25">
<lines>
<line number="193" hits="92" branch="false"/>
<line number="194" hits="92" branch="true" condition-coverage="25% (1/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="0%"/>
</conditions>
</line>
</lines>
</method>
<method name="resolveAuthenticated" signature="()Z" line-rate="0.8" branch-rate="0.5">
<lines>
<line number="211" hits="92" branch="false"/>
<line number="212" hits="92" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="215" hits="58" branch="false"/>
<line number="216" hits="58" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="218" hits="92" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="220" hits="58" branch="false"/>
<line number="221" hits="58" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="222" hits="0" branch="false"/>
<line number="223" 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="227" hits="92" branch="false"/>
</lines>
</method>
<method name="resolveHost" signature="()Ljava/lang/String;" line-rate="0.9" branch-rate="0.75">
<lines>
<line number="257" hits="92" branch="false"/>
<line number="259" hits="92" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="261" hits="92" branch="false"/>
<line number="262" hits="92" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="263" hits="34" branch="false"/>
<line number="267" hits="92" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="268" hits="90" branch="false"/>
<line number="269" hits="90" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="270" hits="0" branch="false"/>
<line number="274" hits="92" branch="false"/>
</lines>
</method>
<method name="resolvePrincipals" signature="()Lorg/apache/shiro/subject/PrincipalCollection;" line-rate="0.8571428571428571" branch-rate="0.75">
<lines>
<line number="143" hits="184" branch="false"/>
<line number="145" hits="184" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="147" hits="184" branch="false"/>
<line number="148" hits="184" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="149" hits="68" branch="false"/>
<line number="153" hits="184" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="154" hits="116" branch="false"/>
<line number="155" hits="116" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="156" hits="0" branch="false"/>
<line number="160" hits="184" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="162" hits="116" branch="false"/>
<line number="163" hits="116" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="164" hits="0" branch="false"/>
<line number="168" hits="184" branch="false"/>
</lines>
</method>
<method name="resolveSecurityManager" signature="()Lorg/apache/shiro/mgt/SecurityManager;" line-rate="1.0" branch-rate="0.6666666666666666">
<lines>
<line number="99" hits="184" branch="false"/>
<line number="100" hits="184" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="101" hits="60" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="102" hits="60" branch="false"/>
<line number="106" hits="60" branch="false"/>
<line number="107" hits="8" branch="false"/>
<line number="108" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="109" hits="8" branch="false"/>
<line number="111" hits="52" branch="false"/>
<line number="113" hits="184" branch="false"/>
</lines>
</method>
<method name="resolveSession" signature="()Lorg/apache/shiro/session/Session;" line-rate="1.0" branch-rate="0.75">
<lines>
<line number="181" hits="448" branch="false"/>
<line number="182" hits="448" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="184" hits="448" branch="false"/>
<line number="185" hits="448" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="186" hits="100" branch="false"/>
<line number="189" hits="448" branch="false"/>
</lines>
</method>
<method name="setAuthenticated" signature="(Z)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="207" hits="34" branch="false"/>
<line number="208" hits="34" branch="false"/>
</lines>
</method>
<method name="setAuthenticationInfo" signature="(Lorg/apache/shiro/authc/AuthenticationInfo;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="235" hits="34" branch="false"/>
<line number="236" hits="34" branch="false"/>
</lines>
</method>
<method name="setAuthenticationToken" signature="(Lorg/apache/shiro/authc/AuthenticationToken;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="243" hits="34" branch="false"/>
<line number="244" hits="34" branch="false"/>
</lines>
</method>
<method name="setHost" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="251" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="252" hits="0" branch="false"/>
<line number="254" hits="0" branch="false"/>
</lines>
</method>
<method name="setPrincipals" signature="(Lorg/apache/shiro/subject/PrincipalCollection;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="137" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="138" hits="0" branch="false"/>
<line number="140" hits="0" branch="false"/>
</lines>
</method>
<method name="setSecurityManager" signature="(Lorg/apache/shiro/mgt/SecurityManager;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="95" hits="66" branch="false"/>
<line number="96" hits="66" branch="false"/>
</lines>
</method>
<method name="setSession" signature="(Lorg/apache/shiro/session/Session;)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="setSessionCreationEnabled" signature="(Z)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="198" hits="0" branch="false"/>
<line number="199" hits="0" branch="false"/>
</lines>
</method>
<method name="setSessionId" signature="(Ljava/io/Serializable;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="121" hits="0" branch="false"/>
<line number="122" hits="0" branch="false"/>
</lines>
</method>
<method name="setSubject" signature="(Lorg/apache/shiro/subject/Subject;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="129" hits="34" branch="false"/>
<line number="130" hits="34" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="50" hits="2" branch="false"/>
<line number="52" hits="2" branch="false"/>
<line number="54" hits="2" branch="false"/>
<line number="56" hits="2" branch="false"/>
<line number="58" hits="2" branch="false"/>
<line number="60" hits="2" branch="false"/>
<line number="62" hits="2" branch="false"/>
<line number="64" hits="2" branch="false"/>
<line number="66" hits="2" branch="false"/>
<line number="68" hits="2" branch="false"/>
<line number="73" hits="2" branch="false"/>
<line number="78" hits="2" branch="false"/>
<line number="80" hits="2" branch="false"/>
<line number="83" hits="96" branch="false"/>
<line number="84" hits="96" branch="false"/>
<line number="87" hits="92" branch="false"/>
<line number="88" hits="92" branch="false"/>
<line number="91" hits="184" branch="false"/>
<line number="95" hits="66" branch="false"/>
<line number="96" hits="66" branch="false"/>
<line number="99" hits="184" branch="false"/>
<line number="100" hits="184" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="101" hits="60" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="102" hits="60" branch="false"/>
<line number="106" hits="60" branch="false"/>
<line number="107" hits="8" branch="false"/>
<line number="108" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="109" hits="8" branch="false"/>
<line number="111" hits="52" branch="false"/>
<line number="113" hits="184" branch="false"/>
<line number="117" hits="92" branch="false"/>
<line number="121" hits="0" branch="false"/>
<line number="122" hits="0" branch="false"/>
<line number="125" hits="564" branch="false"/>
<line number="129" hits="34" branch="false"/>
<line number="130" hits="34" branch="false"/>
<line number="133" hits="184" branch="false"/>
<line number="137" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="138" hits="0" branch="false"/>
<line number="140" hits="0" branch="false"/>
<line number="143" hits="184" branch="false"/>
<line number="145" hits="184" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="147" hits="184" branch="false"/>
<line number="148" hits="184" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="149" hits="68" branch="false"/>
<line number="153" hits="184" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="154" hits="116" branch="false"/>
<line number="155" hits="116" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="156" hits="0" branch="false"/>
<line number="160" hits="184" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="162" hits="116" branch="false"/>
<line number="163" hits="116" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="164" hits="0" branch="false"/>
<line number="168" hits="184" branch="false"/>
<line number="173" hits="448" branch="false"/>
<line number="177" hits="0" branch="false"/>
<line number="178" hits="0" branch="false"/>
<line number="181" hits="448" branch="false"/>
<line number="182" hits="448" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="184" hits="448" branch="false"/>
<line number="185" hits="448" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="186" hits="100" branch="false"/>
<line number="189" hits="448" branch="false"/>
<line number="193" hits="92" branch="false"/>
<line number="194" hits="92" 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="198" hits="0" branch="false"/>
<line number="199" hits="0" branch="false"/>
<line number="202" hits="0" branch="false"/>
<line number="203" 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="207" hits="34" branch="false"/>
<line number="208" hits="34" branch="false"/>
<line number="211" hits="92" branch="false"/>
<line number="212" hits="92" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="215" hits="58" branch="false"/>
<line number="216" hits="58" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="218" hits="92" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="220" hits="58" branch="false"/>
<line number="221" hits="58" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="222" hits="0" branch="false"/>
<line number="223" 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="227" hits="92" branch="false"/>
<line number="231" hits="242" branch="false"/>
<line number="235" hits="34" branch="false"/>
<line number="236" hits="34" branch="false"/>
<line number="239" hits="92" branch="false"/>
<line number="243" hits="34" branch="false"/>
<line number="244" hits="34" branch="false"/>
<line number="247" hits="92" branch="false"/>
<line number="251" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="252" hits="0" branch="false"/>
<line number="254" hits="0" branch="false"/>
<line number="257" hits="92" branch="false"/>
<line number="259" hits="92" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="261" hits="92" branch="false"/>
<line number="262" hits="92" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="263" hits="34" branch="false"/>
<line number="267" hits="92" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="268" hits="90" branch="false"/>
<line number="269" hits="90" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="270" hits="0" branch="false"/>
<line number="274" hits="92" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.subject.support.DelegatingSubject" filename="org/apache/shiro/subject/support/DelegatingSubject.java" line-rate="0.7180851063829787" branch-rate="0.5566037735849056" complexity="2.1176470588235294">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="71" hits="38" branch="false"/>
<line number="73" hits="2" branch="false"/>
<line number="75" hits="4" branch="false"/>
<line number="76" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/mgt/SecurityManager;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="90" hits="2" branch="false"/>
<line number="91" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/subject/PrincipalCollection;ZLjava/lang/String;Lorg/apache/shiro/session/Session;Lorg/apache/shiro/mgt/SecurityManager;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="95" hits="6" branch="false"/>
<line number="96" hits="6" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/subject/PrincipalCollection;ZLjava/lang/String;Lorg/apache/shiro/session/Session;ZLorg/apache/shiro/mgt/SecurityManager;)V" line-rate="0.9090909090909091" branch-rate="0.75">
<lines>
<line number="100" hits="100" branch="false"/>
<line number="101" hits="100" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="102" hits="0" branch="false"/>
<line number="104" hits="100" branch="false"/>
<line number="105" hits="100" branch="false"/>
<line number="106" hits="100" branch="false"/>
<line number="107" hits="100" branch="false"/>
<line number="108" hits="100" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="109" hits="2" branch="false"/>
<line number="111" hits="100" branch="false"/>
<line number="112" hits="100" branch="false"/>
</lines>
</method>
<method name="access$100" signature="(Lorg/apache/shiro/subject/support/DelegatingSubject;)V" line-rate="1.0" branch-rate="1.0">
<lines>
</lines>
</method>
<method name="assertAuthzCheckPossible" signature="()V" line-rate="0.8" branch-rate="0.5">
<lines>
<line number="190" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="191" hits="8" branch="false"/>
<line number="194" hits="8" branch="false"/>
<line number="199" hits="8" branch="false"/>
<line number="201" hits="0" branch="false"/>
</lines>
</method>
<method name="associateWith" signature="(Ljava/lang/Runnable;)Ljava/lang/Runnable;" line-rate="0.5" branch-rate="0.5">
<lines>
<line number="399" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="400" hits="0" branch="false"/>
<line number="404" hits="0" branch="false"/>
<line number="406" hits="8" branch="false"/>
</lines>
</method>
<method name="associateWith" signature="(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Callable;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="395" hits="2" branch="false"/>
</lines>
</method>
<method name="checkPermission" signature="(Ljava/lang/String;)V" line-rate="0.3333333333333333" branch-rate="1.0">
<lines>
<line number="204" hits="2" branch="false"/>
<line number="205" hits="0" branch="false"/>
<line number="206" hits="0" branch="false"/>
</lines>
</method>
<method name="checkPermission" signature="(Lorg/apache/shiro/authz/Permission;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="209" hits="0" branch="false"/>
<line number="210" hits="0" branch="false"/>
<line number="211" hits="0" branch="false"/>
</lines>
</method>
<method name="checkPermissions" signature="(Ljava/util/Collection;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="219" hits="0" branch="false"/>
<line number="220" hits="0" branch="false"/>
<line number="221" hits="0" branch="false"/>
</lines>
</method>
<method name="checkPermissions" signature="([Ljava/lang/String;)V" line-rate="0.3333333333333333" branch-rate="1.0">
<lines>
<line number="214" hits="2" branch="false"/>
<line number="215" hits="0" branch="false"/>
<line number="216" hits="0" branch="false"/>
</lines>
</method>
<method name="checkRole" signature="(Ljava/lang/String;)V" line-rate="0.3333333333333333" branch-rate="1.0">
<lines>
<line number="240" hits="2" branch="false"/>
<line number="241" hits="0" branch="false"/>
<line number="242" hits="0" branch="false"/>
</lines>
</method>
<method name="checkRoles" signature="(Ljava/util/Collection;)V" line-rate="0.3333333333333333" branch-rate="1.0">
<lines>
<line number="250" hits="2" branch="false"/>
<line number="251" hits="0" branch="false"/>
<line number="252" hits="0" branch="false"/>
</lines>
</method>
<method name="checkRoles" signature="([Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="245" hits="0" branch="false"/>
<line number="246" hits="0" branch="false"/>
<line number="247" hits="0" branch="false"/>
</lines>
</method>
<method name="clearRunAsIdentities" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="475" hits="62" branch="false"/>
<line number="476" hits="62" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="477" hits="20" branch="false"/>
<line number="479" hits="62" branch="false"/>
</lines>
</method>
<method name="clearRunAsIdentitiesInternal" signature="()V" line-rate="0.6" branch-rate="1.0">
<lines>
<line number="353" hits="60" branch="false"/>
<line number="354" hits="0" branch="false"/>
<line number="355" hits="0" branch="false"/>
<line number="357" hits="60" branch="false"/>
<line number="358" hits="60" branch="false"/>
</lines>
</method>
<method name="createSessionContext" signature="()Lorg/apache/shiro/session/mgt/SessionContext;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="343" hits="40" branch="false"/>
<line number="344" hits="40" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="345" hits="2" branch="false"/>
<line number="347" hits="40" branch="false"/>
</lines>
</method>
<method name="decorate" signature="(Lorg/apache/shiro/session/Session;)Lorg/apache/shiro/session/Session;" line-rate="0.6666666666666666" branch-rate="0.5">
<lines>
<line number="115" hits="76" 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="118" hits="76" branch="false"/>
</lines>
</method>
<method name="execute" signature="(Ljava/lang/Runnable;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="390" hits="4" branch="false"/>
<line number="391" hits="4" branch="false"/>
<line number="392" hits="4" branch="false"/>
</lines>
</method>
<method name="execute" signature="(Ljava/util/concurrent/Callable;)Ljava/lang/Object;" line-rate="0.5" branch-rate="1.0">
<lines>
<line number="381" hits="2" branch="false"/>
<line number="383" hits="2" branch="false"/>
<line number="384" hits="0" branch="false"/>
<line number="385" hits="0" branch="false"/>
</lines>
</method>
<method name="getHost" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="135" hits="40" branch="false"/>
</lines>
</method>
<method name="getPreviousPrincipals" signature="()Lorg/apache/shiro/subject/PrincipalCollection;" line-rate="1.0" branch-rate="0.8">
<lines>
<line number="446" hits="10" branch="false"/>
<line number="447" hits="10" branch="false"/>
<line number="448" hits="10" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="449" hits="10" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="450" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="451" hits="4" branch="false"/>
<line number="454" 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="455" hits="2" branch="false"/>
<line number="458" hits="10" branch="false"/>
</lines>
</method>
<method name="getPrimaryPrincipal" signature="(Lorg/apache/shiro/subject/PrincipalCollection;)Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="139" hits="26" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="140" hits="20" branch="false"/>
<line number="142" hits="6" branch="false"/>
</lines>
</method>
<method name="getPrincipal" signature="()Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="149" hits="26" branch="false"/>
</lines>
</method>
<method name="getPrincipals" signature="()Lorg/apache/shiro/subject/PrincipalCollection;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="153" hits="252" branch="false"/>
<line number="154" hits="252" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
</lines>
</method>
<method name="getRunAsPrincipalsStack" signature="()Ljava/util/List;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="467" hits="374" branch="false"/>
<line number="468" hits="374" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="469" hits="168" branch="false"/>
<line number="471" hits="206" branch="false"/>
</lines>
</method>
<method name="getSecurityManager" signature="()Lorg/apache/shiro/mgt/SecurityManager;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="122" hits="12" branch="false"/>
</lines>
</method>
<method name="getSession" signature="()Lorg/apache/shiro/session/Session;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="312" hits="62" branch="false"/>
</lines>
</method>
<method name="getSession" signature="(Z)Lorg/apache/shiro/session/Session;" line-rate="0.7692307692307693" branch-rate="0.7857142857142857">
<lines>
<line number="316" hits="952" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="317" hits="1904" 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="319" hits="316" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="322" hits="952" 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="325" hits="40" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="326" hits="0" branch="false"/>
<line number="329" hits="0" branch="false"/>
<line number="331" hits="0" branch="false"/>
<line number="334" hits="40" branch="false"/>
<line number="335" hits="40" branch="false"/>
<line number="336" hits="40" branch="false"/>
<line number="337" hits="40" branch="false"/>
<line number="339" hits="952" branch="false"/>
</lines>
</method>
<method name="hasAllRoles" signature="(Ljava/util/Collection;)Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="236" 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="hasPrincipals" signature="()Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="126" hits="58" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
</lines>
</method>
<method name="hasRole" signature="(Ljava/lang/String;)Z" line-rate="1.0" branch-rate="0.75">
<lines>
<line number="224" hits="42" branch="true" condition-coverage="75% (3/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="100%"/>
</conditions>
</line>
</lines>
</method>
<method name="hasRoles" signature="(Ljava/util/List;)[Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="228" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="229" hits="0" branch="false"/>
<line number="231" hits="0" branch="false"/>
</lines>
</method>
<method name="isAuthenticated" signature="()Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="293" hits="102" branch="false"/>
</lines>
</method>
<method name="isPermitted" signature="(Ljava/lang/String;)Z" line-rate="1.0" branch-rate="0.75">
<lines>
<line number="158" hits="4" branch="true" condition-coverage="75% (3/4)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
<condition number="1" type="jump" coverage="100%"/>
</conditions>
</line>
</lines>
</method>
<method name="isPermitted" signature="(Ljava/util/List;)[Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="174" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="175" hits="0" branch="false"/>
<line number="177" hits="0" branch="false"/>
</lines>
</method>
<method name="isPermitted" signature="(Lorg/apache/shiro/authz/Permission;)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="isPermitted" signature="([Ljava/lang/String;)[Z" line-rate="0.0" branch-rate="0.0">
<lines>
<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"/>
</lines>
</method>
<method name="isPermittedAll" signature="(Ljava/util/Collection;)Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="186" 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="isPermittedAll" signature="([Ljava/lang/String;)Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="182" 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="isRemembered" signature="()Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="297" hits="0" branch="false"/>
<line number="298" 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="isRunAs" signature="()Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="441" hits="104" branch="false"/>
<line number="442" hits="104" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
</lines>
</method>
<method name="isSessionCreationEnabled" signature="()Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="308" hits="40" branch="false"/>
</lines>
</method>
<method name="login" signature="(Lorg/apache/shiro/authc/AuthenticationToken;)V" line-rate="0.8260869565217391" branch-rate="0.5833333333333334">
<lines>
<line number="255" hits="42" branch="false"/>
<line number="256" hits="42" branch="false"/>
<line number="260" hits="34" branch="false"/>
<line number="262" hits="34" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="263" hits="34" branch="false"/>
<line number="265" hits="34" branch="false"/>
<line number="266" hits="34" branch="false"/>
<line number="267" hits="34" branch="false"/>
<line number="268" hits="0" branch="false"/>
<line number="271" hits="34" 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="272" hits="0" branch="false"/>
<line number="274" hits="0" branch="false"/>
<line number="276" hits="34" branch="false"/>
<line number="277" hits="34" branch="false"/>
<line number="278" hits="34" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="279" hits="34" branch="false"/>
<line number="281" hits="34" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="282" hits="2" branch="false"/>
<line number="284" hits="34" branch="false"/>
<line number="285" hits="34" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="286" hits="34" branch="false"/>
<line number="288" hits="0" branch="false"/>
<line number="290" hits="34" branch="false"/>
</lines>
</method>
<method name="logout" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="362" hits="18" branch="false"/>
<line number="363" hits="18" branch="false"/>
<line number="365" hits="18" branch="false"/>
<line number="366" hits="18" branch="false"/>
<line number="367" hits="18" branch="false"/>
<line number="373" hits="18" branch="false"/>
<line number="374" hits="18" branch="false"/>
</lines>
</method>
<method name="popIdentity" signature="()Lorg/apache/shiro/subject/PrincipalCollection;" line-rate="1.0" branch-rate="0.75">
<lines>
<line number="496" hits="4" branch="false"/>
<line number="498" hits="4" branch="false"/>
<line number="499" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="500" hits="4" branch="false"/>
<line number="502" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="504" hits="2" branch="false"/>
<line number="505" hits="2" branch="false"/>
<line number="508" hits="2" branch="false"/>
<line number="512" hits="4" branch="false"/>
</lines>
</method>
<method name="pushIdentity" signature="(Lorg/apache/shiro/subject/PrincipalCollection;)V" line-rate="0.8" branch-rate="0.75">
<lines>
<line number="482" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="483" hits="0" branch="false"/>
<line number="484" hits="0" branch="false"/>
<line number="486" hits="4" branch="false"/>
<line number="487" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="488" hits="2" branch="false"/>
<line number="490" hits="4" branch="false"/>
<line number="491" hits="4" branch="false"/>
<line number="492" hits="4" branch="false"/>
<line number="493" hits="4" branch="false"/>
</lines>
</method>
<method name="releaseRunAs" signature="()Lorg/apache/shiro/subject/PrincipalCollection;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="462" hits="4" branch="false"/>
</lines>
</method>
<method name="runAs" signature="(Lorg/apache/shiro/subject/PrincipalCollection;)V" line-rate="0.5" branch-rate="0.5">
<lines>
<line number="430" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="431" hits="0" branch="false"/>
<line number="433" hits="0" branch="false"/>
<line number="435" hits="0" branch="false"/>
<line number="437" hits="4" branch="false"/>
<line number="438" hits="4" branch="false"/>
</lines>
</method>
<method name="sessionStopped" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="377" hits="36" branch="false"/>
<line number="378" hits="36" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="71" hits="38" branch="false"/>
<line number="73" hits="2" branch="false"/>
<line number="75" hits="4" branch="false"/>
<line number="76" hits="2" branch="false"/>
<line number="90" hits="2" branch="false"/>
<line number="91" hits="2" branch="false"/>
<line number="95" hits="6" branch="false"/>
<line number="96" hits="6" branch="false"/>
<line number="100" hits="100" branch="false"/>
<line number="101" hits="100" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="102" hits="0" branch="false"/>
<line number="104" hits="100" branch="false"/>
<line number="105" hits="100" branch="false"/>
<line number="106" hits="100" branch="false"/>
<line number="107" hits="100" branch="false"/>
<line number="108" hits="100" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="109" hits="2" branch="false"/>
<line number="111" hits="100" branch="false"/>
<line number="112" hits="100" branch="false"/>
<line number="115" hits="76" 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="118" hits="76" branch="false"/>
<line number="122" hits="12" branch="false"/>
<line number="126" hits="58" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="135" hits="40" branch="false"/>
<line number="139" hits="26" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="140" hits="20" branch="false"/>
<line number="142" hits="6" branch="false"/>
<line number="149" hits="26" branch="false"/>
<line number="153" hits="252" branch="false"/>
<line number="154" hits="252" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="158" hits="4" 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="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="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="174" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="175" hits="0" branch="false"/>
<line number="177" hits="0" branch="false"/>
<line number="182" 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="186" 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="190" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="191" hits="8" branch="false"/>
<line number="194" hits="8" branch="false"/>
<line number="199" hits="8" branch="false"/>
<line number="201" hits="0" branch="false"/>
<line number="204" hits="2" branch="false"/>
<line number="205" hits="0" branch="false"/>
<line number="206" hits="0" branch="false"/>
<line number="209" hits="0" branch="false"/>
<line number="210" hits="0" branch="false"/>
<line number="211" hits="0" branch="false"/>
<line number="214" hits="2" branch="false"/>
<line number="215" hits="0" branch="false"/>
<line number="216" hits="0" branch="false"/>
<line number="219" hits="0" branch="false"/>
<line number="220" hits="0" branch="false"/>
<line number="221" hits="0" branch="false"/>
<line number="224" hits="42" 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="228" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="229" hits="0" branch="false"/>
<line number="231" hits="0" branch="false"/>
<line number="236" 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="240" hits="2" branch="false"/>
<line number="241" hits="0" branch="false"/>
<line number="242" 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="250" hits="2" branch="false"/>
<line number="251" hits="0" branch="false"/>
<line number="252" hits="0" branch="false"/>
<line number="255" hits="42" branch="false"/>
<line number="256" hits="42" branch="false"/>
<line number="260" hits="34" branch="false"/>
<line number="262" hits="34" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="263" hits="34" branch="false"/>
<line number="265" hits="34" branch="false"/>
<line number="266" hits="34" branch="false"/>
<line number="267" hits="34" branch="false"/>
<line number="268" hits="0" branch="false"/>
<line number="271" hits="34" 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="272" hits="0" branch="false"/>
<line number="274" hits="0" branch="false"/>
<line number="276" hits="34" branch="false"/>
<line number="277" hits="34" branch="false"/>
<line number="278" hits="34" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="279" hits="34" branch="false"/>
<line number="281" hits="34" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="282" hits="2" branch="false"/>
<line number="284" hits="34" branch="false"/>
<line number="285" hits="34" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="286" hits="34" branch="false"/>
<line number="288" hits="0" branch="false"/>
<line number="290" hits="34" branch="false"/>
<line number="293" hits="102" branch="false"/>
<line number="297" hits="0" branch="false"/>
<line number="298" 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="308" hits="40" branch="false"/>
<line number="312" hits="62" branch="false"/>
<line number="316" hits="952" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="317" hits="1904" 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="319" hits="316" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="322" hits="952" 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="325" hits="40" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="326" hits="0" branch="false"/>
<line number="329" hits="0" branch="false"/>
<line number="331" hits="0" branch="false"/>
<line number="334" hits="40" branch="false"/>
<line number="335" hits="40" branch="false"/>
<line number="336" hits="40" branch="false"/>
<line number="337" hits="40" branch="false"/>
<line number="339" hits="952" branch="false"/>
<line number="343" hits="40" branch="false"/>
<line number="344" hits="40" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="345" hits="2" branch="false"/>
<line number="347" hits="40" branch="false"/>
<line number="353" hits="60" branch="false"/>
<line number="354" hits="0" branch="false"/>
<line number="355" hits="0" branch="false"/>
<line number="357" hits="60" branch="false"/>
<line number="358" hits="60" branch="false"/>
<line number="362" hits="18" branch="false"/>
<line number="363" hits="18" branch="false"/>
<line number="365" hits="18" branch="false"/>
<line number="366" hits="18" branch="false"/>
<line number="367" hits="18" branch="false"/>
<line number="373" hits="18" branch="false"/>
<line number="374" hits="18" branch="false"/>
<line number="377" hits="36" branch="false"/>
<line number="378" hits="36" branch="false"/>
<line number="381" hits="2" branch="false"/>
<line number="383" hits="2" branch="false"/>
<line number="384" hits="0" branch="false"/>
<line number="385" hits="0" branch="false"/>
<line number="390" hits="4" branch="false"/>
<line number="391" hits="4" branch="false"/>
<line number="392" hits="4" branch="false"/>
<line number="395" hits="2" branch="false"/>
<line number="399" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="400" hits="0" branch="false"/>
<line number="404" hits="0" branch="false"/>
<line number="406" hits="8" branch="false"/>
<line number="430" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="431" hits="0" branch="false"/>
<line number="433" hits="0" branch="false"/>
<line number="435" hits="0" branch="false"/>
<line number="437" hits="4" branch="false"/>
<line number="438" hits="4" branch="false"/>
<line number="441" hits="104" branch="false"/>
<line number="442" hits="104" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="446" hits="10" branch="false"/>
<line number="447" hits="10" branch="false"/>
<line number="448" hits="10" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="449" hits="10" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="450" hits="6" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="451" hits="4" branch="false"/>
<line number="454" 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="455" hits="2" branch="false"/>
<line number="458" hits="10" branch="false"/>
<line number="462" hits="4" branch="false"/>
<line number="467" hits="374" branch="false"/>
<line number="468" hits="374" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="469" hits="168" branch="false"/>
<line number="471" hits="206" branch="false"/>
<line number="475" hits="62" branch="false"/>
<line number="476" hits="62" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="477" hits="20" branch="false"/>
<line number="479" hits="62" branch="false"/>
<line number="482" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="483" hits="0" branch="false"/>
<line number="484" hits="0" branch="false"/>
<line number="486" hits="4" branch="false"/>
<line number="487" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="488" hits="2" branch="false"/>
<line number="490" hits="4" branch="false"/>
<line number="491" hits="4" branch="false"/>
<line number="492" hits="4" branch="false"/>
<line number="493" hits="4" branch="false"/>
<line number="496" hits="4" branch="false"/>
<line number="498" hits="4" branch="false"/>
<line number="499" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="500" hits="4" branch="false"/>
<line number="502" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="504" hits="2" branch="false"/>
<line number="505" hits="2" branch="false"/>
<line number="508" hits="2" branch="false"/>
<line number="512" hits="4" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.subject.support.DelegatingSubject$1" filename="org/apache/shiro/subject/support/DelegatingSubject.java" line-rate="1.0" branch-rate="1.0" complexity="2.1176470588235294">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.subject.support.DelegatingSubject$StoppingAwareProxiedSession" filename="org/apache/shiro/subject/support/DelegatingSubject.java" line-rate="1.0" branch-rate="1.0" complexity="2.1176470588235294">
<methods>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/subject/support/DelegatingSubject;Lorg/apache/shiro/session/Session;Lorg/apache/shiro/subject/support/DelegatingSubject;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="413" hits="76" branch="false"/>
<line number="414" hits="76" branch="false"/>
<line number="415" hits="76" branch="false"/>
<line number="416" hits="76" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/subject/support/DelegatingSubject;Lorg/apache/shiro/session/Session;Lorg/apache/shiro/subject/support/DelegatingSubject;Lorg/apache/shiro/subject/support/DelegatingSubject$1;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="409" hits="76" branch="false"/>
</lines>
</method>
<method name="stop" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="419" hits="36" branch="false"/>
<line number="420" hits="36" branch="false"/>
<line number="421" hits="36" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="409" hits="76" branch="false"/>
<line number="413" hits="76" branch="false"/>
<line number="414" hits="76" branch="false"/>
<line number="415" hits="76" branch="false"/>
<line number="416" hits="76" branch="false"/>
<line number="419" hits="36" branch="false"/>
<line number="420" hits="36" branch="false"/>
<line number="421" hits="36" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.subject.support.DisabledSessionException" filename="org/apache/shiro/subject/support/DisabledSessionException.java" line-rate="0.0" branch-rate="1.0" complexity="1.0">
<methods>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="40" hits="0" branch="false"/>
<line number="41" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="40" hits="0" branch="false"/>
<line number="41" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.subject.support.SubjectCallable" filename="org/apache/shiro/subject/support/SubjectCallable.java" line-rate="0.8571428571428571" branch-rate="0.5" complexity="2.25">
<methods>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/subject/Subject;Ljava/util/concurrent/Callable;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="66" hits="2" branch="false"/>
<line number="67" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/util/ThreadState;Ljava/util/concurrent/Callable;)V" line-rate="0.75" branch-rate="0.5">
<lines>
<line number="69" hits="2" branch="false"/>
<line number="70" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="71" hits="0" branch="false"/>
<line number="73" hits="2" branch="false"/>
<line number="74" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="75" hits="0" branch="false"/>
<line number="77" hits="2" branch="false"/>
<line number="78" hits="2" branch="false"/>
</lines>
</method>
<method name="call" signature="()Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="82" hits="2" branch="false"/>
<line number="83" hits="4" branch="false"/>
<line number="85" hits="2" branch="false"/>
</lines>
</method>
<method name="doCall" signature="(Ljava/util/concurrent/Callable;)Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="90" hits="2" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="66" hits="2" branch="false"/>
<line number="67" hits="2" branch="false"/>
<line number="69" hits="2" branch="false"/>
<line number="70" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="71" hits="0" branch="false"/>
<line number="73" hits="2" branch="false"/>
<line number="74" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="75" hits="0" branch="false"/>
<line number="77" hits="2" branch="false"/>
<line number="78" hits="2" branch="false"/>
<line number="82" hits="2" branch="false"/>
<line number="83" hits="4" branch="false"/>
<line number="85" hits="2" branch="false"/>
<line number="90" hits="2" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.subject.support.SubjectRunnable" filename="org/apache/shiro/subject/support/SubjectRunnable.java" line-rate="0.8823529411764706" branch-rate="0.5" complexity="2.0">
<methods>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/subject/Subject;Ljava/lang/Runnable;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="70" hits="8" branch="false"/>
<line number="71" hits="8" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/util/ThreadState;Ljava/lang/Runnable;)V" line-rate="0.75" branch-rate="0.5">
<lines>
<line number="82" hits="8" branch="false"/>
<line number="83" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="84" hits="0" branch="false"/>
<line number="86" hits="8" branch="false"/>
<line number="87" hits="8" 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="8" branch="false"/>
<line number="91" hits="8" branch="false"/>
</lines>
</method>
<method name="doRun" signature="(Ljava/lang/Runnable;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="120" hits="4" branch="false"/>
<line number="121" hits="4" branch="false"/>
</lines>
</method>
<method name="run" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="107" hits="4" branch="false"/>
<line number="108" hits="4" branch="false"/>
<line number="110" hits="4" branch="false"/>
<line number="111" hits="4" branch="false"/>
<line number="112" hits="4" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="70" hits="8" branch="false"/>
<line number="71" hits="8" branch="false"/>
<line number="82" hits="8" branch="false"/>
<line number="83" hits="8" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="84" hits="0" branch="false"/>
<line number="86" hits="8" branch="false"/>
<line number="87" hits="8" 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="8" branch="false"/>
<line number="91" hits="8" branch="false"/>
<line number="107" hits="4" branch="false"/>
<line number="108" hits="4" branch="false"/>
<line number="110" hits="4" branch="false"/>
<line number="111" hits="4" branch="false"/>
<line number="112" hits="4" branch="false"/>
<line number="120" hits="4" branch="false"/>
<line number="121" hits="4" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.subject.support.SubjectThreadState" filename="org/apache/shiro/subject/support/SubjectThreadState.java" line-rate="0.8888888888888888" branch-rate="0.8333333333333334" complexity="2.4">
<methods>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/subject/Subject;)V" line-rate="0.9090909090909091" branch-rate="0.8333333333333334">
<lines>
<line number="55" hits="14" branch="false"/>
<line number="56" hits="14" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="57" hits="0" branch="false"/>
<line number="59" hits="14" branch="false"/>
<line number="61" hits="14" branch="false"/>
<line number="62" hits="14" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="63" hits="12" branch="false"/>
<line number="65" hits="14" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="66" hits="2" branch="false"/>
<line number="68" hits="14" branch="false"/>
<line number="69" hits="14" branch="false"/>
</lines>
</method>
<method name="bind" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="90" hits="10" branch="false"/>
<line number="91" hits="10" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="93" hits="2" branch="false"/>
<line number="95" hits="10" branch="false"/>
<line number="96" hits="10" branch="false"/>
<line number="98" hits="10" branch="false"/>
<line number="99" hits="10" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="100" hits="8" branch="false"/>
<line number="102" hits="10" branch="false"/>
</lines>
</method>
<method name="clear" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="122" hits="4" branch="false"/>
<line number="123" hits="4" branch="false"/>
</lines>
</method>
<method name="getSubject" signature="()Lorg/apache/shiro/subject/Subject;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="77" hits="0" branch="false"/>
</lines>
</method>
<method name="restore" signature="()V" line-rate="0.75" branch-rate="0.5">
<lines>
<line number="110" 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="0" branch="false"/>
<line number="114" hits="6" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="55" hits="14" branch="false"/>
<line number="56" hits="14" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="57" hits="0" branch="false"/>
<line number="59" hits="14" branch="false"/>
<line number="61" hits="14" branch="false"/>
<line number="62" hits="14" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="63" hits="12" branch="false"/>
<line number="65" hits="14" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="66" hits="2" branch="false"/>
<line number="68" hits="14" branch="false"/>
<line number="69" hits="14" branch="false"/>
<line number="77" hits="0" branch="false"/>
<line number="90" hits="10" branch="false"/>
<line number="91" hits="10" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="93" hits="2" branch="false"/>
<line number="95" hits="10" branch="false"/>
<line number="96" hits="10" branch="false"/>
<line number="98" hits="10" branch="false"/>
<line number="99" hits="10" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="100" hits="8" branch="false"/>
<line number="102" hits="10" branch="false"/>
<line number="110" 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="0" branch="false"/>
<line number="114" hits="6" branch="false"/>
<line number="122" hits="4" branch="false"/>
<line number="123" hits="4" branch="false"/>
</lines>
</class>
</classes>
</package>
<package name="org.apache.shiro.util" line-rate="0.41911764705882354" branch-rate="0.32945736434108525" complexity="2.92090395480226">
<classes>
<class name="org.apache.shiro.util.AbstractFactory" filename="org/apache/shiro/util/AbstractFactory.java" line-rate="0.6666666666666666" branch-rate="0.5" complexity="1.8">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="31" hits="46" branch="false"/>
<line number="32" hits="46" branch="false"/>
<line number="33" hits="46" branch="false"/>
</lines>
</method>
<method name="getInstance" signature="()Ljava/lang/Object;" line-rate="0.6666666666666666" branch-rate="0.5">
<lines>
<line number="45" hits="24" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="46" hits="24" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="47" hits="24" branch="false"/>
<line number="49" hits="24" branch="false"/>
<line number="51" hits="0" branch="false"/>
<line number="53" hits="24" 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="false"/>
<line number="57" hits="24" branch="false"/>
</lines>
</method>
<method name="isSingleton" signature="()Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="36" hits="24" branch="false"/>
</lines>
</method>
<method name="setSingleton" signature="(Z)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="40" hits="0" branch="false"/>
<line number="41" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="31" hits="46" branch="false"/>
<line number="32" hits="46" branch="false"/>
<line number="33" hits="46" branch="false"/>
<line number="36" hits="24" branch="false"/>
<line number="40" hits="0" branch="false"/>
<line number="41" hits="0" branch="false"/>
<line number="45" hits="24" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="46" hits="24" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="47" hits="24" branch="false"/>
<line number="49" hits="24" branch="false"/>
<line number="51" hits="0" branch="false"/>
<line number="53" hits="24" 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="false"/>
<line number="57" hits="24" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.util.AntPathMatcher" filename="org/apache/shiro/util/AntPathMatcher.java" line-rate="0.0" branch-rate="0.0" complexity="14.375">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="60" hits="0" branch="false"/>
<line number="69" hits="0" branch="false"/>
</lines>
</method>
<method name="doMatch" signature="(Ljava/lang/String;Ljava/lang/String;Z)Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="109" 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="false"/>
<line number="113" hits="0" branch="false"/>
<line number="114" hits="0" branch="false"/>
<line number="116" hits="0" branch="false"/>
<line number="117" hits="0" branch="false"/>
<line number="118" hits="0" branch="false"/>
<line number="119" hits="0" branch="false"/>
<line number="122" 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="123" hits="0" branch="false"/>
<line number="124" 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="false"/>
<line number="127" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="128" hits="0" branch="false"/>
<line number="130" hits="0" branch="false"/>
<line number="131" hits="0" branch="false"/>
<line number="132" hits="0" branch="false"/>
<line number="134" 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="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="137" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</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="140" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="141" hits="0" branch="false"/>
<line number="143" 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="144" 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="147" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="148" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="149" hits="0" branch="false"/>
<line number="152" 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="false"/>
<line number="156" 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="158" 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="163" hits="0" branch="false"/>
<line number="164" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="165" 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="170" hits="0" branch="false"/>
<line number="171" 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="175" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="176" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="177" hits="0" branch="false"/>
<line number="180" 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="184" 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="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="187" hits="0" branch="false"/>
<line number="188" hits="0" branch="false"/>
<line number="191" 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="194" hits="0" branch="false"/>
<line number="198" hits="0" branch="false"/>
<line number="199" hits="0" branch="false"/>
<line number="200" hits="0" branch="false"/>
<line number="203" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="204" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="205" hits="0" branch="false"/>
<line number="206" hits="0" branch="false"/>
<line number="207" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="208" hits="0" branch="false"/>
<line number="211" hits="0" branch="false"/>
<line number="212" hits="0" branch="false"/>
<line number="215" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="216" hits="0" branch="false"/>
<line number="219" hits="0" branch="false"/>
<line number="220" hits="0" branch="false"/>
<line number="221" hits="0" branch="false"/>
<line number="223" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="224" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="225" hits="0" branch="false"/>
<line number="229" hits="0" branch="false"/>
</lines>
</method>
<method name="extractPathWithinPattern" signature="(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="396" hits="0" branch="false"/>
<line number="397" hits="0" branch="false"/>
<line number="399" hits="0" branch="false"/>
<line number="402" hits="0" branch="false"/>
<line number="403" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="404" hits="0" branch="false"/>
<line number="405" 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="406" 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="407" hits="0" branch="false"/>
<line number="409" hits="0" branch="false"/>
<line number="410" hits="0" branch="false"/>
<line number="415" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="416" 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="417" hits="0" branch="false"/>
<line number="419" hits="0" branch="false"/>
<line number="422" hits="0" branch="false"/>
</lines>
</method>
<method name="isPattern" signature="(Ljava/lang/String;)Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="82" 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="match" signature="(Ljava/lang/String;Ljava/lang/String;)Z" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="90" hits="0" branch="false"/>
</lines>
</method>
<method name="matchStart" signature="(Ljava/lang/String;Ljava/lang/String;)Z" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="94" hits="0" branch="false"/>
</lines>
</method>
<method name="matchStrings" signature="(Ljava/lang/String;Ljava/lang/String;)Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="246" hits="0" branch="false"/>
<line number="247" hits="0" branch="false"/>
<line number="248" hits="0" branch="false"/>
<line number="249" hits="0" branch="false"/>
<line number="250" hits="0" branch="false"/>
<line number="251" hits="0" branch="false"/>
<line number="254" hits="0" branch="false"/>
<line number="255" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="256" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="257" hits="0" branch="false"/>
<line number="258" hits="0" branch="false"/>
<line number="262" 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="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<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="269" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="270" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="271" hits="0" branch="false"/>
<line number="275" hits="0" branch="false"/>
<line number="279" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="280" hits="0" branch="false"/>
<line number="284" 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="285" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="286" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="287" hits="0" branch="false"/>
<line number="290" hits="0" branch="false"/>
<line number="291" hits="0" branch="false"/>
<line number="293" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<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="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="298" hits="0" branch="false"/>
<line number="301" hits="0" branch="false"/>
<line number="305" 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="306" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="307" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="308" hits="0" branch="false"/>
<line number="311" hits="0" branch="false"/>
<line number="312" hits="0" branch="false"/>
<line number="314" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="317" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="318" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="319" hits="0" branch="false"/>
<line number="322" hits="0" branch="false"/>
<line number="327" 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="328" hits="0" branch="false"/>
<line number="329" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="330" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="331" hits="0" branch="false"/>
<line number="332" hits="0" branch="false"/>
<line number="335" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="337" hits="0" branch="false"/>
<line number="338" hits="0" branch="false"/>
<line number="342" hits="0" branch="false"/>
<line number="343" hits="0" branch="false"/>
<line number="344" hits="0" branch="false"/>
<line number="346" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="347" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="348" hits="0" branch="false"/>
<line number="349" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="350" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="351" hits="0" branch="false"/>
<line number="356" hits="0" branch="false"/>
<line number="357" hits="0" branch="false"/>
<line number="360" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="361" 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"/>
<line number="370" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="371" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="372" hits="0" branch="false"/>
<line number="376" hits="0" branch="false"/>
</lines>
</method>
<method name="matches" signature="(Ljava/lang/String;Ljava/lang/String;)Z" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="86" hits="0" branch="false"/>
</lines>
</method>
<method name="setPathSeparator" signature="(Ljava/lang/String;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="77" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="78" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="60" hits="0" branch="false"/>
<line number="69" hits="0" branch="false"/>
<line number="77" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="78" hits="0" branch="false"/>
<line number="82" 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="86" hits="0" branch="false"/>
<line number="90" hits="0" branch="false"/>
<line number="94" hits="0" branch="false"/>
<line number="109" 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="false"/>
<line number="113" hits="0" branch="false"/>
<line number="114" hits="0" branch="false"/>
<line number="116" hits="0" branch="false"/>
<line number="117" hits="0" branch="false"/>
<line number="118" hits="0" branch="false"/>
<line number="119" hits="0" branch="false"/>
<line number="122" 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="123" hits="0" branch="false"/>
<line number="124" 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="false"/>
<line number="127" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="128" hits="0" branch="false"/>
<line number="130" hits="0" branch="false"/>
<line number="131" hits="0" branch="false"/>
<line number="132" hits="0" branch="false"/>
<line number="134" 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="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="137" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</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="140" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="141" hits="0" branch="false"/>
<line number="143" 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="144" 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="147" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="148" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="149" hits="0" branch="false"/>
<line number="152" 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="false"/>
<line number="156" 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="158" 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="163" hits="0" branch="false"/>
<line number="164" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="165" 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="170" hits="0" branch="false"/>
<line number="171" 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="175" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="176" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="177" hits="0" branch="false"/>
<line number="180" 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="184" 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="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="187" hits="0" branch="false"/>
<line number="188" hits="0" branch="false"/>
<line number="191" 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="194" hits="0" branch="false"/>
<line number="198" hits="0" branch="false"/>
<line number="199" hits="0" branch="false"/>
<line number="200" hits="0" branch="false"/>
<line number="203" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="204" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="205" hits="0" branch="false"/>
<line number="206" hits="0" branch="false"/>
<line number="207" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="208" hits="0" branch="false"/>
<line number="211" hits="0" branch="false"/>
<line number="212" hits="0" branch="false"/>
<line number="215" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="216" hits="0" branch="false"/>
<line number="219" hits="0" branch="false"/>
<line number="220" hits="0" branch="false"/>
<line number="221" hits="0" branch="false"/>
<line number="223" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="224" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="225" hits="0" branch="false"/>
<line number="229" 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="249" hits="0" branch="false"/>
<line number="250" hits="0" branch="false"/>
<line number="251" hits="0" branch="false"/>
<line number="254" hits="0" branch="false"/>
<line number="255" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="256" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="257" hits="0" branch="false"/>
<line number="258" hits="0" branch="false"/>
<line number="262" 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="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<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="269" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="270" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="271" hits="0" branch="false"/>
<line number="275" hits="0" branch="false"/>
<line number="279" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="280" hits="0" branch="false"/>
<line number="284" 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="285" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="286" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="287" hits="0" branch="false"/>
<line number="290" hits="0" branch="false"/>
<line number="291" hits="0" branch="false"/>
<line number="293" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<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="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="298" hits="0" branch="false"/>
<line number="301" hits="0" branch="false"/>
<line number="305" 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="306" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="307" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="308" hits="0" branch="false"/>
<line number="311" hits="0" branch="false"/>
<line number="312" hits="0" branch="false"/>
<line number="314" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="317" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="318" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="319" hits="0" branch="false"/>
<line number="322" hits="0" branch="false"/>
<line number="327" 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="328" hits="0" branch="false"/>
<line number="329" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="330" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="331" hits="0" branch="false"/>
<line number="332" hits="0" branch="false"/>
<line number="335" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="337" hits="0" branch="false"/>
<line number="338" hits="0" branch="false"/>
<line number="342" hits="0" branch="false"/>
<line number="343" hits="0" branch="false"/>
<line number="344" hits="0" branch="false"/>
<line number="346" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="347" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="348" hits="0" branch="false"/>
<line number="349" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="350" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="351" hits="0" branch="false"/>
<line number="356" hits="0" branch="false"/>
<line number="357" hits="0" branch="false"/>
<line number="360" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="361" 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"/>
<line number="370" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="371" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="372" hits="0" branch="false"/>
<line number="376" hits="0" branch="false"/>
<line number="396" hits="0" branch="false"/>
<line number="397" hits="0" branch="false"/>
<line number="399" hits="0" branch="false"/>
<line number="402" hits="0" branch="false"/>
<line number="403" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="404" hits="0" branch="false"/>
<line number="405" 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="406" 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="407" hits="0" branch="false"/>
<line number="409" hits="0" branch="false"/>
<line number="410" hits="0" branch="false"/>
<line number="415" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="416" 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="417" hits="0" branch="false"/>
<line number="419" hits="0" branch="false"/>
<line number="422" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.util.ByteSource" filename="org/apache/shiro/util/ByteSource.java" line-rate="1.0" branch-rate="1.0" complexity="2.4166666666666665">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.util.ByteSource$Util" filename="org/apache/shiro/util/ByteSource.java" line-rate="0.4444444444444444" branch-rate="0.5" complexity="2.4166666666666665">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="73" hits="0" branch="false"/>
</lines>
</method>
<method name="bytes" signature="(Ljava/io/File;)Lorg/apache/shiro/util/ByteSource;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="124" hits="0" branch="false"/>
</lines>
</method>
<method name="bytes" signature="(Ljava/io/InputStream;)Lorg/apache/shiro/util/ByteSource;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="134" hits="0" branch="false"/>
</lines>
</method>
<method name="bytes" signature="(Ljava/lang/Object;)Lorg/apache/shiro/util/ByteSource;" line-rate="0.47368421052631576" branch-rate="0.5">
<lines>
<line number="163" hits="90" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="164" hits="16" branch="false"/>
<line number="166" hits="74" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="167" hits="0" branch="false"/>
<line number="168" hits="0" branch="false"/>
<line number="170" hits="0" branch="false"/>
<line number="172" hits="74" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="173" hits="4" branch="false"/>
<line number="174" hits="70" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="175" hits="0" branch="false"/>
<line number="176" hits="70" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="177" hits="0" branch="false"/>
<line number="178" hits="70" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="179" hits="70" branch="false"/>
<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="182" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="183" hits="0" branch="false"/>
<line number="185" hits="0" branch="false"/>
</lines>
</method>
<method name="bytes" signature="(Ljava/lang/String;)Lorg/apache/shiro/util/ByteSource;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="104" hits="80" branch="false"/>
</lines>
</method>
<method name="bytes" signature="(Lorg/apache/shiro/util/ByteSource;)Lorg/apache/shiro/util/ByteSource;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="114" hits="0" branch="false"/>
</lines>
</method>
<method name="bytes" signature="([B)Lorg/apache/shiro/util/ByteSource;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="82" hits="250" branch="false"/>
</lines>
</method>
<method name="bytes" signature="([C)Lorg/apache/shiro/util/ByteSource;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="93" hits="0" branch="false"/>
</lines>
</method>
<method name="isCompatible" signature="(Ljava/lang/Object;)Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="149" hits="74" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="73" hits="0" branch="false"/>
<line number="82" hits="250" branch="false"/>
<line number="93" hits="0" branch="false"/>
<line number="104" hits="80" branch="false"/>
<line number="114" hits="0" branch="false"/>
<line number="124" hits="0" branch="false"/>
<line number="134" hits="0" branch="false"/>
<line number="149" hits="74" branch="false"/>
<line number="163" hits="90" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="164" hits="16" branch="false"/>
<line number="166" hits="74" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="167" hits="0" branch="false"/>
<line number="168" hits="0" branch="false"/>
<line number="170" hits="0" branch="false"/>
<line number="172" hits="74" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="173" hits="4" branch="false"/>
<line number="174" hits="70" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="175" hits="0" branch="false"/>
<line number="176" hits="70" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="177" hits="0" branch="false"/>
<line number="178" hits="70" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="179" hits="70" branch="false"/>
<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="182" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="183" hits="0" branch="false"/>
<line number="185" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.util.ClassUtils" filename="org/apache/shiro/util/ClassUtils.java" line-rate="0.7407407407407407" branch-rate="0.7692307692307693" complexity="2.8333333333333335">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="41" hits="2" branch="false"/>
<line number="46" hits="2" branch="false"/>
<line number="56" hits="2" branch="false"/>
<line number="66" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
</lines>
</method>
<method name="access$100" signature="()Lorg/slf4j/Logger;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="34" hits="204" branch="false"/>
</lines>
</method>
<method name="forName" signature="(Ljava/lang/String;)Ljava/lang/Class;" line-rate="1.0" branch-rate="0.8">
<lines>
<line number="127" hits="174" branch="false"/>
<line number="129" hits="174" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="130" hits="34" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="131" hits="34" branch="false"/>
<line number="134" hits="34" branch="false"/>
<line number="137" hits="174" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="138" hits="34" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="139" hits="34" branch="false"/>
<line number="142" hits="34" branch="false"/>
<line number="145" hits="174" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="146" hits="34" branch="false"/>
<line number="148" hits="34" branch="false"/>
<line number="151" hits="140" branch="false"/>
</lines>
</method>
<method name="getConstructor" signature="(Ljava/lang/Class;[Ljava/lang/Class;)Ljava/lang/reflect/Constructor;" line-rate="0.3333333333333333" branch-rate="1.0">
<lines>
<line number="194" hits="66" branch="false"/>
<line number="195" hits="0" branch="false"/>
<line number="196" hits="0" branch="false"/>
</lines>
</method>
<method name="getResourceAsStream" signature="(Ljava/lang/String;)Ljava/io/InputStream;" line-rate="1.0" branch-rate="0.75">
<lines>
<line number="87" hits="14" branch="false"/>
<line number="89" hits="14" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="90" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="91" hits="4" branch="false"/>
<line number="94" hits="4" branch="false"/>
<line number="97" hits="14" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="98" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="99" hits="4" branch="false"/>
<line number="102" hits="4" branch="false"/>
<line number="105" hits="14" 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="106" hits="4" branch="false"/>
<line number="110" hits="14" branch="false"/>
</lines>
</method>
<method name="instantiate" signature="(Ljava/lang/reflect/Constructor;[Ljava/lang/Object;)Ljava/lang/Object;" line-rate="0.25" branch-rate="1.0">
<lines>
<line number="203" hits="66" branch="false"/>
<line number="204" hits="0" branch="false"/>
<line number="205" hits="0" branch="false"/>
<line number="206" hits="0" branch="false"/>
</lines>
</method>
<method name="isAvailable" signature="(Ljava/lang/String;)Z" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="156" hits="0" branch="false"/>
<line number="157" hits="0" branch="false"/>
<line number="158" hits="0" branch="false"/>
<line number="159" hits="0" branch="false"/>
</lines>
</method>
<method name="newInstance" signature="(Ljava/lang/Class;)Ljava/lang/Object;" line-rate="0.3333333333333333" branch-rate="0.5">
<lines>
<line number="172" hits="184" 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="174" hits="0" branch="false"/>
<line number="177" hits="184" branch="false"/>
<line number="178" hits="0" branch="false"/>
<line number="179" hits="0" branch="false"/>
</lines>
</method>
<method name="newInstance" signature="(Ljava/lang/Class;[Ljava/lang/Object;)Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="184" hits="66" branch="false"/>
<line number="185" hits="154" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="186" hits="88" branch="false"/>
<line number="188" hits="66" branch="false"/>
<line number="189" hits="66" branch="false"/>
</lines>
</method>
<method name="newInstance" signature="(Ljava/lang/String;)Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="164" hits="132" branch="false"/>
</lines>
</method>
<method name="newInstance" signature="(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="168" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="34" hits="204" branch="false"/>
<line number="41" hits="2" branch="false"/>
<line number="46" hits="2" branch="false"/>
<line number="56" hits="2" branch="false"/>
<line number="66" hits="2" branch="false"/>
<line number="87" hits="14" branch="false"/>
<line number="89" hits="14" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="90" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="91" hits="4" branch="false"/>
<line number="94" hits="4" branch="false"/>
<line number="97" hits="14" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="98" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="99" hits="4" branch="false"/>
<line number="102" hits="4" branch="false"/>
<line number="105" hits="14" 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="106" hits="4" branch="false"/>
<line number="110" hits="14" branch="false"/>
<line number="127" hits="174" branch="false"/>
<line number="129" hits="174" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="130" hits="34" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="131" hits="34" branch="false"/>
<line number="134" hits="34" branch="false"/>
<line number="137" hits="174" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="138" hits="34" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="139" hits="34" branch="false"/>
<line number="142" hits="34" branch="false"/>
<line number="145" hits="174" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="146" hits="34" branch="false"/>
<line number="148" hits="34" branch="false"/>
<line number="151" hits="140" branch="false"/>
<line number="156" hits="0" branch="false"/>
<line number="157" hits="0" branch="false"/>
<line number="158" hits="0" branch="false"/>
<line number="159" hits="0" branch="false"/>
<line number="164" hits="132" branch="false"/>
<line number="168" hits="0" branch="false"/>
<line number="172" hits="184" 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="174" hits="0" branch="false"/>
<line number="177" hits="184" branch="false"/>
<line number="178" hits="0" branch="false"/>
<line number="179" hits="0" branch="false"/>
<line number="184" hits="66" branch="false"/>
<line number="185" hits="154" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="186" hits="88" branch="false"/>
<line number="188" hits="66" branch="false"/>
<line number="189" hits="66" branch="false"/>
<line number="194" hits="66" branch="false"/>
<line number="195" hits="0" branch="false"/>
<line number="196" hits="0" branch="false"/>
<line number="203" hits="66" branch="false"/>
<line number="204" hits="0" branch="false"/>
<line number="205" hits="0" branch="false"/>
<line number="206" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.util.ClassUtils$1" filename="org/apache/shiro/util/ClassUtils.java" line-rate="1.0" branch-rate="1.0" complexity="2.8333333333333335">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="46" hits="2" branch="false"/>
</lines>
</method>
<method name="doGetClassLoader" signature="()Ljava/lang/ClassLoader;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="49" hits="188" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="46" hits="2" branch="false"/>
<line number="49" hits="188" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.util.ClassUtils$2" filename="org/apache/shiro/util/ClassUtils.java" line-rate="1.0" branch-rate="1.0" complexity="2.8333333333333335">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="56" hits="2" branch="false"/>
</lines>
</method>
<method name="doGetClassLoader" signature="()Ljava/lang/ClassLoader;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="59" hits="38" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="56" hits="2" branch="false"/>
<line number="59" hits="38" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.util.ClassUtils$3" filename="org/apache/shiro/util/ClassUtils.java" line-rate="1.0" branch-rate="1.0" complexity="2.8333333333333335">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="66" hits="2" branch="false"/>
</lines>
</method>
<method name="doGetClassLoader" signature="()Ljava/lang/ClassLoader;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="69" hits="38" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="66" hits="2" branch="false"/>
<line number="69" hits="38" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.util.ClassUtils$ClassLoaderAccessor" filename="org/apache/shiro/util/ClassUtils.java" line-rate="1.0" branch-rate="1.0" complexity="2.8333333333333335">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.util.ClassUtils$ExceptionIgnoringAccessor" filename="org/apache/shiro/util/ClassUtils.java" line-rate="0.8" branch-rate="0.375" complexity="2.8333333333333335">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/util/ClassUtils$1;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="221" hits="12" branch="false"/>
</lines>
</method>
<method name="getClassLoader" signature="()Ljava/lang/ClassLoader;" line-rate="0.2" branch-rate="0.0">
<lines>
<line number="249" hits="264" branch="false"/>
<line number="250" hits="0" branch="false"/>
<line number="251" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="252" hits="0" branch="false"/>
<line number="255" hits="0" branch="false"/>
</lines>
</method>
<method name="getResourceStream" signature="(Ljava/lang/String;)Ljava/io/InputStream;" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="239" hits="22" branch="false"/>
<line number="240" hits="22" branch="false"/>
<line number="241" hits="22" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="242" hits="22" branch="false"/>
<line number="244" hits="22" branch="false"/>
</lines>
</method>
<method name="loadClass" signature="(Ljava/lang/String;)Ljava/lang/Class;" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="224" hits="242" branch="false"/>
<line number="225" hits="242" branch="false"/>
<line number="226" hits="242" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="228" hits="242" branch="false"/>
<line number="229" hits="102" branch="false"/>
<line number="230" hits="102" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="231" hits="102" branch="false"/>
<line number="233" hits="140" branch="false"/>
<line number="235" hits="242" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="221" hits="12" branch="false"/>
<line number="224" hits="242" branch="false"/>
<line number="225" hits="242" branch="false"/>
<line number="226" hits="242" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="228" hits="242" branch="false"/>
<line number="229" hits="102" branch="false"/>
<line number="230" hits="102" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="231" hits="102" branch="false"/>
<line number="233" hits="140" branch="false"/>
<line number="235" hits="242" branch="false"/>
<line number="239" hits="22" branch="false"/>
<line number="240" hits="22" branch="false"/>
<line number="241" hits="22" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="242" hits="22" branch="false"/>
<line number="244" hits="22" branch="false"/>
<line number="249" hits="264" branch="false"/>
<line number="250" hits="0" branch="false"/>
<line number="251" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="252" hits="0" branch="false"/>
<line number="255" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.util.CollectionUtils" filename="org/apache/shiro/util/CollectionUtils.java" line-rate="0.7777777777777778" branch-rate="0.6666666666666666" complexity="2.375">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="30" hits="0" branch="false"/>
</lines>
</method>
<method name="asList" signature="([Ljava/lang/Object;)Ljava/util/List;" line-rate="0.8333333333333334" branch-rate="0.5">
<lines>
<line number="106" hits="224" 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="107" hits="0" branch="false"/>
<line number="110" hits="224" branch="false"/>
<line number="111" hits="224" branch="false"/>
<line number="112" hits="224" branch="false"/>
<line number="113" hits="224" branch="false"/>
</lines>
</method>
<method name="asSet" signature="([Ljava/lang/Object;)Ljava/util/Set;" line-rate="1.0" branch-rate="0.75">
<lines>
<line number="35" hits="408" 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="36" hits="2" branch="false"/>
<line number="38" hits="406" branch="false"/>
<line number="39" hits="406" branch="false"/>
<line number="40" hits="406" branch="false"/>
</lines>
</method>
<method name="computeListCapacity" signature="(I)I" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="128" hits="224" branch="false"/>
</lines>
</method>
<method name="isEmpty" signature="(Ljava/util/Collection;)Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="53" hits="846" 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="isEmpty" signature="(Ljava/util/Map;)Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="66" hits="732" 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="isEmpty" signature="(Lorg/apache/shiro/subject/PrincipalCollection;)Z" line-rate="1.0" branch-rate="0.75">
<lines>
<line number="102" hits="1086" 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="size" signature="(Ljava/util/Collection;)I" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="77" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
</lines>
</method>
<method name="size" signature="(Ljava/util/Map;)I" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="88" 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="30" hits="0" branch="false"/>
<line number="35" hits="408" 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="36" hits="2" branch="false"/>
<line number="38" hits="406" branch="false"/>
<line number="39" hits="406" branch="false"/>
<line number="40" hits="406" branch="false"/>
<line number="53" hits="846" 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="66" hits="732" 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="77" 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="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="102" hits="1086" 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="106" hits="224" 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="107" hits="0" branch="false"/>
<line number="110" hits="224" branch="false"/>
<line number="111" hits="224" branch="false"/>
<line number="112" hits="224" branch="false"/>
<line number="113" hits="224" branch="false"/>
<line number="128" hits="224" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.util.Destroyable" filename="org/apache/shiro/util/Destroyable.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.util.Factory" filename="org/apache/shiro/util/Factory.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.util.Initializable" filename="org/apache/shiro/util/Initializable.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.util.InstantiationException" filename="org/apache/shiro/util/InstantiationException.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="36" hits="0" branch="false"/>
<line number="37" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;)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="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/lang/Throwable;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="64" hits="0" branch="false"/>
<line number="65" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Throwable;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="54" hits="0" branch="false"/>
<line number="55" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="36" hits="0" branch="false"/>
<line number="37" hits="0" branch="false"/>
<line number="45" hits="0" branch="false"/>
<line number="46" hits="0" branch="false"/>
<line number="54" hits="0" branch="false"/>
<line number="55" hits="0" branch="false"/>
<line number="64" hits="0" branch="false"/>
<line number="65" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.util.JavaEnvironment" filename="org/apache/shiro/util/JavaEnvironment.java" line-rate="0.0" branch-rate="0.0" complexity="1.0">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="82" 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="92" hits="0" branch="false"/>
<line number="93" hits="0" branch="false"/>
<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="102" 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="getMajorVersion" signature="()I" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="129" hits="0" branch="false"/>
</lines>
</method>
<method name="getVersion" signature="()Ljava/lang/String;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="113" hits="0" branch="false"/>
</lines>
</method>
<method name="isAtLeastVersion14" signature="()Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="144" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
</lines>
</method>
<method name="isAtLeastVersion15" signature="()Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="159" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
</lines>
</method>
<method name="isAtLeastVersion16" signature="()Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="176" 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="35" hits="0" branch="false"/>
<line number="82" 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="92" hits="0" branch="false"/>
<line number="93" hits="0" branch="false"/>
<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="102" hits="0" branch="false"/>
<line number="113" hits="0" branch="false"/>
<line number="129" hits="0" branch="false"/>
<line number="144" 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="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="176" 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.util.JdbcUtils" filename="org/apache/shiro/util/JdbcUtils.java" line-rate="0.3939393939393939" branch-rate="0.2777777777777778" complexity="4.75">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="41" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()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>
<method name="closeConnection" signature="(Ljava/sql/Connection;)V" line-rate="0.4" branch-rate="0.3333333333333333">
<lines>
<line number="56" hits="96" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="58" hits="74" branch="false"/>
<line number="59" hits="0" branch="false"/>
<line number="60" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="61" hits="0" branch="false"/>
<line number="63" hits="0" branch="false"/>
<line number="64" 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="74" branch="false"/>
<line number="69" hits="96" branch="false"/>
</lines>
</method>
<method name="closeResultSet" signature="(Ljava/sql/ResultSet;)V" line-rate="0.4" branch-rate="0.16666666666666666">
<lines>
<line number="100" hits="34" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="102" hits="34" branch="false"/>
<line number="103" hits="0" branch="false"/>
<line number="104" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="105" 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="109" hits="0" branch="false"/>
<line number="111" hits="34" branch="false"/>
<line number="113" hits="34" branch="false"/>
</lines>
</method>
<method name="closeStatement" signature="(Ljava/sql/Statement;)V" line-rate="0.4" branch-rate="0.3333333333333333">
<lines>
<line number="78" hits="100" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="80" hits="78" branch="false"/>
<line number="81" hits="0" branch="false"/>
<line number="82" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="83" hits="0" branch="false"/>
<line number="85" hits="0" branch="false"/>
<line number="86" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="87" hits="0" branch="false"/>
<line number="89" hits="78" branch="false"/>
<line number="91" hits="100" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="41" hits="2" branch="false"/>
<line number="46" hits="0" branch="false"/>
<line number="47" hits="0" branch="false"/>
<line number="56" hits="96" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="58" hits="74" branch="false"/>
<line number="59" hits="0" branch="false"/>
<line number="60" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="61" hits="0" branch="false"/>
<line number="63" hits="0" branch="false"/>
<line number="64" 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="74" branch="false"/>
<line number="69" hits="96" branch="false"/>
<line number="78" hits="100" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="80" hits="78" branch="false"/>
<line number="81" hits="0" branch="false"/>
<line number="82" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="83" hits="0" branch="false"/>
<line number="85" hits="0" branch="false"/>
<line number="86" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="87" hits="0" branch="false"/>
<line number="89" hits="78" branch="false"/>
<line number="91" hits="100" branch="false"/>
<line number="100" hits="34" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="102" hits="34" branch="false"/>
<line number="103" hits="0" branch="false"/>
<line number="104" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="105" 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="109" hits="0" branch="false"/>
<line number="111" hits="34" branch="false"/>
<line number="113" hits="34" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.util.LifecycleUtils" filename="org/apache/shiro/util/LifecycleUtils.java" line-rate="0.78125" branch-rate="0.6818181818181818" complexity="3.3333333333333335">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="36" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="34" hits="0" branch="false"/>
</lines>
</method>
<method name="destroy" signature="(Ljava/lang/Object;)V" line-rate="0.8" branch-rate="0.75">
<lines>
<line number="66" hits="220" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="67" hits="42" branch="false"/>
<line number="68" hits="178" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="69" hits="0" branch="false"/>
<line number="71" hits="220" branch="false"/>
</lines>
</method>
<method name="destroy" signature="(Ljava/util/Collection;)V" line-rate="1.0" branch-rate="0.8333333333333334">
<lines>
<line number="94" hits="38" 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="95" hits="2" branch="false"/>
<line number="98" hits="36" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="99" hits="36" branch="false"/>
<line number="100" hits="36" branch="false"/>
<line number="101" hits="36" branch="false"/>
</lines>
</method>
<method name="destroy" signature="(Lorg/apache/shiro/util/Destroyable;)V" line-rate="0.5" branch-rate="0.25">
<lines>
<line number="74" hits="42" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="76" hits="42" branch="false"/>
<line number="77" hits="0" branch="false"/>
<line number="78" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="79" hits="0" branch="false"/>
<line number="80" hits="0" branch="false"/>
<line number="82" hits="42" branch="false"/>
<line number="84" hits="42" branch="false"/>
</lines>
</method>
<method name="init" signature="(Ljava/lang/Object;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="39" hits="190" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="40" hits="44" branch="false"/>
<line number="42" hits="190" branch="false"/>
</lines>
</method>
<method name="init" signature="(Ljava/util/Collection;)V" line-rate="0.8333333333333334" branch-rate="0.6666666666666666">
<lines>
<line number="57" hits="84" 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="58" hits="0" branch="false"/>
<line number="60" hits="84" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="61" hits="190" branch="false"/>
<line number="62" hits="190" branch="false"/>
<line number="63" hits="84" branch="false"/>
</lines>
</method>
<method name="init" signature="(Lorg/apache/shiro/util/Initializable;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="45" hits="44" branch="false"/>
<line number="46" hits="44" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="34" hits="0" branch="false"/>
<line number="36" hits="2" branch="false"/>
<line number="39" hits="190" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="40" hits="44" branch="false"/>
<line number="42" hits="190" branch="false"/>
<line number="45" hits="44" branch="false"/>
<line number="46" hits="44" branch="false"/>
<line number="57" hits="84" 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="58" hits="0" branch="false"/>
<line number="60" hits="84" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="61" hits="190" branch="false"/>
<line number="62" hits="190" branch="false"/>
<line number="63" hits="84" branch="false"/>
<line number="66" hits="220" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="67" hits="42" branch="false"/>
<line number="68" hits="178" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="69" hits="0" branch="false"/>
<line number="71" hits="220" branch="false"/>
<line number="74" hits="42" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="76" hits="42" branch="false"/>
<line number="77" hits="0" branch="false"/>
<line number="78" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="79" hits="0" branch="false"/>
<line number="80" hits="0" branch="false"/>
<line number="82" hits="42" branch="false"/>
<line number="84" hits="42" branch="false"/>
<line number="94" hits="38" 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="95" hits="2" branch="false"/>
<line number="98" hits="36" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="99" hits="36" branch="false"/>
<line number="100" hits="36" branch="false"/>
<line number="101" hits="36" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.util.MapContext" filename="org/apache/shiro/util/MapContext.java" line-rate="0.5714285714285714" branch-rate="0.625" complexity="1.3125">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="38" hits="228" branch="false"/>
<line number="39" hits="228" branch="false"/>
<line number="40" hits="228" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/util/Map;)V" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="43" hits="92" branch="false"/>
<line number="44" hits="92" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="45" hits="92" branch="false"/>
<line number="47" hits="92" branch="false"/>
</lines>
</method>
<method name="clear" signature="()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="containsKey" signature="(Ljava/lang/Object;)Z" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="95" hits="0" branch="false"/>
</lines>
</method>
<method name="containsValue" signature="(Ljava/lang/Object;)Z" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="99" hits="0" branch="false"/>
</lines>
</method>
<method name="entrySet" signature="()Ljava/util/Set;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="131" hits="92" branch="false"/>
</lines>
</method>
<method name="get" signature="(Ljava/lang/Object;)Ljava/lang/Object;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="103" hits="0" branch="false"/>
</lines>
</method>
<method name="getTypedValue" signature="(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;" line-rate="0.6" branch-rate="0.75">
<lines>
<line number="60" hits="2122" branch="false"/>
<line number="61" hits="2122" branch="false"/>
<line number="62" hits="2122" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="63" hits="362" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="64" hits="0" branch="false"/>
<line number="65" hits="0" branch="false"/>
<line number="66" hits="0" branch="false"/>
<line number="67" hits="0" branch="false"/>
<line number="69" hits="362" branch="false"/>
<line number="71" hits="2122" branch="false"/>
</lines>
</method>
<method name="isEmpty" signature="()Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="91" hits="92" branch="false"/>
</lines>
</method>
<method name="keySet" signature="()Ljava/util/Set;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="123" hits="0" branch="false"/>
</lines>
</method>
<method name="nullSafePut" signature="(Ljava/lang/String;Ljava/lang/Object;)V" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="81" hits="168" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="82" hits="168" branch="false"/>
<line number="84" hits="168" branch="false"/>
</lines>
</method>
<method name="put" signature="(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="32" hits="0" branch="false"/>
</lines>
</method>
<method name="put" signature="(Ljava/lang/String;Ljava/lang/Object;)Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="107" hits="204" branch="false"/>
</lines>
</method>
<method name="putAll" signature="(Ljava/util/Map;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="115" hits="0" branch="false"/>
<line number="116" hits="0" branch="false"/>
</lines>
</method>
<method name="remove" signature="(Ljava/lang/Object;)Ljava/lang/Object;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="111" hits="0" branch="false"/>
</lines>
</method>
<method name="size" signature="()I" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="87" hits="92" branch="false"/>
</lines>
</method>
<method name="values" signature="()Ljava/util/Collection;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="127" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="32" hits="0" branch="false"/>
<line number="38" hits="228" branch="false"/>
<line number="39" hits="228" branch="false"/>
<line number="40" hits="228" branch="false"/>
<line number="43" hits="92" branch="false"/>
<line number="44" hits="92" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="45" hits="92" branch="false"/>
<line number="47" hits="92" branch="false"/>
<line number="60" hits="2122" branch="false"/>
<line number="61" hits="2122" branch="false"/>
<line number="62" hits="2122" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="63" hits="362" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="64" hits="0" branch="false"/>
<line number="65" hits="0" branch="false"/>
<line number="66" hits="0" branch="false"/>
<line number="67" hits="0" branch="false"/>
<line number="69" hits="362" branch="false"/>
<line number="71" hits="2122" branch="false"/>
<line number="81" hits="168" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="82" hits="168" branch="false"/>
<line number="84" hits="168" branch="false"/>
<line number="87" hits="92" branch="false"/>
<line number="91" hits="92" branch="false"/>
<line number="95" hits="0" branch="false"/>
<line number="99" hits="0" branch="false"/>
<line number="103" hits="0" branch="false"/>
<line number="107" hits="204" branch="false"/>
<line number="111" hits="0" branch="false"/>
<line number="115" hits="0" branch="false"/>
<line number="116" 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="127" hits="0" branch="false"/>
<line number="131" hits="92" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.util.Nameable" filename="org/apache/shiro/util/Nameable.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.util.PatternMatcher" filename="org/apache/shiro/util/PatternMatcher.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.util.PermissionUtils" filename="org/apache/shiro/util/PermissionUtils.java" line-rate="0.8333333333333334" branch-rate="0.6666666666666666" complexity="2.3333333333333335">
<methods>
<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="resolveDelimitedPermissions" signature="(Ljava/lang/String;Lorg/apache/shiro/authz/permission/PermissionResolver;)Ljava/util/Set;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="38" hits="34" branch="false"/>
<line number="39" hits="34" branch="false"/>
</lines>
</method>
<method name="resolvePermissions" signature="(Ljava/util/Collection;Lorg/apache/shiro/authz/permission/PermissionResolver;)Ljava/util/Set;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="51" hits="34" branch="false"/>
<line number="52" hits="34" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="53" hits="46" branch="false"/>
<line number="54" hits="46" branch="false"/>
<line number="55" hits="34" branch="false"/>
</lines>
</method>
<method name="toPermissionStrings" signature="(Ljava/lang/String;)Ljava/util/Set;" line-rate="0.75" branch-rate="0.5">
<lines>
<line number="43" hits="34" branch="false"/>
<line number="44" hits="34" 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="45" hits="34" branch="false"/>
<line number="47" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="35" hits="0" branch="false"/>
<line number="38" hits="34" branch="false"/>
<line number="39" hits="34" branch="false"/>
<line number="43" hits="34" branch="false"/>
<line number="44" hits="34" 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="45" hits="34" branch="false"/>
<line number="47" hits="0" branch="false"/>
<line number="51" hits="34" branch="false"/>
<line number="52" hits="34" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="53" hits="46" branch="false"/>
<line number="54" hits="46" branch="false"/>
<line number="55" hits="34" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.util.RegExPatternMatcher" filename="org/apache/shiro/util/RegExPatternMatcher.java" line-rate="0.8333333333333334" branch-rate="0.5" complexity="3.0">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="30" hits="2" branch="false"/>
</lines>
</method>
<method name="matches" signature="(Ljava/lang/String;Ljava/lang/String;)Z" line-rate="0.8" branch-rate="0.5">
<lines>
<line number="45" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="46" hits="0" branch="false"/>
<line number="48" hits="2" branch="false"/>
<line number="49" hits="2" branch="false"/>
<line number="50" hits="2" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="30" hits="2" branch="false"/>
<line number="45" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="46" hits="0" branch="false"/>
<line number="48" hits="2" branch="false"/>
<line number="49" hits="2" branch="false"/>
<line number="50" hits="2" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.util.SimpleByteSource" filename="org/apache/shiro/util/SimpleByteSource.java" line-rate="0.43243243243243246" branch-rate="0.42857142857142855" complexity="1.9375">
<methods>
<method name="&lt;init&gt;" signature="(Ljava/io/File;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="94" hits="0" branch="false"/>
<line number="95" hits="0" branch="false"/>
<line number="96" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/io/InputStream;)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"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="73" hits="80" branch="false"/>
<line number="74" hits="80" branch="false"/>
<line number="75" hits="80" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/util/ByteSource;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="84" hits="0" branch="false"/>
<line number="85" hits="0" branch="false"/>
<line number="86" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="([B)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="53" hits="250" branch="false"/>
<line number="54" hits="250" branch="false"/>
<line number="55" hits="250" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="([C)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="63" hits="0" branch="false"/>
<line number="64" hits="0" branch="false"/>
<line number="65" hits="0" branch="false"/>
</lines>
</method>
<method name="equals" signature="(Ljava/lang/Object;)Z" line-rate="0.6666666666666666" branch-rate="0.5">
<lines>
<line number="167" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="168" hits="0" branch="false"/>
<line number="170" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="171" hits="2" branch="false"/>
<line number="172" hits="2" branch="false"/>
<line number="174" hits="0" branch="false"/>
</lines>
</method>
<method name="getBytes" signature="()[B" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="134" hits="342" branch="false"/>
</lines>
</method>
<method name="hashCode" signature="()I" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="160" 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="161" hits="0" branch="false"/>
<line number="163" hits="0" branch="false"/>
</lines>
</method>
<method name="isCompatible" signature="(Ljava/lang/Object;)Z" line-rate="1.0" branch-rate="0.3333333333333333">
<lines>
<line number="129" hits="74" branch="true" condition-coverage="33% (4/12)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="50%"/>
<condition number="2" type="jump" coverage="50%"/>
<condition number="3" type="jump" coverage="0%"/>
<condition number="4" type="jump" coverage="0%"/>
<condition number="5" type="jump" coverage="0%"/>
</conditions>
</line>
</lines>
</method>
<method name="isEmpty" signature="()Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="138" hits="120" 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="toBase64" signature="()Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="149" hits="20" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="150" hits="16" branch="false"/>
<line number="152" hits="20" branch="false"/>
</lines>
</method>
<method name="toHex" signature="()Ljava/lang/String;" 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="145" hits="0" branch="false"/>
</lines>
</method>
<method name="toString" signature="()Ljava/lang/String;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="156" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="53" hits="250" branch="false"/>
<line number="54" hits="250" branch="false"/>
<line number="55" hits="250" branch="false"/>
<line number="63" hits="0" branch="false"/>
<line number="64" hits="0" branch="false"/>
<line number="65" hits="0" branch="false"/>
<line number="73" hits="80" branch="false"/>
<line number="74" hits="80" branch="false"/>
<line number="75" hits="80" branch="false"/>
<line number="84" hits="0" branch="false"/>
<line number="85" hits="0" branch="false"/>
<line number="86" hits="0" branch="false"/>
<line number="94" hits="0" branch="false"/>
<line number="95" hits="0" branch="false"/>
<line number="96" hits="0" 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="129" hits="74" branch="true" condition-coverage="33% (4/12)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
<condition number="1" type="jump" coverage="50%"/>
<condition number="2" type="jump" coverage="50%"/>
<condition number="3" type="jump" coverage="0%"/>
<condition number="4" type="jump" coverage="0%"/>
<condition number="5" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="134" hits="342" branch="false"/>
<line number="138" hits="120" 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="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="145" hits="0" branch="false"/>
<line number="149" hits="20" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="150" hits="16" branch="false"/>
<line number="152" hits="20" branch="false"/>
<line number="156" hits="0" branch="false"/>
<line number="160" 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="161" hits="0" branch="false"/>
<line number="163" hits="0" branch="false"/>
<line number="167" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="168" hits="0" branch="false"/>
<line number="170" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="171" hits="2" branch="false"/>
<line number="172" hits="2" branch="false"/>
<line number="174" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.util.SimpleByteSource$1" filename="org/apache/shiro/util/SimpleByteSource.java" line-rate="1.0" branch-rate="1.0" complexity="1.9375">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.util.SimpleByteSource$BytesHelper" filename="org/apache/shiro/util/SimpleByteSource.java" line-rate="0.0" branch-rate="1.0" complexity="1.9375">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/util/SimpleByteSource$1;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="179" hits="0" branch="false"/>
</lines>
</method>
<method name="getBytes" signature="(Ljava/io/File;)[B" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="181" hits="0" branch="false"/>
</lines>
</method>
<method name="getBytes" signature="(Ljava/io/InputStream;)[B" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="185" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="179" hits="0" branch="false"/>
<line number="181" hits="0" branch="false"/>
<line number="185" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.util.SoftHashMap" filename="org/apache/shiro/util/SoftHashMap.java" line-rate="0.3516483516483517" branch-rate="0.17647058823529413" complexity="1.95">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="83" hits="2" branch="false"/>
<line number="84" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(I)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="103" hits="2" branch="false"/>
<line number="104" 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="false"/>
<line number="109" hits="2" 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="119" hits="0" branch="false"/>
<line number="120" hits="0" branch="false"/>
<line number="121" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/util/Map;I)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="140" hits="0" branch="false"/>
<line number="141" hits="0" branch="false"/>
<line number="142" hits="0" branch="false"/>
</lines>
</method>
<method name="addToStrongReferences" signature="(Ljava/lang/Object;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="166" hits="4" branch="false"/>
<line number="168" hits="4" branch="false"/>
<line number="169" hits="4" branch="false"/>
<line number="171" hits="4" branch="false"/>
<line number="172" hits="4" branch="false"/>
<line number="174" hits="4" branch="false"/>
</lines>
</method>
<method name="clear" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="263" hits="0" branch="false"/>
<line number="265" hits="0" branch="false"/>
<line number="267" hits="0" branch="false"/>
<line number="268" hits="0" branch="false"/>
<line number="269" hits="0" branch="false"/>
<line number="270" hits="0" branch="false"/>
<line number="271" hits="0" branch="false"/>
</lines>
</method>
<method name="containsKey" signature="(Ljava/lang/Object;)Z" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="203" hits="0" branch="false"/>
<line number="204" hits="0" branch="false"/>
</lines>
</method>
<method name="containsValue" signature="(Ljava/lang/Object;)Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="208" hits="0" branch="false"/>
<line number="209" hits="0" branch="false"/>
<line number="210" 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="entrySet" signature="()Ljava/util/Set;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="279" hits="0" branch="false"/>
<line number="280" hits="0" branch="false"/>
<line number="281" 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="287" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="288" hits="0" branch="false"/>
<line number="289" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="290" hits="0" branch="false"/>
<line number="292" hits="0" branch="false"/>
<line number="293" hits="0" branch="false"/>
</lines>
</method>
<method name="get" signature="(Ljava/lang/Object;)Ljava/lang/Object;" line-rate="0.8888888888888888" branch-rate="0.75">
<lines>
<line number="145" hits="4" branch="false"/>
<line number="147" hits="4" branch="false"/>
<line number="148" hits="4" branch="false"/>
<line number="150" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="152" hits="2" branch="false"/>
<line number="153" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="156" hits="0" branch="false"/>
<line number="159" hits="2" branch="false"/>
<line number="162" hits="4" branch="false"/>
</lines>
</method>
<method name="isEmpty" signature="()Z" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="198" hits="0" branch="false"/>
<line number="199" hits="0" branch="false"/>
</lines>
</method>
<method name="keySet" signature="()Ljava/util/Set;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="224" hits="0" branch="false"/>
<line number="225" hits="0" branch="false"/>
</lines>
</method>
<method name="processQueue" signature="()V" line-rate="0.6666666666666666" branch-rate="0.5">
<lines>
<line number="191" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="193" hits="0" branch="false"/>
<line number="195" hits="6" branch="false"/>
</lines>
</method>
<method name="put" signature="(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="249" hits="2" branch="false"/>
<line number="250" hits="2" branch="false"/>
<line number="251" hits="2" branch="false"/>
<line number="252" hits="2" branch="false"/>
<line number="253" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
</lines>
</method>
<method name="putAll" signature="(Ljava/util/Map;)V" line-rate="0.0" branch-rate="0.0">
<lines>
<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="215" hits="0" branch="false"/>
<line number="216" hits="0" branch="false"/>
<line number="218" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="219" hits="0" branch="false"/>
<line number="220" hits="0" branch="false"/>
<line number="221" hits="0" branch="false"/>
</lines>
</method>
<method name="remove" signature="(Ljava/lang/Object;)Ljava/lang/Object;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="257" hits="0" branch="false"/>
<line number="258" hits="0" branch="false"/>
<line number="259" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
</lines>
</method>
<method name="size" signature="()I" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="274" hits="0" branch="false"/>
<line number="275" hits="0" branch="false"/>
</lines>
</method>
<method name="trimStrongReferencesIfNecessary" signature="()V" line-rate="0.6666666666666666" branch-rate="0.5">
<lines>
<line number="180" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="181" hits="0" branch="false"/>
<line number="183" hits="4" branch="false"/>
</lines>
</method>
<method name="values" signature="()Ljava/util/Collection;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="229" 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="233" hits="0" branch="false"/>
<line number="235" hits="0" branch="false"/>
<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="false"/>
<line number="238" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="239" hits="0" branch="false"/>
<line number="241" hits="0" branch="false"/>
<line number="242" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="83" hits="2" branch="false"/>
<line number="84" hits="2" branch="false"/>
<line number="103" hits="2" branch="false"/>
<line number="104" 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="false"/>
<line number="109" hits="2" branch="false"/>
<line number="119" hits="0" branch="false"/>
<line number="120" hits="0" branch="false"/>
<line number="121" hits="0" branch="false"/>
<line number="140" hits="0" branch="false"/>
<line number="141" hits="0" branch="false"/>
<line number="142" hits="0" branch="false"/>
<line number="145" hits="4" branch="false"/>
<line number="147" hits="4" branch="false"/>
<line number="148" hits="4" branch="false"/>
<line number="150" hits="4" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="152" hits="2" branch="false"/>
<line number="153" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="156" hits="0" branch="false"/>
<line number="159" hits="2" branch="false"/>
<line number="162" hits="4" branch="false"/>
<line number="166" hits="4" branch="false"/>
<line number="168" hits="4" branch="false"/>
<line number="169" hits="4" branch="false"/>
<line number="171" hits="4" branch="false"/>
<line number="172" hits="4" branch="false"/>
<line number="174" hits="4" branch="false"/>
<line number="180" hits="4" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="181" hits="0" branch="false"/>
<line number="183" hits="4" branch="false"/>
<line number="191" hits="6" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="193" hits="0" branch="false"/>
<line number="195" hits="6" branch="false"/>
<line number="198" hits="0" branch="false"/>
<line number="199" hits="0" branch="false"/>
<line number="203" hits="0" branch="false"/>
<line number="204" hits="0" branch="false"/>
<line number="208" hits="0" branch="false"/>
<line number="209" hits="0" branch="false"/>
<line number="210" 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="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="215" hits="0" branch="false"/>
<line number="216" hits="0" branch="false"/>
<line number="218" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="219" hits="0" branch="false"/>
<line number="220" hits="0" branch="false"/>
<line number="221" hits="0" branch="false"/>
<line number="224" hits="0" branch="false"/>
<line number="225" hits="0" branch="false"/>
<line number="229" 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="233" hits="0" branch="false"/>
<line number="235" hits="0" branch="false"/>
<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="false"/>
<line number="238" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="239" hits="0" branch="false"/>
<line number="241" hits="0" branch="false"/>
<line number="242" hits="0" branch="false"/>
<line number="249" hits="2" branch="false"/>
<line number="250" hits="2" branch="false"/>
<line number="251" hits="2" branch="false"/>
<line number="252" hits="2" branch="false"/>
<line number="253" hits="2" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="257" hits="0" branch="false"/>
<line number="258" hits="0" branch="false"/>
<line number="259" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="263" hits="0" branch="false"/>
<line number="265" hits="0" branch="false"/>
<line number="267" hits="0" branch="false"/>
<line number="268" hits="0" branch="false"/>
<line number="269" hits="0" branch="false"/>
<line number="270" hits="0" branch="false"/>
<line number="271" hits="0" branch="false"/>
<line number="274" hits="0" branch="false"/>
<line number="275" hits="0" branch="false"/>
<line number="279" hits="0" branch="false"/>
<line number="280" hits="0" branch="false"/>
<line number="281" 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="287" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="288" hits="0" branch="false"/>
<line number="289" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="290" hits="0" branch="false"/>
<line number="292" hits="0" branch="false"/>
<line number="293" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.util.SoftHashMap$1" filename="org/apache/shiro/util/SoftHashMap.java" line-rate="1.0" branch-rate="1.0" complexity="1.95">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.util.SoftHashMap$SoftValue" filename="org/apache/shiro/util/SoftHashMap.java" line-rate="1.0" branch-rate="1.0" complexity="1.95">
<methods>
<method name="&lt;init&gt;" signature="(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="314" hits="2" branch="false"/>
<line number="315" hits="2" branch="false"/>
<line number="316" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/ref/ReferenceQueue;Lorg/apache/shiro/util/SoftHashMap$1;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="301" hits="2" branch="false"/>
</lines>
</method>
<method name="access$000" signature="(Lorg/apache/shiro/util/SoftHashMap$SoftValue;)Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
</lines>
</method>
</methods>
<lines>
<line number="301" hits="2" branch="false"/>
<line number="314" hits="2" branch="false"/>
<line number="315" hits="2" branch="false"/>
<line number="316" hits="2" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.util.StringUtils" filename="org/apache/shiro/util/StringUtils.java" line-rate="0.5774647887323944" branch-rate="0.49122807017543857" complexity="4.842105263157895">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="32" hits="0" branch="false"/>
</lines>
</method>
<method name="clean" signature="(Ljava/lang/String;)Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="145" hits="1892" branch="false"/>
<line number="147" hits="1892" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="148" hits="1888" branch="false"/>
<line number="149" hits="1888" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="150" hits="56" branch="false"/>
<line number="154" hits="1892" branch="false"/>
</lines>
</method>
<method name="hasLength" signature="(Ljava/lang/String;)Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="98" hits="616" 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="hasText" signature="(Ljava/lang/String;)Z" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="70" hits="592" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="71" hits="54" branch="false"/>
<line number="73" hits="538" branch="false"/>
<line number="74" hits="654" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="75" hits="652" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="76" hits="536" branch="false"/>
<line number="79" hits="2" branch="false"/>
</lines>
</method>
<method name="join" signature="(Ljava/util/Iterator;Ljava/lang/String;)Ljava/lang/String;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="430" hits="0" branch="false"/>
<line number="433" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="434" hits="0" branch="false"/>
<line number="436" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="437" hits="0" branch="false"/>
<line number="439" hits="0" branch="false"/>
<line number="440" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="441" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="445" hits="0" branch="false"/>
<line number="446" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="447" hits="0" branch="false"/>
<line number="450" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="451" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="452" hits="0" branch="false"/>
<line number="454" hits="0" branch="false"/>
<line number="455" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="456" hits="0" branch="false"/>
<line number="458" hits="0" branch="false"/>
<line number="459" hits="0" branch="false"/>
</lines>
</method>
<method name="split" signature="(Ljava/lang/String;)[Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="326" hits="136" branch="false"/>
</lines>
</method>
<method name="split" signature="(Ljava/lang/String;C)[Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="330" hits="152" branch="false"/>
</lines>
</method>
<method name="split" signature="(Ljava/lang/String;CC)[Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="334" hits="152" branch="false"/>
</lines>
</method>
<method name="split" signature="(Ljava/lang/String;CCC)[Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="338" hits="152" branch="false"/>
</lines>
</method>
<method name="split" signature="(Ljava/lang/String;CCCZZ)[Ljava/lang/String;" line-rate="1.0" branch-rate="0.8666666666666667">
<lines>
<line number="363" hits="160" branch="false"/>
<line number="364" hits="160" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="365" hits="2" branch="false"/>
<line number="368" hits="158" branch="false"/>
<line number="369" hits="158" branch="false"/>
<line number="370" hits="158" branch="false"/>
<line number="372" hits="3222" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="374" hits="3064" branch="false"/>
<line number="375" hits="3064" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="378" hits="30" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="379" hits="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="380" hits="10" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="383" hits="4" branch="false"/>
<line number="384" hits="4" branch="false"/>
<line number="386" hits="26" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="387" hits="26" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="388" hits="6" branch="false"/>
<line number="391" hits="3034" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="392" hits="12" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="393" hits="12" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="394" hits="6" branch="false"/>
<line number="396" hits="3022" 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="397" hits="166" branch="false"/>
<line number="398" hits="166" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="399" hits="166" branch="false"/>
<line number="401" hits="166" branch="false"/>
<line number="402" hits="166" branch="false"/>
<line number="403" hits="166" branch="false"/>
<line number="404" hits="2856" branch="false"/>
<line number="407" hits="158" branch="false"/>
<line number="408" hits="158" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="409" hits="158" branch="false"/>
<line number="411" hits="158" branch="false"/>
<line number="412" hits="158" branch="false"/>
</lines>
</method>
<method name="splitKeyValue" signature="(Ljava/lang/String;)[Ljava/lang/String;" line-rate="0.55" branch-rate="0.4166666666666667">
<lines>
<line number="289" hits="52" branch="false"/>
<line number="290" hits="52" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="291" hits="0" branch="false"/>
<line number="293" hits="52" branch="false"/>
<line number="294" hits="52" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="296" hits="0" branch="false"/>
<line number="297" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="298" hits="0" branch="false"/>
<line number="300" hits="0" branch="false"/>
<line number="305" hits="52" branch="false"/>
<line number="306" hits="52" branch="false"/>
<line number="307" hits="52" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="310" hits="52" branch="false"/>
<line number="313" hits="52" 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="315" hits="0" branch="false"/>
<line number="317" hits="52" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="318" hits="0" branch="false"/>
<line number="319" hits="0" branch="false"/>
<line number="322" hits="52" branch="false"/>
</lines>
</method>
<method name="splitToSet" signature="(Ljava/lang/String;Ljava/lang/String;)Ljava/util/Set;" line-rate="0.75" branch-rate="0.5">
<lines>
<line number="474" 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="475" hits="0" branch="false"/>
<line number="477" hits="12" branch="false"/>
<line number="478" hits="12" branch="false"/>
</lines>
</method>
<method name="startsWithIgnoreCase" signature="(Ljava/lang/String;Ljava/lang/String;)Z" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="114" 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="115" hits="0" branch="false"/>
<line number="117" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<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="121" hits="0" branch="false"/>
<line number="123" hits="0" branch="false"/>
<line number="124" hits="0" branch="false"/>
<line number="125" hits="0" branch="false"/>
</lines>
</method>
<method name="toDelimitedString" signature="(Ljava/util/Collection;Ljava/lang/String;)Ljava/lang/String;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="201" 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="202" hits="0" branch="false"/>
<line number="204" hits="0" branch="false"/>
</lines>
</method>
<method name="toDelimitedString" signature="([Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/String;" line-rate="0.875" branch-rate="0.75">
<lines>
<line number="178" hits="68" 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="68" branch="false"/>
<line number="182" hits="142" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="183" hits="74" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="184" hits="6" branch="false"/>
<line number="186" hits="74" branch="false"/>
<line number="188" hits="68" branch="false"/>
</lines>
</method>
<method name="toString" signature="([Ljava/lang/Object;)Ljava/lang/String;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="165" hits="68" branch="false"/>
</lines>
</method>
<method name="toStringArray" signature="(Ljava/util/Collection;)[Ljava/lang/String;" line-rate="0.0" branch-rate="0.0">
<lines>
<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="285" hits="0" branch="false"/>
</lines>
</method>
<method name="tokenizeToStringArray" signature="(Ljava/lang/String;Ljava/lang/String;)[Ljava/lang/String;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="225" hits="0" branch="false"/>
</lines>
</method>
<method name="tokenizeToStringArray" signature="(Ljava/lang/String;Ljava/lang/String;ZZ)[Ljava/lang/String;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="253" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="254" hits="0" branch="false"/>
<line number="256" hits="0" branch="false"/>
<line number="257" hits="0" branch="false"/>
<line number="258" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="259" hits="0" branch="false"/>
<line number="260" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="261" hits="0" branch="false"/>
<line number="263" 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="264" hits="0" branch="false"/>
<line number="266" hits="0" branch="false"/>
<line number="267" hits="0" branch="false"/>
</lines>
</method>
<method name="uppercaseFirstChar" signature="(Ljava/lang/String;)Ljava/lang/String;" line-rate="0.8888888888888888" branch-rate="0.5">
<lines>
<line number="488" 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="489" hits="0" branch="false"/>
<line number="491" hits="10" branch="false"/>
<line number="492" hits="10" branch="false"/>
<line number="494" hits="10" branch="false"/>
<line number="495" hits="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="496" hits="10" branch="false"/>
<line number="497" hits="10" branch="false"/>
<line number="499" hits="10" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="32" hits="0" branch="false"/>
<line number="70" hits="592" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="71" hits="54" branch="false"/>
<line number="73" hits="538" branch="false"/>
<line number="74" hits="654" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="75" hits="652" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="76" hits="536" branch="false"/>
<line number="79" hits="2" branch="false"/>
<line number="98" hits="616" 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="114" 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="115" hits="0" branch="false"/>
<line number="117" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<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="121" hits="0" branch="false"/>
<line number="123" hits="0" branch="false"/>
<line number="124" hits="0" branch="false"/>
<line number="125" hits="0" branch="false"/>
<line number="145" hits="1892" branch="false"/>
<line number="147" hits="1892" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="148" hits="1888" branch="false"/>
<line number="149" hits="1888" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="150" hits="56" branch="false"/>
<line number="154" hits="1892" branch="false"/>
<line number="165" hits="68" branch="false"/>
<line number="178" hits="68" 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="68" branch="false"/>
<line number="182" hits="142" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="183" hits="74" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="184" hits="6" branch="false"/>
<line number="186" hits="74" branch="false"/>
<line number="188" hits="68" branch="false"/>
<line number="201" 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="202" hits="0" branch="false"/>
<line number="204" hits="0" branch="false"/>
<line number="225" hits="0" branch="false"/>
<line number="253" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="254" hits="0" branch="false"/>
<line number="256" hits="0" branch="false"/>
<line number="257" hits="0" branch="false"/>
<line number="258" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="259" hits="0" branch="false"/>
<line number="260" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="261" hits="0" branch="false"/>
<line number="263" 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="264" hits="0" branch="false"/>
<line number="266" hits="0" branch="false"/>
<line number="267" 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="285" hits="0" branch="false"/>
<line number="289" hits="52" branch="false"/>
<line number="290" hits="52" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="291" hits="0" branch="false"/>
<line number="293" hits="52" branch="false"/>
<line number="294" hits="52" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="296" hits="0" branch="false"/>
<line number="297" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="298" hits="0" branch="false"/>
<line number="300" hits="0" branch="false"/>
<line number="305" hits="52" branch="false"/>
<line number="306" hits="52" branch="false"/>
<line number="307" hits="52" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="310" hits="52" branch="false"/>
<line number="313" hits="52" 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="315" hits="0" branch="false"/>
<line number="317" hits="52" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="318" hits="0" branch="false"/>
<line number="319" hits="0" branch="false"/>
<line number="322" hits="52" branch="false"/>
<line number="326" hits="136" branch="false"/>
<line number="330" hits="152" branch="false"/>
<line number="334" hits="152" branch="false"/>
<line number="338" hits="152" branch="false"/>
<line number="363" hits="160" branch="false"/>
<line number="364" hits="160" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="365" hits="2" branch="false"/>
<line number="368" hits="158" branch="false"/>
<line number="369" hits="158" branch="false"/>
<line number="370" hits="158" branch="false"/>
<line number="372" hits="3222" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="374" hits="3064" branch="false"/>
<line number="375" hits="3064" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="378" hits="30" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="379" hits="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="380" hits="10" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="383" hits="4" branch="false"/>
<line number="384" hits="4" branch="false"/>
<line number="386" hits="26" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="387" hits="26" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="388" hits="6" branch="false"/>
<line number="391" hits="3034" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="392" hits="12" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="393" hits="12" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="394" hits="6" branch="false"/>
<line number="396" hits="3022" 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="397" hits="166" branch="false"/>
<line number="398" hits="166" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="399" hits="166" branch="false"/>
<line number="401" hits="166" branch="false"/>
<line number="402" hits="166" branch="false"/>
<line number="403" hits="166" branch="false"/>
<line number="404" hits="2856" branch="false"/>
<line number="407" hits="158" branch="false"/>
<line number="408" hits="158" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="409" hits="158" branch="false"/>
<line number="411" hits="158" branch="false"/>
<line number="412" hits="158" branch="false"/>
<line number="430" hits="0" branch="false"/>
<line number="433" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="434" hits="0" branch="false"/>
<line number="436" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="437" hits="0" branch="false"/>
<line number="439" hits="0" branch="false"/>
<line number="440" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="441" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="445" hits="0" branch="false"/>
<line number="446" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="447" hits="0" branch="false"/>
<line number="450" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="451" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="452" hits="0" branch="false"/>
<line number="454" hits="0" branch="false"/>
<line number="455" hits="0" branch="true" condition-coverage="0% (0/2)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
</conditions>
</line>
<line number="456" hits="0" branch="false"/>
<line number="458" hits="0" branch="false"/>
<line number="459" hits="0" branch="false"/>
<line number="474" 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="475" hits="0" branch="false"/>
<line number="477" hits="12" branch="false"/>
<line number="478" hits="12" branch="false"/>
<line number="488" 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="489" hits="0" branch="false"/>
<line number="491" hits="10" branch="false"/>
<line number="492" hits="10" branch="false"/>
<line number="494" hits="10" branch="false"/>
<line number="495" hits="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="496" hits="10" branch="false"/>
<line number="497" hits="10" branch="false"/>
<line number="499" hits="10" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.util.ThreadContext" filename="org/apache/shiro/util/ThreadContext.java" line-rate="0.5166666666666667" branch-rate="0.4666666666666667" complexity="2.3125">
<methods>
<method name="&lt;clinit&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="51" hits="2" branch="false"/>
<line number="53" hits="2" branch="false"/>
<line number="54" hits="2" branch="false"/>
<line number="56" hits="2" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="()V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="61" hits="0" branch="false"/>
<line number="62" hits="0" branch="false"/>
</lines>
</method>
<method name="bind" signature="(Lorg/apache/shiro/mgt/SecurityManager;)V" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="243" hits="22" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="244" hits="22" branch="false"/>
<line number="246" hits="22" branch="false"/>
</lines>
</method>
<method name="bind" signature="(Lorg/apache/shiro/subject/Subject;)V" line-rate="1.0" branch-rate="0.5">
<lines>
<line number="301" hits="34" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="302" hits="34" branch="false"/>
<line number="304" hits="34" branch="false"/>
</lines>
</method>
<method name="ensureResourcesInitialized" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="110" hits="56" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="111" hits="34" branch="false"/>
<line number="113" hits="56" branch="false"/>
</lines>
</method>
<method name="get" signature="(Ljava/lang/Object;)Ljava/lang/Object;" line-rate="0.4444444444444444" branch-rate="0.6666666666666666">
<lines>
<line number="124" hits="174" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="125" hits="0" branch="false"/>
<line number="126" hits="0" branch="false"/>
<line number="129" hits="174" branch="false"/>
<line number="130" hits="174" 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="131" hits="0" branch="false"/>
<line number="132" hits="0" branch="false"/>
<line number="133" hits="0" branch="false"/>
<line number="135" hits="174" branch="false"/>
</lines>
</method>
<method name="getResources" signature="()Ljava/util/Map;" line-rate="0.6666666666666666" branch-rate="0.5">
<lines>
<line number="71" hits="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="72" hits="10" branch="false"/>
<line number="74" hits="0" branch="false"/>
</lines>
</method>
<method name="getSecurityManager" signature="()Lorg/apache/shiro/mgt/SecurityManager;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="222" hits="120" branch="false"/>
</lines>
</method>
<method name="getSubject" signature="()Lorg/apache/shiro/subject/Subject;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="281" hits="54" branch="false"/>
</lines>
</method>
<method name="getValue" signature="(Ljava/lang/Object;)Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="105" hits="174" branch="false"/>
<line number="106" hits="174" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
</lines>
</method>
<method name="put" signature="(Ljava/lang/Object;Ljava/lang/Object;)V" line-rate="0.5" branch-rate="0.5">
<lines>
<line number="154" hits="56" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="155" hits="0" branch="false"/>
<line number="158" hits="56" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="159" hits="0" branch="false"/>
<line number="160" hits="0" branch="false"/>
<line number="163" hits="56" branch="false"/>
<line number="164" hits="56" branch="false"/>
<line number="166" hits="56" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="167" hits="0" branch="false"/>
<line number="168" hits="0" branch="false"/>
<line number="169" hits="0" branch="false"/>
<line number="171" hits="56" branch="false"/>
</lines>
</method>
<method name="remove" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="203" hits="136" branch="false"/>
<line number="204" hits="136" branch="false"/>
</lines>
</method>
<method name="remove" signature="(Ljava/lang/Object;)Ljava/lang/Object;" line-rate="0.0" branch-rate="0.0">
<lines>
<line number="182" hits="0" branch="false"/>
<line number="183" 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/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" 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="191" hits="0" branch="false"/>
</lines>
</method>
<method name="setResources" signature="(Ljava/util/Map;)V" 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"/>
<line number="91" hits="0" branch="false"/>
<line number="92" hits="0" branch="false"/>
<line number="93" hits="0" branch="false"/>
</lines>
</method>
<method name="unbindSecurityManager" signature="()Lorg/apache/shiro/mgt/SecurityManager;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="264" hits="0" branch="false"/>
</lines>
</method>
<method name="unbindSubject" signature="()Lorg/apache/shiro/subject/Subject;" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="321" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="51" hits="2" branch="false"/>
<line number="53" hits="2" branch="false"/>
<line number="54" hits="2" branch="false"/>
<line number="56" hits="2" branch="false"/>
<line number="61" hits="0" branch="false"/>
<line number="62" hits="0" branch="false"/>
<line number="71" hits="10" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="72" hits="10" branch="false"/>
<line number="74" 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="91" hits="0" branch="false"/>
<line number="92" hits="0" branch="false"/>
<line number="93" hits="0" branch="false"/>
<line number="105" hits="174" branch="false"/>
<line number="106" hits="174" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="110" hits="56" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="111" hits="34" branch="false"/>
<line number="113" hits="56" branch="false"/>
<line number="124" hits="174" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="125" hits="0" branch="false"/>
<line number="126" hits="0" branch="false"/>
<line number="129" hits="174" branch="false"/>
<line number="130" hits="174" 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="131" hits="0" branch="false"/>
<line number="132" hits="0" branch="false"/>
<line number="133" hits="0" branch="false"/>
<line number="135" hits="174" branch="false"/>
<line number="154" hits="56" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="155" hits="0" branch="false"/>
<line number="158" hits="56" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="159" hits="0" branch="false"/>
<line number="160" hits="0" branch="false"/>
<line number="163" hits="56" branch="false"/>
<line number="164" hits="56" branch="false"/>
<line number="166" hits="56" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="167" hits="0" branch="false"/>
<line number="168" hits="0" branch="false"/>
<line number="169" hits="0" branch="false"/>
<line number="171" hits="56" branch="false"/>
<line number="182" hits="0" branch="false"/>
<line number="183" 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/4)">
<conditions>
<condition number="0" type="jump" coverage="0%"/>
<condition number="1" 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="191" hits="0" branch="false"/>
<line number="203" hits="136" branch="false"/>
<line number="204" hits="136" branch="false"/>
<line number="222" hits="120" branch="false"/>
<line number="243" hits="22" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="244" hits="22" branch="false"/>
<line number="246" hits="22" branch="false"/>
<line number="264" hits="0" branch="false"/>
<line number="281" hits="54" branch="false"/>
<line number="301" hits="34" branch="true" condition-coverage="50% (1/2)">
<conditions>
<condition number="0" type="jump" coverage="50%"/>
</conditions>
</line>
<line number="302" hits="34" branch="false"/>
<line number="304" hits="34" branch="false"/>
<line number="321" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.util.ThreadContext$1" filename="org/apache/shiro/util/ThreadContext.java" line-rate="1.0" branch-rate="1.0" complexity="2.3125">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.util.ThreadContext$InheritableThreadLocalMap" filename="org/apache/shiro/util/ThreadContext.java" line-rate="1.0" branch-rate="1.0" complexity="2.3125">
<methods>
<method name="&lt;init&gt;" signature="()V" line-rate="1.0" branch-rate="1.0">
<lines>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Lorg/apache/shiro/util/ThreadContext$1;)V" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="324" hits="22" branch="false"/>
</lines>
</method>
<method name="childValue" signature="(Ljava/lang/Object;)Ljava/lang/Object;" line-rate="1.0" branch-rate="1.0">
<lines>
</lines>
</method>
<method name="childValue" signature="(Ljava/util/Map;)Ljava/util/Map;" line-rate="1.0" branch-rate="1.0">
<lines>
<line number="335" hits="18" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="336" hits="12" branch="false"/>
<line number="338" hits="6" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="324" hits="22" branch="false"/>
<line number="335" hits="18" branch="true" condition-coverage="100% (2/2)">
<conditions>
<condition number="0" type="jump" coverage="100%"/>
</conditions>
</line>
<line number="336" hits="12" branch="false"/>
<line number="338" hits="6" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.util.ThreadState" filename="org/apache/shiro/util/ThreadState.java" line-rate="1.0" branch-rate="1.0" complexity="1.0">
<methods>
</methods>
<lines>
</lines>
</class>
<class name="org.apache.shiro.util.UnavailableConstructorException" filename="org/apache/shiro/util/UnavailableConstructorException.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="37" hits="0" branch="false"/>
<line number="38" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" 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>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/lang/Throwable;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="65" hits="0" branch="false"/>
<line number="66" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Throwable;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="55" hits="0" branch="false"/>
<line number="56" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="37" hits="0" branch="false"/>
<line number="38" hits="0" branch="false"/>
<line number="46" hits="0" branch="false"/>
<line number="47" hits="0" branch="false"/>
<line number="55" hits="0" branch="false"/>
<line number="56" hits="0" branch="false"/>
<line number="65" hits="0" branch="false"/>
<line number="66" hits="0" branch="false"/>
</lines>
</class>
<class name="org.apache.shiro.util.UnknownClassException" filename="org/apache/shiro/util/UnknownClassException.java" line-rate="0.25" 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="37" hits="0" branch="false"/>
<line number="38" 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="46" hits="34" branch="false"/>
<line number="47" hits="34" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/String;Ljava/lang/Throwable;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="65" hits="0" branch="false"/>
<line number="66" hits="0" branch="false"/>
</lines>
</method>
<method name="&lt;init&gt;" signature="(Ljava/lang/Throwable;)V" line-rate="0.0" branch-rate="1.0">
<lines>
<line number="55" hits="0" branch="false"/>
<line number="56" hits="0" branch="false"/>
</lines>
</method>
</methods>
<lines>
<line number="37" hits="0" branch="false"/>
<line number="38" hits="0" branch="false"/>
<line number="46" hits="34" branch="false"/>
<line number="47" hits="34" branch="false"/>
<line number="55" hits="0" branch="false"/>
<line number="56" hits="0" branch="false"/>
<line number="65" hits="0" branch="false"/>
<line number="66" hits="0" branch="false"/>
</lines>
</class>
</classes>
</package>
</packages>
</coverage>